Monday, January 4, 2021

Menggunakan SQLite di Android

Alhamdulillah.. awal tahun ini dimulai dengan posting artikel tentang SQLite di Android, semoga bermanfaat untuk rekan-rekan mahasiswa yang sebentar lagi akan menghadapi ujian akhir semester.

Android telah menyediakan salah satu mekanisme penyimpanan database terstruktur dan berelasi dengan menggunakan SQLite. SQLite merupakan database yang bersifat open source yang mendukung operasi relasi standar yang umum terdapat pada engine database seperti sintaks SQL dan operasi transaksi. Meskipun berjalan seperti database, pada umumnya sqlite berukuran kecil dan mampu berjalan pada peranti dengan memori terbatas seperti smartphone.

Pada artikel kali ini kita akan membuat aplikasi Android untuk melakukan CRUD pada tabel student di SQLite dimana terdapat 3 field yaitu, id, nim dan nama.


Kita bisa mulai dengan membuat project baru bernama MyStudents dengan tipe Empty Activity bernama MainActivity dan target minimum API Level bisa kita pilih 21.

Langkah pertama adalah buat package baru dengan nama model, kemudian buat class di Java dengan nama Students.java seperti code berikut:

Pada class Student diatas kita perlu implement ke Serializable supaya nantinya saat proses edit data, object student tersebut dapat dikirimkan melalui intent ke activity UpdateActivity

Selanjutnya buat package baru kembali dengan nama db dan buat class baru dengan nama DbHelper.java, berikut codenya:

Code diatas merupakan Class bantuan untuk pengolahan database DDL(Data Definition Language) dan DML(Data Manipulation Language), dimana untuk proses DDL terdapat pada method onCreate dan onUpgrade, sedangkan proses DML pada method lainnya.

Tahapan selanjutnya adalah kita akan buat proses insert data ke database, disini akan digunakan MainActivity untuk implementasinya. Pertama kita siapkan terlebih dahulu layout di activity_main.xml dengan code dibawah ini:

Kemudian pada MainActivity kita lengkapi code nya seperti dibawah:

Pada code diatas sebelum proses insert ke database kita lakukan terlebih dahulu validasi untuk pengisian EditText nim dan nama, dimana tidak boleh kosong. Selanjutnya, jika validasi terpenuhi maka proses insert akan dilakukan dengan menggunakan object dari class DBHelper pada method addUserDetail( ).

Jika AndroidStudio dan versi Java anda sudah mendukung lambda, maka seperti pada code diatas, penulisan onClickListerner bisa kita sederhanakan dengan lambda. Pada blok code yang berwarna grey/abu-abu bisa anda select kemudian tekan tombol Alt+Enter, maka akan muncul pilahan "Replace with lambda". Sampai proses ini kita sudah bisa melakukan proses input data ke database, silahkan bisa anda ujicoba run aplikasi tersebut

Proses insert data


Proses selanjutnya adalah menampilkan data menggunakan RecyclerView, disini kita perlu membuat class adapter dengan nama StudentAdapter yang bisa kita letakan di package adapter dan juga activity baru dengan nama ListStudentActivity. 

Untuk melengkapi adapter tersebut, kita buat terlebih dahulu layout untuk menampilkan data Student di file item_student.xml dan activity_list_student.xml dengan code berikut:

Berikutnya file StudentAdapter kita lengkapi seperti code dibawah ini:

Pada code diatas masih menampilkan notice error pada baris ke-36 dikarenakan kita belum membuat file UpdateActivity untuk proses edit data. Kita bisa comment terlebih dahulu baris ke-36, 37 dan 38 supaya tidak menyebabkan error, selanjutnya nanti bisa kita uncomment kembali untuk melanjutkan proses edit data.

Berikutnya pada file ListStudentActivity, kita tambahkan code dibawah ini untuk menampilkan data-data yang sudah ada di database ke dalam RecyclerView

Kita bisa melakukan ujicoba dengan menjalankan/run project tersebut, jika sesuai maka aplikasi tersebut akan menampilkan list data student dan bisa kita lakukan penghapusan dengan klik tombol delete pada list di masing-masing student. Sebelum data tersebut dihapus, aplikasi akan memunculkan alertDialog dimana untuk memastikan user benar-benar akan menghapus data tersebut. Proses ini dilakukan pada file AdapterStudent baris ke-41 sampai dengan baris ke-60.

Menampilkan data students


Sedangkan proses edit data belum bisa dilakukan, saat kita tekan tombol edit maka tidak akan terjadi action apapun. Untuk melengkai fitur edit, kita buat activity baru dengan  nama UpdateActivity. Berikut ini code untuk UpdateActivity dan layout nya yaitu activity_update.xml

Setelah code dari kedua file diatas lengkap, kita lakukan uncomment pada file StudentAdapter pada baris ke-36, 37 dan 38. Kemudian bisa kita jalankan aplikasi tersebut dan bisa kita ujicoba untuk melakukan edit pada data student.

Setelah proses edit berhasil maka akan ditampilkan list daftar student, supaya RecyclerView dapat update data terakhir maka perlu ditambahkan override method onResume di activity, seperti pada code di file ListStudentActivity pada baris ke-25 s/d baris ke-31

Silahkan anda coba untuk mempraktikan code diatas secara berurutan ya, dipahami masing-masing keterangan pada code tersebut. Jika ada pertanyaan lebih lanjut lagi bisa tulis di komentar, atau jika membutuhkan code lengkapnya bisa tulis di komentar juga alamat email anda, nanti saya kirim code project secara lengkap.

Video tutorial lengkap bisa disimak disini:



Referensi:

  1. Dicoding Acedemy - Belajar Fundamental Aplikasi Android, Codelab Aplikasi Catatan, https://www.dicoding.com/academies/14/tutorials/527
  2. Android SQLite Tutorial | CRUD Operation Example, https://demonuts.com/android-sqlite/#simple

13 comments:

  1. Halo kak, izin bertanya, Setelah add student kenapa gamuncul di list ya, itu kirakira kenapa? Termakasih

    ReplyDelete
    Replies
    1. Ada 2 kemungkinan: (1) Data gagal di insert ke SQLite, (2) Data sudah berhasil insert, tapi gagal saat menampilkan di list. Coba cek di File Explorer dari Android Studio dan buka file sqlite nya.

      Delete
    2. File explore itu dimananya kak?

      Delete
    3. Lalu di cek bagian apanya ya?

      Delete
    4. Coba baca ini dulu untuk memahami file explorer di device: https://developer.android.com/studio/debug/device-file-explorer. Kemudian untuk membaca databasenya bisa menggunakan: https://sqlitebrowser.org/

      Delete
    5. Saya masih belum tau letak salahnya dimana, boleh dibantu kah kak?

      Delete
    6. Kak, ternyata data nya tidak tersimpan setelah saya cek di sqlite nya, apa ada solusi?

      Delete
    7. Silahkan bisa cek di code lengkap berikut ini: https://github.com/ariflaksito/PAM15-SQLite

      Delete
    8. terimakasih banyak kak

      Delete
  2. AnonymousJune 24, 2023

    maaf mas mau nanya aplikasi sudah terpasang tapi pas pencet tombol daftar student aplikasinya keluar . kesalahanya dimana ya . mohon pencerahanya . terima kasih.

    ReplyDelete
    Replies
    1. Bisa cek kesalahannya di Log Android Studio nya ya

      Delete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Ngga ngerti, nambah 4 kolom baru pas di klik list students malah keluar sendiri, duh ribet banget, udah di cek log cat malah suruh cek getAllUsers, udah kebanyakan string, terus piye? pusing deh

    ReplyDelete