Cara Hapus Data dari Database SQLite dengan Kotlin

Dalam pengembangan aplikasi Android, menghapus data dari database SQLite adalah salah satu tugas yang umum dilakukan. Ini memungkinkan pengguna untuk mengelola informasi dengan lebih efisien dan memastikan kebersihan data dalam aplikasi. Pada artikel ini, kita akan mempelajari langkah-langkah untuk menghapus data dari database SQLite dalam konteks pengembangan aplikasi Android.

Langkah 1: Identifikasi Data yang Akan Dihapus

Langkah pertama adalah mengidentifikasi data yang akan dihapus. Dalam contoh ini, kita akan menghapus entri mahasiswa berdasarkan ID mahasiswa yang dipilih oleh pengguna.

Langkah 2: Membuat Activity untuk Menghapus Data

Pertama, kita perlu membuat activity khusus yang akan bertanggung jawab untuk menghapus data dari database SQLite.

Mahasiswa_Hapus.kt

package com.android.kampus

import android.content.Intent
import android.database.sqlite.SQLiteDatabase
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class Mahasiswa_Hapus : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.mahasiswa_hapus)

        //tangkap dulu id_mahasiswa_terpilih, karena dia yang mau kita hapus
        val id_mahasiswa_terpilih:String = intent.getStringExtra("id_mahasiswa_terpilih").toString()

        //connect ke db
        val dbkampus: SQLiteDatabase = openOrCreateDatabase("kampus", MODE_PRIVATE, null)

        //query hapus data
        val query = dbkampus.rawQuery("DELETE  FROM mahasiswa WHERE id_mahasiswa='$id_mahasiswa_terpilih'", null)
        query.moveToNext()

        //pindah ke halaman utama
        val pindah:Intent = Intent(this, Mahasiswa::class.java)
        startActivity(pindah)
    }
}

Langkah 3: Menambahkan Tombol Hapus pada Antarmuka Pengguna

Di antarmuka pengguna, kita perlu menyediakan tombol atau aksi yang memicu proses penghapusan data. Misalnya, dalam contoh ini, tombol hapus dapat ditempatkan di sebelah setiap entri mahasiswa di dalam daftar.

mahasiswa_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_margin="5dp">

    <ImageView
        android:id="@+id/iv_foto"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/noimage"
        android:scaleType="centerCrop"></ImageView>

    <TextView
        android:id="@+id/txt_nim"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="NIM Mahasiswa"
        android:textSize="18sp"
        android:textColor="#333333"
        android:layout_marginBottom="5dp"></TextView>

    <TextView
        android:id="@+id/txt_nama"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nama Mahasiswa"
        android:textSize="16sp"
        android:textColor="#333333"
        android:layout_marginBottom="5dp"></TextView>

    <Button
        android:id="@+id/btn_hapus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hapus"></Button>
</LinearLayout>

Langkah 4: Implementasi Fungsi Hapus pada Activity Utama

Tambahkan fungsi hapusMahasiswa() ke dalam activity utama atau fragment yang relevan.

Mahasiswa_Item.kt

package com.android.kampus

import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import java.time.temporal.ValueRange

class Mahasiswa_Item (val ini:Context, val id_mahasiswa:MutableList<String>, val nama:MutableList<String>, val nim:MutableList<String>, val foto:MutableList<Int>) : RecyclerView.Adapter<Mahasiswa_Item.ViewHolder>(){
    //dapatkan dulu layoutnya mahasiswa_item
    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)
        val btn_hapus:Button = ItemView.findViewById(R.id.btn_hapus)
    }
    override fun getItemCount(): Int {
        return nama.size
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.txt_nama.text = nama.get(position)
        holder.txt_nim.text = nim.get(position)
        holder.iv_foto.setImageResource(foto.get(position))

        //btn_hapus ditekan
        holder.btn_hapus.setOnClickListener {
            //dapatkan id_mahasiswa sesuai urutan tombol yang ditekan
            val id_mahasiswa_terpilih:String = id_mahasiswa.get(position)

            //larikan ke activity mahasiswa_hapus
            val pindah:Intent = Intent(ini, Mahasiswa_Hapus::class.java)
            pindah.putExtra("id_mahasiswa_terpilih", id_mahasiswa_terpilih)
            ini.startActivity(pindah)
        }
    }
}

Dengan langkah-langkah di atas, kita telah berhasil menghapus data dari database SQLite dalam aplikasi Android. Pastikan untuk menguji aplikasi Anda secara menyeluruh untuk memastikan bahwa proses penghapusan data berjalan dengan lancar dan sesuai dengan harapan pengguna.

Dengan demikian, pengguna dapat dengan mudah mengelola data dalam aplikasi Anda dengan menghapus entri yang tidak diperlukan lagi dari database.