Anda di halaman 1dari 9

Materi Tipe Data dan Operator dalam

Pertemuan 6 Bahasa Pemrograman C

A. Pengertian dan Jenis Tipe Data Bahasa C


Dalam pemrograman, tipe data adalah sesuatu yang digunakan untuk
merepresentasikan jenis dari suatu nilai tertentu. Mengutip dari wikipedia, “A data
type or simply type is a classification of data which tells the compiler or interpreter
how the programmer intends to use the data”. Tipe data atau kadang disingkat
dengan ‘tipe’ saja adalah sebuah pengelompokan data untuk memberitahu compiler
atau interpreter bagaimana pemrogram ingin mengolah data tersebut.

Secara sederhana, tipe data adalah cara kita memberitahu komputer untuk
mengelompokkan data berdasarkan apa yang dipahami oleh komputer.

Sebagai contoh, misalkan kita memiliki data berupa angka. Agar bisa dipahami
oleh compiler bahasa C, data ini harus disimpan ke dalam variabel yang sudah diset
agar bisa menyimpan angka. Di dalam bahasa C, variabel yang dapat diisi dengan
angka, terdapat tipe data integer dan tipe data float. Sedangkan jika data tersebut
berupa huruf, bisa disimpan ke dalam tipe data char.

Kesalahan dalam menentukan tipe data dapat menyebabkan nilai yang


dihasilkan tidak akurat. Maka dari itu, pada bagian ini akan diperkenalkan macam-
macam tipe data yang terdapat di dalam bahasa C agar terhindar dari masalah akurasi
nilai yang tidak diinginkan

Jenis-jenis tipe data di dalam bahasa pemrograman C dibagi ke dalam 4


kelompok besar, yaitu:

- tipe data dasar,


- tipe data turunan,
- tipe data bentukan,
- tipe data void.
1) Tipe Data Dasar
Sesuai dengan namanya, tipe data dasar adalah tipe data paling dasar yang
tersedia di dalam bahasa pemrograman C. Terdapat 3 jenis tipe data dasar:
 Char: tipe data yang berisi 1 huruf atau 1 karakter.
 Integer: tipe data untuk menampung angka bulat.
 Float: tipe data untuk menampung angka pecahan.
Tipe data dasar dasar disebut juga sebagai Primary Data Type, Fundamental
Data Types atau Basic Data Type.

2) Tipe Data Turunan


Tipe data turunan berasal dari tipe data dasar yang dikelompokkan atau di
modifikasi. Terdapat 3 tipe data turunan di dalam bahasa pemrograman C:
 Array: Tipe data yang terdiri dari kumpulan tipe data dasar. Tipe data
tersebut harus 1 jenis.
 Structure: Tipe data yang terdiri dari kumpulan tipe data dasar. Tipe data
tersebut bisa lebih dari 1 jenis.
 Pointer: Tipe data untuk mengakses alamat memory secara langsung.
Tipe data turunan disebut juga sebagai Derived Data Type.

3) Tipe Data Bentukan (enum)


Sesuai dengan namanya, tipe data bentukan adalah tipe data yang dibuat
sendiri oleh seorang pemrogram. Tipe data bentukan ini berisikan data-data yang
sudah ditentukan. Tipe data bentukan ini dikenal juga sebagai Enumerated Data
Type atau disingkat sebagai enum.

4) Tipe Data Void


Tipe data void adalah tipe data khusus yang menyatakan tidak ada data.
Penggunaannya khusus untuk beberapa situasi seperti function yang tidak
mengembalikan nilai (return void), atau mengisi argumen function dengan nilai
kosong.

Mengapa tipe data boolean dan string tidak termasuk di dalam daftar ini?
Bahasa C memang tidak memiliki tipe boolean bawaan, tapi bisa dibuat
menggunakan tipe data bentukan (enum), atau menggunakan library khusus:
stdbool.h. Sedangkan untuk string, di dalam bahasa C termasuk ke dalam array.
String didefenisikan sebagai array dari tipe data char.
Pada pertemuan ini akan dibahas tipe data dasar dalam bahasa pemrograman C
yang terdiri dari tipe data char, tipe data int dan tipe data float. Sedangkan untuk tipe
data lainnya akan dibahas pada pertemuan yang lain.

1. Tipe Data char Bahasa C


