Modul Pemrograman Visual 1 2011

August 31, 2017 | Author: Hira Wati | Category: N/A
Share Embed Donate


Short Description

Download Modul Pemrograman Visual 1 2011...

Description

MODUL KULIAH PEMROGRAMAN VISUAL 1 Disusun Oleh : RONNY FASLAH, S.KOM

LABORATORIUM KOMPUTER BISNIS POLITEKNIK NEGERI BANJARMASIN JURUSAN ADMINISTRASI BISNIS BANJARMASIN 2009 Pemrograman Visual 1 – Ronny Faslah - 2010

1

DAFTAR ISI DAFTAR ISI ..................................................................... 2 ATURAN PENGERJAAN LATIHAN .................................................. 4 PENILAIAN ..................................................................... 4 DAFTAR SHORTCUT ................................................................ 4 IDE DELPHI ..................................................................... 5 PROPERTY DAN EVENT ............................................................ 8 VARIABEL, PROCEDURE DAN FUNCTION....................................... 15 Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan Latihan

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

: : : : : : : : : : : : : : : :

Hello World! .................................................... 18 Kalkulator ....................................................... 20 Kalkulator Lagi! ................................................ 23 Tugas 1 .......................................................... 24 Curriculum Vitae ............................................... 25 Gaji Karyawan .................................................. 29 Discount! ........................................................ 32 Tarif Operator Telekomunikasi .............................. 33 Horoscope ....................................................... 35 Jangan bilang siapa-siapa! ................................... 38 Listrik Untuk Kehidupan yang Lebih Baik .................. 39 Grafik ............................................................ 42 Data Pegawai ................................................... 48 Music Player .................................................... 55 Text Editor ...................................................... 65 Image Viewer ................................................... 73

PROYEK SISTEM INFORMASI RENTAL VCD/DVD ............................... 84 Latihan 17 : Membuat Database Rental .................................... 86 Latihan 18 : Membuat Form Utama ........................................ 92 Latihan 19 : Membuat Form Login .......................................... 99 Latihan 20 : Membuat Form Setup ........................................ 104 Latihan 21 : Membuat Form Member ...................................... 107 Latihan 22 : Membuat QuickReport Kartu Member ..................... 118 Latihan 23 : Membuat Form Koleksi ....................................... 122 Latihan 24 : Membuat Form Pemasok ..................................... 133 Latihan 25 : Membuat Form Karyawan.................................... 137 Latihan 26 : Membuat Form Peminjaman ................................ 142 Latihan 27 : Membuat QuickReport Nota Peminjaman ................. 155 Latihan 28 : Membuat Form Pengembalian .............................. 161 Latihan 29 : Membuat QuickReport Nota Pengembalian ............... 173 Latihan 30 : Membuat Form Daftar Member ............................. 180 Latihan 31 : Membuat Form Daftar Koleksi .............................. 187 Latihan 32 : Membuat Form Statistik ..................................... 195 Latihan 33 : Membuat Form Laporan Peminjaman ...................... 207 Latihan 34 : Membuat QuickReport Laporan Peminjaman ............. 214 Latihan 35 : Membuat Form Laporan Pengembalian .................... 219

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

2

Latihan Latihan Latihan Latihan Latihan Latihan

36 37 38 39 40 41

: : : : : :

Membuat QuickReport Laporan Pengembalian ........... 226 Membuat Form Laporan Koleksi Belum Kembali ......... 231 Membuat QuickReport Laporan Koleksi Belum Kembali. 237 Membuat Form Laporan Pendapatan ...................... 243 Membuat Form About ........................................ 250 Membuat Form Splash ........................................ 253

FREQUENTLY ASK QUESTION (FAQ)........................................... 255

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

3

ATURAN PENGERJAAN LATIHAN 1. Baca petunjuk dengan seksama. 2. Kerjakan latihan sesuai dengan urutan langkah-langkah yang tertulis. Pastikan setiap langkah tidak tertinggal atau terlewat dikerjakan. 3. Setelah mengetikkan perintah biasakan menekan Ctrl+F9 untuk mengcompile dan mengecek kesalahan penulisan perintah. 4. Simpan masing-masing latihan dalam folder yang terpisah. 5. Simpanlah pekerjaan Anda secara regular untuk mencegah kehilangan data akibat mati lampu. 6. Segera minta penjelasan kepada dosen/instruktur apabila ada yang tidak dimengerti. 7. Segera lapor kepada dosen/instruktur apabila aplikasi sudah berjalan dengan benar untuk mendapatkan penilaian hasil latihan.

PENILAIAN Keterangan

Min

Max

Status

Nilai

Selesai Pertamakali

100

Lulus

66 - 100

Selesai Kedua dst.

85

Tidak Lulus

0 - 65

Hadir tapi tidak selesai

70

75

Izin/Sakit/Alpa

0

65

DAFTAR SHORTCUT Shortcut Ctrl+F9 F9

Keterangan Compile atau pengecekan kesalahan Run, menjalankan aplikasi. Untuk menutup aplikasi yang sedang berjalan tekan Ctrl+F4. Ctrl+F2 Program Reset, kalau terjadi kesalahan. Ctrl+Shift+S Save All, menyimpan project dan semua unit. F11 Menampilkan Object Inspector. F12 Menampilkan Form Designer atau Unit Editor. Ctrl+F12 Menampilkan Unit Editor Shift+F12 Menampilkan Form Designer. F7 / F8 Trace, menelusuri jalannya aplikasi. F5 Watch, mengamati perubahan variable. Ctrl+Alt+F11 Menampilkan Project Manager.

Pemrograman Visual 1 – Ronny Faslah - 2010

4

IDE DELPHI Integrated Development Environment (IDE) Delphi merupakan aplikasi pengembangan system informasi dalam lingkungan visual yang terintegrasi. Delphi mempunyai code editor, compiler dan debugger yang terintegrasi bahkan Delphi juga mendukung berbagai platform system database.

Berikut adalah bagian-bagian dalam IDE Delphi : 1. Menu

2. Toolbar

3. Tab Komponen / Component Pallette

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

5

4. Form Editor

5. Code Editor

6. Object TreeView

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

6

7. Object Inspector

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

7

PROPERTY DAN EVENT Property 1. Dalam modul ini perubahan property komponen dituliskan dalam bentuk table seperti ini :

Komponen Label1

Tab Standard

Parent Form1

GroupBox1 Label2 Edit1 Label1, Label2

Standard Standard Standard

Form1 GroupBox1 GroupBox1

Property Font.Color Font.Style.fsBold Caption Caption Text Font.Style.fsItalic

Value clBlack True Departemen Bagian True

a. Kolom Komponen menyatakan komponen yang akan diubah propertynya, jadi pastikan komponen tersebut telah terpilih dengan benar. b. Kolom Tab menyatakan dimana komponen tersebut berada dalam komponen palet, pada contoh di atas komponen Label terdapat dalam tab Standard. c. Kolom Parent menyatakan dimana komponen tersebut harus diletakkan. Pada contoh di atas Label1 dan GroupBox1 diletakkan di Form1 sedangkan Label2 dan Edit1 harus diletakkan di dalam GroupBox1. d. Kolom Property menunjukkan property atau subproperty apa yang harus diubah. Property suatu komponen ditampilkan dalam Object Inspector. e. Kolom Value menunjukkan nilai yang harus dipilih, diubah atau diisikan pada property yang bersangkutan. f. Apabila dalam kolom Komponen terdapat lebih dari satu komponen ditulis bersamaan, hal ini berarti komponen-komponen tersebut harus dipilih baru diubah nilai propertynya. Pada contoh table di atas (baris ke lima), pilih Label1 dan Label2 kemudian ubah nilai property Font.Style.fsItalic menjadu True. 2. Untuk menambahkan komponen ke dalam suatu form, pilih tab dimana komponen berada.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

8

Arahkan kursor mouse di atas komponen, tunggu beberapa saat untuk menampilkan nama komponen. Kemudian lakukan salah satu langkah berikut untuk menambahkan komponen ke Form : a. Klik dua kali komponen yang dipilih. Delphi akan menambahkan komponen tersebut pada tengah-tengah form. b. Klik komponen yang akan ditambahkan, klik di form untuk menambahkan. Delphi secara otomatis akan menampilkan komponen dalam ukuran default, jadi tidak perlu didrag seperti pada aplikasi Visual Basic. 3. Sebelum mengubah property suatu komponen, pastikan komponen tersebut sudah dipilih dengan benar. Untuk memilih komponen lakukan salah satu cara di bawah ini : a. Langsung dipilih pada form.

b. Memilih melalui Object TreeView.

c. Memilih melalui Object Inspector.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

9

4. Sedapat mungkin pilih nilai property dari pilihan yang tersedia. Komponen Form1

Tab

Parent

Property Position

Value poDesktopCenter

5. Tanda + di depan nama property menunjukkan adanya subproperty dibawahnya, klik tanda + untuk membuka subproperty. Komponen Label1

Tab Standard

Parent Form1

Property Font.Color Font.Style.fsBold

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value clBlack True

10

6. Tombol Ellipsis […] pada property menunjukkan adanya wizard atau jendela untuk pengisian nilai property. Klik tombol ellipsis untuk membuka jendela wizard.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

11

7. Khusus property warna, warna yang ditampilkan dalam pilihan adalah warna-warna standard ditambah dengan warna yang berlaku pada color scheme windows. Untuk membuat warna baru, klik dua kali pada nilai warna di Object Inspector untuk membuka jendela warna.

Klik tombol Define Custom Color, atur level Hue, Sat dan Lum atau atur level Red, Green dan Blue. Klik Add to Custom Color, klik OK untuk melanjutkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

12

Hue Sat

Lum

Events 1. Setiap komponen mempunyai event masing-masing. Event terletak pada tab Event di Object Inspector.

2. Event merupakan procedure standard yang digunakan untuk memberikan reaksi terhadap suatu tindakan user, misalkan event OnClick merupakan reaksi yang akan kita berikan apabila user mengklik suatu object. 3. Untuk membuat event, pilih komponen, klik tab Event pada Object Inspector, klik dua kali di samping kanan nama event untuk membuka jendela editor, ketikkan perintah diantara blok begin .. end.

Pemrograman Visual 1 – Ronny Faslah - 2010

13

Tugas : 1. Buat program sederhana untuk memasukkan Nama, Tempat Lahir, Tanggal Lahir, Agama, Pendidikan Terakhir, Alamat, dan Kota. Lakukan pengujian untuk Nama, Tanggal Lahir, Alamat dan Kota wajib diisi. 2. Tugas dikumpul pada pertemuan teori berikutnya!

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

14

VARIABEL, PROCEDURE DAN FUNCTION Deklarasi Variabel 1. Setiap variable yang digunakan dalam aplikasi harus dideklarasikan berikut dengan type datanya. 2. Variabel dapat dideklarasikan pada berbagai level antara lain : a. Pada Local Procedure, variable yang dideklarasikan pada level ini hanya dikenali pada procedure atau function ini saja. Pada gambar di bawah ini, variable I hanya bisa dipakai pada procedure tersebut.

b. Pada blok Private, variable yang dideklarasikan pada level ini hanya akan dikenali oleh semua procedure/function yang ada pada Unit tersebut. Pada gambar berikut, variable I hanya bisa dipakai dalam procedure/function di dalam Unit2.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

15

c. Pada blok Public, variable yang dideklarasikan pada blok ini bisa dikenali oleh procedure/function yang ada di dalam Unit yang sama dan Unit lain yang menggunakan Unit tersebut. Pada gambar berikut, variable I bisa dipakai baik oleh Unit2 maupun Unit1.

Membuat Procedure atau Function 1. Procedure merupakan pengelompokan perintah untuk membuat program lebih mudah dibaca, dipahami atau dimodifikasi. 2. Function sama seperti procedure akan tetapi mempunyai nilai hasil (result value). 3. Dalam Delphi, Event selalu dibuat dalam bentuk procedure, sedangkan function terdapat dalam method yang dimiliki oleh suatu komponen.

4. Seperti halnya variable, procedure atau function juga harus dideklarasikan. Deklarasi procedure meliputi nama procedure dan parameter yang akan digunakan, sedangkan function meliputi nama function, parameter dan type data yang akan dihasilkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

16

5. Procedure dan Function dapat dideklarasikan pada blok Private, Public atau pada local procedure/function lain. 6. Untuk membuat procedure/function pada blok Private/Public, ketikkan kata [procedure][function] diikuti nama procedure/function yang akan dibuat.

Tekan tombol Ctrl+Shift+C procedure/function.

di

keyboard

untuk

membuat

blok

Ketikkan perintah/statement diantara blok Begin..End.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

17

Latihan 1 : Hello World!

Membuat aplikasi untuk menampilkan input nama dan alamat. Apabila tombol submit ditekan, kalau nama dan alamat diisi maka tampilkan pesan ‘Terima Kasih’ jika tidak maka tampilan pesan ‘Nama dan Alamat harus diisi’. Langkah-langkah : 1. Klik Start – All Programs – Borland Delphi 6 – Delphi 6 untuk menjalankan Borland Delphi 6. 2. Pilih Form1 pada Object TreeView, ubah property seperti pada table di bawah ini : Komponen Form1

Tab

Parent

Property Caption Name Position

Value Latihan 1 FLatihan1 poDesktopCenter

3. Klik menu File – Save All untuk menyimpan project, simpan Unit1 menjadi UFLatihan1.pas dan Project1 menjadi Latihan1.dpr. Simpan dalam folder Latihan1. 4. Tambahkan 2 buah Label, 2 buah Edit dan 1 buah Button dari tab Standard ke dalam FLatihan1, atur property seperti table di bawah ini : Komponen Label1

Tab Standard

Parent FLatihan1

Label2

Standard

FLatihan1

Edit1 Edit2 Button1

Standard Standard Standard

FLatihan1 FLatihan1 FLatihan1

Property Caption Font.Color Font.Style Caption Font.Color Font.Style Text Text Caption

Value Nama clRed [fsBold, fsItalic] Alamat clBlue [fsBold, fsItalic]

Submit

5. Atur layout Form1 seperti gambar di bawah ini :

6. Pilih Button1 pada Object TreeView, klik tab Event pada Object Inspector, klik dua kali event onClick untuk membuka jendela editor. Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

18

7. Ketikkan perintah berikut pada blok procedure yang baru dibuat. Komponen Button1

Event OnClick

Code procedure TForm1.Button1Click(Sender: TObject); begin If (Edit1.Text '') And (Edit2.Text '') then MessageDlg('Terima Kasih', mtInformation, [mbOK], 0) Else MessageDlg('Nama dan Alamat Harus Diisi', mtError, [mbOK], 0); end;

8. Tekan Ctrl + F9 untuk compile, atau F9 untuk menjalankan. 9. Simpan hasil pekerjaan dengan langkah sebagai berikut : a. Buat folder dengan nama Latihan1. b. Klik File – Save All. c. Ganti nama file Unit1 menjadi ULatihan1.Pas, klik Save untuk menyimpan unit tersebut. d. Ganti nama file Project1 menjadi Latihan1.dpr, klik Save untuk menyimpan project tersebut.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

19

Latihan 2 : Kalkulator

Membuat aplikasi kalkulator sederhana untuk operasi pembagian.

Langkah-langkah : 1. Klik File – New – Application untuk membuat aplikasi baru. 2. Ubah property Form1 seperti table di bawah ini : Komponen Form1

Tab

Parent

Property Caption Name Position

Value ‘Latihan 2’ FLatihan2 poDesktopCenter

3. Tambahkan 3 buah Label dan 3 buah Edit dari tab Standard, atur property 4. Tambahkan komponen pada form untuk membuat tampilan seperti di bawah ini :

5. Ubah property komponen berikut ini pada saat runtime melalui event OnCreate Form1 (lihat Latihan 1 point 3) : Komponen Form1

Label1 Label2 Label3 Edit1

Tab

Standard Standard Standard Standard

Parent

Form1 Form1 Form1 Form1

Property Caption Name Position Caption Caption Caption Text

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value ‘Latihan 2’ FLatihan2 poDesktopCenter ‘Bilangan 1’ ‘Bilangan 2’ ‘Hasil’ ‘0’

20

Edit2 Edit3 Button1

Standard Standard Standard

Form1 Form1 Form1

Text Text Caption

‘0’ ‘0’ ‘Bagi’

6. Buat event OnClick pada Button1 : Komponen Button1

Event OnClick

Edit1 Edit2

OnKeyPress

Code procedure TFLatihan2.Button1Click(Sender: TObject); Var X, Y : Integer; Z : Real; begin X := strtoint(Edit1.Text); Y := strtoint(Edit2.Text); Z := X / Y; Edit3.Text := Floattostr(Z); end; procedure TFLatihan2.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9','.',#8]) then Key := #0; end;

7. Tekan F9 untuk menjalankan. 8. Apabila aplikasi dijalankan dan bilangan kedua diisi dengan 0 maka akan terjadi muncul pesan error ‘Floating Point Division by Zero’ atau error karena adanya pembagian dengan angka 0. Untuk memperbaiki hal tersebut ubah event OnClick Button1 seperti di bawah ini : Komponen Button1

Event OnClick

Code procedure TFLatihan2.Button1Click(Sender: TObject); Var X, Y : Integer; Z : Real; begin X := strtoint(Edit1.Text); Y := strtoint(Edit2.Text); If Y 0 then Begin Z := X / Y; Edit3.Text := Floattostr(Z); End Else ShowMessage('Bilangan 2 = 0'); end;

9. Untuk melakukan formatting bilangan real pada hasil pembagian dapat digunakan fungsi FormatFLoat(Format, Bilangan), ubah event OnClick Button1 menjadi : Komponen Button1

Event OnClick

Code procedure TFLatihan2.Button1Click(Sender: TObject); Var X, Y : Integer; Z : Real;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

21

begin X := strtoint(Edit1.Text); Y := strtoint(Edit2.Text); If Y 0 then Begin Z := X / Y; Edit3.Text := FormatFLoat(‘0.00’, Z); End Else ShowMessage('Bilangan 2 = 0'); end;

10. Simpan dalam folder Latihan 2, ubah nama Unit1 menjadi ULatihan2.pas dan Project1 menjadi Latihan2.dpr (lihat Latihan 1 point 6).

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

22

Latihan 3 : Kalkulator Lagi!

Melengkapi kalkulator pada latihan 2 dengan menambahkan button untuk operasi Kali, Tambah dan Kurang.

Langkah-langkah : 1. Tambahkan 3 button untuk operasi Kali, Tambah dan Kurang. 2. Buat event OnClick pada masing-masing button yang baru ditambahkan (lihat Latihan 2 point 4). 3. Simpan dalam folder Latihan 3. 4. Bandingkan jawaban Anda dengan jawaban pada bagian akhir modul ini.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

23

Latihan 4 : Tugas 1

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

24

Latihan 5 : Curriculum Vitae

Membuat aplikasi untuk memasukkan data Riwayat Hidup Karyawan. Langkah-langkah : 1. Buat aplikasi baru (lihat Latihan 2 point 1). 2. Tambahkan komponen pada Form1, ubah property masing-masing komponen seperti pada table di bawah ini :

3. Buat event OnCreate pada Form1, ubah property masing-masing komponen seperti pada table di bawah ini. Listing program dapat dilihat pada table di bawahnya, perhatikan cara mengisikan items pada Combobox1 dan ListBox1. Komponen Form1

Tab

Parent

Label1

Standard

Form1

Label2 Label3

Standard Standard

Form1 Form1

Property Caption Name Position BorderStyle Caption Alignment Font.Name Font.Size Caption Caption

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value ‘Latihan 5’ FLatihan3 poDesktopCenter bsSingle ‘Daftar Riwayat Hidup’ taCenter ‘Trebuchet MS’ 18 ‘Nama’ ‘Tempat, Tanggal Lahir’

25

Komponen DateTimePicker1 Label4 RadioButton1 RadioButton2 Label5 Combobox1

Tab Win32 Standard Standard Standard Standard Standard

Parent Form1 Form1 Form1 Form1 Form1 Form1

Property Date Caption Caption Caption Caption Items

Label6 ListBox1

Standard Standard

Form1 Form1

Style Caption Items

Label7 Label8 Edit3 Button1 Button2 Button3

Standard Standard Standard Standard Standard Standard

Form1 Form1 Form1 Form1 Form1 Form1

Sorted Caption Caption MaxLength Caption Caption Caption

Komponen FLatihan3

Event OnCreate

Value Now ‘Jenis Kelamin’ ‘Pria’ ‘Wanita’ ‘Agama’ ‘Islam’ ‘Katolik’ ‘Protestan’ ‘Hindu’ ‘Budha’ csDropDownList ‘Pekerjaan’ ‘PNS’ ‘Swasta’ ‘TNI/Polri’ ‘Petani/Nelayan’ ‘Lainnya’ True; ‘Alamat’ ‘Kodepos’ 5 ‘Save’ ‘Reset’ ‘Close’

Code procedure TFLatihan3.FormCreate(Sender: TObject); begin Caption := 'Latihan 5'; Position := poDesktopCenter; BorderStyle := bsSingle; Label1.Caption := 'Daftar Riwayat Hidup'; Label1.Alignment := taCenter; Label1.Font.Name := 'Trebuchet MS'; Label1.Font.Size := 18; Label2.Caption := 'Nama'; Label3.Caption := 'Tempat, Tanggal Lahir'; //Menampilkan tanggal sekarang. DateTimePicker1.Date := Now; Label4.Caption := 'Jenis Kelamin'; RadioButton1.Caption := 'Pria'; RadioButton2.Caption := 'Wanita'; Label5.Caption := 'Agama'; //Menambahkan pilihan pada Combobox1 Combobox1.Items.Add('Islam'); Combobox1.Items.Add('Katolik'); Combobox1.Items.Add('Protestan'); Combobox1.Items.Add('Hindu'); Combobox1.Items.Add('Budha');

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

26

Combobox1.Style := csDropDownList; Label6.Caption := 'Pekerjaan'; //Menambahkan pilihan pada Listbox1 ListBox1.Items.Add('PNS'); ListBox1.Items.Add('Swasta'); ListBox1.Items.Add('TNI/POLRI'); ListBox1.Items.Add('Petani/Nelayan'); ListBox1.Items.Add('Lainnya'); ListBox1.Sorted := True; Label7.Caption := 'Alamat'; Label8.Caption := 'Kodepos'; Edit3.MaxLength := 5; Button1.Caption := 'Save'; Button2.Caption := 'Reset'; Button3.Caption := 'Close'; //Prosedur untuk mengosongkan form, lihat point 4. ResetForm; End;

4. Buat procedure ResetForm untuk menghapus isian form dengan langkah sebagai berikut : a. Ketikkan ‘procedure ResetForm;’ pada blok private/public. b. Tekan Ctrl + Shift + C untuk membuat blok procedure. c. Ketikkan statement di bawah ini : Komponen FLatihan3

Procedure ResetForm

Code procedure TFLatihan3.ResetForm; begin Edit1.Text := ''; Edit2.Text := ''; DateTimePicker1.Date := Now; Memo1.Text := ''; Edit3.Text := ''; End;

5. Buat Event On Click untuk Button1, Button2 dan Button3. Komponen Button1

Event OnClick

Button2

OnClick

Button3

OnClick

