際際滷

際際滷Share a Scribd company logo
Modul Pemrograman Visual-MSA-ASG Halaman 1 dari 8
PRAKTIKUM 4 MEMBUAT MENU
Menu akan dibuat dengan menggunakan form Induk yang biasa disebut
dengan MDIForm. sedangkan form-form yang lain akan menjadi form
Anak atau MDIChild.
1. Tambahkan sebuah form baru ke dalam project Rental VCD
2. Ubah properties Name nya menjadi FrmMenu, dan simpan dengan
nama UMenu.pas3.
3. Ubah Properti FormStyle menjadi fsMDIForm dan Captionnya :
Aplikasi Rental VCD,dan Color : clAppWorkSpace
4. Tambahkan sebuah Komponen MainMenu dari Tab Standard ke
dalam form
5. Untuk membuat menu dalam Form, dapat dilakukan dengan mengklik
dua kali komponen MainMenu. Rancang menu sebagai berikut :
Main
Menu
SubMenu1 SubMenu2
Caption Short Cut Caption Short Cut
Master Pelanggan Ctrl+P
VCD Ctrl+V
Data
Pengendali
Ctrl+N
Keluar
Program
Transaksi Peminjaman Ctrl+M
Pengembalian
VCD
Ctrl+B
Cetak Master Laporan VCD Ctrl+Alt+V
Laporan
Pelanggan
Ctrl+Alt+P
Transaksi Persewaan VCD Ctrl+Alt+W
Pengembalian
VCD
Ctrl+Alt+B
6. Selanjutnya ubah semua properties FormStyle dari semua Form
menjadi fsMDIChild. (Kecuali Form Form Report : FrmCetakVCD,
FrmCetakPelanggan,FrmCetakSewa)
7. Format Form-form yang sudah dibuat menjadi form anak (MDIChild),
dengan cara Klik menu Project > Option, atur pada Combo Main
Form menjadi FrmMenu dan pindahkan semua form aplikasi dari
kolom Auto-Create Forms ke sebelah kanan atau ke kolom Available
forms (Kecuali Form-form Report : FrmCetakVcd,
FrmCetakPelanggan, FrmCetakSewa)
8. Kemudian deklarasikan semua unit form aplikasi dalam
implementation, sebagai berikut :
implementation
uses UVCD, UPelanggan, UTransaksi,
Modul Pemrograman Visual-MSA-ASG Halaman 2 dari 8
USewa, UKembali, UCetakPelanggan, UCetakVCD,
UcetakSewa;
9. Jika malas mengetik, bisa menggunakan menu dengan cara : Klik
menu File > Use Unit..,Kemudian pilih unit form dan klik tombol OK.
10. Klik Sub Menu Pelanggan dari menu Master. Ketikan ketikan kode
Program berikut :
procedure TFrmMenu.PelangganMember1Click(Sender:
TObject);
begin
Application.CreateForm(TFrmPelanggan,
FrmPelanggan);
FrmPelanggan.Show;
end;
11. Klik Sub Menu VCD dari menu Master. Ketikan ketikan kode Program
berikut :
procedure TFrmMenu.VCD1Click(Sender: TObject);
begin
Application.CreateForm(TFrmVCD, FrmVCD);
FrmVCD.Show;
end;
12. Klik Sub Menu Data Pengendali dari menu Master. Ketikan ketikan
kode Program berikut :
procedure TFrmMenu.N1Click(Sender: TObject);
begin
Application.CreateForm(TFrmTarif, FrmTarif);
FrmTransaksi.Show;
end;
13. Klik Sub Menu Keluar Program dari menu Master. Ketikan ketikan
kode Program berikut :
procedure TFrmMenu.KeluarProgram1Click(Sender:
TObject);
var Yakin:Integer;
begin
Yakin:=application.MessageBox('Anda yakin mau
keluar...?','Konfirmasi', MB_IconQuestion or
MB_YesNo);
if Yakin=IdYes then
Application.Terminate
else
exit;
end;
14. Karena semua form aplikasi sudah diubah menjadi form anak, perintah
untuk menutup form anak juga berbeda dengan perintah untuk menutup
form tunggal. Perhatikan contoh kode program berikut untuk menutup
form pelanggan yang telah menjadi form anak :
procedure TFrmPelanggan.BtKeluarClick(Sender:
TObject);
Modul Pemrograman Visual-MSA-ASG Halaman 3 dari 8
begin
Konfirmasi:=Application.MessageBox('Yakin mau
mneutup form
ini','Konfirmasi Tutup',MB_Iconquestion Or
MB_YesNo);
if Konfirmasi=IdYes Then
Close
else
exit;
15. Untuk mempercantik tampilan Menu, tambahkan sebuah komponen
StatusBar dari Tab Win32 ke dalam MDIForm.
16. Tambahkan 3 buah panel pada komponen StatusBar dengan cara klik
kanan komponen StatusBar dan pilih menu popup Panel Editor Klik
tombol Add New (Insert) 3 kali.
17. Dari Tab System Masukan komponen Timer ke dalam MDIForm dan
ubah properties intervalnya menjasi 250.
18. Deklarasikan variabel-variabel berikut :
var
FrmMenu: TFrmMenu;
TextAnim2:String;
x:Integer;
const TextAnim='Aplikasi Rental VCD....';
19. Double Klik komponen Timer, ketikan kode program berikut :
procedure TFrmMenu.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels.Items[0].Text:= DateToStr(Date);
StatusBar1.Panels.Items[1].Text:=TimeToStr(Time);
inc(x);
TextAnim2:=TextAnim2+TextAnim[x];
if TextAnim2=TextAnim then
begin
TextAnim2:='';
x:=0;
end;
StatusBar1.Panels.Items[2].Text:=TextAnim2;
end;
20. Simpan dan Jalankan Aplikasi ini..
Modul Pemrograman Visual-MSA-ASG Halaman 4 dari 8
PRAKTIKUM 5 ARRAY
Array merupakan sekumpulan data tunggal yang meiliki tipe data yang sama. Kegunaan
array sangat banyak, dengan sifatnya yang dinamis array mampu digunakan sebagai objek
penyimpanan data yang stabil meskipun ketika program ditutup data array tersebut akan hilang.
Isi dari setiap data tunggal pada array sering disebut dengan elemen, setiap elemen dalam array
memiliki indeks penyimpanan agar mudah dalam pengambilan datanya. Terdapat 2 cara dalam
alokasi memori array, yaitu statis dan dinamis.
Array Statis
Array statis adalah array yang memiliki panjang yang sudah ditentukan pada awal
deklarasi, sehingga batas maksimum data yang dapat ditampung bersifat tetap (statis). Kerugian
menggunakan array statis yaitu keterbatasan daya tampung isi, sehingga array sangat beresiko
kekurangan daya tampung atau mungkin daya tampungnya berlebihan. Berikut cara deklarasi
sebuah array statis :
Var ArrayKu : array[1..5] of integer;
Ket : Mendeklarasikan sebuah array dengan nama ArrayKu bertipe Integer dan memiliki ukuran
sebesar 5 elemen.
Array Dinamis
Array dinamis merupakan array yang tidak mempunyai ukuran yang tetap saat deklarasi,
tetapi ketika program telah berjalan ukuran dari array tersebut harus tetap ditentukan sesuai
dengan kebutuhan. Sehingga dengan teknik ini diharapkan ukuran array yang akan dibuat lebih
efisien. Berikut cara penggunaan array dinamis :
Var ArrayMu : array of Real; { ditulis pada saat deklarasi }
SetLength(ArrayMu,10); { ditulis pada saat di dalam program }
Ket : Mendeklarasikan sebuah array dengan nama ArrayMu bertipe real (float) dan memiliki
ukuran yang tidak tetap (dinamis) sesuai kebutuhan didalam program. Pada contoh di atas
ArrayMu diberi ukuran sebesar 10 menggunakan fungsi SetLength().
Modul Pemrograman Visual-MSA-ASG Halaman 5 dari 8
Contoh 1 : Array Sederhana
1. Mulai membuat project baru, langkahnya sbb : klik menu File -> New -> Application
2. Desain form seperti gambar di bawah ini :
3. Tulislah potongan program berikut pada event onclick tombol btn_statis. Potongan program
tersebut merupakan penggunaan array statis.
4. Selanjutnya tulislah contoh baris program penggunaan array dinamis di bawah ini, dengan
cara klik 2x pada tombol btn_dinamis.
procedure TForm1.btn_statisClick(Sender: TObject);
var i : integer;
text : string;
ArrayKu : array[1..5] of integer;
begin
for i:=1 to Length(ArrayKu) do
begin
text := 'Masukan data ke-' + IntToStr(i);
ArrayKu[i] := StrToInt(InputBox('Input', text ,''));
end;
memo_isi.Clear;
for i:=1 to Length(ArrayKu) do
memo_isi.Lines.Add(IntToStr(ArrayKu[i]));
end;
Komponen Button
Name : btn_statis
Komponen Memo
Name : memo_isi
Ket :
Kosongkan isi
memo pada
property Lines
Komponen Button
Name : btn_dinamis
Komponen Label
Modul Pemrograman Visual-MSA-ASG Halaman 6 dari 8
5. Jalankan program dan amati hasil outputnya.
Contoh 2 : Mengetahui Hari dari Sebuah Tanggal
1. Mulai membuat project baru, langkahnya sbb : klik menu File -> New -> Application
2. Desain seperti gambar berikut :
3. Tulislah potongan program berikut pada event onclick tombol btn_statis. Potongan program
tersebut merupakan proses perhitungan konversi dari tanggal ke hari.
procedure TForm1.btn_dinamisClick(Sender: TObject);
var i, ukuran_array : integer;
text : string;
ArrayMu : array of integer;
begin
ukuran_array := StrToInt(InputBox('Input', 'Masukan ukuran array' ,''));
Setlength(ArrayMu, ukuran_array);
for i:=0 to Length(ArrayMu)-1 do
begin
text := 'Masukan data ke-' + IntToStr(i);
ArrayMu[i] := StrToInt(InputBox('Input', text ,''));
end;
memo_isi.Clear;
for i:=0 to Length(ArrayMu)-1 do
memo_isi.Lines.Add(IntToStr(ArrayMu[i]));
end;
Komponen Edit
Name : Etahun
Komponen Button
Name : btn_proses
Komponen LabelKomponen GroupBox
Komponen Edit
Name : Ebln
Komponen Edit
Name : Etgl
Komponen Edit
Name : Ehari
Komponen GroupBox
Komponen Label
Modul Pemrograman Visual-MSA-ASG Halaman 7 dari 8
4. Jalankan program dan amati hasil outputnya.
Array Multidimensi
Pada pembahasan sebelumnya, array yang digunakan masih berupa array satu dimensi.
Tetapi ada kasus dimana kita memerlukan array multidimensi untuk menyelesaikannya. Pada
array multidimensi juga ada yang bersifat statis dan dinamis, berikut penjelasan penggunaan dari
array multidimensi.
Array Multidimensi Statik
Var ArrayKu : array[1..5] of array[1..3] integer;
Ket : Mendeklarasikan sebuah array dengan nama ArrayKu bertipe Integer dan memiliki ukuran
sebesar 5x3 elemen.
procedure TForm1.btnprosesClick(Sender: TObject);
type
x = string[7];
const
faktor_bln : array[1..12] of byte = (0,3,3,6,1,4,6,2,5,0,3,5);
hari : array[0..8] of x = ('Minggu', 'Senin', 'Selasa', '', 'Rabu', 'Kamis', '', 'Jumat', 'Sabtu');
var
hr : string;
nama : string[255];
j1,j2,j3,j4 : integer;
tanggal, bulan, tahun : integer;
begin
tanggal := StrToInt(Etgl.Text);
bulan := StrToInt(Ebln.Text);
tahun := StrToInt(Etahun.Text);
if tahun > 1900 then
tahun := tahun - 1900;
j1 := trunc(tahun * 365.25); { trunc fungsi membulatkan kebawah untuk tipe int }
j2 := j1 + faktor_bln[bulan];
if (tahun/4 = trunc(tahun/4)) and(bulan < 3) then
j2 := j2 - 1;
j3 := j2 + tanggal;
j4 := trunc(frac(j3/7) * 10); { frac fungsi mengambil hanya angka dibekang koma }
hr := hari[j4];
Ehari.Text := hr;
end;
Modul Pemrograman Visual-MSA-ASG Halaman 8 dari 8
Array Multidimensi Dinamis
Var ArrayMu : array of array Real; { ditulis pada saat deklarasi }
SetLength(ArrayMu,10,5); { ditulis pada saat di dalam program }
Ket : Mendeklarasikan sebuah array dengan nama ArrayMu bertipe real (float) dan memiliki
ukuran yang tidak tetap(dinamis) sesuai kebutuhan didalam program. Pada contoh di atas
ArrayMu diberi ukuran sebesar 10x5.
Contoh 3 : Array Dua Dimensi
1. Mulai membuat project baru, langkahnya sbb : klik menu File -> New -> Application
2. Desain seperti gambar berikut :
3. Tulislah potongan program berikut pada event onclick tombol btn_proses.
4. Jalankan program dan amati hasil outputnya.
procedure TForm1.btn_prosesClick(Sender: TObject);
var ArrayKu : array of array of integer;
i, j, baris, kolom : integer;
begin
baris := StrToInt(Ebar.Text);
kolom := StrToInt(Ekol.Text);
SetLength(ArrayKu, baris, kolom);
for i:=0 to baris-1 do
for j:=0 to kolom-1 do
begin
ArrayKu[i,j] := StrToInt(InputBox('INPUT', ('Masukan indeks [' + IntToStr(i)+ ', ' + IntToStr(j) + ']') , ''));
end;
for i:=0 to baris-1 do
for j:=0 to kolom-1 do
begin
memo_isi.Lines.Add('Elemen array indeks ke [' + IntToStr(i)+ ', ' + IntToStr(j) + '] = ' + IntToStr(ArrayKu[i,j]));
end;
end;
Komponen Label
Komponen Edit
Name : Ebar
Komponen Memo
Name : memo_isi
Ket :
Kosongkan isi
memo pada
property Lines
Komponen Edit
Name : Ekol
Komponen Button
Name : btn_proses
Komponen Label
Komponen Label
Ad

