PENGULANGAN (LOOP)
Apa yang akan kita lakukan bila ingin menyuruh komputer mengerjakan perintah
yang berulang-ulang?
Misalkan kita ingin menyuruh komputer menampilkan teks
Petani Kode sebanyak 5x.
Maka kita bisa menyuruhnya seperti ini:
System.out.println("Petani Kode");
System.out.println("Petani Kode");
System.out.println("Petani Kode");
System.out.println("Petani Kode");
System.out.println("Petani Kode");
Tapi bagaimana kalau sebanyak 1000x, apa kita akan mampu mengetik kode
sebanyak itu?
Tentunya tidak.
Karena itu, kita harus pakai perulangan.
Contoh perulangan:
for (int hitungan = 0; hitungan <= 1000; hitungan++) {
System.out.println("Petani Kode");
}
Sebelum masuk ke pembahasan lebih dalam, ada hal yang harus kalian ketahui
terlebih dahulu.
Perulangan dalam pemrograman dibagi manjadi dua jenis:
- Counted loop: Perulangan yang jumlah pengulangannya terhitung atau tentu.
- Uncounted loop: Perulangan yang jumlah pengulangannya tidak terhitung
atau tidak tentu.
1. COUNTED LOOP
perulangan ini terdiri dari perungan for dan for each
PERULANGAN FOR
Format penulisan perulangan
For di java adalah sebagai berikut:
for( int hitungan = 0; hitungan <= 10; hitungan++ ){
// blok kode yang akan diulang
}
Penjelasan:
- variabel
hitungan tugasnya untuk menyimpan hitungan pengulangan.
hitungan <= 10 artinya selama nilai hitungannya lebih kecil atau sama dengan 10, maka
pengulangan akan terus dilakukan. Dengan kata lain, perualangan ini akan mengulang
sebanyak 10 kali.
hitungan++ fungsinya untuk menambah satu (+1) nilai hitungan peda setiap pengulangan.
- Blok kode For dimulai dengan tanda ‘
{’ dan diakhiri dengan ‘}’.
Mari kita coba dalam contoh program
CONTOH PERULANGAN FOR
Silahkan buat class baru bernama
Bintang, kemudian ikuti kode berikut:
class Bintang{
public static void main(String[] args){
for(int i=0; i <= 5; i++){
System.out.println("*****");
}
}
}
Hasil output:
*****
*****
*****
*****
*****
*****
Mau lagi?
Sekarang cobalah buat program untuk menampilkan nilai dari 1 sampai 10 dengan
menggunakan perulangan.
class CetakAngka{
public static void main(String[] argumen){
for(int i=0; i <= 10; i++){
System.out.print( i + " " );
}
}
}
Hasil output:
Coba kita lakukan sedikit eksperimen.
Buat sebuah program yang menampilkan bilangan ganjil saja.
class CetakBilanganGanjil{
public static void main(String[] argumen){
for(int i = 1; i <= 20; i += 2){
System.out.print( i + " ");
}
}
}
Hasil output:
Perhatikan: di sana kita menggunakan
i += 2, bukan
i++.
Apa maksudnya?
Maksudnya, nilai
i akan ditambah dua (
+2) di setiap pengulangan.
PERULANGAN FOR EACH
Perulangan
For Each pada Java, dilakukan juga dengan kata kunci
For.
Contohnya seperti ini:
for ( int item : dataArray ) {
// blok kode yang diulang
}
Penjelasan:
- variabel
item akan menyimpan nilai dari array
- Kita bisa baca seperti ini: “Untuk setiap
item dalam dataArray, maka lakukan
perulangan”
CONTOH PROGRAM FOR EACH
Buat sebuah class baru bernama
PerulanganForeach, kemudian ikuti kode berikut.
public class PerulanganForeach {
public static void main(String[] args) {
// membuat array
int angka[] = {3,1,42,24,12};
// menggunakan perulangan For each untuk menampilkan angka
for( int x : angka ){
System.out.print(x + " ");
}
}
}
Hasil outputnya:
UNCOUNTED LOOP
Seperti yang sudah dijelaskan di awal tadi, perulangan ini tidak jelas jumlah
pengulangannya.
Tapi, tidak menutup kemungkinan juga, jumlah pengulangannya dapat ditentukan.
Perulangan
uncounted loop terdirid dari perulangan
While dan
Do/While.
PERULANGAN WHILE
While bisa kita artikan
selama.
Cara kerja perulangan ini seperti percabangan, ia akan melakukan perulangan
selama kondisinya bernilai
true.
Struktur penulisan perulangan while:
while ( kondisi ) {
// blok kode yang akan diulang
}
Penjelasan:
- kondisi bisa kita isi dengan perbandingan maupun variabel boolean. Kondisi
ini hanya memiliki nilai
true dan flase.
- Perulangan
while akan berhenti sampai kondisi bernilai false.
Untuk lebih jelasnya, mari kita coba membuat program
CONTOH PROGRAM DENGAN PERULANGAN WHILE
Program ini akan melakukan perulangan selama jawabannya tidak.
import java.util.Scanner;
public class PerulanganWhile {
public static void main(String[] args) {
// membuat variabel dan scanner
boolean running = true;
int counter = 0;
String jawab;
Scanner scan = new Scanner(System.in);
while( running ) {
System.out.println("Apakah anda ingin keluar?");
System.out.print("Jawab [ya/tidak]> ");
jawab = scan.nextLine();
// cek jawabnnya, kalau ya maka berhenti mengulang
if( jawab.equalsIgnoreCase("ya") ){
running = false;
}
counter++;
}
System.out.println("Anda sudah melakukan perulangan sebanyak " + counter + " kali");
}
}
Hasil outputnya:
Di sana telah dilakukan perulangan sebanyak 4 kali. Bisa saja terjadi 10 kali.
Itu targantung dari kondisinya.
Kalau nilai variabel
running bernilai
false, maka perulangan berhenti.
Contoh kode
while di atas dapat kita baca seperti ini: “Lakukan perulangan
selama nilai
running bernilai
true.”
Tidak menutup kemungkinan juga, perulangan ini dapat melakukan
counted loop.
Contohnya seperti ini:
int i = 0;
while ( i <= 10 ){
// blok kode yang akan diulang
System.out.println('Perulangan ke-' + i);
// increment nilai i
i++;
}
Hasil outputnya:
Perulangan ke-0
Perulangan ke-1
Perulangan ke-2
Perulangan ke-3
Perulangan ke-4
Perulangan ke-5
Perulangan ke-6
Perulangan ke-7
Perulangan ke-8
Perulangan ke-9
Perulangan ke-10
PERULANGAN DO/WHILE
Cara kerja perulangan
Do/While sebenarnya sama seperti perulangan
While.
Bedanya,
Do/While melakukan satu kali perulangan dulu. Kemudian mengecek
kondisinya.
Struktur penulisannya seperti ini:
do {
// blok kode yang akan diulang
} while (kondisi);
Jadi kerjakan dulu (
Do), baru di cek kondisinya
while( kondisi ).
Kalau
kondisi bernilai
ture, maka lanjutkan perulangan.
CONTOH PROGRAM DENGAN PERULANGAN DO/WHILE
public class PerulanganDoWhile {
public static void main(String[] args) {
// membuat variabel
int i = 0;
do {
System.out.println("perulangan ke-" + i);
i++;
} while ( i <= 10);
}
}
Hasil outputnya:
perulangan ke-0
perulangan ke-1
perulangan ke-2
perulangan ke-3
perulangan ke-4
perulangan ke-5
perulangan ke-6
perulangan ke-7
perulangan ke-8
perulangan ke-9
perulangan ke-10
PERULANGAN BERSARANG (NESTED LOOP)
Perulangan juga dapat bersarang. Perulangan bersarang maksudnya, perulangan
dalam perulangan atau disebut juga
nested loop.
Contoh bentuk flow chart-nya seperti ini:
CONTOH PROGRAM PERULANGAN BERSARANG
public class PerulanganBersarang {
public static void main(String[] args) {
// membuat variabel
int x, y;
// melakukan parulang sebnayan x dan y kali
for (x = 0; x <= 5; x++){
for( y = 0; y <= 3; y++){
System.out.format("Perulangan [x=%d, y=%d] %n", x, y);
}
}
}
}
Hasil outputnya:
Perulangan [x=0, y=0]
Perulangan [x=0, y=1]
Perulangan [x=0, y=2]
Perulangan [x=0, y=3]
Perulangan [x=1, y=0]
Perulangan [x=1, y=1]
Perulangan [x=1, y=2]
Perulangan [x=1, y=3]
Perulangan [x=2, y=0]
Perulangan [x=2, y=1]
Perulangan [x=2, y=2]
Perulangan [x=2, y=3]
Perulangan [x=3, y=0]
Perulangan [x=3, y=1]
Perulangan [x=3, y=2]
Perulangan [x=3, y=3]
Perulangan [x=4, y=0]
Perulangan [x=4, y=1]
Perulangan [x=4, y=2]
Perulangan [x=4, y=3]
Perulangan [x=5, y=0]
Perulangan [x=5, y=1]
Perulangan [x=5, y=2]
Perulangan [x=5, y=3]