Code procedure TFLatihan3.Button1Click(Sender: TObject); begin ShowMessage('Terima Kasih ' + Edit1.Text + #13 + 'Anda telah mengisi Daftar Riwayat Hidup'); end; procedure TFLatihan3.Button2Click(Sender: TObject); begin ResetForm end; procedure TFLatihan3.Button3Click(Sender: TObject); begin Application.Terminate; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

27

6. Tekan F9 untuk menjalankan. 7. Simpan dalam folder Latihan 5.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

28

Latihan 6 : Gaji Karyawan

PT. Nusantara Jaya mempunyai 3 Departemen yaitu Administrasi, Keuangan dan Marketing. Untuk jenjang karier karyawan terdapat 4 Golongan yaitu I, II, III, dan IV. Departemen dan Golongan menentukan Gaji Pokok karyawan seperti pada table berikut ini : Administrasi Keuangan Marketing

I 750000 1000000 1250000

II 1000000 1250000 1500000

III 1250000 1500000 1750000

IV 1500000 1750000 2000000

Hanya Karyawan pria yang menikah mendapatkan Tunjangan Istri dan Tunjangan Anak. Tunjangan Istri sebesar 10% dari Gaji Pokok. Tunjangan Anak dihitung berdasarkan jumlah anak dengan aturan maksimal 2 anak yang diperhitungkan sebesar 5% dari Gaji Pokok. Total Gaji adalah gabungan Gaji Pokok, Tunjangan Istri dan Tunjangan Anak. Langkah-langkah : 1. Buat aplikasi baru (lihat Latihan 2 point 1), tambahkan komponen dan atur tata letaknya seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

29

2. Ubah property masing-masing komponen seperti pada table di bawah ini, lakukan perubahan menggunakan metode Design Time yaitu langsung melakukan perubahan nilai property pada Object Inspector : Komponen Form1

Tab

Label1

Standard

Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11 Combobox1

Standard Standard Standard Standard Standard Standard Standard Standard Standard Standard Standard

Property Caption Name Position Color Caption Font.Style Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption Items

Style Items

ListBox1

RadioButton1 RadioButton2 CheckBox1 SpinEdit1 Button1 Button2 Button3

Standard Standard Standard Samples Standard Standard Standard

Caption Caption Caption MaxValue Caption Caption Caption

Value ‘Latihan 6’ FLatihan6 poDesktopCenter $00FF80FF ‘PERHITUNGAN GAJI KARYAWAN’ [fsBold] ‘Nama’ ‘Departemen’ ‘Golongan’ ‘Jenis Kelamin’ ‘Status’ ‘Jumlah Anak’ ‘Gaji Pokok’ ‘Tunjangan Istri’ ‘Tunjangan Anak’ ‘Total Gaji’ ‘Administrasi’ ‘Keuangan’ ‘Marketing’ csDropDownList I II III IV ‘Pria’ ‘Wanita’ ‘Menikah’ 10 ‘Hitung’ ‘Reset’ ‘Close’

3. Buat event On Click untuk Button1, Button2, Button3 : Komponen Button1

Event OnClick

Code procedure TFLatihan6.Button1Click(Sender: TObject); Const GajiPokok : Array [0..2,0..3] of Real = ((750000, 1000000, 1250000, 1500000), (1000000, 1250000, 1500000, 1750000), (1250000, 1500000, 1750000, 2000000)); var GP, TI, TA, TG : Real; begin GP := GajiPokok[Combobox1.ItemIndex,ListBox1.ItemIndex]; TI := 0; TA := 0; TG := 0;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

30

Button2

OnClick

Button3

OnClick

If CheckBox1.Checked And RadioButton1.Checked Then Begin TI := GP * 10 /100; If strtoint(SpinEdit1.Text) 60 0 – 30 31 – 60 > 60 0 – 30 31 – 60 > 60 0 – 30 31 – 60 > 60 0 – 30 31 – 60 > 60 0 – 30 31 – 60 > 60 0 – 30 31 – 60 > 60 0 – 30

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Biaya Pemakaian (Rp/Kwh) 123 265 360 200 295 360 169 360 495 275 445 495 385 445 495 254 420 470 420 465 515 470

39

31 – 60 > 60

473 523

Contoh perhitungan : Misalkan golongan Sosial dengan daya 900 Watt dan jumlah pemakaian 123 Kwh maka : Biaya Beban Biaya Pemakaian 123

= 900 / 1000 * 15000

= 13.500,-

= 123 * 360

= 44.280,-

Total Biaya Listrik Pajak Penerangan Jalan Umum (3%)

= 57.780,= 1.733,= 59.513,-

Materai Total Tagihan

=0 = 59.513,-

Catatan : 1. Pajak penerangan jalan umum (PPJU) sebesar 3% dari tagihan listrik. 2. Jika total biaya listrik + PPJU < 250.000 maka Materai = 0, Jika total biaya listrik + PPJU antara 250.000 – 1.000.000 maka Materai = 3000, Jika total biaya listrik + PPJU > 1.000.000 maka Materai = 6000.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

40

Langkah-langkah : 1. Buat aplikasi baru, tambahkan komponen dan atur tata letak komponen seperti contoh. 2. Gunakan struktur data Array untuk menyimpan data Biaya Beban dan Biaya Pemakaian. 3. Buat event onClick pada RadioGroup1 untuk mengupdate perubahan item Daya pada RadioGroup2. 4. Buat event onClick pada Button1 untuk melakukan perhitungan tarif. 5. Uji aplikasi, pilih Golongan, pilih Daya dan isi jumlah pemakaian, klik button hitung untuk melihat hasil perhitungan. 6. Simpan dalam folder Latihan 11.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

41

Latihan 12 : Grafik

Membuat berbagai bentuk grafik bentuk dasar dan turunannya. Pada aplikasi juga dapat dipilih warna garis, ketebalan garis, style garis, warna latar dan style latar. Untuk menampilkan grafik digunakan menubar yang menyediakan pilihan tampilan masing-masing bentuk grafik. Grafik ditampilkan pada form terpisah dan terbagi dalam empat buah tabsheet.

Langkah-langkah : 1. Buat aplikasi baru, tambahkan komponen MainMenu (ada pada tab Standard), double klik untuk membuka Menu Designer, buat MenuItem dan atur property komponen lain seperti dibawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

42

File Exit

Komponen Form1

MainMenu1 Statusbar1

Tab

Standard Win32

Shape Rectangle … Round Rectangle … Ellipse … Polygon … Property Caption Name Position Items

Value ‘Latihan 12’ FLatihan12 poDesktopCenter (Menu)

2. Klik menu File – New – Form, untuk membuat form baru (Form2). Tambahkan komponen dan atur property seperti pada table di bawah ini : Komponen Form2

Tab

Parent

Property Caption Name Position Height Width

Value ‘Standard Shape’ FGrafik poDesktopCenter 513 416

clBlack 1 psSolid psDash psDot psDashDot psDashDotDot psClear csDropDownList clRed bsClear bsSolid bsCross bsHorizontal bsBDiagonal bsFDiagonal bsDiagCross bsVertical csDropDownList alClient ‘Rectangle’ ‘Round Rectangle’ ‘Ellipse’ ‘Polygon’ alClient alClient alClient

Toolbar1 Toolbar2 ColorBox1 SpinEdit1 Combobox1

Win32 Win32 Additional Sample Standard

Form2 Form2 Toolbar1 Toolbar1 Toolbar1

Selected Value Items

ColorBox2 Combobox2

Additional Standard

Toolbar2 Toolbar2

Style Selected Items

PageControl1 TabSheet1 TabSheet2 TabSheet3 TabSheet4 PaintBox1 PaintBox2 PaintBox3

Win32

Form2 PageControl1 PageControl1 PageControl1 PageControl1 TabSheet1 TabSheet2 TabSheet3

Style Align Caption Caption Caption Caption Align Align Align

System System System

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

43

Komponen PaintBox4

Tab System

Parent TabSheet4

Property Align

Value alClient

3. Buat function PenStyle pada Form2, ketikkan ‘function PenStyle(S:Integer):TPenStyle;’ di blok private, tekan Ctrl + Shift + C, ketikkan statement berikut : Komponen FGrafik

Procedure PenStyle

Code function TFGrafik.PenStyle(S: Integer): TPenStyle; var PS : TPenStyle; begin Case S Of 0 : PS := psSolid; 1 : PS := psDash; 2 : PS := psDot; 3 : PS := psDashDot; 4 : PS := psDashDotDot; 5 : PS := psClear; End; Result := PS; end;

4. Buat function BrushStyle pada Form2, ketikkan ‘function BrushStyle(S:Integer):TBrushStyle;’ di blok private, tekan Ctrl + Shift + C, ketikkan statement berikut : Komponen FGrafik

Procedure BrushStyle

Code function TFGrafik.BrushStyle(S: Integer): TBrushStyle; var BS : TBrushStyle; begin Case S Of 0 : BS := bsClear; 1 : BS := bsSolid; 2 : BS := bsCross; 3 : BS := bsHorizontal; 4 : BS := bsBDiagonal; 5 : BS := bsFDiagonal; 6 : BS := bsDiagCross; 7 : BS := bsVertical; End; Result := BS; End;

5. Buat variable baru pada blok public dengan nama ‘Shape:Integer’ untuk menampung pilihan bentuk yang ingin ditampilkan. 6. Buat event onCreate dan onShow pada Form2, ketikkan statement berikut ini : Komponen FGrafik

Event oCreate

Code procedure TFGrafik.FormCreate(Sender: TObject);

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

44

onShow

begin Shape := 1; PageControl1.ActivePage := TabSheet1; end; procedure TFGrafik.FormShow(Sender: TObject); begin Case Shape Of 1 : PageControl1.ActivePage := TabSheet1; 2 : PageControl1.ActivePage := TabSheet2; 3 : PageControl1.ActivePage := TabSheet3; 4 : PageControl1.ActivePage := TabSheet4; End; end;

7. Buat event onPaint pada komponen PaintBox1, PaintBox2, PaintBox3 dan PaintBox4 di Form2, ketikkan statement berikut ini : Komponen PaintBox1

Event OnPaint

PaintBox2

OnPaint

PaintBox3

OnPaint

Code procedure TFGrafik.PaintBox1Paint(Sender: TObject); begin With PaintBox1 do Begin Canvas.Pen.Color := ColorBox1.Selected; Canvas.Pen.Width := SpinEdit1.Value; Canvas.Pen.Style := PenStyle(ComboBox1.ItemIndex); Canvas.Brush.Color := ColorBox2.Selected; Canvas.Brush.Style := BrushStyle(Combobox2.ItemIndex); Canvas.Rectangle(20, 20, PaintBox1.Width - 20, PaintBox1.Height - 20); End; end; procedure TFGrafik.PaintBox2Paint(Sender: TObject); begin With PaintBox2 do Begin Canvas.Pen.Color := ColorBox1.Selected; Canvas.Pen.Width := SpinEdit1.Value; Canvas.Pen.Style := PenStyle(ComboBox1.ItemIndex); Canvas.Brush.Color := ColorBox2.Selected; Canvas.Brush.Style := BrushStyle(Combobox2.ItemIndex); Canvas.RoundRect(20, 20, PaintBox2.Width - 20, PaintBox2.Height - 20, 30, 30); End; end; procedure TFGrafik.PaintBox3Paint(Sender: TObject); begin With PaintBox3 do Begin Canvas.Pen.Color := ColorBox1.Selected; Canvas.Pen.Width := SpinEdit1.Value; Canvas.Pen.Style := PenStyle(ComboBox1.ItemIndex); Canvas.Brush.Color := ColorBox2.Selected; Canvas.Brush.Style := BrushStyle(Combobox2.ItemIndex); Canvas.Ellipse(20, 20, PaintBox3.Width - 20, PaintBox3.Height - 20);

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

45

End; end;

PaintBox4

OnPaint

procedure TFGrafik.PaintBox4Paint(Sender: TObject); Const PI = 22/7; var P : Array[0..360] of TPoint; a, R, count, CenterX, CenterY : Integer; c : real; begin Count := 8; C := 2*PI/Count; R := (PaintBox4.Width - 40) div 2; CenterX := PaintBox4.Width div 2; CenterY := PaintBox4.Height Div 2; For A := 0 to Count - 1 do Begin P[A].X := CenterX - Round(R * Cos(A*C+PI/2)); P[A].Y := CenterY - Round(R * Sin(A*C+PI/2)); End; With PaintBox4 do Begin Canvas.Pen.Color := ColorBox1.Selected; Canvas.Pen.Width := SpinEdit1.Value; Canvas.Pen.Style := PenStyle(ComboBox1.ItemIndex); Canvas.Brush.Color := ColorBox2.Selected; Canvas.Brush.Style := BrushStyle(Combobox2.ItemIndex); Canvas.Polygon(Slice(P, Count)); End; end;

8. Buat event onChange untuk komponen ColorBox1, SpinEdit1, Ketikkan statement Combobox1, ColorBox2 dan Combobox2. berikut ini : Komponen ColorBox1

Event OnChange

SpinEdit1 Combobox1 ColorBox2 Combobox2

onChange onChange onChange onChange

Code procedure TForm2.ColorBox1Change(Sender: TObject); begin Case PageControl1.TabIndex of 0 : PaintBox1Paint(Self); 1 : PaintBox2Paint(Self); 2 : PaintBox3Paint(Self); 3 : PaintBox4Paint(Self); End; end; ColorBox1Change(Self); ColorBox1Change(Self); ColorBox1Change(Self); ColorBox1Cahnge(Self);

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

46

9. Kembali ke FLatihan12, buat event onClick pada masing-masing MenuItem, ketikkan statement berikut ini : Komponen Exit1

Event onClick

Rectangle1

onClick

RoundRectangle1

onClick

Ellipse1

onClick

Polygon1

onClick

Code procedure TFLatihan12.Exit1Click(Sender: TObject); begin Application.Terminate; end; procedure TFLatihan12.Rectangle1Click(Sender: TObject); begin FGrafik.Shape := 1; FGrafik.ShowModal; end; procedure TFLatihan12.RoundRectangle1Click(Sender: TObject); begin FGrafik.Shape := 2; FGrafik.ShowModal; end; procedure TFLatihan12.Ellipse1Click(Sender: TObject); begin FGrafik.Shape := 3; FGrafik.ShowModal; end; procedure TFLatihan12.Polygon1Click(Sender: TObject); begin FGrafik.Shape := 4; FGrafik.ShowModal; end;

10. Tekan F9 untuk menjalankan. 11. Klik File – Save All untuk menyimpan semua unit dan project, simpan dalam folder Latihan 12.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

47

Latihan 13 : Data Pegawai

Aplikasi ini menggunakan konsep Array dan Record untuk menyimpan data Karyawan secara temporer. Aplikasi menggunakan dua buah form, Form1 untuk memasukkan data karyawan dan Form2 untuk menampilkan data dalam bentuk table pada komponen TStringGrid. Folder Button = C:\Program Files\Common Files\Borland Shared\Images\Buttons Langkah-langkah : 1. Buat aplikasi baru, klik File – New – Application … 2. Tambahkan 3 buah Label dan 2 buah Edit dari tab Standard, ubah property seperti table di bawah ini : Komponen Label1

Tab Standard

Parent Form1

Label2 Label3 Edit1, Edit2

Standard Standard Standard

Form1 Form1 Form1

Property Caption Font.Style Caption Caption Text

Value Data Karyawan [fsBold] NIK Nama

3. Tambahkan RadioGroup1 dan GroupBox1 dari tab Standard, ubah property seperti table di bawah ini : Komponen RadioGroup1

GroupBox1

Tab Standard

Standard

Parent Form1

Property Items

Form1

Caption Columns Caption

Value Administrasi Keuangan Kepegawaian Pemasaran Bagian 2 Penghasilan

4. Tambahkan 3 buah Label dan 3 buah Edit dari tab Standard ke dalam GroupBox1. Ubah property seperti table di bawah ini : Komponen Label4 Label5 Label6 Edit3 Edit4 Edit5

Tab Standard Standard Standard Standard Standard Standard

Parent GroupBox1 GroupBox1 GroupBox1 GroupBox1 GroupBox1 GroupBox1

Property Caption Caption Caption Text Text Text

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Gaji Pokok Tunjangan Total Gaji 0 0 0

48

5. Tambahkan 4 buah BitBtn dari tab Additional. Ubah property seperti table di bawah ini : Komponen BitBtn1

Tab Additional

Parent Form1

BitBtn2

Additional

Form1

BitBtn3

Additional

Form1

BitBtn4

Additional

Form1

Property Caption Glyph Caption Glyph Caption Glyph Caption Glyph

Value Simpan Filesave.bmp Reset Retry.bmp Close Dooropen.bmp Daftar Foldrdoc.bmp

6. Atur layout Form1 seperti gambar di bawah ini :

7. Deklarasikan type Record KaryawanRec didalam blok type pada unit1. Lihat gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

49

8. Deklarasikan variable Array sebanyak 10 elemen [0..9] dengan type KaryawanRec dan variable NoUrut dengan type Integer pada blok Var. Lihat gambar di bawah ini :

9. Buat event-event berikut pada masing-masing komponen : Komponen Form1

Event OnCreate

Code procedure TForm1.FormCreate(Sender: TObject); begin NoUrut := 0; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

50

Komponen Edit3, Edit4

Event OnChange

BitBtn2

onClick

BitBtn1

OnClick

BitBtn3

onClick

Code procedure TForm1.Edit3Change(Sender: TObject); Var G, T : Real; Begin If Edit3.Text ‘’ then G := strtofloat(Edit3.Text) Else G := 0; If Edit4.Text ‘’ then T := strtofloat(Edit4.Text) Else T := 0; Edit5.Text := FormatFloat(',0', G + T); end; procedure TForm1.BitBtn2Click(Sender: TObject); begin Edit1.Text := ''; Edit2.Text := ''; RadioGroup1.ItemIndex := -1; Edit3.Text := '0'; Edit4.Text := '0'; Edit5.Text := '0'; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin If MessageDlg('Simpan Data?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Begin Karyawan[NoUrut].NIK := Edit1.Text; Karyawan[NoUrut].Nama := Edit2.Text; Karyawan[NoUrut].KodeBagian := RadioGroup1.ItemIndex; Karyawan[NoUrut].GajiPokok := strtofloat(Edit3.Text); Karyawan[NoUrut].Tunjangan := strtofloat(Edit4.Text); NoUrut := NoUrut + 1; BitBtn2Click(Self); End; end; procedure TForm1.BitBtn3Click(Sender: TObject); begin Close; end;

10. Klik menu File – New – Form untuk membuat form baru (Form2). 11. Tambahkan 1 buah BitBtn dan 1 buah StringGrid dari tab Additional. Ubah property seperti table di bawah ini : Komponen BitBtn1

Tab Additional

Parent Form2

StringGrid1

Additional

Form2

Property Caption Glyph ColCount RowCount

Value Close Dooropen.bmp 7 11

12. Klik menu File – Use Unit, kemudian pilih Unit1. Klik OK untuk melanjutkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

51

13. Buat event-event berikut pada masing-masing komponen : Komponen Form2

Event OnCreate

onShow

Code procedure TForm2.FormCreate(Sender: TObject); begin With StringGrid1 do Begin Cells[0,0] := 'NO.'; Cells[1,0] := 'NIK'; Cells[2,0] := 'NAMA'; Cells[3,0] := 'BAGIAN'; Cells[4,0] := 'GAJI POKOK'; Cells[5,0] := 'TUNJANGAN'; Cells[6,0] := 'TOTAL'; End; end; procedure TForm2.FormShow(Sender: TObject); Var Baris : Integer; begin For Baris := 0 to NoUrut - 1 do Begin With StringGrid1 do Begin Cells[0, Baris + 1] := inttostr(Baris + 1); Cells[1, Baris + 1] := Karyawan[Baris].NIK; Cells[2, Baris + 1] := Karyawan[Baris].Nama; Cells[3, Baris + 1] := Form1.RadioGroup1.Items[Karyawan[Baris].KodeBagian]; Cells[4, Baris + 1] := FormatFloat(',0', Karyawan[Baris].GajiPokok); Cells[5, Baris + 1] := FormatFloat(',0', Karyawan[Baris].Tunjangan); Cells[6, Baris + 1] := FormatFloat(',0', Karyawan[Baris].GajiPokok + Karyawan[Baris].Tunjangan); End;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

52

Komponen

Event

BitBtn1

onClick

Code End; end; procedure TForm2.BitBtn1Click(Sender: TObject); begin Close; end;

14. Kembali ke Form1, klik menu File – Use Unit, pilih Unit2. Klik OK untuk melanjutkan (lihat point 12). 15. Buat event onClick pada komponen BitBtn4, ketikkan perintah seperti table di bawah ini : Komponen BitBtn4

Event onClick

Code procedure TForm1.BitBtn4Click(Sender: TObject); begin Form2.ShowModal; end;

16. Jalankan dan uji aplikasi. Isi NIK dan Nama, pilih Bagian, Isi Gaji Pokok dan Tunjangan. Klik Simpan untuk menyimpan data karyawan. Klik Reset untuk mengosongkan form. Klik Daftar untuk menampilkan data yang telah dimasukkan dalam bentuk tabulasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

53

17. Klik File – Save All untuk menyimpan semua unit dan project, simpan dalam folder Latihan 13.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

54

Latihan 14 : Music Player

Aplikasi berikut ini merupakan contoh pembuatan form dengan berbagai bentuk dan contoh penerapan komponen MediaPlayer untuk memainkan file music dengan ekstensi *.mp3, *.wav dan *.mid. Aplikasi akan terdiri dari 2 buah form yaitu form1 untuk interface mp3 player dan form2 untuk interface playlist. Langkah-langkah : 1. Buat dua buah gambar berikut menggunakan Microsoft Paint atau aplikasi lain. Gambar pertama (Form1.bmp) untuk interface mp3 player dan gambar kedua (Form2.bmp) untuk interface playlist (daftar lagu).

Contoh gambar form dan button ada pada folder ‘Materi Latihan 13, 14 dan 15’.

2. Buat aplikasi baru, klik File – New – Applications … 3. Ubah property Form1 seperti pada table di bawah ini : Komponen Form1

Tab

Parent

Property AlphaBlend AlphaBlendValue Autosize BorderStyle TransparentColor TransparentColorValue

Value True 250 True bsNone True clWhite

4. Tambahkan Image1, ubah property Image1 seperti pada table di bawah ini : Komponen Image1

Tab Additional

Parent Form1

Property Autosize Picture

Value True Form1.bmp

5. Tambahkan 5 buah Label, ubah property masing-masing komponen seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

55

Komponen Label1

Tab Standard

Parent Form1

Label2 Label3 Label4 Label5 Label1, Label2, Label3, Label4, Label5 Label3, Label4, Label5

Standard Standard Standard Standard

Form1 Form1 Form1 Form1

Property Caption AutoSize Font.Style Caption Caption Caption Caption Transparent

Value Judul Lagu False [fsBold] Waktu Repeat Shuffle StayOnTop True

Enabled

False

6. Tambahkan ProgressBar1 dari tab Win32. 7. Tambahkan MediaPlayer1 dari tab System. Ubah property berikut : Komponen MediaPlayer1

Tab System

Parent Form1

Property Visible

Value False

8. Tambahkan Timer1 dari tab System. Ubah property berikut : Komponen Timer1

Tab System

Parent Form1

Property Enabled

Value False

9. Tambahkan 10 buah Image, ubah property masing-masing komponen seperti table di bawah ini : Komponen Image2, Image3, Image4, Image5, Image6, Image7, Image8, Image9, Image10, Image11 Image2 Image3 Image4 Image5 Image6 Image7 Image8 Image9 Image10 Image11

Tab Additional

Parent Form1

Property Autosize Cursor Transparent

Value True crHandPoint True

Picture Picture Picture Picture Picture Picture Picture Picture Picture Picture

8play24.bmp 8Pause24.bmp 8stop24.bmp 8backward24.bmp 8forward24.bmp 8chat24.bmp 8refresh24.bmp 8stats24.bmp 8app24.bmp 8close24.bmp

10. Atur layout masing-masing komponen seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

56

11. Buat form baru (Form2), klik menu File – New – Form. 12. Ubah property pada Form2 seperti pada table di bawah ini : Komponen Form2

Tab

Parent

Property AlphaBlend AlphaBlendValue Autosize BorderStyle TransparentColor TransparentColorValue

Value True 250 True bsNone True clWhite

13. Tambahkan 6 buah komponen Image, ubah property masing-masing komponen seperti pada table di bawah ini : Komponen Image1

Tab Additional

Parent Form2

Image2, Image3, Image4, Image5, Image6 Image2 Image3 Image4 Image5 Image6

Property Autosize Picture Autosize Cursor Transparent Picture Picture Picture Picture Picture

Value True Form2.bmp True crHandPoint True 8addfile24.bmp 8trash24.bmp 8floppy24.bmp 8foldermove24.bmp 8close24.bmp

14. Tambahkan komponen ListBox1 dari tab Standard, ubah property ListBox1 seperti pada table di bawah ini : Komponen ListBox1

Tab Standard

Parent Form2

Property Color Ctl3D

Value $00C080FF False

15. Tambahkan 2 buah komponen OpenDialog dan 1 buah SaveDialog dari tab Dialog, ubah property masing-masing komponen seperti pada table di bawah ini : Komponen OpenDialog1

OpenDialog2

SaveDialog1

Tab Dialog

Dialog

Dialog

Parent Form2

Form2

Form2

Property DefaultExt Filter Options. ofAllowMultiSelect DefaultExt Filter DefaultExt Filter

Value *.mp3 Filter Name File Musik (*.mp3, *.wav, *.mid) True *.pls Filter Name File Playlist (*.pls) *.pls Filter Name File Playlist (*.pls)

Filter *.mp3; *.wav; *.mid

Filter *.pls Filter *.pls

16. Atur layout Form2 seperti pada gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

57

17. Buat event berikut pada masing-masing komponen seperti pada table di bawah ini : Komponen Form2

Event onCreate

Image1

onMouseDown

Image2

onClick

Image3

onClick

Code procedure TForm2.FormCreate(Sender: TObject); begin Left := Form1.Left; Top := Form1.Top + Form1.Height; end; procedure TForm2.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); end; procedure TForm2.Image2Click(Sender: TObject); Var NoUrut : Integer; begin If OpenDialog1.Execute then Begin NoUrut := ListBox1.Items.Count - 1; ListBox1.Items.AddStrings(OpenDialog1.Files); If ListBox1.Items.Count > 0 then ListBox1.ItemIndex := NoUrut + 1; End; end; procedure TForm2.Image3Click(Sender: TObject); begin If ListBox1.ItemIndex >= 0 then ListBox1.Items.Delete(ListBox1.ItemIndex); end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

58

Komponen Image4

Event onClick

Image5

onClick

Image6

onClick

Code procedure TForm2.Image4Click(Sender: TObject); begin If SaveDialog1.Execute then ListBox1.Items.SaveToFile(SaveDialog1.FileName); end; procedure TForm2.Image5Click(Sender: TObject); begin If OpenDialog2.Execute then Begin ListBox1.Items.LoadFromFile(OpenDialog2.FileName); If ListBox1.Items.Count > 0 then ListBox1.ItemIndex := 0; End; end; procedure TForm2.Image6Click(Sender: TObject); begin Close; end;

18. Kembali ke Form1. Gunakan Project Manager (Ctrl+Alt+F11) atau pilih Unit1 pada Code Editor kemudian tekan F12.

19. Tambahkan variable State dengan type Integer pada blok Public, lihat gambar berikut :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

59

20. Buat procedure Play, Pause, Resume, Stop, Next dan Prev pada blok Public (lihat gambar di point 19), tekan Ctrl+Shift+C untuk membuat blok procedure dan ketikkan perintah berikut ini : Komponen Form1

Procedure Play

Form1

Pause

Form1

Resume

Code procedure TForm1.Play; begin With Form2 do Begin If ListBox1.ItemIndex -1 then Begin MediaPlayer1.FileName := ListBox1.Items[ListBox1.ItemIndex]; MediaPlayer1.Open; Form1.Label1.Caption := MediaPlayer1.FileName; Timer1.Enabled := True; ProgressBar1.Max := MediaPlayer1.Length; MediaPlayer1.Notify := True; State := 1; MediaPlayer1.Play; End; End; end; procedure TForm1.Pause; begin If State = 1 then Begin State := 2; Timer1.Enabled := False; MediaPlayer1.Pause; End; end; procedure TForm1.Resume; begin If State = 2 then Begin State := 1;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

60

Komponen

Procedure

Form1

Stop

Form1

Next

Form1

Prev

Code Timer1.Enabled := True; MediaPlayer1.Resume; End; end; procedure TForm1.Stop; begin If State = 1 then Begin State := 0; Timer1.Enabled := False; MediaPlayer1.Stop; End; end; procedure TForm1.Next; begin If State in [0, 1, 2] then Begin With Form2.ListBox1 do Begin If ItemIndex = (Items.Count - 1) then Begin If Label3.Enabled then ItemIndex := 0 else ItemIndex := -1; End else ItemIndex := ItemIndex + 1; If Label4.Enabled then ItemIndex := Random(Items.Count - 1); End; Play; End; end; procedure TForm1.Prev; begin With Form2.ListBox1 do Begin If ItemIndex = 0 then ItemIndex := Items.Count - 1 else ItemIndex := ItemIndex - 1; If Label4.Enabled then ItemIndex := Random(Items.Count - 1); End; Play; end;

21. Buat function Int2TimeStr(I : Integer):String; pada blok Public (lihat gambar di point 19). Tekan Ctrl+Shift+C untuk membuat blok function, ketikkan perintah berikut ini : Komponen Form1

Function Int2TimeStr

Code function TForm1.Int2TimeStr(I: Integer): String; begin I := I Div 1000; Result := FormatFloat('00', I Div 3600) + ':' + FormatFloat('00', I Div 60) + ':' + FormatFloat('00', I Mod 60); end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

61

22. Buat event berikut pada masing-masing komponen seperti pada table di bawah ini : Komponen Form1

Event OnCreate

onShow

Timer1

OnTimer

Image1

onMouse Down

Image2

onClick

Image3

onClick

Image4

onClick

Image5

onClick

Image6

onClick

Code procedure TForm1.FormCreate(Sender: TObject); begin MediaPlayer1.TimeFormat := tfMilliseconds; State := 0; Randomize; end; procedure TForm1.FormShow(Sender: TObject); begin Form2.Show; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label2.Caption := Int2TimeStr(MediaPlayer1.Position) + ' / ' + Int2TimeStr(MediaPlayer1.Length); ProgressBar1.Position := MediaPlayer1.Position; If (State = 1) And (MediaPlayer1.Position >= MediaPlayer1.Length) then Begin Stop; Next; End; end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); end; procedure TForm1.Image2Click(Sender: TObject); begin If State in [0, 1] then Play else Resume; end; procedure TForm1.Image3Click(Sender: TObject); begin Pause; end; procedure TForm1.Image4Click(Sender: TObject); begin Stop; end; procedure TForm1.Image5Click(Sender: TObject); begin Prev; end; procedure TForm1.Image6Click(Sender: TObject); begin Next;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