Tipe data char di dalam bahasa C digunakan untuk menampung 1 digit
karakter, baik itu berupa huruf maupun berupa angka. Variabel yang didefinisikan
untuk menampung tipe data char membutuhkan 1 byte memory. Secara teknis, char
ini dikodekan dari charset ASCII.

Contoh Kode Program Tipe Data char Bahasa C


Pada contoh ini, kita akan kombinasikan dengan perintah scanf agar lebih
dinamis:
Contoh 6.1 :
#include <stdio.h>
int main(void)
{
char karakter1, karakter2, karakter3;
printf("Input 3 karakter sembarang \n");
printf("========================== \n");
printf("\n");
printf("Karakter pertama: ");
scanf(" %c",&karakter1);
printf("Karakter kedua: ");
scanf(" %c",&karakter2);
printf("Karakter ketiga: ");
scanf(" %c",&karakter3);
printf("\n");
printf("karakter yang diinput adalah: %c %c %c",
karakter1, karakter2, karakter3);
printf("\n");
return 0;
}

Di awal kode program, kita menyiapkan 3 buah variabel bertipe data char.
Ketiga variabel ini bernama karakter1, karakter2 dan karakter3. Isi program ini
akan meminta inputan dari user untuk 3 karakter tersebut, kemudian
menampilkannya kembali. Yang perlu diingat, karakter disini bisa terdiri dari huruf,
angka, serta karakter khusus seperti ?, *, %, #. Jadi tidak masalah jika kita menginput
angka ke dalam tipe data char. Namun angka tersebut tetap harus 1 digit.
Angka yang diinput ke dalam tipe data char tidak bisa diolah dalam
perhitungan, misalnya dipakai untuk perkalian atau penambahan. Jika kita
menginginkan hal ini, harus menggunakan tipe data khusus yang dapat menampung
angka seperti integer atau float.
Bagaimana dengan karakter yang lebih dari 1 digit, seperti kata atau kalimat?
Di dalam bahasa C, kata atau kalimat di kenal juga sebagai string dan ini dianggap
sebagai array dari tipe data char. Lebih lanjut hal ini akan kita pelajari setelah
membahas tentang tipe data array.

2. Tipe Data Integer Bahasa C


Tipe data integer adalah tipe data yang dipakai untuk menampung angka bulat
positif maupun negatif.
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
Tipe char memang merupakan tipe data untuk karakter, tetapi 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.
Tabel berikut merangkum jangkauan setiap tipe data integer dalam bahasa C:
Tabel 1. Jangkauan tipe data integer dalam bahasa C
Jenis Tipe Ukuran Memory
Jangkauan
Data Penyimpanan
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:
Tabel 2. Jangkauan 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, dan sebagainya.

Contoh Kode Program Tipe Data Integer Bahasa C


Pada contoh ini dapat dilihat bagaimana membuat kode program untuk
menampilkan ke-4 tipe data integer dalam bahasa C:
Contoh 6.2 :
#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;
}
Kode program ini cukup sederhana. Pertama, ditentukan 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
diisikan pada contoh diatas sengaja diset dengan nilai maksimum untuk setiap tipe
data. Selanjutnya setiap variabel ditampilkan menggunakan perintah printf.

Bagaimana untuk membuat tipe data ini sebagai unsigned? Caranya


tambahkan keyword unsigned sebelum penulisan tipe data, seperti contoh berikut:
Contoh 6.3 :
#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;
}

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 dimodifikasi sebagai berikut:
Contoh 6.4 :
#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;
}

Perubahannya hanya mengganti pola %d menjadi %u untuk menampilkan


variabel angka3 dan angka4. Yakni variabel untuk tipe data unsigned int dan
unsigned long.

3. Tipe Data Float Bahasa C


Tipe data float digunakan untuk menampung angka pecahan (angka desimal).
Sama seperti bahasa pemrograman pada umumnya, sebagai pemisah angka bulat dan
pecahan digunakan tanda titik, bukan tanda koma seperti yang kita pakai sehari-hari.
Di dalam bahasa C, selain float juga terdapat tipe data double yang juga bisa
dipakai untuk menyimpan angka pecahan. Perbedaan antara float dan double terletak
dari jangkauan angka serta tingkat ketelitian angka.
Berikut tabel perbedaan antara tipe data float dan double dalam bahasa C:
Tabel 3. Perbedaan tipe data float dan double dalam Bahasa C

Jenis Tipe Data Ukuran Memory Jangkauan Ketelitian