Recommended

Modularisasi function dalam c++
Modularisasi function dalam c++
Akmal Fajar
Variabel Operator & Ekspresi - dasar visual basic bagian 5
Variabel Operator & Ekspresi - dasar visual basic bagian 5
Isya Ansyari
Membuat Aplikasi Penghitung Luas & Volume Balok Pada MATLAB
Membuat Aplikasi Penghitung Luas & Volume Balok Pada MATLAB
Yunan Tanpa-i
Membuat Aplikasi Penghitung Luas Persegi Panjang Pada MATLAB
Membuat Aplikasi Penghitung Luas Persegi Panjang Pada MATLAB
Yunan Tanpa-i
Visual basic - variabel, operator, kondisi dan keputusan
Visual basic - variabel, operator, kondisi dan keputusan
Eman Mendrofa
Modul PBO Bab-09 - Swing
Modul PBO Bab-09 - Swing
Rakhmat Dedi Gunawan
Modul psb 2 j2me
Modul psb 2 j2me
Rido Budiman
Membuat program kalkulator sederhana dengan matlab
Membuat program kalkulator sederhana dengan matlab
Nur Halimah
Laporan praktikum iii visual basic
Laporan praktikum iii visual basic
rahmi wahyuni
Cepat mahir dengan matlab
Cepat mahir dengan matlab
Nur Hy
Pengulangan Visual Basic
Pengulangan Visual Basic
Eman Mendrofa
Intruksi Fundamental
Intruksi Fundamental
Akmal Fajar
Java6
Java6
The World Bank
Modul ix dan x algo
Modul ix dan x algo
STMIK AKAKOM
123 Tip & Trik ActionScript Flash MX 2004
123 Tip & Trik ActionScript Flash MX 2004
Nurdin Al-Azies
Laporan 1 penngantar program r
Laporan 1 penngantar program r
Khair Norrasid
Pelatihan Bahasa R
Pelatihan Bahasa R
anom0164
Function c++
Function c++
Alvin Setiawan
Dasar matlab
Dasar matlab
Rina Ayank
Laporan tugas struktur data
Laporan tugas struktur data
Bina Sarana Informatika
La m7 vb3
La m7 vb3
ubaydimse
Modul 3-p3-4
Modul 3-p3-4
windryika
Algoritma
Algoritma
dulssrr
Modul vii dan viii algo
Modul vii dan viii algo
STMIK AKAKOM
670426587f8d8102a1eb712c3a13d9e5.doc
670426587f8d8102a1eb712c3a13d9e5.doc
KikiFikriansyah1
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
RizaJr
Ppt klp 1
Ppt klp 1
fz_fahmi
Bab ii keg pembel 6 array
Bab ii keg pembel 6 array
087dwi
Modul ix
Modul ix
Fisma Ananda
Prak strukturdata
Prak strukturdata
Bayoe Priyatna

More Related Content

What's hot (13)

Laporan praktikum iii visual basic
Laporan praktikum iii visual basic
rahmi wahyuni
Cepat mahir dengan matlab
Cepat mahir dengan matlab
Nur Hy
Pengulangan Visual Basic
Pengulangan Visual Basic
Eman Mendrofa
Intruksi Fundamental
Intruksi Fundamental
Akmal Fajar
Java6
Java6
The World Bank
Modul ix dan x algo
Modul ix dan x algo
STMIK AKAKOM
123 Tip & Trik ActionScript Flash MX 2004
123 Tip & Trik ActionScript Flash MX 2004
Nurdin Al-Azies
Laporan 1 penngantar program r
Laporan 1 penngantar program r
Khair Norrasid
Pelatihan Bahasa R
Pelatihan Bahasa R
anom0164
Function c++
Function c++
Alvin Setiawan
Dasar matlab
Dasar matlab
Rina Ayank
Laporan tugas struktur data
Laporan tugas struktur data
Bina Sarana Informatika
La m7 vb3
La m7 vb3
ubaydimse
Laporan praktikum iii visual basic
Laporan praktikum iii visual basic
rahmi wahyuni
Cepat mahir dengan matlab
Cepat mahir dengan matlab
Nur Hy
Pengulangan Visual Basic
Pengulangan Visual Basic
Eman Mendrofa
Intruksi Fundamental
Intruksi Fundamental
Akmal Fajar
Modul ix dan x algo
Modul ix dan x algo
STMIK AKAKOM
123 Tip & Trik ActionScript Flash MX 2004
123 Tip & Trik ActionScript Flash MX 2004
Nurdin Al-Azies
Laporan 1 penngantar program r
Laporan 1 penngantar program r
Khair Norrasid
Pelatihan Bahasa R
Pelatihan Bahasa R
anom0164
Dasar matlab
Dasar matlab
Rina Ayank
La m7 vb3
La m7 vb3
ubaydimse

Similar to delphi (20)

Modul 3-p3-4
Modul 3-p3-4
windryika
Algoritma
Algoritma
dulssrr
Modul vii dan viii algo
Modul vii dan viii algo
STMIK AKAKOM
670426587f8d8102a1eb712c3a13d9e5.doc
670426587f8d8102a1eb712c3a13d9e5.doc
KikiFikriansyah1
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
RizaJr
Ppt klp 1
Ppt klp 1
fz_fahmi
Bab ii keg pembel 6 array
Bab ii keg pembel 6 array
087dwi
Modul ix
Modul ix
Fisma Ananda
Prak strukturdata
Prak strukturdata
Bayoe Priyatna
Dasar-dasar c++
Dasar-dasar c++
aks247
Struktur bahasa delphi
Struktur bahasa delphi
mistriana
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
Individual Consultants
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahan
UNIVERSITY Of LAMPUNG
3. variabel-tipe-data-dan-operator-pada-vb.net
3. variabel-tipe-data-dan-operator-pada-vb.net
Aris Saputro
Modul visual basic
Modul visual basic
Siti Khotijah
Konsep dasar pemrograman pascal
Konsep dasar pemrograman pascal
bayyou
Operasi dasar matlab job 1
Operasi dasar matlab job 1
Polytechnic State Semarang
about C Languages
about C Languages
S N M P Simamora
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Devi Apriansyah
Bahasa pemrograman pascal
Bahasa pemrograman pascal
Nadya Olivia
Modul 3-p3-4
Modul 3-p3-4
windryika
Algoritma
Algoritma
dulssrr
Modul vii dan viii algo
Modul vii dan viii algo
STMIK AKAKOM
670426587f8d8102a1eb712c3a13d9e5.doc
670426587f8d8102a1eb712c3a13d9e5.doc
KikiFikriansyah1
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
RizaJr
Ppt klp 1
Ppt klp 1
fz_fahmi
Bab ii keg pembel 6 array
Bab ii keg pembel 6 array
087dwi
Dasar-dasar c++
Dasar-dasar c++
aks247
Struktur bahasa delphi
Struktur bahasa delphi
mistriana
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
Individual Consultants
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahan
UNIVERSITY Of LAMPUNG
3. variabel-tipe-data-dan-operator-pada-vb.net
3. variabel-tipe-data-dan-operator-pada-vb.net
Aris Saputro
Modul visual basic
Modul visual basic
Siti Khotijah
Konsep dasar pemrograman pascal
Konsep dasar pemrograman pascal
bayyou
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Laporan praktikum modul 8 pemrogrman mobile j2me II devi-201208104
Devi Apriansyah
Bahasa pemrograman pascal
Bahasa pemrograman pascal
Nadya Olivia
Ad

delphi

  • 1. Modul Pemrograman Visual-MSA-ASG Halaman 1 dari 8 PRAKTIKUM 4 MEMBUAT MENU Menu akan dibuat dengan menggunakan form Induk yang biasa disebut dengan MDIForm. sedangkan form-form yang lain akan menjadi form Anak atau MDIChild. 1. Tambahkan sebuah form baru ke dalam project Rental VCD 2. Ubah properties Name nya menjadi FrmMenu, dan simpan dengan nama UMenu.pas3. 3. Ubah Properti FormStyle menjadi fsMDIForm dan Captionnya : Aplikasi Rental VCD,dan Color : clAppWorkSpace 4. Tambahkan sebuah Komponen MainMenu dari Tab Standard ke dalam form 5. Untuk membuat menu dalam Form, dapat dilakukan dengan mengklik dua kali komponen MainMenu. Rancang menu sebagai berikut : Main Menu SubMenu1 SubMenu2 Caption Short Cut Caption Short Cut Master Pelanggan Ctrl+P VCD Ctrl+V Data Pengendali Ctrl+N Keluar Program Transaksi Peminjaman Ctrl+M Pengembalian VCD Ctrl+B Cetak Master Laporan VCD Ctrl+Alt+V Laporan Pelanggan Ctrl+Alt+P Transaksi Persewaan VCD Ctrl+Alt+W Pengembalian VCD Ctrl+Alt+B 6. Selanjutnya ubah semua properties FormStyle dari semua Form menjadi fsMDIChild. (Kecuali Form Form Report : FrmCetakVCD, FrmCetakPelanggan,FrmCetakSewa) 7. Format Form-form yang sudah dibuat menjadi form anak (MDIChild), dengan cara Klik menu Project > Option, atur pada Combo Main Form menjadi FrmMenu dan pindahkan semua form aplikasi dari kolom Auto-Create Forms ke sebelah kanan atau ke kolom Available forms (Kecuali Form-form Report : FrmCetakVcd, FrmCetakPelanggan, FrmCetakSewa) 8. Kemudian deklarasikan semua unit form aplikasi dalam implementation, sebagai berikut : implementation uses UVCD, UPelanggan, UTransaksi,
  • 2. Modul Pemrograman Visual-MSA-ASG Halaman 2 dari 8 USewa, UKembali, UCetakPelanggan, UCetakVCD, UcetakSewa; 9. Jika malas mengetik, bisa menggunakan menu dengan cara : Klik menu File > Use Unit..,Kemudian pilih unit form dan klik tombol OK. 10. Klik Sub Menu Pelanggan dari menu Master. Ketikan ketikan kode Program berikut : procedure TFrmMenu.PelangganMember1Click(Sender: TObject); begin Application.CreateForm(TFrmPelanggan, FrmPelanggan); FrmPelanggan.Show; end; 11. Klik Sub Menu VCD dari menu Master. Ketikan ketikan kode Program berikut : procedure TFrmMenu.VCD1Click(Sender: TObject); begin Application.CreateForm(TFrmVCD, FrmVCD); FrmVCD.Show; end; 12. Klik Sub Menu Data Pengendali dari menu Master. Ketikan ketikan kode Program berikut : procedure TFrmMenu.N1Click(Sender: TObject); begin Application.CreateForm(TFrmTarif, FrmTarif); FrmTransaksi.Show; end; 13. Klik Sub Menu Keluar Program dari menu Master. Ketikan ketikan kode Program berikut : procedure TFrmMenu.KeluarProgram1Click(Sender: TObject); var Yakin:Integer; begin Yakin:=application.MessageBox('Anda yakin mau keluar...?','Konfirmasi', MB_IconQuestion or MB_YesNo); if Yakin=IdYes then Application.Terminate else exit; end; 14. Karena semua form aplikasi sudah diubah menjadi form anak, perintah untuk menutup form anak juga berbeda dengan perintah untuk menutup form tunggal. Perhatikan contoh kode program berikut untuk menutup form pelanggan yang telah menjadi form anak : procedure TFrmPelanggan.BtKeluarClick(Sender: TObject);
  • 3. Modul Pemrograman Visual-MSA-ASG Halaman 3 dari 8 begin Konfirmasi:=Application.MessageBox('Yakin mau mneutup form ini','Konfirmasi Tutup',MB_Iconquestion Or MB_YesNo); if Konfirmasi=IdYes Then Close else exit; 15. Untuk mempercantik tampilan Menu, tambahkan sebuah komponen StatusBar dari Tab Win32 ke dalam MDIForm. 16. Tambahkan 3 buah panel pada komponen StatusBar dengan cara klik kanan komponen StatusBar dan pilih menu popup Panel Editor Klik tombol Add New (Insert) 3 kali. 17. Dari Tab System Masukan komponen Timer ke dalam MDIForm dan ubah properties intervalnya menjasi 250. 18. Deklarasikan variabel-variabel berikut : var FrmMenu: TFrmMenu; TextAnim2:String; x:Integer; const TextAnim='Aplikasi Rental VCD....'; 19. Double Klik komponen Timer, ketikan kode program berikut : procedure TFrmMenu.Timer1Timer(Sender: TObject); begin StatusBar1.Panels.Items[0].Text:= DateToStr(Date); StatusBar1.Panels.Items[1].Text:=TimeToStr(Time); inc(x); TextAnim2:=TextAnim2+TextAnim[x]; if TextAnim2=TextAnim then begin TextAnim2:=''; x:=0; end; StatusBar1.Panels.Items[2].Text:=TextAnim2; end; 20. Simpan dan Jalankan Aplikasi ini..
  • 4. Modul Pemrograman Visual-MSA-ASG Halaman 4 dari 8 PRAKTIKUM 5 ARRAY Array merupakan sekumpulan data tunggal yang meiliki tipe data yang sama. Kegunaan array sangat banyak, dengan sifatnya yang dinamis array mampu digunakan sebagai objek penyimpanan data yang stabil meskipun ketika program ditutup data array tersebut akan hilang. Isi dari setiap data tunggal pada array sering disebut dengan elemen, setiap elemen dalam array memiliki indeks penyimpanan agar mudah dalam pengambilan datanya. Terdapat 2 cara dalam alokasi memori array, yaitu statis dan dinamis. Array Statis Array statis adalah array yang memiliki panjang yang sudah ditentukan pada awal deklarasi, sehingga batas maksimum data yang dapat ditampung bersifat tetap (statis). Kerugian menggunakan array statis yaitu keterbatasan daya tampung isi, sehingga array sangat beresiko kekurangan daya tampung atau mungkin daya tampungnya berlebihan. Berikut cara deklarasi sebuah array statis : Var ArrayKu : array[1..5] of integer; Ket : Mendeklarasikan sebuah array dengan nama ArrayKu bertipe Integer dan memiliki ukuran sebesar 5 elemen. Array Dinamis Array dinamis merupakan array yang tidak mempunyai ukuran yang tetap saat deklarasi, tetapi ketika program telah berjalan ukuran dari array tersebut harus tetap ditentukan sesuai dengan kebutuhan. Sehingga dengan teknik ini diharapkan ukuran array yang akan dibuat lebih efisien. Berikut cara penggunaan array dinamis : Var ArrayMu : array of Real; { ditulis pada saat deklarasi } SetLength(ArrayMu,10); { ditulis pada saat di dalam program } Ket : Mendeklarasikan sebuah array dengan nama ArrayMu bertipe real (float) dan memiliki ukuran yang tidak tetap (dinamis) sesuai kebutuhan didalam program. Pada contoh di atas ArrayMu diberi ukuran sebesar 10 menggunakan fungsi SetLength().
  • 5. Modul Pemrograman Visual-MSA-ASG Halaman 5 dari 8 Contoh 1 : Array Sederhana 1. Mulai membuat project baru, langkahnya sbb : klik menu File -> New -> Application 2. Desain form seperti gambar di bawah ini : 3. Tulislah potongan program berikut pada event onclick tombol btn_statis. Potongan program tersebut merupakan penggunaan array statis. 4. Selanjutnya tulislah contoh baris program penggunaan array dinamis di bawah ini, dengan cara klik 2x pada tombol btn_dinamis. procedure TForm1.btn_statisClick(Sender: TObject); var i : integer; text : string; ArrayKu : array[1..5] of integer; begin for i:=1 to Length(ArrayKu) do begin text := 'Masukan data ke-' + IntToStr(i); ArrayKu[i] := StrToInt(InputBox('Input', text ,'')); end; memo_isi.Clear; for i:=1 to Length(ArrayKu) do memo_isi.Lines.Add(IntToStr(ArrayKu[i])); end; Komponen Button Name : btn_statis Komponen Memo Name : memo_isi Ket : Kosongkan isi memo pada property Lines Komponen Button Name : btn_dinamis Komponen Label
  • 6. Modul Pemrograman Visual-MSA-ASG Halaman 6 dari 8 5. Jalankan program dan amati hasil outputnya. Contoh 2 : Mengetahui Hari dari Sebuah Tanggal 1. Mulai membuat project baru, langkahnya sbb : klik menu File -> New -> Application 2. Desain seperti gambar berikut : 3. Tulislah potongan program berikut pada event onclick tombol btn_statis. Potongan program tersebut merupakan proses perhitungan konversi dari tanggal ke hari. procedure TForm1.btn_dinamisClick(Sender: TObject); var i, ukuran_array : integer; text : string; ArrayMu : array of integer; begin ukuran_array := StrToInt(InputBox('Input', 'Masukan ukuran array' ,'')); Setlength(ArrayMu, ukuran_array); for i:=0 to Length(ArrayMu)-1 do begin text := 'Masukan data ke-' + IntToStr(i); ArrayMu[i] := StrToInt(InputBox('Input', text ,'')); end; memo_isi.Clear; for i:=0 to Length(ArrayMu)-1 do memo_isi.Lines.Add(IntToStr(ArrayMu[i])); end; Komponen Edit Name : Etahun Komponen Button Name : btn_proses Komponen LabelKomponen GroupBox Komponen Edit Name : Ebln Komponen Edit Name : Etgl Komponen Edit Name : Ehari Komponen GroupBox Komponen Label
  • 7. Modul Pemrograman Visual-MSA-ASG Halaman 7 dari 8 4. Jalankan program dan amati hasil outputnya. Array Multidimensi Pada pembahasan sebelumnya, array yang digunakan masih berupa array satu dimensi. Tetapi ada kasus dimana kita memerlukan array multidimensi untuk menyelesaikannya. Pada array multidimensi juga ada yang bersifat statis dan dinamis, berikut penjelasan penggunaan dari array multidimensi. Array Multidimensi Statik Var ArrayKu : array[1..5] of array[1..3] integer; Ket : Mendeklarasikan sebuah array dengan nama ArrayKu bertipe Integer dan memiliki ukuran sebesar 5x3 elemen. procedure TForm1.btnprosesClick(Sender: TObject); type x = string[7]; const faktor_bln : array[1..12] of byte = (0,3,3,6,1,4,6,2,5,0,3,5); hari : array[0..8] of x = ('Minggu', 'Senin', 'Selasa', '', 'Rabu', 'Kamis', '', 'Jumat', 'Sabtu'); var hr : string; nama : string[255]; j1,j2,j3,j4 : integer; tanggal, bulan, tahun : integer; begin tanggal := StrToInt(Etgl.Text); bulan := StrToInt(Ebln.Text); tahun := StrToInt(Etahun.Text); if tahun > 1900 then tahun := tahun - 1900; j1 := trunc(tahun * 365.25); { trunc fungsi membulatkan kebawah untuk tipe int } j2 := j1 + faktor_bln[bulan]; if (tahun/4 = trunc(tahun/4)) and(bulan < 3) then j2 := j2 - 1; j3 := j2 + tanggal; j4 := trunc(frac(j3/7) * 10); { frac fungsi mengambil hanya angka dibekang koma } hr := hari[j4]; Ehari.Text := hr; end;
  • 8. Modul Pemrograman Visual-MSA-ASG Halaman 8 dari 8 Array Multidimensi Dinamis Var ArrayMu : array of array Real; { ditulis pada saat deklarasi } SetLength(ArrayMu,10,5); { ditulis pada saat di dalam program } Ket : Mendeklarasikan sebuah array dengan nama ArrayMu bertipe real (float) dan memiliki ukuran yang tidak tetap(dinamis) sesuai kebutuhan didalam program. Pada contoh di atas ArrayMu diberi ukuran sebesar 10x5. Contoh 3 : Array Dua Dimensi 1. Mulai membuat project baru, langkahnya sbb : klik menu File -> New -> Application 2. Desain seperti gambar berikut : 3. Tulislah potongan program berikut pada event onclick tombol btn_proses. 4. Jalankan program dan amati hasil outputnya. procedure TForm1.btn_prosesClick(Sender: TObject); var ArrayKu : array of array of integer; i, j, baris, kolom : integer; begin baris := StrToInt(Ebar.Text); kolom := StrToInt(Ekol.Text); SetLength(ArrayKu, baris, kolom); for i:=0 to baris-1 do for j:=0 to kolom-1 do begin ArrayKu[i,j] := StrToInt(InputBox('INPUT', ('Masukan indeks [' + IntToStr(i)+ ', ' + IntToStr(j) + ']') , '')); end; for i:=0 to baris-1 do for j:=0 to kolom-1 do begin memo_isi.Lines.Add('Elemen array indeks ke [' + IntToStr(i)+ ', ' + IntToStr(j) + '] = ' + IntToStr(ArrayKu[i,j])); end; end; Komponen Label Komponen Edit Name : Ebar Komponen Memo Name : memo_isi Ket : Kosongkan isi memo pada property Lines Komponen Edit Name : Ekol Komponen Button Name : btn_proses Komponen Label Komponen Label