Pengenalan SQLite pada Android Studio
Apa itu SQLite ?
SQLite merupakan sebuah sistem manajemen basisdata
relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang
relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat
public domain yang dikerjakan oleh D. Richard Hipp.
Tidak seperti pada paradigma client-server umumnya,
Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan
sebuah program, melainkan sebagai bagian integral dari sebuah program secara
keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui
pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti
ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times,
dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi
data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari
sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis
data pada saat sebuah transaksi dimulai.
Menggunakan database adalah cara yang tepat untuk
menyimpan data terstruktur atau data berulang, seperti informasi kontak.
Halaman ini berasumsi bahwa Anda sudah familier dengan database SQL secara umum
dan akan membantu Anda memulai database SQLite di Android. API yang nanti Anda
perlukan untuk menggunakan database di Android tersedia dalam paket
android.database.sqlite.
Fitur SQLite
Pustaka SQLite mengimplementasikan hampir seluruh
elemen-elemen standar yang berlaku pada SQL-93, termasuk transaksi yang
bersifat atomic, konsistensi basisdata, isolasi, dan durabilitas (dalam bahasa
inggris lebih sering disebut ACID), trigger, dan kueri-kueri yang kompleks.
Tidak ada pengecekan tipe sehingga data bisa dientrikan dalam bentuk string
untuk sebuah kolom bertipe integer. Beberapa kalangan melihat hal ini sebagai
sebuah inovasi yang menambah nilai guna dari sebuah basisdata, utamanya ketika
digunakan dalam bahasa pemrograman berbasis script (PHP, Perl), sementara
kalangan lain melihat hal tersebut sebagai sebuah kekurangan.
Beberapa proses ataupun thread dapat berjalan secara
bersamaan dan mengakses basisdata yang sama tanpa mengalami masalah. Hal ini
disebabkan karena akes baca data dilakukan secara paralel. Sementara itu akses
tulis data hanya bisa dilakukan jika tidak ada proses tulis lain yang sedang
dilakukan; jika tidak, proses tulis tersebut akan gagal dan mengembalikan kode
kesalahan (atau bisa juga secara otomatis akan mencobanya kembali sampai
sejumlah nilai waktu yang ditentukan habis). Hanya saja ketika sebuah tabel
temporer dibuat, mekanisme penguncian pada proses multithread akan menyebabkan
masalah. Update yang terkini (versi 3.3.4) dikatakan telah memperbaiki masalah
ini.
Membuat database menggunakan SQLHelper
Berikut adalah beberapa pernyataan umum untuk membuat
dan menghapus tabel, Contohnya, berikut menentukan tabel dan nama kolom untuk
satu tabel yang merepresentasikan feed RSS:
private
static final String SQL_CREATE_ENTRIES =
"CREATE
TABLE " + FeedEntry.TABLE_NAME + " (" +
FeedEntry._ID
+ " INTEGER PRIMARY KEY," +
FeedEntry.COLUMN_NAME_TITLE
+ " TEXT," +
FeedEntry.COLUMN_NAME_SUBTITLE
+ " TEXT)";
private
static final String SQL_DELETE_ENTRIES =
"DROP
TABLE IF EXISTS " + FeedEntry.TABLE_NAME;
Kelas SQLiteOpenHelper berisi kumpulan API yang
berguna untuk mengelola database Anda. Saat kelas ini digunakan untuk
memperoleh referensi ke database, sistem hanya akan melakukan operasi pembuatan
dan update database, yang mungkin memerlukan banyak waktu, hanya ketika
diperlukan; bukan pada saat aplikasi dimulai. Yang perlu Anda lakukan hanyalah
memanggil getWritableDatabase() atau getReadableDatabase().
Catatan: Karena operasi dapat berjalan lama, pastikan Anda
memanggil getWritableDatabase() atau getReadableDatabase() di thread latar
belakang. Lihat Menggunakan thread di Android untuk informasi selengkapnya.
Untuk menggunakan SQLiteOpenHelper, buat subclass yang
mengganti metode callback onCreate() dan onUpgrade(). Anda mungkin juga perlu
menerapkan metode onDowngrade() atau onOpen(), tetapi keduanya tidak
diperlukan, Misalnya, berikut adalah penerapan SQLiteOpenHelper yang
menggunakan beberapa perintah yang ditampilkan di atas:
public class
FeedReaderDbHelper extends SQLiteOpenHelper {
// If you change the
database schema, you must increment the database version.
public static final int
DATABASE_VERSION = 1;
public static final String
DATABASE_NAME = "FeedReader.db";
public
FeedReaderDbHelper(Context context) {
super(context, DATABASE_NAME, null,
DATABASE_VERSION);
}
public void
onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
public void
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// This database is only a cache for online
data, so its upgrade policy is
// to simply to discard the data and start
over
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
}
public void
onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
Untuk mengakses database, buat instance subclass
SQLiteOpenHelper Anda:
FeedReaderDbHelper dbHelper
= new FeedReaderDbHelper(getContext());
PRAKTIKUM
1. Jalankan
Android Studio seperti biasa
2. Ketikkan
script program ini pada activity_main.xml
3. Buat
sebuah file Layout dengan nama row.xml
4. dan
ketikkan programnya seperti berikut :
5. Buat sebuah Directory baru dengan nama menu
6. Setelah
itu buat layout baru di dalam directory menu tadi yang kita namakan menu.xml
lalu ketikkan program nya seperti ini :
7. Selanjutnya
kita akan membuat class SQLiteOpenHelper dengan nama file DbHelper.java
SqliteOpenHelper adalah sebuah
subclass , yang digunakan untuk menentukan nama database dan versi database
yang sedang dipakai. Kita bisa menerapkan method di clas ini seperti : OnCreate
(SqliteDatabase) ,OnUpgrade (SqliteDatabase int int ) dan
OnOpen(SqliteDatabase).
8. Buat
sebuah Class baru dengan nama DbHelper. Kemudian ketikkan kode-kode berikut
pada DbHelper.java :
9. Ketikkan
script program berikut pada MainActivity.java :
10. Ubah
nama aplikasi sesuai keinginan. dengan cara merubah file string.xml yang
ada dalam folder ..res/values. Seperti berikut ini :
11. Dan
ini hasilnya setelah dirun
Komentar
Posting Komentar