Sabtu, 20 Oktober 2012

Tugas Visual Basic ke - 2



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

Template by:

Free Blog Templates