Jumat, 19 Oktober 2012

Tugas Visual Basic 2


Tugas Pemprograman Visual Basic 2
Program 1
1.       Apa yang menyebabkan error pada Btalamat1_Click baris program “alamat=Kuningan”?
jawab :
Muncul pesan error Constant Cannot Be The Target Of The Assignment. Yang artinya konstanta tersebut bukan target dari alamat=kuningan, dimana nilai dari konstanta tidak bisa dirubah-rubah. Sebelumnya pada saat pendeklarasian konstanta sudah ada value atau nilai. Yang codenya Const alamat=”Kuningan”jadi tidak usah ada pengulangan pemberian nilai, atau pemberian nilai alamat=”Kuningan” pada Btalamat1_Click dijadikan komentar saja yaitu dengan menambahkan tanda petik didepan kata alamat=”Kuningan”.
Konstanta tersebut diletakan dibawah class langsung yang artinya ia bisa dikenali di class tersebut oleh berbagai komponen.
Selain dengan konstanta, ia bisa juga dirubah menjadi variabel lokal yaitu Dim alamat as string = “Kuningan” yang ditempatkan dibawah class langsung atau tidak masuk ke komponen lain.Jadi semua komponen didalam class tersebut bisa memanggil nilai tersebut.

2.       Kenapa saat ditekan tombol nama 1 dan nama 2 yang ditampilkan pada textbox nama berbeda sedangkan saat ditekan tombol alamat 1 dan alamat 2 yang ditampilkan pada textbox alamat sama ?
Jawab :
Nama 1 : Nandang
Nama 2 : Nandang Hermanto
Karena Nama 1 itu menggunakan variabel dim yang ditempatkan pada nama 1 saja yang artinya hanya dikenali disitu saja (hanya variabel lokal) sedang nama 2 dia hanya memanggil value dari nama dan ia langsung mengambil dari module, yang pendeklarasiannya menggunakan Public Const nama As String =” Nandang Hermanto” sehingga ia bisa dikenali oleh semua komponen dalam class tersebut asal penulisan nama variabelnya sama. Beda lagi kalau pendeklarasian variabel Dim nama As String =”Nandang” diletakan di bawah class langsung maka baik nama 1 ataupun alamat 2 ia akan tetap menampilkan Nandang karna prinsipnya dia akan memanggil yang paling terdekat.

Alamat 1 : Kuningan
Alamat 2 : Kuningan
Karena kedua-duanya mengambil value yang terdekat yaitu yang terdeklarasi di dalam classnya sendiri yaitu Const alamat =”Kuningan”. Jadi tidak usah ngambil nilai dari module.


3.       Kenapa saat ditekan tombol tambah umur 1 selalu keluar angka 1 sedangkan saat ditekan tombol tambah umur 2 selalu bertambah satu dari umr sebelumnya ?
Jawab :
Karena tombol tambah umur 1 menggunakan variabel lokal dim, yang kodenya seperti berikut
Dim umur as integer
Umur+=1
Txtumur.text=umur

Code diatas mempunyai arti dimana umur dideklarasikan dengan nilai awal 1 dan ia tidak akan menambahkan dirinya alias akan selalu tetap. Atau sama saja Dim umur As Integer = 1

Karna tombol tambah 2 memakai static. Yang artinya ia akan selalu menambahkan dirinya sesuai incremennya berapa selama program dijalankan / nilainya tidak akan hilang selama program berjalan.

4.       Analisa form2
Jawab :
Form 2 bisa dipanggil dengan mengklik tombol show form 2 pada form 1 dengan mengisi codenya yaitu FrmDua.ShowDialog(). Pada saat form 2 kebuka, form 1 masih tetap ada dan jika kita pilih tombol tutup maka hanya form 2 saja yang di tutup. Tampilan form 2 seperti dibawah ini
Didalam form 2 ada kotak isian nama, alamat dan umur. Yang didalam code masing-masing komponen berisikan code seperti ini
 
Jadi didalam btnama / btalamat / btumur ia hanya memanggil nama variabel nya saja. Dan value nya terdapat di module yang pendeklarasiannya menggunakan public, sehingga nama variabel tersebut bisa dikenali di form 2. Codenya seperti berikut

 
Sebelumnya pada code editor form 2 ada Option Explisit Off, artinya tidak mengharuskan variabel dipesan terlebih dahulu / secara implisit (tidak langsung / tersirat)
Pada module, pendeklarasian konstanta langung diberi valuenya.

Program 2 If-Case
Kelemahan program if-case serta perbaikan
Jawab :
1.       Tidak usah ada penambahan items TAS pada combobox, sehingga pada code nya tidak perlu else case. Karna memang barang yang ditawarkan Cuma ada empat buah
2.       Pada code txtjumlah_TextChanged sebaiknya tidak perlu di isi txtbayar, karna pada saat kita mengisikan angka pada kotak jumlah tsb maka otomatis kotak bayar terisi dengan harga yang belum akhir alias belum diketahui cara beli dan ada diskonnya atau tidak. Jadi lebih baik, pada txtjumlah_textChanged code txtbayar jangan ada. Code txtbayar bisa diisikan pada radio button tunai dan kredit.
3.       Kalau mau memilih kode yang lain dengan jumlah barang yang sama, kita tidak langsung memilih cara beli tetapi kita harus mengisi ulang. Karena event yang digunakan adalah TextChanged, artinya dia akan merespon setelah diisi sehingga nilai yang dihasilkan juga benar. Kalau kita langsung memilih cara beli tanpa mengisi ulang jumlah barang maka nilai yang dihasilkan adalah nilai yang sebelumnya.
4.       Jika kita klik tombol clear, kotak-kotak isian pada form tersebut tidak langsung bersih. Ada kotak isian diskon dan total bayar yang belum bersih atau masih ada angka 0 dan untuk menghilangkan angka 0 tersebut kita harus mengklik tombol clear lagi.
5.       Kalau kita mengklik tombol tutup maka langsung menutup, seharusnya ada konfirmasi penutupan form. Sehingga jika kita tidak sengaja memencet tombol tutup bisa di cancel. Solusinya tinggal tambah codenya seperti ini

Contoh tampilan perbaikan






Tidak ada komentar:

Posting Komentar