62

Komponen

Event

Image7

onClick

Image8

onClick

Image9

onClick

Image10

onClick

Image11

onClick

Code end; procedure TForm1.Image7Click(Sender: TObject); begin Form2.Show; end; procedure TForm1.Image8Click(Sender: TObject); begin Label3.Enabled := not Label3.Enabled; end; procedure TForm1.Image9Click(Sender: TObject); begin Label4.Enabled := not Label4.Enabled; end; procedure TForm1.Image10Click(Sender: TObject); begin Label5.Enabled := Not Label5.Enabled; If Label5.Enabled then FormStyle := fsStayOnTop else FormStyle := fsNormal; end; procedure TForm1.Image11Click(Sender: TObject); begin Close; end;

23. Kembali ke Form2. 24. Buat event onDblClick pada ListBox1 seperti pada table di bawah ini : Komponen ListBox1

Event onDblClick

Code procedure TForm2.ListBox1DblClick(Sender: TObject); begin Form1.Play; end;

25. Simpan seluruh project, klik menu File – Save All, simpan dalam folder Latihan14. 26. Uji dan jalankan aplikasi, perhatikan saat pengujian pada beberapa action tampil CPU Windows, tekan F9 (Run) untuk melanjutkan. CPU Windows hanya muncul pada saat desain, kalau dijalankan langsung dari file execution hal ini tidak akan tampil.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

63

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

64

Latihan 15 : Text Editor

Aplikasi berikut ini merupakan contoh implementasi komponen RichText, Action Manager, Action Menubar dan Action Toolbar. Aplikasi Text Editor ini menggunakan konsep MDI (Multi Document Interface). Langkah-langkah : 1. Buat aplikasi baru, klik File – New – Application. 2. Ubah property Form1 seperti pada table di bawah ini : Komponen Form1

Tab

Parent

Property Caption FormStyle WindowState

Value Text Editor fsMDIForm wsMaximized

3. Tambahkan StatusBar1 dari tab Win32. 4. Buka file Contoh.pas, copy dan paste komponen ImageList1 ke Form1. 5. Tambahkan komponen ActionManager1 dari tab Additional, ubah property seperti table di bawah ini : Komponen ActionManager1

Tab Additional

Parent Form1

Property Images

Value ImageList1

6. Klik dua kali komponen ActionManager1. Klik tombol Action, pilih New Action untuk membuat Action1.

7. Pilih Action1 pada Object TreeView, ubah property seperti pada table di bawah ini : Komponen Action1

Property Caption Category

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value New… File

65

Komponen

Property ImageIndex Name

Value 6 FileNew1

8. Masih di ActionManager1, klik tombol Action (lihat gambar point 6), pilih New Standard Action untuk membuka jendela Standard Action Classes, pada section File pilih TFileOpen, TFileExit, TWindowCascade, TWindowTileHorizontal, dan TWindowTileVertical (gunakan tombol Ctrl untuk multiselect). Klik OK untuk melanjutkan.

9. Tambahkan komponen ActionMainMenuBar1 dari tab Additional. 10. Klik dua kali ActionManager1. Drag and drop File dari Category ke ActionMainMenuBar1. Drag and drop Window dari Category ke ActionMainMenuBar1.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

66

11. Tambahkan komponen ActionToolBar1 dari tab Additional. 12. Klik dua kali ActionManager1. Drag and drop New… dari Actions ke ActionToolBar1. Drag and drop Open… dari Actions ke ActionToolBar1. Drag and drop Exit dari Actions ke ActionToolBar1.

13. Pilih FileOpen1 pada Object TreeView.

14. Ubah property pada FileOpen1 seperti pada table di bawah ini : Komponen FileOpen1

Property Dialog.DefaultExt Dialog.Filter

Value *.txt Filter Name File Teks (*.txt) Semua File (*.*)

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Filter *.txt *.*

67

Komponen

Property Dialog.Title

Value Buka File

15. Pada tahap ini seharusnya Form1 mempunyai layout seperti gambar di bawah ini :

16. Buat form baru (Form2), klik menu File – New – Form. 17. Copy dan Paste ImageList1 dari Form1 ke Form2. 18. Tambahkan komponen StatusBar1 dari tab Win32. 19. Tambahkan komponen RichEdit1 dari tab Win32. 20. Tambahkan komponen ActionManager1 dari tab Additional. 21. Ubah property masing-masing komponen seperti table di bawah ini : Komponen Form2 RichEdit1

Tab

Parent

Win32

Form2

ActionManager1

Additional

Form2

Property FormStyle Align ScrollBars Lines Image

Value fsMDIChild alClient ssBoth ‘’ ImageList1

22. Klik dua kali komponen ActionManager1. 23. Klik tombol Action (lihat point 6), pilih New Standard Action, tambahkan TEditCut, TEditCopy, TEditPaste, TEditUndo, TEditDelete, TRichEditBold, TRichEditItalic, TRichEditUnderline, TRichEditStrikeOut, TRichEditBullets, TRichEditAlignLeft, TRichEditAlignRight, TRichEditAlignCenter, TFileSaveAs, TColorSelect dan TFontEdit. Klik OK untuk melanjutkan. 24. Tambahkan komponen ActionToolBar1 dari tab Additional. 25. Klik dua kali komponen ActionManager1. 26. Drag dan drop Actions Save As, Cut, Paste, Undo, Delete, Bold, Italic, Underline, Strikeout, Bullets, Align Left, Align Center, Align Rigt, Select Color, dan Select Font dari masing-masing Category ke ActionToolBar1. 27. Pilih FileSaveAs1 pada Object TreeView, ubah property seperti pada table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

68

Komponen FileSaveAs1

Property Dialog.DefaultExt Dialog.Filter

Dialog.Title

Value *.txt Filter Name File Teks (*.txt) Semua File (*.*) Simpan

Filter *.txt *.*

28. Pada tahap ini seharusnya Form2 mempunyai layout seperti gambar di bawah ini :

29. Klik menu Project – Options untuk membuka jendela Project Options. Pada tab Forms, pindahkan Form2 dari Auto-Create Forms ke Available Forms seperti pada gambar di bawah ini, klik OK untuk melanjutkan

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

69

30. Pilih ColorSelect1 pada Object TreeView, buat event BeforeExecute dan onAccept, ketikkan perintah seperti pada table di bawah ini : Komponen ColorSelect1

Event BeforExecute

onAccept

Code procedure TForm2.ColorSelect1BeforeExecute(Sender: TObject); begin ColorSelect1.Dialog.Color := RichEdit1.SelAttributes.Color; end; procedure TForm2.ColorSelect1Accept(Sender: TObject); begin RichEdit1.SelAttributes.Color := ColorSelect1.Dialog.Color; end;

31. Pilih FontEdit1 pada Object TreeView, buat event BeforeExecute dan onAccept, ketikkan perintah seperti pada table di bawah ini : Komponen FontEdit1

Event BeforExecute

onAccept

Code procedure TForm2.FontEdit1BeforeExecute(Sender: TObject); begin With FontEdit1.Dialog do Begin Font.Name := RichEdit1.SelAttributes.Name; Font.Color := RichEdit1.SelAttributes.Color; Font.Style := RichEdit1.SelAttributes.Style; Font.Size := RichEdit1.SelAttributes.Size; End; end; procedure TForm2.FontEdit1Accept(Sender: TObject); begin With RichEdit1 do Begin SelAttributes.Name := FontEdit1.Dialog.Font.Name; SelAttributes.Color := FontEdit1.Dialog.Font.Color; SelAttributes.Style := FontEdit1.Dialog.Font.Style; SelAttributes.Size := FontEdit1.Dialog.Font.Size; end; end;

32. Pilih FileSaveAs1 pada Object TreeView, buat event BeforeExecute dan onAccept, ketikkan perintah seperti pada table di bawah ini : Komponen FileSaveAs1

Event BeforExecute

onAccept

Code procedure TForm2.FileSaveAs1BeforeExecute(Sender: TObject); begin If Caption = 'Untitled.txt' then FileSaveAs1.Dialog.FileName := Caption; end; procedure TForm2.FileSaveAs1Accept(Sender: TObject); begin RichEdit1.Lines.SaveToFile(FileSaveAs1.Dialog.FileName); Caption := FileSaveAs1.Dialog.FileName; end;

33. Pilih Form2 pada Object TreeView, buat event onClose onCloseQuery, ketikkan perintah seperti pada table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

dan

70

Komponen Form2

Event onClose

onClose Query

Code procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin If RichEdit1.Modified then Begin If Caption = 'Untitled.txt' then FileSaveAs1.Execute else Case MessageDlg('Simpan?', mtConfirmation, mbYesNoCancel, 0) of mrYes : RichEdit1.Lines.SaveToFile(Caption); mrNo : CanClose := True; mrCancel : CanClose := False; End; End; end;

34. Kembali ke Form1. 35. Pastikan Anda sudah berada pada Form1, klik menu File – Use Unit.., pilih Unit2, klik OK untuk melanjutkan. 36. Pilih FileNew1 pada Object TreeView, buat event onExecute, ketikkan perintah seperti pada table di bawah ini : Komponen FileNew1

Event onExecute

Code procedure TForm1.FileNew1Execute(Sender: TObject); begin Application.CreateForm(TForm2, Form2); Form2.Caption := 'Untitled.txt'; end;

37. Pilih FileOpen1 pada Object TreeView, buat event onAccept, ketikkan perintah seperti pada table di bawah ini : Komponen FileOpen1

Event onAccept

Code procedure TForm1.FileOpen1Accept(Sender: TObject); begin Application.CreateForm(TForm2, Form2); With Form2 do Begin Caption := FileOpen1.Dialog.FileName; RichEdit1.Lines.LoadFromFile(FileOpen1.Dialog.FileName); RichEdit1.Modified := False; end; end;

38. Klik Form1 pada Object TreeView, buat event onShow, ketikkan perintah seperti pada table di bawah ini : Komponen Form1

Event onShow

Code procedure TForm1.FormShow(Sender: TObject); begin

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

71

Komponen

Event

Code FileNew1Execute(Self); end;

39. Jalankan dan uji aplikasi. Pertama kali aplikasi akan menampilkan jendela editor kosong dengan nama ‘Untitled.txt’. Pilih menu File – Open… untuk membuka file teks. File akan dibuka pada jendela tersendiri. Pilih menu Window Cascade dan Window Tile untuk mengatur susunan jendela yang dibuka.

40. Simpan dalam folder Latihan 15.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

72

Latihan 16 : Image Viewer

Aplikasi berikut ini merupakan implementasi beberapa fungsi grafik yang ada dalam Delphi seperti penggunaan Pen dan Brush untuk menggambar bentuk-bentuk dasar. Aplikasi terdiri dari 3 buah form, Form1 dalam bentuk MDI sebagai form utama, Form2 untuk menampilkan image atau menggambar bentuk-bentuk dasar dan Form3 untuk menampilkan demo Random Shape. Langkah-langkah : 1. Buat aplikasi baru, klik File – New – Application. 2. Pilih Form1 pada Object TreeView, Ubah property seperti pada table di bawah ini : Komponen Form1

Tab

Parent

Property Caption FormStyle WindowState

Value Image Viewer fsMDIForm wsMaximized

3. Tambahkan StatusBar1 dari tab Win32. 4. Tambahkan MainMenu1 dari tab Standard. Klik dua kali MainMenu1 untuk membuka menu editor. Buat mainmenu dengan struktur seperti di bawah ini : Menu File

SubMenu New Picture Open Picture -----------------Exit

Demo Random Shapes Windows Cascade Tile Vertical Tile Horizontal

Property Caption Caption ShortCut Caption Shortcut Caption Caption Caption Caption Caption Caption Caption Caption

Value &File &New Picture… Ctrl+N &Open Picture… Ctrl+O E&xit &Demo &Random Shapes… &windows &Cascade Tile &Vertical… Tile &Horizontal

5. Tambahkan OpenPictureDialog1 dari tab Dialogs, ubah property seperti pada table di bawah ini : Komponen OpenPictureDialog1

Tab Dialogs

Parent Form1

Property Title

Value Open Picture

6. Pada tahap ini seharusnya Form1 mempunyai layout seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

73

7. Klik menu File – Save All, untuk menyimpan Project1 dan Unit1. 8. Buat form baru (Form2), klik menu File – New – Form. 9. Pilih Form2 pada Object TreeView, ubah property seperti pada table di bawah ini : Komponen Form2

Tab

Parent

Property Caption FormStyle WindowState

Value fsMDIChild wsMaximized

10. Tambahkan 3 buah Toolbar dari tab Win32. 11. Tambahkan 1 buah StatusBar dari tab Win32. Klik dua kali StatusBar1 untuk membuka jendela Panel Editor, klik kanan pada area kosong Panel Editor, pilih Add untuk menambahkan panel baru. Tambahkan 3 buah panel (lihat gambar berikut).

Ubah property masing-masing panel seperti pada table dibawah ini : Komponen StatusBar1.Panels[0] StatusBar1.Panels[1] StatusBar1.Panels[2]

Property Text Width Text Width Text

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Dimensi : 150 Posisi : 150 Ukuran :

74

Width

150

12. Tambahkan 5 buah SpeedButton dari tab Additional ke dalam ToolBar1, ubah property seperti pada table di bawah ini : Komponen SpeedButton1 SpeedButton2 SpeedButton3 SpeedButton4 SpeedButton5 SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4, SpeedButton5 SpeedButton2, SpeedButton3, SpeedButton4, SpeedButton5 SpeedButton2

Parent ToolBar1 ToolBar1 ToolBar1 ToolBar1 ToolBar1

Property Glyph Glyph Glyph Glyph Glyph Flat

Value Save.bmp Rectangle.bmp RoundRect.bmp Ellipse.bmp Lines.bmp True

GroupIndex

1

Down

True

13. Tambahkan ColorBox1 dari tab Additional ke dalam ToolBar2, ubah property seperti pada table di bawah ini : Komponen ColorBox1

Parent ToolBar2

Property Selected

Value clBlack

14. Tambahkan 2 buah Combobox dari tab Standard ke dalam ToolBar2, ubah property seperti table di bawah ini : Komponen Combobox1

Combobox2

Parent ToolBar2

Property Items

ToolBar2

ItemIndex Style Items

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value psSolid psDash psDot psDashColor psDashDotDot psClear psInsideFrame 0 csOwnerDrawVariable pmBlack pmWhite pmNop pmNot pmCopy pmNotCopy pmMergePenNot pmMaskPenNot pmMergeNotPen pmMaskNotPen pmMerge pmNotMerge pmMask pmNotMask

75

Komponen

Parent

Property

Style ItemIndex

Value pmXOR pmNotXOR csDropDownList 4

15. Tambahkan SpinEdit1 dari tab Samples ke dalam ToolBar2, ubah property seperti table di bawah ini : Komponen SpinEdit1

Parent ToolBar2

Property MaxValue MinValue

Value 10 1

16. Tambahkan ColorBox2 dari tab Additional ke dalam ToolBar3, ubah property seperti table di bawah ini : Komponen ColorBox1

Parent ToolBar2

Property Selected

Value clRed

17. Tambahkan Combobox3 dari tab Additional ke dalam ToolBar3, ubah property seperti table di bawah ini : Komponen Combobox1

Parent ToolBar2

Property Items

Style ItemIndex

Value bsSolid bsClear bsHorizontal bsVertical bsBDiagonal bsCross bsDiagCross csDropDownList 0

18. Tambahkan ScrollBox1 dari tab Additional ke Form2, ubah property seperti table di bawah ini : Komponen ScrollBox1

Parent Form2

Property Align

Value alClient

19. Tambahkan Image1 dari tab Additional ke dalam ScrollBox1, ubah property seperti table di bawah ini : Komponen Image1

Parent ScrollBox1

Property Align

Value alClient

20. Tambahkan SavePictureDialog1 dari tab Dialogs ke Form2, ubah property seperti table di bawah ini : Komponen SavePictureDialog1

Parent Form2

Property Title

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Save Picture

76

21. Pada tahap ini seharusnya Form2 mempunyai layout seperti gambar di bawah ini :

22. Pilih Combobox1 pada Object TreeView, buat event OnDrawItem, ketikkan perintah seperti table di bawah ini : Komponen Combobox1

Event onDrawItem

Code procedure TForm2.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin With Combobox1.Canvas do Begin Pen.Color := ColorBox1.Selected; Pen.Style := TPenStyle(Index); MoveTo(Rect.Left + 1, Rect.Top + 5); LineTo(50, Rect.Top + 5); TextOut(60, Rect.Top + 1, Combobox1.Items[Index]); End; end;

23. Pilih SpeedButton1 pada Object TreeView, buat event OnClick, ketikkan perintah seperti table di bawah ini ; Komponen SpeedButton1

