MODUL KULIAH
PEMROGRAMAN VISUAL
RONNY FASLAH, S.KOM
LABORATORIUM KOMPUTER BISNIS
POLITEKNIK NEGERI BANJARMASIN
JURUSAN ADMINISTRASI BISNIS
MODUL KULIAH
PEMROGRAMAN VISUAL
1
Disusun Oleh :
RONNY FASLAH, S.KOM
LABORATORIUM KOMPUTER BISNIS
POLITEKNIK NEGERI BANJARMASIN
JURUSAN ADMINISTRASI BISNIS
BANJARMASIN
2009
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 1
: Hello World! ... 18
Latihan 2
: Kalkulator ... 20
Latihan 3
: Kalkulator Lagi! ... 23
Latihan 4
: Tugas 1 ... 24
Latihan 5
: Curriculum Vitae ... 25
Latihan 6
: Gaji Karyawan ... 29
Latihan 7
: Discount! ... 32
Latihan 8
: Tarif Operator Telekomunikasi ... 33
Latihan 9
: Horoscope ... 35
Latihan 10
: Jangan bilang siapa-siapa! ... 38
Latihan 11 : Listrik Untuk Kehidupan yang Lebih Baik ... 39
Latihan 12
: Grafik ... 42
Latihan 13 : Data Pegawai ... 48
Latihan 14 : Music Player ... 55
Latihan 15
: Text Editor ... 65
Latihan 16
: 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 36
: Membuat QuickReport Laporan Pengembalian ... 226
Latihan 37
: Membuat Form Laporan Koleksi Belum Kembali ... 231
Latihan 38
: Membuat QuickReport Laporan Koleksi Belum Kembali . 237
Latihan 39
: Membuat Form Laporan Pendapatan ... 243
Latihan 40
: Membuat Form About ... 250
Latihan 41
: Membuat Form Splash ... 253
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
Keterangan
Ctrl+F9
Compile atau pengecekan kesalahan
F9
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.
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. Menu2. Toolbar
4. Form Editor
5. Code Editor
PROPERTY DAN EVENT
Property
1. Dalam modul ini perubahan property komponen dituliskan dalam bentuk table seperti ini :
Komponen Tab Parent Property Value
Label1 Standard Form1 Font.Color clBlack Font.Style.fsBold True GroupBox1 Standard Form1 Caption Departemen Label2 Standard GroupBox1 Caption Bagian Edit1 Standard GroupBox1 Text
Label1, Label2
Font.Style.fsItalic 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.
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.
4. Sedapat mungkin pilih nilai property dari pilihan yang tersedia.
Komponen Tab Parent Property Value
Form1 Position poDesktopCenter
5. Tanda + di depan nama property menunjukkan adanya subproperty dibawahnya, klik tanda + untuk membuka subproperty.
Komponen Tab Parent Property Value
Label1 Standard Form1 Font.Color clBlack Font.Style.fsBold True
6. Tombol Ellipsis […] pada property menunjukkan adanya wizard atau jendela untuk pengisian nilai property. Klik tombol ellipsis untuk membuka jendela wizard.
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.
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.
Hue
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!
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.
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.
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 di keyboard untuk membuat blok procedure/function.
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 Tab Parent Property Value
Form1 Caption Latihan 1
Name FLatihan1 Position 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 Tab Parent Property Value
Label1 Standard FLatihan1 Caption Nama Font.Color clRed
Font.Style [fsBold, fsItalic] Label2 Standard FLatihan1 Caption Alamat
Font.Color clBlue
Font.Style [fsBold, fsItalic] Edit1 Standard FLatihan1 Text
Edit2 Standard FLatihan1 Text
Button1 Standard FLatihan1 Caption 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.
7.
Ketikkan perintah berikut pada blok procedure yang baru dibuat.
Komponen Event CodeButton1 OnClick 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.
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 Tab Parent Property Value
Form1 Caption ‘Latihan 2’
Name FLatihan2 Position 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 Tab Parent Property Value
Form1 Caption ‘Latihan 2’
Name FLatihan2 Position poDesktopCenter Label1 Standard Form1 Caption ‘Bilangan 1’ Label2 Standard Form1 Caption ‘Bilangan 2’ Label3 Standard Form1 Caption ‘Hasil’ Edit1 Standard Form1 Text ‘0’
Edit2 Standard Form1 Text ‘0’ Edit3 Standard Form1 Text ‘0’ Button1 Standard Form1 Caption ‘Bagi’
6.
Buat event OnClick pada Button1 :
Komponen Event Code
Button1 OnClick 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; Edit1 Edit2
OnKeyPress 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 Event Code
Button1 OnClick 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 Event Code
Button1 OnClick 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 := 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).
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.
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 Tab Parent Property Value
Form1 Caption ‘Latihan 5’
Name FLatihan3 Position poDesktopCenter BorderStyle bsSingle
Label1 Standard Form1 Caption ‘Daftar Riwayat Hidup’ Alignment taCenter
Font.Name ‘Trebuchet MS’ Font.Size 18
Label2 Standard Form1 Caption ‘Nama’
Komponen Tab Parent Property Value DateTimePicker1 Win32 Form1 Date Now
Label4 Standard Form1 Caption ‘Jenis Kelamin’ RadioButton1 Standard Form1 Caption ‘Pria’
RadioButton2 Standard Form1 Caption ‘Wanita’ Label5 Standard Form1 Caption ‘Agama’ Combobox1 Standard Form1 Items ‘Islam’
‘Katolik’ ‘Protestan’ ‘Hindu’ ‘Budha’ Style csDropDownList Label6 Standard Form1 Caption ‘Pekerjaan’ ListBox1 Standard Form1 Items ‘PNS’
‘Swasta’ ‘TNI/Polri’ ‘Petani/Nelayan’ ‘Lainnya’ Sorted True; Label7 Standard Form1 Caption ‘Alamat’ Label8 Standard Form1 Caption ‘Kodepos’ Edit3 Standard Form1 MaxLength 5
Button1 Standard Form1 Caption ‘Save’ Button2 Standard Form1 Caption ‘Reset’ Button3 Standard Form1 Caption ‘Close’
Komponen Event Code
FLatihan3 OnCreate 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');
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 Procedure Code
FLatihan3 ResetForm 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 Event CodeButton1 OnClick procedure TFLatihan3.Button1Click(Sender: TObject); begin
ShowMessage('Terima Kasih ' + Edit1.Text + #13 + 'Anda telah mengisi Daftar Riwayat Hidup'); end;
Button2 OnClick procedure TFLatihan3.Button2Click(Sender: TObject); begin
ResetForm end;
Button3 OnClick procedure TFLatihan3.Button3Click(Sender: TObject); begin
Application.Terminate; end;
6.
Tekan F9 untuk menjalankan.
7.
Simpan dalam folder Latihan 5.
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 :
I II III IV
Administrasi 750000 1000000 1250000 1500000 Keuangan 1000000 1250000 1500000 1750000 Marketing 1250000 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 :
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 Tab Property Value
Form1 Caption ‘Latihan 6’
Name FLatihan6 Position poDesktopCenter Color $00FF80FF
Label1 Standard Caption ‘PERHITUNGAN GAJI KARYAWAN’ Font.Style [fsBold]
Label2 Standard Caption ‘Nama’ Label3 Standard Caption ‘Departemen’ Label4 Standard Caption ‘Golongan’ Label5 Standard Caption ‘Jenis Kelamin’ Label6 Standard Caption ‘Status’ Label7 Standard Caption ‘Jumlah Anak’ Label8 Standard Caption ‘Gaji Pokok’ Label9 Standard Caption ‘Tunjangan Istri’ Label10 Standard Caption ‘Tunjangan Anak’ Label11 Standard Caption ‘Total Gaji’ Combobox1 Standard Items ‘Administrasi’
‘Keuangan’ ‘Marketing’ Style csDropDownList ListBox1 Items I II III IV RadioButton1 Standard Caption ‘Pria’ RadioButton2 Standard Caption ‘Wanita’ CheckBox1 Standard Caption ‘Menikah’ SpinEdit1 Samples MaxValue 10 Button1 Standard Caption ‘Hitung’ Button2 Standard Caption ‘Reset’ Button3 Standard Caption ‘Close’
3.
Buat event On Click untuk Button1, Button2, Button3 :
Komponen Event CodeButton1 OnClick 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;
If CheckBox1.Checked And RadioButton1.Checked Then Begin TI := GP * 10 /100; If strtoint(SpinEdit1.Text) <= 2 then TA := strtoint(SpinEdit1.Text) * GP * 5/100 Else TA := 2 * GP * 5/100; End; TG := GP + TI + TA; Edit2.Text := FormatFloat(',0', GP); Edit3.Text := FormatFLoat(',0', TI); Edit4.Text := FormatFloat(',0', TA); Edit5.Text := FormatFLoat(',0', TG); end;
Button2 OnClick procedure TFLatihan6.Button2Click(Sender: TObject); begin Edit1.Text := ''; Combobox1.ItemIndex := -1; ListBox1.ItemIndex := -1; CheckBox1.Checked := False; SpinEdit1.Text := '0'; Edit2.Text := '0'; Edit3.Text := '0'; Edit4.Text := '0'; Edit5.Text := '0'; end;
Button3 OnClick procedure TFLatihan6.Button3Click(Sender: TObject); begin
Close; end;
4.
Tekan F9 untuk menjalankan.
5.
Simpan dalam folder Latihan 6, ubah Unit1 menjadi ULatihan6.pas
dan ubah Project1 menjadi Latihan6.dpr.
Latihan 7
: Discount!
Suatu Departemen Store menetapkan harga berdasarkan
jenis kelamin dan ukuran pakaian dengan tabel berikut ini :
‘S’ ‘M’ ‘L’ Pria 50000 55000 60000 Wanita 45000 50000 55000
Selain harga, departemen store tersebut juga memberikan
discount 10% untuk pelanggan yang terdaftar.
Langkah-langkah :
1.
Buat aplikasi baru (lihat Latihan 2 point 1), tambahkan komponen
dan atur tata letaknya seperti contoh aplikasi.
2.
Buat event onCreate pada Form1 untuk inisialisasi komponen
(lihat Latihan 5 point 3 atau Latihan 6 point 2).
3.
Buat event onClick untuk Button1, Button2, Button3 (lihat Latihan
6 point 3). Untuk event OnClick Button1, gunakan percabangan
If/Then/Else untuk menentukan harga dan discount, total harga =
Harga – Discount.
4.
Save All dalam folder Latihan 7 (lihat Latihan 1 point 6).
5.
Bandingkan jawaban Anda dengan jawaban pada bagian akhir
modul ini.
Latihan 8
: Tarif Operator Telekomunikasi
Setiap operator selular mempunyai beberapa produk yang
mempunyai sistem tarif yang berbeda. Contohnya Indosat
mempunyai produk Mentari, IM3 dan StarOne. Telkomsel
mempunyai produk KartuHalo, Simpati dan As. Mobile 8
mempunyai produk Fren dan Hepi, sedangkan Excelcomindo
mempunyai produk Bebas, Jempol dan Xplor.
Masing-masing produk mempunyai sistem tarif yang berbeda
untuk sesama operator dan ke operator lain seperti pada
tabel berikut ini :
Operator Produk Sesama Op. Lain Telkomsel KartuHalo 100 200 Simpati 150 300 AS 200 400 Indosat Mentari 150 300 IM3 200 400 StarOne 250 500 Excelcomindo Bebas 200 400 Jempol 250 500 Xplor 300 600 Mobile 8 Fren 250 500 Hepi 300 600
(Harga hanya rekayasa, bukan yang sebenarnya)
Langkah-langkah :
1.
Buat aplikasi baru (lihat Latihan 2 point 1), tambahkan komponen
dan atur tata letaknya seperti contoh aplikasi.
2.
Isi Property Items Combobox1 dengan nama masing-masing
Operator Telekomunikasi.
3.
Buat event onChange pada Combobox1 untuk mengisi/mengubah
pilihan pada Combobox2.
4.
Buat event onChange pada Combobox2 untuk mengisi/mengubah
data Tarif ke Sesama dan Ke Operator Lain.
6.
Save All dalam folder Latihan 8 (lihat Latihan 1 point 6).
7.
Bandingkan jawaban Anda dengan jawaban pada bagian akhir
modul ini.
Latihan 9
: Horoscope
Aplikasi ini merupakan ramalan bintang digital, input yang
diperlukan adalah nama dan tanggal lahir, kemudian
aplikasi akan menampilkan form baru yang berisikan nama
zodiac dan ramalannya.
Tanggal Lahir Zodiac Isi Ramalan
21 Jan – 19 Feb Aquarius 20 Feb – 21 Mar Pisces 22 Mar – 20 Apr Aries 21 Apr – 22 Mei Taurus 23 Mei – 23 Jun Gemini 24 Jun – 23 Jul Cancer 24 Jul – 23 Agt Leo 24 Agt – 23 Sep Virgo 24 Sep – 23 Okt Libra 24 Okt – 22 Nop Scorpio 23 Nop – 21 Des Sagitarius 22 Des – 20 Jan Capricorn
Langkah-langkah :
1.
Buat aplikasi baru (lihat Latihan 2 point 1), tambahkan komponen
dan atur tata letaknya seperti contoh aplikasi.
2.
Buat event OnCreate untuk Form1, atur property komponen
seperti pada table di bawah ini :
Komponen Tab Property Value
Form1 Caption ‘Latihan 6’
Name FLatihan9 Position poDesktopCenter SpeedButton1 Additional Caption ‘Close’
Glyph ‘C:\Program Files\Common Files\Borland Shared\Images\
Komponen Tab Property Value Buttons\DoorShut.bmp’ NumGlyphs 2
Flat True
Komponen Event Code
FLatihan9 OnCreate procedure TFLatihan9.FormCreate(Sender: TObject); begin
SpeedButton1.Caption := 'Close';
SpeedButton1.Glyph.LoadFromFile('C:\Program Files\Common Files\' + 'Borland Shared\Images\Buttons\' +
'Doorshut.Bmp'); SpeedButton1.NumGlyphs := 2; SpeedButton1.Flat := True;
//property yang lain atur sendiri ya! end;
3.
Buat event onChange dan onUserInput pada komponen
DateTimePicker1, untuk merespon perubahan tanggal lahir baik
melalui pemilihan di combobox tanggal maupun dengan input
langsung.
Komponen Event Code
DateTimePicker1 OnChange procedure TForm1.DateTimePicker1Change(Sender: TObject); Const
Hari : Array [1..7] of String =
('Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jum''at', 'Sabtu');
Zodiac : Array [1..12] of String = ('Aquarius', 'Pisces', 'Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Sagitarius', 'Capricorn'); Ramalan : Array [1..12] of String =
('Isi ramalan Aquarius', 'Isi ramalan Pisces', 'Isi ramalan Aries', 'Isi ramalan Taurus', 'Isi ramalan Gemini', 'Isi ramalan Cancer', 'Isi ramalan Leo', 'Isi ramalan Virgo', 'Isi ramalan Libra', 'Isi ramalan Scorpio', 'Isi ramalan Sagitarius', 'Isi ramalan Capricorn'); var
Yr, Mn, Dy : Word; Z : Integer; begin
//Mengambil nilai Tahun, Bulan dan Tanggal DecodeDate(DateTimePicker1.Date, Yr, Mn, Dy); Case Mn of 1 : Case Dy Of 1..20 : Z := 12; 21..31 : Z := 1; End; 2 : Case Dy Of 1..19 : Z := 1; 20..29 : Z := 2; End; 3 : Case Dy Of 1..21 : Z := 2; 22..31 : Z := 3; End; 4 : Case Dy Of 1..20 : Z := 3; 21..30 : Z := 4; End; 5 : Case Dy Of
Komponen Event Code 1..22 : Z := 4; 23..31 : Z := 5; End; 6 : Case Dy Of 1..23 : Z := 5; 24..30 : Z := 6; End; 7 : Case Dy Of 1..23 : Z := 6; 24..31 : Z := 7; End; 8 : Case Dy Of 1..23 : Z := 7; 24..31 : Z := 8; End; 9 : Case Dy Of 1..23 : Z := 8; 24..30 : Z := 9; End; 10 : Case Dy Of 1..23 : Z := 9; 24..31 : Z := 10; End; 11 : Case Dy Of 1..22 : Z := 10; 23..30 : Z := 11; End; 12 : Case Dy Of 1..21 : Z := 11; 22..31 : Z := 12; End; End; Edit1.Text := Hari[DayofWeek(DateTimePicker1.Date)]; Edit2.Text := Zodiac[Z]; Memo1.Text := Ramalan[Z]; end;
OnUserInput procedure TForm1.DateTimePicker1UserInput(Sender: TObject;
const UserString: String; var DateAndTime: TDateTime; var AllowChange: Boolean);
begin
AllowChange := True; end;
4.
Buat event onClick pada SpeedButton1, untuk menutup aplikasi.
5.
Sempurnakan program, jalankan.
Latihan 10
: Jangan bilang siapa-siapa!
Buat program untuk mengubah nilai angka menjadi nilai
terbilang. Angka yang dimasukkan maksimal 3 digit. Yang
harus dilakukan pertama kali adalah memisahkan angka
menjadi angka ratusan (R), puluhan (P) dan satuan (S).
Angka := strtoint(Edit1.Text);
R := Angka Div 100;
123 Div 100 = 1.
P := (Angka Mod 100) Div 10;
(123 Mod 100) Div 10 = 23
Div 10 = 2.
S := (Angka Mod 100) Mod 10;
(123 Mod 100) Mod 10 = 23
Mod 10 = 3.
Langkah-langkah :
1.
Buat aplikasi baru (lihat Latihan 2 point 1), tambahkan komponen
dan atur tata letaknya seperti contoh di atas.
2.
Buat event onCreate pada Form1 untuk inisialisasi komponen.
3.
Buat event OnChange pada Edit1 untuk mengupdate perubahan
pada Memo1 (terbilang). Gunakan statement Case … Of untuk
mendefinisikan teks ratusan, puluhan dan satuan. Gunakan
operator + untuk menggabungkan teks ratusan, puluhan dan
satuan. Gunakan fungsi TrimLeft(teks) untuk membuang spasi
berlebih pada awal teks.
Latihan 11
: Listrik Untuk Kehidupan yang Lebih Baik
Buat aplikasi untuk menghitung tarif pemakaian listrik
pelanggan berdasarkan table berikut ini :
Golongan Daya (VA) Biaya Beban (Rp/KVa) Sosial 450 10000 900 15000 Rumah Tangga 450 11000 900 20000 1300 30100 Bisnis 450 23500 900 26500 1300 28200 Golongan Daya (VA) Blok (KwH) Biaya Pemakaian (Rp/Kwh) Sosial 450 0 – 30 123 31 – 60 265 > 60 360 900 0 – 30 200 31 – 60 295 > 60 360 Rumah Tangga 450 0 – 30 169 31 – 60 360 > 60 495 900 0 – 30 275 31 – 60 445 > 60 495 1300 0 – 30 385 31 – 60 445 > 60 495 Bisnis 450 0 – 30 254 31 – 60 420 > 60 470 900 0 – 30 420 31 – 60 465 > 60 515 1300 0 – 30 470
31 – 60 473 > 60 523
Contoh perhitungan :
Misalkan golongan Sosial dengan daya 900 Watt dan jumlah
pemakaian 123 Kwh maka :
Biaya Beban
= 900 / 1000 * 15000
= 13.500,-
Biaya Pemakaian
123
= 123 * 360
= 44.280,-
Total Biaya Listrik
= 57.780,-
Pajak Penerangan Jalan Umum (3%)
= 1.733,-
= 59.513,-
Materai
= 0
Total Tagihan
= 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.
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.
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 :
File
Shape
Exit
Rectangle …
Round Rectangle …
Ellipse …
Polygon …
Komponen Tab Property Value
Form1 Caption ‘Latihan 12’
Name FLatihan12 Position poDesktopCenter MainMenu1 Standard Items (Menu)
Statusbar1 Win32
2.
Klik menu File – New – Form, untuk membuat form baru (Form2).
Tambahkan komponen dan atur property seperti pada table di
bawah ini :
Komponen Tab Parent Property Value
Form2 Caption ‘Standard Shape’
Name FGrafik
Position poDesktopCenter Height 513
Width 416 Toolbar1 Win32 Form2
Toolbar2 Win32 Form2
ColorBox1 Additional Toolbar1 Selected clBlack SpinEdit1 Sample Toolbar1 Value 1 Combobox1 Standard Toolbar1 Items psSolid
psDash psDot psDashDot psDashDotDot psClear Style csDropDownList ColorBox2 Additional Toolbar2 Selected clRed
Combobox2 Standard Toolbar2 Items bsClear bsSolid bsCross bsHorizontal bsBDiagonal bsFDiagonal bsDiagCross bsVertical Style csDropDownList PageControl1 Win32 Form2 Align alClient TabSheet1 PageControl1 Caption ‘Rectangle’ TabSheet2 PageControl1 Caption ‘Round Rectangle’ TabSheet3 PageControl1 Caption ‘Ellipse’
TabSheet4 PageControl1 Caption ‘Polygon’ PaintBox1 System TabSheet1 Align alClient PaintBox2 System TabSheet2 Align alClient PaintBox3 System TabSheet3 Align alClient
Komponen Tab Parent Property Value PaintBox4 System TabSheet4 Align alClient
3.
Buat function PenStyle pada Form2, ketikkan ‘function
PenStyle(S:Integer):TPenStyle;’ di blok private, tekan Ctrl + Shift
+ C, ketikkan statement berikut :
Komponen Procedure Code
FGrafik PenStyle 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 Procedure Code
FGrafik BrushStyle 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 Event Code
begin
Shape := 1;
PageControl1.ActivePage := TabSheet1; end;
onShow 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 Event Code
PaintBox1 OnPaint 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;
PaintBox2 OnPaint 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;
PaintBox3 OnPaint 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);
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,
Combobox1, ColorBox2 dan Combobox2.
Ketikkan statement
berikut ini :
Komponen Event Code
ColorBox1 OnChange procedure TForm2.ColorBox1Change(Sender: TObject); begin Case PageControl1.TabIndex of 0 : PaintBox1Paint(Self); 1 : PaintBox2Paint(Self); 2 : PaintBox3Paint(Self); 3 : PaintBox4Paint(Self); End; end;
SpinEdit1 onChange ColorBox1Change(Self); Combobox1 onChange ColorBox1Change(Self); ColorBox2 onChange ColorBox1Change(Self); Combobox2 onChange ColorBox1Cahnge(Self);
9.
Kembali ke FLatihan12, buat event onClick pada masing-masing
MenuItem, ketikkan statement berikut ini :
Komponen Event Code
Exit1 onClick procedure TFLatihan12.Exit1Click(Sender: TObject); begin
Application.Terminate; end;
Rectangle1 onClick procedure TFLatihan12.Rectangle1Click(Sender: TObject); begin
FGrafik.Shape := 1; FGrafik.ShowModal; end;
RoundRectangle1 onClick procedure TFLatihan12.RoundRectangle1Click(Sender: TObject); begin
FGrafik.Shape := 2; FGrafik.ShowModal; end;
Ellipse1 onClick procedure TFLatihan12.Ellipse1Click(Sender: TObject); begin
FGrafik.Shape := 3; FGrafik.ShowModal; end;
Polygon1 onClick 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.
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 Tab Parent Property Value
Label1 Standard Form1 Caption Data Karyawan Font.Style [fsBold]
Label2 Standard Form1 Caption NIK
Label3 Standard Form1 Caption Nama
Edit1, Edit2 Standard Form1 Text
3. Tambahkan RadioGroup1 dan GroupBox1 dari tab Standard, ubah property seperti table di bawah ini :
Komponen Tab Parent Property Value
RadioGroup1 Standard Form1 Items Administrasi Keuangan Kepegawaian Pemasaran Caption Bagian Columns 2
GroupBox1 Standard Form1 Caption Penghasilan
4. Tambahkan 3 buah Label dan 3 buah Edit dari tab Standard ke dalam GroupBox1. Ubah property seperti table di bawah ini :
Komponen Tab Parent Property Value
Label4 Standard GroupBox1 Caption Gaji Pokok Label5 Standard GroupBox1 Caption Tunjangan Label6 Standard GroupBox1 Caption Total Gaji
Edit3 Standard GroupBox1 Text 0
Edit4 Standard GroupBox1 Text 0
5. Tambahkan 4 buah BitBtn dari tab Additional. Ubah property seperti table di bawah ini :
Komponen Tab Parent Property Value
BitBtn1 Additional Form1 Caption Simpan Glyph Filesave.bmp BitBtn2 Additional Form1 Caption Reset
Glyph Retry.bmp BitBtn3 Additional Form1 Caption Close
Glyph Dooropen.bmp BitBtn4 Additional Form1 Caption Daftar
Glyph 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 :
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 Event Code
Form1 OnCreate procedure TForm1.FormCreate(Sender: TObject); begin
NoUrut := 0; end;
Komponen Event Code
Edit3, Edit4
OnChange 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;
BitBtn2 onClick procedure TForm1.BitBtn2Click(Sender: TObject); begin Edit1.Text := ''; Edit2.Text := ''; RadioGroup1.ItemIndex := -1; Edit3.Text := '0'; Edit4.Text := '0'; Edit5.Text := '0'; end;
BitBtn1 OnClick 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;
BitBtn3 onClick 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 Tab Parent Property Value
BitBtn1 Additional Form2 Caption Close
Glyph Dooropen.bmp StringGrid1 Additional Form2 ColCount 7
RowCount 11
12.Klik menu File – Use Unit, kemudian pilih Unit1. Klik OK untuk melanjutkan.
13.Buat event-event berikut pada masing-masing komponen :
Komponen Event Code
Form2 OnCreate 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;
onShow 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);
Komponen Event Code
End; end;
BitBtn1 onClick 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 Event Code
BitBtn4 onClick 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.
17.Klik File – Save All untuk menyimpan semua unit dan project, simpan dalam folder Latihan 13.
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 Tab Parent Property Value
Form1 AlphaBlend True
AlphaBlendValue 250
Autosize True
BorderStyle bsNone
TransparentColor True TransparentColorValue clWhite
4. Tambahkan Image1, ubah property Image1 seperti pada table di bawah ini :
Komponen Tab Parent Property Value
Image1 Additional Form1 Autosize True
Picture Form1.bmp
5. Tambahkan 5 buah Label, ubah property masing-masing komponen seperti table di bawah ini :
Komponen Tab Parent Property Value
Label1 Standard Form1 Caption Judul Lagu
AutoSize False Font.Style [fsBold]
Label2 Standard Form1 Caption Waktu
Label3 Standard Form1 Caption Repeat
Label4 Standard Form1 Caption Shuffle
Label5 Standard Form1 Caption StayOnTop
Label1, Label2, Label3, Label4, Label5
Transparent True
Label3, Label4, Label5 Enabled False
6. Tambahkan ProgressBar1 dari tab Win32.
7. Tambahkan MediaPlayer1 dari tab System. Ubah property berikut :
Komponen Tab Parent Property Value
MediaPlayer1 System Form1 Visible False
8. Tambahkan Timer1 dari tab System. Ubah property berikut :
Komponen Tab Parent Property Value
Timer1 System Form1 Enabled False
9. Tambahkan 10 buah Image, ubah property masing-masing komponen seperti table di bawah ini :
Komponen Tab Parent Property Value
Image2, Image3, Image4, Image5, Image6, Image7, Image8, Image9, Image10, Image11
Additional Form1 Autosize True Cursor crHandPoint Transparent True
Image2 Picture 8play24.bmp
Image3 Picture 8Pause24.bmp
Image4 Picture 8stop24.bmp
Image5 Picture 8backward24.bmp
Image6 Picture 8forward24.bmp
Image7 Picture 8chat24.bmp
Image8 Picture 8refresh24.bmp
Image9 Picture 8stats24.bmp
Image10 Picture 8app24.bmp
Image11 Picture 8close24.bmp
11.Buat form baru (Form2), klik menu File – New – Form. 12.Ubah property pada Form2 seperti pada table di bawah ini :
Komponen Tab Parent Property Value
Form2 AlphaBlend True
AlphaBlendValue 250
Autosize True
BorderStyle bsNone
TransparentColor True TransparentColorValue clWhite
13.Tambahkan 6 buah komponen Image, ubah property masing-masing komponen seperti pada table di bawah ini :
Komponen Tab Parent Property Value
Image1 Additional Form2 Autosize True
Picture Form2.bmp Image2, Image3, Image4, Image5, Image6 Autosize True Cursor crHandPoint Transparent True
Image2 Picture 8addfile24.bmp
Image3 Picture 8trash24.bmp
Image4 Picture 8floppy24.bmp
Image5 Picture 8foldermove24.bmp
Image6 Picture 8close24.bmp
14.Tambahkan komponen ListBox1 dari tab Standard, ubah property ListBox1 seperti pada table di bawah ini :
Komponen Tab Parent Property Value
ListBox1 Standard Form2 Color $00C080FF
Ctl3D 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 Tab Parent Property Value
OpenDialog1 Dialog Form2 DefaultExt *.mp3
Filter Filter Name Filter
File Musik (*.mp3, *.wav, *.mid) *.mp3; *.wav; *.mid Options.
ofAllowMultiSelect True OpenDialog2 Dialog Form2 DefaultExt *.pls
Filter Filter Name Filter
File Playlist (*.pls) *.pls SaveDialog1 Dialog Form2 DefaultExt *.pls
Filter Filter Name Filter
File Playlist (*.pls) *.pls 16.Atur layout Form2 seperti pada gambar di bawah ini :
17.Buat event berikut pada masing-masing komponen seperti pada table di bawah ini :
Komponen Event Code
Form2 onCreate procedure TForm2.FormCreate(Sender: TObject); begin
Left := Form1.Left;
Top := Form1.Top + Form1.Height; end;
Image1 onMouseDown procedure TForm2.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0); end;
Image2 onClick 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;
Image3 onClick procedure TForm2.Image3Click(Sender: TObject); begin
If ListBox1.ItemIndex >= 0 then
ListBox1.Items.Delete(ListBox1.ItemIndex); end;
Komponen Event Code
Image4 onClick procedure TForm2.Image4Click(Sender: TObject); begin
If SaveDialog1.Execute then
ListBox1.Items.SaveToFile(SaveDialog1.FileName); end;
Image5 onClick 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;
Image6 onClick 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 :
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 Procedure Code
Form1 Play 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;
Form1 Pause procedure TForm1.Pause; begin If State = 1 then Begin State := 2; Timer1.Enabled := False; MediaPlayer1.Pause; End; end;
Form1 Resume procedure TForm1.Resume; begin
If State = 2 then Begin
Komponen Procedure Code
Timer1.Enabled := True; MediaPlayer1.Resume; End;
end;
Form1 Stop procedure TForm1.Stop; begin If State = 1 then Begin State := 0; Timer1.Enabled := False; MediaPlayer1.Stop; End; end;
Form1 Next 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;
Form1 Prev 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 Function Code
Form1 Int2TimeStr 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;
22.Buat event berikut pada masing-masing komponen seperti pada table di bawah ini :
Komponen Event Code
Form1 OnCreate procedure TForm1.FormCreate(Sender: TObject); begin
MediaPlayer1.TimeFormat := tfMilliseconds; State := 0;
Randomize; end;
onShow procedure TForm1.FormShow(Sender: TObject); begin
Form2.Show; end;
Timer1 OnTimer 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; Image1 onMouse Down
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0); end;
Image2 onClick procedure TForm1.Image2Click(Sender: TObject); begin
If State in [0, 1] then Play else Resume;
end;
Image3 onClick procedure TForm1.Image3Click(Sender: TObject); begin
Pause; end;
Image4 onClick procedure TForm1.Image4Click(Sender: TObject); begin
Stop; end;
Image5 onClick procedure TForm1.Image5Click(Sender: TObject); begin
Prev; end;
Image6 onClick procedure TForm1.Image6Click(Sender: TObject); begin
Komponen Event Code
end;
Image7 onClick procedure TForm1.Image7Click(Sender: TObject); begin
Form2.Show; end;
Image8 onClick procedure TForm1.Image8Click(Sender: TObject); begin
Label3.Enabled := not Label3.Enabled; end;
Image9 onClick procedure TForm1.Image9Click(Sender: TObject); begin
Label4.Enabled := not Label4.Enabled; end;
Image10 onClick procedure TForm1.Image10Click(Sender: TObject); begin
Label5.Enabled := Not Label5.Enabled;
If Label5.Enabled then FormStyle := fsStayOnTop else FormStyle := fsNormal;
end;
Image11 onClick 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 Event Code
ListBox1 onDblClick 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.
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 Tab Parent Property Value
Form1 Caption Text Editor
FormStyle fsMDIForm
WindowState 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 Tab Parent Property Value
ActionManager1 Additional Form1 Images 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 Property Value
Action1 Caption New…
Komponen Property Value
ImageIndex 6
Name 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.
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 Property Value
FileOpen1 Dialog.DefaultExt *.txt
Dialog.Filter Filter Name Filter File Teks (*.txt) *.txt Semua File (*.*) *.*