• Tidak ada hasil yang ditemukan

Modul Pemrograman Visual 1 2011

N/A
N/A
Protected

Academic year: 2021

Membagikan "Modul Pemrograman Visual 1 2011"

Copied!
255
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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.

(5)

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

(6)

4. Form Editor

5. Code Editor

(7)
(8)

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.

(9)

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.

(10)

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

(11)

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

(12)

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.

(13)

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

(14)

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!

(15)

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.

(16)

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.

(17)

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.

(18)

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.

(19)

7.

Ketikkan perintah berikut pada blok procedure yang baru dibuat.

Komponen Event Code

Button1 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.

(20)

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’

(21)

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;

(22)

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).

(23)

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.

(24)
(25)

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’

(26)

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');

(27)

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 Code

Button1 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;

(28)

6.

Tekan F9 untuk menjalankan.

7.

Simpan dalam folder Latihan 5.

(29)

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 :

(30)

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 Code

Button1 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;

(31)

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.

(32)

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.

(33)

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.

(34)

6.

Save All dalam folder Latihan 8 (lihat Latihan 1 point 6).

7.

Bandingkan jawaban Anda dengan jawaban pada bagian akhir

modul ini.

(35)

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\

(36)

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

(37)

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.

(38)

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.

(39)

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

(40)

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.

(41)

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.

(42)

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 :

(43)

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

(44)

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

(45)

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);

(46)

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);

(47)

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.

(48)

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

(49)

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 :

(50)

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;

(51)

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.

(52)

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);

(53)

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.

(54)

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

(55)

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 :

(56)

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

(57)

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 :

(58)

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;

(59)

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 :

(60)

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

(61)

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;

(62)

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

(63)

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.

(64)
(65)

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…

(66)

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.

(67)

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 (*.*) *.*

Gambar

Grafik  ditampilkan  pada  form  terpisah  dan  terbagi  dalam  empat buah tabsheet.

Referensi

Dokumen terkait

Engen dan Skinner (1992) dalam studi dengan menggunakan data cross sectional dari 107 negara pada periode 1970-1985 yang mengembangkan sebuah general model

Adapun muatan PRB dalam kurikulum nasional maka sebagai berikut: (A) Pengintegrasian PRB dalam Mata Pelajaran; (B) Dalam model ini, pengintegrasian Pengurangan Resiko

Dengan demikian bagian promosi tidak terlibat dalam pekerjaan detail pembuatan iklan namun menyerahkan urusan itu kepada biro iklan (advertising agency). Bagian promosi

hubungan antara status sosial ekonomi orang tua dengan prestasi belajar siswa. ditolak&#34;. Dalam artian status sosial ekonomi orang tua tidak

Tanah Laut Kemenpupera Pembangunan Jalan Akses Pelabuhan Trisakti 1.5 Km Kalimantan Selatan Kota Banjarmasin Kemenpupera Rekonstruksi Jalan Manggalau - Kerang 6.3 Km

Perbedaan dengan penelitian ini adalah pada penelitian Dewi yang diteliti adalah mengenai efektifitas program JKBM pada rumah tangga miskin di Desa Tegal Tugu Kecamatan

Implikasi dari penelitian ini adalah: 1) Seharusnya lebih menekankan upaya pencegahan sehingga pecandu dan penyalahgunaan narkotika di Balai Rehabilitasi BNN Baddoka

Berdasarkan hasil perhitungan dapat diketahui bahwa, pada tahun 2015 pemerintah kota Palembang menghasilkan retribusi daerah dari jumlah realisasi sebesar Rp.