SELECTION
Algoritma
by:Teguh Cahyono,ST.M.Kom.
1
Selection • Selection didalam program pascal digunakan untuk mengontrol jalannya program agar dapat memilih salah satu sekian banyak pilihan yang ada
by:Teguh Cahyono,ST.M.Kom.
2
1. Selection IF •
Statement If Struktur dari statemen If dapat berupa If Then atau if then Else dengan diagram sintak: Statement If
IF
Ungkapan
Then
Else by:Teguh Cahyono,ST.M.Kom.
Statement
Statement 3
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
Benar
Then tidak Statement
by:Teguh Cahyono,ST.M.Kom.
4
Contoh1 : Bila digambarkan dalam diagram alir
V ar N i l a i U j ia n
: r e a l;
K et
: s t ri n g [ 1 1 ] ;
B e g in 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 * )
Output : Nilai yang didapat ? 70 Lulus
If N ilaiU jia n > 6 0 T h e n K e t := ’L u lu s’ W r i t e L n ( K e t ); End. by:Teguh Cahyono,ST.M.Kom.
5
Begin
Ket := ‘Tidak Lulus
Write (‘Nilai Yang didapat ?’); Readln(NilaiUjian);
Ya Nilai Ujian >60
Ket := ‘Lulus’; Tidak
Writeln(Ket);
End by:Teguh Cahyono,ST.M.Kom.
6
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.
7
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’)
ya
Tidak by:Teguh Cahyono,ST.M.Kom. End
8
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 diseleksi tidak terpenuhi. by:Teguh Cahyono,ST.M.Kom.
9
If Then…Else (1)
tidak
If kondisi ?
Benar
Then
else Statement1
by:Teguh Cahyono,ST.M.Kom.
Statement2
10
Contoh Var NilaiUjian : real; Begin Write(‘Nilai yang didapat ?’); ReadLn(NilaiUjian);
Begin
W riteln (‘nilai yang didapat ?’); Readln(nilaiUjian);
(* Seleksi nilai yang didapat, lulus atau tidak *)
If NilaiUjian > 60 Then WriteLn(’Lulus’) Else WriteLn(’Tidak Lulus’); End.
Nilai Ujian 60 ?
W riteln(‘Tidak Lulus’);
by:Teguh Cahyono,ST.M.Kom.
W riteln(‘Lulus’);
End.
11
c. Struktur If Tersarang Struktur Iftersarang (Nested If) merupakan bentuk dari suatu statemen If berada dalam lingkungan statemen if yang lainnya. Misalnya
by:Teguh Cahyono,ST.M.Kom.
12
Bentuk if tersarang Bila digambarkan dalam diagram alir dapat berupa Tidak
If Kondisi
Benar
Tidak
If kondisi
Statemen1
by:Teguh Cahyono,ST.M.Kom.
Benar
Statemen2
13
Struktur if dapat juga berupa sbb : Tidak If kondisi1 ?
Benar
If Kondisi Then
If Kondisi then Statemen1 Else Statemen2
Tidak
Statem en3
Statem en2
If kondisi2 Benar ?
Statem ent1
Else Statemen3;
by:Teguh Cahyono,ST.M.Kom.
14
Bentuk if tersarang dapat juga berupa If K ondisi1 ?
If Kondisi1 then Begin
T idak
If Kondisi2 Then Begin
B enar
If K ondisi2 ?
T idak
If Kondisi3 Then Begin
B enar
If kondisi3 ?
B enar
T idak T idak
If kondisi4 Then Statemen1 Else Statemen2;
If K ondisi4 ?
S tatem en1
B enar
S tatem en2
End End End; by:Teguh Cahyono,ST.M.Kom.
15
2. Statement Case •
Statemen Case dapat berbentuk Case Of atau Case Of…Else sintak dari bentuk diagram Case Of adalah Sbb: Statemen case
Case
Ungkapan
Of
Kasus ; End Bagian Else
Kasus
Konstanta
;
;
Konstanta
;
statemen
;
Bagian Else
Else
Statemen
by:Teguh Cahyono,ST.M.Kom.
16
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. • Bentuk dari struktur Case-of adalah sbb : by:Teguh Cahyono,ST.M.Kom.
17
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. by:Teguh Cahyono,ST.M.Kom.
18
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.
19
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 Cukup by:Teguh Cahyono,ST.M.Kom.
20
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.
21
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;
by:Teguh Cahyono,ST.M.Kom.
22
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; End; by:Teguh Cahyono,ST.M.Kom. End.
23
Output : <<< PILIHAN >>> 1. Menghitung Luas Lingkaran 2. Menghitung Luas Segitiga 3. Menghitung Luas Bujur-sangkar
Pilih nomer (1-3) ? 3
by:Teguh Cahyono,ST.M.Kom.
24
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
=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.
25
• 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`]; by:Teguh Cahyono,ST.M.Kom.
26
• 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.
27
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. by:Teguh Cahyono,ST.M.Kom.
28
Operasi Gabungan (Union) • Adalah operasi yg menggabungkan dua set menjadi satu. Anggota dari dua set tersebut, dijadikan satu dan menghasilkan set baru dan tidak menghasilkan duplikasi anggota set. • Notasi : + • Contoh : [1,2,3] + [4,5,6] [1,2,3,4,5] [1,2,3] + [2,3,5,6,7] by:Teguh Cahyono,ST.M.Kom.
29