Tutorial Belajar C Part 16: Pengertian dan Contoh Kode Program Tipe Data Integer

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 <stdio.h>
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;
}

Contoh kode program untuk tipe data int bahasa C

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 <stdio.h>
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;
}

Contoh kode program perbedaan char karakter dengan angka

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.

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 <stdio.h>
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;
}

Contoh kode program untuk tipe data unsigned int bahasa C

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 <stdio.h>
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;
}

Contoh kode program untuk tipe data unsigned int bahasa C

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 <stdio.h>
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;
}

Contoh kode program untuk tipe data int lebih bahasa C

Hasilnya, angka yang tersimpan tidak lagi sesuai.

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 <stdio.h>
#include <limits.h>
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;
}

Contoh kode program untuk maksimum angka integer bahasa C

Perhatikan tambahan perintah #include <limits.h> di baris kedua. Inilah cara kita menambahkan fungsi-fungsi baru ke dalam kode program C.

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.


*** Artikel Terkait ***

Add Comment