Bagi anda yang sudah mencoba menggunakan sintak IF tentu sudah tau fungsi dan keguanaannya. Sekarang akan kita bahas penggunaan script Case...Of sebagai script untuk melakukan pilihan lebih dari dua pernyataan. Menurut saya cara ini lebih gampang dari pada mengguanakan IF.
Secara umum format penulisan scriptnya adalah seperti berikut:
CASE <kondisi> OF
'label1' : <pernyataan ke-1>
'label2' : <pernyataan ke-2>
'label3' : <pernyataan ke-3>
else : <pernyataan ke-akhir>
end;
Artinya jika nilai pada kondisi sama dengan nilai pada label1 maka bagian pernyataan ke-1 yang akan dieksekusi, sama halnya jika nilai pada label2 dan label3. Tapi jika nilai kondisi tidak sama dengan label1 s.d label3, maka pernyataan ke-akhir yang akan dieksekusi.
Dengan menggunakan CASE...OF akan banyak pernyataan yang bisa digunakan dengan mudah. Silanjutnya silahkan pelajari scirpt program pengguanaan CASE OF di bawah ini:
Contoh 1:
PROGRAM Case1;
{ --------------------------------}
{ Contoh pemakaian Case.}
{ --------------------------------}
USES Crt;
VAR
Pil : Integer;
BEGIN
ClsScr;
Write('Pilihan [1, 2 atau 3] : ') ;
ReadLn(Pil) ;CASE Pil OF
1: WriteLn('Pilihan Anda adalah 1') ;
2: WriteLn('Pilihan Anda adalah 2') ;
3: WriteLn('Pilihan Anda adalah 3') ;
ELSE
WriteLn('Salah pilih !') ;
END;WriteLn('Selesai...') ;
END.
Contoh 2:
PROGRAM Case2;
{ --------------------------------------------------- }
{ Contoh pemakaian koma di dalamCASE }
{ --------------------------------------------------- }
USES Crt;VAR
KodeBulan : Integer
BEGIN
ClrScr;
Write('Kode bulan [1..12] : ') ;
ReadLn('KodeBulan) ;CASE KodeBulan OF
1, 3,5, 7, 8, 10, 12: WriteLn('Jumlah hari = 31') ;
4, 6, 9, 11 : WriteLn('Jumlah hari = 30') ;
2 : WriteLn('Jumlah hari 28 atau 29') ;ELSE
WriteLn('Salah memasukan kode bulan')
END;
END.
Contoh 3:
PROGRAM Case3;
{ -------------------------------------------------}
{ Contoh pemakaian tanda .. pada CASE}
{ -------------------------------------------------}
USES Crt;VAR
Kar : Char;BEGIN
ClrScr;
Write('Masukan sembarang karakter dan tekan Enter : ') ;
ReadLn(Kar) ;CASE Kar OF
'A'..'B' : WriteLn('Huruf Kapital') ;
'a'.. 'z' : WriteLn('Huruf kecil') ;
'0'.. '1' : WriteLn('Digit') ;
ELSE
WriteLn('Bukan huruf ataupum digit')
END;
END.
Contoh 4:
PROGRAM Case4;
{ -------------------------------------}
{ Contoh CASE tanpa ELSE. }
{ -------------------------------------}
USES Crt;CONST
X : Integer = 40; { --- Nilai awal untuk X --- }
Y : Integer = 50; { --- Nilai awal untuk Y --- }VAR
Tombol : Char;BEGIN
ClrScr;
WriteLn('Nilai X dan Y semula = ', X, ':', Y) ;
Write('Tekan tombol E, S, D, atau X dan tekan Enter: ') ;
ReadLn('Tombol) ;CASE Tombol OF
'E', 'a' : y := Y - 1;
'S', 's' : X :=X - 1;
'D', 'd' : X := X + 1;
'X' 'x' : Y := Y + 1;
END;WriteLn('Nilai X dan Y kini = ', X, ':', Y) ;
END.
Contoh 5:
Program Garmen jaket;
uses crt;
var Ukuran : char;
Banyak : integer;
Harga Jumlah : real;
begin
ClrScr ;
write('Ukuran jaket (S/M/L) : ');readln(Ukuran);
write('Banyak jaket : ');readln(Banyak);
case Ukuran of
'S' : Harga :=6500;
'M' : Harga :=7100;
'L' : Harga :=7400;
end;
Jumlah := Banyak * Harga;
Writeln ; writeln ;
writeln('jumlah yang harus dibayar = Rp ',jumlah:8:0);
end.