Rabu, 03 April 2013

Manipulasi data (string dan operator aritmatika).

Suatu judul yang kontroversial, tentu ini bukanlah tentang korupsi atau hal-hal yang berhubungan dengan itu, tapi ini artikel tentang belajar bahasa pemrograman C. :D Oke sambungan dari artikel sebelumnya tentang tipe data, variable dan operator, kali ini kita akan bersama-sama belajar bahasa pemrograman C untuk memanipulasi data, dengan menggunakan operator aritmatika untuk data yang bertipe angka, dan beberapa fungsi untuk manipulasi string.

Pada artikel sebelumnya ada sebuah pertanyaan apa bedanya string yang di deklarasikan dengan char* dan char[30], akan kita bahas pada section manipulasi string, setelah pembahasan singkat tentang manipulasi data dengan operator-operator berikut.

Operator Aritmatika.

untuk belajar bahasa pemrograman tentu tidak terlepas dari perhitungan matematika sederhana, yaitu penjumlahan ( + ), pengurangan ( - ), perkalian ( * ), pembagian ( / ), dan modulus atau sisah bagi ( % ). Dan aturan-aturannya pun sama dengan aturan-aturan matematika yang kita dapatkan saat kita SMP eh mungkin SD ya. :) Bagiamana cara penulisan dari operator-operator tersebut, berikut contoh sourcecodenya.
#include <stdio.h>

int main() {
    int a = 10;
    int b = 3;

    /**
     *  sourcecode tersembunyi ... :)
     */

    penjumlahan = a + b;
    pengurangan = a - b;
    perkalian = a * b;
    pembagian = a * 1.0 / b ;
    modulus = a % b;
    return 0;
}
sourcode diatas masih kurang lengkap, kira-kira menurut teman-teman, tipe data apa saja yang cocok untuk mendeklarasikan variable-variable hasil, yaitu penjumlahan, pengurangan, perkalian, pembagian, dan modulus?... waktu 5 detik dari sekarang, oke waktu habis. :)

Berikut salah satu jawabannya, tentu ada banyak jalan menuju roma... :)
penjumlahan, pengurangan, perkalian, dan modulus, tipe datanya INT, sedangkan pembagian tipe datanya FLOAT/DOUBLE, ya kira-kira seperti itu, gimana tebakan teman-teman, pasti benar semua... :) berikut source code lengkapnya.
#include <stdio.h>

int main() {
    int a = 10;
    int b = 3;

    int penjumlahan, pengurangan, perkalian, modulus;
    float pembagian;

    penjumlahan = a + b;
    pengurangan = a - b;
    perkalian = a * b;
    pembagian = a * 1.0 / b ;
    modulus = a % b;

    printf("penjumlahan = %d\n", penjumlahan);
    printf("pengurangan = %d\n", pengurangan);
    printf("perkalian = %d\n", perkalian);
    printf("pembagian = %f\n", pembagian);
    printf("modulus = %d\n", modulus);

    return 0;
}
jika di jalankan kira-kira hasilnya akan seperti berikut...
penjumlahan = 13
pengurangan = 7
perkalian = 30
pembagian = 3.333333
modulus = 1
perhatikan cara pendeklarasian variable-variable diatas, untuk tipe int ditulis dengan pemisahan tanda koma, hal tersebut merupakan cara lain untuk mendeklarasikan lebih dari satu variable yang dengan tipe data sama.  dan coba perhatikan juga untuk proses pembagian, terdapat perkalian dengan satu koma nol (1.0), hal tersebut dikarenakan pembagian yang dilakukan adalah sesama integer sehingga kita perlu membuat salah satu nilai untuk menjadi pecahan agar hasilnya nanti akan berupa pecahan yang valid.

Dalam bahasa pemrograman C juga kita bisa menggunakan operator bersarang, contohnya :
#include <stdio.h>
int main() {
    int a = 10;
    int b = 3;

    int x;

    x = ((a * b) + (a - 1)) % 10; // x = 9
    printf("x = %d\n", x);
    return 0;
}
Pada program di atas akan menghasilkan x = 9. bagaimana dengan bilangan pangkat misal 3 pangkat 2?. akan dibahas pada sesi pembahasan Perulangan. So stay tune. :)

Dan selain operator aritmatika bahasa pemrogaman C juga memiliki operator-operator yang lain, seperti operator assignment (=), operator logika (!, &&, ||), operator relasi dan persamaan (<, >, <=, =>, ==, !=), dan lain-lain, yang jika berkesemptan akan dibahas pada artikel-artikel berikutnya.

Manipulasi String.

