Biasanya kalau kita sedang belajar visual basic apapun versinya tidak luput dari yang namanya error atau bug, kadang-kadang sebagai pemula yang baru belajar ketika program sudah jalan menganggap sudah bebas dari error sebenarnya tidak demikian banyak error yang tidak kelihatan terjadi dibelakang layar. Untuk itu memang harus benar-benar teliti dan wajib menguji program yang anda buat untuk mencari error sekecil apapun dengan menguji beberapa kemungkinan termasuk kesalahan user.
Untuk itu dalam artikel blog ini saya akan membuat Studi Kasus cara membuat Aplikasi Penggajian tanpa error termasuk menghindari kesalahan user.
Sebuah perusahaan PT. SENTOSA SEJAHTERA membuat aplikasinya sendiri dalam menangani sistem penggajian dengan sebuah aplikasi yang dibuatnya.
Si operator menginput Nama dan NIK secara manual lalu memilih Golongan untuk mengisi gaji pokok dan transport. Tiap golongan memiliki Gaji Pokok dan Uang Transport yang berbeda kemudian mengisi kode jabatan untuk mengisi jabatan dan tunjangan jabatan.Setelah itu operator memilih status pernikahan, tunjangan akan di berikan sesuai statusnya termasuk tunjangan anak dan keluarga, jika belum nikah tidak dapat tunjangan, kemudian operator menekan tombol hitung untuk memperoleh Gaji Kotor yang didapat.
Berdasarkan Kasus diatas di buatlah Aplikasi Penggajian dengan Visual Basic .Net. Pembuatan dilakukan melalui beberapa tahapan mulai dari :
Buka jendela kode lalu bersihkan kode yang ada dengan CTRL+A dan tekan Del kemudian Copy-Paste kode dibawag ini di jendela kode :
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Public Class Form1
Private Sub TextBoxNik_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBoxNik.KeyPress
'validasi NIK harus angka
If Not Char.IsDigit(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) Then
e.Handled = True
End If
'penekanan tombol enter focus ke nama
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
TextBoxNama.Focus()
End If
End Sub
Private Sub ListBoxKodeJabatan_SelectedIndexChanged(sender As Object, e As EventArgs) _
Handles ListBoxKodeJabatan.SelectedIndexChanged
If ListBoxKodeJabatan.SelectedItem Is Nothing Then Exit Sub
Dim data() As String =
ListBoxKodeJabatan.SelectedItem.ToString().Split("-"c)
Dim kode As String = data(0)
Dim jabatan As String = data(1)
'mengambil label Jabatan
LabelJabatan.Text = jabatan
'mengambil Tunjangan Jabatan
Select Case kode
Case "J001" : LabelTunjab.Text = 5000000.ToString("N0")
Case "J002" : LabelTunjab.Text = 3000000.ToString("N0")
Case "J003" : LabelTunjab.Text = 800000.ToString("N0")
Case "J004" : LabelTunjab.Text = 500000.ToString("N0")
Case "J005" : LabelTunjab.Text = 300000.ToString("N0")
End Select
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'menormalkan kembali ke form awal
Call kosong()
'menambahkan kode golongan ke combobox
ComboBoxGolongan.Items.Add("A001")
ComboBoxGolongan.Items.Add("B001")
ComboBoxGolongan.Items.Add("C001")
ComboBoxGolongan.SelectedIndex = 0
'menambahkan kode jabatan
ListBoxKodeJabatan.Items.Add("J001-Direktur")
ListBoxKodeJabatan.Items.Add("J002-Manager")
ListBoxKodeJabatan.Items.Add("J003-Kabag")
ListBoxKodeJabatan.Items.Add("J004-Kasi")
ListBoxKodeJabatan.Items.Add("J005-Karu")
' menampilkan item terpilih pertama di listbox
If ListBoxKodeJabatan.Items.Count > 0 Then
ListBoxKodeJabatan.SelectedIndex = 0
End If
End Sub
Private Sub ComboBoxGolongan_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBoxGolongan.SelectedIndexChanged
'menampilkan gaji pokok dan transport berdasarkan Golongan
Select Case ComboBoxGolongan.Text
Case "A001"
LabelGapok.Text = 8000000.ToString("N0")
LabelTransport.Text = 250000.ToString("N0")
Case "B001"
LabelGapok.Text = 6500000.ToString("N0")
LabelTransport.Text = 200000.ToString("N0")
Case "C001"
LabelGapok.Text = 4500000.ToString("N0")
LabelTransport.Text = 150000.ToString("N0")
End Select
End Sub
Private Sub ButtonClear_Click(sender As Object, e As EventArgs) Handles ButtonClear.Click
'menormalkan kembali for ke awal
Call kosong()
RadioButtonNikah.Checked = False
RadioButtonBNikah.Checked = False
RadioButtonDJ.Checked = False
TextBoxNik.Focus()
End Sub
Sub kosong()
TextBoxNik.Text = ""
TextBoxNama.Text = ""
LabelGapok.Text = 0
LabelTransport.Text = 0
LabelJabatan.Text = "-"
TextBoxJumlahAnak.Text = ""
LabelTunjab.Text = 0
LabelTunKel.Text = 0
LabelTunjanganAnak.Text = 0
LabelGajiKotor.Text = 0
End Sub
Private Sub RadioButtonBNikah_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButtonBNikah.CheckedChanged
LabelTunKel.Text = 0
TextBoxJumlahAnak.Text = 0
TextBoxJumlahAnak.Enabled = False
End Sub
Private Sub RadioButtonNikah_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButtonNikah.CheckedChanged
LabelTunKel.Text = 150000
TextBoxJumlahAnak.Enabled = True
TextBoxJumlahAnak.Text = ""
End Sub
Private Sub RadioButtonDJ_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButtonDJ.CheckedChanged
LabelTunKel.Text = 100000
TextBoxJumlahAnak.Enabled = True
TextBoxJumlahAnak.Text = ""
End Sub
Private Sub TextBoxJumlahAnak_TextChanged(sender As Object, e As EventArgs) Handles TextBoxJumlahAnak.TextChanged
Dim jumlahAnak As Integer
If Integer.TryParse(TextBoxJumlahAnak.Text, jumlahAnak) Then
LabelTunjanganAnak.Text = (jumlahAnak * 7500).ToString("N0")
Else
LabelTunjanganAnak.Text = "0"
End If
'kode dibawah ini alternatif boleh dihapus
'If TextBoxJumlahAnak.Text = "" Then
'lTunjanganAnak.Text = "0"
'Else
'LabelTunjanganAnak.Text = TextBoxJumlahAnak.Text * 7500
'End If
End Sub
Private Sub TextBoxJumlahAnak_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBoxJumlahAnak.KeyPress
'hanya input angka
If Not Char.IsDigit(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar) Then
e.Handled = True
End If
End Sub
Private Sub ButtonHitung_Click(sender As Object, e As EventArgs) Handles ButtonHitung.Click
' Validasi NIK panjang harus 6 digit
If Not IsNumeric(TextBoxNik.Text) OrElse TextBoxNik.Text.Length <> 6 Then
MessageBox.Show("NIK harus di isi, terdiri dari 6 angka", "Validasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TextBoxNik.Focus()
Exit Sub
End If
'validasi nama tidak boleh kosong
If TextBoxNama.Text = "" Then
MsgBox("Lengkapi data, Nama belum di isi", vbInformation, "Informasi")
TextBoxNama.Focus()
Exit Sub
End If
'validasi jika Golongan belum dipilih
If LabelGapok.Text = 0 Then
MsgBox("Golongan Belum terpilih", vbInformation, "Informasi")
ComboBoxGolongan.Focus()
Exit Sub
End If
'validasi jika Kode Jabatan belum dipilih
If LabelTunjab.Text = 0 Then
MsgBox("Kode jabatan Belum terpilih", vbInformation, "Informasi")
ListBoxKodeJabatan.Focus()
Exit Sub
End If
'validasi Status jika belum ada yang dipilih
If RadioButtonNikah.Checked = False And RadioButtonBNikah.Checked = False And RadioButtonDJ.Checked = False Then
MsgBox("Status Belum dipilih", vbInformation, "Informasi")
Exit Sub
End If
'validasi jumlah anak harus di isi, 0 jika tidak mempunyai anak
If TextBoxJumlahAnak.Text = "" Then
MsgBox("Jumlah Anak belum diisi? Jika tidak mempunyai Anak isi 0?", vbInformation, "Informasi")
TextBoxJumlahAnak.Focus()
Else
'menghitung gaji kotor
Dim gapok, transport, tunjab, tunjAnak, tunKel As Decimal
Decimal.TryParse(LabelGapok.Text, gapok)
Decimal.TryParse(LabelTransport.Text, transport)
Decimal.TryParse(LabelTunjab.Text, tunjab)
Decimal.TryParse(LabelTunjanganAnak.Text, tunjAnak)
Decimal.TryParse(LabelTunKel.Text, tunKel)
Dim total As Decimal = gapok + transport + tunjab + tunjAnak + tunKel
LabelGajiKotor.Text = total.ToString("N0")
End If
End Sub
Private Sub ButtonKeluar_Click(sender As Object, e As EventArgs) Handles ButtonKeluar.Click
Me.Close()
End Sub
End Class
Simpan dan jalankan Program.
Selamat mencoba semoga berhasil.
Post a Comment for "STUDI KASUS: Membuat Aplikasi Program Penggajian Tanpa Error Dengan Visual Basic .Net"
Berkomentarlah dengan sopan sesuai tema yang Anda baca.
Jangan menyimpang dari tema