MODUL PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBJECT
(PBO-1)
DELPHI
Disusun Oleh :
Gunawan Rudi Cahyono, ST. MT.
Sekolah Tinggi Manajemen Informatika Komputer
(STMIK)
Banjarbaru
Diktat Delphi
BAB I
PENDAHULUAN
(IDE Delphi dan OOP)
Delphi adalah suatu program berbasis bahasa Pascal yang berjalan dalam lingkungan Windows. Delphi telah memanfaatkan suatu teknik pemrograman yang disebut RAD yang telah membuat pemrograman menjadi lebih mudah. Delphi adalah suatu bahasa pemrograman yang telah memanfaatkan metode pemrograman Object Oriented Programming (OOP).
Lingkungan kerja Borland Delphi dapat dilihat pada gambar di bawah ini.
Component Palette Unit/Source Code Form Object Inspector
Fungsi dari elemen-elemen di atas adalah :
- Object Inspector : suatu window yang berguna untuk mengatur suatu object baik properti, events dan method.
- Form : Digunakan sebagai layar/window yang digunakan sebagai lembar kerja kita. Di form-lah semua komponen seperti tombol dan komponen lainnya disimpan.
- Window Unit/Source Code : Window/layar yang berisi perintah-perintah yang akan dieksekusi oleh komputer. Di layar inilah kita mengisikan program-program.
- Component Palette : Layar yang berisikan komponen-komponen yang dipakai dipakai dalam program kita.
Diktat Delphi
Pengantar Object Oriented Programming (OOP)
Perbedaan konsep pemrograman berbasis objek dengan konsep pemrograman biasa adalah sebagai berikut :
1. Dalam pemrograman biasa, suatu benda hanya memiliki properti (ciri) yang membentuk dirinya. Contoh : Objek manusia memiliki nama, tinggi, berat, warna kulit dan lain-lain.
2. Dalam pemrograman berorientasi objek, suatu benda tidak hanya memiliki properti (ciri) tetapi juga memiliki method dan event.
Contoh: Objek manusia tidak hanya memiliki properti nama, tinggi, berat, warna kulit tetapi juga mempunyai metode / langkah yang dapat dikerjakan dan juga event (suatu kejadian yang bisa terjadi pada objek).
¾ Event dapat berupa : Event ketika lapar, ketika haus, ketika ngantuk dan lain-lain. ¾ Method dapat berupa : Makan, minum, tidur.
Suatu method bisa saja dipanggil ketika suatu event terjadi. Contoh ketika manusia lapar, maka dia akan melakukan method makan.
Contoh nyata dalam pemrograman adalah sebagai berikut : Misalkan program yang kita buat memiliki sebuah form dan sebuah tombol. Kita dapat memberikan suatu perintah ke masing-masing event dari kedua objek tersebut. Misalkan ketika form diklik, maka warna dari form berganti menjadi merah, dan ketika tombol ditekan maka program akan ditutup.
Untuk membuat program tersebut maka lakukan langkah-langkah sebagai berikut :
1. Buat suatu aplikasi baru dengan mengklik menu File – New Application. Sehingga akan muncul suatu form kosong yang akan kita beri program.
2. Kemudian tempatkan komponen (objek) Button yang ada pada Component Palette Standar ke form. Caranya : Klik Button kemudian geserkan kursor ke form dan kemudian klik ditempat yang diinginkan. Lihat gambar di bawah ini.
3. Sekarang klik form kemudian klik tab event di window object inspector dan pilih tab Event
onclick. Double klik event tersebut. Maka akan muncul suatu procedure/method kosong yang
harus diisi sesuai keinginan. Contoh di bawah ini akan mengganti warna (properti color) dari Form1 menjadi warna merah.
Isilah programnya sebagai berikut :
procedure TForm1.FormClick(Sender: TObject); begin
Form1.Color:=clred; end;
Keterangan program :
- Tanda titik (.) adalah tanda pemisah antara objek dengan propertinya. - Setiap akhir dari perintah harus diberi perintah titik koma (;)
- Pengisian nilai ke suatu variabel atau properti menggunakan simbol titik dua sama dengan (:=).
4. Sekarang klik objek tombol kemudian klik tab event pada object inspector dan pilih event onclick. Double klik atau tulis nama fungsi yang akan digunakan sebagai method yang akan dikerjakan ketika tombol diklik. Kemudian tulis perintah untuk menutup form sebagai berikut :
procedure TForm1.Button1Click(Sender: TObject); begin
Form1.Close; end;
5. Tekan tombol F9 atau menu Run – Run atau tekan tombol untuk menjalankan program.
Diktat Delphi
BAB II
PROGRAM PERTAMA
Kasus :
Buatlah sebuah program menggunakan Delphi untuk menghitung penjualan barang. Data yang diinputkan adalah nama barang, harga barang, dan quantitas penjualan. Program tersebut harus dapat menghasilkan data sub total, diskon sebesar 10% dari subtotal dan total penjualan.
Solusi :
Dari kasus di atas, maka kita dapat menyusun form seperti di bawah ini.
Properti-properti utama yang bisa diatur untuk tiap komponen di atas adalah :
Properti-properti Form
BorderIcon Border icon mempunyai pilihan sebagai berikut :
- BiSystemMenu : Apakah form akan memakai icon maximize, minimize dan close. Isi properti ini dengan true untuk mengaktifkannya.
- BiMaximize : Apakah form akan memakai icon Maximize - BiMinimize : Apakah form akan memakai icon Minimize - BiHelp : Apakah form akan memakai icon help.
BorderStyle Properti ini memiliki 6 nilai, yaitu :
- BsDialog : Form hanya akan memiliki icon close - BsNone : Form tidak mempunyai garis pinggir
- BsSingle : Form bisa diminimize, dimaximize tapi tidak bisa dibesarkan (resize)
- BsSizeable : Form default, bisa diminimize, maximize dan diperbesar. - BsToolWindow : Judul form lebih kecil dan tidak bisa diperbesar. - BsSizeToolWin : Sama dengan bsToolWindow bisa diperbesar. BorderWidth Lebar border untuk form ke bidang clientnya.
Caption Judul dari form. Bisa diisi sesuai keinginan karena tipenya string. Color Warna background dari form.
Catatan :
Coba klik pilihan pada properti color maka akan muncul beberapa pilihan. Pilihan dibawah clWhite adalah warna-warna yang dipakai dalam window (desktop-properties-apperance), seperti warna background desktop, dan lain-lain. Cursor Kursor apa yang akan tampil ketika cursor mouse berada diatas form (objek). Font Font standar yang akan digunakan oleh komponen-komponen yang berada dalam
form tersebut. Untuk memilih font klik tombol elipsis (…) Height Tinggi dari form secara keseluruhan
Hint Pesan apa yang akan ditampilkan ketika mouse diam diatas form. Untuk menampilkan hint maka properti ShowHint harus mempunyai nilai true.
Label
Button Edit
Diktat Delphi
Left Posisi kiri form dari desktop(dalam pixel).
Name Ini adalah properti yang paling penting. Name bukan caption. Name adalah nama yang digunakan untuk memanggil/menggunakan objek. Nama object tidak boleh terpisah.
Position Posisi menampilkan form ketika pertama kali ditampilkan. Top Posisi atas form dari desktop
Visible Apakah form akan ditampilkan atau tidak.Defaultnya adalah false Width Lebar form secara keseluruhan
WindowState Kondisi state apakah maximize, minimize, atau normal
Properti-Properti Label ( )
Align Peletakan objek terhadap parent (form). Nilai yang dimungkinkan adalah : - AlClient : objek diletakan sebesar bidang sisa dari parentnya.
- AlRight : objek diletakan di posisi kanan form - AlLeft : objek diletakan di posisi kiri form - AlTop : objek diletakan di posisi atas form - AlBottom : objek diletakan di posisi bawah form - AlNone : objek diletakan sesuai peletakan waktu desain
Alignment Justifikasi dari text apakah rata kiri (leftJustify), rata kanan (rightJustify) dan tengah (center).
Autosize Besar bidang objek akan sesuai dengan besarnya caption Caption Text (kata) yang akan ditampilkan dalam label
Color Warna background dari objek
Font Font yang digunakan dalam objek. Defaultnya adalah font parent. Name Nama dari objek. Ingat Name berbeda dengan Caption
Transparent Apakah warna objek akan dibuat transparan (properti color tidak dipakai). WordWarp Jika diisi true, maka jika caption telah melebihi batas, maka akan menggulung ke
baris berikutnya.
Properti-Properti Edit
( )
BorderStyle Apakah objek akan menggunakan garis pinggir.
CharCase Apakah data yang dimasukan akan dicapitalkan (uppercase) atau dihurufkecilkan (lowercase) atau normal.
Color Warna background dari objek.
Ctr3D Apakah akan dibuat 3D atau flat / datar. MaxLength Panjang maksimal data yang akan dimasukan.
PasswordChar Karakter apa yang akan ditampilkan ketika objek ini digunakan untuk memasukan password contoh *. Isi properti ini dengan #0 jika objek tidak digunakan untuk membaca password.
ReadOnly Jika diisi true, maka user tidak bisa menulis/mengubah isi objek.
Text Isi tulisan dari objek ini. Edit tidak mempunyai caption, sehingga isi dari yang ditulis diedit berada di properti ini.
Visible Isi properti ini dengan true jika objek ingin ditampilkan.
Properti-properti dari Button ( )
Properti-properti dari button sebenarnya sama dengan properti-properti objek yang telah dijelaskan, tetapi ada beberapa properti yang berbeda yaitu properti :
ModalResult Properti ini biasanya digunakan ketika kita membuat program yang memiliki banyak form. Properti ini digunakan untuk mengecek tombol apa yang diklik ketika suatu form ditutup.
Cancel Jika properti ini diisi dengan nilai True, maka ketika ada penekanan tombol Escape dalam form tersebut maka tombol tersebut akan dieksekusi.
Default Jika properti ini diisi dengan nilai True, maka ketika ada penekanan tombol Enter dalam form tersebut maka tombol tersebut akan dieksekusi.
Diktat Delphi
Setelah form selesai dibuat, maka langkah berikutnya adalah mengisi event OnClick pada tombol Hitung. Perintah untuk event OnClick adalah sebagai berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
procedure TForm1.ThitungClick(Sender: TObject); var Harga:Real; Qty:Integer; SubTotal,Diskon,Total:Real; begin Harga:=StrToFloat(EHarga.text); Qty:=StrToint(EQty.text); Subtotal:=Harga*Qty; Diskon:=0.1 * Subtotal; Total:=Subtotal-Diskon; ESubTotal.text:=FloatToStr(SubTotal); EDiskon.Text:=FloatToStr(Diskon); ETotal.Text:=FloatToStr(Total); end; Keterangan Program :
- Baris 1 : pendeklarasian method/procedure ThitungClick yang merupakan method yang dipanggil ketika tombol Hitung di klik.
- Baris 2 : perintah var digunakan untuk mengawali pendeklarasian variabel-variabel yang akan digunakan dalam program.
- Baris 3-5 : pendeklarasian variabel dan tipenya. Dengan perincian variabel harga bertipe Real karena harga bisa berupa nilai pecahan, variabel Qty bertipe Integer karena kuantitas penjualan tidak boleh bilangan pecahan dan harus bilangan bulat (integer), variabel Subtotal bertipe real karena nilai variabel tersebut berasal dari perkalian antara harga yang bertipe real dan qty yang bertipe integer (perkalian integer dengan real menghasilkan nilai real), hal yang sama juga terjadi pada variabel Diskon dan variabel Total.
Jenis-jenis tipe data dapat dilihat di bawah ini. Tipe-Tipe Data :
1. Bilangan Bulat
Tipe-tipe bilangan bulat adalah suatu tipe data yang hanya menampung bilangan bulat saja. Tipe data tersebut diantaranya : integer, byte, word, smallint.
Tipe Data Range Format
Shortint –128..127 signed 8-bit
Smallint –32768..32767 signed 16-bit
Longint –2147483648..2147483647 signed 32-bit
Int64 –2^63..2^63–1 signed 64-bit
Byte 0..255 unsigned 8-bit
Word 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit
2. Bilangan Pecahan
Tipe-tipe bilangan pecahan adalah suatu tipe data bilangan yang bisa menampung bilangan pecahan.
Tipe-tipe data tersebut diantaranya : Real, Double, Single. 3. String
Tipe data ini menampung data huruf yang banyak seperti untuk nama, alamat dan lain-lain. Tipe data tersebut adalah : String.
Untuk pengisian suatu data bertipe String, maka harus diapit oleh tanda apostrop (‘), kecuali kalau data tersebut berasal dari data / variabel lain.
Contoh :
A:=’Bandung’;
B:=A; // B berisi string Bandung
Diktat Delphi
Aturan-aturan operasi perhitungan :
- Jika bilangan bulat dioperasikan dengan bilangan bulat maka akan menghasilkan bilangan bulat.
- Bilangan bulat dioperasikan dengan bilangan pecahan maka hasilnya adalah bilangan pecahan.
- String tidak bisa dioperasikan dengan suatu bilangan kecuali telah dikonversi ke tipe data bilangan.
Jika nilai yang dimasukan telah melebihi nilai maksimalnya, maka nilainya akan berputar ke arah minimalnya dan jika nilai yang dimasukan lebih kecil dari nilai minimalnya maka akan berputar ke arah nilai maksimalnya.
- Baris 6 : Perintah Begin yang menandai awal dari suatu procedure THitungClick.
- Baris 7 : Pengisian variabel harga yang berasal dari Eharga (edit box untuk pengisian harga). Karena properti Text dari Eharga bertipe string dan variabel harga bertipe real maka properti
Text dari Eharga harus dikonversikan menjadi sebuah bilangan real/pecahan (float) dengan
perintah StrToFloat.
- Baris 8 : Pengisian variabel Qty dari edit EQty. Karena terjadi ketidakcocokan tipe, maka properti
Text dari EQty harus dikonversikan menjadi sebuah bilangan bulat sesuai dengan tipe data
variabel Qty. Pengkonversian dari suatu string ke bilangan integer adalah dengan menggunakan perintah StrToInt.
- Baris 9 : Perhitungan variabel Subtotal yang berasal dari perkalian antara variabel Harga dan variabel Qty.
- Baris 10 : Perhitungan variabel Diskon yang berasal dari 10 % dari Subtotal. - Baris 11 : Perhitungan variabel Total yang berasal dari Subtotal – Diskon.
- Baris 12 : Menampilkan data Subtotal ke dalam edit ESubtotal. Properti yang diisi adalah properti Text yang bertipe string. Karena Subtotal bertipe real dan properti Text bertipe string maka harus ada proses konversi data dari real (float) ke string dengan perintah FloatToStr. - Baris 13 : Menampilkan data Diskon ke dalam edit EDiskon. Prosesnya mirip dengan Baris 12. - Baris 14 : Menampilkan data Total ke dalam edit ETotal. Prosesnya mirip dengan Baris 13. - Baris 15 : Perintah End yang menadai akhir dari procedure THitungClick.
Setelah event OnClick tombol Hitung telah diisi, sekarang bagian pengisi OnClick pada tombol Ulang. Programnya adalah sebagai berikut :
procedure TForm1.TUlangClick(Sender: TObject); begin
Enama.Text:=''; {mengosongkan edit ENama} EHarga.Text:='0'; {me-nol-kan edit Eharga} EQty.Text:='0'; {me-nol-kan edit EQty}
ESubTotal.Text:='0';//me-nol-kan edit ESubTotal EDiskon.Clear; // mengosongkan edit EDiskon ETotal.Clear; // mengosongkan edit ETotal
ENama.SetFocus; // memindahkan kursor ke edit ENama end;
Untuk program pada tombol Keluar, programnya adalah sebagai berikut :
procedure TForm1.TKeluarClick(Sender: TObject); begin
Close; // Menutup Form end;
Setelah semua ditulis, sebaiknya kita simpan dulu program tersebut. Langkah-langkah untuk menyimpan suatu program adalah :
- Simpan Unit/Form dengan mengklik menu File – Save atau File – Save As. Isi nama filenya sesuai dengan fungsi dari formnya. Contoh : UUtama, ULatihan1.
- Simpan pula file Projectnya dengan mengklik menu File – Save Project As. Isi nama file projectnya sesuai dengan kegunaan programnya. Contoh : Penjualan, SIAKAD, HangMan.
- Jika suatu program telah disimpan dan kemudian diedit kembali maka langkah yang dilakukan untuk penyimpanan adalah dengan menekan menu File – Save All yang akan menyimpan semua file yang mengalami perubahan.
Langkah berikutnya adalah menjalankan program tersebut dengan menekan tombol F9 atau dengan mengklik menu Run – Run atau mengklik tombol Run.
BAB III
PERCABANGAN
( If, If Else, Case Of)
Perintah if digunakan untuk menentukan perintah mana yang akan dikerjakan ketika suatu kondisi terjadi.
Bentuk baku perintah if adalah sebagai berikut :
if (kondisi1) then
Kondisi 1, Kondisi 2 adalah suatu pernyataan yang menghasilkan kondisi benar (true) atau salah(false). Contoh kondisi : if (a>=5) then begin perintah; end else if (a<5)then begin perintah; end; perintah else if (kondisi2) begin perintah; perintah; end else begin perintah; perintah; end;
Aturan-aturan penulisan program yang menggunakan perintah IF :
1. Jika suatu kondisi tercapai (bernilai benar), maka If hanya mengenal satu perintah berikutnya. 2. Kalau suatu perintah if ingin mengerjakan lebih dari 1 perintah, maka gunakan perintah Begin
dan End;
3. Sebelum Else jangan memakai titik koma. Karena titik koma merupakan tanda akhir dari suatu perintah.
Contoh kasus:
Sebuah toko mempunyai tabel harga dan diskon seperti berikut :
Kode Nama Barang Harga Barang
A01 Speaker 50000
B02 Mouse 25000
C03 Harddisk 750000
D04 Mouse Pad 5000
Sub total Diskon
>=100000 15% >=50000 10% >=25000 5% <25000 0% - Buatlah Form
- Tempatkan buah ComboBox Isi properti sebagai berikut :
Items : A01 B02 C03 D04
Text : {dikosongkan saja} Name : CBKode
- Kemudian tambahkan komponen lain sehingga terbentuk form seperti berikut : .
- Tulislah program pada event onclick tombol Hitung
procedure TForm1.THitungClick(Sender: TObject); var
NamaBarang:String; Quantity:integer;
Harga,Total,Subtotal,Diskon:real; begin
If CBKode.Text='A01' then // Kalau Kode = A01 begin
NamaBarang:='Speaker'; //Pengisian String diapit ' ' Harga :=50000; // Pengisian Harga
end else
if CBKode.Text='B02' then {Kalau Kode = B02} begin
NamaBarang:='Mouse'; Harga :=25000; end
else
if CBKode.Text='C03' then {Kalau Kode = C03 } begin
NamaBarang:='HardDisk'; Harga :=750000; end
else
if CBKode.Text='D04' then {Kalau Kode = D04} begin
NamaBarang:='Mouse Pad'; Harga :=5000;
end
Catatan :
Untuk tombol gunakan BitBtn yang ada di Component Palette Additional.
Untuk mengisikan gambar pada tombol, gunakan properti Glyph kemudian pilih Load dan pilih file gambar yang ada di folder :
C:\Program Files \ commonFiles\ BorlandShared \ Images \ Buttons Contoh Kasus :
Tombol Hitung : Calculate.bmp Tombol Ulang : Retry.bmp Tombol Keluar : Picture.bmp
else // jika kode tidak diketahui begin
NamaBarang:='Tidak Ada'; Harga :=0;
end;
Quantity:=StrToInt(EQTY.Text);// Ambil Quantity dari EQty SubTotal:=Harga*Quantity; // Hitung Subtotal
if SubTotal>=100000 then // Jika Subtotal >= 100000 maka Diskon:=0.15*SubTotal // diskon = 15%
else
if SubTotal>=50000 then // Jika subtotal >=50000 maka Diskon:=0.10 * SubTotal // diskon = 10%
else
if SubTotal>=25000 then // Jika subtotal>=25000 maka Diskon:=0.05 * SubTotal // diskon = 5%
else // jika subtotal < 25000 Diskon:=0; // diskon = 0%
Total:=SubTotal - Diskon; // hitung total
ENama.Text:=NamaBarang; // tampilkan nama barang EHarga.Text:=FloatToStr(Harga); // tampilkan harga
ESubTotal.Text:=FloatToStr(SubTotal); // tampilkan subtotal EDiskon.Text:=FloatToStr(Diskon); //tampilkan diskon
ETotal.Text:=FloatToStr(Total); // tampilkan total end;
- Untuk event Onclick pada tombol Ulang, silahkan diisi perintah berikut :
procedure TForm1.TUlangClick(Sender: TObject); begin CBKode.Text:=''; ENama.Text:=''; EHarga.Text:='0'; ESubTotal.Text:=''; EDiskon.Text:=''; ETotal.Text:=''; CBKode.SetFocus; end;
- Untuk event OnClick pada tombol Tutup isilah dengan perintah:
procedure TForm1.TKeluarClick(Sender: TObject); begin
Close; end;
Operator-operator boolean :
Simbol Keterangan Contoh
= Sama dengan (a = 7)
>= Lebih besar sama dengan (a >= 7)
> Lebih besar (a > 7)
<= Lebih kecil sama dengan (a <= 7)
< Lebih kecil (a < 7)
<> Tidak sama dengan (a <> 7) Not Tidak / Invers Not (a<>7)
And Operator dan (a = 7)And(b =5)
Or Operator (a = 7) Or (b =5)
Komponen RadioButton (
)
Radiobutton adalah suatu komponen yang digunakan untuk pemilihan suatu kondisi dari beberapa kondisi yang ada. Kondisi yang bisa dipilih hanya ada 1 buah.
Properti yang menandakan bahwa suatu radiobutton dipilih adalah properti Checked. Jika properti checked suatu Radiobutton berisi true, maka berarti Radiobutton tersebut dipilih.
Contoh kasus :
1. Buatlah form seperti berikut : Caranya adalah sebagai berikut : - Tempatkan sebuah group box ( )
- Tempatkan 3 buah radiobutton kemudian ganti namanya sesuai dengan keperluan. Contoh untuk radiobutton Jakarta beri namanya RBJakarta untuk mempermudah dalam program. - Tempatkan sebuah Button.
2. Isi event onclick dari button sebagai berikut :
Procedure TForm1.Button1Click(Sender:TObject) begin
if (RBJakarta.Checked=true) then
ShowMessage(‘Jurusan yang dipilih adalah jakarta’) else
if (RBYogya.Checked=true) then
ShowMessage(‘Jurusan yang dipilih adalah Yogyakarta’) else
if (RBSurabaya.Checked=true) then
ShowMessage(‘Jurusan yang dipilih adalah Surabaya’); End;
ShowMessage adalah suatu perintah untuk menampilkan pesan dengan ketentuan adalah sebagai
berikut :
ShowMessage(Pesan:String)
Contoh :
ShowMessage(‘Jurusan yang dipilih adalah jakarta’);
Hasilnya adalah sebagai berikut :
3. Coba run progam.
Komponen Radiogroup (
)
Radiogroup adalah suatu komponen yang digunakan untuk memilih sebuah option dari beberapa pilihan (sifatnya seperti radiobutton) hanya dengan satu buah komponen radiogroup saja.
Tabel Properti dari RadioGroup
Properti Keterangan
Columns Pilihan mau dibuat berapa kolom Items Daftar pilihan yang akan ditampilkan
ItemIndex Item ke berapa yang dipilih. Jika ItemIndex berisi 0 maka yang dipilih adalah pilihan ke-1, jika ItemIndex berisi 1 maka yang dipilih adalah pilihan ke-2 dan seterusnya. Jika ItemIndex berisi dengan –1 maka berarti tidak ada yang dipilih.
Pada program sebelumnya, kita membuat suatu pemilihan dengan membuat sebuah group box dan 3 buah radiogroup. Sekarang kita akan membuat suatu pemilihan hanya dengan menggunakan sebuah radiogroup saja.
Caranya :
1. Buat form seperti berikut
- Tempatkan sebuah radiogroup, kemudian ganti namanya menjadi RGKelas dan captionnya diisi dengan Kelas.
- Isi properti Items dengan
Eksekutif Bisnis Ekonomi
- Isi properti ItemIndex dengan 0 agar pilihan default adalah Eksekutif.
2. Isi tombol Oncliknya dengan perintah berikut :
Procedure TForm1.Button2Click(Sender:TObject) begin
if (RGKelas.ItemIndex=0) then
ShowMessage(‘Kelas adalah Exekutif’) else
if (RGKelas.ItemIndex=1) then
ShowMessage(‘Kelas adalah Bisnis’) else
if (RGKelas.ItemIndex=2) then
ShowMessage(‘Kelas adalah Ekonomi’); End;
Atau :
Procedure TForm1.Button2Click(Sender:TObject) begin
case RGKelas.ItemIndex of
0:ShowMessage(‘Kelas adalah Exekutif’); 1:ShowMessage(‘Kelas adalah Bisnis’); 2:ShowMessage(‘Kelas adalah Ekonomi’); end;
end;
3. Run Program
Contoh Kasus :
Sebuah Perusahaan angkutan “Jalan Terus” memiliki ketentuan harga seperti berikut :
Eksekutif Bisnis Ekonomi
Jakarta 70000 40000 10000
Solo 80000 50000 20000
Surabaya 90000 60000 30000
Karena ada masa promosi maka khusus untuk Surabaya Ekonomi atau Solo Eksekutif terdapat diskon 10%.
Untuk lebih jelasnya, ikutilah cara berikut : 1. Buat suatu aplikasi baru dengan File-New Application
2. Tempatkan sebuah Groupbox kemudian ganti property Caption dengan Jurusan.
3. Tempatkan tiga buah RadioButton pada GroupBox tersebut kemudian ganti properti-propertinya seperti berikut : RadioButton1 Name Caption : : RBJakarta Jakarta RadioButton2 Name Caption : : RBSolo Solo RadioButton3 Name Caption : : RBSurabaya Surabaya
4. Tempatkan sebuah RadioGroup kemudian ganti propertinya seperti berikut : Name Items ItemIndex : : : RGKelas Eksekutif Bisnis Ekonomi 0
5. Tempatkan 2 buah Edit untuk pengisian data banyaknya tiket dan untuk menampilkan hasil dari perhitungan. Gantilah properti-propertinya seperti berikut :
Edit1 Edit2 Name Name : : ETiket ETotal
6. Tempatkan 3 buah tombol untuk tombol perhitungan, reset, dan tombol keluar. Kemudian atur form seperti form berikut :
7. Untuk program selengkapnya dari kasus diatas adalah sebagai berikut :
procedure TForm1.THitungClick(Sender: TObject); var jmltiket,harga:integer; total:real; begin jmltiket:=StrToInt(ETiket.text); if (RBJakarta.Checked=true)and(RGKelas.ItemIndex=0) then harga:=70000 else if (RBJakarta.Checked=true)and(RGKelas.ItemIndex=1) then harga:=40000 else if (RBJakarta.Checked=true)and(RGKelas.ItemIndex=2) then harga:=10000 else if (RBSolo.Checked=true) then begin if RGKelas.ItemIndex=0 then harga:=80000 else if RGKelas.ItemIndex=1 then harga:=50000 else if RGKelas.ItemIndex=2 then harga:=20000; end GroupBox RadioButton RadioGroup
else if (RBSurabaya.Checked=true) then begin case RGKelas.ItemIndex of 0:Harga:=90000; 1:Harga:=60000; 2:Harga:=30000; end; end; total:=harga*jmltiket; ETotal.Text:=FormatFloat('Rp #,##0.00',total); end;
8. Untuk perhitungan diskon, sisipkan program berikut setelah perhitungan total :
if ((RBSurabaya.checked=true)and (RGKelas.ItemIndex=2) ) // Surabaya Ekonomi or // atau ((RBSolo.Checked=true)and (RGKelas.ItemIndex=0) ) then //Solo Bisnis total:=0.9*total;
9. Untuk event OnClick dari tombol Reset, programnya adalah sebagai berikut :
procedure TForm1.TResetClick(Sender: TObject); begin RBJakarta.Checked:=true; RGKelas.ItemIndex:=0; ETiket.Text:='0'; EJmlTotal.Text:='0'; end; 10. Run Program.
Komponen Check Box (
)
CheckBox ( ) adalah komponen untuk pemilihan option dimana option yang dipilih bisa lebih dari satu buah.
Properti-properti CheckBox
Property Keterangan
Caption Tulisan yang ada di Checkbox
Checked Jika berisi true berarti checkbox yang bersangkutan dipilih.
Contoh kasus :
Rental Internet “Surf The World” mempunyai harga rental perjam Rp. 3500, dan juga menyediakan fasilitas pemesanan makanan dan minuman. Daftar yang bisa dipesan adalah sebagai berikut :
Menu Harga
Nasi goreng 3500
Coca Cola 1250
Teh Botol 1000
Buatlah program untuk menghitung berapa yang harus dibayar. Form yang dibuat :
Catatan :
Untuk Kotak, gunakan komponent Panel yang ada di Standar dan untuk Gambar gunakan komponen Image yang ada di additional.
Properti-properti dari Panel :
Properti Keterangan
Caption Tulisan yang ada di Panel
Alignment Peletakan dari Caption, di kiri, tengah atau kanan
BorderWidth Lebar bingkai panel antara kotak luar dengan kotak dalam BevelInner Bentuk kotak dalam
BevelOuter Bentuk kotal luar
Color Warna Panel
Properti-properti dari Image :
Properti Keterangan
AutoSize Jika berisi true maka bidang gambar mengikuti besarnya gambar. Picture Isi gambar yang ada di image
Stretch Jika berisi true maka seluruh gambar akan tampil dalam bidang yang ditentukan, besar gambar menyesuaikan besarnya bidangnya.
Center Jika berisi true maka gambar akan ditampilkan di tengah bidang gambar.
Program untuk hitung onclick adalah seperti berikut :
procedure TForm1.THitungClick(Sender: TObject); const // membuat suatu nilai konstanta
HargaRental=3500; HargaNasGor=3500; HargaCocaCola=1250; HargaTehBotol=1000; var lama:real; TotalRental,TotalMakanMinum,GrandTotal:Real; TotalNasgor,TotalCocaCola,TotalTehBotol:real; begin Lama:=StrToFloat(ELama.Text); TotalRental:=Lama * HargaRental; if CBNasgor.checked=true then TotalNasgor:=StrToInt(ENasGor.text) * HargaNasgor else TotalNasgor:=0; if CBCoca.checked=true then TotalCocaCola:=StrToInt(ECoca.text) * HargaCocaCola else TotalCocaCola:=0; if CBTeh.checked=true then TotalTehBotol:=StrToInt(ETeh.text) * HargaTehBotol else TotalTehBotol:=0;
TotalMakanMinum:=TotalNasGor + totalCocaCola + TotalTehBotol; GrandTotal:=TotalRental + TotalMakanMinum;
ERental.text:=FloatToStr(TotalRental); EMakan.Text:=FloatToStr(TotalMakanMinum); ETotal.Text:=FloatToStr(GrandTotal); end;
Program untuk tombol Ulang :
procedure TForm1.TUlangClick(Sender: TObject); begin ELama.TexT:='1'; ENasGor.text:='0'; ECoca.text:='0'; ETeh.text:='0'; CBNasGor.checked:=false; CBCoca.checked:=false; CBTeh.checked:=false; ETotal.TexT:='0'; EMakan.text:='0'; ERental.Text:='0'; ELama.SetFocus; end;
Modul Praktek Delphi
BAB IV
PERULANGAN
(For To Do, For Downto Do, Repeat Until, While Do)
Perulangan adalah suatu cara untuk mengulang satu atau sekumpulan perintah sampai mencapai kondisi tertentu.
Dalam Delphi terdapat beberapa perulangan yaitu : 1. Perulangan menggunakan For To Do
2. Perulangan menggunakan For DownTo Do 3. Perulangan menggunakan Repeat Until 4. Perulangan menggunakan While Do 5. Perulangan menggunakan Label
6. Perulangan tersarang (perulangan dalam perulangan) 7. Perulangan dengan banyak kondisi
Untuk lebih jelasnya, buatlah form seperti berikut dengan mengunakan 1 buah memo dan 7 buah BitBtn. Memo digunakan sebagai tempat untuk melihat hasil perulangannya.
Memo
Catatan :
Komponen Memo ( ) umumnya digunakan untuk pemasukan data string yang bisa menampung data dalam bentuk beberapa paragraf (banyak baris). Komponen ini dapat kita samakan dengan Notepad. Isi dari komponen ini ada di properti Lines.
Method-method yang banyak dipakai yang dimiliki oleh memo adalah : − Clear, gunanya untuk mengosongkan memo.
Contoh :
Memo1.Clear;
− Lines.Add, gunanya untuk memasukan/menambahkan baris di Memo.
Inputan untuk method add harus berupa string. Jika yang ingin ditampilkan berupa angka, maka harus dikonversikan dulu.
Contoh :
Memo1.Lines.Add(‘Text Yang Ditambahkan’); A:=100;
Memo1.Lines.Add(‘Nilai A adalah : ‘+inttostr(A));
− Lines.Delete, gunanya untuk menghapus suatu baris. Contoh :
Memo1.Lines.Delete(0); // Menghapus baris ke-1
Modul Praktek Delphi
1. For To Do
Perulangan ini berjalan dengan menggunakan suatu variabel counter yang akan bertambah secara otomatis ketika perintah yang diulang telah selesai dikerjakan.
Bentuk umum dari perulangan ini adalah :
For counter := nilai awal To Nilai akhir Do
Begin
Perintah; Perintah; End;
Perulangan ini akan berulang selama nilai variabel counter masih lebih kecil atau sama dengan nilai akhir.
Contoh Program yang ditulis dalam event OnClick dari tombol For To Do
procedure TForm1.BitBtn1Click(Sender: TObject); var i:integer; c:char; begin Memo1.Clear; for i:=1 to 10 do Memo1.Lines.Add(IntToStr(i)); for c:='A' to 'Z' do Memo1.Lines.Add(c); end; 2. For DownTo Do
Perulangan ini sama seperti perulangan dengan menggunakan For To Do tetapi arah isi counternya berkurang (mundur/turun).
Bentuk umum dari perulangan ini adalah :
For counter := nilaiawal DownTo Nilaiakhir Do Begin
Perintah; Perintah; End;
Perulangan ini akan berulang selama nilai variabel counter masih lebih besar atau sama dengan nilai akhir. Nilai awal suatu counter harus lebih besar atau sama dengan daripada nilai akhirnya.
Contoh Program yang ditulis dalam event OnClick dari tombol For To Do
procedure TForm1.BitBtn2Click(Sender: TObject); var
i:integer; c:char; begin
Memo1.Clear;
for i:=10 downto 1 do
Memo1.Lines.Add(IntToStr(i)); for c:='Z' downto 'A' do
Memo1.Lines.Add(c); end;
Modul Praktek Delphi
3. Repeat Until
Perulangan ini bekerja sampai kondisi yang diinginkan tercapai. Perulangan ini bisa digunakan sebagai perulangan yang menggunakan banyak kondisi keluar (multi condition loop).
Bentuk umum : Repeat
Perintah; Perintah; Until Kondisi;
procedure TForm1.BitBtn3Click(Sender: TObject); var i:real; begin Memo1.Clear; i:=0; repeat i:=i+0.5; Memo1.Lines.Add(FloatToStr(i)); until i=10; end;
Perulangan ini berulang sampai kondisi yang ada setelah until mempunyai nilai true. Jadi repeat until berjalan selama kondisi salah sampai kondisi benar.
Pengecekan kondisi berada di bagian bawah yaitu setelah until sehingga semua program yang memakai perulangan ini akan melakukan minimal 1 kali proses perulangan.
4. While Do
Perulangan ini mirip dengan perulangan Repeat Until tetapi pengecekannya berada di awal sebelum melakukan proses yang berulang. Perulangan ini berjalan selama kondisi pengecekan bernilai true. Jika kondisi telah mempunyai nilai false maka perulangan tidak dilakukan lagi.
Bentuk umum dari While Do adalah seperti berikut : While kondisi do
Begin Perintah; Perintah; End;
Contoh program while do yang ditulis pada event onclick dari tombol While Do.
procedure TForm1.BitBtn4Click(Sender: TObject); var i:real; begin Memo1.Clear; i:=0; while i<10 do begin i:=i+0.5; Memo1.Lines.Add(FloatToStr(i)); end; end;
Modul Praktek Delphi
5. Label
Label adalah suatu perintah untuk memandai suatu baris program. Untuk pindah ke posisi yang ditandai oleh label, maka digunakan perintah Goto.
Untuk lebih jelasnya lihatlah program berikut yang ditulis dalam event OnClick dari tombol Label.
procedure TForm1.BitBtn5Click(Sender: TObject); label A; var i:integer; begin Memo1.Clear; i:=0; A: i:=i+1; Memo1.Lines.Add(IntToStr(i)); if i<10 then Goto A; End;
6. Perulangan Tersarang (perulangan dalam perulangan)
Perulangan tersarang (nested loop) adalah suatu perulangan dimana di dalam perulangan tersebut ada perulangan lain. Perulangan yang di ada di bagian terdalam, maka akan dikerjakan dulu sampai selesai baru mengerjakan perulangan yang ada diluarnya.
Nested loop bisa merupakan kombinasi antara For To Do, For DownTo Do, Repeat Until, While Do.
Contoh Program
procedure TForm1.BitBtn6Click(Sender: TObject); var i,j:integer; begin Memo1.Clear; for i:=1 to 5 do begin j:=0; while j<5 do begin j:=j+1; Memo1.Lines.Add(IntToStr(i)+' X '+IntToStr(j) +' = '+IntToStr(i*j)); end; Memo1.Lines.Add('---'); end; end;
Modul Praktek Delphi
7. Perulangan dengan banyak kondisi
Perulangan dengan banyak kondisi adalah suatu perulangan dimana berjalannya suatu perulangan tidak hanya berdasarkan suatu kondisi saja tetapi bisa lebih dari satu kondisi. Operator yang bisa digunakan biasanya seperti And, Or, Not dan lain-lain.
Contoh Program :
procedure TForm1.BitBtn7Click(Sender: TObject); var i:integer; total:integer; begin Memo1.Clear; total:=0; i:=0; repeat i:=i+1; Total:=Total+i; Memo1.Lines.Add('Isi I = '+IntToStr(i));
Memo1.Lines.Add('Isi Total = '+IntToStr(Total)); until (total>150)or(i>25);
end;
Kasus :
1. Buat suatu program untuk menentukan faktorial dan jumlah deret sampai ke N. Buat form sebagai berikut :
2. Buat suatu program untuk menghitung saldo akhir dari suatu tabungan dengan bunga dan jangka waktu tertentu :
Contoh hasil :
Saldo : 100000
Bunga : 10 Waktu : 3
Ketika user menekan tombol Hitung, maka akan muncul hasil seperti berikut di memonya.
Saldo Bulan 1 = Rp. 110000 Saldo Bulan 2 = Rp. 121000 Saldo Bulan 3 = Rp. 133100
Modul Praktek Delphi
3. Mirip dengan program ke-dua hanya input yang diberikan adalah : Saldo awal, bunga dan saldo akhir. Dari ketiga input tersebut maka akan didapatkan lamanya jangka waktu yang diinginkan agar saldo mencapai saldo akhir.
Contoh :
Saldo Awal : 100000
Bunga : 10
Saldo Akhir : 150000
Maka hasil pada memonya adalah :
Saldo Bulan 1 = Rp. 110,000 Saldo Bulan 2 = Rp. 121,000 Saldo Bulan 3 = Rp. 133,100 Saldo Bulan 4 = Rp. 146,410 Saldo Bulan 5 = Rp. 161,051
Form yang diinginkan :
Modul Delphi - Database
Materi Delphi. Hal. 1
BAB V
DASAR-DASAR MEMBUAT PROGRAM
DATABASE DENGAN DELPHI
PENGANTAR DATABASE DENGAN DELPHI
Database dengan mengagunakan Delphi menggunakan konsep seperti gambar dibawah ini :
File Database
Komponen
Table
Komponen
DataSource
Komponen
Data Control
Keterangan :1. File Database : File database dari sistem database lain seperti Dbase (*.dbf), Paradox (*.db), Microsoft Access (*.mdb), dan lain-lain.
2. Komponen Table : Komponen yang mewakili file database. Setiap melakukan proses dalam komponen tabel tersebut, maka isi file database yang terkoneksi ke komponen tersebut berubah juga.
3. Komponen DataSource : Komponen penghubung antara komponen tabel dengan komponen data control. Dalam datasource harus diisi tabel yang berelasi ke datasource tersebut.
4. Komponen-Komponen Data Control : Komponen yang digunakan untuk menampilkan data-data yang berasal dari datasource (tabel). Data control ada yang berbentuk tabel, label, edit box, gambar, combobox, listbox dan lain-lain.
PROGRAM DATABASE 1 :
Untuk program pertama ini, program database yang akan dibuat adalah untuk mendata spesies ikan pada suatu toko. (data sudah ada)
1. Buat suatu aplikasi baru dengan Alt+F - New Application
2. Tempatkan sebuah komponen Table dari component palette BDE. Ganti property berikut :
Property Nilai DatabaseName DBDEMOS TableName BIOLIFE.DB Name TIkan Active True Keterangan :
DatabaseName adalah Alias directory atau koneksi ODBC. Pembuatan alias akan diterangkan
berikutnya.
3. Tempatkan sebuah komponen DataSource dari component palette Data Access Ganti property berikut :
Property Nilai
DataSet TIkan Name DSIkan
4. Tempatkan sebuah DBGrid dari component palette Data Controls pada form kemudian isi properti datasourcenya dengan DSIkan (karena akan menampilkan isi tabel ikan). Coba run program dan lihat hasilnya. Dengan cara yang tadi dijalankan, maka kita sudah dapat melihat, menambah, mengedit data.
Modul Delphi - Database
Materi Delphi. Hal. 2
5. Tempatkan sebuah DBNavigator dari component palette Data Controls pada form. Komponen ini berguna untuk menjelajahi isi tabel yaitu : Pindah ke record pertama, berikutnya (maju), sebelumnya (mundur), terakhir, menambah data, menghapus data, menyimpan data, mengedit data, membatalkan perubahan data dan refresh data. Isi property DataSource dengan DSIkan. Kemudian run program untuk melihat kegunaan dari DBNavigator tersebut.
6. Tempatkan sebuah DBText dari component palette Data Controls pada form. Fungsi dari komponen ini sama dengan komponen Label pada component palette Standar. Perbedaannya isi dari DBText berasal dari suatu data field dari suatu tabel. Untuk menghubungkan DBText dengan field, gantilah properti DataSource dengan DSIkan dan DataField dengan field yang diinginkan contoh CommonName. Kemudian run program sehingga kita dapat melihat setiap record aktif pindah maka isi DBText berisi field CommonName record yang aktif.
7. Tempatkan sebuah DBEdit dari component palette Data Controls pada form. Fungsi dari komponen ini sama dengan komponen Edit perbedaannya isi DBEdit mengacu kepada suatu data field dari suatu tabel. Untuk menghubungkannya dengan suatu field, isi property DataSource dengan DSIkan dan FieldName dengan Spesies No.
8. Untuk menampilkan data bertipe memo dari component palette Data Controls, gunakan komponen DBMemo, kemudian ganti property Datasource dengan DSIkan dan FieldName dengan Notes.
9. Untuk menampilkan data bertipe gambar, gunakan komponen DBImage dari component palette Data Controls, kemudian ganti property Datasource dengan DSIkan dan FieldName dengan Graphics.
10. Tempatkan suatu tombol kemudian ganti caption dengan Tutup Program dan kemudian isi even Onclick dengan perintah Close; atau Application.Terminate.
Gambar Lengkap form adalah sebagai berikut :
DBEdit Table DataSource DBNavigator DBLabel DBMemo DBGrid DBImage
Modul Delphi - Database
Materi Delphi. Hal. 3
PEMBUATAN ALIAS
Alias digunakan sebagai short cut dari suatu sub directori/folder. Sebenarnya dalam tabel kita bisa menggunakan alamat langsung dari file yang akan diakses contohnya : C:\MY DOCUMENTS\DATA\KARYAWAN.DB, hal tersebut bisa dilakukan tapi kalau file karyawan.db dipindah maka program harus dirubah. Untuk menghindari hal seperti itu, maka dibuatlah suatu Alias. Contoh kita buat suatu alias bernama Karyawan yang mewakili C:\My Documents\Data. Kalau data karyawan tersebut dipindah maka kita tidak lagi mengubah programnya tapi hanya membelokan alias tersebut ke tempat yang baru.
Cara pembuatan alias adalah sebagai berikut :
1. Masuk ke Database Desktop yang ada pada Start Menu – Program – Borland Delphi –
Database Desktop atau pilih menu Tool – DataBase Desktop.
2. Pilih menu Tools – Alias Manager
3. Klik tombol New, kemudian isi edit box Database alias dengan alias yang diinginkan, kemudian klik tombol Browse.
Modul Delphi - Database
Materi Delphi. Hal. 4
4. Pilih drive yang diinginkan pada combo (drive or alias), kemudian pilih direktori/folder yang dituju pada list Directories. Kemudian tekan tombol OK.
5. Jika telah benar tekan tombol OK pada Alias Manager. Maka akan muncul dialog apakah alias tersebut akan disimpan dalam file configurasi. Tekan tombol Yes.
Modul Delphi - Database
Materi Delphi. Hal. 5
PEMBUATAN TABEL
Pembuatan tabel yang akan diakses oleh Delphi bisa dibuat dengan Database Desktop atau MsAccess.
Cara pembuatan tabel dalam Database Desktop : 1. Masuk ke program Database Desktop
2. Pilih menu File – New – Table sehingga akan muncul dialog berikut yang akan menanyakan tabel jenis apa yang akan dibuat apakah paradox atau dbase atau yang lain, kemudian tekan OK.
3. Maka akan muncul window pembuatan tabel seperti berikut :
4. Jika sudah lengkap tekan tombol Save As untuk menyimpan tabel tersebut. 5. Tulis nama file tabel yang sudah dibuat dan simpan pada alias yang tadi dibuat. 6. Tabel sudah bisa diakses oleh Delphi.
Modul Delphi - Database
Materi Delphi. Hal. 6
Jenis field-field dalam Paradox yang sering dipakai : Simbol Jenis
Field Jenis Field Keterangan
A AlphaNumeric String, Alpabet, Numerik I Integer Integer (Bilangan Bulat)
N Number Pecahan
D Date Tanggal
T Time Jam
M Memo Memo / Catatan panjang
G Graphic Gambar
+ AutoIncrement Otomatis naik tiap ada penambahan data
$ Money Mata Uang
S Short Int Integer kecil (-32768 s/d 32767)
PENGISIAN DATA
Pengisian data pada tabel bisa dilakukan dengan dua cara, yaitu : 1. Melalui Database Desktop
Buka Database Desktop, kemudian pilih File – Open – Table kemudian pilih file database mana yang akan diisi.
Modul Delphi - Database
Materi Delphi. Hal. 7
Contoh Aplikasi Database 1
Untuk kasus aplikasi sekarang, kita akan membuat suatu program untuk pengolahan data barang menggunakan tabel yang telah dibuat dan memiliki fasilitas berikut :
− Navigator Data − Penambahan Data − Pengeditan Data − Penghapusan Data − Pencarian Data
Untuk membuat hal tersebut lakukan langkah berikut : 1. Buatlah form seperti berikut
Catatan : Nama tabel adalah TBarang
2. Program untuk tombol navigator (4 buah speedbutton bergambar tangan) adalah sebagai berikut : - Program untuk Pindah Ke Data Pertama (gambar tangan menunjuk ke atas)
procedure TForm1.SpeedButton1Click(Sender: TObject); begin
TBarang.First; end;
- Program untuk Pindah Ke Data Sebelumnya / Mundur (gambar tangan menunjuk ke kiri)
procedure TForm1.SpeedButton2Click(Sender: TObject); begin
TBarang.Prior; if TBarang.BOF then
ShowMessage('Anda sudah di awal data'); end;
- Program untuk Pindah Ke Data Berikutnya / Maju (gambar tangan menunjuk ke kanan)
procedure TForm1.SpeedButton3Click(Sender: TObject); begin
TBarang.Next;
if TBarang.EOF then
ShowMessage('Anda sudah di akhir data'); end;
Bitbtn
Modul Delphi - Database
Materi Delphi. Hal. 8
- Program untuk Pindah Ke Data Terakhir (gambar tangan menunjuk ke bawah)
procedure TForm1.SpeedButton4Click(Sender: TObject); begin
TBarang.Last; end;
3. Untuk proses penambahan dan pengeditan data, diperlukan suatu form baru yang digunakan untuk pengisian data barang tersebut. Buat suatu form seperti berikut :
- Buat form baru dengan File – New – Form dan namailah dengan FIsiBarang.
- Tempatkan 4 buah Edit untuk tempat pengisian data. Kemudian atur properti Name-nya sesuai dengan kegunaannya.
- Tempatkan tombol suatu tombol kemudian caption diisi dengan Save kemudian properti
modalresult diisi dengan mrOk.
- Tempatkan tombol suatu tombol kemudian caption diisi dengan Cancel kemudian properti modalresult diisi dengan mrCancel.
4. Buatlah objek/component field untuk mempermudah dalam pengisian program dengan cara mendouble klik di componen Table kemudian klik kanan dan pilih Add All field. Dengan melakukan hal tersebut, maka setiap field mempunyai objek field khusus.
5. Isilah program berikut pada event onclick tombol Tambah.
Procedure Tform1.TblTambahClick(Sender : Tobject); begin
FIsiBarang.ENama.Text:=‘’; FIsiBarang.EHarga.Text:=‘0’; FIsiBarang.EStock.Text:=‘0’;
FIsiBarang.EStockMinimal.Text:=‘0’;
FIsiBarang.ShowModal; //tampilkan Form Fisibarang if FIsiBarang.ModalResult=mrOk then
begin
TBarang.Append;//meminta tempat kosong untuk data baru TBarangNama.Value:=FIsiBarang.ENama.Text; TBarangHarga.Value:=StrToFloat(FIsiBarang.EHarga.Text); TBarangStock.Value:=StrToInt(FIsiBarang.EStock.Text); TBarangStockMinimal.Value:=StrToInt(FIsiBarang. EStockMinimal.Text); TBarang.Post;//simpan data end; end;
Modul Delphi - Database
Materi Delphi. Hal. 9
6. Isilah program berikut untuk event onclick dari Tombol Edit
Procedure Tform1.TblEditClick(Sender : Tobject); begin FIsiBarang.ENama.Text:=TBarangNama.Value; FIsiBarang.EHarga.Text:=FloatToStr(TBarangHarga.Value); FIsiBarang.EStock.Text:=IntToStr(TBarangStock.Value); FIsiBarang.EStockMinimal.Text:= IntToStr(TBarangStockMinimal.Value); FIsiBarang.ShowModal; //tampilkan Form Fisibarang
if FIsiBarang.ModalResult=mrOk then begin
TBarang.Edit;//menyiapkan data untuk diedit TBarangNama.Value:=FIsiBarang.ENama.Text; TBarangHarga.Value:=StrToInt(FIsiBarang.EHarga.Text); TBarangStock.Value:=StrToInt(FIsiBarang.EStock.Text); TBarangStockMinimal.Value:=StrToInt(FIsiBarang. EStockMinimal.Text); TBarang.Post; end; end;
7. Untuk event onclick pada Tombol Hapus tulislah perintah sebagai berikut :
Procedure Tform1.TblHapusClick(Sender : Tobject); begin
if MessageDlg(‘Data Mau Dihapus ?’,mtconfirmation,
[mbyes,mbno],0)=mryes then begin TBarang.Delete; end; end; Keterangan :
Perintah MessageDlg digunakan untuk melakukan suatu dialog dengan user. Cara penulisan MessageDlg adalah :
MessageDlg(Pesan, TipeDialog, [DaftarTombol],NoHelp).
Parameter pertama yaitu Pesan harus bertipe string.
Parameter kedua bisa berisi tipe dari dialog. Parameter ini bisa berisi: - mtconfirmation : Ada lambang tanda tanya dalam dialognya
- mtwarning : Ada lambang peringatan / tanda seru (!)
- mtinformation : Ada lambang huruf i
- mterror : Ada lambang silang berwarna merah
- mtcustom : Tidak ada lambang dalam dialognya.
Parameter ketiga merupakan parameter yang mengatur tombol mana yang akan digunakan. Parameter ini bisa berisi :
MrNone, mrAbort, mrYes, mrOk, mrRetry, mrNo, mrCancel, mrIgnore, mrAll
Fungsi Message dialog ini akan menghasilkan nilai sesuai dengan tombol yang ditekannya. Jika tombol OK yang ditekan, maka MessageDlg ini berisi MrOK,
Jika tombol yes yang ditekan, maka MessageDlg ini berisi MrYes dst
8. Untuk tombol pencarian, maka gunakan perintah berikut : Untuk pencarian pada field key :
Procedure Tform1.TblCariClick(Sender : Tobject); begin
if Tbarang.Findkey([Ecari.Text])=false then
ShowMessage(‘Data yang dicari tidak ditemukan’); end;
Fungsi Findkey akan memberikan nilai true jika data ditemukan dan akan mengembalikan nilai false jika data tidak ditemukan.
Modul Delphi - Database
Materi Delphi. Hal. 10
9. Cara lain untuk penambahan dan pengeditan data adalah dengan menggunakan komponen data control. Lebih jelasnya ikutilah langkah-langkah berikut :
- Buat form baru dengan File – New – Form beri nama FIsiBarang2
- Tempatkan 5 buah DBEdit untuk tempat pengisian data. Kemudian atur properti DataSource dan DataField dari tiap DBEditnya. (lihat form)
- Tempatkan tombol suatu tombol kemudian caption diisi dengan Save kemudian properti
modalresult diisi dengan mrOk.
- Tempatkan tombol suatu tombol kemudian caption diisi dengan Cancel kemudian properti modalresult diisi dengan mrCancel.
10. Untuk onclick pada Tombol Tambah, ketikan perintah berikut :
Procedure Tform1.TblTambahClick(Sender : Tobject); begin TBarang.Append; FIsiBarang2.ShowModal; if FIsiBarang2.ModalResult=mrOk then begin TBarang.Post; end else begin TBarang.Cancel; end; end;
11. Untuk onclick pada Tombol Edit, ketikan perintah berikut :
Procedure Tform1.TblEditClick(Sender : Tobject); begin TBarang.Edit; FIsiBarang2.ShowModal; if (FIsiBarang2.ModalResult=mrOk) then begin TBarang.Post; end else begin TBarang.Cancel; end; end;
Modul Delphi - Database
Materi Delphi. Hal. 11
Pembuatan Index Pada Table
Ketika pembuatan suatu tabel, kita membuat suatu field yang pada fieldnya diberi tanda *. Isi field yang merupakan field kunci tidak boleh ada data yang sama (harus unik). Dengan membuat suatu field sebagai primary key, maka setiap pengisian data, maka urutan data akan otomatis terurut. Selain primary key ada juga yang namanya secondary index yang fungsinya mirip dengan primary key. Cara pembuatan secondary index adalah :
1. Masuk ke Database Desktop
2. Pilih menu Table – Utilities – Restructure, kemudian pilih tabel yang akan diubah strukturnya.
3. Pilih Secondary Indexes pada field Table Properties (lihat gambar).
4. Pilih field yang akan dijadikan index. Pilih field Nama kemudian tekan tombol panah kanan. (lihat gambar).
5. Jika telah dipilih, tulis nama index dari index tersebut. Contoh : idxNama.
6. Buat juga index dengan nama IdxHarga yang merupakan index dari field harga dengan ketentuan pengurutannya secara menurun (descending).
Modul Delphi - Database
Materi Delphi. Hal. 12
Penggunaan Index dalam Program
Untuk mengaktifkan suatu index yang telah dibuat, gunakan field IndexName yang merupakan properti milik Table. Untuk lebih jelasnya silahkan buat form seperti di bawah ini.
Untuk bagian “Pengurutan Berdasarkan” gunakan RadioGroup. Untuk OnClicknya tuliskan perintah berikutkan :
Procedure TForm1.RadioGroup1Click(Sender:TObject); begin if (RadioGroup1.ItemIndex=0) then Tbarang.IndexName:=’’ else if (RadioGroup1.ItemIndex=1) then Tbarang.IndexName:=’idxBarang’ else if (RadioGroup1.ItemIndex=2) then Tbarang.IndexName:=’IdxHarga’; End;
Untuk tombol ”Cari” tuliskan perintah berikut :
Procedure Tform1.CariClick(Sender:Tobject); Var
Ditemukan:Boolean; Begin
Ditemukan:=Tbarang.FindKey([Ecari.Text]);
if (ditemukan=false) then // atau if not ditemukan then ShowMessage(‘Data tidak ditemukan‘);
End;
Untuk tombol “Find Nearest” tuliskan perintah berikut :
Procedure Tform1.TfindNearestClick(Sender:Tobject); Begin
TBarang.FindNearest([Ecari.Text]); End;
BAB VI
JENIS-JENIS FIELD
(Data Field, Lookup Field dan Calculated Field)
Ada 3 jenis field yang ada di Delphi yaitu :
1. Data Field
Data field adalah data yang berasal dari file databasenya. Field ini secara fisik
tersimpan dalam file datanya.
2. Lookup Field
Lookup field adalah suatu field yang merupakan field yang diambil dari tabel lain
berdasarkan kunci-kunci tertentu.
3. Calculated Field
Calculated field adalah field yang merupakan hasil perhitungan. Field ini hanya akan
dapat dilihat ketika program di run saja dan field ini tidak tersimpan dalam file.
Walaupun calculated field merupakan suatu hasil perhitungan, tetapi field ini tipenya
tidak hanya bilangan, tetapi bisa juga bertipe data selain bilangan seperti string,
boolean dan lain-lain.
Contoh program :
Membuat daftar penjualan data lengkap dengan menampilkan harga dan totalnya.
1. Buat suatu Applikasi baru dengan File – New Application
2. Tempatkan Table dan Datasource dengan properti seperti berikut :
Properti
Isi
Name TPenjualan
DatabaseName DBDemos
TableName Items.DB
Properti
Isi
Name Tbarang
DatabaseName DBDemos
TableName Parts.DB
Properti
Isi
Name TSupplier
DatabaseName DBDemos
TableName Vendors.DB
Properti
Isi
Name DSPenjualan
DataSet Tpenjualan
Properti
Isi
Name DSBarang
DataSet TBarang
Properti
Isi
Name DSsupplier
DataSet TSupplier
Tempatkan sebuah DBGrid dengan mengganti properti DataSource dengan
DSPenjualan. Untuk lebih jelas lihat gambar di bawah ini.
3. Untuk membuat suatu field Lookup atau Calculated dalam table penjualan,
pertama kali sebaiknya dibuat dulu field datanya untuk mempermudah
pemrograman dengan mendouble klik Table TPenjualan, atau Klik Kanan di
table kemudian pilih Field Editor.
4. Dalam Field Editor, klik kanan kemudian pilih Add All field jika semua field
ingin dipakai semua atau pilih Add Field jika ingin memilih field yang akan
dipakai.
TPenjualan DSPenjualan TBarang DSBarang TSupplier DSSupplier5. Sekarang buat suatu field baru yang berjenis field lookup untuk Harga barang
yang diambil dari table TBarang. Caranya :
¾ Double klik Table TPenjualan
¾ Klik kanan pada field editor kemudian pilih New - Field sehingga akan
muncul layar seperti berikut :
¾ Tulis Nama Field dengan Harga
¾ Pilih Tipe data dengan Currency atau Float
¾ Pilih Field Type dengan Lookup
¾ Isi Key Field dengan PartNo
¾ Isi Dataset dengan TBarang
¾ Isi Lookup Keys dengan PartNo
¾ Isi Result Field dengan List Price
Catatan :
¾ Key Field adalah field yang digunakan untuk pencarian ke Dataset
lookupnya.
¾ Lookup Keys adalah field yang ada di Dataset lookup yang dicocokan
dengan Key Fieldnya.
¾ Result Field adalah field apa yang akan diambil dari dataset lookup
¾ Tekan OK
6. Untuk membuat Field SubTotal yang merupakan field berjenis Calculated,
lakukan hal seperti berikut :
¾ Double Klik di TPenjualan
¾ Klik kanan di field editor, kemudian pilih New Field
¾ Isi Field Name dengan subtotal
¾ Isi Tipe dengan Currency atau float
¾ Isi tipe field dengan Calculated
¾ Tekan OK
¾ Untuk program perhitungannya, klik tabel Tpenjualan, kemudian klik tab
Event di Object Inspector, kemudian double klik di event OnCalcField.
¾ Kemudian isi perintah/rumus perhitungannya seperti berikut :
TpenjualanSubTotal.value:=TpenjualanQty.Value*TpenjualanHarga.value;
BAB VII
QUERY / SQL
(Structured Query Language)
Komponen query adalah suatu komponen dataset (mirip seperti table) tetapi data yang ada dalam dataset tersebut berasal dari perintah query, dan bukan lagi berdasarkan TableName.
Langkah-langkah penggunaan Query sama seperti pembuatan tabel. Coba buat form seperti berikut :
1. Tempatkan komponen Query yang ada pada component palette Dataset. Isi properti :
DatabaseName : DBDEMOS
SQL : Select * From Country
Active : True
2. Tempatkan komponen DataSource. Isi properti :
Dataset : Query1
3. Tempatkan DBGrid isi properti DataSource dengan Datasource1. 4. Run Program.
Contoh perintah-perintah SQL :
Select digunakan untuk pemilihan field. Contoh :
- Select * from Country
pilih semua field yang ada pada tabel Country.db - Select Name, Capital from Country
Pilih field Name dan Capital yang ada pada tabel Country.
- Select Name, Capital, Population from Country order by Population Desc
Pilih field Name, Capital, dan Population dari tabel country kemudian diurutkan berdasarkan population secara descending (menurun). Jika ingin pengurutan secara Ascending, hilangkan perintah Desc–nya.
- Select Sum(Population), Max(Population), Min(Population), Avg(Population) from Country
Pilih Jumlah (sum) dari population, nilai tertinggi (max) dari population, nilai terkecil (min) dari population dan rata-rata (average) dari population dari tabel Country.
- Select * from country where Population>25000000
Pilih semua field dari country yang mempunyai population lebih dari 25000000.
- Select Parts.*, Vendors.VendorName from Parts, Vendors where Parts.VendorNo = Vendors.VendorNo
Pilih semua field dari tabel parts dan field VendorName dari tabel vendors dimana VendorNo yang di Tabel Parts sama dengan VendorNo yang ada di tabel Vendors.
Membuat program belajar SQL
Buat Form seperti berikut :
Isi Perintah Onclick pada tombol “Run” dengan perintah berikut :
Procedure Tform1.TrunClick(Sender:TOBject); Begin
Query1.Close; // Tutup Query yang Aktif Query1.SQL.Clear; // Hapus SQL yang ada
Query1.SQL.Add(Equery.Text); // Isi SQL dari Equery.Text Query1.Open; // Buka / Aktifkan Query
End;
BAB VIII
MASTER - DETAIL
Suatu form yang menampilkan suatu hubungan master – detail digunakan untuk menyatakan suatu relasi 1 ke banyak dari 2 tabel.
Jika tabel master berpindah record, maka pada tabel detail juga akan berubah sesuai dengan relasi antara tabel master dan detail tersebut.
Borland Delphi telah menyertakan beberapa tabel yang dapat menggambarkan suatu relasi master – detail. Tabel tersebut adalah tabel Orders.db dan Items.db. Tabel Orders.db berisi daftar faktur penjualan dan Items.db berisi item-item faktur penjualan tersebut. Kedua tabel relasikan dengan field OrderNo (nomor order).
Untuk membuat suatu form yang menampilkan hubungan master detail, langkah-langkah yang harus dilakukan adalah :
1. Buat suatu aplikasi baru dengan menekan menu File – New Application
2. Tempatkan 2 buah Table, 2 buah Data Source dan 2 Buah DBGrid. Peletakannya dapat dilihat di gambar di bawah ini.
Properti-properti yang harus diganti adalah :
Objek Properti Isi
Name TPenjualan DatabaseName DBDEMOS TableName Orders.db Table1 Active True Name DSPenjualan DataSource1 Dataset TPenjualan Name TItemPenjualan DatabaseName DBDEMOS TableName Items.db Table2 Active True Name DSItemPenjualan DataSource2 Dataset TItemPenjualan
DBGrid1 DataSource DSPenjualan
DBGrid2 DataSource DSItemPenjualan Peletakan komponennya dapat dilihat di bawah ini.
3. Sampai langkah di atas hubungannya masih belum master detail. Untuk membuat agar hubungan relasinya terlihat jelas, maka langkah berikutnya adalah klik di table detail (TItemPenjualan), kemudian isi properti MasterSource dengan DSPenjualan (Data Source Master), kemudian isi juga properti MasterField dengan menekan tombol elipsis (…) yang akan memunculkan layar desain relasi.
4. Pilih field relasinya yaitu OrderNo di Detail dan OrderNo di Master. Setelah dipilih klik tombol Add, dan kemudian diikuti dengan menekan tombol OK untuk menutup layar desain relasi.
5. Sekarang form master detail telah dibuat. Setiap ada perpindahan data di tabel master maka tabel detail akan ikut berganti sesuai dengan OrderNo yang sama.
BAB IX
FILTER DATA
Filter data digunakan untuk memilih sekelompok data berdasarkan kondisi tertentu. Data yang dihasilkan oleh filter bisa lebih dari satu buah.
Filtering (penyaringan) data dalam Delphi adalah dengan cara memanfaatkan properti Filter dan Filtered yang dimiliki oleh komponen Table.
Agar lebih jelas, buat form seperti di bawah ini.
Table DataSource
DBGrid
ComboBox Edit CheckBox
1. Gantilah properti dan nama dari komponen-komponen tersebut :
Name Table1 Name CBFilter
DatabaseName DBDEMOS TableName Customer.db Table Active True Name DataSource1 ComboBox Items Company Addr City Contact DataSource
Dataset Table1 Name CBFilter
Name Ekunci
CheckBox
Checked False Edit
2. Pada event OnClick CBFilter isi perintah di bawah ini
procedure TForm1.CBFilterClick(Sender: TObject); begin
if CBFilter.Checked=true then // Jika CBFilter dipilih begin
// susun filter
Table1.filter:=CBField.Text+' = '''+EKunci.text+'*'''; Table1.Filtered:=true; // jalankan filter
end
else // jika CBFilter tidak dipilih
Table1.Filtered:=false; // non aktifkan filter end;
3. Agar setiap ada perubahan isi di edit EKunci mempengaruhi filter, maka event OnChange milik Ekunci harus ditujukan ke procedure CBFilterClick.
4. Langkah di atas adalah membuat filter tetapi membedakan huruf kapital dan huruf kecil. Agar filter dijalankan dengan menganggap huruf kapital dan huruf kecil dianggap sama maka klik di Table1, kemudian klik tanda + pada Filter Option dan pada properti foCaseInsensitive diisi nilai True. 5. Run program. Maka akan dapat dilihat kalau kita mengisi kata kunci dan filternya diaktifkan maka isi
DBGrid akan sesuai dengan isi kata kunci.