look at me

SELAMAT DATANG MAS, MBAK, OM, TANTE, PAKDHE,BUDHE DAN SEMUANYA

Minggu, 21 Oktober 2012

Analisis Aplikasi Praktikum 2(Program Nama, Alamat, Umur)


       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

 


Pada Btnama1_Click (yang dilingkari warna merah) di sana dideklarasikan sebuah variable “nama” bertipe String dan bernilai “Nandang” tetapi sayangnya variabel nama bersifat lokal sehingga hanya bisa dikenali oleh Btnama_Click saja. Sedangkan untuk Btnama2_Click justru menggunakan variabel nama yang ada di dalam module karena di dalam Btnama2_Click ataupun di dalam deklarasi Class frmsatu(Form Satu) tidak dideklarasikan variabel nama. Di sisi lain di dalam module, nama bernilai “Nandang Hermanto”. 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