Ada beberapa pengolahan string sederhana yang mungkin akan sering digunakan antara lain
  1. menggabungkan string,
    untuk menggabungkan string dibutuhka fungsi yang bernama "strcat", adapun cara penggunaannya adalah strcat(s1, s2) yang mana nantinya isi dari s2 akan digabungkan dibelakang isi dari s1 dan kemudian data hasil pengabungan ini akan disimpan di s1.
  2. menyalin string.
    fungsi yang digunakan untuk menyalin string adalah strcpy, adapun kegunaan dari fungsi ini adalah untuk menyalin string ke dalam suatu variable, misal akan memindahkan isi variable a ke b menggunakan strcpy(b, a), atau mengisi variable b dengan data baru sehingga menjadi strcpy(b, "data baru").
  3. panjang string
    fungsi yang digunakan untuk mengetahui panjang dari suatu string.
tentu masih banyak yang belum disebutkan, namun untuk sementara 3 fungsi ini yang akan dibahas, fungsi yang lain dapat diilihat secara detail pada dokumentasi bahasa pemrograman C. berikut cara penulisan untuk fungsi-fungs string tersebut.
#include <stdio.h>
#include <string.h>

int main() {
    char s1[30] = "Pintar";
    char s2[30] = "Coding.com";
    char s3[30] = "";
    int x = 0;
    
    strcat(s1, s2); // pengabungan string
    printf("Gabungan String = %s\n", s1);
    strcpy(s3, s1); // penyalinan string
    printf("Slinan String = %s\n", s3);
    x = strlen(s3); // panjang string
    printf("Panjang String s3 = %d\n", x);
    
    return 0;
}
hasil dari program diatas akan seperti berikut :
Gabungan String = PintarCoding.com
Slinan String = PintarCoding.com
Panjang String s3 = 16
Dan untuk menjawab tentang perbedaan antara char[30], char[], dan char*. Saya akan coba menjelaskan sebisanya, salah satu perbedaan adalah char[] merupakan array dan char* merupakan pointer, apa itu pointer, pointer merupakan variable yang menyimpan suatu lokasi alamat memori, sedangkan array merupakan kumpulan data yang tersimpan pada alamat memori, perbedaan lainnya adalah, variable dengan tipe pointer tidak dapat di manipulasi misal digabungkan dengan string lain bahkan dengan sesama tipe pointer ataupun disalin, selama ini yang saya coba, mohon maaf jika ada yang kurang sesuai, mohon dikoreksi, perhatikan contoh sourcecode berikut:
#include <stdio.h>
#include <string.h>

int main() {
    char s1[11] = "Coding.com";
    char* s2 = "Coding.com";
    char s3[] = "Pintar";
    int x = 0;

    strcat(s3, s1);
    printf("Gabungan String = %s\n", s3);
    strcpy(s3, "Pintar");
    strcat(s3, s2); // perintah ini tidak bisa dijalankan
    printf("Slinan String = %s\n", s3);

    return 0;
}
Saat di compile program ini tidak akan menghasilkan error atau warning apa-apa, namun saat dijalankan akan menghasilkan error pada baris yang saya beri tanda. Sampai sejauh ini kita dapat menyimpulkan bahwa tipe data string ternyata terbagi lagi menjadi dua yaitu string dengan tipe pointer dan string dengan tipe array. mana yang terbaik saya rasa akan sangat bergantung pada penggunaan, dan jika ingin main aman, menurut saya lebih baik menggunakan tipe string yang sudah ditentukan terlebih dahulu panjang datanya yaitu char[panjangdata]. bagaimana menurut teman-teman?

Artikel berikut akan membahas tentang percabangan, tapi bukan hati yang bercabang... :p dan untuk menunggu minggu depan bagaimana kalau kita bermain-main dulu dengan contoh kasus.

Disuatu desa nan jauh disana, terdapat seorang petani yang ingin memanfaatkan lahannya sebaik mungkin yang tentunya juga tidak akan merusak alam, sehingga dia melakukan suatu riset untuk menentukan tanaman yang cocok untuk ditanam berdasarkan bulan, berikut hasil risetnya.
  • bulan januari - bulan maret = tomat/cabai
  • bulan april - bulan juni = jagung
  • bulan juli - bulan september = wortel/kacang
  • bulan oktober - bulan desember = kubis

seiring dengan berkembangnya teknologi, pak petani ini ingin memanfaatkan teknologi untuk menentukan jenis tanaman dengan variable yang digunakan adalah bulan dalam bentuk angka dan hasil yang dikeluarkan adalah jenis tanaman, contoh

  • bulan = 1; (januari) maka akan di print "tanaman yang cocok adalah tomat/cabai",
  • bulan = 5; (mei) maka akan di print "tanaman yang cocok adalah jagung",
  • bulan = 0; atau bulan = 15; (tidak ada) maka akan di print "mungkin hari sudah malam pak petani perlu istirahat".


oke sekian dulu untuk artikel ini, kita ketemu lagi diartikel berikutnya dengan pembahasan yang baru, dan juga untuk membantu pak petani menyelesaikan masalah tentang bercocok tanam dengan tanaman yang tepat sesuai bulannya.

Terima kasih, semoga bermanfaat.

Tidak ada komentar:

Poskan Komentar