Aplikasi Program Penggajian Vb.net 2010
Program Penggajian Vb.net 2010

 1. Membuat Project Penggajian VB.net 2010

Pada kesempatan ini, saya akan membahas pembuatan Program Penggajian dengan Vb.net 2010, Program Pengajian merupakan salah satu program yang paling banyak dijadikan contoh dalam tugas akhir (TA) atau skripsi karena desain databasenya membentuk konsep One To many dengan level 3NF / Normalisasi 3 . Aplikasi penggajian ini memiliki banyak ragamnya sesuai kebijakan masing-masing perusahaan. Untuk membuat aplikasi penggajian dengan Vb.net 2010 ini langkah pertama yang harus dilakukan adalah membuat project baru dengan vb.net 2010, kemudian simpan project tersebut di folder tertentu, setelah itu barulah membuat database.

Untuk database saya menggunakan database Access 2007. Catatan utama adalah menyimpan database sebaiknya di  bin > Debug folder project. Rancangan database dalam aplikasi penggajian ini dapat dilihat pada project yang saya sertakan. Secara garis besar tabel-tabel dalam aplikasi penggajian ini terdiri dari :

  1. Tabel Golongan
  2. Tabel Jabatan
  3. Tabel Petugas
  4. Tabel Pegawai
  5. Tabel Potongan
  6. Tabel Gaji
  7. Tabel Detailgaji

 

2. Normalisasi File Dan Relasi Tabel

Normalisasi file dalam program penggajian dengan VB.net 2010 terlihat pada gambar di bawah ini:

Normalisasi File Dan Relasi Tabel Penggajian
Normalisasi File Dan Relasi Tabel

 

3. Membuat Module

Tujuan pembuatan Module adalah untuk mempercepat dan mempermudah akses ke database, dalam pembuatan program Penggajian dengan vb.net 2010 ini, menggunakan 2 Module :

  • Modul Koneksi Database
  • Modul Pemanggilan Laporan untuk Crystal Report agar tidak terikat database dalam folder project yang pertama dibuat.

Koneksi cukup dibuat satu kali tetapi dapat dipanggil berkali-kali di setiap form dalam project yang yang sangkutan. Cara membuat module adalah klik menu menu Project > add module > Add, Beri nama Module1 kemudian ketiklah coding berikut ini.

' Baris kode ini digunakan untuk refrence fungsi .net system data OLEDB untuk- 
' koneksi ke database
Imports System.Data.OleDb
Imports System.Windows.Forms

' Baris kode ini digunakan untuk refrence fungsi referensi Crystal report
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module Module1
    ' Baris kode ini digunakan untuk deklarasi turunan yang digunakan- 
    ' untuk berkomunikasi dengan database
    Public Conn As OleDbConnection
    Public da As OleDbDataAdapter
    Public ds As DataSet
    Public cmd As OleDbCommand
    Public rd As OleDbDataReader
    Public str As String
    ' Baris kode ini digunakan untuk deklarasi turunan yang digunakan- 
    ' untuk berkomunikasi dengan Crystal Report
    Public cryRpt As New ReportDocument
    Public crtableLogoninfos As New TableLogOnInfos
    Public crtableLogoninfo As New TableLogOnInfo
    Public crConnectionInfo As New ConnectionInfo
    Public CrTables As Tables
    Public CrTable As Table

    ' Membuat prosedur dengan nama "Module_Konfigurasi_laporan" -
    ' untuk membuat koneksi database Ms Access 2007 ke Laporan Crystal Report agar -
    ' Posisi crystal report tidak tergantung dengan Drive komputer saat membuat -
    ' Pogram.
    Public Sub Module_Konfigurasi_laporan()
        Call Koneksi()
        With crConnectionInfo
            .ServerName = (Application.StartupPath.ToString & "\DBPenggajian.accdb")
            .DatabaseName = (Application.StartupPath.ToString & "\DBPenggajian.accdb")
            .UserID = "Admin"
            .Password = ""
        End With

        CrTables = cryRpt.Database.Tables
        For Each CrTable In CrTables
            crtableLogoninfo = CrTable.LogOnInfo
            crtableLogoninfo.ConnectionInfo = crConnectionInfo
            CrTable.ApplyLogOnInfo(crtableLogoninfo)
        Next
    End Sub

    ' Membuat prosedur Function Global dengan nama "Koneksi" yang digunakan-
    ' untuk membuat koneksi database ke Ms Access 2007.
    Public Sub Koneksi()
        str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DBPenggajian.accdb"
        Conn = New OleDbConnection(str)
        If Conn.State = ConnectionState.Closed Then
            Conn.Open()
        End If
    End Sub
End Module

Catatan : Untuk struktur project program penggajian dengan vb.net 2010 ini adalah sebagai berikut :

 

4. Form Jabatan

Masukkan kode form jabatan sebagai berikut :

 

