APLIKASI PENGGAJIAN - VB.NET Peminat silakan hubungi : Email : uusrusmawan71@gmail.com Facebook : konsultasivb@ymail.com (Uus Rusmawan) Phone : 0812 8438 1118 4.2 Normalisasi File Dan Relasi Tabel Normalisasi file dalam aplikasi penggajian terlihat pada gambar di bawah ini. 4.3 Membuat Module Imports System.Data.OleDb Module Module1 Public Conn As OleDbConnection Public da As OleDbDataAdapter Public ds As DataSet Public cmd As OleDbCommand Public rd As OleDbDataReader Public str As String Public Sub Koneksi() str = "provider=microsoft.jet.oledb.4.0;data source=dbpenggajian.mdb" Conn = New OleDbConnection(str) If Conn.State = ConnectionState.Closed Then Conn.Open() End If End Module 1
4.4 Menu Utama Menu utama berfungsi untuk mengintegrasikan semua form dalam satu project. Pembahasan tentang pembuatan menu utama berikut MenuStrip dan StatusStrip telah dilakukan pada bab 1 dan silakan dipelajari kembali. Adapun pembuatan Toolbar dengan TabControl akan dibahas pada bab berikutnya. 4.5 Form Petugas Form petugas berguna untuk mengolah data kasir (petugas) yang mengoperasikan aplikasi. Status petugas yang login akan menentukan hak akses terhadap aplikasi tersebut. 2
4.6 Login Form login digunakan sebagai sarana keamanan penggunaan aplikasi agar tidak sembarang orang melakukan pengolahan data dan melakukan transaksi di dalam aplikasi ini. Form login juga berguna untuk menentukan hak akses pengguna aplikasi pada menu-menu tertentu sesuai dengan otoritasnya. Coding dan penjelasan Pada saat Button1 diklik, maka carilah data petugas yang nama dan passwordnya terdapat pada textbox1 dan 2, jika data ditemukan maka tampilkan menu utama dan tampilkan pula Kode petugas, nama petugas dan status petugas di masing-masing panel, jika panel 3 di menu bukan Administrator, maka matikan menu kasir. Jika data tidak ditemukan maka tampilkan pesan bahwa nama user dan password salah. Imports System.Data.OleDb Public Class Login 3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Koneksi() cmd = New OleDbCommand("select * from Petugas where Nama_Petugas='" & TextBox1.Text & "' and Password_Petugas='" & TextBox2.Text & "'", Conn) rd = cmd.executereader rd.read() If rd.hasrows Then Me.Visible = False MenuUtama.Show() MenuUtama.Panel1.Text = rd.getstring(0) MenuUtama.Panel2.Text = rd.getstring(1) MenuUtama.Panel3.Text = rd.getstring(3) If MenuUtama.Panel3.Text <> "ADMINISTRATOR" Then MenuUtama.PetugasToolStripMenuItem.Enabled = False Else MenuUtama.PetugasToolStripMenuItem.Enabled = True End If Else MsgBox("login salah, periksan kembali user name dan password") TextBox1.Focus() End If Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.keychar = Chr(13) Then TextBox2.Focus() Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If e.keychar = Chr(13) Then Button1.Focus() Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Clear() TextBox2.Clear() Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click End End Class 4.7 Form Golongan 4
4.8 Form Jabatan 4.9 Form Potongan 5
4.10 Form Pegawai 4.11 Transaksi Penggajian 6
Proses yang terjadi dalam form penggajian adalah sebagai berikut : 1. Pada saat form dipanggil, tampilkan nomor slip gaji otomatis, tanggal transaksi 2. Ketika mengisi NIP, sistem akan mencari NIP yang sudah gajian di bulan ini, jika data tidak ditemukan maka lanjutkan ke pengisian jumlah hadir dalam sebulan 3. Kemudian dilanjutkan dengan pengisian jumlah jam lembur dalam sebulan 4. Kemudian dilajutkan dengan pengisian rincian potongan mulai dari pajak sampai asuransi jiwa. 5. Jika data sudah benar, maka klik button simpan Coding Public Class Penggajian Sub Tampilkan() da = New OleDbDataAdapter("Select Kode_Potongan as Kode,nama_Potongan as [Nama Potongan]from Potongan where left(kode_potongan,1)='1'", Conn) ds = New DataSet ds.clear() da.fill(ds, "Potongan") DGV.DataSource = (ds.tables("potongan")) DGV.Columns.Add("Jumlah", "Jumlah") DGV.Columns(0).ReadOnly = True DGV.Columns(1).ReadOnly = True DGV.Columns(0).Width = 40 7
DGV.Columns(1).Width = 125 Private Sub Penggajian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call Koneksi() Call NomorOtomatis() TextBox2.Text = Today Call Tampilkan() Private Sub TextBox19_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox19.KeyPress If e.keychar = Chr(13) Then TextBox21.Text = Val(TextBox13.Text) * Val(TextBox19.Text) TextBox16.Text = Val(TextBox9.Text) + Val(TextBox10.Text) + Val(TextBox11.Text) + Val(TextBox23.Text) + Val(TextBox21.Text) + Val(TextBox22.Text) + Val(TextBox15.Text) TextBox20.Focus() End If If Not ((e.keychar >= "0" And e.keychar <= "9") Or e.keychar = vbback) Then e.handled() = True Private Sub TextBox20_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox20.KeyPress If e.keychar = Chr(13) Then TextBox22.Text = Val(TextBox14.Text) * Val(TextBox20.Text) TextBox16.Text = Val(TextBox9.Text) + Val(TextBox10.Text) + Val(TextBox11.Text) + Val(TextBox23.Text) + Val(TextBox21.Text) + Val(TextBox22.Text) + Val(TextBox15.Text) DGV.Focus() End If If Not ((e.keychar >= "0" And e.keychar <= "9") Or e.keychar = vbback) Then e.handled() = True Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellEndEdit If e.columnindex = 2 Then Call TotalPotongan() TextBox18.Text = Val(TextBox16.Text) - Val(TextBox17.Text) End If Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress 8
If Not ((e.keychar >= "0" And e.keychar <= "9") Or e.keychar = vbback) Then e.handled() = True Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Call Batalkan() Call BersihkanGrid() Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Call Batalkan() Me.Close() 'End End Class 4.12 Laporan Data Master Tahapan pembuatan laporan dilakukan dengan lanhkah-langkah sebagai berikut : 1. Membuat laporan dengan Crystal Report. Pembuatan laporan ini ada dua cara. 2. Membuat form khusus untuk menampilkan laporan. Form ini hanya terdiri dari sebuah object CrystalReportViewer dengan properti DOCK = FILL dan form dalam kondisi maximized 3. Membuat form pemanggil laporan 9
Coding Imports System.Data.OleDb Public Class LaporanMaster Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Laporan.Show() Laporan.CRV.ReportSource = Nothing Laporan.CRV.RefreshReport() Laporan.CRV.ReportSource = "laporan golongan.rpt" Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Laporan.Show() Laporan.CRV.ReportSource = Nothing Laporan.CRV.RefreshReport() Laporan.CRV.ReportSource = "laporan jabatan.rpt" Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Laporan.Show() Laporan.CRV.ReportSource = Nothing Laporan.CRV.RefreshReport() Laporan.CRV.ReportSource = "laporan petugas.rpt" Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Laporan.Show() Laporan.CRV.ReportSource = Nothing Laporan.CRV.RefreshReport() Laporan.CRV.ReportSource = "laporan potongan.rpt" Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Laporan.Show() Laporan.CRV.ReportSource = Nothing 10
Laporan.CRV.RefreshReport() Laporan.CRV.ReportSource = "laporan pegawai.rpt" Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click System.Windows.Forms.Help.ShowHelp(Me, "mengubah posisi database dalam crystal report.doc") End Class 11
4.13 Laporan Penggajian 1. Langkah pembuatan laporan penggajian sama dengan pembuatan laporan data master, yaitu membuat laporan penggajian dengan bentuk sesuai kebutuhan, membuat form khusus untuk menampilkan Laporan, dan membuat form pemanggil laporan. Hasil laporan terlihat pada gambar di bawah ini: 12
13