PEMROGRAMAN DASAR Sistem Informasi PTIIK UB Semester Ganjil 2013/2014
Penyeleksi Kondisi / Percabangan Dr. Eng. Herman Tolle, ST., MT Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya
7 Aspek Dasar Pemrograman 1. 2. 3. 4. 5. 6. 7.
Membaca Input Data Menampilkan Output Data Melakukan proses perhitungan (Compute) Penyimpanan Data (Store) Penyeleksi Kondisi (Percabangan) Perulangan (Repetisi) Method – Fungsi
PROGRAM CONTROL
PERCABANGAN / PENYELEKSI KONDISI
PERCABANGAN • Termasuk kategori Program Flow Control • Dalam sebuah algoritma, seringkali suatu atau sekelompok instruksi akan dilaksanakan jika suatu persyaratan (kondisi) dipenuhi (bernilai benar), dan sebaliknya, dilewati atau tidak dilaksanakan jika persyaratan (kondisi) tersebut tidak dipenuhi (bernilai salah). • Percabangan dua (if-else) • Percabangan banyak (if-else bertingkat dan switch-case)
Poin dalam Pecabangan • • • • • •
If If .. Else .. If Bersarang (nested) Switch Case Break Default
Statement IF • Menyeleksi sebuah kondisi, jika kondisi terpenuhi (bernilai benar) maka statement setelah IF (kondisi) akan dieksekusi • Kondisi adalah suatu perbandingan yang biasanya menggunakan operator relasional (>, >=, ==, !=, <, <=) if (kondisi) Statement;
if (kondisi) { Statement_1; Statement_2; Statement_N; }
Contoh if (Nilai>55) System.out.pintln(“Lulus!”);
if (Nilai<=55) { System.out.pintln(“Maaf”); System.out.pintln(“Tidak Lulus!”); }
If Else • Jika kondisi yang diuji bernilai salah, maka eksekusi statemen pada bagian ELSE if (kondisi) Statement_true; else Statement_false;
if (kondisi) { Statement_true1; Statement_true2; Statement_N; } else { Statement_false1; Statement_false2; Statement_falseN; }
Contoh If Else if (Nilai>55) System.out.println(“Lulus!”); else System.out.println(“Tidak Lulus!”); if (harga>100000) { System.out.println(“Anda mendapatkan diskon 10%!”); Diskon = harga*0.1; } else { System.out.println(“diskon 25%!”); Diskon = harga*0.25; }
Case: Kuis Pengurangan • Program Kuis Pengurangan untuk anak SD Kelas1 • Sistem secara otomatis membangkitkan 2 bilangan random (angka1, angka2) – int angka1 = (int)(Math.random() * 10);
• Jika angka1 < angka2 maka tukar nilainya • Sistem menanyakan kepada pengguna, berapa hasil pengurangan angka1-angka2 • Periksa jawaban pengguna, dan tampilkan “Anda Benar” atau “Anda Salah”
Kuis Pengurangan anak SD Kelas 1 import java.util.Scanner; public class KuisPengurangan { public static void main(String[] args) { // 1. Bangkitkan dua integer satudijit, angka1 dan angka2 int angka1 = (int)(Math.random() * 10); int angka2 = (int)(Math.random() * 10); // 2. Jika angka1 < angka2, maka tukar angka1 dengan angka2 if (angka1 < angka2) { int temp = angka1; angka1 = angka2; angka2 = temp; }
// 3. Minta siswa untuk menjawab “Berapakah angka1 – angka2?” System.out.print ("Berapakah " + angka1 + " - " + angka2 + "? "); Scanner masukan = new Scanner(System.in); int jawab = masukan.nextInt(); // 4. Periksa jawaban siswa dan tampilkan apakah jawaban benar atau salah if (angka1 - angka2 == jawab) System.out.println("Anda benar!"); else System.out.println("Jawaban Anda salah\n" + angka1 + " - " + angka2 + " seharusnya " + (angka1 angka2)); } }
IF Bersarang (Nested) if (Kondisi 1) Statement 1 ; else if (Kondisi 2) Statement 2; else Statement 3;
Nested if if (kondisi1) { if (kondisi2) { } else { } } else { if (kondisi3) { } else { } }
if (kondisi1) { if (kondisi2) { if (kondisi4) { if (kondisi5) { } } } else { } } else { if (kondisi3) { } else { } }
Case: Menghitung Body Mass Index • Input: – Tinggi (meter) – Berat (kg)
• Process: – BMI = berat / (tinggi*tinggi)
BMI
Interpretasi
Di bawah 16
Sangat Kurus
16-18
Kurus
18-24
Normal
24-29
Gemuk
29-35
Sangat Gemuk
> 35
Terlalu Gemuk
Contoh: Hitung Body Mass Index import java.util.Scanner; public class HitungBMI { public static void main(String[] args) { Scanner masukan = new Scanner(System.in); // Meminta pengguna memasukkan berat dalam kg System.out.print("Masukkan berat badan dalam kg: "); double berat = masukan.nextDouble(); // Meminta pengguna memasukkan tinggi badan dalam meter System.out.print("Masukkan tinggi badan dalam meter "); double tinggi = masukan.nextDouble();
// Hitung BMI double bmi = berat/ (tinggi* tinggi);
// Tampilkan hasil System.out.printf("BMI Anda adalah %5.2f\n", bmi); if (bmi < 16) System.out.println("Anda sangat kurus"); else if (bmi < 18) System.out.println("Anda kurus"); else if (bmi < 24) System.out.println("Anda normal"); else if (bmi < 29) System.out.println("Anda gemuk"); else if (bmi < 35) System.out.println("Anda sangat gemuk"); else System.out.println("Anda terlalu gemuk"); } }
SWITCH CASE
SWITCH CASE • Pernyataan switch-case dapat dipergunakan sebagai pengganti pernyataan if-else bertingkat, jika pernyataan if-else bertingkat terlalu banyak, sehingga menjadi sulit dibaca. • Untuk menangani percabangan dengan kondisi lebih dari satu
switch, case, break • Variable pada switch hanya untuk bilangan bulat (byte, integer, dll) atau karakter (char) • Case nilai dengan tipe data yang sama dengan switch
Syntax: switch (variable) { case nilai_1: statemen_1; break; case nilai_2: statemen_2a; statemen_2b; break; case nilai_n: statemen_n; break; default: statemen_default }
Break & Default • Pernyataan Break digunakan untuk menghentikan program lanjut ke baris selanjutnya jika kondisi terpenuhi • Tanpa menggunakan ‘Break’ Maka program akan dieksekusi pada baris selanjutnya • Statement Default digunakan jika tidak ada kondisi pada bagian case yang ditemukan
Contoh
switch ( nilai/10) { case 10: case 9: case 8: huruf='A'; break; case 7: huruf='B'; break; case 6: huruf='C'; break; case 5: huruf='D'; break; default: huruf='E'; break; }
Tugas Buatlah algoritma flowchart dan program komputer untuk menyelesaikan kasus berikut: 1. Program konversi menghitung nilai Akhir (Huruf) 2. Input: Nama, NIM, nilai Tugas, nilai Quiz, nilai UTS, nilai UAS, (nilai dalam angka (float)). 3. Output: 1. 2. 3.
Nilai Huruf Komentar untuk setiap nilai yang diperoleh, misalnya “Hebat” untuk nilai A, “Belajar lebih keras” untuk nilai D, dst Ditampilkan dalam format tabel dan kolom
• Jalankan program yang anda buat, dan simulasikan dengan data anda sendiri. Hasil simulasi di screenshot sebagai bagian dari laporan • Laporan source code & screen shot dalam lembar A4, dengan Nama-Nim pada header • Nilai Akhir = (0.2 x Quiz) + (0.25 x UTS) + (0.30 x UAS) + (0.25 x Tugas)