Masukkan Password
27 Chapter 2 Practice Exercise | Conditions & Loops Exercise | Learn Dart Language | Dart Course
Materi ini adalah latihan/soal praktik setelah Chapter 2 selesai. Jadi, video ini bukan memperkenalkan konsep baru, melainkan menguji apakah kita sudah memahami condition, loop, break, continue, do-while, dan operasi dasar Dart.
Di transkrip ada beberapa salah tangkap suara: “DOT” = Dart, dan “do program” kemungkinan maksudnya Dart program.
Saya akan jelaskan maksud setiap soal, konsep yang diuji, cara berpikirnya, dan contoh solusi Dart.
1. Cek apakah bilangan ganjil atau genap
Soal:
Write a program to check if the number is odd or even.
Artinya:
Buat program untuk menentukan apakah sebuah angka ganjil (odd) atau genap (even).
Konsep yang digunakan
Kita menggunakan operator modulo %.
Modulo menghasilkan sisa pembagian.
Contoh:
10 % 2 = 0
11 % 2 = 1
12 % 2 = 0
13 % 2 = 1
Jadi aturan sederhananya:
angka % 2 == 0 → genap
angka % 2 != 0 → ganjil
Contoh:
void main() {
int number = 10;
if (number % 2 == 0) {
print("Even");
} else {
print("Odd");
}
}
Karena:
10 % 2 = 0
hasilnya:
Even
Cara berpikirnya
Jangan menghafalkan kode saja. Ingat logikanya:
Kalau dibagi 2 sisanya 0 → genap. Selain itu → ganjil.
2. Menentukan vowel atau consonant
Soal:
Write a Dart program to check whether a character is a vowel or consonant.
Artinya:
Buat program untuk menentukan apakah sebuah karakter merupakan vokal atau konsonan.
Dalam bahasa Inggris, vowel adalah:
a
e
i
o
u
Sedangkan huruf lainnya pada alfabet dianggap consonant.
Contoh:
a → vowel
e → vowel
b → consonant
z → consonant
Menggunakan if
Contohnya:
void main() {
String character = 'a';
if (character == 'a' ||
character == 'e' ||
character == 'i' ||
character == 'o' ||
character == 'u') {
print("Vowel");
} else {
print("Consonant");
}
}
Perhatikan penggunaan:
||
Artinya OR.
Jadi kondisi tersebut dibaca:
Apakah karakter
aATAUeATAUiATAUoATAUu?
Kalau salah satu benar → Vowel.
Versi yang lebih rapi
Kita juga bisa menggunakan:
void main() {
String character = 'a';
if ("aeiou".contains(character)) {
print("Vowel");
} else {
print("Consonant");
}
}
Namun untuk latihan Chapter 2, versi if + || bagus untuk melatih logical OR.
Hal yang perlu diperhatikan
Soal mengatakan character, jadi idealnya input hanya satu karakter.
Misalnya:
a
bukan:
apple
3. Menentukan positive, negative, atau zero
Soal:
Write a Dart program to check whether a number is positive, negative, or zero.
Artinya:
Tentukan apakah sebuah angka positif, negatif, atau nol.
Ada tiga kemungkinan:
number > 0 → Positive
number < 0 → Negative
number == 0 → Zero
Contoh:
10 → Positive
-5 → Negative
0 → Zero
Solusi
void main() {
int number = -5;
if (number > 0) {
print("Positive");
} else if (number < 0) {
print("Negative");
} else {
print("Zero");
}
}
Cara membacanya
Dart mengecek dari atas ke bawah.
Pertama:
if (number > 0)
Kalau benar → Positive.
Kalau salah, lanjut:
else if (number < 0)
Kalau benar → Negative.
Kalau keduanya salah, berarti satu-satunya kemungkinan adalah:
number == 0
maka masuk:
else
dan mencetak Zero.
4. Mencetak nama sebanyak 100 kali
Soal:
Write a Dart program to print your name 100 times.
Artinya:
Buat program yang mencetak nama kita sebanyak 100 kali.
Video mengatakan soal ini dapat diselesaikan menggunakan loop.
Ini adalah contoh nyata kenapa loop diperlukan.
Tanpa loop, kita harus menulis:
print("Budi");
print("Budi");
print("Budi");
print("Budi");
...
sampai 100 kali.
Tentu sangat tidak efisien.
Menggunakan for
void main() {
for (int i = 1; i <= 100; i++) {
print("Budi");
}
}
Mari kita pahami:
int i = 1
Mulai dari angka 1.
Kemudian:
i <= 100
Selama i masih kurang atau sama dengan 100, loop berjalan.
Kemudian:
i++
setiap putaran i bertambah 1.
Jadi:
i = 1 → print
i = 2 → print
i = 3 → print
...
i = 100 → print
i = 101 → berhenti
Hasilnya nama dicetak 100 kali.
5. Menghitung jumlah natural numbers
Soal:
Write a Dart program to calculate the sum of natural numbers.
Artinya:
Hitung jumlah dari bilangan natural dalam suatu range.
Video memberi contoh:
1 sampai 10
atau:
1 sampai 100
Misalnya kita ingin:
1 + 2 + 3 + 4 + ... + 10
Hasilnya:
55
Menggunakan for
void main() {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum = sum + i;
}
print(sum);
}
Mari kita lihat prosesnya.
Awalnya:
sum = 0
Putaran pertama
sum = 0 + 1
sum = 1
Putaran kedua
sum = 1 + 2
sum = 3
Putaran ketiga
sum = 3 + 3
sum = 6
Dan seterusnya sampai 10.
Akhirnya:
sum = 55
Kenapa sum harus dimulai dari 0?
Karena kita sedang membuat penampung total.
Misalnya:
int sum = 0;
Kemudian setiap angka ditambahkan:
sum = sum + i;
Bentuk pendeknya juga bisa:
sum += i;
Jadi:
sum += i;
sama dengan:
sum = sum + i;
6. Membuat tabel perkalian 5
Soal:
Write a Dart program to generate multiplication table of five.
Artinya:
Buat program untuk menampilkan tabel perkalian angka 5.
Hasil yang diinginkan kira-kira:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
...
5 x 10 = 50
Solusi
void main() {
for (int i = 1; i <= 10; i++) {
print("5 x $i = ${5 * i}");
}
}
Perhatikan bagian:
${5 * i}
Dart menghitung:
5 × nilai i
Misalnya ketika:
i = 3
maka:
5 × 3 = 15
7. Membuat tabel perkalian 1 sampai 9
Ini lebih sulit sedikit.
Soal:
Generate multiplication tables from 1 to 9.
Artinya kita harus membuat tabel:
1
2
3
4
5
6
7
8
9
masing-masing sampai perkalian 10.
Misalnya:
1 x 1 = 1
...
1 x 10 = 10
2 x 1 = 2
...
2 x 10 = 20
...
9 x 10 = 90
Kita membutuhkan nested loop
Nested loop berarti loop di dalam loop.
Contoh:
void main() {
for (int number = 1; number <= 9; number++) {
for (int i = 1; i <= 10; i++) {
print("$number x $i = ${number * i}");
}
print("");
}
}
Ada dua loop.
Loop luar
for (int number = 1; number <= 9; number++)
bertugas memilih tabel:
1
2
3
...
9
Loop dalam
for (int i = 1; i <= 10; i++)
bertugas menghasilkan:
x 1
x 2
x 3
...
x 10
Jadi:
number = 1
↓
i = 1 → 1 × 1
i = 2 → 1 × 2
...
i = 10 → 1 × 10
number = 2
↓
i = 1 → 2 × 1
...
Inilah konsep nested loop.
8. Membuat kalkulator sederhana
Soal:
Create a simple calculator that performs addition, subtraction, multiplication and division.
Artinya:
Buat kalkulator sederhana yang bisa melakukan:
- Penjumlahan
- Pengurangan
- Perkalian
- Pembagian
Misalnya:
10 + 5 = 15
10 - 5 = 5
10 * 5 = 50
10 / 5 = 2
Untuk latihan dasar, kita bisa menggunakan sebuah operator:
String operator = '+';
Kemudian menggunakan if-else.
void main() {
double number1 = 10;
double number2 = 5;
String operator = '+';
if (operator == '+') {
print(number1 + number2);
} else if (operator == '-') {
print(number1 - number2);
} else if (operator == '*') {
print(number1 * number2);
} else if (operator == '/') {
print(number1 / number2);
} else {
print("Invalid operator");
}
}
Bagaimana program ini bekerja?
Misalnya:
String operator = '+';
Program mengecek:
if (operator == '+')
Benar.
Maka:
print(number1 + number2);
dijalankan.
Kalau:
operator = '-';
maka bagian:
else if (operator == '-')
yang dijalankan.
Hal penting: = vs ==
Ini sangat penting dari materi sebelumnya.
=
Untuk memberikan nilai:
operator = '+';
Artinya:
Masukkan nilai
+ke variabeloperator.
==
Untuk membandingkan:
operator == '+'
Artinya:
Apakah nilai
operatorsama dengan+?
Jangan sampai tertukar.
9. Mencetak 1 sampai 100 kecuali 56
Soal terakhir:
Write a Dart program to print 1 to 100 but not 56.
Artinya:
Cetak angka dari 1 sampai 100, tetapi jangan cetak angka 56.
Hasilnya:
1
2
3
...
54
55
57
58
...
100
Angka:
56
harus dilewati.
Soal ini sengaja dibuat untuk menguji pemahaman tentang continue.
Menggunakan continue
void main() {
for (int i = 1; i <= 100; i++) {
if (i == 56) {
continue;
}
print(i);
}
}
Mari kita lihat ketika:
i = 55
Kondisi:
i == 56
salah.
Maka:
print(i);
dijalankan.
Output:
55
Kemudian i menjadi 56.
Ketika i = 56
Kondisi:
if (i == 56)
benar.
Maka:
continue;
dijalankan.
continue berarti:
Lewati sisa kode pada putaran sekarang dan lanjut ke putaran berikutnya.
Jadi:
print(i);
tidak dijalankan.
Akibatnya:
56
tidak muncul.
Kemudian loop lanjut ke:
57
dan seterusnya sampai 100.
10. Bedanya break dan continue
Ini sengaja berkaitan dengan materi sebelumnya.
break
Menghentikan loop sepenuhnya.
for (int i = 1; i <= 100; i++) {
if (i == 56) {
break;
}
print(i);
}
Hasil:
1
2
3
...
55
Begitu menemukan 56 → loop berhenti total.
continue
Hanya melewati satu putaran.
for (int i = 1; i <= 100; i++) {
if (i == 56) {
continue;
}
print(i);
}
Hasil:
1
2
...
55
57
58
...
100
Jadi mudahnya:
break= berhenti total.continue= lewati yang sekarang, lanjut lagi.
11. Semua soal sebenarnya menguji apa?
Kalau kita lihat keseluruhan latihan, ternyata setiap soal menguji konsep tertentu.
| No | Soal | Konsep utama | ||
|---|---|---|---|---|
| 1 | Odd / Even | %, if-else | ||
| 2 | Vowel / Consonant | if, ` | `, perbandingan | |
| 3 | Positive / Negative / Zero | if-else if-else | ||
| 4 | Nama 100 kali | for loop | ||
| 5 | Sum natural numbers | for, accumulator | ||
| 6 | Tabel perkalian 5 | for loop | ||
| 7 | Tabel 1–9 | Nested loop | ||
| 8 | Simple calculator | if-else, operator | ||
| 9 | 1–100 kecuali 56 | continue |
Jadi latihan ini sebenarnya merupakan ujian kecil untuk Chapter 2.
12. Cara mengerjakan soal-soal seperti ini
Jangan langsung menulis kode.
Biasakan melakukan 3 langkah.
Langkah 1 — Pahami masalah
Misalnya:
“Tentukan apakah angka genap atau ganjil.”
Terjemahkan menjadi aturan:
Jika angka % 2 == 0
→ genap
Selain itu
→ ganjil
Langkah 2 — Tentukan konsep yang dibutuhkan
Tanyakan:
“Saya membutuhkan apa?”
Misalnya:
Odd/even
→ if + %
Print 100 times
→ loop
Skip 56
→ continue
Tables 1–9
→ nested loop
Langkah 3 — Baru tulis kode
Misalnya soal:
Print 1 sampai 100 kecuali 56.
Pikirkan dulu:
Mulai 1
↓
Sampai 100
↓
Kalau 56 → skip
↓
Selain itu → print
Baru dibuat menjadi:
for (int i = 1; i <= 100; i++) {
if (i == 56) {
continue;
}
print(i);
}
13. Tantangan yang lebih bagus untuk latihan
Setelah berhasil mengerjakan versi dasar, coba modifikasi.
Soal 1
Awalnya:
Cek ganjil/genap
Coba buat agar mengecek beberapa angka sekaligus:
1 → Odd
2 → Even
3 → Odd
4 → Even
...
Soal 2
Untuk vowel/consonant, coba tambahkan kondisi untuk karakter yang bukan huruf.
Misalnya:
a → Vowel
b → Consonant
1 → Invalid character
Soal 3
Untuk sum natural numbers, coba ubah:
1 sampai 10
menjadi:
1 sampai 100
Kemudian coba:
1 sampai 1000
Soal 4
Untuk tabel perkalian, coba buat:
2 x 1 = 2
2 x 2 = 4
...
Kemudian ubah supaya user bisa menentukan sendiri tabel yang ingin dibuat.
Soal 5
Untuk soal terakhir, jangan hanya melewati 56.
Coba:
Cetak 1–100 tetapi jangan cetak angka yang habis dibagi 5.
Petunjuk:
if (i % 5 == 0) {
continue;
}
Dengan begitu kamu sekaligus berlatih modulo + condition + continue.
Kesimpulan
Chapter 2 ini sebenarnya mulai mengajarkan kita cara membuat program yang punya logika, bukan sekadar mencetak teks.
Empat konsep besarnya:
CONDITION
↓
if / else
↓
Program bisa mengambil keputusan
LOOP
↓
for / while / do-while
↓
Program bisa mengulang pekerjaan
BREAK / CONTINUE
↓
Mengontrol loop
↓
Berhenti atau melewati iterasi tertentu
EXCEPTION HANDLING
↓
try / catch / finally / throw
↓
Menangani kondisi error
Dan 9 latihan di video tadi dirancang supaya kita menggabungkan konsep-konsep tersebut dalam program kecil.
Kalau kamu benar-benar ingin menguasai materi ini, jangan hanya membaca solusinya. Coba tulis ulang setiap program dari nol tanpa melihat jawaban, lalu kalau sudah selesai baru bandingkan. Itu jauh lebih efektif untuk belajar pemrograman.