Seperti
halnya database pada umumnya, SQLite memiliki objek-objek seperti view, table
dan
index.
Perintah-perintah SQL-nya juga sangat serupa seperti yang biasa digunakan yaitu
SELECT, INSERT, UPDATE, DELETE dan sebagainya. Informasi mengenai SQLite dapat
dibaca secara lengkap pada situs resminya di:
http://www.sqlite.org
NB:Untuk mulai mengembangkan aplikasi Android menggunakan SQLite, tidakada instalasi tambahan yang perlu dilakukan karena library SQLite sudahada di dalam framework Android.Database SQLite diaktifkan di dalam program dengan cara meng-importlibrary SQLite pada program header, misalnya:import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;
Pada
umumnya aplikasi dengan embedded database tidak menyertakan database yang sudah
berbentuk
pada saat aplikasi itu diinstal pada perangkat. Jadi yang diinstal hanya
programnya,
sedangkan
databasenya tidak ada sama sekali. Database akan dibuat pada saat aplikasi itu
dijalankan
pertama kali, yaitu program akan memeriksa apakah database ditemukan. Jika
database
tidak ditemukan maka serangkaian perintah SQL akan menjalankan perintah CREATE yang
akan membentuk file database diikuti dengan table-table di dalamnya. Tentunya programmer
harus membuat sendiri perintah SQL tersebut secara spesifik tergantung struktur
data di dalam aplikasi yang dibuatnya. Ini adalah teknik yang biasanya
digunakan programmer dalam membuat sebuah aplikasi dengan embedded database
dimana ia tidak menyertakan file database di dalam paket instalasi aplikasi.
Berikut
ini diperlihatkan sebuah contoh program menggunakan SQLite.
1.
Jalankan program Eclipse dan buat sebuah Android Project baru.
2.
Beri nama pada projek tersebut, kemudian masukkan pilihan build target dan
lengkapi
property.
Kemudian tekan Finish untuk melanjutkan.
Dari
beberapa literatur yang saya baca, praktek yang dianjurkan untuk membuat
program
database adalah memisahkan antara program utama dengan program yang
menangani
perintah-perintah operasi database seperti membuat table, menambah
baris,
mengubah data dan sebagainya. 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 program
yang
lain. Program utama cukup memanggil fungsi-fungsinya secara sederhana dengan
satu
baris perintah saja, walaupun sebetulnya fungsi itu ditulis dengan baris yang
panjang
dan proses yang rumit di bagian program yang lain.
Kita
akan menerapkan teknik pemrograman tersebut dengan membuat sebuah class
bernama
DBAdapter yang khusus menangani operasi database.
3.
Tambahkan sebuah class baru dan beri nama DBAdapter.
Tekan
Finish untuk melanjutkan.
4.
Tambahkan perintah import berikut ini pada program header DBAdapter.java.
Perhatikan
beberapa library SQLite yang akan digunakan disebutkan di situ.
...Import android.content.ContentValues;Import android.content.Context;Import android.database.Cursor;Import android.database.SQLException;Import android.database.sqlite.SQLiteDatabase;Import android.database.sqlite.SQLiteOpenHelper;Import android.util.Log;...
5.
Ketikkan skrip berikut ini di dalam class DBAdapter. Perhatikan class ini
mengandung
sebuah
constructor DBAdapter(Context) untuk menginisiasi class, kemudian method
open
dan close masing-masing untuk membuka dan menutup database.
public class
DbAdapter {
private static
final String TAG="DbAdapter";
private static
final String DATABASE_NAME="books";
private static
final int DATABASE_VERSION=1;
private static
final String TABLE_CREATE = "create table titles (_id integer
primary key
autoincrement, "
+ "isbn
text not null, title text not null, "
+
"publisher text not null)";
private static
final String TABLE_DROP = "DROP TABLE IF EXISTS titles";
private final
Context context;
private
DatabaseHelper dbHelper;
private
SQLiteDatabase db;
public
DbAdapter(Context ctx) {
this.context =
ctx;
dbHelper = new
DatabaseHelper(this.context);
}
private static
class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context
ctx) {
super(ctx,
DATABASE_NAME, null, DATABASE_VERSION);
}
+ newVersion
@Override
public void
onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
}
@Override
public void
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG,
"Upgrading database from version " + oldVersion + " to "
+ ", which
will destroy all old data");
db.execSQL(TABLE_DROP);
onCreate(db);
}
}
public DbAdapter
open() throws SQLException {
db =
dbHelper.getWritableDatabase();
return this;
}
public void
close() {
dbHelper.close();
}
}
Skrip
di atas merupakan contoh program DBAdapter yang relatif generik. Program ini
bisa
dijadikan semacam cetakan untuk program-program lain karena program ini
bentuknya
masih umum dan belum mengandung fungsi-fungsi yang spesifik. Konstanta-
konstanta
seperti DATABASE_NAME, TABLE_CREATE, TABLE_DROP bisa diubah isinya untuk
disesuaikan dengan kebutuhan. Nantinya ke dalam program DBAdapter ini harus ditambahkan
fungsi-fungsi database misalnya insertBook, updateBook dan sebagainya
dengan
baris-baris kode yang spesifik.
6.
Sampai tahap ini jalankan aplikasi tersebut untuk menguji-coba dengan cara
klik-kanan
nama
pada projek di dalam Package Explorer, kemudian pilih Run As Android
Application.
Tunggu
sejenak sampai emulator Android ditampilkan dan menjalankan aplikasi ini.
Sepintas
Anda tidak akan melihat sesuatu yang istimewa pada tampilan aplikasi tersebut,
kecuali
sebuah
pesan yang muncul pada emulator.
Sesungguhnya
aplikasi ini menjalankan sesuatu yang istimewa saat ia dijalankan pertama kali.
Perhatikan
potongan-potongan program berikut ini.
Saat
MainActivity.java membuat objek DBAdapter dengan di dalam baris “DBAdapter db =
new DBAdapter(this);” maka rangkaian pemanggilan baris-baris program lainnya akan
dijalankan seperti diperlihatkan pada gambar di atas, seperti pembuatan objek
DatabaseHelper dan pemanggilan method super, onCreate dan terakhir yang
berujung pada dijalankannya method execSQL untuk membuat sebuah table bernama
titles.
Tanpa
disadari sebuah file database bernama books dengan sebuah table titles di
dalamnya
telah
terbentuk. Lalu sekarang bagaimana memastikan database ini telah terbentuk?
Satu-
satunya
cara tentunya harus menemukan bahwa file database itu memang ada, bukan?
1.
Jalankan menu Window Open Perpective
perpective
pada sudut kanan-atas layar.
DDMS
atau cukup meng-klik icon DDMS
2.
Pada tab File Explorer, buka folder data
data.
3.
Cari nama package dari projek ini (pada contoh ini adalah
net.houseoflife.dbsample),
kemudian
buka foldernya hingga ditemukan folder databases dan sebuah file database
di
dalamnya. Itu adalah file database SQLite yang dibentuk oleh aplikasi tersebut.
File
database SQLite yang tampak pada File Explorer perlu dibuka untuk memastikan
sebuah
table
telah terbentuk di dalamnya. Database itu tidak dapat langsung dibuka di dalam
Eclipse
tetapi
harus dibuka menggunakan sebuah program yang bernama SQLite Manager. Program
ini akan dijelaskan kemudian, tetapi untuk saat ini file database ini harus dibawa
keluar dari
emulator
agar bisa diakses dari komputer lokal.
1.
Pastikan file database disorot/dipilih pada File Explorer, kemudian klik icon
dengan
tulisan
“Pull a file from the device” pada sudut kanan-atas layar.
2.
Simpan file tersebut pada komputer lokal.
SQLite
Manager adalah sebuah program yang sangat membantu programmer dalam mengelola database
SQLite seperti membuat table, index dan menjalankan perintah-perintah SQL.
Program ini sangat mudah digunakan dan betul-betul bermanfaat untuk berbagai
keperluan praktis. Satu hal lagi yang tidak kalah pentingnya: program ini
gratis.
Selain
SQLite Manager, ada beberapa program lain yang tujuannya serupa namun saya
menganjurkan
program ini karena ia yang paling populer digunakan saat ini. SQLite Manager
adalah
sebuah program add-on pada program Mozilla Firefox sehingga pastikan pada
komputer Anda telah terinstal program browser tersebut sebelumnya. Untuk
mengsinstal SQLite Manager, silakan mengunduh add-on-nya pada alamat berikut
ini dan ikuti instruksinya.
https://addons.mozilla.org/id/firefox/addon/sqlite-manager/
Saya
tidak mengetahui apakah add-on SQLite Manager juga tersedia untuk browser yang
lain
seperti
Internet Explorer atau Chrome, saya persilakan pembaca untuk mencarinya
sendiri.
Setelah
add-on berhasil terinstal, jalankan program ini melalui Mozilla Firefox.
1.
Jalankan menu Tools
2.
Setelah SQLite Manager muncul, jalankan menu Database Connect Database,
kemudian
buka file database yang telah tersimpan di dalam komputer lokal tadi.
3.
Saat file database telah dibuka, perhatikan bahwa table titles tampak di
dalamnya.
SQLite
Manager.
Silakan
lihat isi table tersebut dengan menjalankan perintah SQL pada kotak Execute
SQL.
Demikianlah
Anda telah melihat bagaimana aplikasi Android membuat sebuah database SQLite saat
ia dijalankan. Jika aplikasi ini dijalankan lagi untuk ke-dua kali dan
seterusnya, file database tidak akan dibuat lagi karena ia sudah ada. File
database itu akan langsung dibuka dan digunakan oleh aplikasi yang
bersangkutan.
Cukup
sekian, kurang lebihnya mohon maaf dan semoga bermanfaat. Terimakasih.