Anda di halaman 1dari 13

Membuat Aplikasi Database

menggunakan
Delphi
Bagian I Koneksi Database
Pengantar
Tulisan ini dibuat sebagai pengantar bagi anda untuk mempelajari pembuatan aplikasi database
menggunakan program Delphi. Sebelum mempelajari tulisan ini, saya berasumsi bahwa anda
sudah :
mengenal lingkungan kerja delphi, dari mulai komponen, events, membuka, menyimpan,
menjalankan program dst
mengenal tipe data yang bisa digunakan dalam delphi
mengenal konsep database dan dapat membuat file database, dalam hal ini menggunakan
Ms. Access
memahami/mengenal perintah-perintah SQL (Structured Query Language)
Contoh program dalam tulisan ini menggunakan Delphi Enterprise Versi 7, database Microsoft
Access versi 2002 dan untuk laporan menggunakan Quick Report.
Bahasan pada tulisan ini mungkin pernah dibahas sebelumnya oleh penulis lain, akan tetapi saya
kira tidak ada salahnya untuk sedikit dibahas kembali. Salah satu kendala yang menyebabkan
bangsa kita tertinggal dalam bidang teknologi informasi menurut pendapat saya adalah kurangnya
pemahaman/ penguasaan terhadap Bahasa Inggris, dikarenakan sebagian besar dokumentasi
tentang teknologi informasi ditulis dalam Bahasa Inggris termasuk bahasa pemograman itu sendiri.
Tulisan yang akan dibuat akan saya penggal menjadi beberapa bagian, dan untuk bagian pertama
ini, bahasan yang akan disuguhkan antara lain:
Mengenal arsitektur database dalam aplikasi berbasis Delphi
Koneksi data menggunakan ADO, disertai contoh program
Untuk bagian selanjutnya akan dibahas berdasarkan contoh program, karena biasanya
pemahaman melalui praktek lebih cepat dari pada pemahaman melalui teori.
Semoga bermanfaat.

Aplikasi database menyediakan fasilitas bagi pengguna (user) untuk berinteraksi dengan informasi
yang tersimpan dalam database. Database menyediakan struktur informasi yang dapat dipakai
bersama oleh berbagai aplikasi (program).
Delphi mendukung pembuatan aplikasi menggunakan relational database. Relational database ini
menyimpan informasi berupa tabel-tabel, yang berisi beberapa baris (records) dan kolom (fields),
kemudian tabel-tabel ini dimanipulasi menggunakan operasi sederhana yang dikenal dengan
relational calculus.
Ketika anda mendesain aplikasi database, anda harus mengerti betul bagaimana data tersebut
diatur dan disimpan dalam database. Berdasarkan pengaturan tadi anda dapat mendesain tampilan
pengguna (user interface) untuk menampilkan data ke pengguna dan menyediakan fasilitas untuk
memasukan informasi baru atau memodifikasi data yang sudah ada, yang dikenal dengan entry
data.
Konsep database yang lebih rinci dan bagaimana pengaturan informasi dalam database tidak akan
dibahas dalam tulisan ini.

Arsitektur Database
Aplikasi database dibangun berdasarkan beberapa elemen tampilan (user interface elements),
yaitu komponen-komponen yang mewakili informasi database (datasets), dan komponenkomponen yang terhubung satu sama lain dan yang terhubung ke sumber informasi database.
Bagaimana cara anda mengatur komponen-komponen tersebut, itulah arsitektur dari aplikasi
database yang anda buat.
Dari sekian banyak cara untuk mengatur komponen-komponen dalam aplikasi database, yang
paling umum dipakai menggunakan aturan (skema) sebagai berikut :

The user interface form (Form tampilan pengguna)


