Penyimpanan data Shared Preferences, SQLite


Penyimpanan data merupakan aspek penting dalam pengembangan aplikasi Android. Di Kotlin, dua metode umum untuk menyimpan data adalah Shared Preferences dan SQLite. Dalam tutorial ini, kita akan membahas keduanya secara mendetail.

1. Shared Preferences

Shared Preferences digunakan untuk menyimpan data dalam format key-value. Ini sangat efektif untuk menyimpan data sederhana seperti pengaturan atau status pengguna.

1.1. Menyimpan Data

Untuk menyimpan data menggunakan Shared Preferences, kamu dapat mengikuti langkah-langkah berikut:

val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()

editor.putString("username", "user123")
editor.putInt("age", 25)
editor.apply() // menyimpan data secara asinkron

1.2. Mengambil Data

Mengambil data dari Shared Preferences dapat dilakukan dengan cara berikut:

val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val username = sharedPreferences.getString("username", "defaultUser")
val age = sharedPreferences.getInt("age", 0)

1.3. Menghapus Data

Untuk menghapus data, kamu bisa menggunakan kode berikut:

val editor = sharedPreferences.edit()
editor.remove("username") // menghapus data dengan key "username"
editor.apply()

1.4. Menghapus Semua Data

Jika ingin menghapus semua data yang tersimpan:

val editor = sharedPreferences.edit()
editor.clear() // menghapus semua data
editor.apply()

2. SQLite

SQLite adalah basis data relasional yang digunakan untuk menyimpan data yang lebih kompleks. Ini cocok untuk aplikasi yang membutuhkan penyimpanan data dalam jumlah besar atau data yang terstruktur.

2.1. Membuat Database

Untuk membuat database, kamu perlu membuat kelas yang mewarisi SQLiteOpenHelper:

class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, "MyDatabase", null, 1) {
    override fun onCreate(db: SQLiteDatabase) {
        val createTable = "CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, age INTEGER)"
        db.execSQL(createTable)
    }

    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
        db.execSQL("DROP TABLE IF EXISTS users")
        onCreate(db)
    }
}

2.2. Menyimpan Data

Untuk menyimpan data ke dalam tabel:

val dbHelper = DatabaseHelper(context)
val db = dbHelper.writableDatabase

val values = ContentValues().apply {
    put("username", "user123")
    put("age", 25)
}

val newRowId = db.insert("users", null, values)

2.3. Mengambil Data

Mengambil data dapat dilakukan dengan query berikut:

val dbHelper = DatabaseHelper(context)
val db = dbHelper.readableDatabase

val cursor: Cursor = db.query(
    "users",
    arrayOf("id", "username", "age"),
    null,
    null,
    null,
    null,
    null
)

with(cursor) {
    while (moveToNext()) {
        val userId = getInt(getColumnIndexOrThrow("id"))
        val username = getString(getColumnIndexOrThrow("username"))
        val age = getInt(getColumnIndexOrThrow("age"))
        // Lakukan sesuatu dengan data
    }
}
cursor.close()

2.4. Menghapus Data

Untuk menghapus data:

val dbHelper = DatabaseHelper(context)
val db = dbHelper.writableDatabase

val deletedRows = db.delete("users", "username = ?", arrayOf("user123"))

2.5. Mengupdate Data

Mengupdate data juga mudah dilakukan dengan menggunakan query:

val dbHelper = DatabaseHelper(context)
val db = dbHelper.writableDatabase

val values = ContentValues().apply {
    put("age", 30)
}

val updatedRows = db.update("users", values, "username = ?", arrayOf("user123"))

Kesimpulan

Dalam tutorial ini, kita telah membahas bagaimana menggunakan Shared Preferences dan SQLite untuk penyimpanan data dalam aplikasi Android menggunakan Kotlin. Pilih metode penyimpanan yang sesuai dengan kebutuhan aplikasi kamu. Jika data yang disimpan sederhana dan tidak terstruktur, gunakan Shared Preferences. Untuk data yang lebih kompleks, SQLite merupakan pilihan yang lebih baik.

Referensi