Jumat, 02 Juli 2021

Pengenalan SQLite dan Implementasi SQLite pada Android Studio

Hai teman - teman semua! Bertemu lagi di pembahasan Android Studio, setelah sebelumnya saya membahas WebView, nah pada kesempatan kali ini kita akan mempelajari tentang SQLite pada Android Studio dan disini saya akan menjelaskan dan mengimplementasikannya. 

Apa sih SQLite?

Menurut pengertian Wikipedia :

SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C.

SQLite itu sejenis database yang ringan dan tersedia dalam OS Android. Ada beberapa jenis database lainnya yang juga sering digunakan oleh para developer seperti salah satu contohnya ialah Realm.

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 desain 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 familiar dengan database SQL secara umum dan akan memabantu anda memulai databse SQLite di Android. API yang nanti anda perlukan untuk menggunakan database di android tersedia dalam paket android database SQLite.

Fitur - 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 (ACID), trigger, dan queri-queri yang kompleks. Tidak ada pengecekan tipe sehingga data bisa dientrikan dalam bentuk string untuk sebuah kolom bertipe data 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 kekurangan.

Beberapa proses ataupun thread dapat berjalan secara bersamaan dan mengakses basisdata yang sama tanpa mengalami masalah. Hal ini disebabkan karena akses baca data dilakukan secara paralel. Sementara itu akses data tulis data hanya bisa dilakukan jika 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 SQL Helper

Harus terlebih dahulu menerapkan metode yang akan membuat serta mengelola database dan tabel. Ada beberapa pernyataan umum untuk membuat dan menghapus tabel. Contoh, berikut ini contoh script untuk menentukan tabel dan nama kolom untuk satu tabel yang merespresentasikan 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;

Sama seperti file yang disimpan dipenyimpanan internal perangkat, Android menyimpan databases dalam folder aplikasi pribadi. Data anda akan selalu aman karena secara default area ini tidak dapat diakses oleh aplikasi lain atau oleh pengguna lain.

Class SQLiteOpenHelper berisikan kumpulan API yang berguna untuk mengelola database anda. Saat class 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 ya. Yang perlu dilakukan hanyalah memanggil getWritableDatabase() atau getReadableDatabase().

NOTE : "Karena operasi dapat berjalan lama, pastikan 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 perlu menerapkan metode onDowngrade() atau onOpen(), tetapi keduanya tidak diperlukan, misalnya penerapan SQLiteOpenHelper yang menggunakan beberapa perintah yang ditampilkan diatas seperti berikut :

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 :

FeedReaderDbHelper dbHelper = new FeedReaderDbHelper(getContext());

Challenge

Sekarang kita akan mencoba mengimplementasikan SQLite, langkahnya seperti berikut ini :

1. Kalian buka terlebih dahulu aplikasi Android Studio yang ada di PC kalian.

  • Pilih Start → Android Studio
  • Pilih Create New Projects
  • Pilih Empty Activity lalu klik Next

Akan muncul Configure Your Project

**

- Beri nama project yang ada kerjakan, misal disini kita membuat project dengan mana →  TodoListSQLite.

- Pilih lokasi penyimpanan (Save Location) →  Disesuaikan dengan keinginan kalian dimana project ini akan di simpan.

Untuk Package Name  ubah menjadi nama blog atau website kalian masing - masing, jika tidak ada website bisa menggunakan default, disini saya menggunakan url blog saya nofieanggraeni.blogspot.com lalu diikuti nama project todolistsqlite.

- Untuk minimum API level kita pilih →  API 16 (di sesuaikan dengan spesifikasi PC kalian, disarankan memilih yang paling minimum untuk API levelnya dan yang butuhkan).

 - Untuk bahasa yang digunakan pilih Java.

Jika Sudah selesai klik  Finish.

Configure Project Todo List SQLite

2. Setelah melakukan Configurasi Project maka akan tampil halaman utama IDE Android Studio, setelah itu ubah layout menjadi RelativeLayout, kemudian kita buka file activity_main.xml pada folder res/layout/activity_main.xml, dan kita masukkan source code berikut :

3. Lalu buatlah sebuah file Layout  dengan nama row.xml pada folder res/layout dan klik kanan. File ini nantinya digunakan untuk menampilkan list kegiatan yang akan dilakukan dan disampingya akan kita berikan tompol hapus.

Cara Membuat file row.xml

Lalu, berikan nama dengan row dan untuk Root Tag isikan RelativeLayout sesuai dengan kebutuhan kita setelah itu klik Finish.

isi nama file row.xml

Untuk struktur filenya akan seperti gambar di bawah ini :

struktur file row.xml

Setelah itu ketikan source code berikut ini untuk isi file row.xml :

4. Selanjutnya kita akan membuat menu untuk membuat layout baru dengan nama menu.xml yang digunakan untuk menampilkan listview yang akan dilakukan dan tombol aksi hapus. Caranya, kita buat dulu folder Menu supaya memudahkan kita menemukan atau memanggil filenya. Klik kanan pada folder res/New/Directory lalu beri nama menu

membuat directory menu

nama file menu.xml

5. Setelah itu buat layout baru pada folder menu dengan nama layout menu.xml dengan cara klik kanan pada folder menu/New/Layout Resource File beri nama menu.xml lalu ketikan source code berikut ini :

6. 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 class ini seperti : OnCreate(SqliteDatabase), OnUpgrade(SqliteDatabase int int) dan OnOpen(SqliteDatabase)

7. Buat sebuah class baru dengan nama DbHelper. Kemudian implementasikan kode-kode berikut pada DbHelper.java.

DbHelper.java

Lalu beri nama class dengan DbHelper.java

class DbHelper.java

Kemudian ketikkan source code berikut :

8. Selanjutnya pada MainActivity.java ketikkan source code berikut ini :

9. Lalu untuk mengubah nama aplikasi sesuai keinginan kita, caranya dengan merubah file strings.xml yang ada dalam folder res/values/strings.xml dengan source code seperti berikut ini :

strings.xml

10. Kemudian Jalankan emulator tambahan (Vysor) di  kedua perangkat yaitu PC dan Handphone kalian masing - masing, sambungkan dengan menggunakan kabel USB lalu aktifkan mode debbuging USB. Kenapa menggunakan Vysor? Supaya tidak terlalu berat dan membebankan PC kalian, tetapi jika PC kalian memenuhi spesifikasi Android Studio atau bahkan lebih bisa langsung dari Android Studio di PCnya tanpa harus menggunakan Emulator tambahan.

Hasilnya akan tampil seperti video berikut ini :

Demikianlah Pengenalan SQLite dan Implementasi SQLite pada Android Studio. Semoga apa yang disampaikan bisa bermanfaat bagi teman-teman semua, mohon maaf jika ada kesalahan dan kekurangan lainnya. Sampai jumpa di Pembahasan selanjutnya. 

Jika ada yang di tanyakan atau koreksi silahkan tinggalkan komentar di kolom dibawah ini.

Terima Kasih !!!

0 comments:

Posting Komentar