Official StoreTekan tombol di atas untuk membeli semua alat dan bahan eksperimen di web ini

Akses Database SQLite Android menggunakan Delphi XE 8

Tutorial kali ini akan membahas tentang pembuatan aplkasi berbasis Android untuk mengakses data yang tersimpan database SQLite. Sebagaimana yang kita ketahui bahwa SQLite adalah database engine yang compact dan kecil ukurannya, sehingga cocok digunakan di perangkat yang kecil memorinya seperti smartphone Android.  Google sendiri merekomendasikan penggunaan database engine ini untuk diterapkan di OS Android besutannya.

Pada prinsipnya, akses database SQLite di Android relatif sama dengan akses database di PC/komputer. Komponen Delphi yang digunakan juga relatif sama. Setidaknya Anda akan membutuhkan tiga macam kelompok komponen untuk mengakses database, yakni : 

– komponen ‘connector’ untuk menghubungkan aplikasi Delphi dengan database engine,

– komponen ‘table’ atau ‘query’ untuk mengeksekusi perintah (SQL query) ke tabel setelah database terhubung

– komponen ‘data access’/’data source’, sebagai penghubung/interface untuk komponen tampilan (dbGrid, dbNavigator, dll)

Hanya saja, khusus untuk aplikasi Android berbasis Delphi XE8 ini implementasi tiga kelompok komponen agak sedikit berbeda, walaupun pada intinya sama saja. Bagi Anda yng sudah terbiasa bekerja dengan Delphi untuk membuat aplikasi desktop yang berhubungan dengan database, maka seharusnya tidak akan terlalu susah untuk migrasi ke Android.

Baiklah, mari kita mulai tutorialnya. Pertama kali silahkan buat project Android baru di Delphi XE-8 melalui menu File – New – Multi Device Application Delphi. Kemudian pilih ‘Blank Application’ dan tekan tombol ‘OK’, sehingga akan tercipta project baru dan akan muncul tampilan form designer baru. Silahkan disimpan dulu nama projectnya (Save All) sesuai dengan keinginan (contoh : PSQLite untuk project dan USQLite untuk unitnya). Berikutnya, setting target kompilasi ke platform Android dan style form juga ke Android seperti tampak pada gambar di bawah:

delphi target platform android - style android

Ambil komponen FDConnection (Tab ‘FireDAC’) dan letakkan di form designer. Komponen FDconnection ini nantinya kan berfungsi sebagai ‘connector’ atau penghubung aplikasi ke database engine melalui sebuah file driver. Sebagai referensi, mulai Delphi XE 7 ke atas, Embarcardero (Delphi principal) lebih merekomendasikan komponen FireDAC daripada komponen DbExpress untuk tiap aplikasi yang mengakses database.

Kemudian atur properti komponen FDConnection sebagai berikut :

Properti Nilai
DriverName SQLite
LoginPrompt False

Untuk menciptakan database sql ‘on the fly’ di dalam IDE Delphi, silahkan double click komponen FireDAC, hingga muncul jendela FireDAC Connection Editor sebagai berikut, kemudian isi parameter ‘Database’ dengan (misalnya) ‘latihan.s3db’. Sebaiknya Anda menulis lengkap absolute file path-nya, misalnya ‘C:\Xe8\contoh\latihan.s3db’. Nantinya Delphi akan menciptakan database ‘latihan.s3db’ ini secara otomatis.

FireDAC Connection Editor - membuat database sqlite s3db di IDE delphi

Satu lagi settingan yang penting untuk diubah adalah parameter ‘LockingMode’. Ubah nilai parameter ini dari settingan default ‘Exclusive’ menjadi ‘Normal’. Jika settingan sudah dilakukan semua, klik tombol ‘Test’, abaikan jika muncul jendela login (klik OK saja) dan seharusnya akan muncul popup ‘Connection establish successfully’.

FireDAC Connection Editor - [FDConnection1] - connection establish successfully

