CRUD Firebase Realtime Database (FINAL): Membuat Fungsi Delete Data


Assalamualaikum Warahmatullahi Wabawarakatuh.

Alhamdullilah, kita sudah melalui beberapa tahap pembuatan aplikasi CRUD dengan menggunakan Firebase Realtime Database, berikut ini merupakan materi terakhir dalam pembuatan aplikasi CRUD, disini kita akan membuat fungsi Delete untuk menghapus data Mahasiswa yang dipilih oleh user.

CRUD Firebase Realtime Database (FINAL): Membuat Fungsi Delete Data

Konsep pada fitur Delete hampir sama dengan fitur Update, yang telah kita bahas pada tutorial sebelumnya, yaitu dengan menggunakan fungsi longClick, untuk menampilkan menu delete pada item didalam list.

Cara kerja dari fitur delete tersebut,pertama kita membuat sebuah interface untuk menghubungkan adapter dengan class MyListData.java, karena pada adapter tersebut tidak mempunyai referensi database, jadi kita membuat sebuah interface untuk menghubungkannya.

CRUD Firebase Realtime Database (FINAL): Membuat Fungsi Delete Data

1) Pertama buka class RecyclerViewAdapter, pada class tersebut kita tambahkan interface, yang digunakan untuk menjembatani data yang akan dikirim dari Adapter pada class MyListData.

//Membuat Interfece public interface dataListener{ void onDeleteData(data_mahasiswa data, int position); } //Deklarasi objek dari Interfece dataListener listener; //Membuat Konstruktor, untuk menerima input dari Database public RecyclerViewAdapter(ArrayList listMahasiswa, Context context) { this.listMahasiswa = listMahasiswa; this.context = context; listener = (MyListData)context; } 

Pada class RecyclerViewAdaper, kita menambahkan interface dan menambahkan inisialisasi variablenya pada constructor, untuk mendapatkan context dari class MyListData.

2) Jika terjadi error, itu dikarenakan kita belum mengimplementasikan method onDeleteData() pada class MyListData, yang menjadi di contextnya, Solusinya, tekan (alt + enter) pada bagian yang error, lalu implementasikan method tersebut, seperti pada gambar berikut ini.

Mengimplementasikan method bawaan dari Interface

3) Setelah kalian selesai mengimplementasi metnod onDeleteData(), selanjutnya buka kembali class RecyclerViewAdapter, tambahkan baris kode berikut ini didalam onBindViewHolder(), pada method onLongClickListener(), seperti berikut ini.

holder.ListItem.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(final View view) { final String[] action = {"Update", "Delete"}; AlertDialog.Builder alert = new AlertDialog.Builder(view.getContext()); alert.setItems(action, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { switch (i){ case 0: /* Berpindah Activity pada halaman layout updateData dan mengambil data pada listMahasiswa, berdasarkan posisinya untuk dikirim pada activity selanjutnya */ Bundle bundle = new Bundle(); bundle.putString("dataNIM", listMahasiswa.get(position).getNim()); bundle.putString("dataNama", listMahasiswa.get(position).getNama()); bundle.putString("dataJurusan", listMahasiswa.get(position).getJurusan()); bundle.putString("getPrimaryKey", listMahasiswa.get(position).getKey()); Intent intent = new Intent(view.getContext(), updateData.class); intent.putExtras(bundle); context.startActivity(intent); break; case 1: //Menggunakan interface untuk mengirim data mahasiswa, yang akan dihapus listener.onDeleteData(listMahasiswa.get(position), position); break; } } }); alert.create(); alert.show(); return true; } }); 

4) Buka class MyListAdapter, didalam method onDeleteData() yang sudah kalian implementasi tadi, tambahkan baris kode berikut ini.

@Override public void onDeleteData(data_mahasiswa data, int position) { /* * Kode ini akan dipanggil ketika method onDeleteData * dipanggil dari adapter pada RecyclerView melalui interface. * kemudian akan menghapus data berdasarkan primary key dari data tersebut * Jika berhasil, maka akan memunculkan Toast */ String userID = auth.getUid(); if(reference != null){ reference.child("Admin") .child(userID) .child("Mahasiswa") .child(data.getKey()) .removeValue() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(Void aVoid) { Toast.makeText(MyListData.this, "Data Berhasil Dihapus", Toast.LENGTH_SHORT).show(); } }); } } 

Aplikasi akan menggunakan keym untuk penanda, data mana yang akan dihapus. Jika ada data dengan key yang sama, maka aplikasi akan memanggil fungsi removeValue() untuk menghapus data dari Database.

Demo:

Screenshot_Menampilkan Menu Update dan Delete Screenshot_Delete data Mahasiswa 

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat. Jika ada yang ingin kalian tanyakan, silakan isi kolom komentar dibawah. Project tersebut bisa kalian download di akun Github saya, Klik Disini.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Berlangganan update artikel terbaru via email:

0 Response to "CRUD Firebase Realtime Database (FINAL): Membuat Fungsi Delete Data"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel