Realm – An Alternative to SQLite | Goodpixelpro Tutorial

Goodpixelpro Tutorial –

Introduction:
Realm Mobile Database adalah sebuah open source mobile database yang dibuat sebagai alternatif SQLite dan Core Data. Realm lebih cepat dari SQLite dan ORM library lainnya. Realm lebih mudah digunakan, mempunyai API yang simple. Realm juga support untuk beberapa bahasa yaitu Java, Obj-C, Swift, React Native (JavaScript), dan Xamarin.
Keuntungan:

  • Fast!
  • Cross-Platform
  • Easy to use
  • Reduce dev time
  • Good documentation

Berikut adalah grafik perbandingan kecepatan dengan SQLite


Pada tulisan ini, saya hanya menunjukkan cara menggunakan Realm dalam Android saja.
Getting Started:

Pertama, pada project build.gradle dalam Android Studio tambahkan library berikut

Screen Shot 2017-06-15 at 23.17.05.png
Selanjutnya, pada app build.gradle dalam Android Studio tambahkan plugin berikut
Screen Shot 2017-06-15 at 23.17.14.png
Kemudian buat sebuah class dengan meng-extend aplication untuk membuat konfigurasi Realm yang nantinya ditambahkan kedalam file manifest project. Berikut contoh kofigurasi Realm
Screen Shot 2017-06-15 at 23.32.52.png

Selanjutnya konfigurasi tersebut bisa digunakan dimana saja.
Screen Shot 2017-06-16 at 00.01.52.png
SQLite vs Realm:
Misalnya kita ingin membuat sebuat tabel contact yang berisi kolom id, nama, dan nomor telepon. Dengan SQLite kita bisa membuat tabel seperti ini
Screen Shot 2017-06-15 at 14.43.22.png
Bayangkan jika kolom ada lebih dari 10 dst, pasti akan repot sekali ketik satu-satu. Dengan Realm kita tidak perlu repot-repot mengetik seperti SQLite. Kita hanya perlu membuat model class dengan meng-extend RealmObject dan generate getter-setter. Kekurangannya primary key ID pada Realm tidak tersedia auto-increment, sehingga kita harus membuat custom auto-increment atau menggunakan UUID pada java. Contoh model class Realm seperti ini
Screen Shot 2017-06-15 at 14.33.11.png

Selanjutnya untuk contoh method retrieve dalam SQLite seperti berikut
Screen Shot 2017-06-15 at 19.53.46.png

SQLite menggunakan cursor untuk mendapatkan hasil query, selanjutnya dikonversi kembali kedalam object java. Hal ini cukup merepotkan, ketika tabel mempunyai kolom yang banyak dan juga kita harus teliti dengan tipe variabel yang akan dikonversikan. Dengan Realm kita hanya perlu beberapa kode baris saja, contohnya seperti
Screen Shot 2017-06-15 at 19.55.32.png
Untuk method add, update, delete tidak jauh berbeda baik SQLite dan Realm.
More Features:
Fitur-fitur lain dalam Realm, sebagai berikut
1. Query Options

– Conditions:
between(), greaterThan(), lessThan(),
greaterThanOrEqualTo() & lessThanOrEqualTo()
equalTo() & notEqualTo()
contains(), beginsWith() & endsWith()
isNull() & isNotNull()
beginsWith() & endsWith() & contains()
– Conditions Grouping:
beginGroup() & endGroup() & not() & or()
– Sorting
RealmResults result = realm.where(User.class).findAll();
result.sort(“age”, RealmResults.SORT_ORDER_DESCENDING);
– Querying
findAll() & findFirst() & findAllSorted()
2. Annotations
@Required: Memberlakukan pemeriksaan untuk tidak membolehkan nilai null.
@Ignore: Kolom tidak harus disimpan.
@Index: Menambahkan index pencarian pada kolom.
@PrimaryKey: Identifikasi unik pada tiap database.
3. And Many More Features . . . .
Masih banyak lagi fitur-fitur yang disediakan oleh Realm, seperti enkripsi, schema, migrations, asynchronous transactions, dynamic realm, UI control, browser, dll.
Lebih lengkapnya silahkan buka docs realm :))
Terima kasih ?
Referensi:
Terimakasih telah berkunjung ke website Goodpixelpro. Semoga bermanfaat.!

There are no comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Start typing and press Enter to search

Shopping Cart