Buku Delphi
Buku Delphi
Borland Delphi 7
Delphi 7 merupakan salah satu perangkat lunak atau program pengembangan
aplikasi berbasis object Pascal produksi dari Borland. Sebagai salah satu bahasa
pemrograman Delphi 7 mempunyai keunggulan dari segi produktifitas, yaitu :
Kualitas dari lingkungan pengembangan visual
Kecepatan dari compiler dibandingkan dengan kompleksitasnya
Kekuatan dari bahasa pemrograman dibandingkan dengan kompleksitasnya
Fleksibilitas dari arsitektur basis data
Pola disain dan pemakaian yang diujudkan oleh frameork!nya
Delphi 7 dapat digunakan untuk membuat berbagai jenis aplikasi seperti
permainan "games#, internet, hingga ke aplikasi database. $husus untuk pemrograman
database, Delphi 7 menyediakan fasilitas objek yang kuat dan lengkap yang memudahkan
programmer dalam membuat program. %ormat database yang dapat diakses Delphi 7
adalah format database Parado&, dBase, 'S (ccess, )DB*, SyB(S+, )racle, 'yS,-,
'S S,- Server, .nformi&, .nterbase dan lain!lain.
1.1 Menjalankan Delphi 7
/ntuk memulai atau menjalankan program aplikasi Delphi 7 langkah!langkahnya adalah
sebagai berikut :
0. $lik tombol yang terletak pada bagian 1askbar.
2. Pilih menu
3. Pilih Borland Delphi 7, kemudian klik Delphi 7
Page 0
4. Sesaat kemudian akan muncul tampilan lingkungan kerja Delphi 7 ".D+# seperti
yang ditunjukkan pada gambar 0.0 dibaah ini.
5ambar 0.0 : .D+ Delphi 7
1.2 Mengenal IDE Delphi 7
.D+ ".ntegrated Development +nvironment# Delphi 7 atau lingkungan pengembangan
terpadu merupakan lingkungan kerja Delphi 7 yang terbagi menjadi delapan bagian
utama, yaitu :
0. 'ain 6indo
2. 1oolBar
3. *omponent Palette
4. %orm Designer
7. )bject 1ree8ie
9. )bject .nspector
7. *ode +ditor
:. *ode +&plorer
Page 2
.D+ merupakan sebuah lingkungan di mana semua tombol perintah yang diperlukan
untuk mendisain aplikasi, menjalankan dan menguji suatu aplikasi disajikan dengan baik
untuk memudahkan pengembangan program.
1.2.1 Main Window
5ambar 0.2 : 'ain 6indo
'ain 6indo atau jendela utama adalah bagian dari .D+ yang mempunyai fungsi yang
sama dengan semua fungsi utama dari program aplikasi 6indos lainnya. ;endela utama
Delphi 7 terbagi menjadi tiga bagian, yaitu :
a. 'ain 'enu
b. 1oolbar
c. *omponent Palette
Main Menu
5ambar 0.3 : 'ain 'enu
Dengan menggunakan fasilitas dari menu utama "main menu#, (nda dapat memanggil
atau menyimpan program. Pada dasarnya semua perintah yang (nda berikan dapat
ditemukan pada bagian menu utama ini.
1.2.2 Toolbar (Speedbar)
5ambar 0.4 : 1oolbar
Delphi 7 memiliki beberapa toolbar yang masing!masing memiliki perbedaan fungsi dan
setiap tombol pada bagian toolbar berfungsi sebagai pengganti suatu menu perintah yang
Page 3
sering digunakan. Pada kondisi default Delphi 7 memiliki tujuh bagian toolbar, antara
lain: Standard, 8ie, Debug, *ustom, *omponen Palette, Desktops dan .nternet.
1ombol!tombol yang terletak pada bagian toolbar dapat ditambah atau dikurangi sesuai
kebutuhan. Prosedur perintah yang dapat (nda gunakan untuk menambah atau
mengurangi tombol pada bagian toolbar adalah :
0. $lik kanan pada bagian toolbar dan pilih *ustomi<e
5ambar 0.7 : $otak Dialog 1oolbar
2. Sehingga muncul kotak dialog *ustomi<e, lalu pilih tab *ommands
5ambar 0.9 : $otak Dialog *ustomi<e
3. /ntuk menambah tombol pada bagian toolbar, pilihlah ikon tombol perintah
yang terdapat pada kotak *ommands kemudian tariklah ikon tersebut ke
bagian toolbar. Bila telah selesai klik *lose.
4. /ntuk mengurangi tombol perintah yang terletak pada bagian toolbar, pilihlah
ikon tombol perintah pada toolbar dan kemudian tarik ikon tersebut keluar dari
toolbar.
Page 4
1.2.3 o!ponen" #ale""e
5ambar 0.7 : *omponent Palette
*omponent Palette berisi kumpulan icon yang melambangkan komponen!komponen yang
terdapat pada 8*- "8isual *omponent -ibrary#. Pada *omponent Palette (nda akan
menemukan beberapa page control seperti Standard, (dditional, 6in32, System, Data
(ccess dan lain!lain seperti pada gambar 0.7. .con component terdapat di setiap page
control. Page control ini dipakai untuk memilih icon component.
1.2.$ %or! De&igner
5ambar 0.: : %orm Designer
%orm merupakan suatu objek yang dapat dipakai sebagai tempat untuk merancang dialog
program aplikasi. %orm berbentuk sebuah meja kerja yang dapat diisi dengan komponen!
komponen yang diambil dari *omponent Palette. Pada saat (nda memulai Delphi 7,
Delphi 7 akan memberikan sebuah form kosong yang disebut %orm0, seperti gambar 0.:
diatas ini.
Page 7
Page Control
Icon
Component
Sebuah form mengandung unit yang berfungsi untuk mengendalikan form dan (nda dapat
mengendalikan komponen!komponen yang terletak dalam form dengan menggunakan
)bject .nspector dan *ode +ditor.
1.2.' (bje)" In&pe)"or
)bject .nspector terdiri dari dua tab, yaitu Properties dan +vents seperti gambar 0.=
dibaah ini. Pada aalnya yang kelihatan hanya tab Properties sedangkan tab +vents
tidak kelihatan, untuk menampilkan klik tab +vents
5ambar 0.= : )bject .nspector
)bject .nspector digunakan untuk mengubah properti atau karakteristik dari sebuah
komponen pada posisi tab Properties, sedangkan pada posisi tab +vents digunakan untuk
memilih dan membuka events procedure.
1.2.* (bje)" Tree+iew
)bject 1ree8ie menampilkan diagram pohon dari komponen!komponen yang bersifat
visual maupun nonvisual yang telah terdapat dalam form, data module, atau frame. )bject
1ree8ie juga menampilkan hubungan logika antar komponen. (pabila (nda mengklik
kanan salah satu item yang terdapat di dalam diagram pohon, (nda dapat melihat konteks
menu komponen versi sebelumnya. /ntuk mengakses menu secara penuh, klik kanan
pada komponen yang sama dalam form, data module, atau frame.
1.2.7 ode Edi"or
Pada saat (nda memulai Delphi 7, code editor ini tidak kelihatan. /ntuk menampilkannya
klik icon 1oggle pada toolbar sehingga code editor ditampilkan seperti gambar 0.0>.
Page 9
5ambar 0.0> : *ode +ditor
*ode +ditor merupakan tempat di mana (nda dapat menuliskan kode program. Pada
bagian ini (nda dapat menuliskan pernyataan!pernyataan dalam )bject Pascal. Satu
diantara keuntungan bagi pengguna Delphi 7 adalah baha (nda tidak perlu menuliskan
semua kode!kode program sumber, karena Delphi 7 telah menyediakan kerangka
penulisan sebuah program seperti pada gambar 0.0>.
1.2., ode E-plorer
*ode +&plorer merupakan fasilitas baru yang terdapat di dalam Delphi 7 yang tidak
ditemukan pada versi!versi sebelumnya. *ode +&plorer digunakan untuk memudahkan
pemakai berpindah antar file unit yang terdapat di dalam jendela *ode +ditor. /ntuk
menutup *ode +&plorer, klik tanda cross yang terdapat di sudut kanan atas, dan untuk
membukanya kembali pilih menu +iew ode E-plorer dari menu utama atau klik
kanan dalam jendela *ode +ditor kemudian pilih 8ie +&plorer.
1.3 .egunaan Menu Delphi 7
1.3.1 Menu %ile
'enu %ile berisi perintah!perintah dasar yang sering digunakan yang berhubungan dengan
pengoperasian file.
Submenu Fungsi
?e 'embuat objek baru berupa project dan form
?e @ (pplication 'embuat Projek baru. Perintah ini akan menutup projek
sebelumnya, membuka code editor baru dengan nama
/nit0.Pas, dan form baru dengan nama %orm0.
Page 7
Code
Explorer
?e!*-A
(pplication
'embuat kelompok projek baru dengan aplikasi single cross
plaform di dalamnya. (nda dapat menggunakan objek *-A
untuk membuat aplikasi platform untuk 6indos atau
-inu&. %ile form tersebut akan dihubungkan dengan aplikasi
*-A yang memiliki ekstensi &fm.
?e @ Data 'odule 'embuat data module baru, dan selanjutnya akan
ditampilkan kontainer data module pada Desktop. 'odule
ditambahkan di dalam projek yang berlaku.
?e! %orm 'embuat form baru yang masih kosong
?e @ %rame 'embuat frame baru yang masih kosong yang akan
ditambahkan di dalam projek yang aktif.
?e! /nit 'embuat unit baru di dalam jendela code editor
)pen 'embuka sebuah objek. )bjek tersebut dapat berupa sebuah
program atau project.
)pen Project 'embuka Project lama.
Beopen 'embuka objek terakhir yang pernah (nda buka
sebelumnya.
Save 'enyimpan form yang sedang aktif.
Save (s 'enyimpan form yang aktif dengan nama baru.
Save Project (s 'enyimpan project yang aktif dengan nama baru.
Save (ll 'enyimpan semua object yang aktif.
*lose 'enutup form. ;ika form belum (nda simpan, maka Delphi
akan menampilkan kotak konfirmasi tentang penyimpanan
file.
*lose (ll 'enutup semua object yang aktif.
/se /nit 'embuka sebuah unit untuk project yang aktif.
Print 'encetak item Delphi yang sedang terpilih.
+&it 'enutup program aplikasi Delphi.
1.3.2 Menu Edi"
'enu +dit berisi perintah@perintah yang digunakan untuk menyunting teks program
dalam jendela code editor, menyunting komponen@komponen yang terletak pada bagian
form designer dan beberapa item lainnya.
Submenu Fungsi
/ndo 'embatalkan perintah terakhir yang pernah anda berikan
Bedo 'engulang perintah terakhir yang pernah anda berikan.
*ut 'emotong teks atau objek yang sedang terpilih
*opy 'enyalin teks atau objek yang sedang terpilih
Paste 'eletakkan atau menampilkan teks atau objek yang telah anda
*ut atau *opy pada posisi tertentu yang anda kehendaki
Delete 'enghapus teks atau objek yang sedang di pilih
Select (ll 'emilih seluruh teks atau objek
(lign to 5rid 'erapikan atau mengatur peralatan objek terpilih terhadap posisi
titik@titik grid dalam form
Page :
Bring to %ront 'eletakkan objek terpilih pada posisi teratas di antara objek lain
yang terdapat dalam form
Send to Back 'eletakkan objek terpilih pada posisi terbaah diantara objek
lain yang terdapat dalam form
(lign 'engatur perataan objek@objek terpilih dalam form, baik secara
vertikal maupun hori<ontal
Si<e 'engatur ukuran lebar dan tinggi objek@objek yang terpilih
Scale 'engubah ukuran seluruh objek yang akan di aktifkan apabila
anda menggunakan tombol tab untuk memindah posisi objek
yang aktif pada saat form yang telah anda buat dijalankan
*reation )rder 'engubah urutan komponen non visual yang akan di aktifkan
apabila anda menggunakan tombol tab untuk memindahkan
posisi komponen non visual yang aktif pada saat form yang telah
anda buat di jalankan
%lip *hildren 'emutar komponen@komponen yang terdapat dalam form secara
horisontal
-ock *ontrol 'engunci seluruh komponen yang terdapat dalam form sehingga
anda tidak di perkenankan untuk mengubah ukuran dan
memindahkan posisi komponen@komponen tersebut.
1.3.3 Menu Sear)h
'enu Search berisi perintah@perintah yang digunakan untuk mencari dan menyunting
teks program dalam jendela code editor.
Submenu Fungsi
%ind 'encari teks tertentu dalam code editor
%ind in files 'encari teks tertentu dalam code editor yang terletak dalam
file lain
Beplace 'encari teks tertentu dan menggantinya dengan teks lain
dalam code editor
Search (gain 'engulangi perintah pencarian teks yang pernah anda berikan
sebelumnya.
.ncremental search 'encari teks tertentu yang akan anda ketik. ;alankan perintah
ini sehingga akan tampak teks Searching for : pada bagian
code editor dan kemudian ketik yang akan anda cari
5o to -ine ?umber Pindah menuju baris program tertentu pada jendela code
editor
%ind +rror 'encari kesalahan@kesalahan program yang ada dalam
jendela code editor
1.3.$ Menu +iew
'enu 8ie berisi perintah yang digunakan untuk menampilkan atau menyembunyikan
jendela@jendela tertentu dalam Delphi 7.
Page =
Sub!enu %ung&i
Project 'anager 'enampilkan kotak dialog project manager yang digunakan
untuk mengelola struktur hirarki dari suatu project
)bject .nspector 'enampilkan jendela object inspector yang digunakan untuk
mengubah nilai properti dan membuka events procedure
komponen@komponen yang digunakan dalam form
)bject 1ree8ie 'enampilkan jendela objet treevie yang digunakan untuk
menampilkan diagram pohon objek yang terdapat dalam form
(ligment Palette 'enampilkan toolbar align yang berisi tombol perintah untuk
mengatur perataaan komponen@komponen yang terdapat dalam
suatu form
1o Do -ist 'enampilkan item@item tugas yang dibutuhkan untuk
melengkapi pekerjaan dalam project yang berlaku. (nda dapat
mengurutkan item@item tersebut sesuai dengan urutan abjad,
status, atau berdasarkan prioritas dengan mengklik kolom yang
di sediakan
Broser 'enampilkan kotak dialog project broser
*ode +&plorer 'enampilkan kotak dialog code e&plorer
*omponent -ist 'enampilkan kotak dialog komponen yang berisi daftar nama
komponen Delphi 7
6indos -ist 'enampilkan daftar nama jendela yang sedang dalam kondisi
aktif yang dapat anda pilih
(dditional
'essage .nfo
'enampilkan kotak dialog 'essage Cints
Debug 6indos 'enampilkan kotak dialog Debug
Desktops 'enampilkan submenu Desktops yang berfungsi untuk
mengolah dekstops
1oggle formDunit Berpindah dari form designer ke code editor dan sebaliknya
/nits 'enampilkan dan mengaktifkan daftar nama unit yang terdapat
dalam project
%orms 'enampilkan dan mengaktifkan daftar nama form yang
terdapat dalam project
?e edit 6indo 'embuka jendela code editor baru
1oolbar 'enampilkan daftar nama toolbar yang sedang diaktifkan atau
disembuyikan
1.3.' Menu #roje)"
'enu Project berisi perintah@perintah yang berhubungan dengan pengolahan suatu
project.
Sub!enu %ung&i
(dd to project 'enambahkan unit yang pernah anda buat sebelumnya
kedalam project yang sedang aktif
Bemove from project 'enghapus unit yang terdapat di dalam project yang
sedang aktif
Page 0>
.mport 1ype -ibrary 'emasukkan type -ibrary lain kedalam sistem program
Delphi 7
(dd to Bepository 'emasukkan program aplikasi yang telah anda buat
kedalam daftar repository. Program aplikasi yang telah
dimasukkan dalam daftar repository dapat dipanggil
kembali dengan menggunakan file @ ne
8ie Source 'enampilkan kode program sumber project yang sedang
aktif
-anguange 'engubah tatanan penterjemah "resource dll# pada project
anda
(dd ne project 'enambahkan item baru kedalam kelompok project
(dd +&iting project 'enambahkan project lain yang pernah anda buat
sebelumnya kedalam kelompok project
*ompile Project 'embentuk file kompilasi berakhiran +A+ yang dapat
dieksekusi setiap saat untuk file@file dalam project aktif
Build Project 'embangun kembali semua komponen yang terdapat
dalam project yang aktif yang telah mengalami perubahan
Synta& *heck Project 'engkompilasi module@module project yang tidak terikat
dengan project tersebut. Perintah ini digunakan untuk
mengecek kode dari kesalahan@kesalahan yang mungkin
terjadi pada saat proses kompilasi
*ompile (ll Project 'embentuk file kompilasai dengan akhiran +A+ untuk
seluruh file project yang sedang aktif
Build (ll Project 'embangun kembali semua komponen yang terdapat
dalam seluruh project yang aktif yang telah mengalami
perubahan
)ptions 'enampilkan kotak dialog )ptions
1.3.* Menu /un
'enu Bun digunakan untuk menjalankan program dan melihat jalannya program. (nda
juga dapat memantau jalannya program dengan memperhatikan prosedur yang dijalankan.
Sub!enu %ung&i
Bun 'engkompilasi dan menjalankan program aplikasi yang telah
anda buat
(ttach to Process 'emeriksa proses beberapa aplikasi yang sedang dijalankan,
dan menampilkan daftar proses program aplikasi yang sedang
dijalankan oleh komputer lokal. Pilih sebuah proses dari daftar
dan klik dua kali pada attach untuk memulai pemeriksaan
Parameters 'enentukan parameter aal untuk program aplikasi anda
Steep )ver 'enjalankan baris program satu persatu dalam suatu prosedur
1race info 'enjalankan baris program satu persatu dalam suatu prosedur
yang saling berhubungan
1race to ne&t
source line
'enjalankan program dalam suatu prosedur dan akan berhenti
bila menemukan baris perintah dalam suatu prosedur berikutnya
Page 00
Bun to *ursor 'enjalankan program hanya sampai pada lokasi kursor dalam
code editor
Bun until return 'enjalankan program sampai program mengeksekusi perintah
return
Sho +&ecution
point
'enampilkan posisi kursor dalam jendela code editor
Program pause 'enghentikan program secara sementara
Program reset 'enghentikan program secara permanen
+valuate D 'odify 'enampilkan kotak dialog +valuateD'odify, dimana anda
dapat mengevaluasi atau mengubah nilai pernyataan yang ada
(dd 6atch 'embuka kotak dialog 6atch properties. Dimana anda dapat
memodifikasi atch
(dd Breakpoint 'embuka kotak dialog breakpoint, dimana anda dapat
membuat dan memodifikasi break!point
1.3.7 Menu o!ponen"
'enu *omponent digunakan untuk menambah atau menginstal komponen!komponen
baru.
Submenu Fungsi
?e *omponent 'embuat komponen baru
.nstall *omponent 'enginstal komponen baru
.mport (ctiveA
*ontrol
'enambah type library kontrol@kontrol (ctiveA kedalam
project Delphi 7
.nstall Packages 'enginstal paket@paket komponen yang telah disediakan
Delphi 7
*onfigure Palette 'embuka kotak dialog palette properties untuk mengatur
komponen!komponen dalam jendela component palette
1.3., Menu Da"aba&e
'enu Database digunakan untuk membuat, mengubah atau melihat database.
Submenu Fungsi
+&plorer 'embuka Database +&plorer atau S,- +&plorer
S,- 'onitor 'embuka S,- 'onitor
%orm 6i<ard 'embuat form melalui Database form i<ard yang
berfungsi untuk menampilkan data dari suatu database
1.3.0 Menu Tool
'enu 1ool digunakan untuk mengubah option dan memanggil Database Desktop dari
menu Delphi 7.
Page 02
Submenu Fungsi
+nvironment )ptions 'enentukan konfigurasi Preferences, -ibrary nama Path,
dan mengubah tampilan *omponent Palette
+ditor )ptions 'enentukan konfigurasi editor
Dabugger )ptions 'enampilkan kotak dialog Debugger )ptions
Bepository 'enampilkan kotak dialog )bject Bepository
1ranslation 1ool
)ptions
'enampilkan kotak dialog translation 1ool )ptions yang
digunakan untun mengkonfigurasikan translations tools
1ranslation
Bepository
'enampilkan 1ranslation Bepository
Begenerate *orba
.D- %iles
Digunakan untuk membangun aplikasi client atau server
dengan menggunakan %ile .D- @ Based
*onfigure 1ools 'enampilkan kotak dialog 1ool )ptions. 5unakan kotak
dialog ini untuk menambah perintah, mengahapus perintah,
atau mengubah perintah pada menu 1ools
Database Desktop 'enampilkan Database Desktop dimana anda dapat
membuat, menampilkan, mengurutkan, memodifikasi, dan
mengolah tabel ,uery dalam program Parado&, dBase, dan
%ormat S,-
Package *ollection
+ditor
'embuat dan menyunting package collections "kumpulan
Paket#
A'- 'apper 'embuka kotak dialog A'- 'aping 1ool
Bave Designer 'embuka program Bave Beports untuk membuat laporan
.mage +ditor 'embuka lembar kerja .mage +ditor
1.$ Me!bua" #rogra! 1plika&i Delphi 7
/ntuk membuat sebuah program aplikasi dengan Delphi 7, yang harus (nda lakukan
adalah membuat sebuah project, menambah form kedalam project, meletakkan atau
menambahkan komponen!komponen pada form, menulis kode program pada code editor,
dan mengeksekusi atau menjalankan program tersebut untuk melihat hasilnya. Setelah
program yang (nda buat selesai, (nda dapat membuatnya menjadi file e&ecutable ".e&e#
dan menyimpannya dalam media penyimpanan atau harddisk. Berikut ini adalah cara!cara
untuk membangun sebuah aplikasi dengan Delphi 7.
1.$.1 Me!bua" &ebuah #roje)"
/ntuk membuat sebuah program aplikasi 6indos pada Delphi 7 maka (nda harus
membuat sebuah project. Pada aktu (nda menjalankan program Delphi 7 secara
bersamaan (nda telah membuat sebuah project. Bila (nda ingin membuat sebuah project
baru, klik!lah menu %ile, lalu pilih ?e, kemudian pilih (plication dan bila muncul
pilihan Save, ?o, *ancel pilihlah ?o.
1.$.2 Mena!bah %or!
Page 03
Setelah (nda membuat sebuah project, sekarang (nda dapat membuat sebuah program
aplikasi. Pada aktu (nda menjalankan program Delphi 7 atau membuka project baru
maka secara otomatis ditambahkan sebuah form. Bila program aplikasi yang ingin dibuat
membutuhkan lebih dari satu form, (nda harus menambah form kedalam project. ;umlah
form yang ditambahkan kedalam project tergantung kebutuhan dari program aplikasi yang
dibuat. /ntuk menambah sebuah form kedalam project, klik!lah menu %ile, lalu pilih
?e, kemudian pilih %orm. (tau klik icon ?e %orm " # pada 1oolbar.
1.$.3 Mena!bah .o!ponen pada %or!
/ntuk membuat sebuah program aplikasi (nda perlu menambahkan komponen kedalam
form. ;enis dan jumlah komponen yang ditambahkan disesuaikan dengan kebutuhan, atau
dengan kata lain tergantung dari kebutuhan program aplikasi yang dibuat. ;enis komponen
yang ditambahkan dapat dipilih dari salah satu page control Standard, (dditional, 6in32,
System, atau yang lainnya sesuai kebutuhan. Pada umumnya setiap program aplikasi yang
dibuat memerlukan komponen -abel, +dit, dan Button dari page control Standard.
/ntuk lebih jelasnya, buatlah sebuah program aplikasi segiempat untuk menghitung luas
dan keliling persegi panjang dengan input panjang dan lebar. 1ampilan di layar dirancang
sendiri misalnya seperti gambar 0.00 yang ditunjukkan dibaah ini :
5ambar 0.00 : 1ampilan Program (plikasi Segiempat
Berdasarkan rancangan tampilan di layar seperti gambar 0.00, maka dibutuhkan empat
komponen -abel dan +dit, serta tiga komponen Button. /ntuk menambahkan komponen!
komponen tersebut didalam form lakukan langkah!langkah berikut :
Cara pertama
Page 04
0. $lik icon -abel " # pada component palette page control standard seperti yang
ditunjukkan pada gambar 0.02 dibaah ini.
5ambar 0.02 : 'emilih icon -abel
2. $emudian arahkan penunjuk mouse pada form seperti gambar 0.03 dibaah ini.
5ambar 0.03 : -etak penunjuk mouse pada form
3. -alu klik, sehingga hasilnya seperti gambar 0.04 dibaah ini.
5ambar 0.07 : Casil menambah komponen -abel pada form
Cara kedua
0. Double klik icon -abel " # pada component palette page control standard, lalu
hasilnya seperti yang ditunjukkan pada gambar 0.09 dibaah ini, yaitu ditambahkan
satu komponen -abel dengan nama -abel2 yang letaknya berada ditengah!tengah
form.
Page 07
5ambar 0.09 : Casil menambah komponen -abel2
2. /ntuk mengatur letak komponen -abel2 sesuai dengan yang diinginkan, misalnya
berada di baah -abel0, maka lakukan dengan cara mengarahkan penunjuk mouse
ke -abel2, lalu klik dan tahan tombol mouse jangan dilepas, kemudian arahkan
penunjuk mouse ke baah -abel0 seperti yang ditunjukkan pada gambar 0.07, lalu
lepas tombol mouse dan hasilnya seperti yang ditunjukkan pada gambar 0.0:.
5br 0.07 : (rah penunjuk mouse 5br 0.0: : Casil memindah -abel2
/ntuk menambah komponen +dit, Button, dan komponen yang lainnya kedalam form
dapat dilakukan seperti menambah komponen -abel dengan cara yang pertama atau cara
yang kedua. *ara yang lebih efektif adalah cara yang pertama. /ntuk melengkapi kompo!
nen yang dibutuhkan dalam membuat program aplikasi segiempat, tambahkan lagi dua
komponen -abel, empat komponen +dit, dan tiga Button. Casilnya seperti pada gbr 0.0=.
Page 09
5ambar 0.0= : Casil menambah komponen -abel, +dit, dan Button
Setelah komponen ditambahkan sesuai kebutuhan, maka langkah selanjutnya dilakukan
merubah atau mengganti nilai properti dari komponen tersebut. /ntuk merubah nilai
properti komponen dapat dilakukan secara langsung setelah satu komponen ditambahkan
atau setelah semua komponen ditambahkan. Biasanya tidak semua properti komponen
dirubah nilainya, tetapi hanya beberapa saja.
Sebelum suatu komponen dirubah nilai propertinya, maka komponen tersebut harus
diaktifkan terlebih dahulu. (da tiga cara untuk mengaktifkan suatu komponen yaitu :
Cara pertama
$lik komponen yang ingin diaktifkan pada )bject 1ree8ie, misalnya komponen
Button2 seperti gambar 0.2> dibaah ini.
5ambar 0.2> : 'emilih komponen dari )bject 1ree8ie
Cara kedua
$lik icon pembuka " # pada )bject .nspector, lalu pilih dari daftar pilihan komponen
yang ingin diaktifkan, misalnya komponen +dit2 seperti pada gbr 0.20 dibaah ini.
Page 07
5ambar 0.20 : 'emilih komponen dari )bject .nspector
Cara ketiga
$lik komponen yang ingin diaktifkan pada form, misalnya komponen Button0 dan
hasilnya seperti yang ditunjukkan pada gambar 0.22.
5ambar 0.22 : 'emilih komponen dari form
Page 0:
Setelah suatu komponen diaktifkan, maka komponen tersebut dikelilingi kotak!kotak
kecil pada form, lalu namanya dan propertinya ditampilkan pada )bject .nspector serta
pada )bject 1ree8ie namanya ditandai dengan latar belakang seperti yang ditunjukkan
pada gambar 0.22.
/ntuk merubah nilai properti suatu komponen langkah!langkahnya adalah sbb. :
0. (ktifkan komponen yang ingin dirubah nilai propertinya, misalnya -abel0
2. Pastikan baha tab Properties yang diaktifkan pada )bject .nspector, bila tidak
kliklah tab Properties. -alu klik properti yang ingin dirubah nilainya, misalnya
properti *aption seperti yang ditunjukkan pada gambar 0.23 dibaah ini.
5ambar 0.23 : 'emilih properti komponen
3. $lik nilai properti pada kolom sebelah kanan, lalu rubah nilainya, misalnya ganti
menjadi P(?;(?5 seperti yang ditunjukkan pada gambar 0.24 dibaah ini.
5ambar 0.24 : 'erubah nilai properti
Page 0=
*ontoh kedua untuk merubah nilai properti adalah ulangi langkah 2 misalnya klik properti
*olor, lalu klik icon pembuka " # dan pilih nilai properti cl(ctiveBorder seperti yang
ditunjukkan pada gambar 0.27 dibaah ini.
5ambar 0.27 : *ontoh kedua merubah nilai properti
*ontoh ketiga untuk merubah nilai properti adalah ulangi lagi langkah 2, misalnya pilih
properti %ont "bila tidak kelihatan gulung jendela )bject .nspector keatas#, lalu klik icon
elipsis " #, dan pilih %ont 'S Serif, dan pilih %ont style Bold, dan pilih %ont si<e 0>,
dan terakhir klik tombol )$. /ntuk lebih jelasnya lihat gambar 0.29!27 dibaah ini.
5ambar 0.29 : *ontoh ketiga merubah nilai properti "a#
Page 2>
5ambar 0.27 : *ontoh ketiga merubah nilai properti "b#
(gar semua komponen ini sesuai dengan tampilan program aplikasi segiempat, seperti
pada gambar 0.00 rubahlah properti komponen!komponen yang lainnya sesuai ketentuan
dibaah ini.
.o!ponen #roper"i 2ilai
-abel2 *aption -+B(B
-abel3 *aption -/(S
-abel4 *aption $+-.-.?5
+dit0 1e&t EdikosongkanF
+dit2 1e&t EdikosongkanF
+dit3 1e&t EdikosongkanF
+dit4 1e&t EdikosongkanF
Button0 *aption .?P/1
Button2 *aption C.1/?5
Button3 *aption *-)S+
%orm0 *aption PB)5B(' (P-.$(S. S+5.+'P(1
1.$.$ Menuli& .ode #rogra!
$ode program adalah sederetan pernyataan!pernyataan atau instruksi!instruksi untuk
mengerjakan sesuatu, dan ditulis dalam code editor atau unit, tepatnya pada bagian event
procedure. $ode program ini akan dikerjakan bila terjadi suatu event terhadap komponen.
'isal bila di!klik Button0 maka dikerjakan kode program event procedure Button0*lick.
Page 20
Sebelum menulis kode program, maka event procedure harus dipanggil atau dibuka
terlebih dahulu. /ntuk membuka event procedure, harus diketahui event apa yang akan
terjadi terhadap suatu komponen, apakah event )n*lick, )nDbl*lick, )n*hange,
)n+nter, )n+&it, dll. Pada program aplikasi segiempat diatas, seaktu program
dijalankan maka pertama sekali diisi panjang dan lebar lalu klik Button2, kemudian kalau
ingin menghitung lagi klik Button0, kalau tidak klik Button3. Dengan ini berarti event
yang terjadi adalah event )n*lick terhadap Button0, Button2, dan Button3 sehingga event
procedure yang akan dibuka adalah event )n*lick untuk Button0, Button2, dan Button3.
/ntuk membuka event procedure ini lakukan langkah!langkah sebagai berikut :
0. (ktifkan komponen Button0
2. $lik tab events pada jendela )bject .nspector seperti gambar 0.2: dibaah ini
5ambar 0.2: : 'emilih tab events 5ambar 0.2= : 'emilih event procedure
3. $lik event )n*lick, lalu double klik pada kolom kosong sebelah kanan seperti gambar
0.2= diatas, sesaat kemudian dibuka event procedure seperti gambar 0.3> dibaah ini
5ambar 0.3> : 'embuka event procedure Button0*lick
Page 22
Setelah membuka event procedure selanjutnya menulis kode program, bagaimana kode
program yang akan ditulis sesuai dengan hasil yang diinginkan bila terjadi suatu event
terhadap komponen. Pada program aplikasi segiempat diatas, bila di!klik Button0 maka
hasil yang diinginkan adalah mengosongkan properti te&t komponen +dit0 hingga +dit4
sehingga kode program yang ditulis adalah seperti pada gambar 0.30 dibaah ini.
5ambar 0.30 : $ode program event procedure Button0*lick
/ntuk membuka event procedure Button2*lick dan Button3*lick ulangi seperti langkah
diatas atau double klik pada komponen Button2 dan Button3 didalam form, lalu tulis kode
program seperti gambar 0.32 dibaah ini.
5ambar 0.32 : $ode program event procedure Button2*lick dan Button3*lick
Page 23
1.' Menjalankan #rogra! 1plika&i
/ntuk melihat hasil dari program aplikasi yang dibuat, program aplikasi tersebut harus
dieksekusi atau dijalankan. (da tiga cara untuk menjalankan program aplikasi seperti
yang diuraikan dibaah ini.
Cara pertama : $lik menu Bun, lalu pilih Bun
Cara kedua : 1ekan tombol %= pada keyboard
Cara ketiga : $lik icon Bun pada toolbar seperti gambar 0.33 dibaah ini
5ambar 0.33 : 'emilih icon Bun
Setelah dipilih salah satu cara diatas, kemudian ditampilkan dialog "interface# program
aplikasi yang dibuat seperti yang dirancang didalam form. Pada program aplikasi
segiempat diatas, dialog yang ditampilkan seperti gambar 0.34 dibaah ini, lalu isikan
data pada kolom panjang dan lebar misalnya 0> dan 7, kemudian klik C.1/?5 sehingga
ditampilkan hasil pada kolom luas dan keliling seperti gambar 0.37 dibaah ini.
5ambar 0.34 : Dialog program segiempat 5ambar 0.37 : Casil program segiempat
Bila ingin menghitung lagi klik .?P/1, lalu ketikkan lagi data baru pada kolom panjang
dan lebar, kemudian klik lagi C.1/?5 dan ditampilkan hasil yang baru pada kolom luas
dan keliling. Bila tidak ingin menghitung lagi, untuk mengakhiri program klik *-)S+.
Page 24
1.* Men3i!pan #rogra! 1plika&i
(gar program aplikasi terdokumentasi dan dapat dipergunakanDdiedit kembali pada aktu
yang akan datang, maka program aplikasi tersebut harus disimpan. Sebelum disimpan
buat terlebih dahulu folder "directory# penyimpanan pada drive * atau yang lainnya,
misalnya *:GPetronG*thProgram. /ntuk menyimpan program aplikasi lakukan langkah!
langkah sebagai berikut.
0. $lik icon Save (ll " # pada toolbar, atau klik menu %ile lalu pilih Save (ll. Setelah
itu pilih folder penyimpanan, misalnya *:GPetronG*thProgram dan hasilnya ditampilkan
seperti gambar 0.39 dbaah ini.
5ambar 0.39 : Dialog penyimpanan
2. 1ulis nama file untuk /nit0 pada kolom %ile name, misalnya Segi4H/0 lalu klik Save
seperti pada gambar 0.37 dibaah ini.
5ambar 0.37 : 'enulis nama file /nit0
Page 27
3. 1ulis nama file untuk Project0 pada kolom %ile name, misalnya Segi4Hpr lalu klik Save
seperti gambar 0.3: dibaah ini.
5ambar 0.3: : 'enulis nama file Project0
Bila ada beberapa form yang digunakan dalam project, maka langkah kedua akan
dikerjakan sebanyak form yang ada. Bila dilakukan pengeditan terhadap program aplikasi,
maka untuk menyimpan kembali ulangi langkah pertama saja.
1.7 Me!bua" %ile E-e
Program aplikasi yang dibuat hanya dapat dijalankan dari program Delphi 7 saja. (gar
program aplikasi tersebut dapat dijalankan tanpa menggunakan program Delphi 7, perlu
dibuat %ile +&e dengan cara sebagai berikut :
0. $lik menu Project, lalu pilih submenu *ompile seperti gambar 0.3= dibaah ini.
2. $lik lagi menu Project, lalu pilih submenu Build seperti gambar 0.4> dibaah ini. %ile
+&e yang dibuat berada di directory tempat penyimpanan program aplikasi.
5ambar 0.3= : 'emilih menu *ompile 5amabar 0.4> : 'emilih menu Build
Page 29
1., Me!buka #roje)" 4a!a
Program aplikasi yang dibuat biasanya disimpan dalam media penyimpanan, untuk tujuan
dokumentasi dan agar dapat diedit atau dimanipuasi kembali. Program aplikasi yang telah
disimpan "project lama# dapat dibuka kembali dengan cara sebagai berikut :
0. $lik icon )pen Project " # pada toolbar, atau klik menu %ile lalu pilih )pen
Project.
2. Setelah itu pilih directory "folder# penyimpanan, misalnya *:GPetronG*thProgam seperti
gambar 0.40 dibaah ini.
3. $emudian pilih nama file project yang akan dibuka, misalnya Segi4Hpr lalu klik )pen,
seperti gambar 0.40 dibaah ini. Bila ditampilkan jendela konfirmasi seperti gambar
0.42 dibaah ini, klik Ies untuk menyimpan project yang sedang dibuka, klik ?o bila
tidak ingin menyimpan project yang sedang dibuka.
5ambar 0.40 : 'emilih %ile Project
Page 27
5ambar 0.42 : ;endela konfirmasi
Tipe Data, Operator,
Variabel, Dan Konstanta
$ode program pada code editor atau unit sebagian dibuat sendiri oleh Delphi 7
dan sebagian lagi harus dituliskan oleh pembuat program. $ode program ini dapat berupa
komentar, tipe data, operator, variabel, konstanta, dll. Pada bab ini akan membahas
mengenai pendeklarasian dan penggunaan variabel dan konstanta, berbagai macam tipe
data, dan operator yang dipakai pada Delphi 7.
2.1 +ariabel
Bila suatu program aplikasi dijalankan maka biasanya di input suatu data, lalu program
aplikasi mengolah data tersebut, sehingga dihasilkan suatu nilai. Data yang di input dan
nilai yang dihasilkan membutuhkan suatu tempat tampungan yang disebut dengan
variabel. ;adi variabel merupakan tempat untuk menampung nilaiDdata yang bersifat
sementara karena disimpan dalam memori komputer. ?ilaiDdata yang diisikan kedalam
variabel harus sesuai dengan tipe data dari variabel tersebut. Bila dibutuhkan suatu tempat
tampungan nilaiDdata maka suatu variabel harus didefinisikan atau dideklarasikan dengan
memberikan nama variabel dan menentukan tipe datanya. Dalam memberikan nama
variabel pembuat program diberikan kebebasan untuk menentukannya namun demikian
ada ketentuan yang harus diikuti seperti dibaah ini :
0. ?ama variabel hanya berupa huruf, angka, dan garis baah "underscore#
2. Carus diaali dengan huruf, selanjutnya boleh kombinasi ketiganya
3. 'inimal 0 karakter, tetapi yang signifikan hanya 93 karakter
4. 1idak boleh memakai kata yang dipakai oleh Delphi, seperti var, if, then, dll
7. 1idak boleh memakai karakter khusus seperti spasi, J, !, :, K, L, dll
9. Carus bersifat unik atau tidak boleh ada yang sama dalam satu ruang lingkup
Berikut ini beberapa contoh penulisan nama variabel :
2a!a 5ariabel 3ang &ah 2a!a 5ariabel 3ang "idak &ah
$odeH0 0H$ode : diaali dengan angka
(ngka ?ilaiK : memakai karakter khusus
?ilH/mum +lse : kata kunci Delphi
/ntuk mendeklarasikan sebuah variabel, sintaksnya sebagai berikut :
Page 2:
5ar namaHvariabel : tipeHdataM
*ontoh 0 :
*ontoh 2 :
*ontoh diatas mendeklarasikan variabel nama dengan tipe data string, variabel harga dan
jumlah dengan tipe integer, variabel nilaiHjual dan ppn dengan tipe data real. 8ariabel
harga dan jumlah karena tipe datanya sama dapat dideklarasikan seperti contoh 0,
demikian juga variabel nilaiHjual dan ppn.
2.2 .on&"an"a
$onstanta adalah sebuah variabel yang isinya D nilainya bersifat tetap atau tidak berubah.
$onstanta sifatnya sama seperti variabel, perbedaannya hanya konstanta nilainya tetap
sedangkan variabel nilainya dapat berubah!ubah. Sama seperti variabel, konstanta juga
harus dideklarasikan sebelum memakainya dengan sintaks sebagai berikut.
)on&" namaHkonstanta N nilaiHkonstantaM
Page 2=
*ontoh dibaah ini mendeklarasikan sebuah konstanta persenppn dengan nilai 0>O atau
>.0>, dan konstanta judul dengan nilai P?ilai PenjualanQ. Penulisan untuk suatu nilai
konstanta yang bertipe teks atau string diapit oleh tanda petik tunggal "R#.
*ontoh :
2.3 .o!en"ar
$omentar dipakai untuk memberikan penjelasan atau keterangan di dalam kode program.
1eks yang ditulis sebagai komentar tidak dikompilasi oleh kompiler pada saat program
aplikasi dijalankan. /ntuk menuliskan sebuah komentar, (nda dapat menggunakan salah
satu tanda dari tiga bentuk tanda yang disediakan, yaitu :
$urung kuraal : E $omentar program F
$urung bintang : "S $omentar programS#
Slash ganda : DD $omentar program
$omentar dengan tanda kurang kuraal dan kurung bintang digunakan pada aal dan
akhir dari komentar, sehingga teks yang dianggap sebagai komentar adalah teks yang
terletak di antara tanda kurung kuraal dan kurung bintang. Sedangkan komentar dengan
tanda slash ganda hanya digunakan di aal komentar, sehingga semua teks yang terletak
di belakang tanda slash ganda dianggap sebagai komentar. Sebagai contoh lihat komentar
yang dicetak tebal pada kode program dibaah ini.
procedure 1%orm0.Button2*lick"Sender: 1)bject#M
{mendeklarasikan variabel}
var panjang, lebar, luas, keliling : BealM
begin
(*input variabel panjang dan lebar*)
panjang :N Str1o%loat"+dit0.1e&t#M
lebar :N Str1o%loat"+dit2.1e&t#M
//menghitung luas dan keliling
luas :N panjang S lebarM
Page 3>
keliling :N 2 S " panjang J lebar #M
//menampilkan hasil luas dan keliling
+dit3.1e&t :N %loat1oStr"luas#M
+dit4.1e&t :N %loat1oStr"keliling#M
endM
2.$ Tipe Da"a
Data yang diolah program aplikasi mempunyai tipe tertentu. (ntara data yang satu dengan
yang lainnya mungkin perlu dibedakan tipenya. Cal ini berkaitan erat dengan operasi!
operasi tertentu yang dikenakan kepadanya, dan ukuran media penyimpanan atau memori
yang dibutuhkan, serta terkait juga dengan ketelitian perhitungan.. )leh karena itu
pemilihan tipe data sangat penting untuk dilakukan, supaya kita dapat menggunakan tipe
data yang sesuai dengan memori yang sedikit dan tingkat ketelitian "presisi# sesuai
kebutuhan.
Pada dasarnya telah disediakan tipe!tipe data dasar "built-in type# yang dapat
dimanfaatkan secara langsung oleh pemrogram, tetapi seringkali tipe!tipe data dasar
tersebut belum mencukupi untuk dipakai dalam penyelesaian kasus tertentu. )leh karena
itu diberikan kebebasan kepada pemrogram agar dapat menciptakan suatu tipe data baru
"user-defined type# yaitu dengan perintah "3pe. Berikut ini akan dibahas beberapa tipe
data yang dimiliki oleh Delphi 7.
a. Tipe In"eger
1ipe data integer digunakan untuk bilangan bulat atau bilangan yang tidak memiliki
angka desimal. 1ipe data integer memiliki beberapa tipe yang tergantung pada rentang
nilai "jangkauan# dan ukuran penggunaan memori.
Tipe Da"a 6angkauan 7kuran
Byte > @ 277 0 Byte
Short.nt !02: @ 027 0 Byte
6ord > @ 97737 2 Byte
Small.nt !3279: @ 32797 2 Byte
.nteger !20474:394: @ 20474:3947 4 Byte
*ardinal > @ 42=4=972=7 4 Byte
-ong.nt !20474:394: @ 20474:3947 4 Byte
-ong6ord > @ 42=4=972=7 4 Byte
.nt94 !2T93 @ 2T93!0 : Byte
b. Tipe /eal
Page 30
1ipe data real digunakan untuk bilangan yang memiliki angka desimal. 1ipe data real
memiliki beberapa tipe yang tergantung pada rentang nilai "jangkauan# dan ukuran
penggunaan memori.
Tipe Da"a 6angkauan 7kuran Signi8i)an"
Beal 7.> & 0>T!324 .. 0.7 & 0>T3>: : Byte 07!09 digit
Beal4: 2.= & 0>T!3= .. 0.7 & 0>T3: 9 Byte 00!02 digit
Single 0.7 & 0>T!47 .. 3.4 & 0>T3: 4 Byte 7!: digit
Double 7.> & 0>T!324 .. 0.7 & 0>T3>: : Byte 07!09 digit
+&tended 3.9 & 0>T!4=70 .. 0.0 & 0>T4=32 0> Byte 0=!2> digit
*omp !2T93J0 .. 2T93 !0 : Byte 0=!2> digit
*urrency
!=223372>39:7477.7:>: ..
=223372>39:7477.7:>7
: Byte 0=!2> digit
$euntungan dari penggunaan tipe data *urrency adalah :
1ipe data *urrency mempunyai ketelitian yang lebih tinggi dalam menangani
bilangan yang cukup besar.
1ipe data *urrency dipakai dalam %ield *urrency dan kompatibel dengan tipe
field database yang menyatakan uang.
). Tipe 9oolean
1ipe data boolean digunakan untuk data logika yang hanya berisi 1rue "Benar# dan
%alse "Salah#. (da tiga tipe data boolean yang dapat digunakan antara lain :
Tipe Da"a 7kuran
ByteBoolDBoolean 0 Byte
6ordBool 2 Byte
-ongBool 4 Byte
Dari empat tipe yang ada disarankan untuk menggunakan tipe boolean, sedangkan
untuk tipe lain hanya digunakan untuk menjaga kompatibilitas dengan program lain
yang menggunakan tipe yang sama. 8ariabel tipe data boolean dapat menerima
penggunaan operator logika (?D, )B, dan ?)1.
d. Tipe hara)"er
1ipe data character digunakan untuk menyatakan karakter dengan hanya satu karakter,
dan terdiri dari tiga tipe yaitu :
Page 32
Tipe Da"a 7kuran .e"erangan
*har 0 Byte 0 karakter (?S.
(nsi*har 0 Byte 0 karakter (?S.
6ide*har 2 Byte 0 karakter /nicode
e. Tipe S"ring
1ipe data string digunakan untuk menyatakan sederetan karakter, misalnya nama,
alamat, kota dan lain!lain. (dapun tipe!tipe dari data string yaitu :
Tipe Da"a 6u!lah Mak&i!u! 7kuran
String 279 karakter 2 @ 279 Byte
ShortString 279 karakter 2 @ 279 Byte
(nsiString 2
30
karakter 4 Byte @ 2 5B
6ideString 2
3>
karakter 4 Byte @ 2 5B
1ipe ShortString berfungsi untuk menyesuaikan kompatibilitas dengan versi
sebelumnya, sedangkan (nsiString dan 6ideString dapat digunakan untuk
menyimpan karakter (?S. dan /nicode.
8. Tipe 1rra3
(rray adalah suatu variabel tunggal yang digunakan untuk menyimpan sekumpulan
data yang sejenis. (nda dapat menyalin array hanya dengan sebuah nama. Dalam tipe
data array digunakan nomor elemen "inde&# pada nama array. -ihat contoh dibaah ini.
8ar
Cari : (rray U0..7V of StringM
Begin
Cari U0V : N RSeninWM
XXXXX
XXXXX
Cari U7V : N R'ingguWM
+ndM
g. Tipe Terbilang dan Subrange
1ipe data terbilang "enumerated# dan subrange digunakan untuk menyatakan data
berurutan yang bertipe sama. 1ipe subrange adalah range dari nilai!nilai tertentu, yang
mempunyai nilai terkecil dan nilai terbesar. -ihat contoh dibaah ini.
1ype Bulan N 0..02M
Page 33
Cari N "Senin,Selasa,Babu,$amis,;umat,Sabtu,'inggu#M
8ar
?hari : CariM
?bulan : BulanM
h. Tipe :i!punan
1ipe himpunan atau set digunakan untuk menyimpan kumpulan nilai, dimana setiap
anggota himpunan mempunyai tipe yang sama. -ihat contoh dibaah ini.
1ype atau 1ype
CimBulan N 0..02M Bulan N Set of 0..02M
Bulan N Set of CimBulanM
8ar
Bln0, Bln2 : BulanM
Begin
Bln0 :N U0,2,3,4,7,9VM
Bln2 :N U7,:,=,0>,00,02VM
*ontoh diatas mendeklarasikan tipe Bulan sebagai himpunan dari bilangan 0 sDd 02.
Dengan pendeklarasian ini (nda bisa mendeklarasikan variabel bertipe Bulan, seperti
yang ditunjukkan pada bagian deklarasi variabel yaitu :
8ar
Bln0, Bln2 : BulanM
Pemberian nilai pada tipe himpunan dilakukan dengan menuliskan anggota himpunan
dalam kurang siku, seperti yang ditunjukkan pada bagian :
Begin
Bln0 :N U0,2,3,4,7,9VM
Bln2 :N U7,:,=,0>,00,02VM
Pada contoh di atas, variabel Bln0 memiliki enam anggota, yaitu bilangan 0,2,3,4,7 dan
9. Sedangkan variabel Bln2 memiliki anggota 7,:,=,0>,00 dan 02.
i. Tipe /e)ord
1ipe data record digunakan untuk menyimpan sekumpulan data yang terdiri dari
elemen!elemen atau field yang saling berhubungan. +lemen!elemen record dapat
mempunyai tipe yang sama atau berbeda. 'isalnya tipe data record yang digunakan
Page 34
untuk menampung data barang terdiri dari kode, nama, dan harga barang. $ode dan
nama dapat dipilih dari tipe data String, sedangkan harga barang dapat dipilih dari tipe
data Beal. -ihat contoh dibaah ini.
1ype
DataBrg N BecordM
$ode : StringM
?ama : StringM
Carga : BealM
endM
8ar
BecBrg : DataBrgM
arBecBrg : (rrayU0..0>>V of DataBrgM
j. Tipe +arian"
1ipe variant adalah data yang tipenya tidak dapat ditentukan pada saat kompilasi,
karena tipe variant dapat berubah!ubah saat aplikasi dijalankan.
*ontoh :
8ar
80, 82, 83 : 8ariantM
Begin
80 :N R $omputerWM Eberisi variant data stringF
82 :N 7M Eberisi variant data integerF
83 :N 1rueM Eberisi variant data booleanF
8ariant dapat diisi dengan semua tipe data yang sederhana, seperti integer, real, string,
boolean dan lain!lain. 8ariant dapat dipakai dengan menggunakan operator J, N, S, D,
div, mod, shl, shr, and, or, &or, not, N, YZ, Y, Z, YN dan ZN.
*ontoh :
8ar
80,82,83 : 8ariantM
Begin
80 :N R0>>>WM
82 :N R2>>>WM
83 :N 3>>>M
80 :N 80J82J83M
+ndM
Page 37
/rutan pembacaan operasi contoh di atas adalah dari kiri ke kanan. )perasi pertama
adalah 80 J 82, karena kedua data bertipe string maka hasilnya adalah penggabungan
dua string, yaitu 0>>>2>>>. $emudian hasil tersebut diubah menjadi integer dan
ditambahkan dengan 83, sehingga hasilnya adalah bilangan bulat 0>>>7>>>.
2.' (pera"or
Dalam melaksanakan proses pengolahan data, Delphi menyediakan berbagai operator
dengan hirarki atau urutan proses pelaksanaan yang berbeda untuk beberapa operator
yang dilibatkan dalam suatu proses. Berikut ini hirarki operator yang dimiliki Delphi.
7ru"an (pera"or
0 [, not
2 S, D, div, mod, and, shl, shr, as
3 J, !, or, &or
4 N, Y,Z, YN, ZN, YZ, in, is
(pabila terdapat ekspresi ( J B D *, maka operasi yang akan dikerjakan terlebih dahulu
adalah B D *, setelah itu hasilnya ditambahkan dengan (. /rutan proses tersebut terjadi
karena operator pembagian mempunyai urutan proses pelaksanaan yang lebih tinggi dari
penjumlahan. ?amun jika bentuk ekspresi diubah menjadi "( J B# D *, maka operasi
yang akan dikerjakan terlebih dahulu adalah "(JB#, lalu hasilnya dikalikan dengan *. Cal
ini menunjukkan baha tanda kurung dapat digunakan untuk mendahulukan proses. Bila
ada proses yang terdiri dari beberapa operator yang mempunyai urutan proses yang sama,
maka urutan proses yang akan dikerjakan dimulai dari kiri ke kanan.
a. (pera"or #e!berian
)perator pemberian "assignment# adalah operator yang dituliskan dengan notasi P;<Q
"titik dua sama dengan# dan berfungsi untuk memasukkan atau memberikan suatu nilai
atau data ke dalam sebuah variabel, dengan sintaks sebagai berikut :
2a!a=+ariabel ;< Ek&pre&i >
*ontoh :
Carga : N 0>>M
;umlah : N 2>M
C1otal : N Carga S ;umlah M
Page 39
b. (pera"or 1ri"!a"ika
Berikut ini adalah operator aritmatika yang dapat digunakan untuk mengerjakan proses
operasi aritmatika.
(pera"or %ung&i
Tipe 3ang
Dipero&e&
Tipe :a&il
#ro&e&
S Perkalian .nteger, Beal .nteger, Beal
D Pembagian real .nteger, Beal .nteger, Beal
J Penjumlahan .nteger, Beal .nteger, Beal
! Pengurangan .nteger, Beal .nteger, Beal
Div Pembagian integer .nteger .nteger
'od Sisa hasil pembagian .nteger .nteger
*ontoh :
(ngka0 : N 07 S 2M ECasil 3>F
(ngka2 : N 0: D 2M ECasil =F
(ngka3 : N 7 J 2M ECasil 7F
(ngka4 : N 7 @ 2M ECasil 3F
(ngka7 : N 0> Div 3M ECasil 3F
(ngka9 : N 0> mod 3M ECasil 0F
Casil pengerjaan 0> div 3 menghasilkan nilai 3 dengan pembulatan ke baah, dan 0> mod
3 menghasilkan nilai 0 karena sisanya 0. Sedangkan untuk operasi perpangkatan, (nda
dapat menggunakan rumus sebagai berikut :
1
b
< e-p ( b ? 4n (1))
*ontoh :
(ngka0 : N 7M
(ngka2 : N 2M
Casil0 : N e&p "(ngka0 S -n "(ngka2##M ECasil 32 dari 2
7
F
Casil2 : N e&p "(ngka2 S -n "(ngka0##M ECasil 27 dari 7
2
F
). (pera"or /ela&i
Page 37
)perator relasi berfungsi untuk membandingkan suatu nilai "ekspresi# dengan nilai
"ekspresi# yang lain dan menghasilkan suatu nilai logika "boolean# yaitu 1rue atau %alse.
$edua nilai yang dibandingkan harus memiliki tipe data yang sama. Berikut ini adalah
operator relasi yang disediakan oleh Delphi.
(pera"or (pera&i Tipe :a&il #ro&e&
N Sama dengan Boolean
YZ 1idak sama dengan Boolean
Y -ebih kecil Boolean
Z -ebih besar Boolean
YN -ebih kecil atau sama dengan Boolean
ZN -ebih besar atau sama dengan Boolean
d. (pera"or 4ogika
)perator logika dibagi menjadi dua kelompok : )perator bit dan operator boolean.
)perator bit berhubungan dengan pergeseran atau pembandingan pada level bit. )perator
boolean digunakan untuk menyatakan satu atau lebih data atau ekspresi logika yang akan
menghasilkan nilai logika "boolean# yang baru 1rue atau %alse.
(pera"or .e"erangan Tipe Da"a Tipe :a&il
(nd Dan .nteger Boolean
)r (tau .nteger Boolean
?ot 1idak .nteger Boolean
Aor +&clusive )r .nteger Boolean
Shl 5eser ke kiri .nteger Boolean
Shr 5eser ke kanan .nteger Boolean
)perator boolean selalu memberikan hasil true atau false, sedangkan operasi bit
melakukan operasi bit per bit pada nilai tipe integer.
(pera"or 9oolean ;
(pera"or .e"erangan Tipe Da"a Tipe :a&il
(nd Dan Booloean Booloean
)r (tau Booloean Booloean
?ot 1idak Booloean Booloean
Aor +&clusive )r Booloean Booloean
Page 3:
)perator logika (nd hanya akan menghasilkan nilai 1rue jika semua ekspresi yang
menggunakan operator (nd bernilai 1rue. (pabila ada satu ekspresi yang bernilai %alse
maka operator logika (nd akan menghasilkan nilai %alse.
*ontoh :
A : N "20 Z =# (nd "0= Y 70#M ECasil A N 1rueF
A : N "20 Y =# (nd "0= Y 70#M ECasil A N %alseF
A : N "20 Z =# (nd "0= Z 70#M ECasil A N %alseF
)perator logika )r akan menghasilkan nilai 1rue jika salah satu dari seluruh ekspresi
yang menggunakan operator )r bernilai 1rue. )perator )r hanya akan bernilai %alse jika
semua ekspresi yang menggunakan operator )r bernilai %alse.
*ontoh :
A : N "20 Z =# )r "0= Y 70#M ECasil A N 1rueF
A : N "20 Y =# )r "0= Y 70#M ECasil A N 1rueF
A : N "20 Y =# )r "0= Z 70#M ECasil A N %alseF
)perator logika ?ot merupakan operator yang menyatakan kondisi kebalikan dari suatu
ekspresi.
*ontoh :
A : N ?ot "20 Z =# ECasil A N %alseF
A : N ?ot "20 Y =# ECasil A N 1rueF
A : N ?ot "20 N =# ECasil A N 1rueF
)perator logika Aor akan menghasilkan nilai 1rue jika ekspresi yang terletak di kiri
operator Aor berbeda dengan ekspresi sebelah kanannya. )perator Aor hampir memiliki
fungsi yang sama dengan operator tidak sama dengan.
*ontoh :
A : N "= Y 20# Aor "0= Y 70#M ECasil A N %alseF
A : N "= Z 20# Aor "0= Z 70#M ECasil A N %alseF
A : N "= Y 20# Aor "0= Z 70#M ECasil A N 1rueF
A : N "= Z 20# Aor "0= Y 70#M ECasil A N 1rueF
2.* 7ni"
Page 3=
Sebuah programDproject pada Delphi dibangun berdasarkan konsep modular yang artinya
program dibagi menjadi modul!modul yang terpisah dan disebut dengan unit. /nit ini
dapat berisi kumpulan function atau procedure, yang dapat juga dipakai oleh program
aplikasi lain. ;adi apabila anda telah membangun sebuah procedure dalam suatu unit,
maka anda dapat memanggilnya dari program lain tanpa harus membuatnya lagi.
Setiap kita membuat sebuah form, maka akan ditambahkan sebuah unit untuk form
tersebut, dengan kata lain setiap form mempunyai sebuah unit. /nit ini berfungsi untuk
mengatur serta mengendalikan segala sesuatu yang berhubungan dengan form. $ita dapat
membuat sebuah unit yang tidak mempunyai form.
Struktur unit pada Delphi 7 mengikuti bahasa pemrograman Pascal. /nit ini terdiri dari
type "termasuk classes#, konstanta, variabel, dan rutin "fungsi dan prosedur#. Sebuah unit
diaali dengan heading unit, lalu diikuti dengan bagian interface, implementation,
initiali<ation, dan finali<ation. Bagian initiali<ation dan finali<ation sifatnya optional.
7ni" ?amaH/nitM { heading unit }
In"er8a)e
7&e& { unit lain (Delphi) yang dipakai }
!!!!
T3pe { deklarasi tipe data }
!!!!
on&" { deklarasi konstanta }
!!!!
+ar { deklarasi ariabel }
!!!!
I!ple!en"a"ion
7&e& { unit lain (dalam pro!ect yang sama) yang dipakai }
!!!!
4abel { deklarasi label }
!!!!
on&" { deklarasi konstanta }
!!!!
T3pe { deklarasi tipe data }
!!!!
+ar { deklarasi ariabel }
!!!!
#ro)edure { subrutin prosedur }
!!!!
%un)"ion { subrutin fungsi }
!!!!
Ini"iali@a"ion { "agian #nitiali$ation }
9egin
!!!!
End>
Page 4>
%inali@a"ion { "agian Finali$ation }
9egin
!!!!
End>
!!!!
End.
(da tiga jenis unit yang dapat dibangun :
/nit yang terikat dengan sebuah form, yaitu unit yang mempunyai bentuk yang paling
umum digunakan
/nit yang hanya digunakan untuk menyimpan function dan procedure
/nit yang digunakan untuk membangun komponen
/nit yang terikat dengan sebuah form mempunyai struktur sebagai berikut :
uni" /nit0M
in"er8a)e
u&e&
6indos, 'essages, Sys/tils, 8ariants, *lasses,
5raphics, *ontrols, %orms, DialogsM
"3pe
1%orm0 N )la&&"1%orm#
pro)edure %orm(ctivate"Sender: 1)bject#M
pri5a"e
{ Priate declarations }
publi)
{ Public declarations }
end>
5ar
%orm0: 1%orm0M
i!ple!en"a"ion
ELB S.dfmF
pro)edure 1%orm0.%orm(ctivate"Sender: 1)bject#M
begin
endM
end.
Berikut ini adalah penjelasan dari masing!masing bagian dalam sebuah unit:
Ceading unit, dinyatakan dengan kata /nit yang diikuti dengan nama unit yang juga
merupakan file unit yang disimpan dengan ekstensi pas.
.nterface, merupakan bagian yang dapat berisi deklarasi tipe data "termasuk kelas#,
konstanta, variabel, procedure atau function. Segala sesuatu yang dideklarasikan pada
bagian ini dapat diakses oleh unit lain. Bagian ini harus diletakkan setelah kata kunci
unit dan sebelum bagian implementation.
Page 40
.mplementation, merupakan bagian yang berisi implementasi metode kelas, procedure
dan function yang telah dideklarasikan pada bagian interface. Bagian ini juga dapat
berisi deklarasi tipe data, variabel, konstanta, procedure atau function yang bersifat
internal terhadap unit. Bagian implementation harus diletakkan setelah kata kunci
interface dan sebelum initiali<ation atau finali<ation "jika ada#.
.nitiali<ation, merupakan tempat untuk melakukan inisialisasi data. bagian ini harus
diletakkan setelah kata kunci implementation dan sebelum end atau finali<ation "jika
ada#.
%inali<ation, merupakan tempat untuk melakukan pembersihan, seperti
mendealokasikan memori. Bagian ini harus diletakkan setelah kata kunci initiali<ation
atau implementation dan sebelum end.
/ses, merupakan klausa yang menyatakan library yang akan dikomplikasi menjadi
file eksekusi. Delphi secara otomatis akan menambahkan beberapa unit yang
dituliskan pada bagian ini. anda juga dapat menambahkan unit buatan anda sendiri
pada bagian ini.
1ype, merupakan bagian yang digunakan untuk mendeklarasikan tipe data.
Private, 'odul dalam suatu private tidak dapat dipanggil dari modul lain. Properti
dalam suatu private tidak dapat dibaca atau dituliskan pada modul lain.
Public, 'odul dalam suatu public dapat dipanggil dari modul lain. Properti dalam
suatu public dapat dibaca atau dituliskan pada modul lain.
8ar, merupakan bagian yang dapat digunakan untuk mendeklarasikan variabel ter!
masuk variabel objek.
ELB S.dfmF, Pada sebuah unit, Delphi menambahkan ELB S.dfmF. .ni sangat penting
karena untuk mengikat form ke file .dfm. ;angan membuang bagian ini.
Menggunakan 7ni"
/ntuk menggunakan unit, anda harus menambahkan nama unit tersebut pada klausa uses.
$lausa uses adalah tempat menuliskan unit!unit yang akan dipakai disebuah
program atau unit. *ontoh berikut menunjukkan penggunaan sebuah unit
yang bernama /nitku. Dan sebuah unit dapat mempunyai dua buah klausa
uses, yaitu pada bagian interface dan bagian implementation.
7ni" /nitkuM
In"er8a)e
7&e& /nitku0M
{bagian deklarasi public}
I!ple!en"a"ion
7&e& /nitku2M
{bagian deklarasi priate}
Page 42
Ini"iali@a"ion
{bagian inisialsasi unit}
%inali@a"ion
{bagian membersihkan unit}
End.
Page 43
er!abangan
dan erulangan
Pada dasarnya kode program yang disebut juga dengan statemen akan dijalankan
secara berurutan mulai dari statemen pertama sampai dengan statemen terakhir. $adang!
kadang diperlukan baha pengerjaan harus melompat dari statemen tertentu ke statemen
yang lain, sehingga kode program tidak lagi dijalankan secara berurutan. Cal demikian
disebut dengan percabangan. Selain itu kadang!kadang diperlukan juga beberapa statemen
harus dikerjakan secara berulan!ulang. Pada bab ini akan membahas mengenai perulangan
dan percabangan.
3.1 #ern3a"aan 9er&3ara"
$adang!kadang diperlukan baha suatu statemen akan dikerjakan bila suatu syarat
"kondisi# terpenuhi. Sebagai contoh, status kelulusan akan diberikan dengan lulus bila
nilai lebih besar dari lima puluh empat. Cal yang demikian disebut dengan pernyataan
bersyarat. (da dua jenis pernyataan bersyarat yang dapat digunakan, yaitu if!then!else
dan case!of.
a. #ern3a"aan I8AThenAEl&e
Pernyataan bersyarat .f!1hen!+lse digunakan untuk menjalankan suatu pernyataan atau
satu blok pernyataan, bila suatu nilai yang diuji terpenuhi. Sintaks dari pada pernyataan if!
then!else adalah sebagai berikut :
i8 YkondisiZ "hen
YpernyataanZM
atau
i8 YkondisiZ "hen
Ypernyatan0Z
el&e
Ypernyataan2ZM
Pada penulisan diatas, Ypernyataan0Z dan Ypernyataan2Z tidak menggunakan kata kunci
begin dan end karena hanya satu pernyataan. ;ika lebih dari satu pernyataan maka harus
menggunakan kata kunci begin dan end. Y$ondisiZ adalah suatu ekspresi logika atau
berupa syarat yang akan diuji. Perintah .f akan menguji ekspresi logika yang ada di
Page 44
sebelah kanannya. ;ika kondisi bernilai 1rue maka akan dikerjakan Ypernyataan0Z. Dan
sebaliknya jika kondisi bernilai %alse maka akan dikerjakan Ypernyataan2Z. Berikut ini
beberapa contoh penulisan .f!1hen!+lse:
8ar
?il(ngka : .ntegerM
Status : StringM
Begin
.f ?il(ngkaZN9> 1hen Status:NW-ulusWM
!!
*ontoh diatas menunjukkan jika variabel ?il(ngka mempunyai nilai lebih besar atau
sama dengan 9> maka variabel Status akan diisi dengan nilai R-ulusW.
8ar
?il(ngka : .ntegerM
Status : StringM
Begin
.f ?il(ngkaZN9> 1hen Status:NW-ulusW +lse Status:NW5agalWM
!!
*ontoh diatas menunjukkan jika variabel ?il(ngka mempunyai nilai lebih besar atau
sama dengan 9> maka variabel Status akan diisi dengan nilai R-ulusW, selain itu jika
variabel ?il(ngka mempunyai nilai lebih kecil dari 9> maka variabel Status akan diisi
dengan nilai R5agalW. *ontoh diatas dapat ditulis dalam bentuk lain seperti dibaah ini :
8ar
?il(ngka : .ntegerM
Status : StringM
Begin
.f ?il(ngkaZN9> 1hen
Status:NW-ulusW
+lse
Status:NW5agalWM
!!
Pada contoh diatas, pernyataan Status:NW-ulusW tidak perlu diakhiri dengan tanda titik
koma. Bila anda menambahkan titik koma, Delphi akan menampilkan pesan kesalahan.
Bila pernyataan yang dituliskan berupa blok pernyataan atau lebih dari satu pernyataan,
anda harus menggunakan kata kunci begin!end dan setiap pernyataan diakhiri titik koma.
Page 47
b. #ern3a"aan a&eA(8
Pernyataan bersyarat case!of digunakan untuk menyederhanakan penggunaan if!then!else
yang terlalu panjang. Canya saja pernyataan ini biasanya dipakai untuk pemilihan dengan
pilihan lebih dari dua. Sebagai contoh, anda dapat mengganti penulisan fungsi if!then!else
menjadi lebih ringkas dan lebih mudah dibaca dengan bentuk penulisan sebagai berikut :
.f "?il(ngka ZN :7# and "?il(ngka YN 0>># 1hen
?ilCuruf :NW(W
+lse .f "?il(ngka ZN 7># and "?il(ngka Y :7# 1hen
?ilCuruf :NWBW
+lse .f "?il(ngka ZN 9># and "?il(ngka Y 7># 1hen
?ilCuruf :NW*W
+lse .f "?il(ngka ZN 77# and "?il(ngka Y 9># 1hen
?ilCuruf :NWDW
+lse .f "?il(ngka ZN ># and "?il(ngka Y 77# 1hen
?ilCuruf :NW+W
+lse
?ilCuruf :NWWM
Dapat diubah menjadi :
*ase ?il(ngka of
:7..0>> : ?ilCuruf :NW(WM
7>..:4 : ?ilCuruf :NWBWM
9>..9= : ?ilCuruf :NW*WM
77..7= : ?ilCuruf :NWDWM
>..74 : ?ilCuruf :NW+WM
+lse ?ilCuruf :NWWM
+ndM
Sintaks dari pada pernyataan case!of adalah sebagai berikut :
*ase YekspresiZ of
Ydaftar!0Z : Ypernyataan!0ZM
Ydaftar!2Z : Ypernyataan!2ZM
!!!
!!!
Ydaftar!nZ : Ypernyataan!nZM
+ndM
Page 49
atau dapat juga ditulis dengan bentuk :
*ase YekspresiZ of
Ydaftar!0Z : Ypernyataan!0ZM
Ydaftar!2Z : Ypernyataan!2ZM
!!!
!!!
Ydaftar!nZ : Ypernyataan!nZM
else
Ypernyataan!&ZM
endM
Y+kspresiZ adalah suatu pernyataan bertipe ordinal "integer atau char#. Program akan
menguji satu per satu YdaftarZ yang ada. ;ika nilai YekspresiZ adalah anggota dari
YdaftarZ tertentu maka pernyataan pada YdaftarZ tersebut akan dikerjakan. Pernyataan
+lse sifatnya optional. ;ika digunakan pernyataan +lse dan tidak ada nilai YekspresiZ
yang sesuai dengan YdaftarZ yang ada, maka yang dijalankan adalah pernyataan yang ada
di bagian +lse. Pada contoh diatas, bila variabel ?il(ngka berisi antara :7 sDd 0>> maka
variabel ?ilCuruf diisi dengan nilai (, tapi bila variabel ?il(ngka berisi antara 7> sDd :4
maka variabel ?ilCuruf diisi dengan nilai B, demikian seterusnya bila ?il(ngka berisi
antara > sDd 74 maka ?ilCuruf diisi dengan +, tetapi bila variabel ?il(ngka berisi selain
dari > sDd 0>> maka variabel ?ilCuruf diisi dengan nilai kosong.
*ontoh berikut ini adalah fungsi *ase untuk menguji suatu subrange yang berisi data
Senin, Selasa, Babu, $amis, ;umat, Sabtu, dan 'inggu :
*ase ?ilai of
Senin,Selasa : Casil :NW0WM
Babu,$amis : Casil :NW2WM
;umat,Sabtu : Casil :NW3WM
'inggu : Casil :NW4WM
+ndM
3.2 #ern3a"aan Bo"o
Pernyataan 5oto merupakan pernyataan yang tidak bersyarat dan dipergunakan untuk
melompat ke pernyataan tertentu yang telah diberi kata kunci. $ata kunci tersebut
didefinisikan dengan pernyataan P-abelQ. Pendeklarasian sebuah label menggunkan
pernyataan label dan diikuti dengan nama labelnya. Pernyataan label pada program dapat
diletakkan di sebarang tempat dalam blok program.
Page 47
-abel /langM Edeklarasi labelF
Begin
/lang : Epernyataan labelF
A :N A J 0>M
I :N I D AM
.f "A YN 0>># 1hen 5oto /langM
!!!
+ndM
3.3 #ern3a"aan #erulangan
$adang!kadang diperlukan pengerjaan sekumpulan pernyataan secara berulang!ulang
sampai pada suatu kondisi tertentu. /ntuk keperluan tersebut, ada tiga perulangan yang
dapat dipergunakan yaitu 6hile..Do, Bepeat../ntil, dan %or..Do.
a. #erulangan WhileCDo
Pernyataan perulangan 6hileXDo berfungsi mengulang suatu pertanyaan atau satu blok
pernyataan selama "hile# suatu kondisi "syarat# bernilai 1rue. Sintaks dari
pernyataan tersebut adalah sebagai berikut :
6hile Y$ondisiZ Do YPernyataanZM
Prosedur perulangan diatas adalah sebagai berikut :
0. Pertama, program akan menguji nilai YkondisiZ
2. ;ika YkondisiZ bernilai %alse, maka YpernyataanZ tidak dikerjakan dan progam
menghentikan perulangan, kemudian mengerjakan pernyataan setelah hile.
3. ;ika YkondisiZ bernilai 1rue, maka pernyataan akan dikerjakan satu kali
4. -alu kembali ke langkah 0
Pada dasarnya, perulangan akan berhenti kalau YkondisiZ bernilai %alse. 1etapi dapat juga
digunakan pernyataan Break untuk memaksa program keluar dari perulangan dan
melanjutkan ke baris program yang terletak setelah perintah perulangan.
YPernyataanZ bisa berupa satu pernyataan atau blok pernyataan yang diaali dengan
begin dan diakhiri dengan end. /ntuk satu pernyataan penulisan pernyataan harus diakhiri
dengan titik koma sebagai tanda akhir dari 6hile. /ntuk lebih jelasnya, perhatikan contoh
kode program berikut.
6hile ;umlah Y 2> Do ?ilai :N ?ilai J 0M
Page 4:
Program diatas akan mengulang ?ilai :N ?ilai J 0 selama variabel ;umlah memiliki nilai
lebih kecil dari 2>. Berikut ini adalah contoh penulisan pernyataan yang diaali dengan
begin dan diakhiri dengan end.
6hile $ode YZ RAW Do
Begin
( :N ( J 0M
B :N B S (M
+ndM
Program diatas akan mengulang blok pernyataan selama $ode tidak sama dengan RAW.
6hile $ode YZ RAW Do
Begin
.f ( Z > 1hen
Begin
( :N ( J 0M
B :N B S (M
+nd
+lse
BreakM
?ilai :N B J 0>M
+ndM
Program diatas akan mengulang blok pernyataan selama $ode tidak sama dengan RAW.
Pernyataan 6hileXDo biasanya digunakan bila (nda belum tahu dengan pasti berapa
kali perulangan harus dilakukan. Berakhirnya perulangan dapat ditentukan oleh suatu
kondisi, dimana bila kondisi sudah tidak terpenuhi perulangan akan berakhir.
b. #erulangan /epea"C7n"il
Perulangan ini hampir sama dengan perulangan 6hileXDo dan biasanya digunakan jika
jumlah perulangan belum dapat ditentukan pada saat program ditulis. Perbedaannya,
pernyataan repeatXuntil dan hileXdo terletak pada letak pengecekan kondisi. ;ika pada
pernyataan hileXdo kondisi diperiksa pada aal pernyataan hileXdo, sedangkan pada
pernyataan repeatXuntil, kondisi dicek pada akhir pernyataan repeatXuntil. Perbedaan
lain adalah pernyataan hileXdo mengulang pernyataan selama kondisi masih terpenuhi,
tetapi pernyataan repeatXuntil hanya akan mengulang pernyataan selama kondisi belum
terpenuhi.
Page 4=
Selain itu pernyataan repeatXuntil akan menjalankan pernyataan yang berada diantara
repeatXuntil minimal satu kali, karena pengujian terletak dibagian akhir pernyataan
repeatXuntil. Pada dasarnya perulangan akan berhenti kalau YkondisiZ bernilai 1rue.
1etapi anda juga dapat menggunakan pernyataan Break untuk memaksa program keluar
dari perulangan dan melanjutkan ke pernyataan setelah repeatXuntil. Sintaks dari repeat...
until adalah sebagai berikut :
Bepeat
YpernyataanZ
!!!
YpernyataanZ
/ntil YkondisiZ
*ontoh :
*ounter :N 0M
Bepeat
!!!
*ounter :N *ounter J 0M
/ntil *ounter Z 7M
). #erulangan %orCDo
Perulangan %orXDo merupakan perintah perulangan yang paling sederhana di antara
perintah perulangan lain yang disediakan Delphi. Perulangan %orXDo digunakan untuk
pengerjaan satu pernyataan atau blok pernyataan secara berulang!ulang yang ditentukan
oleh nilai aal dan nilai akhir dari pencacah. Dengan kata lain, jumlah perulangan yang
akan dikerjakan sudah diketahui.
%or YpencacahZ :N YaalZ 1o YakhirZ Do Y pernyataanZM
atau
%or YpencacahZ : N YaalZ Donto YakhirZ Do Y pernyataanZM
YpencacahZ adalah variabel bertipe integer, char, byte, shortint, subrange, dan lain@lain.
8ariabel tersebut mempunyai nilai pasti, dimana nilainya dapat dikurangi atau ditambah
satu satuan. ?ilai YpencacahZ tidak boleh diubah dalam YpernyataanZ.
;ika anda menggunakan bentuk pertama, maka %orXDo akan mengulang YpernyataanZ
dimulai dari nilai YpencacahZ sama dengan nilai YaalZ hingga nilai YpencacahZ sama
dengan nilai Y(khirZ. ;ika anda menggunakan bentuk kedua, pada prinsipnya sama
dengan bentuk pertama, perbedaannya YpencacahZ nilainya menurun.
Page 7>
*ontoh :
;umlah :N >M
%or i :N 0 1o 0> Do ;umlah :N ;umlah J 7M
Program diatas mengubah nilai variabel ;umlah dengan menambahkan variabel tersebut
dengan angka 7, dimana pengulangan perintah dilakukan sebanyak sepuluh kali, dengan
urutan proses sebagai berikut :
0. 8ariabel pencacah i diberi nilai 0
2. Pernyataan setelah Do yaitu ;umlah :N ;umlah J 7 dikerjakan satu kali
3. Diulang kembali ke langkah 0, dengan menambahkan nilai 0 ke variabel pencacah i
4. ;ika nilai pencacah telah mencapai lebih besar dari nilai akhir "yaitu 0>#, pengulangan
dihentikan dan akan dikerjakan pernyataan setelah perintah %orX.Do.
$etentuan dalam %orXDo baha variabel pencacah "i# harus didefinisikan secara lokal di
dalam blok %orXDo. $etentuan lain ialah nilai aal dari variabel pencacah "i# harus lebih
kecil dari nilai akhir. (nda juga dapat mencacah mundur, dengan contoh sbb. :
;umlah :N >M
%or i :N 0> Donto 0 Do ;umlah :N ;umlah J 7M
3.$ #ern3a"aan 9reak
Pernyataan Break dipakai untuk memaksa menghentikan perulangan, baik perulangan
dengan 6hile XDo, BepeatX/ntil atau %orXDo. Dengan kata lain pernyataan Break
digunakan untuk menghentikan proses perulangan secara paksa. ;ika terdapat pernyataan
Break pada suatu perulangan, maka pelaksanaan program akan dilanjutkan ke pernyataan
setelah struktur perulangan. Berikut ini adalah contoh penggunaan pernyataan Break.
8ar
Citung, A : .nteger
Begin
%or Citung :N0 1o 0> Do
.f A Z > 1hen
A :N A J 0
+lse
BreakM
!!!
!!!
+ndM
Page 70
3.' #ern3a"aan E-i"
Pernyataan +&it dipakai untuk keluar dari suatu blok program. ;ika pernyatan +&it berada
pada suatu procedure atau fungsi maka pernyataan +&it akan menyebabkan proses dalam
procedure atau fungsi tersebut dihentikan dan kontrol program kembali ke pernyataan
berikutnya pemanggil procedure atau fungsi tersebut. ;ika pernyataan +&it berada pada
program utama, maka program akan berhenti.
8ar
;umlah, Disct, 1otal : .ntegerM
Begin
.f ;umlah YN 0>> 1hen
Begin
Disct :N 0>D0>> S 1otalM
1otal :N 1otal @ DisctM
+nd
+lse
+&itM
+ndM
*ontoh diatas menunjukkan jika jumlah lebih dari 0>> maka alur program akan berhenti
atau keluar dari blok program.
3.* #ern3a"aan on"inue
$adang!kadang diperlukan untuk menghentikan sebuah perulangan dan ingin melanjut!
kannya kembali. /ntuk keperluan tersebut anda dapat menggunakan pernyataan *ontinue
untuk melanjutkan ke perulangan berikutnya.
Page 72
"rra# dan Subrutin
ro!edure dan Fun!tion
Pada bab ini akan membahas mengenai array dan subrutin. Subrutin terdiri dari
dua, yaitu procedure dan function. Pada dasarnya bentuk pemrograman dengan Delphi 7
adalah menggunakan procedure dan function. $edua subrutin ini berisi pernyataan!
pernyataan yang berfungsi untuk melakukan tugas tertentu. Satu perbedaan dari kedua
subrutin tersebut adalah baha function selalu mengembalikan satu nilai setelah
dipanggil, sedangkan procedure dapat mengembalikan lebih dari satu nilai. (da dua jenis
procedure pada Delphi yaitu procedure yang dibuat sendiri oleh pembuat program atau
sebut saja user procedure dan event procedure.
$.1 1rra3
(rray merupakan sebuah variabel yang dapat menampung lebih dari satu data. (rray ini
dapat diibaratkan seperti lemari yang mempunyai sekat!sekat dimana setiap sekat dalam
istilah array disebut dengan elemen, dapat menampung satu data. Setiap elemen dalam
array diberi identitas dengan istilah inde& dimana elemen pertama diberi inde& >, elemen
kedua diberi inde& 0, dst. Data yang ditampung pada setiap elemen harus mempunyai tipe
data yang sejenis.
Bila anda ingin mengolah data berupa data nilai misalnya 9>, 7>, =>, 7>, dan :> dimana
anda ingin memperoleh hasil yaitu jumlah nilai, rata!rata nilai, standard deviasi maka
pengolahan data tersebut lebih tepat menggunakan array supaya kode programnya lebih
sederhana. 1etapi ada kalanya untuk data tertentu misalnya matrik harus diselesaikan
dengan array.
(da beberapa jenis array yaitu array dimensi satu, array dimensi dua, array dimensi tiga,
dst. Pemilihan dimensi array bergantung kepada data yang diolah. Bila sekelompok data
yang mempunyai keterkaitan antar data berada dalam satu arah maka digunakan array
dimensi satu seperti data nilai diatas. Bila sekelompok data yang mempunyai keterkaitan
antar data berada dalam dua arah maka digunakan array dimensi dua, contohnya adalah
data matrik. Bila dalam tiga arah digunakan dimensi tiga, dst. Berdasarkan kapasitasnya,
ada array statis dan dinamis. (rray statis, kapasitasnya untuk menampung data ditentukan
pada saat disain, sedangkan array dinamis kapasitasnya ditentukan pada saat run time.
Seperti layaknya variabel, array juga harus dideklarasikan sebelum digunakan. Sintaks
untuk mendeklarasikan array statis adalah :
5ar Y?ama(rrayZ : arra3 UBatas(al..Batas(khirV o8 Y1ipeDataZM
Page 73
*ontoh :
var
Data?ilai : arrayU0..0>>V of .ntegerM {array dimensi satu}
'atrikH( : arrayU0..7, 0..0>V of .ntegerM {array dimensi dua}
5ayaHB : arrayU0..7, 0..0>, 0..07V of BealM {array dimensi tiga}
Pada array Data?ilai maksud dari U0..0>>V adalah untuk menentukan elemen!elemennya
yang dimulai dari inde& > sDd ==, dan dituliskan sbb. :
Data?ilaiU>VM
Data?ilaiU0VM
!!!
!!!
Data?ilaiU==VM
sehingga kapasitasnya untuk menampung data maksimum 0>> data.
Sedangkan array 'atrikH( maksud dari U0..7, 0..0>V adalah untuk menentukan elemen!
elemennya dimulai dari inde& > sDd 4 pada dimensi pertama dan pada dimensi kedua
dimulai dari inde& > sDd =, dan dituliskan sbb. :
'atrikH(U>,>VM 'atrikH(U>,0V M !! !! 'atrikH(U>,=VM
'atrikH(U0,>VM 'atrikH(U0,0V M !! !! 'atrikH(U0,=VM
!! !! !! !! !!
!! !! !! !! !!
'atrikH(U4,>VM 'atrikH(U4,0V M !! !! 'atrikH(U4,=VM
sehingga kapasitasnya untuk menampung data maksimum 7> data.
/ntuk mendeklarasikan array dinamis adalah :
5ar Y?ama(rrayZ : arra3 o8 Y1ipeDataZM
*ontoh :
var
pjual : array of .ntegerM
? : .ntegerM
begin
? :N 7M
Set-ength"pjual, ?#M
!!!
endM
Page 74
Pada contoh diatas procedure Set-ength"pjual, ?# adalah untuk menentukan elemen!
elemen array. Bila variabel ? diisi dengan 7 maka inde&nya dimulai dari > sDd 4 sehingga
kapasitasnya maksimum 7 data. 1etapi bila variabel ? diisi dengan 7> maka inde&nya
dimulai dari > sDd 4= dan kapasitas maksimumnya 7> data. ;adi kapasitas array ini sangat
tergantung kepada variabel ?.
*ontoh program array :
pro)edure 1%orm0.Button0*lick"Sender: 1)bject#M
begin
+dit0.1e&t :N \\M
+dit2.1e&t :N \\M
+dit3.1e&t :N \\M
end>
pro)edure 1%orm0.Button2*lick"Sender: 1)bject#M
5ar
nilai : (rray of .ntegerM i, ? : .ntegerM
jumlah, rata2, std, sigma : BealM
begin
? :N Str1o.nt".nputBo&"\.nput\,\Banyaknya Data\,\\##M
Set-ength"nilai,?#M
%or i:N0 To ? Do
nilaiUi!0V :N Str1o.nt".nputBo&"\.nput Data\,\ke \ J .nt1oStr"i#,\\##M
jumlah :N >M
%or i:N0 To ? Do jumlah :N jumlah J nilaiUi!0VM
rata2 :N jumlahD?M
sigma :N >M
%or i:N0 To ? Do
sigma :N sigma J s]r"nilaiUi!0V!rata2#M
std :N s]rt"sigmaD?#M
+dit0.1e&t :N %loat1oStr"jumlah#M
+dit2.1e&t :N %loat1oStr"rata2#M
+dit3.1e&t :N %loat1oStr"std#M
end>
pro)edure 1%orm0.Button3*lick"Sender: 1)bject#M
begin
(pplication.1erminateM
end>
Page 77
$.2 E5en" #ro)edure
+vent procedure adalah procedure dari setiap event komponen. +vent procedure akan
dijalankan pada aktu terjadi event pada komponen. Sebagai contoh terjadi event click
pada Button0 maka event procedure Button0*lick akan dijalankan. /ntuk lebih jelasnya
perhatikan gambar 4.0 dibaah ini.
5ambar 4.0 : *ontoh event procedure Button0*lick
Bentuk sebuah event procedure adalah sebagai berikut :
pro)edure 1Y?ama%ormZ.Y?amaH)bjekZY?ama+vevt"parameter#M
begin
YpernyataanZ
!!!
YpernyataanZ
end>
/ntuk membuat sebuah event procedure adalah pertama pilih komponen, lalu pada object
inspector pilih tab event, kemudian klik event yang diinginkan, lalu klik ganda pada
kolom sebelah kanan seperti yang ditunjukkan pada gambar 4.2 dibaah ini.
5ambar 4.2 : 'embuat event procedure
Page 79
$.3 7&er #ro)edure
/ser procedure adalah procedure yang dibuat "didefinisikan# sendiri oleh pembuat
program. Pernyataan!pernyataan didalam user procedure sama halnya dengan event
procedure. Perbedaannya adalah user procedure akan dijalankan bila dipanggil dengan
namanya, sedangkan event procedure akan dijalankan bila terjadi suatu event terhadap
komponen. Biasanya user procedure dipanggil dari event procedure, tetapi dapat juga
dipanggil dari user procedure yang lain.
+vent procedure biasanya selalu ada dalam program aplikasi, sedangkan user procedure
belum tentu ada karena sifatnya optional. (lasan utama memakai user procedure adalah
untuk kode program yang diperlukan secara berulang!ulang. (gar kode program tersebut
tidak dituliskan secara berulang!ulang maka digunakan user procedure. 1etapi untuk kode
program yang tidak diperlukan secara berulang!ulang dapat juga memakai user procedure
dengan tujuan agar program lebih terstruktur dan mudah dibaca.
Sintaks dari sebuah user procedure adalah sebagai berikut :
#ro)edure Y?amaProcedureZ "parameter#M
YDeklarasi-okalZ
9egin
YpernyataanZ
!!!
YpernyataanZ
End>
/ntuk mengakses atau memanggil sebuah user procedure adalah sebagai berikut :
Y?amaProcedureZ "parameter#M
(pabila parameternya tidak ada, untuk memanggilnya adalah sebagai berikut :
Y?amaProcedureZM
Berikut ini adalah sebuah contoh untuk menghitung kombinasi dimana rumus untuk
menghitung kombinasi adalah :
^ #^. "
^
% % &
&
C
=
dimana : ? N Banyaknya data
B N Banyaknya kombinasi
* N ;umlah kombinasi yang terjadi
Page 77
Dari rumus diatas dapat dilihat baha untuk menghitung kombinasi diperlukan tiga kali
untuk menghitung faktorial oleh karena itu supaya program faktorial tidak ditulis
sebanyak tiga kali maka digunakan user procedure untuk menghitung faktorial, seperti
yang ditunjukkan pada gambar 4.3 dibaah ini.
5ambar 4.3 : /ser procedure
Pada gambar 4.3 diatas dapat dilihat baha user procedure diberi nama %aktor0, dan ada
dua parameter yang diberi nama ? dan %ak, dimana ? adalah parameter input dan %ak
adalah parameter output. Parameter output harus memakai klausa var. Pemakaian jumlah
parameter sesuai dengan banyaknya input dan output. Dalam menghitung faktorial ada
satu data input yaitu berapa faktorial dan satu output yaitu hasil faktorial sehingga digu!
nakan sebanyak dua parameter dengan tipe sesuai dengan data input dan hasil faktorial.
/ntuk memberikan nama procedure dan parameter diberikan kebebasan kepada pembuat
program, tetapi hanya boleh menggunakan huruf, angka, dan garis baah.
Page 7:
Selanjutnya user procedure tersebut digunakan dari procedure yang lain dalam hal ini dari
event procedure Button2*lick. /ntuk menggunakannya, dipanggil dengan menyebutkan
namanya dan parameternya, seperti dibaah ini :
%aktor0"?,A#M
%aktor0"?!B,I#M
%aktor0"B,_#M
Dalam pemanggilan ini alurnya adalah variabel ? akan mengirim nilainya ke parameter
pertama "input# procedure %aktor0, dan hasilnya diterima oleh variabel A dari parameter
kedua "output# procedure %aktor0.
*ontoh lain dari user procedure adalah sebagai berikut :
"3pe
1%orm0 N )la&&"1%orm#
!!!
#ro)edure edDataCapusM
AAA
pri5a"e
{ Priate declarations }
!!!
i!ple!en"a"ion
ELB S.dfmF
#ro)edure 1%orm0.edDataCapusM
9egin
+dit0.1e&t :N \\M
+dit2.1e&t :N \\M
End>
!!!
End.
Pada contoh diatas user procedure diberi nama edDataCapus, dan sebelum nama tersebut
didahului dengan nama formnya karena kode programnya berkaitan dengan komponen.
Procedure tersebut harus dideklarasikan pada klausa type, lihat contoh diatas.
$.$ %un)"ion
Pada dasarnya funtion hampir sama dengan user procedure, perbedaannya adalah user
procedure dapat mengembalikan lebih dari satu nilai output, sedangkan function hanya
mengembalikan satu nilai output. Sintaks dari sebuah function adalah sebagai berikut :
Page 7=
%un)"ion Y?ama%unctionZ "parameter# : Y1ipeDataZM
YDeklarasi-okalZ
9egin
YpernyataanZ
!!!
YpernyataanZ
End>
Parameter dari suatu function adalah hanya parameter input. Parameter ini dapat lebih dari
satu, dapat juga tanpa parameter sama sekali. Y1ipeDataZ adalah untuk menyatakan tipe
data dari nama function. Cal ini dinyatakan karena nama dari function berfungsi sebagai
output. )leh karena itulah function hanya mengembalikan satu nilai output. /ntuk
mengakses atau memanggil sebuah function sintaksnya sebagai berikut :
Y?ama8ariabelPenerimaZ :N Y?ama%unctionZ "parameter#M
Dapat dilihat dalam sintaks pemanggilan baha nama variabel penerima tidak dituliskan
didalam kurung sebagai parameter seperti dalam user procedure. Cal inilah yang menun!
jukkan perbedaan lain antara function dengan user procedure.
5ambar 4.4 : %unction
Page 9>
Pada gambar 4.4 diatas menunjukkan contoh dari sebuah function untuk menghitung
faktorial dalam rumus kombinasi. %unction diberi nama %aktor2 dengan tipe data Beal.
Parameter "input# yang hanya satu diberi nama ? dengan tipe data .nteger. 1ipe data
parameter dan nama function disesuaikan dengan data input dan output. ?ama function
dan parameter diberi kebebasan kepada pembuat program, tetapi ketentuannya sama
dengan memberikan nama variabel. Satu pernyataan yang harus dibuat pada bagian akhir
dari suatu function yaitu mempertukarkan hasil perhitungan dari suatu function dengan
nama function. Dalam hal ini adalah %aktor2 :N %ak.
/ntuk memanggil function tersebut dari event procedure Button2*lick adalah :
A :N %akor2"?#M
I :N %akor2"?!B#M
_ :N %akor2"B#M
Dapat dilihat dari pemanggilan tersebut baha nama variabel penerima yang ditulis
terlebih dahulu dalam hal ini A, lalu operator pemberian, kemudian nama function dan
parameternya didalam kurung. (lur pemanggilan ini adalah variabel ? akan mengirimkan
nilainya ke parameter function, lalu hasil perhitungan function diterima variabel penerima
A dari nama function.
Pemanggilan seperti diatas dapat disederhanakan sebagai berikut :
* :N %aktor2"?#D"%aktor2"?!B#S%aktor2"B##M
sehingga variabel penerima A, I, _ bisa tidak digunakan, dan menghemat memori. 'aka
dalam contoh menghitung kombinasi alaupun kita dapat menggunakan user procedure
atau funtion, lebih efisien menggunakan function.
;adi untuk membuat suatu subrutin kita dapat menggunakan function atau user procedure
namun sebaiknya kita dapat melihat mana yang lebih efisien. 1etapi ada kalanya kita tidak
dapat menggunakan function misalnya kalau output yang dibutuhkan lebih dari satu.
Page 90
$%&"%T"' D"T"B"S$
Bab ini akan membahas tentang apa dan untuk apa itu database, bagaimana mem!
bangun suatu database, dan perangkat lunak yang digunakan untuk membangun dan
memanipulasi database. Iang lebih diutamakan adalah memanipulasi database dengan
bahasa database yang sering disebut dengan S,- yaitu singkatan dari Structured ,uery
-anguage. S,- ini kemudian dipergunakan di Delphi untuk pemrograman database.
'.1 1pa i"u Da"aba&e
Database adalah kumpulan data pada suatu file yang dapat disimpan dan dibuka kembali,
dengan jumlah data yang bisa ditambah atau dikurangi, serta dapat juga dilakukan proses
pengeditan. $umpulan data bisa berupa sebuah kelompok data sederhana, dapat juga
berupa beberapa kelompok data yang saling berhubungan.
Sebagai contoh, misalnya ada transaksi penjualan maka akan dicatat tanggal penjualan,
barang yang terjual beserta jumlahnya, dan pelanggan yang membelinya beserta pegaai
yang menjualnya. Bila pencatatan ini dilakukan didalam komputer berarti data penjualan
tersebut dicatat atau disimpan didalam suatu database. $euntungannya menggunakan
database adalah manipulasinya lebih mudah dan cepat khususnya pada aktu yang akan
datang, dapat diakses semua orang yang berhak, manipulasi dapat dilakukan jarak jauh.
'.2 #erangaka" 4unak Da"aba&e
/ntuk membangun dan memanipulasi suatu database didalam komputer diperlukan suatu
perangkat lunak. Perangakat lunak untuk database disebut dengan Database 'anagement
System "DB'S# atau sering disebut Sistem Database saja. Sistem database yang dikenal
adalah 'icrosoft (ccess, S,- Server, )racle, 'yS,-, .nformi&, .nterBase, %o&Pro,
Parado&, dBase, DB2, dll. (da dua jenis sistem database yaitu single user dan multiuser.
Sistem database multiuser sering disebut dengan berbasis server seperti S,- Server,
)racle, 'yS,-, .nformi&, .nterBase, dll. Prinsip sistem database berbasis server baha
data!data suatu instansi atau perusahaan semuanya disimpan dalam satu server, tetapi bisa
diakses dari mana saja dan bisa dimanipulasi oleh siapa saja bagi yang berhak.
'.3 Me!bangun Da"aba&e dengan Da"aba&e De&k"op
Database desktop adalah suatu tool yang disediakan oleh Delphi untuk membangun dan
memanipulasi suatu database. 1ool ini dapat digunakan untuk database Parado&, DB2,
dBase, dan 'icrosoft (ccess.
Page 92
'.3.1 Mengak"i8kan Da"aba&e De&k"op
(da dua cara untuk mengaktifkan Database Desktop, yaitu dari menu utama Delphi dan
dari menu start 6indos. $edua cara ini adalah sebagai berikut :
*ara 0 :
$lik tombol S"ar" pada indos. -alu pilih #rogra!& 9orland Delphi 7. $emudian,
pilih Da"aba&e De&"op sebagaimana terlihat pada gambar dibaah ini.
5ambar 7.0 : Dialog mengatifkan Database Desktop dari menu Start 6indos
*ara 2 :
Dari menu utama Delphi pilih 1ools dan klik Database Desktop sebagaimana terlihat pada
gambar dibaah ini.
5ambar 7.2 : Dialog mengatifkan Database Desktop dari menu Delphi
Page 93
Setelah Database Desktop diaktifkan tampilannya sbb. :
5ambar 7.3 : 1ampilan Database Desktop
'.3.2 Menga"ur Direk"ori .erja
(da baiknya, sebelum bekerja menggunakan database, (nda perlu membuat sebuah
direktori yang kelak akan digunakan untuk menyimpan berkas!berkas yang berhubungan
dengan database. 'elalui 6indos +&plorer, buat direktori bernama #e"ron pada drive
*, lalu buat sub direktorinya dengan nama da"aba&e.
Setelah direktori diatas (nda buat, (nda perlu mengatur direktori kerja. Dengan mela!
kukan pengaturan ini, secara otomatis database Desktop akan mengarah ke direktori
tersebut bila (nda mengoperasikan suatu tabel. (dapun cara pengaturan selengkapnya
adalah sebagai berikut :
0. (ktifkan database desktop.
2. Pilih %ile D Working Direk"ori CE -angkah ini menampilkan kotak dialog Set
6orking Directory.
3. $lik tombol 9row&e X, pilih direktori *:GPetronGDatabase, sehingga isi kotak teks
6orking Directory seperti gambar dibaah ini.
Page 94
5ambar 7.4 : Dialog memilih direktori kerja
4. $lik tombol )$ untuk menutup kotak dialog di atas.
'.3.3 Me!bua" 1lia& Direk"ori .erja
(lias sangat bermanfaat didalam menentukan direktori database yang akan digunakan
oleh program. (da dua alasan mengapa alias diperlukan.
0. Dengan menggunakan alias (nda bisa menghemat penulisan daripada kalau (nda
menggunakan nama path direktori database. 'isalnya, nama alias ddPjual dapat
digunakan untuk menyingkat nama path seperti *:GPetronGDatabase. $euntungan
ini akan terasa kalau nama path sangat panjang.
2. Seaktu!aktu (nda bisa mengubah nama path dari direktori kerja dan tidak
perlu mengubah pada semua program yang merefrensinya. Iang perlu (nda
lakukan hanyalah mengubah hubungan alias dan nama path.
*ara membuat alias seperti dibaah ini :
0. Dari database desktop, pilih menu Tool& 1lia& Manager CE (nda akan
melihat tampilan seperti dibaah ini:
5ambar 7.7 : Dialog (lias 'anager
Page 97
2. $lik tombol 2ewE 'aka akan tampil sebagai berikut :
5ambar 7.9 : Dialog memilih Database alias
3. $etikkan dd#jual pada kotak teks Da"aba&e 1lia&.
4. Pilih ST12D1/D pada kotak combo Dri5er "3pe.
7. $etikkan ;F#e"ronFDa"aba&e pada kotak teks #a"h.
9. $lok tombol (.. -angkah ini akan membuat Database Desktop menampilkan
kotak dialog seperti berikut ini :
5ambar 7.7 : $onfirmasi untuk menyimpan Database alias
7. Pilih Ge& ketika muncul kotak dialog seperti diatas.
*atatan :
Bila dipilih 1ipe Driver S1(?D(BD maka (nda bekerja dengan database Parado& atau
tabel dBase.
'.3.$ Me!bua" Tabel dengan Da"aba&e De&k"op
Sebelum (nda membuat tabel, (nda harus menentukan terlebih dahulu struktur tabel.
Struktur tabel menjelaskan jenis data untuk setiap field dan ukuran data yang bisa
Page 99
ditampung. Selain itu, didalam struktur tersebut (nda perlu menentukan kunci primer
yang digunakan.
Berikut adalah struktur tabel yang akan (nda defenisikan saat menciptakan tabel.
1abel 7.0 Struktur tabel Pegaai
2a!a 8ield Tipe 7kuran .un)i
$)D+ S S
?('( ( 3>
15-H-(C.B D
;+?$+- -
S1(1/S -
Penjelasan 1ipe :
1ipe S "&hor"# menyatakan tipe nilai bulat. Bilangan yang dapat ditampung pada
field bertipe ini adalah antara !3279: sDd 32797.
1ipe ( "1lphanu!eri)# menyatakan tipe yang dapat mencakup deretan sebarang
karakter "kumpulan angka ataupun huruf dapat dimasukkan pada field yang bertipe
(lphanumeric#. Panjang pada tipe (lphanumeric menyatakan jumlah karakter
terbanyak yang dapat ditampung.
1ipe D "Da"e# menyatakan tipe tanggal. Berguna untuk menyimpan data tanggal.
1ipe - "-ogical# menyatakan tipe logika yang kemungkinan nilainya hanya berupa
True "benar# atau %al&e "salah#.
Setelah struktur tabel dibuat, selanjutnya (nda mengisi data!datanya. (dapun data yang
perlu (nda masukkan ke dalam tabel adalah sebagai berikut :
1abel 7.2 1abel Pegaai
.ode 2a!a Tgl=4ahir 6en.el S"a"u&
0 6anra 1arigan 0>D02D0=70 1rue 1rue
2 David Sembiring >=D0>D0=9= 1rue %alse
3 6asit 5inting >7D03D0=77 1rue %alse
4 Positron Bangun >3D27D0=9: 1rue 1rue
7 .ran Sembiring >4D23D0=74 1rue %alse
9 $asiman P.( >7D02D0=9= 1rue 1rue
Page 97
/ntuk membuat tabel, lakukan langkah!langkah sebagai berikut ini :
0. Pada Database Desktop, pilih menu %ile 2ew Table CE langkah ini
menampilkan kotak dialog *reate 1able.
5ambar 7.: : Dialog memilih tipe tabel.
2. $lik tombol )k, karena yang akan digunakan adalah Parado& 7. Selanjutnya, akan
muncul tampilan sebagai berikut :
5ambar 7.= : Dialog mendefenisikan struktur tabel
3. $etikkan $)D+ pada %iled ?ame, kemudian tekan tombol 1ab.
4. $etikkan S pada 1ype. $emudian tekan tombol tab.
7. $lik ganda pada kolom key sehingga muncul tanda S.
9. 1ekan tombol tab, dan selanjutnya lengkapilah struktur tabel sebagaimana terlihat
pada 1abel 7.0. Setelah (nda melakukan langkah diatas, tampilan struktur tabel
menjadi seperti dibaah ini :
Page 9:
5ambar 7.0> : Dialog setelah mendefenisikan struktur tabel
7. $lik tombol Sa5e 1& C.E -angkah ini menampilkan kotak dialog Save 1able (s.
:. .silah #egawai pada kolom %ile na!eE sehingga tampilan seperti berikut ini.
=. Pilih (lias dd#jual, sehingga tampilan seperti berikut ini.
5ambar 7.00 : Dialog menentukan nama tabel dan alias
0>. $lik tombol Sa5e.
Page 9=
'.3.' Me!buka Tabel
Setelah (nda membuat tabel Pegaai, (nda dapat segera memasukkan data. -angkah
yang perlu (nda lakukan terlebih dahulu adalah membuka tabel tersebut. *aranya sebagai
berikut :
0. Pilih menu %ile (pen Table CE langkah ini menampilkan seperti berikut
ini
5ambar 7.02 : Dialog membuka tabel
2. Pilih tabel P+5(6(., lalu klik tombol (pen. -angkah ini menampilkan sbb.
5ambar 7.03 : Dialog setelah membuka tabel pegaai
Page 7>
'.3.* Mengi&i Da"a ke Tabel
/ntuk mengisi data ke tabel pegaai lakukan langkah!langkah berikut ini :
0. Pilih 'enu Table Edi" Da"a "atau tekan tombol %=#.
2. $etik 0 pada kolom $)D+ dan tekan tombol 1ab.
3. $etikkan 6anra 1arigan pada kolom ?('( dan tekan tombol 1ab.
4. $etikkan 0>D02D0=70 pada kolom 15-H-(C.B dan tekan tombol 1ab.
7. $etikkan 1 pada kolom ;+?$+- ";enis $elamin# dan tekan tombol 1ab "dengan
sendirinya 1 akan berubah menjadi 1rue#.
9. $etikkan 1 pada kolom S1(1/S dan tekan tombol 1ab.
5ambar 7.04 : Dialog setelah memasukkan sebuah record
7. Selanjutnya, masukkan 7 record berikutnya sesuai dengan tabel 7.2.
:. (pabila semua data telah di input maka hasilnya seperti di baah ini.
5ambar 7.07 : Dialog setelah memasukkan semua record
Page 70
=. 1utuplah tabel dengan memilih %ile lo&e.
'.3.7 Mena!bah Da"a ke Tabel
/ntuk menambah data ke tabel Pegaai buka terlebih dahulu tabel Pegaai dengan menu
%ile (pen Table, -alu pilih nama tabel Pegaai, $emudian klik (pen. /ntuk
menambah record baru, pilih menu Table Edi" Da"a, lalu untuk menambahkan sebuah
record baru, pilih menu /e)ord In&er". Dengan menu Table Edi" Da"a kita bisa
mengedit data dan menambah record baru.
Setelah (nda pilih menu /e)ord In&er" maka ditampilkan seperti dibaah ini :
5ambar 7.09 : Dialog setelah memilih menu record!insert.
Selanjutnya masukkan data seperti berikut ini :
%IE4D ISI
$)D+ 9
?('( ;uniar ?apitupulu
15-H-(C.B 00D24D0=9:
;+?$+- %
S1(1/S 1
$etika (nda menekan tombol 1ab setelah memasukkan 1 pada S1(1/S, maka akan
muncul pesan di bagian baah berupa Key iolation. Pesan ini memberitahukan kepada
(nda baha kunci tidak unik lagi "ada yang kembar# dan database Desktop 'enolak
untuk menyimpannya. /ntuk lebih jelasnya, coba (nda praktekkan. Setelah (nda
praktekkan, sekarang coba (nda ganti nilai 9 pada $)D+ menjadi 7. -alu klik pada
sebarang record yang lain, maka data akan terurut dan tersimpan ke tabel. Data pada
database desktop akan terurut menurut kunci.
Page 72
'.$ Me!bangun Da"aba&e dengan MS 1))e&& 2HH3
'icrosoft (ccess adalah suatu sistem database yang banyak digunakan dalam instansi
atau perusahaan kecil maupun menengah. (pabila (nda meng!install 'icrosoft )ffice
seperti 'icrosoft 6ord, 'icrosoft +&cel, dll., berarti (nda juga sudah meng!install
'icrosoft (ccess. Subbab ini akan membahas bagaimana membangun dan memanipulasi
database 'icrosoft (ccess.
'.$.1 Mengak"i8kan MS 1))e&& 2HH3
/ntuk mengaktifkan 'S (ccess 2>>3 lakukan langkah!langkah sbb. :
0. $lik menu S"ar" pada 6indos
2. Pilih #rogra!& Mi)ro&o8" (88i)e Mi)ro&o8" (88i)e 1))e&& 2HH3, seperti
yang ditunjukkan pada gambar 7.07 dibaah ini. Setelah itu ditampilkan seperti
gambar 7.0: dibaah ini.
5ambar 7.07 : Dialog mengaktifkan 'icrosoft (ccess
Page 73
5ambar 7.0: : 1ampilan 'icrosoft (ccess
'.$.2 Me!bua" Sebuah Da"aba&e
/ntuk membuat sebuah database yang baru pada 'icrosoft (ccess 2>>3, lakukan langkah
langkah sebagai berikut :
0. $lik menu %ile 2ew, seperti yang ditunjukkan pada gambar 7.0= dibaah ini.
5ambar 7.0= : Dialog memilih menu %ile!?e
2. $lik menu 9lank da"aba&eC pada bagian ?e, seperti gambar 7.2> dibaah ini.
5ambar 7.2> : Dialog memilih menu Blank database
3. Pilih folder ;F#e"ronFDa"aba&e pada kolom Save in, seperti yang ditunjukkan pada
gambar 7.20 dibaah ini.
4. $etikkan nama file database yaitu #67141 pada kolom %ile name, seperti yang
ditunjukkan pada gambar 7.20 dibaah ini.
7. $lik rea"e, seperti yang ditunjukkan pada gambar 7.20 dibaah ini. Setelah itu
ditampilkan seperti gambar 7.22 dibaah ini.
Page 74
5ambar 7.20 : Dialog membuat database baru
5ambar 7.22 : 1ampilan setelah membuat database
Page 77
'.$.3 Me!bua" Tabel
Dalam sebuah database terdapat satu atau lebih tabel. 1abel digunakan untuk menyimpan
data sesuai dengan spesifikasinya. Setelah (nda membuatDmembuka database seperti
gambar 7.22 diatas maka (nda dapat membuat tabel pada database tersebut. 1abel yang
akan dibuat pada database P;/(-0 adalah tabel P+-(?55(?, B(B(?5, D+1B(?S,
dan 1B(?S($S. seperti dibaah ini.
Struktur dari masing!masing tabel adalah sebagai berikut :
P+-(?55(? B(B(?5
%ield 2a!e Da"a T3pe %ield Si@e %ield 2a!e Da"a T3pe %ield Si@e
$)D+ 1e&t 7 $)D+ 1e&t 7
?('( 1e&t 2> ?('( 1e&t 2>
(-('(1 1e&t 3> C(B5( ?umber Single
$)1( 1e&t 07
1+-+P)? 1e&t 03
1B(?S($S. D+1B(?S
%ield 2a!e Da"a T3pe %ield Si@e %ield 2a!e Da"a T3pe %ield Si@e
?)H%($ 1e&t 7 ?)H%($ 1e&t 7
1(?55(- DateD1ime $)HBB5 1e&t 7
$)HP-5? 1e&t 7 ;-CHBB5 ?umber .nteger
Becord data dari masing!masing tabel adalah sebagai berikut :
P+-(?55(?
$)D+ ?('( (-('(1 $)1( 1+-+P)?
0>>>0 B/D.'(? $(?5$/?5 07 '+D(? :203344
0>>>2 (BD/--(C ;(C+ 2> '+D(? >:073>9079
9
0>>>3 $(B1.?. '+B($ 02 '+D(? :477997
0>>>4 C(B1)?) S/D.B'(? 2> B.?;(. >:02334797
:
B(B(?5 D+1B(?
S
$)D+ ?('( C(B5( ?)H%($ $)HBB5 ;-CHBB5
(0>>0 8.D+) 7>>>>> >>>>0 (0>>0 2
(0>>2 B(D.) 27>>>> >>>>0 (0>>2 3
B2>>0 S+P(1/ 3>>>>> >>>>2 (0>>2 2
*2>>0 $+'+;( > >>>>3 (0>>0 0
>>>>3 B2>>0 2
1B(?S($S. >>>>4 (0>>0 0
?)H%($ 1(?55(- $)HP-5? >>>>4 (0>>2 2
>>>>0 02D3>D2>>7 0>>>0 >>>>4 B2>>0 4
>>>>2 02D3>D2>>7 0>>>3 >>>>7 B2>>0 0
>>>>3 0D2D2>>9 0>>>4 >>>>9 (0>>2 2
>>>>4 0D2D2>>9 0>>>2 >>>>9 B2>>0 0
>>>>7 0D3D2>>9 0>>>0 >>>>9 D2>>0 0
>>>>9 3D2>D2>>9 0>>>2
Page 79
/ntuk membuat sebuah tabel, lakukan langkah!langkah berikut ini :
0. $lik menu Table& rea"e "able in De&ign 5iew De&ign, seperti yang ditun!
jukkan pada gambar 7.23 dibaah ini
5ambar 7.23 : Dialog memilih menu 1ables!Design
2. $etikkan nama field 2(=%1. pada kolom %ield ?ame
3. $lik pada kolom Da"a T3pe
4. $lik pada kolom %ield Si@e, lalu rubah field si<e menjadi 7, seperti yang ditunjuk!
kan pada gambar 7.24 dibaah ini.
5ambar 7.24 : Dialog mendefinisikan field
Page 77
7. /ntuk field yang kedua, $lik lagi pada kolom %ield 2a!e dibaah field ?)H%($,
lalu ketikkan nama field yang kedua yaitu .(=9/B.
9. $lik pada kolom Da"a T3pe
7. $lik pada kolom %ield Si@e, lalu rubah field si<e menjadi 7, seperti yang ditunjuk!
kan pada gambar 7.27 dibaah ini.
5ambar 7.27 : Dialog mendefinisikan field
:. /ntuk field yang ketiga, $lik lagi pada kolom %ield 2a!e dibaah field $)HBB5,
lalu ketikkan nama field yang ketiga yaitu 64:=9/B.
=. $lik pada kolom Da"a T3pe, lalu rubah tipe data menjadi 2u!ber.
0>. $lik pada kolom %ield Si@e, lalu rubah field si<e menjadi In"eger, seperti yang di!
tunjukkan pada gambar 7.29 dibaah ini.
00. Setelah semua field didefinisikan, $lik lo&e seperti yang ditunjukkan pd gambar
7.29 dibaah ini. $emudian pilih Ge&, seperti pada gambar 7.27 dibaah ini.
5ambar 7.29 : Dialog mendefinisikan field
Page 7:
5ambar 7.27 : Dialog menyimpan tabel
02. $etikkan nama tabel yaitu DET/12S, lalu $lik (., seperti yang ditunjukkan
pada gambar 7.2: dbaah ini.
5ambar 7.2: : Dialog menentukan nama tabel
03. $lik 2o, seperti yang ditunjukkan pd gambar 7.2= dibaah ini. Seteleh itu ditam!
pilkan seperti gambar 7.3> dibaah ini.
5ambar 7.2= : Dialog menentukan primary key
Page 7=
5ambar 7.3> : 1ampilan setelah membuat sebuah tabel
Setelah selesai membuat tabel detrans, buat lagi tabel pelanggan, barang, dan transaksi
berdasarkan langkah!langkah diatas dengan struktur tabel masing!masing sesuai dengan
ketentuan diatas. Setelah (nda membuat ketiga tabel tersebut maka ditampilkan seperti
gambar 7.30 dibaah ini.
5ambar 7.30 : 1ampilan setelah mendefinisikan semua tabel
'.$.$ Me!buka Tabel
1ujuan untuk membuka tabel adalah untuk melihat isi dari tabel, menambahDmengisi data,
dan untuk merubah dan menghapus data. Setelah (nda membuat sebuah tabel dan (nda
ingin membukanya, $lik na!a "abel (pen, atau $lik ganda pada na!a "abel.
Page :>
5ambar 7.32 : Dialog membuka tabel
Setelah tabel terbuka seperti pada gambar 7.33, (nda dapat menambahDmengisi data,
merubah dan menghapus data pada tabel tersebut.
5ambar 7.33 : Dialog setelah membuka tabel
/ntuk mengisi data, lakukan langkah!langkah berikut ini :
0. $lik pada field .(DE, lalu $etikkan data 11HH1.
2. $lik pada field 21M1, lalu $etikkan data +IDE(.
3. $lik pada field :1/B1, lalu ketikkan data 'HHHHH. Setelah itu ditampilkan seperti
gambar 7.34 dibaah ini.
4. /ntuk mengisi data yang berikutnya, ulangi langkah 0, kemudian $etikkan semua
data dari tabel barang seperti yang sudah ditentukan diatas. Setelah itu ditampilkan
seperti gambar 7.37 dibaah ini, kemudian $lik lo&e.
5ambar 7.34 : Dialog setelah mengisi sebuah data
Page :0
5ambar 7.37 : Dialog setelah mengisi semua data
Setelah (nda selesai mengisi data dari tabel barang, isi lagi data dari tabel pelanggan,
transaksi, dan detrans. Setelah itu, ditampilkan seperti gambar dibaah ini :
5ambar 7.39 : 1ampilan data dari tabel pelanggan
5ambar 7.37 : 1ampilan data dari tabel transaksi
Page :2
5ambar 7.3: : 1ampilan data dari tabel detrans
'.' Me!anipula&i Da"aba&e dengan SI4
Setelah membangun database beserta tabel!tabelnya maka berikutnya adalah bagaimana
melakukan pengisianDpenambahan, perbaikan, penghapusan, dan pencarian kembali data,
serta bagaimana menampilkan data. /ntuk melakukan hal ini, setiap sistem database
mempunyai cara tersendiri. 1etapi pada subbab ini akan membahas bagaimana melaku!
kannya dengan S,-, dengan tujuan untuk digunakan dalam program aplikasi yang dibuat
dengan Delphi. /ntuk mencoba melakukan manipulasi data, (nda dapat menggunakan
fasilitas ,uery pada 'S (ccess.
'.'.1 Me!buka Iuer3 1))e&&
Dengan fasilitas ,uery 'S (ccess, (nda dapat melakukan manipulasi data dengan S,-
untuk menambah, merubah, menghapus, menampilkan, dan mencari data. Setelah (nda
membuka database atau membuat tabel!tabel database, (nda dapat membuka ,uery
dengan langkah langkah sebagai berikut :
0. $lik menu Iuerie& rea"e Juer3 in De&ign 5iew De&ign, seperti pada gam!
bar 7.3= berikut ini.
5ambar 7.3= : Dialog membuka ]uery
2. $lik tombol lo&e, seperti pada gambar 7.4> berikut ini.
Page :3
3. $lik menu +iew SI4 +iew atau toolbar SI4 "dibaah menu %ile#. Setelah itu
ditampilkan jendela ,uery, seperti pada gambar 7.40 berikut ini.
5ambar 7.4> : Dialog Sho 1able
5ambar 7.40 : ;endela ]uery
Pada jendela ,uery ini, (nda dapat menggunakan perintah S,- seperti insert untuk
menambah data, update untuk merubah data, delete untuk menghapus data, dan select
untuk menampilkan dan mencari data. /ntuk penjelasan lebih jauh, keempat perintah ini
akan dibahas pada subbab berikut ini.
Page :4
Setelah (nda bekerja pada jendela ,uery 'icrosoft (ccess, untuk menutupnya klik
tombol *lose, bila (nda tidak ingin menyimpannya klik tombol ?o, bila (nda ingin
menyimpanya klik tombol Ies, lalu ketikkan nama ]uery dan klik tombol )$.
'.'.2 #erin"ah SI4 (In&er")
Perintah S,- insert digunakan untuk mengisi atau menambah data kedalam tabel. Sintaks
dari perintah S,- insert adalah sebagai berikut :
I2SE/T I2T( ?ama1abel "?ama%ield0, ?ama%ield2, X, ?ama%ieldn#
+147ES "?ilai%ield0, ?ilai%ield2, X, ?ilai%ieldn#
Penjelasan :
` ?ama1abel adalah nama dari tabel yang menjadi tujuan untuk menambah data.
` ?ama%ield adalah nama field dari tabel yang akan dimasukkan datanya.
` ?ilai%ield adalah nilai atau data yang akan dimasukkan ke field pada tabel.
` ?ilai%ield harus sesuai urutannya dengan ?ama%ield, artinya ?ilai%ield0 akan di!
masukkan ke ?ama%iled0, ?ilai%ield2 akan dimasukkan ke ?ama%ield2, dst.
Sebagai contoh, masukkan data berikut ini kedalam tabel barang.
$)D+ ?('( C(B5(
*2>>2 *+-(?( 07>>>>
D2>>3 D)'P+1 >
Setelah (nda membuka jendela ,uery, lakukan langkah!langkah sebagai berikut :
0. $etikkan perintah memasukkan data seperti diatas pada jendela ,uery, seperti pada
gambar 7.42 berikut ini.
5ambar 7.42 : 1ampilan jendela ]uery setelah mengetikkan perintah insert
2. $lik menu Iuer3 /un atau $lik tombol /un " # pada toolbar.
3. $lik Ge&, seperti pada gambar 7.43 berikut ini
Page :7
5ambar 7.43 : $otak dialog memasukkan data
Setelah itu, (nda dapat melihat data yang sudah dimasukkan dengan cara membuka tabel
tersebut, seperti pada gambar 7.44 berikut ini.
5ambar 7.44 : 1ampilan setelah membuka tabel
/ntuk memasukkan data yang kedua, ulangi dari langkah 0 dengan mengganti perintah
insert seperti dibaah ini :
INSERT INTO BARANG(KODE, NAMA !A"#ES($D%&&'(,(DOMPET(
'.'.3 #erin"ah SI4 (7pda"e)
Perintah S,- update digunakan untuk merubah data pada tabel. Sintaks perintah S,-
update adalah sebagai berikut :
7#D1TE ?ama1abel SET
?ama%ield0 N ?ilai%ield0,
?ama%ield2 N ?ilai%ield2,
X
X
?ama%ieldn N ?ilai%ieldn
W:E/E $ondisi
Penjelasan :
` ?ama1abel adalah nama dari tabel yang akan diubah datanya.
` ?ama%ield adalah nama field dari tabel yang akan diubah datanya.
` ?ilai%ield adalah nilai atau data baru yang akan mengubah nilai lama field.
` $ondisi adalah syarat yang menjadi dasar untuk mengubah data pada tabel.
Page :9
` (pabila (nda ingin mengubah semua record pada tabel, maka Pernyataan 6C+B+
tidak perlu digunakan.
*ontoh :
0. /bahlah field :arga menjadi 0>>>>> pada tabel 9arang yang kodenya RD2>>3W.
$etikkanlah perintahnya seperti dibaah ini pada jendela ,uery, lalu $lik menu
/un Ge&, dan lihat hasilnya dengan membuka tabel tersebut.
#PDATE BARANG SET )ARGA*+&&&&& ,)ERE KODE*-D%&&'-
2. /bahlah field 2a!a menjadi RB-/+ ;+(?SW dan :arga menjadi 27>>>> pada
tabel 9arang yang kodenya R*2>>2W. $etikkanlah perintahnya seperti dibaah ini
pada jendela ,uery, lalu $lik menu /un Ge&, dan lihat hasilnya dengan mem!
buka tabel tersebut.
#PDATE BARANG SET NAMA*-B"#E .EANS-, )ARGA*%/&&&&
,)ERE KODE*-C%&&%-
3. /bahlah field 6lh=9rg menjadi 2 pada tabel De"ran& yang ?oH%ak!nya R>>>>9W dan
$oHBrg!nya RD2>>0W. Perintahnya adalah sebagai berikut :
#PDATE BARANG SET .")0BRG*%
,)ERE NO01AK*-&&&&2- AND KO0BRG*-D%&&+-
'.'.$ #erin"ah SI4 (Dele"e)
Perintah S,- delete digunakan untuk menghapus data pada tabel. Sintaks perintah S,-
delete adalah sebagai berikut :
DE4ETE %/(M ?ama1abel W:E/E $ondisi
Penjelasan :
` ?ama1abel adalah nama dari tabel yang akan dihapus datanya.
` $ondisi adalah syarat yang menjadi dasar untuk menghapus data pada tabel.
` (pabila (nda ingin menghapus semua record pada tabel, maka Pernyataan 6C+B+
tidak perlu digunakan.
*ontoh :
Page :7
0. Capuslah data pada tabel 9arang yang kodenya RD2>>3W. $etikkanlah perintahnya
seperti dibaah ini pada jendela ,uery, lalu $lik menu /un Ge&, dan lihat
hasilnya dengan membuka tabel tersebut.
DE"ETE 1ROM BARANG ,)ERE KODE*(D%&&'(
2. Capuslah data pada tabel De"ran& yang ?oH%ak!nya R>>>>9W dan $oHBrg!nya
RD2>>0W. $etikkanlah perintahnya seperti dibaah ini pada jendela ,uery, lalu $lik
menu /un Ge&, dan lihat hasilnya dengan membuka tabel tersebut.
DE"ETE 1ROM DETRANS
,)ERE NO01AK*(&&&&2( AND KO0BRG*(D%&&+(
'.'.' #erin"ah SI4 (Sele)")
Perintah S,- select digunakan untuk menampilkan atau mencari data dari tabel. Sintaks
perintah S,- select adalah sebagai berikut :
SE4ET Daftar'elect
%/(M Daftar(abel
UW:E/E KondisiV
UB/(7# 9G Daftar)roup"yV
U:1+I2B KondisiV
U(/DE/ 9G Daftar*rder U1SaDESVV
U4IMIT Daftar+imitV
Penjelasan :
` Iang berada didalam tanda kurung siku sifatnya optional.
` $lausa -.'.1 tidak dapat digunakan dalam database 'S (ccess.
` DaftarSelect adalah nama!nama field pada tabel yang akan ditampilkan atau dicari
datanya. Dapat juga berupa ekspresi dan dikombinasikan dengan fungsi.
` Daftar1abel adalah nama!nama tabel yang akan ditampilkan atau dicari datanya.
` $ondisi adalah syarat yang menjadi dasar untuk menampilkan atau mencari data
pada tabel. $husus $ondisi pada 6here dapat berupa relasi antar tabel.
` Daftar5roupBy adalah nama field yang menjadi dasar pengelompokan "grouping#.
` Daftar)rder adalah nama field yang menjadi dasar pengurutan.
` Daftar-imit adalah batasan untuk menampilkan atau mencari data.
*ontoh :
Page ::
0. 1ampilkan nilai field na!a, ala!a", dan "elepon dari tabel #elanggan. -angkah!
langkahnya adalah sebagai berikut :
a. $etikkan perintahnya pada jendela ,uery, seperti yang ditunjukkan gambar
7.47 dibaah ini.
5ambar 7.47 : 1ampilan jendela ,uery dengan perintah select
b. $lik menu /un, setelah itu ditampilkan seperti gambar 7.49 dibaah ini.
5amabar 7.49 : 1ampilan data pada jendela ,uery
c. $lik menu +iew SI4 +iew, untuk kembali ke jendela ,uery S,- 8ie
setelah (nda melihat tampilan data.
d. /ntuk melakukan perintah yang lain, ulangi dari langkah a dengan mengganti
perintah yang baru pada jendela ,uery.
2. 1ampilkan nilai semua field dari tabel detrans, perintahnya adalah :
SE"ECT 3 1ROM DETRANS
3. 1ampilkan nilai semua field dari tabel detrans yang koHbrg!nya R(0>>0W :
SE"ECT 3 1ROM DETRANS ,)ERE KO0BRG*4A+&&+4
4. 1ampilkan nilai semua field dari tabel detrans yang koHbrg!nya R(0>>0W dan jlhHbrg
nya sama dengan 0 :
SE"ECT 3 1ROM DETRANS ,)ERE KO0BRG*4A+&&+4 AND .")0BRG*+
7. 1ampilkan nilai semua field dari tabel detrans yang koHbrg R(0>>0W dan RB2>>0W :
SE"ECT 3 1ROM DETRANS ,)ERE KO0BRG*4A+&&+4 OR KO0BRG*4B%&&+4
Page :=
9. 1ampilkan nilai semua field dari tabel transaksi yang tanggal!nya lebih besar dari 3>
Desember 2>>7 :
SE"ECT 3 1ROM TRANSAKSI ,)ERE TANGGA" 5 6+%7'&7%&&/6
7. 1ampilkan nilai field koHbrg dan jumlah field jlhHbrg masing!masing koHbrg :
SE"ECT KO0BRG, S#M(.")0BRG 1ROM DETRANS GRO#P B8 KO0BRG
:. 1ampilkan nilai field koHbrg dan jumlah field jlhHbrg masing!masing koHbrg yang
jumlah field jlhHbrg nya lebih besar dari 7:
SE"ECT KO0BRG, S#M(.")0BRG 1ROM DETRANS GRO#P B8 KO0BRG
)A!ING S#M(.")0BRG5/
=. 1ampilkan nilai field noHfak dan jumlah field jlhHbrg masing!masing noHfak yang
jumlah field jlhHbrg nya lebih besar dari 2 dan urut berdasar jumlah field jlhHbrg :
SE"ECT NO01AK, S#M(.")0BRG 1ROM DETRANS GRO#P B8 NO01AK
)A!ING S#M(.")0BRG5% ORDER B8 S#M(.")0BRG DESC
0>.1ampilkan nilai field noHfak, nama, harga, dan jlhHbrg dari tabel barang dan
detrans dengan outer join dan tabel sebelah kiri sebagai pedoman :
SE"ECT NO01AK, NAMA, )ARGA, .")0BRG 1ROM BARANG
"E1T O#TER .OIN DETRANS ON BARANG9KODE*DETRANS9KO0BRG
00.1ampilkan nilai field noHfak, nama, harga, dan jlhHbrg dari tabel barang dan
detrans dengan outer join dan tabel sebelah kanan sebagai pedoman :
SE"ECT NO01AK, NAMA, )ARGA, .")0BRG 1ROM BARANG
RIG)T O#TER .OIN DETRANS ON BARANG9KODE*DETRANS9KO0BRG
02.1ampilkan nilai field noHfak, nama, harga, dan jlhHbrg dari tabel barang dan
detrans dengan inner join ",uery data yang memiliki pasangan di kedua tabel# :
SE"ECT NO01AK, NAMA, )ARGA, .")0BRG 1ROM DETRANS, BARANG
,)ERE KO0BRG*KODE ORDER B8 NO01AK
03.1ampilkan nilai field noHfak, tanggal, nama, harga, dan jlhHbrg dari tabel transaksi,
barang dan detrans dengan inner join. "1, B, D nama alias transaksi, barang, detrans#
SE"ECT T9NO01AK, T9TANGGA", B9NAMA, B9)ARGA, D9.")0BRG
1ROM TRANSAKSI T, DETRANS D, BARANG B
,)ERE T9NO01AK*D9NO01AK AND D9KO0BRG*B9KODE
04.1ampilkan nilai field dari tabel barang dan detrans "setelah klausa (S nama alias# :
SE"ECT D9NO01AK, B9NAMA, B9)ARGA, D9.")0BRG,
Page =>
B9)ARGA 3 D9.")0BRG AS )ARTOT,
II1()ARTOT 5 /&&&&&, &9+ 3 )ARTOT, & AS DISKON
1ROM DETRANS D, BARANG B ,)ERE D9KO0BRG*B9KODE
KOMO%$% D"T"B"S$
Pada bab ini akan membahas mengenai komponen!komponen database yang ada
pada Delphi 7, serta bagaimana memilih komponen database dan mengatur properti!
properti komponen database untuk membuat sebuah aplikasi database. Bab ini lebih fokus
membahas pemakaian komponen database BD+ dan (D).
*.1 .o!ponen Da"aba&e
(da tiga bagian komponen database pada Delphi 7, yang pertama komponen Data *ontrol
yang berguna untuk menampilkan dan mengubah data. $edua komponen Data (ccess
yang berguna untuk mengakses informasi dalam database. $etiga komponen BD+,
db+&press, (D), .nterBase yang berguna untuk koneksi dan mengakses ke database.
$omponen BD+, db+&press, (D), dan .nterBase digunakan berdasarkan sistem database
yang dipergunakan untuk membangun database, seperti pada gambar 9.0 berikut ini :
Page =0
BDE ODBC '% B:t
Data;a<e
MS Acce<<, MS Excel,
MS S=" Ser>er, 1ox Pro,
InterBa<e
Data;a<e
Paradox, dBa<e
ADO
Pro>:der
O"E DB
Data;a<e
)amp:r <em?a data;a<e
dbExpress
Data;a<e Ser>er
DB%, InterBa<e, In@orm:x,
MS S=" Ser>er,
MA S=", Oracle
InterBase
Data;a<e Ser>er
Inter;a<e
5ambar 9.0 : Diagram akses komponen database dengan database
Dari ketiga komponen database mempunyai hirarki seperti pada gambar 9.2, berikut ini :
5ambar 9.2 : Cirarki komponen database
*.2 .o!ponen Da"a on"rol
$omponen data control berguna untuk menampilkan dan mengubah data. $omponen ini
terdapat pada component palette tab Data *ontrols. Beberapa dari komponen ini adalah
sebagai berikut :
` DB5rid, untuk menampilkan dan mengedit data dalam bentuk tabular.
` DB+dit, untuk menampilkan dan mengedit nilai field record.
` DB?avigator, untuk navigasi data dalam menambah dan mengedit.
` dll.
Properti!properti yang akan di setting pada komponen data control sebagai berikut :
.o!ponen #roper"3
on"oh 2ilai
#roper"3
DB5rid DataSource DataSource0
DB?avigator DataSource DataSource0
DB1e&t DataSource DataSource0
Data%ield ?)H%($
DB+dit DataSource DataSource0
Data%ield ?)H%($
Page =2
Data Control Data Acce<<
BDE, d;Expre<<,
ADO, Inter;a<e
Data;a<e
DB'emo DataSource DataSource0
Data%ield $+1+B(?5(?
*.3 .o!ponen Da"a 1))e&&
$omponen data access berguna untuk mengakses informasi dalam database. $omponen
ini terdapat pada component palette tab Data (ccess. Beberapa dari komponen ini adalah
DataSource, *lientDataSet, DataSetProvider, dll.
Cirarki antara komponen data access dengan komponen database yang lain adalah seperti
yang ditunjukkan pada gambar 9.3 berikut ini.
5ambar 9.3 : Cirarki komponen Data (ccess
Properti!properti yang akan di setting pada komponen data access sebagai berikut :
.o!ponen #roper"3 on"oh 2ilai #roper"3
DataSetProvider DataSet 1able0 atau ,uery0
*lientDataSet Provider?ame DataSetProvider0
(ctive 1rue
DataSource DataSet
*lientDataSet0 atau
1able0D,uery0 "bila tidak melalui
komponen *lientDataSet dan
DataSetProvider#
*.$ .o!ponen 9DE
$omponen BD+ berguna untuk koneksi dan mengakses ke database. $omponen ini ter!
dapat pada component palette tab BD+. Beberapa dari komponen ini adalah komponen
1able, ,uery, StoredProc, dll.
Page =3
Cirarki antara komponen BD+ dengan komponen database yang lain adalah seperti yang
ditunjukkan pada gambar 9.4 berikut ini.
5ambar 9.4 : Cirarki komponen BD+
Properti!properti yang akan di setting pada komponen BD+ sebagai berikut :
.o!ponen #roper"3 on"oh 2ilai #roper"3
1able Database?ame dbP;/(-0
1able?ame D+1B(?S
(ctive 1rue
,uery Database?ame dbP;/(-0
S,-
S+-+*1 S %B)'
D+1B(?S
(ctive 1rue
StoredProc Database?ame dbP;/(-0
StoredProc?ame -(P;/(-
(ctive 1rue
*.' .o!ponen 1D(
$omponen (D) berguna untuk koneksi dan mengakses ke database. $omponen ini ter!
dapat pada component palette tab (D). Beberapa dari komponen ini adalah komponen
(D)*onnection, (D)*ommand, (D)DataSet, (D)1able, (D),uery, dll.
Cirarki antara komponen (D) dengan komponen database yang lain adalah seperti yang
ditunjukkan pada gambar 9.7 berikut ini.
Page =4
5ambar 9.7 : Cirarki komponen (D)
Properti!properti yang akan di setting pada komponen (D) sebagai berikut :
.o!ponen #roper"3 on"oh 2ilai #roper"3
(D)*onnection *onnectionString ProviderN'SD(S,-.0MPersist Security
.nfoN%alseMData SourceNdbP;/(-0
-oginPrompt %alse
*onnected 1rue
(D)*ommand *onnectionString ProviderN'SD(S,-.0MPersist Security
.nfoN%alseMData SourceNdbP;/(-0
*onnection (D)*onnection0
*ommand1ype cmd1able atau cmd1e&t
*ommand1e&t D+1B(?S atau D+-+1+ %B)' D+1B(?S
(D)DataSet *onnectionString ProviderN'SD(S,-.0MPersist Security
.nfoN%alseMData SourceNdbP;/(-0
*onnection (D)*onnection0
*ommand1ype cmd1able atau cmd1e&t
*ommand1e&t D+1B(?S atau S+-+*1 S %B)' D+1B(?S
(ctive 1rue
(D)1able *onnectionString ProviderN'SD(S,-.0MPersist Security
.nfoN%alseMData SourceNdbP;/(-0
*onnection (D)*onnection0
1able?ame D+1B(?S
(ctive 1rue
(D),uery *onnectionString ProviderN'SD(S,-.0MPersist Security
.nfoN%alseMData SourceNdbP;/(-0
*onnection (D)*onnection0
S,- S+-+*1 S %B)' D+1B(?S
Page =7
(ctive 1rue
(D)SoredProc *onnectionString ProviderN'SD(S,-.0MPersist Security
.nfoN%alseMData SourceNdbP;/(-0
*onnection (D)*onnection0
Procedure?ame -(P;/(-
(ctive 1rue
*.* .o!ponen dbE-pre&&
$omponen db+&press berguna untuk koneksi dan mengakses ke database. $omponen ini
terdapat pada component palette tab db+&press. Beberapa dari komponen ini adalah
komponen S,-*onnection, S,-DataSet, S,-1able, S,-,uery, S,-StoredProc, dll.
Cirarki antara komponen db+&press dengan komponen database yang lain adalah seperti
yang ditunjukkan pada gambar 9.9 berikut ini.
5ambar 9.9 : Cirarki $omponen db+&press
Properti!properti yang akan di setting pada komponen db+&press sebagai berikut :
.o!ponen #roper"3 on"oh 2ilai #roper"3
S,-*onnection *onnection?ame 'yS,-*onnection
-oginPrompt %alse
*onnected 1rue
S,-DataSet S,-*onnection S,-*onnection0
*ommand1ype ct1able atau ct,uery
*ommand1e&t D+1B(?S atau S+-+*1 S %B)' D+1B(?S
(ctive 1rue
S,-1able S,-*onnection S,-*onnection0
Page =9
1able?ame D+1B(?S
(ctive 1rue
S,-,uery S,-*onnection S,-*onnection0
S,- S+-+*1 S %B)' D+1B(?S
(ctive 1rue
S,-StoredProc S,-*onnection S,-*onnection0
StoredProc?ame -(P;/(-
(ctive 1rue
*.7 .o!ponen In"er9a&e
$omponen .nterBase berguna untuk koneksi dan mengakses ke database. $omponen ini
terdapat pada component palette tab .nterBase. Beberapa dari komponen ini adalah
komponen .BDatabse, .BDataSet, .B1able, .B,uery, .BStoredProc, dll.
Cirarki antara komponen .nterBase dengan komponen database yang lain adalah seperti
yang ditunjukkan pada gambar 9.7 berikut ini.
5ambar 9.7 : Cirarki $omponen .nterBase
Properti!properti yang akan di setting pada komponen .nterBase sebagai berikut :
.o!ponen #roper"3 on"oh 2ilai #roper"3
.BDatabase Database?ame *:GProgram %ilesGBorlandG.nterBaseGisc4.gdb
-oginPrompt %alse
*onnected 1rue
.BDataSet Database .BDatabase0
DeleteS,- Pernyataan S,-
.nsertS,- Pernyataan S,-
Page =7
'odifyS,- Pernyataan S,-
BefreshS,- Pernyataan S,-
SelectS,- Pernyataan S,-
(ctive 1rue
.B1able Database .BDatabase0
1able?ame D+1B(?S
(ctive 1rue
.B,uery Database .BDatabase0
S,- S+-+*1 S %B)' D+1B(?S
(ctive 1rue
.BStoredProc Database .BDatabase0
StoredProc?ame -(P;/(-
M$MB("T
'O&'"M "L)K"S)
Pada bab ini (nda akan belajar membuat sebuah program aplikasi yang diarahkan
kepada aplikasi database. (plikasi database yang dibuat, dipilih mengenai penjualan yang
sering disebut dengan Sistem .nformasi Penjualan. Iang menjadi fokus kajian pada bab
ini adalah bagaimana membuat menu dari suatu sistem informasi, bagaimana membuat
program untuk mecetak laporan, menampilkan informasi, serta bagaimana menambah,
mengedit, dan menghapus data.
7.1 Me!bua" Menu dan Toolbar
'enu dan 1oolbar yang akan dibuat adalah seperti pada gambar dibaah ini :
Page =:
5ambar 7.0 : 'enu /tama dan 1oolbar
5amabar 7.2 : Submenu %ile
5ambar 7.3 : Submenu -aporan
Setelah (nda membuka sebuah project baru, (nda dapat membuat menu dan toolbar pada
form0. $omponen yang dibutuhkan untuk ini adalah sebuah komponen 'ain'enu dan
1oolBar. /ntuk menampung gambar!gambar yang dibutuhkan pada toolbar diperlukan
sebuah komponen .mage-ist.
1ambahkan ke form0, sebuah komponen 'ain'enu yang diambil dari tab standard,
sebuah komponen 1oolBar dan .mage-ist yang diambil dari tab in32 seperti pada
gambar 7.4 dibaah ini.
Page ==
5ambar 7.4 : 1ampilan %orm0 setelah menambah
'ain'enu0, 1oolBar0, .mage-ist0
Setelah (nda menambahkan ketiga komponen tersebut, (nda dapat melakukan setting
properti. Setting properti dari masing!masing komponen dapat (nda lakukan seperti
uraian berikut ini.
/ntuk membuat menu dan setting properti 'ain'enu0 sebagai berikut :
0. (ktifkan 'ain'enu0, lalu $lik kanan
2. Pilih 'enu DesignerX, setelah itu ditampilkan seperti gambar 7.7 berikut ini.
5ambar 7.7 : 1ampilan dialog menu
3. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi %ile
4. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m%ile
7. $lik kotak sebelah kanan menu %ile
9. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi -aporan
7. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m-ap
:. $lik kotak sebelah kanan menu -aporan
=. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi $eluar
0>. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m$eluar
Page 0>>
00. $lik menu %ile, lalu $lik kotak dibaah menu %ile
02. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Penjualan
03. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m%ilePjual
04. $lik kotak dibaah menu Penjualan
07. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Barang
09. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m%ileBrg
07. $lik kotak dibaah menu Barang
0:. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Pelanggan
0=. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m%ilePlgn
2>. $lik properti Short*ut pada )bject .nspector, lalu ganti nilainya menjadi *trlJP
20. $lik menu -aporan, lalu $lik kotak dibaah menu -aporan
22. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Penjualan
23. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m-apPjual
24. $lik kotak dibaah menu Penjualan
27. $lik properti *aption pada )bject .nspector, lalu ganti nilainya jadi %aktur Penjualan
29. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m-ap%aktur
27. $lik submenu Penjualan dari menu -aporan, lalu $lik kanan dan *reate Submenu
2:. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Per 1anggal
2=. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m-apPjual1gl
3>. $lik kotak dibaah menu Per 1anggal
30. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Per Bulan
32. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m-apPjualBln
33. $lik kotak dibaah menu Per Bulan
34. $lik properti *aption pada )bject .nspector, lalu ganti nilainya menjadi Per 1ahun
37. $lik properti ?ame pada )bject .nspector, lalu ganti nilainya menjadi m-apPjual1hn
39. $lik *lose pada %orm0.'ain'enu0, setelah itu tampil seperti gambar 7.9 berikut ini
5ambar 7.9 : 1ampilan setelah membuat menu
Page 0>0
/ntuk memasukkan gambar!gambar ke .mage-ist0 sebagai berikut :
0. *opy file gambar yang bernama B))$)P+?, B+P)B1, SC)6, dan 1(B-+ dari
folder P*:GProgram %ilesG*ommon %ilesGBorland SharedG.magesGButtonsQ kedalam
folder P*:GPetronGProgramQ
2. (ktifkan .mage-ist0, lalu $lik kanan dan pilih .mage-ist +ditorX, setelah itu ditam!
pilkan seperti gambar 7.7 berikut ini.
3. $lik (ddX, lalu pilih folder P*:GPetronGProgramQ pada kolom -ook in.
4. Blok semua file gambar, lalu $lik )pen dan Ies to (ll, setelah itu tampil seperti gam!
bar 7.: berikut ini.
7. Pilih masing!masing gambar yang redup, lalu $lik Delete.
9. Setelah semua gambar yang redup terhapus, lalu $lik )$.
5ambar 7.7 : Dialog .mage-ist
Page 0>2
5ambar 7.: : Dialog .mage-ist setelah masuk file gambar
/ntuk membuat tombol!tombol dan setting properti 1oolBar0 sebagai berikut :
0. $lik kanan pada 1oolBar0, lalu pilih ?e Button
2. /langi langkah 0
3. $lik kanan pada 1oolBar0, lalu pilih ?e Separator
4. /langi langkah 0 sebanyak dua kali, setelah itu tampil seperti gambar 7.= berikut ini.
7. (ktifkan 1oolBar0, lalu pilih properti .mages dan ganti nilainya menjadi .mage-ist0.
9. (ktifkan 1oolButton0, lalu pilih properti .mage.nde& dan ganti nilainya menjadi 3
7. (ktifkan 1oolButton2, lalu pilih properti .mage.nde& dan ganti nilainya menjadi 0
:. (ktifkan 1oolButton4, lalu pilih properti .mage.nde& dan ganti nilainya menjadi >
=. (ktifkan 1oolButton7, lalu pilih properti .mage.nde& dan ganti nilainya menjadi 2
5ambar 7.= : 1ampilan %orm0 setelah membuat tombol!tombol
Setting properti yang dilakukan pada %orm0 sebagai berikut :
0. /bah nilai properti *aption menjadi PSistem .nformasi PenjualanQ
2. /bah nilai properti 6indoState menjadi s'a&imi<ed
Dalam membuat aplikasi ini, untuk sementara tambahkan tiga buah form lagi, sehingga
dalam project ini selain Project0 terdapatlah %orm0, %orm2, %orm3, %orm4, dan /nit0,
/nit2, /nit3, /nit4. Simpanlah project ini dengan nama Pjual0Hpr, Pjual0H/0,Pjual0H/2,
Pjual0H/3, Pjual0H/4 masing!masing untuk Project0, /nit0, /nit2, /nit3, dan /nit4.
$ode program yang dituliskan pada %orm0 sebagai berikut :
0. Buka event *lick untuk menu m-apPjual1gl seperti gambar 7.0> berikut ini.
Page 0>3
5ambar 7.0> : Dialog membuka event *lick m-apPjual1gl
2. Buka event *lick untuk menu m%ilePlgn.
3. Buka event *lick untuk menu m-ap%aktur.
4. Buka event *lick untuk menu m$eluar.
7. .sikan event *lick 1oolButton2 dengan m%ilePlgn*lick, seperti gambar 7.00 berikut ini
5ambar 7.00 : Dialog pengisian event *lick 1oolButton2
9. .sikan event *lick 1oolButton4 dengan m-apPjual1gl*lick
7. .sikan event *lick 1oolButton7 dengan m-ap%aktur*lick
:. $etikkan nama unit Pjual0H/2, Pjual0H/3, dan Pjual0H/4 pada deklarasi uses, seperti
yang ditunjukkan bercetak tebal pada -isting program Pjual0H/0 berikut ini.
=. $etikkan kode program pada masing!masing event procedure, seperti yang ditunjukkan
bercetak tebal pada -isting program Pjual0H/0 berikut ini.
0>.Simpan lagi program ini dengan *lose (ll, lalu jalankan dan klik masing!masing menu
dan toolbar.
-isting program Pjual0H/0 :
unit Pjual0H/0M
Page 0>4
interface
uses
6indos, 'essages, Sys/tils, 8ariants, *lasses, 5raphics, *ontrols, %orms,
Dialogs, *om*trls, 'enus, .mg-ist, 1ool6in, #jual1=72E #jual1=73E #jual1=7$M
type
1%orm0 N class"1%orm#
'ain'enu0: 1'ain'enuM
1oolBar0: 11oolBarM
.mage-ist0: 1.mage-istM
m%ile: 1'enu.temM
m-ap: 1'enu.temM
m$eluar: 1'enu.temM
mPjual: 1'enu.temM
m%ileBrg: 1'enu.temM
m%ilePlgn: 1'enu.temM
m-apPjual: 1'enu.temM
m-ap%aktur: 1'enu.temM
m-apPjual1gl: 1'enu.temM
m-apPjualBln: 1'enu.temM
m-apPjual1hn: 1'enu.temM
1oolButton0: 11oolButtonM
1oolButton2: 11oolButtonM
1oolButton3: 11oolButtonM
1oolButton4: 11oolButtonM
1oolButton7: 11oolButtonM
procedure m-apPjual1gl*lick"Sender: 1)bject#M
procedure m%ilePlgn*lick"Sender: 1)bject#M
procedure m-ap%aktur*lick"Sender: 1)bject#M
procedure m$eluar*lick"Sender: 1)bject#M
private
E Private declarations F
public
E Public declarations F
endM
var
%orm0: 1%orm0M
implementation
ELB S.dfmF
procedure 1%orm0.m-apPjual1gl*lick"Sender: 1)bject#M
begin
%or!2.Show>
endM
Page 0>7
procedure 1%orm0.m%ilePlgn*lick"Sender: 1)bject#M
begin
%or!3.Show>
endM
procedure 1%orm0.m-ap%aktur*lick"Sender: 1)bject#M
begin
%or!$.Show>
endM
procedure 1%orm0.m$eluar*lick"Sender: 1)bject#M
begin
1ppli)a"ion.Ter!ina"e>
endM
end.
7.2 Mena!pilkan dan Me!bua" 4aporan
Pada subbab ini, (nda akan membuat program untuk menampilkan data berupa laporan
penjualan dan program untuk mencetak laporan yang dialokasikan pada %orm2. (da
empat tahapan yang (nda lakukan dalam hal ini, pertama menambahkan komponen!
komponen yang dibutuhkan pada %orm2. $edua melakukan setting properti terhadap
setiap komponen. $etiga menuliskan kode program dan yang terakhir merancang laporan
dengan program bantu Bave Beports.
7.2.1 Mena!bah .o!ponen
1ambahkan komponen!komponen yang dibutuhkan pada %orm2 seperti yang ditunjukkan
pada gambar 7.02 berikut ini.
Page 0>9
5ambar 7.02 : $omponen pada %orm2
7.2.2 Se""ing #roper"i
/bah nilai properti dari masing!masing komponen sebagai berikut :
.o!ponen #roper"3 2ilai
-abel0 *aption $)P+B(S. S+BB( 5/?(
-abel2 *aption -(P)B(? P+?;/(-(?
-abel3 *aption 1(?55(-
-abel4 *aption SDD
Button0 *aption 1('P.-
Button2 *aption *+1($
Button3 *aption *-)S+
DB?avigator0 nb.nsert %alse
nbDelete %alse
nb+dit %alse
nbPost %alse
nb*ancel %alse
nbBefresh %alse
%orm2 *aption -aporan Penjualan
$omponen (D),uery0 diatur sebagai berikut :
0. $lik properti *onnectionString icon +lipsis " # Build
'icrosoft ;et 4.> )-+ DB Provider ?e&t icon +lipsis
Pilih folder P*:GPetronGDatabaseQ Pilih database Pjual0 )pen
1est *onnection )$ )$ )$
2. $lik properti S,-, lalu ketikkan sebagai berikut :
SE"ECT T9TANGGA", T9NO01AK, B9NAMA, B9)ARGA,
D9.")0BRG, D9.")0BRG3B9)ARGA AS )ARTOT
1ROM TRANSAKSI T, DETRANS D, BARANG B
,)ERE T9NO01AK*D9NO01AK AND D9KO0BRG*B9KODE
AND T9TANGGA" 5* Btgl+ AND T9TANGGA" C* Btgl%
ORDER B8 T9TANGGA", T9NO01AK
3. $lik properti (ctive, lalu ganti nilainya menjadi 1rue
4. $lik kanan pada (D),uery0 %ield +ditorX $lik kanan didalam Dialog
(dd all fields $lik kanan lagi ?e fieldX $etik ?ame, 150
Pilih 1ype, Date Pilih %ield type, *alculated )$.
Page 0>7
7. $lik kanan lagi didalam dialog ?e fieldX $etik ?ame, 152
Pilih 1ype, Date Pilih %ield type, *alculated )$.
9. Pilih field 1(?55(- $lik properti Display%ormat $etik dd!mm!yyyy
7. Pilih field C(B1)1 $lik properti Display%ormat $etik KKK,KKK,KKK
:. $lik *lose
$omponen DataSource0, DB?avigator0, DB5rid0 diatur sebagai berikut :
.o!ponen #roper"3 2ilai
DataSource0 DataSet (D),uery0
DB?avigator0 DataSource DataSource0
DB5rid0 DataSource DataSource0
$omponen DB5rid0 diatur lagi sebagai berikut :
0. $lik kanan pada DB5rid0 Pilih *olumns +ditorX $lik kanan dalam Dialog
$ilk (dd (ll %ields $lik kanan pada field 152 $lik Delete
$lik kanan pada field 150 $lik Delete Pilih field ?)H%($
$lik J pada 1itle Pilih properti *aption 5anti nilainya menjadi %($1/B
2. Pilih field ?('( Pilih properti *aption /bah nilai jadi ?('( B(B(?5
3. Pilih field ;-CHBB5 Pilih properti *aption /bah nilainya menjadi ;/'-(C
4. Pilih field C(B1)1 Pilih properti *aption /bah nilainya menjadi 1)1(-
7.2.3 Menuli& .ode #rogra!
Buka event procedure sebagai berikut :
0. +vent )n*alc%ields untuk (D),uery0
2. +vent )n*lick untuk Button0
3. +vent )n*lick untuk Button2
4. +vent )n*lick untuk Button3
1uliskan kode program untuk masing!masing event procedure seperti yang ditunjukkan
bercetak tebal pada -isting program Pjual2H/2 berikut ini.
4i&"ing progra! #jual2=72 ;
unit Pjual0H/2M
interface
uses
6indos, 'essages, Sys/tils, 8ariants, *lasses, 5raphics, *ontrols, %orms,
Dialogs, DB, (D)DB, DB*trls, Std*trls, 5rids, DB5rids, *om*trls, BpBave,
BpBase, BpSystem, BpDefine, Bp*on, Bp*onDS, +&t*trlsM
Page 0>:
type
1%orm2 N class"1%orm#
-abel0: 1-abelM
-abel2: 1-abelM
-abel3: 1-abelM
Date1imePicker0: 1Date1imePickerM
-abel4: 1-abelM
Date1imePicker2: 1Date1imePickerM
Button0: 1ButtonM
DB5rid0: 1DB5ridM
DB?avigator0: 1DB?avigatorM
Button2: 1ButtonM
Button3: 1ButtonM
(D),uery0: 1(D),ueryM
DataSource0: 1DataSourceM
BvDataSet*on-ap1gl: 1BvDataSet*onnectionM
BvSystem0: 1BvSystemM
BvProject0: 1BvProjectM
(D),uery01(?55(-: 1Date1ime%ieldM
(D),uery0?)H%($: 16ideString%ieldM
(D),uery0?('(: 16ideString%ieldM
(D),uery0C(B5(: 1%loat%ieldM
(D),uery0;-CHBB5: 1Smallint%ieldM
(D),uery0C(B1)1: 1%loat%ieldM
(D),uery0150: 1Date%ieldM
(D),uery0152: 1Date%ieldM
procedure (D),uery0*alc%ields"DataSet: 1DataSet#M
procedure Button0*lick"Sender: 1)bject#M
procedure Button2*lick"Sender: 1)bject#M
procedure Button3*lick"Sender: 1)bject#M
private
E Private declarations F
public
E Public declarations F
endM
var
%orm2: 1%orm2M
implementation
ELB S.dfmF
5ar &"g1E &"g2 ; S"ring>
procedure 1%orm2.(D),uery0*alc%ields"DataSet: 1DataSet#M
begin
1D(Iuer31TB1.+alue ;< S"rToDa"e(&"g1)>
1D(Iuer31TB2.+alue ;< S"rToDa"e(&"g2)>
endM
procedure 1%orm2.Button0*lick"Sender: 1)bject#M
begin
&"g1 ;< Da"eToS"r(Da"eTi!e#i)ker1.Da"e)>
&"g2 ;< Da"eToS"r(Da"eTi!e#i)ker2.Da"e)>
Page 0>=
1D(Iuer31.lo&e>
1D(Iuer31.#repared>
1D(Iuer31.#ara!e"er&.#ara!+alue&KL"gl1LM ;< S"rToDa"e(&"g1)>
1D(Iuer31.#ara!e"er&.#ara!+alue&KL"gl2LM ;< S"rToDa"e(&"g2)>
1D(Iuer31.(pen>
endM
procedure 1%orm2.Button2*lick"Sender: 1)bject#M
begin
/5S3&"e!1.De8aul"De&" ;< rd#re5iew>
/5#roje)"1.E-e)u"e>
endM
procedure 1%orm2.Button3*lick"Sender: 1)bject#M
begin
%or!2.lo&e>
endM
end.
7.2.$ Meran)ang 4aporan
'embuka Bave Beports
*lick 'enu, 1ools Bave Designer
'embuka Project Baru
*lick 'enu, %ile ?e
'enyimpan Project -aporan
*lick 'enu, %ile Save (s Pilih %older
1ulis ?ama %ile, Pjual0H-ap1gl Save
'enambah $omponen Pencetakan Pada %orm2
BvDataSet*onnection0
*lick 1ab, Bave BvDataSet*onnection
*lick dalam %orm2
BvSystem0
*lick 1ab, Bave BvSystem
*lick dalam %orm2
BvProject0
*lick 1ab, Bave BvProject
*lick dalam %orm2
Pengaturan $omponen Pencetakan Pada %orm2
BvDataSet*onnection0
?ameNBvDataSet*on-ap1gl
DataSet N (D),uery0
BvSystem0
Page 00>
System%iler
Status%ormat N Sedang 'encetak Cal. Op
SystemPrevie
%ormState N s'a&imi&ed
_oom%actor N 9>
SystemSetups
ss(lloSetup N %alse
1itlePrevie N Previe -aporan Penjualan
1itleSetup N Pilihan Pencetakan
1itleStatus N Status Pencetakan
BvProject0
+ngine N BvSystem0
Project%ile N " Pilih, Pjual0H-ap1gl.rav#
'enambah $omponen Pada Project -aporan
Data8ie0
*lick %ile?e Data )bjectDirect Data
8ie?e&tBvDataSet*on-ap1gl%inish
Bitmap0
*lick 1ab, Standard Bitmap component
*lick pada Page0
Pengaturan Properti Bitmap0,
Ceight N 0.0
.mage N " )pen Pilih %ile 5ambar
)pen )$#
-eft N >.7
1op N >.77
6idth N 0.0
1e&t0
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t0,
%ont N 1imes ?e Boman, 29, Bold
-eft N 2.7
1op N >.=
6idth N 4
1e&t N $)P+B(S. ('.$ 'BP
1e&t2
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t2,
Page 000
%ont N 1imes ?e Boman, =, .talic
-eft N 2.7
1op N 0.37
6idth N 4.2
1e&t N "(kademi 'anajemen .nformatika $omputer 'edan Business Polytechnic#
1e&t3
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t3,
%ont N 1imes ?e Boman, =, .talic
-eft N 2.7
1op N 0.7
6idth N 4.3
1e&t N ;-. -etjend. Djamin 5inting ?o. 2:7!2:7, 1elp. >90!:209244, :209332 'edan
Bectangle0
*lick 1ab, Draing Bectangle component
*lick pada Page0
Pengaturan Properti Bectangle0,
%illcolor N 5ray
Ceight N >.>7
-eft N >.7
1op N 2.>
6idth N 7.0
1e&t4
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t4,
%ont N 1imes ?e Boman, 2>, Bold
-eft N 2.72
1op N 2.22
6idth N 3.0
1e&t N -(P)B(? P+?;/(-(?
1e&t7
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t7,
%ont N 1imes ?e Boman, 02
-eft N >.7
1op N 2.9:
6idth N >.=7
1e&t N 1(?55(- :
Data1e&t0
*lick 1ab, Beport Data1e&t component
Page 002
*lick pada Page0
Pengaturan Properti Data1e&t0,
Data8ie N Data8ie0
Data%ield N 150
%ont N 1imes ?e Boman, 02
-eft N 0.97
1op N 2.9:
6idth N >.:
1e&t9
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t9,
%ont N 1imes ?e Boman, 02
-eft N 2.77
1op N 2.9:
6idth N >.27
1e&t N SDD
Data1e&t2
*lick 1ab, Beport Data1e&t component
*lick pada Page0
Pengaturan Properti Data1e&t2,
Data8ie N Data8ie0
Data%ield N 152
%ont N 1imes ?e Boman, 02
-eft N 2.=2
1op N 2.9:
6idth N >.:
Bectangle2
*lick 1ab, Draing Bectangle component
*lick pada Page0
Pengaturan Properti Bectangle2,
Ceight N >.4
-eft N >.7
1op N 3.>
6idth N 7.0
8-ine0
*lick 1ab, Draing 8-ine component
*lick pada Bectangle2
Pengaturan Properti 8-ine0,
Ceight N >.4
-eft N 0.7
1op N 3
6idth N >
Page 003
8-ine2
*lick 1ab, Draing 8-ine component
*lick pada Bectangle2
Pengaturan Properti 8-ine2,
Ceight N >.4
-eft N 2.7
1op N 3
6idth N >
8-ine3
*lick 1ab, Draing 8-ine component
*lick pada Bectangle2
Pengaturan Properti 8-ine3,
Ceight N >.4
-eft N 4.7
1op N 3
6idth N >
8-ine4
*lick 1ab, Draing 8-ine component
*lick pada Bectangle2
Pengaturan Properti 8-ine4,
Ceight N >.4
-eft N 7.7
1op N 3
6idth N >
8-ine7
*lick 1ab, Draing 8-ine component
*lick pada Bectangle2
Pengaturan Properti 8-ine7,
Ceight N >.4
-eft N 9.9
1op N 3
6idth N >
1e&t7
*lick 1ab, Standard 1e&t component
*lick pada Bectangle2 kolom pertama
Pengaturan Properti 1e&t7,
%ont N (rial, 00, Bold
-eft N >.77
1op N 3.0
6idth N >.77
1e&t N 1(?55(-
Page 004
1e&t:
*lick 1ab, Standard 1e&t component
*lick pada Bectangle2 kolom kedua
Pengaturan Properti 1e&t:,
%ont N (rial, 00, Bold
-eft N 0.77
1op N 3.0
6idth N >.9
1e&t N %($1/B
1e&t=
*lick 1ab, Standard 1e&t component
*lick pada Bectangle2 kolom ketiga
Pengaturan Properti 1e&t=,
%ont N (rial, 00, Bold
-eft N 2.77
1op N 3.0
6idth N 0.07
1e&t N ?('( B(B(?5
1e&t0>
*lick 1ab, Standard 1e&t component
*lick pada Bectangle2 kolom keempat
Pengaturan Properti 1e&t0>,
%ont N (rial, 00, Bold
-eft N 4.=7
1op N 3.0
6idth N >.77
1e&t N C(B5(
1e&t00
*lick 1ab, Standard 1e&t component
*lick pada Bectangle2 kolom kelima
Pengaturan Properti 1e&t00,
%ont N (rial, 00, Bold
-eft N 7.:3
1op N 3.0
6idth N >.97
1e&t N ;/'-(C
1e&t02
*lick 1ab, Standard 1e&t component
*lick pada Bectangle2 kolom keenam
Pengaturan Properti 1e&t02,
%ont N (rial, 00, Bold
-eft N 9.=
Page 007
1op N 3.0
6idth N >.77
1e&t N 1)1(-
Begion0
*lick 1ab, Beport Begion component
*lick pada Page0
Pengaturan Properti Begion0,
Ceight N 7.0
-eft N >.7
1op N 3.4
6idth N 7.0
DataBand0
*lick 1ab, Beport DataBand component
*lick pada Begion0
Pengaturan Properti DataBand0,
Data8ie N Data8ie0
Ceight N >.27
Bectangle3
*lick 1ab, Draing Bectangle component
*lick pada DataBand0
Pengaturan Properti Bectangle3,
Ceight N >.27
-eft N >
1op N >
6idth N 7.0
8-ine9
*lick 1ab, Draing 8-ine component
*lick pada DataBand0
Pengaturan Properti 8-ine9,
Ceight N >.27
-eft N 0
1op N >
6idth N >
8-ine7
*lick 1ab, Draing 8-ine component
*lick pada DataBand0
Pengaturan Properti 8-ine7,
Ceight N >.27
-eft N 2
1op N >
6idth N >
8-ine:
Page 009
*lick 1ab, Draing 8-ine component
*lick pada DataBand0
Pengaturan Properti 8-ine:,
Ceight N >.27
-eft N 4
1op N >
6idth N >
8-ine=
*lick 1ab, Draing 8-ine component
*lick pada DataBand0
Pengaturan Properti 8-ine=,
Ceight N >.27
-eft N 7
1op N >
6idth N >
8-ine0>
*lick 1ab, Draing 8-ine component
*lick pada DataBand0
Pengaturan Properti 8-ine0>,
Ceight N >.27
-eft N 7.=
1op N >
6idth N >
Data1e&t3
*lick 1ab, Beport Data1e&t component
*lick pada DataBand0 kolom pertama
Pengaturan Properti Data1e&t3,
Data8ie N Data8ie0
Data%ield N 1(?55(-
-eft N >.>7
1op N >.>7
6idth N >.=
Data1e&t4
*lick 1ab, Beport Data1e&t component
*lick pada DataBand0 kolom kedua
Pengaturan Properti Data1e&t4,
Data8ie N Data8ie0
Data%ield N ?)H%($
-eft N 0.>7
1op N >.>7
6idth N >.=
Data1e&t7
*lick 1ab, Beport Data1e&t component
*lick pada DataBand0 kolom ketiga
Pengaturan Properti Data1e&t7,
Page 007
Data8ie N Data8ie0
Data%ield N ?('(
-eft N 2.>7
1op N >.>7
6idth N 0.=
Data1e&t9
*lick 1ab, Beport Data1e&t component
*lick pada DataBand0 kolom keempat
Pengaturan Properti Data1e&t9,
Data8ie N Data8ie0
Data%ield N C(B5(
%ont;ustify N pjBight
-eft N 4.>7
1op N >.>7
6idth N >.=
Data1e&t7
*lick 1ab, Beport Data1e&t component
*lick pada DataBand0 kolom kelima
Pengaturan Properti Data1e&t7,
Data8ie N Data8ie0
Data%ield N ;-CHBB5
%ont;ustify N pj*enter
-eft N 7.>7
1op N >.>7
6idth N >.:
Data1e&t:
*lick 1ab, Beport Data1e&t component
*lick pada DataBand0 kolom keenam
Pengaturan Properti Data1e&t:,
Data8ie N Data8ie0
Data%ield N C(B1)1
%ont;ustify N pjBight
-eft N 7.=7
1op N >.>7
6idth N 0.0
Data1e&t=
*lick 1ab, Beport Data1e&t component
*lick pada Page0
Pengaturan Properti Data1e&t=,
%ont N 1imes ?e Boman, 02
-eft N 9.>
1op N :.=
6idth N 0.:
Page 00:
Data%ield N " Pada kolom Data1e&t 1ulis, P'edan, P J *lick pada kolom Beport
8ariables Pilih, Date.nter *lick, .nsertBeport8ar )$#
1e&t03
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t03,
%ont N 1imes ?e Boman, 02
-eft N 9.>
1op N =.0
6idth N 0.:
1e&t N Bag. Penjualan
1e&t04
*lick 1ab, Standard 1e&t component
*lick pada Page0
Pengaturan Properti 1e&t04,
%ont N 1imes ?e Boman, 02
-eft N 9.>
1op N =.:
6idth N 0.:
1e&t N Casan 1irto
'enyimpan $embali Project -aporan
*lick 'enu, %ile Save
'enyimpan $embali Project -aporan
*lick 'enu, %ile )pen Pilih %older
Pilih ?ama %ile, Pjual0H-ap1gl )pen
7.3 Mena!bahE Mengedi"E dan Menghapu& Da"a
Pada subbab ini, (nda akan membuat program untuk menambah, mengedit, dan meng!
hapus data khusus untuk data pelanggan, yang dialokasikan pada %orm3. (da 3 tahapan
yang (nda lakukan berkaitan dengan topik ini, pertama menambahkan komponen!
komponen yang dibutuhkan pada %orm3. $edua melakukan setting properti terhadap
setiap komponen dan ketiga menuliskan kode program.
G
Page 00=
Tahap 1
1ambahkan komponen!komponen yang dibutuhkan pada %orm3 seperti yang ditunjukkan
pada gambar 7.03 berikut ini.
5ambar 7.3 : $omponen pada %orm3
Tahap 2
/bah nilai properti dari masing!masing komponen sebagai berikut :
.o!ponen #roper"3 2ilai
-abel0 *aption $)D+
-abel2 *aption ?('(
-abel3 *aption (-('(1
Page 02>
-abel4 *aption $)1(
-abel7 *aption 1+-+P)?
Button0 *aption *ari
Button2 *aption 1('B(C
Button3 *aption S.'P(?
Button4 *aption B(1(-
Button7 *aption +D.1
Button9 *aption C(P/S
Button7 *aption *-)S+
+dit0 1e&t $osongkan
+dit2 1e&t $osongkan
+dit3 1e&t $osongkan
+dit4 1e&t $osongkan
+dit7 1e&t $osongkan
+dit9 1e&t $osongkan
5roupBo&0 *aption Pindah Becord
5roupBo&2 *aption Pencarian ".nput $ode#
DB?avigator0 nb.nsert %alse
nbDelete %alse
nb+dit %alse
nbPost %alse
nb*ancel %alse
nbBefresh %alse
%orm3 *aption +dit Pelanggan
$omponen (D)*onnection0 diatur sebagai berikut :
0. $lik properti *onnectionString $lik icon +lipsis " # Build
'icrosoft ;et 4.> )-+ DB Provider ?e&t icon +lipsis
Pilih folder P*:GPetronGDatabaseQ Pilih database Pjual0 )pen
1est *onnection )$ )$ )$
2. $lik properti -oginPrompt, lalu ubah nilainya menjadi %alse
3. $lik properti *onnected, lalu ganti nilainya menjadi 1rue
$omponen dibaah ini diatur sebagai berikut :
.o!ponen #roper"3 2ilai
(D),uery0 *onnection (D)*onnection0
S,- S+-+*1 S %B)' P+-(?55(?
(D),uery2 *onnection (D)*onnection0
DataSource0 DataSet (D),uery0
Page 020
DB?avigator0 DataSource DataSource0
DB5rid0 DataSource DataSource0
$omponen DB5rid0 diatur lagi sebagai berikut :
0. $lik kanan pada DB5rid0 Pilih *olumns +ditorX
2. $lik kanan dalam Dialog $lik (dd
3. /langi langkah 2 sebanyak 4 kali, sehingga terbentuk 7 kolom
4. Pilih kolom > Pilih properti %ield?ame /bah nilainya menjadi $)D+
$lik properti 1itle!*aption /bah nilainya menjadi $)D+
7. Pilih kolom 0 Pilih properti %ield?ame /bah nilainya menjadi ?('(
$lik properti 1itle!*aption /bah nilainya menjadi ?('( P-5?
9. Pilih kolom 2 Pilih properti %ield?ame /bah nilainya menjadi (-('(1
$lik properti 1itle!*aption /bah nilainya menjadi (-('(1
7. Pilih kolom 3 Pilih properti %ield?ame /bah nilainya menjadi $)1(
$lik properti 1itle!*aption /bah nilainya menjadi $)1(
:. Pilih kolom 4 Pilih properti %ield?ame /bah nilainya menjadi 1+-+P)?
$lik properti 1itle!*aption /bah nilainya menjadi 1+-+P)?
Tahap 3
Buka event procedure sebagai berikut :
%orm(ctivate, (D),uery0(fterScroll, +dit0+&it, +dit9+nter, +dit9+&it,
Button0*lick, Button2*lick, Button3*lick, Button4*lick, Button7*lick,
Button9*lick, Button7*lick.
1uliskan kode program untuk masing!masing event procedure dan user procedure seperti
yang ditunjukkan bercetak tebal pada -isting program Pjual0H/3 berikut ini :
4i&"ing progra! #jual1=73
unit Pjual0H/3M
interface
uses
6indos, 'essages, Sys/tils, 8ariants, *lasses, 5raphics, *ontrols, %orms,
Dialogs, DB, (D)DB, 5rids, DB5rids, Std*trls, +&t*trls, DB*trlsM
type
1%orm3 N class"1%orm#
-abel0: 1-abelM
-abel2: 1-abelM
-abel3: 1-abelM
Page 022
-abel4: 1-abelM
-abel7: 1-abelM
+dit0: 1+ditM
+dit2: 1+ditM
+dit3: 1+ditM
+dit4: 1+ditM
+dit7: 1+ditM
5roupBo&0: 15roupBo&M
5roupBo&2: 15roupBo&M
DB?avigator0: 1DB?avigatorM
+dit9: 1+ditM
Button0: 1ButtonM
Button2: 1ButtonM
Button3: 1ButtonM
Button4: 1ButtonM
Button7: 1ButtonM
Button9: 1ButtonM
Button7: 1ButtonM
DB5rid0: 1DB5ridM
(D)*onnection0: 1(D)*onnectionM
(D),uery0: 1(D),ueryM
(D),uery2: 1(D),ueryM
DataSource0: 1DataSourceM
#ro)edure edDa"a:apu&>
#ro)edure edDa"aI&i>
#ro)edure edDa"a2onak"i8>
#ro)edure edDa"a1k"i8>
#ro)edure ariDa"a(&)ari; S"ring> 5ar h)ari; S"ring)>
#ro)edure .ondi&i1wal>
procedure %orm(ctivate"Sender: 1)bject#M
procedure (D),uery0(fterScroll"DataSet: 1DataSet#M
procedure +dit0+&it"Sender: 1)bject#M
procedure +dit9+nter"Sender: 1)bject#M
procedure +dit9+&it"Sender: 1)bject#M
procedure Button0*lick"Sender: 1)bject#M
procedure Button2*lick"Sender: 1)bject#M
procedure Button3*lick"Sender: 1)bject#M
procedure Button4*lick"Sender: 1)bject#M
procedure Button7*lick"Sender: 1)bject#M
procedure Button9*lick"Sender: 1)bject#M
procedure Button7*lick"Sender: 1)bject#M
private
E Private declarations F
public
E Public declarations F
endM
var
%orm3: 1%orm3M
Page 023
&"rkodeE h&l)ari ; S"ring>
blnhapu& ; 9oolean>
in"p&n ; Word>
implementation
ELB S.dfmF
#ro)edure T%or!3.edDa"a:apu&>
9egin
Edi"1.Te-" ;< LL>
Edi"2.Te-" ;< LL>
Edi"3.Te-" ;< LL>
Edi"$.Te-" ;< LL>
Edi"'.Te-" ;< LL>
End>
#ro)edure T%or!3.edDa"aI&i>
9egin
Edi"1.Te-";<1D(Iuer31.%ield+alue&KL.(DELM>
Edi"2.Te-";<1D(Iuer31.%ield+alue&KL21M1LM>
Edi"3.Te-";<1D(Iuer31.%ield+alue&KL141M1TLM>
Edi"$.Te-";<1D(Iuer31.%ield+alue&KL.(T1LM>
Edi"'.Te-";<1D(Iuer31.%ield+alue&KLTE4E#(2LM>
End>
#ro)edure T%or!3.edDa"a2onak"i8>
9egin
Edi"1.Enabled ;< %al&e>
Edi"2.Enabled ;< %al&e>
Edi"3.Enabled ;< %al&e>
Edi"$.Enabled ;< %al&e>
Edi"'.Enabled ;< %al&e>
End>
#ro)edure T%or!3.edDa"a1k"i8>
9egin
Edi"1.Enabled ;< True>
Edi"2.Enabled ;< True>
Edi"3.Enabled ;< True>
Edi"$.Enabled ;< True>
Edi"'.Enabled ;< True>
End>
#ro)edure T%or!3.ariDa"a(&)ari; S"ring> 5ar h)ari; S"ring)>
9egin
1D(Iuer32.lo&e>
1D(Iuer32.SI4.lear>
1D(Iuer32.SI4.1dd(
Page 024
LSE4ET .(DE %/(M #E412BB12 W:E/E .(DE < ;./L)>
1D(Iuer32.#repared>
1D(Iuer32.#ara!e"er&.#ara!+alue&KL./LM ;< &)ari>
1D(Iuer32.(pen>
I8 1D(Iuer32.Eo8 Then h)ari;<LL
El&e h)ari;<1D(Iuer32.%ield+alue&KL.(DELM>
End>
#ro)edure T%or!3..ondi&i1wal>
9egin
edDa"a2onak"i8>
D9Brid1.Enabled ;< True>
D92a5iga"or1.Enabled ;< True>
9u""on2.Enabled ;< True>
9u""on3.Enabled ;< %al&e>
9u""on$.Enabled ;< %al&e>
9u""on'.Enabled ;< %al&e>
9u""on*.Enabled ;< %al&e>
9u""on7.Enabled ;< True>
Edi"*.Enabled ;< True>
9u""on1.Enabled ;< %al&e>
1D(Iuer31.lo&e>
1D(Iuer31.SI4.lear>
1D(Iuer31.SI4.1dd(LSE4ET ? %/(M #E412BB12 (/DE/ 9G .(DEL)>
1D(Iuer31.(pen>
edDa"aI&i>
Edi"*.Te-" ;< LL>
9u""on2.Se"%o)u&>
End>
procedure 1%orm3.%orm(ctivate"Sender: 1)bject#M
begin
.ondi&i1wal>
endM
procedure 1%orm3.(D),uery0(fterScroll"DataSet: 1DataSet#M
begin
edDa"aI&i>
endM
procedure 1%orm3.+dit0+&it"Sender: 1)bject#M
begin
I8 4eng"h(Edi"1.Te-") < ' Then
begin
ariDa"a(Edi"1.Te-"Eh&l)ari)>
I8 h&l)ari < LL Then
begin
&"rkode ;< Edi"1.Te-">
blnhapu& ;< True>
Page 027
1D(Iuer32.lo&e>
1D(Iuer32.SI4.lear>
1D(Iuer32.SI4.1dd(
LI2SE/T I2T( #E412BB12(.(DE) +147ES(;.D)L)>
1D(Iuer32.#repared>
1D(Iuer32.#ara!e"er&.#ara!+alue&KL.DLM ;< Edi"1.Te-">
1D(Iuer32.E-e)SI4>
Edi"1.Enabled ;< %al&e>
end
El&e
begin
Me&&ageDlg(L.ode &udah ada ...LE !"In8or!a"ionE K!b(.ME H)>
Edi"1.Se"%o)u&>
end>
end
El&e
Edi"1.Se"%o)u&>
endM
procedure 1%orm3.+dit9+nter"Sender: 1)bject#M
begin
9u""on2.Enabled ;< %al&e>
9u""on7.Enabled ;< %al&e>
9u""on1.Enabled ;< True>
endM
procedure 1%orm3.+dit9+&it"Sender: 1)bject#M
begin
I8 Edi"*.Te-" < LL Then Edi"*.Se"%o)u&>
endM
procedure 1%orm3.Button0*lick"Sender: 1)bject#M
begin
ariDa"a(Edi"*.Te-"Eh&l)ari)>
I8 h&l)ari < LL Then
begin
in"p&n ;< Me&&ageDlg(L.ode "idak ada ...LE
!"on8ir!a"ionE K!b(.E!ban)elME H)>
)a&e in"p&n o8
!r(. ; Edi"*.Se"%o)u&>
!ran)el ; .ondi&i1wal>
end>
end
El&e
begin
&"rkode ;< Edi"*.Te-">
blnhapu& ;< %al&e>
Edi"*.Enabled ;< %al&e>
9u""on1.Enabled ;< %al&e>
Page 029
9u""on2.Enabled ;< %al&e>
9u""on$.Enabled ;< True>
9u""on'.Enabled ;< True>
9u""on*.Enabled ;< True>
9u""on7.Enabled ;< %al&e>
1D(Iuer31.lo&e>
1D(Iuer31.SI4.lear>
1D(Iuer31.SI4.1dd(
LSE4ET ? %/(M #E412BB12 W:E/E .(DE < ;./L)>
1D(Iuer31.#repared>
1D(Iuer31.#ara!e"er&.#ara!+alue&KL./LM ;< &"rkode>
1D(Iuer31.(pen>
9u""on'.Se"%o)u&>
end>
endM
procedure 1%orm3.Button2*lick"Sender: 1)bject#M
begin
9u""on2.Enabled ;< %al&e>
9u""on3.Enabled ;< True>
9u""on$.Enabled ;< True>
9u""on7.Enabled ;< %al&e>
D92a5iga"or1.Enabled ;< %al&e>
edDa"a1k"i8>
edDa"a:apu&>
Edi"1.Se"%o)u&>
endM
procedure 1%orm3.Button3*lick"Sender: 1)bject#M
begin
1D(Iuer32.lo&e>
1D(Iuer32.SI4.lear>
1D(Iuer32.SI4.1dd(
L7#D1TE #E412BB12 SET 21M1 < ;2ME 141M1T < ;14ELN
L .(T1 < ;.TE TE4E#(2 < ;T4 W:E/E .(DE < ;./L)>
1D(Iuer32.#repared>
1D(Iuer32.#ara!e"er&.#ara!+alue&KL2MLM ;< Edi"2.Te-">
1D(Iuer32.#ara!e"er&.#ara!+alue&KL14LM ;< Edi"3.Te-">
1D(Iuer32.#ara!e"er&.#ara!+alue&KL.TLM ;< Edi"$.Te-">
1D(Iuer32.#ara!e"er&.#ara!+alue&KLT4LM ;< Edi"'.Te-">
1D(Iuer32.#ara!e"er&.#ara!+alue&KL./LM ;< &"rkode>
1D(Iuer32.E-e)SI4>
.ondi&i1wal>
endM
procedure 1%orm3.Button4*lick"Sender: 1)bject#M
begin
.f blnhapus 1hen
begin
Page 027
1D(Iuer32.lo&e>
1D(Iuer32.SI4.lear>
1D(Iuer32.SI4.1dd(
LDE4ETE %/(M #E412BB12 W:E/E .(DE < ;./L)>
1D(Iuer32.#repared>
1D(Iuer32.#ara!e"er&.#ara!+alue&KL./LM ;< &"rkode>
1D(Iuer32.E-e)SI4>
end>
.ondi&i1wal>
endM
procedure 1%orm3.Button7*lick"Sender: 1)bject#M
begin
9u""on3.Enabled ;< True>
9u""on'.Enabled ;< %al&e>
9u""on*.Enabled ;< %al&e>
edDa"a1k"i8>
Edi"1.Enabled ;< %al&e>
Edi"2.Se"%o)u&>
endM
procedure 1%orm3.Button9*lick"Sender: 1)bject#M
begin
in"p&n ;< Me&&ageDlg(LGakin dihapu& ..OLE
!"on8ir!a"ionE K!b(.E!ban)elME H)>
I8 in"p&n < 1 Then
begin
blnhapu& ;< True>
9u""on$.li)k()>
end>
.ondi&i1wal>
endM
procedure 1%orm3.Button7*lick"Sender: 1)bject#M
begin
%or!3.lo&e>
endM
end.
Page 02:
D"FT"' (ST"K"
0. _ainuddin _ukhri, Dasar-dasar Pemrograman Visual dengan Delphi 6!, +disi 0"
5raha .lmu, Iokyakarta, 2>>3
2. 6ahana $omputer, Panduan Praktis Pemrograman #orland Delphi $!, +disi 0"
(ndi, Iokyakarta, 2>>3
3. .nge 'artina, Pemrograman Visual #orland Delphi $, +disi 0" P1. +le& 'edia
$omputindo, ;akarta, 2>>4
4. (bdul $adir, Dasar %plikasi Database &'()* Delphi" +disi 0, (ndi, Iokyakarta,
2>>4
7. .nge 'artina, (eri %plikasi Pemrograman Database &engunakan Delphi, +disi 0,
P1. +le& 'edia $omputindo, ;akarta, 2>>0
9. .nge 'artina, Database +lient/(erver &engunakan Delphi, +disi 0, P1. +le& 'edia
$omputindo, ;akarta, 2>>2
7. (bdul $adir, Pemrograman Database dengan &enggunakan Delphi $!
menggunakan %,,ess %D-" +disi 0, (ndi, Iokyakarta, 2>>7
:. Cengky (le&aander 'angkulo, Pemrograman Database &enggunakan Delphi $!
dengan &etode %D-" +disi 0, P1. +le& 'edia $omputindo, ;akarta, 2>>4
Page 02=