Pemrograman Mobile
Lanjut
#6: SQLite
Muhamad Saad Nurul Ishlah, M.Comp.
Program Studi Sistem Informasi, Sekolah Vokasi,
Universitas Pakuan
Isi kuliah
- Basis data SQLite
- Kueri (Queries)
Penyegaran
Diasumsikan Anda sudah familiar dengan
-
Basis Data secara umum
-
Basis data SQL secara khusus
-
Bahasa kueri SQL
Materi ini hanya sebagai penyegaran dan referensi
Basis Data SQLite
Basis Data SQL
-
Menyimpan data dalam tabel berisi baris (row) dan kolom (column) (spreadsheet…)
-
Field = pertemuan antara baris dan kolom
-
Fields berisi data, referensi ke field lain, atau referensi ke tabel lain
-
Baris diidentifikasikan dengan ID yang unik
-
Nama kolom unik di setiap tabel
Tabel
TABEL_DAFTAR_KATA
_id | kata | definisi |
---|---|---|
1 | "alpha" | "huruf pertama" |
2 | "beta" | "huruf kedua" |
3 | "alpha" | "partikel" |
Pustaka Perangkat Lunak SQLite
Mengimplementasikan basis data SQL dengan karakteristik:
-
self-contained (tidak memerlukan komponen lain)
-
serverless (tidak memerlukan backend server)
-
zero-configuration (tidak perlu dikonfigurasi khusus untuk aplikasi)
-
transactional (perubahan sebuah transaksi dalam SQLite dapat terjadi sepenuhnya atau tidak sama sekali)
Transaksi
Transaksi adalah urutan operasi yang dilakukan sebagai unit kerja logis tunggal.
Unit kerja logis harus memiliki empat properti
-
atomicity
-
consistency
-
isolation
-
durability
All or Nothing
Semua perubahan pada sebuah transaksi dalam SQLite terjadi sepenuhnya atau tidak sama sekali, bahkan jika tindakan menulis perubahan ke disk terganggu oleh:
-
program crash
-
operating system crash
-
power failure.
ACID
-
Atomicity—Semua atau tidak ada modifikasi dilakukan
-
Consistency—Ketika transaksi selesai dilakukan, semua data harus berada dalam keadaan yang konsisten
-
Isolation—Modifikasi yang dilakukan oleh transaksi konkuren harus diisolasi dari modifikasi yang dilakukan oleh transaksi konkuren lainnya
-
Durability—Setelah transaksi selesai, efeknya secara permanen berada di sistem
Kueri (Queries)
Operasi Dasar SQL
-
Insert rows – Memasukkan baris
-
Delete rows – Menghapus baris
-
Update values in rows – Memperbaharui nilai pada baris
-
Retrieve rows that meet given criteria – Mengembalikan baris yang memenuhi kriteria yang diberikan
Contoh Kueri SQL
Formula Umum
-
SELECT kolom FROM tabel WHERE kolom="nilai"
SELECT kata, definisi
FROM TABEL_DAFTAR_KATA
WHERE kata="alpha"
SELECT kolom FROM tabel
-
SELECT kolom
-
Pilih kolom yang diinginkan
-
Gunakan * untuk mengembalikan semua kolom
-
-
FROM tabel — tentukan tabel sumber
WHERE kolom="nilai"
-
WHERE — kata kunci untuk kondisi yang harus dipenuhi
-
kolom="nilai" — kondisi yang harus dipenuhi
-
Operator umum: =, LIKE, <, >
-
AND, ORDER BY, LIMIT
-
SELECT _id FROM TABEL_DAFTAR_KATA WHERE kata="alpha" AND definisi LIKE "%art%" ORDER BY kata DESC LIMIT 1
-
AND, OR—hubungkan beberapa kondisi dengan operator logis
-
ORDER BY—bisa dihilangkan untuk urutan default, atau ASC untuk naik, DESC untuk turun
-
LIMIT—dapatkan hasil dalam jumlah terbatas
-
Contoh kueri
1 | SELECT * FROM TABEL_DAFTAR_KATA |
Dapatkan semua isi tabel |
2 | SELECT kata, definisi FROM TABEL_DAFTAR_KATA WHERE _id > 2 |
Kembalikan [["alpha", "particle"]] |
3 | SELECT _id FROM TABEL_DAFTAR_KATA WHERE kata="alpha" AND definisi LIKE "%art%" |
Kembalikan id kata alpha dengan substring "art" [["3"]] |
4 | SELECT * FROM TABEL_DAFTAR_KATA ORDER BY kata DESC LIMIT 1 |
Sortir secara terbalik dan dapatkan item pertama. Penyortiran dilakukan oleh kolom pertama (_id) [["3","alpha","particle"]] |
Contoh kueri
5 | SELECT * FROM TABEL_DAFTAR_KATA LIMIT 2,1 |
Mengembalikan 1 item mulai dari posisi 2. Penghitungan posisi dimulai dari 1 (bukan nol!). Mengembalikan [["2","beta","second letter"]] |
rawQuery()
String query = "SELECT * FROM TABEL_DAFTAR_KATA";
rawQuery(query, null);
query = "SELECT kata, definisi FROM TABEL_DAFTAR_KATA WHERE _id> ? ";
String[] selectionArgs = new String[]{"2"}
rawQuery(query, selectionArgs);
query()
SELECT * FROM TABEL_DAFTAR_KATA WHERE kata="alpha" ORDER BY kata ASC LIMIT 2,1; Mengembalikan: [["alpha", "particle"]] |
String table = "TABEL_DAFTAR_KATA" String[] columns = new String[]{"*"}; String selection = "kata = ?" String[] selectionArgs = new String[]{"alpha"}; String groupBy = null; String having = null; String orderBy = "kata ASC" String limit = "2,1" query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit); |
Cursors
-
Kueri selalu mengembalikan objek Cursor
Cursor adalah sebuah objek interface yang menyediakan akses read-write secara acak terhadap set hasil yang dikembalikan sebuah kueri pada basis data
⇒ Anggap Cursor sebagai pointer (penunjuk) ke baris pada tabel
Pelajari Lebih Lanjut
Referensi
Referensi
-
Diterjemahkan dari slide Android Developer Fundamentasl V2: SQLite Primer
Terima Kasih
PML6: SQLite
By M. Saad Nurul Ishlah
PML6: SQLite
- 409