Pada pertemuan 35, ubah ide menjadi rancangan aplikasi mobile yang dapat dibangun dan diuji. Panduan ini memakai contoh aplikasi daftar tugas belajar dengan Flutter. Ini contoh latihan yang dapat disesuaikan; bukan klaim bahwa aplikasinya sudah dibuat atau diuji oleh peserta.
Target akhir pertemuan
- Proposal satu halaman yang menyebut pengguna, masalah, dan batasan.
- Rancangan tiga layar beserta alur penggunaan.
- Model data, kriteria penerimaan, dan pembagian pekerjaan.
- Satu alur inti yang mulai diimplementasikan serta daftar kendala.
1. Mulai dari kebutuhan pengguna
Hindari tujuan terlalu luas seperti “membuat aplikasi pendidikan lengkap”. Rumuskan satu kebutuhan: seorang peserta ingin mencatat tugas belajar dan melihat mana yang belum selesai. Wawancarai calon pengguna bila tersedia, lalu pisahkan hasil pengamatan dari asumsi. Jangan menulis bahwa sebuah masalah sudah terbukti jika belum pernah ditanyakan atau diamati.
Template kebutuhan: “Sebagai [pengguna], saya ingin [tindakan] agar [manfaat].” Contoh: “Sebagai peserta kursus, saya ingin menandai latihan selesai agar dapat memilih latihan berikutnya.”
2. Batasi fitur versi pertama
| Prioritas | Fitur contoh | Kriteria selesai |
|---|---|---|
| Inti | Tambah tugas | Judul valid muncul satu kali di daftar; judul kosong ditolak. |
| Inti | Lihat daftar dan detail | Pengguna dapat membuka tugas yang dipilih dan kembali ke daftar. |
| Inti | Tandai selesai | Status tugas berubah dan tampak konsisten pada daftar. |
| Tentukan sejak awal | Penyimpanan data | Jika dijanjikan permanen, data tetap tersedia setelah aplikasi dibuka ulang. |
| Lanjutan | Login, notifikasi, sinkronisasi | Dikerjakan setelah alur inti lulus uji; tidak dijanjikan pada versi awal. |
Pilih penyimpanan sesuai kebutuhan dan materi yang telah dikuasai. Data dalam memori dapat dipakai untuk purwarupa, tetapi jelaskan bahwa data dapat hilang ketika aplikasi ditutup. Penyimpanan lokal dan layanan daring mempunyai kebutuhan implementasi yang berbeda; jangan menganggap keduanya otomatis tersedia.
3. Rancang layar sebelum menulis kode
- Daftar tugas: judul aplikasi, tombol tambah, daftar tugas, dan pesan saat belum ada data.
- Form tugas: kolom judul, pesan validasi, tombol simpan, dan batal. Tentukan apa yang terjadi jika pengguna membatalkan.
- Detail tugas: judul, status, dan tindakan menandai selesai. Sediakan cara kembali tanpa membuat data ganda.
Gambarkan tiap layar di kertas atau alat desain. Hubungkan tombol dengan layar tujuan. Untuk aplikasi yang mengambil data dari server, rancang juga keadaan memuat, gagal, dan coba lagi. Gunakan data latihan saat merancang, bukan identitas pengguna asli.
4. Tentukan model dan aturan data
| Field contoh | Makna | Aturan |
|---|---|---|
| id | Identitas tugas | Unik dan tetap ketika judul diubah. |
| title | Nama tugas | Tidak boleh kosong setelah spasi awal dan akhir dibuang. |
| isDone | Status penyelesaian | Bernilai benar atau salah; tugas baru dimulai dari belum selesai. |
Pisahkan identitas tugas dari urutan tampil. Menggunakan posisi daftar sebagai identitas dapat membuat tindakan mengenai tugas yang salah setelah daftar diurutkan atau dihapus. Tuliskan aturan tersebut sebelum membagi pekerjaan.
5. Bagi tanggung jawab kode
Berikut contoh struktur, bukan aturan wajib Flutter dan bukan aplikasi siap jalan:
lib/
main.dart
models/task.dart
screens/task_list_screen.dart
screens/task_form_screen.dart
screens/task_detail_screen.dart
services/task_repository.dartModel menjelaskan bentuk data. Layar menangani tampilan dan interaksi. Repository menjadi tempat operasi membaca dan menyimpan tugas sesuai teknologi yang dipilih. Untuk proyek kecil, susunan bisa lebih sederhana selama anggota tim dapat menjelaskan alurnya.
6. Implementasikan satu alur utuh
- Tampilkan daftar dengan data latihan terlebih dahulu.
- Hubungkan tombol tambah ke form dan uji tombol batal.
- Tambahkan validasi judul, lalu tampilkan hasil simpan di daftar.
- Hubungkan detail dengan tugas yang benar dan perbarui statusnya.
- Tambahkan penyimpanan yang telah dipilih, lalu periksa kembali alur tambah dan ubah status.
Kerjakan satu langkah hingga dapat diperagakan sebelum menambah langkah berikutnya. Catat kesalahan beserta cara mengulangnya. Jika ada bagian yang belum dipahami, tuliskan pertanyaan teknis yang spesifik agar pendampingan dapat langsung menyasar kendala.
7. Jadwal dan pembagian tim
Gunakan empat tahap: rancangan, implementasi alur inti, integrasi dan uji, lalu dokumentasi. Sesuaikan durasi dengan waktu kelas. Setiap pekerjaan perlu penanggung jawab, hasil yang dapat diperiksa, dan ketergantungan. Contoh: form menunggu kesepakatan model Task; pemeriksaan penyimpanan menunggu alur simpan selesai.
Sepakati perubahan struktur data sebelum menggabungkan kode. Simpan perubahan kecil dengan penjelasan yang dapat dipahami. Jangan memasukkan sandi, token API, atau data pribadi ke repositori.
Tugas yang dikumpulkan
- Proposal berisi pengguna, kebutuhan, asumsi, fitur inti, dan fitur yang ditunda.
- Wireframe tiga layar dan alur tombolnya.
- Model data beserta aturan validasi.
- Daftar pekerjaan, penanggung jawab, dan kriteria penerimaan.
- Kode awal, petunjuk menjalankan, dan catatan hasil pengujian yang benar-benar dilakukan.
Pemeriksaan sebelum presentasi akhir
Minta teman mengikuti alur tambah tugas tanpa penjelasan lisan. Periksa judul kosong, daftar kosong, tugas ganda, perubahan status, dan perilaku saat aplikasi dibuka ulang. Bandingkan hasilnya dengan janji versi pertama. Gunakan panduan pengujian, rubrik, dan demo pertemuan 36 untuk menyelesaikan penyerahan akhir.

