CRUD Firebase Realtime Database (3): Membuat Fungsi Create


Assalamualaikum Warahmatullahi Wabawarakatuh.

Selamat berjumpa kembali dengan saya, setelah kita Membuat Fungsi Autentikasi untuk metode masuk user kedalam aplikasi, dengan menggunakan Akun Google, selanjutnya kita akan membuat fungsi Create untuk meyimpan data kedalam Database, data tersebut dapat berupa String, Integer, Boolean, dll.

Firebase Realtime Database adalah database NonSQL, yang menggunakan format data JSON, berupa key-value. Dengan menggunakan Firebase, walaupun klien tidak terkoneksi internet, klien dapat menerima setiap perubahan data yang ada, saat klien terkoneksi kembali dengan Internet, peristiwa realtime akan terus berlangsung.


Aplikasi yang akan kita buat yaitu, aplikasi Data Mahasiswa, jadi didalam aplikasi tersebut kita berperan sebagai Admin yang mengelola pendataan Mahasiswa, fungsi pertama yang akan kita buat yaitu fungsi Create, yang memungkinkan Admin/User dapat meyimpan inputannya pada Database. Data yang akan kita Inputkan berupa NIM, Nama dan Jurusan.

CRUD Firebase Realtime Database (3): Membuat Fungsi Create

1) Pertama tambahkan library berikut ini kedalam dependencies kalian.
implementation 'com.google.firebase:firebase-database:11.8.0'
2) Selanjutnya kita akan membuat class model, bernama data_mahasiswa, class ini digunakan untuk menentukan atribut (seperti NIM, Nama, Jurusan) untuk  masing-masing data mahasiswa yang akan disimpan.

Masing-masing atribut menggunakan method Getter dan Setter, yang nantinya digunakan untuk mengambil dan meyimpan data dari Database. Dan juga terdapat variable key, yang nantinya digunakan untuk proses Edit/Update dan Delete
package com.wildan.firebasecrud.models;

public class data_mahasiswa {

    //Deklarasi Variable
    private String nim;
    private String nama;
    private String jurusan;
    private String key;

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getJurusan() {
        return jurusan;
    }

    public void setJurusan(String jurusan) {
        this.jurusan = jurusan;
    }

    //Membuat Konstuktor kosong untuk membaca data snapshot
    public data_mahasiswa(){
    }

    //Konstruktor dengan beberapa parameter, untuk mendapatkan Input Data dari User
    public data_mahasiswa(String nim, String nama, String jurusan) {
        this.nim = nim;
        this.nama = nama;
        this.jurusan = jurusan;
    }
}
3) Buka kembali class MainActvity.java kalian, pada method onClick(), ubah dan tambahkan baris kode berikut ini dialam case R.id. save, yang digunakan untuk meyimpan data pada Database. dan jangan lupa untuk mengimport package-packagenya.
case R.id.save:
    //Mendapatkan UserID dari pengguna yang Terautentikasi
    String getUserID = auth.getCurrentUser().getUid();

    //Mendapatkan Instance dari Database
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference getReference;

    //Menyimpan Data yang diinputkan User kedalam Variable
    String getNIM = NIM.getText().toString();
    String getNama = Nama.getText().toString();
    String getJurusan = Jurusan.getText().toString();

    getReference = database.getReference(); // Mendapatkan Referensi dari Database

    // Mengecek apakah ada data yang kosong
    if(isEmpty(getNIM) && isEmpty(getNama) && isEmpty(getJurusan)){
        //Jika Ada, maka akan menampilkan pesan singkan seperti berikut ini.
        Toast.makeText(MainActivity.this, "Data tidak boleh ada yang kosong", Toast.LENGTH_SHORT).show();
    }else {
        /*
        Jika Tidak, maka data dapat diproses dan meyimpannya pada Database
        Menyimpan data referensi pada Database berdasarkan User ID dari masing-masing Akun
        */
        getReference.child("Admin").child(getUserID).child("Mahasiswa").push()
                .setValue(new data_mahasiswa(getNIM, getNama, getJurusan))
                .addOnSuccessListener(this, new OnSuccessListener() {
                    @Override
                    public void onSuccess(Object o) {
                        //Peristiwa ini terjadi saat user berhasil menyimpan datanya kedalam Database
                        NIM.setText("");
                        Nama.setText("");
                        Jurusan.setText("");
                        Toast.makeText(MainActivity.this, "Data Tersimpan", Toast.LENGTH_SHORT).show();
                    }
                });
    }
    break;
Pada source code tersebut, kita membuat referensi database dengan 3 buah Child, yang pertama yaitu child("Admin"), child(getUserID) digunakan untuk membuat penyimpanan baru berdasarkan ID dari pengguna yang masuk, agar setiap akun yang terautentikasi mempunyai datanya masing-masing dan yang terakhir yaitu child("Mahasiswa") sebagai lokasi data-data mahasiswa yang tersimpan, fungsi push() digunakan untuk membuat kode unik, dari setiap data yang masuk.

Demo:


Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua. Setelah kita membuat fungsi Create untuk menyimpan data, selanjutnya kita akan membuat fungsi Read untuk membaca dan mengambil data.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Wildan M Athoillah
Wildan M Athoillah Blogger dan spesialis pembuat aplikasi android.