look at me

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

Minggu, 21 Oktober 2012

Analisa Kelemahan Program pada Latihan 2, If dan Case beserta Perbaikannya




       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

 
Dan untuk kode sumbernya adalah sebagai berikut

 
Program ini digunakan sebagai alat hitung kasir seserhana. Cara kerjanya:
1.      Pilih kode barang yang ada pada combo box
2.      Isikan banyaknya barang yang dibeli pada text box Jumlah Barang
3.      Pilih cara pembayaran (Tunai/Kredit)
4.      Untuk menghapus data gunakan tombol Clear sementara untuk menutup aplikasi gunakan tombol Tutup

Setelah saya melakukan beberapa percobaan terhadap aplikasi tersebut dengan berbagai kemungkinan, saya menemukan beberapa kelemahan dalam aplikasi tersebut.Berikut kelemahan-kelemahan yang berhasil saya temukan :
1.      Tampilan visual yang masih sangat sederhana.
2.      Tombol alternatif/tab order yang tidak berfungsi.
3.      Item Combo Box tidak tersusun secara abjad.
                    4.    Item TAS tidak memiliki nama barang dan harga.

1.  Semua textbox masih bisa diubah-ubah nilainaya melalui keyboard.
2.  Masih bisa menginputkan karakter selain angka pada text box jumlah barang.
3.  Fokus kursor kurang efisien.
4.  Tombol Clear tidak menghapus semua nilai pada textbox. Nilai pada textbox diskon dan total bayar tidak terhapus (tetap menyisakan angka 0)
5.  Ketika Form dimuat Form tidak terletak di tengah-tengah layar.
6.  Ketika Form dimaximize, tampilan form menjadi tidak proporsional.
7.  Ketika kita akan menutup aplikasi, tidak ada permintaan konfirmasi untuk keluar, dan ini berbahaya ketika kita tidak sengaja menekan tombol tutup.

Setelah saya berhasil menemukan beberapa kelemahan pada aplikasi tersebut, saya melakukan beberapa perbaikan terhadap aplikasi tersebut. Beberapa perbaikan yang saya lakukan adalah:
1.      Memperindah tampilan form sedemikian rupa sehingga form terlihat lebih menarik.
2.      Memperbaiki tab order sehingga tombol alternatif dapat digunakan dengan baik.
3.      Mengatur properties Sorted=True pada combo box sehingga item pada combo box tersusun secara abjad.
4.      Menambah case item TAS beserta nama barang dan harganya. Nama barang=Tas, harga=250000.
5.      Mengubah properties ReadOnly pada semua text box kecuali text box jumlah barang ke mode True.
6.      Memperbaiiki sintaks pada txtjumlah_TextChanged menjadi berikut
If (txtjumlah.Text = "") Then
        Else
            Dim jumlah As Integer
            Try
                jumlah = Convert.ToInt32(txtjumlah.Text)
            Catch ex As Exception
                jumlah = 0
                MsgBox("Jumlah barang harus berupa angka", MsgBoxStyle.Critical, "Peringatan")
            End Try
                txttotal.Text = Val(txtharga.Text) * jumlah
                txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
            End If
Dengan sintaks tersebut membuat text box jumlah barang hanya bisa menerima inputan angka saja dan jika text box dipaksa untuk mendapat masukkan selain karakter angka maka akan muncul peringatan “Jumlah barang harus berupa angka”.
7.      Memperbaiiki sistem fokus pada cursor. Setelah pengguna menentukan kode barang, kursor akan secara otomatis berada di text box jumlah barang. Hal tersebut dilakukan dengan menambah sintaks txtjumlah.Focus() pada bagian cmbkode_SelectedIndexChanged.
8.      Memperbaiiki fungsi tombol Clear agar bisa mereset semua komponen pada aplikasi tersebut. Hal tersebut dilakukan dengan cara mengganti susunan sintaks pada Btclear_Click menjadi seperti berikut

My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        txtbayar.Clear()
        txtdiskon.Clear()
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        cmbkode.Text = ""

9.      Untuk membuat Form agar berada di tengah layar pada saat dimuat, maka properties StartPosition milik Form diganti ke mode CenterScreen.
10.  Untuk mengatasi masalah maximize, maka saya mematikan fungsi maximize yang dimiliki oleh Form melalui properties milik form dengan mengganti mode MaximizeBox ke mode False.
11.  Menambahkan kode sumber sebuah Message Box konfirmasi agar sebelum pengguna menutup aplikasi, program akan meminta konfirmasi dari pengguna atas perintah menutup aplikasi yang diberikan oleh pengguna tersebut.
Dan inilah sintaks yang saya gunkan untuk membuat Message Box tersebut.

If (MsgBox("Apa Anda yakin untuk menutup aplikasi ini?", vbQuestion + vbYesNo + vbDefaultButton2, "Konfirmasi")) = vbYes Then
            Me.Close()
        End If


Berikut adalah beberapa cntoh perubahan yang dilakukan pada pad program if dan case tersebut.






Dan untuk kode sumber program tersebut secara keseluruhan adalah sebagai berikut :

Public Class Form1
   

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cmbkode.Items.Add("SPT")
        cmbkode.Items.Add("SND")
        cmbkode.Items.Add("TST")
        cmbkode.Items.Add("TOP")
        cmbkode.Items.Add("TAS")
    End Sub

    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 = 150000
            Case "TOP"
                namabarang = "Topi"
                harga = 50000
            Case "TAS"
                namabarang = "Tas"
                harga = 250000
            Case Else
                namabarang = "-"
                harga = 0
        End Select
        txtnama.Text = namabarang
        txtharga.Text = harga
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        txtbayar.Clear()
        txtdiskon.Clear()
        txtjumlah.Clear()
        txttotal.Clear()
        txtjumlah.Focus()
    End Sub

    Private Sub txtjumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjumlah.TextChanged


        If (txtjumlah.Text = "") Then
        Else
            Dim jumlah As Integer
            Try
                jumlah = Convert.ToInt32(txtjumlah.Text)
            Catch ex As Exception
                jumlah = 0
                MsgBox("Jumlah barang harus berupa angka", MsgBoxStyle.Critical, "Peringatan")
            End Try
                txttotal.Text = Val(txtharga.Text) * jumlah
                txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
            End If
    End Sub

    Private Sub radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiotunai.CheckedChanged
        txtdiskon.Text = Val(txttotal.Text) * 10 / 100
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
    End Sub

    Private Sub radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiokredit.CheckedChanged
        txtdiskon.Text = 0
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
    End Sub

    Private Sub Btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btclear.Click
        My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        txtbayar.Clear()
        txtdiskon.Clear()
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        cmbkode.Text = ""
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)
        If (MsgBox("Apa Anda yakin untuk menutup aplikasi ini?", vbQuestion + vbYesNo + vbDefaultButton2, "Konfirmasi")) = vbYes Then
            Me.Close()
        End If

    End Sub

End Class

Tidak ada komentar:

Posting Komentar