Disarankan untuk memisahkan form tampilan pengguna dengan komponen-komponen database
agar desain aplikasi menjadi lebih fleksibel, antara lain : perubahan pada informasi database, tidak
selalu harus juga mengubah tampilan pengguna (UI), begitupun sebaliknya.
Data module
Jika anda sudah memisahkan form tampilan pengguna kedalam form tersendiri, maka anda dapat
menggunakan data module untuk menyimpan komponen-komponen database (datasets), dan
komponen yang terhubung ke datasets ini untuk digunakan bagian lain pada aplikasi anda.
Data source
Datasource menjembatani antara form tampilan pengguna dengan komponen datasets yang
mewakili informasi dari database. Beberapa komponen data kontrol (data-aware controls) dalam
sebuah form dapat menggunakan 1 datasource saja, sehingga pada saat pengguna berpindah
baris (record), maka nilai informasi baris aktual akan ikut berubah pada masing-masing komponen
data kontrol tersebut.

Dataset
Jantungnya aplikasi database anda adalah dataset. Komponen ini merepresentasikan kumpulan
baris (records) dari database. Kumpulan baris ini dapat berupa data dari satu tabel database,
kumpulan kolom (fields) atau baris (records) dari sebuah tabel, atau informasi yang berasal dari
satu tabel atau lebih yang terhubung menjadi sebuah view.
Data connection
Beberapa dataset yang berbeda menggunakan mekanisme yang berbeda dalam hal koneksi ke
informasi database. Perbedaan mekanisme ini membuat perbedaan besar dalam arsitektur aplikasi
yang dapat anda buat. Terdapat 4 mekanisme dasar untuk koneksi data, yaitu:
Koneksi langsung ke sebuah server database
Menggunakan sebuah file terdedikasi
Koneksi ke dataset lain
Mengambil data dari objek RDS DataSpace.
Kadang kala, semua mekanisme tersebut tergabung/terdapat dalam sebuah aplikasi.

Koneksi langsung ke server database


Arsitekur database yang paling umum adalah menggunakan sebuah komponen penghubung
(connection component) untuk membuat koneksi ke sebuah server database. Kemudian dataset
mengambil data secara langsung dari server dan perubahan langsung disimpan ke server (posts
edits). Ilustrasinya dapat digambarkan sebagai berikut :

Koneksi ke database
Hampir semua komponen dataset dapat koneksi ke server database secara langsung. Sekali
terhubung, dataset dapat berkomunikasi dengan server secara langsung. Ketika dataset di buka,
dataset tersebut mengumpulkan data dari server, dan ketika menyimpan perubahan (post
records), data tersebut di kirim kembali ke server untuk kemudian disimpan dalam database.
Sebuah komponen koneksi dapat digunakan beberapa dataset, atau setiap dataset dapat
menggunakan properti koneksinya masing-masing.
Setiap dataset yang terhubung ke server database menggunakan jenis komponen koneksinya
masing-masing, yang di desain untuk bekerja pada sebuah mekanisme akses data (single data
access mechanism). Berikut ini daftar beberapa mekanisme akses data beserta komponen
koneksinya :
Database connection components
Data access mechanism
Borland Database Engine (BDE)
ActiveX Data Objects (ADO)
dbExpress
InterBase Express

Connection component
TDatabase
TADOConnection
TSQLConnection
TIBDatabase

Untuk lebih jelasnya, dapat diuraikan sebagai berikut :


Jika dataset yang digunakan adalah BDE, seperti TTable, TQuery atau TStoredProc, maka
komponen koneksi yang digunakan adalah TDatabase. Untuk menghubungkan dataset ke
database cukup dengan mengubah properti Database-nya. Sebenarnya anda tidak harus
selalu menggunakan komponen database (TDatabase) ketika menggunakan komponen
dataset BDE. Jika anda mengubah properti DatabaseName pada dataset, maka sebuah
komponen database tercipta otomatis pada saat aplikasi dijalankan.

Jika dataset yang digunakan adalah ADO, seperti TADODataSet, TADOTable, TADOQuery
atau TADOStoredProc, maka komponen koneksi yang digunakan adalah TADOConnection.
Untuk menghubungkan dataset ke koneksi ADO cukup dengan mengubah properti
Connection-nya. Sama halnya dengan dataset BDE, anda tidak harus selalu menggunakan
komponen koneksi (TADOConnection), yaitu dengan cara mengubah properti
ConnectionString pada dataset-nya.

