Database Inspector: apa itu, cara bekerja dengan SQLite dan debug Room

Penulis: IT Sectr Diterbitkan: 2026-05-07 Waktu membaca: 8 mnt

Database Inspector di Android Studio — adalah alat bawaan untuk melihat dan men-debug basis data SQLite aplikasi seluler secara real-time. Menurut dokumentasi resmi Android Developers (2025), alat ini memungkinkan menjalankan kueri SQL ke basis data aktif, melihat struktur tabel, dan mengedit catatan tanpa menghentikan aplikasi. Alat ini mendukung Room, SQLiteOpenHelper, dan basis data in-app lainnya, mendeteksinya secara otomatis saat memulai profiling.

Poin Utama

  • Database Inspector — adalah komponen Android Studio untuk melihat basis data SQLite aplikasi secara real-time dengan kemampuan menjalankan kueri
  • Dukungan Room — integrasi penuh dengan Room, termasuk melihat kueri DAO dan melacak perubahan di basis data
  • Pengeditan data — mengubah nilai sel tabel langsung dari antarmuka inspector dengan refleksi segera di aplikasi
  • Eksekusi SQL — kemampuan menulis dan menjalankan kueri SQL arbitrer, termasuk JOIN, GROUP BY, dan subkueri
  • Ekspor basis data — menyimpan dump basis data ke komputer untuk analisis atau dikirim ke rekan kerja

Apa itu Database Inspector?

Database Inspector — adalah alat Android Studio untuk inspeksi dan debug basis data lokal di aplikasi seluler. Alat ini memungkinkan melihat semua basis data SQLite yang dibuat oleh aplikasi, termasuk basis data Room, SQLiteOpenHelper, dan pustaka pihak ketiga. Alat ini tersedia mulai Android Studio 4.1 dan dijalankan melalui Android Profiler atau langsung dari menu View.

Tujuan dan kemampuan

Tugas utama Database Inspector adalah visualisasi data dalam proses pengembangan. Alih-alih mengeluarkan konten basis data ke log atau menulis layar terpisah untuk melihat data, pengembang dapat membuka Database Inspector dan langsung melihat semua tabel, skema, dan kontennya. Alat ini mendukung basis data relasional SQLite maupun Room dengan Auto-migrasi.

Kapan menggunakan Database Inspector

Alat ini sangat diperlukan dalam skenario ketika perlu memeriksa kebenaran penyimpanan data setelah melakukan operasi: registrasi pengguna, sinkronisasi dengan server, caching daftar. Alih-alih menulis UI pengujian, dump basis data dilihat melalui Database Inspector. Alat ini juga digunakan secara aktif untuk men-debug migrasi Room — skema tabel terkini dapat dilihat setelah setiap pembaruan skema.

Cara Kerja Database Inspector

Database Inspector terhubung ke proses aplikasi Android melalui Android Profiler Service. Alat ini mendeteksi semua koneksi SQLite yang terbuka di aplikasi dan menampilkannya di panel samping. Untuk bekerja, diperlukan build Debug aplikasi dengan API Level 26 (Android 8.0) dan lebih tinggi.

Arsitektur dan mekanisme kerja

Saat dijalankan, Database Inspector membuat tunnel ADB antara aplikasi di perangkat dan IDE di komputer. File WAL (Write-Ahead Logging) basis data SQLite dialirkan melalui tunnel ini untuk menampilkan konten. Perintah SQL dikirim langsung ke mesin SQLite aplikasi melalui dukungan Database Inspector di Room dan SQLiteDatabase. Alat secara otomatis mendeteksi saat aplikasi membuka basis data dan menambahkannya ke daftar yang diinspeksi.

Persyaratan lingkungan

Untuk pengoperasian Database Inspector yang benar diperlukan: Android Studio 4.1+, perangkat atau emulator dengan API Level 26+, build Debug aplikasi. Untuk Room, tambahan diperlukan pustaka room-runtime versi 2.2+. Jika basis data dibuat dalam mode WAL, yang merupakan standar untuk Room 2.2+, alat dapat membaca data tanpa memblokir aplikasi utama.

kotlin
// Contoh basis data Room yang didukung oleh Database Inspector
@Database(
    entities = [User::class, Order::class],
    version = 2,
    autoMigrations = [AutoMigration(from = 1, to = 2)]
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
    abstract fun orderDao(): OrderDao
}

Fitur Utama Database Inspector

