"Welcome To MY Blog

Senin, 02 Desember 2019

SQLite pada Android

A. Definisi SQLite 
 
SQLite adalah perpustakaan perangkat lunak yang menerapkan engine database SQL secara mandiri, tanpa memerlukan server, tanpa perlu melakukan konfigurasi, dan bersifat transaksional. SQLite adalah engine database SQL yang paling banyak digunakan di dunia.
SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.

SQLite adalah sebuah engine database SQL yang langsung tertanam atau pada aplikasi. Tidak seperti kebanyakan database SQL lainnya, SQLite tidak memiliki server yang terpisah dari aplikasi. SQLite membaca dan menulis langsung ke file disk biasa. Database SQLite memiliki fitur lengkap dengan banyak tabel, indexs, trigger, dan tampilan, serta tersimpan pada satu file tunggal dalam hard-disk. Format file databasenya bersifat cross-platform. Sehingga Anda dapat dengan bebas menyalin database antara sistem 32-bit dan 64-bit atau antara arsitektur yang berbeda flatform. Fitur-fitur ini membuat SQLite menjadi pilihan populer sebagai Application File Format.


SQLite telah didukung oleh banyak bahasa pemrograman seperti C, C ++, BASIC, C #, Python, Java dan Delphi. Dukungan dari COM (ActiveX) membuat SQLite dapat diakses ke bahasa scripted di Windows seperti VB Script dan JavaScript, sehingga akan menambah kemampuan untuk aplikasi HTML. Dukungan terhadap database ini juga tersedia di sistem operasi embedded seperti iOS, Android, Symbian OS, Maemo, Blackberry dan WebOS karena ukurannya yang kecil dan mudah digunakan.

B. Keunggulan SQLite

Berikut ini beberapa keunggulan SQLite :
1. SQLite tidak memerlukan proses atau sistem server yang terpisah untuk beroperasi (Serverless).
2. SQLite hadir dengan zero-configuration, yang berarti tidak ada setup atau administrasi yang dibutuhkan.
3. Database SQLite yang lengkap disimpan dalam file tunggal yang tersimpan dalam disk serta bersifat cross-platform.
4. SQLite sangat kecil dan ringan, kurang dari 400KiB untuk konfigurasi lengkap atau kurang dari 250KiB dengan fitur opsional dihilangkan.
5. SQLite bersifat mandiri, yang berarti tidak ada dependensi eksternal.
6. Transaksi SQLite sepenuhnya sesuai dengan ACID, memungkinkan akses yang aman dari banyak proses.
7. SQLite mendukung sebagian besar fitur bahasa query yang ditemukan dalam standar SQL92 (SQL2).
8. SQLite ditulis dalam ANSI-C dan menyediakan API yang sederhana dan mudah digunakan.
9. SQLite tersedia di semua sistem operasi baik ini UNIX (Linux, Mac OS-X, Android, iOS) dan Windows (Win32, WinCE, WinRT).

Banyak opsi media penyimpanan yang bisa kita pakai untuk menyimpan data ke dalam aplikasi Android, menggunakan database SQLite adalah salah satu opsi yang paling serbaguna dan praktis untuk kita implementasikan.

Database SQLite adalah solusi penyimpanan yang baik jika anda memiliki data terstruktur yang perlu diakses dan disimpan secara persisten serta sering ditelusuri dan diubah. Anda juga bisa menggunakan SQLite sebagai media penyimpanan utama untuk data aplikasi atau pengguna, atau anda juga bisa menggunakannya untuk proses caching serta menyediakan data yang diambil dari cloud.

Jika anda bisa menyatakan data berupa baris dan kolom, pertimbangkan untuk memakai database SQLite. Jika anda menggunakan database SQLite, yang dinyatakan sebagai objek SQLiteDatabase adalah semua interaksi dengan database adalah melalui instance dari kelas SQLiteOpenHelper yang akan mengeksekusi permintaan dan pengelolaan database. Aplikasi anda hanya boleh berinteraksi dengan SQLiteOpenHelper, yang akan kita bahas bersama-sama dibawah ini.

C. Tipe data yang dikaitkan secara khusus dengan penggunaan database SQLite

