Pada
pembahasan kali ini, saya akan menjabarkan beberapa hasil analisa mengenai
Program If dan Case yang sudah ditentukan oleh Pak Nandang. Sebagai gambaran,
Wujud Program tersebut adalah sebagai berikut
Untuk kodingnya adalah sebagai berikut
Selain membuat Form Satu, saya juga membuat Form Dua.
Form ini adalah objek yang nantinya dipanggil oleh Form Satu melalui tombol
Show Form Dua Berikut tampilan dan kode sumbernya
Setelah
membuat kedua form di atas saya juga membuat module sebagai tempat beberapa
variable yang digunakan oleh kedua form tersebut, berikut kode sumbernya
Nah selain melakukan langkah-langkah di atas,
masalah sebenarnya adalah sebagai berikut:
- Apa yang menyebabkan program error pada btalamat1_Click baris program alamat=”Kuningan”?
- Kenapa saat ditekan tombol nama 1 dan nama 2 nama yang ditampilkan pada textbox nama berbeda sedangkan saat ditekan tombol alamat 1 dan alamat 2 alamat yang ditampilkan pada textbox alamat sama?
- Kenapa saat ditekan tombol tambah umur 1 umur selalu keluar angka 1 sedangkan saat ditekan tombol tambah umur 2 umur selalu bertambah 1 dari umur sebelumnya?
- Berikan analisa terhadap Form Dua!
PERSOALAN PERTAMA
Ketika program dijalankan, faktanya program
mengalami kesalahan dan terpaksa program dihentikan. Jika kita lihat pada
bagian Error List, di sana compiler mengatakan bahwa “Constant cannot be the
target of an assignment”. Error list tersebut bisa diartikan bahwa nilai
konstanta tidak bisa dirubah nilainya dengan cara pemberian nilai layaknya kita
memberi nilai pada variabel biasa.
Coba
lihat bagian yang dilingkari merah berikut ini
Terlihat
di atas bahwa variabel “alamat” sudah dideklarasikan sebagai konstanta, tetapi
pada Btalamat1_Click “alamat” diisi dengan nilai lagi dengan cara
assignment(=). Jelas saja hal tersebut tidak diijinkan dan menyebabkan error
pada program Form Satu, karena konstanta tidak boleh diganti nilaianya.
Untuk mengatasi hal tersebut, salah
satunya adalah dengan cara menghapus statemen “alamat=Kuningan” pada bagian
Btalamat1_Click.
PERSOLAN KEDUA
Letak
permasalahan mengapa tombol nama 1 dan nama 2 mengeluarkan nama yang berbeda
adalah pada cara pendeklarasian variablenya. Coba perhatikan ini
Jadi
sudah pasti kedua tombol itu (Nama 1 dan Nama 2) mengeluarkan nilai yang
berbeda karena sumber nilainya pun berbeda.Yang satu berasal dari Metode Btnama1_Click
sementara yang lainnya berasal dari module.
Sementara untuk masalah alamat, ada
hubungannya dengan pemecahan masalah pertama (menonaktifkan alamat=”Kuningan”
yang ada pada Btalamat1_Click. Pemecahan masalah tersebut membuat perintah
txtalamat.Text=alamat mengacu pada Const alamat=”Kuningan” yang ada pada bagian
pendeklarasian Class frmsatu. Di sisi lain, perintah txtalamat.Text=alamat pada Btalamat2_Click juga mengacu pada Const
alamat=”Kuningan”, sehingga sudah pasti tombol alamat 1 dan alamat 2 memberikan
hasil yang sama.
Btalamat1_Click
dan Btalamat2_Click tidak perlu mengambil nilai alamat yang ada pada module,
karena pada prinsipnya methode akan mengambil nilai dari variabel yang dituju
dan yang terdekat dengan methode tersebut.
PERSOALAN KETIGA
Penyebab
terjadinya kasus ketiga ini (kasus bertambah atau tidaknya nilai umur) adalah
pada sifat variabel yang digunakan walaupun keduanya terdapat increment yang
sama persis.
Pada
bagian Btambahumur1_Click, variabel umur bersifat tidak statis sehingga ketika
tombol Tambah Umur 1 ditekan maka
nilai umur pun selalu diulangi dari awal yaitu 0, tetapi karena perintah
umur+=1 maka umur akan bernilai 1.
Lain
halnya pada Btalamat2_Click, variabe umur bersifat statis sehingga ketika
tombol Tambah Umur 2 ditekan maka
nilai umur tidak akan kembali lagi ke awal melainkan akan bertambah, jadi
semakin banyak menekan tombol Tambah
Umur 2 maka akan semakin bertambah pula nilai umurnya.
·
Analisa Terhadap Form Dua
Pada Form Dua jika dianalisisi terdapat beberapa hal
yang dirasa ganjil. Di sini saya akan membahasnya satu persatu
1. Penggunaan ShowDialog() untuk
memanggil Form Dua
Penggunaan
Methode ShowDialog() untuk memanggil Form Dua akan mengakibatkan munculnya Form
Dua tetapi Form Satu tidak bisa dioperasikan sama sekali sebelum Form Dua ini
ditutup. Bisa dibilang Form Satu hanya tampak tetapi tidak berfungsi. Untuk
sebagian kasus metode ini sangat berguna, tetapi untuk kasus kali ini metode
tersebut tidak layak digunakan karena sesekali kita butuh untuk mengoperasikan
Form Satu dan Form Dua bersamaan. Jadi pada kasus ini sebaiknya menggunakan
methode Show() untuk memanggil Form Dua. Methode Show() masih mengijinkan kita
mengoperasikan Form Satu dan Form Dua bersamaan.
2. Isi textbox masih bisa diubah/diketik
ketika program dijalankan
Isi textbox yang
masih bisa diubah-ubah dengan cara diketikkan melalui keyboard ketika program
dijalankan dalam kasus ini dianggap kurang tepat guna. Hal itu dikarenakan
dalam program kali ini fungsi textbox hanya untuk menampilkan nilai-nilai yang
ada pada tombol sehingga sebaiknya properti semua textbox untuk ReadOnly-nya
diaktifkan ke mode true.
3.
Semua
Variable mengacu pada satu Module
4.
Tombol
tambah umur tidak berfungsi untuk melakukan increment
Tombol tambah
umur tidak berfungsi untuk melakukan increment dikarenakan kode sumber yang ada
dalam tombol umur tidak mengandung perintah increments
5.
Tombol
tutup sebaiknya bisa meminta konfirmasi sebelum program bena-benar keluar
Kenyataannya
tombol keluar yang ada tidak mengandung permintaan konfirmasi untuk keluar.
6.
StartPosition
pada properties Form sebaiknya dibuat CenterScreen dan MaximizeBox dibuat False
Tidak ada komentar:
Posting Komentar