Tipe data berikutnya yang akan kita pelajari dalam lanjutan tutorial belajar bahasa pemrograman C di Duniailkom kali ini adalah tipe data integer. Kita akan bahas pengertian tipe data integer serta contoh kode program untuk tipe data integer dalam bahasa C.
Pengertian Tipe Integer Bahasa C
Tipe data integer adalah tipe data yang dipakai untuk menampung angka bulat positif maupun negatif, seperti: 1, 99, dan -463.
Di dalam bahasa C, terdapat beberapa sub-tipe integer yang dibedakan berdasarkan jangkauan angka yang bisa ditampung. Setidaknya terdapat 4 tipe data integer di dalam bahasa C:
- char
- short
- int
- long
Loh, bukannya char adalah tipe data untuk karakter? Kenapa juga ada di dalam integer? Betul, inilah keunikan tipe data char di dalam bahasa C.
Secara internal, char sebenarnya bertipe integer. Untuk membedakan apakah char ini berisi karakter atau huruf dilakukan pada saat menampilkannya.
Jika di dalam perintah printf menggunakan kode %c, karakter lah yang akan ditampilkan. Sedangkan jika di dalam perintah printf menggunakan kode %d, maka akan menampilkan tipe data integer. Kita akan lihat perbedaannya dengan contoh kode program sesaat lagi.
Tabel berikut merangkum jangkauan setiap tipe data integer dalam bahasa C:
Jenis Tipe Data | Ukuran Memory Penyimpanan | Jangkauan |
---|---|---|
char | 1 byte | -128 hingga 127 |
short | 2 bytes | -32,768 hingga 32,767 |
int | 2 bytes | -32,768 hingga 32,767 |
int | 4 bytes | -2,147,483,648 hingga 2,147,483,647 |
long | 4 bytes | -2,147,483,648 hingga 2,147,483,647 |
Ukuran Memory Penyimpanan adalah jumlah memory yang dibutuhkan untuk menyimpan angka tersebut. Semakin besar jangkauan, semakin banyak juga ruang memory yang dibutuhkan.
Khusus untuk tipe data int, bisa terdiri dari 2 byte maupun 4 byte. Ini tergantung sistem komputer dan compiler bahasa C yang dipakai.
Jangkauan tipe data diatas adalah untuk angka yang bertanda (signed). Maksudnya, setiap tipe data bisa menampung angka positif dan negatif. Kita bisa mengorbankan nilai negatif ini untuk memperbesar jangkauan angka positif dengan menambahkan keyword unsigned sebelum penulisan tipe data.
Jika tipe data integer di-set sebagai unsigned (tidak bertanda), maka tipe data tersebut tidak bisa menampung angka negatif, namun jatah untuk angka negatif akan dialihkan kepada angka positif sehingga jangkauannya menjadi 2 kali lipat.
Berikut tabel jangkauan setiap tipe data unsigned integer dalam bahasa C:
Jenis Tipe Data | Ukuran Memory Penyimpanan | Jangkauan |
---|---|---|
unsigned char | 1 byte | 0 hingga 255 |
unsigned short | 2 bytes | 0 hingga 65,535 |
unsigned int | 2 bytes | 0 hingga 65,535 |
unsigned int | 4 bytes | 0 hingga 4,294,967,295 |
unsigned long | 4 bytes | 0 hingga 4,294,967,295 |
Terlihat jangkauan angkanya menjadi lebih besar, tapi tidak bisa menampung angka negatif. Tipe data unsigned ini cocok untuk data yang tidak pernah negatif, seperti tinggi badan, berat badan, jumlah orang, dsb.
Contoh Kode Program Tipe Data Integer Bahasa C
Cukup dengan teorinya, mari kita masuk ke contoh praktek. Dalam kode program berikut ini saya menampilkan ke-4 tipe data integer dalam bahasa C:
#include
int main(void)
{
char angka1;
short angka2;
int angka3;
long angka4;
angka1 = 127;
angka2 = 32767;
angka3 = 2147483647;
angka4 = 2147483647;
printf("Isi variabel angka1 (char): %d \n",angka1);
printf("Isi variabel angka2 (short) %d \n",angka2);
printf("Isi variabel angka3 (int): %d \n",angka3);
printf("Isi variabel angka4 (long): %d \n",angka4);
printf("\n");
return 0;
}
Kode program ini cukup sederhana. Pertama, saya membuat 4 variabel: angka1, angka2, angka3 dan angka4. Setiap variabel di-set dengan tipe data yang berbeda-beda, dimana variabel angka1 sebagai char, variabel angka2 sebagai short, variabel angka3 sebagai int, dan variabel angka4 sebagai long.
Setelah pendefinisian variabel, setiap variabel diisi dengan angka. Angka yang ada sengaja saya set dengan nilai maksimum untuk setiap tipe data. Terakhir setiap variabel ditampilkan menggunakan perintah printf.
Khusus untuk char, ini memang cukup unik. Karena fungsinya akan berbeda tergantung cara menampilkan tipe data ini. Berikut contoh perbedannya:
#include
int main(void)
{
char foo = 65;
char bar = 'Z';
printf("Isi variabel foo (char): %d \n",foo);
printf("Isi variabel foo (char): %c \n",foo);
printf("\n");
printf("Isi variabel bar (char): %d \n",bar);
printf("Isi variabel bar (char): %c \n",bar);
printf("\n");
return 0;
}
Dalam contoh ini saya membuat 2 buah variabel bertipe char: foo dan bar. Variabel foo diisi angka 65, sedangkan variabel bar diisi dengan karakter ‘Z’.
Hasilnya akan berbeda ketika di dalam perintah printf kita menggunakan pola %d untuk tipe integer, atau %c untuk tipe data char.
Ketika variabel foo diakses sebagai integer, hasilnya adalah 65. Ini sesuai dengan nilai awal variabel. Namun ketika variabel foo diakses sebagai char, hasilnya adalah huruf ‘A’. Dari mana datangnya huruf ‘A’?
Ini berasal dari kode karakter ASCII dimana huruf ‘A’ bernilai desimal 65. Dengan kata lain, di dalam daftar karakter ASCII, huruf A berada di urutan ke 65.
Hal yang sama juga berlaku untuk variabel bar yang diisi karakter ‘Z’. Ketika diakses sebagai integer, hasilnya berupa angka 90, karena huruf Z berada di urutan ke 90 daftar karakter ASCII. Untuk tabel karakter ASCII ini bisa dilihat ke id.wikipedia.org/wiki/ASCII.
Contoh Kode Program Unsigned Integer C
Kembali ke pembahasan tipe data integer. Bagaimana untuk membuat tipe data ini sebagai unsigned? Caranya tambahkan keyword unsigned sebelum penulisan tipe data, seperti contoh berikut:
#include
int main(void)
{
unsigned char angka1;
unsigned short angka2;
unsigned int angka3;
unsigned long angka4;
angka1 = 255;
angka2 = 65535;
angka3 = 4294967295;
angka4 = 4294967295;
printf("Isi variabel angka1 (char): %d \n",angka1);
printf("Isi variabel angka2 (short) %d \n",angka2);
printf("Isi variabel angka3 (int): %d \n",angka3);
printf("Isi variabel angka4 (long): %d \n",angka4);
printf("\n");
return 0;
}
Sekarang, jangkauan setiap tipe data sudah membesar 2 kali lipat dengan mengorbankan angka negatif. Efek sampingnya, kita tidak bisa lagi menginput angka negatif ke dalam variabel diatas.
Tipe data char yang sebelumnya hanya bisa sampai angka 127 sekarang bisa menampung nilai 0 – 255. Begitu juga dengan tipe data unsigned short yang bisa menampung 0 – 65535.
Tapi kenapa tipe data unsigned int dan unsigned long menghasilkan -1? Ternyata khusus untuk jenis unsigned, kita tidak bisa menggunakan pola karakter %d, tapi harus diganti menjadi %u.
Dengan demikian, kode program sebelumnya akan saya modifikasi sebagai berikut:
#include
int main(void)
{
unsigned char angka1;
unsigned short angka2;
unsigned int angka3;
unsigned long angka4;
angka1 = 255;
angka2 = 65535;
angka3 = 4294967295;
angka4 = 4294967295;
printf("Isi variabel angka1 (char): %d \n",angka1);
printf("Isi variabel angka2 (short) %d \n",angka2);
printf("Isi variabel angka3 (int): %u \n",angka3);
printf("Isi variabel angka4 (long): %u \n",angka4);
printf("\n");
return 0;
}
Perubahannya hanya mengganti pola %d menjadi %u untuk menampilkan variabel angka3 dan angka4. Yakni variabel untuk tipe data unsigned int dan unsigned long.
Apa yang terjadi apabila menginput angka diluar batas maksimum? Mari kita coba:
#include
int main(void)
{
unsigned char angka1;
unsigned short angka2;
unsigned int angka3;
unsigned long angka4;
angka1 = 299;
angka2 = 65599;
angka3 = 4294967299;
angka4 = 4294967299;
printf("Isi variabel angka1 (char): %d \n",angka1);
printf("Isi variabel angka2 (short) %d \n",angka2);
printf("Isi variabel angka3 (int): %u \n",angka3);
printf("Isi variabel angka4 (long): %u \n",angka4);
printf("\n");
return 0;
}
Hasilnya, angka yang tersimpan tidak lagi sesuai.
Batas Minimum dan Maksimum Integer Bahasa C
Sebagai kode program terakhir, saya akan menambah sebuah file header baru, yakni limits.h. File header ini berisi berbagai konstanta dan fungsi agar kita bisa melihat berapa sebenarnya nilai maksimum dan minimum dari setiap tipe data. Berikut contoh penggunaannya:
#include
#include
int main(void)
{
printf("Ukuran memory untuk tipe data char: %d byte \n", sizeof(char));
printf("Ukuran memory untuk tipe data short: %d byte \n",sizeof(short));
printf("Ukuran memory untuk tipe data int: %d byte \n", sizeof(int));
printf("Ukuran memory untuk tipe data long: %d byte \n", sizeof(long));
printf("\n");
printf("Nilai minimal tipe data char: %d \n", SCHAR_MIN);
printf("Nilai minimal tipe data short: %d \n", SHRT_MIN);
printf("Nilai minimal tipe data int: %d \n", INT_MIN);
printf("Nilai minimal tipe data long: %d \n", LONG_MIN);
printf("\n");
printf("Nilai maksimal tipe data char: %d \n", SCHAR_MAX);
printf("Nilai maksimal tipe data short: %d \n", SHRT_MAX);
printf("Nilai maksimal tipe data int: %d \n", INT_MAX);
printf("Nilai maksimal tipe data long: %d \n", LONG_MAX);
printf("\n");
return 0;
}
Perhatikan tambahan perintah #include
Dengan tambahan perintah ini, saya bisa menggunakan fungsi sizeof() untuk melihat berapa jumlah memory yang dipakai untuk setiap tipe data, serta mengakses konstanta seperti SCHAR_MIN untuk melihat nilai minimum dari tipe data char, serta SCHAR_MAX untuk melihat nilai maksimum tipe data char. Begitu juga dengan tipe data integer lainnya.
Dalam tutorial kali ini kita telah membahas pengertian tipe data integer, melihat 4 jenis tipe data integer bahasa C, serta menjalankan beberapa contoh kode program untuk tipe data integer bahasa pemrograman C.
Tipe data integer hanya bisa dipakai untuk menampung angka bulat. Bagaimana dengan angka pecahan? Kita akan bahas dalam tutorial selanjutnya: Pengertian dan Contoh Kode Program Tipe Data Float Bahasa C.
Sumber wk.com
EmoticonEmoticon