Cara Menampilkan Data dari Database Menggunakan Kotlin

Dalam pengembangan aplikasi Android, seringkali Anda perlu menampilkan data dari database ke dalam antarmuka pengguna. Salah satu cara untuk melakukannya adalah dengan menggunakan RecyclerView untuk menampilkan daftar data yang dinamis. Dalam artikel ini, kita akan melihat bagaimana cara menampilkan data dari database SQLite ke dalam RecyclerView dalam aplikasi Android menggunakan bahasa Kotlin.

1. Persiapan Database SQLite

Pertama, pastikan Anda telah membuat atau menyiapkan database SQLite di dalam aplikasi Android Anda. Anda dapat membuatnya menggunakan kelas SQLiteOpenHelper atau metode lainnya.

2. Definisikan Tampilan RecyclerView

Buatlah tata letak XML untuk tampilan RecyclerView Anda. Anda dapat menentukan tata letak ini di dalam file mahasiswa.xml atau sesuai kebutuhan aplikasi Anda.

<!-- mahasiswa.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".Mahasiswa"
    android:padding="10dp">
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv_mahasiswa"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:listitem="@layout/mahasiswa_item"></androidx.recyclerview.widget.RecyclerView>
</LinearLayout>

3. Buat Kelas Mahasiswa

Buat kelas Mahasiswa yang akan mengurus tampilan RecyclerView dan pengambilan data dari database.

// Mahasiswa.kt
class Mahasiswa : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.mahasiswa)
        val rv_mahasiswa:RecyclerView = findViewById(R.id.rv_mahasiswa)
        val nama:MutableList<String> = mutableListOf()
        val nim:MutableList<String> = mutableListOf()
        val foto:MutableList<Int> = mutableListOf()
        // Panggil database kampus
        val dbkampus:SQLiteDatabase = openOrCreateDatabase("kampus", MODE_PRIVATE, null)
        // Gali data mahasiswa
        val gali_mahasiswa = dbkampus.rawQuery("SELECT * FROM mahasiswa", null)
        while (gali_mahasiswa.moveToNext()) {
            nama.add(gali_mahasiswa.getString(0))
            nim.add(gali_mahasiswa.getString(1))
            foto.add(R.drawable.noimage)
        }
        val mi = Mahasiswa_Item(nama, nim, foto)
        rv_mahasiswa.adapter = mi
        rv_mahasiswa.layoutManager = GridLayoutManager(this, 2)
    }
}

4. Buat Kelas Adapter untuk RecyclerView

Buat kelas adapter Mahasiswa_Item yang menghubungkan data dengan tampilan item RecyclerView.

// Mahasiswa_item.kt
class Mahasiswa_Item (val nama:MutableList<String>, val nim:MutableList<String>, val foto:MutableList<Int>) : RecyclerView.Adapter<Mahasiswa_Item.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Mahasiswa_Item.ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.mahasiswa_item, parent, false)
        return ViewHolder(view)
    }
    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val txt_nama:TextView = itemView.findViewById(R.id.txt_nama)
        val txt_nim:TextView = itemView.findViewById(R.id.txt_nim)
        val iv_foto:ImageView = itemView.findViewById(R.id.iv_foto)
    }
    override fun getItemCount(): Int {
        return nama.size
    }
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.txt_nama.text = nama[position]
        holder.txt_nim.text = nim[position]
        holder.iv_foto.setImageResource(foto[position])
    }
}

Dalam langkah-langkah di atas, kami telah menyediakan kerangka dasar untuk menampilkan data dari database SQLite ke dalam RecyclerView dalam aplikasi Android menggunakan Kotlin. Namun, penting untuk dicatat bahwa Anda perlu menyesuaikan logika program tersebut dengan kebutuhan aplikasi Anda.

Pastikan untuk menangani pengecualian, menyediakan pengelolaan memori yang baik, dan mengikuti praktik pengkodean yang baik secara umum.

Selamat mencoba!