Membuat Aplikasi CRUD Sederhana Dengan Room Persistence Library



Jika teman - teman sebelumnya sudah pernah membuat aplikasi android yang memanfaatkan database lokal, pasti kalian udah ngga asing lagi dengan yang namanya SQLite. Lumayan ribet kan? kalian harus membuat kelas contract dan helper yang kodenya sendiri lumayan panjang dan sering bikin pusing.

Nah, kalian harus kenalan sama yang namanya Room Persistence Library.

Apa itu Room Persistence Library?


Room Persistence Library adalah sebuah libary yang termasuk dalam Andoid Jetpack, yang memberikan abstraction layer pada SQLite untuk memungkinkan akses database yang lebih stabil sambil memanfaatkan kemampuan penuh SQLite. Library ini membantu membuat cache data aplikasi pada perangkat yang menjalanakan aplikasi. Cache ini berfungsi sebagai satu satunya sumber ketepatan aplikasi, memungkinkan pengguna melihat salinan informasi yang konsisten pada aplikasi, terlepas apakah pengguna terhubung internet atau tidak.

Ada 3 komponen utama pada Room:
  1. Database Class, merupakan class yang merepresentasikan object database. Pada kelas ini lah di definisikan entity (tabel) yang akan dibuat dan juga versi dari database itu sendiri.
  2. Data entities, merupakan data class yang merepresentasikan tabel ke dalam database
  3. Data Access Objects (DAOs), merupakan interface class yang berisi kumpulan method untuk mengkases database.

Aplikasi menggunakan Room database untuk mendapatkan DAO yang terkait dengan database tersebut. Kemudian aplikasi menggunakan methode yang terdapat di dalam DAO untuk mendapatkan entity dari database dan menyimpan kembali perubahan yang dibuat pada entity tersebut ke database. Terakhir, aplikasi akan menggunakan entity tersebut untuk mendapatkan dan menetapkan nilai yang terkaih dengan kolom tabel dalam database.

Sebagai ilustrasi, ketiga hubungan komponen tersebut bisa dilihat pada gambar 1.

Diagram Arsitektur Room Database
Gambar 1. Diagram Arsitektur Room Database

Nah, Bagaimana cara menggunakan Room Database pada aplikasi android?
Untuk lebih memahami cara menggunakan Room Database, sebagai contoh kita akan membuat aplikasi Pencatat Utang, supaya kalian ngga lupa nagih ataupun bayar utang, gimana kalau kita namai aplikasinya TangUtang? Hahaha.

Penampakannnya akan seperti ini pada Gambar 2.
Gambar 2. Tampilan aplikasi

Let's Code!


Disini aku menggunakan Kotlin, libarry AndroidX, Android Studio versi 4.1.3

Pertama-tama, plugin kotlin-kapt, dan dependency yang dibutuhkan untuk menggunakan Room pada file build.gradle (module: app)

Selanjutnya buat class entitiy, berupa data class dengan nama Debt.

Beberapa annotation yang terdapat pada class entitiy, antara lain:
  • @Entity, yang menyatakan bahwa class tersebut merupakan sebuah entity, di dalamnya kita bisa memberikan nama tabel.
  • @PrimaryKey, yang menyatakan kolom tersebut merupakan primary key.
  • @ColumnInfo, yang menyatakan nama kolom dan tipe data kolom tersebut.
Selanjutnya buat class databasenya dengan nama DebtRoomDatabase.
antotation @Database yang menyatakan bahwa class tersebut merupakan class room database, di dalamnya kita bisa memberikan enitity apa saja yang terdapat pada database tersebut, versi datase dan export schema. Apabila exportSchema bernilai false, maka database tersbut tidak akan melakukan mekanisme export schema apabila ada pembaruan versi databse. Oleh karena itu, pada databaseBuilder, kita perlu menambahkan fallbackToDestructiveMigration yang berfungsi untuk memungkinkan Room membuat tabel baru jika migration dari schema database versi sebelumnya tidak ditemukan. Kemudian, allowMainThreadQueries memungkinkan proses dijalankan di main thread. Karena secara default, Room menjalankan proses di thread tersendiri agar tidak mengganggu main thread.

Selanjutnya buat class inteface Dao dengan nama DebtDao.

Annotation @Dao menyatakan bahwa class tersebut merupakan class Dao. Kemudian anotation @Insert, @Update, @Delete, menyatakan fungsi insert, update dan delete. Sedangkan untuk membaca data, bisa menggunakan annotation @Query dengan paramater berupa query SQLite-nya untuk mendapatkan data yang kita inginkan.

Nah, kita sudah punya 3 komponen utama yang butuhkan untuk menggunakan lokal database. Selanjutnya, kita implementasikan ke activity. Disini kita hanya akan membuat dua activity, yaitu MainActivity berisi list daftar utang-piutang, dan CreateUpdateActivity untuk membuat atau pun mengubah data utang-piutang tesebut.



Kita juga bisa melihat database yang telah kita buat menggunakan Database Inspector pad Android Studio, seperti terlihat pada Gambar 3.

Gambar 3. Database Inspector Android Studio

Untuk code lengkapnya, bisa liat di halaman githubku berikut.


Gitu aja tutorial singkat kali ini. Sekian terima kasih.

0 Komentar

Post a Comment

Don't be a Silent Reader!
Please leave your comments, critiques or suggestions.
Because your opinion means a lot for this blog :)

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel