Melanjutkan tutorial belajar tentang tipe data pascal, kali ini saya akan membahas pengertian dan cara penggunaan tipe data set di dalam pascal.
Tipe data set digunakan untuk membuat operasi himpunan.
Pengertian Tipe Data Set Pascal
Tipe data set adalah tipe data yang terdiri dari kelompok data yang sama. Ini sedikit mirip dengan tipe data enumeration, dimana kita bisa menentukan sendiri isi dari tipe data set.
Secara khusus, tipe data set ini sangat mirip dengan konsep himpunan di dalam matematika.
Sebagai contoh, misalnya saya membuat sebuah himpunan huruf fokal, himpunan ini terdiri dari huruf 'a', 'i', 'u', 'e' dan 'o'. Kemudian, saya bisa melakukan beberapa proses terhadap himpunan ini, apakah itu penambahan dengan himpunan lain (union), pengurangan dengan himpunan lain (irisan), dll.
Di dalam pascal, konsep himpunan inilah yang menjadi tipe data set.
Cara Penggunaan Tipe Data Set Pascal
Untuk membuat tipe data set di dalam pascal, kita cukup mendeklarasikan variabel sebagai set of tipe_data. Sebagai contoh, untuk membuat variabel yang merupakan himpunan dari tipe data char, bisa ditulis seperti berikut ini:
var  himpunan1: set of char;
Sekarang, variabel himpunan1 merupakan tipe data set yang bisa diisi dengan sembarang karakter (char). Kita juga bisa membatasi anggota yang bisa diterima oleh himpunan ini, yang penulisannnya dilakukan sebagai berikut:
var  himpunan1: set of 1..9;  himpunan2: set of 99..999;  himpunan3: set of 'a'..'z';
Untuk mengisi anggota himpunan, dilakukan dengan menggunakan tanda kurung siku. Sebagai contoh, jika himpunan1 merupakan set of char, saya bisa mengisinya dengan karakter huruf vokal seperti berikut ini:
himpunan1 := ['a','i','u','e','o'];
Sekarang, himpinan 1 akan berisi 5 anggota yakni huruf 'a', 'i', 'u', 'e', dan 'o'.
Mari kita lihat cara penggunaan tipe data set ini didalam bahasa pemrograman pascal:
program tipe_set; uses crt; var  himpunan1: set of char; begin  clrscr;  himpunan1 := ['a','i','u','e','o'];   if 'e' in himpunan1 then    writeln('e ada di himpunan1');   readln; end.
Jika anda menjalankan kode program diatas, hasilnya adalah: 'e ada di himpunan1'. Sampai di tutorial ini, saya memnag belum membahas struktur logika IF, tapi kode:
if 'e' in himpunan1 then writeln('e ada di himpunan1');
Bisa dibaca: Jika 'e' ada di dalam himpunan1, maka jalankan perintah writeln('e ada di himpunan1').
Bagaimana jika karakter yang dicari tidak ada? Mari kita coba:
program tipe_set; uses crt; var  himpunan1: set of char; begin  clrscr;  himpunan1 := ['a','i','u','e','o'];   if 'x' in himpunan1 then    writeln('x ada di himpunan1');   readln; end.
Jika anda menjalankan kode diatas, tidak akan tampil apa-apa, karena variabel x tidak terdapat di dalam himpunan1.
Untuk contoh selanjutnya, saya akan menggunakan himpunan angka 0 sampai 9. Berikut kode programnya:
program tipe_set; uses crt; var  himpunan1: set of 1..9; begin  clrscr;  himpunan1 := [1,3,8,9];   if 8 in himpunan1 then    writeln('8 ada di himpunan1');   readln; end.
Kode program diatas sangat mirip dengan kode program kita sebelumnya, tapi kali ini saya membuat anggota himpunan yang terdiri dari angka 0 hingga 9. Karena huruf 8 terdapat di dalam himpunan1, maka akan tampil hasil '8 ada di himpunan1'.
Jika anda perhatikan, himpunan1 saya batasi hanya bisa diisi dengan angka 0 hingga 9 (melalui perintah: himpunan1: set of 1..9). Bagaimana jika saya memasukkan angka diluar ini? Mari kita coba:
program tipe_set; uses crt; var  himpunan1: set of 1..9; begin  clrscr;  himpunan1 := [1,3,8,9,10];   if 10 in himpunan1 then    writeln('10 ada di himpunan1');   readln; end.
Saya menambahkan angka '10' kedalam anggota himpunan1, dan anehnya pascal tidak akan mengeluarkan error. Kode program diatas bisa dijalankan, tapi…. tidak akan menampilkan hasil apa-apa. Kenapa? Karena angka 10 tidak ikut dihitung sebagai aggota himpunan1 yang memang dibatasi hanya angka 0 sampai 9.
Sebagai penutup tutorial cara penggunaan tipe data set pascal ini, saya akan mencoba menampilkan operasi penggabungan himpunan, atau di dalam teori himpunan dikenal dengan operasi union. Berikut contoh kode programnya:
program tipe_set; uses crt; var  i:char;  himpunan1: set of char;  himpunan2: set of char;  himpunan3: set of char; begin  clrscr;  himpunan1 := ['a','i','u','e','o'];  himpunan2 := ['x','y','z'];   himpunan3 := himpunan1 + himpunan2;   for i in himpunan3 do    writeln(i);   readln; end.
Sekali lagi, pembahasan tentang operator dan struktur FOR akan saya bahas setelah tutorial tentang tipe data selesai. Tapi secara singkat, kode program diatas menggabungkan (union) himpunan1 dengan himpunan2, yang hasilnya disimpan ke dalam himpunan3.
Perulangan for digunakan untuk menampilkan seluruh isi dari himpunan3. Hasilnya adalah sebagai berikut:
Dapat terlihat, himpunan3 terdiri dari anggota gabungan dari himpunan1 dan himpunan2.
Dalam tutorial belajar pascal kali ini kita telah membahas tentang tipe data set di dalam pascal. Berikutnya, kita akan membahas tipe data yang sangat menarik, namun tidak jarang membuat sakit kepala: tipe data pointer pascal.
yg bagian ini
.
.
himpunan1: set of 1..9;
begin
clrscr;
himpunan1 := [1,3,8,9,10];
.
.
Kok bisa gak error yah gan? brarti angka 10 di himpunan1 itu tetap masuk yah?
Angka 10 bukan bagian dari 1-9 gan…
Tapi tetep bisa di run terus outputnya sesuai sama yang ingin di tampilkan
gan kenapa di outputnya tidak ada huruf a nya? kan huruf a termasuk himpunan 1
Oh iya… kebetulan tampilan print screen hasilnya sedikit terpotong. Seharusnya a tetap tampil, silahkan di coba langsung…
Kak kok saya udh coba tapi munculnya cuma x,y,z doang sih?
Kalau hanya tampil x,y,z saja maka kemungkinan besar ada salah ketik. Bisa jadi yang di loop adalah himpunan2, bukan himpunan3.
contoh program union,
var
i:char;
//saya ganti jadi huruf lain dan type data lain
var
s:string;
masih tetap bisa tampil kok kak yg himpunan 3 nya, hehehe