BAB 2 Seleksi Kondisi Tujuan 1. Praktikan mampu memahami konsep penggunaan conditional assignment 2. Praktikan mampu memahami konsep percabangan menggunakan if-else, if-else if-else. Praktikan mampu memahami konsep percabangan menggunakan Ringkasan Materi A. Conditional Assignment Sebelum mengenal menggunakan if kita dikenalkan bagaimana cara menggunakan dan kode untuk conditional assignment. Berikut kode dari conditional assignment : type_data variabel = kondisi? pernyataan_benar : pernyataan_salah Dari kode diatas dapat dijelaskan bahwa pertama harus dilakukan pendeklarasian variabel dan type data dari variabel yang kita buat, kemudian kita beri suatu kondisi setelah itu jika kondisi benar maka program akan berjalan ke pernyaataan benar namun jika salah maka akan melakukan pernytaan salah. Contoh : String s = (>2)? Berhasil : Gagal ; Jika program tersebut dijalankan maka akan mencetak Berhasil karena kondisi pada conditional assignment tersebut benar. B. Seleksi kondisi menggunakan if-else Untuk melakukan percabangan tunggal kita dapat menggunakan if saja namun untuk percabangan yang lebih dari satu (percabangan majemuk) maka kita dapat menggunakan ifelse. Bentuk dasar dari statemen ini adalah : if (kondisi){ Blok pernyataan Namun untuk percabangan yang lebih dari 2, bentuk dasar yang digunakan adalah : if (kondisi){ Blok pernytaan 1; else if (kondisi){ Blok pernyataan 2; else if (kondisi){ Blok pernyataan ; Blok pernyataan ; C. Nested If Suatu if memungkinkan untuk terapat if didalan if inilah yang disebut sebagai nested if. Alur programnya adalah jika kondisi if pertama benar makan program akan mengecek if kedua jika benar maka mengecek if ketiga begitu seterusnya. Bentuk dasar dari nested if adalah sebagai berikut :
if (kondisi){ if(kondisi){ if(kondisi){ blok pernyataan; Else{ Else{ Else{ D. Switch Case Selain menggunakan if untuk seleksi kondisi terdapat sintaks lain yaitu menggunakan Switch case. Program akan menampilkan output sesuai dengan inputan yang diberikan dengan batasan input berupa nilai awal sampai nilai akhir tertentu. Bentuk dasar dari switch case adalah sebagai berikut : Switch(kondisi){ Case nilai1 : statemen-1; break; Case nilai2 : statemen-2; break; Case nilai : statemen-; break; Default : Statemen-; Pelaksanaan Percobaan A. Conditional Assignment constass.java 1 2 public class constass{ String s = "filkom"; String val = (s=="filkom")?"brawijaya" : "null"; System.out.println(s+" "+val); B. If-else seleksi1.java 1 import java.util.scanner; 2 public class seleksi1{ Scanner in = new Scanner(System.in); System.out.print("masukkan nilai : "); int nilai = in.nextint(); if (nilai > 0) 8 System.out.println("Anda lulus"); 9 else if (nilai >= 0) 10 System.out.println("Anda harus mengulang!"); 11 12 System.out.println("Anda gagal"); 1
1 1 C. Nested if seleksi2.java 1 import java.util.scanner; 2 public class seleksi2{ Scanner in = new Scanner(System.in); System.out.print("masukkan nilai : "); int nilai = in.nextint(); if(nilai * 2 < 0){ 8 nilai += 10; 9 10 if(nilai<=20){ 11 System.out.println("Filkom"); 12 if(nilai % 2 == 1){ 1 System.out.println("UB"); 1 1 1 System.out.println("Brawijaya"); 1 18 19 20 System.out.println("PTIIK"); 21 if(nilai % 2 == 1){ 22 System.out.println("UB"); 2 2 2 System.out.println("Brawijaya"); 2 2 28 29 D. Switch-case seleksi.java 1 import java.util.scanner; 2 public class seleksi{ Scanner in = new Scanner(System.in); int uang; System.out.println("Tipe Mata uang yang tersedia"); System.out.println("1. Dolar - USA (kurs USD 1 = Rp 8000,-)"); 8 System.out.println("2. Yen - Jepang( kurs JPY 1 = Rp. 000,- )"); 9 System.out.println(". Poundsterling - Inggris( kurs 1 Poundsterling = Rp. 10.00, -)"); 10 System.out.println(". Euro - MEE( kurs EUR 1 = Rp. 8900,- )"); 11 System.out.println(". Riyal - Arab Saudi( kurs 1 Riyal = Rp. 1100,-)");
12 1 1 1 1 1 18 19 20 21 22 2 2 2 2 2 28 29 0 1 2 System.out.print("Masukkan jenis mata uang anda : "); int pilihan = in.nextint(); switch(pilihan){ case 1 : System.out.println("Data diterima, jenis valuta Anda : Dolar Amerika Serikat"); anda (dalam dolar) : "); : Rp "+(uang*8000)+",-");break; case 2 : System.out.println("Data diterima, jenis valuta Anda : Yen Jepang"); anda (dalam Yen) : "); : Rp "+(uang*000)+",-");break; case : System.out.println("Data diterima, jenis valuta Anda : Poundsterling Inggris"); anda (dalam dolar) : "); : Rp "+(uang*1000)+",-");break; case : System.out.println("Data diterima, jenis valuta Anda : Euro MEE"); anda (dalam Euro) : "); : Rp "+(uang*8900)+",-");break; case : System.out.println("Data diterima, jenis valuta Anda : Riyal Arab Saudi"); anda (dalam Riyal) : "); : Rp "+(uang*1100)+",-");break; default : System.out.println("data tak ditemukan"); Data dan Analisis hasil percobaan A. Conditional Assignment 1. Jalankan file constass.java dan benahi jika menemukan kesalahan! 2. Ubah kode diatas pada baris ke empat dengan merubah type data String menjadi int, amati yang terjadi kemudian jelaskan!
. Tambahkan kode dibawah baris dengan menambahkan program yang meminta inputan user dengan memasukkan nama dan nim masing-masing mahasiswa dan jika benar maka akan mencetak nama dan nim mahasiswa, jika salah maka mencetak input nama salah jika memasukkan nama yang salah, input nim salah jika memasukka nim yang salah. Buat program yang meminta untuk memasukkan nama dan password kemudian program akan meminta user untuk memasukkan nama dan password sesuai inputan sebelumnya. Jika benar maka program akan mencetak informasi biodata mahasiswa dan jika salah maka program akan mencetak data tak ditemukan. B. If else 1. Jalankan file seleksi1.java dan benahi jika menemukan kesalahan! 2. Masukkan nilai 0, 0 dan 80 saat program dijalankan, dan jawablah dengan screenshot hasil keluaran dari program!. Pada baris 9, ubahlah kode program menjadi System.out.println("Nilai kurang!");, Pengaruh apa yang ditimbulkan setelah dilakukan pengubahan kode diatas! C. Nested If 1. Jalankan file seleksi2.java dan benahi jika menemukan kesalahan! 2. Masukkan nilai, 20, 0 saat program dijalankan, jelaskan alur jalan program dan beri screenshot keluaran dari program!. Ubah kode diatas dengan memanfaatkan operasi and! D. Switch case 1. Jalankan file seleksi.java dan benahi jika menemukan kesalahan! 2. Pada baris 18,22,2,0 dan hapus kode break, pengaruh apa yang terjadi setelah pengubahan kode tersebut!
. Apa perbedaan seleksi kondisi dengan menggunakan switch case dan if-else, dan kapan kita harus menggunakan if-else dan kapan menggunakan switch case? Tugas Praktikum 1. Buatlah program sebagai berikut dengan menggunakan metode switch case Menu : 1. menghitung luas dan keliling persegi panjang 2. menghitung luas dan keliling lingkaran. menghitung luas dan keliling segitiga Pilihan anda : Masukkan a : Masukkan b : Masukkan r : Keliling segitiga Luas segitiga : 12 cm : cm2 Pilihan anda : 10 Data tak ditemukan, program dihentikan... 2. Untuk menentukan kriteria kegemukan, digunakan IMT (Indeks Massa Tubuh), yang bisa dihitung menggunakan rumus : IMT = b / t 2 b = berat badan (kg) t = tinggi badan (m) Kriteria untuk nilai IMT ditabelkan sebagai berikut : Nilai IMT Kriteria IMT 18, Kurus 18, < IMT 2 Normal 2 < IMT 0 Gemuk IMT > 0 Kegemukan Susun program dengan tampilan sebagai berikut dengan menggunakan metode if-else! Berat badan (kg) : Tinggi badan (m) :1.2 IMT = 1,21 Termasuk kurus Berat badan (kg) : 8 Tinggi badan (m) :1.1 IMT = 2, Termasuk gemuk. Susun program untuk masalah pengajian sebagai berikut :
Masukan yang dibutuhkan oleh program adalah : jumlah jam kerja tiap minggu.keluaran program adalah : total upah dari pegawai tertentu. Aturan yang diterapkan adalah : - Batas kerja maksimal adalah 0 jam / minggu, dengan upah Rp. 000,- / jam. Kelebihan jam kerja dari batas maksimum akan dianggap sebagai lembur dengan upah Rp. 000,- / jam. - Batas kerja minimal adalah 0 jam / minggu. Apabila pegawai mempunyai jam kerja di bawah batas kerja minimal ini, maka akan dikenakan denda sebesar Rp. 1000, - / jam. Contoh tampilan : Jam kerja : Upah = Rp. 2000 Lembur = Rp. 0 Denda = Rp. 0 --------------------- Total = Rp. 2000 Jam kerja : 0 Upah = Rp. 00000 Lembur = Rp. 0000 Denda = Rp. 0 --------------------- Total = Rp. 0000 Jam kerja : 0 Upah = Rp. 200000 Lembur = Rp. 0 Denda = Rp. 10000 --------------------- Total = Rp. 190000