Tutorial ini bisa
dikembangkan lagi dan digunakan di tempat kerja yang tidak mempunyai
Software applikasi pengolahan Data. Rancangan sistem yang saya buat ini
terdiri dari 4 Sesion :
Sesion # 1. Membuat Form Input Data Karyawan
Sesion # 2. Membuat Form Input Absensi Karyawan
Sesion # 3. Membuat Form Input Data Slip Gaji Karyawan
Sesion # 4. Membuat Template Laporan Absensi dan Laporan Penggajian
Sesion # 3 Membuat Form Input Data Slip Gaji Karyawan
Pada Sesion ini kita akan membahas pembuatan Slip Gaji Karyawan nya, Proses ini membutuhkan Dua Sheet untuk penyimpanan Data nya, yaitu Sheet ("DataPenggajian") untuk menyimpan data Penggajian dan Sheet ("Potongan") untuk menyimpan Data Potongan Gaji Karyawan.
Rancangan Form Slip Gaji Karyawan ini dibuat juga pada Sheet ("Template").
Berikut ini Tampilan Rancangan Slip Gaji Karyawan:
Pada Range ("X5") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,2,0)),"",VLOOKUP($X$4,DT_Karyawan,2,0))
Pada Range ("AB4") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,10,0)),"",VLOOKUP($X$4,DT_Karyawan,10,0))
Pada Range ("AB5") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,9,0)),"",VLOOKUP($X$4,DT_Karyawan,9,0))
Pada Range ("X9") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,11,0)),"",VLOOKUP($X$4,DT_Karyawan,11,0))
Pada Range ("X10") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,12,0)),"",VLOOKUP($X$4,DT_Karyawan,12,0))
Pada Range ("X11") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,13,0)),"",VLOOKUP($X$4,DT_Karyawan,13,0))
Pada Range ("X12") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,15,0)),"",VLOOKUP($X$4,DT_Karyawan,15,0))
Pada Range ("X13") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,14,0)),"",VLOOKUP($X$4,DT_Karyawan,14,0))
"Fungsi - Fungsi tersebut pencarian data pada Sheeet ("DataKaryawan") sesuai NIK pada Range ("X4")"
Buat Dynamic Name Manager untuk :
Tot_Lembur =Absensi!$G$4:$G$998
Tot_Absensi =Absensi!$J$4:$J$998
Tgl_Absensi =Absensi!$B$4:$B$998
Nik_Absensi =Absensi!$A$4:$A$998
Pada Range ("AE9") masukkan Fungsi Rumus
=SUMIFS(Tot_Lembur,Tgl_Absensi,">="&X6,Tgl_Absensi,"<="&Z6,Nik_Absensi,X4)
Pada Range ("AE10") masukkan fungsi rumus
=SUMIFS(Tot_Absensi,Tgl_Absensi,">="&X6,Tgl_Absensi,"<="&Z6,Nik_Absensi,X4)
"Fungsi - Fungsi tersebut menghitung Jumlah Jam Lembur dan Jumlah Jam Absensi sesuai dari tanggal sampai tanggal kerja Karyawan pada Sheeet ("Absensi") sesuai NIK pada Range ("X4")"
Pada Range ("AE11") masuk Fungsi = X9/173
"Fungsi ini untuk menghitung Jumlah upah per Jam dari besaran nya Gaji Pokok pada Range ("X9")"
Pada Range ("X14") masuk Fungsi = X9*0.04
Pada Range ("X15") masuk Fungsi = X9*0.037
Pada Range ("X16") masuk Fungsi = X9*0.15
Pada Range ("X17") masuk Fungsi = AE9*AE11
"Fungsi - Fungsi tersebut menghitung Jumlah Upah Tambahan dari Perusahaan sesuai Undang - Undang yang berlaku dimana besaran disesuaikan dengan Gaji Pokok pada Range ("X9")"
Pada Range ("AB9") masuk Fungsi = AE10*AE11
Pada Range ("AB10") masuk Fungsi = X9*0.01
Pada Range ("AB11") masuk Fungsi = X9*0.02
Pada Range ("AB12") masuk Fungsi = X9*0.05
"Fungsi - Fungsi tersebut menghitung Jumlah Potongan Gaji sesuai Undang - Undang yang berlaku dimana besaran disesuaikan dengan Gaji Pokok pada Range ("X9")"
Pada Range ("X19") masuk Fungsi = SUM(X9:Z17) ' Menghitung Total Pendapatan Gaji
Pada Range ("AB19") masuk Fungsi = SUM(AB9:AB12) ' Menghitung Total Potongan Gaji
Pada Range ("X21") masuk Fungsi = X19-AB19 ' Menghitung Total Penerimaan Gaji
Untuk Proses Data saya buat Tombol Perintah Simpan, Cari, Edit dan Hapus Data pada Sheet ("DataPenggajian") dan Sheet("Potongan")
Berikut ini Koding Module untuk Perintah Simpan :
Berikut ini Koding Module untuk Perintah Cari :
Berikut ini Koding Module untuk Perintah Edit :
Berikut ini Koding Module untuk Perintah Hapus :
CopyPaste kan saja Koding nya, lalu koneksikan tiap - tiap Tombol perintah sesuia dengan Sub Koding Module Masing - Masing.
Demikian Penjelasan untuk Sesion # 3 Membuat Form Input Data Slip Gaji Karyawan, saya juga sertakan tutorial Video YouTube nya diatas silahkan dipelajari serta dikembangkan dan lanjutka kembali untuk mengupas tuntas Tutorial Sistem Absensi dan Laporan Penggajian ini pada Sesion # 4 Membuat Template Sistem Absensi dan Laporan Penggajian.
Sesion # 1. Membuat Form Input Data Karyawan
Sesion # 2. Membuat Form Input Absensi Karyawan
Sesion # 3. Membuat Form Input Data Slip Gaji Karyawan
Sesion # 4. Membuat Template Laporan Absensi dan Laporan Penggajian
Sesion # 3 Membuat Form Input Data Slip Gaji Karyawan
Pada Sesion ini kita akan membahas pembuatan Slip Gaji Karyawan nya, Proses ini membutuhkan Dua Sheet untuk penyimpanan Data nya, yaitu Sheet ("DataPenggajian") untuk menyimpan data Penggajian dan Sheet ("Potongan") untuk menyimpan Data Potongan Gaji Karyawan.
Rancangan Form Slip Gaji Karyawan ini dibuat juga pada Sheet ("Template").
Berikut ini Tampilan Rancangan Slip Gaji Karyawan:
Pada Range ("X5") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,2,0)),"",VLOOKUP($X$4,DT_Karyawan,2,0))
Pada Range ("AB4") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,10,0)),"",VLOOKUP($X$4,DT_Karyawan,10,0))
Pada Range ("AB5") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,9,0)),"",VLOOKUP($X$4,DT_Karyawan,9,0))
Pada Range ("X9") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,11,0)),"",VLOOKUP($X$4,DT_Karyawan,11,0))
Pada Range ("X10") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,12,0)),"",VLOOKUP($X$4,DT_Karyawan,12,0))
Pada Range ("X11") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,13,0)),"",VLOOKUP($X$4,DT_Karyawan,13,0))
Pada Range ("X12") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,15,0)),"",VLOOKUP($X$4,DT_Karyawan,15,0))
Pada Range ("X13") masuk Fungsi VLOOKUP
=IF(ISNA(VLOOKUP($X$4,DT_Karyawan,14,0)),"",VLOOKUP($X$4,DT_Karyawan,14,0))
"Fungsi - Fungsi tersebut pencarian data pada Sheeet ("DataKaryawan") sesuai NIK pada Range ("X4")"
Buat Dynamic Name Manager untuk :
Tot_Absensi =Absensi!$J$4:$J$998
Tgl_Absensi =Absensi!$B$4:$B$998
Nik_Absensi =Absensi!$A$4:$A$998
Pada Range ("AE9") masukkan Fungsi Rumus
=SUMIFS(Tot_Lembur,Tgl_Absensi,">="&X6,Tgl_Absensi,"<="&Z6,Nik_Absensi,X4)
Pada Range ("AE10") masukkan fungsi rumus
=SUMIFS(Tot_Absensi,Tgl_Absensi,">="&X6,Tgl_Absensi,"<="&Z6,Nik_Absensi,X4)
"Fungsi - Fungsi tersebut menghitung Jumlah Jam Lembur dan Jumlah Jam Absensi sesuai dari tanggal sampai tanggal kerja Karyawan pada Sheeet ("Absensi") sesuai NIK pada Range ("X4")"
Pada Range ("AE11") masuk Fungsi = X9/173
"Fungsi ini untuk menghitung Jumlah upah per Jam dari besaran nya Gaji Pokok pada Range ("X9")"
Pada Range ("X14") masuk Fungsi = X9*0.04
Pada Range ("X15") masuk Fungsi = X9*0.037
Pada Range ("X16") masuk Fungsi = X9*0.15
Pada Range ("X17") masuk Fungsi = AE9*AE11
"Fungsi - Fungsi tersebut menghitung Jumlah Upah Tambahan dari Perusahaan sesuai Undang - Undang yang berlaku dimana besaran disesuaikan dengan Gaji Pokok pada Range ("X9")"
Pada Range ("AB9") masuk Fungsi = AE10*AE11
Pada Range ("AB10") masuk Fungsi = X9*0.01
Pada Range ("AB11") masuk Fungsi = X9*0.02
Pada Range ("AB12") masuk Fungsi = X9*0.05
"Fungsi - Fungsi tersebut menghitung Jumlah Potongan Gaji sesuai Undang - Undang yang berlaku dimana besaran disesuaikan dengan Gaji Pokok pada Range ("X9")"
Pada Range ("X19") masuk Fungsi = SUM(X9:Z17) ' Menghitung Total Pendapatan Gaji
Pada Range ("AB19") masuk Fungsi = SUM(AB9:AB12) ' Menghitung Total Potongan Gaji
Pada Range ("X21") masuk Fungsi = X19-AB19 ' Menghitung Total Penerimaan Gaji
Untuk Proses Data saya buat Tombol Perintah Simpan, Cari, Edit dan Hapus Data pada Sheet ("DataPenggajian") dan Sheet("Potongan")
Berikut ini Koding Module untuk Perintah Simpan :
Sub Simpan_DataPenggajian()
Dim Gaji As Long
Dim Potongan As Long
Set WsGaji =
Worksheets("DataPenggajian")
Set WsPotongan =
Worksheets("Potongan")
nik =
Worksheets("Template").Range("X4")
If
Worksheets("Template").Range("X4") = "" Then
MsgBox "NIK Karyawan Masih
Kosong", vbOKOnly + vbInformation, "Data Gaji"
Worksheets("Template").Range("X4").Select
Exit Sub
End If
cSimpan = MsgBox("Apakah
Anda Yakin Untuk Menyimpan Data Karyawan: " & nik, vbYesNo + 48,
"Komfirmasi")
If cSimpan = vbYes Then
With WsGaji
Gaji = .Cells(.Rows.Count,
"A").End(xlUp).Offset(1, 0).row
.Cells(Gaji, 1).Value =
Range("X4").Value
.Cells(Gaji, 2).Value =
Range("AB21").Value
.Cells(Gaji, 3).Value =
Range("X6").Value
.Cells(Gaji, 4).Value =
Range("Z6").Value
.Cells(Gaji, 5).Value =
Range("X19").Value
.Cells(Gaji, 6).Value =
Range("AB19").Value
.Cells(Gaji, 7).Value =
Range("X21").Value
End With
With WsPotongan
Potongan = .Cells(.Rows.Count,
"A").End(xlUp).Offset(1, 0).row
.Cells(Potongan, 1).Value =
Range("X4").Value
.Cells(Potongan, 2).Value =
Range("AB21").Value
.Cells(Potongan, 3).Value =
Range("AB9").Value
.Cells(Potongan, 4).Value =
Range("AB10").Value
.Cells(Potongan, 5).Value =
Range("AB11").Value
.Cells(Potongan, 6).Value =
Range("AB12").Value
End With
MsgBox "Data Telah Di
Simpan...", 64, "Data Gaji"
Else
MsgBox "Data Batal di
Simpan", 64, "Data Gaji"
End If
Worksheets("Template").Range("X4").Value
= ""
End Sub
Berikut ini Koding Module untuk Perintah Cari :
Sub Cari_Gaji()
Dim nik
Dim Tglterima
If
Worksheets("Template").Range("X4") = "" Then
MsgBox "Nik Karyawan Masih
Kosong"
Exit Sub
End If
If Worksheets("Template").Range("AB21")
= "" Then
MsgBox "Nik Karyawan Masih
Kosong"
Exit Sub
End If
Tglterima =
Format(Worksheets("Template").Range("AB21").Value,
"mm/dd/yy")
Worksheets("DataPenggajian").Range("B2").AutoFilter
Field:=2, Criteria1:=">=" & Tglterima
Worksheets("Potongan").Range("B2").AutoFilter
Field:=2, Criteria1:=">=" & Tglterima
nik =
Worksheets("Template").Range("X4")
Set C =
Worksheets("DataPenggajian").Range("A:A").Find(nik,
LookIn:=xlValues)
If Not C Is Nothing Then
Baris = C.row
Worksheets("Template").Range("X6").Value =
Worksheets("DataPenggajian").Cells(Baris, 3).Value
Worksheets("Template").Range("Z6").Value =
Worksheets("DataPenggajian").Cells(Baris, 4).Value
Else
MsgBox "Nik Karyawan belum
terdaftar" & vbCrLf & "Cek Kembali Tanggal Masuk dan Nik
Karyawan", 64, "Data Absensi"
End If
With
Worksheets("DataPenggajian")
If
Worksheets("DataPenggajian").AutoFilterMode Then
Worksheets("DataPenggajian").Range("B3").AutoFilter
End If
End With
With
Worksheets("Potongan")
If
Worksheets("Potongan").AutoFilterMode Then
Worksheets("Potongan").Range("B3").AutoFilter
End If
End With
End SubBerikut ini Koding Module untuk Perintah Edit :
Sub Edit_Gaji()
On Error Resume Next
Dim nik
Dim Tglterima
If
Worksheets("Template").Range("X4") = "" Then
MsgBox "Nik Karyawan Masih
Kosong"
Exit Sub
End If
If
Worksheets("Template").Range("AB21") = "" Then
MsgBox "Nik Karyawan Masih
Kosong"
Exit Sub
End If
Tglterima =
Format(Worksheets("Template").Range("AB21").Value,
"mm/dd/yy")
Worksheets("DataPenggajian").Range("B2").AutoFilter
Field:=2, Criteria1:=">=" & Tglterima
Worksheets("Potongan").Range("B2").AutoFilter
Field:=2, Criteria1:=">=" & Tglterima
nik =
Worksheets("Template").Range("X4")
Set C =
Worksheets("DataPenggajian").Range("A:A").Find(nik,
LookIn:=xlValues)
Set D =
Worksheets("Potongan").Range("A:A").Find(nik,
LookIn:=xlValues)
If Not C And Not D Is Nothing Then
Baris1 = C.row
Baris2 = D.row
With Worksheets("DataPenggajian")
.Cells(Baris1, 2).Value =
Worksheets("Template").Range("AB21").Value
.Cells(Baris1, 3).Value =
Worksheets("Template").Range("X6").Value
.Cells(Baris1, 4).Value =
Worksheets("Template").Range("Z6").Value
.Cells(Baris1, 5).Value =
Worksheets("Template").Range("X19").Value
.Cells(Baris1, 6).Value =
Worksheets("Template").Range("AB19").Value
.Cells(Baris1, 7).Value =
Worksheets("Template").Range("X21").Value
End With
With Worksheets("Potongan")
.Cells(Baris2, 2).Value =
Worksheets("Template").Range("AB21").Value
.Cells(Baris2, 3).Value =
Worksheets("Template").Range("AB9").Value
.Cells(Baris2, 4).Value =
Worksheets("Template").Range("AB10").Value
.Cells(Baris2, 5).Value =
Worksheets("Template").Range("AB11").Value
.Cells(Baris2, 6).Value =
Worksheets("Template").Range("AB12").Value
End With
Else
MsgBox "Nik Karyawan belum
terdaftar" & vbCrLf & "Cek Kembali Tanggal Masuk dan Nik
Karyawan", 64, "Data Absensi"
End If
Worksheets("Template").Range("X4").Value
= ""
With
Worksheets("DataPenggajian")
If
Worksheets("DataPenggajian").AutoFilterMode Then
Worksheets("DataPenggajian").Range("B3").AutoFilter
End If
End With
With
Worksheets("Potongan")
If
Worksheets("Potongan").AutoFilterMode Then
Worksheets("Potongan").Range("B3").AutoFilter
End If
End With
End Sub
Berikut ini Koding Module untuk Perintah Hapus :
Sub Hapus_Gaji()
On Error Resume Next
Dim nik
Dim Tglterima
If
Worksheets("Template").Range("X4") = "" Then
MsgBox "Nik Karyawan Masih
Kosong"
Exit Sub
End If
If
Worksheets("Template").Range("AB21") = "" Then
MsgBox "Nik Karyawan Masih
Kosong"
Exit Sub
End If
Tglterima =
Format(Worksheets("Template").Range("AB21").Value,
"mm/dd/yy")
Worksheets("DataPenggajian").Range("B3").AutoFilter
Field:=2, Criteria1:=">=" & Tglterima
Worksheets("Potongan").Range("B3").AutoFilter
Field:=2, Criteria1:=">=" & Tglterima
nik =
Worksheets("Template").Range("X4")
cDelete = MsgBox("Apakah Anda Yakin
Untuk Menghapus Data Absensi: " & nik, vbYesNo + 48,
"Komfirmasi")
If cDelete = vbYes Then
Set C =
Worksheets("DataPenggajian").Range("A:A").Find(nik,
LookIn:=xlValues)
Set D =
Worksheets("Potongan").Range("A:A").Find(nik,
LookIn:=xlValues)
If Not C And Not D Is Nothing Then
Baris1 = C.row
Baris2 = D.row
Worksheets("DataPenggajian").Cells(Baris1, 2).EntireRow.Delete
Worksheets("Potongan").Cells(Baris2, 2).EntireRow.Delete
MsgBox "Data Telah Di Hapus...",
64, "Data Karyawan"
Else
MsgBox "Data Batal di Hapus", 64,
"Data Karyawan"
End If
Clear_Data
Else
MsgBox "Nik Karyawan belum
Terdaftar Untuk Di Hapus" & vbCrLf & "Cek Kembali Nik
Karyawan", 64, "Data Karyawan"
End If
Worksheets("Template").Range("X4").Value
= ""
With
Worksheets("DataPenggajian")
If
Worksheets("DataPenggajian").AutoFilterMode Then
Worksheets("DataPenggajian").Range("B4").AutoFilter
End If
End With
With
Worksheets("Potongan")
If
Worksheets("Potongan").AutoFilterMode Then
Worksheets("Potongan").Range("B4").AutoFilter
End If
End With
End Sub
CopyPaste kan saja Koding nya, lalu koneksikan tiap - tiap Tombol perintah sesuia dengan Sub Koding Module Masing - Masing.
Demikian Penjelasan untuk Sesion # 3 Membuat Form Input Data Slip Gaji Karyawan, saya juga sertakan tutorial Video YouTube nya diatas silahkan dipelajari serta dikembangkan dan lanjutka kembali untuk mengupas tuntas Tutorial Sistem Absensi dan Laporan Penggajian ini pada Sesion # 4 Membuat Template Sistem Absensi dan Laporan Penggajian.
Salam...,
No comments:
Post a Comment