perulanganloopforwhilePemula5 mnt baca

Perulangan: for, while, dan do-while

Mengulang pekerjaan dengan for, for-in, while, do-while, plus break dan continue.

Kenapa butuh perulangan?

Bayangkan mencetak angka 1 sampai 100 tanpa loop: 100 baris print. Dengan loop, cukup 3 baris. Perulangan adalah cara menyuruh komputer mengerjakan hal repetitif.

for klasik

dart
void main() {
  for (int i = 1; i <= 5; i++) {
    print('Hitungan ke-$i');
  }
}

Struktur for punya tiga bagian di dalam kurung: inisialisasi (int i = 1), kondisi (i <= 5, loop berhenti saat false), dan update (i++, dijalankan tiap putaran selesai).

Output:

Hitungan ke-1 Hitungan ke-2 Hitungan ke-3 Hitungan ke-4 Hitungan ke-5

for-in: untuk koleksi data

Kalau yang diulang adalah isi list atau kumpulan data lain, for-in lebih enak dibaca:

dart
void main() {
  var buah = ['apel', 'mangga', 'pisang'];

  for (var b in buah) {
    print('Saya suka $b');
  }
}

Tidak perlu mikir index. Variabel b otomatis berisi tiap elemen satu per satu.

while: selama kondisi true

dart
void main() {
  int nyawa = 3;

  while (nyawa > 0) {
    print('Main! Sisa nyawa: $nyawa');
    nyawa--;
  }
  print('Game over');
}

Cocok saat jumlah putaran tidak diketahui di awal, mis. menunggu input user yang benar atau membaca data sampai habis.

do-while: jalan dulu, cek belakangan

dart
void main() {
  int i = 10;

  do {
    print('i = $i');
    i++;
  } while (i < 5);
}

Outputnya i = 10 sekali, walau kondisi i < 5 langsung false. Karena cek kondisi dilakukan setelah badan loop jalan, do-while dijamin minimal satu kali eksekusi. Berguna mis. menampilkan menu yang harus muncul dulu sebelum user memilih.

Catatan teknis: Loop tanpa akhir (infinite loop) adalah bug klasik: while (true) tanpa break, atau lupa update counter di dalam while. Program akan hang dan DartPad akan timeout. Kalau loop terasa tidak berhenti, cek dulu apakah variabel kondisi benar-benar berubah di dalam badan loop.

break dan continue

  • break: hentikan loop sepenuhnya
  • continue: lewati sisa putaran ini, lanjut ke putaran berikut
dart
void main() {
  for (int i = 1; i <= 10; i++) {
    if (i == 3) continue; // lewati angka 3
    if (i == 8) break;    // berhenti di angka 8
    print(i);
  }
}

Output: 1, 2, 4, 5, 6, 7. Angka 3 dilewati, loop berhenti sebelum 8.

Latihan: tabel perkalian

dart
void main() {
  for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
      print('$i x $j = ${i * j}');
    }
    print('---');
  }
}

Loop di dalam loop disebut nested loop. Pola ini dipakai untuk tabel, pola bintang, atau memproses data dua dimensi. Coba ubah angkanya dan lihat hasilnya.