Senin, 29 Oktober 2012

TUGAS PRAKTIKUM ke-2


Nama : Eka Yunita H S

Nim : 11.11.2498

 

            Tugas kali ini saya akan membahas tentang Analisa kesalahan pada program yang telah disediakan. Didalam program ini saya akan menganalisa letak kesalahan dan pembenaran yang salah dari program-program tersebut.
Analisis Permasalahan :
SOAL 1 : Analisa Constanta
a)      Dalam listing dibawah ini menyatakan output dari  “Form Satu” yang salah dalam pendeklarasian. Penyebab erornya program terletak pada pengeksekusian alamat :




            Conts hanya dapat dan harus dideklarasikan yang hanya mewakili satu variable, dalam variable alamat telah disebutkan atau dideklarasikan terlebih dahulu. Sehingga “btalamat1” tidak memerlukan pemanggilan alamat.
            Jika tetap dibiarkan ketika program dijalankan akan eror dan langsung keluar dari proses Debug, dan muncul peringatan seperti ini :
 
Untuk pembenarannya :

Sehingga dapat menghasilkan output dengan proses sebagai berikut :





b)      Mengapa tombol nama 1 dan nama 2 mengeluarkan nama yang berbeda sedangkan alamat 1 dan alamat 2 mengerluarkan alamat yang sama?
            Karena pada cara pendeklarasian variablenya (alamat) untuk form satu yang ada pada module belum terdeklarasikan dan dalam satu form tersebut masih menggunakan constanta yang berarti hanya dan diharuskan pemanggilan (Const alamat = "Purwokerto" ) jika ingin alamat 2 muncul alamat yang berbeda seperti nama 2 maka alamat harus dikenal pada modul dan dideklarasikan pada form satu dengan listing :

Public Class frmsatu
    Const alamat = "Purwokerto"
  
   Private Sub btnama1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnama1.Click
        Dim nama As String
        nama = "Eka"              ---Nama telah dipanggil melalui Module dengan Dim yang                                       bersifat Lokal.

        txtnama.Text = nama
    End Sub




    Private Sub btnama2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnama2.Click
        txtnama.Text = nama
    End Sub

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

    Private Sub btalamat2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btalamat2.Click
        Dim alamat As String
        alamat = " Purwokerto Selatan "         ----pemanggilan alamat 2
        txtalamat.Text = alamat

    End Sub

    Private Sub bttambahumur1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttambahumur1.Click
        Dim umur As Integer
        umur += 1
        txtumur.Text = umur
    End Sub

    Private Sub bttambahumur2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttambahumur2.Click
        Static umur As Integer
        umur += 1
        txtumur.Text = umur
    End Sub

    Private Sub btshowform2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btshowform2.Click
        frmdua.ShowDialog()
    End Sub
End Class

Output dari listing diatas untuk alamat 2 yang dimana awal output alamat 1 dan alamat 2 mengeluarkan alamat yang sama. Alamat 1 “Purwokerto” dan Alamat 2 “Purwokerto Selatan” : 

            c)         Mengapa saat ditekan button tambah umur 1 muncul angka 1, dan ketika menekan                        button tambah umur 2 bertambah 1.


           
            Sebab pada saat pemanggilan “bttambahumur2” menggunakan Static dimana static merupakan Variable yang tidak dapat berubah-ubah tanpa pendeklarasian terlebih dahulu.
 


Jika pada :


       Static umur As Integer
        umur += 1
diganti dengan angka 2 maka akan menjadi kelipatannya.
            Static umur As Integer
        umur += 2
sebab static adalah nilai yang tidak dapat berubah.

d)     Analisa untuk form dua
Option Explicit Off
Public Class frmdua

    Private Sub btnama_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnama.Click
      txtnama.Text = nama
    End Sub

    Private Sub btalamat_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btalamat.Click
      txtalamat.Text = alamat
    End Sub

    Private Sub btumur_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btumur.Click
       txtumur.Text = umur
   End Sub

    Private Sub bttutup_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles bttutup.Click
       Me.Close()
   End Sub
End Class

                 Untuk Form Dua, saat kita melihat coding pada FrmDua kita melihat ada baris perintah :
Option Explicit Off
Itu artinya bahwa variabel pada FrmDua tidak perlu kita definisikan dan program akan langsung mengambil definisi variabel-variabel itu dari variabel Public yang terdapat dimanapun. Pada program ini variabel-variable tersebtu terdapat pada Module1. Sehingga pada saat kita menekan tombol Nama atau Alamat atau Umur, nilai yang keluar adalah nilai yang terdapat pada Module1.



SOAL 2  : IF dan CASE
Pembenaran Untuk Soal if dan case
            Pengkodean dalam listing ini ada satu kesalahan yang mengakibatkan pemanggilan untuk kode barang “ TAS “. Pada awal listing kode barang “TAS” tidak diinputkan seperti kode barang yang lain.untuk mempermudah mengetahui perhatikan gambar berikut :
Listing yang belum terinputnya kode barang “TAS” :

Karena belum diinputkannya kode barang TAS maka untuk pencarian atau pemanggilan kode barang untuk TAS tidak ada atau “-“.
            Ini merupakan output listing diatas untuk TAS :



SetelDan untuk pembenaran dari listing TAS yang sudah dideklarasikan sebelumnya adalah sebagai berikut beserta outputnya :
Harga pada TAS sebagai contoh.
Public Class From1
    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 = 1500000
            Case "TOP"
                namabarang = "Topi"
                harga = 500000
            Case "TAS"
                namabarang = "TAS"              Penambahan listing TAS
                harga = 250000
            Case Else
                namabarang = "-"
                harga = 0
        End Select
        txtnamabarang.Text = namabarang
        txthargabarang.Text = harga
    End Sub

    Private Sub txtjmlbarang_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjmlbarang.TextChanged
        txttotharga.Text = Val(txthargabarang.Text) * Val(txtjmlbarang.Text)
        txttotbayar.Text = Val(txttotharga.Text) - Val(txtdisc.Text)
    End Sub

    Private Sub radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiotunai.CheckedChanged
        txtdisc.Text = 0
        txtdisc.Text = Val(txttotbayar.Text) * 10 / 100
        txttotbayar.Text = Val(txttotharga.Text) - Val(txtdisc.Text)
    End Sub

    Private Sub radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiokredit.CheckedChanged
        txtdisc.Text = 0
        txttotbayar.Text = Val(txttotharga.Text) - Val(txtdisc.Text)
    End Sub

    Private Sub btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btclear.Click
        txttotbayar.Clear()
        txtdisc.Clear()
        txtjmlbarang.Clear()
        txtnamabarang.Clear()
        txttotharga.Clear()
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        cmbkode.Text = ""
    End Sub

    Private Sub bttutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttutup.Click
        Me.Close()
    End Sub
End Class


Tidak ada komentar:

Posting Komentar