Event onClick

Code procedure TForm2.SpeedButton1Click(Sender: TObject); begin SavePictureDialog1.FileName := Caption; If SavePictureDialog1.Execute then Begin Image1.Picture.SaveToFile(SavePictureDialog1.FileName); Caption := SavePictureDialog1.FileName; End; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

77

24. Pilih Form2 pada Object TreeView, buat event onClose, OnCloseQuery dan onShow, ketikkan perintah seperti table di bawah ini : Komponen Form2

Event OnClose

OnCloseQuery

onShow

Code procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin If Caption = 'Untitled.txt' then SpeedButton1Click(self) else Begin If Image1.Picture.Graphic is TBitmap then Case MessageDlg('Simpan?', mtConfirmation, mbYesNoCancel, 0) of mrYes : SpeedButton1Click(Self); mrNo : CanClose := True; mrCancel : CanClose := False; End; End; end; procedure TForm2.FormShow(Sender: TObject); begin StatusBar1.Panels[0].Text := 'Dimensi : ' + inttostr(Image1.Width) + ' x ' + inttostr(Image1.Height); end;

25. Tambahkan Variabel SP dan CP dengan type data TPoint pada blok Private, lihat gambar berikut :

26. Buat Procedure DrawShape pada blok Private (lihat gambar di atas), tekan Ctrl+Shift+C untuk membuat blok procedure, ketikan perintah seperti table di bawah ini : Komponen Form2

Procedure DrawShape

Code procedure TForm2.DrawShape; begin

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

78

Komponen

Procedure

Code With Image1.Canvas do Begin If SpeedButton2.Down then Rectangle(SP.X, SP.Y, CP.X, CP.Y); If SpeedButton3.Down then RoundRect(SP.X, SP.Y, CP.X, CP.Y, 30, 30); If SpeedButton4.Down then Ellipse(SP.X, SP.Y, CP.X, CP.Y); If SpeedButton5.Down then Begin MoveTo(SP.X, SP.Y); LineTo(CP.X, CP.Y); End; End; end;

27. Pilih Image1 pada Object TreeView, buat event OnMouseDown, OnMouseMove dan OnMouseUp, ketikkan perintah seperti table di bawah ini : Komponen Image1

Event OnMouseDown

OnMouseMove

Code procedure TForm2.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If Image1.Picture.Graphic is TBitmap then With Image1.Canvas do Begin SP := Point(X, Y); CP := Point(X, Y); Pen.Width := 1; Pen.Style := psDot; Pen.Color := clBlack; Brush.Style := bsClear; Pen.Mode := pmNotXOR; DrawShape; End; end; procedure TForm2.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin If (Image1.Picture.Graphic is TBitmap) and SpeedButton2.Down or SpeedButton3.Down or SpeedButton4.Down or SpeedButton5.Down then Begin If ssLeft in Shift then Begin DrawShape; CP := Point(X, Y); DrawShape; End; StatusBar1.Panels[2].Text := 'Ukuran : ' + inttostr(abs(CP.X - SP.X)) + ' x ' + inttostr(abs(CP.Y - SP.Y));

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

79

Komponen

Event

OnMouseUp

Code End; StatusBar1.Panels[1].Text := 'Posisi : ' + inttostr(X) + ', ' + inttostr(Y); end; procedure TForm2.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If Image1.Picture.Graphic is TBitmap then With Image1.Canvas do Begin DrawShape; CP := Point(X, Y); Pen.Width := SpinEdit1.Value; Pen.Color := ColorBox1.Selected; Pen.Style := TPenStyle(Combobox1.ItemIndex); Pen.Mode := TPenMode(Combobox2.ItemIndex); Brush.Color := ColorBox2.Selected; Brush.Style := TBrushStyle(Combobox3.ItemIndex); DrawShape; End; end;

28. Klik menu File – Save All, untuk menyimpan Project dan seluruh Unit. 29. Klik menu File – New – Form, untuk membuat form baru (Form3). 30. Pilih Form3 pada Object TreeView, ubah property seperti table di bawah ini ; Komponen Form3

Parent

Property Caption FormStyle WindowState

Value Random Shapes fsMDIChild wsMaximized

31. Tambahkan PaintBox1 dan Timer1 dari tab System, ubah property seperti table di bawah ini : Komponen PaintBox1 Timer1

Parent Form3 Form3

Property Align Interval

Value alClient 10

32. Pada tahap ini seharusnya Form3 mempunyai layout seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

80

33. Buat variable PosX, PosY, Panjang, Lebar, dan shape dengan type data Integer pada blok Private, lihat gambar berikut :

34. Pilih Form3 pada Object TreeView, buat event OnClose dan OnCreate, ketikkan perintah seperti table di bawah ini : Komponen Form

Event OnClose

OnCreate

Code procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TForm3.FormCreate(Sender: TObject); begin Randomize; end;

35. Pilih Timer1 pada Object TreeView, buat event OnTimer, ketikkan perintah seperti table di bawah ini : Komponen Timer1

Event OnTimer

Code procedure TForm3.Timer1Timer(Sender: TObject); begin With PaintBox1.Canvas do Begin Pen.Width := Random(5); Pen.Mode := TPenMode(Random(15)); Pen.Color := RGB(Random(255), Random(255), Random(255)); Brush.Color := RGB(Random(255), Random(255),

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

81

Komponen

Event

Code Random(255)); Shape := Random(3); PosX := Random(Width); PosY := Random(Height); Panjang := Random(200)+ 50; Lebar := Random(200) + 50; Case Shape of 0 : Rectangle(PosX, PosY, PosX + Panjang, PosY + Lebar); 1 : RoundRect(PosX, PosY, PosX + Panjang, PosY + Lebar, Random(30), Random(30)); 2 : Ellipse(PosX, PosY, PosX + Panjang, PosY + Lebar); End; End; end;

36. Klik menu File – Save All untuk menyimpan Project dan seluruh Unit. 37. Kembali ke Form1. Klik menu View – Forms, pilih Form1, klik OK untuk melanjutkan. 38. Klik File – Use unit, pilih Unit2 dan Unit3, klik OK untuk melanjutkan. 39. Buat event OnClick untuk tiap menuitem, ketikkan perintah seperti table di bawah ini : Komponen NewPicture1

Event OnClick

OpenPicture1

OnClick

Exit1

OnClick

RandomShape1

OnClick

Cascade1

OnClick

Code procedure TForm1.NewPicture1Click(Sender: TObject); begin Application.CreateForm(TForm2, Form2); Form2.Caption := 'Untitled.bmp'; end; procedure TForm1.OpenPicture1Click(Sender: TObject); begin If OpenPictureDialog1.Execute then With Form2 do Begin Application.CreateForm(TForm2, Form2); Caption := OpenPictureDialog1.FileName; With Image1 do Begin Picture.LoadFromFile(OpenPictureDialog1.FileName); Align := alNone; End; End; end; procedure TForm1.Keluar1Click(Sender: TObject); begin Close; end; procedure TForm1.RandomShapes1Click(Sender: TObject); begin Application.CreateForm(TForm3, Form3); end; procedure TForm1.Cascade1Click(Sender: TObject); begin Cascade; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

82

Komponen TileVertical1

Event OnClick

TileHorizontal1

OnClick

Code procedure TForm1.ileVertically1Click(Sender: TObject); begin TileMode := tbVertical; Tile; end; procedure TForm1.ileHorizontally1Click(Sender: TObject); begin TileMode := tbHorizontal; Tile; end;

40. Klik File – Save All untuk menyimpan Project dan seluruh Unit. 41. Uji dan jalankan aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

83

PROYEK SISTEM INFORMASI RENTAL VCD/DVD Proyek ini merupakan tugas akhir semester 3 yang akan dijadikan salah satu komponen nilai akhir semester matakuliah Pemrograman Visual 1. Kebutuhan Fungsional : 1. Member - Member dapat melakukan pencarian koleksi dan membaca informasi atau melihat preview koleksi film. - Member yang terdaftar dapat melihat histori transaksi yang pernah dilakukannya. 2. Karyawan - Karyawan bisa melakukan login ke dalam aplikasi. - Karyawan dapat memasukkan transaksi peminjaman dan pengembalian koleksi. - Karyawan dapat melihat laporan transaksi harian. - Karyawan dapat melakukan manajemen data member. - Karyawan dapat melakukan manajemen data koleksi. - Karyawan dapat melakukan pencarian data koleksi - Karyawan dapat melakukan pencarian data member. - Karyawan dapat melihat histori transaksi member. 3. Pemilik/Administrator - Pemilik/Administrator dapat melakukan login ke aplikasi. - Pemilik/Administrator dapat melihat laporan transaksi per periode. - Pemilik/Administrator dapat melakukan manajemen data Karyawan, Koleksi dan Member - Pemilik/Administrator dapat melihat laporan pendapatan.

Matriks Penggunaan Form Pengguna Form

Unit

Fungsi

FUtama FLogin FSetup FMember

UFUtama UFLogin UFSetup UFMember

Form Utama Login Setup Data Pelanggan

FKoleksi

UFKoleksi

Data Koleksi

FPemasok FKaryawan FPinjam

UFPemasok UFKaryawan UFPinjam

FKembali

UFKembali

Data Pemasok Data Karyawan Transaksi Peminjaman Transaksi

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Member

Karyawan

Ya Tidak Tidak Ya, View Only Ya, View Only Tidak Tidak Tidak

Ya Ya Tidak Ya

Pemilik / Admin Ya Ya Ya Ya

Ya

Ya

Tidak Tidak Ya

Ya Ya Ya

Tidak

Ya

Ya

84

Pengguna Form

Unit

FDMember FDKoleksi FLPinjam

UFDMember UFDKoleksi UFLPinjam

FLKembali

UFLKembali

FLKoleksi

UFLKoleksi

FLPendapatan FStatistik FAbout

UFLPendapatan UFLStatistik UFAbout

Fungsi Pengembalian Daftar Pelanggan Daftar Koleksi Laporan Transaksi Peminjaman Laporan Transaksi Pengembalian Laporan Koleksi belum Kembali Laporan Pendapatan Statistik About

Pemilik / Admin

Member

Karyawan

Ya Ya Tidak

Ya Ya Ya

Tidak

Ya Ya Ya, Terbatas Ya, Terbatas Ya

Tidak Ya Ya

Tidak Ya Ya

Ya Ya Ya

Tidak

Ya Ya

Entity Relationship Diagram (ERD)

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

85

Latihan 17 : Membuat Database Rental

Aplikasi yang digunakan untuk merancang database rental adalah Microsoft Access 2003. Database rental terdiri dari table Pelanggan, Koleksi, Karyawan, Pemasok, Pinjam, DPinjam, Kembali dan Setup. Langkah-langkah : 1. Buat folder dengan nama Rental. 2. Jalankan aplikasi Microsoft Access 2003, klik Start – All Programs – Microsoft Office – Microsoft Access 2003. 3. Buat database baru, klik menu File – New…, pilih Blank Database (lihat gambar di bawah ini).

4. Pilih folder Rental dimana file database akan disimpan (folder yang telah dibuat pada point 1), isi File Name dengan Rental.mdb, klik tombol Create untuk membuat database (lihat gambar berikut).

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

86

5. Buat table baru, klik dua kali Create Table in Design View (lihat gambar berikut).

6. Isi FieldName, pilih Datatype dan atur Field Properties seperti table di bawah ini : Field Name MemberID Nama Alamat Kota TandaPengenal

Data Type AutoNumber Text Text Text Text

Field Properties FieldSize FieldSize FieldSize FieldSize FieldSize

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Long Integer 30 50 30 3

Ket. PK

87

Field Name NoTandaPengenal TeleponRumah Handphone TglDaftar Status Passwords Photo

Data Type Text Text Text Date/Time Text Text OLE Object

Field Properties FieldSize FieldSize FieldSize Format FieldSize Fieldsize

Value 30 30 30 ShortDate 10 10

Ket.

7. Tentukan MemberID sebagai Primary Key, klik kanan pada baris MemberID kemudian pilih Primary Key (lihat gambar di atas). 8. Simpan table, pilih menu File – Save… atau tekan Ctrl+S, isi Table Name dengan Member, klik OK untuk melanjutkan (lihat gambar berikut).

9. Buat table baru (table Koleksi), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini, tentukan KoleksiID sebagai Primary Key dan simpan dengan nama table Koleksi (lihat point 4 s/d 7). Field Name KoleksiID

Data Type AutoNumber

Field Properties FieldSize

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Long Integer

Ket. PK

88

Field Name Judul PemeranUtama Kategori JenisKoleksi TglBeli HargaBeli PemasokID LamaSewa HargaSewa HargaDenda Jumlah Cover Preview KaryawanID

Data Type Text Text Text Text Date/Time Currency Number Number Currency Currency Number OLE Object Text Number

Field Properties FieldSize FieldSize FieldSize FieldSize Format

Value 50 100 20 10 ShortDate

FieldSize FieldSize

Long Integer Long Integer

FieldSize

Long Integer

FieldSize FieldSize

200 Long Integer

Ket.

10. Buat table baru (table Karyawan), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini, tentukan KaryawanID sebagai Primary Key dan simpan dengan nama table Karyawan (lihat point 4 s/d 7). Field Name KaryawanID Nama Alamat Kota Handphone HakAkses Passwords Photo

Data Type AutoNumber Text Text Text Text Number Text OLEObject

Field Properties FieldSize FieldSize FieldSize FieldSize FieldSize FieldSize FieldSize

Value Long Integer 30 50 30 30 Long Integer 10

Ket. PK

11. Buat table baru (table Pemasok), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini, tentukan PemasokID sebagai Primary Key dan simpan dengan nama table Pemasok (lihat point 4 s/d 7). Field Name PemasokID Nama Alamat Kota Telepon

Data Type AutoNumber Text Text Text Text

Field Properties FieldSize FieldSize FieldSize FieldSize FieldSize

Value Long Integer 30 50 30 30

Ket. PK

12. Buat table baru (table Pinjam), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini, tentukan PinjamID sebagai Primary Key dan simpan dengan nama table Pinjam (lihat point 4 s/d 7). Field Name PinjamID TglPinjam MemberID TotalSewa KaryawanID

Data Type AutoNumber Date/Time Number Currency Number

Field Properties FieldSize Format FieldSize

Value Long Integer ShortDate Long Integer

FieldSize

Long Integer

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Ket. PK

89

13. Buat table baru (table DPinjam), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini, tentukan DPinjamID sebagai Primary Key dan simpan dengan nama table DPinjam (lihat point 4 s/d 7). Field Name DPinjamID PinjamID KoleksiID HargaSewa TglHarusKembali KembaliID HargaDenda

Data Type AutoNumber Number Number Currency Date/Time Number Currency

Field Properties FieldSize FieldSize FieldSize

Value Long Integer Long Integer Long Integer

Format FieldSize

ShortDate Long Integer

Ket. PK

14. Buat table baru (table Kembali), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini, tentukan KembaliID sebagai Primary Key dan simpan dengan nama table Kembali (lihat point 4 s/d 7). Field Name KembaliID TglKembali MemberID TotalDenda KaryawanID

Data Type AutoNumber Date/Time Number Currency Number

Field Properties FieldSize Format FieldSize

Value Long Integer ShortDate Long Integer

Field Size

Long Integer

Ket. PK

15. Buat table baru (table Rental), isi Field Name, pilih data type dan atur Field Properties seperti table di bawah ini dan simpan dengan nama table Rental (lihat point 4 s/d 7). Field Name Nama Alamat Telepon Pemilik

Data Type Text Text Text Text

Field Properties FieldSize FieldSize FieldSize FieldSize

Value 30 50 30 30

Ket.

16. Pada tahap ini seharusnya Anda telah memiliki 8 buah table seperti pada gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

90

17. Tutup aplikasi Microsoft Access.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

91

Latihan 18 : Membuat Form Utama

Form utama pada aplikasi ini berfungsi untuk menampilkan menu, toolbar, informasi waktu sekaligus untuk mendefinisikan koneksi ke database Rental yang kita buat pada latihan terdahulu. Langkah-langkah : 1. Pastikan file database Rental.mdb berada pada folder Rental yang telah dibuat pada Latihan 17 point 1. 2. Jalankan aplikasi Delphi. 3. Pilih Form1 pada Object TreeView, ubah property seperti pada table di bawah ini : Komponen Form1

Property Caption Color Name WindowState

Value Aplikasi Rental v1.0 (beta) clWhite FUtama wsMaximized

4. Pilih menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFUtama.pas dan Project1 menjadi Rental.dpr, simpan dalam folder Rental. 5. Tambahkan MainMenu1 dari tab Standard. Klik dua kali MainMenu1 untuk membuka menu editor. Buat mainmenu dengan struktur seperti di bawah ini : Menu File

SubMenu Login Logout -----------------Setup

-----------------Exit Data Member Koleksi -----------------Pemasok -----------------Karyawan Transaksi

Property Caption Caption ShortCut Caption Enable Caption Caption Shortcut Enable Caption Caption Caption Enable Caption Shortcut Caption Shortcut Caption Caption Shortcut Caption Caption Shortcut Caption

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value &File &Login… Ctrl+L Logout False &Setup… Ctrl+S False E&xit &Data False Membe&r Ctrl+R K&oleksi… Ctrl+O Pe&masok… Ctrl+M Karya&wan Ctrl+W &Transaksi

92

Menu

SubMenu Peminjaman Pengembalian

Pencarian Daftar Member Daftar Koleksi -----------------Laporan Transaksi Peminjaman Transaksi Pengembalian Koleksi belum Kembali -----------------Pendapatan Help! About

Property Enable Caption Shortcut Caption Shortcut Caption Caption Caption Caption Caption Enable Caption Caption Caption Caption Caption Caption Caption

Value False &Peminjaman… Ctrl+P Pengem&balian… Ctrl+B &Pencarian &Daftar Member… Daftar &Koleksi… &Laporan False Transaksi Peminjaman… Transaksi Pengembalian… Koleksi Belum Kembali … Pendapatan… &Help! &About

6. Tambahkan ToolBar1 dari tab Win32. Ubah property seperti table di bawah ini : Komponen ToolBar1

Tab Win32

Parent FUtama

Property Autosize ButtonHeight ButtonWidth Color

Value True 44 46 clBtnFace

7. Tambahkan 7 buah SpeedButton dari tab Additional, ubah property seperti table di bawah ini : Komponen SpeedButton1

Tab Win32

Parent ToolBar1

SpeedButton2

Win32

ToolBar1

SpeedButton3

Win32

ToolBar1

SpeedButton4

Win32

ToolBar1

SpeedButton5

Win32

ToolBar1

SpeedButton6

Win32

ToolBar1

SpeedButton7

Win32

ToolBar1

SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4 SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4, SpeedButton5, SpeedButton6, SpeedButton7

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Property Glyph Hint Glyph Hint Glyph Hint Glyph Hint Glyph Hint Glyph Hint Glyph Hint Enable

Value Adduser.bmp Member Baru FavAdd.bmp Koleksi Baru AddFile.bmp Peminjaman DeleteFile.bmp Pengembalian Userid.bmp Daftar Member Pictures.bmp Daftar Koleksi Websearch.bmp Statistik False

Flat Height Width ShowHint

True 44 46 True

93

8. Tambahkan StatusBar1 dari tab Win32. Klik dua kali StatusBar1 untuk membuka Panel Editor, tambahkan 3 buah panel dan ubah property masing-masing panel seperti table di bawah ini : Komponen StatusBar1.Panels[0] StatusBar1.Panels[1] StatusBar1.Panels[2]

Property Text Width Text Width Text Width

Value Tanggal : 150 User : 150 Aplikasi Rental 150

9. Tambahkan Image1 dari tab Additional, ubah property seperti pada table di bawah ini : Komponen Image1

Tab Additional

Parent FUtama

Property Align Center Picture

Value alClient True Rental.bmp

10. Tambahkan Timer1 dari tab System. 11. Tambahkan ADOConnection1 dari tab ADO, ubah property seperti table di bawah ini : Komponen ADOConnection1

Tab ADO

Parent FUtama

Property LoginPrompt

Value False

12. Klik dua kali ADOConnection1 untuk membuka Connection String Editor, klik tombol Build untuk membuat koneksi.

13. Pilih Microsoft Jet 4.0 OLE DB Provider, klik Next untuk melanjutkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

94

14. Ketikkan Rental.mdb pada Select or enter Database Name, pastikan database Rental.mdb ada pada folder yang sama dengan program yang sedang dibuat. Klik Test Connection untuk menguji koneksi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

95

15. Tambahkan ADOTable1 dari tab ADO, ubah property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FUtama

Property Connection Name TableName

Value ADOConnection1 Rental Rental

16. Pada object Treeview, klik dua kali Rental untuk membuka field editor. Klik kanan pada field editor, kemudian pilih Add All Fields…

17. Pada tahap ini seharusnya FUtama mempunyai layout seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

96

18. Tambahkan variable KaryawanID dan HakAkses dengan type Integer, variable NamaKaryawan, NamaRental, AlamatRental, TelpRental dengan type String pada blok Public di unit UFUtama, lihat gambar berikut :

19. Pilih Timer1 pada Object TreeView, buat event onTimer, ketikkan perintah seperti table di bawah ini : Komponen Timer1

Event onTimer

Code procedure TFUtama.Timer1Timer(Sender: TObject); Const Hari : Array [1..7] of String = ('Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jum''at', 'Sabtu'); begin StatusBar1.Panels[0].Text := Hari[DayofWeek(Now)] + ', ' + DateToStr(Now) + ' ' + TimeToStr(Now); StatusBar1.Panels[1].Text := 'User : ' + NamaKaryawan; end;

20. Pilih FUtama pada Object Tree, buat event onCreate dan onClose, ketikkan perintah seperti table di bawah ini : Komponen FUtama

Event onCreate

onClose

onCloseQuery

Code procedure TFUtama.FormCreate(Sender: TObject); begin ADOConnection1.Connected := True; Rental.Open; NamaRental := RentalNama.Value; AlamatRental := RentalAlamat.Value; TelpRental := RentalTelepon.Value; Rental.Close; Timer1Timer(Self); StatusBar1.Panels[2].Text := NamaRental + ', ' + AlamatRental + ' ' + TelpRental; end; procedure TFUtama.FormClose(Sender: TObject; var Action: TCloseAction); begin ADOConnection1.Connected := False; end; procedure TFUtama.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

97

Komponen

Event

Code begin CanClose := MessageDlg('Tutup Aplikasi?', mtConfirmation, [mbYes, mbNo], 0) = mrYes; end;

21. Simpan, jalankan dan uji aplikasi.

NEW Perbaikan : 1. Lakukan perbaikan Latihan 17 (Membuat Database Rental) : Point 9. 2. Lakukan perbaikan Latihan 18 (Membuat Form Utama) : Point 5, 7 dan 18 .

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

98

Latihan 19 : Membuat Form Login

Form Login digunakan untuk membatasi akses setiap user. Hak akses terdiri dari 0 untuk Member, 1 untuk Operator dan 2 untuk Pemilik/Administrator. Form Login akan menampilkan daftar Nama Karyawan dalam bentuk Combobox dan password. Langkah-langkah : 1. Jalankan aplikasi Microsoft Access 2003. 2. Buka file Rental.mdb yang telah dibuat pada Latihan 17. 3. Pilih object Tables, kemudian klik dua kali table Karyawan untuk menambahkan data karyawan, tambahkan data karyawan seperti pada gambar di bawah ini :

4. 5. 6. 7.

Simpan file Rental.mdb dan tutup aplikasi Microsoft Access. Jalankan aplikasi Delphi, buka project Rental.dpr. Buat form baru, klik menu File – New – Form. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position

