voidmain() {int umur =18;if (umur >=17) {print('Anda sudah bisa membuat KTP'); }}
If-Else Statement
voidmain() {int nilai =75;if (nilai >=60) {print('Anda lulus!'); } else {print('Anda perlu mengulang'); }}
If-Else If Statement
voidmain() {int nilai =85;if (nilai >=90) {print('Nilai Anda A'); } elseif (nilai >=80) {print('Nilai Anda B'); } elseif (nilai >=70) {print('Nilai Anda C'); } elseif (nilai >=60) {print('Nilai Anda D'); } else {print('Nilai Anda E'); }}
Nested If Statement
voidmain() {bool isLoggedIn =true;bool isPremium =true;if (isLoggedIn) {if (isPremium) {print('Selamat datang user premium!'); } else {print('Selamat datang user reguler!'); } } else {print('Silakan login terlebih dahulu'); }}
3.2 Switch Case
Switch Case Dasar
voidmain() {String hari ='Senin';switch (hari) {case'Senin':print('Hari kerja');break;case'Selasa':print('Hari kerja');break;case'Rabu':print('Hari kerja');break;case'Kamis':print('Hari kerja');break;case'Jumat':print('Hari kerja');break;case'Sabtu':case'Minggu':print('Hari libur');break;default:print('Hari tidak valid'); }}
Switch Case dengan Expression
voidmain() {int bulan =3;String namaBulan =switch (bulan) {1=>'Januari',2=>'Februari',3=>'Maret',4=>'April',5=>'Mei',6=>'Juni',7=>'Juli',8=>'Agustus',9=>'September',10=>'Oktober',11=>'November',12=>'Desember', _ =>'Bulan tidak valid' };print('Bulan ke-$bulan adalah $namaBulan');}
3.3 Perulangan (Loops)
For Loop
voidmain() {// Basic for loopfor (int i =1; i <=5; i++) {print('Iterasi ke-$i'); }// For loop dengan listList<String> buah = ['Apel', 'Jeruk', 'Mangga'];for (int i =0; i < buah.length; i++) {print('Buah ke-${i+1}: ${buah[i]}'); }// For-in loopfor (String item in buah) {print('Buah: $item'); }}
import'dart:io';voidmain() {String? jawaban;do {print('\nMenu:');print('1. Lihat data');print('2. Tambah data');print('3. Keluar'); stdout.write('Pilih menu (1-3): '); jawaban = stdin.readLineSync();switch(jawaban) {case'1':print('Menampilkan data...');break;case'2':print('Menambah data...');break;case'3':print('Terima kasih!');break;default:print('Menu tidak valid!'); } } while (jawaban !='3');}
3.4 Break dan Continue
Break Statement
voidmain() {// Break dalam for loopfor (int i =1; i <=10; i++) {if (i ==5) {break; // Menghentikan loop saat i = 5 }print(i); }// Break dalam while loopint counter =1;while (true) {print(counter);if (counter ==5) {break; } counter++; }}
Continue Statement
voidmain() {// Continue dalam for loopfor (int i =1; i <=5; i++) {if (i ==3) {continue; // Melewati iterasi saat i = 3 }print(i); }// Continue dengan while loopint counter =0;while (counter <5) { counter++;if (counter ==3) {continue; }print(counter); }}
3.5 Praktek: Program Quiz Sederhana
import'dart:io';voidmain() {// Daftar pertanyaan dan jawabanList<Map<String, dynamic>> quiz = [ {'pertanyaan':'Ibukota Indonesia adalah...','jawaban':'JAKARTA','poin':20 }, {'pertanyaan':'2 + 2 = ...','jawaban':'4','poin':20 }, {'pertanyaan':'Bumi mengelilingi...','jawaban':'MATAHARI','poin':20 } ];int totalSkor =0;int nomorSoal =1;print('=== SELAMAT DATANG DI QUIZ SEDERHANA ===\n');// Iterasi setiap pertanyaanfor (var soal in quiz) {print('Pertanyaan $nomorSoal:');print(soal['pertanyaan']); stdout.write('Jawaban Anda: ');String? jawaban = stdin.readLineSync();if (jawaban !=null&& jawaban.toUpperCase() == soal['jawaban']) {print('Benar! +${soal['poin']} poin'); totalSkor += soal['poin']; } else {print('Salah! Jawaban yang benar: ${soal['jawaban']}'); }print('Skor saat ini: $totalSkor\n'); nomorSoal++; }// Tampilkan hasil akhirprint('=== QUIZ SELESAI ===');print('Total skor: $totalSkor');// Tentukan predikatString predikat =switch (totalSkor) {>=50=>'Sangat Baik',>=30=>'Baik',>=10=>'Cukup', _ =>'Perlu Belajar Lagi' };print('Predikat: $predikat');}
Latihan Mandiri
Buat program untuk menentukan bilangan prima
Buat game tebak angka dengan batasan percobaan
Buat program untuk menampilkan pola bintang:
*
**
***
****
*****
Tips Penggunaan Struktur Kontrol
Gunakan if-else untuk kondisi yang sederhana
Gunakan switch case untuk kondisi dengan banyak pilihan tetap
Pilih jenis loop yang sesuai:
For: ketika jumlah iterasi atau perulangan diketahui
While: ketika kondisi awal penting
Do-while: ketika iterasi atau perulangan minimal sekali diperlukan
Hindari nested if yang terlalu dalam
Selalu berikan break dalam switch case
Gunakan continue dengan hati-hati untuk menghindari kebingungan