1. ƒ SET
„ ---
Set (himpunan) adalah suatu kumpulan dari obyek yang mempunyai
urutan yang dapat dianggap sebagai suatu kesatuan. Tiap anggauta
dalam set disebut member atau elemen.
Dalam bahasa Pascal anda dapat mendeklarasikan suatu tipe data
set seperti himpunan pada matmatika.
„ I. Deklarasi tipe data Set
Dalam bahasa Pascal anggauta- anggauta dari set harus mempunyai
tipe yang sama dan harus berbentuk tipe data sederhana, yaitu
bertipe ordinal yaitu seperti Integer, boolean, char, scalar tidak
termasuk real. Dalam deklarasi menggunakan kata cadangan Set Of
Jumlah maksimum elemen set adalah 256 buah bisa dimulai dari 0 -
255 ( sama seperti ukuran byte).
ex :
type
angka = set of 0..9;
Hurufangka = set of 'a'..'z';
karakter = set of char;
contoh deklarasi yang salah :
ex :
type
jumlah = set of 0..600; --> karena lebih dari 255
ex :
type
Jumlah = set of '0'..'9','A'..'F'; --> bukan tipe data ordinal
urutan tidak ada.
yang benar adalah :
type
campuran = set of char;
var
karakter : campuran;
begin
karakter:=['0'..'9','A'..' F'] --> pengisian dgn pembentuk set
„ II. Set Constructor (pembentuk set).
Pembentuk set menunjukkan elemen- elemen yang digunakan di dalam
2. ungkapan set. Pembentuk set terletak di dalam bracket [ ] yang
dipisahkan dengan koma, dapat terdiri dari satu atau lebih elemen.
ex :
[2,3,6,7,10] -> terdiri dari integer 2,3,6,7,10
[1,2,3,4,5,6] -> terdiri dari nilai integer 1 sampai 6
[1..6] -> terdiri dari nilai integer 1 sampai 6
['A'..'F'] -> terdiri dari karakter A,B,C,D,E,F
['y','Y','t','T'] -> terdiri dari karakter y,t,Y,T
['0'..'9','A'..'F'] -> terdiri karakter 0 sampai 9 dan A sampai F
[ ] -> set kosong tidak mempunyai anggauta.
„ III. Memasukan nilai tipe set ke variabel.
Suatu nilai tipe set yang ditunjukkan oleh set constructor
(pembentuk set) dapat dimasukan ke varibel tipe set.
ex :
type
karakter = set of 'a'..'x';
var
huruf : karakter;
atau deklarasi secara langsung:
Var
huruf : set of 'a'..'x';
setelah varibel tipe set huruf ini telah dideklarasikan lalu dapat
diisi kembali dengan satu atau lebih karakter. Karakter tersebut
harus dalam range 'a' sampai 'x' dengan menggunakan pembentuk
set.
ex :
Var
huruf : set of 'a'..'x';
begin
huruf :=['i','j','k','l'];
„ IV. Operasi Set
ada 3 macam operasi set yaitu :
… 1. Union atau Sum (+) / Gabungan
Adalah operasi penjumlahan 2 buah set dengan menggunakan opera
tor set (+), Hasil penjumlahan merupakan set ketiga yang mem
punyai nilai anggauta set pertama dan anggauta set kedua.
Contoh : [1,2,3,4,5] + [2,3,4,5,6,7]=[1,2,3,4,5,6,7]
… ex. Program :
program set_union;
uses crt;
type
setKarakter = set of char;
var
hasil,huruf,abjad : setKarakter;
3. begin
huruf:=['A'..'F'];
abjad:=['G'..'I'];
hasil:=huruf+abjad; {union}
{pembuktian}
if hasil=['A'..'I'] then
writeln('Himpunan hasil merupakan gabungan set huruf dan abjad');
readln;
end.
… 2. Set difference. (-) /selisih
Adalah pengurangan terhadap satu set terhadap set yang lain dan
dapat dilakukan dengan menggunakan operator set (-), hasil
merupakan set ketiga, yaitu anggauta set pertama tetapi bukan
anggauta set kedua.
contoh : [2,3,4,5]-[4,5,6,7]=[2,3]
ex. program :
program pengurangan_set;
uses crt;
type
hasil = set of 1..10;
var
kurang : hasil;
begin
kurang:=[1,2,3,4,5]-[3,4,5];
{pembuktian}
if kurang=[1,2] then
writeln('1,2 adalah anggauta set pertama tapi bukan anggauta set
kedua');
readln;
end.
… 3. Intersection atau product (*) / irisan
Adalah operasi irisan dua buah set dengan menggunakan operator
*, hasil adalah set ke tiga yang anggautanya adalah anggauta
set pertama yang juga merupakan anggauta set kedua.
contoh : [2,3,4,5]*[7,8,9,3,4,6]=[3,4]
ex.Program :
program contoh_irisan_set;
uses crt;
type
hasil = set of 1..10;
var
irisan : hasil;
begin
irisan:=[1,2,3,4,5]*[1,2,3,6,7];
{pembuktian}
if irisan=[1,2,3] then
writeln(' 1,2,3 merupakan irisan dari 1,2,3,4,5 dgn
4. 1,2,3,6,7');
readln;
end.
„ V. Seleksi Set
Hubungan antara satu set dengan set yang lain dapat diseleksi
dengan menggunakan operator hubungan (relational), yaitu :
… 1. Set Equality (kesamaan set)
set A dikatakan sama dengan set B (A=B) bila semua anggauta di
kedua set tersebut bernilai sama.
… 2. Set inequality (ketidaksamaan set)
Set A dikatakan tidak sama dengan set B (A<>B) bila semua atau
beberapa anggautanya tidak sama.
… 3. Set Inclusion (keterlibatan set)
Set A dikatakan terlibat di set B (A<=B) bila semua anggauta di
set A juga menjadi anggauta di B. Sebaliknya jika (A>=B) akan
benar jika anggauta di set B juga menjadi anggauta di set A.
… 4. Set membership (keanggautaan set) / IN
Untuk penyeleksian tentang keanggautaan set, menggunakan
operator IN. dengan operator in memungkinkan untuk membanding
kan/menyeleksi antara ungkapan set dengan varibel, atau ungka
pan bukan set yang mempunyai based type sama dengan ungkapan
Set.
… contoh program :
program contoh_penyeleksian_set;
uses crt;
type
himpunan = set of byte;
var
satu,dua : himpunan;
begin
satu:=[1..50];
dua :=[1..20];
if satu = dua then
writeln('himpunan satu sama dengan himpunan dua');
if satu <> dua then
writeln('himpunan satu tidak sama dengan himpunan dua');
if satu <= dua then
writeln('himpunan satu merupakan himpunan bagian/termasuk di
himp.dua');
if satu >= dua then
writeln('himpunan dua merupakan himpunan bagian/termasuk di
himp.satu');
readln;
end.
… ex. program mengenai penggunaan operator set inclusion pada pro
… gram pencarian karakter :
5. program contoh_penggunaan_set_inclusion;
uses crt;
type
karakter = set of char;
var
teks,hasilstr : string;
hasil : karakter;
i : integer;
begin
clrscr;
write('Teks =');readln(teks);
hasil:=[];
hasilstr:='';
for I := 1 to ord(teks[0]) do
begin
if not ([teks[i]]<=hasil) then
begin
hasil:=hasil+[teks[i]];
hasilstr:=hasilstr+teks[i];
end;
end;
writeln('karakter yang dipakai =',hasilstr);
readln;
end.
… Contoh program penyeleksian huruf hidup pada suatu teks :
… ex.Program :
program contoh_penyeleksian_huruf_hidup;
uses crt;
type
karakter = set of char;
var
tempat : karakter;
hidup : karakter;
tempatstr,teks : string;
i : integer;
begin
hidup:=['A','I','U','E','O','a','i','u','e','o'];
tempat:=[];
tempatstr:='';
write('Teks =');readln(teks);
for i := 1 to ord(teks[0]) do
begin
if (teks[i] in hidup) and not ([teks[i]] <= tempat) then
begin
tempat :=tempat+ [teks[i]];
tempatstr:=tempatstr+teks[i];
end;
end;
writeln('Huruf hidup dalam - ',teks,' adalah =',tempatstr);
6. readln;
end.
… Penggunaan operator In untuk mengetahui keanggautan set.
… ex. Program :
Program contoh_penggunaan_in;
uses crt;
var
jwb : char;
p,l,luas : real;
begin
jwb :='Y';
while jwb in ['Y','y'] do
begin
write('panjang =');readln(p);
write('lebar =');readln(l);
luas:=p*l;
writeln('luas =',luas:6:1);
write('ulang =');readln(jwb);
end;
end.