Dalam tutorial pascal sebelum ini kita telah mempelajari 4 tipe dasar pascal: integer, real, char dan boolean (di dalam pascal, tipe data string bukanlah tipe data dasar karena merupakan array dari char).
Pada tutorial ini dan beberapa tutorial selanjutnya kita akan masuk ke tipe data bentukan pascal. Saya akan mulai dengan membahas pengertian dan cara penggunaan tipe data enumerated dalam bahasa pemrograman pascal.
Pengertian Tipe Data Enumerated Pascal
Tipe data enumerated adalah tipe data khusus yang isinya bisa kita tentukan sendiri. Sebagai contoh, kita bisa membuat tipe enumerated 'warna' yang berisi: merah, kuning, biru dan ungu. Atau tipe enumerated 'nama_hari' yang berisi nama-nama hari seperti senin, selasa, rabu, dst.
Tipe data enumerated sering juga disebut enumeration atau enum saja.
Cara Penggunaan Tipe Data Enumerated Pascal
Untuk membuat tipe data enumerated di pascal, kita harus menggunakan perintah type, baru kemudian mendeklarasikannya menggunakan perintah var.
Sebagai contoh, jika saya ingin membuat tipe enum "nama_hari" yang berisi nama-nama hari, harus mendefenisikannya sebagai berikut:
type  nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
Setelah itu, baru diberikan ke dalam variabel:
var  a,b: nama_hari;
Sekarang variabel a dan b berisi tipe enum nama_hari. Berikut contoh kode program lengkapnya:
program tipe_enumerated; uses crt; type  nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu); var  a,b: nama_hari; begin  clrscr;   a:= senin;  writeln('a: ',a);   b:= minggu;  writeln('b: ',b);   readln; end.
Perhatikan urutan pendefenisian tipe enum 'nama_hari', dimana kita harus membuat isinya terlebih dahulu (menggunaka keyword type), baru kemudian diberikan ke dalam variabel (menggunakan keyword var).
Variabel a dan b dalam contoh diatas hanya bisa diisi dengan nilai yang ada di dalam tipe data enum nama_hari. Jika saya memberikan nama lain, compiler pascal akan menghasilkan error, seperti contoh berikut:
program tipe_enumerated; uses crt; type  nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu); var  a,b: nama_hari; begin  clrscr;   a:= januari;  writeln('a: ',a);    readln; end.
Pada contoh diatas, saya mencoba memberikan nilai 'januari' ke dalam variabel a. Hasilnya, compiler FreePascal akan menghasilkan error karena 'januari' tidak ada di dalam nama hari.
Selain itu perhatikan bahwa walaupun nama-nama hari diatas adalah kumpulan karakter (string), kita tidak perlu memberikan tanda kutip.
Salah satu sifat tipe data enumerated di pascal, kita tidak bisa membuat nilai angka sebagai bagian dari tipe data enumerated. Contoh berikut akan menghasilkan error:
program tipe_enumerated; uses crt; type  angka= (1,2,3,4,5); var  a,b: angka; begin  clrscr;   a:= 1;  writeln('a: ',a);   readln; end.
Error diatas terjadi karena saya memberikan nilai angka (integer): 1,2,3,4,5 untuk tipe data enum 'angka'. Jika kita ingin membuat batasan seperti ini bisa menggunakan tipe data subrange (akan dijelaskan dalam tutorial setelah ini).
Di dalam sebuah kode program pascal, kita juga bisa membuat lebih dari 1 tipe enum, seperti contoh berikut:
program tipe_enumerated; uses crt; type  warna= (merah,kuning,biru,ungu,jingga);  angka= (satu,dua,tiga,empat,lima); var  a: warna;  b: angka; begin  clrscr;   a:= kuning;  writeln('a: ',a);   b:= tiga;  writeln('b: ',b);   readln; end.
Pada contoh diatas, saya membuat 2 buah tipe data enumerated yang berisi nama-nama warna dan nama angka, kemudian menampilkan isinya.
Dalam tutorial kali ini kita telah membahas cara penggunaan tipe data enumerated di dalam pascal. Selanjutnya kita masuk ke tipe data Subrange.
Manteb bang. aye belon ngarti nyang while do dan case of. tolong jelasin bang
Yup, tutorial tentang perulangan (looping) do while dan case of akan menyusul sebentar lagi gan, ditunggu saja…
Bang, kalo type data enum ini bisa ga dipanggil (readln)? jadi user yang inputin, tapi harus yang ada di dalam pilihan, bisa ga kalo gitu?
Kalau yang seperti itu mesti di cek belakangan gan. Input dari user di tampung dulu, lalu di cek pakai kondisi IF ELSE, jika cocok lanjut ke kode program di bawahnya. Jika tidak cocok, minta user input balik.
bang, saya coba kode di atas dan hasilnya "Error 64 : Cannot Read or Write variables of this type." gimana ini caranya ?
Kurang tau juga nih dimana errornya, tapi bisa diperiksa apakah ada karakter yang tertinggal atau copy paste saja kode diatas.
Juga pastikan memakai compiler Free Pascal, karena kalau pakai Turbo Pascal bisa jadi ada fitur yang tidak tersedia.
Bang berarti gk ada beda nya dong sama pendeklarasian konstanta, soal nya sama udah di tentuin nilai dari variabel
beda bang kalo konstanta cuma bisa masukin angka tapi kalo konsep sih kyk nya sama