1
Modul Praktek Laboratorium Komputer
Disusun Oleh:
Achmad Baroqah Pohan S.Kom Ika Yuniva S.Kom
Akademi Manajemen Informatika & Informatika
Jakarta
2012
2
Bab I
Mengenal Delphi
1.1. Pengertian Delphi
Delphi adalah suatu bahasa pemograman (development language) yang digunakan untk
merancang suatu aplikasi program.
Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak
yang dikembangkan oleh Borland. Dengan menggunakan Free Pascai yang merupakan
proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan
di sistem operasi Mac OS X dan Windows CE
a. Kegunaan Delphi
1. untuk membuat aplikasi windows
2. Untuk merancang aplikasi program berbasis grafis
3. Untuk membuat program berbasis jaringan (client/server)
4. Untuk merancang program .Net (berbasis internet)
b. Keunggulan Delphi
1. IDE (Integrated Development Environment) atau lingkungan pengembangan aplikasi
sendiri adalah satu dari beberapa keunggulan delphi, didalamnya terdapat menu -
menu yang memudahkan kita untuk membuat suatu proyek program.
2. Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi,
maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah.
3. Mudah digunakan, source kode delphi yang merupakan turunan dari pascal, sehingga
tidak diperlukan suatu penyesuain lagi.
4. Bersifat multi purphase, artinya bahasa pemograman Delphi dapat digunakan untuk
mengembangkan berbagai keperluan pengembangan aplikasi.
c. Sejarah Borland Delphi
1. Delphi versi 1 (berjalan pada windows 3.1 atau windows 16 bit)
2. Delphi versi 2 (Berjalan pada windows 95 atau delphi 32 bit)
3. Delphi versi 3 (berjalan pada windows 95 keatas dengan tambahan fitur internet atua
web)
4. Perkembangan selanjutnya diikuti dengan Delphi versi 4, 5 dan 6.
5. Delphi versi 7 terdapat vitur .net dengan tambahan file XML
6. Versi yang terkini adalah Delphi 8.0 yang memiliki terdapat komponen BPD (Borland
Data Providers)
1.2. OOP (Object Oriented Programming)
OOP adalah metode pemograman dengan membentu sebuah aplikasi yang
mendekati keadaan dunia yang sesungguhnya. Hal itu bisa dilakukan dengan cara
mendisain object untuk menyelesaikan masalah.
3
1. Tiga unsur OOP
a. Encapsulation atau pemodelan
Encapsulation adalah konsep penggabungan data dengan operator. Dalam konsep
pemodelan data dan operasi menjadi satu kesatuan yang disebut object.
Encapsulation juga disebut dengan penyembunyian informasi (information hiding)
Contoh = ketika kita menyalakan sebuah TV kita tidak tahu apa yang terjadi dengan
proses dan percakapan antar alat yang berhubungan dengan TV tersebut
sehingga mampu menampilkan sebuah gambar.
Atau = ketika melakukan klik pada subuah object dalam suatu aplikasi program kita
tidak tahu apa yang dilakukan program sehingga ditampilkan hasil yang
sesuai.
Catatan = dari dua contoh kasus tersebut terdapat kesamaan proses mengenai
information hiding yang tidak diketahui oleh user sampai hasil ditampilkan.
b. Inheritance atau penurunan
Inherintance adalah sebuah object yang dapat diturunkan menjadi object yang baru
dengan tidak menghilangkan sifat asli dari object tersebut.
Contoh = TV merupakan salah satu media elektronik yang dgunakan untuk
menampilkan gambar dengan tujuan untuk memberikan informasi kepada
konsumen. Secara umum TV memunyai cara kerja yang sama dengan media
elektronik yang lain dlam proses penyampaian informasi, tetapi mempunyai
sifat yang unik yang dapat membedakan dengan media electronik yang ada.
Atau = Dalam aplikasi program kita sering menggunakan command button, untuk
beberapa perintah yang berbeda.
c. Polymorphism atau Polimorfisme
Polymorphism merupakan penggunaan berbagai macam object yang berbeda tetapi
secara fungsi bergantung pada satu object sebagai induk, dengan cara pelaksanaan yang
berbeda - beda.
Contoh = TV dan radio adalah media electronik yang mempunyai sistem yang sama
tentang bagaimana meyebarkan suatu informasi, tetapi cara kerja dari masing
- masing sistem pasti berbeda.
Atau
Object Simpan dan Update adalah icon yang berasal dari induk yang sama yaitu ,
command button tetapi cara kerja tersebut berbeda - beda.
4
1.3. Delphi dan OOP (Object Oriented Programming)
Secara default ketika kita merancang suatu aplikasi program, mau tidak mua dan tanpa kita
sadari bahwa kita telah menerapkan OOP, walupun secara teori kita kurang memahami
OOP dalam arti yang sebenarnya.
Contoh sederhananya adalah ketika kita merancang suatu form (Tforml) baru, sadar atau
tidak sebenarnya form yang kita aktifkan merupakan turunan dari Tform sebagai induknya
atau ketika kita mengaktikan button pada form merupakan turunan dari tbutton.
Atau
Contoh dalam bahasa program adalah sebagai berikut = ketika merancang suatu label di
form secara otomatis delphi akan menuliskan label tersebut dalam jendela code editor
tentang turunan dari label tersebut.
Type
Tform = class(tform)
Labell = tlabel
End;
1.4. IDE DELPHI
a. langkah - langkah mengaktifkan Delphi
a. Klik start
b. pilih program Files
c. pilih Borland Delphi
d. pilih dan klik Delphi 7
b. Jendela Utama Delphi
Gambar 1.1 Jendela Utama Delphi
5
c. Bagian - bagian dari Jendela Delphi
1. Object Tree View
Merupakan sebuah diagram pohon yang menggambarkan hubungan logis
menghubungkan semua komponen yang terdapat dalam suatu proyek program.
Komponen tersebut meliputi form, modul atau frame. Fungsinya digunakan untuk
menampilkan seluruh daftar komponen program dalm sebuah aplikasi program sesuai
dengan penempatnnya.
Gambar 1.2 Jendela Object Tree View
2. Object Inspector
Merupakan jendela yang digunakan utnuk mengatur tampilan komponen pada form, misal
bagaimana mengubah tulisan button pada command button menjadi Simpan, atau
menghapus tulisan pada label dan mengganti nama menjadi Nama Mahasiswa atau
memberikan perintah tertentu pada sebuah komponen sehingga ada interaksi ketika
program dijalankan.
Secara Umum Object Inspector terbagi menadi 2, yaitu =
a. Properties
Digunakan untuk mengatur tampilan pada sebuah komponen baik itu meliputi
penggantian nama, warna, jenis huruf, border dan lain -lain.
6
Gambar 1.3 Jendela Inspector ( Properties )
b. Events
Merupakan jendela properties yang digunakan untuk memberikan fungsi yang lebih detail
dari fungsi sebenarnya. Misalnya ketika tombol Simpan di klik maka program akan
menjalankan perintah penyimpanan data. Dari kalimat tersebut ada event clik untuk
mengeksekusi sebuah tombol simpan. Perintah event clik tersebut dapat diberikan melalui
jendela events.
Gambar 1.4 Jendela Events pada Object Inspector
7
3. Form Designer
Merupakan tempat yang digunakan untuk merancang semua aplikasi yang diambil dari
komponen pallete.
Gambar 1.5. Jendela Events pada Object Inspector
4. Component Pallete
Merupakan kumpulan icon yang digunakan untuk merancang suatu aplikasi untuk
membentuk sebuah aplikasi user interface. Dalam komponen pallete semua icon dikelompokkan
dalam berbagai komponen sesuai dengan fungsi dan kegunaanya.
Gambar 1.6. Jendela Komponen Pallete
8
5. Code Editor
Bagian dari delphi yang digunakan untuk menuliskan kode program. Pada bagian code editor
terdapat 3 bagian utama yaitu = bagian paling kiri yang berisi berupa angka menunjukan baris
dan kolom. Keterangan modified menunjukan bahwa telah terjadi modifikasi terhapap baris
program. Dan paling kanan menunjukan status keyboard tentang tombol insert atau over write.
Gambar 1.7 Jendela Code Editor
9
6. Code Explorer
Jendela yang digunakan untuk menampilkan seluruh variabel, type, dan rountine yang
didefinisikan pada sebuah unit.
Gambar 1.8 Jendela Code Explorer
7. Code Diagram
Merupakan fasilitas pada delphi yang digunakan untuk mendesain sebuah diagram atas
komponen - komponen yang digunakan dalam seatu rancangan aplikasi.
Gambar 1.9. Jendela Code Diagram
10
d. Proyek Delphi
1. File Proyek
File ini disimpan dengan ber-ekstenion .dpr. File ini berisi informasi mengenai seluruh
proyek program
2. File Unit
File ini merupakan kumpulan dari barisan kode program yang terdapat di jendela code
editor, baik itu yang dituliskan oleh progremmer maupun oleh system. Extention file ini
adalah . pas File Unit dibagi menjadi 2
a. Bagian Interface
Barisan ini dimulai dari kata Interface (setelah nama unit), berisi seluruh deklarasi
variabel, tipe data object maupun deklarasi tambahan.
b. Bagian Implementation
Dimulai dari kata kunci implementation dan diakhiri dengan kata end. Fungsi
digunakan untuk menuliskan kode program sebagai bagain dari interaksi antar
komponen ataupun dengan user.
3. File Form
Berisi tentang seluruh informasi yang ada kaitannya dengan form yang dibuat, meliputi
tinggi, lebar, pososi form atau tentang komponen didalmnya. Penggunaan file ini tidak
dianjurkan karena untu pengaturan sudah disediakan object inspector sebagai media
pengaturan semua komponen.
1.5. Aplikasi Perkenalkan(LATIHAN 1)
a. Hasil Program
Gambar 1.10 Gambar Form Perkenalkan!!!
11
b. Desain Form
Gambar 1.20 Gambar Desain Form Perkenalkan
c. Desian Properties
Object Name Caption
Label 1 Label 1 Nama Mata Kuliah
Label 2 Label 2 Kampus
Label 3 Lnama Label3
Label 4 Lalamat Label4
Label 5 Ltanggal Label 5
Label 6 Ljam Label 6
Timer ( diambil dari
component System )
Timer1 -
Button1 Btampil Tampil
Button2 Bkeluar Keluar
Form 1 Forml :::Perkenalan:::
d. Listing program
1. Ketika form dalam keadaan aktif maka form akan menampilkan nama dan
alamat pembuat program
procedure TForm1.btampilClick(Sender: TObject);
12
begin
label3.Caption:='Borland Delphi 7';
label4.Caption:='Bina Sarana Informatika';
end;
2. Untuk keluar dari program user mengklik Button keluar
procedure TForm1.bkeluarClick(Sender: TObject);
begin
close;
end;
1.6. Latihan Membuat Program
a. Form Setelah dijalankan
Gambar 1.21 Gambar Form Latihan ”Perkenalan Pert1”
b. Ketentuan yang diinginkan…
1. Jika diklik Button Tampil maka muncul data seperti gambar diatas
2. Jika dklik Button Keluar maka akan keluar dari aplikasi program
13
Bab II
Mengenal Form dan Objek Kontrol
2.1 Form
Form adalah tempat dimana kita membuat tampilan (user interface) dari program aplikasi.
Dengan form, pemakai program dapat berkomunikasi atau berinteraksi dengan program. Pada
waktu anda membuat sebuah proyek pada Delphi 7.0 , maka secara default telah terdapat
sebuah form pada proyek tersebut. Contoh sebuah form adalah seperti pada gambar 2.1
Gambar 2.1 Tampilan Sebuah Form
Berikut ini daftar beberapa contoh properti dari form yang biasanya dipakai untuk membuat
form secara umum pada aplikasi database.
Properti Keterangan
Align Posisi form pada waktu form ditampilkan pertama kali
BorderStyle Bentuk batasan pinggiran form
BorderWidth Lebar batasan pinggiran form
Caption Judul form
ClientHeight Tinggi Client area pada form
Color Warna form
Constraints Batasan ukuran form
Cursor Bentuk kursor mouse waktu berada pada form
Enabled Penerimaan event pada form
14
Font Bentuk teks pada form
FormStyle Bentuk Form
Height Tinggi form
Hint Keterangan apabila kursor mouse masuk dalam area form
HorzScrollBar Horizontal scrollbar pada form
Icon Gambar icon pada judul form dan aplikasi program
Left Posisi kiri form diukur dari kiri layar
Menu Menu yang dipakai pada form
Name Nama Form
PopupMenu Menu Pop Up untuk Form
Position Posisi Form pada Monitor
ShowHint Menampilkan hint
Top Posisi atas form diukur dari atas layar
VertScrollBar Vertikal scroll bar pada form
Visible Jika true form kelihatan, jika false form tidak kelihatan
Widht Lebar Form
WindowState Ukuran tampilan form
Selain properti terdapat juga event. Event adalah kejadian yang dapat terjadi atau
mempengaruhi form pada waktu program dijalankan. Contoh beberapa event yang dipakai
pada form program aplikasi database adalah sebagai berikut.
Event Waktu Terjadi
OnActivate Form menjadi window aktif
OnShow Form aktif atau sesaat sebelum ditampilkan
OnHide Form tidak aktif atau sesaat sebelum hilang
Salah satu contoh penggunaan event yang terdapat pada form adalah OnActivate. Event
OnActivate terjadi pada waktu form telah aktif dilayar. Untuk melihat contohnya lakukan
langkah berikut.
1. Buat sebuah proyek baru.
2. Klik ganda pada event OnActivate pada kotak dialog Object Inspector tab Events.
15
3. Tuliskan kode program pada kode editor sehingga menjadi seperti berikut ini.
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Caption:='Selamat Belajar Pemrograman Delphi 7.0';
end;
4. Jalankan program tersebut. Hasilnya seperti yang terlihat pada gambar 2.2. dimana
terdapat teks ”Selamat Belajar Pemrograman Delphi 7.0” pada judul form.
5. Untuk kode program selengkapnya adalh sebagai berikut.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation {$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Caption:='Selamat Belajar Pemrograman Delphi 7.0';
end;
end.
16
Apabila anda menggunakan lebih dari satu form pada satu proyek, secara default Form1 yang
akan dijalankan pertama kali. Namun, apabila ingin menjalankan dari form yang lain, anda
dapat memilih form mana yang akan dijalankan pertama kali dengan cara seperti berikut :
1. Klik Menu Project.
2. Klik Options.
3. Setelah itu tampil kotak dialog Project Options seperti pada Gambar 2.3.
4. pada kotak dialog Project Options tab Form, pilih form yang akan dijalankan
pertama kali pada saat Run-Time pada bagian Main Form
5. Klik Ok
2.2 Objek Kontrol
Pada waktu anda membuat program aplikasi, anda memerlukan objek kontrol yang digunakan
untuk tampilan form. Objek kontrol banyak digunakan untuk menampilkan data atau juga
membaca data. Dengan adanya objek kontrol, pemakai program aplikasi akan lebih mudah
untuk menggunakan serta berinteraksi dengan program aplikasi tersebut. Objek kontrol yang
digunakan pada form dibuat dari kontrol-kontrol yang terdapat pada component palette.
17
Berikut ini akan dibahas mengenai beberapa contoh kontrol yang sering digunakan dalam
pembuatan program aplikasi.
2.2.1. Edit Box
Edit box merupakan kontrol yang dipakai sebagai tempat untuk mengisi maupun
menampilkan data. Dengan edit box user pengguna aplikasi dapat mengisi data ke dalam
program. Selain itu, edit box juga dapat digunakan untuk menampilkan data pada
user.berikut ini beberapa contoh properti dari edit box yang sering dipakai pada program
aplikasi.
Properti Keterangan
BorderStyle Bentuk Garis Tepi edit box
CharCase Bentuk karakter pada edit box
Color Warna Edit box
Ctl3D Jika bernilai true, bentuk edit box berbentuk 3 Dimensi
Cursor Bentuk kursor mouse waktu berada pada edit box
Enabled Penerimaan event pada edit box
Font Jenis dan ukuran dari karakter pada edit box
Height Tinggi edit box
Hint Keterangan waktu kursor berada pada edit box
Height Tinggi edit box
Hint Keterangan waktu kursor berada pada edit box
Left Posisi edit box diukur dari batas kiri form
Maxlength Banyaknya karakter maksimum dari edit box
Name Nama edit box
PasswordChar Untuk karakter password
PopupMenu Menu Pop Up untuk edit box
ReadOnly Jika bernilai true, tidak bisa mengisi karakter kedalam edit box
ShowHint Jika bernilai true,hint bisa ditampilkan
Text Isi edit text
Top Posisi
18
Visible Jika true edit box kelihatan, jika false edit box tidak kelihatan
Widht Lebar edit box
Untuk beberapa contoh event edit box yang sering dipakai pada programn aplikasi adalah
sebagai berikut :
Event Waktu Terjadi
OnEnter Edit box mendapat box.
OnExit Edit box kehilangan fokus
OnKeyDown Sebuah tombol keyborad ditekan dan properti keypreview
Pada form bernilai false
OnKeyPress Sebuah tombol keyboard ditekan waktu fokus di edit box
OnKeyUp Tombol yang ditekan dilepas waktu fokus di edit box
2.2.2. Label
Label merupakan kontrol yang dipakai sebagai tempat untuk menampilkan keterangan.
Berikut ini beberapa
Properti Keterangan
Align Posisi dari label pada form
Alignment Posisi horizontal teks pada label
Autosize Jika true,ukuran label menyesuaikan dengan text
Caption Teks pada label
Color Warna Label
Cursor Bentuk kursor mouse waktu berada pada label
Font Jenis teks dari label
Enabled Penerimaan event pada label
Height Tinggi Label
Hint Keterangan waktu kursor berada pada label
Layout Posisi Vertikal dari teks pada label
Left Posisi label diukur dari batas kiri form
19
Name Nama Label
PopupMenu Menu Pop Up untuk Label
ShowHint Jika Bernilai true, Hint bisa ditampilkan
Top Posisi label diukur dari batas atas form
Transparent Jika bernilai true, label berbentuk transparan
Visible Jika true label kelihatan, jika false label tidak kelihatan
Widht Lebar Label
2.2.3. Button
Button merupakan kontrol yang dipakai sebagai tombol untuk melakukan suatu proses.
Berikut ini beberapa contoh properti dari button yang dipakai pada program aplikasi.
Properti Keterangan
Cancel Jika bernilai true, tombol ESC akan menjalankan event OnClick
Caption Teks pada button
Cursor Bentuk kursor mouse waktu berada pada button
Default Jika bernilai true,tombol ENTER akan menjalankan event
OnClick
Enabled Penerimaan event pada button
Font Jenis teks button
Height Tinggi Button
Hint Keterangan waktu kursor berada pada button
Left Posisi button diukur dari batas kiri form
Name Nama button
PopupMenu Menu Pop Up Untuk button
ShowHint Jika bernilai true, hint bisa ditampilkan
Top Posisi button diukur dari batas atas form
Visible Jika true button kelihatan, jika false button tidak kelihatan
Widht Lebar button
20
Apabila anda mengklik ganda button pada waktu desain, secara otomatis akan
menghasilkan event OnClick . Untuk beberapa contoh event button yang dipakai pada
program aplikasi adalah sebagai berikut.
Event Waktu Terjadi
OnClick Button diklik dengan mouse
OnEnter Button mendapat fokus
OnExit Button Kehilangan fokus
KeyDown Sebuah tombol keyboard ditekan dan properti KeyPreview
Pada form bernilai false
KeyPress Sebuah tombol keyboard ditekan waktu fokus di button
KeyUp Tombol yang ditekan dilepas waktu fokus di button
2.2.4. Combo Box
Combo box merupakan kontrol yang dipakai sebagai tempat untuk menampilkan daftar
pilihan. Dengan combo box anda tinggal memilih pilihan yang ada pada combo box
tersebut. Berikut ini beberapa contoh properti dari combo box yang dipakai pada program
aplikasi .
Properti Keterangan
CharCase Bentuk karakter pada combo box
Color Warna combo box
Ctl3D Jika bernilai true, combobox berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada combo box
DropDownCount Jumlah baris yang tampil pada waktu combo box diklik
Enabled Penerimaan event pada combo box
Font Jenis teks dari combo box
Height Tinggi combo box
Hint Keterangan waktu kursor berada pada combo box
Items Daftar pilihan yang ditampilkan pada combo box
Left Posisi combo box diukur dari batas kiri form
MaxLength Banyaknya karakter maksimum dari combo box
21
Name Nama combo box
PopupMenu Menu Pop Up untuk combo box
ShowHint Jika bernilai true,hint bisa ditampilka
Sorted Jika bernilai true ,daftar pilihan pada combo box diurutkan
Style Bentuk combo box
Text Isi Combo box
Top Posisi combo box diukur dari batas atas form
Visible Jika true combo box kelihatan , jika false combo box tidak
Kelihatan
Width Lebar combo box
Untuk beberapa contoh event combo box yang dipakai pada aplikasi adalah sebagai
berikut :
Event Waktu Terjadi
OnClick Combo box diklik dengan mouse
OnEnter Combo box mendapat fokus
OnExit Combo box kehilangan fokus
OnKeyDown Sebuah tombol keyboard ditekan dan properti keypreview
Pada form bernilai true
OnKeyPress Sebuah tombol keyboard ditekan waktu fokus di combo box
OnKeyUp Tombol yang ditekan dilepas waktu fokus di combo box
2.2.5. List Box
List box memiliki fungsi yang hampir sama dengan combo box yaitu menampilkan daftar.
Perbedaanya yaitu pada combo box hanya satu pilihan yang terlihat sebelum combo box
diklik, sedangkan pada list box dapat menampilkan beberapa pilihan. Pada list box anda
tinggal memilih pilihan yang ada pad list box yang dipakai pada program aplikasi.
Properti Keterangan
Align Posisi list box pada form
BorderStyle Bentuk batasan pinggiran list box
22
Color Warna list box
Columns Jumlah kolom list box
Ctl3D Jika bernilai true, listbox berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada list box
Enabled Penerimaan event pada list box
Font Jenis teks dari list box
Height Tinggi list box
Hint Keterangan waktu kursor berada pada list box
Items Daftar pilihan yang ditampilkan pada list box
Left Posisi list box diukur dari batas kiri form
MultiSelect Jika bernilai true, user dapat memilih lebih dari satu pilihan
Name Nama list box
PopUpMenu Menu Pop Up untuk list box
ScrollWidht Lebar scroll pada list box
ShowHint Jika bernilai true,hint bisa ditampilka
Sorted Jika bernilai true ,daftar pilihan pada list box diurutkan
Style Bentuk list box
Top Posisi list box diukur dari batas atas form
Visible Jika true list box kelihatan , jika false list box tidak
Kelihatan
Width Lebar list box
Untuk beberapa contoh event list box yang dipakai pada program aplikasi adalah sebagai
berikut :
Event Waktu Terjadi
OnClick List box diklik dengan mouse
OnEnter List box mendapat fokus
OnExit List box kehilangan fokus
23
OnKeyDown Sebuah tombol keyboard ditekan dan properti KeyPreview
Pada form bernilai true
OnKeyPress Sebuah tombol keyboard ditekan waktu fokus di list box
OnKeyUp Tombol yang ditekan dilepas waktu fokus di list box
2.2.6. Check Box
Seperti pada combo box dan list box, check box anda dapat memilih lebih dari satu
pilihan. Berikut ini beberapa contoh properti dari check box yang dipakai pada program
aplikasi.
Properti Keterangan
Alignment Posisi Kotak pilihan dengan teks
AllowGrayed Jika bernilai true, kotak pilihan pada check box bisa
Berwarna abu abu
Caption Tulisan pada check box
Checked Jika bernilai true, terdapat tanda centang pada check box
Color Warna check box
Ctl3D Jika bernilai true, check box berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada check box
Enabled Penerimaan event pada check box
Font Jenis teks dari check box
Height Tinggi check box
Hint Keterangan waktu kursor berada pada check box
Left Posisi check box diukur dari batas kiri form
Name Nama check box
PopUpMenu Menu Pop Up untuk check box
ShowHint Jika bernilai true,hint bisa ditampilkan
State Bentuk kotak pilihan pada check box
Top Posisi check box diukur dari batas atas form
Visible Jika true check box kelihatan , jika false check box tidak
24
Kelihatan
Width Lebar check box
Untuk beberapa contoh event check box yang dipakai pada program aplikasi adalah
sebagai berikut :
Event Waktu Terjadi
OnClick Check box diklik dengan mouse
OnKeyPress Sebuah tombol keyboard ditekan waktu fokus di check box
2.2.7. Radio Button
Sama seperti combo box, list box dan check box, radio button juga berfungsi untuk
menampilkan daftar pilihan. Bentuk radio button hampir sama dengan check box.
Perbedaannya pada check box anda dapat memilih satu pilihan, sedangkan pada radio
button anda hanya dapat memilih satu pilihan saja. Berikut ini beberapa contoh properti
dari radio button yang dipakai pada program aplikasi.
Properti Keterangan
Alignment Posisi Kotak pilihan dengan teks
Caption Tulisan pada radio button
Checked Jika bernilai true, terdapat tanda centang pada radio button
Color Warna radio button
Ctl3D Jika bernilai true, radio button berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada radio button
Enabled Penerimaan event pada radio button
Font Jenis teks dari radio button
Height Tinggi radio button
Hint Keterangan waktu kursor berada pada radio button
Left Posisi radio button diukur dari batas kiri form
Name Nama radio button
PopUpMenu Menu Pop Up untuk radio button
25
ShowHint Jika bernilai true,hint bisa ditampilkan
Top Posisi radio button diukur dari batas atas form
Visible Jika true radio button kelihatan , jika false radio button tidak
Kelihatan
Width Lebar radio button
Untuk beberapa contoh event radio button yang dipakai pada program aplikasi adalah
sebagai berikut.
Event Waktu Terjadi
OnClick Radio Button diklik dengan mouse
OnKeyPress Sebuah tombol keyboard ditekan waktu fokus di Radio Button
2.2.8. Group Box
Group box berfungsi untuk mengelompokkan kontrol kontrol pada form menjadi satu
bagian. Dengan group box, maka tampilan form pada suatu keadaan tertentu akan menjadi
lebih teratur. Selain itu salah satu fungsi dari group box adalah pada penggunaan radio
button. Pada satu form, radio button yang dapat dipilih hanya satu. Jika pada form
terdapat beberapa bagian, maka pada satu bagian tersebut anda dapat memilih satu radio
button. Berikut ini beberapa contoh properti dari group box yang sering dipakai pada
program aplikasi.
Properti Keterangan
Align Posisi group box pada form
Caption Tulisan pada group box
Color Warna group box
Ctl3D Jika bernilai true, group box berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada group box
Enabled Penerimaan event pada group box
Font Jenis teks dari group box
Height Tinggi group box
Hint Keterangan waktu kursor berada pada group box
26
Left Posisi group box diukur dari batas kiri form
Name Nama group box
PopUpMenu Menu Pop Up untuk group box
ShowHint Jika bernilai true,hint bisa ditampilkan
Top Posisi group box diukur dari batas atas form
Visible Jika true group box kelihatan , jika false group box tidak
Kelihatan
Width Lebar group box
2.2.9. Radio Group
Radio box memiliki fungsi yang hampir sama dengan group box. Perbedaanya adalah
pada group box anda dapat meletakkan berbagai jenis kontrol, tetapi pada radio group
anda hanya bisa meletakkan radio button. Pada radio group juga anda dapat langsung
membuat radio button. Berikut ini beberapa contoh properti dari group yang sering
dipakai pada program aplikasi.
Properti Keterangan
Align Posisi radio group pada form
Caption Tulisan pada radio group
Color Warna radio group
Columns Jumlah kolom radio group
Ctl3D Jika bernilai true, radio group berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada radio group
Enabled Penerimaan event pada radio group
Font Jenis teks dari radio group
Height Tinggi radio group
Hint Keterangan waktu kursor berada pada radio group
Items Daftar radio button pada radio group
Left Posisi radio group diukur dari batas kiri form
Name Nama radio group
PopUpMenu Menu Pop Up untuk radio group
27
ShowHint Jika bernilai true,hint bisa ditampilkan
Top Posisi radio group diukur dari batas atas form
Visible Jika true radio group kelihatan , jika false radio group tidak
Kelihatan
Width Lebar radio group
2.2.10. Memo
Memo merupakan kontrol yang dipakai sebagai tempat untuk mengisi maupun
menampilkan data. Fungsinya hampir sama dengan edit box, perbedaannya adalah pada
edit box teks yang di masukkan dan ditampilkan hanya dalam satu baris saja, sedangkan
pada memo dapat ditampilkan lebih dari satu baris. Dengan memo user pengguna
program aplikasi dapat mengisi data ke dalam program. Selain itu memo juga dapat
digunakan untuk menampilkan data pada user. Berikut ini beberapa contoh properti dari
memo yang sering dipakai pada program aplikasi.
Properti Keterangan
Align Posisi dari memo pada form
Alignment Posisi teks pada memo
BorderStyle Bentuk garis tepi Memo
Color Warna memo
Ctl3D Jika bernilai true, bentuk memo berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada memo
Enabled Penerimaan event pada memo
Font Jenis dan ukuran dari karakter pada memo
Height Tinggi Memo
Hint Keterangan waktu kursor berada pada memo
Left Posisi radio group diukur dari batas kiri form
Lines Teks pada memo
MaxLenght Banyaknya karakter maksimum dari memo
Name Nama memo
28
PopUpMenu Menu Pop Up untuk memo
ReadOnly Jika bernilai true, tidak bisa mengisi karakter ke dalam memo
ScrollBars Jenis Scroll bar yang digunakan pada memo
ShowHint Jika bernilai true,hint bisa ditampilkan
Top Posisi memo diukur dari batas atas form
Visible Jika true memo kelihatan , jika false memo tidak Kelihatan
Width Lebar memo
Untuk beberapa contoh event memo yang sering dipakai pada program aplikasi adalah
sebagai berikut.
Event Waktu Terjadi
OnEnter Mendapat fokus
OnExit Memo Kehilangan fokus
OnKeyDown Sebuah tombol keyboard ditekan dan properti KeyPreview
Pada form bernilai false
OnKeyPress Sebuah tombol keyboard ditekan waktu fokus di memo
OnKeyUp Tombol yang ditekan dilepas waktu fokus di memo
2.2.11. Scroll Bar
Scrollbar adalah kontrol yang biasanya digunakan untuk menggerakkan sesuatu,
contohnya menggerakkan tampilan atau menggerakkan nilai. Scrollbar terdapat dua jenis,
yaitu vertical scrollbar dan horizontal scrollbar. Perubahan pada horizontal dan vertical
scrollbar ditandai dengan berubahnya posisi penunjuk bar pada horizontal dan vertical
scrollbar. Pada horizontal dan vertical scroll bar terdapat dua jenis perubahan posisi, yaitu
perubahan kecil dan besar. Untuk perubahan kecil diklik pada tombol navigator di kedua
ujung horizontal dan vertical scroolbar. Sedangkan untuk perubahan besar diklik pada bar
dari horizontal dan vertical scrollbar tersebut. Berikut ini beberapa contoh properti
scrollbar tersebut. Berikut ini beberapa contoh properti scrollbar yang dipakai pada
program aplikasi.
29
Properti Keterangan
Align Posisi dari scrollbar pada form
Ctl3D Jika bernilai true, bentuk scrollbar berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada scrollbar
Enabled Penerimaan event pada scrollbar
Height Tinggi Memo
Hint Keterangan waktu kursor berada pada scrollbar
Kind Jenis Scrollbar
LargeChange Perubahan posisi penunjuk bar pada waktu user mengklik bar
Left Posisi scrollbar diukur dari batas kiri form
Max Nilai maksimum dari scrollbar
Min Banyaknya karakter maksimum dari scrollbar
Name Nama scrollbar
PopUpMenu Menu Pop Up untuk scrollbar
Position Posisi bar pada scrollbar
ShowHint Jika bernilai true,hint bisa ditampilkan
SmallChange Perubahan posisi penunjuk bar pada waktu user mengklik
Tombol navogator atau tombol panah
Top Posisi scroll bar diukur dari batas atas form
Visible Jika true scroll kelihatan , jika false scroll tidak Kelihatan
Width Lebar scroll
2.2.12. Panel
Panel memiliki fungsi yang hampir sama dengan group box. Panel berfungsi untuk
memberikan tempat bagi kontrol-kontrol yang lain. Dengan panel kontrol kontrol pada
form dapat dikelompokkan menjadi satu. Berikut ono beberapa contoh properti dari panel
yang sering dipakai pada program aplikasi.
Properti Keterangan
Align Posisi dari panel pada form
30
Alignment Posisi teks pada panel
AutoSize Jika bernilai true, ukuran panel akan menyesuaikan dengan
Kontrol yang ada pada panel.
BorderStyle Bentuk garis tepi panel
BorderWidht Lebar garis tepi panel dengan kontrol yang terdapat pada panel
Caption Teks pada panel
Color Warna panel
Ctl3D Jika bernilai true, bentuk panel berbentuk 3 dimensi
Cursor Bentuk kursor mouse waktu berada pada panel
Enabled Penerimaan event pada panel
Font Jenis dan ukuran dari karakter pada panel
Height Tinggi panel
Hint Keterangan waktu kursor berada pada panel
Left Posisi radio group diukur dari batas kiri panel
Name Nama panel
PopUpMenu Menu Pop Up untuk panel
ShowHint Jika bernilai true,hint bisa ditampilkan
Top Posisi panel diukur dari batas atas form
Visible Jika true panel kelihatan , jika false panel tidak Kelihatan
Width Lebar panel
31
Bab III
Deklarasi Variabel, Tipe Data dan Operator
3.1 Deklarasi
Dalam setiap penulisan bahasa pemograman deklarasi sangat digunakan apabila dalam
penulisan program dibutuhkan indentifier atau tanda pengenal. Indentifier pada umumnya
di buat oleh progremmmer yang digunakan untuk mewakili nilai dari suatu object.
Indentifier yang dikenal dalam Delphi adalah label, konstanta, tipe, fungsi, procedure
maupun variabel.
3.1.1. Deklarasi Konstanta
Deklarasi konstanta adalah tanda pengenal dalam Delphi yang mempunyai nilai yang
sudah tetap. Definisi konstanta diawali dengan kata baku Const diikuti dengan kumpulan
indentifier yang diberi sebuah nilai.
Contoh
procedure TForm2.etertulisChange (Sender: TObject);
const
nill:='30000';
begin
end;
3.1.2. Deklarasi Variabel
Deklarasi variabel adalah tanda pengenal dalam Delphi yang mempunyai nilai yang mana
nilai tersebut akan terus berubah selama proses berjalan. Definisi variabel diawali dengan
kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang
dibutuhkan.
Contoh
procedure TForm2.EpraktekKeyPress(Sender: TObject; var Key: Char);
var
praktek,nil2,nill =real;
32
begin
if (key = #13)
then begin
nill := strtof loat(ehtulis.Text);end;
end;
3.2 Tipe Data
Secara sederhana tipe data dapat didefinisikan dengan istilah tempat untuk menentukan
pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh
user. Dalam versi lain tipe data juga diartikan sebagai batasan terhadap fungsi tanda
pengenal terhadap semua nilai yang diterima. logika yang dapat kita berikan adalah ketika
kita menempatkan tanda pengenal harga hanya mengenal angka, maka ketika kita
memberikan nilai berupa string maka secara otomatis data tersebut akan ditolak karena
nilai tersebut tidak dikenali oleh tipe data yang diberikan.
3.2.1. Tipe Data Numeric Integer
Tipe data integer merupakan tipe data bilangan bulat yang hanya mengenal bilangan
decimal. Dimana tipe data Integer tidak mengenal pecahan
Bentuk Umum:
Var
Nill: integer;
Begin
Nill:=5000;
End;
3.2.2. Tipe Data Real
Tipe data numeric real adalah tipe data dari suatu tanda pengenal selain mengenal
bilangan bulat utuh tipe data ini juga mengenal nilai angka yang mengenal pecahan.
Bentuk Umum :
Var
Nil2: real;
33
Begin
Nil3:=3,14;
End;
3.2.3 Tipe Data String
Tipe data string merupakan salah satu jens tipe data selain mengenal angak disini tipe
data dapat juga mengenla data berupa huruf maupun tanda baca.
Bentuk umum :
Var
Nama: string;
Begin
Nama:='Anton';
End;
3.2.4 Tipe Data Char
Secara fungsi tipe data char sama dengan tipe data string tetapi dari segi kapsitas ruang
diperoleh tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter.
Bentuk umum :
Var
grade: char;
Begin
grade:='Anton';
End;
3.2.5 Perubahan Tipe Data
Perubahan Tipe data dilakukan pada saat kebutuhan akan perhitungan aritmatika yang
nilainya diambil dari Edit Box atau pun sebaliknya hasil nilai tersebut akan ditampilkan
ke text box. Secara umum suatu nilai di dalam edit box selalu bertipe data String.
Berikut ini beberapa perubahan tipe data yang dikenal di Borland Delphi :
1. StrtoInt = digunakan untuk merubah tipe data string ke integer
2. IntToStr = digunakan untuk merubah tipe data Integer ke String
34
3. StrToFloat = digunakan untuk merubah tipe data String ke Real
4. FloatToStr = digunakan untuk merubah tipe data Real ke String
5. StrToCurr = digunakan untuk merubah tipe data String ke Currency
6. CurrToStr = digunakan untuk merubah tipe data Currency ke String
7. StrToDate = digunakan untuk merubah tipe data String ke Date
8. DateToStr = digunakan untuk merubah tipe data Date ke String
9. StrToTime = digunakan untuk merubah tipe data String ke Time
10. TimeToStr = digunakan untuk merubah tipe data Time ke String
11. Booltostr = digunakan untuk merubah tipe data boolean ke string.
12. Strtobool = digunakan untuk merubah tipe data string to boolean
3.3 Operator
Operator dipakai untuk memanipulasi dan megolah data. Delphi menyediakan bermacam
– macam operator. Setiap operator mempunyai tingkat hierarki, yaitu urutan pelaksanaan
jika ada beberapa operator dalam satu proses.
Sebagai contoh, jika terdapat ekspresi X+Y*Z, maka akan dilaksanakan terlebih dahulu
operasi Y*Z, baru setelah itu, hasil operasi X*Y ditambah X. Hal ini disebabkan operator
perkalian ( dengan simbol *) hierarkinya lebih tinggi dari operator penambahan (dengan
simbol +).
Jika dalam satu ekspresi terdapat beberapa operator dengan tingkat hierarki yang sama,
maka pelaksanaannya didahulukan dari paling kiri.
Anda dapat menggunakan tanda kurung untuk mendahulukan suatu operasi, mendahului
semua tingkat hierarki. Jika terdapat tanda kurung dalam tanda kurung, maka didahulukan
yang paling dalam. Sebagai contoh, bila ada ekspresi (X+Y)*Z, maka yang dilaksanakan
pertama kali adalah operasi X+Y, kemudian hasilnya baru ditambah dengan Z.
Hierarki operator dalam delphi adalah seperti pada tabel berikut :
OPERATOR HIERARKI
^ , @ , not first Tertinggi
*, / , div , mod , and ,shl , shr , as Kedua
35
+, - , or , xor Ketiga
= , <> , < , > , <= , >= , in , is Keempat
3.3.1. Operator Penugasan (Assignment)
Operator penugasan (assignment) disimbolkan dengan tanda titik dua diikuti tanda sama
dengan dan ditulis berdempetan tanpa spasi. Operator penugasan berfungsi untuk
memasukkan suatu data ke dalam suatu variabel. Bentuk penulisannya seperti berikut :
<variabel> := <ekspresi>;
Contoh :
Nama := ‘Budi’ ;
Bilangan := 0 ;
Harga := 500 ;
Banyak := 5 ;
Subtotal := banyak * harga ;
3.3.2. Operator Aritmatika
Operator aritmatika digunakan untuk melakukan operasi aritmatika. Delphi mempunyai
beberapa operator aritmatika, yaitu seperti pada tabel dibawah ini :
Operator Operasi Tipe diproses Tipe hasil
* Perkalian Integer
Real
Integer
Real
/ Pembagian Integer
Real
Real
Real
Div Hasil bagi pembulatan Integer Integer
Mod Sisa Pembagian Integer Integer
+ Penambahan Integer
Real
Integer
Real
- Pengurangan Integer
Real
Integer
Real
36
Operator aritmatika diatas disebut juga sebagai operator aritmatika binari. Selain itu, ada
juga operator aritmatika unari , yaitu tanda + (plus) sebagai tanda positif dan operator –
(minus) sebagai tanda negatif. Operator aritmatika unari dapat dipakai pada tipe data
integer maupun real. Hierarki operator unari lebih tinggi dari semua operator binari.
Sebagai contoh, perhatikan potongan program berikut ini :
A := -2 * 3 ; // hasilnya – 6
B := 2 * 3 ; // hasilnya 6
C := 5 / 2 ; // hasilnya 2.5
D := 5 div 2 ; // hasilnya 2
E := 5 mod 2 ; // hasilnya 1
F := 5 + 1 ; // hasilnya 7
G := 5 – 2 ; // hasilnya 3
Untuk operasi perpangkatan , delphi secara tradisi memang tidak menyediakan operator
untuk pemangkatan. Sebagai gantinya anda dapat menggunakan rumus matematika :
exp (x * ln (a))
Atau exp ( <pangkat> * ln (< yangDipangkat>))
Perhatikan potongan program berikut ini :
A : = 2 ;
B := 3 ;
C := exp (B * ln (A)) ; // C berisi 8
D := exp (B* ln (5)) ; // D berisi 125
3.3.3. Operator Perbandingan / Relasi
Operator relasi atau perbandingan digunakan untuk membandingkan suatu ekspresi atau
data dengan ekspresi atau data lain. Hasil penggunaan operator relasi adalah data logika
(boolean) benar atau salah. Tentu saja, antara dua ekspresi atau data yang dibandingkan
37
harus mempunyai tipe yang sama. Tabel operator relasi yang disediakan Delphi adalah
seperti berikut ini :
Operator Keterangan
= Sama Dengan
<> Tidak sama dengan
< Lebih Kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
Beberapa contoh penggunaan operator relasi dapat anda lihat seperti dibawah ini.
A : = 2 > 3 ; // A berisi False
A : = 2 + 2 > 3 ; // A berisi True
A : = 3 > 2 + 2 ; // A berisi False
A : = 3 > = 3 ; // A berisi True
Dari contoh diatas terlihat bahwa operator relasi hierarkinya lebih rendah dari operator
aritmatika, sehingga operator aritmatika selalu dijalankan lebih dahulu sebelum operator
relasi.
3.3.4. Operator Logika
Digunakan untuk mengekspresikan satu atau lebih data atau ekspresi logika (boolean),
menghasilkan data logika (boolean) baru. Tabel operator logika dengan hierarki dari atas
ke bawah adalah sebagai berikut ini.
Operator Keterangan
Not Tidak
And Dan
Or Atau
Xor Exclusive Or
38
a. Operator Logika Not
Operator Logika Not dipakai untuk menghasilkan nilai kebalikan dari suatu ekspresi
atau data logika. Operator Not mempunyai hierarki paling tinggi di antara operator
logika lainnya. Tabel hasil ekspresi logika Not dapat anda lihat seperti pada tabel
berikut ini.
Ekspresi Hasil
Not True False
Not False True
Contoh hasil penggunaan operator logika Not dapat anda lihat di bawah ini.
Tes : = Not (5 > 4 ) ; // Tes berisi False
Tes : = Not (5 = 4 ) ; // Tes berisi True
b. Operator Logika And
Operator logika And akan menghasilkan nilai boolean true hanya jika dua buah
ekspresi dikiri dan kanan operator anda bernilai true. Tabel hasil ekspresi logika And
dapat anda lihat seperti pada tabel dibawah ini.
Ekspresi Hasil
False And False False
False And True False
True And False False
True And True True
Contoh hasil penggunaan operator logika And dapat anda lihat seperti berikut ini.
Tes : = ( 5 < 4 ) And ( 3 < 2 ) ; // Tes berisi False
Tes : = ( 5 < 4 ) And ( 3 > 2 ) ; // Tes berisi False
Tes : = ( 5 > 4 ) And ( 3 < 2 ) ; // Tes berisi False
Tes : = ( 5 > 4 ) And ( 3 > 2 ) ; // Tes berisi True
c. Operator Logika Or
Operator logika Or akan menghasilkan nilai boolean True jika salah satu dari dua
buah ekspresi atau kedua ekspresi di kiri dan kanan operator Or bernilai True. Jadi
Operator Or akan menghasilkan nilai False hanya jika kedua ekspresi di kiri dan
39
kanan operator Or semuanya bernilai False. Tabel hasil ekspresi logika Or adalah
seperti berikut ini.
Ekspresi Hasil
False Or False False
False Or True True
True Or False True
True Or True True
Contoh hasil penggunaan operator logika Or dapat anda lihat seperti berikut ini.
Tes : = ( 5 < 4 ) Or ( 3 < 2 ) ; // Tes berisi False
Tes : = ( 5 < 4 ) Or ( 3 > 2 ) ; // Tes berisi True
Tes : = ( 5 > 4 ) Or ( 3 < 2 ) ; // Tes berisi True
Tes : = ( 5 > 4 ) Or ( 3 > 2 ) ; // Tes berisi True
d. Operator Logika Xor
Operator logika Xor akan menghasilkan nilai True jika ekspresi di sebelah kiri Xor
berbeda dengan ekspresi di sebelah kanannya. Jadi, operator logika Xor dapat
diartikan ”jika beda” akan bernilai True. Tabel hasil ekspresi logika Xor adalah seperti
berikut ini.
Ekspresi Hasil
False Xor False False
False Xor True True
True Xor False True
True Xor True False
Contoh hasil penggunaan operator logika Xor dapat anda lihat seperti berikut ini.
Tes : = ( 5 < 4 ) Xor ( 3 < 2 ) ; // Tes berisi False
Tes : = ( 5 < 4 ) Xor ( 3 > 2 ) ; // Tes berisi True
Tes : = ( 5 > 4 ) Xor ( 3 < 2 ) ; // Tes berisi True
Tes : = ( 5 > 4 ) Xor ( 3 > 2 ) ; // Tes berisi False
40
Latihan 1.
� Rancanglah Form dibawah ini didalam Project : Prouts.dpr dengan nama Form :
operator1.pas
� Desain Properties
� Listing / Kode Program :
Object Keterangan Name
Edit Text Nilai 1 Edit1
Edit Text Nilai 2 Edit2
Edit Text Hasil Edit3
Button + (Penambahan) Bttambah
Button - (Pengurangan) Btminus
Button / (Pembagian) Btbagi
Button x (Perkalian) Btkali
Button N1 > N2 (Lebih dari) Btlebih
Button N1 < N2 (Kurang dari) Btkurang
Button N1 = N2 (Sama dengan) Btsmdgn
Button N1 <> N2 (Tidak Sama dengan) Bttdksama
Button And Btand
Button Or Btor
Button Xor Btxor
Button Exit Btexit
Button Clear Btclear
41
unit operator1;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
bttambah: TButton;
btkali: TButton;
btminus: TButton;
btbagi: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
btlebih: TButton;
btkurang: TButton;
btsmdgn: TButton;
bttdksama: TButton;
btand: TButton;
btor: TButton;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
Label4: TLabel;
btexit: TButton;
btclear: TButton;
btxor: TButton;
procedure bttambahClick(Sender:
TObject);
procedure btminusClick(Sender:
TObject);
procedure btbagiClick(Sender: TObject);
procedure btlebihClick(Sender: TObject);
procedure btkurangClick(Sender:
TObject);
procedure btsmdgnClick(Sender:
TObject);
procedure bttdksamaClick(Sender:
TObject);
procedure btandClick(Sender: TObject);
procedure btorClick(Sender: TObject);
procedure btclearClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
procedure btxorClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
42
private
{ Private declarations }
public
// Variabel bersifat Public, Var ini
dapat dikenal di semua procedure
n1,n2 : integer;
hasil:real ;
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure
TForm3.bttambahClick(Sender:
TObject);
// Variabel bersifat local, hanya bisa
dikenali di procedure itu sendiri
var
nilai1,nilai2:integer;
hsl:real ;
begin
nilai1:=strtoint(edit1.text);
nilai2:=strtoint(edit2.text);
hsl:=nilai1+nilai2;
edit3.Text:=floattostr(hsl);
end;
procedure
TForm3.btminusClick(Sender:
TObject);
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
hasil:=n1-n2 ;
edit3.Text:=floattostr(hasil);
end;
procedure
TForm3.btbagiClick(Sender:
TObject);
begin
edit3.Text:=floattostr(strtoint(edit1.Text)
/ strtoint(edit2.Text))
end;
procedure
TForm3.btlebihClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=n1>n2;
edit3.Text:=booltostr(n3);
end;
43
procedure
TForm3.btkurangClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=n1<n2;
edit3.Text:=booltostr(n3);
end;
procedure
TForm3.btsmdgnClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=n1=n2;
edit3.Text:=booltostr(n3);
end;
procedure
TForm3.bttdksamaClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=n1<>n2;
edit3.Text:=booltostr(n3);
end;
procedure TForm3.btandClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=(n1>n2)AND(n1>5);
edit3.Text:=booltostr(n3);
end;
procedure TForm3.btorClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=(n1>n2)OR(n1>5);
edit3.Text:=booltostr(n3);
end;
44
procedure
TForm3.btclearClick(Sender: TObject);
begin
edit1.Text:='';
edit2.Text :='';
edit3.Text:='';
end;
procedure TForm3.btexitClick(Sender:
TObject);
begin
messagedlg
('Form akan ditutup',mterror,[mbok],0);
close; end;
procedure TForm3.btxorClick(Sender:
TObject);
var
n3:boolean;
begin
n1:=strtoint(edit1.text);
n2:=strtoint(edit2.text);
n3:=(n1>n2)XOR(n1>5);
edit3.Text:=booltostr(n3);
end;
end.
45
Catatan :
Pada saat melakukan eksekusi dengan menggunakan operator Logika dan perbandingan,
Nilai False akan menghasilkan 0 (nol) pada edit text hasil, sedangkan Nilai True akan
menghasilkan -1 (Minus satu) pada edit text hasil.
3.3.5. Operator String
a. Menggabungkan String
menggabungkan string adalah proses merangkai dua karakter atau lebih menjadi satu
kalimat atau kata yang baru. Operator string yang dikenal dalam Bahasa Delphi adalah
operator dengan simbol '+' (plus).
� Contoh Penulisan :
Var
nama : string[20];
saya : string[15];
namasaya : string[50];
Begin
nama := ’Nama Saya adalah =’;
saya := ‘Azni’ ;
namasaya := nama +’ ‘+saya;
ehasil.text := namasaya;
End;
� Contoh Program
Hasil yang Diperoleh
Gambar 3.1 Form Penggabungkan String
DesainForm
Gambar 3.2 Desain Form Penggabungan String
Desain Properties
Object Caption/Text Name
Label 1 Nama Depan Label 1
Label 2 Nama Tengah Label2
46
Label 3 Nama Akhir Label3
Label 4 Nama Lengkap Label4
Editl - Edepan
Edit2 - Etengah
Edit3 - Eakhir
Edit4 - Egabung
Button 1 Gabung bgabung
Listing Program
Procedure Tform4.bgabungClick (Sender: Tobject);
Var
depan : string[20]; tengah : string[20];
akhir : string[20]; gabung : string[65];
begin
depan : = edepan.text ;
tengah : = etengah.text ;
akhir : = eakhir.text ;
gabung : = depan + ‘ ‘ + tengah + ‘ ‘ + akhir ;
elengkap.text : = gabung ;
end;
b. Menghapus Teks
Prosedur standart ini digunakan untuk menghapus atau mengurangi sebagian atau
seluruh karakter terhadap string atau teks.
Bentuk umum penulisan => Delete(teks, index, jumlah)
Delete adalah prosedur standart yang digunakan untuk menghapus teks. Teks
merupakan kalimat atau string yang akan dihapau, Index menunjukan posisi awal yang
akan dihapus. Jumlah menunjukan jumlah karakter yang akan dihapus.
47
Contoh
1. Hasil Setelah Form Dijalankan
Gambar 7.3 Form Hapus Text
2.Design Form
Gambar 7.4 Design Form Hapus Text
3. Desain Properties
Object Caption/Text Name
Label 1 Nama Anda Label 1
Label 2 Ketikan urutan mulai penghapusan Label2
Label 3 Jumlah Karakter yang dihapus Label3
Label 4 Nama Sesudah dihapus Label4
Editl - Enama
Edit2 - Eurut
Edit3 - Ejumlah
Edit4 - Ehasil
Button 1 OK bOK
Button2 Close Bclose
Group Box 1 Rincian Nama Yang Ingin Dihapus Group box 1
48
4. Listing Program
Procedure Tform5.bokClick (Sender : TObject);
Var
karakter : string ;
pos, jumlah : integer ;
jumlah : integer ;
begin
karakter : = enama.text ;
pos : = strtoint (eurut.text) ;
jumlah : = strtoint (ejumlah.text) ;
Delete ( karakter, pos, jumlah);
Ehasil.text : = karakter ;
End ;
Procedure Tform5.bcloseClick (Sender : TObject);
Begin
Close;
End ;
c. Mencari Panjang teks (length)
fungsi ini digunakan untuk menghitung panjang atau jumlah karakter dari suatu teks
atau kalimat. Dalam menghitung jumlah karakter dalam suatu teks spasi akan dibaca
sebagai satu karakter. Sebagai catatan hasil yang diperoleh dari perhitungan adalah
bilangan bulat positif.
Bentuk Umum
Length (teks) ;
Contoh :
1. Hasil setelah form dijalankan
Gambar 3.5 Hasil Form Panjang String
49
2. Design Form
Gambar 3.6 Design Form Panjang String
3. Desain Properties
Object Caption/Text Name
Label 1 Operasi Standart Length Label 1
Label 2 Nama Anda Label2
Label 3 Panjang Karakter dari Nama Anda Label3
Editl - Enama
Edit2 - Ehasil
Button 1 OK bOK
Button2 Close Bclose
4. Listing Program
Program untuk mengeksekusi pencarian panjang karakter
Procedure Tform6.bokClick(Sender : TObject);
Var
Nama:string
Begin
Nama : = enama.text ;
Ehasil.text : = inttostr ( length (nama)) ;
End;
Procedure Tform6.bcloseClick (Sender : TObject);
Begin
Close;
End ;
d. Mencari Karakter Pada Teks (POS)
Fungsi ini digunakan untuk mencari letak atau posisi suatu karakter dari suatu nilai
string. Nilai yang dihasilkan adalah berupa byte.
Bentuk Umum :
Pos (sustr, string);
50
Contoh
1. Hasil setelah form dijalankan
Gambar 3.7 Hasil Form Pencarian Huruf
2. Desain Form
3. Design Properties
Program untuk eksekusi perintah pencarian
Procedure Tform7. bokClick (Sender :Tobject);
Var
Karakter : string ;
Kar : string ;
Hasil : integer ;
Begin
karakter: string;
kar : string;
51
hasil :integer ;
Begin
karakter :=eawal.text ;
kar:= ecari.text ;
hasil := pos(kar, karakter);
ehasil.text := inttostr (hasil);
end;
Program untuk menutup form
Procedure Tform7.bcloseClick(sender:TObject)
Begin
Close;
End;
End.
e. Mengkopi String (Copy)
Fungsi ini digunakan untuk mencetak ulang string atau karakter sebanyak huruf yang
dipilih dengan posisi karakter awal sudah ditentukan.
Bentuk Umum :
Copy (teks, index, jumlah);
Penulisan awal diawali dengan perintah copy, dengan diikuti teks yang ditunjukan
teks. Awal pengambilan ditunjukkan dengan index, dan jumlah karakter yang akan
ditulis ulang ditunjukan dengan perintah jumlah.
Contoh :
1. Hasil setelah form dijalankan.
52
2. Design Form
3. Design Properties
Program untuk mengeksekusi program
Prosedure TForm6.bokClick(Sender:TObject);
Var
Karakter : string;
Begin
Karakter :=eawal.text ;
Ehasil.text :=copy(karakter,1,4);
Ehasil2.text := copy(karakter,8,4);
End;
Program untuk menutup Form
Procedure TForm6.bcloseClick (Sender :TObject);
Begin
Close;
End;
f. Konversi Karakter ke Ascii (chr)
Fungsi ini digunakan untuk mengkonversi kode Acsii menjad huruf.
Bentuk Umum :
Chr (Karakter)
Contoh :
53
1. Hasil setelah dijalankan
2. Design Form
3. Desain Properties
Object Caption/Text Name
Label 1 Ketikan angka dari kode ASCII Label 1
Label 2 Karakter dari kode Ascii tersebut adalah Label2
Editl - eangka
Edit2 - ehuruf
Button 1 OK bOK
Groupboxl Konversi dari Angka ke huruf Groupboxl
4. Listing Program
Procedure TForm7.bokClick (Sender : TObject);
Var
Angka : integer ;
Begin
Angka :=strtoint(angka.text);
Ehuruf.text := chr(angka);
End;
54
Bab IV
Percabangan
4.1. Operator Percabangan
Percabangan adalah merupakan operator yang digunakan untuk menentukan pilihan atas
beberapa pilihan yang ada.
Dalam bahasa pemrograman Delphi mengenal dua operator percabangan yaitu
Percabangan IF dan Percabangan CASE
A. Percabangan IF
Merupakan operator percabangan yang digunakan untuk menetukan pilihan atas beberapa
kondisi yang merupakan syarat terhadap pilihan yang sudah ditentukan.
Ada dua model percabangan if
1. Percabangan untuk kondisi tunggal.
Merupakan operator percabangan yang digunakan untuk menentukan sebuah pilihan
dengan kondisi tunggal.
Bentuk Umum:
IF Syarat Then hasil ;
Contoh
If Nilai >80 then keterangan =’lulus’;
Atau
If strtoint(enilai.text) > 80 then eketerangan.text = ‘lulus’;
2. Percabangan untuk kondisi majemuk.
Merupakan operator percabangan yangdigunakan untuk menetukan pilihan dengan
kondisi yang dipenuhi lebih dari satu.
Bentuk Umum
If Syarat 1 then
Hasil1
Else
If Syarat2 then
Hasil2
Else
Hasil ; // Titik Koma berada di Statement terakhir
Atau
If KondisiA then
Begin
Hasil_A1; // setiap stament diakhiri titik koma ( ; )
Hasil_A2;
End
55
Else if KondisiB Then
Begin
Hasil_B1;
Hasil_B2;
End
Else
Begin
Hasil_C1;
Hasil_C2;
End ; // End terakhir ditambahkan titik koma ( ; )
Contoh :
If nilai > 80 then
Grade= ‘A’
Else if nilai >70 then
Grade=’B’
Else
Grade= ‘C’ ;
3. Percabangan Nested If ( If Bersarang )
Nested If adalah jika ada perintah if didalam perintah if yang lain. Kondisi ini
dibutuhkan ketika kriteria yang dimasukkan lebih dari 2.
Bentuk Umum :
if (kondisi1> then
if (kondisi2) then
<pernyataan1>
Else
<pernyataan2>
Else
<pernyataan3>
Contoh :
if ComboBox1.Text=’D1′ then
if edit3.Text=’Training’ then
edit4.Text:=’1500000′
else if edit3.Text=’Kontrak’ then
edit4.Text:=’2750000′
else
edit4.Text:=’3500000′
56
B. Percabangan CASE
Case of adalah merupakan metode lain dari sebuah percabangan, berfungsi sama seperti
fungsi if yaitu untuk melakukan seleksi atas beberapa pilihan dengan kondisi sebagai
syarat yang harus terpenuhi. Secara fungsi case dan if tidak ada perbeaan tetapi untuk
penulisan fungsi case lebih mudah diterapkan untuk pilihan atau kondisi lebih dari satu.
Bentuk Umum fingsi Case Of
Case <variabel> of
<pilihan ke 1> : hasil 1 ;
<pilihan ke 2> : hasil 2 ;
<pilihan ke 3> : hasil 3 ;
………………….........
Else
Hasil ke n ;
End;
Contoh :
Case Bilangan of
1: showmessage (‘Angka 1’) ;
2: showmessage (‘Angka 2’) ;
3: showmessage (‘Angka 3’)
End;
4.2. Contoh Latihan
A. Hasil yang diperoleh
57
B. Design Form
C. Desain Properties
Object Name Caption
Label 1 Label 1 Nama Pegawai
Label 2 Label2 Jabatan
Label 3 Label3 Gaji Pokok
Label 4 Label4 Tunjangan Status
Label5 Label5 Gaji Bersih
GroupBox GroupBoxl Status
RadioButtonl Rtetap Tetap
RadioButton2 Rhonorer Honorer
Edit1 Enama -
Edit2 Epokok -
Edit3 Etunjangan -
Edit4 Ebersih -
Combo Box Cjabatan -
Button 1 Btotal Total Gaji
Button 2 Blagi Isi Data Lagi
Button 3 Bclose Close
D. Ketentuan perhitungan gaji
� Nama Pegawai diinput sendiri.
� Isi dari Combo Jabatan adalah ’Direktur’ , ’Manager’ , ’Karyawan’.
� Ketentuan Gaji pokok diambil dari Jabatan sebagai berikut :
Jabatan Gaji Pokok
Direktur 5000000
Manager 2000000
Karyawan 1000000
� Tunjangan Status diperoleh dari jenis status :
Jika Status Karyawan ‘Tetap’ maka Tunjangan 30% dari Gaji Pokok
Jika Status Karyawan ‘Honorer’ maka Tunjangan 10% dari Gaji Pokok
� Button Hitung untuk menghitung nilai Gaji Bersih = Gaji Pokok + Tunjangan
58
� Button Isi Data Lagi maka seluruh edit text kosong.
E. Listing Program
� Memberikan pilihan pada combo box sesuai dengan pilihan pada jabatan
Dengan menggunakan Object Properties :
Langkah-langkahnya :
1. Aktifkan combo box yang akan dipilih.
2. Pada properties pilih dan klik item, lalu klik command (...)
3. Pada Jendela String List Editor , seperti terlihat pada jendela berikut.
4. Ketikan kata sebagai kata pilihan pada jendela seperti contoh tersebut diatas.
5. Setelah selesai klik OK
6.
Melalui jendela code editor
Double click pada form, sebarang tempat dan ketikan program berikut ini.
procedure TForml.FormCreate(Sender: TObject);
begin
cjabatan.Items.Add('Direktur');
cjabatan.Items. Add(' Manager');
cjabatan.Items.Add(' Karyawan');
end;
� Program Untuk Mencari gaji pokok
1. Aktifkan combo box untuk jabatan
2. Pada pada jendela properties pilih event
3. pilih dan aktifkan onclick, Seperti yang terlihat seperti gambar berikut ini
4. Double click pada combo onclick
5. Ketikan program berikut ini
59
procedure Tform1.cjabatanClick(Sender: TObject);
begin
if cjabatan.Text = 'Direktur' then
epokok.Text := '5000000'
else
if cjabatan.Text = 'Manager' then
epokok.Text := '2000000'
else
if cjabatan.Text = 'Karyawan' then
epokok.Text := '1000000'
else
epokok.Text := '0' ;
end;
� Program menghitung tunjangan karyawan tetap
Double click pada option tetap dan ketikan program berikut ini
procedure TForm3.etetapClick(Sender: TObject);
begin
if rtetap.Checked = true then
a := strtof loat(epokok.Text);
hasil :=a*0.3;
etunjangan.Text := f loattostr(hasil)
end;
� Program menghitung tunjangan karayawan Honorer
Double click pada option honorer dan ketikan program berikut ini :
procedure TForm3.rhonorerClick(Sender: TObject);
begin
if rhonorer.Checked = true then
a := strtof loat(epokok.Text);
hasil :=a*0.1;
etunjangan.Text := f loattostr(hasil)
end;
� Program menghitung gaji bersih
Double click pada command total gaji, dan ketikan program berikut ini :
procedure TForm3.btotalClick(Sender: TObject);
begin
a := strtof loat(epokok.Text);
b := strtof loat(etunjangan.Text);
c := a+b;
ebersih.Text := f loattostr(c);
end;
60
� Program Bersih
Double click pada Isi Data Lagi, dan ketikan program berikut ini
procedure TForm3.blagiClick(Sender: TObject);
begin
cjabatan.Text := ' Jabatan';
enama.Text := ‘ ‘;
ebersih.Text := '0';
etunjangan.Text := '0';
epokok.Text := '0';
etetap.Checked := false;
rhonorer.Checked := false;
end;
� Program Close dengan pesan, seperti tampilan sebagai berikut
procedure TForm3.bcloseClick(Sender: TObject);
begin
if (application.MessageBoxC Anda Yakin akan keluar' ,'Informasi' ,
MB_YESNO)= IDYES)then
close;
end;
4.3. Latihan ( Program Biaya Rumah Sakit)
Buatlah program untuk mencari biaya pemeriksaan dokter dan biaya obat pada suatu
Rumah sakit.
Tampilan yang dinginkan adalah sebagai berikut :
Ketentuan Soal :
� Gunakan perintah IF, untuk mencari Nama dokter, Spesialis dan Biaya ketika Kode
Dokter dipilih (klik)
61
Kode
Dokter Nama Dokter Spesialis
Biaya Periksa
DRD01 dr Oka Penyakit Dalam 2000000
DRJ02 dr Yondra Gangguan Jiwa 150000
DRM03 dr Wulan Mata 1000000
� Gunakan Perintah IF , untuk mencari nama obat dan harga obat ketika Kode Obat
diinput lalu diEnter.
Kode Obat Nama Obat Harga Obat
B001 Paracetamol Rp. 10.000
B002 Paratusin Rp. 12.000
B003 Amoxilin Rp. 15.000
� Total bayar didapat dari harga Obat + harga Dokter.
� Uang bayar diinput, ketika dienter maka Uang Kembali keluar.
� Tombol bersih untuk membersihkan seluruh objek.
� Tombol Keluar untuk keluar dari form.
62
Bab V
Perulangan
Merupakan kontrol program yang digunakan untuk suatu proses yang akan berjalan terus
menerus. Kondisi perulangan merupakan proses berjalannya program secara terus menerus dan
akan berhenti ketika proses mendapatkan kondisi yang sudah ditentukan.
Didalam Delphi megenal 3 jenis perulangan :
A. Perulangan For – To – Do
Perulangan dengan statement for adalah perulangan yang digunakan untuk melakukan
suatu proses dalam sebuah blik program. Proses perulangan For – To – Do dimulai
dengan nilai terkecil ke besar.
Bentuk Umum :
For variabel := nilai_awal to nilai_akhir do
Statement ;
Catatan : semua variabel yang berhubungan dengan perulangan harus mempunyai
tipe data
sama
Contoh :
Var
I: integer;
Begin
For i := 1 to 5 do
Edit1.seltext := inttostr(i) ;
End;
Hasil : Bila program tersebut dijalankan maka nilai I akan ditampilkan pada edit1
dengan hasil sebagai berikut = 1 2 3 4 5
B. Perulangan For – DownTo – Do.
Perulangan For – DownTo – Do adalah yang menghitung suatu proses dengan nilai
awal besar dan nilai akhirnya lebih kecil, maka variabel sebagai control program yang
diperoleh adalah dari besar ke kecil.
Bentuk Umum :
For variabel := nilai_awal Downto nilai_akhir do
Pernyataan ;
63
Contoh :
var
i : integer;
begin
for i := 5 Downto 1 do
edit2.SelText := inttostr(i);
end;
Hasil : Bila program tersebut dijalankan maka nilai I akan ditampilkan pada edit2
dengan hasil sebagai berikut = 5 4 3 2 1
C. Perulangan While Do
Perulangan While Do adalah statement perulangan akan terus melakukan suatu proses
selama kondisi/syarat yang ditentukan bernilai benar.
Bentuk Umum :
While Kondisi Do
Pernyataan ;
Contoh :
i : integer;
begin
i := 0;
while i < 5 do
begin
edit3.SelText := inttostr(i);
i := i + 1;
end;
end;
D. Perulangan Repeat Until
Perulangan repeat until digunakan untuk mengulang suatu kondisi sampai (until )
kondisi bernilai salah
Bentuk Umum :
Repat Pernyataan Until Kondisi_logika
E. Latihan Perulangan 1
Buatlah Latihan perulangan dibawah ini :
1. Design Form
64
2. Coding
procedure TForm1.for2doClick(Sender: TObject);
var
i:integer;
begin
for i := 1 to 5 do
edit1.SelText := inttostr(i);
end;
procedure TForm1.fordowntoClick(Sender: TObject);
var
a:integer;
begin
for a:=5 downto 1 do
edit2.SelText:=inttostr(a)
end;
procedure TForm1.whiledoClick(Sender: TObject);
var
i : integer;
begin
i := 0;
while i < 5 do
begin
edit3.SelText := inttostr(i);
i := i + 1;
end;
end;
65
procedure TForm1.repetClick(Sender: TObject);
var
i : integer;
begin
i := 1;
repeat
i := i + 2;
edit4.SelText := inttostr(i);
until i = 15;
end;
procedure TForm1.BersihClick(Sender: TObject);
begin
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
edit4.Text :='';
end;
end.
F. Latihan Perulangan 2
Buat lahLatihan perulangan dibawah ini :
1. Design Form
2. Ketentuan logika Program
� Pada saat form dijalankan maka Tanggal akan keluar secara otomatis
� No Faktur dan Total item yang dibeli diinput sendiri
66
� Tombol OK diklik maka akan keluar kotak pesan (Input box) untuk menginput
nama barang dan harga barang yang dibeli. Begitu seterusnya sampai kondisi
dari total item terpenuhi.
� Total Penjualan diperoleh dari penjumlahan harga barang yang dibeli.
� Tombol Isi data lagi diberikan untuk mengulang pembelian.
� Close untuk menutup Form
3. Properties
Object Name Caption Keterangan
Groupbox1 Groupbox1 Daftar Penjualan
Groupbox2 Groupbox2 Data Barang yang dijual
Groupbox3 Groupbox3 Daftar Harga Barang
Edit1 Etgl
Edit2 Efaktur
Edit3 Eitem
Edit4 Etotal
Listbox1 Lnama
Listbox2 Lharga
Bitbtn1 Blagi &ISI DATA LAGI Glyhp : <cari icon
gambar dipilih>
Bitbtn2 Bclose &CLOSE Glyhp : <cari icon
gambar dipilih>
Button1 Bok &OK
4. Coding
procedure TForm7.FormCreate(Sender: TObject);
begin
DateSeparator := '-';
ShortDateFormat := 'mm/dd/yyyy';
etgl.Text := 'Hari ini ' + DateToStr(Date);
end;
procedure TForm7.blagiClick(Sender: TObject);
begin
eitem.Text :='';
efaktur.Text := '';
lnama.Clear;
lharga.Clear;
etotal.Text :='';
end;
procedure TForm7.bokClick(Sender: TObject);
var
inputnama : string;
67
inputharga : string;
i : integer;
j : integer;
harga : real;
begin
harga := 0;
j := 0;
j:= strtoint(eitem.Text);
if j <= 0 then
begin
showmessage('Data Tidak boleh lebih kecil dari Nol');
exit;
end
else
begin
for i := 1 to j do
begin
inputnama := inputbox('INput','Ketikan Nama Barang','');
inputharga := inputbox('INput','Ketikan Harga Barang','');
lnama.Items.Add(inputnama) ;
lharga.Items.Add(inputharga);
harga := harga + strtofloat(inputharga);
end;
end;
etotal.Text := floattostr(harga);
end;
procedure TForm7.bcloseClick(Sender: TObject);
begin
close;
end;
procedure TForm7.FormActivate(Sender: TObject);
begin
bersih;
end;
end.
68
G. Latihan Tugas
1. Hasil yang diinginkan :
2. Ketentuan soal :
� Batas Awal dan Batas akhir diberikan untuk mengetahui nilai awal dan akhir
derajat celcius yang ingin di hasilkan
� Penambahan diberikan untuk memberikan penambahan dari nilai awal untuk
mencapai nilai akhir.
� Close adalah untuk keluar program
� Rumus mencari Fahrenheit adalah = (1,8 * Celcius) + 32.
69
Bab VI
ARRAY
6.1 Pengertian Array
Array (larik) merupakan tipe data terstruktur dimana didalanya terdiri dari komponen –
komponen yang mempunyai tipe data yang sama. Didalam satu array jumlah komponen
banyaknya adalah tetap. Didalam suatu larik atau array setiap komponen ditunjukkan oleh
suatu index yang unik. Index dari setiap komponen array menunjukan urutan data atau
identitas yang mewakili data yang ada didalamnya. Logika sederhananya array itu bisa
disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk
membedakan antara nama yang satu atau dengan nama yang lain maka diberika initial
tambahan untuk setiap nama.
6.2 Deklarasi Array
Didalam penulisan bahasa pemrograman setiap penggunaan array harus dideklarasikan
terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan
indeks array yang dituliskan didalam tanda “[ ]” ,diikuti dengan kata cadangan of dan tipe
data yang dibutuhkan .
Bentuk Umum Penulisan :
Tanda_pengenal : array [Type index…] of tipe data ;
Contoh :
Var
A : array [1..4] of integer ;
B : array [1..5] of string ;
C : array [1..10] of real ;
Keterangan :
A,B,C : merupakan tanda pengenal / nam variabel dari array .
[ 1..4] : merupakan tipe index dari array, yang menunjukkan banyaknya data yang mampu
Disimpan.
Integer : Menunjukkan bahwa data yang diinput berupa beilangan bulat
6.3 Alokasi Penggunaan Array
A. Array Static ( static Array).
Array static adalah model pendeklarasain array dimana tipe data yang digunakan
mempunyainilai yang tetap. Nilai yang digunakan untuk menetukan jangkauan pada
umumnya bernilai integer. Array static juga bisa disebut array dengan deklarasi tipe
indeks subrange integer.
70
Bentuk Umum :
Array [indexType, indexTypeN) of baseType
Keterangan = index type menunjukkan tipe data ordinal yang menunjukkan batasan atau
elemen maksimal terhadap seberapa besar variabel tersebut menyimpan komponen.
Contoh :
Var
Arrayku : array [1..5] of char
B. Array Dinamis (Dynamic Arrays)
Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau
ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array
dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. Dinamic array
jenis ditandai oleh konstruksi (menyangkut) format.
Bentuk Umum :
Array of baseType
Contoh :
Var
Nilai : array of real ;
Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai
yang tetap. Tetapi hanya diberikan batasan sebagai tipe data real. Untuk
mendeklarasikan array didalam suatu memori, caranya adalah dengan memanfaatkan
fungsi dari perinta “ sellength “
sellength (nilai ,20 );
Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range
sebanyak atau cakupan 20 untuk tipe data real, dengan index dimuali dari 0 sampai
dengan 20.
6.4 Latihan Array 1
C. Hasil ketika Form dijalankan
71
D. Design Properties
Object Caption/Text Name
Label 1 Tanggal Label 1
Label 2 Bulan Label2
Label 3 Tahun Label3
Label 4 Hari Pada Tanggal tersebut Adalah Label4
GroupBoxl Entry Tanggal Groupboxl
Editl - Etgl
Edit2 - Ebln
Edit3 - Etahun
Edit4 - Ehari
Command 1 OK bok
E. Coding
procedure TForm1.bhariClick(Sender: TObject);
type x = string[7];
const
faktorbln : array[1..12] of byte = (0,3,3,6,1,4,6,2,5,0,3,5);
hari : array[0..6] of x = (' Minggu ', ‘ Senin ',' Selasa ',' Rabu ',' Kamis ',
‘ Jumat ',' Sabtu ');
var
hr : string;
nama : string[255];
jl,j2 , j3, j4 : integer;
tanggal,bulan,tahun : integer;
begin
tanggal := strtoint(etgl.Text);
bulan := strtoint(ebln.Text);
tahun := strtoint(ethn.Text);
if tahun > 1900 then
tahun := tahun - 1900;
jl := trunc(tahun * 365.25);
j2 := jl + faktorbln[bulan];
if (tahun/4 = int(tahun/4)) and (bulan < 3) then
j2 := j2-l;
j3 := j2 + tanggal;
j4 := trunc(frac(j3/7) * 10);
hr := hari[j4];
ehari.Text := hr;
end;
72
6.5 Latihan Array 2
F. Desain Form
G. Coding
unit latarray2;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, Buttons;
type
Tform8 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
ListBox1: TListBox;
enomor: TEdit;
emakanan: TEdit;
eharga: TEdit;
ejumlah: TEdit;
etotalharga: TEdit;
bnew: TBitBtn;
bclose: TBitBtn;
Label7: TLabel;
procedure FormCreate(Sender:
TObject);
procedure FormActivate(Sender:
TObject);
procedure ListBox1Click(Sender:
TObject);
procedure bnewClick(Sender:
TObject);
procedure ejumlahKeyPress(Sender:
TObject; var Key: Char);
procedure enomorKeyPress(Sender:
TObject; var Key: Char);
procedure bcloseClick(Sender:
TObject);
private
{ Private declarations }
Public
Procedure bersih;
{ Public declarations }
end;
73
var
Form8: TForm8;
menumakanan : array[1..10] of string;
implementation
{$R *.dfm}
Procedure TForm8.bersih;
begin
enomor.Clear;
emakanan.Clear;
eharga.Clear;
ejumlah.Clear;
etotalharga.Clear;
end;
procedure
TForm8.FormCreate(Sender:
TObject);
begin
menumakanan[1]:='Nasi Goreng';
menumakanan[2]:='Bakso';
menumakanan[3]:='Spagheti';
menumakanan[4]:='Mie Ayam';
menumakanan[5]:='Sate Ayam';
menumakanan[6]:='Sate Kambing';
menumakanan[7]:='Steak';
bersih;
end;
procedure
TForm8.FormActivate(Sender:
TObject);
var i :integer;
begin
enomor.SetFocus;
emakanan.Enabled:=false;
eharga.Enabled:=false;
for i:= 1 to 10 do
istbox1.Items.Append(menumakanan[i]);
end;
procedure
TForm8.ListBox1Click(Sender:
TObject);
begin
emakanan.Text:=listbox1.Items[listbox1.I
temindex];
case listbox1.ItemIndex of
0: eharga.text:= '7000';
1: eharga.text:= '5000';
2: eharga.Text:= '12000';
3: eharga.Text:= '4500';
4: eharga.Text:= '7500';
5: eharga.Text:= '9000';
6: eharga.text:= '25000';
end;
ejumlah.SetFocus;
end;
procedure TForm8.bnewClick(Sender:
TObject);
begin
bersih;
enomor.SetFocus;
end;
procedure
TForm8.ejumlahKeyPress(Sender:
TObject; var Key: Char);
var harga,jumlah,total:currency;
begin
if key= #13 then
begin
etotalharga.Font.Size:=14;
etotalharga.Font.Color:=clblue;
harga := strtocurr(eharga.text);
jumlah := strtocurr(ejumlah.Text);
total:=harga*jumlah;
etotalharga.Text:=currtostr(total);
end;
end;
74
procedure TForm8.enomorKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
listbox1.SetFocus;
end;
procedure TForm8.bcloseClick(Sender: TObject);
begin
if application.MessageBox('Anda Yakin akan keluar','Informasi',mb_yesno)=idyes then
close;
end;
end.
75
Bab VII
Prosedur
Prosedur adalah suatu program terpisah dan berdiri dalam suatu blok program dan berfungsi
sebagai sebuah sub program (program bagian). Penulisan prosedur diawali dengan kata prosedur
pada bagian Deklarasi program dan cukup menuliskan nama prosedur yang dibuat pada bagian
Implementasi.
Alasan penggunaan prosedur :
1. digunakan untuk penggalan program yang akan digunakan secara berulang – ulang dalam
suatu proses program.
2. digunakan untuk memecah – mecah program menjadi sebuah modul program, sehingga listing
program menjadi lebih sederhana.
Syarat penulisan nama prosedure
1. Harus diawali dengan karakter
2. untuk nama prosedur dengan menggunakan dua kata atau lebih penulisannya tidak boleh
menggunakan spasi, harus digabung atau dihubungkan dengan underscore ( _ )
3. tidak mengenal tanda baca.
Contoh
a. Pendeklarasian Prosedur
Penulisan pendeklarian sebuah prosedur dalam Delphi ditempatkan setelah kata public
agar dapat dikenali oleh semua object yang ada dalam proses program tersebut.
Penulisannya diawali dengan kata Procedure diikuti nama procedure.
Public
Procedure bersih;
b. Penulisan prosedur
Penulisan pogram prosedur terdapat dalam bagian implementation,
Procedure TForml.Bersih;
Begin
Enama.text := ";
Ealamat.text := ";
Ekota := ";
End;
76
c. Pemanggilan Prosedur
Pemanggilan prosedur terdapat dalam bagian implementation, pada umumnya
pemanggilan prosedur terdapat dalam suatu ruang lingkup object yang mempunyai
sebuah event. Cara pemenggilannya cukup hanya dituliskan nama prosedurnya saja.
Procedure.TForml.buttonlclick(sender: Tobject); Begin
Bersih;
End;
atau ketika program prosedur digunakan pada object yang lain untuk memanggil program
yang sama kita hanya cukup menuliskan nama prosedurnya tanpa dibutuhkan
pendeklarasian prosedur baru.
Procedure TForml.enamakeypress(sender: Tobject; var key.char);
Begin
If key = #13 then
Bersih;
End;
77
Bab VIII
Fungsi
8.1 Pengertian Fungsi.
Pengertian secara umum mengenai fungsi adalah merupakan sebuah penggalan program yang
terpisah dari program utama dan berfungsi sebagai sebuah program bagian dari program
utama. Penulisan fungsi diawali dengan kata cadangan Function dan dideklarasikan dalam
bagian dklarasi fungsi. Dan penulisan program fungsi harus diikuti dengan tipe datannya.
Bentuk Umum penulisan Fungsi Function :
Function indentifier (daftar_paramaeter) : type;
Contoh :
Function hitung (var a,b :real) : real ;
Penulisan blok fungsi diawali dengan kata cadangan begin dan diakhiri dengan end ;
8.2 Fungsi Tunggal.
Fungsi tunggal merupakan suatu fungsi dimana proses pemanggilan dirinya sendiri tanpa
melalui fungsi yang lain atau fungsi yang tidak terdapat daalm fungsi yang lain.
Contoh :
A. Hasil yang diinginkan
B. Coding
function hitung(var p,l,t:integer):integer;
begin
hitung:=p*l*t;
end;
78
procedure TForm1.BhitungClick(Sender: TObject);
var
pjg,lbr,tgi,luas:integer;
begin
pjg:=strtoint(epajang.Text);
lbr:=strtoint(elebar.Text);
tgi:=strtoint(etinggi.Text);
luas:=hitung(pjg,lbr,tgi);
eluas.Text:=inttostr(luas);
end;
procedure TForm1.BhapusClick(Sender: TObject);
begin
epanjang.Text :='0';
elebar.Text :='0';
etinggi.Text :='0';
eluas.Text :='0';
epanjang.SetFocus;
end;
Didalam program utama tidak ditempatkan rumus untuk menghitung penjumlahan tetapi
ketika dilakukan eksekusi terhadap program dan kita melakukan input panjang, lebar dan
tinggi dan ketika di klik Hitung maka akan ditampilkan hasil yang diinginkan. Hasil itu
diperoleh dari pengiriman nilai dari teks ke nilai pada variabel utama. Selanjutnya dikirim
secara berurut pada subprogram Fungsi Hitung (p , l , t).untuk mendapatkan hasil
perhitungan luas.
8.3 Fungsi untuk memanggil fungsi yang lain.
Merupakan pembuatan program fungsi yang digunakan untuk memanggil program fungsi
yang lain didalam satu listing program.
A. Hasil yang diinginkan
79
B. Design Form
C. Design Properties
D. Coding
� Fungsi Perhitungan Bunga
Function pangkat (x,y :real) :real;
begin
pangkat := exp(ln (x) *y) ;
end;
Function bunga ( f , g , h :real) :real;
begin
bunga := f * pangkat ((1 + g/100),h) ;
end;
Object Caption/Text Name
Label 1 Nama Peminjam Label 1
Label 2 Jumlah Uang Pinjam Label2
Label 3 Tingkat Bunga (dalarn %) Label3
Label 4 Lama Pinjam Label4
Label5 Besarnya Uang Yang Harus
Dikembalikan
Label5
Label6 Cicilan Uang Setiap Bulan Label6
GroupBoxl Rincian Nama Anggota Groupboxl
Editl - Epeminjam
Edit2 - Epinjam
Edit3 - Ebunga
Edit4 - Elama
Edit5 - Ekembalian
Edit6 - Ecicil
Button 1 Total Btotal
Button2 Bersih B bersih
Button3 Close bclose
80
� Program Total
Procedure TForm1.btotalClick (sender: TObject) ;
Var
a,b,c,d,e : real
begin
a:= strtofloat (ejumlah.text);
b:= strtofloat (ebunga.text);
c:= strtofloat (elama.text);
d:= bunga (a,b,c);
ekembalian.text :=floattostr(d)
ekembalian.text := formatfloat (‘#.###,0’,d);
e := d/c
ecicil.text := floattostr(e);
ecicil.text :=formatfloat (‘#.###,0’,e);
end;
� Program Bersih
Procedure Tform1.bbersihClick (Sender :TObject);
Begin
Ejumlah.text := ‘ ‘ ;
Elama. Text := ‘ ‘ ;
Epeminjam.text := ‘ ‘ ;
Ebunga.text := ‘ ‘;
Ekembalian.text := ‘ ‘ ;
Ecicil.text := ‘ ‘;
End ;
� Program Menutup Form
Procedure Tform1.bcloseClick(Sener : TObject);
Begin
Close;
End;
81
Bab IX
Penggunaan Database Desktop
9.1 Pengertian Data Base Dekstop
Biasanya , jika kita ingin membuat suatu program aplikasi untuk manajemen database, kita
memerlukan file database yang akan diproses. File database ini dibuat satu kali saja dan
tidak perlu langsung diisi recordnya (dibuat struktur databasenya saja). Selanjutnya file
database tersebut diproses lewat program. Untuk membuat file database, anda dapat
menggunakan program database desktop.
Database desktop merupakan suatu program ”Add Ins”, yaitu program terpisah yang
”ditempelkan” dalam Delphi, sehingga bisa dipakai sebagai bagian dari program Delphi.
Database Desktop akan kita pelajari secara terbatas, terutama untuk membuat dan mengedit
struktur database.
Data Base Dekstop adalah merupakan sebuah system aplikasi database yang sudah
disertakan pada saat penginstalan Delphi. Komponen Data Base Dekstop yang merupakan
bawaan Delphi meliputi = Paradox, dBse, MsSQL, Oracle, Maccess, Excel dan Lain – lain.
9.2 Langkah – langkah pembuatan Database Desktop.
Ada dua cara mengaktifkan database Desktop yaitu :
� Melalui Icon Start
Klik start | Pilih programs | Pilih Borland Delphi | Klik Data Base Dekstop
� Melalui IDE Delphi
Pilih dan klik Menu Tools | pilih dan klik Database Dekstop
1. Membuat Alias Manager
Fungsinya digunakan untuk menggantikan fungsi path ketika tabel yang dibuat akan
dipanggil pada jendela program.
Contoh =
Tanpa Alias
Ketika kita akan mengaktifkan tabel yang disimpan di C didalam Folder Karyawan
dengan nama tabel_karyawan, maka kita kita harus menuliskan program sebagai
82
berikut : C:\Karyawan\tabel_karyawan.db. (itu bisa semakin panjang jika folder
penyimpanan data semakin bertingkat)
Dengan Alias
Pemanggilan program dengan alias kita tinggal panggil nama Alias baru kita tuliskan
nama tabel. Dengan alias tidak mengenal penggunaan folder yang bertumpuk, karena
Alias ditempatkan pada system Sistem Operasi
Langkah - langkahnya
1. Dari jendela Data base desktop pilih tools
2. pilih dan klik alias manager, perhatikan tampilan jendela Alias manager
3. Pada Jendela Alias Manger pilih dan klik New
4. Ketikan nama alias pada database alias, misal karyawan_nimmasing2 (cth:
karyawan_12038381)
5. Pada Database Type pilih Standard
6. Pada jendela path ketikan path tempat penyimpanan field tabel atau klik browse
untuk pencarian secara otomatis.
7. Klik OK
Catatan = dalam pembuatan nama alias cukup dibuat satu kali untuk satu project
program, walaupun ada penambahan tabel setelah pembuatan Alias karena fungsi Alias
sama seperti fungsi dari database.
2. Membuat Tabel
Setelah Database Dekstop diaktifkan, langkah berikut untuk membuat tabel =
1. Klik Menu File | New | table
2. Perhatikan tampilan jendela create table
3. Dari Jendela create table pilih dan klik pilihan table pada table type = Paradox
4. Klik Ok
Penjelasan Untuk Struktur tabel :
83
Field Name = digunakan untuk menuliskan nama field
Syarat Penulisan Nama Field
� Unik dan mudah diingat
� Diawali dengan Karakter
� Tidak diperbolehkan penulisan dengan tanda baca (! , . ? / + & % # @)
� Untuk field dengan dua kata atau lebih dihubungkan dengan Undecsare ( _ )
Type = Digunakan untuk menentukan tipe data pada Field
Type Data yang Dikenal Pada Paradox adalah
� Alpha = tipe data yang menampung semua karakter baik berupa huruf,
angka maupun tanda baca.
� Number = tipe data yang menampung angka (numeric), jangkauannya
mempunyai range untuk bilangan negative dan bilangan
positif, (-10307 sampai dengan 10308). Dengan digit
maksimal adalah 15 digit.
� Money = Tipe data yang hanya untuk angka. Sama seperti dengan Tipe
Data Number hanya berbeda pada jangkauan. Pada tipe data
number tidak mengenal dedsimal, tipe data money mengenal
adanya decimal dan format mata uang.
� Short = tipe data angka yang hanya mempunyai jangkauan -32,767 to
32,767
� Long Integer = Sama seperti tipe data integer dengan jangkauan lebih luas
(-2147483648 to 2147483647 )
� Date = Tipe Data untuk tanggal (1 Januari 9999 BC to 31 Desember
9999 AD).
� Time = Tipe Data yang digunakan untuk setup waktu.
� Memo = Tipe Data untuk semua unit karakter dengan jangkauan 1
sampai dengan 240 karakter.
� Graphic = Tipe Data untuk gambar. (..BMP, .PCX, .TIF, .GIF, and .EPS
file formats).
� Logical = Tipe data yang hanya mengenal benar atau salah (Yes or No).
Size = Digunakan untuk menentukan size terhadapa suatu field
Catatan : Size yang kompatibel untuk diganti hanya tipe data Alpha dan memo.
84
Key = Digunakan untuk menentukan kunci utama (primary key)
Catatan = untuk memberikan primary key cukup ditekan space bar atau double klik
pada field yang akan dibuat sebagai key ( ditandai dengan *)
Misal = Buatlah Struktur tabel untuk tabel_karyawan seperti berikut ini
Mengisi Data Pada Tabel
Langkah – langkah Pengisian data pada tabel
� Aktifkan database Dekstop | buka tabel_karyawan
� Pada tampilan data pilih dan klik edit Data
Isi Data Sebagai Berikut
Membuka Tabel yang sudah dibuat
� Buka Database Desktop
� Klik File | Open | table | Pilih nama aliasnya | Pilih nama tabelnya | Open
85
Bab X
Kontrol Data Set dan Navigator
Kontrol Dataset merupakan control yang diberikan kepada tabel dalam suatu database. Hal ini
meliputi bagaimana data terhubung dengan tabel dari suatu database. Setelah terhubung
bagaimana proses menggerakkan record , baik itu keawal record, ke akhir record, ke record
sesudah maupuin ke record sebelumnya.
10.1 Komponen Tabel
A. Borland Database Engine (BDE)
Kompenen Borland Database Engine merupakan media penghubung antara database
dengan aplikasi program. Pada awalnya BDE digunakan untuk paradox. Komponen BDE
mendukung akses database yang merupakan bawaan dari delphi walaupun tidak menutup
kemungkinan bisa juga digunakan untuk pengaksesan database yang bersifat client/server.
Salah satu kelebihan BDE adalah integrasi yang sudah sangat baik dengan Delphi. Sisi
lain penggunaan BDE hanya maksimal untuk pemrograman yang bersifat standlone.
Bentuk Kompenen BDE pada Delphi :
B. ActiveX Data Object (ADO)
ADO merupakan salah satu teknologi akses database tingkat tinggi. Kelebihan antar muka
ADO adalah merupakan teknologi akses indevenden terhadap setiap aplikasi program.
ADO terdapat dalam tab ADO pada Component Pallete.
86
10.2 Latihan Database ( STUDI KASUS FORM KARYAWAN )
Buat form dibawah ini
KOMPONEN
DELPHI KETERANGAN
Komponen table terdapat dalam tab BDE
Databasename= karyawan_12038381
Table name = tabel_karyawan
Active = true
Komponen Data Source terdapat dalam tab Data Access
Dataset =tabel1
Dbgrid terdapat dalam tab data control
Datasource =datasource 1
Komponen BitBtn1 terdapat dalam Tab Additional
Untuk membuat Button Awal, Maju, Mundur dan Akhir ( Diberi warna
/ gambar )
Komponen Memo terdapat dalam Tab Standard
87
Petunjuk Logika Soal
a) Tombol Tambah digunakan untuk mengosongkan isi di edittext
b) Tombol Batal jika tidak jadi menambahkan data dan textnya tidak aktif.
c) Tombol Simpan untuk menyimpan data yang telah ditambahkan.
d) Tombol Cari untuk mencari data berdasarkan kode pegawai.
e) Tombol Hapus untuk menghapus data yang telah kita masukan.
f) Untuk Jabatan & Gaji pokok :
Jabatan Gapok
Direktur 10000000
Manajer 8000000
Supervisor 5000000
Administrasi 3000000
Tombol exit akan keluar dari form dengan muncul pesan:
Listing Programnya
� Membuat procedure aktif, nonaktif, tampil dan kosong dibawah declarasi public
private
{ Private declarations }
public
procedure aktif;
procedure nonaktif;
procedure tampil;
procedure kosong;
{ Public declarations }
end;
implementation
{$R *.dfm}
� Membuat isi procedure aktif
procedure Tform1.aktif;
begin
ekode.Enabled:=true;
enama.Enabled :=true;
malamat.Enabled :=true;
cbjabatan.Enabled :=true;
egapok.Enabled :=true;
rlaki2.Enabled :=true;
rperempuan.Enabled :=true;
end;
� Membuat isi procedure nonaktif
procedure tform1.nonaktif;
begin
ekode.Enabled :=false;
88
enama.Enabled :=false;
malamat.Enabled :=false;
cbjabatan.Enabled :=false;
egapok.Enabled := false;
rlaki2.Enabled :=false;
rperempuan.Enabled :=false;
bsimpan.Enabled:=false;
end;
� Membuat isi procedure kosong
procedure tform1.kosong;
begin
ekode.Clear;
enama.Clear;
malamat.Clear;
rlaki2.Checked :=false;
rperempuan.Checked :=false;
egapok.Clear;
ecari.Clear;
end;
� Untuk menampilkan isi field dari tabel karyawan
procedure tform1.tampil;
begin
ekode.Text :=table1['Kdpegawai'];
enama.Text :=table1['Nmpegawai'];
malamat.Text :=table1['Alamat'];
cbjabatan.Text :=table1['Jabatan'];
egapok.Text :=table1['Gapok'];
if table1['Gender']='Laki-laki' then
rlaki2.Checked :=true
else
rperempuan.Checked :=true;
end;
� Menyimpan data yang sudah diinputkan ke tabel karyawan
procedure TForm1.bsimpanClick(Sender: TObject);
begin
table1.Append;
table1['Kdpegawai']:=ekode.Text;
table1['Nmpegawai']:=enama.Text;
table1['Alamat']:=malamat.Text;
table1['Jabatan']:=cbjabatan.Text;
if rlaki2.Checked =true then
table1['Gender']:=rlaki2.Caption
else
table1['Gender']:=rperempuan.Caption ;
table1['Gapok']:=egapok.Text;
table1.Post;
nonaktif;
end;
89
� Untuk menambahkan isi field, beberapa edittext dalam keadaan aktif dan kosong
procedure TForm1.btambahClick(Sender: TObject);
begin
aktif;
kosong;
ekode.SetFocus;
bsimpan.Enabled :=true;
end;
� Untuk menghapus isi field dan beberapa object edittext dalam keadaan nonaktif
procedure TForm1.bhapusClick(Sender: TObject);
begin
table1.Delete;
nonaktif;
table1.First;
end;
� Keluar dari aplikasi program dan akan tampil pesan
procedure TForm1.bexitClick(Sender: TObject);
begin
if (application.MessageBox('Yakin akan keluar?','Informasi',mb_yesno)=id_yes) then
close;
end;
� Membatalkan perintah
procedure TForm1.bbatalClick(Sender: TObject);
begin
kosong;
nonaktif;
table1.First;
tampil;
end;
� Pada saat form dirunning semua isi field akan tampil
procedure TForm1.FormCreate(Sender: TObject);
begin
tampil;
end;
� Membuat pilihan jabatan dan akan tampil gaji pokok yang sudah ditentukan
procedure TForm1.cbjabatanClick(Sender: TObject);
begin
if cbjabatan.Text ='Direktur' then
egapok.Text:='10000000'
else
if cbjabatan.Text ='Manajer' then
egapok.Text:='8000000'
else
if cbjabatan.Text ='Supervisor' then
90
egapok.Text:='5000000'
else
if cbjabatan.Text ='Administrasi' then
egapok.Text:='3000000'
else
egapok.Text:='0';
end;
� Pada saat input kode pegawai yang sudah ada maka akan tampil pesan
procedure TForm1.ekodeKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
if table1.FindKey([ekode.Text]) then
begin
showmessage('Data Sudah ada');
exit;
end
else
aktif;
ekode.Enabled := false;
form1.ActiveControl := enama;
end;
end;
� Pada saat form dirunning beberapa object dalam keadaan nonaktif
procedure TForm1.FormActivate(Sender: TObject);
begin
tampil;
nonaktif;
end;
� Membuat pencarian data berdasarkan index
procedure TForm1.bcariClick(Sender: TObject);
begin
table1.IndexName :='';
if not table1.FindKey([ecari.Text]) then
begin
showmessage('Data Belum ada');
exit;
form1.ActiveControl := ecari;
end
else
tampil;
ecari.Clear;
ecari.SetFocus;
end;
91
Bab XI
Pembuatan Database menggunakan Microsoft Access 2003
11.1 Mengenal Database dan Tipe Data pada Microsoft Access 2003
Microsoft Access merupakan salah satu contoh DBMS relasional (atau disebut RDBMS,
dengan R kependekan dari Relational) yang sangat terkenal dilingkungan PC . pada microsoft
Access, sebuah database disimpan dalam sebuah berkas dengan ekstensi .MDB. didalam berkas
inilah semua objek yang terkait dengan database, termasuk semua tabel, disimpan.
Sebelum melangkah lebih jauh dalam mempelajari dan mempraktekkan operasi database
pada microsoft Access. Anda perlu mengetahui tipe tipe data yang tersedia karena setiap field
yang anda definisikan haruslah memiliki tipe data, selain propoerti properti yang lain.
11.2 Merancang Database ( Studi Kasus Inventory)
Dalam Kasus Project Program Inventory ini akan membuat nama database :
Inventory.mdb. Langkah langkahnya :
� Buka Microsoft Access 2003, Pilih menu File – New - Blank Database.
� Simpan Nama Database dengan nama : Inventory.mdb
� Untuk membuat tabel, pilih menu tables – Create table in Design View
� Buatlah Struktur Table – table dibawah ini :
1. Table User
Nama Field Type Data Size Keterangan
Iduser Text 3 Primary Key
Nmuser Text 25
Password Text 10
Hak_akses Text 5
92
Isilah Data tabel diatas sebagai berikut :
2. Table Supplier
Nama Field Type Data Size Keterangan
Idsup Text 5 Primary Key
Nmsup Text 25
Telp Text 20
alamat Text 50
3. Table Buku
Nama Field Type Data Size Keterangan
Kodebuku Text 6 Primary Key
Nmbuku Text 25
Jenis_buku Text 10
Penerbit Text 50
Pengarang Text 50
Harga Number
Stok Number
4. Table Pembelian
Nama Field Type Data Size Keterangan
Notrans Text 10 Primary Key
Tgltrans Date/Time
Total Number
Idsup Text 5 Foreign Key
Iduser Text 3 Foreign Key
5. Table Detail_beli
Nama Field Type Data Size Keterangan
Notrans Text 10 Foreign Key
Qty Number
Subtot Number
Kodebuku Text 6 Foreign Key
6. Table Sementara
Nama Field Type Data Size Keterangan
Kodebuku Text 6 Primary Key
Nmbuku Text 25
Harga Number
Qty Number
Subtotal Number
93
11.3 Mengisi Data
Pilih Tabel User lalu klik OPEN, isilah data user dibawah ini :
94
Bab XII
Koneksi Database dan Perancangan Form Master Supplier
12.1 Mengkoneksikan ke Database
1. Masukkan Komponen ADOTable(ADODB) pada Tab ADO ke Kanvas Form
2. Di properties dipilih Connection String
3. Setelah itu akan tampil layar alamat Connection String (untuk mengambil
alamat database).
4. Akan muncul Data Link Properties pada tab Provider, selanjutnya Pilih :
Microsoft Jet 4.0 OLE DB Provider.
95
5. Lalu Data Link Properties pada tab Connection, selanjutnya pilih nama
databasenya.
6. Klik Ok, lalu pilih properties Table dan pilih nama table yang akan
dikoneksikan. Selanjutnya pilih Active pada Propeties, ganti menjadi “TRUE”
untuk mengaktifkan Table.
12.2 Logika Program
� Membuat Prosedure Aktif (Mengaktifkan “.Enabled “ objek – objek pada form)
� Membuat Procedure Pasif (Menonaktifkan “.Enabled “ objek – objek pada form)
� Membuat Procedure Bersih (membersihkan textbox)
� Button Save untuk menyimpan kedalam tabel supplier
� Button Add untuk mengaktifkan dan membersihkan objek
� Button Exit untuk menutup Form
12.3 Tampilan Form pada saat Running
96
12.4 Design Form
12.5 Coding
� Membuat Deklarasi Procedure:
private
{ Private declarations }
public
procedure aktif;
procedure bersih;
procedure pasif ;
{ Public declarations }
end;
� Kode Procedure aktif, bersih dan pasif
implementation
{$R *.dfm}
procedure tform1.aktif;
begin
ekdsup.Enabled := true;
enmsup.Enabled :=true;
etelp.Enabled := true;
ealamat.Enabled :=true;
end;
procedure tform1.bersih;
begin
ekdsup.Text:='';
enmsup.Text:='';
etelp.Text:='';
ealamat.Text:='';
end;
procedure tform1.pasif;
begin
ekdsup.Enabled := false;
enmsup.Enabled :=false;
etelp.Enabled := false;
ealamat.Enabled :=false;
end;
Object Keterangan Name Edit Text Kode Supplier Ekdsup Edit Text Nama Supplier Enmsup Edit Text Telp Etelp Edit Text Alamat Ealamat Button Button ADD Btnadd Button Button SAVE Btnsave Button Button Exit Btnexit ADO Table ADO Table Adosup Datasource DataSet : Adosup Datasup Dbgrid1 Datasource : Datasup Dbgrid1
97
� Form Activate ( Pada saat Form pertama kali diaktifkan)
procedure TForm1.FormActivate(Sender: TObject);
begin
bersih;
pasif;
end;
� Tombol Add saat diklik
procedure TForm1.btnaddClick(Sender: TObject);
begin
showmessage('Silahkan Input data baru Supplier');
bersih;
aktif;
ekdsup.SetFocus;
end;
� Tombol Save saat diklik
procedure TForm1.btnsaveClick(Sender: TObject);
begin
if adosup.Locate('idsup',ekdsup.Text,[])then
begin
showmessage('Data Suplier sudah ada!');
exit;
end
else
begin
adosup.Append; //menambahkan Record baru
adosup['idsup']:=ekdsup.Text; //menyimpan data perfield
adosup['nmsup']:=enmsup.Text ;
adosup['telp']:=ekdsup.Text;
adosup['alamat']:=enmsup.Text ;
adosup.Post; // untuk mengupdate data tabel
adosup.Refresh;
showmessage('Data Supplier yang baru telah tersimpan');
pasif;
bersih;
end;
end;
98
� Tombol Exit saat diklik
procedure TForm1.btnexitClick(Sender: TObject);
begin
IF application.MessageBox('Yakin akan keluar?','Informasi',mb_okcancel)=idok
then
begin
showmessage ('Form akan ditutup');
close;
end
else
begin
showmessage('Form tidak ditutup');
exit;
end;
end;
99
Bab XIII
Perancangan Form Master Buku
13.1 Logika Program
� Buatlah procedure Aktif, bersih, Pasif, no_otomatis dan tampil (untuk menampilkan
data kedalam objek objek form
� Pada saaat form pertama kali aktif, tombol Add, Find, Exit dan Navigasi aktif.
� Tombol Navigasi Next : untuk menuju ke record berikutnya lalu data tampil.
� Tombol Navigasi Bottom : untuk menuju ke recor paling akhir.
� Tombol Navigasi Back : untuk menuju ke record sebelumnya lalu data tampil
� Tombol Navigasi Top : untuk menuju ke record paling awal
� Pada Saat tombol add diklik maka Isi Kode buku terisi otomatis dengan format :
“BOOK01” ,”BOOK02”…dst. Tombol yang aktif hanya Save dan Cancel.
� Pada saat tombol find diklik maka akan dilakukan pencarian berdasarkan Kode buku.
Jika ketemu maka tombol Delete – Edit – Cancel aktif dan data tampil.
� Pada saat tombol Edit diklik maka akan dilakukan pengeditan pada isi data pada objek
kecuali kode buku. Lalu Tombol Save dan Cancel aktif.
� Pada saat tombol delete diklik maka data yang dipilih akan dihapus.
� Button Save digunakan untuk menambahkan record baru atau update record yang
sudah ada.
� Button Exit : untuk keluar dari form
13.2 Tampilan Form saat Running
13.3 Desain Form
100
13.4 Coding
unit form_buku; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB; type TForm2 = class(TForm) Label1: TLabel; GroupBox1: TGroupBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; enmbuku: TEdit; epenerbit: TEdit; epengarang: TEdit; eharga: TEdit; estok: TEdit; rdumum: TRadioButton; rdnonumum: TRadioButton; DataSource1: TDataSource; adobuku: TADOTable; DBGrid1: TDBGrid; btnadd: TButton; btnsave: TButton; btnbottom: TButton; btnback: TButton; btntop: TButton; btnnext: TButton; btncancel: TButton; btndel: TButton; btnedit: TButton; btnexit: TButton; ekdbuku: TEdit; GroupBox2: TGroupBox; Label9: TLabel; ecari: TEdit;
btnfind: TButton; procedure btnaddClick(Sender: TObject); procedure btnnextClick(Sender: TObject); procedure btntopClick(Sender: TObject); procedure btnbackClick(Sender: TObject); procedure btnbottomClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure btncancelClick(Sender: TObject); procedure btndelClick(Sender: TObject); procedure btneditClick(Sender: TObject); procedure btnsaveClick(Sender: TObject); procedure btnfindClick(Sender: TObject); procedure btnexitClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public procedure aktif; procedure pasif; procedure bersih; procedure tampil; procedure no_otomatis; { Public declarations } end; var Form2: TForm2; isi: boolean; // variabel penampung untuk penyimpanan implementation {$R *.dfm}
101
procedure tform2.aktif; begin ekdbuku.enabled:= true; enmbuku.Enabled:=true; rdumum.Enabled:=true; rdnonumum.Enabled:=true; epenerbit.Enabled:=true; epengarang.Enabled:=true; eharga.Enabled:=true; estok.Enabled:=true; end; procedure tform2.pasif ; begin ekdbuku.enabled:= false; enmbuku.Enabled:=false; rdumum.Enabled:=false; rdnonumum.Enabled:=false; epenerbit.Enabled:=false; epengarang.Enabled:=false; eharga.Enabled:=false; estok.Enabled:=false; end; procedure tform2.bersih; begin ekdbuku.Text:=''; enmbuku.Text:=''; rdumum.Checked:=false; rdnonumum.Checked:=false; epenerbit.Text:=''; epengarang.Text:=''; eharga.Text:='0'; estok.Text :='0'; end; procedure tform2.no_otomatis; var nomor:integer; begin adobuku.Refresh; If adobuku.RecordCount = 0 Then begin ekdbuku.Text := 'BOOK' + '01' ; end else begin adobuku.Last; nomor := strtoint(copy(adobuku['kodebuku'],5,2)); // mengambil 2 karakter angka dibelakang inc(nomor); if nomor<10 then ekdbuku.Text:='BOOK'+'0'+ inttostr(nomor) else ekdbuku.Text:='BOOK'+inttostr(nomor); ekdbuku.Enabled:=false; end; end; procedure tform2.tampil ; begin if adobuku.RecordCount <>0 then begin ekdbuku.Text:=adobuku['kodebuku']; enmbuku.Text:=adobuku['nmbuku'];
102
if adobuku['jenis_buku']='Umum' then rdumum.Checked:=true else rdnonumum.Checked:=true; epenerbit.Text:=adobuku['penerbit']; epengarang.Text:=adobuku['pengarang']; eharga.Text:=inttostr(adobuku['harga']); estok.Text:=inttostr(adobuku['stok']); end; end; procedure TForm2.btnaddClick(Sender: TObject); begin isi:=true; bersih; aktif; no_otomatis; btnadd.Enabled:= false; btncancel.Enabled:=true; btnsave.Enabled:=true; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=false; btnfind.Enabled:= false; end; procedure TForm2.btnnextClick(Sender: TObject); begin adobuku.Next; if adobuku.Eof = true then begin showmessage('Sudah Diakhir data ') ; adobuku.Last; end; tampil; end; procedure TForm2.btntopClick(Sender: TObject); begin adobuku.First; tampil; end; procedure TForm2.btnbackClick(Sender: TObject); begin adobuku.Prior; if adobuku.Bof=true then begin showmessage('sudah diawal record'); adobuku.First; end; tampil; end; procedure TForm2.btnbottomClick(Sender: TObject); begin adobuku.Last; tampil; end;
103
procedure TForm2.FormActivate(Sender: TObject); begin bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; procedure TForm2.btncancelClick(Sender: TObject); begin bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; procedure TForm2.btndelClick(Sender: TObject); begin IF application.MessageBox('Yakin akan dihapus?','Informasi',mb_okcancel)=idok then begin adobuku.Delete; adobuku.First; adobuku.Refresh; bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; end; procedure TForm2.btneditClick(Sender: TObject); begin isi:=false; aktif; ekdbuku.Enabled:=false; btnadd.Enabled:= false; btncancel.Enabled:=true; btnsave.Enabled:=true; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=false; btnfind.Enabled:= false; end; procedure TForm2.btnsaveClick(Sender: TObject); begin if isi=true then begin showmessage('Data Akan disimpan');
104
adobuku.Append; adobuku['kodebuku']:=ekdbuku.Text; adobuku['nmbuku']:=enmbuku.Text; if rdumum.Checked=true then adobuku['jenis_buku']:='Umum' else adobuku['jenis_buku']:='NonUmum'; adobuku['penerbit']:=epenerbit.Text; adobuku['pengarang']:=epengarang.Text; adobuku['harga']:=strtoint(eharga.Text); adobuku['stok']:=strtoint(estok.Text); adobuku.Post end else begin isi:=false; showmessage('Data Akan diupdate'); adobuku.Edit ; adobuku['nmbuku']:=enmbuku.Text; if rdumum.Checked = true then adobuku['jenis_buku']:='Umum' else adobuku['jenis_buku']:='NonUmum'; adobuku['penerbit']:=epenerbit.Text; adobuku['pengarang']:=epengarang.Text; adobuku['harga']:=strtoint(eharga.Text); adobuku['stok']:=strtoint(estok.Text); adobuku.Post end ; bersih; pasif ; btnadd.Enabled:= true; btncancel.Enabled:=false; btnsave.Enabled:=false; btndel.Enabled:=false; btnedit.Enabled:=false; btnexit.Enabled :=true; btnfind.Enabled:= true; end; procedure TForm2.btnfindClick(Sender: TObject); begin if adobuku.Locate('kodebuku',ecari.Text,[])then begin showmessage('Data Buku ada!'); ecari.Text:=''; tampil; btnadd.Enabled:= false; btncancel.Enabled:=true; btnsave.Enabled:=false; btndel.Enabled:=true; btnedit.Enabled:=true; btnexit.Enabled :=false; btnfind.Enabled:= false; end; end; procedure TForm2.btnexitClick(Sender: TObject); begin close; end;
105
Bab XIV
Perancangan Form Transaksi Pembelian
14.1 Logika Program
� Buatlah Prosedure aktif,pasif dan bersih
� Buatlah Prosedure Grid_bersih untuk menghapus data sementara (keranjang belanja)
� Buatlah prosedure penomoran otomatis untuk menampilkan no transaksi secara urut
sesuai data yang telah disimpan. Format penomoran ( “TR”- 2digit bulan transaksi – 2
digit tahun transaksi – no urut 3 digit). Contoh : TR0712-001, TR0712-001.
� Buatlah prosedure untuk menghitung Total dari jumlah subtotal keseluruhan pada tabel
sementara.
� Form pertama kali dijalankan maka semua objek bersih, pasif dan tanggal sistem
keluar.
� Diklik Add, maka no transaksi akan keluar, semua objek aktif.
� ID Supplier diisi dan dilakukan Validasi data pada tabel Supplier, jika ditemukan maka
nama supplier dan telp akan terisi.
� Isi Combo box pada kode buku diambil dari tabel buku, dipilih kode buku maka nama
buku dan harga terisi, setfokus pada jumlah beli.
� Jumlah beli diisi untuk satu jenis buku, setelah di enter maka subtotal keluar dari
perkalian jumlah beli dikali harga buku.
� Button Beli diklik maka data buku yang dibeli akan masuk pada keranjang belanja.
Karena masih dikeranjang belanja, stok buku belum berkurang pada tabel buku. Jika
ada kode buku yang sama diinput lebih dari 1 kali kedalam keranjang belanja dengan
jumlah beli yang berbeda, maka hanya diedit jumlah beli dan subtotalnya tanpa
menambahkan record baru.
� Jika sudah disimpan dengan mengklik button SAVE maka akan disimpan kedalam
tabel Detail_beli dan tabel Transaksi .
� Button exit untuk keluar dari form
14.2 Tampilan Form Saat Running
106
14.3 Desain Form
14.4 Coding
private { Private declarations } public procedure bersih; procedure aktif; procedure pasif; procedure no_otomatis; procedure hitung; procedure gridbersih; { Public declarations } end; var Form3: TForm3; mtotal:real; implementation {$R *.dfm} procedure tform3.gridbersih ; //untuk menghapus data pada keranjang Belanja begin if adosem.RecordCount<>0 then begin adosem.First ; while not adosem.eof do begin adosem.Delete ; adosem.Next; adosem.Refresh end; end; end; procedure tform3.hitung; // Untuk menghitung total dari subtotal pada tabel Sementara begin mtotal:=0; if adosem.RecordCount<>0 then begin adosem.First; while not adosem.eof do begin mtotal:=mtotal+adosem['subtotal']; adosem.Next;
107
end; end else begin mtotal:=0; end; etotal.Text:=floattostr(mtotal); end; procedure tform3.bersih; begin enotrans.Text:=''; etgl.Text:=''; eidsup.Text:=''; enmsup.Text:=''; cbkdbuku.Text:=''; enmbuku.Text:=''; eharga.Text:='0'; ejumbel.Text:='0'; esubtot.Text:='0'; etotal.Text:='0'; end; procedure tform3.aktif; begin enotrans.Enabled:=True ; etgl.Enabled:=True ; eidsup.Enabled:=True ; enmsup.Enabled:=True ; cbkdbuku.Enabled:=True ; enmbuku.Enabled:=True ; eharga.Enabled:=True ; ejumbel.Enabled:=True ; esubtot.Enabled:=True ; etotal.Enabled:=True ; end; procedure tform3.pasif; begin enotrans.Enabled:=false ; etgl.Enabled:=false ; eidsup.Enabled:=false ; enmsup.Enabled:=false ; cbkdbuku.Enabled:=false ; enmbuku.Enabled:=false ; eharga.Enabled:=false ; ejumbel.Enabled:=false ; esubtot.Enabled:=false ; etotal.Enabled:=false; end; procedure TForm3.FormActivate(Sender: TObject); begin gridbersih; pasif; bersih; etgl.Text:=datetostr(date()); end; procedure tform3.no_otomatis; var nomor:integer;
108
tgl,bln :string; begin tgl:=copy(etgl.Text,1,2); bln:=copy(etgl.Text,4,2); adopembelian.Refresh; If adopembelian.RecordCount = 0 Then begin enotrans.Text := 'TR' +tgl+bln+'-'+'001' ; end else begin adobuku.Last; nomor := strtoint(copy(adobuku['kodebuku'],5,2)); inc(nomor); if nomor<100 then enotrans.Text:='TR' + tgl + bln +'-'+ '00' + inttostr(nomor) else if nomor<10 then enotrans.Text:='TR' + tgl + bln +'-'+ '0' + inttostr(nomor) else enotrans.Text:='TR' + tgl + bln +'-' + inttostr(nomor); enotrans.Enabled:=false; end; end; procedure TForm3.btnaddClick(Sender: TObject); begin if btnadd.Caption='ADD' then begin btnadd.Caption:='CANCEL'; aktif ; bersih ; etgl.Text:=datetostr(date()); no_otomatis; end else begin btnadd.caption:='ADD'; pasif ; bersih; gridbersih; end; end; procedure TForm3.eidsupKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then if adosup.Locate('idsup',eidsup.Text,[]) then begin showmessage('Data Customer ada!'); enmsup.Text:=adosup['nmsup']; etelp.Text:=adosup['telp']; end else begin showmessage('Data Customer Tidak ada!'); exit; end; end; procedure TForm3.FormCreate(Sender: TObject); begin adobuku.First; while not adobuku.eof do
109
begin cbkdbuku.Items.add(adobuku['kodebuku']); adobuku.Next; end; end; procedure TForm3.cbkdbukuClick(Sender: TObject); begin if adobuku.locate('kodebuku',cbkdbuku.Text,[]) then begin enmbuku.Text:=adobuku['nmbuku']; eharga.Text:=adobuku['harga']; ejumbel.SetFocus; end; end; procedure TForm3.btnbeliClick(Sender: TObject); begin if adosem.locate('kodebuku',cbkdbuku.Text ,[]) then begin adosem.Edit; adosem['qty'] :=adosem['qty']+strtoint(ejumbel.Text); adosem['subtotal']:=adosem['subtotal']+strtoint(esubtot.Text); adosem.Post; end else begin adosem.Append; adosem['kodebuku']:=cbkdbuku.Text; adosem['nmbuku']:=enmbuku.Text; adosem['harga']:=strtoint(eharga.Text); adosem['qty']:=strtoint(ejumbel.Text); adosem['subtotal']:=strtoint(esubtot.Text); adosem.Post; end; hitung; cbkdbuku.Text:=''; enmbuku.Text:=''; eharga.Text:=''; ejumbel.Text:='0' ; esubtot.Text:='0' end; procedure TForm3.btnexitClick(Sender: TObject); begin close; end; procedure TForm3.btnsaveClick(Sender: TObject); begin adosem.First; while not adosem.eof do begin adodetail.Append; adodetail['notrans']:=enotrans.Text; adodetail['kodebuku']:=adosem['kodebuku']; adodetail['qty']:=adosem['qty']; if adobuku.locate('kodebuku',adodetail['kodebuku'] ,[]) then begin adobuku.Edit; adobuku['stok'] :=adobuku['stok']+adodetail['qty'];// menambahkan stok di tabel buku end; adodetail['subtot']:=adosem['subtotal']; adodetail.Post;
110
adosem.Next; end; adopembelian.append ; adopembelian['notrans']:=enotrans.Text; adopembelian['tgltrans']:=etgl.Text; adopembelian['idsup']:=eidsup.Text; adopembelian['total']:=strtofloat(etotal.Text); adopembelian['iduser']:=eiduser.Text; adopembelian.Post; showmessage('Data Telah Tersimpan'); bersih; pasif; gridbersih; end; procedure TForm3.ejumbelKeyPress(Sender: TObject; var Key: Char); begin if key =#13 then esubtot.Text:=inttostr(strtoint(ejumbel.Text)*strtoint(eharga.Text)); end; end.
111
BAB XV PEMBUATAN LAPORAN
Delphi 7 menyediakan dua library untuk membuat Report, yaitu Quick Report dan Rave Report. Quick report sudah menjadi bagian dari Delphi 3. Didalam Delphi 7, Quick Report akan digantikan oleh Rave Report. Ketika kita menginstall Delphi Quick Report tidak secara otomatis diinstall, sehingga kita perlu menginstallnya sendiri.
Didalam Modul matakuliah Praktek Algoritma dan Pemrograman II (Delphi) ini akan menggunakan Rave Report dan diharapkan mahasiswa dapat mengembangkan penggunaan Rave Report secara lebih kompleksitas lagi untuk menghasilkan Dokumen Output yang lebih baik lagi.
A. Pembuatan Report List
Dalam setiap pembuatan program aplikasi, kita tentu perlu untuk membuat Report List yang hanya menampilkan sebuah daftar dengan judul , Header dan Footer.
Langkah-langkah Pembuatan Report Delphi dengan kasus Penjualan 1. Masukkan Komponen RVProject dan RVDatasetConnection dari Menu Rave kedalam
Form Penjualan didalam Kasus I yang sudah dikerjakan sebelumnya.
Gambar 2.1 Form Transaksi
2. Koneksikan RVDatasetConnection ke masing-masing Tabel. No Komponen Properties 1 RVDatasetConnection1 Dataset : tbltrans 2 RVDatasetConnection2 Dataset : tbldetail 3 RVDatasetConnection3 Dataset : tblbrg 4 RVDatasetConnection4 Dataset : tblcust
3. Setelah dikoneksikan, Doble klik RV Project untuk membuka Layar Rave Report seperti tampilan dibawah ini:
RVProject RVDatasetConnection
112
Gambar 2.2 Tampilan Rave Report
4. Selanjutnya kita pilih tabel yang akan kita buat Laporan List dengan cara pilih File-New data Object
Gambar 2.3 Tampilan Data Connection
5. Pilih Menu Direct Data View, lalu pilih RVDatasetConnection3 untuk mengkoneksikan
ke Tabel Barang setelah itu Finish. 6. Setelah memilih koneksinya, selanjutnya kita membuat Laporan menggunakan Wizard
dengan cara : � Pilih Menu bar Tool-Report wizard-Simple Table. � Maka akan tampil layar seperti dibawah ini :
Report Component
Rave Report Project
Lembar Kerja Report
Next
113
� Pilih Field yang akan ditampilkan-pilih field yang akan dijadikan Unik yaitu
“Idbrg”
� Report Layout berfungsi untuk menentukan Bentuk tampilan Report � Selanjtunya disetiap Band akan dapat diganti Font nya masing-masing. � Tekan tombol Generate untuk membuat laporannya. Maka tampilannya akan
seperti dibawah ini :
7. Untuk Melihat Hasilnya dengan cara : File-Execute Report.
Gambar 2.4 Tampi
lan Laporan Barang
8. Setelah itu simpan Project Reportnya.
Next
114
B. Pembuatan Report Relational 1. Pilih Menu File-New Data Object 2. Pilih Database Connection-BDE. Selanjutnya akan tampil gambar dibawah ini :
3. Tentukan Alias yang sudah dibuat dan Driver nya “Standard”. Lalu OK 4. Selanjutnya kita buat Relasi antar tabel dengan cara : File-New data Object-Driver
data View-Database1(Sesuai koneksi yang sudah dilakukan di Perintah ke-3).
5. Selanjutnya Drag Tabel yang akan direlasikan kedalam Query Advanced Designer. Selanjutnya Ceklist Semua Field kecuali Idbrg pada Tabel Barang dan Nocust pada Tabel Customer. Lalu OK
115
6. Tools – Report Wizard - Simple Tabel – DriverDataView1. 7. Dengan langkah yang sama dengan pembuatan Report List akan menghasilkan
Tampilan Report seperti dibawah ini :
8. Silahkan di Design laporan seperti diatas.
9. Setelah mengambil contoh diatas dalam pembuatan Laporan, silahkan anda membuat dari Contoh Kasus Inventory dengan membuat Laporan Pembelian, Laporan Buku dan Laporan Supplier
116
BAB XVI
PEMBUATAN MENU UTAMA.
Sekarang tiba saatnya kita membuat Menu utama dari program yang sudah kita buat di
Kasus 1. Menu utama yang akan kita buat berbentuk menu pull-down yaitu menu yang
mempunyai pilihan (menu) utama berjajar secara mendatar dibagian atas jendela program. Setiap
menu utama, dapat mempunyai submenu yang berada pada kotak dibawah tiap menu utama dan
submenu tersebut diatur bertumpuk dalam kotak submenu. Submenu hanya akan ditampilkan jika
menu utama sedang terpilih atau aktif. Tiap submenu, nantinya dapat mempunyai sub-submenu
yang ditampilkan disebelah kanan submenu yang bersangkutan dalam kotak sub-submenu.
Demikian seterusnya.
Adapun cara pembuatan Menu utama sebagai berikut :
1. Bukalah Project Penjualan pada kasus 1 yang sudah dibuat.
2. File-New Form untuk membuat Form Menu Utama
3. Pada Menu Standard, pilih Component Main Menu dan diletakkan pada Form.
4. Ubah Property Name menjadi :Menuutama. Selanjutnya double klik pada Objek
Menuutama maka akan tampil Menu Desaigner. Silahkan Ganti Caption dari Submenu
dan Sub-subMenu seperti contoh dibawah ini :
SubMenu Sub-subMenu
Transaksi Transaksi Penjualan
Laporan Laporan Barang
Laporan Transaksi
Exit -
5. Setelah itu tutup Jendela Mneu Desaigner. Masukkan RaveProject dan
RaveDatasetConnection dan dengan langkah yang sama dengan Pembuatan Koneksi
pada saat pembuatan Laporan menggunakan Rave Report.
117
6. Lalu Double Klik pada setiap Sub-submenu untuk meletakkan Listing Programnya.
unit menutama;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, RpDefine, RpRave, RpCon, RpConDS, RpConBDE, DB, DBTables;
type
TForm5 = class(TForm)
MainMenu1: TMainMenu;
TRANSAKSI1: TMenuItem;
FormTransaksi1: TMenuItem;
Laporan1: TMenuItem;
LaporanBarang1: TMenuItem;
LaporanTransaski1: TMenuItem;
Exit1: TMenuItem;
RvProject1: TRvProject;
RvDataSetConnection1: TRvDataSetConnection;
RvDataSetConnection2: TRvDataSetConnection;
RvDataSetConnection3: TRvDataSetConnection;
RvDataSetConnection4: TRvDataSetConnection;
procedure FormTransaksi1Click(Sender: TObject);
procedure LaporanBarang1Click(Sender: TObject);
procedure LaporanTransaski1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
118
var
Form5: TForm5;
implementation
uses form_penjualan;
{$R *.dfm}
procedure TForm5.FormTransaksi1Click(Sender: TObject);
begin
form4.Show;
end;
procedure TForm5.LaporanBarang1Click(Sender: TObject);
begin
rvproject1.Execute;
rvproject1.ExecuteReport('Report2.rav');
end;
procedure TForm5.LaporanTransaski1Click(Sender: TObject);
begin
rvproject1.Execute;
rvproject1.ExecuteReport('Report3.rav');
end;
procedure TForm5.Exit1Click(Sender: TObject);
begin
close;
end;
end.
7. Selanjutnya silahkan membuat Menu Utama sesuai dengan Study Kasus Inventory
dengan ketentuan sebagai berikut :
SubMenu Sub-subMenu
Master Form Supplier
Form Buku
Transaksi Transaksi Pembelian
Laporan Laporan Buku
119
Laporan Supplier
Laporan Pembelian
Exit -
120
BAB XVII
PEMBUATAN LOGIN DAN PACKET PROGRAM
17.1 Perancangan Form Startup
� Desain Form
� Form Pada saat dijalankan
� Coding
procedure TForm9.Timer1Timer(Sender: TObject); begin ProgressBar1.StepBy(1); ProgressBar1.Step:=ProgressBar1.Step+1 ; If ProgressBar1.Step =100 then begin form1.Show; form9.Hide; end end;
121
17.2 Perancangan Form Login
� Desain Form
� Form pada saat dijalankan
� Coding
var Form1: TForm1; y:Integer; id:string; implementation uses ustartup,umenu_utama, StrUtils; {$R *.dfm} procedure Tform8.BtnexitClick(Sender: TObject); begin if(Application.MessageBox('MO keluar y?',MB_YESNO+MB_ICONWARNING)=idyes) then begin close; form9.Close; end else MessageDlg('ga jadi deh',mtInformation,[mbok],0 ) end; procedure Tform8.FormActivate(Sender: TObject); begin ADOuser.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ 'inventory.mdb' +';Persist Security Info=False;'; ADOuser.TableName:='tbluser'; ADOuser.Active:=True; edit1.SetFocus; end;
122
procedure TForm1.Btnlogin1Click(Sender: TObject); var cepat:Longint; begin if ADOuser.Locate('nama',edit1.Text,[]) then begin if ADOuser.Locate('password',edit2.Text,[]) then begin id:= ADOuser.FieldValues['hak_akses']; if id='admin' then begin MessageDlg('nama user dan password benar, anda berhak masuk',mtInformation,[mbok],0 ); MessageDlg('Hak Akses adalah ADMIN',mtInformation,[mbok],0 ); cepat := 1; While form8.Left + form8.Width < Screen.Width do form8.Left := form8.Left + cepat; While form8.Top – form8.Height < Screen.Width do form8.Top := form8.Top + cepat; formmenuutama.Show; end else begin MessageDlg('nama user dan password benar, anda berhak masuk',mtInformation,[mbok],0 ); MessageDlg('Hak Akses adalah BIASA',mtInformation,[mbok],0 ); cepat := 1; While form8.Left + form8.Width < Screen.Width do form8.Left := form8.Left + cepat; While form8.Top – form8.Height < Screen.Width do form8.Top := form8.Top + cepat; formmenuutama.Show; formmenuutama.MASTER1.Enabled:=False; //mentidakaktifkan salahsatu menu end end else if edit2.Text='' then begin MessageDlg('password belum di isi',mtInformation,[mbok],0 ); edit2.SetFocus; end else begin if(Application.MessageBox('Password yang anda masukan salah','INFO',MB_OK+MB_ICONWARNING)=IDOK) then y:=y+1; begin if y=1 then begin MessageDlg('anda memiliki 2 kesempatan lagi',mtInformation,[mbok],0 ); edit2.SetFocus; end else if y=2 then begin MessageDlg('anda memiliki 1 kesempatan lagi',mtInformation,[mbok],0 ); edit2.SetFocus; end else if y=3 then begin MessageDlg('Maaf anda tidak berhak masuk',mtInformation,[mbok],0 ); close; end
123
end end end else if (edit1.Text='')and(edit2.Text='')then begin MessageDlg('nama user dan password masih kosong',mtInformation,[mbok],0 ); edit1.SetFocus; end else begin MessageDlg('mungkin nama user anda salah atau belum di input, coba deh lagi',mtWarning,[mbok],0 ); edit1.SetFocus; end end; END.
17.3 Membuat Packet Program
Setelah Itu kita dapat menjalankan Program yang sudah di EXE yang secara otomatis
terbentuk pada folder penyimpanan :
124
BAB XVIII
PRESENTASI TUGAS PROJECT PROGRAM
MENGGUNAKAN BORLAND DELPHI
18.1 Kriteria Tugas
Mahasiswa WAJIB membuat suatu Project Program dengan menggunakan
Pemrograman Delphi dengan Software Database Access 2003 dan Laporan Rave Report. Dalam
pembuatan program juga harus disertakan tentang dokumen masukan dan keluaran ,
Normalisasi, Spesifikasi file, Pengkodean, HIPO dan Flowchart untuk mendukung Manual
Book yang WAJIB dibuat oleh Mahasiswa.
Jenis tugas yang diberikan berupa tugas Kelompok, dimana dalam 1 kelompok terdiri
dari 5 – 6 mahasiswa (tergantung kapasitas mahasiswa). Penilaian dilakukan pada saat
presentasi manual book dan demo program didepan Instruktur terkait.
Bahan tugas yang dikumpulkan ke Instruktur terkait adalah Manual book dan CD
Program yang terdiri dari Bahan Presentasi dan Project Program.
18.2 Konten Tugas
Untuk Isi konten Manual Book yang akan dibuat untuk mendukung pembuatan Project
programa sebagai berikut :
Bab I : Pendahuluan
1.1. Latar Belakang
1.2. Maksud Dan Tujuan
1.3. Metode Penelitian
1.4. Ruang Lingkup
Bab II : Pembahasan
2.1. Landasan Teori
A. Program
B. Normalisasi
C. Pengkodean
D. HIPO
E. Flowchart
2.2. Analisa Kasus ( Pembahasan / Perancangan)
A. Dokumen Masukan dan Keluaran
B. Normalisasi
C. Spesifikasi File
D. Pengkodean
E. HIPO
F. Flowchart
125
BAB III : Penutup
3.1. Kesimpulan
3.2. Saran
Daftar Pustaka
Lampiran
18.3 Kriteria Penilaian
1. Penilaian 1 Persiapan dan Presentasi ( 20 %)
2. Penilaian 2 Pemahaman Individu ( 50 %)
3. Penilaian 3 Hasil Karya Kelompok ( 30 %)
18.4 Contoh Project
1. Pembayaran
2. Simpan Pinjam
3. Pembayaran Angsuran
4. Penggajian
5. Peminjaman – Pengembalian
6. Penerimaan Karyawan
7. Absensi Karyawan
8. Persediaan barang