You are on page 1of 3

Database SQLite

Pada bab ini, kita akan membuat database, membuat tabel untuk menyimpan data, dan
menyisipkan (insert), memperbaharui (update), dan menghapus (delete) data ke dalam tabel.

SQLite tersedia di perangkat Android, SQLite tidak memerlukan koneksi seperti pada JDBC atau
ODBC. Hal ini memungkinkan kita untuk mengorganisir data seperti pada database relasional
SQL dan menjalankan perintah SQL walaupun datanya tersimpan dalam file teks. Paket
android.database.sqlite berisi kelas-kelas dan interface untuk mengelola database, menjalankan
query SQL, dan memproses hasilnya.

Pada saat membuat tabel SQLite, kita dibatasi hanya pada tipe data berikut: null, integer, real,
text, dan blob. Kita menggunakan tipe data real untuk float dan double, dan text untuk string.
SQLite juga mencakup dukungan untuk tanggal (date) dan waktu (time) menggunakan tipe data
integer, real, atau text.

TABEL 1. Kelas yang dipilih dari paket android.database.sqlite


Kelas Deskripsi
extends kelas abstrak ini untuk mengelola database dan versinya. kita harus
SQLiteOpenHelper
meng-override method onCreate dan onUpgrade.

SQLiteDatabase meliputi method untuk mengeksekusi pernyataan SQL

Cursor meng-enkapsulasi sebuah tabel yang dikembalikan oleh select SQL query

TABEL 2. Contoh tabel SQL untuk pegawai.

id Nama Gaji
1 Indriyani Shahih 5000000

2 Ibnu Isam Almusyaffa 7500000

3 Dewi Aryani 4500000

TABEL 1. Menunjukkan beberapa kelas penting dari paket android.database.sqlite.

Disini kita akan membuat sebuah kelas dengan nama kelas Pegawai yang mencerminkan kolom
tabel SQL. Kelas Pegawai dibuat untuk menyimpan id, nama, dan gaji untuk pegawai seperti
pada TABLE 2, di mana id adalah int, nama adalah String, dan gaji adalah double.

Kelas Pegawai, seperti yang ditunjukkan pada CONTOH 1, mencerminkan tipe data yang ada
pada TABEL 2. Kelas Pegawai adalah kelas Java dengan constructor, accessor, dan mutator.
Dalam kelas Pegawai, kita juga menyediakan method toString yang dapat digunakan untuk
keperluan debugging dan umpan balik.

CONTOH 1. Kelas Pegawai


Kita juga membuat kelas DatabaseManager yang berisi method untuk menjalankan berbagai
pernyataan SQL dasar. Pada saat menjalankan pernyataan insert, update, atau delete, kita akan
menggunakan method execSQL dari kelas SQLiteDatabase (lihat TABEL 3). Selanjutnya pada
saat mengeksekusi pernyataan select, menggunakan method rawQuery kelas SQLiteDatabase
untuk menjalankannya, dan method kelas Cursor (lihat TABEL 4) untuk memproses hasilnya.

TABEL 3. Method yang dipilih dari kelas SQLiteDatabase


Method Deskripsi

Menjalankan sql, adalah query SQL yang tidak mengembalikan


void execSQL(String sql) data. Dapat digunakan untuk create, insert, update, dan delete,
tetapi tidak untuk query select.

Menjalankan sql dan mengembalikan Cursor, selectionArgs


Cursor rawQuery( String sql, String[ ] selectionArgs )
diberikan untuk mencocokkan "?" dalam klausa where query.

TABEL 4. Method yang dipilih dari kelas Cursor


Method Deskripsi

boolean moveToNext( ) Memindahkan Cursor ke baris berikutnya pada saat pemrosesan hasil.

Mengembalikan nilai baris saat ini (current row) pada column-index kolom. Tipe
DataType getDataType( int column )
data dapat berupa tipe data dasar, String, atau Blob.

CONTOH 2 memperlihatkan kelas DatabaseManager (DatabaseHelper), yang memperluas


(meng-extends) kelas SQLiteOpenHelper. Kelas SQLiteOpenHelper menyediakan
fungsionalitas untuk membuka, membuat, atau meng-upgrade database. SQLiteOpenHelper
adalah kelas abstrak dan memiliki dua method abstrak, onCreate dan onUpgrade yang harus
kita override. Kedua method ini akan membuka database jika database sudah ada,
menciptakannya jika tidak ada, dan mengupgradenya jika diperlukan (dengan memanggil
onUpgrade secara otomatis). Pada saat pertama kali kita memanggil getWritableDatabase,
onCreate akan dipanggil secara otomatis (lihat TABEL 5). Selain itu, kita akan membuat sebuah
tabel SQLite dengan nama pegawai, dan melakukan operasi insert, delete, update, dan select
pada tabel pegawai. Agar menjadi mudah, disini kita akan menggunakan method untuk
menyisipkan sebuah record, menghapus sebuah record berdasarkan nilai id-nya, memperbaharui
sebuah record, memilih sebuah record, dan method untuk memilih semua record dalam tabel
pegawai.
.

CONTOH 2. Kelas DatabaseManager


TABEL 5. Method-method yang dipilih dari kelas SQLiteOpenHelper.
Method Deskripsi

Constructor untuk membuat objek


SQLiteOpenHelper(Context context, String name, SQLiteOpenHelper, name adalah nama database,
SQLiteDatabase.CursorFactory factory, int newVersion) factory dapat digunakan untuk membuat objek
Cursor (gunakan null untuk default).

Dipanggil pada saat pertama kali database dibuat,


abstract void onCreate(SQLiteDatabase db)
kita harus mengimplementasikan method ini.

abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int Dipanggil pada saat database perlu untuk diupgrade,
newVersion) kita harus mengimplementa-sikan method ini.

Membuat dan/atau membuka database yang akan


digunakan untuk baca/tulis. Mentrigger pemanggilan
SQLiteDatabase getWritableDatabase() onCreate pada saat pertama kali onCreate dipanggil.
Mengembalikan referensi SQLiteDatabase untuk
melakukan operasi SQL.

Constructor (baris 17-19) memanggil constructor super (lihat TABEL 5). Method onCreate
(baris 21-28) secara otomatis dipanggil pada saat database pertama kali dibuat. Di dalamnya, kita
harus membuat tabel yang kita butuhkan. Oleh karena itu kita mendefinisikan sebuah String yang
mewakili pernyataan SQL untuk membuat tabel pegawai (baris 22-25) dan secara aktual
membuat tabel pada baris 27.

Method insert, deleteById, dan updateById (baris 38-46, 48-55, 57- 67) memiliki pola yang sama,
yaitu: memperoleh referensi SQLiteDatabase dengan memanggil getWritableDatabase milik kelas
SQLiteOpenHelper, membuat query SQL, mengeksekusinya dengan memanggil method
execSQL, dan menutup database.

You might also like