lecKK-013413-11

advertisement
BAB XI
TIPE DATA TINGKAT LANJUT
11.1 ENUMERASI
Enumerasi (enumeration) adalah suatu tipe data yang mempunyai elemen-elemen
bernilai konstanta dengan urutan yang sudah tertentu. Nilai-nilai dari konstanta elemen ini
berupa nilai-nilai integer yang diwakili oleh nama-nama pengenal yang ditulis diantara
kurung ‘{‘ dan kurung ‘}’. Tipe data enumerasi dapat dideklarasikan dengan menggunakan
kata kunci enum.
Contoh 11.1:
#include <stdio.h>
main( )
{
enum {Minggu, Senin, Selasa, Rabu, Kamis, Jum’at, Sabtu};
printf(“%d “,Minggu);
printf(“%d “,Senin);
printf(“%d “,Selasa);
printf(“%d “,Rabu);
printf(“%d “,Kamis);
printf(“%d “,Jum’at);
printf(“%d “,Sabtu);
}
11.2 UNION
Pada C, union memungkinkan suatu lokasi memori ditempati oleh dua atau lebih
variabel yang bisa saja tipenya berlainan.
Contoh pendefinisian tipe union yang dinamakan sebagai bil_bulat, yang digunakan untuk
menyatakan data bertipe karakter atau integer;
union bil_bulat
{
unsigned int di;
unsigned char dc[2];
};
Pendeklarasian suatu variabel-union bernama bil_x yang bertipe bil_bulat dilakukan dengan
cara penulisan sebagai berikut :
union bil_bulat bil_x;
Gambar 11.1 memperlihatkan di dan dc berbagi tempat pada lokasi yang sama. (di dan
dc[0] mempunyai alamat yang sama).
dc [0]
di
dc [1]
Gambar 11.1 Variabel union dalam memori
Dalam hal ini, kompiler akan menyediakan ruangan yang cukup untuk menampung field atau
elemen pada union yang membutuhkan memori paling besar. Pada pendeklarasian variabel
bil_x misalnya, memori yang ditempati variabel ini adalah 2 byte (yaitu ukuran dari tipe int).
Elemen dari sebuah union dapat diakses dengan bentuk :
Variabel_union.namaelemen
Misalnya : bil_x.di = 321;
Untuk mengisi 321 ke elemen union bernama di. Dengan pengisian ini, maka dc[0] akan
bernilai byte 0 dari di, sedangkan dc[1] bernilai byte 1 dari di.
Contoh 11.2:
#include <stdio.h>
main( )
{
union
{
unsigned int di;
unsigned char dc[2];
} bil_x;
bil_x.di = 321;
printf(“di = %d dc[0] = %d dc[1] = %d \n”, bil_x.di, bil_x.dc[0], bil_x.dc[1]);
}
Hasil :
di = 321 dc[0] = 65 dc[1] = 1
11.3 STRUKTUR
Pada bahasa pemrograman lain biasa disebut dengan record. Struktur adalah
sekelompok tipe data yang dibuat menjadi tipe data tunggal. Kata kunci yang digunakan
adalah struct.
Bentuk Umum :
struct namastruktur
{
deklarasi_var_1 ;
deklarasi_var_2 ;
-------deklarasi_var_n ;
}
Keterangan :
 namastruktur, adalah nama variabel dari struktur atau record.
 Deklarasi_var_1, deklarasi_var_2, s.d. , deklarasi_var_n. adalah sekelompok tipedata
yang merupakan anggota pembentuk tipe data tunggal daripada (struktur) namastruktur.
Misalnya struktur data_tanggal, bisa tersusun dari tanggal, bulan dan tahun.
Contoh :
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
}
11.3.1 Mendefinisikan Variabel Struktur
Apabila suatu struktur telah dideklarasikan, struktur ini dapat digunakan untuk
mendefinisikan suatu variabel. Misalnya :
data_tanggal tanggal_lahir;
atau,
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
}tanggal_lahir;
merupakan pendefinisian variabel struktur tanggal_lahir
bertipe struktur
data_tanggal. Dengan adanya pendefinisian ini, tanggal_lahir telah memiliki tiga
buah anggota/elemen, yaitu :
 tanggal (bertipe integer)
 bulan (bertipe integer)
 tahun (bertipe integer)
11.3.2 Mengakses Anggota Struktur
Anggota/elemen struktur dapat diakses secara individual dengan menyebutkan nama
variabel strukturnya diikuti oleh operator titik dan nama dari elemen struktur.
Bentuk umum akses Anggota struktur:
Variabelstruktur.nama_anggota
Tanda titik diberikan diantara nama variabel struktur dan nama anggota. Misalnya :
Tanggal_lahir.tanggal = 19;
Contoh diatas merupakan pernyataan penugasan untuk memberikan nilai
anggota tanggal pada variabel struktur tanggal_lahir.
19 ke
Pada C, struktur bisa lebih berdaya guna, karena disamping berisi data, pada struktur
dapat diisi fungsi pengolahan dari pada data itu sendiri. Dengan ini struktur bertindak
seperti kelas. Hanya saja anggota struktur bersifat publik.
Download