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
void main() {
int nilai = 85;
if (nilai >= 90) {
print('Nilai Anda A');
} else if (nilai >= 80) {
print('Nilai Anda B');
} else if (nilai >= 70) {
print('Nilai Anda C');
} else if (nilai >= 60) {
print('Nilai Anda D');
} else {
print('Nilai Anda E');
}
}
Nested If Statement
void main() {
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
void main() {
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');
}
}
void main() {
// Basic for loop
for (int i = 1; i <= 5; i++) {
print('Iterasi ke-$i');
}
// For loop dengan list
List<String> buah = ['Apel', 'Jeruk', 'Mangga'];
for (int i = 0; i < buah.length; i++) {
print('Buah ke-${i+1}: ${buah[i]}');
}
// For-in loop
for (String item in buah) {
print('Buah: $item');
}
}
While Loop
void main() {
int counter = 1;
while (counter <= 5) {
print('Perulangan ke-$counter');
counter++;
}
}
Do-While Loop
import 'dart:io';
void main() {
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
void main() {
// Break dalam for loop
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // Menghentikan loop saat i = 5
}
print(i);
}
// Break dalam while loop
int counter = 1;
while (true) {
print(counter);
if (counter == 5) {
break;
}
counter++;
}
}
Continue Statement
void main() {
// Continue dalam for loop
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // Melewati iterasi saat i = 3
}
print(i);
}
// Continue dengan while loop
int counter = 0;
while (counter < 5) {
counter++;
if (counter == 3) {
continue;
}
print(counter);
}
}
3.5 Praktek: Program Quiz Sederhana
import 'dart:io';
void main() {
// Daftar pertanyaan dan jawaban
List<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 pertanyaan
for (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 akhir
print('=== QUIZ SELESAI ===');
print('Total skor: $totalSkor');
// Tentukan predikat
String 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