Masukkan Password
22 While & Do While in Dart | Dart Tutorial #21
Video ini membahas perulangan (loop) di Dart, khususnya dua jenis:
whileloopdo-whileloop
Konsep besarnya sebenarnya sederhana:
Loop digunakan ketika kita ingin menjalankan kode yang sama berkali-kali selama kondisi tertentu terpenuhi.
Saya akan jelaskan dari dasar sekali, termasuk bagaimana program “berjalan” langkah demi langkah.
1. Apa itu loop?
Bayangkan kamu ingin mencetak angka:
1
2
3
4
5
Cara paling panjang adalah:
print(1);
print(2);
print(3);
print(4);
print(5);
Masalahnya, kalau sampai 1.000 angka, tentu tidak mungkin kita menulis print() sebanyak 1.000 kali.
Di sinilah loop berguna.
Dengan loop kita bisa mengatakan kepada komputer:
“Cetak angka, lalu naikkan angkanya, dan lakukan lagi selama angkanya masih memenuhi kondisi.”
Contohnya:
int i = 1;
while (i <= 5) {
print(i);
i++;
}
Hasil:
1
2
3
4
5
Jadi loop pada dasarnya adalah cara mengulang sebuah blok kode.
2. while loop
Apa itu while?
while bisa dibaca sebagai:
“selama…”
Contohnya:
Selama
i <= 5, cetaki.
Dalam bahasa Dart:
while (i <= 5) {
print(i);
i++;
}
Struktur dasarnya:
while (condition) {
// kode yang diulang
}
Ada dua bagian penting:
condition
Kondisi yang menentukan apakah loop boleh berjalan.
i <= 5
Hasilnya harus berupa bool:
true
atau:
false
Body
Kode di dalam { } yang akan dijalankan berulang kali.
{
print(i);
i++;
}
3. Kenapa kondisi harus menghasilkan true atau false?
Karena komputer harus punya jawaban yang jelas:
“Apakah saya harus mengulang atau berhenti?”
Misalnya:
i <= 5
Kalau i = 3:
3 <= 5
hasilnya:
true
Maka loop berjalan.
Kalau i = 7:
7 <= 5
hasilnya:
false
Maka loop berhenti.
Contoh:
int i = 3;
while (i <= 5) {
print(i);
i++;
}
4. while adalah entry-controlled loop
Ini istilah penting.
while disebut entry-controlled loop karena:
Kondisi diperiksa terlebih dahulu sebelum body loop dijalankan.
Urutannya:
┌─────────────┐
│ kondisi │
└──────┬──────┘
│
┌──────┴──────┐
│ │
true false
│ │
▼ ▼
┌─────────┐ keluar
│ body │
│ loop │
└────┬────┘
│
│
└──────────► kembali cek kondisi
Jadi:
cek kondisi
↓
true?
┌──┴──┐
ya tidak
↓ ↓
body keluar
↓
kembali ke kondisi
5. Contoh while dari 1 sampai 10
Video menggunakan konsep seperti ini:
int i = 1;
while (i <= 10) {
print(i);
i++;
}
Mari kita bedah.
Baris pertama
int i = 1;
Kita membuat variabel:
i = 1
Kita ingin mulai dari angka 1.
Kemudian:
while (i <= 10)
Artinya:
Selama
ikurang dari atau sama dengan 10, jalankan body loop.
Body:
{
print(i);
i++;
}
Ada dua perintah:
print(i);
untuk mencetak angka.
Kemudian:
i++;
untuk menaikkan i sebanyak 1.
6. Bagaimana prosesnya sebenarnya?
Ini bagian yang sangat penting untuk dipahami.
Kode:
int i = 1;
while (i <= 3) {
print(i);
i++;
}
Kita ikuti satu per satu.
Putaran pertama
Awalnya:
i = 1
Program mengecek:
i <= 3
menjadi:
1 <= 3
Hasil:
true
Maka masuk ke body.
print(i);
Output:
1
Kemudian:
i++;
Nilai berubah:
1 → 2
Putaran kedua
Sekarang:
i = 2
Cek lagi:
2 <= 3
Hasil:
true
Masuk body.
print(i);
Output:
2
Kemudian:
i++;
Nilai berubah:
2 → 3
Putaran ketiga
Sekarang:
i = 3
Cek:
3 <= 3
Hasil:
true
Masuk body.
print(i);
Output:
3
Kemudian:
i++;
Nilai berubah:
3 → 4
Putaran keempat
Sekarang:
i = 4
Cek:
4 <= 3
Hasil:
false
Karena false, body tidak dijalankan lagi.
Loop selesai.
Hasil akhirnya:
1
2
3
7. Hal terpenting dalam while: jangan lupa mengubah kondisi
Perhatikan:
int i = 1;
while (i <= 5) {
print(i);
i++;
}
Ada:
i++;
Kenapa?
Karena kita perlu membuat kondisi akhirnya menjadi false.
Kalau kita menulis:
int i = 1;
while (i <= 5) {
print(i);
}
maka i tidak pernah berubah.
Selamanya:
i = 1
Kondisinya:
1 <= 5
selalu true.
Akibatnya:
1
1
1
1
1
1
1
...
dan seterusnya.
Ini disebut infinite loop atau loop tak terbatas.
Jadi saat menggunakan while, selalu pikirkan:
“Apa yang membuat kondisi saya akhirnya menjadi
false?”
8. Contoh infinite loop
Misalnya:
int i = 1;
while (i <= 5) {
print(i);
}
Kesalahannya adalah kita tidak pernah melakukan:
i++;
Akibatnya:
i = 1
terus.
Kondisi:
1 <= 5
terus true.
Maka loop tidak pernah selesai.
9. Sekarang masuk ke do-while
Selain while, Dart juga memiliki:
do-while
Perbedaan paling penting adalah:
whilemengecek kondisi terlebih dahulu.
do-whilemenjalankan body terlebih dahulu, baru mengecek kondisi.
Ini perbedaan yang sangat penting.
10. Sintaks do-while
Bentuknya:
do {
// body loop
} while (condition);
Perhatikan tanda ; di akhir:
while (condition);
Untuk do-while, semicolon ini memang diperlukan.
Contoh:
int i = 1;
do {
print(i);
i++;
} while (i <= 5);
Output:
1
2
3
4
5
11. Kenapa do-while disebut exit-controlled loop?
Karena kondisi diperiksa setelah body dijalankan.
Urutannya:
┌─────────┐
│ body │
│ loop │
└────┬────┘
│
▼
┌─────────┐
│ kondisi │
└────┬────┘
│
┌──┴───┐
true false
│ │
│ ▼
│ keluar
│
└──► kembali ke body
Jadi:
jalankan body
↓
cek kondisi
↓
true?
┌───┴────┐
ya tidak
↓ ↓
ulang selesai
12. Perbedaan terbesar while vs do-while
Ini yang wajib kamu ingat:
while | do-while |
|---|---|
| Kondisi dicek dulu | Body dijalankan dulu |
| Bisa tidak berjalan sama sekali | Minimal berjalan 1 kali |
| Entry-controlled | Exit-controlled |
while (condition) {} | do {} while (condition); |
Kalimat paling mudah untuk mengingat:
while
“Cek dulu, baru kerjakan.”
do-while
“Kerjakan dulu, baru cek.”
13. Contoh yang menunjukkan perbedaannya
Misalnya kondisi dari awal sudah false.
Dengan while
int i = 10;
while (i < 5) {
print(i);
}
Kondisi:
10 < 5
adalah:
false
Karena kondisi dicek dulu, body tidak pernah dijalankan.
Output:
tidak ada output
Dengan do-while
int i = 10;
do {
print(i);
} while (i < 5);
Yang terjadi:
- Masuk ke body.
print(i)dijalankan.- Mencetak
10. - Baru kondisi diperiksa.
10 < 5→false.- Loop berhenti.
Output:
10
Jadi meskipun kondisinya false sejak awal, do-while tetap menjalankan body satu kali.
14. Contoh do-while dari 1 sampai 5
Kode:
int i = 1;
do {
print(i);
i++;
} while (i <= 5);
Mari kita jalankan.
Awalnya
i = 1
Karena do-while, kita langsung masuk body.
print(i);
Output:
1
Kemudian:
i++;
menjadi:
i = 2
Baru cek:
2 <= 5
true.
Maka kembali ke body.
Kemudian:
2 → print → 2
3 → print → 3
4 → print → 4
5 → print → 5
Setelah mencetak 5:
i = 6
Cek:
6 <= 5
false.
Maka selesai.
Output:
1
2
3
4
5
15. Contoh yang lebih menarik: menu program
do-while sering cocok untuk sesuatu yang minimal harus muncul sekali.
Misalnya menu:
int choice = 0;
do {
print("=== MENU ===");
print("1. Lihat data");
print("2. Tambah data");
print("3. Keluar");
// misalnya user memilih sesuatu
choice = 3;
} while (choice != 3);
Kenapa do-while masuk akal?
Karena menu harus ditampilkan setidaknya sekali.
Kita tidak perlu mengatakan:
“Apakah menu perlu ditampilkan?”
Kita langsung tampilkan:
=== MENU ===
1. Lihat data
2. Tambah data
3. Keluar
Kemudian baru kita cek apakah user ingin keluar.
16. Kesalahan kecil dalam transcript
Ada beberapa bagian transcript yang merupakan hasil speech-to-text atau penjelasan yang kurang tepat.
Misalnya disebut:
“dual loop”
Kemungkinan maksudnya adalah:
do-while loop
Bukan “dual loop”.
Ada juga beberapa kalimat seperti:
“value of 5 is 3”
Kemungkinan sebenarnya:
“value of
iis 3”
Begitu juga:
“pause condition”
kemungkinan maksudnya:
false condition
Jadi jangan terlalu terpaku pada kalimat hasil transkripsi tersebut.
17. Perhatikan i++
Di video banyak digunakan:
i++;
Ini disebut post-increment.
Artinya:
naikkan nilai
isebanyak 1.
Contoh:
int i = 1;
i++;
Setelah itu:
i = 2
Kemudian:
i++;
menjadi:
i = 3
dan seterusnya.
Untuk kasus loop seperti ini, i++ sangat umum digunakan.
18. Jangan sampai lupa i++
Ini kesalahan yang sangat umum bagi pemula.
Salah:
int i = 1;
while (i <= 5) {
print(i);
}
Benar:
int i = 1;
while (i <= 5) {
print(i);
i++;
}
Karena i++ membuat program bergerak menuju kondisi berhenti.
19. Cara berpikir ketika melihat sebuah loop
Kalau kamu menemukan kode:
int i = 1;
while (i <= 5) {
print(i);
i++;
}
Jangan langsung melihatnya sebagai satu blok kode besar.
Pecah menjadi 4 pertanyaan:
1. Mulai dari mana?
int i = 1;
Jawab:
Mulai dari 1.
2. Kapan loop boleh berjalan?
i <= 5
Jawab:
Selama
imasih ≤ 5.
3. Apa yang dilakukan?
print(i);
Jawab:
Cetak
i.
4. Bagaimana nilai berubah?
i++;
Jawab:
ibertambah 1.
Kalau empat hal ini sudah kamu pahami, biasanya loop menjadi jauh lebih mudah.
20. Analogi kehidupan sehari-hari
Bayangkan kamu sedang makan permen dari sebuah toples.
while
Kamu berkata:
“Kalau masih ada permen, saya akan mengambil permen.”
Cek: masih ada permen?
↓
Ya → ambil
↓
cek lagi
Kalau dari awal toples kosong:
Cek: masih ada permen?
↓
Tidak
↓
selesai
Kamu tidak mengambil apa pun.
Ini seperti:
while (adaPermen) {
ambilPermen();
}
do-while
Sekarang kamu berkata:
“Saya akan mengambil satu permen dulu, setelah itu baru mengecek apakah masih ada.”
ambil permen
↓
cek masih ada?
↓
Ya → ambil lagi
↓
cek lagi
Bahkan kalau kondisi awalnya tidak memungkinkan, kamu sudah melakukan satu kali percobaan.
Itulah konsep do-while.
21. Kapan menggunakan while?
Gunakan while ketika:
Ada kemungkinan bahwa loop tidak perlu dijalankan sama sekali.
Contohnya:
while (saldo > 0) {
// melakukan sesuatu
}
Kalau:
saldo = 0
dari awal, kita memang tidak perlu menjalankan body.
22. Kapan menggunakan do-while?
Gunakan do-while ketika:
Kamu ingin body dijalankan minimal satu kali.
Contoh yang sering cocok:
- menu
- meminta input user
- validasi input
- mencoba suatu proses minimal sekali
Contoh konsep:
String input;
do {
input = getInput();
} while (input.isEmpty);
Maksudnya:
Minta input dulu. Kalau input kosong, minta lagi.
Jadi user pasti diminta memasukkan sesuatu setidaknya sekali.
23. while vs do-while secara visual
Ingat diagram sederhana ini.
while
MULAI
↓
┌───────────┐
│ CEK │
│ kondisi │
└─────┬─────┘
│
┌──┴───┐
true false
│ │
▼ ▼
BODY SELESAI
│
└──────► CEK LAGI
do-while
MULAI
↓
BODY
↓
┌───────────┐
│ CEK │
│ kondisi │
└─────┬─────┘
│
┌──┴───┐
true false
│ │
▼ ▼
BODY LAGI SELESAI
Perhatikan perbedaan posisi BODY dan CEK.
24. Kesimpulan paling penting
Kalau kamu hanya ingin mengingat beberapa hal dari video ini, ingat ini:
while
while (condition) {
// code
}
Artinya:
Cek kondisi → kalau true, jalankan body → cek lagi.
Bisa menghasilkan 0 kali eksekusi.
do-while
do {
// code
} while (condition);
Artinya:
Jalankan body → cek kondisi → kalau true, ulangi.
Minimal berjalan 1 kali.
Cheat sheet
WHILE
------
cek → body → cek → body → ... → berhenti
DO-WHILE
--------
body → cek → body → cek → ... → berhenti
Dan satu hal yang sangat penting saat membuat loop:
Pastikan ada sesuatu yang membuat kondisi akhirnya berubah menjadi
false.
Contohnya:
i++;
Kalau tidak ada perubahan yang membuat kondisi menjadi false, kamu berisiko membuat infinite loop.
Hubungannya dengan Flutter
Di Flutter, kamu akan lebih sering bertemu loop seperti for, for-in, map, ListView.builder, dan sebagainya untuk menampilkan banyak data. Tetapi memahami while dan do-while tetap penting karena keduanya mengajarkan fondasi cara kerja perulangan: kapan kode diulang, kapan berhenti, dan bagaimana kondisi berubah.