float 4 byte 1.2E-38 hingga 3.4E+38 6 tempat desimal
double 8 byte 2.3E-308 hingga 1.7E+308 15 tempat desimal

Sebenarnya terdapat satu lagi jenis tipe data untuk angka pecahan, yakni long
double dengan jangkauan yang lebih besar dari double. Namun tidak semua
compiler bahasa C mendukung tipe data ini.
Penulisan angka pecahan juga bisa menggunakan notasi ilmiah, seperti 3.12e2
atau 4E-3. Tanda e atau E mewakili pangkat 10, sehingga 3.12e2 = 3.12 x 10^2 =
312. Sedangkan 4E-3 = 4 x 10^-3 = 0.004.
Meskipun tipe data float bisa menyimpan angka yang sangat besar, tapi tipe
data ini memiliki kelemahan yang umum di setiap bahasa pemrograman (tidak
bahasa C saja), yakni terdapat batas tingkat ketelitian. Hal ini berhubungan dengan
mekanisme penyimpanan di dalam komputer yang berupa angka biner.

Contoh Kode Program Tipe Data Float Bahasa C


Pada contoh kode program berikut, kita akan membuat 2 buah variabel bertipe
float dan double, menginput angka, lalu menampilkannya.
Contoh 6.5 :
#include <stdio.h>
int main(void)
{
float angka1;
double angka2;
angka1 = 4.323;
angka2 = 0.0067;
printf("Isi variabel angka1 (float): %f \n",angka1);
printf("Isi variabel angka2 (double) %f \n",angka2);
printf("\n");
return 0;
}

Untuk menampilkan angka float, kita menggunakan kode %f di dalam perintah


printf.
Dari contoh diatas, kita bisa melihat bahwa secara default bahasa C
menampilkan angka desimal dengan 6 angka di belakang koma. Maksudnya, jika
yang ditulis adalah 4.323, maka yang ditampilkan menjadi 4.323000. Bagaimana
mengubahnya, misalnya menjadi 3 angka dibelakang koma?
Perintah printf memiliki aturan khusus untuk hal ini. Untuk mengatur agar
bahasa C menampilkan jumlah angka di belakang koma, kita bisa menambahkan 3
cara penulisan ke dalam pola %f. Dimana formatnya adalah sebagai berikut:

%(0)(jumlah total digit).(jumlah angka di belakang koma)%f

Kode yang ada di dalam tanda kurung bersifat opsional dan boleh tidak ditulis.
Untuk lebih jelasnya dapat kita lihat menggunakan contoh kode program berikut:
Contoh 6.6 :
#include <stdio.h>
int main(void)
{
float angka1 = 1234.5678;
printf("Isi variabel angka1: %f \n",angka1);
printf("Isi variabel angka1: %15f \n",angka1);
printf("Isi variabel angka1: %015f \n",angka1);
printf("Isi variabel angka1: %.3f \n",angka1);
printf("Isi variabel angka1: %010.3f \n",angka1);
printf("\n");
return 0;
}

Diawal kode program didefinisikan variabel angka1 sebagai float dan diisi
dengan angka 1234.5678.
- Pada perintah printf pertama, terlihat bahwa angka1 berisi 1234.567749.
Inilah salah satu kelemahan dari tipe data float, yakni tidak bisa secara persis
menyimpan angka. Kesalahan pembulatan ini umum di setiap bahasa
pemrograman yang berasal dari mekanisme konversi angka di dalam komputer
(digit biner).
- Pada perintah printf kedua menggunakan pola %15f. Pola ini akan
menampilkan angka pecahan dengan 15 digit (termasuk karakter titik). Karena
variabel angka1 tersimpan sebagai 1234.567749 (total 11 digit), maka akan
ditambah 4 spasi sebelum angka agar total menjadi 15 digit.
- Pada perintah printf ketiga menggunakan pola %015f. Pola ini juga akan
menampilkan angka pecahan dengan 15 digit, namun 4 spasi sebelumnya akan
diganti dengan angka 0.
- Perintah printf keempat menggunakan pola %.3f. Pola ini akan menampilkan
angka pecahan dengan 3 digit dibelakang koma.
- Perintah printf kelima menggunakan pola %010.3f. Pola ini akan
menampilkan angka pecahan dengan 3 digit dibelakang koma. Selain itu angka
akan ditampilkan dengan jumlah total 10 digit. Jika kurang, akan ditambah
dengan angka 0 di sisi kiri angka bulat.

Anda mungkin juga menyukai