Kemudian tekan tombol ‘OK’ untuk kembali ke form designer. Berikutnya, ubah nilai properti ‘Connected’ menjadi ‘true’ di jendela Object Inspector. Dan terakhir, tambahkan event handler pada event ‘BeforeConnect’ (cari di jendela Object Inspector bagian tab ‘Event’, kemudian double click) dengan script di bawah.

Script di atas kurang lebih fungsinya adalah mendefinisikan file path database ketika compiler directive mendeteksi aplikasi berjalan di platform Android/iOS, sesaat sebelum melakukan koneksi ke database engine SQLite. Jangan lupa menambahkan unit System.IOUtils dibawah ‘implementation’, karena TPath berada di unit ini.

Langkah kedua, ambil komponen FDQuery dan letakkan di Form Designer. Komponen ini akan kita gunakan untuk menciptakan tabel dengan nama ‘tbcontoh’ di database latihan.s3db. Untukitu silahkan ubah properti komponen tersebut sebagai berikut :

Properti Nilai
Name FDQueryCreateTable
SQL CREATE TABLE IF NOT EXISTS tbcontoh (data TEXT NOT NULL)

Perintah query SQL di atas maksudnya kurang lebih adalah menciptakan tabel baru jika sebelumnya belum ada dengan nama ‘tbcontoh’ dengan sebuah field yang bernama ‘data’ yang bertipe ‘TEXT’. Untuk mengeksekusi perintah SQL di atas saat design time, dapat Anda lakukan dengan double click komponen FDQueryCreateTable tadi, dan setelah terbuka jendela FireDAC Query Editor, tekan tombol ‘Execute’.

FireDAC Query Editor - [FDQueryCreateTable] eksekusi perintah query sql - Delphi XE 8 Android

Langkah ketiga, mari kita coba atur tampilan User Interface aplikasi terlebih dahulu. Ambil komponen TListView, TToolbar, TLabel dan TButton (2 buah) seperti tampak pada gambar di bawah.

form designer latihan sqlite android delphi xe 8

Perhatikan bahwa komponen Label dan Button menjadi ‘child’ dari komponen ToolBar (dapat Anda lihat di jendela ‘Structure)

project_training_delphi-android_lat sqlite_latsqlite_PLatSqlite button child komponen toolbar

Atur properti komponen-komponen tersebut di Object Inspector sebagai berikut

Komponen Properti Nilai
TListView Align Client
TButton1 Align Left
StyleLookup deletetoolbutton
TButton2 Align Right
StyleLookup addtoolbutton
TLabel Align Client
Text Latihan SQLite
TextSetting-HorzAlign Center

Dari settingan di atas, maka tampilan form designer akan menjadi sebagai berikut :

tampilan form designer latihan sqlite android delphi xe setelah disetting

Langkah keempat, kita akan melakukan ‘binding’ komponen UI (tampilan User Interface) dengan komponen database melalui ‘LiveBinding’ dengan komponen datasource sebagai penghubungnya. Caranya adalah sebagai berikut :

– Buka jendela LiveBinding melalui menu View-LiveBindings Designer

– Klik tombol wizard (lihat gambar di bawah, kemudian pilih ‘Create a data source’. Pertama kali kita harus menciptakan sebuah komponen ‘datasource’ sebagai penghubung komponen UI dengan database. Klik tombol Next, dan pilih ‘FireDAC’

2016-06-19 10_35_56-ULatSqlite - Delphi XE8 - PLatSqlite Livebinding wizard

Klik tombol ‘Next’ kembali, dan di jendela yang baru muncul, pilihan opsi ‘Query’ di parameter ‘Command Type’ kemudian isi kotak edit di bawah tulisan ‘Command Text’ dengan ‘select * from tbcontoh’ dan tekanlah tombol ‘Test Command’. Jika muncul popup window ‘Test command succeded’ berarti Anda sudah berhasil menciptakan tabel ‘tbcontoh’ di database ‘latihan.s3db’. Selamat, tapi Belanda masih jauh :). Berikutnya tekan tombol ‘Next’ dan kemudian tombol ‘Finish’. Perhatikan di Form Designer (dan di LiveBindings Designer) sekarang ada komponen baru ‘BindSourceDB1’ dan ‘FDQuery1’ yang diciptakan menggunakan proses LiveBinding wizard tadi.

