Tugas Visual Studio 2010 ke-2
1.
Apa yang menyebabkan error pada Btalamat1_Click baris program “alamat = "Kuningan"”?
Pembahasan :
Penyebab munculnya pesan error Constant
Cannot Be The Target Of The Assignment yaitu
karena pada alamat
= Kuningan tidak menemukan target yang jelas, dengan kata lain konstanta tersebut bukan merupakan target dari alamat = Kuningan. Karena nilai dari konstanta tidak dapat diubah - ubah. Untuk dapat diketahui/terbaca oleh program, kita
dapat menggunakan beberapa cara untuk memperbaikinya yaitu dengan cara :
1.
pada Btalamat1_Click alamat = "Kuningan" seharusnya
ditambahkan
tanda petik ( ‘ ) agar dapat
dijalankan/dieksekusi,
2.
listingnya Const alamat = "Kuningan",
maka tidak usah ada pengulangan
pemberian nilai lagi,
3.
yaitu menempatkan
Dim
alamat As String
alamat = "Kuningan"
Txtalamat.Text
= alamat dibawah class langsung atau tidak
masuk ke dalam komponen lainnya. Jadi, semua komponen yang terdapat dalam class
tersebut dapat memanggil nilai tersebut.
2. Kenapa saat ditekan tombol nama1 dan nama2 yang ditampilkan
pada textbox nama berbeda sedangkan saat ditekan tombol alamat1 dan alamat2
yang ditampilkan pada textbox alamat sama?
Penbahasan
:
Karena menurut
saya penjelasannya seperti ini :
Pada pengisian listing program sebelumnya kita telah
mengisikan listingnya
Sedangkan pada modulnya
Maka menghasilkan :
Nama1 = "Nandang"
Nama2 =
"Nandang Hermanto"
Alasannya itu karena pada Nama1 itu
menggunakan Dim yang ditempatkan hanya pada Nama1 saja, sedangkan Nama2 memanggil
nilai dari nama pada listing form 1 dan module. Dengan menggunakan deklarasi Public Const
nama As String
= "Nandang Hermanto", maka dapat dibaca oleh semua komponen dalam class tersebut dengan
syarat penulisan nama variabelnya harus sama seperti variable sebelumnya.
Apabila menggunakan Dim nama As String
nama = "Nandang"
yang diletakan dibawah class, maka baik Nama1 atau Alamat2 akan tetap menampilkan Nandang
karena prinsip kerja pada kasus ini perintah akan memanggil nilai yang paling dekat.
Pada listing program yang kita buat telah kita isiikan
alamatnya. Sesuai perintah yang dosen berikan, maka akan menghasilkan :
Alamat1 = "Kuningan"
Alamat2 = "Kuningan"
Outputnya tampak seperti itu karena kedua perintah tersebut
mengambil nilai dari yang paling dekat yang terdapat dalam classnya sendiri
yaitu Const alamat = "Kuningan".
Dengan kata lain, perintah tidak mengambil nilai
dari module.
1. Kenapa saat ditekan tombol tambah umur 1 selalu keluar angka
1, sedangkan saat ditekan tombol tambah umur 2 selalu bertambah satu dari umur
sebelumnya ?
Pembahasan
:
Karena pada
tombol tambah
umur 1 menggunakan variabel Dim, dengan menginputkan listing
program sebagai berikut :
Dim umur As
Integer
umur
+= 1
Txtumur.Text
= umur
Listing
program diatas diatas mempunyai pengertian bahwa dimana umur tersebut dideklarasikan
dengan nilai awal 1 dan akan selalu tetap (tidak ditambah 1). Sama saja dengan
menggunakan Dim umur As Integer = 1
Karena
pada tombol tambah 2 memakai masukan Static yang mempunyai pengertian bahwa hasil outputan akan selalu berubah-ubah
(bertambah) sesuai besarnya nilai yang diinputkan sebelumnya selama program
dijalankan.
2. Analisa tentang form 2 !
Pembahasan :
Hasil analisa
sebagai berikut ini :
Form
2 dapat dipanggil dengan cara klik tombol show form 2 yang terdapat pada form
1. Sebelumnya isikan listing programnya dahulu yaitu :;
Private Sub
Btshowform2_Click(ByVal sender As System
FrmDua.ShowDialog()
End Sub
Pada saat form 2 tampil, form 1
masih tetap tampil dan apabila kita pilih tombol tutup maka yang tertutup/terclose hanya form 2nya saja. Tampilan
Seperti ini tampilannya :
Pada form 2 terdapat kotak dialog yang berisikan nama,
alamat dan umur, dengan inputan sebagai berikut :
Option Explicit Off
Public Class FrmDua
Private Sub Bttutup_Click(ByVal sender As
System.Object, ByVal
e As System.EventArgs)
Handles MyBase.Load
Me.Close()
End Sub
Private Sub
Btnama_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Txtnama.Text = nama
End Sub
Private Sub
Btalamat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Txtalamat.Txt = alamat
End Sub
Private Sub
Btumur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Txtumur.Text = umur
End Sub
End Class
Pada form 2
terdapat kotak dialog yang berisikan nama, alamat dan umur, dengan inputan
sebagai berikut :
Option Explicit Off
Public Class FrmDua
Private Sub Bttutup_Click(ByVal sender As
System.Object, ByVal
e As System.EventArgs)
Handles MyBase.Load
Me.Close()
End Sub
Private Sub
Btnama_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Txtnama.Text = nama
End Sub
Private Sub
Btalamat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Txtalamat.Txt = alamat
End Sub
Private Sub
Btumur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Txtumur.Text = umur
End Sub
End Class
Pembahasan
Program IF dan Case antara lain sebagai berikut :
Listing program sebelum diperbaiki :
Public Class
Frm1
Private Sub
FrmLatianIFdanCase_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_SelesctedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
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 Else
namabarang = "-"
harga = 0
End Select
TxtNamaBarang.Text = namabarang
TxtHargaBarang.Text = harga
End Sub
Private Sub
TxtJumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtTotalHarga.Text = Val(TxtHargaBarang.Text)
* Val(TxtJumlahBarang.Text)
TxtTotalBayar.Text =
Val(TxtTotalBayar.Text) - Val(TxtDiskon.Text)
End Sub
Private Sub
radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtDiskon.Text = Val(TxtTotalBayar.Text) * 10 / 100
TxtBayar.Text = Val(TxtTotalHarga.Text)
- Val(TxtDiskon.Text)
End Sub
Private Sub
radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtDiskon.Text = 0
TxtBayar.Text = Val(TxtTotalHarga.Text)
- Val(TxtDiskon.Text)
End Sub
Private Sub
BtClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtBayar.Clear()
TxtDiskon.Clear()
TxtHargaBarang.Clear()
TxtJumlahBarang.Clear()
TxtNamaBarang.Clear()
TxtTotalBayar.Clear()
Me.radiotunai_Checked
= False
Me.radiokredit_CheckedChanged
= False
cmbkode.Text = ""
End Sub
Private Sub
BtTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Me.Close()
End Sub
End Class
Sebelum diperbaiki
Listing Program setelah diperbaiki, yaitu :
Public Class
Frm1
Private Sub
FrmLatianIFdanCase_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_SelesctedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
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"
harga = 400000
Case
Else
namabarang = "-"
harga = 0
End Select
TxtNamaBarang.Text = namabarang
TxtHargaBarang.Text = harga
End Sub
Private Sub
TxtJumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtTotalHarga.Text =
Val(TxtHargaBarang.Text) * Val(TxtJumlahBarang.Text)
TxtTotalBayar.Text =
Val(TxtTotalBayar.Text) - Val(TxtDiskon.Text)
End Sub
Private Sub
radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtDiskon.Text =
Val(TxtTotalBayar.Text) * 10 / 100
TxtBayar.Text = Val(TxtTotalHarga.Text)
- Val(TxtDiskon.Text)
End Sub
Private Sub
radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtDiskon.Text = 0
TxtBayar.Text = Val(TxtTotalHarga.Text)
- Val(TxtDiskon.Text)
End Sub
Private Sub
BtClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TxtBayar.Clear()
TxtDiskon.Clear()
TxtHargaBarang.Clear()
TxtJumlahBarang.Clear()
TxtNamaBarang.Clear()
TxtTotalBayar.Clear()
Me.radiotunai_Checked
= False
Me.radiokredit_CheckedChanged
= False
cmbkode.Text = ""
End Sub
Private Sub
BtTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Me.Close()
End Sub
End Class
0 komentar:
Posting Komentar