aplikasi-penggajian-vb6.pdf
TRANSCRIPT
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
1
PROGRAM PENGGAJIAN VB 6.0
Database Access, Crystal Report 8.5
Harga khusus untuk pembelajaran Rp. 50.000,-
Permintaan revisi dikenakan biaya sesuai tingkat kesulitan
Cara pembayaran melalui transfer ke salah satu rekening di bawah ini :
No Rek: 066 - 0525 - 947 (BCA an. Uus Rusmawan)
No Rek: 156 - 000 - 250 - 2146 (Mandiri an. Uus Rusmawan)
No Rek : 0139 - 0106 - 3038 - 504 (BRI an. Uus Rusmawan)
Program dikirim lewat email/Face Book (id : [email protected])
Peminat Hub Email : [email protected]
8.1 Normalisasi File Program penggajian ini dirancang dengan Normaliasi level ketiga (3NF) dengan bentuk seperti gambar berikut.
Gambar 8.1 Normalisasi File Program Penggajian
Program penggajian ini menyimpan data ke dua tabel yaitu tabel Gaji dan DetailGaji seperti terlihat pada tabel-tabel berikut ini.
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
2
Tabel Gaji Gaji
NomorSlp Tanggal Jam Pendapatan Potongan GajiBersih NIP KodeKsr 0709090001 09/09/07 11:43:32 PM 1350000 360000 990000 199607152 KSR01
Tabel DetailGaji DetailGaji
NomorSlp KodePrk Jumlah
0709090001 001 1000000
0709090001 002 200000
0709090001 003 150000
0709090001 101 135000
0709090001 102 100000
0709090001 103 125000
8.2 Database Dan Tabel Untuk mengetahui file database dan struktur masing-masing tabel berikut type data dan kunci primer maupun kunci tamunya silakan buka CD pendukung buku ini.
Gambar 8.2 Database Dan Tabel
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
3
8.3 Membuat Module Untuk memulai membuat program penggajian, aktifkanlah VB kemudian awali dengan membuat module lalu ketik coding berikut ini. Coding :
Public Conn As New ADODB.Connection Public RSPerkiraan As ADODB.Recordset Public RSDetail As ADODB.Recordset Public RSGaji As ADODB.Recordset Public RSKasir As ADODB.Recordset Public RSPegawai As ADODB.Recordset
Public Sub BukaDB() Set Conn = New ADODB.Connection Set RSPerkiraan = New ADODB.Recordset Set RSDetail = New ADODB.Recordset Set RSGaji = New ADODB.Recordset Set RSKasir = New ADODB.Recordset Set RSPegawai = New ADODB.Recordset Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ADOGaji.mdb" End Sub
Dengan asumsi form login, data pegawai, data perkiraan dan kasir telah dibuat, kini saatnya membuat form penggajian dengan bentuk seperti gambar 8.3.
8.4 Transaksi Penggajian Ilustrasi pada program ini adalah sebagai berikut: 1. Nomor slip gaji muncul secara otomatis, berubah setiap hari dan setiap ganti transaksi setelah slip gaji
sebelumnya disimpan. 2. Nama kasir dan kode kasir muncul secara otomatis dari hasil login. Kode kasir tidak ditampilkan dalam
form (LblKodeKsr.Visible = False). 3. Tanggal dan jam muncul secara otomatis diambil dari sistem komputer, oleh karena itu diharapkan
mengecek kembali validasi tanggal dan jam komputer sebelum program dijalankan. 4. Hal pertama yang harus dilakukan adalah memilih NIP kemudian menekan enter, jika bulan ini NIP
tersebut telah menerima gaji maka akan muncul pesan bahwa NIP tersebut telah menerima gaji (mencegah penerimaan gaji dua kali dalam satu bulan).
5. Saat melakukan penggajian kode perkiraan (pembayaran) dapat dilakukan dalam Grid atau memilih dari list kemudian menekan enter. Setelah itu isilah jumlah pembayarannya.
6. Khusus untuk pajak, disini kami asumsikan sebesar 10% dari total pendapatan dan akan menjadi potongan bagi pemdapatan hingga akhirnya ditemukan gaji bersihnya.
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
4
Gambar 8.3 Transaksi Penggajian
8.5 Slip Gaji
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
5
Gambar 8.4 Slip Gaji
8.6 Laporan Penggajian Dalam pembuatan laporan, kita dapat melakukan banyak kreasi diantaranya membuat laporan yang bersifat parsial, artinya laporan dibuat per karyawan atau laporan yang bersifat akumulasi, artinya dalam satu halaman terdapat banyak NIP (karyawan). Buatlah form seperti bentuk di bawah ini.
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
6
Gambar 8.5 Laporan Penggajian
Coding: Private Sub Form_Load() 'buatlah looping untuk bulan dari 1-12 'dan tahun mulai tahun 2001 s/d 2020 For i = 1 To 12 Combo1.AddItem i Combo3.AddItem i Next i For i = 1 To 20 Combo2.AddItem 2000 + i Combo4.AddItem 2000 + i Next i End Sub
Private Sub Combo1_Keypress(Keyascii As Integer) If Combo1 = "" Or Keyascii = 27 Then Unload Me End Sub
'Lap Bulanan Private Sub Combo2_Click() 'buka database Call BukaDB 'cari data yang tanggal dan bulannya dipilih di Combo1 dan Combo2 RSGaji.Open "select * from Gaji where month(tanggal)='" & Val(Combo1) & "' and year(tanggal)='" & (Combo2) & "'", Conn 'jika tidak cocok, munculkan pesan If RSGaji.EOF Then MsgBox "Data tidak ditemukan" Exit Sub Combo1.SetFocus End If 'jika ditemukan panggil file laporan yang 'datanya bulannya=Combo1 dan tahunnya= Combo2 CR.SelectionFormula = "Month({Gaji.Tanggal})=" & Val(Combo1.Text) & " and Year({Gaji.Tanggal})=" & Val(Combo2.Text) CR.ReportFileName = App.Path & "\Lap Gaji.rpt" CR.WindowState = crptMaximized CR.RetrieveDataFiles
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
7
CR.Action = 1 End Sub
Private Sub Combo3_Keypress(Keyascii As Integer) If Combo3 = "" Or Keyascii = 27 Then Unload Me End Sub
'Lap Bulanan Private Sub combo4_Click() 'buka database Call BukaDB 'cari data yang tanggal dan bulannya dipilih di Combo1 dan combo4 RSGaji.Open "select * from Gaji where month(tanggal)='" & Val(Combo3) & "' and year(tanggal)='" & (Combo4) & "'", Conn 'jika tidak cocok, munculkan pesan If RSGaji.EOF Then MsgBox "Data tidak ditemukan" Exit Sub Combo1.SetFocus End If 'jika ditemukan panggil file laporan yang 'datanya bulannya=Combo1 dan tahunnya= combo4 CR.SelectionFormula = "Month({Gaji.Tanggal})=" & Val(Combo3.Text) & " and Year({Gaji.Tanggal})=" & Val(Combo4.Text) CR.ReportFileName = App.Path & "\Lap Gaji1.rpt" CR.WindowState = crptMaximized CR.RetrieveDataFiles CR.Action = 1 End Sub
Dengan program di atas dihasilkan laporan dengan bentuk seperti dua gambar berikut.
Gambar 8.6 Laporan Gaji Per Pegawai
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
8
Gambar 8.7 Laporan Gaji Akumulasi Per Bulan
8.7 Rincian Penggajian Program ini berfungsi untuk melihat kembali data penggajian yang telah disimpan. Buatlah form dengan bentuk seperti gambar di bawah ini.
Gambar 8.8 Rincian Penggajian
Coding: Private Sub CmdCetak_KeyPress(Keyascii As Integer) If Keyascii = 27 Then Unload Me End Sub
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
9
Private Sub Combo1_Keypress(Keyascii As Integer) If Keyascii = 27 Then Unload Me End Sub
Private Sub Form_Load() Call BukaDB Combo1.Clear RSGaji.Open "Select Distinct NomorSlp from Gaji", Conn
Do Until RSGaji.EOF Combo1.AddItem RSGaji!NomorSlp RSGaji.MoveNext Loop Conn.Close End Sub
Private Sub Combo1_Click() Call BukaDB RSGaji.Open "select * from Gaji where NomorSlp='" & Combo1.Text & "'", Conn RSPegawai.Open "select * from Pegawai where NIP='" & RSGaji!NIP & "'", Conn If Not RSPegawai.EOF Then TxtNIP = RSPegawai!NIP TxtNama = RSPegawai!NamaPgw TxtBagian = RSPegawai!Bagian End If
DTDetail.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\ADOGaji.mdb" DTDetail.RecordSource = "select NamaPrk as [Nama Pembayaran],Jumlah from Perkiraan,DetailGaji where DetailGaji.kodePrk=Perkiraan.kodePrk and NomorSlp='" & Combo1.Text & "'" Set DataGrid1.DataSource = DTDetail DTDetail.Refresh DataGrid1.Refresh
TxtPendapatan = Format(GajiKotor, "##,###,###") TxtPotongan = Format(Potongan, "##,###,###") TxtTotal = Format(GajiKotor - Potongan, "##,###,###") Conn.Close End Sub
Function GajiKotor() Set RSGajiKotor = New ADODB.Recordset RSGajiKotor.Open "Select sum(Jumlah) as TTLPendapatan from DetailGaji where left(kodeprk,1)=0 and NomorSlp='" & Combo1 & "'", Conn GajiKotor = RSGajiKotor!TTLPendapatan End Function
Function Potongan() Set RSPotongan = New ADODB.Recordset RSPotongan.Open "Select sum(Jumlah) as TTLPotongan from DetailGaji where left(kodeprk,1)=1 and NomorSlp='" & Combo1 & "'", Conn Potongan = RSPotongan!TTLPotongan End Function
Private Sub Bersihkan() TxtNamaPgw = "" TxtBagian = "" TxtPendapatan = "" TxtPotongan = "" TxtTotal = "" End Sub
Private Sub CmdBatal_Click() Bersihkan
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
10
Form_Activate End Sub
Private Sub CmdTutup_Click() CmdBatal_Click Unload Me End Sub
Private Sub CmdCetak_click() If Combo1 = "" Then MsgBox "Nomor slip gaji kosong" Exit Sub Combo1.SetFocus End If Pesan = MsgBox("Printer sudah siap..?", vbYesNo, "Konfirmasi") If Pesan = vbYes Then Dim MGrs As String Printer.Font = "Courier New" Call BukaDB RSGaji.Open "select * from Gaji Where NomorSlp ='" & Combo1 & "'", Conn RSKasir.Open "select * from kasir where kodeksr='" & RSGaji!KodeKsr & "'", Conn RSKasir.Requery RSPegawai.Open "select * from pegawai where NIP='" & RSGaji!NIP & "'", Conn RSPegawai.Requery Printer.Print Printer.FontBold = True Printer.Print Printer.FontBold = False Printer.CurrentX = 0 Printer.CurrentY = 0 Printer.Print Tab(5); "Nomor Slip : "; RSGaji!NomorSlp Printer.Print Tab(5); "Tanggal : "; Format(RSGaji!Tanggal, "DD-MMMM-YYYY") Printer.Print Tab(5); "NIP : "; RSGaji!NIP Printer.Print Tab(5); "Nama : "; RSPegawai!NamaPgw Printer.Print Tab(5); "Kasir : "; RSKasir!NamaKsr MGrs = String$(33, "-") Printer.Print Tab(5); MGrs
RSDetail.Open "select * from DetailGaji Where NomorSlp ='" & Combo1 & "'", Conn RSDetail.Requery RSDetail.MoveFirst Do While Not RSDetail.EOF Set RSPerkiraan = New ADODB.Recordset RSPerkiraan.Open "select * from Perkiraan where KodePrk='" & RSDetail!KodePrk & "'", Conn Printer.Print Tab(5); RSPerkiraan!NamaPrk; If Left(RSDetail!KodePrk, 1) = "0" Then Printer.Print Tab(25); RKanan(RSDetail!Jumlah, "###,###,### +") Else Printer.Print Tab(25); RKanan(RSDetail!Jumlah, "###,###,### -") End If RSDetail.MoveNext Loop Printer.Print Tab(5); MGrs Printer.Print Tab(5); "Pendapatan :"; Printer.Print Tab(25); RKanan(RSGaji!Pendapatan, "###,###,### +"); Printer.Print Tab(5); "Potongan :"; Printer.Print Tab(25); RKanan(RSGaji!Potongan, "###,###,### -"); Printer.Print Tab(5); MGrs Printer.Print Tab(5); "Total :"; If RSGaji!Pendapatan = RSGaji!Potongan Then Printer.Print Tab(34); RSGaji!Pendapatan - RSGaji!Potongan Else Printer.Print Tab(25); RKanan(RSGaji!Pendapatan - RSGaji!Potongan, "###,###,### +"); End If Printer.Print Tab(5); MGrs
-
www.konsultasivb.com Pusat Kursus VB.Net & Bimbingan Tugas Akhir
11
Printer.Print Printer.EndDoc End If End Sub
Private Function RKanan(NData, CFormat) As String RKanan = Format(NData, CFormat) RKanan = Space(Len(CFormat) - Len(RKanan)) + RKanan End Function