Bab 3, Looping
Ringkasan
Dalam pembuatan program, ada kalanya kita menuliskan sebuah instruksi atau lebih yang sama untuk dijalankan secara berulang-ulang berdasarkan kondisi tertentu.
Misalkan ada potongan kode seperti ini:
// menghitung nilai dari 5!
int hasil = 1;
hasil *= 5;
hasil *= 4;
hasil *= 3;
hasil *= 2;
Itu kalau bilangan nya kecil, kalau bilangan yang dicari nilai faktorialnya, misalkan 100!, apakah mau menulis kode semubazir itu? :p
Akan lebih nyaman kalau kode diatas bisa ditulis sebagai berikut
int hasil = 1;
int N = 5;
for (int i = 1 ; i <= N ; i++) {
hasil *= i;
}
Lebih simple, kan? Maka dari itu, dalam bab ini kita akan mengulas tentang looping.
For loop
Dalam skema ini, looping for
lazim digunakan untuk looping dengan jumlah yang pasti. Semisal looping sebanyak 10x. Analoginya seperti ini: Kita berlari memutari lapangan sepak bola 10x.
Anatomi dari for loop sebagai berikut
for (inisialisasi ; kondisi ; increment/decrement) {
// blok program yang akan diulang
}
Bagian-bagiannya akan dijelaskan disini:
- inisialisasi : digunakan untuk menetapkan nilai awal yang digunakan dalam loop
- kondisi : digunakan untuk pengecekan kondisi, for loop akan dijalankan selama kondisi bernilai true
- increment/decrement : digunakan untuk mengurangi/menambahkan nilai dari variabel.
Contoh :
for (int i = 1 ; i <= 10 ; i++) {
System.out.println("Telah berputar "+i+" kali");
}
Potongan kode diatas akan mencetak output :
Telah berputar 1 kali
Telah berputar 2 kali
Telah berputar 3 kali
Telah berputar 4 kali
Telah berputar 5 kali
Telah berputar 6 kali
Telah berputar 7 kali
Telah berputar 8 kali
Telah berputar 9 kali
Telah berputar 10 kali
Mengapa bisa terjadi?
Looping akan terus dijalankan jika nilai i
kurang dari/sama dengan 10. Kalau nilai i
lebih besar dari 10 bagaimana? Looping akan berhenti, karena tidak akan memenuhi kriteria i <= 10
.
For loop bisa digunakan untuk infinite loop
for (;;) {
// statement
}
While loop
Untuk while
loop, sama saja seperti for
loop, namun perbedaanya terletak di syntax nya saja :p (ya jelas laah --"). Jika dianalogikan, seperti ini: Kita berlari memutari lapangan sepak bola sampai tepar.
Anatomi dari while
loop sebagai berikut
while (kondisi) {
// blok statement
}
Blok statement akan dijalankan selama kondisinya bernilai true
.
Mana increment/decrement nya?! Increment maupun decrement terletak di blok statement.
Contoh :
int i = 1;
while (i <= 10) {
System.out.println("Telah berputar "+i+" kali");
i++; // increment
}
Output nya sama seperti di atas
Telah berputar 1 kali
Telah berputar 2 kali
Telah berputar 3 kali
Telah berputar 4 kali
Telah berputar 5 kali
Telah berputar 6 kali
Telah berputar 7 kali
Telah berputar 8 kali
Telah berputar 9 kali
Telah berputar 10 kali
Apakah bisa digunakan untuk infinite loop? Bisa!
int i = 1;
while (true) {
System.out.println("Telah berputar "+i+" kali");
i++; // increment
}
Output
Telah berputar 1 kali
Telah berputar 2 kali
Telah berputar 3 kali
Telah berputar 4 kali
.
.
.
(infinite)
Do-while loop
Ini adalah skema looping yang berbeda diantara yang lain. Meskipun kondisi yang akan dicek ternyata bernilai false
, ia akan melakukan proses setidaknya satu kali.
Agar tidak bingung, coba bandingkan output dari kedua potongan kode berikut
int x = 6;
do {
System.out.println(x);
x++;
} while (x <= 5);
int x = 6;
while (x <= 5) {
System.out.println(x);
x++;
}
Mudah bukan?
Untuk contoh kasus terkait looping silakan lihat disini