Tujuan Pembelajaran
- Menginstal dan mengonfigurasi paket sqflite.
- Membuat dan membuka database lokal.
- Membuat tabel dan menjalankan perintah CREATE.
- Memasukkan data menggunakan INSERT dan menampilkannya.
Uraian Materi
sqflite adalah paket resmi untuk SQLite di Flutter. Pertama tambahkan pada pubspec.yaml:
dependencies:
sqflite: ^2.3.3
path: ^1.9.0Membuat dan Membuka Database
Database dibuka menggunakan helper sqflite. Versi database penting untuk migrasi skema di masa mendatang.
final db = await openDatabase(
path.join(await getDatabasesPath(), 'katalog.db'),
version: 1,
onCreate: (db, version) async {
await db.execute('''
CREATE TABLE barang (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nama TEXT NOT NULL,
harga REAL
)
''');
},
);Menampilkan Data dengan ListView
Data hasil query ditampilkan menggunakan FutureBuilder atau pola load-async yang disimpan ke state lalu dirender pada ListView. Ini eksplorasi awal sebelum dibungkus CRUD penuh.
final rows = await db.query('barang', orderBy: 'nama');
// setState(() => itemList = rows);Struktur Lapisan Data (Helper)
Lebih baik memisahkan fungsi database ke file db_helper.dart berisi class <DatabaseHelper> dengan method statis. Arsitektur ini membuat pemeliharaan kode lebih mudah. Peserta dibiasakan memisahkan lapisan data dari lapisan antarmuka.
Peran Versi Database
Parameter version pada openDatabase menentukan skema database. Ketika struktur tabel berubah di rilis mendatang, versi dinaikkan dan migrasi dijalankan di onUpgrade. Konsep ini penting agar update aplikasi tidak merusak data lama pengguna.
Memasukkan Data dengan Aman
Untuk mencegah kesalahan sintaks, parameter placeholder seperti tanda tanya (?) disisipkan pada perintah SQL dan nilainya diberikan lewat argumen tersendiri. Cara ini lebih aman dibanding langsung menyisipkan teks ke dalam string SQL, sekaligus menjaga data dari nilai yang tidak diinginkan.
Memetakan Baris Menjadi Objek
Hasil query berupa daftar Map. Mengubah setiap baris menjadi objek model menggunakan method fromMap memudahkan pengolahan pada antarmuka. Peserta menulis class model beserta fungsi konversi agar kode tetap bersih dan terbaca.
Menampilkan Data pada Antarmuka
Setelah data disimpan, antarmuka memuat dan menyajikannya. Untuk penyegaran otomatis, data dimuat ulang setiap kali halaman tampil atau setelah operasi selesai. Peserta menerapkan pola sederhana ini sebelum masuk ke pembaruan state lebih lanjut.
Aktivitas Pembelajaran
- Menambahkan sqflite dan path pada proyek.
- Membuat helper database beserta tabel barang.
- Menjalankan INSERT dan mengecek data tersimpan.
- Menampilkan hasil query pada ListView.
Tugas dan Latihan
- Buat class DatabaseHelper dengan method openDatabase dan table barang (id, nama, harga, stok).
- Tambah data awal dan tampilkan nilainya.
- Periksa database melalui extension VS Code atau alat sqlite.
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.

