aplikasi-penggajian-vb6.pdf

Upload: uusrusmawan

Post on 14-Jan-2016

28 views

Category:

Documents


0 download

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