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.

4 Komentar

  1. Another choice is to enroll in a debt management program, which will to} take over cost in your bank card money owed and allow you to lower rates of interest. You pay the debt management company once as} a month and they pay your collectors. Talk with a nonprofit credit score counselor to 온라인 카지노 see if this could be greatest option|the best choice|your only option}. The credit score counselors might help them get on a budget and help with issues like lowering rates of interest on bank cards. This is normally a protracted course of so family and associates of huge gamble|a chance} should be affected person while ready for a profitable end result. The average debt generated by a person addicted to playing is between $55,000 and $90,000.

    ReplyDelete
  2. As such, you must to} all the time search for a cellular pleasant gambling operator. Mobile pleasant signifies that it has a full range of slots and tables games available for all units. It additionally means you can use use|you must use} a cellular website or app to get bonuses, make secure payments, and contact with|and make contact with} 슬롯머신 the shopper help group.

    ReplyDelete
  3. Published by3DA Solutions, 3D ADEPT Mediais a Women’s Loafer Slippers commerce press thattracks and analyses the latest tendencies in the additive manufacturing industry. Additive manufacturing delivers real advantages to aviation because of|as a outcome of} it permits the production of components that were inconceivable to make with different strategies, typically combining a number of} features in a single piece. In addition, additive manufacturing reduces machining time, which boosts competitiveness.

    ReplyDelete
  4. The variety of cavities integrated into a mould directly correlate in moulding costs. Fewer cavities require far less tooling work, so limiting the variety of cavities lowers preliminary manufacturing costs to build an injection mould. Plastic gadgets such as toys, utensils, medical units, water bottles, food containers and other units have become indispensable in our day by day lives. Most other elements and merchandise utilized in numerous industrial, automotive Puffer Jacket and development sectors additionally contain many plastic parts.

    ReplyDelete
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