Capaian dan Indikator
1. Capaian Pembelajaran
Setelah mempelajari bab ini, mahasiswa diharapkan:
- Memahami skema percabangan dan peru langan
- Memahami kapan percabangan dan perulangan dapat digunakan
2. Indikator
- Mahasiswa mampu menggunakan percabangan dan perulangan dalam pemrograman
- Mahasiswa mampu memecahkan kasus yangbersifat percabangan dan perulangan
Uraian Materi
A. Percabangan
Di dalam Java, percabangan dapat diimplementasikan dalam dua jenis pernyataan: pernyataan if dan pemyataan switch-case. Keduanya memiliki fungsi yang sama, tetapi ada sedikit perbedaan di antara keduanya.
Pernyataan if
Pernyataan if dapat diimplementasikan untuk menangani percabangan yang didasarkan atas satu, dua, atau lebih dari dua kondisi. Pernyataan if digunakan apabila jumlah kondisi yang ada tidak terlalu banyak.
Bentuk if dengan satu kondisi adalah bentuk yang paling sederhana, mengandung suatu pernyataan tunggal yang dieksekusi jika kondisi yang ada terpenuhi. Sintaks dasarnya adalah sebagai berikut:
if (kondisi){ statement1; statement2; }
Pernyataan if dengan dua kondisi digunakan untuk mengambil keputusan berdasarkan dua kondisi. Apabila kondisi pertama terpenuhi , maka program akan mengeksekusi serangkaian statement , nam un jika kondisi pertama tidak terpenuhi, maka program akan mengeksekusi statement lainnya. Berikut sintaks dasarnya:
if (kondisi){ //statement yang akan dilakukan jika kondisi benar statement1; statement2; }else{ //statement yang akan dilakukan jika kondisi salah statement1; statement2; }
Apabila kondisi yang ada jumlahnya lebih dari dua, maka kita perlu menambahkan blok else if pada kode program kita. Sintaks dasarnya adalah sebagai berikut:
if (kondisi_1){ //statement yang akan dilakukan jika kondisi_1 benar statement1; statement2; }else if (kondisi_2){ //statement yang akan dilakukan jika kondisi_1 salah statement1; statement2; }else{ //statement yang akan dilakukan jika kondisi kondisi_1 dan kondisi_2 salah statement1; statement2; }
Ada kalanya kondisi yang ada sangat banyak, mungkin lebih dari 5 kondisi, sehingga menulis kode percabangan menggunakan pernyataan if dirasa tidak efisien lagi, maka kita dapat menggunakan pernyataan switch-case sebagai alternat ifnya. Berikut sintaks dasarnya:
switch (ekspresi) { case nilail: //statement yang akan dilakukan jika ekspresi = nilail statementl; statement2; break; case nilai2: //statement yang akan dilakukan jika ekspresi = nilai2 statementl; statement2; break; default: statementl; statement2 }
B. Perulangan
Perulangan digunakan untuk melakukan sejumlah operasi yang sama secara berulang ulang sampai tercapai kondisi berhentinya. Di dalam Java terdapat tiga skema perulangan: for, while, dan do-while.Masing-masing memiliki kegunaan tersendiri.
Skema perulangan for digunakan apabila jumlah perulangan yang akan dilakukan sudah diketahui. Sintaks dasarnya adalah sebagai berikut:
for (inisialisasi; kondisi; iterasi){ //statement yang akan diulang . . . }
Secara fungsional, perulangan while sama saja dengan perulangan for, hanya saja perulangan while biasa digunakan apabila jumlah perulangan yang akan dilakukan belum diketahui pasti jumlahnya. Skema ini akan terus melakukan perulangan selama kond isi yang diset terpenuhi. Sintaks dasarnya adalah sebagai berikut:
while (kondisi){ //statement yang akan diulang . . . iterasi }
Perulangan ini mirip dengan skema perulangan while, akan tetapi perbedaannya adalah pada proses pengecekan kondisi perulangan. Pada skema perulangan while, program akan mengecek kondisi terlebih dahulu, jika kondisi bernilai true, maka statement di dalam perulangan akan dieksekusi. Sebaliknya, pada skema perulangan do-while, program terlebih dahulu mengeksekusi statement di dalam perulangan, baru kemudian melakukan pengecekan kondisi.
Jika kondisi bernilai true, maka program akan mengeksekusi kem bali statement di dalam perulangan. Dari sini bisa disimpulkan bahwa perulangan do-while setidaknya akan mengeksekusi statement di dalam perulangan minimal satu kali apapun kondisi perulangannya. Berikut adalah sintaks umum skema perulangan do-while.
do{ //statement yang akan diulang . . . iterasi }while (kondisi)
Latihan
- Tuliskan program di bawah ini.
public class Percabangan2 { public static void main (String[] args){ //Variabel lokal int a = 7; if ((a > 0) && (a % 2 == 0)){ System.out.println(a + "adalah bilangan genap positif"); }else if ((a < 0) && (a % 2 == 0)){ System.out.println(a + "adalah bilangan genap negatif"); }else if ((a > 0) && (a % 2 != 0)){ System.out.println(a + "adalah bilangan ganjil positif"); }else { System.out.println(a + "adalah bilangan ganjil negatif"); } } }
Program di atas menghasilkan output berupa kalimat "7 adalah bilangan ganjil "positif " karena kondisi_ l (baris ke-6) dan kondisi_2 (baris ke-8) tidak terpenuhi, sedangkan kondisi_3 (baris ke- 1 0) terpenuhi.
a. Tulislah algoritma program tersebut
b. Apa luaran jika di lakukan kompilasi ?
Output: - Diberikan sebuah kode program:
a. Apakah keluaran program di atas?
b. Jika variabel nomorHari di isi melalui keyboard dengan nilai 3 , maka program di atas akan menampilkan apa?public class Percabangan3{ public static void main(String[] args){ //Variabel lokal int nomorHari = 2; switch (nomorHari){ case 1 : System.out.println("Hari ke-" +nomorHari+ ": Senin"); break ; case 2: System.out.println("Hari ke-" +nomorHari+ ": Selasa"); break ; default : System.out.println ("Tidak ada hari ke-" +nomorHari); } } }
Output :
Tugas
- Dari program contoh 2, tambahkan semua hari dalam seminggu.
- Buatlah kode program untuk menentukan apakah berat badan seseorang ideal atau tidak. Berat badan ideal seseorang dapat di hitung dengan rumus berikut ini :
a. BBI = (TB- 100) - ((TB-100)* 10%) , untuk pria (TB = Tinggi Badan)
b. BBI = (TB- 100) - ((TB-100)* 15%) , untuk wanita.
Jika berat badan seseorang lebih besar dari nilai BBI-n ya, maka berat badan nya tidak ideal. Buatlah kode programnya! - Jika diketahui sebuah kode program berikut ini:
public class Soal{ public static void main(String[] args){ int a, b; a = 6; b = -3; if ((a + b) >= (b-a)){ a += 2; b += a; if (a % 2 == 0){ a = b; }else { b += a + 1; } } a = -b - a; } }