Mengambil data dari tabel database dalam Android Kotlin

 

Merubah file UserDao

Bukalah file UserDao.kt lalu masukan kode berikut ini:

@Query(“SELECT * FROM user”)
suspend fun ambilSemua():List<User>

Keterangan:

  • suspend digunakan agar fungsi ini dijalankan secara asynkronous dan tidak memblokir view
  • Fungsi suspend ini harus dipanggil dalam coroutin
  • List<User> digunakan karena query ini akan menghasilkan lebih dari satu baris (satu baris itu adalah satu objek User)

 

Membuat ViewModel

Buatlah folder viewmodel lalu buatlah file viewModelTampilData.kt lalu masukkan kode berikut ini:

class viewModelTampilData(application: Application): AndroidViewModel(application) {

val db = Room.databaseBuilder(application.applicationContext, AppDatabase::class.java, “db_coba”).build()
val userDao = db.userDao()

}

Keterangan:

  • View model digunakan sebagai tempat data bagi view
  • val db = Room.databaseBuilder(application.applicationContext, AppDatabase::class.java, “db_coba”).build(), kode ini digunakan untuk membuat objek db yang mempunyai akses ke database db_coba
  • db.userDao(), kode ini digunakan untuk memanggil metode userDao() milik objek db

 

Metode onViewCreated

Bukalah file SecondFragment.kt lalu buatlah metode onViewCreated lalu masukkan kode berikut ini:

val tekview:TextView = view.findViewById<TextView>(R.id.txtTampil);
lifecycleScope.launch {

var dataUser = vm.userDao.ambilSemua()
val teks = dataUser.joinToString(separator = “\n”) { user ->
“Nama : ${user.nama}, Hobi: ${user.hobi}”

}

tekview.setText(teks)

}

Keterangan:

  • Metode onViewCreated  digunakan jika kita ingin memberikan data ke view
  • lifecycleScope adalah sebuah coroutin yang digunakan saat activity atau fragment sedang aktif, digunakan karena saya akan menjalankan fungsi suspend didalamnya yaitu vm.userDao.ambilSemua(), coroutin ini juga untuk mencegah terjadinya blokir terhadap view
  •  dataUser.joinToString(separator = “\n”) , kode ini berarti saya menyatukan elemen dari objek dataUser menjadi sebuah string yang dipisahkan dengan garis baru

 

Jalankan Aplikasi

Pilih virtual devicemu lalu tekan tombol Play