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 :
- Tambahkan tombol “Isi Data”
- Saat form dijalankan semua isian tidak aktif, tombol “Isi Data” dan tombol “Tutup” aktif tetapi tombol “Clear” tidak aktif.
- 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.
- Saat tombol “Clear” ditekan maka yang dilakukan hampir sama dengan yang dilakukan ketika form dijalankan.
- 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 gunkanPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Loadcmbkode.Items.Add("SPT")cmbkode.Items.Add("SND")cmbkode.Items.Add("TST")cmbkode.Items.Add("TOP")cmbkode.Items.Add("TAS")Dim Control As Windows.Forms.ControlFor Each Control In Me.ControlsIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "TextBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "RadioButton" ThenControl.Enabled = FalseEnd IfNextBtclear.Enabled = FalseKoding 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.ClickMy.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)Dim Control As Windows.Forms.ControlFor Each Control In Me.ControlsIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = TrueEnd IfIf Control.GetType.Name = "RadioButton" ThenControl.Enabled = TrueEnd IfNexttxtjumlah.Enabled = TrueBtclear.Enabled = TrueBtisidata.Enabled = FalseEnd Sub
-
Sementara untuk permasalahan nomer 4 sebagian perintah yang digunakan sama seperti ketika form dimuat, lebih tepatnya adalah sebagai berikutMy.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)Me.radiotunai.Checked = FalseMe.radiokredit.Checked = Falsetxtbayar.Clear()txtdiskon.Clear()txtharga.Clear()txtjumlah.Clear()txtnama.Clear()txttotal.Clear()cmbkode.Text = ""Dim Control As Windows.Forms.ControlFor Each Control In Me.ControlsIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "TextBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "RadioButton" ThenControl.Enabled = FalseEnd IfNextBtclear.Enabled = FalseBtisidata.Enabled = TrueEnd SubNah 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 Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Loadcmbkode.Items.Add("SPT")cmbkode.Items.Add("SND")cmbkode.Items.Add("TST")cmbkode.Items.Add("TOP")cmbkode.Items.Add("TAS")Dim Control As Windows.Forms.ControlFor Each Control In Me.ControlsIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "TextBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "RadioButton" ThenControl.Enabled = FalseEnd IfNextBtclear.Enabled = FalseEnd SubPrivate Sub cmbkode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbkode.SelectedIndexChangedDim kdbarang, namabarang As StringDim harga As Singlekdbarang = cmbkode.TextSelect Case kdbarangCase "SPT"namabarang = "Sepatu"harga = 200000Case "SND"namabarang = "Sandal"harga = 100000Case "TST"namabarang = "T-Shirt"harga = 150000Case "TOP"namabarang = "Topi"harga = 50000Case "TAS"namabarang = "Tas"harga = 250000Case Elsenamabarang = "-"harga = 0End Selecttxtnama.Text = namabarangtxtharga.Text = hargaMe.radiotunai.Checked = FalseMe.radiokredit.Checked = Falsetxtbayar.Clear()txtdiskon.Clear()txtjumlah.Clear()txttotal.Clear()txtjumlah.Focus()End SubPrivate Sub txtjumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjumlah.TextChangedIf (txtjumlah.Text = "") ThenElseDim jumlah As IntegerTryjumlah = Convert.ToInt32(txtjumlah.Text)Catch ex As Exceptionjumlah = 0MsgBox("Jumlah barang harus berupa angka", MsgBoxStyle.Critical, "Peringatan")txtjumlah.Text = ""End Trytxttotal.Text = Val(txtharga.Text) * jumlahtxtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)End IfEnd SubPrivate Sub radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiotunai.CheckedChangedtxtdiskon.Text = Val(txttotal.Text) * 10 / 100txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)End SubPrivate Sub radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiokredit.CheckedChangedtxtdiskon.Text = 0txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)End SubPrivate Sub Btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btclear.ClickMy.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)Me.radiotunai.Checked = FalseMe.radiokredit.Checked = Falsetxtbayar.Clear()txtdiskon.Clear()txtharga.Clear()txtjumlah.Clear()txtnama.Clear()txttotal.Clear()cmbkode.Text = ""Dim Control As Windows.Forms.ControlFor Each Control In Me.ControlsIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "TextBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = FalseEnd IfIf Control.GetType.Name = "RadioButton" ThenControl.Enabled = FalseEnd IfNextBtclear.Enabled = FalseBtisidata.Enabled = TrueEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickMy.Computer.Audio.PlaySystemSound(Media.SystemSounds.Hand)If (MsgBox("Apa Anda yakin untuk menutup aplikasi ini?", vbQuestion + vbYesNo + vbDefaultButton2, "Konfirmasi")) = vbYes ThenMe.Close()End IfEnd SubPrivate Sub Btisidata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btisidata.ClickMy.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)Dim Control As Windows.Forms.ControlFor Each Control In Me.ControlsIf Control.GetType.Name = "ComboBox" ThenControl.Enabled = TrueEnd IfIf Control.GetType.Name = "RadioButton" ThenControl.Enabled = TrueEnd IfNexttxtjumlah.Enabled = TrueBtclear.Enabled = TrueBtisidata.Enabled = FalseEnd SubEnd ClassKetika program pertama kali dijalankan maka akan tampil sebuah form seperti berikutKetika 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
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