BAB XIII DATABASE PADA DELPHI
Kompetensi Dasar : 1. Mahasiswa mampu mengabungkan antara pemrograman visual Delphi dengan database.
Indikator : 1. Mahasiswa mampu mengkoneksikan database MS Access pada aplikasi menggunakan Delphi. 2. Mahasiswa dapat membuat interface pendukung agar isi database dapat dilihat user. 3. Mahasiswa mampu membuat aplikasi yang bisa mengakses database dan juga dapat melakukan editing data dengan aplikasi tersebut.
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
142
A. Tools dalam Delphi untuk Database Bahasa pemrograman Delphi dapat digunakan untuk berbagai keperluan
baik
perkantoran, pengolah, aplikasi
untuk
perhitungan
matematis,
aplikasi
aplikasi
multimedia,
pembuatan
aplikasi
aplikasi
kontrol
database.
Pada
industri
materi
sampai
ini
akan
kepada
dijelaskan
bagaimana cara mengakses database MS Acces dalam Delphi menggunakan Komponen ADO. Mungkin
anda
pernah
atau
bahkan
sering
mengembangkan
program database dengan Delphi atau Visual Basic. Anda dapat
menggunakan
Access,
dan
database
mungkin
paradox,
anda
dbase
mengalami
maupun
masalah
MS
dalam
distribusi file yang anda bangun mempunyai ukuran yang sangat besar karena anda harus menyertakan file database beserta kelengkapannya. Hal ini tentu tidak menguntungkan terutama jika harus mendistribusikannya lewat email. Disini
akan
dibahas
tentang
aplikasi
database
dengan
bahasa pemrograman Delphi. Untuk mengakses database dalam MS Access, mulai Delphi 5 telah menyediakan komponen ADO yang akan memudahkan dalam mengelola database yang akan kita bangun. Dengan ADO pada Delphi distribusi program hanya membutuhkan file exe dan database-nya (*.mdb) saja. Tentu ini untuk program yang sederhana. Sehingga anda dapat mendistribusikannya dengan mudah. Delphi
mempunyai
database.
banyak
komponen
Komponen-komponen
tersebut
untuk
mengakses
dikelompokkan
ke
dalam page-page pada Component Palette, menurut mekanisme pengaksesannya.
Berikut
beberapa
page
yang
digunakan
untuk pengaksesan database : 1. Page BDE berisi komponen-komponen yang memakai Borland Database
Engine
(BDE).
BDE
berisi
sejumlah
fungsi-
fungsi API untuk berinteraksi dengan database. Page Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
143
ini
berisi
sebelumnya
komponen-komponen berada
di
page
yang
Data
pada
versi
Access,
kecuali
komponen Data Source. 2. Page ADO berisi komponen-komponen yang memakai Active Data Objects (ADO) untuk mengakses database melalui OLEDB.
ADO
adalah
standard
Microsoft.
Ada
banyak
driver untuk berhubungan dengan server-server database yang
berbeda.
Dengan
komponen-komponen
ADO,
dapat
mengintegrasikan aplikasi dalam lingkungan ADO. 3. Page
dbExpress
mengembangkan berhubungan dapat
berisi
aplikasi dengan
digunakan
pengaksesan
komponen-komponen
pada
Linux.
platform
yang
cepat
lain,
misalnya
mengakses
database
unidirectional,
artinya
Untuk
dataset
untuk
dengan
overhead
minimal.
Dataset unidirectional tidak memerlukan buffer data di dalam
memori
sehingga
lebih
cepat
dan
memerlukan
resource lebih sedikit. 4. Page
Interbase
berisi
komponen-komponen
untuk
mengakses database secara langsung. 5. Page
DataAccess
berisi
komponen-komponen
untuk
berhubungan dengan berbagai mekanisme akses.
Pada
saat
merancang
aplikasi
database,
harus
dipilih
komponen-komponen yang diperlukan. Setiap mekanisme data akses
mempunyai
fungsi
yang
berbeda.
Selain
itu
juga
harus mempunyai server database. Server
database
menyimpan
informasi
relational dan
cara
berbeda menangani
dalam
caranya
banyak
pemakai
yang mengakses database secara bersamaan. Ada dua jenis server database : 1. Server database remote berada pada mesin yang berbeda. Kadang-kadang data dari server ini tidak berada dalam Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
144
sebuah
mesin
Meskipun ini
tetapi
cara
penyimpanannya
memberikan
Antarmuka
tersebar
antarmuka
tersebut
di
berbeda,
logis
adalah
beberapa
yang
server.
tetapi
server
bersifat
Structured
Query
umum.
Language
(SQL). Oleh karena server tersebut menggunakan SQL, maka disebut SQL Server (nama lainnya adalah Remote Database Server
Management adalah
System
Interbase,
atau
RDBMS).
Oracle,
Contoh
Sybase,
SQL
Informix,
Microsoft SQL Server, dan DB2. 2. Database Lokal berada di drive loka atau pada sebuah LAN
(jaringan
bersama-sama,
area
lokal).
diperlukan
Jijka
database
mekanisme
dipakai
locking.
Contoh
database lokal yaitu Paradox, dBase, FoxPro, dan MS Access. Aplikasi
yang
memakai
single-tiered
karena
database aplikasi
lokal dan
disebut
aplikasi
databasenya
memakai
sebuah sistem file. Aplikasi yang memakai server database remote
disebut
aplikasi
two-tiered
atau
multi-tiered
karena aplikasi databasenya beroperasi pada sistem (tier) yang berbeda. Faktor – faktor yang mempengaruhi pemilihan tipe database adalah sebagai berikut : 1. Berapa banyak pemakai yang mengases database. Server database
remote
dirancang
untuk
pengaksesan
bersama
oleh banyak pemakai. Database ini mempunyai mekanisme transaction. mekanisme
Beberapa
ini,
database
tetapi
hanya
lokal
juga
untuk
mempunyai
locking
saja
misalnya Interbase Lokal), tetapi ada juga yang bisa mendukung sistem multi-user. 2. Berapa
banyak
data
di
dalam
tabel.
Database
remote
dapat menampung data lebih banyak dari pada database lokal. Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
145
3. Kecepatan
yang
diinginkan.
Database
lokal
biasanya
lebih cepat dari database remote. Database berisi informasi yang sensitive. Setiap database mempunyai cara proteksi yang berbeda. Misalnya, Paradox dan dBASE hanya memberikan sekuritas pada level tabel atau field. Jika pemakai mencoba mengakses tabel yang diproteksi, maka harus memberikan password. Pemakai yang mempunyai
izin,
hanya
boleh
melihat
beberapa
field
(kolom) saja. Pada
umumnya
password.
Nama
SQL
server
user
akan
memerlukan menentukan
nama
user
dan
tabel-tabel
yang
dapat diakses. Pada saat merancang database, Anda juga harus memikirkan sekuritas yang diperlukan. Jika Anda memberikan password pada
pemakai,
tersebut
harus
Anda
harus
diberikan.
memutuskan Jika
Anda
kapan
password
memakai
database
lokal dan akan mengembangkannya menjadi server SQL ynag lebih besar, seharusnya Anda meminta password pada saat login ke database SQL, bukan pada saat membuka tabel. Pada aplikasi multi-tiered, Anda dapat memakai beberapa sekuritas bersama-sama. Anda dapat memakai HTTP, CORBA, atau COM+, untuk mengakses middle tier, dan middle tier akan menangani semua login ke server database.
B. Transaksi Transaksi
adalah
sekumpulan
aksi
yang
harus
semua
dikerjakan. Jika ada sebuah aksi yang gagal, aksi – aksi lain harus dibatalkan. Transaksi menjamin : 1. Semua pengubahan dalam sebuah transaksi berada dalam salah satu dari tiga keadaan berikut : commit(berhasil dikerjakan);
abort
(diberhentikan);
dan
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
roll
back
146
(dikembalikan
ke
keadaan
semula).
Hal
ini
disebut
atomic. 2. Sebuah transaksi adalah transformasi yang benar dari keadaan sistem. Hal ini menunjukkan konsistensi. 3. Transaksi konkuren tidak melihat hasil – hasil parsial (yang
belum
commit),
inkonsistensi
pada
karena
status
dapat
menimbulkan
aplikasi.
Hal
ini
menunjukkan isolasi. 4. Update yang commit mungkin dapat mengalami kegagalan komunikasi,
kegagalan
proses,
dan
kekgagalan
sistem
server. Hal ini menunjukkan durabilitas. Jadi, yang
transaksi terjadi
Pemakai dan
memproteksi
di
antara
berinteraksi
perintah
perintah
lain
di
kegagalan
perintah
dengan tidak
dalam
–
transaksi.
keras
perintah
database.
melalui
transaksi
database
dapat
perangkat
mengganggu Jadi
sql
perintah server
–
akan
melakukan transaksi dengan hasil sukses semua atau gagal semua.
C. Komponen – Komponen Database Bagian
ini
komponen
memberikan
yang
dapat
pengantar
dipakai
mengenai
untuk
komponen
membangun
–
aplikasi
database. 1. Komponen
Table.
Cara
paling
mudah
untuk
mengakses
database adalah menggunakan komponen Table dari page BDE. Komponen Table mengacu ke sebuah tabel database. Pada
saat
memakai
komponen
tabel,
Anda
harus
menyatakan nama database pada property DatabaseName. Anda
dapat
memasukkan
nama
alias
ataumenyatakan
direktorinya. 2. Komponen
Query.
dibandingkan
denagn
Komponen sebuah
ini
lebih
kompleks
table,
karena
memerlukan
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
147
perintah
SQL.
Namun
komponen
Query
lebih
fleksibel
dibandingkan dengan komponen Table. 3. Komponen
StoredProc. Komponen ini mengacu ke stored
procedure yang disimpan di dalam sebuah SQL server. Anda dapat menjalankan procedure – procedure ini dan hasilnya dimasukkan ke dalam sebuah tabel. StoredProc hanya dapat dipakai pada SQL server. 4. Komponen mengontrol
Database.
koneksi.
Komponen
transaksi, Biasanya
ini
dipakai
sekuritas,
dipakai
untuk
dan
untuk
mengontrol
berhubungan
dengan
database remote pada aplikasi client/ server.
D. State dari Dataset Jika Anda bekerja dengan dataset, nda akan bekerja dengan state yang berbeda. State atau modus tersebut menentukan apa yang dapat kita lakukan terhadap data. Misalnya, jika dataset ditutup, statenya adalah dslnactive, berarti Anda tidak adapt melakukkan sesuatu terhadap data. Property State akan menunjukkan state yang berlaku. Tabel berikut ini memberikan nilai state : Nilai dslnactive
Artinya Dataset
ditutup,
data
tidak
dapat
diakses. dsBrowse
Dataset
dibuka,
data
dapat
dilihat
tetapi tidak dapat diubah. Ini adalah state default. dsEdit
Dataset diubah
dibuka. (tidak
Baris dapat
aktif
dapat
dipakai
pada
dataset unidirectional) dslnsert
Dataset
dibuka,
sudah
ditambahkan
sebuah record baru
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
148
dsSetKey
Dataset
dibuka,
Anda
dapat
menyatakan
range
dan
nilai
kunci
yang
dipakai
untuk
menyatakan
range
dan
operasi
pencarian sebuah data. dsCalcFields Datset
dibuka
sedang
dan
event
dijalankan
pengubahan
ONCalcFields
dan
terhadap
mencegah
field-field
yang
tidak dihitung. dsCurValue
Dataset
dibuka
dan
property
dsNewValue
NewValue/OldValue
dsOldValue
sedang dibaca karena terjadi kesalahan-
dari
CurValue/
field-field
kesalahan pada cached update. dsFilter
Dataset
dibuka
dan
operasi
filter
sedang dikerjakan.
Biasanya,
sebuah
aplikasi
mengecek
state
dari
dataset
untuk menentukan kapan sebuah operasi dapat dilakukan. Misalnya, Anda mengecek apakah state adalah dsEdit atau dsInsert untuk melakukan operasi post. Jika
state
berubah,
event
OnStateChange
terjadi
pada
komponen DataSource yang berhubungan dengan dataset.
E. Merancang antarmuka Page
DataControls
memberikan
sekumpulan
komponen
data-
aware untuk menampilkan dan mengubah data dalam database. Komponen-komponen
data-aware
dipakai
untuk
membangun
antarmuka aplikasi database, sehingga data dapat dlihat dan diakses oleh pemakai. Komponen data-aware yanng Anda perlukan bergantung pada beberapa hal :
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
149
1. Jenis
data
yang
akan
ditampilkan.
Anda
dapat
menampilkan data teks, gambar, atau elemen multimedia. 2. Cara menngorganisasikan data. Anda dapat menampilkan data
per
record
atau
dalam
bentuk
daftar
yang
berisikan banyak record, pada sebuah grid. 3. Jenis dataset yang menyediakan data. Misalnya untuk dataset
yang
undirectional,
Anda
tidak
dapat
menggunakan grid. 4. Cara
bergerak
di
dalam
dataset.
Anda
dapat
memakai
komponen data navigator atau memakai komponen sendiri.
Selain
menampilkan
data
dari
tabel,
nda
juga
dapat
membuat antarmuka lain : 1. Anda mungkin dapat meganalisis data dalam database. Aplikasi tetapi rata
seperi
juga –
ini
tidak
menganalisis
rata
hanya
dengan
pencarian
menampilkan proses
maksimum,
data,
penjumlahan,
atau
pencarian
minimum. 2. Anda juga dapat membuat laporan yang bisa dicek. 3. Anda
juga
dapat
membuat
antarmuka
yang
dapat
ditampilkan dengan browser Web.
Tabel
berikut
ini
memberi
penjelasan
singkat
mengenai
setiap komponen pada page DataControls.
Komponen
Deskripsi
DBGrid
Menampilkan tabel.
Setiap
sesuai
(table
dalam
dalam
kolom
dengan
datasetnya Baris
data
gris
bentuk
pada
kolom atau sama
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
grid pada
query). dengan
150
record-record. DBNavigator
Sebagai
alat
navigasi
(bergerak)
di antara record – record, serta untuk mengubah data. DBEdit
Menampilkan data dari sebuah field dalam sebuah kotak edit.
DBText
Menampilkan data dari sebuah field sebagai sebuah label
DBMemo
Menampilkan data dari sebuah field memo atau BLOBB dalam bentuk yang dapat
digulung,
kotak
edit
yang
terdiri atas beberapa baris DBImage
Menampilkan grafik
DBListBox
Menampilkan daftar item yang dapat dipakai untuk mengubah record.
DBComboBox
Menampilkan daftar item yang dapat dipakai juga
untuk
mengubah
record,
dipakai
untuk
dapat
memasukkan
data
dengan
cara
mengetikkan. DBCheckBox
Menampilkan sebuah check box yang menyatakan field boolean.
DBRadioGroup
Menampilkan
sekumpulan
pilihan
untuk sebuah field. DBLookupListBox
Menampilkan diambil lain,
(look
daftar up)
berdasarkan
item dari
yang dataset
sebuah
nilai
item
yang
field. DBLookupComboBox Menampilkan diambil lain,
(look
daftar up)
berdasarkan
dari sebuah
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
dataset nilai
151
field.
Juga
dapat
menerima
data
secara langsung. DBCtrlGrid
Menampilkan beberapa komponen data – aware dalam sebuah grid
DBRichEdit
Menampilkan data dari sebuah field yang
telah
diformat,
ke
dalam
sebuah kotak edit.
Data control merupakan data – aware pada saat desain. Jika data control dihubungkan dengan dataset aktif pada saat desain, Anda langsung dapat melihat datanya. ADOConnection adalah komponen Delphi yang digunakan untuk membangun
koneksi
dengan
data
fisik
menggunakan
terminologi ADO milik Microsoft ADOTable adalah komponen Delphi yang mewakili data fisik dalam aplikasi Delphi yang dibuat DataSource adalah komponen Delphi yang berfungsi untuk memberikan sambungan dengan komponen data kontrol visual milik Delphi lainnya untuk membangun Interface
ADO Delphi Data Fisik Ms.Access (*.MDB) ADOConnection ADOTable
DataSource
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
152
F. PETUNJUK PRAKTIKUM Langkah-langkah menghubungkan database : a. Dalam
Delphi,
buat
Aplikasi
Baru
(File
–
New
–
Application)
b. Tambahkah Komponen ADOConnection (dari Tab ADO) ADOConnection
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
153
c. Klik elipsis (…) pada properti ConnectionString
d. Pilih Use Connection String e. Klik Build
f. Dari Jendela Data Link Properties a) Dalam Tab Provider, b) Pilih Microsoft Jet 4.0 OLE DB Provider c) Klik Next
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
154
g. Dalam Tab Connection a) Klik Elipsis (…) dari Select or Enter a database name b) Buka File Contoh Data (SampleData.MDB) c) Hapus User Name d) Klik Test Connection
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
155
h. Tambahkan
beberapa
object
kontrol
ke
Form
dan
sesuaikan Propertisnya seperti dibawah ini. Object
Property
Pengaturan
Form1
Caption
Koneksi Database
TTable
Action
True
Name
TbVendor
TableName
Alamat database
Name
Covendor
DataSet
TbVendor
Name
GridVendor
DataSource
coVendor
TBitBtn
Caption
Selesai
DBNavigator1
Name
DBNavigator1
DataSource
coVendor
TDataSource
TDataGrid
i. Untuk alamat
TableName pada Ttable dapat diisikan data database-nya.
Microsoft
Visual
Misalnya
Studio\
C:\Program
Vb98\
Files\
biblio.mdb
Pada
TbitBtn isikan source seperti dibawah ini. procedure TForm1.BitBtn1Click(Sender: TObject); Begin application.Terminate; end;
j. Tambahkah
Komponen
ADOTable
(dari
Tab
ADO)
dan
DataSource (dari Tab Data Access ) ADOTable DataSource
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
156
k. Set Properties dari ADOTable 1) Connection Ke Komponen ADOConnection1 yang telah dibuat sebelumnya. 2) TableName ke Author.
l. Set Properties dari DataSource. DataSet Ke Komponen ADOTable1 yang telah dibuat sebelumnya
m. Tambahkah
Komponen
DBGrid
(dari
Tab
DataControls)
untuk menampilkan data secara visual (Interface) DBGrid
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
157
n. Set Properties dari DBGrid. DataSource Ke Komponen DataSource1 yang telah dibuat sebelumnya.
o. Set Properti ADOTable Active menjadi TRUE sehingga data fisik (dalam hal ini BIBLIO.MDB) dapat dibaca dan ditampilkan kedalam komponen DBGrid1
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
158
G. Rangkuman 1.
ADOConnection adalah komponen Delphi yang digunakan untuk membangun koneksi dengan data fisik menggunakan terminologi ADO milik Microsoft
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
159
2.
ADOTable adalah komponen Delphi yang mewakili data fisik dalam aplikasi Delphi yang dibuat
3.
DataSource untuk
adalah
memberikan
komponen sambungan
Delphi
yang
dengan
berfungsi
komponen
data
kontrol visual milik Delphi lainnya untuk membangun Interface
H. Tugas Praktikum (dikumpul diakhir sesi) Selesaikanlah
program
pada
contoh
praktikum.
Tambahkan
tombol-tombol untuk Tambah, Edit, Simpan, Batal, Hapus data. Tambahkan juga tombol Navigator data.
I. Tugas Rumah (dikumpul pada pertemuan berikutnya) Buat sebuah database dengan nama dbsiswa.mdb menggunakan MS Access dengan field sebagai berikut : 1. nim (11) Æ primary key 2. nama (50) 3. jurusan (50) 4. email (40) Berikutnya buat interface dengan delphi sehingga database dbsiswa.mdb penambahan,
terhubung hapus,
dan
dan simpan
dapat data,
diedit sehingga
baik
itu
tampilan
akan seperti berikut :
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
160
Dokumentasikan listing program anda!
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
161
Daftar Pustaka
Sutopo, Anton, Pemrograman Komputer Dasar, 2005, Yogyakarta Teddy Marcus, Zakaria, Pemrograman Delphi untuk Pemula: IDE dan Struktur Pemrograman, 2003, www.ilmukomputer.com
Modul Pemrograman Komputer Dasar, Universitas Muhammadiyah Yogyakarta, 2006
162