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:

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