Tipe data enumerasi
merupakan tipe data yang berisi sejumlah pengenal yang diciptakan sendiri oleh
pemrogram. Dalam sebuah program, tipe data enumerasi harus dideklarasikan
terlebih dahulu pada bagian deklarasi di awal program. Bentuk umum deklarasi
tipe data enumerasi adalah sebagai berikut :
TYPE
nama_tipe = (pengenal_1, pengenal_2, ..., pengenal_n);
VAR
nama_var :
nama_tipe;
pengenal_1, pengenal_2, ..., pengenal_n tidak boleh berupa bilangan. Tipe data enumerasi
memiliki nilai ordinal pada masing-masing pengenal yang dimiliki. Nilai ordinal
berawal dari pengenal yang pertama sampai terakhir. Pengenal pertama memiliki
nilai ordinal 0, selanjutnya adalah 1, kemudian 2, dan seterusnya. Jadi, pengenal_1 memiliki nilai ordinal 0. pengenal_2 memiliki nilai ordinal 1, dan
seterusnya. Sehingga pengenal_n
miliki nilai ordinal n-1. Pengurutan ini disebut ordinary. Jadi ordinary
dari pengenal_n adalah n-1.
Dalam data enumerasi,
masing-masing pengenal memiliki kedudukan terhadap pengenal yang lain. Pada
pengenal di ordinary tertentu, ada pengenal yang berada tepat sesudahnya, dan
ada pengenal yang terletak tepat sebelumnya. Pengenal yang berbeda tepat sesudahnya
disebut sebagai successor. Pengenal
yang berada tepat sebelumnya disebut sebagai predecessor. Jadi, pengenal_n
pada successor-nya adalah pengenal_n+1 dan predecessor adalah pengenal_n-1.
A. LATIHAN SOAL
- Nomor Program 1201
Tulislah program berikut dan amatilah outputnya!
PROGRAM enumerasi;
USES CRT;
TYPE
hari = (Minggu,
Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);
VAR
today : hari;
BEGIN
CLRSCR;
WRITELN(‘Nilai
Ordinal Senin-Sabtu’);
FOR today :=
Minggu TO Sabtu DO
WRITELN(ord(today));
WRITELN;
WRITELN(‘Hari ini
adalah hari SELASA’);
WRITELN(‘Hari ini
adalah hari ke- ‘,ord(selasa));
WRITELN(‘Kemaren
adalah hari ke- ‘,ord(pred(selasa)));
WRITELN(‘Besok
adalah hari ke- ‘,ord(succ(selasa)));
WRITELN(‘Lusa
adalah hari ke- ‘,ord(succ(succ(selasa))));
REPEAT UNTIL
KEYPRESSED;
END.