img-dart
#dart #flutter

Iterative Statements (Perulangan)

Iterative statements digunakan untuk mengeksekusi blok kode berulang kali selama kondisi tertentu terpenuhi. Dart mendukung beberapa jenis perulangan:

1. for loop

for (int i = 0; i < 5; i++) {
  print(i);
}
// for loop dengan list
List<String> buah = ['Apel', 'Mangga', 'Jeruk'];

for (int i = 0; i < buah.length; i++) {
  print(buah[i]);
}

2. while loop

int i = 0;
while (i < 5) {
  print(i);
  i++;
}
int i = 0;
while (i > 5) {
  print(i); // tidak akan dieksekusi
  i++;
}

3. do-while loop

int i = 0;
do {
  print(i); // kondisi akan dieksekusi minimal sekali
  i++;
} while (i < 5); // loop akan terus berjalan, karena kondisi benar
int i = 0;
do {
  print(i); // kondisi akan dieksekusi minimal sekali
  i++;
} while (i > 5); // loop berhenti, karena kondisi salah

4. for-in loop

// contoh dengan list
List<String> buah = ['Apel', 'Mangga', 'Jeruk'];
for (String item in buah) {
  print(item);
}
// contoh dengan map
Map<String, int> hargaBuah = {
  'Apel': 5000,
  'Mangga': 7000,
  'Jeruk': 3000
};

for (var entry in hargaBuah.entries) {
  print("${entry.key} harganya ${entry.value} rupiah");
  // output:
  // Apel harganya 5000 rupiah
  // Mangga harganya 7000 rupiah
  // Jeruk harganya 3000 rupiah
}

5. forEach loop

// contoh dengan list
List<String> buah = ['Apel', 'Mangga', 'Jeruk'];
buah.forEach((item) {
  print(item);
});
// contoh dengan map
Map<String, int> hargaBuah = {
  'Apel': 5000,
  'Mangga': 7000,
  'Jeruk': 3000 // output:
}
hargaBuah.forEach((key, value) {
  print("${key} harganya ${value} rupiah");
})

6. Labels


Label cuma bisa dipake sama break dan continue

Kegunaan Label:

Cara Pakai Label: Tinggal kasih nama + titik dua sebelum loop.

Contoh Stop Loop Luar dari Dalam (pake break)

luar: for(int i=1; i<=3; i++) {       // <-- Label "luar"
  dalam: for(int j=1; j<=3; j++) {    // <-- Label "dalam"
    if(i == 2 && j == 2) {
      break luar;  // Stop loop "luar" sekalian
    }
    print("i:$i, j:$j");
  }
}

/* Output:
i:1, j:1
i:1, j:2
i:1, j:3
i:2, j:1
*/

Contoh Skip ke Loop Luar (pake continue)

luar: for(int i=1; i<=3; i++) {
  dalam: for(int j=1; j<=3; j++) {
    if(j == 2) {
      continue luar;  // Langsung ke i berikutnya
    }
    print("i:$i, j:$j");
  }
}

/* Output:
i:1, j:1
i:2, j:1
i:3, j:1
*/

Contoh Break dan Continue dalam Nested Loop

outerLoop: for (int i = 1; i <= 3; i++) {
  innerLoop: for (int j = 1; j <= 3; j++) {
    // Contoh penggunaan continue dengan label
    if (i == 2 && j == 1) {
      print("Melewati innerLoop saat i=$i, j=$j");
      continue innerLoop; // Skip iterasi ini di innerLoop
    }

    // Contoh penggunaan break dengan label
    if (i == 3 && j == 2) {
      print("Keluar dari outerLoop saat i=$i, j=$j");
      break outerLoop; // Hentikan seluruh perulangan
    }

    print("i: $i, j: $j");
  }
}

/* Output:
i: 1, j: 1
i: 1, j: 2
i: 1, j: 3
Melewati innerLoop saat i=2, j=1
i: 2, j: 2
i: 2, j: 3
i: 3, j: 1
Keluar dari outerLoop saat i=3, j=2
*/