Value Login bsDialog FLogin poDesktopCenter

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

99

8. Pilih menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFLogin.pas dalam folder Rental. 9. Klik menu File – Use Unit…, pilih FUtama, klik OK untuk melanjutkan. 10. Tambahkan Image1 dari tab Additional, ubah property seperti table di bawah ini : Komponen Image1

Tab Additional

Parent FLogin

Property Autosize Picture Transparent

Value True Key.bmp True

11. Tambahkan Label1 dan GroupBox1 dari tab Standard, ubah property seperti table di bawah ini : Komponen Label1

Tab Standard

Parent FLogin

Property Caption

GroupBox1

Standard

FLogin

Wordwrap Caption

Value Pilih nama karyawan dan masukkan password, klik Login True

12. Tambahkan 2 buah Label, 1 buah Combobox dan 1 buah Edit dari tab Standard ke dalam GroupBox1, ubah property seperti table di bawah ini : Komponen Label2 Label3 Combobox1 Edit1

Tab Standard Standard Standard Standard

Parent GroupBox1 GroupBox1 GroupBox1 GroupBox1

Property Caption Caption Style PassWordChar Text

Value Nama Karyawan Password csDropDownList *

13. Tambahkan 2 buah BitBtn dari tab Additional ke dalam GroupBox1, ubah property seperti table di bawah ini : Komponen BitBtn1

Tab Additional

Parent GroupBox1

BitBtn2

Additional

GroupBox1

Property Caption Glyph Modalresult Caption Glyph ModalResult

Value Login Login.bmp mrOK Batal Batal.bmp mrCancel

14. Tambahkan ADOTable1 dari tab ADO, ubah property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FLogin

Property Connection Name TableName

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value FUtama.ADOConnection1 Karyawan Karyawan

100

15. Buat field persistent table Karyawan, klik dua kali Karyawan pada Object TreeView untuk membuka Field Editor, klik kanan pada Field Editor pilih Add All Fields (lihat Latihan 18 Point 16). 16. Pada tahap ini seharusnya FLogin mempunyai layout seperti gambar di bawah ini :

17. Pilih FLogin pada Object TreeView, buat event onShow dan onClose Komponen FLogin

Event onShow

onClose

Code procedure TFLogin.FormShow(Sender: TObject); begin Karyawan.Open; Combobox1.Clear; Edit1.Clear; While not Karyawan.Eof do Begin Combobox1.Items.Add(KaryawanNama.Value); Karyawan.Next; End; end; procedure TFLogin.FormClose(Sender: TObject; var Action: TCloseAction); begin Karyawan.Close; end;

18. Pilih BitBtn1 pada Object Treeview, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn1

Event onClick

Code procedure TFLogin.BitBtn1Click(Sender: TObject); begin If Karyawan.Locate('Nama',Combobox1.Text, []) and (Edit1.Text = KaryawanPasswords.Value) then Begin FUtama.KaryawanID := KaryawanKaryawanID.Value; FUtama.NamaKaryawan := KaryawanNama.Value; FUtama.HakAkses := KaryawanHakAkses.Value; End Else Begin MessageDlg('Password tidak cocok!', mtError, [mbOK], 0); Modalresult := mrNone; End; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

101

19. Pilih Edit1 pada Object TreeView, buat event onKeyPress, ketikkan perintah seperti table di bawah ini : Komponen Edit1

Event onKeyPress

Code procedure TFLogin.Edit1KeyPress(Sender: TObject; var Key: Char); begin If Key = #13 then BitBtn1Click(Self); end;

20. Kembali ke form FUtama, klik menu View – Forms, pilih FUtama, klik OK untuk melanjutkan. 21. Klik menu File – Use Unit, pilih UFLogin, klik OK untuk melanjutkan. 22. Buat procedure EnableMenu pada blok private, tekan Ctrl+Shift+C untuk membuat blok procedure, ketikkan perintah seperti pada table di bawah ini : Komponen FUtama

Procedure EnableMenu

Code procedure TFUtama.EnableMenu; begin Logout1.Enabled := HakAkses in [1,2]; Setup1.Enabled := HakAkses in [2]; Data1.Enabled := HakAkses in [1,2]; Member1.Enabled := HakAkses in [1,2]; Koleksi1.Enabled := HakAkses in [1,2]; Pemasok1.Enabled := HakAkses in [2]; Karyawan1.Enabled := HakAkses in [2]; ransaksi1.Enabled := HakAkses in [1,2]; Laporan1.Enabled := HakAkses in [1,2]; Pendapatan1.Enabled := HakAkses in [2]; SpeedButton1.Enabled := HakAkses in [1,2]; SpeedButton2.Enabled := HakAkses in [1,2]; SpeedButton3.Enabled := HakAkses in [1,2]; SpeedButton4.Enabled := HakAkses in [1,2]; end;

23. Pilih Login1 pada Object Treeview, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Login1

Event onClick

Code procedure TFUtama.Login1Click(Sender: TObject); begin If FLogin.ShowModal = mrOK then EnableMenu; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

102

24. Pilih Logout1 pada ObjectTreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Logout1

Event onClick

Code procedure TFUtama.Logout1Click(Sender: TObject); begin If MessageDlg('Logout?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Begin HakAkses := 0; KaryawanID := 0; NamaKaryawan := ''; EnableMenu; End; end;

25. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

103

Latihan 20 : Membuat Form Setup

Form Setup digunakan untuk mengelola data yang berkaitan dengan Rental seperti Nama Rental, Alamat, telepon dan Nama Pemilik Rental. Langkah-langkah : 1. Jalankan aplikasi Delphi, buka project Rental.dpr. 2. Buat form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position

Value Setup bsDialog FSetup poDesktopCenter

4. Pilih menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFSetup.pas dalam folder Rental. 5. Klik menu File – Use Unit…, pilih FUtama, klik OK untuk melanjutkan. 6. Tambahkan Image1 dari tab Additional, ubah property seperti table di bawah ini : Komponen Image1

Tab Additional

Parent FSetup

Property Autosize Picture Transparent

Value True Configure.bmp True

7. Tambahkan GroupBox1 dari tab Standard, ubah property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent FSetup

Property Caption

Value

8. Tambahkan ADOTable1 dari tab ADO, ubah property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FSetup

Property Connection Name TableName

Value FUtama.ADOConnection1 Rental Rental

9. Buat field persistent table Rental, klik dua kali Rental pada Object TreeView untuk membuka Field Editor, klik kanan pada Field Editor pilih Add All Fields (lihat Latihan 18 Point 16). 10. Masih di Field Editor table Rental, pastikan semua field telah terpilih (kalau belum terpilih, klik kanan Field Editor, pilih Select All), kemudian drag and drop seluruh field ke dalam GroupBox1. 11. Tambahkan 2 buah BitBtn dari tab Additional, ubah property seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

104

Komponen BitBtn1

Tab Additional

Parent GroupBox1

BitBtn2

Additional

GroupBox1

Property Caption Glyph ModalResult Caption Glyph ModalResult

Value Simpan Simpan.bmp mrYes Batal Batal.bmp mrCancel

12. Atur layout form FSetup seperti gambar di bawah ini :

13. Pilih FSetup pada Object TreeView, buat event onShow dan onClose, ketikkan perintah seperti table di bawah ini : Komponen FSetup

Event onShow

OnClose

Code procedure TFSetup.FormShow(Sender: TObject); begin Rental.Open; end; procedure TFSetup.FormClose(Sender: TObject; var Action: TCloseAction); begin Rental.Close; end;

14. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini : Komponen DataSource1

Event onStateChange

Code procedure TFSetup.DataSource1StateChange(Sender: TObject); begin BitBtn1.Enabled := Rental.State in dsEditModes; end;

15. Pilih BitBtn1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn1

Event onClick

Code procedure TFSetup.BitBtn1Click(Sender: TObject); begin Rental.Post; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

105

16. Pilih BitBtn2 pada Object TreeView, buat event OnClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn2

Event OnClick

Code procedure TFSetup.BitBtn2Click(Sender: TObject); begin Rental.Cancel; end;

17. Kembali ke form FUtama, klik menu View – Forms…, pilih FUtama, klik OK untuk melanjutkan. 18. Klik menu File – Use Unit, pilih FSetup, klik OK untuk melanjutkan. 19. Pilih Setup1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Setup1

Event onClick

Code procedure TFUtama.Setup1Click(Sender: TObject); begin FSetup.ShowModal; end;

20. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

106

Latihan 21 : Membuat Form Member

Form Member digunakan untuk mengelola data member. Form Member juga digunakan untuk menampilkan histori transaksi tiap member. Data dan histori transaksi ditampilkan dalam tab yang terpisah. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position

Value Member bsDialog FMember poDesktopCenter

4. Pilih menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFMember.pas dalam folder Rental. 5. Klik menu File – Use Unit…, pilih UFUtama, klik OK untuk melanjutkan. 6. Tambahkan PageControl1 dari tab Win32, ubah property seperti table di bawah ini : Komponen PageControl1

Tab Win32

Parent FMember

Property Align

Value alClient

7. Tambahkan dua buah TabSheet dengan cara mengklik kanan komponen PageControl1, kemudian pilih New Page. Atur property seperti table di bawah ini : Komponen TabSheet1 TabSheet2

Parent PageControl1 PageControl1

Property Caption Caption

Value Data Member Histori Transaksi

8. Tambahkan GroupBox1 dari tab Standard ke dalam Tabsheet1, ubah property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent TabSheet1

Property Align Caption

Value alClient

9. Tambahkan Toolbar1 dari tab Win32 ke dalam GroupBox1, ubah property seperti table di bawah ini : Komponen ToolBar1

Tab Win32

Parent GroupBox1

Property Autosize ButtonHeight ButtonWidth

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value True 44 46

107

10. Tambahkan 4 buah SpeedButton dari tab Additional ke dalam ToolBar1, atur property seperti table di bawah ini : Komponen SpeedButton1

Tab Additional

Parent ToolBar1

SpeedButton2

Additional

ToolBar1

SpeedButton3

Additional

ToolBar1

SpeedButton4

Additional

ToolBar1

SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

Property Caption Glyph Tag Caption Glyph Tag Caption Glyph Tag Caption Glyph Tag Layout Width Flat Height

Value Simpan Simpan.bmp 1 Hapus Hapus.bmp 2 Kartu Printer.bmp 3 Batal Batal.bmp 4 blTop 46 True 44

11. Tambahkan ADOTable1 dari tab ADO, atur property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FMember

Property Connection Name TableName

Value FUtama.ADOConnection1 Member Member

12. Buat persistent field table Member, klik dua kali Member pada Object TreeView untuk membuka Field Editor, klik kanan pada field editor pilih Add All Fields (lihat latihan 18 point 16). 13. Masih di field editor table Member, pastikan semua field telah terpilih (kalau belum, klik kanan Field Editor, pilih Select All), kemudian lakukan drag and drop seluruh field ke dalam GroupBox1. 14. Hapus DBEdit5 dari GroupBox1, gantikan dengan DBCombobox1 dari tab Data Control, ubah property seperti table di bawah ini : Komponen DBCombobox1

Tab Data Control

Parent GroupBox1

Property DataSource DataField Items

Value DataSource1 TandaPengenal KTP SIM

15. Hapus DBEdit9 dari GroupBox1, gantikan dengan DateTimePicker1 dari tab Win32. 16. Hapus DBEdit10 dari GroupBox1, gantikan dengan DBCombobox2 dari tab Data Control, ubah property seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

108

Komponen DBCombobox2

Tab Data Control

Parent GroupBox1

Property DataSource DataField Items

Value DataSource1 Status AKTIF TIDAK AKTIF

17. Ubah property untuk komponen Data Control seperti table di bawah ini : Komponen DBEdit1, DBEdit11 DBEdit1, DBEdit2, DBEdit3, DBEdit4, DBCombobox1, DBEdit6, DBEdit7, DBEdit8, DBCombobox2, DBEdit11 DBImage1

Property Enabled CharCase

Value False ecUpperCase

Center Stretch

True True

18. Tambahkan OpenPictureDialog1 dari tab Dialogs. 19. Tambahkan BitBtn1 dari tab Additional ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen BitBtn1

Tab Additional

Parent GroupBox1

Property Caption Glyph

Value Cari … Cari.bmp

20. Tambahkan DBNavigator1 dari tab Data Control ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen DBNavigator1

Tab Data Control

Parent GroupBox1

Property Align Datasource Flat VisibleButtons.nbInsert VisibleButtons.nbDelete VisibleButtons.nbEdit VisibleButtons.nbPost VisibleButtons.nbCancel VisibleButtons.nbRefresh

Value alBottom Datasource1 True False False False False False False

21. Tambahkan ADOQuery1 dari tab ADO, atur property seperti table di bawah ini : Komponen ADOQuery1

Tab ADO

Parent FMember

Property Connection Datasource Name SQL

Value FUtama.ADOConnection1 DataSource1 qTransaksi Select Pinjam.TglPinjam, DPinjam.KoleksiID, (Select Koleksi.Judul From Koleksi Where DPinjam.KoleksiID = Koleksi.KoleksiID) as Judul,

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

109

(Select Kembali.TglKembali From Kembali Where DPinjam.KembaliID = Kembali.KembaliID) as TglKembali From Pinjam, DPinjam Where (Pinjam.PinjamID = DPinjam.PinjamID) and (Pinjam.MemberID = :MemberID) Order by Pinjam.TglPinjam

22. Pilih qTransaksi pada Object Treeview, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, pilih MemberID (lihat gambar), ubah property seperti table di bawah ini : Komponen TParameters[0]

Property DataType

Value ftInteger

23. Buat persistent field untuk query qTransaksi, klik dua kali qTransaksi pada Object TreeView untuk membuka field editor, kemudian klik kanan pada field editor dan pilih Add All Fields. Kalau gagal, coba periksa kembali property SQL pada qTransaksi, mungkin ada kesalahan penulisan script. 24. Tambahkan Datasource2 dari tab Data Access, ubah property seperti table di bawah ini : Komponen Datasource2

Tab Data Access

Parent FMember

Property Dataset

Value qTransaksi

25. Atur layout form FMember seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

110

26. Atur urutan tab pada GroupBox1 dengan cara klik kanan GroupBox1, pilih Tab Order, kemudian atur urutan tab dengan urutan seperti gambar berikut :

27. Tambahkan variable MemberID dengan type Integer pada blok Public di unit UFMember, lihat gambar berikut :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

111

28. Pilih FMember pada Object TreeView, buat event OnCreate, OnShow dan OnClose, ketikkan perintah seperti table di bawah ini : Komponen FMember

Event onCreate

onShow

onClose

Code procedure TFMember.FormCreate(Sender: TObject); begin MemberID := 0; PageControl1.ActivePageIndex := 0; end; procedure TFMember.FormShow(Sender: TObject); begin Randomize; Member.Open; qTransaksi.Open; If MemberID > 0 then Member.Locate('MemberID', MemberID, []) else Member.Insert; If FUtama.HakAkses = 0 then DBEdit11.PasswordChar := '*' else DBEdit11.PasswordChar := #0; end; procedure TFMember.FormClose(Sender: TObject; var Action: TCloseAction); begin MemberID := 0; qTransaksi.Close; Member.Close; end;

29. Pilih SpeedButton1, SpeedButton2, SpeedButton3 dan SpeedButton4 pada Object TreeView, buat event OnClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

Event onClick

Code procedure TFMember.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Member.Post; 2 : Member.Delete; 3:; 4 : Member.Cancel; End; If (Sender as TSpeedButton).Tag in [2,4] then Close; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

112

30. Pilih Member pada Object TreeView, buat event AfterScroll, BeforeDelete, BeforePost dan onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen Member

Event AfterScroll

BeforeDelete

BeforePost

onNewRecord

Code procedure TFMember.MemberAfterScroll(DataSet: TDataSet); begin DateTimePicker1.Date := MemberTglDaftar.Value; end; procedure TFMember.MemberBeforeDelete(DataSet: TDataSet); begin If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort; end; procedure TFMember.MemberBeforePost(DataSet: TDataSet); begin MemberTglDaftar.Value := DateTimePicker1.Date; end; procedure TFMember.MemberNewRecord(DataSet: TDataSet); begin If DBEdit2.Enabled then ActiveControl := DBEdit2; MemberKota.Value := 'BANJARMASIN'; MemberTandaPengenal.Value := 'KTP'; MemberTglDaftar.Value := Now; MemberStatus.Value := 'AKTIF'; MemberPasswords.Value := FormatFloat('0000', Random(9999)); end;

31. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini : Komponen DataSource1

Event onStateChange

Code procedure TFMember.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := (Member.State in dsEditModes) and (FUtama.HakAkses in [1,2]); SpeedButton2.Enabled := (Member.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]); SpeedButton3.Enabled := (Member.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]); BitBtn1.Enabled := (FUtama.HakAkses in [1,2]); DBEdit2.Enabled := FUtama.HakAkses in [1,2]; DBEdit3.Enabled := FUtama.HakAkses in [1,2]; DBEdit4.Enabled := FUtama.HakAkses in [1,2]; DBCombobox1.Enabled := FUtama.HakAkses in [1,2]; DBEdit6.Enabled := FUtama.HakAkses in [1,2]; DBEdit7.Enabled := FUtama.HakAkses in [1,2]; DBEdit8.Enabled := FUtama.HakAkses in [1,2]; DateTimePicker1.Enabled := FUtama.HakAkses in [1,2]; DBCombobox2.Enabled := FUtama.HakAkses in [1,2]; DBNavigator1.Enabled := FUtama.HakAkses in [1,2]; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

113

32. Pilih BitBtn1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn1

Event onClick

Code procedure TFMember.BitBtn1Click(Sender: TObject); begin With OpenPictureDialog1 do Begin If Execute then Begin If Member.State in [dsBrowse] then Member.Edit; DBImage1.Picture.LoadFromFile(FileName); End; End; end;

33. Pilih TabSheet2 pada Object TreeView. 34. Tambahkan DBGrid1 dari tab Data Control ke dalam TabSheet2, ubah property seperti table di bawah ini : Komponen DBGrid1

Tab Data Control

Parent TabSheet2

Property Align Datasource

Value alClient DataSource2

35. Klik dua kali DBGrid1 pada Object TreeView untuk membuka Column Editor. Klik kanan pada Column Editor, pilih Add All Fields (lihat gambar dibawah ini). Atur property untuk masing-masing kolom seperti table di bawah ini :

Komponen DBGrid1.Columns[0]

DBGrid1.Columns[1]

Property Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value taCenter Tgl Pinjam True 100 taCenter #Koleksi True

114

Komponen DBGrid1.Columns[2]

DBGrid1.Columns[3]

Property Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width

Value 60 taCenter Judul True 250 taCenter Tgl Kembali True 100

36. Pada tahap ini seharusnya FMember mempunyai tampilan seperti gambar berikut ini :

37. Kembali ke form FUtama, klik menu View – Form…, pilih FUtama, klik OK untuk melanjutkan. 38. Klik menu File – Use Unit, pilih FMember, klik OK untuk melanjutkan. 39. Pilih Member1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Member1

Event onClick

Code procedure TFUtama.Member1Click(Sender: TObject); begin FMember.ShowModal; end;

40. Pilih SpeedButton1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton1

Event onClick

Code procedure TFUtama.SpeedButton1Click(Sender: TObject); begin FMember.ShowModal; end;

41. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

115

Tugas : 1. Selesaikan Latihan 17, 18, 19, 20, dan 21. 2. Masukkan minimal 10 data member member lengkap dengan foto melalui form Member. 3. Tugas akan diperiksa pada pertemuan berikutnya.

Perbaikan (Khusus kelas 3E dan 3G) :

NEW

1. Lakukan perbaikan pada Latihan 21 (Membuat Form Member) : Point 10, 20, 21 - 24, 26, 28, 29, 31 dan 32.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

116

Cara Instalasi QuickReport di Delphi 7.0

QuickReport merupakan komponen yang dapat digunakan untuk membuat laporan dengan berbagai macam bentuk. Seperti pendahulunya, QuickReport juga disertakan dalam Delphi 7.0 tetapi tidak secara otomatis terpasang pada proses instalasi Delphi 7.0. Berikut adalah langkah-langkah instalasi QuickReport pada Delphi 7.0 : 1. Jalankan aplikasi Delphi. 2. Klik menu Components – Install Packages, klik Add untuk menambahkan paket baru.

3. Cari file dcltqr70.bpl pada lokasi C:\Program Files\Borland\Delphi7\Bin. Klik Open untuk membuka file tersebut. Klik OK untuk menutup Project Options.

4. Pada tahap ini seharusnya komponen QuickReport sudah terpasang dengan baik.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

117

Latihan 22 : Membuat QuickReport Kartu Member

Kartu member dibuat menggunakan komponen QuickReport. Pastikan QuickReport sudah terpasang pada Delphi 7.0, karena QuickReport tidak otomatis terpasang pada instalasi Delphi 7.0. Jika belum lihat dokumen instalasi QuickReport di Delphi 7.0. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat Report baru, klik menu File – New – Others, pada tab New pilih Reports, klik OK untuk melanjutkan.

3. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 4. Tambahkan ADOQuery1 dari tab ADO, ubah property seperti table di bawah ini : Komponen ADOQuery1

Tab ADO

Parent QuickReport1

Property Connection Name SQL

Value FUtama.ADOConnection1 qMember Select Member.* From Member Where (Member.MemberID = :MemberID)

5. Pilih qMember pada Object TreeView, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, pilih MemberID, ubah property seperty table di bawah ini : Komponen TParameters[0]

Property DataType

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value ftInteger

118

6. Buat persistent field untuk qMember, klik dua kali qMember pada Object TreeView, klik kanan di field editor, pilih Add All Fields. 7. Pilih QuickReport1 pada Object TreeView, ubah property seperti table di bawah ini : Komponen QuickReport1

Property Dataset Name

Value qMember QRKartuMember

8. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UQRKartuMember.pas dalam folder Rental. 9. Klik dua kali QRKartuMember pada Object TreeView untuk membuka jendela Report Settings. 10. Pada jendela Report Settings, ubah Units menjadi MM, klik Apply. 11. Masih pada jendela Report Settings, ubah setting lainnya seperti gambar berikut ini, setelah selesai klik OK untuk melanjutkan :

12. Tambahkan 14 buah QRLabel dari tab QReports ke dalam TitleBand1, ubah property seperti table dibawah ini : Komponen QRLabel1

Tab QReports

Parent TitleBand1

Property Alignment AlignToBand AutoSize Caption Font.Size

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value taCenter True True KARTU MEMBER 10

119

Komponen

Tab

Parent TitleBand1 TitleBand1 TitleBand1 TitleBand1 TitleBand1 TitleBand1

Property Font.Style.fsBold Caption Caption Caption Caption Caption Caption

Value True #Member Nama Member Alamat Telepon Handphone :

QRLabel2 QRLabel3 QRLabel4 QRLabel5 QRLabel6 QRLabel7, QRLabel8, QRLabel9, QRLabel10, QRLabel11 QRLabel12 QRLabel13 QRLabel14

QReports QReports QReports QReports QReports QReports

QReports QReports QReports

TitleBand1 TitleBand1 TitleBand1

Caption Caption Caption

NamaRental AlamatRental TelpRental

13. Tambahkan 5 buah QRDBText dan 1 buah QRDBImage dari tab QReports ke dalam TitleBand1, ubah property seperti table di bawah ini :

Komponen QRDBText1, QRDBText2, QRDBText3, QRDBText4, QRDBText5, QRDBImage1 QRDBText1 QRDBText2 QRDBText3 QRDBText4 QRDBText5 QRDBImage1

Tab

Parent

Property Dataset

