Sabtu, 20 Oktober 2012

TUGAS 2 PEMROGRAMAN VISUAL

Assalamu'alaikum...
Pada hari ini, saya akan menjawab sekaligus menganalisa soal dari dosen saya Pak Nandang mengenai kesalahan error pada visual basic 2010. Langsung saja ya..

Jawaban Latihan 1 soal no 3
a.) Yang menyebabkan program error pada btalamat1_Click baris program alamat="Kuningan " karena sudah terdapat konstanta yang terletak di Public Class frmsatu yaitu Const alamat="Kuningan", kemudian tidak dideklarasikan varabel Dim di dalam btalamat1_Click. Maka source code perbaikannya seperti ini:  

Private Sub btalamat1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btalamat1.Click
        Dim alamat As String
        alamat = "kuningan"
        txtalamat.Text = alamat
    End Sub

b.) Tombol Nama1 dan Nama2 jika ditekan hasilnya berbeda saat ditampilkan pada textbox nama karena pada btnama1_Click menggunakan variabel Dim yang hanya dapat dikenal ditempat variabel tersebut dipesan. Sedangkan pada btnama2_Click hanya mencantumkan baris program txtnama.Text=nama karena variabel nilainya diambil dari Module1 yaitu Public Const nama As String = "Nandang Hermanto". Kemudian saat menekan tombol Alamat1 dan Alamat2 alamat yang ditampilkan alamatnya sama, disebabkan karena di Public Class frmsatu terdapat Const alamat="Kuningan". Seharusnya konstanta dihilangkan kemudian pada btalamat1_Click diberi variabel Dim, pada btalamat2_Click source code programnya tetap seperti itu saja sebab variabel nilainya diambil dari Module1. Maka apabila programnya dijalankan, textbox alamat akan menampilkan hasil yang berbeda apabila menekan tombol Alamat1 dan Alamat2. 

c.) Saat menekan tombol Tambah Umur1 hasil pada textbox selalu keluar angka 1, namun saat menekan tombol Tambah Umur2 hasilnya selalu bertambah 1 dari umur sebelumnya. Hal ini disebabkan pada bttambahumur1_Click menggunakan variabel Dim, yang hanya dapat dikenal ditempat variabel tersebut dipesan walaupun pada listing programnya sudah diberi umur+=1. Sedangkan pada bttambahumur2_Click menggunakan variabel Static yang nilainya tidak akan hilang selama program dijalankan, sehingga nilainya akan terus bertambah. Maka listing program pada bttambahumur1_Click seharusnya diganti menjadi: 
Private Sub bttambahumur1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttambahumur1.Click
        Static umur As Integer
        umur += 1
        txtumur.Text = umur
    End Sub

d.) Analisa pada Form dua menurut saya yaitu terdapat perintah Option Explicit Off pada Public Class frmdua, tidak mengharuskan variabel dipesan terlebih dahulu. Kemudian terdapat tombol Nama, Alamat, dan Umur. Ketiga button ini, masing-masing mempunyai variabel nilai yang telah ditampung pada Module1. Sehingga apabila kita menekan ketiga tombol tersebut akan menampilkan hasil yang sesuai dengan nilai pada Module1. Terdapat tombol Tutup apabila ditekan maka kita akan keluar dari Form dua dan kembali ke Form satu.

Jawaban Latihan 2 If dan Case
Menurut analisa saya kelemahan pada latihan 2 If dan Case yaitu  tidak ada tombol Hitung. Pada program ini saya rasa user atau orang awam akan merasa kebingungan saat menggunakannya, apabila akan menginputkan datanya. Maka saya sedikit merubah posisi radio button "Tunai" dan "Kredit" serta menambahkan tombol Hitung. Sehingga tampilannya akan menjadi seperti ini: 

Tampilan Awal setelah program diperbaiki
Listing program dari tombol Hitung yaitu:
Private Sub bthitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bthitung.Click
        txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)

        If Me.radiotunai.Checked = True Then
            txtdiskon.Text = Val(txttotal.Text) * 10 / 100
            txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
        ElseIf Me.radiokredit.Checked = True Then
            txtdiskon.Text = 0
            txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
        End If
    End Sub

Kelemahan selanjutnya pada pilihan Kode Barang "TAS" listing programnya belum sempurna, pada saat program dijalankan hasilnya 0. Seharusnya seperti ini:
Private Sub cmbkode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbkode.SelectedIndexChanged
        Dim kdbarang, namabarang As String
        Dim harga As Single
        kdbarang = cmbkode.Text

        Select Case kdbarang
            Case "SPT"
                namabarang = "Sepatu"
                harga = 200000
            Case "SND"
                namabarang = "Sandal"
                harga = 100000
            Case "TST"
                namabarang = "T-Shirt"
                harga = 1500000
            Case "TOP"
                namabarang = "Topi"
                harga = 500000
            Case "TAS"
                namabarang = "Tas"
                harga = 130000
            Case Else
                namabarang = "-"
                harga = 0

        End Select
        txtnama.Text = namabarang
        txtharga.Text = harga
    End Sub

Tampilan setelah kita memilih Kode Barang "TAS" dan menginputkan Jumlah Barang
 

Kemudian kelemahan yang saya temukan lagi yaitu pada tombol Clear apabila kita menekannya maka semua hasil yang ditampilkan texbox akan hilang, akan tetapi pada radio button Cara Beli akan berubah menjadi FALSE.  

Tampilan pada program sebelumnya pada saat menekan tombol Clear
 

Perbaikannya seperti ini: 
Private Sub btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btclear.Click
        txtnama.Clear()
        txtharga.Clear()
        txtjumlah.Clear()
        txttotal.Clear()
        txtdiskon.Clear()
        txtbayar.Clear()
        radiotunai.Text = "Tunai"
        radiokredit.Text = "Kredit"
        cmbkode.Text = " "

    End Sub
 
Tampilan program setelah diperbaiki pada saat menekan tombol Clear
 

Demikian jawaban saya mengenai penanganan kesalahan error pada visual basic 2010, semoga bermanfaat bagi para pembaca. Terima Kasih.
Wassalamu'alaikum...
 

1 komentar:

  1. Melu komentar kakak : untuk perbaikan part 1 mungkin tidak perlu, cuma yang latihan if case doang kan?

    BalasHapus