Skip to main content

10. Room.html

Room

  1. Room

Room adalah sebuah komponen dalam Android Jetpack yang menyediakan pemetaan object relasional (ORM) untuk memudahkan akses dan penggunaan database SQLite di aplikasi Android. Room memberikan lapisan abstraksi yang kuat diatas SQLite dan menyederhanakan proses pembuatan dan penggunaan database.

Pada dasarnya room terdiri dari tiga komponen utama, diantaranya:

1.    Entity

Entity adalah kelas yang mewakili tabel dalam database. Setiap entitas memiliki properti yang sesuai dengan kolom-kolom dalam tabel. Kalian dapat menggunakan anotasi seperti @Entity, @PrimaryKey, @ColumnInfo, dan lainnya untuk mendefinisikan entitas dengan atribut-atribut yang sesuai.

2.    DAO (Data Access Object)

DAO adalah antarmuka yang berisi metode-metode untuk mengakses data dalam database. Metode-metode tersebut dapat berupa operasi CRUD (Create, Read, Update, Delete) seperti insert, update, delete, dan query. kalian dapat menggunakan anotasi seperti @Insert, @Update, @Delete, @Query, dan lainnya untuk menghubungkan metode-metode DAO dengan operasi yang sesuai pada tabel-tabel dalam database.

1.    @insert

2.    @update

3.    @delete

4.    @query

3.    Database

Database adalah kelas yang merepresentasikan database SQLite. Database class di Room harus menjadi subclass dari RoomDatabase dan mendefinisikan daftar entitas yang terkait dengan database serta versi database. kalian juga dapat menentukan operasi migrasi jika skema database berubah di masa depan.

Keuntungan menggunakan Room dalam pengembangan aplikasi Android adalah sebagai berikut:

1.    Pemetaan Objek-Relasional yang Mudah

Room memungkinkan kalian untuk menggunakan objek-objek Java/Kotlin sebagai representasi data dalam aplikasi, dan Room akan secara otomatis melakukan pemetaan objek-relasional ke dalam tabel-tabel dalam database SQLite.

 

2.    Kompatibilitas dengan LiveData dan RxJava

Room mendukung integrasi dengan komponen-komponen lain dalam Android Jetpack seperti LiveData dan RxJava. Ini memungkinkan kalian untuk mengamati perubahan data secara real-time dan mengimplementasikan pemrograman reaktif dengan mudah.

3.    Validasi Data yang Mudah

kalian dapat menggunakan anotasi di Room untuk melakukan validasi data, seperti menentukan batasan nullability, panjang maksimum, atau aturan validasi khusus pada kolom-kolom dalam tabel.

4.    Kode yang Lebih Bersih dan Terstruktur

Dengan menggunakan Room, kalian dapat mengelola operasi database dengan lebih terstruktur dan terorganisir. Room secara otomatis melakukan banyak tugas yang berulang dan kompleks seperti pembuatan skema database, migrasi versi database, dan pengelolaan koneksi ke database.

5.    Performa yang Lebih Baik

Room dirancang untuk memberikan performa yang baik dengan menggunakan mekanisme seperti penggunaan statement pra-kompilasi, pemantauan perubahan data, dan caching yang efisien.

 

(Referensi: https://developer.android.com/codelabs/android-room-with-a-view-kotlin?hl=id#0)

Last modified: Thursday, 10 August 2023, 9:36 AM