Value qMember

QReports QReports QReports QReports QReports QReports

TitleBand1 TitleBand1 TitleBand1 TitleBand1 TitleBand1 TitleBand1

DataField DataField DataField DataField DataField DataField Stretch

MembeID Nama Alamat TeleponRumah Handphone Photo True

14. Atur layout QRKartuMember seperti gambar di bawah ini :

15. Kembali ke form FMember, klik menu View – Form, pilih FMember, klik OK untuk melanjutkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

120

16. Klik menu File – Use Unit, pilih UQRKartuMember, klik OK untuk melanjutkan. 17. Buat procedure CetakKartu pada blok private, tekan Ctrl+Shift+C untuk membuat blok procedure, ketikkan perintah seperti pada table di bawah ini : Komponen FMember

Procedure CetakKartu

Code procedure TFMember.CetakKartu; begin With QRKartuMember do Begin qMember.Close; qMember.Parameters[0].Value := MemberMemberID.Value; qMember.Open; QRLabel12.Caption := FUtama.NamaRental; QRLabel13.Caption := FUtama.AlamatRental; QRLabel14.Caption := FUtama.TelpRental; Preview; End; end;

18. Pilih SpeedButton3 pada Object TreeView, perbarui event onClick seperti table di bawah ini : Komponen SpeedButton3

Event onClick

Code procedure TFMember.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Member.Post; 2 : Member.Delete; 3 : CetakKartu; 4 : Member.Cancel; End; If (Sender as TSpeedButton).Tag in [2,4] then Close; end;

19. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

121

Latihan 23 : Membuat Form Koleksi

Form koleksi digunakan untuk mengelola data koleksi yang meliputi judul, kategori, jenis koleksi, harga sewa, harga denda serta jumlah koleksi. Form Koleksi juga menyimpan gambar cover koleksi serta dapat menampilkan preview dalam bentuk video pendek. Selain itu Form Koleksi juga menyajikan histori transaksi untuk tiap koleksi. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat Form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position

Value Koleksi bsDialog FKoleksi poDesktopCenter

4. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFKoleksi.pas dalam folder Rental. 5. Klik menu File – Use Unit, pilih FUtama, klik OK untuk melanjutkan. 6. Tambahkan PageControl1 dari tab Win32, ubah property seperti table di bawah ini : Komponen PageControl1

Tab Win32

Parent FKoleksi

Property Align

Value alClient

7. Tambahkan dua buah TabSheet dengan cara mengklik kanan komponen PageControl1, kemudian pilih New Page. Atur property seperti table di bawah ini ; Komponen TabSheet1 TabSheet2

Parent PageControl1 PageControl1

Property Caption Caption

Value Data Koleksi Histori Transaksi

8. Tambahkan GroupBox1 dari tab Standard ke dalam TabSheet1, ubah property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent TabSheet1

Property Align Caption

Value alClient

9. Tambahkan ToolBar1 dari tab Win32 ke dalam GroupBox1, ubah property seperti table di bawah ini : Komponen ToolBar1

Tab Win32

Parent GroupBox1

Property Autosize ButtonHeight

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value True 44

122

Komponen

Tab

Parent

Property ButtonWidth

Value 46

10. Tambahkan 3 buah SpeedButton dari tab Additional ke dalam ToolBar1, atur property seperti table di bawah ini : Komponen SpeedButton1

Tab Additional

Parent ToolBar1

SpeedButton2

Additional

ToolBar1

SpeedButton3

Additional

ToolBar1

SpeedButton1, SpeedButton2, SpeedButton3

Property Caption Glyph Tag Caption Glyph Tag Caption Glyph Tag Layout Width Flat Height

Value Simpan Simpan.bmp 1 Hapus Hapus.bmp 2 Batal Batal.bmp 3 blTop 46 True 44

11. Tambahkan 3 buah ADOTable dari tab ADO, atur property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FKoleksi

ADOTable2

ADO

FKoleksi

ADOTable3

ADO

FKoleksi

Property Connection Name TableName Connection Name TableName Connection Name TableName

Value FUtama.ADOConnection1 Koleksi Koleksi FUtama.ADOConnection1 Karyawan Karyawan FUtama.ADOConnection1 Pemasok Pemasok

12. Buat persistent field untuk table Koleksi, klik dua kali Koleksi pada Object TreeView untuk membuka field editor, klik kanan pada field editor pilih Add All Fields. 13. Buat persistent field untuk table Karyawan, klik dua kali Karyawan pada Object TreeView untuk membuka field editor, klik kanan pada field editor pilih Add All Fields. 14. Buat persistent field untuk table Pemasok, klik dua kali Pemasok pada Object TreeView untuk membuka field editor, klik kanan pada field editor pilih Add All Fields. Berikut hasil langkah ke 12, 13, dan 14 :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

123

15. Tambahkan field baru NamaPemasok pada table Koleksi dengan cara klik dua kali Koleksi untuk membuka field editor, kemudian pilih New Field untuk membuka jendela New Field, lihat gambar berikut :

Isi informasi seperti pada table di bawah ini (lihat gambar di atas) : Field NamaPemasok

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value NamaPemasok String 30 Lookup PemasokID Pemasok PemasokID Nama

16. Tambahkan field baru NamaKaryawan pada table koleksi, klik dua kali Koleksi pada Object TreeView untuk membuka field editor, klik kanan pada field editor kemudian pilih New Fields. Lengkapi informasi pada jendela New Field seperti pada table di bawah ini (lihat langkah 15) :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

124

Field NamaKaryawan

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value NamaKaryawan String 30 Lookup KaryawanID Karyawan KaryawanID Nama

17. Klik dua kali Koleksi untuk membuka field editor, lakukan drag and drop field KoleksiID, Judul dan PemeranUtama ke dalam GroupBox1. 18. Tambahkan 3 buah Label dari tab Standard, ubah property seperti table di bawah ini : Komponen Label3 Label4 Label5

Tab Standard Standard Standard

Parent GroupBox1 GroupBox1 GroupBox1

Property Caption Caption Caption

Value Kategori Jenis Koleksi Tgl Beli

19. Tambahkan 2 buah DBCombobox1 dari tab Data Control ke dalam GroupBox1, ubah property seperti table di bawah ini : Komponen DBCombobox1, DBCombobox2

Tab

Parent

DBCombobox1

DataControl

GroupBox1

DBCombobox2

DataControl

GroupBox1

Property Datasource Sorted Style Datafield Items

Datafield Items

Value Datasource1 True csDropdownlist Kategori ACTION DRAMA DRAMA MUSICAL HOROR HOROR KOMEDI KARTUN KOMEDI KOMEDI ROMANTIS LAIN-LAIN JenisKoleksi CD CD AUDIO CD MP3 DVD

20. Tambahkan 1 buah DateTimePicker dari tab Win32 ke dalam GroupBox1. 21. Klik dua kali Koleksi untuk membuka field editor, lakukan drag and drop field HargaBeli, PemasokID, NamaPemasok, LamaSewa, HargaSewa, HargaDenda, Jumlah, KaryawanID, NamaKaryawan, Cover dan Preview secara berurutan ke dalam GroupBox1. 22. Ubah property untuk komponen berikut : Komponen DBEdit1, DBEdit10, DBLookupCombobox2

Property Enabled

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value False

125

Komponen DBEdit1, DBEdit2, DBCombobox1, DBCombobox2, DBEdit3, DBEdit4, DBEdit5, DBEdit6, DBEdit7, DBEdit8, DBEdit9, DBEdit11 DBImage1

Property Charcase

Value ecUpperCase

Stretch

True

23. Tambahkan 2 buah BitBtn dari tab Additional ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen BitBtn1 BitBtn2 BitBtn1, BitBtn2

Tab Additional Additional

Parent GroupBox1 GroupBox1

Property Caption Caption Glyph

Value Cover … Video … Cari.bmp

24. Tambahkan 1 buah Panel dari tab Standard ke dalam GroupBox1. 25. Tambahkan 1 buah MediaPlayer dari tab System ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen MediaPlayer1

Tab System

Parent GroupBox1

Property Display VisibleButtons.btNext VisibleButtons.btPrev VisibleButtons.btStep VisibleButtons.btBack VisibleButtons.btRecord VisibleButtons.btEject

Value Panel1 False False False False False False

26. Tambahkan DBNavigator1 dari tab DataControl ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen DBNavigator1

Tab Data Control

Parent GroupBox1

Property Align Datasource Flat VisibleButtons.nbInsert VisibleButtons.nbDelete VisibleButtons.nbEdit VisibleButtons.nbPost VisibleButtons.nbCancel VisibleButtons.nbRefresh

Value alBottom Datasource1 True False False False False False False

27. Tambahkan OpenPictureDialog1 dari tab Dialogs ke dalam GroupBox1. 28. Tambahkan OpenDialog1 dari tab Dialogs ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen OpenDialog1

Tab Dialogs

Parent GroupBox1

Property Filter

Value Filter Name File Video (*.wmv,

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Filter *.wmv; *.avi;

126

Komponen

Tab

Parent

Property Title

Value *.avi, *.mpg) Cari Video

*.mpg

29. Tambahkan ADOQuery1 dari tab ADO, atur property seperti table di bawah ini : Komponen ADOQuery1

Tab ADO

Parent FMember

Property Connection Datasource Name SQL

Value FUtama.ADOConnection1 DataSource1 qTransaksi Select Pinjam.TglPinjam, Pinjam.MemberID, (Select Member.Nama From Member Where Pinjam.MemberID = Member.MemberID) as NamaMember, DPinjam.TglHarusKembali, (Select Kembali.TglKembali From Kembali Where DPinjam.KembaliID = Kembali.KembaliID) as TglKembali From Pinjam, DPinjam Where (Pinjam.PinjamID = DPinjam.PinjamID) and (DPinjam.KoleksiID = :KoleksiID) Order by Pinjam.TglPinjam

30. Pilih qTransaksi pada Object TreeView, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, pilih KoleksiID, ubah property seperti table di bawah ini : Komponen TParameters[0]

Property DataType

Value ftInteger

31. Buat persistent field untuk query qTransaksi, klik dua kali qTransaksi pada Object TreeView untuk membuka field editor, kemudian klik kanan pada field editor dan pilih Add All Fields. 32. Tambahkan Datasource2 dari tab Data Access, ubah property seperti table di bawah ini : Komponen Datasource2

Tab Data Access

Parent FMember

Property Dataset

Value qTransaksi

33. Atur layout form FKoleksi seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

127

34. Tambahkan variable KoleksiID dengan type Integer pada blok Public di unit UFKoleksi, lihat gambar berikut :

35. Pilih FKoleksi pada Object TreeView, buat event onCreate, OnShow dan OnClose, ketikkan perintah seperti table di bawah ini : Komponen FKoleksi

Event onCreate

onShow

Code procedure TFKoleksi.FormCreate(Sender: TObject); begin KoleksiID := 0; PageControl1.ActivePageIndex := 0; end; procedure TFKoleksi.FormShow(Sender: TObject); begin Koleksi.Open; Karyawan.Open; Pemasok.Open; qTransaksi.Open; If KoleksiID > 0 then Koleksi.Locate('KoleksiID', KoleksiID, []) else Koleksi.Insert; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

128

Komponen

Event onClose

Code procedure TFKoleksi.FormClose(Sender: TObject; var Action: TCloseAction); begin KoleksiID := 0; qTransaksi.Close; Karyawan.Close; Pemasok.Close; Koleksi.Close; MediaPlayer1.Close; end;

36. Pilih SpeedButton1, SpeedButton2 dan SpeedButton3 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton1, SpeedButton2, SpeedButton3

Event onClick

Code procedure TFKoleksi.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Koleksi.Post; 2 : Koleksi.Delete; 3 : Koleksi.Cancel; End; If (Sender as TSpeedButton).Tag 1 then Close; end;

37. Pilih Koleksi pada Object TreeView, buat event AfterScroll, BeforeDelete, BeforePost dan onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen Koleksi

Event AfterScroll

BeforeDelete

BeforePost

Code procedure TFKoleksi.KoleksiAfterScroll(DataSet: TDataSet); begin MediaPlayer1.Close; DateTimePicker1.Date := KoleksiTglBeli.Value; If FileExists(KoleksiPreview.Value) then Begin MediaPlayer1.FileName := KoleksiPreview.Value; MediaPlayer1.Open; MediaPlayer1.DisplayRect := Rect(10,10,Panel1.Width - 20, Panel1.Height - 20); End Else MediaPlayer1.FileName := ''; end; procedure TFKoleksi.KoleksiBeforeDelete(DataSet: TDataSet); begin If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort; end; procedure TFKoleksi.KoleksiBeforePost(DataSet: TDataSet); begin KoleksiTglBeli.Value := DateTimePicker1.Date; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

129

Komponen

Event onNewRecord

Code procedure TFKoleksi.KoleksiNewRecord(DataSet: TDataSet); begin If DBEdit2.Enabled then ActiveControl := DBEdit2; KoleksiTglBeli.Value := Now; DateTimePicker1.Date := KoleksiTglBeli.Value; KoleksiHargaBeli.Value := 0; KoleksiLamaSewa.Value := 2; KoleksiHargaSewa.Value := 3000; KoleksiHargaDenda.Value := 3000; KoleksiJumlah.Value := 1; KoleksiKaryawanID.Value := FUtama.KaryawanID; end;

38. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini : Komponen DataSource1

Event onStateChange

Code procedure TFKoleksi.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := (Koleksi.State in dsEditModes) and (FUtama.HakAkses in [1,2]); SpeedButton2.Enabled := (Koleksi.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]); DBEdit2.Enabled := FUtama.HakAkses in [1,2]; DBCombobox1.Enabled := FUtama.HakAkses in [1,2]; DBCombobox2.Enabled := FUtama.HakAkses in [1,2]; DateTimePicker1.Enabled := FUtama.HakAkses in [1,2]; DBEdit3.Enabled := FUtama.HakAkses in [1,2]; DBEdit4.Enabled := FUtama.HakAkses in [1,2]; DBLookUpCombobox1.Enabled := FUtama.HakAkses in [1,2]; DBEdit5.Enabled := FUtama.HakAkses in [1,2]; DBEdit6.Enabled := FUtama.HakAkses in [1,2]; DBEdit7.Enabled := FUtama.HakAkses in [1,2]; DBEdit8.Enabled := FUtama.HakAkses in [1,2]; DBEdit10.Enabled := FUtama.HakAkses in [1,2]; DBImage1.Enabled := FUtama.HakAkses in [1,2]; BitBtn1.Enabled := FUtama.HakAkses in [1,2]; BitBtn2.Enabled := FUtama.HakAkses in [1,2] end;

39. Pilih BitBtn1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn1

Event onClick

Code procedure TFKoleksi.BitBtn1Click(Sender: TObject); begin With OpenPictureDialog1 do Begin If Execute then Begin If Koleksi.State in [dsBrowse] then Koleksi.Edit; DBImage1.Picture.LoadFromFile(FileName); End; End;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

130

Komponen

Event

Code end;

40. Pilih BitBtn2 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn2

Event onClick

Code procedure TFKoleksi.BitBtn2Click(Sender: TObject); begin With OpenDialog1 do Begin If Execute then Begin If Koleksi.State in [dsBrowse] then Koleksi.Edit; KoleksiPreview.Value := FileName; MediaPlayer1.FileName := FileName; MediaPlayer1.Open; MediaPlayer1.DisplayRect := Rect(10, 10, Panel1.Width - 20, Panel1.Height - 20); End; End; end;

41. Pilih TabSheet2 pada Object TreeView. 42. Tambahkan DBGrid1 dari tab Data Control ke dalam TabSheet2, ubah property seperti table di bawah ini : Komponen DBGrid1

Tab Data Control

Parent TabSheet2

Property Align Datasource

Value alClient DataSource2

43. Klik dua kali DBGrid1 pada Object TreeView untuk membuka Column Editor. Klik kanan pada Column Editor, pilih Add All Fields. Atur property masing-masing kolom seperti table di bawah ini : Komponen DBGrid1.Columns[0]

DBGrid1.Columns[1]

DBGrid1.Columns[2]

DBGrid1.Columns[3]

DBGrid1.Columns[4]

Property Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value taCenter Tgl Pinjam True 100 taCenter #Member True 60 taCenter Nama Member True 250 taCenter Tgl Harus Kembali True 120 taCenter

131

Komponen

Property Title.Caption Title.Font.Style.fsBold Width

Value Tgl Kembali True 100

44. Pada tahap ini seharusnya FKoleksi mempunyai tampilan seperti gambar di bawah ini :

45. Kembali ke form FUtama, klik menu View – Form, pilih FUtama, klik OK untuk melanjutkan. 46. Klik menu File – Use Unit, pilih FKoleksi, klik OK untuk melanjutkan. 47. Pilih Koleksi1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Koleksi1

Event onClick

Code procedure TFUtama.Koleksi1Click(Sender: TObject); begin FKoleksi.ShowModal; end;

48. Pilih SpeedButton2 pada Object TreeView, buat event OnClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton2

Event onClick

Code procedure TFUtama.SpeedButton2Click(Sender: TObject); begin FKoleksi.ShowModal; end;

49. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

132

Latihan 24 : Membuat Form Pemasok

Form pemasok digunakan untuk mengelola data pemasok yang meliputi nama, alamat, kota dan no. telepon. Table pemasok merupakan table master yang hanya boleh dibuka dengan hak akses pemilik/administrator. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position

Value Pemasok bsDialog FPemasok poDesktopCenter

4. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFPemasok.pas dalam folder rental. 5. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 6. Tambahkan GroupBox1 dari tab Standard ke dalam FPemasok, ubah property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent FPemasok

Property Align Caption

Value alClient

7. Tambahkan ToolBar1 dari tab Win32 ke dalam GroupBox1, ubah property seperti table di bawah ini : Komponen ToolBar1

Tab Win32

Parent GroupBox1

Property Autosize ButtonHeight ButtonWidth

Value True 44 46

8. Tambahkan 4 buah SpeedButton dari tab Additional ke dalam ToolBar1, atur property seperti table di bawah ini : Komponen SpeedButton1

Tab Additional

Parent ToolBar1

SpeedButton1

Additional

ToolBar1

SpeedButton2

Additional

ToolBar1

SpeedButton3

Additional

ToolBar1

Property Caption Glyph Tag Caption Glyph Tag Caption Glyph Tag Caption Glyph

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Baru Baru.bmp 1 Simpan Simpan.bmp 2 Hapus Hapus.bmp 3 Batal Batal.bmp

133

Tag Layout Width Flat Height

SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

4 blTop 46 True 44

9. Tambahkan 2 buah GroupBox dari tab Standard ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen GroupBox2

Tab Standard

Parent GroupBox1

GroupBox3

Standard

GroupBox1

Property Align Caption Align Caption

Value alLeft alClient

10. Tambahkan ADOTable1 dari tab ADO, atur property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FPemasok

Property Connection Name TableName

Value FUtama.ADOConnection1 Pemasok Pemasok

11. Buat persistent field untuk table Pemasok, klik dua kali Pemasok pada Object TreeView, klik kanan pada field editor, pilih Add All Fields. 12. Masih di field editor table Pemasok, pilih semua field (jika belum, klik kanan pada field editor, pilih Select All), lakukan drag and drop seluruh field ke GroupBox3. 13. Ubah property untuk komponen Data Control seperti table di bawah ini : Komponen DBEdit1 DBEdit1, DBEdit2, DBEdit3, DBEdit4, DBEdit5

Property Enabled CharCase

Value False ecUpperCase

14. Tambahkan DBGrid1 dari tab Data Control ke dalam GroupBox2, atur property seperti table di bawah ini : Komponen DBGrid1

Tab Data Control

Parent GroupBox2

Property Align Datasource Options.dgRowSelect Options.dgAlwaysShowSelection Options.dgEditing

Value alClient Datasource1 False False True

15. Klik dua kali DBGrid1 untuk membuka Column Editor, klik kanan pada Column Editor, pilih Add All Fields. Dari daftar kolom yang ada, hapus semua kolom kecuali PemasokID dan Nama. Atur property masingmasing kolom seperti table di bawah ini : Komponen

Property

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value

134

Komponen DBGrid1.Columns[0]

DBGrid1.Columns[1]

Property Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width

Value taCenter PemasokID True 100 taCenter Nama Pemasok True 60

16. Atur layout form FPemasok seperti gambar di bawah ini :

17. Pilih FPemasok pada Object TreeView, buat event onShow dan onClose, ketikkan perintah seperti table di bawah ini : Komponen FPemasok

Event onShow

onClose

Code procedure TFPemasok.FormShow(Sender: TObject); begin Pemasok.Open; end; procedure TFPemasok.FormClose(Sender: TObject; var Action: TCloseAction); begin Pemasok.Close; end;

18. Pilih SpeedButton1, SpeedButton2, SpeedButton3 dan SpeedButton4 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

Event onClick

Code procedure TFPemasok.SpeedButton2Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Pemasok.Insert; 2 : Pemasok.Post; 3 : Pemasok.Delete;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

135

Komponen

Event

Code 4 : Pemasok.Cancel; End; end;

19. Pilih Pemasok pada Object TreeView, buat event onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen Member

Event onNewRecord

Code procedure TFPemasok.PemasokNewRecord(DataSet: TDataSet); begin PemasokKota.Value := 'BANJARMASIN'; end;

20. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini : Komponen DataSource1

Event onStateChange

Code procedure TFPemasok.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := (Pemasok.State in [dsBrowse]) and (FUtama.HakAkses in [2]); SpeedButton2.Enabled := (Pemasok.State in dsEditModes) and (FUtama.HakAkses in [2]); SpeedButton3.Enabled := (Pemasok.State in [dsBrowse]) and (FUtama.HakAkses in [2]); SpeedButton4.Enabled := (Pemasok.State in dsEditModes) and (FUtama.HakAkses in [2]); DBEdit2.Enabled := FUtama.HakAkses in [2]; DBEdit3.Enabled := FUtama.HakAkses in [2]; DBEdit4.Enabled := FUtama.HakAkses in [2]; DBEdit5.Enabled := FUtama.HakAkses in [2]; end;

21. Kembali ke form FUtama, klik menu View – Forms, pilih FUtama, klik OK untuk melanjutkan. 22. Klik menu File – Use Unit, pilih FPemasok, klik OK untuk melanjutkan. 23. Pilih Pemasok1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Pemasok1

Event onClick

Code procedure TFUtama.Pemasok1Click(Sender: TObject); begin FPemasok.ShowModal; end;

24. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

136

Latihan 25 : Membuat Form Karyawan

Form karyawan digunakan untuk mengelola data karyawan yang meliputi nama, alamat, dan no. telepon. Table karyawan merupakan table master yang hanya boleh dibuka dengan hak akses pemilik/administrator. Form karyawan juga digunakan untuk mengatur hak akses dan password yang akan digunakan karyawan untuk login ke dalam aplikasi. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position

Value Karyawan bsDialog FKaryawan poDesktopCenter

4. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFKaryawan.pas dalam folder rental. 5. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 6. Tambahkan GroupBox1 dari tab Standard ke dalam FKaryawan, ubah property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent FKaryawan

Property Align Caption

Value alClient

7. Copy dan paste ToolBar1 dari form FPemasok ke dalam GroupBox1. 8. Tambahkan 2 buah GroupBox dari tab Standard ke dalam GroupBox1, atur property seperti table di bawah ini : Komponen GroupBox2

Tab Standard

Parent GroupBox1

GroupBox3

Standard

GroupBox1

Property Align Caption Align Caption

Value alLeft alClient

9. Tambahkan ADOTable1 dari tab ADO, atur property seperti table di bawah ini : Komponen ADOTable1

Tab ADO

