01 Koneksi db4 PDF
01 Koneksi db4 PDF
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 :
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 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
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 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.
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"
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
(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 ?
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;
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
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