Hive: Penyimpanan Lokal Berbasis Objek dan NoSQL

Dua ponsel dengan antarmuka aplikasi

Tujuan Pembelajaran

  • Menginstal dan menginisialisasi Hive.
  • Menyimpan dan membaca data sederhana dengan Hive.
  • Menggunakan box dan TypeAdapter untuk objek.
  • Membandingkan pendekatan Hive versus SQLite.

Uraian Materi

Hive adalah database lokal berperforma tinggi, murni Dart, tanpa mesin eksternal atau kueri SQL. Data disimpan dalam struktur biner pada perangkat. Keunggulan utamanya kecepatan dan kemudahan menyimpan objek Dart secara langsung.

Tambah dependensi lalu inisialisasi sebelum runApp:

YAML
dependencies:
  hive: ^2.2.3
  hive_flutter: ^1.1.0

void main() async {
  await Hive.initFlutter();
  Hive.registerAdapter(BarangAdapter());
  await Hive.openBox('katalog');
  runApp(const MyApp());
}

Menyimpan dan Membaca Data

Box ibarat container data. Operasi dasar melibatkan menulis dengan add/put dan membaca lewat nilai indeks atau key.

Text
final box = Hive.box('katalog');
box.add(Barang(nama: 'Laptop', harga: 8000000));

final semua = box.values.toList();
final count = box.length;

Tipe Data Kustom dan Adapter

Untuk menyimpan objek, perlu TypeAdapter yang mengubah objek menjadi biner dan sebaliknya. Adapter dihasilkan otomatis dengan hive_generator build_runner atau ditulis manual. Konsep ini menjadi contoh bagaimana Hive melayani skema bebas tanpa SQL.

Hive untuk Larik dan Maps

Selain objek, Hive menyimpan tipe dasar seperti List dan Map, sehingga mudah menyimpan hasil kueri atau cache dari serangan API server – berguna pada aplikasi yang sedikit offline.

Menutup Modul Penyimpanan Lokal

Dengan berhasilnya CRUD SQLite dan penyimpanan Hive, peserta menyelesaikan modul penyimpanan lokal. Aplikasi kini sanggup menyimpan data permanen di perangkat, menjadi dasar pengembangan menuju integrasi server.

Kapan Memilih Hive

Hive cocok untuk data berbasis objek yang diakses sering dan bersifat lokal, seperti cache, catatan sederhana, atau pengaturan kompleks. Dibanding SQLite, Hive lebih sederhana tanpa perlu menulis kueri SQL, namun kurang cocok untuk kueri relasional yang kompleks.

Memahami Box dan Key

Box adalah wadah penyimpanan data pada Hive. Setiap data dapat diberikan key, atau memakai key otomatis ketika menggunakan add. Konsep ini mirip map berindeks cepat dan cukup berperan untuk memahami operasi baca-tulis Hive.

Peran TypeAdapter untuk Objek Kustom

Agar objek Dart yang kompleks dapat disimpan, Hive membutuhkan TypeAdapter yang mengubah objek menjadi representasi biner. Adapter menuliskan cara membaca dan menulis setiap field. Peserta melihat bagaimana Hive mendukung skema fleksibel tanpa struktur tabel kaku.

Perbandingan Akhir Modul Penyimpanan

Dengan penguasaan SQLite dan Hive, peserta dapat membandingkan kekuatan masing-masing: SQLite unggul pada kueri relasional dan laporan, Hive unggul pada kecepatan objek sederhana. Kemampuan memilih media yang tepat merupakan kompetensi inti yang dibawa ke proyek akhir.

Catatan Materi

Pada pertemuan ini dilaksanakan Kuis 1 (sesuai jadwal). Perhatikan bahwa slide Kuis 1 pada modul memakai label ‘Tugas 2’; samakan penamaan tersebut dengan modul agar tidak menimbulkan kebingungan saat pelaksanaan penilaian.

Aktivitas Pembelajaran

  • Menginstal paket Hive dan menginisialisasi.
  • Membuat box dan menyimpan data sederhana.
  • Menulis TypeAdapter untuk objek Barang.
  • Membandingkan hasil CRUD Hive dengan SQLite.

Tugas dan Latihan

  • Simpan data barang ke Hive dan tampilkan dalam ListView.
  • Registered TypeAdapter untuk objek kompleks pengguna.
  • Evaluasi kapan memilih Hive dibanding SQLite untuk satu kasus.

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.

No Comment! Be the first one.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *