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.