Ujian Tengah Semester đ
Selamat! Kalian telah berhasil bertahan melewati Modul 1 sampai 5. Sekarang saatnya membuktikan bahwa kalian benar-benar paham logika dan konsep OOP dasar di Dart.
â ī¸ Aturan Main
- Ada 3 soal berjenjang (Basic, Intermediate, Boss Level).
- Baca skenario, coba pahami logikanya, lalu tes di Simulator.
- Tulis kodenya di VS Code milik kalian sendiri.
- Kalau stuck, jangan langsung buka kunci jawaban! Struggle is learning.
Soal 1 Combo Hit (Logic & Looping)
đ Skenario Misi
Buatlah file combo_hit.dart. Kalian diminta mensimulasikan sistem *Combo Hit* dalam game. Karakter akan memukul sebanyak N kali (gunakan For Loop).
Ketentuan Logika (If-Else & Modulo):
- Setiap pukulan yang **kelipatan 3** (contoh: 3, 6, 9), cetak:
"Hit [i]: CRITICAL STRIKE! đĨ" - Setiap pukulan genap (habis dibagi 2), cetak:
"Hit [i]: Pukul Kanan đĨ" - Selain kondisi di atas (ganjil biasa), cetak:
"Hit [i]: Pukul Kiri đĨ"
void main() { int totalHit = 10; for (int i = 1; i <= totalHit; i++) { // Cek kelipatan 3 (Sisa bagi 3 sama dengan 0) if (i % 3 == 0) { print("Hit $i: CRITICAL STRIKE! đĨ"); } // Cek genap else if (i % 2 == 0) { print("Hit $i: Pukul Kanan đĨ"); } // Ganjil sisa else { print("Hit $i: Pukul Kiri đĨ"); } } }
đšī¸ Simulator Kode Soal 1
Soal 2 Tas Pintar Anti Sampah (Collections)
đ Skenario Misi
Buat file tas_pintar.dart. Kalian punya sebuah tas (`List`) hasil looting yang kotor karena banyak item "Sampah" dan barang duplikat.
Tugas kalian:
- Buat List berisi:
["Pedang", "Sampah", "Potion", "Sampah", "Pedang", "Gold"]. - Gunakan perulangan `while` dan method
.contains("Sampah")untuk menghapus SEMUA "Sampah" dari List. - Untuk menghilangkan barang duplikat, ubah (konversi) `List` tersebut menjadi
Set. - Print isi koleksi terakhir ke layar!
void main() { List<String> tas = [ "Pedang", "Sampah", "Potion", "Sampah", "Pedang", "Gold" ]; print("Tas kotor: $tas"); // 1. Hapus semua "Sampah" pake While while (tas.contains("Sampah")) { tas.remove("Sampah"); } print("Tas bersih (Tapi ada duplikat): $tas"); // 2. Konversi List ke Set biar otomatis buang duplikat Set<String> tasUnik = tas.toSet(); print("Tas sempurna: $tasUnik"); }
đšī¸ Auto-Filter Simulator
Soal 3 Arena Pertarungan (OOP Interaksi Object)
đ Skenario Misi Final
Buat file arena_oop.dart. Kalian harus membuktikan bahwa Object itu nyata dan bisa saling berinteraksi!
Ketentuan Class Petarung:
- Property:
nama,hp,attack. - Method:
serang(Petarung musuh).
Ini adalah method sakti! Method ini menerima Object musuh, mengurangihpmusuh sesuaiattacksi penyerang, dan ngeprint hasilnya.
(Bonus: Kalo HP musuh minus, paksa jadi 0 pakai if-else).
Ketentuan fungsi main():
- Instansiasi Object 1:
Arthur(HP 1000, ATK 250). - Instansiasi Object 2:
Dragon(HP 2000, ATK 300). - Suruh Arthur serang Dragon! Kemudian suruh Dragon membalas!
// 1. Cetakan Blueprint class Petarung { String nama = ""; int hp = 0; int attack = 0; // Method nerima input tipe Object (Petarung musuh) void serang(Petarung musuh) { musuh.hp -= attack; // Ngurangin HP musuh if(musuh.hp < 0) { musuh.hp = 0; // Biar HP gak minus } print("$nama nyerang \${musuh.nama}! Damage: $attack."); print("Sisa HP \${musuh.nama}: \${musuh.hp}\n"); } } // 2. Ruang Eksekusi void main() { Petarung hero = Petarung(); hero.nama = "Arthur"; hero.hp = 1000; hero.attack = 250; Petarung boss = Petarung(); boss.nama = "Dragon"; boss.hp = 2000; boss.attack = 300; print("=== ARENA DIMULAI ==="); hero.serang(boss); // Arthur nyerang Dragon boss.serang(hero); // Dragon membalas }
âī¸ OOP Battle Simulator
Butuh Akses!
Masukkan password untuk melihat kunci jawaban.
â Password salah, coba lagi!
Butuh Akses!
Masukkan password untuk melihat kunci jawaban.
â Password salah, coba lagi!