Ada dua tipe data yang dikaitkan secara khusus dengan penggunaan database SQLite, yaitu Cursor dan ContentValues
1) Cursor
SQLiteDatabase selalu menyajikan hasil berupa Cursor dalam format tabel yang menyerupai database SQL. Anda bisa menganggap data sebagai larik baris dan cursor adalah pointer ke dalam satu baris data terstruktur. Kelas Cursor menyediakan metode untuk menggerakan cursor melalui struktur data, dan metode untuk mendapatkan data dari bidang-bidang setiap baris. Kelas Cursor memiliki sejumlah subkelas yang mengimplementasikan cursor untuk tipe data tertentu, yaitu:
a) SQLiteCursor untuk mengekspos hasil query dari sebuah SQLiteDatabase. SQLiteCursor tidak disinkronkan secara internal, sehingga kode yang menggunakan SQLiteCursor dari beberapa thread harus melakukan sinkronisasi sendiri saat menggunakan SQLiteCursor.
b) MatrixCursor adalah implementasi cursor lengkap dan tidak  tetap, yang didukung oleh larik objek yang secara otomatis meluaskan kapasitas internal bila diperlukan.
MatrixCursor adalah implementasi cursor lengkap dan tidak tetap, yang didukung oleh larik objek yang secara otomatis meluaskan kapasitas internal bila diperlukan.

Beberapa operasi umum yang ada pada cursor adalah :
a)   getCount(), mengembalikan jumlah baris dalam cursor.
b) getColumnNames(), mengembalikan larik string yang berisi nama semua kolom dalam rangkaian hasil dalam urutan pencantumannya dalam hasil/result.
c) getPosition(), mengembalikan posisi cursor saat ini dalam rangkaian baris.
d) Getter tersedia untuk tipe data tertentu, seperti getString(int column) dan getInt(int column).
e) Operasi seperti moveToFirst() dan moveToNext() akan menggerakan cursor.
f) close(), membebaskan semua sumber daya dan membuat cursor menjadi tidak valid. Ingat, untuk menutup panggilan, guna membebaskan sumber daya!

Memproses Cursor

Jika panggilan metode mengembalikan ulangi pada hasil, ekstrak data, lakukan sesuatu dengan data, dan terakhir harus menutup cursor untuk membebaskan memori. Jika tidak dilakukan, maka aplikasi anda bisa saja terhenti saat kehabisan memori.

Cursor dimulai sebelum baris hasil pertama, sehingga pada pengulangan pertama gerakkan cursor ke hasil pertama jika ada. Jika cursor kosong, atau baris terakhir sudah diproses, maka akan keluar dari loop (perulangan). Jangan lupa untuk menutup cursor bila anda telah selesai menggunakannya. (Ini tidak boleh diulang terlalu sering)

// Perform a query and store the result in a Cursor
Cursor cursor = db.rawQuery(...);
try {
   while (cursor.moveToNext()) {
   // Do something with the data
   }
} finally {
   cursor.close();
}


Jika menggunakan database SQL, anda bisa mengimplementasikan kelas SQLiteOpenHelper untuk mengembalikan cursor ke aktivitas pemanggil atau adapter, atau anda bisa mengonversi data ke format yang lebih cocok untuk adapter. Manfaat dari yang terakhir itu adalah pengelolaan cursor (dan penutupannya) ditangani oleh helper terbuka, dan antarmuka pengguna anda tidak tergantung pada apa yang terjadi di backend.

2. ContentValues

Serupa dengan cara ekstra menyimpan data, instance ContentValues menyimpan data sebagai pasangan nilai kunci, dalam ini kuncinya adalah nama kolom dan nilainya untuk cell. Satu instance ContentValues menyatakan satu baris tabel.

Metode insert() untuk database memerlukan nilai untuk mengisi baris yang diteruskan sebagai instance ContentValues.

ContentValues values = new ContentValues();
// Insert one row. Use a loop to insert multiple rows.
values.put(KEY_WORD, "Android");
values.put(KEY_DEFINITION, "Mobile operating system.");
db.insert(WORD_LIST_TABLE, null, values);



Sumber :
https://medium.com/easyread/konsep-dasar-database-sqlite-pada-android-e9445558f494

Tidak ada komentar:

Posting Komentar