Enumerasi Catatan Kuliah: Algoritma & Struktur Data Ari Cahyono, S.Si., M.T Enumerasi (enumerated) • Asal Kata • Enumerate • list items individually; count things • Tipe enumerasi adalah sebuah daftar identifier (nama) terurut. • Enumerasi merupakan pengganti yang baik bagi koleksi konstanta. Sebagai contoh, konstanta berikut dapat diganti dengan enumerasi: const Minggu = 0; Senin = 1; Selasa = 2; Rabu = 3; Kamis = 4; Jumat = 5; Sabtu = 6; Enumerasi (Cont’d) • Syntax untuk mendeklarasikan tipe enumerasi adalah: Type TEnumeratedType = (value_1, value_2, value_n); THari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu); • Dengan menggunakan variabel bertipe THari, dan bukannya integer, code menjadi lebih mudah dibaca dan memungkinkan Delphi untuk melakukan pemeriksaan tipe data (type checking). • Setiap identifier pada enumerasi memiliki nilai ordinal. Nilai ordinal pada enumerasi diawali dari nol. Jadi ord(Minggu) = 0. Nilai Ordinal Type THari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu); Nilai Ordinal: 0 ::: Ordinal: - Showing position 1 2 3 4 5 6 Nilai Ordinal (Cont’d) • Seluruh procedure dan function ordinal dapat memanfaatkan tipe data enumerasi. Nilai setiap elemen enumerasi dapat pula dinyatakan secara eksplisit. type TOddNumber = (oddFirst = 1, oddSecond = 3, oddThird = 5, oddFourth = 7); TEvenNumber = (evFirst = 0, evSecond = 2, evThird = 4, evFourth = 6); var OddNum: TOddNumber; begin OddNum := oddThird; WriteLn(Ord(OddNum)); { 5 } ReadLn; end. Tipe Subrange • Sebuah tipe subrange merepresentasikan sebagian dari tipe dasar (semua tipe ordinal). • Deklarasi subrange serupa dengan syntax range pada deklarasi array: type { enumerated type } TDay = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); { subrange types } TWeekend = Saturday..Sunday; TPercent = 0..100; TAlphabet = 'a'..'z'; Constant & Typed Constant • Sebuah constant adalah sebuah identifier yang nilainya didefinisikan oleh programmer dan tidak dapat diubah pada saat run time. • Typed Constant adalah constant yang ber-tipe. Nilainya dapat diubah pada saat run time. Typed constant sesungguhnnya adalah variabel yang nilai awalnya didefinisikan oleh programmer. const Planck: Real = 6.626068e-34 type TBBM = (Premium, Solar, Pertamax); const BBMPrice: array[TBBM] of Integer = (5500, 4500, 7500);