look at me

SELAMAT DATANG MAS, MBAK, OM, TANTE, PAKDHE,BUDHE DAN SEMUANYA

Minggu, 28 Oktober 2012

Modifikasi Latihan If dan Case

Pada postingan sebelumnya saya dudah sempat membahas tugas membuat aplikasi kasir yang saya beri nama “Latihan If dan Case”. Nah untuk tugas kali ini saya dituntut untuk dapat memodifikasi aplikasi tersebut sesuai arahan dari Pak Nandang. Berikut aturan dalam memodifikasinya :
  1. Tambahkan tombol “Isi Data”
  2. Saat form dijalankan semua isian tidak aktif, tombol “Isi Data” dan tombol “Tutup” aktif tetapi tombol “Clear” tidak aktif.
  3. Saat ditekan tombol “Isi Data”,maka combo box “kode barang”, text box “jumlah barang”, radio button “cara beli” dan tombol “Clear” aktif tetapi tombol “Isi Data” tidak aktif.
  4. Saat tombol “Clear” ditekan maka yang dilakukan hampir sama dengan yang dilakukan ketika form dijalankan.
  5. Ketika memodifikasi kode sumber aplikasi tersebut harus mengandung statemen perulangan.

Sebenarnya jika kita telaah permasalahan-permasalahan tersebut ada beberapa trik yang bisa dilakukan. Berikut sekilas trik yang saya gunakan untuk menyelesaikan tantangan dari pak Nandang tersebut:

  • Untuk mengatasi permasalahan nomor dua tersebut saya cukup menggunakan perulangan For Each dan bermain-main dengan perintah Enabled. Perintah Enabled ini digunakan untuk menghidupkan/mematikan fungsi suatu objek yang ada dalam form. Untuk Lebih jelasnya berikut koding yang saya gunkan
    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")

            Dim Control As Windows.Forms.Control
            For Each Control In Me.Controls
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "TextBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "RadioButton" Then
                    Control.Enabled = False
                End If
            Next
            Btclear.Enabled = False

    Koding tersebut akan dijalankan ketika form dimuat.
     
  •  Untuk mengatasi permasalahan nomer 3, hampir sama seperti langkah untuk memecahkan permasalahan nomer 2, perbedaanya hanya terdapat pada control yang diaktifkan atau dimatikan, dan berikut koding untuk melakukan hal tersebut
    Private Sub Btisidata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btisidata.Click
            My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
            Dim Control As Windows.Forms.Control

            For Each Control In Me.Controls
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = True
                End If
                If Control.GetType.Name = "RadioButton" Then
                    Control.Enabled = True
                End If
            Next
            txtjumlah.Enabled = True
            Btclear.Enabled = True
            Btisidata.Enabled = False


        End Sub
  • Sementara untuk permasalahan nomer 4 sebagian perintah yang digunakan sama seperti ketika form dimuat, lebih tepatnya adalah sebagai berikut
    My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
            Me.radiotunai.Checked = False
            Me.radiokredit.Checked = False
            txtbayar.Clear()
            txtdiskon.Clear()
            txtharga.Clear()
            txtjumlah.Clear()
            txtnama.Clear()
            txttotal.Clear()
            cmbkode.Text = ""


            Dim Control As Windows.Forms.Control
            For Each Control In Me.Controls
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "TextBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "RadioButton" Then
                    Control.Enabled = False
                End If
            Next
            Btclear.Enabled = False
            Btisidata.Enabled = True

        End Sub

    Nah uraian di atas merupakan beberapa trik yang saya gunakan dalam menyelesaikan tantangan-tantangan yang telah saya sebutkan sebelumnya, tetapi untuk lebih lengkapnya monggo disimak kode sumber yang saya gunakan beserta beberapa gambar yang menggambarkan program ketika sedang dijalankan.
    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")

            Dim Control As Windows.Forms.Control
            For Each Control In Me.Controls
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "TextBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "RadioButton" Then
                    Control.Enabled = False
                End If
            Next
            Btclear.Enabled = False
        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 "TAS"
                    namabarang = "Tas"
                    harga = 250000
                Case Else
                    namabarang = "-"
                    harga = 0
            End Select
            txtnama.Text = namabarang
            txtharga.Text = harga
            Me.radiotunai.Checked = False
            Me.radiokredit.Checked = False
            txtbayar.Clear()
            txtdiskon.Clear()
            txtjumlah.Clear()
            txttotal.Clear()
            txtjumlah.Focus()
        End Sub

        Private Sub txtjumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjumlah.TextChanged


            If (txtjumlah.Text = "") Then
            Else
                Dim jumlah As Integer
                Try
                    jumlah = Convert.ToInt32(txtjumlah.Text)
                Catch ex As Exception
                    jumlah = 0
                    MsgBox("Jumlah barang harus berupa angka", MsgBoxStyle.Critical, "Peringatan")
                    txtjumlah.Text = ""
                End Try
                    txttotal.Text = Val(txtharga.Text) * jumlah
                    txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
                End If
        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
            My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)
            Me.radiotunai.Checked = False
            Me.radiokredit.Checked = False
            txtbayar.Clear()
            txtdiskon.Clear()
            txtharga.Clear()
            txtjumlah.Clear()
            txtnama.Clear()
            txttotal.Clear()
            cmbkode.Text = ""
           

            Dim Control As Windows.Forms.Control
            For Each Control In Me.Controls
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "TextBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = False
                End If
                If Control.GetType.Name = "RadioButton" Then
                    Control.Enabled = False
                End If
            Next
            Btclear.Enabled = False
            Btisidata.Enabled = True

        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)
            If (MsgBox("Apa Anda yakin untuk menutup aplikasi ini?", vbQuestion + vbYesNo + vbDefaultButton2, "Konfirmasi")) = vbYes Then
                Me.Close()
            End If

        End Sub

        Private Sub Btisidata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btisidata.Click
            My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
            Dim Control As Windows.Forms.Control

            For Each Control In Me.Controls
                If Control.GetType.Name = "ComboBox" Then
                    Control.Enabled = True
                End If
                If Control.GetType.Name = "RadioButton" Then
                    Control.Enabled = True
                End If
            Next
            txtjumlah.Enabled = True
            Btclear.Enabled = True
            Btisidata.Enabled = False


        End Sub
    End Class

    Ketika program pertama kali dijalankan maka akan tampil sebuah form seperti berikut
      Ketika tombol “Isi Data” ditekan maka “Kode Barang”, “Jumlah Barang”, “Cara Beli dan tombol “Clear” akan aktif sementara tombol “Isi Data” justru tidak aktif.

     Ketika tombol “Clear” ditekan maka yang dihasilkan akan sama persis seperti ketika form dimuat
     
Sementara ketika tombol keluar ditekan maka user akan dimintai konfirmasi mengenai niatannya tersebut


Oke, dari penjelasan-penjelasan tersebut setidaknya sudah ada gambaran mengenai modifikasi dari program tersebut dan bisa dikatakan hasil modifikasi tersebut lebih efisien dan efektif dari program sebelumnya. Mungkin itu saja yang bisa saya jelaskan, untuk posting berikutnya saya akan membahas sebuah game puzle yang saya buat sendiri. Sampai jumpa di postingan berikutnya.

Tidak ada komentar:

Posting Komentar