Jika dataset yang digunakan adalah dbExpress, seperti TSQLDataSet, TSQLTable,


TSQLQuery atau TSQLStoredProc, maka komponen koneksi yang digunakan adalah
TSQLConnection. Untuk menghubungkan dataset ke TSQLConnection cukup dengan
mengubah properti SQLConnection-nya. Ketika menggunakan dataset dbExpress anda
harus selalu menggunakan komponen koneksinya (TSQLConnection). Perbedaan lainnya
dibandingkan dataset yang lain adalah dbExpress selalu read-only dan unidirectional,
dalam artian anda hanya bisa mengakses baris (records) secara berurutan, dan anda tidak
dapat menggunakan komponen dataset yang mendukung pengeditan.

Jika dataset yang digunakan adalah InterBase Express, seperti TIBDataSet, TIBTable,
TIBQuery atau TIBStoredProc, maka komponen koneksi yang digunakan adalah
TIBDatabase. Untuk menghubungkan dataset ke komponen database IB, cukup dengan
mengubah properti Database-nya. Sama seperti dataset dbExpress, anda harus selalu
menggunakan komponen koneksinya (TIBDatabase).

Sebagai tambahan selain komponen diatas, anda dapat menggunakan dataset client khusus
(specialized client dataset) seperti TBDEClientDataSet, TSimpleDataSet atau TIBClientDataSet dan
komponen koneksi databasenya.
Meskipun setiap tipe dataset menggunakan komponen koneksi yang berbeda, hampir semua
mengerjakan pekerjaan yang sama dan mempunyai beberapa properties, methods dan events
yang hampir sama.

Koneksi data menggunakan ADO


Untuk memperjelas pemahaman tentang koneksi database, maka berikut ini contoh latihan koneksi
yang akan dibuat menggunakan ADO.
Fokus Bahasan :
- TADOConnection, TADOTable
Berikut ini langkah-langkahnya :
1) Buka Ms. Accsess, kemudian buat sebuah database bernama DataGudang menggunakan
Ms. Access yang berisi tabel supplier, dengan kolom-kolom sebagai berikut:
SUPPLIER
Field Name
MSP_ID
MSP_KODE
MSP_SUPPLIER
MSP_CONTACT
MSP_ALAMAT
MSP_TELP
MSP_KETERANGAN
MSP_AKTIF

Data Type
Number
Text
Text
Text
Text
Text
Text
Text

Field Size
Long Integer
10
30
30
50
30
50
1

Keys
Primary Key

Default Value

"Y"

2) Buka Delphi, buat aplikasi baru, dan tempatkan komponen-komponen : 1 buah


ADOConnection, 1 buah ADOTable, 1 buah Datasource, 1 buah DbNavigator dan 1 buah
DbGrid. Kemudian atur propertinya sbb :
Components
ADOConnection1

ADOTable1

DataSource1
DBNavigator1
DBGrid1

Properties
ConnectionString
Connected
Login Prompt
Connection
TableName
Active
Dataset
Datasource
ShowHint
Datasource

Value
* (Lihat penjelasan di bawah)
True
False
ADOConnection1
SUPPLIER
True
ADOTable1
DataSource1
True
DataSource1

Tampilan Form1 setelah diubah propertinya :

* Untuk ConnectionString pada ADOConnection1, ikuti langkah-langkah berikut :


(1) Klik tanda elipsis (), maka akan muncul dialog :

(2) Pilih Use Connection String, laku klik Build, akan muncul dialog :

(3) Pilih Microsoft Jet 4.0 OLE DB Provider lalu klik Next>>, akan muncul dialog :

Kemudian isi kolom Select or enter a database name: dengan nilai sesuai dengan
alamat folder dan nama dari database yang akan diakses, dalam hal ini
DataGudang.mdb (terletak pada folder E:\ Latihan\ 01\ ), dengan cara mengklik tombol
elipsis () disampingnya. Contoh kolom yang telah terisi :

(4) Lakukan tes koneksi, dengan menekan tombol Test Connection, jika koneksi berhasil
akan muncul dialog :

