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.
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