Soal latihan 1
1. Apa
yang menyebabkan program error pada btalamat1_click baris program alamat
= “Kuningan”?
2. Kenapa
saat ditekan tombol nama1 dan nama2 nama yang ditampilkan pada
textbox nama berbeda sedangkan saat ditakan tombol alamat1 dan alamat2
alamat yang ditampilkan pada textbox alamat sama?
3. Kenapa
saat ditekan tombol tambah umur 1 umur selalu keluar angka 1
sedangkan saat ditekan tombol umur 2 umur selalu bertambah 1 dari umur
sebelumnya?
4. Berilah
analisa anda untuk form 2?
Hasil
Analisa Program:
1. Menurut
pengamatan saya yang menjadikan program error pada btalamat1_click
baris program alamat = “Kuningan” yaitu pada btalamat1_click tidak
ada pendeklarasiannya yaitu kurang ditambahkan “Dim alamat As String”/ type
const tidak dapat mewakili untuk alamat.
2. *Untuk
nama1 dan nama2 berbeda karena nama dalam form1 hanya menggunakan “Dim....”
yang hanya dikenal di variabel itu saja, sedangkan pada module menggunakan
“Public Const.....” sehingga dikenal disemua program.
* Sedangkan pada alamat dalam form1 sudah
menggunakan “Const...” dan pada module “ Public Const....” digunakan kembali
sehingga untuk alamat itu tidak berpengaruh.
3. Karena
pada tombol umur 1 hanya menggunakan;
Dim
umur As Integer
Umur +=1
Sehingga hanya angka 1 yang
muncul, dan apabila angka 1 diganti 2, begitu juga angka 2 saja yang muncul.
Sedangakan, pada tombol umur 2
menggunakan;
Static
umur As Integer
umur += 1
Sehingga angka tersebut akan
bertambah secara urut sampai tak terhingga dan tak hilang selama program
dijalankan.
4. Karena
terdapat Coding Option Explicit Off yang berarti 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
latihan 2
Kelemahan
& Kesalahan program pada latihan dua If dan Case
Kelemahan dari program 2 menurut
saya:
kata “TAS” dalam comboBox(daftar
kode barang) belum ada nilainya sehingga tampak tak ada fungsinya, lebih baik
di hapus atau kalau tidak ingin dihapus di beri nilai pada select case.
Properti bagian enable dari TextBox-TextBox
yang digunakan untuk output seperti namaBarang, hargaBarang, totalHarga, diskon
dan total bayar hendaknya di falsekan agar user tidak bisa menginputkan
data di bagian tsb, sehingga memperjelas dalam penginputkan data.
Ganbar coding belum
di perbaiki
Misal coding tetap sama hanya
dengan menambahkan
Case "TAS"
namaBarang = "tas"
harga = 700000
di bagaian select case sebelum case else pada cmbKode.
di bagaian select case sebelum case else pada cmbKode.
hasil
program 2 setelah di perbaiki:
gambar setelah coding di
perbaiki
coding:
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-Sirt"
harga = 1500000
Case "TOP"
namaBarang = "Topi"
harga = 500000
Case "TAS"
namaBarang = "Tas"
harga = 700000
Case Else
namaBarang = "-"
harga = 0
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 btClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btClear.Click
txtDiskon.Clear()
txtHarga.Clear()
txtJumlah.Clear()
txtTotal.Clear()
txtNama.Clear()
cmbKode.Text = ""
Me.radioTunai.Checked = False
Me.radioKredit.Checked = False
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
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-Sirt"
harga = 1500000
Case "TOP"
namaBarang = "Topi"
harga = 500000
Case "TAS"
namaBarang = "Tas"
harga = 700000
Case Else
namaBarang = "-"
harga = 0
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 btClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btClear.Click
txtDiskon.Clear()
txtHarga.Clear()
txtJumlah.Clear()
txtTotal.Clear()
txtNama.Clear()
cmbKode.Text = ""
Me.radioTunai.Checked = False
Me.radioKredit.Checked = False
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