Pengenalan SQLite 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