MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJECT (PBO-1) DELPHI
Disusun Oleh : Gunawan Rudi Cahyono, ST. MT.
Sekolah Tinggi Manajemen Informatika Komputer (STMIK) Banjarbaru
2009
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 Object Inspector Unit/Source Code
Form
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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman. 1
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.
4.
5.
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 (:=). 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; Tekan tombol F9 atau menu Run – Run atau tekan tombol
By. Gunawan Rudi Cahyono, ST, MT
untuk menjalankan program.
Halaman. 2
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.
Edit Label
Button
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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman. 1
Diktat Delphi
Left Name
Position Top Visible Width WindowState
Posisi kiri form dari desktop(dalam pixel). Ini adalah properti yang paling penting. Name bukan caption. Name adalah nama yang digunakan untuk memanggil/menggunakan objek. Nama object tidak boleh terpisah. Posisi menampilkan form ketika pertama kali ditampilkan. Posisi atas form dari desktop Apakah form akan ditampilkan atau tidak.Defaultnya adalah false Lebar form secara keseluruhan Kondisi state apakah maximize, minimize, atau normal Properti-Properti Label
Align
Alignment Autosize Caption Color Font Name Transparent WordWarp
( ) 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 Justifikasi dari text apakah rata kiri (leftJustify), rata kanan (rightJustify) dan tengah (center). Besar bidang objek akan sesuai dengan besarnya caption Text (kata) yang akan ditampilkan dalam label Warna background dari objek Font yang digunakan dalam objek. Defaultnya adalah font parent. Nama dari objek. Ingat Name berbeda dengan Caption Apakah warna objek akan dibuat transparan (properti color tidak dipakai). Jika diisi true, maka jika caption telah melebihi batas, maka akan menggulung ke baris berikutnya. Properti-Properti Edit
BorderStyle CharCase Color Ctr3D MaxLength PasswordChar
ReadOnly Text Visible
( ) Apakah objek akan menggunakan garis pinggir. Apakah data yang dimasukan akan dicapitalkan (uppercase) atau dihurufkecilkan (lowercase) atau normal. Warna background dari objek. Apakah akan dibuat 3D atau flat / datar. Panjang maksimal data yang akan dimasukan. 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. Jika diisi true, maka user tidak bisa menulis/mengubah isi objek. Isi tulisan dari objek ini. Edit tidak mempunyai caption, sehingga isi dari yang ditulis diedit berada di properti ini. 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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman. 2
Diktat Delphi
Setelah form selesai dibuat, maka langkah berikutnya adalah mengisi event OnClick pada tombol Hitung. Perintah untuk event OnClick adalah sebagai berikut : 1 procedure TForm1.ThitungClick(Sender: TObject); 2 var Harga:Real; 3 Qty:Integer; 4 SubTotal,Diskon,Total:Real; 5 6 begin Harga:=StrToFloat(EHarga.text); 7 Qty:=StrToint(EQty.text); 8 Subtotal:=Harga*Qty; 9 Diskon:=0.1 * Subtotal; 10 Total:=Subtotal-Diskon; 11 ESubTotal.text:=FloatToStr(SubTotal); 12 EDiskon.Text:=FloatToStr(Diskon); 13 ETotal.Text:=FloatToStr(Total); 14 end; 15 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 –128..127 signed 8-bit Shortint –32768..32767 signed 16-bit Smallint –2147483648..2147483647 signed 32-bit Longint –2^63..2^63–1 signed 64-bit Int64 0..255 unsigned 8-bit Byte 0..65535 unsigned 16-bit Word 0..4294967295 unsigned 32-bit Longword 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
By. Gunawan Rudi Cahyono, ST, MT
Halaman. 3
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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman. 4
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 perintah else if (kondisi2) begin perintah; perintah; end else begin perintah; perintah; end;
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;
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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 7
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 >=100000 >=50000 >=25000 <25000
Diskon 15% 10% 5% 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 : .
-
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
-
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
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 8
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 = >= > <= < <> Not And Or
Keterangan Sama dengan Lebih besar sama dengan Lebih besar Lebih kecil sama dengan Lebih kecil Tidak sama dengan Tidak / Invers Operator dan Operator
By. Gunawan Rudi Cahyono, ST, MT
Contoh (a = 7) (a >= 7) (a > 7) (a <= 7) (a < 7) (a <> 7) Not (a<>7) (a = 7)And(b =5) (a = 7) Or (b =5)
Halaman - 9
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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 10
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
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 11
Contoh Kasus : Sebuah Perusahaan angkutan “Jalan Terus” memiliki ketentuan harga seperti berikut : Eksekutif Bisnis Ekonomi 70000 40000 10000 Jakarta 80000 50000 20000 Solo 90000 60000 30000 Surabaya 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 : Name : RBJakarta RadioButton1 Caption : Jakarta Name : RBSolo RadioButton2 Caption : Solo Name : RBSurabaya RadioButton3 Caption : Surabaya 4. Tempatkan sebuah RadioGroup kemudian ganti propertinya seperti berikut : Name : RGKelas Items : Eksekutif Bisnis Ekonomi ItemIndex : 0 5. Tempatkan 2 buah Edit untuk pengisian data banyaknya tiket dan untuk menampilkan hasil dari perhitungan. Gantilah properti-propertinya seperti berikut : Edit1 Name : ETiket Edit2 Name : ETotal 6. Tempatkan 3 buah tombol untuk tombol perhitungan, reset, dan tombol keluar. Kemudian atur form seperti form berikut :
GroupBox
RadioButton
7.
RadioGroup
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
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 12
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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 13
Komponen Check Box (
)
CheckBox ( ) adalah komponen untuk pemilihan option dimana option yang dipilih bisa lebih dari satu buah. Properti-properti CheckBox Property Keterangan Tulisan yang ada di Checkbox Caption 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.
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 14
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;
By. Gunawan Rudi Cahyono, ST, MT
Halaman - 15
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
Pustekom Int. Hal. 16
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;
Pustekom Int. Hal. 17
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;
Pustekom Int. Hal. 18
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;
Pustekom Int. Hal. 19
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
Pustekom Int. Hal. 20
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 :
Pustekom Int. Hal. 21
Modul Delphi - Database
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.
dari component palette Data Controls pada form kemudian isi Tempatkan sebuah DBGrid 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.
Materi Delphi. Hal. 1
Modul Delphi - Database 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 DBNavigator DataSource Table
DBLabel DBMemo
DBGrid
DBImage
Materi Delphi. Hal. 2
Modul Delphi - Database 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.
Materi Delphi. Hal. 3
Modul Delphi - Database 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.
Materi Delphi. Hal. 4
Modul Delphi - Database 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. 5. 6.
Jika sudah lengkap tekan tombol Save As untuk menyimpan tabel tersebut. Tulis nama file tabel yang sudah dibuat dan simpan pada alias yang tadi dibuat. Tabel sudah bisa diakses oleh Delphi.
Jenis-jenis field dapat dilihat di halaman berikutnya.
Materi Delphi. Hal. 5
Modul Delphi - Database Jenis field-field dalam Paradox yang sering dipakai : Simbol Jenis Jenis Field Keterangan Field 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. 2. Melalui program yang dibuat
Materi Delphi. Hal. 6
Modul Delphi - Database 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
Bitbtn
SpeedButton
2.
Catatan : Nama tabel adalah TBarang 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;
Materi Delphi. Hal. 7
Modul Delphi - Database -
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. 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;
5.
end;
Materi Delphi. Hal. 8
Modul Delphi - Database 6.
7.
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; 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.
Materi Delphi. Hal. 9
Modul Delphi - Database 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;
Materi Delphi. Hal. 10
Modul Delphi - Database 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). Jika telah selesai, simpan table tersebut.
7.
Materi Delphi. Hal. 11
Modul Delphi - Database 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;
Materi Delphi. Hal. 12
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 Properti Isi Name TPenjualan Name DSPenjualan DatabaseName DBDemos DataSet Tpenjualan TableName Items.DB Properti Name DatabaseName TableName
Isi Tbarang DBDemos Parts.DB
Properti Name DataSet
Isi DSBarang TBarang
Properti Name DatabaseName TableName
Isi TSupplier DBDemos Vendors.DB
Properti Name DataSet
Isi DSsupplier TSupplier
Tempatkan sebuah DBGrid dengan mengganti properti DataSource dengan DSPenjualan. Untuk lebih jelas lihat gambar di bawah ini.
TPenjualan DSPenjualan
DSBarang
TBarang
TSupplier
DSSupplier
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.
5. 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;
¾ Run program. Calculated field baru bisa dilihat setelah di run.
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.
2.
3. 4.
Tempatkan komponen Query yang ada pada component palette Dataset. Isi properti : DatabaseName : DBDEMOS SQL : Select * From Country Active : True Tempatkan komponen DataSource. Isi properti : Dataset : Query1 Tempatkan DBGrid isi properti DataSource dengan Datasource1. 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.
Halaman - 1
-
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;
Halaman - 2
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 Table1 Name TPenjualan DatabaseName DBDEMOS TableName Orders.db Active True DataSource1 Name DSPenjualan Dataset TPenjualan Table2 Name TItemPenjualan DatabaseName DBDEMOS TableName Items.db Active True DataSource2 Name DSItemPenjualan 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
1.
Edit
Gantilah properti dan nama dari komponen-komponen tersebut : Table Name Table1 ComboBox DatabaseName DBDEMOS TableName Customer.db Active True DataSource Name DataSource1 Dataset Table1 CheckBox Edit Name Ekunci Text Kosongkan DBGrid
CheckBox
Name Items
Name Checked DataSource
CBFilter Company Addr City Contact CBFilter False DataSource1
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. 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. Run program. Maka akan dapat dilihat kalau kita mengisi kata kunci dan filternya diaktifkan maka isi DBGrid akan sesuai dengan isi kata kunci.
4.
5.
BAB X PEMBUATAN LAPORAN Pembuatan laporan dalam Delphi menggunakan komponen-komponen yang ada dalam component palette QReport. Data yang dilaporkan adalah data-data yang berasal dari database. Suatu laporan umumnya memiliki bagian-bagian (band) sebagai berikut : Page Header Title Column Header Detail Summary Page Footer Keterangan : - Page Header : adalah band yang akan tampil di semua halaman dan berada pada posisi paling atas (header). - Title : adalah band yang berfungsi sebagai judul dari laporan. Band ini hanya ada pada halaman pertama. - Column Header adalah band yang berfungsi untuk menempatkan judul dari data yang akan dilaporkan. Column Header ada di setiap halaman - Detail adalah band yang berfungsi untuk menempatkan data yang akan dilaporkan. Band ini berulang sampai semua data telah tercetak. - Summary adalah band yang dicetak hanya di halaman terakhir sebagai catatan. Salah satu fungsi dari band ini adalah untuk menampilkan total dari semua data yang dilaporkan. - Page Footer berfungsi seperti page header tetapi letaknya di bagian bawah laporan dan selalu ada di tiap halaman. Salah satu gunanya adalah untuk menyimpan / menempatkan nomor halaman.
Membuat Laporan Sederhana 1. 2.
Cara pembuatan laporan adalah : Buka kembali program yang berisi berisi program master detail. Pilih Menu File – New – Report, yang akan menampilkan sebuah report kosong.
Pembuatan Laporan - 1
3.
Setelah muncul tampilan laporan kosong, kemudian pilih bands (bagian-bagian report)yang akan digunakan dengan menekan tanda + pada properti Bands. Isi dengan nilai true pada band yang akan digunakan.
4.
Isi tabel yang akan dibuat laporan dengan cara mengisi properti Dataset dari reportnya. Table yang akan dilaporkan boleh diambil dari form lain atau dari data module. Jika tabel yang akan dilaporkan ada di form lain atau di data module, maka gunakan Menu File – Use Unit untuk mengenalkan semua isi dari form yang memiliki tabel yang akan dibuat laporannya. Isi properti datasetnya dengan Form1.TPenjualan. Ganti properti Name dari laporan, sesuaikan dengan kegunaan form tersebut contoh : LapPenjualan. Kemudian simpan report tersebut dengan mengklik menu File – Save, isi nama filenya UlapPenjualan.pas. Komponen-komponen yang dapat dipakai dalam laporan berada pada componen palette Qreport.
5.
6.
7. 8.
9.
Komponen yang sering dipakai diantaranya : - QRLabel : Label / tulisan biasa - QRDBText : Label / Text yang berasal dari data tabel (database) - QRImage : Gambar contoh logo perusahaan - QRSystem : Menampilkan Tanggal, Jam, No Halaman, No Data dll. - QRExpresion : Untuk perhitungan (Rumus). Untuk membuat garis pinggir (border), gunakan properti Frame dari tiap bandnya. Isi properti dengan true, jika garis mau digambar. Atur bagian Page Header sesuai keinginan, misalnya dengan menampilkan waktu ketika laporan dibuat. Caranya yaitu dengan meletakan komponen QRSYS, ganti properti Data dengan DateTime dan isi pula properti Text dengan tulisan : Tanggal Laporan Atur pula bagian Title, misalnya dengan mengisikan judul laporan.
Pembuatan Laporan - 2
10. Atur pula bagian ColumnHeadernya dengan menempatkan QRLabel sebagai JudulKolom.
11. Atur pula bagian terpentingnya yaitu bagian Detail. Data-data yang ada dalam band Detail biasanya berasal dari database sehingga komponen yang dipakai di band tersebut adalah QRDBText. Atur properti setiap QRDBText tersebut. Properti yang diatur adalah properti Dataset dan DataField. Isi dataset dengan Form1.TPenjualan dan DataField disesuaikan dengan nama field yang akan dituliskan oleh QRDBText tersebut. Jangan lupa untuk ItemsTotal sebaiknya dibuat RightJustify karena field tersebut berupa angka dengan cara mengganti properti Alignment dengan taRightJustify. 12. Atur pula bagian Summary misalnya dengan menghitung banyaknya transaksi penjualan. Caranya adalah dengan meletakan komponen QRSys, kemudian ganti properti Data dengan DetailCount. 13. Atur Pula bagian PageFooter misalnya dengan menampilkan nomor halaman. Caranya adalah dengan meletakan sebuah komponen QRSys dan isi properti Data dengan PageNumber, isi pula properti Text dan isi dengan tulisan : Halaman Ke-.
14. Secara keseluruhan, desain report terlihat seperti gambar di bawah ini.
Pembuatan Laporan - 3
15. Untuk mengecek apakah hasil desain laporan telah rapi, caranya adalah klik kanan di laporan dan kemudian klik Preview.
16. Jika telah benar, simpan laporan tersebut dan kembali ke form utama untuk membuat suatu tombol yang akan memanggil laporan tersebut. 17. Di Form1 (form utama), buat suatu tombol dan isi Caption dengan Laporan Penjualan, kemudian isi event OnClicknya dan isi dengan perintah di bawah ini. NamaLaporan.Preview; Jika laporan hanya ingin di preview saja NamaLaporan.Print; Jika laporan ingin langsung di print. Contoh : procedure TForm1.Button1Click(Sender: TObject); begin LapPenjualan.Preview; end; atau procedure TForm1.Button1Click(Sender: TObject); begin LapPenjualan.Print; end; 18. Run program tersebut.
Pembuatan Laporan - 4
BAB XI DATA MODULE Datamodule adalah sebuah form khusus yang henya bisa menampung komponen-komponen database saja. Datamodule digunakan untuk mengumpulkan semua komponen database dalam suatu tempat sehingga semua form yang mengakses database hanya mengakses ke komponen-komponen database yang ada di datamodul saja. Sehingga mempermudah dalam pemrogramannya. Jadi kita tidak lagi dibingungkan oleh tersebarnya komponen-komponen database di banyak form. Cara pembuatan datamodule adalah : 1. Klik menu File - New – DataModule
2. 3.
Sebaiknya simpan unitnya dengan menggunakan File- Save. Gunakan nama UdataModule.pas atau UDM.Pas. (Penamaan file unit bebas) Ganti Nama dari datamodule menjadi DM atau Data.
4.
Tempatkan komponen-komponen data akses (database di dalam DataModule).
5.
Kemudian agar form lain dapat mengakses komponen database yang ada di datamodule, maka pada tiap form tersebut harus ditambahkan perintah Uses [Nama File unit Data Modul] atau dengan File – Use Unit, dan kemudian pilih unit datamodule tadi. Setiap pemanggilan data dari form lain harus didahului dengan perintah DM kalau nama data modulnya adalah DM. Contoh : DM.TPenjualan.Append.
6.
BAB XII PROGRAM PENJUALAN SEDERHANA Program yang akan dibuat kali ini adalah program untuk mendata penjualan barang. Fasilitas yang diberikan pada program ini adalah : 1. Update Stock (Kalau ada transaksi penjualan, maka stock barang berkurang, Kalau ada transaksi pembelian, maka stock barang akan bertambah) 2. Laporan Penjualan, Laporan Barang, Laporan Pembelian Untuk membuat program tersebut maka dibutuhkan 3 buah tabel yaitu : 1. Tabel Barang yang berisi barang-barang yang tersedia dalam toko tersebut. 2. Tabel Penjualan yang akan digunakan untuk menyimpan semua data penjualan. 3. Tabel Pembelian yang akan digunakan untuk menyimpan semua data pembelian barang. Langkah-Langkah Pengerjaan : 1. Buatlah ke-3 tabel tersebut dalam database desktop, dengan daftar field seperti berikut : Barang.DB Nama Field Type Size Kode + * Nama A 20 Harga $ Stock I StockMinimal I Penjualan.DB Nama Field Tanggal Kode Harga Qty Diskon
Type D I $ I N
Size
Nama Field Tanggal Kode Harga Qty
Type D I $ I
Size
Pembelian.DB
2.
Buatlah suatu Aplikasi baru. Kemudian ganti nama dari Form1 menjadi Futama (Form Utama) dan kemudian simpan dalam file UFUtama.Pas. Berilah komponen MainMenu yang ada di Standard dan buat daftar menu seperti berikut :
PEMBUATAN PROGRAM PENJUALAN SEDERHANA - 1
3.
Buatlah data modul kemudian beri nama data modul tersebut dengan DM dan kemudian simpan dalam UDM.Pas.
4. 5.
Tempatkan semua tabel yang akan digunakan dalam DataModul, lengkap dengan data sourcenya. Buatlah objek field dengan cara men-double klik tiap tabel kemudian klik kanan dan tekan Add All Fields. Buatlah sebuah form baru yang akan digunakan untuk pengolahan data barang. Berilah nama form ini dengan Fbarang atau FrmBarang dan simpan dalam file UFBarang.pas. Form barang dibuat seperti berikut :
6.
7.
Setelah membuat form Fbarang, kemudian buatlah suatu form baru untuk membuat form input data barang yang akan dimunculkan kalau pengguna menekan tombol tambah data atau edit data. Berilah nama formnya dengan FinputBarang dan simpan dalam file UFInputBarang.pas. Contoh FinputBarang adalah seperti gambar berikut :
PEMBUATAN PROGRAM PENJUALAN SEDERHANA - 2
8.
9.
10.
11.
12.
13.
Jangan lupa mengisi properti ModalResult dari tombol OK dengan Mrok dan untuk tombol Cancel diisi dengan MrCancel. Untuk edit gunakan DBEdit. Pada tombol Tambah pada FormBarang berilah perintah berikut : procedure TFBarang.TblTambahClick(Sender: TObject); begin DM.TBarang.Append;// atau DM.TBarang.Insert; FInputBarang.Showmodal; // menampilkan finputbarang If FinputBarang.ModalResult=mrok then // jika tekan simpan DM.TBarang.Post // simpan data else DM.TBarang.Cancel; // batalkan tambah data end; Pada tombol Edit pada Formbarang berilah perintah seperti berikut : procedure TFBarang.TblEditClick(Sender: TObject); begin DM.TBarang.Edit; // data mau diedit FInputBarang.Showmodal; // tampilkan finput barang If FinputBarang.ModalResult=mrok then // jika tekan simpan DM.TBarang.Post // simpan data else DM.TBarang.Cancel; // batalkan pengeditan data end; Pada tombol Hapus pada FormBarang berilah perintah seperti berikut : procedure TFBarang.TblHapusClick(Sender: TObject); begin if Messagedlg('Data Mau Dihapus ?',mtconfirmation, [mbyes,mbno],0)=mryes then // kalau jawab yes DM.TBarang.Delete; // hapus data end; Pada Tombol Keluar pada Form Barang berilah perintah berikut : procedure TFBarang.TblKeluarClick(Sender: TObject); begin Close; end; Untuk pemanggilan FormBarang dari Form Utama maka isilah event onclick dari menu Master – Barang seperti berikut : procedure TFUtama.Barang1Click(Sender: TObject); begin FBarang.Showmodal; // tampilkan Form Barang end; Buatlah laporan untuk melaporkan data semua barang dan harus bisa dipanggil pada menu Laporan – Laporan Barang.
PEMBUATAN PROGRAM PENJUALAN SEDERHANA - 3
14. Untuk form pengolahan data penjualan, buatlah sebuah form baru dan beri nama formnya dengan Fpenjualan dan simpan dalam file UFPenjualan.pas. Buatlah form seperti berikut :
15. Buatlah form baru untuk pemasukan data penjualan kemudian namailah dengan FinputPenjualan dan simpan dalam file UfinputPenjualan.pas. Lihat gambar :
DBLookupComboBox
Caranya : - Tempatkan Groupbox, label Nama barang dan label Qty. - Tempatkan Tombol OK dan Tombol Cancel, jangan lupa mengisi modal result dari kedua komponent tersebut dengan MrOK dan MrCancel - Tempatkan dua buah DBEdit dan mengganti properti Datasource dengan DM.DSPenjualan dan datafieldnya dengan Qty dan Diskon. - Tempatkan sebuah DBLookupComboBox yang ada pada komponen tab Data Control yang digunakan untuk pemilihan nama barang yang akan dijual dan kemudian ganti properti berikut : DataSource : DM.DSPenjualan DataField : Kode ListSource : DM.DSBarang ListField : NamaBarang KeyField : Kode 16. Kembali ke FormPenjualan, kemudian isi event onclick dari tombol transaksi dengan perintah seperti berikut : procedure TFPenjualan.TblJualClick(Sender: TObject); begin DM.TPenjualan.Append;// Tambah Penjualan DM.TPenjualan['Tanggal']:=Now; // isi Tanggal dengan Tanggal Sekarang (now) FInputPenjualan.Showmodal; // menampilkan FInputPenjualan
PEMBUATAN PROGRAM PENJUALAN SEDERHANA - 4
if FinputPenjualan.Modalresult=mrok then // Kalau menekan Tombol OK begin DM.TBarang.Findkey([DM.TPenjualan['Kode']]); // Cari Barang DM.TBarang.Edit; // Data Barang Mau DiEdit //Stock barang dikurangi dengan Qty Penjualan DM.TBarang['Stock']:=DM.TBarang['Stock']-DM.TPenjualan['Qty']; DM.TBarang.Post; // Simpan Data Barang //Harga Barang yang dijual diisi dari Harga barang dari tabel Barang DM.TPenjualan['Harga']:=DM.TBarang['Harga']; DM.TPenjualan.Post;//Simpan Penjualan end else // kalau tidak menekan OK DM.TPenjualan.Cancel; // Batalkan Penjualan end;
17. Supaya Fpenjualan dapat dipanggil dari menu utama, maka masukan perintah berikut pada event OnClick dari Menu Transaksi – Penjualan Barang. procedure TFUtama.PenjualanBarang1Click(Sender: TObject); begin FPenjualan.Showmodal; end; 18. Buat juga Laporan Penjualan barang yang akan dipanggil jika kita menekan menu Laporan – Laporan Penjualan. 19. Ulangi perintah langkah-langkah penjualan barang untuk proses pembelian barang. Perbedaannya kalau penjualan barang mengurangi stock, dan pembelian barang menambah stock.
PEMBUATAN PROGRAM PENJUALAN SEDERHANA - 5