Belajar CRUD Database di Android Menggunakan Room Library : Membuat Fungsi Delete Data

Di series tentang tutorial melakukan CRUD database menggunakan Room library di Android ini, kita telah belajar tentang bagaimana cara Insert data, Read data dan Update data pada Room database library. Kali ini kita akan belajar tentang bagaimana cara melakukan operasi yang terakhir dalam CRUD, yaitu bagaimana cara kita melakukan Delete data, atau menghapus data yang ada di database.

Bagi yang belum tahu apa itu Room, Room adalah sebuah database library yang memudahkan kita dalam me-manage dan melakukan operasi-operasi CRUD, query dan sebagainya pada database SQLite di Android. Kalian bisa baca tutorial sebelumnya tentang cara meng-import Room database library ke dalam project aplikasi di Android Studio kalian.

Karena tutorial ini berhubungan erat dengan tutorial-tutorial tentang Room database sebelumnya, saya sangat sarankan kalian untuk membaca terlebih dahulu tutorial-tutorial berikut sebelum melanjutkan.

Pre-Requisites :

  1. Membuat Project Baru di Android Studio
  2. Mengimport Room Library di Android Studio
  3. Membuat Entity, DAO, Database menggunakan Room library
  4. Melakukan Create / Insert Data menggunakan Room database library
  5. Melakukan Read All Data Menggunakan Room Database Library
  6. Melakukan Update Data Menggunakan Room Database Library
  7. (Optional)Tutorial Lengkap SQLite

Membuat Fungsi Delete Data pada Room Database Library di Android

Menambahkan Fungsi Delete Data pada Data Access Object

Setelah kalian selesai membaca dan mempraktekkan tutorial-tutorial sebelumnya tentang Room database library ini. Buka project aplikasi inventaris sederhana kalian di Android Studio, dan pertama-tama, kita harus menambahkan method untuk delete data pada Data Access Object. Data Access Object (DAO) adalah sebuah class interface yang berisi method-method yang digunakan untuk mengakses database secara langsung. Buka interface BarangDAO.java dan copy pastekan kode di bawah ini :

package co.twoh.roomtutorial.data;

import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Delete;
import android.arch.persistence.room.Insert;
import android.arch.persistence.room.OnConflictStrategy;
import android.arch.persistence.room.Query;
import android.arch.persistence.room.Update;

import co.twoh.roomtutorial.model.Barang;

/**
 * Created by Herdi_WORK on 21.01.18.
 */

@Dao
public interface BarangDAO {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    long insertBarang(Barang barang);

    @Update
    int updateBarang(Barang barang);

    @Delete
    int deleteBarang(Barang barang);

    @Query("SELECT * FROM tbarang")
    Barang[] selectAllBarangs();

}

Bisa dilihat pada codingan di atas kita menambahkan method deleteBarang() pada DAO dan melemparkan object Barang berupa data Barang yang ingin kita hapus. Method delete barang menggunakan annotation @Delete yang berarti itu adalah method bawaan dari Room database library dan kita hanya perlu menggunakan annotation itu saja untuk membuat method delete data.

Membuat Delete Data Flow

Pada dasarnya flow untuk Delete data sama seperti flow untuk Update data. Yaitu pada aplikasi kita akan masuk ke halaman lihat semua data dan di situ kita akan melakukan Long Click pada item data yang ingin kita Delete. Setelah kita melakukan Long Click makan akan muncul dialog menu yang berisi opsi untuk “Edit data” dan “Delete data”. Kemudian kita pilih opsi “Delete data” untuk menghapus data yang kita inginkan.

Untuk source code yang diperlukan di flow ini, bisa dilihat di sini (AdapterBarangRecyclerView.java).

Source code XML layout dari dialog yang muncul ketika kita melakukan OnLongClick, bisa dilihat di sini.

Memanggil Fungsi Delete Data

Apabila langkah-langkah di atas sudah selesai dilakukan, maka next step nya adalah memanggil fungsi delete data pada DAO saat kita memilih opsi “Delete data” pada pop-up dialog. Dengan terlebih dahulu menginisialisasi class AppDatabase.java yang sebelumnya sudah kita buat.

Codingan utamanya adalah seperti di bawah, kita tambahkan pada class AdapterBarangRecyclerView.java :

Initiate AppDatabase :

private AppDatabase db;
 
db = Room.databaseBuilder(getApplicationContext(),
            AppDatabase.class, "barangdb").build();

Melakukan pemanggilan onDeleteBarang() dengan posisi barang sebagai parameter. Menggunakan parameter posisi itu kita akan mengambil data barang yang ingin dihapus :

private void onDeteleBarang(int position){
        db.barangDAO().deleteBarang(daftarBarang.get(position));
        daftarBarang.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeRemoved(position, daftarBarang.size());
    }

That’s all, itu saja yang perlu diubah. Sekarang mari kita demokan aplikasinya.

Demo

Delete Data Tutorial Room Android

Delete Data Tutorial Room Android

Pada gambar di atas bisa dilihat kita memilih data “mouse” untuk didelete, hasil dari delete ada di gambar kedua dimana di situ tidak ada lagi data “mouse”.

Thats all, kita sudah berhasil melakukan step keempat (Delete data) pada series tutorial CRUD menggunakan Room database library.

Untuk cara mendapatkan detail data yang sudah kita inputkan pada aplikasi menggunakan Room Database library ini akan saya bahas di tutorial selanjutnya.

Semoga berguna, untuk source code lengkap nya, kalian bisa download di GitHub saya. Jangan lupa untuk follow dan star juga ya. 😀

Jangan sungkan untuk bertanya apabila ada yang kurang mengerti, silahkan tulis lewat komentar di bawah. 😉





Download aplikasi kami di Google Play Store


Tutorial Menarik Lainnya :

Leave a Reply