Percabangan /Pemilihan Pertemuan ke-3 dan ke-4 Pernyataan dan Aksi Pernyataan (statement) adalah tulisan/kode/diagram yang menggambarkan langkah penyelesaian algoritma Sebuah pernyataan menggambarkan Aksi algoritmik yang dapat dieksekusi Struktur Dasar Algoritma 1. Runtunan (Sequence) Algoritma bisa memberikan hasil jika semua pernyataan dieksekusi 2. Pemilihan (Selection) Algoritma bisa memberikan hasil meskipun hanya sebagian pernyataan yang terpilih yang dieksekusi 3. Pengulangan (Repetition) Hasil algoritma mungkin sebagian ditentukan oleh pengulangan eksekusi beberapa pernyataan. Pemilihan Ada kalanya sebuah aksi dilakukan jika kondisi tertentu dipenuhi. Contoh: Berkendara mendekati persimpangan (baik ada lampu lalu-lintas maupun tidak) Contoh pernyataan (dlm bahasa natural): Jika lampu traffic light berwarna merah, maka berhenti Polanya: IF kondisi THEN aksi Contoh Pemilihan IF (lampu lalu-lintas berwarna hijau) THEN jalankan kendaraannya IF (suhu ruangan) > 27 C THEN nyalakan proses pendinginannya IF (jalan rungkut madya ditutup semua) THEN tidak usah berangkat ke kampus NOTE: dalam masalah yang kompleks, biasanya terdapat banyak sekali proses Pemilihan Pola Penulisan Pemilihan Untuk 1. permasalahan yang lebih kompleks, penulisan mengikuti pola-pola sebagai berikut: IF kondisi1 THEN IF kondisi2 THEN IF kondisi3 THEN ….. aksi Pola Penulisan Pemilihan 2. IF kondisi1 THEN aksi1 ELSE IF kondisi2 THEN aksi2 ELSE aksi3 Nested If (Bilangan Negatif / Positif) Pseudocode (Bil Positif/Negatif) Baca bilangan If (bilangan > 0) then “Positif” Else If (bilangan < 0) then “Negatif” Else “Nol” bilangan disebut dengan variabel atau mudahnya adalah wadah Operator Aritmatika Penting + * / atau DIV % atau MOD Contoh: : Penjumlahan : Pengurangan : Perkalian : Pembagian : Sisa pembagian bulat 8 / 4 = 2, hasil bagi 2 8 % 4 = 0, sisa hasil bagi 0, atau tidak ada sisa (habis) Nested If (Menentuk an jumlah hari dalam bulan) Start Baca bulan Baca tahun bulan = 1,3,5,7,8,10,12 ? Y jumlahHari = 31 T bulan = 4,6,9,11 ? Y jumlahHari = 30 T bulan = 2 ? Y tahun % 4 = 0 ? T T Cetak “Bulan Invalid” jumlahHari = 28 End Y jumlahHari = 29 Cetak jumlahHari Contoh : part program … … else if (bulan == 2) { if (tahun % 4 == 0){ jmlHari = 29; } else{ jmlHari = 28; } } … … Kesalahan Umum Soal : buat program yg menampilkan Nilai dalam Huruf (A,B,C,D atau E) dengan kriteria : Nilai >= 80 70 <= Nilai < 80 60 <= Nilai < 70 50 <= Nilai < 60 Nilai < 50 :A :B :C :D :E Contoh Solusi (1 – sequential IF) … IF (nilai >= 80) THEN Tampilkan “A” IF(nilai >= 70) THEN Tampilkan “B” IF (nilai >= 60) THEN Tampilkan “C” IF(nilai >= 50) THEN Tampilkan “D” ELSE Tampilkan “E” … INI CONTOH SOLUSI YANG SALAH !!! Contoh Solusi (2 – NESTED IF) … … IF (nilai >= 80) THEN Tampilkan “A” ELSE IF(nilai >= 70) THEN Tampilkan “B” ELSE IF (nilai >= 60) THEN Tampilkan “C” ELSE IF(nilai >= 50) THEN Tampilkan “D” ELSE Tampilkan “E” … INI CONTOH SOLUSI YANG BENAR!!! Contoh Solusi (3) IF (nilai >= 80) THEN Tampilkan “A” IF ((nilai >= 70) AND (nilai < 80) ) THEN Tampilkan “B” IF ((nilai >= 60) AND (nilai < 70) ) THEN Tampilkan “C” IF ((nilai >= 50) AND (nilai < 60) ) THEN Tampilkan “D” ELSE Tampilkan “E” … INI CONTOH SOLUSI YANG BENAR!!! Intermezzo Otak Di suatu malam yg gelap, 4 orang harus menyeberang jembatan yang sudah rapuh. Jembatan ini tidak bisa dilewati lebih dari 2 orang setiap waktunya. Fakta: Kecepatan jalan u/ menyeberang tidak sama. Ada yg perlu 10 menit, ada yang 5 menit, ada yang 2 menit dan terakhir 1 menit Di belakang mereka gunung sedang meletus yang laharnya akan mencapai mereka dalam waktu 17 menit. Bagaimana mereka menyeberang dengan selamat . Latihan 1 Tulislah algoritma mengirim email ke teman, dengan mempertimbangkan kemungkinan: Belum/sudah punya akun Email teman sudah ada/belum Benar/Salah alamat email Ada/Tidak ada judul email atau Ada/tidak ada isi pesan Latihan 2 Mencari nama mahasiswa dari data 4 mhs, ada atau tidak Latihan 3 Program mencari nama hari, jika diberikan nama hari sekarang, dan berapa jumlah hari kedepan Latihan 4 Pajak penghasilan(pph) hanya dikenakan thd penghasilan di atas 300 ribu. Jika penghasilan kurang dari atau sama dengan 300 ribu tidak dikenakan pph. Untuk penghasilan sampai dengan 10 juta dikenai pph 15%, sedangkan jika lebih dari 10 juta dikenai pph 30%. Jika tidak terkena pajak, munculkan pesan “Horeee, gak bayar pajek, rek !” Jika total pajak-nya lebih dari 50 ribu, munculkan pesan “Aduuhh, gak isok malam mingguan iki !” Jika total pajak-nya lebih dari 75 ribu, munculkan pesan “wis gak malam mingguan, bangkrut pisan !” Buat programnya Tugas 2 (due: 23/9/2013) Tuliskan algoritma deskriptif bagaimana: 1. Mengirimkan sms kepada sekelompok (grup) teman tanpa perlu memilih/memasukkan manual nomor telepon masing-masing teman setiap kali ini dilakukan. Tulis lengkap, sebanyak mungkin kondisi yang ada, termasuk : Sedang menulis SMS, kemudian ingin menambah/menghapus nama dalam daftar nama grup. Sedang menuliskan SMS, kemudian ada telpon masuk (TIPS: amati gadget anda) Tugas 3 (due: 9/10/2013) 1. 2. PDAM menentukan tarif progresif per m3 air dg ketentuan berikut : Buat program u/ membaca jumlah pemakaian air, menghitung biaya yang harus dibayar dan menampilkannya di layar Buat algoritma untuk menentukan jam:menit terbaru jika diberikan jam:menit sekarang dan tambahan menit ke depan. Format jam pakai yang 24 jam. Volume Air (m3) Tarif per m3 (Rp) TOOLS: RAPTOR 0 – 15 250 16 - 30 31 - 50 450 675 > 50 1125 Contoh Penerapan Nested Looping untuk animasi for (int counter1 = 1; counter1 <= baris ; counter1++){ for (int counter2=1; counter2<= kolom; counter2++){ System.out.print("*"); } System.out.print("\n"); }