Senin, 05 November 2012

TUGAS 2 VISUAL STUDIO 2012 ULTIMATE


Latihan 1 variable constanta type data
1.       Yang menyebabkan error pada Btalamat1_Click pada baris alamat = “Kuningan” 
yaitu tidak ditemukanya alamat pada target yang jelas, atau target yang terdekat dan variabel alamat tidak di deklarasikan dulu sebagai  As String. Hal ini dapat disiasati dengan menambahkan (‘) pada awal kata, menjadi ‘alamat = “Kuningan” atau dengan “Dim alamat As String. Sehingga demikian error message yang tadinya ada menjadi hilang (telah teratasi).
2.       Kenapa saat ditekan tombol Nama 1 dan Nama 2 nama yang ditampilkan textbox nama berbeda hasilnya? Sedangkan pada tombol Alamat 1 dan Alamat 2 hasilnya sama.

Hal ini terjadi karena target yang dipakai pada Btnama1_Click adalah Dim nama As String ; nama = “Nandang” dan target yang dipakai pada Btnama2_Click adalah Public Const nama As String = “Nandang Hermanto” yang tertera pada module form sehingga membuat suatu konstanta pada form. Lalu kenapa hasil Alamat 1 dan Alamat 2 sama? Ini terjadi karena pendeklarasian konstanta (Const alamat = “Kuningan”) pada form satu sehingga berlaku hanya di form satu saja.

3.       Kenapa saat ditekan tombol Tambah Umur 1 hasil yang keluar menunjukkan angka satu dan tombol Tambah Umur 2 menunjukkan nilai yang bertambah tiap kali ditekan?

Perbedaan ini terletek pada ruang lingkup variable yaitu Dim pada BttambahUmur1_Cklik dan Static pada BttambahUmur2_Clik. Dim hanya akan di eksekusi satu kali sehingga jika dieksekusi berkali-kali. Hal ini akan di perjelas dengan umur +=1, sedangkan  yang selalu bertambah 1, jika tombol Tambah Umur 2 ditekan berkali-kali

4.        Pada form dua semua berjalan sesuai dengan value yang diterima oleh masing-masing variabel. Karena pada form dua terdapat Option Explicit Off yang menunjukkan bahwa variabel tidak perlu dipesan terlebih dahulu. Disinilah diperlukan module form untuk menyiasati agar tidak terjadi error.

Latihan 2 if dan case
Kelemahan:
Programnya terdapat pada nama barang dan harga barang, dimana tertuliskan nama barang = - dan harga barang = 0, itulah yang menyebabkan program menjadi salah.

Harusnya : 


Seperti ini hasil program yang benar :




















Kode program :

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 ComboBox1_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 Laptp"
                harga = 200000
        End Select
        txtnama.Text = namabarang
        txtharga.Text = harga
    End Sub

    Private Sub txtjumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjumlah.TextChanged
        txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
        txtbayar.Text = Val(txttotal.Text) - Val(Txtdiskon.Text)
    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 Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btClear.Click
        Txtdiskon.Clear()
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        Me.Radiotunai.Checked = False
        Me.Radiokredit.Checked = False
        cmbKode.Text = ""
        cmbKode.Focus()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btClose.Click
        If MsgBox("anda yakin", vbYesNo + vbQuestion + vbDefaultButton2, "keluar") = vbYes Then
            Me.Close()
        End If
    End Sub
End Class