BindSourceDB1 dan FDQuery1 Delphi Android SQLite

Langkah berikutnya adalah menghubungkan komponen UI (dalam aplikasi ini adalah komponen ListView) dengan komponen BindSourceDB1 sebagai komponen datasource-nya. Caranya, klik kembali tombol ‘LiveBinding wizard’ dan pilih opsi ‘Link control with a field’, tekan tombol ‘Next’ dan pilih komponen ‘ListView1’ di tab ‘Existing Control’.

LiveBindings Wizard - link controll with a field - delphi xe 8 sqlite android

Tekan tombol ‘Next’ sekali lagi dan pilih ‘BindSourceDB1’

2016-06-19 11_25_32-LiveBindings Wizard - bindsourceDB1 - delphi xe android sqlite

Tekan tombol ‘Next’ lagi dan pilih field ‘data’ (ini adalah field yang sebelumnya kita buat melalui komponen FDQueryCreateTable).

LiveBindings Wizard - pilih field data - delphi xe 8 android sqlite

Berikutnya tekan tombol Next/Finish untuk mengakhiri livebinding wizard. Perhatikan di jendela LiveBindings Designer, ada sebuah garis anak panah yang menghubungkan antara ListView1 dan BindSourceDB1.

Langkah berikutnya adalah menghubungkan property Item.Text milik ListView agar menampilkan setiap data yang ada di tabel ‘tbcontoh’. Jika melalui LiveBindings Designer caranya cukup mudah, yakni dengan menarik anak panah (tekan mouse, tahan, arahkan) dari field ‘data’ di FDQuery di bawah BindSourceDB1 ke property Item.Text milik komponen ListView1. Hasilnya dapat Anda lihat pada gambar di bawah.

LiveBinding designer - menghubungkan field data ke listview item-text

Sampai dengan empat langkah di atas, Anda sudah berhasil menciptakan database SQLite (latihan.s3db), menciptakan tabel (tbcontoh) dan satu field (data) di database tersebut, dan menampilkan datanya ke komponen listView. Langkah berikutnya (kelima) adalah mengisi event handler untuk tombol tambah data (tombol ‘+’) dan hapus data (tombol ‘-‘) yang ada di pojok kanan dan kiri aplikasi.

Langkah kelima, ambil komponen FDQuery dari Tab ‘FireDAC’ di Component Pallete dan letakkan di form designer. Ambil dua komponen FDQuery dan ubah nilai properti masing-masing komponen sebagai berikut :

Komponen Properti Nilai
FDQuery2 Name FDQueryInsert
SQL INSERT INTO tbcontoh (data) VALUES (:data)
FDQuery3 Name FDQueryDelete
SQL delete from tbcontoh where data = :data

Kemudian isikan event handler untuk Button2 (tombol + di pojok kanan aplikasi) dengan cara men-double click-nya. Isikan script di event onClick milik komponen Button2 sbb :

Function InputQuery adalah function di Android yang memanggil kotak dialog dimana user dapat mengisikan sebuah nilai di dalamnya. Perhatikan bahwa di function ‘InputQuery’, terdapat tambahan procedure ‘Self.OnInputQuery_Close’ (identifier ‘Self’ di sini adalahTForm1’). Oleh karena itu deklarasikan procedure baru tersebut di bawah statement ‘private’ sbb :

Dan kemudian definisikan procedure tersebut, sbb :

Event handler untuk menambahkan data di database sudah selesai, sekarang gilirannya kita menambahkan event handler untuk menghapus data data di database.

