Beranda / Android / Aplikasi CRUD dengan Realm Database Tutorial pada Android

Aplikasi CRUD dengan Realm Database Tutorial pada Android

Jadi Realm adalah mobile database yang dapat menggantikan SQLite karena SQLite bisa dibilang lebih susah dan lambat dalam hal CRUD maupun Query, Realm adalah mobile database yang memiliki keunggulan sebagai berikut :

  • Dibuat dengan C++
  • Orientasi kolom
  • Cross Platform
  • Read dan Write lebih cepat daripada SQLite
  • Ukuran lebih kecil

Sebelum membuat project baru pastikan requirements untuk menggunakan realm sebagai berikut :

  • Android Studio >= 1.5.1
  • Android SDK Terbaru
  • JDK version >=7.
  • Android versions dari API Level 9 (Android 2.3 Gingerbread ke atas).

Kita akan membuat aplikasi demo sederhana yang akan berfungsi untuk operasi CRUD yaitu create, read, update, dan delete menggunakan Realm Database. Saya juga menggunakan RecyclerView sebagai adapeter untuk menampilkan list data dan CardView untuk menampilkan item/detil data di dalam RecyclerView tersebut. Nantinya bentuk aplikasi yang sudah jadi akan seperti berikut.

Step 1) Update build.gradle

Tambahkan dependencies pada build.gradle dibawah ini.

Step 2) Membuat BaseApp.java

Kita harus membuat konfigurasi default Realm ke dalam class yang meng-extends Application. Berikut contoh kode lengkapnya.

Step 3) Membuat Class Article.java

Selanjutnya kita membuat class Article sebagai Realm data models dengan cara mengextends pada RealmObject. Field id akan kita gunakan sebagai Primary Key. Tujuan Class ini akan kita gunakan untuk memanajemen data yang kita buat seperti menambah dan menghapus data dengan memanfaatkan getter dan setter. Ada cara cepat untuk membuat getter dan setter, yaitu dengan klik kanan dalam editor kemudian pilih Generate -> Getter and Setter, sebelum melakukannya tulislah dulu variable dalam kelas tersebut yang nantinya akan di generate getter dan setter nya. Berikut kode lengkap-nya

Step 4) Membuat Class ArticleModel.java

Buatlah class ArticleModel.java seperti kode dibawah yang akan digunakan sebagai penampun object sementara yang akan ditampung sebagai ArrayList yang nantinya akan membantu dalam operasi CRUD.

Step 5) Membuat Class Helper.java

Kelas ini merupakan class helper yang berisi method-method yang akan digunakan untuk CRUD terhadap Realm yang kita buat pada saat kita membuat BaseApp. Berikut kode lengkapnya dengan comment penjelasan.

Yang paling penting dalam pembuatan class helper ini adalah membuat method dalam class helper ini kita harus selalu memperhatikan method realm.beginTransaction(); karena dalam mengakses database realm kita perlu membukanya kemudian melakukan CRUD atau lainnya setelah itu kita harus menutup kembali dengan method realm.commitTransaction();. Berikut penjelasan dalam kode.

Step 6) Membuat Layout

Sebelum kita membuat Class activity kita akan membuat 3 layout yaitu untuk daftar list/data, tambah data, dan edit data namun  saya akan membuat 4 layout dimana satu layout merupakan child dari layout daftar list. Layout tambah dan edit saya jadikan satu sedangkan satu lagi adalah layout item_article yang akan kita jadikan inflate untuk menampilkan data dalam list. Berikut ini kode-kode nya

activity_main.xml

activity_tambah.xml

content_home.xml (child activity_main.xml)

item_article.xml

 

Step 7) Membuat Class Adapter dan Activity

Kita akan membuat class yang akan digunakan sebagai class adapter dan activity. Untuk kelas activity kita akan membuat 3 class yaitu MainActivity.java, AddActivity.java, dan EditActivity.java , dalam kode sudah saya tambahkan komentar untuk penjelasan atas kode-kode yang ada. Berikut ketiga class tersebut.

MainActivity.java

AddActivity.java

EditActivity.java

Kemudian kita akan membuat class adapter yang akan digunakan untuk menampilkan data yang berasal dari realm database dalam bentuk ArrayList pada sebuah RecyclerView dengan meng-inflate item_article.xml sehingga berbentuk custom listview. Di dalam item_article.xml kita menggunakan CardView agar tampilan lebih menarik. Berikut kode class adapter.

Step 7) Update AndroidManifest.xml

Tambahkan kode berikut pada dalam AndroidManifest.xml.

Step 8) Pastikan style.xml

Pastikan style.xml dalam folder values seperti dibawah ini.

Jika sudah selesai cobalah run maka temen-temen dapat mentest nya. Jika dalam penjelesan di atas masih ada yang kurang silahkan download file project nya ataupun fork atau liat code saya di github.com dengan mengklik tombol di bawah ini.

View Github Download

Terima kasih. Selamat Coding.

Tentang gookkis

Cuma tukang ketik di Gookkis.com, semoga tulisan jelek ini bermanfaat.

Baca Juga

Android Programing – Migrasi ke Kotlin

Kotlin akhir — akhir ini sangat banyak di bicarakan oleh developer android, banyak yang bilang juga kotlin …

Android Studio – Gak lagi make “findViewById”

Halo salam pokoknya ngoding,,,, Eh lama Gookkis Studi lama ga update nih yah, maklum lagi …

13 komentar

  1. Muhammad Ramadan

    kalau saya ingin menambah object (tabel) baru gimana ya?

    • Create Class baru yang extends ke RealmObject mas….
      Ex.
      // Define you model class by extending the RealmObject
      public class Dog extends RealmObject {
      @Required // Name cannot be null
      private String name;
      private int age;

      // … Generated getters and setters …
      }

      selengkapnya https://realm.io/docs/java/latest/

  2. thanks banget gan tutorialnya, sangat bermanfaat, tetap lanjutin tulisan jeleknya gan, luar biasa

  3. Mas kalo mau ganti id primary key berdasarkan inputan user, editnya dibagian mananya ya ?

  4. Gan, apa bedanya class Article dengan ArticleModel ?
    apakah tidak bisa dijadikan satu aja menjadi class Article saja.

  5. Luar Biasa Cepatnya ini Realm…mantap

  6. yang pakai class baseapp itu siapa ya mas?

    tx
    nubie
    salam

  7. kalo untuk buatnya di fragment gimana ? soalnya nyoba gak bisa terus

  8. mas sya mau nanya dong klo data binding di terapin di edittext bisa gk soalnya kan datanya berubah2 tergantung inputan user

  9. Mas maaf mau nanya fungsi class helper itu sendiri buat apa ya ? soalnya setiap orang yg mau buat database sqlite juga buat class helper. udah searching gk ada yg ngejelasin fungsi dari class helper -_-

Leave a Reply

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