Tujuan Pembelajaran
- Menjelaskan kebutuhan penyimpanan data lokal.
- Membandingkan SQLite, Hive, dan SharedPreferences.
- Memahami skema tabel, primary key, dan relasi.
- Mengidentifikasi kapan menggunakan masing-masing media penyimpanan.
Uraian Materi
Data yang dimasukkan pengguna seharusnya tetap ada meski aplikasi ditutup. Itulah fungsi persistensi lokal. Terdapat beberapa pilihan utama di Flutter: SharedPreferences untuk data kecil berbentuk pasangan kunci-nilai (seperti preferensi), SQLite untuk data terstruktur relasional, dan Hive untuk penyimpanan cepat berbasis key-value/objek.
Perbandingan Media Penyimpanan
SharedPreferences sederhana namun terbatas untuk data kompleks. SQLite cocok untuk data bertabel dengan kueri relasional. Hive memberikan kinerja tinggi tanpa kueri SQL karena menyimpan objek Dart langsung. Pemilihan bergantung pada jenis data dan kebutuhan akses.
Konsep Basis Data Relasional
SQLite menyimpan data dalam tabel. Tiap tabel memiliki kolom (atribut) dan baris (record). Primary key mengidentifikasi baris secara unik, sedangkan foreign key menghubungkan tabel satu dengan lainnya. Contoh skema tabel produksi/barang:
CREATE TABLE barang (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nama TEXT NOT NULL,
harga REAL,
stok INTEGER
);Kriteria Memilih
Sebagai panduan: gunakan SharedPreferences untuk pengaturan kecil, SQLite untuk transaksi dan laporan yang memerlukan kueri, dan Hive untuk cache serta data berbasis objek berkinerja tinggi. Peserta diajak memetakan kebutuhan aplikasinya ke media penyimpanan paling tepat.
Rancangan untuk Tugas
Pertemuan ini menjadi fondasi desain skema sebelum implementasi CRUD. Peserta merancang model data aplikasi toko/barang yang akan dibangun pada pertemuan berikutnya, termasuk kolom, tipe, dan relasi yang diperlukan.
Kebutuhan Persistensi Data
Data pada memori hilang begitu aplikasi ditutup. Persistensi memastikan data tersimpan di penyimpanan perangkat sehingga tetap ada pada sesi berikutnya. Pemahaman ini menjawab pertanyaan dasar mengapa aplikasi perlu menyimpan data meskipun hanya bekerja di satu perangkat.
Membedah Tipe Data dan Primary Key
Setiap kolom memiliki tipe: teks (TEXT), bilangan bulat (INTEGER), bilangan desimal (REAL), dan nilai kebenaran (INTEGER bernilai 0/1). Primary key memastikan tiap baris unik dan dipergunakan sebagai rujukan relasi. Pemilihan tipe yang tepat menjaga integritas data awal.
Normalisasi dan Menghindari Duplikasi
Penyimpanan yang baik menghindari data berulang dengan memisahkan entitas, misal tabel barang dan tabel kategori terpisah. Peserta diperkenalkan konsep dasar normalisasi tanpa mendalami matematika formal, cukup menyadari manfaat pemisahan data untuk konsistensi dan kemudahan laporan.
Rancangan Sebelum Implementasi
Merancang skema sebelum menulis kode mencegah perombakan saat aplikasi berkembang. Peserta menggambar tabel beserta kolom dan relasinya di atas kertas, lalu memvalidasi rancangan bersama guru sebelum mulai mengimplementasikan CRUD.
Catatan Materi
Tugas praktikum pada modul Penyimpanan Lokal mencantumkan latihan berbasis Firebase. Apabila aplikasi belum terintegrasi Firebase pada tahap ini, latihan dapat disesuaikan dengan mengarahkan peserta pada pengembangan Firebase yang akan dibahas pada modul integrase (pertemuan 25-28), sambil tetap menyelesaikan fondasi penyimpanan lokal SQLite/Hive.
Aktivitas Pembelajaran
- Menjelaskan pentingnya persistensi lokal.
- Membandingkan SharedPreferences, SQLite, dan Hive.
- Merancang skema tabel untuk data aplikasi.
- Menentukan media penyimpanan yang tepat untuk satu studi kasus.
Tugas dan Latihan
- Rancang skema tabel database untuk aplikasi toko (barang, kategori).
- Jelaskan kapan memakai SQLite dibanding SharedPreferences.
- Siapkan daftar data awal (seed) untuk pengujian CRUD.
Evaluasi
Evaluasi dilakukan melalui pengamatan hasil praktikum, kuis singkat di akhir pertemuan, dan pemantauan proyek. Peserta yang belum mencapai indikator tertentu diberikan remedial melalui bimbingan ulang dan latihan tambahan pada pertemuan berikutnya.
Panduan umum praktik, catatan belajar, dan refleksi tersedia di Panduan Belajar Kribbi Study.

