Anda di halaman 1dari 18

Percabangan

Multilevel
Aji Seto Arifianto
Percabangan Multilevel
• Semakin kompleks permasalahan yang harus diselesaikan, maka akan
berpengaruh pada struktur sintaks program yang harus disusun oleh
programmer.
• Dalam kasus pemilihan kondisi sederhana, programmer cukup
menggunakan percabangan if-else, elseif, atau switch-case, namun
ketika menghadapi syarat yang berlapis-lapis tentu akan
membutuhkan struktur percabangan yang “bertumpuk” juga.
• Kondisi “berlapis” / “bertumpuk” disebut Percabangan Multilevel / If
bersarang / nested-if
Contoh Flowchart – Nested if
Nested-if (1)
• Contoh kasus
• Sebuah variabel val bertipe integer diberikan nilai (boleh memalui
inisialisasi langsung atau menggunakan input from keyboard)
• Kemudian diseleksi, Jika nilai variabel val LEBIH DARI 0 DAN KURANG
DARI SAMADENGAN 10, kemudian diseleksi lagi, apakah bilangannya
GANJIL atau GENAP.
• Jika nilai val kurang dari Nol atau lebih dari 10, maka tidak perlu di cek
ganjil/genap.
Nested-if (2)
• Contoh kasus
• Terdapat dua variabel masukan, pilihan bertipe integer dan
kode_nama bertipe String  input from keyboard
• Kemudian diseleksi, Jika nilai variabel pilihan, bernilai 1 adalah
manager, 2 adalah kasir, jika bukan 1 atau 2 maka bukan karyawan
• Untuk Manager, kode_nama fjr = FAJAR, mch = MICHELE, ant =
ANTHONY
• Untuk Kasir, kode_nama rd = RUDI, hn = HANA.
• Selain itu SALAH.
CATATAN!!
• Java menyediakan dua mekanisme dasar untuk menguji kesetaraan
String. Operator "==" dapat digunakan untuk menguji nilai primitif,
dan juga dapat digunakan untuk menentukan apakah dua referensi
objek menunjuk ke objek dasar yang sama.

[24]Scanner in_nama = new Scanner(System.in)


[30]kode_nama = in_nama.nextLine();
//Misal dimasukkan String fjr

[32] if (kode_nama.equals("fjr"))  hasilnya true


if (kode_nama == “fjr" )  hasilnya false
Karena “fjr” sebagai obyek baru.
Nested-if (3)
• Contoh kasus
• Kasus 2 (Slide 6) di rubah dengan sintaks SWITCH-CASE
Nested-if (3)
• Contoh kasus
• Pembacaan sensor ultasonik (sensor jarak) pada
kasus robot beroda. depan

• Ada 5 sensor sebagai input, us1,us2, us3, us4 dan


us1
us5 bertipe integer dengan nilai antara 0-255

us4
• Penempatan sensor ultrasonik, seperti pada

us
2
gambar disamping kanan.
• Output adalah gerakan motor kanan dan kiri

us3
us5
• Mundur atau Maju
• Rpm (kecepatan putaran)
Lanjutan Kasus 3
• Kondisi
• Jika us1 lebih dari 100 (artinya halangan didepan robot masih jauh),
maka
• tanda = true
• us2 bernilai > 150 dan us3 bernilai > 120  belok kanan
• Selainnya  Sisir dinding kanan
• tanda = false
• us4 bernilai > 150 dan us5 bernilai > 120  belok kiri
• Selainnya  Sisir dinding kiri
• Jika us1 antara 50-100, maka maju pelan
• Jika us1 kurang dari 50, maka berhenti
Silahkan rubah-rubah
nilai variabel-variabel ini,
Lihat hasilnya
• Perhatikan jumlah pasangan
kurung kurawal {}
• Misal, Kurung kurawal pada
baris 45, berpasangan
dengan kurung kurawal pada
baris 77
• else, di baris 78, merupakan pasangan if baris 32, else if
dibaris 37 dan 44
• Kurung Kurawal, di baris 85, merupakan pasangan kurung
kurawal milik Method Main() dibaris 18

Anda mungkin juga menyukai