(5) Kemudian kilik OK beberapa kali, sehingga ConnectionString akan terisi dengan nilai :
Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\Latihan\01\DataGudang.mdb;Persist Security Info=False

Jika anda mengubah properti Connected menjadi True, maka akan muncul dialog :

Karena database anda tidak mempunyai password maka kosongkan lalu pilih OK.
Dialog ini akan selalu muncul setiap kali anda melakukan koneksi ke database. Untuk
menghilangkan dialog ini, ubah properti LoginPrompt menjadi False.
3) Simpan program (Save All) dengan nama unit Ulat01.pas dan project Latih01.dpr. Jalankan
program (Run), maka program latihan pertama database anda telah selesai.

Kalau anda perhatikan bahwa kunci untuk menghubungkan aplikasi dengan database, terletak
pada komponen ADOConnection1 pada properti ConnectionString. Seperti pada contoh diatas,
database terletak pada folder : E:\Latihan\01\. Berbagai pertanyaan mungkin akan muncul,
diantaranya :
Bagaimana kalau aplikasi tidak selalu pada folder tersebut ?

Atau demi keamanan data, database yang digunakan menggunakan password, bagaimana
cara mengaksesnya ?
Pada dbgrid nama kolom saya rasa kurang user friendly, karena ada kode-kode tertentu
seperti MSP_ID, MSP_KODE. Bagaimana mengubahnya atau saya mau tidak semua kolom
ditampilkan ?

Sentuhan akhir program


Semua pertanyaan di atas akan terjawab pada bagian ini.
Jika folder database tidak selalu berada pada folder yang sama anda dapat mengubahnya pada
saat runtime (aplikasi dijalankan).
Dan untuk mengakses database yang terproteksi dengan password, maka pada properti
ConnectionString pada komponen TADOConnetion tambahkan keyword :
Jet OLEDB:Database Password=""

diantara tanda petik diisi password database anda.


Berikut langkah-langkahnya :
1) Membuat password database pada Ms. Access.
Untuk membuat password database pada Ms. Access, maka database tersebut harus
dibuka secara eksklusif. Jika anda masih bekerja pada delphi dan file latihan diatas
terbuka, maka anda harus memutuskan koneksinya, dengan cara mengubah properti
Connected pada komponen ADOConnection1 menjadi False.
Jalankan Ms. Access, kemudian pada menu pilih Open, tentukan database yang dimaksud
(DataGudang.mdb, cukup di klik saja), pada tombol Open pilih Open Exclusive. Setelah
database terbuka, pada menu Tools|Security pilih Set Database Password, maka dialog sbb
akan muncul :

Isi kolom password dan verify dengan nilai yang sama, sebagai contoh masukkan kata
Huhuy, tanpa tanda petik tentunya. Kemudian pilih OK, maka database anda sudah
terproteksi.
2) Untuk mengubah ConnectionString pada saat runtime, misalnya pada saat form diciptakan
(FormCreate), tambahkan kode program dibawah ini, dengan cara memilih komponen
Form1 kemudian pada Object Inspector klik Events kemudian klik ganda OnCreate (atau
anda juga bisa langsung kilik ganda pada Form1) :
procedure TForm1.FormCreate(Sender: TObject);
var
FileDB: string;
begin
// Tentukan letak file database anda
// Dalam hal ini database selalu berada pada folder yang sama dengan aplikasi
FileDB:= ExtractFilePath(Application.ExeName) + 'DataGudang.mdb';
// Ubah Connection string
ADOConnection1.Connected:= False;
ADOConnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + FileDB + ';Persist Security Info=False;' +
'Jet OLEDB:Database Password="Huhuy"';

10

ADOConnection1.Connected:= True;
// Buka tabel supplier
ADOTable1.Open;
end;

3) Jalankan program, maka program database yang terproteksi telah selesai.

Untuk mengubah nama kolom pada DbGrid, klik kanan di atas DbGrid lalu pilih menu Columns
Editor (atau anda juga bisa kilik ganda pada DBGrid), akan muncul dialog :

