Tugas Akhir
Penjelasan
Sekarang saatnya menggabungkan semua yang sudah dipelajari — dari widget dasar sampai local storage — jadi satu aplikasi utuh. Kamu akan membuat aplikasi Todo List mobile sederhana yang menggabungkan StatefulWidget, TextField dengan controller, ListView.builder, dan setState.
Tugas
Buat StatefulWidget TodoApp dengan List<Map<String, dynamic>> daftarTodo (tiap item: {'id', 'teks', 'selesai'}) dan TextEditingController _controller untuk input teks baru. Buat method tambahTodo() untuk menambah todo baru ke daftarTodo lewat setState() (id bisa pakai DateTime.now().millisecondsSinceEpoch). Tampilkan daftarTodo lewat ListView.builder(), tiap item punya Checkbox untuk toggle 'selesai' dan IconButton hapus. Tampilkan ringkasan "X dari Y todo selesai" di bagian atas lewat AppBar atau Text terpisah.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau bingung mulai dari mana, kerjakan tambahTodo() dan render list-nya dulu (tanpa checkbox/hapus), cek hasilnya di emulator, baru tambahkan toggleSelesai() dan hapusTodo() satu per satu. Program besar selalu lebih mudah kalau dipecah jadi langkah-langkah kecil.