0Pricing
Android Academy · Pelajaran

Entitas dan DAO

Definisikan tabel dan objek akses data.

Entitas dan DAO adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.

Apa Itu Room?

Room adalah pustaka penyimpanan yang menyediakan lapisan abstraksi di atas SQLite. Room memungkinkan Anda bekerja dengan baris basis data sebagai objek Kotlin, dengan kueri yang diperiksa saat kompilasi.

Tiga Komponen Penyusun Room

  • Entitas — sebuah tabel yang direpresentasikan sebagai kelas data.
  • DAO — Data Access Object, yang mendefinisikan kueri.
  • Database — menghubungkan entitas dan DAO (pelajaran berikutnya).

Mendefinisikan Entitas

Beri anotasi pada kelas data dengan @Entity. Setiap properti menjadi kolom.

import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val email: String
)

Kunci Utama

Setiap entitas memerlukan @PrimaryKey. Agar Room membuat ID secara otomatis, gunakan autoGenerate.

@Entity
data class Note(
    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,
    val text: String
)

Menyesuaikan Kolom

Gunakan @ColumnInfo untuk mengganti nama kolom atau menetapkan afinitas tipenya.

import androidx.room.ColumnInfo

@Entity
data class User(
    @PrimaryKey val id: Int,
    @ColumnInfo(name = "full_name")
    val name: String
)

Apa Itu DAO?

DAO adalah antarmuka yang diberi anotasi @Dao. DAO mendeklarasikan metode yang digunakan aplikasi Anda untuk membaca dan menulis data. Room membuat implementasinya untuk Anda.

Menyisipkan, Memperbarui, Menghapus

Room menyediakan anotasi praktis untuk operasi dasar.

@Dao
interface UserDao {
    @Insert
    suspend fun insert(user: User)

    @Update
    suspend fun update(user: User)

    @Delete
    suspend fun delete(user: User)
}

Strategi Konflik

Saat menyisipkan baris yang sudah ada, pilih strategi dengan onConflict.

@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(user: User)

Kueri Khusus dengan @Query

Anotasi @Query memungkinkan Anda menulis SQL. Room memeriksanya saat kompilasi berdasarkan skema Anda.

@Query("SELECT * FROM users WHERE id = :id")
suspend fun getById(id: Int): User?

Mengapa Fungsi suspend?

I/O basis data tidak boleh dijalankan di utas utama. Menandai metode DAO dengan suspend memungkinkan Room menjalankannya di luar utas utama saat dipanggil dari coroutine, sehingga mencegah UI tersendat.

Keamanan Saat Kompilasi

Salah satu manfaat utama Room: jika Anda salah mengetik nama kolom dalam @Query, build akan gagal. Anda menemukan kesalahan lebih awal, bukan saat runtime.

Pemeriksaan Singkat

Uji pemahaman Anda tentang entitas dan DAO.

Ringkasan

Anda telah mempelajari:

  • @Entity mendefinisikan tabel sebagai kelas data dengan @PrimaryKey.
  • @Dao mendeklarasikan metode kueri/penyisipan/pembaruan/penghapusan.
  • SQL dalam @Query diperiksa saat kompilasi.
  • Metode DAO sebaiknya berupa suspend untuk I/O di luar utas utama.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Entitas dan DAO” gratis?

Ya — teks lengkap “Entitas dan DAO” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Entitas dan DAO”?

Definisikan tabel dan objek akses data. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Android Academy?

Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Entitas dan DAO” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Entitas dan DAO
  2. Kelas Basis Data Room
  3. Kueri dan Relasi
  4. Mengamati Data dengan Flow
← Kembali ke Android Academy