Rabu, 17 Oktober 2012

Tugas Pemrograman Visual 2


Postingan ini ditujukan kepada Bapak Nandang Hermanto, S.Kom sebagai tugas ke-2 dari beliau untuk mata kuliah Pemrograman Visual :

LATIAHAN 1 Nomor 3
Soal-soal
a. Apa yang menyebabkan program error pada btalamat1_Click baris program alamat = "Kuningan"
b. Kenapa saat ditekan tombol nama1 dan nama2 nama yang ditampilkan pada textbox nama
berbeda sedangkan saat ditekan tombol alamat1 dan alamat2 alamat yang ditampilkan pada
textbox alamat sama
c. Kenapa saat ditekan tombol tambah umur 1 umur selalu keluar angka 1 sedangkan saat ditekan
tombol tambah umur 2 umur selalu bertambah 1 dari umur sebelumnya
d. Berikan analisa anda untuk form dua
Jawaban

 
a. Yang menyebabkan eror pada btalamat1_click adalah belum adanya konstanta / pengenal yang digunakan untuk menyimpan data dan nilainya tidak dapat berubah ubah pada saat program dijalankan.
EROR =                                                   alamat = "Kuningan"
                                   Txtalamat.Text = alamat

Seharusnya =               Const alamat = "Kuningan"
                                   Txtalamat.Text = alamat



b. Yang menyebabkan nama kedua alamat sama adalah karena pada kedua pengenal/konstanta yang ada pada kode program hanya satu alamat yaitu kuningan. Solusinya adalah mengganti salah satu kode program, karena pada alamat1 sudah ada kuningan maka  yang dirubah pada kode program yang berada di  Public Class frmsatu,  alamatnya diganti menjadi misalkan “Purwokerto”.
Kode program sebelumnya                               Public Class frmsatu
                                         Const alamat = "Kuningan"

Kode program setelah dirubah      Public Class frmsatu
                                         Const alamat = "Purwokerto"


c. - Karena kode program pada tombol tambah umur1 adalah
Dim umur As Integer
umur += 1
txtumur.Text = umur
Jika menggunakan Dim/variabel lokal maka data Hanya dikenal di tempat variabel tersebut dipesan dan pada saat di klick maka angka yang muncul adalah 1 sesuai dengan pemesanan umur += 1 ,  jika di klick kembali angka yang sebelumnya akan hilang dan muncul angka yang sudah di pesan di awal program.

-  Sedangkan pada tombol tambah umur2 berisi kode program
Static umur As Integer
                                         umur += 1
                                         txtumur.Text = umur
Jika menggunakan Static nilainya tidak akan hilang selam program dijalankan dan pada saat diclick maka akan muncul angka 1 sesuai dengan pemesanan umur += 1, jika di click kembali  maka angka yang tadi muncul tidak hilang dan akan ditambahkan 1 lagi dan seterusnya jika diklick kembali.

d. Analisa Form Dua : Form Dua di munculkan melalui Form Satu, berikut kode program yang ada di Form Satu (pada tombol Show Form Dua) untuk memunculkan Form Dua :
FrmDua.showDialog()
Sedangkan kode-kode program pada Form Dua di tuliskan di Module yang berfungsi Untuk memanggil beberapa function yang ada dalam module tersebut  dan function tersebut sifatnya public yang artinya semua form dapat menggunkan function yang ada pada mudule tersebut.


Berikut adalah kode programnya secara keseluruhan :

Public Class frmsatu
    Const alamat = "Purwokerto"
    Private Sub Btnama1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnama1.Click
        Dim nama As String
        nama = "Nandang"
        Txtnama.Text = nama
    End Sub

    Private Sub Btnama2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnama2.Click
        Txtnama.Text = nama
    End Sub

    Private Sub Btalamat1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btalamat1.Click
        Const alamat = "Kuningan"
        Txtalamat.Text = alamat
    End Sub

    Private Sub Btalamat2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btalamat2.Click
        Txtalamat.Text = alamat
    End Sub

    Private Sub Btshowform2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btshowform2.Click
        FrmDua.showDialog()
    End Sub

    Private Sub Bttambahumur1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bttambahumur1.Click
        Dim umur As Integer
        umur += 1
        txtumur.Text = umur
    End Sub

    Private Sub Bttambahumur2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bttambahumur2.Click
        Static umur As Integer
        umur += 1
        txtumur.Text = umur
    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub

    Private Sub Txtnama_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtnama.TextChanged

    End Sub
End Class


LATIHAN 2

Analisa : Pada kode program terdapat kesalahan di dalam combobox, pada penulisan kode program di bagian Case Else yang bertulis seprti ini :
Case Else
                namabarang = ""
                harga = 0
seharusnya namabarang diisi barang  terakhir yaitu namabarang = “TAS” dan harganya diisi terserah, misalnya say tuliskan harga = 75000
Jadi kode programnya seharusnya seperti di bawah ini :
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 Else
                namabarang = "TAS"
                harga = 75000
        End Select

        txtnama.Text = namabarang
        txtharga.Text = harga
    End Sub

Menurut saya ada kesalahan lagi namun tidak fatal yaitu kode program pada tombol clear jika menggunakan kode program yang dari dosen maka jika kita akan membersihkan data/text kita harus meng-click 2 kali pada tombol clear, jadi untuk membenarkan kode programnya hanya di tukar tempat saja. Berikut penukarannya :

Kode program dari dosen :
Private Sub Btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btclear.Click
 txtbayar.Clear()
        txtdiskon.Clear()
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        cmbkode.Text = ""
    End Sub

Seharusnya :
Private Sub Btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btclear.Click
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        txtdiskon.Clear()
        txtbayar.Clear()
        cmbkode.Text = ""
    End Sub

Berikut adalah kode programnya secara keseluruhan :

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-Shirt"
                harga = 150000
            Case "TOP"
                namabarang = "Topi"
                harga = 50000
            Case Else
                namabarang = "TAS"
                harga = 75000
        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
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        txtdiskon.Clear()
        txtbayar.Clear()
        cmbkode.Text = ""
    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


Alhamdulillah selesai juga Tugas yang kedua ini. Semoga di tugas-tugas yang berikutnya tetap lancar. Amin.

Tidak ada komentar:

Posting Komentar