Tambahkan event handler onClick di Button1 sebagai berikut:

Dan langkah terakhir (ke enam) adalah tahap finalisasi. Pada tahap ini setidaknya ada dua langkah yang harus dilakukan yakni, menambahkan komponen the TFDGUIxWaitCursor dan TFDPhysSQLiteDriverLink, dan menambahkan file database ke dalam file project agar ketika di-compile menjadi file APK, file database ini akan dimasukkan ke package APK dan ketika diinstal akan masuk ke dalam file system Android.

TFDGUIxWaitCursor dan TFDPhysSQLiteDriverLink Delphi XE8 Android SQLite

Komponen TFDGUIxWaitCursor terletak tab ‘FireDAC UI’ dan komponen TFDPhysSQLiteDriverLink terletak di tab ‘FireDAC Links’ di Component Pallete. Kedua komponen ini mutlak diperlukan saat kita menggunakan komponen FireDAC agar semua komponen yang menggunakan teknologi FireDAC dapat berjalan sebagaimana mestinya.

Sedangkan untuk menambahkan file database ke dalam file project caranya cukup mudah. Klik kanan nama project di jendela Project Manager (biasanya di sebelah kanan atas IDE Delphi) dan pilih opsi ‘Add’. Ketika muncul jendela browse file, segera pilih file database Anda tadi (latihan.s3db)

menambahkan file database ke dalam project delphi xe 8 android sqlite

Seharusnya tampilan jendela Project Manager akan menjadi seperti gambar di bawah

2016-06-19 13_02_23-ULatSqlite.dproj - Project Manager - tampilan setelah ditambahkan file database - delphi xe8 sqlite

Akhirnya selesai sudah tutorialnya :). Jangan lupa untuk save all semua konfigurasi yang telah Anda lakukan tadi. Jika sudah, running project Anda (F9) ke dalam emulator atau device Android langsung. Berikut ini adalah tampilan awal program setelah di-running di smartphone Android :

Tampilan awal aplikasi Android akses database SQLite dengan Delphi XE 8

Jika sudah terinstal aplikasinya cobalah untuk menekan tombol + untuk menambahkan data dan tombol – untuk menghapus data. Baca kembali script-script yang telah Anda tulis tadi, dan saya yakin sekarang Anda akan semakin mengerti makna dari script yang Anda masukkan tadi :). Selamat bereksperimen 🙂

Tampilan setelah insert data - aplikasi Android akses database SQLite dengan Delphi XE 8

Tampilan saat entry data ke database :

InputQuery di aplikasi android untuk insert data ke databse sqlite - delphi xe 8

Tutorial di atas memang panjang, tapi jika Anda sudah terbiasa saya yakin Anda akan dengan cepat membuat aplikasi database di Android. Ohya, dalam buku saya ‘Membangun Aplikasi Android dengan Delphi XE 8”, saya tulis contoh-contoh lain dalam mengakses database SQLite di Android. Dalam buku ini saya jelaskan pula cara cepat bikin aplikasi database di Android, bagaimana mengakses field di tabel dengan cara yang lebih efisien, bagaimana bekerja dengan dua field atau lebih dalam satu tabel, bagaimana menampilkan data dengan dbGrid dan dBNavigator, bagaimana me-manage database SQLite dengan tampilan visual (SQLite Manager), dll. Pokoknya banyak, dah :). Silahkan pesan sebelum kehabisan 🙂 

Incoming search terms:

delphi android dengan database, delphi database xe8, delphi xe menggunakan sqlite, delphi xe8 membuat login form android, how konek amdroid to pc delphi xe, koneksi database mysql di delphi xe8, koneksi sqlite delphi xe, koneksi sqlite delphi xe android, koneksi sqlite dengan delphi, livebidings designer terdapat pada menu
7 Comments

Add a Comment

Your email address will not be published. Required fields are marked *

error: Content is protected !!