Percabangan Dosen Pengampu: M. Zidny Naf’an, M.Kom
Go foward Do nothing Back percabangan
Jika hari hujan, maka saya membawa payung Jika hari hujan, maka saya membawa payung, jika tidak saya membawa topi
PENGERTIAN “Pernyataan percabangan yang memungkinkan suatu pernyataan dieksekusi hanya jika suatu kondisi terpenuhi atau tidak terpenuhi”
Operator Hubungan membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++:
Operator Logika Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi. Operator Keterangan Contoh && Logika AND n && m || Logika OR n || m ! Logika NOT !n
IF SWITCH Percabangan
If Digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataan – pernyataan tertentu Bila kondisi yg diuji salah, program akan menjalankan pernyataan- pernyataanlain.
If Struktur kontrol keputusan digunakan untuk memilih dan mengeksekusi block tertentu dari code yang dapat berpindah ke bagian lain. Tipe-tipe: statement-if (Satu Kasus) statement-if-else (Dua Kasus) statement-if-else if (Tigas Kasus atau Lebih)
statement-if statement-if Menspesifikasikan sebuah statement (atau block dari code) yang akan dieksekusi jika dan hanya jika statement boolean bernilai true. Form statement-if dalam bahasa C/C++: if( EKSPRESI ) statement; atau if( EKSPRESI ){ statement 1; statement 2; }
Penulisan Pseudocode untuk Seleksi SATU KASUS: if condition then statement … end if DUA KASUS: if condition then statement1 else statement2 end if TIGA KASUS: if condition1 then statement1 else if condition2 then statement2 else statement3 end if
if-statement Flowchart BOOLEAN EXPR TRUE FALSE STATEMENT
Contoh: Menentukan Apakah N = Bilangan Ganjil? n mod 2 !=0
Contoh: Menentukan Apakah N = Bilangan Ganjil? PROGRAM Cek Bilangan Ganjil DEKLARASI: n: integer ALGORITMA: read(n) if n mod 2 != 0 then print(n, “bilangan ganjil”) end if
Contoh: Menentukan Tahun Kabisat
Contoh: Menentukan Tahun Kabisat PROGRAM Tahun Kabisat DEKLARASI tahun: integer ALGORITMA read(tahun) if(tahun mod 4 == 0) then print (“Tahun Kabisat”) end if
Latihan di kelas ! Buatlah flowchart dan pseudocode untuk menentukan kelulusan seseorang! Jika nilai lebih dari 60 maka lulus.
statement if-else statement if-else Digunakan jika akan mengeksekusi sebuah statement jika kondisinya true, dan mengeksekusi statement yang lain jika berkondisi false. Form statement if-else: if( EKSPRESI ){ statement1; statement2; . . . } else{ statement3; statement4; . . . }
Flowchart BOOLEAN EXPR FALSE TRUE STATEMENT
Latihan di kelas ! Buatlah flowchart dan pseudocode untuk menentukan sebuah bilangan positif atau negatif!
Flowchart
Kode Program #include <iostream.h> main () { int nilai; if (nilai <0) ket=“negatif”; else ket=“positif”; }
Contoh: Menentukan Bilangan Terbesar dari Dua Buah Bilangan PROGRAM Maksimum DEKLARASI a,b: integer ALGORITMA read(a,b) if(a > b) then write(‘bilangan terbesar = ’, a) else write(‘bilangan terbesar = ’, b) end if
statement if-else-else if statement pada klausa else dari sebuah blok if-else dapat menjadi struktur if-else yang lain. Struktur ini memperbolehkan kita untuk membuat pilihan yang lebih kompleks. Form statement if-else-else if: if( EKSPRESI 1 ) statement1; else if( EKSPRESI 2 ) statement2; else statement3;
Flowchart STATEMENT BOOLEAN EXPR FALSE TRUE
Contoh: Menentukan Bilangan Maksimum dari Tiga Bilangan (Cara1) Algoritma Maksimum3 DEKLRASI a, b, c: integer Algoritma read(a,b,c) if (a > b) then if (a>c) then write (‘Bilangan Terbesar: ’, a) else write (‘Bilangan Terbesar: ’, c) endif if (b > c) then write (‘Bilangan Terbesar: ’, b)
APAKAH ADA CARA LAIN?? BAGAIMANA??
Contoh: Menentukan Bilangan Maksimum dari Tiga Bilangan (Cara2) PROGRAM Maksimum3 DEKLRASI a, b, c, maks: integer PROGRAM read (a, b, c) if (a > b) then maks a else maks b end if if (c > maks ) maks c endif write (‘Bilangan Terbesar: ’, maks)
Latihan Di Kelas Tulislah pseudocode dan flowchart yang membaca temperatur air (T) dalam satuan Celcius. Tentukan wujud air tersebut berdasarkan suhu. Air berwujud padat jika T <= nol derajat Air berwujud cair jika 0 < T < 100 Air berwujud gas jika T > 100
Latihan di kelas ! Buatlah konversi nilai angka ke huruf ! A = 80-100 C = 0-60
Jawaban int grade = 68; If(( grade >= 80 ) && ( grade <=100 )) { cout<<"A"; } else if(( grade >= 60 ) && ( grade <=79)){ cout<<“B"; Else if ((grade>=0) && (grade<60)){ cout<<“C"; Else{ cout<<“error”;
statement-switch Switch Memperbolehkan percabangan pada multiple outcomes. Form statement-switch: switch( switch_ekspresi ){ case case_pilihan1: statement1;// statement2;//blok 1 break; case case_pilihan2: statement1;// statement2;//blok 2 break; default: statement1;// statement2;//blok n }
statement-switch Dimana, ekspresi switch Merupakan integer atau karakter ekspresi case_pilihan1, case_pilihan2 dan yang lainnya, merupakan integer unique atau karakter tetap.
DEFAULT BLOCK STATEMENT Flowchart BLOCK 1 STATEMENT CASE SELECTOR 1 FALSE TRUE CASE SELECTOR 2 CASE SELECTOR 3 DEFAULT BLOCK STATEMENT BREAK; BLOCK 2 STATEMENT BLOCK 3 STATEMENT
Contoh Kode Program main () { int na, nh; switch (na) { case 100: cout<<“Bagus”; break; case 70: cout<<“Lumayan”; default: cout<<“Nilai yang anda masukkan salah"; } }
Latihan Di Kelas Buatlah pseudocode dan Flowchart kalkulator sederhana untuk menjumlah, mengurang, mengali, dan membagi. Input dari program ada tiga, yaitu: operand1, operator, dan operand 2. (Gunakan switch-case atau if-else).
TUGAS 1 Buatlah pseudocode untuk menentukan menu dengan pilihan berupa nomor proses sebagai berikut : 1: Entry Data 2: Cetak Laporan 3: Keluar
TUGAS 2 Buatlah algoritma dan program dalam bahasa C++ untuk Studi Kasus berikut : Sebuah perusahaan memberikan hadiah dan bonus pada karyawan yang jam kerjanya di atas 40 jam per-minggu dan tidak pernah terlambat dalam satu bulan. Karyawan yang jumlah jamnya di atas 40 jam per-minggu mendapat bonus sebesar 25.000 per kelebihan jamnya, dan bila dia juga tidak pernah terlambat akan mendapat hadiah berupa 10% dari gaji pokoknya.
Tugas 3 Problem: misalkan karyawan PT ABCD dikelompokkan berdasarkan golongan. Upah per jam tiap karyawan bergantung pada golongan gaji golongan A adalah Rp 40000/jam, golongan B adalah Rp 50000/jam, golongan C adalah Rp 60000/jam, dan golongan D adalah Rp 70000/jam. Jumlah jam kerja yang normal selama seminggu adalah 48 jam. Kelebihan jam kerja dianggap lembur dengan upah lembur adalah Rp 30000/jam untuk semua golongan. Input program: nama karyawan, golongan, dan jumlah jam kerja.