Database Inspector menyediakan set lengkap fungsi untuk bekerja dengan data lokal: dari melihat skema tabel hingga menjalankan kueri SQL kompleks dan mengedit catatan.

Melihat tabel dan skema

Di panel kiri ditampilkan semua basis data dan tabel. Saat memilih tabel, kontennya terbuka dalam bentuk tabel dengan kolom: semua bidang catatan ditampilkan sebagai kolom, setiap baris adalah catatan terpisah. Skema tabel (nama, tipe, batasan) ditampilkan di atas. Untuk kunci asing, hubungan antar tabel ditunjukkan.

Tipe DataTipe SQLiteTipe RoomContoh
Bilangan bulatINTEGERInt, Long42
StringTEXTString“John”
Bilangan pecahanREALDouble, Float3.14
Data binerBLOBByteArray[0x00, 0x01]
Tanggal/waktuINTEGER (Unix epoch)Long, Date1720000000

Menjalankan kueri SQL

Tab Query memungkinkan menjalankan perintah SQL arbitrer langsung ke basis data yang dipilih. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN, dan operator SQLite lainnya didukung. Hasil ditampilkan dalam bentuk tabel di bawah editor kueri. Riwayat kueri disimpan selama sesi.

Mengedit catatan

Sel tabel dapat diedit langsung — cukup klik nilai dan masukkan yang baru. Perubahan diterapkan segera ke aplikasi yang sedang berjalan. Ini sangat berguna untuk menguji kasus batas: menetapkan null di bidang wajib, mengganti ID dengan yang tidak ada, memeriksa pemrosesan string panjang. Semua perubahan dicatat secara real-time.

Debug Room dengan Database Inspector

Database Inspector memiliki integrasi mendalam dengan Room, yang membuatnya sangat diperlukan saat mengembangkan aplikasi dengan pustaka ini. Selain fungsionalitas standar, inspector menyediakan kemampuan khusus untuk Room.

Melihat kueri DAO

Untuk basis data Room, Database Inspector menampilkan kueri SQL yang dihasilkan untuk setiap metode DAO. Ini memungkinkan memastikan bahwa Room menghasilkan SQL yang benar, terutama untuk kueri kompleks dengan JOIN, @Relation, dan @Transaction. Jika Room menjalankan kueri yang tidak efisien (misalnya, N+1 kueri alih-alih satu JOIN), ini langsung terlihat di log kueri Database Inspector.

Debug migrasi

Saat memperbarui skema Room dengan AutoMigration atau migrasi manual, Database Inspector menunjukkan struktur tabel terkini setelah migrasi. Cukup buka inspector setelah meluncurkan aplikasi dan periksa apakah semua kolom, indeks, dan kunci asing telah dibuat dengan benar. Jika migrasi gagal dengan kesalahan, basis data tidak akan terbuka — alat akan menampilkan versi terakhir yang tersedia.

Memeriksa Relations dan Embedded

Room memungkinkan menggabungkan data dari beberapa tabel melalui @Relation dan @Embedded. Database Inspector membantu memeriksa kebenaran hubungan secara visual dengan menampilkan data tabel terkait berdampingan. Untuk setiap kunci asing, dapat dinavigasi ke tabel terkait dengan satu klik.

kotlin
// Entity dengan Relation untuk diperiksa melalui Database Inspector
@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

data class UserWithOrders(
    @Embedded val user: User,
    @Relation(parentColumn = "id", entityColumn = "user_id")
    val orders: List<Order>
)

Skenario Praktis Penggunaan Database Inspector

Database Inspector memecahkan tugas pemrograman spesifik yang muncul saat bekerja dengan penyimpanan data lokal. Mari kita bahas skenario penggunaan alat yang paling umum dalam pekerjaan sehari-hari.

Memeriksa caching data

Seringkali aplikasi menyimpan cache respons API di basis data lokal. Database Inspector memungkinkan memastikan kebenaran caching: setelah melakukan sinkronisasi, catatan terkini dapat dilihat di tabel cache. Jika data tidak muncul — masalahnya ada di kode penyimpanan. Jika muncul duplikat — masalahnya ada di logika upsert.

Debug kesalahan penyisipan data