Parent FKaryawan

Property Connection Name TableName

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value FUtama.ADOConnection1 Karyawan Karyawan

137

10. Buat persistent field untuk table Karyawan, klik dua kali Karyawan pada Object TreeView, klik kanan pada field editor, pilih Add All Fields. 11. Masih di field editor table Karyawan, pilih semua field (jika belum, klik kanan pada field editor, pilih Select All), lakukan drag and drop seluruh field ke GroupBox3. 12. Ubah property untuk komponen Data Control seperti table di bawah ini : Komponen DBEdit1 DBEdit1, DBEdit2, DBEdit3, DBEdit4, DBEdit5, DBEdit6, DBEdit7 DBImage1

Property Enabled CharCase

Value False ecUpperCase

Stretch

True

13. Tambahkan OpenPictureDialog1 dari tab Dialogs. 14. Tambahkan BitBtn1 dari tab Additional ke dalam GroupBox3, atur property seperti table di bawah ini : Komponen BitBtn1

Tab Additional

Parent GroupBox3

Property Caption Glyph

Value Cari … Cari.bmp

15. Tambahkan DBGrid1 dari tab Data Control ke dalam GroupBox2, atur property seperti table di bawah ini : Komponen DBGrid1

Tab Data Control

Parent GroupBox2

Property Align Datasource Options.dgRowSelect Options.dgAlwaysShowSelection Options.dgEditing

Value alClient Datasource1 False False True

16. Klik dua kali DBGrid1 untuk membuka Column Editor, klik kanan pada Column Editor, pilih Add All Fields. Dari daftar kolom yang ada, hapus semua kolom kecuali KaryawanID dan Nama. Atur property masingmasing kolom seperti table di bawah ini : Komponen DBGrid1.Columns[0]

DBGrid1.Columns[1]

Property Title.Alignment Title.Caption Title.Font.Style.fsBold Width Title.Alignment Title.Caption Title.Font.Style.fsBold Width

Value taCenter KaryawanID True 100 taCenter Nama Karyawan True 60

17. Atur layout form FKaryawan seperti gambar di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

138

18. Pilih FKaryawan pada Object TreeView, buat event onShow dan onClose, ketikkan perintah seperti table di bawah ini : Komponen FPemasok

Event onShow

onClose

Code procedure TFKaryawan.FormShow(Sender: TObject); begin Randomize; Karyawan.Open; end; procedure TFKaryawan.FormClose(Sender: TObject; var Action: TCloseAction); begin Karyawan.Close; end;

19. Pilih SpeedButton1, SpeedButton2, SpeedButton3 dan SpeedButton4 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

Event onClick

Code procedure TFKaryawan.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Karyawan.Insert; 2 : Karyawan.Post; 3 : Karyawan.Delete; 4 : Karyawan.Cancel; End; end;

20. Pilih Karyawan pada Object TreeView, buat event onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen

Event

Code

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

139

Komponen Member

Event onNewRecord

Code procedure TFKaryawan.KaryawanNewRecord(DataSet: TDataSet); begin KaryawanKota.Value := 'BANJARMASIN'; KaryawanHakAkses.Value := 1; KaryawanPasswords.Value := FormatFloat('0000', Random(9999)); end;

21. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini : Komponen DataSource1

Event onStateChange

Code procedure TFKaryawan.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := (Karyawan.State in [dsBrowse]) and (FUtama.HakAkses in [2]); SpeedButton2.Enabled := (Karyawan.State in dsEditModes) and (FUtama.HakAkses in [2]); SpeedButton3.Enabled := (Karyawan.State in [dsBrowse]) and (FUtama.HakAkses in [2]); SpeedButton4.Enabled := (Karyawan.State in dsEditModes) and (FUtama.HakAkses in [2]); DBEdit2.Enabled := FUtama.HakAkses in [2]; DBEdit3.Enabled := FUtama.HakAkses in [2]; DBEdit4.Enabled := FUtama.HakAkses in [2]; DBEdit5.Enabled := FUtama.HakAkses in [2]; DBEdit6.Enabled := FUtama.HakAkses in [2]; DBEdit7.Enabled := FUtama.HakAkses in [2]; DBImage1.Enabled := FUtama.HakAkses in [2]; end;

22. Pilih BitBtn1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen BitBtn1

Event onClick

Code procedure TFKaryawan.BitBtn1Click(Sender: TObject); begin With OpenPictureDialog1 do Begin If Execute then Begin If Karyawan.State in [dsBrowse] then Karyawan.Edit; DBImage1.Picture.LoadFromFile(FileName); End; End; end;

23. Kembali ke form FUtama, klik menu View – Forms, pilih FUtama, klik OK untuk melanjutkan. 24. Klik menu File – Use Unit, pilih FPemasok, klik OK untuk melanjutkan. 25. Pilih Karyawan1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

140

Komponen Karyawan1

Event onClick

Code procedure TFUtama.Karyawan1Click(Sender: TObject); begin FKaryawan.ShowModal; end;

26. Simpan, jalankan dan uji aplikasi.

Tugas di rumah :

NEW

1. Sempurnakan Latihan 17, 18, 19, 20 dan 21. 2. Selesaikan Latihan 22, 23, 24 dan 25. 3. Masukkan minimal 15 data koleksi lengkap dengan cover dan preview video (kalau ada) melalui form Koleksi. 4. Masukkan minimal 5 data pemasok melalui form Pemasok. 5. Masukkan minimal 5 data karyawan lengkap dengan foto melalui form Karyawan. 6. Tugas akan diperiksa satu persatu pada pertemuan berikutnya. 7. Tolong dicatat dan disampaikan apabila ditemukan adanya kekeliruan pada modul ini.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

141

Latihan 26 : Membuat Form Peminjaman

Form Peminjaman digunakan untuk melakukan transaksi peminjaman. Form ini menggunakan konsep master detail gabungan dari table Pinjam dan DPinjam. Pada form ini metode input transaksi dibuat semudah mungkin. Selain itu pada form ini disediakan fasilitas pencarian dan informasi jumlah stok koleksi yang tersedia. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position WindowState

Value Peminjaman bsSingle FPinjam poDesktopCenter wsMaximized

4. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFPinjam.pas dalam folder Rental. 5. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 6. Copy dan Paste ToolBar1 dari form FMember ke dalam FPinjam, atur kembali property seperti table di bawah ini : Komponen SpeedButton3 SpeedButton4

Tab Additional Additional

Parent ToolBar1 ToolBar1

Property Caption Caption

Value Nota Tutup

7. Tambahkan 3 buah Groupbox dari tab Standard ke dalam FPinjam, atur property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent FPinjam

GroupBox2

Standard

FPinjam

GroupBox3

Standard

FPinjam

Property Align Caption Align Caption Align Caption

Value alTop alLeft Koleksi Yang Dipinjam alBottom

8. Tambahkan 1 buah Splitter dari tab Additional ke dalam FPinjam. 9. Tambahkan 1 buah GroupBox dari tab Standar ke dalam FPinjam, atur property seperti table di bawah ini : Komponen GroupBox4

Tab Standard

Parent FPinjam

Property Align Caption

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value alClient Pencarian Koleksi

142

10. Tambahkan 2 buah ADOTable dan 4 buah ADOQuery, atur property seperti table di bawah ini : Komponen ADOTable1, ADOTable2, ADOQuery1, ADOQuery2, ADOQuery3, ADOQuery4 ADOTable1

Tab

Parent

Property Connection

Value FUtama.ADOConnection1

ADO

FPinjam

ADOTable2

ADO

FPinjam

ADOQuery1

ADO

FPinjam

Name TableName Name TableName Name SQL

ADOQuery2

ADO

FPinjam

Name SQL

ADOQuery3

ADO

FPinjam

Name SQL

ADOQuery4

ADO

FPinjam

Name SQL

Pinjam Pinjam DPinjam DPinjam qMember Select Member.MemberID, Member.Nama, Member.Alamat, Member.Kota, Member.Handphone From Member Order by Member.Nama qKaryawan Select Karyawan.KaryawanID, Karyawan.Nama From Karyawan Order by Karyawan.Nama qKoleksi Select Koleksi.KoleksiID, Koleksi.Judul, Koleksi.HargaSewa, Koleksi.LamaSewa From Koleksi Order by Koleksi.Judul qStock Select Koleksi.KoleksiID, Koleksi.Judul, Koleksi.PemeranUtama, Koleksi.Kategori, Koleksi.JenisKoleksi, (Koleksi.Jumlah (Select Count(DPinjam.DPinjamID) From Pinjam, DPinjam Where (Pinjam.PinjamID = DPinjam.PinjamID) and (DPinjam.KoleksiID = Koleksi.KoleksiID) and (DPinjam.KembaliID = 0))) as stock From Koleksi Where (Koleksi.Judul like :Judul) Or (Koleksi.PemeranUtama like :PemeranUtama) Or (Koleksi.Kategori like :Kategori) Or (Koleksi.JenisKoleksi like :JenisKoleksi)

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

143

Komponen

Tab

Parent

Property

Value Order by Koleksi.Judul, Koleksi.PemeranUtama

11. Pilih qStock pada Object TreeView, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, ubah property seperti table di bawah ini : Komponen TParameters[0] TParameters[1] TParameters[2] TParameters[3]

Property DataType DataType DataType DataType

Value ftWideString ftWideString ftWideString ftWideString

12. Buat persistent field table Pinjam, klik dua kali Pinjam pada Object TreeView untuk membuka field editor, klik kanan dan pilih Add All Fields. 13. Dengan cara yang sama dengan point 12, buat persistent field table DPinjam, qMember, qKaryawan, qKoleksi dan qStock. 14. Klik dua kali Pinjam pada Object TreeView untuk membuka field editor, pilih field TotalSewa, ubah property seperti table di bawah ini : Komponen PinjamTotalSewa

Property Currency

Value True

15. Klik dua kali DPinjam pada Object TreeView untuk membuka field editor, pilih field HargaSewa, ubah property seperti table di bawah ini : Komponen DPinjamHargaSewa

Property Currency

Value True

16. Tambahkan 3 buah DataSource dari tab Data Access, ubah property seperti table di bawah ini ; Komponen Datasource1 DataSource2 DataSource3

Tab Data Access Data Access Data Access

Parent FPinjam FPinjam FPinjam

Property Dataset Dataset Dataset

Value Pinjam DPinjam qStock

17. Buat hubungan master detail antara table Pinjam dan DPinjam, Pilih table DPinjam pada Object TreeView, ubah property seperti table di bawah ini : Komponen DPinjam

Property MasterSource

Value Datasource1

18. Pilih table DPinjam pada Object TreeView, klik tombol ellipsis pada property MasterField untuk membuka Field Link Designer. Pilih PinjamID pada Detail Fields dan PinjamID pada Master Fields. Klik Add untuk menambahkan ke dalam Joined Fields. Klik OK untuk melanjutkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

144

19. Tambahkan field baru NamaMember pada table Pinjam, klik dua kali Pinjam pada Object TreeView untuk membuka field editor, klik kanan dan pilih New Fields, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field NamaMember

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value NamaMember String 30 Lookup MemberID qMember MemberID Nama

20. Tambahkan field baru Alamat pada table Pinjam, sama seperti point 19, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Alamat

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value Alamat String 50 Lookup MemberID qMember MemberID Alamat

21. Tambahkan field baru Kota pada table Pinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Kota

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Kota String 30 Lookup MemberID

145

Dataset Lookup Keys Result Field

qMember MemberID Kota

22. Tambahkan field baru Handphone pada table Pinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Handphone

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value Handphone String 30 Lookup MemberID qMember MemberID Handphone

23. Tambahkan field baru NamaKaryawan pada table Pinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field NamaKaryawan

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value NamaKaryawan String 30 Lookup KaryawanID qKaryawan KaryawanID Nama

24. Klik dua kali DPinjam pada Object TreeView untuk membuka Field Editor, tambahkan field baru JudulKoleksi pada table DPinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field JudulKoleksi

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value JudulKoleksi String 100 Lookup KoleksiID qKoleksi KoleksiID Judul

25. Tambahkan field baru HargaSewaKoleksi pada table DPinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field HargaSewaKoleksi

Section Field Properties Field type Lookup Definition

Property Name Type Field type Key Fields Dataset

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value HargaSewaKoleksi Currency Lookup KoleksiID qKoleksi

146

Lookup Keys Result Field

KoleksiID HargaSewa

26. Tambahkan field baru LamaSewaKoleksi pada table DPinjam, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field LamaSewaKoleksi

Section Field Properties Field type Lookup Definition

Property Name Type Field type Key Fields Dataset Lookup Keys Result Field

Value LamaSewaKoleksi Integer Lookup KoleksiID qKoleksi KoleksiID LamaSewa

27. Klik dua kali Pinjam pada Object TreeView untuk membuka field Editor. Pilih field PinjamID, TglPinjam, MemberID, NamaMember, Alamat, Kota dan Handphone, lakukan drag and drop ke dalam GroupBox1. 28. Tambahkan DBGrid1 dari tab Data Control ke dalam GroupBox2, atur property seperti table di bawah ini : Komponen DBGrid1

Tab Data Control

Parent GroupBox2

Property Align Datasource Options.dgRowSelect Options.dgAlwaysShowSelection

Value alClient DataSource2 True True

29. Klik dua kali DBGrid1 pada Object TreeView untuk membuka Column Editor, tambahkan 4 buah column dengan mengklik kanan Column Editor, pilih Add, ubah property masing-masing kolom seperti table di bawah ini : Komponen DBGrid1.Columns[0] DBGrid1.Columns[1] DBGrid1.Columns[2] DBGrid1.Columns[3] DBGrid1.Columns[0], DBGrid1.Columns[1], DBGrid1.Columns[2], DBGrid1.Columns[3]

Property FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption Title.Alignment Title.Font.Style.fsBold

Value KoleksiID ID JudulKoleksi Judul Koleksi TglHarusKembali Tgl Harus Kembali HargaSewa Harga Sewa taCenter True

30. Klik dua kali Pinjam pada Object TreeView untuk membuka field editor, lakukan drag dan drop field NamaKaryawan dan TotalSewa ke dalam GroupBox3. 31. Tambahkan DBNavigator1 dari tab Data Control ke dalam GroupBox3, atur property seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

147

Komponen DBNavigator1

Tab Data Control

Parent GroupBox3

Property Align Datasource Flat VisibleButtons.nbInsert VisibleButtons.nbDelete VisibleButtons.nbEdit VisibleButtons.nbPost VisibleButtons.nbCancel VisibleButtons.nbRefresh

Value alBottom Datasource1 True False False False False False False

32. Tambahkan ToolBar2 dari tab Win32 ke dalam GroupBox4, atur property seperti table di bawah ini : Komponen ToolBar2

Tab Win32

Parent GroupBox4

Property Align

Value alBottom

33. Tambahkan Edit1 dari tab Standard ke dalam ToolBar2, atur property seperti table di bawah ini : Komponen Edit1

Tab Standard

Parent ToolBar2

Property Text

Value

34. Tambahkan DBGrid2 dari tab Data Control ke dalam GroupBox4, atur property seperti table di bawah ini : Komponen DBGrid2

Tab Data Control

Parent GroupBox4

Property Align Datasource Options.dgRowSelect Options.dgAlwaysShowSelection Options.dgEditing

Value alClient DataSource3 False False True

35. Klik dua kali DBGrid2 untuk membuka column editor, klik kanan pada column editor, kemudian pilih Add All Fields, atur susunan column seperti gambar di bawah ini :

Ubah property masing-masing kolom seperti table di bawah ini : Komponen DBGrid2.Columns[0] DBGrid2.Columns[1] DBGrid2.Columns[2]

Property Title.Caption Title.Caption Title.Caption

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value ID Judul Koleksi Stock

148

Komponen DBGrid2.Columns[3] DBGrid2.Columns[4] DBGrid2.Columns[5] DBGrid2.Columns[0], DBGrid2.Columns[1], DBGrid2.Columns[2], DBGrid2.Columns[3], DBGrid2.Columns[4], DBGrid2.Columns[5]

Property Title.Caption Title.Caption Title.Caption Title.Alignment Title.Font.Style.fsBold

Value Pemeran Utama Kategori Jenis Koleksi taCenter True

36. Atur property untuk komponen Data Control seperti table di bawah ini : Komponen DBEdit1, DBLookUpCombobox2, DBLookupCombobox3, DBLookupCombobox4, DBLookUpCombobox5, DBEdit4

Property Enabled

Value False

37. Atur layout form FPinjam seperti gambar di bawah ini :

38. Tambahkan unit DateUtils pada blok Uses di unit UFPinjam, lihat gambar berikut :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

149

39. Tambahkan variable PinjamID dengan type Integer pada blok Public di unit UFPinjam.

40. Buat procedure UpdateqStock dan procedure UpdateTotalSewa pada blok Private di unit UFPinjam, tekan Ctrl+Shift+C untuk membuat blok procedure (lihat gambar di atas), ketikkan perintah seperti table di bawah ini : Komponen FPinjam

Event UpdateqStock

UpdateTotalSewa

Code procedure TFPinjam.UpdateqStock; begin qStock.Close; qStock.Parameters[0].Value := '%' + Edit1.Text + qStock.Parameters[1].Value := '%' + Edit1.Text + qStock.Parameters[2].Value := '%' + Edit1.Text + qStock.Parameters[3].Value := '%' + Edit1.Text + qStock.Open; end; procedure TFPinjam.UpdateTotalSewa; var TempTotal: Real; PrevRecord: TBookmark; begin PrevRecord := DPinjam.GetBookmark; try DPinjam.DisableControls; DPinjam.First; TempTotal := 0; while not DPinjam.EOF do

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

'%'; '%'; '%'; '%';

150

Komponen

Event

Code begin TempTotal := TempTotal + DPinjamHargaSewa.Value; DPinjam.Next; end; If not (Pinjam.State in dsEditModes) then Pinjam.Edit; PinjamTotalSewa.Value := TempTotal; finally DPinjam.EnableControls; if PrevRecord nil then begin DPinjam.GoToBookmark(PrevRecord); DPinjam.FreeBookmark(PrevRecord); end; end; end;

41. Pilih FPinjam pada Object TreeView, buat event onCreate, onShow dan onClose, ketikkan perintah seperti table di bawah ini :

Komponen FKoleksi

Event onCreate

onShow

onClose

Code procedure TFPinjam.FormCreate(Sender: TObject); begin PinjamID := 0; end; procedure TFPinjam.FormShow(Sender: TObject); begin Pinjam.Open; DPinjam.Open; qMember.Open; qKaryawan.Open; qKoleksi.Open; UpdateqStock; If PinjamID > 0 then Pinjam.Locate('PinjamID', PinjamID, []) else Pinjam.Insert; end; procedure TFPinjam.FormClose(Sender: TObject; var Action: TCloseAction); begin Pinjam.Close; DPinjam.Close; qMember.Close; qKaryawan.Close; qKoleksi.Close; qStock.Close; end;

42. Pilih SpeedButton1, SpeedButton2, SpeedButton3 dan SpeedButton4 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen

Event

Code

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

151

Komponen SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

Event onClick

Code procedure TFPinjam.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Pinjam.Post; 2 : Pinjam.Delete; 3:; 4 : Pinjam.Cancel; End; If (Sender as TSpeedButton).Tag in [2,4] then Close; end;

43. Pilih Pinjam pada Object TreeView, buat event BeforeDelete dan onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen Pinjam

Event BeforeDelete

onNewRecord

Code procedure TFPinjam.PinjamBeforeDelete(DataSet: TDataSet); begin If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort; end; procedure TFPinjam.PinjamNewRecord(DataSet: TDataSet); begin If DBEdit3.Enabled then ActiveControl := DBEdit3; PinjamTglPinjam.Value := Today; PinjamTotalSewa.Value := 0; PinjamKaryawanID.Value := FUtama.KaryawanID; end;

44. Pilih DPinjam pada Object TreeView, buat event AfterDelete, AfterPost, BeforeDelete dan onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen DPinjam

Event AfterDelete

AfterPost

BeforeDelete

onNewRecord

Code procedure TFPinjam.DPinjamAfterDelete(DataSet: TDataSet); begin UpdateTotalSewa; end; procedure TFPinjam.DPinjamAfterPost(DataSet: TDataSet); begin UpdateTotalSewa; end; procedure TFPinjam.DPinjamBeforeDelete(DataSet: TDataSet); begin If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort else UpdateqStock; end; procedure TFPinjam.DPinjamNewRecord(DataSet: TDataSet); begin DPinjamPinjamID.Value := PinjamPinjamID.Value; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

152

45. Pilih Datasource1 pada Object TreeView, buat event onStateChange, ketikkan perintah seperti table di bawah ini : Komponen DataSource1

Event onStateChange

Code procedure TFPinjam.DataSource1StateChange(Sender: TObject); begin SpeedButton1.Enabled := (Pinjam.State in dsEditModes) and (FUtama.HakAkses in [1,2]); SpeedButton2.Enabled := (Pinjam.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]); SpeedButton3.Enabled := (Pinjam.State in [dsBrowse]) and (FUtama.HakAkses in [1,2]); DBEdit3.Enabled := FUtama.HakAkses in [1,2]; DBLookUpCombobox1.Enabled := FUtama.HakAkses in [1,2]; DBGrid1.Enabled := FUtama.HakAkses in [1,2]; DBGrid2.Enabled := FUtama.HakAkses in [1,2]; Edit1.Enabled := FUtama.HakAkses in [1,2]; DBNavigator1.Enabled := FUtama.HakAkses in [2]; end;

46. Pilih DBGrid1 pada Object TreeView, buat event onDblClick, ketikkan perintah seperti table di bawah ini : Komponen DBGrid1

Event onDblClick

Code procedure TFPinjam.DBGrid1DblClick(Sender: TObject); begin DPinjam.Delete; end;

47. Pilih DBGrid2 pada Object TreeView, buat event onDblClick, ketikkan perintah seperti table di bawah ini : Komponen DBGrid2

Event onDblClick

Code procedure TFPinjam.DBGrid2DblClick(Sender: TObject); begin If PinjamMemberID.Value = 0 then Begin MessageDlg('Silakan Pilih Member!', mtInformation, [mbOK], 0); Abort; End; If qStockStock.Value > 0 then Begin If Pinjam.State in dsEditModes then Pinjam.Post; DPinjam.Insert; DPinjamKoleksiID.Value := qStockKoleksiID.Value; DPinjamHargaSewa.Value := DPinjamHargaSewaKoleksi.Value; DPinjamTglHarusKembali.Value := PinjamTglPinjam.Value + DPinjamLamaSewaKoleksi.Value; DPinjamKembaliID.Value := 0; DPinjam.Post; UpdateqStock; End

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

153

Komponen

Event

Code Else MessageDlg('Stock koleksi kosong!', mtInformation, [mbOK], 0); end;

48. Pilih Edit1 pada Object TreeView, buat event onKeyPress, ketikkan perintah seperti table di bawah ini : Komponen Edit1

Event onKeyPress

Code procedure TFPinjam.Edit1KeyPress(Sender: TObject; var Key: Char); begin If Key = #13 then UpdateqStock; end;

49. Kembali ke form FUtama, klik View – Forms, pilih FUtama, klik OK untuk melanjutkan. 50. Klik menu File – Use Unit, pilih FPinjam, klik OK untuk melanjutkan. 51. Pilih Peminjaman1 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen Peminjaman1

Event onClick

Code procedure TFUtama.Peminjaman1Click(Sender: TObject); begin FPinjam.ShowModal; end;

52. Pilih SpeedButton3 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton3

Event onClick

Code procedure TFUtama.SpeedButton3Click(Sender: TObject); begin FPinjam.ShowModal; end;

53. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

154

