Masukkan Password
25 continue & labeled continue in Dart | Dart tutorial #24
Video ini membahas continue statement di Dart, yaitu perintah untuk melewati sisa kode pada iterasi/perulangan saat ini, lalu melanjutkan ke iterasi berikutnya.
Ada dua bentuk yang dibahas:
continuebiasa- Labeled
continueuntuk kasus nested loop (loop di dalam loop)
Saya jelaskan dari dasar supaya benar-benar terlihat alurnya.
1. Apa itu continue?
continue adalah keyword di Dart yang digunakan di dalam loop.
Gampangnya:
break= hentikan loop sepenuhnya.continue= lewati putaran sekarang, lanjut ke putaran berikutnya.
Misalnya kita punya loop:
for (int i = 1; i <= 5; i++) {
print("A");
print("B");
print("C");
}
Setiap putaran menjalankan:
A
B
C
Sekarang kita tambahkan continue:
for (int i = 1; i <= 5; i++) {
print("A");
if (i == 3) {
continue;
}
print("B");
print("C");
}
Ketika i == 3, program menjalankan:
continue;
Akibatnya:
print("B");
print("C");
tidak dijalankan pada putaran tersebut.
Kemudian loop langsung melanjutkan ke putaran berikutnya.
2. Analogi sederhana
Bayangkan kamu sedang memeriksa 10 orang.
Kamu berkata:
“Saya akan memeriksa orang satu per satu.”
Normalnya:
Orang 1 → periksa
Orang 2 → periksa
Orang 3 → periksa
Orang 4 → periksa
Orang 5 → periksa
...
Tetapi kamu mempunyai aturan:
“Kalau orangnya berusia di bawah 18 tahun, lewati orang tersebut dan langsung periksa orang berikutnya.”
Nah, continue seperti kata “lewati”.
Orang 1 → proses
Orang 2 → proses
Orang 3 → SKIP → orang 4
Orang 4 → proses
Orang 5 → proses
Jadi continue tidak menghentikan loop.
Ia hanya mengatakan:
“Untuk putaran yang sekarang, saya tidak mau menjalankan kode sisanya. Lanjut ke putaran berikutnya.”
3. continue hanya boleh digunakan di dalam loop
continue digunakan pada perulangan seperti:
forfor-inwhiledo-while
Contoh yang benar:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print(i);
}
Tetapi kalau kita menulis:
void main() {
continue;
}
itu tidak valid karena continue berada di luar loop.
4. Alur kerja continue
Ini bagian paling penting untuk dipahami.
Perhatikan:
for (int i = 1; i <= 5; i++) {
print("Mulai");
if (i == 3) {
continue;
}
print("Selesai");
}
Ketika i = 1:
Mulai
↓
i == 3? Tidak
↓
Selesai
↓
iterasi berikutnya
Ketika i = 2:
Mulai
↓
i == 3? Tidak
↓
Selesai
↓
iterasi berikutnya
Ketika i = 3:
Mulai
↓
i == 3? Ya
↓
continue
↓
SKIP "Selesai"
↓
iterasi berikutnya
Ketika i = 4:
Mulai
↓
i == 3? Tidak
↓
Selesai
↓
iterasi berikutnya
Jadi output:
Mulai
Selesai
Mulai
Selesai
Mulai
Mulai
Selesai
Mulai
Selesai
Perhatikan bahwa pada i = 3, "Selesai" tidak muncul.
5. Contoh dari video: angka 1 sampai 10
Video memberikan contoh seperti ini.
Misalnya:
for (int i = 1; i <= 10; i++) {
print(i);
}
Output:
1
2
3
4
5
6
7
8
9
10
Sekarang kita ingin melewati angka 4.
Kita bisa menggunakan:
for (int i = 1; i <= 10; i++) {
if (i == 4) {
continue;
}
print(i);
}
Output:
1
2
3
5
6
7
8
9
10
Mengapa 4 hilang?
Karena ketika:
i == 4
kondisi menjadi true.
Kemudian:
continue;
dijalankan.
Akibatnya:
print(i);
dilewati.
6. Urutan eksekusinya
Mari kita lihat satu per satu.
Iterasi 1
i = 1
Cek:
i == 4
Hasil:
false
Maka:
print(i);
dijalankan.
Output:
1
Iterasi 2
i = 2
Kondisi:
2 == 4
false.
Maka print() dijalankan:
2
Iterasi 3
i = 3
Kondisi:
3 == 4
false.
Output:
3
Iterasi 4
i = 4
Kondisi:
4 == 4
true.
Maka:
continue;
dijalankan.
Program tidak menjalankan:
print(i);
Kemudian lanjut ke iterasi berikutnya.
Jadi 4 tidak dicetak.
Iterasi 5
i = 5
Kondisi:
5 == 4
false.
Maka:
5
dicetak.
Dan seterusnya.
7. Bisa menggunakan beberapa kondisi
Video kemudian menambahkan kondisi lain.
Misalnya kita ingin melewati:
- angka
4 - angka
7
Kita bisa menulis:
for (int i = 1; i <= 10; i++) {
if (i == 4 || i == 7) {
continue;
}
print(i);
}
Perhatikan:
i == 4 || i == 7
Operator || berarti OR.
Artinya:
Kalau
iadalah 4 ATAUiadalah 7, jalankancontinue.
Output:
1
2
3
5
6
8
9
10
Angka:
4
7
hilang.
8. continue berbeda dengan break
Ini sangat penting karena keduanya sering tertukar.
break
for (int i = 1; i <= 10; i++) {
if (i == 4) {
break;
}
print(i);
}
Output:
1
2
3
Ketika i == 4, loop berhenti total.
continue
for (int i = 1; i <= 10; i++) {
if (i == 4) {
continue;
}
print(i);
}
Output:
1
2
3
5
6
7
8
9
10
Ketika i == 4, hanya putaran ke-4 yang dilewati.
Loop tetap berjalan.
Cara mengingat
| Keyword | Artinya |
|---|---|
break | Berhenti total |
continue | Lewati putaran sekarang |
Analoginya:
break:
1 → 2 → 3 → STOP
continue:
1 → 2 → 3 → SKIP 4 → 5 → 6 → ...
9. continue pada nested loop
Sekarang masuk ke bagian yang sedikit lebih sulit.
Nested loop adalah loop di dalam loop.
Contoh:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
print("i = $i, j = $j");
}
}
Di sini ada dua loop.
Outer loop
for (int i = 1; i <= 3; i++)
Ini disebut outer loop.
Inner loop
for (int j = 1; j <= 3; j++)
Ini disebut inner loop.
10. Output nested loop
Kalau dijalankan:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
print("i = $i, j = $j");
}
}
hasilnya:
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
Kenapa?
Karena ketika:
i = 1
inner loop menjalankan:
j = 1
j = 2
j = 3
Setelah inner loop selesai, outer loop naik:
i = 2
Kemudian inner loop dimulai lagi:
j = 1
j = 2
j = 3
Begitu seterusnya.
11. Apa yang terjadi jika kita memakai continue?
Misalnya:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue;
}
print("i = $i, j = $j");
}
}
Ketika j == 2, kita menjalankan:
continue;
Pertanyaannya:
Continue ini berlaku untuk loop yang mana?
Jawabannya:
Loop terdekat yang sedang mengandung
continue.
Dalam contoh tersebut, continue berada di dalam inner loop.
Jadi ia memengaruhi:
for (int j = 1; j <= 3; j++)
bukan outer loop.
12. Output-nya
Hasil:
i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3
Semua:
j = 2
dilewati.
Perhatikan:
i = 1 → j 1, SKIP 2, 3
i = 2 → j 1, SKIP 2, 3
i = 3 → j 1, SKIP 2, 3
13. Kenapa continue hanya memengaruhi inner loop?
Karena continue biasa tidak berarti:
“Cari loop mana saja.”
Tetapi secara sederhana:
“Lanjutkan ke iterasi berikutnya dari loop terdekat.”
Visualisasinya:
OUTER LOOP
│
├── i = 1
│
│ └── INNER LOOP
│ ├── j = 1
│ ├── j = 2 ← continue
│ └── j = 3
│
├── i = 2
│
│ └── INNER LOOP
│ ├── j = 1
│ ├── j = 2 ← continue
│ └── j = 3
│
└── i = 3
continue di j == 2 hanya mengatakan:
“Inner loop, lanjut ke iterasi berikutnya.”
Ia tidak mengatakan:
“Outer loop, lanjut ke
iberikutnya.”
14. Bagaimana kalau kita ingin melanjutkan outer loop?
Di sinilah muncul konsep labeled continue.
Kita bisa memberikan label kepada outer loop.
Contoh:
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue outerLoop;
}
print("i = $i, j = $j");
}
}
Perhatikan:
outerLoop:
Ini adalah label.
Kemudian:
continue outerLoop;
artinya:
“Jangan lanjutkan inner loop. Langsung lanjutkan iterasi berikutnya dari loop yang diberi label
outerLoop.”
15. Bagaimana cara membacanya?
Kode:
outerLoop:
for (int i = 1; i <= 3; i++) {
bisa kita pahami:
“Saya memberi nama
outerLoopkepada for loop ini.”
Kemudian:
continue outerLoop;
berarti:
“Lanjutkan loop yang bernama
outerLoop.”
16. Contoh lengkap labeled continue
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue outerLoop;
}
print("i = $i, j = $j");
}
}
Mari kita jalankan secara mental.
Saat i = 1
Inner loop mulai.
j = 1
j == 2?
Tidak.
Maka:
i = 1, j = 1
dicetak.
Kemudian:
j = 2
Sekarang:
if (j == 2)
true.
Maka:
continue outerLoop;
dijalankan.
Artinya:
Tinggalkan inner loop sekarang dan lanjutkan outer loop ke
iberikutnya.
Jadi:
i = 1
langsung selesai.
Tidak pernah mencapai:
j = 3
Kemudian i = 2
Inner loop dimulai lagi:
j = 1
Output:
i = 2, j = 1
Kemudian:
j = 2
continue outerLoop.
Maka langsung menuju:
i = 3
j = 3 lagi-lagi tidak dijalankan.
Kemudian i = 3
Hal yang sama:
j = 1
dicetak.
Ketika:
j = 2
langsung:
continue outerLoop
Loop selesai.
Jadi output akhirnya:
i = 1, j = 1
i = 2, j = 1
i = 3, j = 1
17. Bedakan dua jenis continue
Continue biasa
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue;
}
print("i = $i, j = $j");
}
}
Artinya:
Lanjutkan inner loop.
Labeled continue
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue outerLoop;
}
print("i = $i, j = $j");
}
}
Artinya:
Lanjutkan outer loop yang diberi label
outerLoop.
18. Gambaran visual yang sangat sederhana
Anggap:
Outer
│
├── Inner
│ ├── j=1
│ ├── j=2 ← continue
│ └── j=3
│
└── berikutnya...
continue
j=2
↓
continue
↓
j=3
Jadi hanya melewati j=2.
continue outerLoop
j=2
↓
continue outerLoop
↓
keluar dari inner loop
↓
i berikutnya
Jadi j=3 tidak dijalankan.
19. continue tidak sama dengan keluar dari loop
Ini kesalahan pemahaman yang cukup umum.
Misalnya:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print(i);
}
Ketika i == 3, bukan berarti loop berhenti.
Loop tetap berjalan:
1
2
3 → dilewati
4
5
Jadi:
continuehanya melewati current iteration.
Sedangkan:
breakmenghentikan loop.
20. continue sangat berguna untuk filtering
Salah satu penggunaan praktis continue adalah ketika kita ingin melewati data yang tidak kita perlukan.
Contohnya:
List<int> numbers = [1, 2, 3, 4, 5, 6];
for (int number in numbers) {
if (number % 2 == 0) {
continue;
}
print(number);
}
Kita ingin hanya mencetak angka ganjil.
Ketika angka genap ditemukan:
if (number % 2 == 0) {
continue;
}
kita lewati.
Output:
1
3
5
Jadi pola sederhananya:
for (...) {
if (dataTidakDiperlukan) {
continue;
}
// proses data
}
Ini sangat berguna dalam pemrograman nyata.
21. Contoh yang lebih realistis
Misalnya ada daftar nama:
List<String> names = [
"Andi",
"",
"Budi",
"",
"Citra"
];
Kita tidak ingin memproses nama kosong.
for (String name in names) {
if (name.isEmpty) {
continue;
}
print("Memproses: $name");
}
Output:
Memproses: Andi
Memproses: Budi
Memproses: Citra
Jadi continue membantu kita berkata:
“Kalau datanya tidak memenuhi syarat, jangan proses bagian bawah. Langsung ke data berikutnya.”
22. Dalam Flutter, konsep ini juga berguna
Misalnya kamu mempunyai banyak data dan hanya ingin memproses data tertentu.
Secara konsep:
for (final item in items) {
if (item.isInvalid) {
continue;
}
// proses item yang valid
}
Misalnya:
Data 1 → valid → proses
Data 2 → valid → proses
Data 3 → tidak valid → skip
Data 4 → valid → proses
Ini sering muncul dalam logic aplikasi ketika melakukan filtering atau mengabaikan data tertentu.
23. Kesalahan umum: mengira continue menghentikan program
Misalnya:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print(i);
}
print("Selesai");
Output:
1
2
4
5
Selesai
continue tidak menghentikan program.
Setelah loop selesai, program tetap menjalankan:
print("Selesai");
24. Kesalahan lain: lupa bahwa kode setelah continue dilewati
Misalnya:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print("A");
print("B");
}
Saat i == 3, keduanya dilewati:
print("A");
print("B");
Karena keduanya berada setelah continue.
Jadi continue bukan hanya melewati satu statement.
Ia melewati:
semua kode yang masih tersisa di body loop pada iterasi tersebut.
25. continue pada for punya satu detail penting
Pada for:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print(i);
}
ketika continue terjadi, for tetap melanjutkan mekanisme loop-nya, termasuk bagian update:
i++
Jadi ketika i == 3:
continue
↓
i++
↓
i = 4
↓
cek kondisi
↓
lanjut
Ini penting karena kadang pemula berpikir continue membuat program langsung kembali ke i = 1. Tidak.
Ia hanya lanjut ke iterasi berikutnya.
26. Perbedaan continue dengan break
Ini sebaiknya benar-benar dihafalkan:
┌──────────────┬───────────────────────────────┐
│ Keyword │ Efek │
├──────────────┼───────────────────────────────┤
│ continue │ Lewati iterasi saat ini │
│ break │ Hentikan loop │
└──────────────┴───────────────────────────────┘
Contoh:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print(i);
}
Hasil:
1
2
4
5
Sedangkan:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
print(i);
}
Hasil:
1
2
27. Perbedaan continue, break, dan return
Sekalian kita bedakan tiga keyword yang sering membingungkan:
continue
“Lewati putaran ini.”
1
2
SKIP
4
5
break
“Hentikan loop.”
1
2
STOP
return
“Keluar dari function.”
Contoh:
void test() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
return;
}
print(i);
}
print("Selesai");
}
Output:
1
2
"Selesai" juga tidak dijalankan karena return keluar dari function.
Jadi:
continue → skip 1 iterasi
break → keluar dari loop
return → keluar dari function
28. Bagian transcript yang perlu diluruskan
Ada beberapa hal yang perlu kamu perhatikan dari transcript karena kemungkinan ada sedikit masalah akibat speech-to-text dan juga penyederhanaan materi.
1. “I is equals to 0 … output 1 to 10”
Di transcript disebut kira-kira:
i = 0,i < 10, lalu katanya output 1 sampai 10.
Kalau kodenya benar-benar:
for (int i = 0; i < 10; i++) {
print(i);
}
outputnya adalah:
0
1
2
3
4
5
6
7
8
9
Bukan 1 sampai 10.
Kalau ingin:
1
2
3
...
10
gunakan:
for (int i = 1; i <= 10; i++) {
print(i);
}
Jadi kemungkinan bagian video/transcript tersebut kurang tepat.
2. “Continue hanya bisa digunakan di loop”
Untuk konteks belajar dasar, ini benar.
continue memang merupakan kontrol untuk iterasi loop. Dalam Dart modern ada aturan sintaks/pattern yang lebih luas, tetapi untuk memahami looping, pegang prinsip:
continuedigunakan untuk mengontrol jalannya perulangan.
3. Labeled continue
Konsep video tentang:
outerLoop:
for (...) {
...
}
dan:
continue outerLoop;
adalah konsep yang penting untuk nested loop.
Namun, jangan merasa kamu harus sering menggunakannya.
Dalam kode sehari-hari, labeled continue relatif lebih jarang digunakan dibanding:
continue;
Biasanya kita baru membutuhkannya ketika struktur loop-nya memang nested dan kita perlu mengontrol loop tertentu.
29. Cara paling mudah mengingat continue
Bayangkan kamu sedang mengerjakan daftar tugas:
Tugas 1
Tugas 2
Tugas 3
Tugas 4
Tugas 5
Kamu sedang mengerjakan tugas satu per satu.
Kalau menemukan tugas yang tidak perlu dikerjakan:
Tugas 1 → kerjakan
Tugas 2 → kerjakan
Tugas 3 → SKIP
Tugas 4 → kerjakan
Tugas 5 → kerjakan
Itulah continue.
Sedangkan kalau kamu berkata:
“Sudah, saya berhenti mengerjakan semua tugas.”
Itu break.
30. Cheat sheet
continue
continue;
Artinya:
Lewati sisa kode pada iterasi saat ini dan lanjut ke iterasi berikutnya.
Contoh dasar
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
print(i);
}
Output:
1
2
4
5
Nested loop
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue;
}
print("i=$i, j=$j");
}
}
continue memengaruhi inner loop terdekat.
Labeled continue
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue outerLoop;
}
print("i=$i, j=$j");
}
}
continue outerLoop memengaruhi outer loop yang diberi label.
Inti video ini
Kalau hanya ada 4 hal yang kamu ingat dari materi ini, ingat ini:
continue = skip
continuetidak menghentikan loop.continuemelewati sisa kode pada iterasi sekarang.- Setelah itu loop lanjut ke iterasi berikutnya.
- Pada nested loop,
continuebiasa memengaruhi loop terdekat, sedangkancontinue labelbisa diarahkan ke loop tertentu.
Cara membayangkannya:
LOOP
│
├── kode
│
├── kondisi?
│ │
│ └── true → CONTINUE
│ ↓
│ skip sisanya
│ ↓
│ iterasi berikutnya
│
└── kode berikutnya
Sedangkan break:
LOOP
│
├── kode
│
├── kondisi?
│ │
│ └── true → BREAK
│ ↓
│ STOP LOOP
│
└── selesai
Jadi perbedaan paling sederhananya:
🟢
continue= “yang ini saya lewati, lanjut yang berikutnya.” 🔴break= “sudah, berhenti semuanya.”