Aplikasi Android dengan Pre-built Database

Pembahasan database pada aplikasi Android selama ini mengasumsikan database SQLite belum terbentuk atau tidak disertakan di dalam program sehingga database akan dibuat pada saat aplikasi pertama kali dijalankan. Pada kondisi tersebut database dalam keadaan kosong (tidak mengandung data apapun), kecuali hanya terdiri dari sebuah atau beberapa table yang dibuat bersamaan dengan database tersebut menggunakan perintah CREATE. Bagaimana seandainya programmer hendak mendistribusikan sebuah aplikasi Android yang mengandung database dengan data yang telah dipersiapkan? Mungkinkah sebuah aplikasi Android menyertakan pre-built database di dalam paket instalasinya? Dengan semakin berkembangnya penggunaan perangkat Android dalam aplikasi bisnis maka ada banyak sekali kebutuhan dari hal ini, misalnya untuk memuat daftar produk dan harga pada aplikasi penjualan, daftar rekanan bengkel dan alamat pada aplikasi klaim asuransi, simulasi kredit pada aplikasi pembiayaan, daftar produk dan premi asuransi pada aplikasi ilustrasi dan penerapan-penerapan lainnya – yang semuanya itu membutuhkan database berisi data yang sudah disiapkan sebelumnya.

Artikel ini akan menjelaskan konsep dan teknik dasar pembuatan pre-built database, mengemasnya di dalam aplikasi serta penggunaannya saat aplikasi dijalankan. Semoga uraian ini menjadi topik yang menarik bagi Anda.

Langkah pertama tentunya mempersiapkan pre-built database itu sendiri, yang umumnya menggunakan sebuah database management tool yang akan membantu programmer dalam mempersiapkan sebuah database SQLite. Dengan bantuan Google seorang programmer dapat dengan mudah menemukan beberapa database manager untuk SQLite, namun salah satu yang cukup populer adalah SQLite Manager. Program SQLite Manager berbentuk add-on yang diinstal pada program Mozilla Firefox, oleh karena itu harus dipastikan program browser tersebut telah terinstal sebelumnya pada komputer Anda. SQLite Manager adalah program yang sangat sederhana dan praktis, namun bisa memenuhi hampir semua keperluan programmer. Ia memiliki menu untuk membuat database, table, index, view dan trigger; serta sebuah kotak untuk menulis dan menjalankan perintah SQL. Sebuah program yang cukup lengkap dan mudah digunakan.

Program SQLite Manager dapat dunduh secara gratis pada alamat berikut ini:

https://addons.mozilla.org/id/firefox/addon/sqlite-manager/

Pada uraian ini akan digunakan sebuah contoh database yang memuat data produk seperti yang digunakan pada aplikasi penjualan. Anggaplah bahwa Anda sedang mempersiapkan sebuah daftar produk dari sebuah perusahaan, kemudian data ini akan digunakan oleh para pemasar melalui smartphone Android-nya dan aplikasi yang Anda kembangkan.

  1. Jalankan SQLite Manager menggunakan program Mozilla Firefox melalui menu Tools –> SQLite Manager.
  2. Jalankan menu Database –> New Database untuk membuat sebuah database SQLite baru yang bernama productdemo.sqlite. Anda bebas untuk menempatkan file databasenya pada folder manapun di dalam komputer.

android-prebuilt-db01

  1. Pada tab Execute SQL, ketikkan perintah berikut ini untuk membuat sebuah table bernama productlist.

 Jalankan perintah tersebut dengan menekan tombol Run SQL. Pastikan table itu telah terbentuk tanpa pesan kesalahan.

CATATAN:
Berikut ini adalah tipe-tipe data yang didukung oleh SQLite:

android-prebuilt-db02

  1. Masukkan beberapa baris data ke dalam table tersebut dengan perintah INSERT seperti berikut ini.

 

 Pindah ke tab Browse and Search untuk melihat isi dari table tersebut (pastikan table productlist telah disorot).

 android-prebuilt-db03

Untuk sementara pre-built database telah selesai dibuat. Tahap berikutnya adalah membuat sebuah aplikasi Android yang akan menggunakan database tersebut.

  1. Jalankan Eclipse dan buat sebuah Android Project baru.

android-prebuilt-db04

  1. Buat sebuah class baru bernama DBAdapter dengan kode program di bawah ini. Anda tidak perlu mengetikkan sendiri kode program itu karena program selengkapnya bisa diunduh dari situs web dimana artikel ini berasal.

