Perulangan (Loop)
for, while, do-while, enhanced for, break dan continue, serta loop bersarang untuk pola dan tabel.
Mengapa perulangan?
Perulangan menjalankan blok kode berkali-kali tanpa menulis ulang. Java menyediakan empat bentuk: for, while, do-while, dan for yang disempurnakan (enhanced for).
for — jumlah pengulangan sudah diketahui
for (int i = 1; i <= 5; i++) {
System.out.println("Putaran ke-" + i);
}
Tiga bagian di dalam kurung: inisialisasi (int i = 1, jalan sekali di awal), kondisi (i <= 5, dicek sebelum tiap putaran), dan pembaruan (i++, jalan setelah tiap putaran).
Contoh menjumlah 1 sampai 10:
int total = 0;
for (int i = 1; i <= 10; i++) {
total += i;
}
System.out.println(total); // 55
while — selama kondisi benar
int hitung = 3;
while (hitung > 0) {
System.out.println(hitung);
hitung--;
}
System.out.println("Selesai!");
Hati-hati dengan loop tak berujung: jika kondisi tidak pernah menjadi salah (lupa hitung--), program tidak akan berhenti.
do-while — dijalankan minimal sekali
int angka;
do {
angka = ambilAngkaDariPengguna();
} while (angka < 0);
Kondisi dicek setelah blok dijalankan, cocok untuk validasi input.
Enhanced for — menelusuri koleksi/array
int[] angka = {10, 20, 30};
for (int a : angka) {
System.out.println(a);
}
Dibaca: "untuk setiap a di dalam angka". Lebih ringkas dan aman dari kesalahan indeks. Gunakan for biasa jika butuh nomor indeks.
break dan continue
for (int i = 1; i <= 10; i++) {
if (i == 3) continue; // lewati putaran ini
if (i == 6) break; // hentikan seluruh loop
System.out.println(i); // 1 2 4 5
}
Loop bersarang
for (int baris = 1; baris <= 3; baris++) {
for (int kolom = 1; kolom <= baris; kolom++) {
System.out.print("* ");
}
System.out.println();
}
// *
// * *
// * * *
Loop dalam selesai penuh untuk setiap satu putaran loop luar.
Contoh: tabel perkalian
for (int i = 1; i <= 10; i++) {
System.out.println("7 x " + i + " = " + (7 * i));
}
Memilih jenis loop
| Situasi | Pilih |
|---|---|
| Jumlah putaran jelas | for |
| Berulang sampai suatu kondisi | while |
| Harus jalan minimal sekali | do-while |
| Menelusuri semua elemen | enhanced for |
Kesalahan umum
- Off-by-one: memakai
<=padahal seharusnya<(atau sebaliknya) sehingga kelebihan/kurang satu putaran. - Titik koma nyasar:
for (...);membuat loop kosong. - Mengubah koleksi saat menelusurinya dengan enhanced for (dibahas di bab Collections).