Percabangan / Pemilihan (Branching/Selection)
description
Transcript of Percabangan / Pemilihan (Branching/Selection)
![Page 1: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/1.jpg)
TPI4202e-tp.ub.ac.id
Lecture 4
![Page 2: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/2.jpg)
Struktur percabangan memungkinkan kita melakukan aksi jika suatu syarat dipenuhi.
Suatu aksi akan dikerjakan atau dieksekusi oleh program apabila kondisi yang didefinisikan untuk aksi tersebut bernilai benar (true).
Sebaliknya bila kondisi tidak terpenuhi atau salah (false) maka program akan melakukan aksi lain (jika ada) atau langsung keluar dari blok pemilihan.
![Page 3: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/3.jpg)
Didalam bahasa pascal terdapat 2 jenis struktur percabangan, yaitu : Struktur percabangan IF; dan Struktur percabangan CASE
![Page 4: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/4.jpg)
Struktur percabangan IF dibagi menjadi 3 cara : IF untuk 1 kondisi pemecahan IF untuk 2 kondisi pemecahan IF bersarang (lebih dari 2 kondisi
pemecahan)
![Page 5: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/5.jpg)
Instruksi IF digunakan untuk memilih jalur proses: melakukan atau tidak melakukan suatu proses (if), memilih satu dari dua proses
![Page 6: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/6.jpg)
PertanyaanEksekusi statement
benar
salah
Lanjutkan barisselanjutnya
![Page 7: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/7.jpg)
if (boolean-expression) then statement aksi; statement aksi;
if (umur >= 18) then writeln(‘anda sudah dewasa'); writeln(‘anda bisa menonton film 17+');
![Page 8: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/8.jpg)
Operator
Jenis operasi Tipe operasi
Tipe hasil
= Sama dengan Tipe dasar Boolean
<> Tidak sama dengan Tipe dasar Boolean
< Kurang dari Tipe dasar Boolean
> Lebih besar Tipe dasar Boolean
<= Lebih kecil atau sama dengan
Tipe dasar Boolean
>= Lebih besar atau sama dengan
Tipe dasar Boolean
![Page 9: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/9.jpg)
Program Seleksi_IF_1 ;Uses wincrt;Var Nilai : Real ; Ket : String [5] ;Begin Ket : ‘Gagal’ ; Write (‘Berapa Nilai yang didapat ? ‘); Readln (Nilai) ;
If Nilai > 60 Then Ket := ‘Lulus’ ; Writeln (‘Hasil: ‘, Ket ) ;End.
![Page 10: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/10.jpg)
Digunakan untuk pemilihan kondisi dari dua alternatif pilihan.
ELSE berarti selain itu, jika kondisi salah maka perintah didalam else yang akan dieksekusi.
![Page 11: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/11.jpg)
Question? Execute a statementTrue
False
Execute a statement
Remainder of the program
![Page 12: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/12.jpg)
if (boolean-expression) then statement aksielse statement aksi; (statement aksi);
if (age >= 18) then writeln(‘dewasa')else writeln(‘belum dewasa'); writeln(‘anda tidak boleh menonton');
![Page 13: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/13.jpg)
Program Seleksi_IF_2 ;Uses wincrt;Var Nilai : Real ; Ket : String [5] ;Begin Write (‘Berapa Nilai yang didapat ? ‘); Readln (Nilai) ; If Nilai > 60 Then Ket := ‘Lulus’ Else Ket := ‘Gagal’ ; Writeln (‘Hasil: ‘, Ket ) ;End.
![Page 14: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/14.jpg)
Bentuk pemilihan ini merupakan bentuk pemilihan yang sedikit kompleks.
Pada bentuk ini apabila kondisi pertama tidak terpenuhi, maka program akan mengecek kondisi kedua.
Apabila ternyata kondisi kedua juga belum terpenuhi maka program akan mengecek kondisi berikutnya, begitu seterusnya sampai ditemukan kondisi yang sesuai
![Page 15: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/15.jpg)
Question 1?
True Question 2?
True Statement
Remainder of the program
False
False
![Page 16: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/16.jpg)
IF …… THEN IF …… THEN …aksi…
IF … THEN …aksi… ELSE IF… THEN …aksi… ELSE …aksi…
![Page 17: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/17.jpg)
Program Seleksi_IF_3 ;Uses wincrt;Var Nilai : Real ; Grade : Char ;Begin Write (‘Berapa Nilai yang didapat ? ‘); Readln (Nilai) ; If Nilai > 90 Then Grade := ‘A’; Else If Nilai > 75 Then Grade := ‘B’; Else If Nilai > 60 Then Grade := ‘C’ Else If Nilai > 40 Then Grade := ‘D’; Else Grade := ‘E’; Writeln (‘Hasil: ‘, Grade ) ;End.
![Page 18: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/18.jpg)
Untuk x atau y????
if (x > 0) thenif (y > 0) thenwriteln('x and y greater than zero')elsewriteln('x is greater than zero');
![Page 19: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/19.jpg)
if (x > 0) then if (y > 0) then writeln('x dan y lebih besar dari nol') else writeln('x lebih besar dari nol');
![Page 20: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/20.jpg)
Hampir sama dengan struktur percabangan IF, tetapi lebih cocok digunakan jika kondisi yang diperiksa sangat banyak
Kondisi yang diperiksa harus berupa data ordinal (bertipe integer atau char), dan tidak boleh bertipe real
Menggunakan operator relasional = (sama dengan) untuk melakukan pemeriksaan kondisi
![Page 21: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/21.jpg)
CASE variabel_yang_diperiksa OF konstanta1 : aksi 1; konstanta2 : aksi 2; konstanta3 : aksi 3; . .. konstantaN : aksi N;END;
![Page 22: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/22.jpg)
Program Case_1;Uses wincrt;Var
Ukuran : Char ;Banyak : Integer ;Harga, Jumlah : Real ;
BeginWrite(‘Ukuran Jaket (S?M?L) : ‘); Readln(Ukuran) ;Write(‘Banyak Jaket : ‘); Readln(Banyak);Case Ukuran Of
‘S’ : Harga := 1000 ;‘M’ : Harga := 1250 ;‘L’ :Harga := 15000 ;
End ;Jumlah := Banyak * Harga ;Writeln(‘Jumlah dibayar : Rp ‘, Jumlah:8:0);End.
![Page 23: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/23.jpg)
program Decisions; uses
crt; var Choice: Char; begin Writeln('Which on of these do you like?'); Writeln('a - Apple:'); Writeln('b - Banana:'); Writeln('c - Carrot:'); Choice := ReadKey; case Choice of 'a': Writeln('You like apples'); 'b': Writeln('You like bananas'); 'c': Writeln('You like carrots'); else Writeln('You made an invalid choice'); end;end.
![Page 24: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/24.jpg)
1.Buat program pascal untuk menerima masukan dua angka, kemudian menentukan angka mana yang lebih besar
2.Berdasarkan data berikut ini:A = TVRI D = ANTVB = RCTI E = INDOSIAR C = SCTVBuatlah program yang meminta masukan
huruf saluran TV,kemudian program menampilkan nama stasiun penyiarannya.
![Page 25: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/25.jpg)
3. Karyawan toko ‘ABC’ mempunyai kewajiban kerja 4 hari dalam satu minggu. Gaji perhari adalah Rp. 75000. Gaji diberikan perminggu. Jika dia bekerja lebih dari 4 hari dalam seminggu maka sisanya dianggap lembur dengan upah lembur Rp. 80000 perhari. Hitung gaji yang diterima karyawan permingu dengan masukan jumlah hari kerja, lalu tampilkan jumlah hari kerja, lembur, gaji bersih.
![Page 26: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/26.jpg)
4. Buatlah program menghitung biaya laundry yang dibayar dengan biaya laundry=Rp.3500 per Kg. program menerima masukan berat pakaian (dalam Kg). ketentuan biaya yang dibayar:
jika berat <5 Kg maka tidak mendapat potongan ,
jika berat >=5 Kg dan berat<10 Kg maka mendapat potongan 2 Kg (berat – 2 Kg),
jika berat >=10 Kg maka mendapat potongan 4 Kg (berat – 4 Kg).
![Page 27: Percabangan / Pemilihan (Branching/Selection)](https://reader033.fdokumen.com/reader033/viewer/2022061602/56813b81550346895da4a4ec/html5/thumbnails/27.jpg)
5. Buatlah program menghitung sks maksimum yang dapat diambil mahasiswa berdasarkan masukan IP semester sebelumnya.
6. Buatlah program menentukan nilai akhir Matakuliah (Huruf) berdasarkan masukan nilai UTS (35 %), UTS (35 %) dan Praktikum (30 %)