Class ini dibuat untuk menempatkan sub-program yang menangani operasi-operasi database seperti pembuatan table, pengisian data, perubahan data, penghapusan data dan pemanggilan data. Tujuannya adalah tidak mencampur-adukkan logika bisnis dengan operasi tingkat rendah (SELECT, INSERT, UPDATE dan DELETE) yang akan membuat kode program sulit dibaca dan berkesan rumit sekali. Untuk tujuan kerapihan program, akan jauh lebih baik jika program utama fokus hanya pada jalannya alur program utama, sementara fungsi-fungsi database dipisahkan ke dalam class DBAdapter ini.

 Untuk mempermudah pemahaman kerja dari sub-program ini, silakan memulainya dari method prepareDatabase. Saat method ini dipanggil ia akan menjalankan method lain yang bernama checkDatabase. Fungsi method checkDatabase cukup jelas, yaitu ia memeriksa keberadaan file database yang diwakili oleh konstanta DATABASE_PATH + DATABASE_NAME (dalam hal ini adalah “/data/data/net.houseoflife.dbsample/databases/productdemo.sqlite”). Ini adalah lokasi dan nama file database SQLite yang mestinya ada di dalam perangkat Android, namun ada kemungkinan file itu tidak ada di sana jika aplikasi ini dijalankan pertama kali. Jika file itu belum ada maka fungsi openDatabase akan memicu sebuah error, itu sebabnya pemanggilan fungsi ini harus ada di dalam blok try-catch supaya program tidak berhenti. Saat terjadi error, maka method checkDatabase akan mengembalikan nilai FALSE yang artinya adalah file database tidak ada di dalam perangkat.

Saat nilai yang dikembalikan adalah FALSE maka baris program selanjutnya akan memanggil method copyDatabase yang akan berusaha menyalin file database yang ada di dalam folder aplikasi (yaitu folder assets) ke dalam perangkat Android. Perhatikan baik-baik beberapa potongan kode program berikut ini karena itu adalah bagian terpenting dari uraian ini.

 

Program mempersiapkan sumber penyalinan data, yaitu file database yang diwakili oleh konstanta DATABASE_NAME. Fungsi getAssets digunakan untuk mencari file tersebut di dalam folder assets.
Program mempersiapkan target penyalinan data, yaitu ke dalam perangkat Android yang lokasinya diwakili oleh DATABASE_PATH + DATABASE_NAME.

Data dari file database dibaca sepotong demi sepotong (besar sebuah potongan adalah 1024 byte) menggunakan fungsi read kemudian ditulis dengan fungsi write.

  1. Buka class MainActivity, dan tambahkan kode program berikut ini.

 

  1. Sebagai langkah terakhir, ada satu hal lagi yang harus dipersiapkan yaitu menyalin file database pre-built productdemo.sqlite yang telah dipersiapkan pada langkah awal tadi ke dalam folder projek – tepatnya ke dalam folder assets seperti diperlihatkan pada gambar di bawah ini.

android-prebuilt-db05

Pastikan nama file itu muncul pada Package Explorer di dalam Eclipse. Refresh folder assets jika file tersebut belum tampak.

android-prebuilt-db06

Setelah langkah terakhir ini selesai dilakukan, silakan menjalankan aplikasi tersebut.

Saat aplikasi itu dieksekusi, tampak data-data yang ada di dalam database ditampilkan secara bergantian. Bila ini yang terjadi, maka bisa dipastikan program telah berjalan dengan baik.

android-prebuilt-db07

Mari kita telaah lebih jauh apa yang telah dilakukan oleh program ini.

  1. Pada Eclipse, jalankan menu Windows à Open Perspective à DDMS.
  2. Pada File Explorer, buka folder data/data/<namespace>/databases. Pada contoh ini namespace adalah net.houseoflife.dbsample. Perhatikan path ini adalah sama dengan nilai konstanta DATABASE_PATH pada kode program yang ditunjukkan tadi. Path ini menyatakan lokasi file database di dalam perangkat Android.

Apakah Anda menemukan file productdemo.sqlite di dalam lokasi tersebut? Jika ya, maka method copyDatabase yang dijelaskan tadi telah bekerja dengan baik. Ia berhasil menyalin file dari folder assets ke dalam lokasi ini seperti yang diharapkan.

android-prebuilt-db08

Sekarang kita akan melakukan beberapa pengujian akhir.

  • Hapus file productdemo.sqlite yang ada di dalam perangkat Android dengan tombol bertanda minus merah seperti ditunjukkan pada gambar tadi.
  • Jalankan kembali aplikasi tersebut.
  • Apakah aplikasi itu masih bekerja normal menampilkan data-datanya?

Saat kembali ke DDMS perspective apakah file productdemo.sqlite terbentuk kembali?

Mari kita lakukan pengujian yang ke-dua.

  • Hapus file database productdemo.sqlite yang ada di dalam folder assets kemudian jalankan kembali aplikasi tersebut.
  • Apakah aplikasi itu masih bekerja normal menampilkan data-datanya? Setelah database ada di dalam perangkat Android, apakah aplikasi masih membutuhkan file yang ada di dalam folder assets?

Semoga Anda bisa menjelaskan jawaban pertanyaan-pertanyaan di atas untuk memastikan Anda memahami konsep yang telah dijelaskan dengan panjang-lebar ini.

Sumber:

  • http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

Download kode program

end-of-doc

Leave a Reply

Your email address will not be published. Required fields are marked *