praktikum flutter aplikasi jadwal pelajaran
Praktikum Flutter: Aplikasi Jadwal Pelajaran
CRUD + setState — Panduan Lengkap Step-by-Step
PENDAHULUAN
Pada praktikum ini, kita akan membangun aplikasi sederhana menggunakan Flutter untuk mengelola jadwal pelajaran. Aplikasi ini memiliki fitur CRUD (Create, Read, Update, Delete) dengan manajemen state menggunakan setState().
Tujuan Utama:
- Memahami konsep dasar Flutter
- Mengimplementasikan CRUD sederhana
- Mengelola state tanpa state management tambahan
⚠️ PERSIAPAN
Pastikan sudah:
- Menginstall Flutter SDK
- Menggunakan editor seperti VS Code atau Android Studio
- Menjalankan emulator atau device fisik
flutter create jadwal_app
cd jadwal_app
flutter run
1. Struktur Data
Kita buat model sederhana untuk jadwal dengan 3 atribut utama:
💡 Tip: Keyword required memastikan tidak ada atribut yang terlewat saat objek dibuat.
2. State Management dengan setState
Data jadwal disimpan dalam sebuah List<Jadwal>. Setiap perubahan data dibungkus setState() agar UI otomatis update.
3. Tampilan Utama — Read
Menampilkan daftar jadwal menggunakan ListView.builder dengan aksi edit dan delete di setiap item:
CREATE
Menambahkan jadwal baru ke dalam list via dialog form
UPDATE
Mengubah data jadwal berdasarkan index yang dipilih
DELETE
Menghapus data jadwal dari list berdasarkan index
4. Create — Tambah Data
5. Update — Edit Data
6. Delete — Hapus Data
7. Form Input dengan Dialog
Input menggunakan 3 buah TextEditingController yang ditampilkan dalam dialog:
⚠️ Perhatian: Pada versi ini belum ada validasi input. Field kosong tetap bisa disimpan. Untuk perbaikan, lihat bagian Saran Pengembangan di bawah.
8. Alur Data CRUD
9. Kesimpulan
✅ Yang Dipelajari
- CRUD sederhana di Flutter
- Penggunaan setState()
- Pengelolaan data dengan List
⛔ Keterbatasan
- setState tidak scalable
- Data hilang saat restart
- Belum ada validasi
📌 Penting: setState() hanya cocok untuk aplikasi kecil. Untuk skala lebih besar, gunakan Provider, Riverpod, atau Bloc.
10. Saran Pengembangan
🛡️
Validasi Input
Cegah data kosong & format salah
🗄️
Database Lokal
SQLite atau Hive untuk persistensi
🔍
Fitur Pencarian
Filter jadwal berdasarkan hari/mapel
⚙️
State Management
Migrasi ke Riverpod atau Bloc
🔒 Penutup
Aplikasi ini menjadi dasar penting sebelum masuk ke Flutter yang lebih kompleks. Fokus pada pemahaman alur data dan update UI, karena itu inti dari reactive programming di Flutter.
Komentar
Posting Komentar