Modul ini membahas struktur kontrol percabangan dan pengulangan dalam pemrograman berorientasi objek. Terdapat tiga jenis struktur kontrol percabangan yaitu if, if-else, dan switch-case beserta contoh kode programnya. Sedangkan untuk pengulangan terdapat pernyataan for, while, dan nested loop beserta contoh kode programnya. Modul ini juga membahas flowchart dari masing-masing struktur kontrol.
1. Modul PBO – Teknokrat
12
STRUKTUR KONTROL
Tujuan
Praktikan dapat memahami, menjelaskan, dan menerapkan tentang struktur kontrol
percabangan dan pengulangan.
PERCABANGAN
Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah
instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Ada beberapa bentuk struktur
dasar operator pemilihan ini, yaitu:
· Pernyataan if
· Pernyataan if-else
· Pernyataan switch-case
Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam pengambilan
keputusan. Kondisi umum yang dipakai berupa keadaan benar dan salah, operator yang bisa
digunakan berupa operator relasi atau menggunakan operator logika.
PERNYATAAN IF
Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan
hanya jika persyaratan bernilai benar (true). Bentuk dari pernyataan if,
if( boolean_expression )
statement;
atau
if( boolean_expression ){
statement1;
statement2;
. . .
}
dimana, boolean_expression adalah sebuah penyataan logika (true/false) atau variabel bertipe
boolean. Gambar 2.1 berikut merupakan diagram alur (flowchart) dari struktur pemilihan if.
BAB
2
2. Modul PBO – Teknokrat
13
Gambar 2. 1 Flowchart struktur pemilihan if
Bentuk pernyataan ini dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak
program tidak memberikan hasil apa-apa.
Program 2-1
public class Percabangan {
public static void main(String [] args) {
// program untuk mencetak bilangan jika dibawah 10
int bil = 7;
if(bil < 10)
System.out.println("Angka " + bil + " kurang dari 10");
}
}
Hasil Output
Angka 7 kurang dari 10
Penjelasan:
Tampak bahwa jika nilai ‘bil’ lebih dari atau sama dengan 10, maka program tidak menghasilkan apa-
apa.
PERNYATAAN IF-ELSE
Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi
true dan pernyataan yang lain dengan kondisi false. Bentuk pernyataan if-else,
if( boolean_expression )
statement;
else
statement;
dapat juga ditulis seperti,
if( boolean_expression ){
statement1;
statement2;
. . .
}else{
3. Modul PBO – Teknokrat
14
statement1;
statement2;
. . .
}
Gambar 2.2 berikut merupakan diagram alur (flowchart) dari struktur pemilihan if-else.
Gambar 2. 2 Flowchart struktur pemilihan if-else
Arti dari pernyataan if-else:
· Jika kondisi benar, maka if code dieksekusi.
· Sedangkan bila kondisi bernilai salah, maka else code yang dieksekusi.
Masing-masing if code dan else code dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk ataupun pernyataann kosong.
Program 2-2
public class Percabangan {
public static void main(String [] args) {
int bil = 13;
if(bil < 10)
System.out.println("Angka " + bil + " kurang dari 10");
else
System.out.println("Angka " + bil + " lebih dari 10");
}
}
Hasil Output
Angka 13 lebih dari 10
Penjelasan:
Tampak bahwa jika nilai yang diberikan lebih dari atau sama dengan 10, maka program akan
memberi pesan “Angka … lebih dari 10”.
4. Modul PBO – Teknokrat
15
PERNYATAAN IF-ELSE-IF
Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else yang lain. Kondisi
struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih kompleks.
Bentuk pernyataan if-else if,
if( boolean_expression1 )
statement1;
else if( boolean_expression2 )
statement2;
else
statement3;
Sebagai catatan: anda dapat memiliki banyak blok else-if sesudah pernyataan if. Blok else bersifat
opsional dan dapat dihilangkan. Pada contoh yang ditampilkan di atas, jika boolean_expression1
bernilai true, maka program akan mengeksekusi statement1 dan melewati pernyataan yang lain. Jika
boolean_expression2 bernilai true, maka program akan mengeksekusi statement2 dan melewati
statement3.
Program 2-3
public class Percabangan2 {
public static void main(String [] args) {
int na; // nilai akhir
char hm; // huruf mutu
na = 88;
if(na > 85) { hm = 'A'; }
else if(na > 75) { hm = 'B'; }
else if(na > 65) { hm = 'C'; }
else if(na > 55) { hm = 'D'; }
else { hm = 'E'; }
System.out.println("Huruf Mutu = " + hm);
}
}
Hasil Output
Huruf Mutu = A
PERNYATAAN SWITCH-CASE
Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch
mengkonstruksikan cabang untuk beberapa kondisi dari nilai. Bentuk pernyataan switch,
switch( switch_expression ){
case case_selector1:
statement1; //
statement2; //block 1
. . . //
break;
case case_selector2:
statement1; //
statement2; //block 2
. . . //
break;
5. Modul PBO – Teknokrat
16
default:
statement1; //
statement2; //block n
break;
}
Switch expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan
seterusnya adalah konstanta unik dari nilai integer atau karakter.
Ketika pernyataan switch ditemukan pada potongan kode program, compiler pertamakali akan
memeriksa switch_expression, dan menuju ke case yang akan menyamakan nilai yang dimiliki oleh
switch_expression.
Selanjutnya program akan mengeksekusi pernyataan pada dari kode setelah case yang ditemukan
sampai menemui pernyataan break, selanjutnya akan mengabaikan pernyataan yang lainnya hingga
akhir dari struktur dari pernyataan switch.
Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default. Sebagai catatan,
bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bisa jadi tidak memiliki blok
kode default. Gambar 2.3 berikut merupakan diagram alur (flowchart) dari struktur pemilihan
switch-case.
Gambar 2. 3 Flowchart struktur pemilihan switch-case
Program 2-4
public class Percabangan3 {
public static void main(String [] args) {
int no_hari = 3;
String nama_hari;
switch(no_hari) {
case 1: nama_hari = "Minggu"; break;
case 2: nama_hari = "Senin"; break;
case 3: nama_hari = "Selasa"; break;
case 4: nama_hari = "Rabu"; break;
case 5: nama_hari = "Kamis"; break;
6. Modul PBO – Teknokrat
17
case 6: nama_hari = "Jum'at"; break;
case 7: nama_hari = "Sabtu"; break;
default: nama_hari = "Tidak terdaftar"; break;
}
System.out.println("Nama hari ke-" + no_hari + ": " + nama_hari);
}
}
Hasil Output
Nama hari ke-3: Selasa
PENGULANGAN
Suatu Struktur yang terdiri dari sebuah atau sekelompok instruksi yang diulang untuk jumlah
tertentu. Baik yang terdefinisikan ataupun tidak. Struktur pengulangan terdiri atas dua bagian, yaitu
kondisi pengulangan dan isi/badan pengulangan. Kondisi pengulangan berupa ekspresi boolean yang
harus dipenuhi untuk melaksanakan pengulangan. Isi atau badan pengulangan berupa satu atau
lebih pernyataan (aksi) yang akan diulang.
PERNYATAAN FOR
Pernyataan for digunakan untuk menghasilkan pengulangan (looping) beberapa kali tanpa
penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah diketahui batas
awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus
dieksekusi. Diagram alir untuk pernyataan for dapat dilihat pada Gambar 2.4. Bentuk pernyataan for:
for(inisialisasi; kondisi; iterasi){
pernyataan;
}
Gambar 2. 4 Flowchart pernyataan for
7. Modul PBO – Teknokrat
18
Program 2-5
public class Pengulangan {
public static void main(String [] args) {
// Program untuk mencetak bilangan 1 - 15
for(int i=1; i<=15; i++) {
System.out.print(i + " ");
}
}
}
Hasil Output
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Pada contoh yang melibatkan pernyataan for di atas (Program 2-5), kenaikan variabel pengendali
loop berupa nilai positif. Sebenarnya kenaikan terhadap variabel pengendali loop bisa diatur bernilai
negatif. Berikut adalah contoh programnya:
Program 2-6
public class Pengulangan {
public static void main(String [] args) {
// Program untuk mencetak bilangan 15 - 1
for(int i=15; i>=1; i--) {
System.out.print(i + " ");
}
}
}
Hasil Output
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Pernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebut nested for. Berikut
contoh programnya:
Program 2-7
public class Pengulangan2 {
public static void main(String [] args) {
int tinggi = 4;
System.out.println("Tinggi Segitiga: " + tinggi);
for(int i=0; i<=tinggi; i++) {
for(int j=0; j<i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
8. Modul PBO – Teknokrat
19
Hasil Output
Tinggi Segitiga: 4
*
**
***
****
PERNYATAAN WHILE
Pernyataan while merupakan salah satu pernyataan yang berguna untuk memproses suatu
pernyataan atau beberapa pernyataan beberapa kali. Pada pernyataan ini pengecekan terhadap
loop dilakukan di bagian awal (sebelum tubuh loop). Pernyataan while memungkinkan statemen-
statemen yang ada didalamnya tidak diakukan sama sekali. Bentuk pernyataan while:
while (kondisi){
pernyataan;
}
Berdasarkan Gambar 2.5, dapat dilihat bahwa ada kemungkinan statement tidak dijalankan sama
sekali, yaitu apabila hasil pengujian condition yang pertama kali bernilai false.
Gambar 2. 5 Flowchart pernyataan while
Program 2-8
public class Pengulangan3 {
public static void main(String [] args) {
int bil = 10;
while(bil <= 20) { System.out.print(bil + " "); bil += 2; }
}
}
Hasil Output
10 12 14 16 18 20
Lembar Kerja Praktikum: Modul 2
9. Modul PBO – Teknokrat
20
NPM: Asisten:
Nama: Nilai:
Kelas: Tanggal:
Soal
1. [Score: 35] Buatlah program untuk mencetak segitiga seperti berikut (gunakan perulangan while
atau for):
Hasil Output
****
***
**
*
2. [Score: 30] Buatlah program untuk menentukan apakah bilangan yang dimasukan genap atau
ganjil:
Hasil Output
Masukan angka: 33
33 adalah bilangan ganjil
3. [Score: 35] Buatlah program untuk menentukan nilai tertinggi, terendah, dan rata-rata untuk lima
bilangan yang dimasukan:
Hasil Output
Bilangan 1: 33
Bilangan 2: 25
Bilangan 3: 17
Bilangan 4: 44
Bilangan 5: 10
Min: 17
Max: 44
Rata: 25.8