Imports System.Data.OleDb
Public Class FrmJabatan

    'Membuat Prosedur untuk membersihkan text
    Sub Kosongkan()
        TxtKode.Text = ""
        TxtNama.Text = ""
        TxtGapok.Text = ""
        TxtTunjangan.Text = ""
        TxtKode.Focus()
    End Sub

    Sub DataBaru()
        TxtNama.Text = ""
        TxtGapok.Text = ""
        TxtTunjangan.Text = ""
        TxtNama.Focus()
    End Sub

    'Membuat Prosedur untuk menampilkan data Jabatan ke grid
    Sub Tampilkan()
        da = New OleDbDataAdapter("Select * from Jabatan", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "Jabatan")
        DGV.DataSource = (ds.Tables("Jabatan"))
        DGV.ReadOnly = True
    End Sub

    'Jika TxtKode di Enter maka :
    Private Sub TxtKode_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKode.KeyPress
        If e.KeyChar = Chr(13) Then
            'Mencari data Jabatan berdasarkan Kode Jabatan
            TxtKode.Text = UCase(TxtKode.Text)
            cmd = New OleDbCommand("select * from Jabatan where Kode_Jabatan='" & TxtKode.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika ada maka menampikan data
            If rd.HasRows = True Then
                TxtNama.Text = rd.Item(1)
                TxtGapok.Text = rd.Item(2)
                TxtTunjangan.Text = rd.Item(3)
                TxtNama.Focus()
            Else
                'jika tidak ada maka lanjut
                Call DataBaru()
                TxtNama.Focus()
            End If
        End If
    End Sub

    Private Sub TxtNama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNama.KeyPress
        If e.KeyChar = Chr(13) Then
            TxtNama.Text = UCase(TxtNama.Text)
            TxtGapok.Focus()
        End If
    End Sub

    Private Sub TxtGapok_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtGapok.KeyPress
        'Mengunci hanya input angka
        If e.KeyChar = Chr(13) Then TxtTunjangan.Focus()
        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub TxtTunjangan_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtTunjangan.KeyPress If e.KeyChar = Chr(13) Then BtnSimpan.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
    End Sub

    Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
        If TxtKode.Text = "" Or TxtNama.Text = "" Or TxtGapok.Text = "" Or TxtTunjangan.Text = "" Then
            MsgBox("Data Belum Lengkap")
            Exit Sub
        Else
            'Cari data Jabatan apakah sudah ada data sebelumnya..
            cmd = New OleDbCommand("Select * from Jabatan where Kode_Jabatan='" & TxtKode.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika data Jabatan tidak ada, maka Proses Simpan
            If Not rd.HasRows Then
                Dim sqltambah As String = "Insert into Jabatan(kode_Jabatan,Nama_Jabatan,Gaji_Pokok,TJ_Jabatan) values " & _
                "('" & TxtKode.Text & "','" & TxtNama.Text & "','" & TxtGapok.Text & "','" & TxtTunjangan.Text & "')"
                cmd = New OleDbCommand(sqltambah, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            Else
                'Jika data Jabatan sudah ada sebelumnya, maka Proses Edit
                Dim sqledit As String = "Update Jabatan set " & _
                "Nama_Jabatan='" & TxtNama.Text & "', " & _
                "Gaji_Pokok='" & TxtGapok.Text & "', " & _
                "TJ_Jabatan='" & TxtTunjangan.Text & "' " & _
                "where Kode_Jabatan='" & TxtKode.Text & "'"
                cmd = New OleDbCommand(sqledit, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            End If
        End If
    End Sub

    Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
        Call Kosongkan()
    End Sub

    Private Sub BtnTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTutup.Click
        Me.Close()
    End Sub

    Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click
        If TxtKode.Text = "" Then
            MsgBox("Isi kode Jabatan terlebih dahulu")
            TxtKode.Focus()
            Exit Sub
        Else
            'Hapus Data Jabatan Berdasarkan Kode Jabatan
            If MessageBox.Show("Yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                cmd = New OleDbCommand("Delete * from Jabatan where Kode_Jabatan='" & TxtKode.Text & "'", Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            Else
                Call Kosongkan()
            End If
        End If
    End Sub

    Private Sub Jabatan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Saat form tampil, memanggil prosedur Koneksi yang ada di Module
        Call Koneksi()
        Call Tampilkan()
    End Sub

    Private Sub DGV_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellContentClick

    End Sub

    Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.CellMouseClick
        'Menampilkan data Jabatan saat Grid di Klik
        On Error Resume Next
        TxtKode.Text = DGV.Rows(e.RowIndex).Cells(0).Value
        cmd = New OleDbCommand("select * from Jabatan where Kode_Jabatan='" & TxtKode.Text & "'", Conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows = True Then
            TxtNama.Text = rd.Item(1)
            TxtGapok.Text = rd.Item(2)
            TxtTunjangan.Text = rd.Item(3)
            TxtNama.Focus()
        End If
    End Sub
End Class

 

5. Form Golongan

Masukkan kode form Golongan sebagai berikut :

 

Imports System.Data.OleDb
Public Class FrmGolongan

    'Membuat Prosedur untuk membersihkan text
    Sub Kosongkan()
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""
        TextBox6.Text = ""
        TextBox1.Focus()
    End Sub

    Sub DataBaru()
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""
        TextBox6.Text = ""
        TextBox6.Focus()
    End Sub

    'Membuat Prosedur untuk menampilkan data golongan ke grid
    Sub Tampilkan()
        da = New OleDbDataAdapter("Select * from Golongan", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "Golongan")
        DGV.DataSource = (ds.Tables("Golongan"))
        DGV.ReadOnly = True
    End Sub

    'Jika textbox1 di Enter maka :
    Private Sub textbox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            'Mencari data golongan berdasarkan Golongan
            cmd = New OleDbCommand("select * from Golongan where Golongan='" & TextBox1.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika ada maka menampikan data
            If rd.HasRows = True Then
                TextBox2.Text = rd.Item(1)
                TextBox3.Text = rd.Item(2)
                TextBox4.Text = rd.Item(3)
                TextBox5.Text = rd.Item(4)
                TextBox6.Text = rd.Item(5)
                TextBox2.Focus()
            Else
                'jika tidak ada maka lanjut
                Call DataBaru()
                TextBox2.Focus()
            End If
        End If
        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub textbox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress 'Mengunci hanya input angka If e.KeyChar = Chr(13) Then TextBox3.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub textbox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If e.KeyChar = Chr(13) Then TextBox4.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub textbox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress If e.KeyChar = Chr(13) Then TextBox5.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub textbox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress If e.KeyChar = Chr(13) Then TextBox6.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub textbox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress If e.KeyChar = Chr(13) Then BtnSimpan.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
    End Sub

    Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
        If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then
            MsgBox("Data Belum Lengkap")
            Exit Sub
        Else
            'Cari data Golongan apakah sudah ada data sebelumnya..
            cmd = New OleDbCommand("Select * from Golongan where Golongan='" & TextBox1.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika data Golongan tidak ada, maka Proses Simpan
            If Not rd.HasRows Then
                Dim sqltambah As String = "Insert into Golongan(Golongan,TJ_Suami_Istri,TJ_Anak,Uang_Makan,uang_Lembur,askes) values " & _
                "('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "')"
                cmd = New OleDbCommand(sqltambah, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            Else
                'Jika data Golongan sudah ada sebelumnya, maka Proses Edit
                Dim sqledit As String = "Update Golongan set " & _
                "TJ_Suami_Istri='" & TextBox2.Text & "', " & _
                "TJ_Anak='" & TextBox3.Text & "', " & _
                "Uang_Makan='" & TextBox4.Text & "', " & _
                "uang_Lembur='" & TextBox5.Text & "', " & _
                "askes='" & TextBox6.Text & "' " & _
                "where Golongan='" & TextBox1.Text & "'"
                cmd = New OleDbCommand(sqledit, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            End If
        End If
    End Sub

    Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
        Call Kosongkan()
    End Sub

    Private Sub BtnTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTutup.Click
        Me.Close()
    End Sub

    Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click
        If TextBox1.Text = "" Then
            MsgBox("Isi kode Golongan terlebih dahulu")
            TextBox1.Focus()
            Exit Sub
        Else
            'Hapus Data golongan Berdasarkan Golongan
            If MessageBox.Show("Yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                cmd = New OleDbCommand("Delete * from Golongan where Golongan='" & TextBox1.Text & "'", Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            Else
                Call Kosongkan()
            End If
        End If
    End Sub

    Private Sub Golongan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Saat form tampil, memanggil prosedur Koneksi yang ada di Module
        Call Koneksi()
        Call Tampilkan()
    End Sub

    Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.CellMouseClick
        On Error Resume Next
        'Menampilkan data Golongan saat Grid di Klik
        TextBox1.Text = DGV.Rows(e.RowIndex).Cells(0).Value
        cmd = New OleDbCommand("select * from Golongan where Golongan='" & TextBox1.Text & "'", Conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows = True Then
            TextBox2.Text = rd.Item(1)
            TextBox3.Text = rd.Item(2)
            TextBox4.Text = rd.Item(3)
            TextBox5.Text = rd.Item(4)
            TextBox6.Text = rd.Item(5)
            TextBox2.Focus()
        End If
    End Sub
End Class

6. Form Pegawai

 

Form Pegawai Program Penggajian Vb.net 2010
Form Pegawai Program Penggajian Vb.net 2010

Masukkan kode Form Pegawai sebagai berikut :

 

Imports System.Data.OleDb

Public Class FrmPegawai
    Sub Kosongkan()
        TxtKode.Text = ""
        TxtNama.Text = ""
        TxtAlamat.Text = ""
        TxtNo.Text = ""
        CmbStatus.Text = ""
        TxtJumlahAnak.Text = ""
        CmbKodeJabatan.Text = ""
        CmbKodeGolongan.Text = ""
        TxtKode.Focus()
    End Sub

    Sub DataBaru()
        TxtNama.Text = ""
        TxtAlamat.Text = ""
        TxtNo.Text = ""
        CmbStatus.Text = ""
        TxtJumlahAnak.Text = ""
        CmbKodeJabatan.Text = ""
        CmbKodeGolongan.Text = ""
        TxtNama.Focus()
    End Sub

    Sub TabelPegawai()
        'Menampilkan Data Pegawai di Grid
        da = New OleDbDataAdapter("Select * from Pegawai", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "Pegawai")
        DGV.DataSource = (ds.Tables("Pegawai"))
        DGV.ReadOnly = True
    End Sub

    Sub TampilJabatan()
        'Menampilkan Kode_jabatan di Combobox Jabatan
        cmd = New OleDbCommand("select distinct kode_jabatan from jabatan", Conn)
        rd = cmd.ExecuteReader
        Do While rd.Read
            CmbKodeJabatan.Items.Add(rd.Item(0))
        Loop
    End Sub

    Sub TampilGolongan()
        'Menampilkan Golongan di Combobox golongan
        cmd = New OleDbCommand("select distinct Golongan from golongan", Conn)
        rd = cmd.ExecuteReader
        Do While rd.Read
            CmbKodeGolongan.Items.Add(rd.Item(0))
        Loop
    End Sub

    Sub TampilStatus()
        'Menambahkan Status di ComboBox Status
        CmbStatus.Items.Add("Menikah")
        CmbStatus.Items.Add("Belum Menikah")
    End Sub

    Sub TampilTabel()
        Call TabelPegawai()
    End Sub

    Sub TampilPilihan()
        Call TampilJabatan()
        Call TampilGolongan()
        Call TampilStatus()
    End Sub

    Private Sub TxtKode_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKode.KeyPress
        If e.KeyChar = Chr(13) Then
            'Mencari NIP Pegawai apakah sudah ada sebelumnya
            cmd = New OleDbCommand("select * from Pegawai where NIP='" & TxtKode.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika NIP sudah ada, maka akan menampilkan data Pegawai
            If rd.HasRows = True Then
                TxtNama.Text = rd.Item(1)
                TxtAlamat.Text = rd.Item(2)
                TxtNo.Text = rd.Item(3)
                CmbStatus.Text = rd.Item(4)
                TxtJumlahAnak.Text = rd.Item(5)
                CmbKodeJabatan.Text = rd.Item(6)
                CmbKodeGolongan.Text = rd.Item(7)
                TxtNama.Focus()
            Else
                Call DataBaru()
                TxtNama.Focus()
            End If
        End If
        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub TxtNama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNama.KeyPress If e.KeyChar = Chr(13) Then TxtAlamat.Focus() End If End Sub Private Sub TxtAlamat_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtAlamat.KeyPress If e.KeyChar = Chr(13) Then TxtNo.Focus() End If End Sub Private Sub TxtNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNo.KeyPress If e.KeyChar = Chr(13) Then CmbStatus.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True End Sub Private Sub CmbStatus_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbStatus.KeyPress If e.KeyChar = Chr(13) Then TxtJumlahAnak.Focus() End Sub Private Sub TxtJumlahAnak_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtJumlahAnak.KeyPress If e.KeyChar = Chr(13) Then CmbKodeJabatan.Focus() If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
    End Sub

    Private Sub CmbKodeJabatan_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbKodeJabatan.KeyPress
        If e.KeyChar = Chr(13) Then CmbKodeGolongan.Focus()
    End Sub

    Private Sub CmbKodeGolongan_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CmbKodeGolongan.KeyPress
        If e.KeyChar = Chr(13) Then BtnSimpan.Focus()
    End Sub

    Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
        If TxtKode.Text = "" Or TxtNama.Text = "" Or TxtAlamat.Text = "" Or TxtNo.Text = "" Or CmbStatus.Text = "" Or
            TxtJumlahAnak.Text = "" Or CmbKodeJabatan.Text = "" Or CmbKodeGolongan.Text = "" Then
            MsgBox("Data Belum Lengkap")
            Exit Sub
        Else
            'Mencari NIP apakah sudah ada sebelumnya..
            cmd = New OleDbCommand("Select * from Pegawai where NIP='" & TxtKode.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika NIP Belum ada, Maka proses Simpan
            If Not rd.HasRows Then
                Dim sqltambah As String = "Insert into Pegawai(NIP,Nama_Pegawai,Alamat,No_Telphon,Status,Jumlah_Anak,Kode_Jabatan,Golongan) values " & _
                "('" & TxtKode.Text & "','" & TxtNama.Text & "','" & TxtAlamat.Text & "','" & TxtNo.Text & "','" & CmbStatus.Text & "','" & _
                TxtJumlahAnak.Text & "','" & CmbKodeJabatan.Text & "','" & CmbKodeGolongan.Text & "')"
                cmd = New OleDbCommand(sqltambah, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call TabelPegawai()
            Else
                ' Jika NIP Sudah ada, maka Ubah data Pegawai berdasarkan kode
                cmd = New OleDbCommand("Update Pegawai set Nama_Pegawai='" & TxtNama.Text & _
                                            "',Alamat='" & TxtAlamat.Text & "',No_Telphon='" & TxtNo.Text & _
                                            "',Status='" & CmbStatus.Text & "',Jumlah_Anak='" & TxtJumlahAnak.Text & _
                                            "',Kode_Jabatan='" & CmbKodeJabatan.Text & "',Golongan='" & CmbKodeGolongan.Text & "' where NIP='" & TxtKode.Text & "'", Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call TabelPegawai()
            End If
        End If
    End Sub

    Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
        Call Kosongkan()
    End Sub

    Private Sub BtnTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTutup.Click
        Me.Close()
    End Sub

    Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click
        If TxtKode.Text = "" Then
            MsgBox("Isi kode Pegawai terlebih dahulu")
            TxtKode.Focus()
            Exit Sub
        Else
            'Menghapus data Pegawai berdasarkan NIP
            If MessageBox.Show("Yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                cmd = New OleDbCommand("Delete * from Pegawai where NIP='" & TxtKode.Text & "'", Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call TabelPegawai()
            Else
                Call Kosongkan()
            End If
        End If
    End Sub

    Private Sub FrmPegawai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Koneksi()
        Call TampilTabel()
        Call TampilPilihan()
    End Sub

    Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.CellMouseClick
        On Error Resume Next
        'Menampilkan data Pegawai saat Klik Grid
        TxtKode.Text = DGV.Rows(e.RowIndex).Cells(0).Value
        cmd = New OleDbCommand("select * from Pegawai where NIP='" & TxtKode.Text & "'", Conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows = True Then
            TxtNama.Text = rd.Item(1)
            TxtAlamat.Text = rd.Item(2)
            TxtNo.Text = rd.Item(3)
            CmbStatus.Text = rd.Item(4)
            TxtJumlahAnak.Text = rd.Item(5)
            CmbKodeJabatan.Text = rd.Item(6)
            CmbKodeGolongan.Text = rd.Item(7)
            TxtNama.Focus()
        End If
    End Sub

    Private Sub TxtCari_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtCari.TextChanged
        'Cari Pegawai berdasarkan nama pegawai
        da = New OleDbDataAdapter("Select * from Pegawai where nama_Pegawai like '%" & TxtCari.Text & "%' order by nama_Pegawai asc", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "Pegawai")
        DGV.DataSource = (ds.Tables("Pegawai"))
        DGV.ReadOnly = True
    End Sub

    Private Sub BtnJabatan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnJabatan.Click
        FrmJabatan.Show()
    End Sub

    Private Sub BtnGolongan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGolongan.Click
        BtnGolongan.Show()
    End Sub
End Class

7. Form Daftar Pegawai

Masukkan kode Form Daftar Pegawai sebagai berikut :

Imports System.Data.OleDb
Public Class FrmDaftarPegawai

    'Membuat prosedur untuk menampilkan data di listbox
    Sub Tampilkan()
        cmd = New OleDbCommand("Select * from Pegawai", Conn)
        rd = cmd.ExecuteReader
        Do While rd.Read
            ListBox1.Items.Add(rd.GetString(0) & vbTab & rd.GetString(1))
        Loop
    End Sub

    Private Sub DaftarPegawai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = ""
        Call Koneksi()
        Call Tampilkan()
        ListBox1.Focus()
    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            'Cari data pegawai berdasarkan Nama Pegawai
            cmd = New OleDbCommand("Select * from Pegawai where nama_Pegawai like '%" & TextBox1.Text & "%'", Conn)
            rd = cmd.ExecuteReader
            If rd.HasRows Then
                ListBox1.Items.Clear()
                Do While rd.Read
                    ListBox1.Items.Add(rd.GetString(0) & vbTab & rd.GetString(1))
                Loop
            Else
                MsgBox("Nama Pegawai tidak ditemukan")
                TextBox1.Focus()
            End If
        ElseIf e.KeyChar = Chr(27) Then
            Me.Close()
        End If
    End Sub

    Private Sub ListBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ListBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            'Menampilkan NIP Pegawai ke Form Penggajian
            FrmPenggajian1.TextBox3.Text = Microsoft.VisualBasic.Left(ListBox1.Text, 8)
            Me.Close()
        End If
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        'Menampilkan NIP Pegawai ke Form Penggajian
        FrmPenggajian1.TextBox3.Text = Microsoft.VisualBasic.Left(ListBox1.Text, 8)
        Me.Close()
    End Sub
End Class

8. Form Potongan

Masukkan kode Form Potongan sebagai berikut :

Imports System.Data.OleDb

Public Class FrmPotongan
    Sub Kosongkan()
        TxtKode.Text = ""
        TxtNama.Text = ""
        TxtKode.Focus()
    End Sub

    Sub DataBaru()
        TxtNama.Text = ""
        TxtNama.Focus()
    End Sub

    Sub Tampilkan()
        da = New OleDbDataAdapter("Select * from Potongan", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "Potongan")
        DGV.DataSource = (ds.Tables("Potongan"))
        DGV.ReadOnly = True
    End Sub

    Private Sub TxtKode_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If e.KeyChar = Chr(13) Then
            'Cari Kode Potongan apakah sudah ada sebelumnya..
            TxtKode.Text = UCase(TxtKode.Text)
            cmd = New OleDbCommand("select * from Potongan where Kode_Potongan='" & TxtKode.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            If rd.HasRows = True Then
                TxtNama.Text = rd.Item(1)
                TxtNama.Focus()
            Else
                Call DataBaru()
                TxtNama.Focus()
            End If
        End If
        If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
    End Sub

    Private Sub TxtNama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If e.KeyChar = Chr(13) Then
            TxtNama.Text = UCase(TxtNama.Text)
            BtnSimpan.Focus()
        End If
    End Sub

    Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
        If TxtKode.Text = "" Or TxtNama.Text = "" Then
            MsgBox("Data Belum Lengkap")
            Exit Sub
        Else
            'Cari Kode Potongan apakah sudah ada sebelumnya..
            cmd = New OleDbCommand("Select * from Potongan where Kode_Potongan='" & TxtKode.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            'Jika Kode Potongan belum ada, maka proses simpan..
            If Not rd.HasRows Then
                Dim sqltambah As String = "Insert into Potongan(kode_Potongan,Nama_Potongan) values " & _
                "('" & TxtKode.Text & "','" & TxtNama.Text & "')"
                cmd = New OleDbCommand(sqltambah, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            Else
                'Jika Kode Potongan sudah ada, maka proses edit
                Dim sqledit As String = "Update Potongan set " & _
                "Nama_Potongan='" & TxtNama.Text & "' where Kode_Potongan='" & TxtKode.Text & "'"
                cmd = New OleDbCommand(sqledit, Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            End If
        End If
    End Sub

    Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
        Call Kosongkan()
    End Sub

    Private Sub BtnTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTutup.Click
        Me.Close()
    End Sub

    Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click
        If TxtKode.Text = "" Then
            MsgBox("Isi kode Potongan terlebih dahulu")
            TxtKode.Focus()
            Exit Sub
        Else
            'Hapus data potongan berdasarkan Kode_Potongan
            If MessageBox.Show("Yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                cmd = New OleDbCommand("Delete * from Potongan where Kode_Potongan='" & TxtKode.Text & "'", Conn)
                cmd.ExecuteNonQuery()
                Call Kosongkan()
                Call Tampilkan()
            Else
                Call Kosongkan()
            End If
        End If
    End Sub

    Private Sub Potongan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Koneksi()
        Call Tampilkan()
    End Sub

    Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.CellMouseClick
        'Menampilkan data potongan saat klik Grid
        On Error Resume Next
        TxtKode.Text = DGV.Rows(e.RowIndex).Cells(0).Value
        cmd = New OleDbCommand("select * from Potongan where Kode_Potongan='" & TxtKode.Text & "'", Conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows = True Then
            TxtNama.Text = rd.Item(1)
            TxtNama.Focus()
        End If
    End Sub
End Class

9. Form Transaksi Penggajian

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. Jika mencari data NIP, tingal enter di kotak NIP maka akan tampil list pegawai
  3. Kemudian dilanjutkan dengan pengisian jumlah jam lembur dalam sebulan
  4. Kemudian dilajutkan dengan pengisian rincian potongan mulai dari pajak dll
  5. Jika data sudah benar, maka klik button simpan
Program Penggajian Vb.net 2010
Form Penggajian Vb.net 2010

Masukkan kode Form Penggajian sebagai berikut :

Imports System.Data.OleDb
Imports System.Windows.Forms

Public Class FrmPenggajian1

    Sub Tampilkan()
        'Menampilkan Data Potongan di Grid
        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
        DGV.Columns(1).Width = 125
    End Sub

    Sub NomorOtomatis()
        'Membuat Nomor Slip Otomatis
        cmd = New OleDbCommand("Select * from Gaji where Nomor_Slip in (select max(Nomor_Slip) from Gaji) order by Nomor_Slip desc", Conn)
        Dim urutan As String
        Dim hitung As Long
        rd = cmd.ExecuteReader
        rd.Read()
        If Not rd.HasRows Then
            urutan = Format(Now, "yyMMdd") + "0001"
        Else
            If Microsoft.VisualBasic.Left(rd.GetString(0), 6) <> Format(Now, "yyMMdd") Then
                urutan = Format(Now, "yyMMdd") + "0001"
            Else
                hitung = rd.GetString(0) + 1
                urutan = Format(Now, "yyMMdd") + Microsoft.VisualBasic.Right("0000" & hitung, 4)
            End If
        End If
        TextBox1.Text = urutan
    End Sub

    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()
    End Sub

    Sub BersihkaN()
        TextBox16.Clear()
        TextBox17.Clear()
        TextBox18.Clear()
        TextBox19.Clear()
        TextBox20.Clear()
        TextBox21.Clear()
        TextBox22.Clear()
        TextBox23.Clear()
        LblTotal.Text = "0"
    End Sub

    Sub BersihkanGrid()
        DGV.Columns.Clear()
        Call Tampilkan()
    End Sub

    Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
        If e.KeyChar = Chr(13) Then
            TextBox3.Text = UCase(TextBox3.Text)
            Call BersihkaN()
            Call BersihkanGrid()
            'Cari NIP Pegawai apakah bulan ini sudah terinput gajian..
            cmd = New OleDbCommand("select * from gaji where nip='" & TextBox3.Text & "' and month(tanggal) ='" & Month(TextBox2.Text) & "' and year(tanggal) = '" & Year(TextBox2.Text) & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            If rd.HasRows Then
                MsgBox("Nip " & TextBox3.Text & " bulan ini telah gajian")
                Call Batalkan()
                Exit Sub
            End If
            'Jika NIP belum gajian maka lanjut proses selanjutnya..
            cmd = New OleDbCommand("select * from pegawai where nip='" & TextBox3.Text & "'", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            If rd.HasRows Then
                TextBox4.Text = rd.Item(1)
                TextBox24.Text = rd.Item(2)
                TextBox25.Text = rd.Item(3)
                TextBox5.Text = rd.Item(6)
                TextBox6.Text = rd.Item(7)
                TextBox7.Text = rd.Item(4)
                TextBox8.Text = rd.Item(5)
                cmd = New OleDbCommand("select * from jabatan where kode_jabatan='" & TextBox5.Text & "'", Conn)
                rd = cmd.ExecuteReader
                rd.Read()
                If rd.HasRows Then
                    TextBox5.Text = rd.Item(1)
                    TextBox9.Text = rd.Item(2)
                    TextBox10.Text = rd.Item(3)
                End If
                cmd = New OleDbCommand("select * from golongan where golongan='" & TextBox6.Text & "'", Conn)
                rd = cmd.ExecuteReader
                rd.Read()
                If rd.HasRows Then
                    If TextBox7.Text = "MENIKAH" Then
                        TextBox11.Text = rd.Item(1)
                        TextBox12.Text = rd.Item(2)
                        TextBox13.Text = rd.Item(3)
                        TextBox14.Text = rd.Item(4)
                        TextBox15.Text = rd.Item(5)
                        TextBox23.Text = Val(TextBox12.Text) * Val(TextBox8.Text)
                    Else
                        TextBox11.Text = 0
                        TextBox12.Text = 0
                        TextBox13.Text = rd.Item(3)
                        TextBox14.Text = rd.Item(4)
                        TextBox15.Text = rd.Item(5)
                        TextBox23.Text = 0
                    End If
                    TextBox19.Focus()
                End If
            Else
                MsgBox("NIP tidak terdaftar")
                FrmDaftarPegawai.Show()
            End If
        End If
    End Sub

    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 End Sub 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 End Sub 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) LblTotal.Text = Format(Val(TextBox18.Text), "##,##") End If End Sub Sub TotalPotongan() Dim Hitung As Integer = 0 For I As Integer = 0 To DGV.Rows.Count - 1 Hitung = Hitung + Val(DGV.Rows(I).Cells(2).Value) TextBox17.Text = Hitung Next End Sub Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
    End Sub

    Sub Batalkan()
        TextBox3.Clear() : TextBox14.Clear()
        TextBox4.Clear() : TextBox15.Clear()
        TextBox5.Clear() : TextBox16.Clear()
        TextBox6.Clear() : TextBox17.Clear()
        TextBox7.Clear() : TextBox18.Clear()
        TextBox8.Clear() : TextBox19.Clear()
        TextBox9.Clear() : TextBox20.Clear()
        TextBox10.Clear() : TextBox21.Clear()
        TextBox11.Clear() : TextBox22.Clear()
        TextBox12.Clear() : TextBox23.Clear()
        TextBox13.Clear() : TextBox24.Clear()
        TextBox25.Clear() : LblTotal.Text = "0"
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox3.Text = "" Or TextBox19.Text = "" Or TextBox20.Text = "" Or TextBox16.Text = "" Or TextBox17.Text = "" Or TextBox18.Text = "" Then
            MsgBox("Data belum lengkap")
            Exit Sub
        Else
            'Simpan ke tabel gaji
            Dim simpan As String = "insert into gaji(nomor_Slip,tanggal,pendapatan,potongan,gaji_bersih,nip,kodePTG) values " & _
            "('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox16.Text & "','" & TextBox17.Text & "','" & TextBox18.Text & "','" & TextBox3.Text & "','" & FrmMenuUtama.Panel1.Text & "')"
            cmd = New OleDbCommand(simpan, Conn)
            cmd.ExecuteNonQuery()
            For baris As Integer = 0 To DGV.Rows.Count - 2
                'simpan ke tabel detail
                Dim SimpanDetail As String = "Insert into detailGaji(Nomor_slip,kode_potongan,jumlah) values " & _
                "('" & TextBox1.Text & "','" & DGV.Rows(baris).Cells(0).Value & "','" & DGV.Rows(baris).Cells(2).Value & "')"
                cmd = New OleDbCommand(SimpanDetail, Conn)
                cmd.ExecuteNonQuery()
            Next baris

            Call Batalkan()
            Call BersihkanGrid()
            Call NomorOtomatis()
            TextBox3.Focus()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Call Batalkan()
        Call BersihkanGrid()
        TextBox3.Focus()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Call Batalkan()
        Me.Close()
        'End
    End Sub
End Class

10. Form Laporan Master

Tahapan pembuatan laporan master dilakukan dengan lanhkah-langkah sebagai berikut :

  1. Membuat laporan dengan Crystal Report, Crystal report yang saya gunakan adalah Crystal Report For VB.net 2010. Untuk membuat laporan Crystal Report, anda harus menginstal Crystal Report For Vb.net 2010. Pembuatan laporan Crystal dengan Crystal Report tidak saya bahas disini, karena sudah saya bahas dalam tutorial saya sebelumnya di :

http://www.vbawam.com/tutorial-vb-net/tutorial-vb-net-2010-lengkap-2.html

Untuk laporan master dengan crystal report, terdiri dari CrLapJabatan.rpt, CrLapGolongan.rpt, CrLapPotongan.rpt, CrLapPegawai.rpt.

  1. 2. Jika sudah membuat laporan dengan Crystal Report, langkah selanjutnya adalah membuat Form Laporan Master untuk memanggil Laporan tersebut. Form ini hanya terdiri dari sebuah object CrystalReportViewer dan Button, Hasil dari laporan-laporan tersebut terlihat pada gambar di bawah ini :

Masukkan kode Form Laporan Master sebagai berikut :

Imports System.Data.OleDb
Imports System.Windows.Forms

Public Class FrmLaporan

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        'Menampilkan Laporan pegawai dengan memanggil "CrLapPegawai.rpt" dan-
        'Memanggil Modul "Module_Konfigurasi_laporan" yang ada di Module1
        cryRpt.Load("CrLapPegawai.rpt")
        Call Module_Konfigurasi_laporan()
        CRV.ReportSource = cryRpt
        CRV.RefreshReport()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        cryRpt.Load("CrLapJabatan.rpt")
        Call Module_Konfigurasi_laporan()
        CRV.ReportSource = cryRpt
        CRV.RefreshReport()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        cryRpt.Load("CrLapGolongan.rpt")
        Call Module_Konfigurasi_laporan()
        CRV.ReportSource = cryRpt
        CRV.RefreshReport()
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Me.Close()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        cryRpt.Load("CrLapPotongan.rpt")
        Call Module_Konfigurasi_laporan()
        CRV.ReportSource = cryRpt
        CRV.RefreshReport()
    End Sub
End Class

11. Form Laporan Penggajian

Tahapan pembuatan laporan penggajian ini hampir sama dengan laporan master, bedanya di Laporan Penggajian ini saat memasukkan field field di Crystal Report juga memasukkan Group untuk Nomor Slip.. langkah-langkahnya sebagai berikut :

  1. Membuat laporan dengan Crystal Report, Pembuatan laporan Crystal dengan Crystal Report tidak saya bahas disini, karena sudah saya bahas dalam tutorial saya sebelumnya di :

Tutorial vb.net 2010 lengkap | membuat program toko buku

Untuk laporan penggajian dengan crystal report, hanya terdiri dar satu laporan, yaitu CrLapPenggajian.rpt.

Jika sudah membuat laporan dengan Crystal Report, langkah selanjutnya adalah membuat Form Laporan Penggajian untuk memanggil Laporan tersebut.

  1. 2. Membuat Form Laporan Penggajian untuk menampilkan laporan penggajian. Form ini terdiri dari DataGrid, DateTimePicker, CrystalReportViewer dan Button, Hasil dari laporan-laporan tersebut terlihat pada gambar di bawah ini :
Laporan Gaji Program Penggajian Vb.net 2010
Laporan Gaji Program Penggajian Vb.net 2010

Masukkan kode Form Laporan Penggajian sebagai berikut :

Imports System.Windows.Forms
Imports System.Data.OleDb
Public Class FrmPenggajian

    Sub Tampilkan()
        'Menampilkan Data Pegawai yang sudah gajian di Grid
        Call Koneksi()
        da = New OleDbDataAdapter("Select pegawai.NIP,Nama_Pegawai,Tanggal,Nomor_Slip from gaji,pegawai where pegawai.nip=gaji.nip", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "Pegawai")
        DGV.DataSource = (ds.Tables("Pegawai"))
        DGV.ReadOnly = True
        DGV.Columns(0).Width = 50
        DGV.Columns(2).Width = 75
        DGV.Columns(3).Width = 100
    End Sub

    Private Sub FrmPenggajian_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Call Tampilkan()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Menampilan Laporan Gaji semua Pegawai yang sudah Gajian berdasarkan Bulan dipilih
        CRV.ReportSource = Nothing
        CRV.SelectionFormula = "Month({gaji.Tanggal})=" & Month(DateTimePicker1.Text) & " and Year({gaji.Tanggal})=" & Year(DateTimePicker1.Text)
        cryRpt.Load("CrLapGaji.rpt")
        Call Module_Konfigurasi_laporan()
        CRV.ReportSource = cryRpt
        CRV.RefreshReport()
    End Sub

    Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.CellMouseClick
        'Menampilan Laporan Gaji berdasarkan pegawai yang dipilih
        CRV.ReportSource = Nothing
        CRV.SelectionFormula = "{gaji.nip}='" & DGV.Rows(e.RowIndex).Cells(0).Value & "' and {gaji.nomor_slip}='" & DGV.Rows(e.RowIndex).Cells(3).Value & "'"
        cryRpt.Load("CrLapGaji.rpt")
        Call Module_Konfigurasi_laporan()
        CRV.ReportSource = cryRpt
        CRV.RefreshReport()
    End Sub
End Class

12. Form Menu Utama Program Penggajian

Menu utama berfungsi untuk mengintegrasikan semua form dalam satu project, Form Menu Utama digunakan untuk memunculkan Form – Form yang telah dibuat sebelumnya, untuk membuatnya langsung saja ikuti langkah – langkah berikut ini :

Tambahkan Form Baru dan beri nama FrmMenuUtama, Masukkan 1 buah komponen MenuStrip  , 1 Buah komponen StatusStrip , 3 buah komponen GroupBox , 8 buah komponen Button  , 1 Buah Timer,  aturlah hingga seperti gambar berikut ini :

Menu Utama Program Penggajian Vb.net 2010
Menu Utama Program Penggajian Vb.net 2010

Masukkan kode Form Menu Utama sebagai berikut :

 

Public Class FrmMenuUtama

    Private Sub FrmMenuUtama_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        End
    End Sub

    Private Sub FrmMenuUtama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Panel4.Text = Format(Now, "dddd, dd-MMMM-yyyy")
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Panel5.Text = Format(Now, "hh:mm:ss")
    End Sub

    Private Sub MnuGantiPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuGantiPassword.Click
        FrmGantiPassword.Show()
    End Sub

    Private Sub MnuLogOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuLogOut.Click
        FrmLogin.Show()
        Me.Hide()
    End Sub

    Private Sub MnuKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuKeluar.Click
        Dim pesan As String
        pesan = MsgBox("Yakin Ingin Keluar ??", vbInformation + vbYesNo, "Konfirmasi")
        If pesan = vbYes Then
            End
        End If
    End Sub

    Private Sub MnuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuExit.Click
        Dim pesan As String
        pesan = MsgBox("Yakin Ingin Keluar ??", vbInformation + vbYesNo, "Konfirmasi")
        If pesan = vbYes Then
            End
        End If
    End Sub

    Private Sub BtnGantiPass_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGantiPass.Click
        FrmGantiPassword.Show()
    End Sub

    Private Sub BtnLogOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogOut.Click
        FrmLogin.Show()
        Me.Hide()
    End Sub

    Private Sub BtnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click
        Dim pesan As String
        pesan = MsgBox("Yakin Ingin Keluar ??", vbInformation + vbYesNo, "Konfirmasi")
        If pesan = vbYes Then
            End
        End If
    End Sub

    Private Sub MnuGolongan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuGolongan.Click
        FrmGolongan.Show()
    End Sub

    Private Sub MnuJabatan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuJabatan.Click
        FrmJabatan.Show()
    End Sub

    Private Sub MnuPotongan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPotongan.Click
        FrmPotongan.Show()
    End Sub

    Private Sub MnuPegawai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPegawai.Click
        FrmPegawai.Show()
    End Sub

    Private Sub MnuPetugas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPetugas.Click
        FrmPetugas.Show()
    End Sub

    Private Sub MnuPenggajian_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPenggajian.Click
        FrmPenggajian1.Show()
    End Sub

    Private Sub MnuLapMaster_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuLapMaster.Click
        FrmLaporan.Show()
    End Sub

    Private Sub MnuLapPenggajian_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuLapPenggajian.Click
        FrmPenggajian.Show()
    End Sub

    Private Sub BtnGolongan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGolongan.Click
        FrmGolongan.Show()
    End Sub

    Private Sub BtnJabatan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnJabatan.Click
        FrmJabatan.Show()
    End Sub

    Private Sub BtnPotongan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPotongan.Click
        FrmPotongan.Show()
    End Sub

    Private Sub BtnPegawai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPegawai.Click
        FrmPegawai.Show()
    End Sub

    Private Sub BtnPenggajian_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPenggajian.Click
        FrmPenggajian1.Show()
    End Sub
End Class

13. Form Login

Langsung saja anda ikuti langkah – langkah di bawah ini :

  1. Pada lembar kerja Visual Studio 2010, Klik menu Project > Add New Item >Add Windows Form
  2. Ketikkan FrmLogin pada kolom Name, Lalu klik Add.

Selanjutnya pada lembar kerja FrmLogin Masukkan 2 buah GroupBox, 2 buah komponen Label , 2 buah komponen TextBox, 3 buah komponen Button , serta 1 buah komponen PictureBox, atur hingga seperti gambar berikut ini :

Masukkan kode Form Login sebagai berikut :

Imports System.Data.OleDb

Public Class FrmLogin
    'Membuat fungsi untuk cek data pengguna
    Sub Login()
        Koneksi()
        'Cek nama dan password petugas
        cmd = New OleDbCommand("select * from Petugas where NamaPTG='" & TextBox1.Text & "' and PasswordPtg='" & TextBox2.Text & "'", Conn)
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows Then
            'Jika ada maka akan tampil data pada menu utama
            Dim Lvl_pengguna As String
            Lvl_pengguna = rd.GetString(3)
            FrmMenuUtama.Panel1.Text = rd.GetString(0)
            FrmMenuUtama.Panel2.Text = rd.GetString(1)
            FrmMenuUtama.Panel3.Text = rd.GetString(3)
            'cek level pengguna
            If Lvl_pengguna = "KASIR" Then
                FrmMenuUtama.MnuPetugas.Enabled = False
                'Bisa ditambahkan mana saja tidak aktif
               
                FrmMenuUtama.Show()
                Me.Hide()
            Else
                FrmMenuUtama.MnuPetugas.Enabled = True
                FrmMenuUtama.Show()
                Me.Hide()
            End If
        Else
            MsgBox("login salah, periksan kembali user name dan password")
            TextBox1.Focus()
        End If
    End Sub

    Private Sub FrmLogin_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
        TextBox1.Focus()
    End Sub
    Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Focus()
    End Sub

    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()
        End If
    End Sub

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        If e.KeyChar = Chr(13) Then
            If TextBox1.Text = "" Then TextBox1.Focus() : Exit Sub
            If TextBox2.Text = "" Then TextBox2.Focus() : Exit Sub
            Call Login()
        End If
    End Sub

    Private Sub BtnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogin.Click
        If TextBox1.Text = "" Then TextBox1.Focus() : Exit Sub
        If TextBox2.Text = "" Then TextBox2.Focus() : Exit Sub
        Call Login()
    End Sub

    Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox1.Focus()
    End Sub

    Private Sub BtnTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTutup.Click
        End
    End Sub
End Class

 

14. Form Ganti Password

Langsung saja anda ikuti langkah – langkah di bawah ini :

  1. Pada lembar kerja Visual Studio 2010, Klik menu Project > Add New Item >Add Windows Form
  2. Ketikkan FrmGantiPassword pada kolom Name, Lalu klik Add.
  3. Selanjutnya pada lembar kerja FrmGantiPassword Masukkan 2 buah GroupBox, 3 buah komponen Label , 3 buah komponen TextBox, 2 buah komponen Button , serta 1 buah komponen PictureBox, atur hingga seperti gambar berikut ini :

Masukkan kode Form Ganti Password sebagai berikut :

 

Imports System.Windows.Forms
Imports System.Data.OleDb

Public Class FrmGantiPassword
    Private Sub FrmGantiPassword_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Koneksi()
        TxtPassLama.Enabled = True
        TxtPassBaru.Enabled = False
        TxtKonfirmasi.Enabled = False
    End Sub

    Private Sub TxtPassLama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPassLama.KeyPress
        If e.KeyChar = Chr(13) Then
            'Cek Password lama berdasarkan kode petugas
            cmd = New OleDbCommand("select * from petugas where kodeptg='" & FrmMenuUtama.Panel1.Text & "' and passwordptg='" & TxtPassLama.Text & "' ", Conn)
            rd = cmd.ExecuteReader
            rd.Read()
            If rd.HasRows Then
                TxtPassBaru.Enabled = True
                TxtPassBaru.Focus()
            Else
                MsgBox("Password lama salah")
                TxtPassLama.Focus()
            End If
        End If
    End Sub

    Private Sub TxtPassBaru_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPassBaru.KeyPress
        If e.KeyChar = Chr(13) Then
            If TxtPassBaru.Text = "" Then
                MsgBox("Passwrod baru wajib diisi")
                TxtPassBaru.Focus()
            Else
                TxtKonfirmasi.Enabled = True
                TxtKonfirmasi.Focus()
            End If
        End If
    End Sub

    Private Sub TxtKonfirmasi_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKonfirmasi.KeyPress
        If e.KeyChar = Chr(13) Then
            If TxtKonfirmasi.Text <> TxtPassBaru.Text Then
                MsgBox("Password konfirmasi salah")
                TxtKonfirmasi.Focus()
            Else
                'Ganti password petugas
                If MessageBox.Show("Yakin akan ganti password..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                    Dim ganti As String = "Update petugas set passwordptg='" & TxtPassBaru.Text & "' where kodeptg='" & FrmMenuUtama.Panel1.Text & "'"
                    cmd = New OleDbCommand(ganti, Conn)
                    cmd.ExecuteNonQuery()
                    TxtPassLama.Clear()
                    TxtPassBaru.Clear()
                    TxtKonfirmasi.Clear()
                    Me.Close()
                Else
                    TxtPassLama.Clear()
                    TxtPassBaru.Clear()
                    TxtKonfirmasi.Clear()
                    Me.Close()
                End If
            End If
        End If
    End Sub

    Private Sub BatalBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BatalBtn.Click
        Me.Close()
    End Sub

    Private Sub OkBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OkBtn.Click
        If TxtPassLama.Text = "" Or TxtPassLama.Text = "" Or TxtKonfirmasi.Text = "" Then
            MsgBox("Password masih kosong", vbExclamation + vbOKOnly, "Pesan")
            Exit Sub
        End If
        If TxtKonfirmasi.Text <> TxtPassBaru.Text Then
            MsgBox("Password konfirmasi salah")
            TxtKonfirmasi.Focus()
        Else
            'Ganti Password
            If MessageBox.Show("Yakin akan ganti password..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                Dim ganti As String = "Update petugas set passwordptg='" & TxtPassBaru.Text & "' where kodeptg='" & FrmMenuUtama.Panel1.Text & "'"
                cmd = New OleDbCommand(ganti, Conn)
                cmd.ExecuteNonQuery()
                TxtPassLama.Clear()
                TxtPassBaru.Clear()
                TxtKonfirmasi.Clear()
                Me.Close()
            Else
                TxtPassLama.Clear()
                TxtPassBaru.Clear()
                TxtKonfirmasi.Clear()
                Me.Close()
            End If
        End If
    End Sub
End Class

Sampai disini pembuatan form serta kode Program Penggajian menggunakan VB.net 2010, Setelah itu simpan project anda.

Demikian Tutorial lengkap VB.Net 2010 Membuat Program Penggajian ini, semoga bermanfaat bagi semuanya.. Amin..

Catatan Tambahan :

Jika anda mengiginkan Source Code Project Penggajian Vb.net 2010 ini, bisa anda dapatkan dengan donasi sebesar :

Rp 60.000, (Enam puluh ribu rupiah saja )

Selain mendapatkan Source Code Project Penggajian Vb.net 2010, anda juga akan mendapatkan bonus

Bonus :

  • Bonus 1 : Tutorial visual studio 2010 / vb.net 2010 lengkap (Pdf) + File Project Program Penggajian Vb.net 2010
  • Bonus 2 : Tutorial visual studio 2010 / vb.net 2010 lengkap (Pdf) + File Project Aplikasi Toko Buku Vb.net 2010, Link silahkan lihat :

Tutorial vb.net 2010 lengkap | membuat program toko buku

  • Bonus 3 : Project Aplikasi Inventori Vb.net 2010, Link silahkan lihat :

source code program inventori persediaan barang vb.net 2010

 

  • Bonus 4 : Software IrisSkin, software ini digunakan untuk merubah tampilan pada form aplikasi visual basic 2010 agar lebih tampak professional
  • Bonus 5 : Software Crystal Report For Vb.net, software ini digunakan untuk membuat laporan dengan cepat dan mudah.
  • Bonus 6 : 10 Program & Source Code Visual Basic .Net (2008) ( Bisa diupgrade otomatis menggunakan vb 2010, terdiri dari :
  1. Aplikasi penjualan
  2. Aplikasi Inventori
  3. Aplikasi Koperasi
  4. Aplikasi Rental DVD
  5. Aplikasi Perpustakaan
  6. Aplikasi Penggajian
  7. Aplikasi Loundre
  8. Aplikasi Rawat Jalan
  9. Aplikasi Service Kendaraan
  10. Aplikasi Rumah Sakit
  • Bonus 7 : 150 Program & Source Code Visual Basic 6.0 (vb 6.0), terdiri dari :
  1. Aplikasi penjualan
  2. Aplikasi Inventori
  3. Aplikasi Koperasi
  4. Aplikasi Rental DVD
  5. Aplikasi Perpustakaan
  6. Aplikasi Penggajian
  7. Aplikasi Loundre
  8. Aplikasi Rawat Jalan
  9. Aplikasi Service Kendaraan
  10. Aplikasi Hotel
  11. Aplikasi Restoran
  12. Aplikasi Pembayaran SPP
  13. Aplikasi Kredit Motor Dan apliasi lainnya sampai 150 aplikasi siap pakai

 

Cara Pembayaran :

Transfer dikirim ke rekening:

Bank Mandiri a/n Mohammad Abdul Azis No.Rek. 156-00-0457140-4  KCP Cibitung Bekasi

Konfirmasi Pembayaran :

  •  Via Email : (email saya : vee.bee10net@gmail.com)

Subject    : Konfirmasi pembayaran source code Program Penggajian vb.net 2010

Isi              : [No. Rek Anda] / [Atas Nama] / [Tanggal Transfer “dd-mm-yy”] /

[Jam Transfer] / [Alamat yang akan dikirm]

  • Via SMS : (No. HP : 085731230992)

Konfirmasi pembayaran source code Program Penggajian vb.net 2010

[No. Rek Anda] / [Atas Nama] / [Tanggal Transfer “dd-mm-yy”] /

[Jam Transfer] / [Alamat yang akan dikirm]

Pengiriman :

Ada 2 jenis pilihan pengiriman sesuai keinginan anda

  • 1. Program Penggajian vb.net 2010 + bonus yang saya sebutkan akan saya kirim lewat email jadi tinggal didownload satu per satu… harga hanya Rp 60.000
  • 2. source code Program inventori vb.net 2010  + bonus saya kirim dalam bentuk DVD melalui jasa pengiriman JNE. Harga :Rp 60.000 + Biaya DVD + Ongkos kirim

 

Tunggu Apalagi… Hanya dengan Rp. 60.000,- ( Enam Puluh Ribu Rupiah Saja ) anda sudah mendapatkan source code Program Penggajian vb.net 2010 + 7 Bonus yang saya sebutkan diatas

 

Program Penggajian VB.net 2010 + Tutorial LengkapadminProgram VB.NetTutorial VB.NETProgram Penggajian Vb.net,source code vb.net,tutorial vb.net,vb.net,visual basic 2010 1. Membuat Project Penggajian VB.net 2010 Pada kesempatan ini, saya akan membahas pembuatan Program Penggajian dengan Vb.net 2010, Program Pengajian merupakan salah satu program yang paling banyak dijadikan contoh dalam tugas akhir (TA) atau skripsi karena desain databasenya membentuk konsep One To many dengan level 3NF / Normalisasi 3 . Aplikasi penggajian ini memiliki banyak ragamnya...Tutorial Lengkap Visual Basic 6.0 dan Visual Basic .Net | Tutorial Visual Basic 2010 | Free Source Code VB | Gratis Source code VB .net