Rabu, 27 Maret 2013

Variable, Tipe Data dan Operator Bahasa C

Artikel untuk belajar bahasa pemrograman C kali ini akan membahas tentang variable dan tipe data serta operator. Sekilas tentang variable, variable dapat diibaratkan wadah untuk menyimpan, untuk membuat suatu wadah penyimpanan kita butuh untuk menentukan jenis apa saja yang bisa disimpan dalam suatu wadah penyimpanan (variable), jenis apa yang disimpan ini disebut tipe data. Sehingga dalam bahasa pemrograman C, variable tidak bisa di pisahkan dengan tipe data.

Untuk tahap awal mari kita berkenalan dengan macam-macam tipe data dari bahasa pemrograman C, terdapat setidaknya 4 kelompok tipe data standart dari bahasa pemrograman C. Antara lain:
  1. benar salah (boolean), berisikan nilai True atau False
  2. bilangan bulat (short int, int, long int), 
  3. bilangan pecahan (float, double, long double),
  4. karakter/string (char, char*),
sudah berkenalan teman-teman???... :) kalau sudah mari kita coba untuk mendeklarasikan suatu variable dalam bahasa pemrograman C, adapun formatnya sebagai berikut:
<tipe data> <nama variable>; atau,
<tipe data> <nama variable> = <isi data>;

Mari kita coba pada program hallo world minggu lalu;
#include <stdio.h>
int main() {
    char* nama = "PintarCoding.com";
    printf("Hallo %s!!!\n", nama);
    return 0;
}
baris perintah diatas akan menghasilkan "Hallo PintarCoding.com!!!\n".  
perhatikan string "Hallo %s!!!\n" pada printf, pada string ini terdapat "%s", "%s" ini berfungsi untuk menandakan bahwa pada posisi tersebut akan di sisipkan suatu string, dan stirng yang disisipkan ada pada variable "nama", "s" pada "%s" sendiri dapat diganti-ganti sesuai dengan tipe data pada variable yang akan kita sisipkan.

Contoh lainnya :
#include <stdio.h>
int main() {
    int tambah = 1 + 1;
    char* ket =  "satu tambah satu";
    printf("%s = %d\n", ket, tambah);
    return 0;
}
baris perintah diatas akan menghasilkan "satu tambah satu = 2\n".  
Dalam hal ini terdapat 2 variable yang akan disisipkan, “%s” untuk ket (char*), sedangkan “%d” untuk "tambah" (int). Variable-variable di belakang string yang akan diprint akan bertambah sesuai dengan data yang akan disisipkan. Bagaimana dengan tipe-tipe data yang lain, berikut table sederhana yang dapat membantu untuk menjelaskan tipe-tipe data yang lainnya,

No Kelompok Tipe data

Keterangan Printf specifier
1 Bilangan bulat short int (16 bit) signed -32 768 s/d 32 767 d
2 unsigned 0 s/d 65 535 u
3 int (32 bit) signed -2 147 483 648 s/d
2 147 483 647
d
4 unisigned 0 s/d 4 294 967 296 u
5 long int (32 bit) signed -2 147 483 648 s/d
2 147 483 647
ld
6 unsigned 0 s/d 4 294 967 296 lu
7 Bilangan pecahan float (32 bit) ± 7 digit desimal f
8 double (64 bit)

± 15 digit desimal f
9

long double (64 bit) ± 15 digit desimal Lf
10 Benar Salah boolean
11 Karakter / string char 1 karakter c
12 char* >= 1 karakter (String) s

Bagaimana setelah berkenalan dengan tipe-tipe data, lumayan bersahabat kan???... :) oke minggu depan akan membahas lebih dalam lagi untuk variable, tipe data dan operator.

Berikut saya sertakan percobaan soal tipe data bilangan bulat dan pecahan buat teman-teman yang ingin mengetahui lebih dalam soal jangkauan nilai yang bisa di isi pada tipe-tipe data tersebut sesuai table diatas.
#include <stdio.h>

void main() {
    short int var_shortint;
    int var_normalint;
    long int var_longint;
    float var_floatnum;
    double var_doublenum;
    long double var_longdouble;

    var_shortint = 32767;
    var_normalint = 2147483647;
    var_longint = 2147483647;
    
    var_floatnum = 2147.483647123456789;
    var_doublenum = 2147.483647123456789;
    var_longdouble = 2147.483647123456789;
    
    printf("short int   = %d\n", var_shortint);
    printf("int         = %d\n", var_normalint);
    printf("long int    = %ld\n", var_longint);

    printf("float       = %.20f\n", var_floatnum);
    printf("double      = %.20f\n", var_doublenum);
    printf("long double = %.20Lf\n", var_longdouble);
}
baris perintah diatas akan menghasilkan :
short int   = 32767
int         = 2147483647
long int    = 2147483647
float       = 2147.48364257812500000000
double      = 2147.48364712345664884197
long double = 2147.48364712345664884197

jika angka-angka short int, int, dan long int ditambah 1 maka angka yang dihasilkan akan tidak sesuai lagi, bisa dicoba sendiri, dan perhatikan untuk float, double dan long double, angka2 diluar range desimalnya menjadi berbeda dengan nilai awal. Oke demikian intermesonya, sampai jumpa dipostingan berikutnya... :)

Terima Kasih, Semoga bermanfaat.

Reff :
https://id.wikipedia.org/wiki/C%2B%2B
http://www.cplusplus.com/reference/cstdio/printf/

2 komentar:

  1. apa bedanya char* ket = "Botak"; sama char ket[30] = "Botak", apakah ada perbedaan?

    BalasHapus
    Balasan
    1. halo benyamin, secara penggunaan sih memang sama, hanya "char* ket" akan lebih flksibel dibandng "char ket[30]", yang mana "char ket[30]" hanya bisa di isi dengan 29 karakter saja, karena dalam hal ini hanya terisi 5 karakter sehingga 24 sisahnya akan bernilai kosong...
      Namun secara cara penempatannya dalam memori berbeda, jika ingin mengetahui lebih detail masalah penempatannya dalam memori bisa baca-baca disini http://www.cs.bu.edu/teaching/cpp/string/array-vs-ptr/

      mohon dikoreksi jika ada yang salah... jika masih belum jelas bisa diskusikan disini biar nanti bisa banyak yang bantu juga... :)

      Thanks.

      Hapus