Perulangan (Loop)

for klasik, for-in, forEach, while, do-while, break dan continue, serta pola perulangan yang sering dipakai.

Part 4 dari 20 ± 40 menit Gratis

Mengapa perulangan?

Perulangan menjalankan blok kode berkali-kali tanpa menulis ulang. Dart punya beberapa bentuk; pilih yang paling jelas untuk situasimu.

for klasik: jumlah putaran sudah jelas

for (int i = 1; i <= 5; i++) {
  print('Putaran ke-$i');
}
BagianArti
int i = 1Inisialisasi, dijalankan sekali di awal
i <= 5Syarat, diperiksa sebelum tiap putaran
i++Langkah, dijalankan setelah tiap putaran

for-in: menelusuri isi collection

var buah = ['apel', 'jeruk', 'mangga'];
for (var b in buah) {
  print(b);
}

Ini cara paling rapi untuk membaca List atau Set, tanpa mengurus indeks. Bila butuh nomor urut, pakai for klasik atau buah.indexed (Dart 3):

for (var (i, b) in buah.indexed) {
  print('${i + 1}. $b');       // 1. apel, 2. jeruk, 3. mangga
}

forEach

buah.forEach(print);
buah.forEach((b) => print(b.toUpperCase()));

forEach tidak bisa memakai break atau continue. Jika butuh keduanya, pakai for-in.

while dan do-while

int n = 3;
while (n > 0) {
  print(n);
  n--;
}
print('Selesai!');

int percobaan = 0;
do {
  percobaan++;
  print('Mencoba ke-$percobaan');
} while (percobaan < 3);   // do-while selalu jalan minimal sekali

Pastikan ada sesuatu di dalam loop yang akhirnya membuat syarat menjadi salah; kalau tidak, program berputar selamanya (infinite loop).

break dan continue

for (int i = 1; i <= 10; i++) {
  if (i % 2 == 0) continue;   // lewati bilangan genap
  if (i > 7) break;           // hentikan loop sepenuhnya
  print(i);                   // 1, 3, 5, 7
}

Perulangan bersarang

for (int baris = 1; baris <= 3; baris++) {
  var teks = '';
  for (int kolom = 1; kolom <= 3; kolom++) {
    teks += '${baris * kolom}\t';
  }
  print(teks);
}

Pola yang sering dipakai

// Menjumlahkan
int total = 0;
for (var n in [4, 8, 15]) {
  total += n;
}

// Mencari nilai terbesar
var angka = [3, 9, 2, 7];
int terbesar = angka.first;
for (var n in angka) {
  if (n > terbesar) terbesar = n;
}

// Membangun teks
var bintang = '';
for (int i = 0; i < 5; i++) {
  bintang += '*';
}
print(bintang);          // *****

Error umum

  • Program tidak pernah berhenti → lupa mengubah variabel yang dicek di while.
  • Selisih satu (off-by-one): i <= 5 dengan i < 5 menghasilkan jumlah putaran berbeda.
  • Concurrent modification during iteration → mengubah List (menambah/menghapus) saat sedang di-for-in.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X