Anda bisa mengambil kolom dari tabel menggunakan tombol Add New, tetapi agar lebih praktis
anda bisa mengambil semua kolom dari tabel dengan menggunakan tombol Add All Fields (tombol
ketiga). Untuk mengaktifkan tombol Add All Fields, maka anda harus membuka dahulu dataset
yang terhubung ke DbGrid tersebut, dalam hal ini ADOTable1 property Active ubah menjadi True.
Setelah di klik tombol Add All Fields, maka dialog akan berubah menjadi :

Setiap kolom mempunyai properti-nya masing-masing, dan untuk mengubah judul kolom terletak
pada properti Title.Caption, sedangkan untuk menyembunyikan kolom tertentu terletak pada
properti Visible.

11

Lakukan perubahan pada kolom-kolom sesuai yang anda kehendaki.


Berikut ini contoh aplikasi setelah dilakukan beberapa penyesuaian :

Tips :
Sebaiknya komponen koneksi dan komponen dataset dihubungkan ke database saat
runtime dan hanya dataset yang diperlukan saja yang dibuka, sebagai contoh
TADOConnection property Connected-nya di set True dan TADOTable property Active di
set True saat runtime. Hal ini akan menghemat waktu saat loading aplikasi.
Jika data dalam tabel pada database anda berjumlah banyak, sebaiknya anda menghindari
penggunaan TADOTable, dikarenakan sifat dari TADOTable yang akan mengambil semua
baris data (records) pada tabel tersebut pada saat TADOTable tersebut dibuka. Anda bisa
menggunakan TADODaset atau TADOQuery yang bisa memilih record yang diperlukan
saja.
Usahakan tidak menyimpan data gambar (BLOB/ OLE Object) pada database, selain proses
pengambilannya memakan waktu, ukuran database anda akan berkembang dengan cepat.

Catatan :
Konsep koneksi database diatas berlaku pada hampir semua jenis DBMS (Database Management
System), antara lain : Ms. SQL Server dan Oracle, anda hanya perlu melakukan beberapa
penyesuaian saja. Jadi anda tidak perlu khawatir jika suatu saat database yang digunakan bukan
Ms. Access. Penggunaan Ms. Access pada aplikasi ditujukan untuk alasan kepraktisan saja. Dan
dengan berjalannya waktu dan bertambahnya kemampuan anda, anda akan dapat menentukan
komponen koneksi apa saja paling cocok dengan database tertentu.

Sumber :
Delphi 7.0 Help File
DevGuide: Developing Database Applications
Database architecture
Connecting directly to a database server

12

Biografi Penulis
Bambang Rahmanto, lahir di Bandung 2 Juli 1978. Lulus SMA tahun 1996 di SMAN 20 Bandung.
Lulusan kursus D1-Komputer Programmer pada PPK Widyaloka Bandung pada tahun 1997. Pernah
kuliah pada Jurusan S1 Teknik Informatika STMIK Mardiri Indonesia angkatan 1999/ 2000, tapi
sampai tulisan ini dibuat belum lulus (bukan untuk ditiru). Saat ini bekerja pada salah satu
perusahaan garment di Bandung, sebagai staf programmer. Belajar Delphi semenjak kuliah sampai
dengan sekarang. Dari semua program yang pernah dibuat hampir semuannya menggunakan
Delphi apapun database yang digunakan, mau Oracle, SQL Server atau yang lainnya (Im Delphi
minded, he he). Untuk menambah penghasilan, biasanya menerima pengerjaan perbaikan
komputer/jaringan dan pembuatan program, khususnya yang berbau sistem informasi manajemen.
SIM yang pernah dibuat antara lain : SIM Rumah Sakit, Kepegawaian, Inventory, Accounting,
Otobis, Toserba dan Garment. Untuk mengisi waktu luang, kadang saya membuat program kecil
(semacam tools), program yang pernah dibuat antara lain : Kamus dan Quran. Jika anda
menginginkan program tools tersebut anda bisa menghubungi saya, jangan takut semuanya gratis
kok.
Alamat yang bisa dihubungi : mbambang@gmail.com

13

Anda mungkin juga menyukai