Latihan 27 : Membuat QuickReport Nota Peminjaman

Nota Peminjaman adalah bukti transaksi peminjaman yang dilakukan oleh Member. Nota Peminjaman menggunakan kertas ukuran A5 dengan posisi Landscape. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat Report baru, klik menu File – New – Others, pada tab New pilih Reports, klik OK untuk melanjutkan. 3. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 4. Tambahkan ADOQuery1 dari tab ADO, ubah property seperti table di bawah ini : Komponen ADOQuery1

Tab ADO

Parent QuickReport1

Property Connection Name SQL

Value FUtama.ADOConnection1 qPinjam Select Pinjam.*, Member.Nama as NamaMember, Member.Alamat, Member.Kota, Member.Handphone, Karyawan.Nama as NamaKaryawan, DPinjam.*, Koleksi.Judul, Koleksi.JenisKoleksi From Pinjam, Member, Karyawan, DPinjam, Koleksi Where (Pinjam.MemberID = Member.MemberID) and (Pinjam.KaryawanID = Karyawan.KaryawanID) and (Pinjam.PinjamID = DPinjam.PinjamID) and (DPinjam.KoleksiID = Koleksi.KoleksiID) and (Pinjam.PinjamID = :PinjamID) Order by DPinjam.DPinjamID

5. Pilih qPinjam pada Object TreeView, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, ubah property seperty table di bawah ini : Komponen TParameters[0]

Property DataType

Value ftInteger

6. Buat persistent field untuk qPinjam, klik dua kali qPinjam pada Object TreeView, klik kanan dan pilih Add All Fields. 7. Pilih QuickReport1 pada Object TreeView, ubah property seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

155

Komponen QuickReport1

Property Dataset Name

Value qPinjam QRNotaPinjam

8. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UQRNotaPinjam.pas dalam folder Rental. 9. Klik dua kali QRNotaPinjam pada Object TreeView untuk membuka jendela Report Settings. Ubah Units dari Inch menjadi MM, klik Apply. Settings Report Settings

Section Other

Property Units

Value MM

10. Masih pada jendela Report Settings, ubah setting lainnya seperti gambar berikut, klik OK untuk melanjutkan. Settings Report Settings

Section Paper size Margin

Other Bands

Property Paper size Orientation Top Bottom Left Right Font Size PageHeader ColumnHeader DetailBand Summary Print first page header Print last page footer

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value A5 148 x 210 mm Landscape 5.00 5.00 5.00 5.00 Trebuchet MS 10 True True True True True True

156

11. Tambahkan 22 buah QRLabel dari tab QReports ke PageHeaderBand1, ubah property seperti table di bawah ini :

dalam

Komponen QRLabel1 QRLabel2 QRLabel3 QRLabel1, QRLabel2, QRLabel3 QRLabel4

Tab QReports QReports QReports

Parent PageHeaderBand1 PageHeaderBand1 PageHeaderBand1

Property Caption Caption Caption Font.Style.fsBold

Value NamaRental AlamatRental TelpRental True

QReports

PageHeaderBand1

QRLabel5 QRLabel6 QRLabel7 QRLabel8 QRLabel9 QRLabel10 QRLabel11 QRLabel12 QRLabel13 QRLabel14 s/d QRLabel22

QReports QReports QReports QReports QReports QReports QReports QReports QReports QReports

PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1

Caption Font.Style.fsUnderline Font.Style.fsBold Caption Caption Caption Caption Caption Caption Caption Caption Caption Caption

NOTA PEMINJAMAN True True PinjamID Tanggal KaryawanID Nama Karyawan MemberID Nama Alamat Kota Handphone :

12. Tambahkan 9 buah QDBText dari tab QReports ke PageHeaderBand1, ubah property seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

dalam

157

Komponen QRDBText1 s/d QRDBText9 QRDBText1 QRDBText2 QRDBText3 QRDBText4 QRDBText5 QRDBText6 QRDBText7 QRDBText8 QRDBText9

Tab

Parent

Property Dataset

Value qPinjam

QReports QReports QReports QReports QReports QReports QReports QReports QReports

PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1 PageHeaderBand1

DataField DataField DataField DataField DataField DataField DataField DataField DataField

Pinjam.PinjamID TglPinjam KaryawanID NamaKaryawan MemberID NamaMember Alamat Kota Handphone

13. Pilih ColumnHeaderBand1 pada Object TreeView, ubah property seperti table di bawah ini : Komponen ColumnHeaderBand1

Property Frame.DrawBottom Frame.DrawTop Height

Value True True 32

14. Tambahkan 6 buah QRLabel dari tab QReports ke ColumnHeaderBand1, ubah property seperti table di bawah ini : Komponen QRLabel23 QRLabel24 QRLabel25 QRLabel26 QRLabel27 QRLabel28 QRLabel23, QRLabel24, QRLabel28

Tab QReports QReports QReports QReports QReports QReports

Parent ColumnHeaderBand1 ColumnHeaderBand1 ColumnHeaderBand1 ColumnHeaderBand1 ColumnHeaderBand1 ColumnHeaderBand1

Property Caption Caption Caption Caption Caption Caption Alignment

dalam

Value No. KoleksiID Judul Koleksi Jenis Koleksi Tgl. Harus Kembali Harga Sewa taRightJustify

15. Pilih DetailBand1 pada Object TreeView, ubah property seperti table di bawah ini : Komponen DetailBand1

Property Height

Value 19

16. Tambahkan 1 buah QRSysData, 4 buah QRDBText dan 1 buah QRExpr dari tab QReports ke dalam DetailBand1, ubah property seperti table di bawah ini : Komponen QRSysData1 QRDBText10, QRDBText11, QRDBText12, QRDBText13

Tab QReports QReports

Parent DetailBand1 DetailBand1

Property Data Dataset

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value qrsDetailNo qPinjam

158

Komponen QRDBText10 QRDBText11 QRDBText12 QRDBText13 QRExpr1

Tab

Parent

QReports

DetailBand1

QRSysData1, QRDBText10, QRExpr1 QRSysData1, QRDBText10, QRDBText11, QRDBtext12, QRDBText13, QRExpr1

Property DataField DataField DataField DataField Expression Alignment

Value KoleksiID Judul JenisKoleksi TglHarusKembali FORMATNUMERIC(',0', qPinjam.HargaSewa) taRightJustify

Autosize

False

17. Pilih SummaryBand1 pada Object TreeView, ubah property seperti table di bawah ini : Komponen SummaryBand1

Property Frame.DrawTop Height

Value True 40

18. Tambahkan 3 buah QRLabel, 1 buah QRSysData dan 1 buah QRExpr dari tab QReports ke dalam SummaryBand1, ubah property seperti table di bawah ini : Komponen QRLabel29 QRLabel30 QRSysData2 QRLabel31 QRExpr2

Tab QReports QReports QReports QReports QReports

Parent SummaryBand1 SummaryBand1 SummaryBand1 SummaryBand1 SummaryBand1

Property Caption Caption Data Caption Expression Autosize Alignment

Value Dicetak : qrsDateTime Total Sewa FORMATNUMERIC(',0', SUM(qPinjam.HargaSewa)) False taRightJustify

19. Atur layout QRNotaPinjam seperti gambar berikut ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

159

20. Kembali ke form FPinjam, klik menu View – Form, pilih FPinjam, klik OK untuk melanjutkan. 21. Klik menu File – Use Unit, pilih UQRNotaPinjam, klik OK untuk melanjutkan. 22. Buat procedure CetakNotaPinjam pada blok Private, tekan Ctrl+Shift+C untuk membuat blok procedure, ketikkan perintah seperti table di bawah ini : Komponen FPinjam

Procedure CetakNotaP injam

Code procedure TFPinjam.CetakNotaPinjam; begin With QRNotaPinjam do Begin qPinjam.Close; qPinjam.Parameters[0].Value := PinjamPinjamID.Value; qPinjam.Open; QRLabel1.Caption := FUtama.NamaRental; QRLabel2.Caption := FUtama.AlamatRental; QRLabel3.Caption := FUtama.TelpRental; Preview; End; end;

23. Pilih SpeedButton3 pada Object TreeView, perbarui event onClick seperti table di bawah ini : Komponen SpeedButton3

Event onClick

Code procedure TFPinjam.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Pinjam.Post; 2 : Pinjam.Delete; 3 : CetakNotaPinjam; 4 : Pinjam.Cancel; End; If (Sender as TSpeedButton).Tag in [2,4] then Close; end;

24. Simpan, jalankan dan uji aplikasi.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

160

Latihan 28 : Membuat Form Pengembalian

Form Pengembalian digunakan untuk melakukan transaksi pengembalian. Seperti Form Peminjaman, form ini juga menggunakan konsep master detail gabungan dari table Kembali dan DPinjam. Pada form ini metode input transaksi dibuat semudah mungkin. Pada bagian kanan terdapat daftar koleksi yang belum dikembalikan oleh member bersangkutan. Langkah-langkah : 1. Pastikan project Rental.dpr telah dibuka. 2. Buat form baru, klik menu File – New – Form. 3. Ubah property form yang baru dibuat seperti pada table di bawah ini : Komponen Form1

Property Caption BorderStyle Name Position WindowState

Value Pengembalian bsSingle FKembali poDesktopCenter wsMaximized

4. Klik menu File – Save All untuk menyimpan project. Simpan Unit1 menjadi UFKembali.pas dalam folder Rental. 5. Klik menu File – Use Unit, pilih UFUtama, klik OK untuk melanjutkan. 6. Copy dan Paste ToolBar1 dari form FPinjam ke dalam FKembali. 7. Tambahkan 3 buah GroupBox1 dari tab Standard ke dalam FKembali, atur property seperti table di bawah ini : Komponen GroupBox1

Tab Standard

Parent FKembali

GroupBox2

Standard

FKembali

GroupBox3

Standard

FKembali

Property Align Caption Align Caption Align Caption

Value alTop alLeft Koleksi Yang Dikembalikan alBottom

8. Tambahkan 1 buah Splitter dari tab Additional ke dalam FKembali. 9. Tambahkan 1 buah GroupBox dari tab Standard ke dalam FKembali, atur property seperti table di bawah ini : Komponen GroupBox4

Tab Standard

Parent FPinjam

Property Align Caption

Value alClient Koleksi Belum Kembali

10. Tambahkan 3 buah ADOTable dan 4 buah ADOQuery atur property seperti table di bawah ini : Komponen

Tab

Parent

Property

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value

161

Komponen ADOTable1, ADOTable2, ADOTable3, ADOQuery1, ADOQuery2, ADOQuery3, ADOQuery4 ADOTable1

Tab

Parent

Property Connection

Value FUtama.ADOConnection1

ADO

FKembali

ADOTable2

ADO

FKembali

ADOTable3

ADO

FKembali

ADOQuery1

ADO

FKembali

Name TableName Name TableName Name CursorLocation TableName Name SQL

ADOQuery2

ADO

FKembali

Name SQL

ADOQuery3

ADO

FKembali

Name SQL

ADOQuery4

ADO

FKembali

Name SQL

Kembali Kembali DKembali DPinjam DPinjam clUseServer DPinjam qMember Select Member.MemberID, Member.Nama, Member.Alamat, Member.Kota, Member.Handphone From Member Order by Member.Nama qKaryawan Select Karyawan.KaryawanID, Karyawan.Nama From Karyawan Order by Karyawan.Nama qKoleksi Select Koleksi.KoleksiID, Koleksi.Judul From Koleksi Order by Koleksi.Judul qBKembali Select Pinjam.PinjamID, Pinjam.TglPinjam, Pinjam.MemberID, DPinjam.DPinjamID, DPinjam.KoleksiID, Koleksi.Judul, Koleksi.HargaDenda, DPinjam.TglHarusKembali From Pinjam, DPinjam, Koleksi Where (Pinjam.PinjamID = DPinjam.PinjamID) and (DPinjam.KoleksiID = Koleksi.KoleksiID) and (DPinjam.KembaliID = 0) and (Pinjam.MemberID = :MemberID)

11. Pilih qBKembali pada Object TreeView, klik tombol ellipsis pada property Parameters untuk membuka jendela Edit Parameters, ubah property seperti table di bawah ini :

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

162

Komponen TParameters[0]

Property DataType

Value ftInteger

12. Buat persistent field table Kembali, klik dua kali Kembali pada Object TreeView untuk membuka field editor, klik kanan dan pilih Add All Fields. 13. Dengan cara yang sama dengan point 12, buat persistent field table DKembali, DPinjam, qMember, qKaryawan, qKoleksi dan qBKembali. 14. Klik dua kali Kembali pada Object TreeView untuk membuka field editor, pilih field TotalDenda, ubah property seperti table di bawah ini : Komponen KembaliTotalDenda

Property Currency

Value True

15. Klik dua kali DKembali pada Object TreeView untuk membuka field editor, pilih field HargaDenda, ubah property seperti table di bawah ini : Komponen DKembaliHargaDenda

Property Currency

Value True

16. Tambahkan 3 buah DataSource dari tab Data Acces, ubah property seperti table di bawah ini : Komponen Datasource1 DataSource2 DataSource3

Tab Data Access Data Access Data Access

Parent FKembali FKembali FKembali

Property Dataset Dataset Dataset

Value Kembali DKembali qBKembali

17. Buat hubungan master detail antara table Kembali dan DKembali, pilih table DKembali pada Object TreeView, ubah property seperti table di bawah ini : Komponen DKembali

Property MasterSource

Value Datasource1

18. Pilih table DKembali pada Object TreeView, klik tombol elipsisi pada property MasterField untuk membuka Field Link Designer. Pilih KembaliID pada Detail Fields dan KembaliID pada Master Fields. Klik Add untuk menambahkan ke dalam Joined Fields. Klik OK untuk melanjutkan.

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

163

19. Tambahkan field baru NamaMember pada table Kembali, klik dua kali Kembali pada Object TreeView untuk membuka Field Editor, klik kanan dan pilih New Fields, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field NamaMember

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value NamaMember String 30 Lookup MemberID qMember MemberID Nama

20. Tambahkan field baru Alamat pada table Kembali, sama seperti point 19, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Alamat

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value Alamat String 50 Lookup MemberID qMember MemberID Alamat

21. Tambahkan field baru Kota pada table Kembali, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Kota

Section Field Properties

Property Name Type Size

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Kota String 30

164

Field type Lookup Definition

Field type Key Fields Dataset Lookup Keys Result Field

Lookup MemberID qMember MemberID Kota

22. Tambahkan field baru Handphone pada table Kembali, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Handphone

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value Handphone String 30 Lookup MemberID qMember MemberID Handphone

23. Tambahkan field baru NamaKaryawan pada table Kembali, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field NamaKaryawan

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value NamaKaryawan String 30 Lookup KaryawanID qKaryawan KaryawanID Nama

24. Klik dua kali DKembali pada Object TreeView untuk membuka Field Editor, tambahkan field baru JudulKoleksi pada table DKoleksi, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field JudulKoleksi

Section Field Properties

Field type Lookup Definition

Property Name Type Size Field type Key Fields Dataset Lookup Keys Result Field

Value JudulKoleksi String 100 Lookup KoleksiID qKoleksi KoleksiID Judul

25. Klik dua kali qBKembali pada Object TreeView untuk membuka field editor, tambahkan field baru Telat pada table qBKembali, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Telat

Section Field Properties

Property Name Type

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value Telat Integer

165

Field type

Field type

Calculated

26. Tambahkan field baru Denda pada table qBKembali, lengkapi informasi pada jendela New Field seperti table di bawah ini : Field Denda

Section Field Properties Field type

Property Name Type Field type

Value Denda Currency Calculated

27. Masih pada field editor table qBKembali, pilih field Denda, ubah property seperti table di bawah ini : Komponen qBKembaliDenda

Property Currency

Value True

28. Klik dua kali Kembali pada Object TreeView untuk membuka field editor. Pilih field KembaliID, TglKembali, MemberID, NamaMember, Alamat, Kota dan Handphone, lakukan drag and drop ke dalam GroupBox1. 29. Tambahkan DBGrid1 dari tab Data Control ke dalam GroupBox2, atur property seperti table di bawah ini : Komponen DBGrid1

Tab Data Control

Parent GroupBox2

Property Align Datasource Options.dgRowSelect Options.dgAlwaysShowSelection Options.dgEditing

Value alClient DataSource2 False False True

30. Klik dua kali DBGrid1 pada Object TreeView untuk membuka Column Editor, tambahkan 4 buah dengan mengklik kanan pada Column Editor, pilih Add. Ubah property masing-masing kolom seperti table di bawah ini : Komponen DBGrid1.Columns[0] DBGrid1.Columns[1] DBGrid1.Columns[2] DBGrid1.Columns[3] DBGrid1.Columns[0], DBGrid1.Columns[1], DBGrid1.Columns[2], DBGrid1.Columns[3]

Property FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption Title.Alignment Title.Font.Style.fsBold

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value KoleksiID ID JudulKoleksi Judul Koleksi TglHarusKembali Tgl Harus Kembali Denda Denda taCenter True

166

31. Klik dua kali table Kembali pada Object TreeView untuk membuka field editor, pilih field Nama Karyawan dan TotalDenda, lakukan drag and drop ke dalam GroupBox3. 32. Tambahkan DBNavigator1 dari tab Data Control ke dalam GroupBox3, atur property seperti table di bawah ini : Komponen DBNavigator1

Tab Data Control

Parent GroupBox3

Property Align Datasource Flat VisibleButtons.nbInsert VisibleButtons.nbDelete VisibleButtons.nbEdit VisibleButtons.nbPost VisibleButtons.nbCancel VisibleButtons.nbRefresh

Value alBottom Datasource1 True False False False False False False

33. Tambahkan DBGrid2 dari tab Data Control ke dalam GroupBox4, atur property seperti table di bawah ini : Komponen DBGrid2

Tab Data Control

Parent GroupBox4

Property Align Datasource Options.dgRowSelect Options.dgAlwaysShowSelection

Value alClient DataSource3 True True

34. Klik dua kali DBGrid2 pada Object TreeView untuk membuka Column Editor, tambahkan 6 buah kolom, ubah property masing-masing kolom seperti table di bawah ini : Komponen DBGrid2.Columns[0] DBGrid2.Columns[1] DBGrid2.Columns[2] DBGrid2.Columns[3] DBGrid2.Columns[4] DBGrid2.Columns[5] DBGrid2.Columns[0], DBGrid2.Columns[1], DBGrid2.Columns[2], DBGrid2.Columns[3], DBGrid2.Columns[4], DBGrid2.Columns[5]

Property FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption FieldName Title.Caption Title.Alignment Title.Font.Style.fsBold

Value TglPinjam Tgl Pinjam KoleksiID ID Judul Judul Koleksi TglHarusKembali Tgl Harus Kembali Telat Telat Denda Denda taCenter True

35. Atur property untuk komponen Data Control seperti table di bawah ini : Komponen

Property

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

Value

167

DBEdit1, DBLookUpCombobox2, DBLookupCombobox3, DBLookupCombobox4, DBLookUpCombobox5, DBEdit4

Enabled

False

36. Atur layout form FKembali seperti gambar di bawah ini :

37. Tambahkan unit DateUtils pada blok Uses di unit UFKembali, lihat Latihan 27 point 38. 38. Tambahkan variable KembaliID dengan type Integer pada blok Public di unit UFKembali, lihat Latihan 27 point 39. 39. Buat procedure UpdateqBKembali dan Procedure UpdateTotalDenda pada blok Private di unit UFKembali, tekan Ctrl+Shift+C untuk membuat blok procedure tersebut (lihat Latihan 27 point 40), ketikkan perintah seperti table di bawah ini : Komponen FKembali

Event UpdateqBKembali

UpdateTotalDenda

Code procedure TFKembali.UpdateqBKembali; begin qBKembali.Close; If DBEdit3.Text = '' then qBKembali.Parameters[0].Value := 0 else qBKembali.Parameters[0].Value := strtoint(DBEdit3.Text); qBKembali.Open; end; procedure TFKembali.UpdateTotalDenda; var TempTotal: Real; PrevRecord: TBookmark; begin

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

168

Komponen

Event

Code PrevRecord := DKembali.GetBookmark; try DKembali.DisableControls; DKembali.First; TempTotal := 0; while not DKembali.EOF do begin TempTotal := TempTotal + DKembaliHargaDenda.Value; DKembali.Next; end; If not (Kembali.State in dsEditModes) then Kembali.Edit; KembaliTotalDenda.Value := TempTotal; finally DKembali.EnableControls; if PrevRecord nil then begin DKembali.GoToBookmark(PrevRecord); DKembali.FreeBookmark(PrevRecord); end; end; end;

40. Pilih FKembali pada Object TreeView, buat event onCreate, onShow dan onClose, ketikkan perintah seperti table di bawah ini : Komponen FKembali

Event onCreate

onShow

onClose

Code procedure TFKembali.FormCreate(Sender: TObject); begin KembaliID := 0; end; procedure TFKembali.FormShow(Sender: TObject); begin Kembali.Open; DKembali.Open; DPinjam.Open; qMember.Open; qKaryawan.Open; qKoleksi.Open; UpdateqBKembali; If KembaliID > 0 then Kembali.Locate('KembaliID', KembaliID, []) else Kembali.Insert; end; procedure TFKembali.FormClose(Sender: TObject; var Action: TCloseAction); begin Kembali.Close; DPinjam.Close; DKembali.Close; qMember.Close; qKaryawan.Close; qKoleksi.Close; qBKembali.Close; end;

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

169

41. Pilih SpeedButton1, SpeedButton2, SpeedButton3 dan SpeedButton4 pada Object TreeView, buat event onClick, ketikkan perintah seperti table di bawah ini : Komponen SpeedButton1, SpeedButton2, SpeedButton3, SpeedButton4

Event onClick

Code procedure TFKembali.SpeedButton1Click(Sender: TObject); begin Case (Sender as TSpeedButton).Tag of 1 : Kembali.Post; 2 : Kembali.Delete; 3:; 4 : Kembali.Cancel; End; If (Sender as TSpeedButton).Tag in [2,4] then Close; end;

42. Pilih DBEdit3 pada Object TreeView, buat event onChange, ketikkan perintah seperti table di bawah ini : Komponen DBEdit3

Event onChange

Code procedure TFkembali.DBEdit3Change(Sender: TObject); begin UpdateqBKembali; end;

43. Pilih table Kembali pada Object TreeView, buat event AfterScroll, BeforeDelete dan onNewRecord, ketikkan perintah seperti table di bawah ini : Komponen Kembali

Event AfterScroll

BeforeDelete

onNewRecord

Code procedure TFKembali.KembaliAfterScroll(DataSet: TDataSet); begin UpdateqBKembali; end; procedure TFKembali.KembaliBeforeDelete(DataSet: TDataSet); begin If MessageDlg('Hapus data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then Abort; end; procedure TFKembali.KembaliNewRecord(DataSet: TDataSet); begin If DBEdit3.Enabled then ActiveControl := DBEdit3; KembaliTglKembali.Value := Today; KembaliTotalDenda.Value := 0; KembaliKaryawanID.Value := FUtama.KaryawanID; end;

44. Pilih qBKembali pada Object TreeView, buat event onCalcFields, ketikkan perintah seperti table di bawah ini : Komponen qBKembali

Event onCalcFields

Code procedure TFKembali.qBKembaliCalcFields(DataSet: TDataSet); var

Pemrograman Visual 1 – Ronny Faslah - 2010 06/09/2011 21:51:34

170

Komponen

Event

Code Telat : Integer; begin Telat := Trunc(Today - qBKembaliTglHarusKembali.Value); If Telat = :TglAwal) and (Pinjam.TglPinjam = :TglAwal) and (Kembali.TglKembali
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF