Form Jamak,
Modul, dan Menu
Bab ini menunjukkan
bagaimana menambahkan sejumlah form pada sebuah projek dan bagaimana
menciptakan sebuah modul untuk memuat pelbagai prosedur dan fungsi. Bab ini
juga merangkum penciptaan menu, yang memuat perintah-perintah dan sub-submenu
yang dapat dipilih oleh user.
5.1 Form Jamak
KONSEP: Projek Visual Basic dapat memiliki sejumlah form. Form awal
(startup) adalah sebuah form yang ditampilkan ketika projek dieksekusi.
Form-form lain di dalam sebuah projek ditampilkan oleh statemen-statemen
pemrograman.
Aplikasi-aplikasi yang
telah Anda ciptakan sejauh ini hanya memiliki satu form pada antarmuka user.
Visul Basic tidak membatasi Anda untuk hanya mempunyai satu form di dalam
sebuah projek. Anda bisa menciptakan sebanyak mungkin form di dalam sebuah
projek untuk digunakan sebagai kotak dialog, menampilkan pesan error, dan
seterusnya. Kemudian, Anda dapat menampilkan form-form tersebut ketika
diperlukan.
Aplikasi Windows Forms
umumnya memiliki satu form yang diistilahkan dengan form startup. Ketika aplikasi dieksekusi, form startup secara
otomatis ditampilkan. Secara default, form pertama yang Anda ciptakan pada
sebuah aplikasi Windows Foms adalah form startup. Anda akan belajar hal ini
pada bab ini.
Gambar 5.1 Jendela Solution
Explorer dengan entri untuk Form1.vb
Nama Form dan
File Form
Setiap form pada sebuah
projek Visual Basic memiliki nama yang disimpan di dalam properti Name dari form (dapat dilihat pada
jendela Properties ketika form
diseleksi). Seperti yang Anda telah ketahui, form pertama di dalam sebuah
projek secara otomatis diberi nama Form1.
Ketika sebuah form diciptakan pada projek Visual Basic, kode yang berkaitan dengan
form tersebut disimpan di dalam sebuah file yang memiliki nama sama dengan form
tersebut, diikuti dengan ekstensi .vb. Jadi, kode untuk sebuah form dengan nama
Form1 akan disimpan di dalam sebuah
file dengan nama Form1.vb. Jendela Solution Explorer menunjukkan entri
untuk setiap file form di dalam sebuah projek. Gambar 5.1 menunjukkan jendela Solution Explorer dengan sebuah entri untuk form dengan nama Form1.vb.
Mengganti Nama
File Form
Jika Anda menggunakan
jendela Solution Explorer untuk
mengubah nama file form, properti Name
dari form berubah secara otomatis untuk menyesuaikan nama file. Jika, misalnya,
Anda mengganti nama file Form1.vb
menjadi FormUtama.vb, maka properti Name dari form akan berubah dari Form1 menjadi FormUtama. Di sisi lain, jika Anda mengubah properti Name dari form, maka nama file form
tidak berubah secara otomatis. Untuk mempertahankan konsistensi antara nama
file form dan properti Name yang
dimilikinya, Anda sebaiknya menggunakan Solution
Explorer untuk mengganti nama file
form. Berikut adalah bagaimana mengganti nama file form:
1.
Klik kanan pada nama file form pada jendela Solution Explorer.
2.
Sebuah menu popup akan ditampilkan, seperti
ditunjukkan pada Gambar 5.2. Pilih Rename
dari menu popup tersebut.
Gambar
5.2 Pengklikan-kanan pada file form
Gambar 5.3 File form
diganti nama menjadi FormUtama.vb
3.
Nama dari file form disorot pada jendela Solution Explorer. Ketikkan nama baru untuk file form. Pastikan untuk
mempertahankan ekstensi .vb. Gambar 5.3 menunjukkan sebuah contoh dimana Form1.vb diganti dengan FormUtama.vb. Ketika Anda memiliki
beberapa form pada sebuah aplikasi, Anda sebaiknya memberikan nama unik untuk
setiap form. Pada sebuah projek form jamak (multi-form), nama-nama form default
yang diberikan sebagai Form1, Form2, dan seterusnya, cukup bisa
menjelaskan tujuan dari setiap form.
Menambahkan Form
Baru Pada Projek
Ikuti langkah-langkah
berikut untuk menambahkan sebuah form baru pada projek:
1.
Klik PROJECT pada batang menu Visual Studio, dan
kemudian pilih Add Windows Form…
dari menu PROJECT. Jendela Add New Item,
seperti ditunjukkan pada Gambar 5.4, akan ditampilkan.
Gambar
5.4 Jendela Add New Item
2.
Di bawah dari jendela Add New Item, sebuah kotak teks Name ditampilkan dimana Anda dapat menetapkan nama dari form baru.
Awalnya, sebuah nama default ditampilkan. (Perhatikan bahwa pada Gambar 5.4,
nama default Form1.vb diberikan.
Nama aktual yang ditampilkan bisa saja berbeda). Ubah nama default yang
ditampilkan pada kotak teks Name
tersebut sesuai dengan nama deskriptif yang Anda inginkan. Sebagai contoh, jika
Anda ingin menamai form baru dengan FormError,
ketikkan FormBaru.vb pada kotak teks
Name. (Pastikan Anda mempertahankan
ekstensi .vb).
Gambar
5.5 Jendela Solution Explorer
yang menunjukkan dua form
3.
Klik tombol Add.
Setelah menyelesaikan
langkah-langkah ini, sebuah form kosong baru akan ditambahkan pada projek Anda.
Form baru ditampilkan pada jendela Designer
dan sebuah entri untuk file form baru ditampilkan pada jendela Solution Explorer. Jendela Solution
Explorer pada Gambar 5.5 menunjukkan dua file form: FormError.vb dan FormUtama.vb.
Berpindah Form dan Kode Form
Pada saat perancangan,
Anda dapat dengan mudah berpindah dari satu form ke form lain dengan mengklik
entri form pada jendela Solution
Explorer. Form kemudian akan ditampilkan pada jendela Designer. Anda dapat pula menggunakan tab-tab yang ditampilkan di
atas dari jendela Designer untuk menampilkan form atau kode yang berbeda.
Sebagai contoh, lihat Gambar 5.6, yang menunjukkan tab-tab untuk sebuah projek
dengan dua form: FormError dan FormUtama. Tab-tab yang ditampilkan
dengan penanda [Design] menyebabkan
sebuah form ditampilkan pada jendela Designer.
Tab-tab yang ditampilkan tanpa penanda [Designer]
menyebabkan kode form ditampilkan pada jendela Code.
Gambar 5.6 Tab-tab pada jendela Designer dan jendela Code
Menghapus Form
Jika Anda ingin menghapus
form dari sebuah projek dan menghapusnya dari disk, lakukan langkah-langkah
berikut:
1.
Klik kanan pada entri form pada jendela Solution Explorer.
2.
Pada menu popup, klik Delete.
Jika Anda ingin menghapus
form dari sebuah projek tetapi tidak ingin menghapusnya dari disk, lakukan
langkah-langkah berikut:
1.
Klik kanan pada entri form pada jendela Solution Explorer.
2.
Pada menu popup, klik pada Exclude From Project.
atau
1.
Seleksi entri form pada jendela Solution Explorer.
2.
Klik Project
pada menu, dan klik pada Exclude From Project.
Menandai Form
Startup
Form pertama yang Anda
ciptakan, secara default, adalah form startup. Form ini secara otomatis
ditampilkan ketika aplikasi dijalankan. Untuk membuat form lain sebagai form
startup, ikuti langkah-langkah berikut:
1.
Pada jendela Solution
Explorer, klik kanan pada nama projek. Gambar 5.7 menunjukkan lokasi dari
nama projek.
Gambar
5.7 Nama projek pada jendela Solution
Explorer
2. Pada menu popup, klik Properties. Halaman properti projek akan ditampilkan, seperti
ditunjukkan pada Gambar 5.8.
Gambar
5.8 Halaman properti dari projek
3. Pastikan
tab Application diseleksi di pojok
kiri dari halaman properti, seperti ditunjukkan pada Gambar 5.8. Untuk mengubah
form startup, klik pada anak panah bawah (
) pada daftar Startup
form. Semua form di dalam projek akan dimunculkan. Pilih form yang akan
ditampilkan pertama kali ketika program dieksekusi.
4. Simpan
projek dan klik tombol Close (
) pada tab halaman properti.
Menciptakan
Instansi dari Form
Sebuah file form memuat
semua kode dari form tersebut. Ingat bahwa ketika Anda membuka sebuah form pada
jendela Code, baris kode pertama dan
baris kode terakhir adalah berikut:
Public Class NamaForm
End Class
Pada baris pertama, NamaForm adalah nama form. Ingat dari
Bab 2 bahwa statemen-statemen ini adalah awal dan akhir dari sebuah deklarasi
kelas untuk form. Semua kode untuk form (event handler, prosedur, fungsi, dan
deklarasi level-kelas) harus dimuat di dalam deklarasi kelas ini.
Deklarasi kelas dari form
itu sendiri tidak menciptakan sebuah form spesifik, tetapi hanyalah deskripsi
dari sebuah form. Ini sama dengan cetak-biru untuk sebuah rumah. Cetak biru itu
sendiri bukanlah sebuah rumah, tetapi ia merupakan deskripsi detil dari rumah.
Ketika Anda menggunakan cetak biru untuk membangun sebuah rumah aktual, Anda
dapat mengatakan bahwa Anda sedang membangun sebuah instansi atau contoh atau
realisasi dari rumah yang dijelaskan oleh cetak biru. Jika Anda menginginkannya,
Anda dapat membangun sejumlah rumah identik dari cetak biru yang sama. Setiap
rumah merupakan instansi atau realisasi terpisah dari rumah yang dijelaskan
oleh cetak biru. Ide ini diilustrasikan pada Gambar 5.9.
Deklarasi kelas dari form
berperan dengan tujuan yang sama. Anda dapat menggunakannya untuk menciptakan
satu atau lebih instansi form yang dijelaskan oleh deklarasi kelas, dan
kemudian menggunakan instansi tersebut untuk menampilkan form pada layar.
Menampilkan Form
Langkah pertama dalam
menampilkan sebuah form adalah menciptakan sebuah instansi dari form. Anda
menciptakan sebuah instansi dari form menggunakan statemen Dim. Bentuk umumnya adalah sebagai berikut:
Dim
VariabelObjek As New NamaKelas
VariabelObjek adalah nama dari sebuah variabel objek yang mereferensi atau mengakses
sebuah instansi form. Variabel objek adalah sebuah variabel yang memuat alamat
memori dari sebuah objek yang dapat Anda pakai bila bekerja dengan objek. NamaKelas adalah nama kelas dari form.
Sebagai contoh, diasumsikan bahwa Anda telah menambahkan sebuah form pada
projek Anda dan menamainya FormError.
Statemen berikut menciptakan sebuah instansi form di dalam memori:
Dim
frmError As New FormError
Sekarang Anda memeriksa
apa yang terjadi sebagai hasil dari statemen ini. Pertama, sebuah variabel
dengan nama frmError dideklarasikan.
Kemudian, bagian dari statemen yang membaca New FormError
menyebabkan sebuah instansi dari form FormError
akan diciptakan di dalam memori. Alamat memori dari form ditugaskan kepada
variabel frmError. (Ketika sebuah
variabel objek memuat alamat memori dari suatu objek, Anda dapat mengatakannya
bahwa ia mereferensi objek tersebut). Anda sekarang bisa menggunakan variabel frmError untuk melakukan
operasi-operasi pada form.
Statemen ini tidak
menyebabkan form ditampilkan pada layar. Ia hanya menciptakan sebuah instansi
dari form di dalam memori dan menugaskan alamatnya kepada variabel objek. Untuk
menampilkan form pada layar, Anda harus menggunakan variabel objek tersebut
untuk memanggil metode-metode dari form.
Metode ShowDialog
dan Show
Sebuah form dari berupa modal atau modeless. Ketika sebuah form
modal ditampilkan, tidak ada form lain pada aplikasi yang dapat menerima
fokus sampai modal form tersebut ditutup. User harus menutup form modal sebelum
ia dapat bekerja dengan form lain pada aplikasi. Sebuah form modeless, di sisi
lain, dapat dipakai user untuk mengganti fokus ke form lain. Metode ShowDialog menyebabkan sebuah form
ditampilkan sebagai sebuah form modal. Ketika metode ini dipanggil, form akan
ditampilkan dan menerima fokus. Bentuk umum dari pemanggilan metode ini adalah
sebagai berikut:
VariabelObjek.ShowDialog()
VariabelObjek adalah nama dari sebuah variabel objek yang mereferensi suatu instansi
dari form. Sebagai contoh, kode berikut menciptakan sebuah instansi dari form FormError dan menampilkannya:
frmError.ShowDialog()
Untuk menampilkan sebuah
form modeless, Anda menggunakan metode Show.
Bentuk umum dari pemanggilan metode Show
adalah sebagai berikut:
VariabelObjek.Show()
VariabelObjek adalah nama dari sebuah variabel objek yang mereferensi suatu instansi
dari form. Sebagai contoh, kode berikut menciptakan sebuah instansi dari form FormError dan menampilkannya sebagai
sebuah form modeless:
Dim
frmError As New FormError
frmError.Show()
Menutup Form
dengan Metode Close
Form ummumnya memiliki
sebuah tombol, seperti Close atau Cancel, yang dapat dipakai user untuk
menutup form. Ketika user mengklik tombol semacam itu, form akan memanggil
metode Close. Metode Close menutup form dan menghapusnya
dari bagian visual dari memori. Ketika sebuah form memanggil metode Close, ia umumnya melakukannya
menggunakan katakunci Me, seperti
ditunjukkan berikut:
Me.Close()
Katakunci Me pada Visual Basic merupakan sebuah
variabel khusus yang mereferensi objek pengeksekusi saat ini. Sebagai contoh,
dimisalkan bahwa sebuah form memiliki sebuah kontrol Button dengan nama tombolKeluar,
dan kode dari form tersebut memuat event handler berikut:
Private
Sub tombolKeluar_Click(...) Handles tombolKeluar.Click
Me.Close()
End
Sub
Diasumsikan bahwa sebuah
instansi form telah diciptakan di dalam memori dan ia sekarang sedang
ditampilkan pada layar. Ketika event handler ini dieksekusi, Me akan mereferensi instansi sekarang
dari form. Jadi, statemen Me.Close()
menyebabkan instansi sekarang dari form memanggil metode Close, yang menutup form.
Metode Hide
Metode Hide membuat sebuah form atau kontrol
menjadi terlihat atau visibel, tetapi tidak menghapusnya dari memori. Metode
ini memiliki efek yang sama dengan pengaturan properti Visible menjadi False.
Sama seperti metode Close, sebuah
form menggunakan katakunci Me untuk memanggil metode Hide, seperti Me.Hide().
Gunakan metode Hide ketika Anda
ingin menghapusnya secara sementara dari layar. Setelah menyembunyikan form,
Anda bisa menampilkannya kembali dengan metode ShowDialog atau Show.
Sekarang bahwa Anda telah
belajar dasar-dasar pembuatan form jamak pada sebuah projek, Anda perlu
berlatih dengan melakukan langkah demi langkah pada Tutorial 5.1. Pada tutorial
ini, Anda akan menciptakan sebuah aplikasi sederhana yang memiliki dua form.
Tutorial 5.1: Menciptakan Sebuah
Aplikasi Dengan Dua Form
Langkah 1: Ciptakan sebuah projek Windows Forms Application dengan nama Latihan Form Jamak.
Langkah 2: Pada jendela Solution Explorer, ganti nama Form1.vb dengan FormUtama.vb. (Klik kanan pada Form1.vb
dan kemudian pilih Rename dari menu
popup). Pengubahan nama file form menjadi FormUtama.vb
juga mengubah nama form menjadi FormUtama.
Jendela Solution Explorer akan
tampak seperti ditunjukkan pada Gambar 5.10.
Langkah 3: Pada jendela Designer,
bangunlah form FormUtama seperti ditunjukkan pada Gambar 5.11. Namai kontrol Button Tampilkan Form sebagai tombolTampilkanForm dan kontrol Button Keluar sebagai tombolKeluar.
Langkah 4: Lakukan hal berikut
untuk menciptakan form lain dengan nama FormPesan pada projek:
·
Klik PROJECT
pada batang menu, kemudian pilih submenu Add
Windows Form….
·
Jendela Add
Ne Item akan ditampilkan. Ketikkan FormPesan.vb
sebagai namanya.
·
Klik pada tombol Add.
Seperti ditunjukkan pada Gambar 5.12, sebuah form baru dengan nama FormPesan akan ditampilkan pada jendela
Designer. Perhatikan bahwa sebuah
entri untuk FormPesan.vb muncul di
dalam jendela Solution Explorer.
Langkah 5: Pada jendela Designer, bangunlah FormPesan seperti ditunjukkan pada
Gambar 5.13. Namai kontrol Button
dengan nama tombolTutup.
Langkah 6: Gunakan tab-tab di atas
dari jendela Designer untuk berganti
ke FormUtama.vb [Design]. Ini akan membawa FormUtama
ke jendela Designer.
Langkah 7: Klik ganda pada tombol tombolTampilkanForm untuk menciptakan
sebuah template kode untuk event handler Click
dari tombol tersebut. Sempurnakan event handler dengan menuliskan kode tebal
seperti ditunjukkan pada baris 2 sampai baris 6. (Jangan ketikkan nomor baris,
karena hanya bertujuan sebagai referensi saja).
1
2
3
4
5
6
7
|
Private Sub tombolTampilkanForm_Click(…) Handles
tombolTampilkanForm.Click
'Menciptakan sebuah instansi dari
FormPesan
Dim frmPesan As New FormPesan
'Menampilkan form dengan gaya modal
frmPesan.ShowDialog()
End Sub
|
Amati lebih dekat kode
ini. Baris 3 menciptakan sebuah instansi dari FormPesan di dalam memori dan menugaskan alamatnya kepada variabel frmPesan. Baris 6 menggunakan variabel frmPesan untuk memanggil metode ShowDialog. Ketika statemen ini
dieksekusi, ia akan menampilkan form pada layar dengan gaya modal.
Langkah 8: Gunakan tab-tab di atas dari jendela Designer untuk kembali ke FormUtama.vb
[Design]. Ini akan membawa FormUtama
kembali ke jendela Designer.
Langkah 9: Klik ganda pada tombolKeluar
untuk menciptakan sebuah template kode untuk event handler Click dari tombol. Sempurnakan event handler dengan menuliskan kode
tebal berikut:
1
2
3
4
|
Private Sub tombolKeluar_Click(…) Handles
tombolKeluar.Click
'Menutup form
Me.Close()
End Sub
|
Ketika event handler ini
dieksekusi, ia akan menutup FormUtama,
yang akan mengakhiri aplikasi.
Langkah 10: Gunakan tab-tab di atas dari jendela Designer untuk ke FormPesan.vb
[Design]. Ini akan membawa FormPesan
ke jendela Designer.
Langkah 11: Klik ganda pada tombolTutup
untuk menciptakan sebuah template kode untuk event handler Click dari tombol. Sempurnakan event handler dengan menuliskan kode
tebal berikut:
1
2
3
4
|
Private Sub tombolTutup_Click(…) Handles
tombolTutup.Click
'Menutup form
Me.Close()
End Sub
|
Ketika event handler ini
dieksekusi, ia akan menutup form FormPesan.
Langkah 12: Simpan projek dan kemudian jalankan. Form FormUtama akan ditampilkan, seperti ditunjukkan pada Gambar 5.14
sebelah kiri. Klik tombol Tampilkan Form.
Form FormPesan akan ditampilkan,
seperti ditunjukkan di sisi kanan dari Gambar 5.14.
Langkah 13: Pada FormPesan, klik tombol Tutup. Ini akan menutup FormPesan. Selanjutnya, klik tombol Keluar pada FormUtama untuk mengakhiri aplikasi.
Lebih Lanjut
Tentang Form Modal dan Form Modeless
Anda telah belajar bahwa
ketika sebuah form modal ditampilkan, tidak ada form lain pada aplikasi yang
sama yang dapat menerima fokus sampai form modal ditutup atau disembunyikan.
Ada aspek penting lain dari form modal. Ketika sebuah prosedur memanggil metode
ShowDialog untuk menampilkan sebuah
form modal, tidak ada statemen-statemen di dalam prosedur itu yang dieksekusi
sampai form modal ditutup. Konsep ini diilustrasikan pada Gambar 5.15.
Ketika sebuah prosedur
memanggil metode Show untuk
menampilkan form modeless, statemen-statemen yang mengikuti pemanggilan metode
akan dieksekusi setelah form modeless tersebut ditampilkan. Visual Basic tidak
menunggu sampai form modeless ditutup sebelum mengeksekusi statemen-statemen
tersebut. Konsep ini diilustrasikan pada Gambar 5.16. Tutorial 5.2
mendemonstrasikan perbedaan antara form modal dan form modeless.
Tutorial 5.2: Menciptakan Sebuah
Aplikasi Yang Menampilkan Form Modal dan Form Modeless
Langkah 1: Buka projek Demo Modal Modeless.
Langkah 2: Lihat pada jendela Solution Explorer, seperti ditunjukkan pada
Gambar 5.17. Projek memiliki dua form, FormUtama
dan FormPesan. FormUtama adalah form startup.
Langkah 3: Klik ganda pada entri FormUtama.vb
pada jendela Solution Explorer. Form akan ditampilkan pada
jendela Designer, seperti
ditunjukkan pada Gambar 5.18.
Langkah 4: Lihat pada form FormPesan,
klik entri tersebut pada jendela Solution
Explorer, seperti ditunjukkan pada
Gambar 5.19. Tombol Tutup diberi
nama tombolTutup.
Langkah 5: Buka jendela Code untuk
melihat kode untuk form FormPesan.
Lihat pada event handler tombolTutup.
Kodenya adalah sebagai berikut:
Private Sub tombolTutup_Click(…) Handles
tombolTutup.Click
'Menutup form.
Me.Close()
End Sub
Ketika prosedur ini
dieksekusi, ia menutup form FormPesan.
Langkah 6: Buka FormUtama pada jendela Designer dan klik ganda pada tombol Tampilkan Form Modal. Ini akan
menciptakan template kode untuk event handler tombolModal_Click. Sempurnakan event handler dengan mengetikkan
kode tebal seperti ditunjukkan pada baris 2 sampai baris 12.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Private Sub tombolModal_Click(…) Handles
tombolModal.Click
Dim intHitung As Integer 'Kounter
Dim frmPesan As New FormPesan 'Instansi
dari FormPesan
'Menampilkan form pesan dengan gaya modal
frmPesan.ShowDialog()
'Menampilkan sejumlah angka pada kotak
list pada FormUtama
'Ini akan terjadi SETELAH user menutup
FormPesan
For intHitung = 1 To 10
listKeluaran.Items.Add(intHitung.ToString())
Next
End Sub
|
Amati lebih dekat kode
tersebut. Baris 2 mendeklarasikan intHitung,
sebuah variabel integer yang akan dipakai sebagai kounter. Baris 3 menciptakan
sebuah instansi dari form FormPesan
di dalam memori, dan menugaskan alamatnya kepada sebuah variabel dengan nama frmPesan.
Baris 6 menggunakan
variabel frmPesan untuk memanggil
metode ShowDialog. Ini akan
menampilkan FormPesan dengan gaya
modal, yang berarti bahwa tida akan statemen di dalam event handler ini yang
akan dieksekusi sampai FormPesan
ditutup.
Setelah FormPesan ditutup, loop For…Next pada baris 10 sampai baris 12
dieksekusi. Loop tersebut menampilkan angka 1 sampai angka 10 pada kotak listKeluaran.
Langkah 7: Buka kembali FormUtama pada
jendela Designer dan klik ganda pada
tombol Tampilkan Form Modeless. Ini akan menciptakan sebuah template kode untuk event
handler tombolModeless. Sempurnakan
event handler dengan mengetikkan kode tebal seperti ditunjukkan pada baris 2
sampai baris 12.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Private Sub tombolModeless_Click(…) Handles tombolModeless.Click
Dim intHitung As Integer 'Kounter
Dim frmPesan As New FormPesan 'Instansi
dari FormPesan
'Menampilkan form pesan dengan gaya
modeless
frmPesan.Show()
'Menampilkan sejumlah angka pada kotak
list pada FormUtama
'Ini akan terjadi ketika FormPesan masih
ditampilkan di layar
For intHitung = 1 To 10
listKeluaran.Items.Add(intHitung.ToString())
Next
End Sub
|
Prosedur event tombolModeless_Click pada dasarnya
melakukan operasi yang sama dengan prosedur tombolModal_Click. Prosedur ini menampilkan form FormPesan dan kemudian menampilkan
angka 1 sampai 10 pada kotak list listKeluaran.
Satu-satunya perbedaan adalah bahwa baris 6 menampilkan FormPesan dengan gaya modeless, menggunakan metode Show. Oleh karena itu, loop For…Next pada baris 10 sampai 12 dengan
segera dieksekusi setelah FormPesan
ditampilkan. Program tidak menunggu sampai user menutup FormPesan sebelum mengeksekusi loop.
Langkah 8: Jalankan aplikasi. Pada form utama, klik tombol Tampilkan Form Modal. Form FormPesan
akan ditampilkan. Gambar 5.20 menunjukkan form-form yang ada, diposisikan
sehingga Anda dapat melihat keduanya. Perhatikan bahwa loop For…Next belum dieksekusi karena Anda
tidak melihat angka 1 sampai 10 ditampilkan pada form utama.
Langkah 9: Klik tombol Tutup pada form FormPesan
untuk menutup form tersebut. Sekarang lihat pada form FormUtama. Seperti ditunjukkan pada Gambar 5.21, loop For…Next dieksekusi segera setelah form
FormPesan ditutup.
Langkah 10: Klik pada tombol Bersihkan Kotak List untuk menghapus angka-angka dari
kotak list.
Langkah 11: Klik pada tombol Tampilkan Form Modeless untuk menampilkan FormPesan
dengan gaya modeless. Seperti ditunjukkan pada Gambar 5.22, perhatikan bahwa
loop For…Next dieksekusi segera
setelah form ditampilkan, tanpa menunggu Anda mengklik tombol Tutup pada FormPesan.
Langkah 12: Klik tombol Tutup pada FormPesan
untuk menutup form.
Langkah 13: Klik tombol FormUtama untuk
mengakhiri aplikasi.
Event Load,
Activated, FormClosing, dan FormClosed
Ada sejumlah event yang
berkaitan dengan form. Pada bagian ini, Anda akan mempelajari event Load, Activated, FormClosing,
dan FormClosed.
Event Load
Event Load telah dikenalkan pada Bab 3,
tetapi dengan singkat. Tepat sebelum sebuah form ditampilkan, sebuah event Load terjadi. Jika Anda perlu
mengeksekusi kode secara otomatis tepat sebelum sebuah form ditampilkan, Anda
dapat menciptakan sebuah event handler Load,
yang akan dieksekusi dalam merespon event Load.
Untuk menuliskan kode di dalam sebuah event handler Load, klik ganda pada sembarang area dari form dimana tidak
terdapat kontrol. Jendela Code akan
ditampilkan mirip dengan template kode seperti berikut:
Private
Sub FormUtama_Load(...) Handles MyBase.Load
End
Sub
Anda bisa menyempurnakan
template ini dengan statemen-statemen yang ingin Anda eksekusi ketika FormUtama dimuat.
Event Activated
Event Activated terjadi ketika user mengganti
fokus ke form atau aplikasi lain. Berikut adalah dua contoh bagaimana event Activated terjadi.
- Aplikasi A dan aplikasi B keduanya sedang berjalan, dan sebuah form pada aplikasi A memiliki fokus. User mengklik form pada aplikasi B. Ketika ini terjadi, event Activated terjadi untuk form pada aplikasi B.
- Dimisalkan bahwa sebuah aplikasi memiliki form utama dan form kedua, dan form kedua ditampilkan dengan gaya modeless. Kemudian, setiap kali user mengklik sebuah form yang tidak memiliki fokus, sebuah event Activated akan terjadi untuk form tersebut.
Event Activated terjadi ketika sebuah form ditampilkan,
setelah event Load. Jika Anda perlu mengeksekusi kode pada situasi ini, Anda
dapat menciptakan sebuah event handler Activated,
yang dieksekusi karena merespon event Activated.
Untuk menciptakan event handler Activated,
lakukan langkah-langkah ini.
- Pilih sebuah form pada jendel Designer.
- Pilih tombol Events pada toolbar jendela Properties (lihat Gambar 5.23). Tombol ini tampak seperti halilintar.
- Klik ganda pada nama event Activated pada jendela Properties. Sebuah template kode untuk event handler Activated akan diciptakan pada jendela Code, seperti ditunjukkan pada Gambar 5.24.
Event FormClosing
Event FormClosing terjadi ketika sebuah form
dalam proses penutupan, tetapi tepat sebelum form ditutup. Event ini terjadi
karena metode Close sedang
dieksekusi, karena user menekan kunci Alt + F4, atau karena user menekan tombol
Close Windows standar (
) di pojok kanan atas dari form. Untuk mengeksekusi kode dalam
merespon penutupan form, Anda bisa menciptakan event handler FormClosing. Berikut adalah
langkah-langkah yang perlu dilakukan:
1.
Pilih sebuah form pada jendela Designer.
2.
Pilih tombol Events
pada toolbar jendela Properties.
3.
Klik ganda pada nama event FormClosing pada jendela Properties.
Setelah melakukan
langkah-langkah ini, sebuah template kode untuk event handler FormClosing diciptakan pada jendela Code, seperti ditunjukkan pada contoh
berikut:
Private Sub FormUtama_FormClosing(sender As Object,
e As
FormClosingEventArgs) Handles MyBase.FormClosing
End Sub
Salah satu parameter dari
event handler adalah e. Parameter
ini memiliki properti Boolean dengan nama Cancel.
Jika Anda menetapkan e.Cancel
menjadi True, maka form akan
ditutup. Kode berikut menunjukkan contoh dari teknik ini:
Private Sub FormUtama_FormClosing(sender As Object,
e As
FormClosingEventArgs) Handles MyBase.FormClosing
If
MessageBox.Show("Anda yakin?", "Konfirmasi",
MessageBoxButtons.YesNo)
= DialogResult.Yes Then
e.Cancel
= False 'Lanjutkan menutup form
Else
e.Cancel
= True 'Tidak menutup form
End If
End Sub
Event FormClosed
Event FormClosed terjadi setelah sebuah form
ditutup. Jika Anda perlu mengeksekusi kode segera setelah sebuah form ditutup,
Anda perlu menciptakan sebuah event handler FormClosed dengan melakukan langkah-langkah berikut:
1.
Pilih sebuah form pada jendela Designer.
2.
Pilih tombol Events
pada toolbar jendela Properties.
3.
Klik ganda pada nama event FormClosed pada jendela Properties.
Setelah melakukan
langkah-langkah ini, sebuah template kode untuk event handler FormClosed akan diciptakan pada jendela
Code:
Ketika Anda menggunakan
metode Me.Close untuk menutup form
startup dari sebuah aplikasi, aplikasi tersebut memicu event FormClosing dan FormClosed.
Mengakses Kontrol
Pada Form Berbeda
Setelah Anda menciptakan
sebuah instansi form, Anda dapat mengakses setiap kontrol pada form tersebut di
dalam kode. Sebagai contoh, dimisalkan bahwa sebuah aplikasi memiliki form
dengan nama FormSalam, dan ia
memiliki sebuah kontrol Label dengan
nama labelPesan. Kode berikut
menunjukkan bagaimana Anda dapat menciptakan sebuah instansi dari FormSelamat, menugaskan sebuah nilai
kepada properti Text dari kontrol labelPesan, dan kemudian menampilkan
form tersebut dengan gaya modal:
Dim
frmSelamat As New FormSelamat
frmSelamat.labelPesan.Text
= "Selamat Siang!"
frmSelamat.ShowDialog()
Statemen pertama
menciptakan sebuah instansi dari FormSelamat
dan menugaskan alamatnya kepada variabel frmSelamat.
Pada titik ini, form eksis di dalam memori, tetapi ia belum ditampilkan pada
layar. Statemen kedua menugaskan string “Selamat
Siang!” kepada properti Text
dari kontrol labelPesan. Perhatikan
bahwa nama kontrol diawali dengan frmSelamat,
yang diikuti dengan sebuah titik. Ini memberitahu Visual Basic bahwa kontrol tidak
berada pada form sekarang, tetapi pada form yang direferensi oleh frmSelamat. Statemen ketiga memanggil
metode ShowDialog untuk menampilkan
form tersebut di layar. Ketika form ditampilkan di layar, kontrol labelPesan akan menampilkan teks Selamat Siang!.
Pada Tutorial 5.3, Anda
berkesempatan untuk menciptakan sebuah aplikasi form jamak dimana di dalamnya
kode pada satu form menciptakan sebuah instansi dari form lain dan menugaskan
nilai-nilai kepada kontrol-kontrol pada form tersebut.
Tutorial 5.3: Mengakses Kontrol Pada
Form Berbeda
Pada tutorial ini, Anda
akan menciptakan sebuah aplikasi yang dapat dipakai user untuk memilih makanan
dari form utama pada aplikasi, dan kemudian menampilkan form kedua yang
menunjukkan informasi nutrisi dari makanan yang dipilih.
Langkah 1: Ciptakanlah sebuah projek Windows
Forms Application baru dengan nama Fakta
Makanan.
Langkah 2: Pada jendela Solution Explorer, ganti nama Form1.vb dengan FormUtama.vb. (Klik kanan pada Form1.vb
dan kemudian pilih Rename dari menu
popup). Pengubahan nama file form menjadi FormUtama.vb
akan mengubah nama form menjadi FormUtama.
Jendela Solution Explorer akan ditampilkan seperti pada
Gambar 5.25.
Langkah 3: Pada jendela Designer,
bangunlah form FormUtama dengan
kontrol-kontrol yang ditunjukkan pada Gambar 5.26.
Langkah 4: Lakukan langkah-langkah berikut untuk menciptakan form lain dengan nama FormNutrisi di dalam projek:
·
Klik PROJECT
pada batang menu, kemudian pilih Add
Windows Form….
·
Jendela Add
New Item akan ditampilkan. Ketikkan FormNutrisi.vb
sebagai nama form.
·
Klik tombol Add.
Langkah 5: Pada jendela Designer,
bangunlah form FormNutrisi dengan
kontrol-kontrol yang ditunjukkan pada Gambar 5.27. Kontrol-kontrol label diberi
nama labelMakanan, labelKalori, labelLemak, dan labelKarbo
yang memiliki pengaturan properti berikut:
·
AutoSize
ditetapkan False.
·
BorderSytle
ditetapkan Fixed3D.
Langkah 6: Buka FormUtama pada jendela Designer, dan klik ganda pada tombol Tampilkan Fakta Makanan untuk
menciptakan sebuah template kode untuk event handler Click. Sempurnakan event handler tersebut dengan menuliskan kode
tebal berikut, yang ditunjukkan pada baris 2 sampai baris 24. (Jangan ketik
nomor baris, karena ia hanya untuk referensi).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Private Sub tombolTampil_Click(…) Handles
tombolTampil.Click
'Menciptakan sebuah instansi dari
FormNutrisi
Dim frmNutrisi As New FormNutrisi
'Menemukan tombol radio terseleksi
If radPisang.Checked = True Then
frmNutrisi.labelMakanan.Text =
"1 Pisang"
frmNutrisi.labelKalori.Text =
"100"
frmNutrisi.labelLemak.Text =
"0.4"
frmNutrisi.labelKarbo.Text =
"27"
ElseIf radPopcorn.Checked = True Then
frmNutrisi.labelMakanan.Text =
"1 Cangkir Popcorn"
frmNutrisi.labelKalori.Text =
"31"
frmNutrisi.labelLemak.Text =
"0.4"
frmNutrisi.labelKarbo.Text =
"6"
ElseIf radMuffin.Checked = True Then
frmNutrisi.labelMakanan.Text =
"1 Kue Muffin Besar"
frmNutrisi.labelKalori.Text =
"385"
frmNutrisi.labelLemak.Text =
"9"
frmNutrisi.labelKarbo.Text =
"67"
End If
'Menampilkan FormNutrisi
frmNutrisi.ShowDialog()
End Sub
|
Amati kode lebih dekat.
Baris 3 menciptakan sebuah instansi dari form FormNutrisi di dalam memori dan menugaskan alamatnya kepada
variabel frmNutrisi. Ingat bahwa
meskipun form telah diciptakan di dalam memori, ia belum ditampilkan pada
layar.
Statemen If…Else pada baris 6 menentukan apakah
tombol radio radPisang dipilih atau
tidak. Jika ya, statemen-statemen pada baris 7 sampai baris 10 menggunakan
variabel frmNutrisi untuk menugaskan
nilai-nilai kepada kontrol-kontrol Label
pada form FormNutrisi. Nilai-nilai
yang ditugaskan adalah nilai-nilai nutrisi untuk sebuah pisang.
Jika tombol radio radPisang tidak diseleksi, klausa ElseIf…Then pada baris 11 menentukan
apakah tombol radio radPopcorn diseleksi atau tidak. Jika ya, statemen-statemen
pada baris 12 sampai baris 15 menggunakan variabel frmNutrisi untuk menugaskan nilai-nilai kepada kontrol-kontrol Label pada form FormNutrisi. Nilai-nilai yang ditugaskan adalah nilai-nilai nutrisi
untuk satu cangkir PopCorn.
Jika tidak satupun baik
tombol radio radPisang atau tombol
radio radPopcord diseleksi, maka
klausa ElseIf…Then pada baris 16
menentukan apakah tombol radio radMuffin
diseleksi atau tidak. Jika ya, statemen-statemen pada baris 17 sampai baris 20
menggunakan variabel frmNutrisi
untuk menugaskan nilai-nilai kepada kontrol-kontrol Label pada form FormNutrisi.
Nilai-nilai yang ditugaskan adalah nilai-nilai nutrisi untuk satu kue Muffin
besar.
Baris 24 menggunakan variabel frmNutrisi
untuk memanggil metode ShowDialog.
Ketika statemen ini dieksekusi, ia akan menampilkan form FormNutrisi pada layar dengan gaya modal.
Langkah 7: Ciptakanlah event handler Click
untuk tombol tombolKeluar pada form FormUtama:
Private Sub tombolKeluar_Click(…) Handles
tombolKeluar.Click
'Menutup
form
Me.Close()
End Sub
Langkah 8: Buka FormNutrisi pada jendela
Designer, dan klik ganda pada tombol
Tutup untuk menciptakan sebuah
template kode untuk event handler Click.
Sempurnakan event handler tersebut dengan menuliskan kode tebal berikut:
Private Sub tombolTutup_Click(…) Handles
tombolTutup.Click
'Menutup
form
Me.Close()
End Sub
Langkah 9: Simpan projek dan kemudian jalankan. FormUtama akan ditampilkan, seperti ditunjukkan di sisi kiri dari
Gambar 5.28. Dengan tombol radio 1 Pisang diseleksi, klik pada tombol Tampilkan Fakta Makanan. Form FormNutrisi akan ditampilkan, seperti
ditunjukkan di sisi kanan dari Gambar 5.28.
Langkah 10: Pada form FormNutrisi, klik
pada tombol Tutup. Ini akan menutup
form FormNutrisi. Coba untuk memilih
tombol radio lain pada form FormUtama
dan klik pada tombol Tampilkan Fakta
Makanan untuk melihat informasi nutrisi pada tiap item. Ketika sudah
selesai, Anda klik tombol Keluar
pada form FormUtama untuk mengakhiri
aplikasi.
Variabel
Level-Kelas Pada Form
Meskipun variabel
level-kelas pada sebuah form dapat diakses oleh semua statemen di dalam file
form, ia tidak dapat diakses secara default oleh statemen-statemen di luar file
form. Sebagai contoh, diasumsikan bahwa sebuah projek memiliki suatu form dengan
nama FormJumlah, yang memiliki
deklarasi variabel level-kelas berikut:
Dim
dblTotal As Double 'Variabel level-kelas
Projek yang sama memiliki
form lain yang menggunakan statemen-statemen berikut:
Dim
frmJumlah As New FormJumlah
frmJumlah.dblTotal
= 100.0
Meskipun statemen
penugasan memiliki nama utuh dari dblTotal
dengan mengawalinya dengan nama variabel objek, statemen itu tetap tidak bisa
mengaksesnya karena variabel level-kelas dideklarasikan private secara default.
Statemen tersebut akan menyebabkan error ketika projek dikompilasi.
Adalah memungkinkan untuk
membuat variabel level-kelas tersedia bagi metode-metode di luar kelas. Ini
dilakukan menggunakan katakunci Public.
Berikut adalah contohnya:
Public
dblTotal As Double ' Variabel level-kelas
Meskipun variabel
level-kelas secara otomatis dideklarasikan private oleh statemen Dim, Anda sebaiknya mendeklarasikannya
private secara eksplisit menggunakan katakunci Private. Berikut adalah contohnya:
Private
dblTotal As Double
Menggunakan
Prosedur Private dan Public Pada Form
Ingat dari Bab 6 bahwa
sebuah prosedur atau fungsi dapat diawali dengan penspesifikasi akses opsional,
seperti Private atau Public. Ketika sebuah prosedur dilabel Private, ia hanya dapat dieksekusi oleh
statemen-statemen pada form yang sama. Ketika sebuah prosedur dilabel Public, ia juga dapat dieksekusi oleh
statemen-statemen di luar form. Jika Anda tidak menyediakan penspesifikasi
akses, prosedur didekalrasi Public
secara default. Pada projek yang menggunakan form jamak, Anda sebaiknya selalu
mendeklarasikan prosedur-prosedur private di dalam sebuah form kecuali jika
Anda secara spesifik ingin statemen-statemen di luar form dapat mengeksekusi
prosedur tersebut.
Menggunakan
Sebuah Form Pada Lebih Dari Satu Projek
Setelah Anda menciptakan
sebuah form, Anda tidak harus menciptakannya kembali untuk menggunakannya pada
projek lain. Setelah sebuah form disimpan ke dalam suatu file, ia dapat dipakai
pada projek lain. Ikuti langkah-langkah ini untuk menambahkan form yang telah
ada pada sebuah projek:
1.
Dengan projek penerima dibuka pada Visual Studio,
klik PROJECT pada batang menu, dan
kemudian klik pada Add Existing Item.
2.
Kotak dialog Add
Existing Item akan ditampilkan. Gunakan kotak dialog untuk mencari file
form yang ingin Anda tambahkan pada projek. (Ingat bahwa file form diakhiri
dengan ekstensi .vb). Ketika Anda menemukan file yang dicari, pilih file
tersebut dan klik pada tombol Open.
Sebuah salinan dari form sekarang ditambahkan pada projek dan disalin ke folder
projek Anda.
5.2 Modul
KONSEP: Setiap modul memuat kode, yaitu deklarasi dan prosedur, yang
digunakan oleh file-file lain pada sebuah projek.
Ketika Anda menciptakan
sebuah aplikasi besar dengan beberapa form (form jamak), Anda biasanya akan
menemukan bahwa kode pada beberapa form yang berbeda perlu memanggil fungsi
atau prosedur yang sama. Sebagai contoh, dimisalkan bahwa Anda sedang menciptakan
sebuah aplikasi untuk bisnis ritel dan pada salah satu form pada aplikasi
tersebut Anda menuliskan sebuah fungsi yang menghitung pajak penjualan pada
pembelian tertentu. Selanjutnya, Anda menemukan bahwa beberapa event handler di
sejumlah form perlu memanggil fungsi yang sama. Apakah Anda menduplikasi fungsi
pajak pada tiap form yang perlu memanggilnya? Hal itu bisa saja dilakukan.
Tetapi pendekatan yang lebih baik adalah dengan menyimpan fungsi pajak
penjualan di sebuah lokasi dimana semua form dapat mengaksesnya. Kemudian, Anda
bisa mereduksi kode dupliksi, dan membuat pengembangan apliksi lebih mudah
ketika Anda ingin memodifikasi fungsi pajak penjualan tersebut. Pada Visual
Basic, lokasi semacam itu dikenal dengan modul.
Modul adalah sebuah file
Visual Basic yang hanya memuat kode. Ia hanya memuat prosedur, fungsi, dan
deklarasi variabel dan konstanta. Sembarang prosedur Public, fungsi, dan deklarasi yang ditempatkan di dalam sebuah
modul adalah berwatak global, yang berarti bahwa ia dapat diakses oleh semua
form pada projek yang sama. File modul menggunakan ekstensi .vb. Ketika sebuah
modul ditambahkan ke dalam projek, namanya akan ditampilkan pada jendela Solution Explorer bersama dengan entri-entri lain untuk file-file form.
Nama Modul dan
File Modul
Isi dari sebuah modul
diawali dengan statemen Module dan
diakhiri dengan statemen End Module. Bentuk umumnya adalah sebagai
berikut:
Module
NamaModul
[Isi Modul]
End
Module
NamaModul adalah nama dari modul. Ini dapat berupa sembarang pengenal yang valid.
Jika Anda hanya memiliki satu modul pada projek Anda, Anda sebaiknya
memberikannya nama yang dengan jelas berkaitan dengan projek tersebut. Sebagai
contoh, jika sebuah projek diberi nama Entri
Pesanan, maka modulnya bisa
diberikan nama ModulEntriPesanan.
Adalah dimungkinkan untuk memiliki sejumlah modul pada sebuah projek. Sebagai
contoh, Anda bisa memiliki satu modul yang memuat prosedur-prosedur matematika
dan modul lain yang memuat prosedur-prosedur untuk membaca informasi dari
sebuah database. Jika projek Anda memiliki sejumlah modul, berikan setiap modul
sebuah nama yang menjelaskan tujuannya.
Ketika Anda menciptakan
sebuah modul, kodenya disimpan di dalam sebuah file yang dinamai dengan
ekstensi .vb. Umumnya, nama file adalah nama sama dengan modul. Oleh karena
itu, sebuah modul dengan nama ModulEntriPesanan
disimpan dengan file ModulEntriPesanan.vb.
Lihat contoh modul
berikut. Kode berikut menunjukkan isi dari sebuah modul dengan nama MatekRitel. (Nomor baris bukan bagian
dari modul).
1
2
3
4
5
6
7
8
9
|
Module MatekRitel
'Konstanta globa untuk laju pajak
Public
Const decLAJU_PAJAK As Decimal = 0.07D
'Fungsi
PajakPenjualan menghasilkan pajak penjualan pada pembelian tertentu
Public
Function PajakPenjualan(ByVal decBeli As Decimal) As Decimal
Return decBeli * decLAJU_PAJAK
End
Function
End Module
|
Baris 23 mendeklarasikan
sebuah konstanta level-modul dengan nama decLAJU_PAJAK.
(Dikatakan level-modul karena ia tidak dideklarasikan di dalam prosedur atau
fungsi). Perhatikan bahwa deklarasi diawali dengan katakunci Public. Ini berarti bahwa konstanta tersebut
dapat diakses oleh kode di luar modul. Hasilnya, kode di sembarang form pada
projek yang sama dapat mengakses konstanta ini.
Pada baris 6 sampai baris
8, sebuah fungsi dengan nama PajakPenjualan
diberikan. Perhatikan bahwa header fungsi pada baris 6 juga diawali dengan kata
Public. Ini berarti bahwa fungsi ini
dapat dipanggil oleh kode di luar modul. Hasilnya, kode pada sembarang form
pada projek yang sama dapat memanggil fungsi ini.
Prosedur, fungsi, dan
deklarasi dapat dideklarasikan sebagai Private,
yang berarti bahwa ia dapat diakses hanya oleh kode pada modul yang sama.
Menambahkan Modul
Ikuti langkah-langkah berikut untuk menambahkan sebuah modul pada projek:
1.
Klik PROJECT
pada batang menu dan kemudian klik Add
Module. Jendela Add New Item ditampilkan pada Gambar 5.29.
Perhatikan bahwa pada gambar tersebut, nama modul adalah Module1.vb yang diberikan pada kotak teks Name. Pada contoh ini, Module1.vb
adalah nama default untuk file yang di dalamnya modul ini akan disimpan, dan Modul1 adalah nama default untuk modul.
2.
Ubah nama default yang ditampilkan pad kotak teks
Name menjadi nama yang Anda ingin berikan pada file modul baru. Sebagai contoh,
jika Anda ingin menamai modul baru tersebut dengan ModulUtama, ketikkan ModulUtama.vb
pada kotak teks Name.
3.
Klik tombol Add.
Sebuah modul kosong baru
akan ditambahkan pada projek Anda. Modul ditampilkan pada jendela Code, dan sebuah entri untuk modul baru
ini ditampilkan pada jendela Solution
Explorer. Jendela pada Gambar 5.30
ini menunjukkan dua form dan satu modul: FormUtama,
FormNutrisi, dan ModulUtama.
Setelah Anda menambahkan
sebuah modul pada projek Anda, Anda bisa menuliskan kode secara langsung
menggunakan jendela Code.
Variabel Level-Modul
Variabel yang
dideklarasikan di dalam sebuah modul, tetapi di luar sebuah fungsi atau
prosedur, dikenal sebagai variabel level-modul. Aturan-aturan yang sama tentang
skop dari variabel level-kelas di dalam sebuah form berlaku untuk variabel level-modul
di dalam sebuah modul.
- Variabel level-modul di dalam sebuah modul dapat diakses oleh prosedur atau fungsi pada modul tersebut.
- Jika variabel level-modul dideklarasikan dengan katakunci Dim atau Private, maka variabel itu tidak dapat diakses oleh statemen-statemen di luar modul. Variabel semacam itu memiliki skop modul.
- Jika variabel level-modul dideklarasikan dengan katakunci Public, maka variabel itu dapat diakses oleh statemen-statemen di luar modul.
Variabel level-modul yang
dideklarasikan Public juga dikenal
dengan variabel global karena ia dapat diakses secara global, oleh sembarang
statemen pada aplikasi.
Tutorial 5.4 memeriksa
sebuah aplikasi yang menggunakan suatu modul.
Tutorial 5.4: Memeriksa
Aplikasi yang Menggunakan Sebuah Modul
Pada tutorial ini, Anda
akan memeriksa aplikasi Konverter,
yang melakukan konversi-konversi sederhana antara unit metrik dan unit English.
Aplikasi ini memiliki tiga form dan sebuah modul yang memuat semua fungsi
konversi.
Langkah 1: Buka projek Konverter.
Langkah 2: Sebelum memeriksa kode aplikasi, Anda perlu melihat bagaimana aplikasi
ini dijalankan. Jalankan apliksi. Form utama akan ditampilkan, seperti
ditunjukkan pada Gambar 5.31.
Langkah 3: Klik pada tombol Konversi Meter.
Form Meter Ke English akan
ditampilkan, seperti ditampilkan di sisi kanan dari Gambar 5.32. Form ini
memiliki sebuah kontrol TextBox
untuk mengetikkan jumlah meter. Masukkan sebuah nilai pada TextBox, dan klik pada tombol Konversi
Ke Inci. Sebuah kotak pesan akan ditampilkan yang menunjukkan nilai inci
ekivalen. Tutup kotak pesan tersebut, dan kemudian coba klik tombol Konversi Ke Kaki dan Konversi Ke Yard. Ketika selesai, klik
pada tombol Tutup untuk menutup form Meter
Ke English.
Langkah 4: Kembali ke form utama, klik pada tombol Konversi Inci. Form Inci Ke Metrik akan
ditampilkan, seperti ditunjukkan di sisi kanan dari Gambar 5.33. Form ini
memiliki sebuah TextBox agar Anda
bisa memasukkan jumlah inci. Masukkan sebuah nilai pada TextBox, dan kemudian klik pada tombol Konversi Ke Milimeter. Sebuah kotak pesan akan ditampilkan yang
menunjukkan jumlah milimeter ekivalen. Tutup kotak pesan, dan kemudian coba
klik tombol Konversi Ke Sentimeter
dan Konversi Ke Meter. Ketika
selesai, klik tombol Tutup untuk
menutup form Inci Ke Metrik.
Langkah 5: Kembali ke form utama, klik pada tombol Keluar untuk mengakhiri aplikasi.
Langkah 6: Lihat pada Solution Explorer, seperti ditunjukkan pada
Gambar 5.34, dan perhatikan bahwa projek memiliki file-file .vb verikut:
·
FormInciKeMeter.vb:
Ini adalah file form untuk form dengan nama FormInciKeMetrik.
·
FormUtama.vb:
Ini adalah file form untuk form dengan nama FormUtama.
·
ModulMatek.vb:
Ini adalah sebuah file modul yang memuat fungsi-fungsi dan konstanta-konstanta
untuk konversi matematika.
·
FormMeterKeEnglish.vb:
Ini adalah file form untuk form dengan nama FormMeterKeEnglish.
Langkah 7: Klik ganda pada entri untuk ModulMatek.vb
pada jendela Solution Explorer. Ini akan membuka file ModulMatek.vb pada jendela Code. Isi file ditampilkan di sini,
dengan nomor baris ditambahkan untuk referensi.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
Module ModulMatek
'Konstanta-konstanta untuk faktor-faktor
konversi meter ke English
Public Const dblMETER_KE_INCI As Double =
39.37
Public Const dblMETER_KE_KAKI As Double =
3.28
Public Const dblMETER_KE_YARD As Double =
1.09
'Konstanta-konstanta untuk faktor-faktor
konversi inci ke metrik
Public Const dblINCI_KE_MM As Double =
25.4
Public Const dblINCI_KE_CM As Double =
2.54
Public Const dblINCI_KE_METER As Double =
0.0254
'Fungsi MeterKeInci menerima jumlah meter
sebagai argumennya
'dan menghasilkan jumlah inci ekivalen
sebagai nilai balik.
Public Function MeterKeInci(ByVal
dblMeter As Double) As Double
Return dblMeter * dblMETER_KE_INCI
End Function
'Fungsi MeterKeKaki menerima jumlah meter
sebagai argumennya
'dan menghasilkan jumlah kaki ekivalen
sebagai nilai balik.
Public Function MeterKeKaki(ByVal
dblMeter As Double) As Double
Return dblMeter * dblMETER_KE_KAKI
End Function
'Fungsi MeterKeYard menerima jumlah meter
sebagai argumennya
'dan menghasilkan jumlah yard ekivalen
sebagai nilai balik.
Public Function MeterKeYard(ByVal
dblMeter As Double) As Double
Return dblMeter * dblMETER_KE_YARD
End Function
'Fungsi InciKeMM menerima jumlah inci
sebagai argumennya
'dan menghasilkan jumlah milimeter
ekivalen sebagai nilai balik.
Public Function InciKeMM(ByVal dblInci As
Double) As Double
Return dblInci * dblINCI_KE_MM
End Function
'Fungsi InciKeCM menerima jumlah inci
sebagai argumennya
'dan menghasilkan jumlah centimeter
ekivalen sebagai nilai balik.
Public Function InciKeCM(ByVal dblInches
As Double) As Double
Return dblInches * dblINCI_KE_CM
End Function
'Fungsi InciKeMeter menerima jumlah inci
sebagai argumennya
'dan menghasilkan jumlah meter ekivalen
sebagai nilai balik.
Public Function InciKeMeter(ByVal dblInci
As Double) As Double
Return dblInci * dblINCI_KE_METER
End Function
End Module
|
Modul ModulMatek memuat semua kode untuk
fungsi-fungsi konversi aplikasi. Simpulan kode tersebut diberikan berikut.
Perhatikan bahwa semua konstanta dan fungsi di dalam file dideklarasikan Public, yang membuatnya dapat diakses
secara global di dalam projek.
Baris 3 sampai baris 5 mendeklarasikan sejumlah konstanta yang digunakan dalam formula-formula untuk mengkonversi meter menjadi unit-unit English.
Baris 8 sampai baris 10 mendeklarasikan sejumlah konstanta yang dipakai dalam formula-formula untuk mengkonversi inci menjadi unit-unit metrik.
Baris 3 sampai baris 5 mendeklarasikan sejumlah konstanta yang digunakan dalam formula-formula untuk mengkonversi meter menjadi unit-unit English.
Baris 8 sampai baris 10 mendeklarasikan sejumlah konstanta yang dipakai dalam formula-formula untuk mengkonversi inci menjadi unit-unit metrik.
- Fungsi MeterKeInci berada pada baris 14 sampai baris 16. Fungsi ini menerima sejumlah meter sebagai argumennya dan menghasilkan jumlah inci ekivalen sebagai nilai baliknya.
- Fungsi MeterKeKaki berada pada baris 20 sampai baris 22. Fungsi ini menerima sejumlah meter sebagai argumennya dan menghasilkan jumlah kaki ekivalen sebagai nilai baliknya.
- Fungsi MeterKeYard berada pada baris 26 sampai baris 28. Fungsi ini menerima sejumlah meter sebagai argumennya dan menghasilkan jumlah yard ekivalen sebagai nilai baliknya.
- Fungsi InciKeMM berada pada baris 32 sampai baris 34. Fungsi ini menerima sejumlah inci sebagai argumennya dan menghasilkan jumlah milimeter ekivalen sebagai nilai baliknya.
- Fungsi InciKeCM berada pada baris 38 sampai baris 40. Fungsi ini menerima sejumlah inci sebagai argumennya dan menghasilkan jumlah centimeter ekivalen sebagai nilai baliknya.
- Fungsi InciKeMeter berada pada baris 44 sampai baris 46. Fungsi ini menerima sejumlah inci sebagai argumennya dan menghasilkan jumlah meter ekivalen sebagai nilai baliknya.
Langkah 8: Sekarang, lihat bagaimana fungsi-fungsi dalam ModulMatek.vb dipanggil oleh statemen-statemen pada form-form dari
aplikasi. Buka form FormMeterKeEnglish
pada jendela Code. (Salah satu cara
melakukannya adalah dengan mengklik-kanan FormMeterKeEnglish
pada jendela Solution Explorer, dan kemudian pilih View Code dari menu popup). Gambar 5.35 menunjukkan event handler tombolKonversiKeInci_Click. Perhatikan
statemen yang memanggil fungsi MeterKeInci,
yang disimpan di dalam file ModulMatek.vb.
Gulung ke bawah untuk
melihat tombolKonversiKeKaki_Click,
yang ditampilkan pada Gambar 5.36. Perhatikan statemen yang memanggil fungsi MeterKeKaki, yang disimpan di dalam
file ModulMatek.vb.
Sekarang gulung ke bawah
untuk melihat tombolKonversiKeYard_Click,
yang ditampilkan pada Gambar 5.37. Perhatikan statemen yang memanggil fungsi MeterKeYard, yang disimpan di dalam
file ModulMatek.vb.
Langkah 9: Sekarang, lihat bagaimana fungsi-fungsi dalam ModulMatek.vb dipanggil oleh statemen-statemen pada form-form dari
aplikasi. Buka form FormInciKeMetrik
pada jendela Code. (Salah satu cara
melakukannya adalah dengan mengklik-kanan FormInciKeMetrik
pada jendela Solution Explorer, dan kemudian pilih View Code dari menu popup). Gambar 5.38 menunjukkan event handler tombolKonversiKeMiliMeter_Click.
Perhatikan statemen yang memanggil fungsi InciKeMM,
yang disimpan di dalam file ModulMatek.vb.
Gulung ke bawah untuk
melihat tombolKonversiKeSentimeter_Click,
yang ditampilkan pada Gambar 5.39. Perhatikan statemen yang memanggil fungsi InciKeCM, yang disimpan di dalam file ModulMatek.vb.
Sekarang gulung ke bawah
untuk melihat tombolKonversiKeMeter_Click,
yang ditampilkan pada Gambar 5.40. Perhatikan statemen yang memanggil fungsi InciKeMeter, yang disimpan di dalam
file ModulMatek.vb.
Gambar 5.39 Pemanggilan terhadap
fungsi InciKeCM pada event handler tombolKonversiKeSentimeter_Click
Menggunakan
Sebuah Modul Pada Lebih Dari Satu Projek
Adalah dimungkinkan untuk
menggunakan sebuah modul pada lebih dari satu projek. Sebagai contoh,
dimisalkan bahwa Anda telah menciptakan sebuah projek dengan sebuah modul yang
memuat sejumlah fungsi matematika. Kemudian, Anda mendapati bahwa diri Anda
sekarang sedang mengerjakan sebuah projek baru yang memerlukan banyak fungsi
yang sama. Daripada menuliskan fungsi-fungsi (atau menyalinnya), Anda dapat
menambahkan modul pada projek baru tersebut. Lakukan langkah-langkah berikut
untuk menambahkan sebuah modul standar yang telah ada pada suatu projek:
- Klik PROJECT pada batang menu, dan klik submenu Add Existing Item.
- Kotak dialog Add Existing Item akan ditampilkan. Gunakan kotak dialog untuk mencari file modul yang ingin Anda tambahkan pada projek. Setelah Anda menemukannya, pilih file tersebut dan klik tombol Open. Modul sekarang telah ditambahkan pada projek.
5.3 Menu
KONSEP: Visual Basic dapat dipakai untuk menciptakan sebuah sistem yang
memuat menu-menu drop-down untuk sembarang form pada aplikasi Anda.
Pada aplikasi-aplikasi
yang telah Anda pelajari sejauh ini, user melakukan pekerjaan-pekerjaan dengan
mengklik tombol-tombol. Ketika sebuah aplikasi memiliki sejumlah operasi yang
bisa dipilih oleh user dari menu, sebuah sistem menu umumnya digunakan menggantikan
tombol-tombol. Sistem menu adalah
sekumpulan perintah yang diorganisir di dalam satu atau lebih menu drop-down. Menu designer dapat Anda pakai untuk
secara visual menciptakan sebuah sistem menu yang diinginkan.
Sebelum Anda mempelajari
bagaiman menggunakan menu designer, Anda perlu belajar tentang
komponen-komponen umum dari sebuah sistem menu. Lihat Sistem Menu Contoh yang ditunjukkan pada Gambar 5.41.
Sistem menu pada gambar tersebut
memuat item-item berikut:
- Nama menu: Setiap menu drop-down memiliki nama. Nama menu dicantumkan pada sebuah strip menu yang ditampilkan tepat di bawah batang judul dari form. Nama menu pada Gambar 5.41 adalah File, Edit, dan Help. User dapat mengaktivasi sebuah menu dengan mengklik nama menu. Pada gambar, menu Edit diaktivasi. Item-item menu dapat pula ditugasi kunci-kunci akses (seperti F untuk File, E untuk Edit, dan H untuk Help). User dapat pula mengaktivasi sebuah menu dengan menekan kunci Alt + kunci aksesnya.
- Perintah menu: Menu memiliki perintah-perintah. User menyeleksi sebuah perintah dengan mengkliknya, menekan kunci aksesnya, atau menekan kunci shortcut-nya.
- Kunci shortcut: Kunci shortcut adalah sebuah kunci atau kombinasi kunci yang menyebabkan perintah menu dieksekusi. Kunci shortcut ditampilkan pada sebuah menu di sisi kanan dari perintah terkait. Sebagai contoh, pada Gambar 5.41, Ctrl + C adalah kunci shortcut untuk perintah Copy. Ini merupakan perbedaan antara kunci shortcut dan kunci akses: kunci akses dari perintah menu hanya bekerja ketika menu terbuka, tetapi kunci shortcut dapat dieksekusi kapanpun ketika form aktif.
- Perintah menu disabled: Anda dapat membuat sebuah perintah dengan status disabled ketika Anda tidak menginginkan user untuk memilihnya. Sebuah perintah disabled ditampilkan dengan huruf abu-abu dan tidak dapat diseleksi. Hal ini dilakukan dengan menetapkan properti Enabled dari perintah tertentu menjadi False. Pada Gambar 5.41, perintah Undo dibuat disabled.
- Perintah menu dicentang (checked): Sebuah perintah menu checked umumnya adalah perintah yang memiliki tanda centang di sisi kiri dari perintah, yang mengindikasikan opsi diaktifkan. Hal ini dilakukan dengan menetapkan properti Checked menjadi True. Ketika tidak ada centang ditampilkan di sisi kiri dari perintang, opsi dinonaktifkan. Pada Gambar 5.41, Autosave adalah sebuah perintah menu checked.
- Submenu:
Beberapa perintah pada sebuah menu sebenarnya nama dari sub-submenu. Anda dapat
mengatakan bahwa sebuah perintah adalah nama dari suatu submenu ketika simbol
panah kanan (
- Batang pemisah (separator bar): Batang pemisah adalah sebuah batang horisontal yang dipakai untuk memisahkan sekelompok perintah pada menu. Pada Gambar 5.41, batang pemisah dipakai untuk memisahkan perintah Copy, Cut, dan Paste menjadi satu kelompok, dan perintah Find dan Replace menjadi satu grup.
Kontrol MenuStrip
Sistem menu dari sebuah
aplikasi dikonstruksi dengan kontrol MenuStrip.
Ketika form Anda ditampilkan pada jendela Designer,
temukan bagian Menus & Toolbars
dari jendela Toolbox (Gambar 5.42) dan klik ganda pada ikon MenuStrip. Ikon MenuStrip akan ditampilkan di sisi bawah pada jendela Designer, dengan nama default MenuStrip1.
Ketika kontrol MenuStrip diseleksi, Anda akan melihat
kata Type Here ditampilkan pada
sebuah strip di atas form. Anda akan memanggilnya dengan nama menu designer, sebuah perangkat yang
dapat Anda pakai untuk secara visual mengedit isi menu. Anda hanya perlu
mengklik di sisi dalam dari strip ini dan mengetikkan nama item yang ingin Anda
tampilkan pada menu. Gambar 5.43 menunjukkan sebuah contoh dimana sebuah menu File telah ditambahkan. Seperti
ditunjukkan pada gambar, Anda dapat menugaskan kunci akses pada nama menu
dengan mengetikkan simbol & di depan karakter yang menjadi kunci akses.
Setiap kali Anda
menambahkan sebuah item pada menu pada menu designer, Anda menciptakan sebuah
objek ToolStripMenuItem. Ketika Anda
memilih sebuah objek ToolStripMenuItem,
Anda dapat melihat properti-propertinya yang dicantumkan pada jendela Properties. Teks yang Anda ketikkan
untuk item pada menu designer akan ditampilkan di dalam properti Text dari objek.
Objek ToolStripMenuItem diberikan nama
default (disimpan pada properti Name)
ketika ia diciptakan, tetapi direkomendasikan bahwa Anda perlu mengubahnya
untuk merefleksikan posisi setiap item pada hierarki sistem menu. Sebagai
contoh, lihat sketsa sistem menu pada Gambar 5.44. Tabel 5.1 mencantumkan
nama-nama yang direkomendasikan untuk objek-objek ToolStripMenuItem pada sistem menu ini, berikut dengan isi dari
properti Text masing-masing.
Tabel 5.1 Objek-objek ToolStripMenuItem
dan properti Text masing-masing
Nama ToolStripMenuItem
|
Properti Text
|
mnuFile
mnuFileSave
mnuFilePrint
mnuFileExit
mnuHelp
mnuHelpAbout
|
&File
&Save
&Print
E&xit
&Help
&About
|
Tiap nama item menu yang
dicantumkan pada Tabel 5.1 mengindikasikan di mana di dalam hierarki menu
setiap kontrol berada. Nama dari tiap objek yang berkaitan dengan
perintah-perintah pada menu File
semuanya diawali dengan mnuFile.
Sebagai contoh, perintah Save pada
menu File dinamai dengan mnuFileSave. Sama halnya, objek untuk
perintah About pada menu Help
dinamai sebagai mnuHelpAbout.
Setiap objek ToolStripMenuItem dapat merespon event.
Anda dapat menuliskan prosedur event Click
untuk objek-objek tersebut.
Bagaimana
Menggunakan Menu Designer
Setelah Anda menempatkan
kontrol MenuStrip pada form, Anda
dapat menggunakan menu designer untuk menciptakan item-item menu. Gambar 5.45
menunjukkan sebuah form dengan sebuah kontrol MenuStrip. Menu designer ditampilkan pada form pada lokasi dimana
sistem menu akan ditampilkan.
Perhatikan pada Gambar 5.45
bahwa katak Type Here ditampilkan
pada sebuah kotak kecil pada menu designer. Ini menandai posisi dari item menu
pertama. Sebuah objek ToolStripMenuItem
secara otomatis diciptakan ketika Anda mengetikkan teks ke dalam kotak
tersebut. Teks yang Anda ketikkan disimpan di dalam properti Text dan ditampilkan pada strip menu.
Gambar 5.46 menunjukkan menu designer setelah kata File diketikkan sebagai teks untuk item menu pertama.
Perhatikan bahwa menu
designer sekarang menunjukkan dua kotak Type
Here yang baru, satu di bawah dan satu lagi di sisi kanan dari objek
pertama. Anda bisa mengklik salah satu kotak tersebut untuk memilihnya, dan
kemudian mengetikkan teks yang ingin Anda tampilkan pada posisi tersebut.
Gambar 5.47 menunjukkan menu designer dengan sebuah sistem menu yang lebih sempurna. Sistem menu tersebut memiliki menu File dan Edit.
Gambar 5.48 Jendela Properties yang menunjukkan
properti-properti dari sebuah objek ToolStripMenuItem
Nama Objek
ToolStripMenuItem
Menu designer menugaskan
nama-nama default pada objek-objek ToolStripMenuItem
ketika Anda menciptakannya. Anda dapat mengubah nama dari sebuah objek item
menu dengan mengubah properti Name
pada jendela Properties. Pada Gambar
5.48, jendela Properties menunjukkan
properti-properti dari sebuah objek ToolStripMenuItem.
Perhatikan bahwa properti Name telah
diubah menjadi mnuEditCopy.
Pada buku ini, Anda
menggunakan sebuah konvensi penamaan hierarkis untuk item-item menu. Sebagai
contoh, nama-nama untuk semua entri di bahwa menu File akan diawali dengan mnuFile.
Entri-entri pada menu Edit akan
diawali dengan mnuEdit.
Kunci Shortcut
Seperti yang sebelumnya
dinyatakan, kunci shortcut adalah sebuah kunci atau kombinasi kunci yang
menyebabkan sebuah perintah menu dieksekusi. Tabel 5.2 mencantumkan sejumlah
kunci shortcut yang umum digunakan pada aplikasi Windows.
Tabel 5.2 Sejumlah kunci shortcut yang umum digunakan pada aplikasi Windows
Kunci Shortcut
|
Perintah
|
Ctrl + S
Ctrl + P
Ctrl + C
Ctrl + X
Ctrl + V
|
Save
Print
Copy
Cut
Paste
|
Kunci-kunci shortcut
ditampilkan pada sebuah menu di sisi kanan dari perintah-perintah terkait.
Untuk menciptakan sebuah kunci shortcut untuk item menu, Anda mengklik tanda
panah ke bawah yang ada di samping dari properti ShortKeys pada jendela Properties.
Sebuah kotak dialog akan ditampilkan seperti ditunjukkan pada Gambar 5.49.
Daftar drop-down kunci menunjukkan semua kunci shortcut yang disediakan, dan
dapat Anda pakai untuk memilih kunci dari daftar tersebut. Dialog tersebut juga
dapat Anda pakai untuk memilih kunci Ctrl, Shift, atau Alt (atau kombinasinya).
Sebagai contoh, jika Anda ingin menugaskan Ctrl + C sebagai sebuah kunci
shortcut, Anda perlu memilih kunci C pada daftar drop-down dan mencentang kotak
perisksa di samping Ctrl.
Anda juga perlu memastikan
bahwa properti ShowShortcut
ditetapkan True. Ketika ditetapkan False, kunci shortcut tidak akan
ditampilkan.
Item Menu Checked
Sejumlah program memiliki
item-item menu yang hanya perlu diaktifkan atau dinonaktifkan. Sebagai contoh,
dimisalkan bahwa Anda sedang menciptakan sebuah aplikasi yang berfungsi sebagai
jam alarm, dan Anda ingin user untuk mengaktifkan atau menonaktifkannya dengan
sebuah item menu. Pendekatan yang umum dilakukan adalah dengan memiliki sebuah
item menu checked untuk alarm tersebut. Ketika tanda centang ditampilkan di
samping item menu, ia mengindikasikan bahwa alarm aktif. Ketika tanda centang
tidak ditampilkan di samping item menu, ia mengindikasikan bahwa alarm tidak
aktif. Ketika user mengklik item menu, ia menukar statusnya antara on (aktif)
atau off (tidak aktif). Jenis item menu seperti ini dikenal dengan item menu
checked.
Untuk memberikan sebuah
item menu kemampuan untuk bisa dicentang atau tidak ketika ia diklik oleh user,
Anda perlu menetapkan properti CheckOnClick
menjadi True. Anda kemudian dapat
menetapkan properti Checked menjadi True atau False untuk menetapkan bagaimana item awalnya ditampilkan ketika
aplikasi dijalankan. Jika Anda menetapkan properti Checked menjadi True,
item akan ditampilkan dengan tanda centang di sampingnya. Jika Anda menetapkan
properti Checked menjadi False, tidak ada tanda centang yang
ditampilkan.
Pada kode, Anda dapat
menetapkan properti Checked untuk
menentukan apakah sebuah item menu dicentang atau tidak. Jika properti Checked ditetapkan True, maka ini berarti bahwa item dicentang. Jika properti Checked ditetapkan False, maka ini berarti bahwa item tidak dicentang. Kode berikut
menunjukkan sebuah contohnya. Kode ini menguji properti Checked dari sebuah item menu dengan nama mnuPengaturanAlarm. Jika item dicentang, maka sebuah kotak pesan
akan ditampilkan.
If
mnuPengaturanAlarm.Checked = True Then
MessageBox.Show("BANGUN!")
End If
Item Menu
Disabled
Sebuah item menu disabled
ditampilkan dengan huruf pudar. Anda dapat menonaktifkan sebuah item menu
dengan menetapkan properti Enabled
menjadi False. Sebagai contoh,
aplikasi yang menyediakan perintah Cut,
Copy, dan Paste umumnya menonaktifkan perintah Paste sampai sesuatu penyalinan (operasi cut atau copy) dilakukan.
Jadi, properti Enabled dari item
menu Paste dapat ditetapkan False pada saat perancangan (pada
jendela Properties) dan kemudian
ditetapkan True pad kode setelah
perintah Cut atau Copy digunakan. Dengan mengasumsikan
item menu Paste diberi nama mnuEditPaste, kode berikut
mengktifkannya:
mnuEditPaste.Enabled
= True
Batang Pemisah
(Separator Bar)
Anda dapat menyisipkan
batang pemisah ke dalam sebuah menu dengan salah satu dari dua cara berikut:
- Klik kanan pada item menu tertentu. Pada menu popup yang ditampilkan, pilih Insert dan kemudian pilih Separator. Batang pemisah akan disisipkan di atas item menu tersebut.
- Ketikkan simbol hypen (-) sebagai properti Text untuk item menu tersebut.
Submenu
Ketika sebuah item menu
diseleksi pada menu designer, kotak Type
Here akan ditampilkan di sisi kanannya. Gambar 5.50 menunjukkan contoh ini.
Kotak ini dapat Anda pakai untuk menciptakan sebuah item submenu. Ketika Anda
menciptakan sebuah submenu, tanda anak panah kanan (
) secara otomatis akan ditampilan di samping dari item menu
yang menjadi induk dari submenu.
Menyisipkan Item
Menu Pada Menu Yang Telah Ada
Jika Anda perlu
menyisipkan sebuah item menu baru di atas item menu yang telah ada, awali menu
designer, dan kemudian klik kanan pada item menu yang telah ada. Pada menu
popup yang ditampilkan, pilih Insert,
dan kemudian pilih MenuItem. Sebuah
item menu baru akan disisipkan di atas item menu yang telah ada. Jika Anda
ingin menyisipkan sebuah item menu baru di bawah dari sebuah item menu yang
telah ada, awali menu designer, dan pilih menu atau submenu yang diinginkan.
Sebuah kotak Type Here secara
otomatis akan ditampilkan di bawahnya.
Menghapus Item
Menu
Untuk menghapus sebuah
item menu, awali menu designer dan lakukan salah satu prosedur berikut:
·
Klik kanan pada item menu yang ingin Anda hapus.
Pada menu popup, pilih Delete.
·
Pilih item menu yang ingin Anda hapus, dan
kemudian tekan kunci Delete.
Menata Kembali
Item-Item Menu
Anda dapat memindahkan
sebuah item menu dengan mengklik dan menggeretnya. Anda hanya perlu memilihnya
pada menu designer dan menggeretnya ke lokasi yang diinginkan.
Event Click
ToolStripMenuItem
Anda tidak perlu
menuliskan kode untuk menampilkan menu atau submenu. Ketika user mengklik
sebuah item menu yang menampilkan sebuah menu atau sebuah submenu, Visual Basic
secara otomatis akan menampilkan menu atau submenu tersebut.
Jika item menu tidak
memiliki menu atau submenu yang akan ditampilkan, Anda dapat memungsikannya
dengan menyediakan sebuah prosedur event Click.
Sebagai contoh, diasumsikan bahwa sebuah sistem menu memiliki sebuah menu File dengan perintah Exit, yang mengakhiri aplikasi. Item
menu untuk perintah Exit diberi nama
mnuFileExit. Berikut adalah kode
untuk prosedur event Click untuk
objek tersebut:
Private
Sub mnuFileExit_Click(...) Handles mnuFileExit.Click
‘Menutup form
Me.Close()
End
Sub
Untuk menuliskan prosedur
event Click untuk sebuah item menu,
awali menu designer, kemudian klik ganda pada item menu yang diinginkan. Sebuah
template kode untuk prosedur event Click
akan diciptakan.
Pada Tutorial 5.5, Anda
akan belajar menggunakan menu designer dengan menciptakan sebuah sistem menu
sederhana.
Tutorial 5.5: Membangun Sebuah Menu
Pada tutorial ini, Anda menciptakan sebuah aplikasi yang mendemonstrasikan
bagaimana sebuah label ditampilkan dengan warna yang berbeda. Anda membangun
sebuah sistem sehingga user dapat memilih warna, yang kemudian diterapkan pada
sebuah kontrol Label. Gambar 5.51
menampilkan menu sistem tersebut.
Langkah 1: Ciptakanlah sebuah
projek Windows Forms Application
dengan nama Demo Menu.
Langkah 2: Ubahlah properti Text dari form menjadi Menu Demo. Tempatkan sebuah label dengan nama labelPesan pada form dan tetapkan properti Textnya menjadi “Hallo Dunia!”, seperti ditunjukkan pada Gambar 5.52.
Langkah 3: Klik ganda pada
perangkat MenuStrip pada jendela Toolbox untuk menambahkan sebuah
kontrol MenuStrip pada form.
Kontrol, yang ditampilkan di bawah form, harus diseleksi. Jika tidak,
seleksi kontrol tersebut. Menu designer sekarang dijalankan, seperti
ditunjukkan pada Gambar 5.53.
Langkah 4: Pertama, Anda
menciptakan item menu File. Pada
kotak Type Here, ketikkan &File.
Tekan kunci Enter untuk menciptakan
objek. Teks File ditampilkan pada
strip menu.
Langkah 5: Tetapkan properti Name untuk item menu yang baru saja
Anda ciptakan. Gunakan mouse untuk memilih kata File pada menu. Properti-properti dari item menu tersebut akan
ditampilkan pada jendela Properties. Ubah properti Name menjadi mnuFile.
Langkah 6: Selanjutnya, Anda akan
menciptakan item menu Keluar pada
menu File. Gunakan mouse untuk memilih kota Type Here di bawah item menu File.
Ketikkan &Keluar dan tekan Enter untuk menciptakan objek. Teks Keluar
sekarang ditampilkan pada menu File, seperti ditunjukkan pada Gambar 5.54.
Langkah 7: Selanjutnya, Anda perlu
menetapkan properti-properti untuk item menu yang baru saja Anda ciptakan.
Gunakan mouse untuk memilih kata Keluar.
Properti-properti dari item menu ini ditampilkan pada jendela Properties. Ubah properti Name menjadi mnuFileKeluar. Pada kunci shortcut
menjadi Ctrl + K.
Langkah 8: Sekarang Anda siap
untuk menambahkan item menu Warna. Pada kotak Type Here yang ditampilkan pada Gambar 5.55, ketikkan &Warna dan tekan Enter.
Langkah 9: Tetapkan properti Name untuk item menu yang baru saja
Anda ciptakan. Gunakan mouse untuk memilih kata Warna pada menu. Properti-properti dari item menu akan ditampilkan
pada jendela Properties. Ubah
properti Name menjadi mnuWarna.
Langkah 10: Selanjutnya, Anda akan
menambahkan empat menu pertama pada menu Warna.
Di bawah item menu mnuWarna,
tambahkan sebuah objek dengan teks &Merah
dan dengan properti Name adalah mnuWarnaMerah.
Di bawah objek mnuWarnaMerah,
tambahkan sebuah objek dengan teks &Hijau
dan dengan properti Name adalah mnuWarnaHijau.
Di bawah objek mnuWarnaHijau,
tambahkan sebuah objek dengan teks &Biru
dan dengan properti Name adalah mnuWarnaBiru.
Di bawah objek mnuWarnaBiru,
tambahkan sebuah objek dengan teks H&itam
dan dengan properti Name adalah mnuWarnaHitam.
Langkah 11: Ciptakan batang pemisah
dengan mengetikkan hypen (-) pada kotak Type
Here di bawah objek mnuWarnaHitam.
Langkah 12: Di bawah batang
pemisah, tambahkan sebuah objek dengan teks Visibel dan dengan properti Name
adalah mnuWarnaVisibel. Properti CheckOnClick dan properti Checked ditetapkan True. Menu Warna
sekarang menjadi seperti ditampilkan pada Gambar 5.56.
Langkah 13: Di sisi kanan dari item
menu Warna, tambahkan item menu Help dengan teks H&elp dan dengan properti Name
diberikan mnuHelp.
Langkah 14: Di bawah kata Help, tambahkan sebuah item menu dengan
teks &Tentang dan namai dengan mnuHelpTentang. Setelah selesai, menu Help akan seperti ditampilkan pada
Gambar 5.57.
Langkah 15: Sekarang Anda akan
menuliskan prosedur-prosedur event Click
untuk item-item menu, diawali dengan mnuFileKeluar.
Pada menu designer, klik ganda pada kata Keluar,
yang berada pada menu File. Jendela Code akan memuat sebuah template kode
untuk prosedur event mnuFileKeluar_Click.
Sempurnakan prosedur tersebut dengan mengetikkan kode yang ditampilkan tebal,
sebagai berikut:
Private Sub
mnuFileKeluar_Click(…) Handles mnuFileKeluar.Click
'Menutup
form
Me.Close()
End Sub
Langkah 16: Ikuti prosedur yang
sama untuk menuliskan prosedur-prosedur event untuk perintah-perintah pada menu
Warna. Kodenya diberikan sebagai
berikut:
Private Sub
mnuWarnaMerah_Click(…) Handles mnuWarnaMerah.Click
'Menetapkan
warna label menjadi merah
labelPesan.ForeColor = Color.Red
End Sub
Private Sub
mnuWarnaHijau_Click(…) Handles mnuWarnaHijau.Click
'Menetapkan
warna label menjadi hijau
labelPesan.ForeColor = Color.Green
End Sub
Private Sub
mnuWarnaBiru_Click(…) Handles mnuWarnaBiru.Click
'Menetapkan
warna label menjadi biru
labelPesan.ForeColor = Color.Blue
End Sub
Private Sub mnuWarnaHitam_Click(…)
Handles mnuWarnaHitam.Click
'Menetapkan
warna label menjadi hitam
labelPesan.ForeColor = Color.Black
End Sub
Private Sub
mnuWarnaVisibel_Click(…) Handles mnuWarnaVisibel.Click
'Membuat
label terlihat atau hilang
If mnuWarnaVisibel.Checked
= True Then
labelPesan.Visible = True
Else
labelPesan.Visible = False
End If
End Sub
Amati kode prosedur mnuWarnaVisibel_Click.
Prosedur ini menguji properti Checked
dari objek mnuWarnaVisibel untuk
menentukan apakah item menu dicentang atau tidak. Jika dicentang, user ingin
membuat label terlihat sehingga properti labelPesan.Visible
ditetapkan True. Sebaliknya,
properti labelPesan.Visible
ditetapkan False.
Langkah 17: Menu Help memiliki satu item: Tentang. Hampir semua aplikasi memiliki
perintah ini, yang menampilkan sebuah kotak dialog yang dikenal dengan kotak Tentang, yang umumnya menampilkan
informasi singkat tentang aplikasi. Tuliskan kode berikut, yang ditebalkan,
untuk prosedur event Click dari item
menu MnuHelpTentang.
Private Sub
mnuHelpTentang_Click(…) Handles mnuHelpTentang.Click
'Menampilkan sebuah kotak Tentang sederhana
MessageBox.Show("Sebuah Demo Sistem Menu Sederhana")
End Sub
Langkah 18: Simpan projek dan
jalankan. Coba untuk memilih warna yang berbeda untuk melihat bagaimana label
ditampilkan. Juga uji perintah Visibel
dan perintah Tentang. Ketika
selesai, tekan Ctrl + K untuk
mengakhiri aplikasi.
Menu Konteks
Menu konteks, atau menu
popup, ditampilkan ketika user mengklik kanan pada sebuah form atau kontrol.
Untuk menciptakan sebuah menu konteks, Anda perlu menambahkan kontrol ContextMenuStrip pada form. Anda
melakukannya dengan sama seperti menambahkan kontrol lain: klik ganda pada ikon
ContextMenuStrip pada jendela Toolbox. Sebuah kontrol ContextMenuStrip kemudian diciptakan di
bawah form. Kontrol semacam itu yang pertama akan memiliki nama default ContextMenuStrip1, yang kedua akan
memiliki nama default ContextMenuStrip2,
dan seterusnya.
Setelah Anda menambahkan
sebuah kontrol ContextMenuStrip pada
form, Anda memilihnya dan kemudian menambahkan item-item menggunakan menu
designer, sama seperti yang Anda lakukan pada menu biasa. Setelah Anda
membangun menu konteks, Anda menambahkan prosedur Click untuk setiap item menunya. Kemudian, Anda melekatkan menu
konteks dengan sebuah kontrol dengan menetapkan properti ContextMenuStrip dari kontrol tersebut menjadi nama dari kontrol ContextMenuStrip. Pada saat aplikasi dijalankan,
menu konteks akan ditampilkan ketika user mengklik kanan pada kontrol terkait.
Sebagai contoh, Gambar 5.58 menunjukkan sebuah menu konteks yang ditampilkan
ketika user mengklik kanan pada kontrol Label.
5.4 Fokus Pada
Penyelesaian Permasalahan: Membangun Aplikasi Agen Travel
KONSEP: Pada bagian ini, Anda akan membangun sebuah aplikasi untuk agen
perjalanan petualangan. Aplikasi ini menggunakan beberapa form, sebuah modul,
dan sebuah sistem menu.
Agen Perjalanan
Petualangan menawarkan dua paket untuk konsumennya:
- Petualangan Scuba: Paket ini menawarkan enam hari di Raja Ampat dengan pelajaran-pelajaran scuba. Harga untuk paket ini adalah Rp. 30 juta per orang.
- Petualangan Sky Dive: Paket ini menawarkan pelajaran-pelajaran sky diving selama enam-hari dengan menginap di hotel mewah. Harga untuk paket ini adalah Rp. 25 juta per orang.
Agen perjalanan ini
memberikan diskon 10% untuk grup yang terdiri-dari lima orang atau lebih. Anda
akan diminta untuk menciptakan sebuah aplikasi untuk menghitung biaya untuk
setiap paket.
Pada Tutorial 5.6, Anda
akan menciptakan sebuah aplikasi yang memiliki form-form dan modul berikut:
Form FormUtama adalah form startup dari aplikasi. Ia menyediakan sebuah menu yang dapat dipakai user untuk memilih salah satu paket yang ditawarkan.
Form FormUtama adalah form startup dari aplikasi. Ia menyediakan sebuah menu yang dapat dipakai user untuk memilih salah satu paket yang ditawarkan.
- Form FormScuba akan menghitung harga dari paket petualangan scuba.
- Form FormSkyDive akan menghitung harga dari paket petualangan sky dive.
- ModulHitungHarga akan memuat konstanta-konstanta global dan sebuah fungsi yang dipakai untuk menghitung diskon oleh FormScuba dan FormSkyDive.
Form FormUtama
Form FormUtama ditampilkan pada Gambar 5.59. Foto pantai ditampilkan
pada form. Anda menampilkan citra ini pada sebuah kontrol PictureBox. Perhatikan bahwa form juga memiliki sebuah kontrol MenuStrip. Gambar 5.60 menampilkan
sistem menu, berikut dengan tiap nama yang ditugaskan kepada setiap kontrol MenuItem.
Berikut adalah simpulan
dari aksi-aksi yang dilakukan oleh kontrol-kontrol MenuItem:
- Ketika user mengklik item mnuFileExit, aplikasi akan berakhir.
- Ketika user mengklik item mnuPaketScuba, sebuah instansi dari FormScuba akan ditampilkan. Form FormScuba akan menghitung harga dari paket perjalanan petualangan scuba.
- Ketika user mengklik item mnuPaketSkyDiving, sebuah instansi dari FormSkyDive akan ditampilkan. Form FormSkyDive akan menghitung harga dari paket perjalanan petualangan sky dive.
- Ketika user mengklik item mnuHelpAbout, sebuah kotak About sederhana akan ditampilkan.
Form FormScuba
Gambar 5.61 menunjukkan
form FormScuba dan menampilkan
nama-nama yang akan ditugaskan kepada sejumlah kontrol pada form. Ketika Anda
menciptakan kontrol labelDiskon dan labelTotal, Anda akan menetapkan
properti AutoSize menjadi False dan properti BorderStyle menjadi FixedSingle.
Berikut adalah simpulan aksi-aksi yang dilakukan kontrol-kontrol Button:
- Tombol tombolHitungTotal akan menggunakan nilai yang dimasukkan pada kontrol teksBanyakOrang untuk menghitung dan menampilkan diskon (jika ada) dan total biaya untuk petualangan scuba.
- Tombol tombolReset akan membersihkan kotak teks dan label, dan memberikan fokus pada teksBanyakOrang.
- Tombol tombolKeluar akan menutup form.
Form FormSkyDive
Gambar 5.62 menunjukkan
form FormSkyDive dan menampilkan
nama-nama yang akan ditugaskan kepada sejumlah kontrol pada form. Ketika Anda
menciptakan kontrol labelDiskon dan labelTotal, Anda akan menetapkan
properti AutoSize menjadi False dan properti BorderStyle menjadi FixedSingle.
Berikut adalah simpulan aksi-aksi yang dilakukan kontrol-kontrol Button:
- Tombol tombolHitungTotal akan menggunakan nilai yang dimasukkan pada kontrol teksBanyakOrang untuk menghitung dan menampilkan diskon (jika ada) dan total biaya untuk petualangan sky dive.
- Tombol tombolReset akan membersihkan kotak teks dan label, dan memberikan fokus pada teksBanyakOrang.
- Tombol tombolKeluar akan menutup form.
Tutorial 5.6: Membangun Aplikasi Agen
Perjalanan Petualangan
Langkah 1: Ciptakanlah sebuah
projek Windows Forms Application
baru dengan nama Agen Perjalanan
Petualangan.
Langkah 2: Ubah nama dari Form1
menjadi FormUtama.
Langkah 3: Tempatkan sebuah
kontrol MenuStrip pada form dan
ciptakan objek-objek MenuItem
seperti ditunjukkan pada Gambar 5.60. Acu nama-nama dari objek-objek MenuItem dan teks yang ditampilkan oleh
setiap objek.
Langkah 4: Tempatkan sebuah
kontrol PictureBox pada FormUtama. Gunakan file citra yang
disediakan.
Langkah 5: Ciptakan form FormScuba dan tempatkan padanya
kontrol-kontrol yang ditampilkan pada Gambar 5.61. Acu nama-nama dari
objek-objek MenuItem dan teks yang
ditampilkan oleh setiap objek. Ketika Anda menciptakan kontrol labelDiskon dan labelTotal, tetapkan properti AutoSize
menjadi False dan properti BorderStyle menjadi FizedSingle.
Langkah 6: Ciptakan form FormSkyDive dan tempatkan padanya
kontrol-kontrol yang ditampilkan pada Gambar 5.61. Acu nama-nama dari
objek-objek MenuItem dan teks yang
ditampilkan oleh setiap objek. Ketika Anda menciptakan kontrol labelDiskon dan labelTotal, tetapkan properti AutoSize
menjadi False dan properti BorderStyle menjadi FizedSingle.
Langkah 7: Ciptakanlah sebuah
modul dengan nama ModulHitungHarga.vb.
Gunakan jendela Code untuk
menuliskan kode berikut di dalam modul.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Module
ModulHitungHarga
'Konstanta-konstanta global
Public Const g_intMINIMUM_UNTUK_DISKON As Integer = 5
Public Const g_decPERSEN_DISKON As Decimal = 0.1D
'Fungsi HitungDiskon menerima sebuah total paket sebagai
'argumennya dan menghasilkan jumlah diskon dari
'total tersebut
Public Function HitungDiskon(decTotal As Decimal) As Decimal
Dim decDiskon As Decimal 'untuk menampung diskon
'menghitung diskon
decDiskon = decTotal * g_decPERSEN_DISKON
'menghasilkan (menjadikan nilai balik)
Return decDiskon
End
Function
End Module
|
Lihat kode di dalam modul lebih dekat. Baris 3 mendeklarasikan sebuah
konstanta integer global dengan nama g_intMINIMUM_UNTUK_DISKON.
Konstanta ini akan dipakai untuk jumlah orang minimum yang disyaratkan untuk
diskon. Baris 4 mendeklarasikan sebuah konstanta Decimal dengan nama g_decPERSEN_DISKON.
Ia akan dipakai untuk persentase diskon.
Baris 10 sampai baris 18 menunjukkan sebuah fungsi publik dengan nama HitungDiskon. Fungsi ini menerima biaya
total paket sebagai argumen. Baris 14 menghitung diskon dari biaya tersebut,
dan pada baris 17 menghasilkan (menjadikan nilai balik) diskon. Fungsi ini akan
dipanggil oleh statemen-statemen pada form FormScuba
dan FormSkyDive.
Langkah 8: Sekarang Anda akan
menuliskan tiga event handler untuk form FormScuba.
Buka form FormScuba pada jendela Designer dan ciptakan template kode
untuk tombol tombolHitungTotal, tombolReset, dan tombolKeluar. Berikut menunjukkan kode form yang diperlukan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
Public
Class FormScuba
Private Sub tombolHitungTotal_Click(…) Handles
tombolHitungTotal.Click
'konstanta untuk harga per orang untuk paket ini
Const decHARGA_SCUBA_PER_ORANG As Decimal = 30000000D
'variabel lokal
Dim intBanyakOrang As Integer 'banyak orang
Dim decDiskon As Decimal
'jumlah diskon
Dim decTotal As Decimal 'biaya total
Try
'membaca banyak orang
intBanyakOrang = CInt(teksBanyakOrang.Text)
'menghitung total sebelum diskon diterapkan
decTotal = intBanyakOrang * decHARGA_SCUBA_PER_ORANG
'menentukan apakah diskon dapat diberikan atau tidak
If intBanyakOrang >= g_intMINIMUM_UNTUK_DISKON Then
'menghitung jumlah diskon
decDiskon =
HitungDiskon(decTotal)
'mengurangkan diskon dari
total
decTotal = decTotal -
decDiskon
Else
'diskon Rp. 0.
decDiskon = 0D
End If
'menampilkan hasil
labelDiskon.Text = "Rp. " & decDiskon.ToString()
labelTotal.Text = "Rp. " & decTotal.ToString()
Catch ex As Exception
'pesan error untuk masukan tak valid
MessageBox.Show("Masukkan integer valid untuk banyak
orang.")
End Try
End Sub
Private Sub tombolReset_Click(…) Handles tombolReset.Click
'membersihkan kotak teks dan label
teksBanyakOrang.Clear()
labelDiskon.Text = String.Empty
labelTotal.Text = String.Empty
'mengatur fokus
teksBanyakOrang.Focus()
End Sub
Private Sub tombolKeluar_Click(…) Handles tombolKeluar.Click
'menutup form
Me.Close()
End Sub
End Class
|
Lihat kode lebih dekat. Pada event handler tombolHitungTotal_Click, baris 5 mendeklarasikan konstanta decHARGA_SCUBA_PER_ORANG untuk
merepresentasikan harga dari paket scuba, per orang. Baris 8 mendeklarasikan
variabel intBanyakOrang untuk memuat
banyak orang dalam paket. Baris 9 mendeklarasikan variabel decDiskon untuk memuat jumlah diskon, jika diberikan. Baris 10
mendeklarasikan variabel decTotal
untuk memuat biaya total.
Sebuah statemen Try-Catch
diawali pada baris 12. Di dalam blok try, baris 14 membaca nilai yang
dimasukkan oleh user pada kontrol teksBanyakOrang,
mengkonversinya menjadi sebuah integer, dan menugaskan hasilnya kepada variabel
intBanyakOrang. Jika user memasukkan
nilai tak valid, sebuah eksepsi akan dilemparkan dan program akan melompat ke
statemen Catch pada baris 34. Jika
itu terjadi, pesan error akan ditampilkan pada baris 36 dan prosedur berakhir.
Jika nilai yang dimasukkan oleh user adalah sebuah integer yang valid,
maka biaya total dari perjalanan dihitung pada baris 17 dan ditugaskan kepada
variabel decTotal. Kemudian statemen
If…Then pada baris 20 menentukan
apakah terdapat lima orang atau lebih dalam kelompok atau tidak. Jika ya, maka
fungsi HitungDiskon (yang disimpan
di dalam modul) dipanggil pada baris 22 untuk mendapatkan jumlah diskon. Nilai
yang dihasilkan dari fungsi ini ditugaskan kepada decDiskon. Kemudian diskon dikurangkan dari total pada baris 25.
Jika terdapat kurang dari lima orang di dalam kelompok, statemen pada baris 28
akan menetapkan decDiskon sebesar 0.
Baris 32 menampilkan jumlah diskon pada kontrol labelDiskon, dan baris 33 menampilkan biaya total pada kontrol labelTotal.
Event handler tombolReset_Click
membersikan setiap properti Text
dari teksBanyakOrang, labelDiskon, dan labelTotal pada baris 42 sampai baris 44, dan kemudian memberikan
fokus pada kontrol teksBanyakOrang
pada baris 47. Event handler btnKeluar_Click
menutup form.
Langkah 9: Sekarang Anda akan
menuliskan tiga event handler untuk form FormSkyDive.
Buka form FormSkyDive pada jendela Designer dan ciptakan template kode
untuk tombol tombolHitungTotal, tombolReset, dan tombolKeluar. Berikut menunjukkan kode form yang diperlukan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
Public
Class FormSkyDive
Private Sub tombolHitungTotal_Click(…)
Handles tombolHitungTotal.Click
'konstanta untuk harga per orang untuk paket ini
Const decHARGA_SKYDIVE_PER_ORANG As Decimal = 25000000D
'variabel lokal
Dim intBanyakOrang As Integer 'banyak orang
Dim decDiskon As Decimal
'jumlah diskon
Dim decTotal As Decimal
'biaya total
Try
'membaca banyak orang
intBanyakOrang = CInt(teksBanyakOrang.Text)
'menghitung total sebelum diskon diterapkan
decTotal = intBanyakOrang * decHARGA_SKYDIVE_PER_ORANG
'menentukan apakah diskon dapat diberikan atau tidak
If intBanyakOrang >= g_intMINIMUM_UNTUK_DISKON Then
'menghitung jumlah diskon
decDiskon =
HitungDiskon(decTotal)
'mengurangkan diskon dari
total
decTotal = decTotal -
decDiskon
Else
'diskon Rp. 0.
decDiskon = 0D
End If
'menampilkan hasil
labelDiskon.Text = "Rp. " & decDiskon.ToString()
labelTotal.Text = "Rp. " & decTotal.ToString()
Catch ex As Exception
'pesan error untuk masukan tak valid
MessageBox.Show("Masukkan integer valid untuk banyak
orang.")
End Try
End Sub
Private Sub tombolReset_Click(…) Handles
tombolReset.Click
'membersihkan kotak teks dan label
teksBanyakOrang.Clear()
labelDiskon.Text = String.Empty
labelTotal.Text = String.Empty
'mengatur fokus
teksBanyakOrang.Focus()
End Sub
Private Sub tombolKeluar_Click(…) Handles
tombolKeluar.Click
'menutup form
Me.Close()
End Sub
End Class
|
Kode ini sangat mirip dengan kode yang dituliskan pada Langkah 8, tetapi
akan dijelaskan sekali lagi. Pada event handler tombolHitungTotal_Click, baris 5 mendeklarasikan konstanta decHARGA_SKYDIVE_PER_ORANG untuk
merepresentasikan harga dari paket scuba, per orang. Baris 8 mendeklarasikan
variabel intBanyakOrang untuk memuat
banyak orang dalam paket. Baris 9 mendeklarasikan variabel decDiskon untuk memuat jumlah diskon, jika diberikan. Baris 10
mendeklarasikan variabel decTotal
untuk memuat biaya total.
Sebuah statemen Try-Catch
diawali pada baris 12. Di dalam blok try, baris 14 membaca nilai yang
dimasukkan oleh user pada kontrol teksBanyakOrang,
mengkonversinya menjadi sebuah integer, dan menugaskan hasilnya kepada variabel
intBanyakOrang. Jika user memasukkan
nilai tak valid, sebuah eksepsi akan dilemparkan dan program akan melompat ke
statemen Catch pada baris 34. Jika
itu terjadi, pesan error akan ditampilkan pada baris 36 dan prosedur berakhir.
Jika nilai yang dimasukkan oleh user adalah sebuah integer yang valid,
maka biaya total dari perjalanan dihitung pada baris 17 dan ditugaskan kepada
variabel decTotal. Kemudian statemen
If…Then pada baris 20 menentukan
apakah terdapat lima orang atau lebih dalam kelompok atau tidak. Jika ya, maka
fungsi HitungDiskon (yang disimpan
di dalam modul) dipanggil pada baris 22 untuk mendapatkan jumlah diskon. Nilai
yang dihasilkan dari fungsi ini ditugaskan kepada decDiskon. Kemudian diskon dikurangkan dari total pada baris 25.
Jika terdapat kurang dari lima orang di dalam kelompok, statemen pada baris 28
akan menetapkan decDiskon sebesar 0.
Baris 32 menampilkan jumlah diskon pada kontrol labelDiskon, dan baris 33 menampilkan biaya total pada kontrol labelTotal.
Event handler tombolReset_Click
membersikan setiap properti Text
dari teksBanyakOrang, labelDiskon, dan labelTotal pada baris 42 sampai baris 44, dan kemudian memberikan
fokus pada kontrol teksBanyakOrang
pada baris 47. Event handler btnKeluar_Click
menutup form.
Langkah 10: Sekarang Anda akan
menuliskan beberapa evant handler untuk form FormUtama. Buka form FormUtama
pada jendela Designer dan ciptakan
template kode untuk setiap objek MenuItem.
Berikut menunjukkan kode form ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Public
Class FormUtama
Private Sub mnuFileExit_Click(…) Handles
mnuFileExit.Click
'menutup form
Me.Close()
End Sub
Private Sub mnuPaketScuba_Click(…)
Handles mnuPaketScuba.Click
'menciptakan sebuah instansi dari FormScuba
Dim frmScuba As New FormScuba
'menampilkan FormScuba dengan gaya modal
frmScuba.ShowDialog()
End Sub
Private Sub mnuPaketSkyDiving_Click(…)
Handles mnuPaketSkyDiving.Click
'menciptakan sebuah instansi dari FormSkyDive
Dim frmSkyDive As New FormSkyDive
'menampilkan FormSkyDive dengan gaya modal
frmSkyDive.ShowDialog()
End Sub
Private Sub mnuHelpAbout_Click(…) Handles
mnuHelpAbout.Click
'menampilkan kotak About sederhana
MessageBox.Show("Aplikasi Agen Perjalanan Petualangan Versi
1.0")
End Sub
End Class
|
Lihat kode lebih dekat. Pada event handler mnuFileExit_Click, baris 5 menutup form, dan mengakhiri aplikasi.
Pada event handler mnuPaketScuba_Click,
baris 10 menciptakan sebuah instansi dari form FormScuba di dalam memori dan menugaskan alamatnya kepada variabel frmScuba. Baris 13 menampilkan form di
layar dengan gaya modal.
Pada event handler mnuPaketSkyDiving_Click,
baris 18 menciptakan sebuah instansi dari form FormSkyDive di dalam memori dan menugaskan alamatnya kepada
variabel frmSkyDive. Baris 21
menampilkan form di layar dengan gaya modal.
Pada event handler mnuHelpAbout,
baris 26 menampilkan sebuah kotak pesan sebagai sebuah kotak About.
Langkah 11: Simpan projek dan
jalankan aplikasi. Pastikan bahwa semua menu bekerja dengan baik, dan coba
pelbagai banyak orang yang berbeda untuk setiap paket untuk memastikan bahwa
perhitungan dilakukan dengan benar.
No comments:
Post a Comment