SELECTION
by:Teguh Cahyono,ST.M.Kom. 2
Selection
• Selection didalam program pascal
digunakan untuk mengontrol jalannya
program agar dapat memilih salah satu
sekian banyak pilihan yang ada
1. Selection IF
•
Statement If
Struktur dari statemen If
dapat berupa
If Then
atau
if then Else
dengan diagram sintak:
IF Ungkapan Then Statement
Else Statement Statement If
by:Teguh Cahyono,ST.M.Kom. 4
a. Statement
If Then
• Bentuk dari struktur if Then adalah sebagai berikut :
If ungkapan Then Statement
• Ungkapan adalah kondisi yang akan diseleksi oleh statement If .
Bila kondisi yang diseleksi terpenuhi, maka statement yang
mengikuti Then akan diproses. Bila kondisi tidak terpenuhi , maka yang akan diproses adalah statement berikutnya
IF Kondisi Statement Benar Then tidak
Contoh1 :
V a r N i l a i U j ia n : r e a l; K e t : s t ri n g [ 1 1 ] ; B e g i n K e t : = ’ T i d a k L u l u s ’ ; W r i t e ( ‘ N il a i y a n g d i d a p a t ? ’ ); R e a d L n ( N i l a i U ji a n ) ; ( * S e l e k si n i la i y a n g d i d a p a t , l u l u s a t a u t i d a k * ) I f N i l a i U j i a n > 6 0 T h e n K e t : = ’ L u l u s ’ W r i t e L n ( K e t ); E n d .Bila digambarkan dalam diagram alir
Output :
Nilai yang didapat ? 70 Lulus
by:Teguh Cahyono,ST.M.Kom. 6 Begin
Ket := ‘Tidak Lulus
Write (‘Nilai Yang didapat ?’); Readln(NilaiUjian); Nilai Ujian >60 Ket := ‘Lulus’; Writeln(Ket); End Ya Tidak
Contoh2 :
uses wincrt; Label 10; Var R, T, Isi : real; Jawab : char; Begin 10: WriteLn;Write('Jari-jari Lingkaran ?'); ReadLn(R); Write('Tinggi Silinder ?'); ReadLn(T); Isi :=Pi* R*R *T;
Writeln;
Writeln('Isi Silinder = ',Isi:9:2); Writeln;
Write('Akan Menghitung lagi (Y/T) ?'); Readln(jawab);
If (jawab='T') or (jawab ='Y') then Goto 10; End.
by:Teguh Cahyono,ST.M.Kom. 8 Begin Writeln; Write(‘jari-jari Lingkaran ?’) Readln(R) Writeln(‘Tinggi Silinder ?’) Readln(T) Isi := Pi *R*R * T; Writeln;
Writeln(isi Silinder = ‘, Isi :9:2); Wrteln;
Wrteln(Akan Menghitung lagi (Y/T) ?’); Realdn(Jawab); (Jawab =’Y’) or (Jawab = ‘T’) End ya Tidak
b. If Then…… Else
Struktur If Then….Else merupakan pengembangan dari struktur If-Then dengan struktur sebagai berikut:
If Kondisi Then Statement 1 Else
Statement 2
Statement 1 dapat berupa blok statement akan di proses bilamana kondisi yang diseleksi benar
(terpenuhi) sedang statement2 atau dapat berupa blok statement akan diproses bilamana kondisi yang
by:Teguh Cahyono,ST.M.Kom. 10
If Then…Else (1)
If kondisi ? Statement1 Statement2 tidak Benar else ThenContoh
VarNilaiUjian : real; Begin
Write(‘Nilai yang didapat ?’); ReadLn(NilaiUjian);
(* Seleksi nilai yang didapat, lulus atau tidak *) If NilaiUjian > 60 Then WriteLn(’Lulus’) Else WriteLn(’Tidak Lulus’); End. Begin
W riteln (‘nilai yang didapat ?’); R eadln(nilaiU jian);
N ilai U jian 60 ?
W riteln(‘Tidak Lulus’); W riteln(‘Lulus’);
by:Teguh Cahyono,ST.M.Kom. 12
c. Struktur If Tersarang
Struktur Iftersarang (Nested If) merupakan bentuk dari
suatu statemen If berada dalam lingkungan
Bentuk if tersarang Bila digambarkan dalam diagram alir dapat berupa If Kondisi If kondisi Statemen1 Statemen2 Tidak Benar Tidak Benar
by:Teguh Cahyono,ST.M.Kom. 14
Struktur if dapat juga berupa sbb :
If Kondisi Then Else Statemen3; If Kondisi then Statemen1 Else Statemen2 If kondisi1 ? If kondisi2 ?
Statem en2 Statem ent1 Statem en3
Tidak Benar
Bentuk if tersarang dapat juga berupa
If Kondisi1 then Begin End; If Kondisi2 Then Begin End If Kondisi3 Then Begin End If kondisi4 Then Statemen1 Else Statemen2; If K o n d isi1 ? If K o n d isi2 ? If ko n d isi3 ? If K o n d isi4 ? S ta te m e n 1 S ta te m e n 2 T id a k B e n a r T id a k B e n a r T id a k B e n a r T id a k B e n a rby:Teguh Cahyono,ST.M.Kom. 16
2. Statement Case
• Statemen Case dapat berbentuk Case Of atau Case Of…Else
sintak dari bentuk diagram Case Of adalah Sbb:
Case Ungkapan Of Statemen case Kasus ; Bagian Else End ;
Konstanta ; Konstanta ; statemen Kasus
;
Else Statemen
a.
Struktur Case Of
• Struktur Case-of mempunyai suatu ungkapan logika yang
disebut dengan selector dan sejumlah statemen yang diawali dengan sutu label permasalahan (case label) yang
mempunyai tipe sama dengan selector.
• Perbedaan dengan struktur If adalah bila statemen If
menyeleksi suatu kondisi dan terpenuhi, setelah memproses statemen dalam lingkungan yang terpenuhi tersebut, proses penyelesaian masih dilakukan terhadap statemen If berikut
yang lain. Sedang pada struktur Case-of bila salah satu
kondisi terpenuhi (nilai case label sama dengan nilai selector)
dan statemen tersebut telah diproses, selanjutnya statemen –
statemen yang lainnya dalam lingkungan Case tidak akan diseleksi lagi.
by:Teguh Cahyono,ST.M.Kom. 18
CASE ungkapan OF
Daftar case-label 1: statemen1;
Daftar case-label 2: statemen2;
Daftar case-label 3: statemen3;
.
.
.
Daftar case-label n: statemenn;
END;
Daftar case label dapat berupa sebuah konstanta
atau range dari konstanta yang bukan bertipe real.
Contoh :
1: (nilai integer 1)
1,2,3,4: (nilai integer 1,2,3,4)
1..5: (nilai integer 1,2,3,4,5)
’A’: (nilai karakter ‘A’)
’A’,’B’: (nilai karakter ’A’ dan ’B’)
’A’..’D’ (nilai karakter ’A’,’B’,’C’ dan ’D’)
’*’: (nilai karakter ’*’)
Contoh :
Nilai ujian yang diberikan dalam bentuk A,B,C,D,E,F mempunyai arti sebagai berikut :
Nilai ’A’ berarti sangat baik Nilai ’B’ berarti baik
Nilai ’C’ berarti cukup Nilai ’D’ berarti kurang Nilai ’E’ berarti gagal
by:Teguh Cahyono,ST.M.Kom. 20
Var
Nilai : char; Begin
Write(‘Nilai huruf yang didapat ? ‘); ReadLn(Nilai); Case Nilai Of
‘A’ : WriteLn(‘Sangat Baik’); ‘B’ : WriteLn(‘Baik’); ‘C’ : WriteLn(‘Cukup’); ‘D’ : WriteLn(‘Kurang’); ‘E’,’F’ : WriteLn(‘Gagal’); End; End. OutPut
: Nilai huruf yang didapat ? C
b. Struktur Case Of….. Else
• Struktur
Case Of….. Else
merupakan
pengembangan dari struktur
Case-of
dan juga
merupakan pengembangan dari standar Pascal.
Pada struktur
Case-of
bila tidak ada kondisi
yang terpenuhi berarti tidak ada statemen
didalam lingkungan
Case-of
yang diproses.
• Dengan struktur
Case-of...Else,
bila tidak ada
kondisi yang terpenuhi, maka statemen yang
akan diproses didalam lingkungan Case-of
adalah statemen yang ada di Else.
by:Teguh Cahyono,ST.M.Kom. 22
Contoh
Uses Crt; Var Pilihan : byte; R,L,T,Luas : real; Begin ClrScr;GotoXY(10,2) ; WriteLn(‘ <<< PILIHAN >>> ‘);
GotoXY(10,4) ; WriteLn(‘1. Menghitung Luas Lingkaran’); GotoXY(10,6) ; WriteLn(‘2. Menghitung Luas Segitiga’);
GotoXY(10,8) ; WriteLn(‘3. Menghitung Luas Bujur-sangkar’); GotoXY(10,20) ; WriteLn(‘Pilih Nomer (1-3) ?’); Read(Pilihan); ClrScr;
Case Pilihan of 1: Begin
Write (’Jari-jari Lingkaran ?’); ReadLn(R); Luas := Pi * R*R;
WriteLn(’Luas Lingkaran = ’, Luas:9:2); End;
2: Begin
Write (’Panjang sisi alas ? ’); ReadLn(L); Write (’Tinggi segitiga ? ’); ReadLn(T); Luas := 0.5 * L * T;
WriteLn;
writeLn(’Luas segitiga =’,Luas:9:2); End;
3: Begin
Write (’Panjang bujur-sangkar ?’); ReadLn(T); Write (’Lebar bujur-sangkar ?’); ReadLn(L); Luas := T * L;
WriteLn;
WriteLn (’Luas bujur sangkar = ’, Luas:9:2); End;
Else
Begin
WriteLn(’Pilihannya hanya 1,2 atau 3’);
WriteLn(’Anda tadi pilih nomer berapa ? ... Ngawur !!!’); End;
by:Teguh Cahyono,ST.M.Kom. 24
Output
:
<<< PILIHAN >>>
1. Menghitung Luas Lingkaran 2. Menghitung Luas Segitiga
3. Menghitung Luas Bujur-sangkar
OPERASI SET
• Deklarasi Set
set merupakan tipe data terstruktur yg terdiri dari elemen yg disebut Anggota Set, yg tdk memiliki urutan dan tidak boleh ada dua anggota set yg sama.
Bentuk Umum : type
<NamaTipe>=set of <TipeData>; Contoh :
type
Karakter = set of Char; Angka = set of Integer; Tanggal = aet of 1..31;
Hari = set of (Senin,Selasa,Rabu,Kamis,Jumat,Sabtu,Minggu); Var
kar:karakter; bil:angka; tgl:tanggal; Seminggu:hari;
• Penulisan nilai didalam suatu set
Nilai-nilai dalam suatu set dapat dituliskan dgn beberapa cara, yi disebutkan satu per satu (enumerasi) atau dituliskan dalam rentang tertentu.
by:Teguh Cahyono,ST.M.Kom. 26
• Notasi Set Enumerasi
Elemen-elemen yg terdapat dalam set dinyatakan satu per satu. Bentuk Umum : NamaVar:=[elemen1,elemen2,….elemenN]; Contoh : Angka := [1,2,3,4,5,6]; Huruf := [`A`,`B`,`C`,`D`,`E`]; • Notasi Set Rentang
Elemen-elemen yg dinyatakan secara rentang berdasarkan tipe dasar set tersebut.
Bentuk Umum : NamaVar:=[Rentang1,Rentang2,…,RentangN] Contoh : Angka : =[1..6]; AngkaAngka := [0..5,10..20,35..50]; Huruf := [`A`..`C`,`G`..`Z`];
• Memberikan nilai pada variabel set type
Karakter = set of char; Angka = set of integer; Tanggal = set of 1...31; var kar:karakter; bil:angka; tgl:tanggal; Begin kar:=[`a`,`b`]; bil:=[1..10,20..50]; tgl:=[1,2,3,4]; End.
by:Teguh Cahyono,ST.M.Kom. 28
Operasi – Operasi Dalam Set
• Salah satu operasi dasar dalam set ialah menyatakan apakah suatu nilai tertentu merupakan anggota dari set tersebut. Operator set `in` digunakan untuk tujuan
tersebut.
• Bentuk umum:
SuatuNilai in SuatuSet Contoh:
If(`z` in Huruf) then {statement}
While not (NilaiSet in AngkaSet) do {statement} Operator `in` dpt digunakan untuk membandingkan
anggota dari suatu set dengan set yg lain. Hasil yg
muncul, True jika elemen merupakan anggota set, False jika tidak.