Ketika metode DAO tidak menyimpan data tetapi tidak melempar pengecualian, Database Inspector menunjukkan status terkini tabel. Penyebab umum: konflik Primary Key (pengaturan OnConflictStrategy), tipe data yang salah di kolom, pelanggaran batasan NOT NULL atau Foreign Key violation. Inspector memungkinkan melihat changeset basis data sebelum dan sesudah operasi. Membandingkan snapshot data sebelum dan sesudah pemanggilan DAO — salah satu cara paling efektif untuk men-debug kesalahan transaksi dan memeriksa kebenaran logika bisnis aplikasi pada operasi tulis yang kompleks.

Refaktor skema basis data

Saat mengubah skema tabel — menambah kolom, mengganti nama bidang, memisahkan tabel — Database Inspector membantu memeriksa hasil migrasi. Cukup jalankan aplikasi dengan versi basis data baru dan pastikan semua data telah dipindahkan dengan benar ke struktur baru. Jika data hilang setelah migrasi, data dapat dipulihkan dari dump yang disimpan sebelum refaktor. Skenario ini sangat relevan saat beralih dari SQLiteOpenHelper ke Room atau saat mengubah struktur tabel yang ada di versi baru aplikasi.

Memantau kinerja kueri

Database Inspector juga dapat digunakan untuk mengevaluasi kinerja kueri SQL. Dengan menjalankan SELECT melalui tab Query dan mengukur waktu respons, kueri yang kekurangan indeks dapat diidentifikasi. Room secara otomatis mencatat kueri lambat di Logcat dengan tanda SLOW SQL, dan Database Inspector memungkinkan langsung menjalankan EXPLAIN QUERY PLAN untuk menganalisis rencana eksekusi.

Pertanyaan yang Sering Diajukan

Mengapa Database Inspector tidak melihat basis data saya?

Pastikan aplikasi berjalan dalam mode Debug, dan API Level perangkat adalah 26 atau lebih tinggi. Jika basis data dibuat di proses terpisah atau menggunakan SQLCipher (enkripsi), Database Inspector mungkin tidak mendeteksinya. Untuk SQLCipher, gunakan basis data debug tambahan tanpa enkripsi.

Bisakah data diedit melalui Database Inspector?

Ya, pengeditan data dimungkinkan langsung di sel tabel. Klik dua kali pada nilai untuk mengubahnya. Perubahan segera diterapkan ke basis data aplikasi yang sedang berjalan. Untuk menambahkan catatan baru, gunakan kueri SQL INSERT melalui tab Query.

Apakah Database Inspector mendukung basis data Realm?

Tidak, Database Inspector tidak mendukung Realm, karena Realm tidak menggunakan SQLite. Untuk debug Realm, gunakan Realm Object Server, Realm Studio, atau pencatatan di aplikasi. Untuk MongoDB Realm SDK, tersedia alat Realm Studio sendiri untuk macOS, Windows, dan Linux.

Bagaimana cara mengekspor basis data dari Database Inspector?

Database Inspector memungkinkan mengekspor basis data secara lengkap. Klik kanan pada nama basis data di daftar dan pilih Export Database. File .db akan disimpan di komputer. Untuk melihatnya, gunakan browser SQLite apa pun, misalnya DB Browser for SQLite.

Apakah Database Inspector memengaruhi kinerja aplikasi?

Menurut Google, overheadnya minimal — Database Inspector membaca file WAL basis data tanpa memblokir penulisan. Eksekusi kueri SQL khusus dapat sementara membebani basis data, tetapi ini dikendalikan oleh pengembang. Untuk build produksi, alat secara otomatis dinonaktifkan.

Kesimpulan

  • Database Inspector — adalah alat bawaan di Android Studio untuk melihat dan mengedit basis data SQLite aplikasi secara real-time
  • Dukungan Room mencakup melihat kueri DAO, debug migrasi, dan memeriksa @Relation dan @Embedded
  • Eksekusi kueri SQL melalui tab Query dengan dukungan semua operator SQLite dan penyimpanan riwayat
  • Pengeditan real-time memungkinkan mengubah nilai sel dan langsung melihat hasilnya di aplikasi yang berjalan
  • Ekspor basis data ke file .db untuk analisis di alat eksternal atau dikirim ke rekan kerja
  • Untuk bekerja diperlukan Android Studio 4.1+, build Debug, dan API Level 26+ — periksa persyaratan ini jika alat tidak menampilkan basis data
  • Gunakan Database Inspector secara teratur saat mengembangkan fungsi terkait penyimpanan data lokal — ini mempercepat debug berkali-kali lipat

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga