Efisien! Cara Membuat Sistem Absensi & Gaji di Excel dengan VBA Macro

Efisien! Cara Membuat Sistem Absensi & Gaji di Excel dengan VBA Macro

 

Efisien! Cara Membuat Sistem Absensi & Gaji di Excel dengan VBA Macro

Pendahuluan

Dalam dunia kerja, kehadiran karyawan dan penggajian merupakan dua aspek penting yang harus dikelola dengan baik. Banyak perusahaan kecil hingga menengah mencari solusi efisien untuk mengelola absensi dan gaji tanpa harus menggunakan software mahal. Salah satu solusi yang praktis dan ekonomis adalah menggunakan Microsoft Excel dengan VBA (Visual Basic for Applications) Macro.

Dengan menggunakan VBA Macro, kita dapat membuat sistem absensi yang otomatis mencatat jam masuk dan pulang karyawan, serta secara otomatis menghitung gaji berdasarkan data yang ada. Artikel ini akan membahas langkah-langkah lengkap untuk membuat sistem absensi dan gaji di Excel dengan VBA Macro..

baca juga : Ebook Strategi Keamanan Siber untuk Pemerintah Daerah - Transformasi Digital Aman dan Terpercaya Buku Digital Saku Panduan untuk Pemda


Persiapan Awal

1. Menyiapkan Data Absensi

Sebelum memulai pemrograman VBA, kita harus menyiapkan struktur tabel di Excel untuk menyimpan data absensi karyawan. Buatlah worksheet dengan nama Absensi dan buat kolom berikut:

NoNama KaryawanTanggalJam MasukJam PulangDurasi KerjaKeterangan
1Ahmad01/03/202508:0017:009 JamHadir

Pastikan kolom Tanggal, Jam Masuk, dan Jam Pulang memiliki format yang sesuai dengan data waktu.

2. Menyiapkan Data Gaji

Buat worksheet baru dengan nama Gaji untuk menyimpan informasi penggajian karyawan. Struktur tabel dapat dibuat seperti berikut:

NoNama KaryawanTotal Jam KerjaGaji per JamTotal Gaji
1Ahmad180 JamRp 50.000Rp 9.000.000

Setelah tabel absensi dan gaji dibuat, langkah berikutnya adalah menulis kode VBA untuk mengotomatisasi proses pencatatan dan perhitungan.


Mengaktifkan Developer Mode dan VBA

Sebelum menulis kode VBA, kita perlu mengaktifkan Developer Mode di Excel:

  1. Buka Excel.

  2. Klik File > Options.

  3. Pilih Customize Ribbon dan centang Developer.

  4. Klik OK.

  5. Pada tab Developer, klik Visual Basic.

Di jendela VBA, buat Module Baru dengan cara:

  1. Klik Insert > Module.

  2. Jendela kosong akan muncul untuk menulis kode VBA.


Membuat VBA Macro untuk Absensi

Kode VBA berikut berfungsi untuk mencatat jam masuk dan pulang karyawan secara otomatis.

Sub AbsensiMasuk()
    Dim ws As Worksheet
    Dim lastRow As Integer
    
    Set ws = ThisWorkbook.Sheets("Absensi")
    lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    ws.Cells(lastRow, 1).Value = lastRow - 1 'Nomor urut
    ws.Cells(lastRow, 2).Value = InputBox("Masukkan Nama Karyawan:")
    ws.Cells(lastRow, 3).Value = Date
    ws.Cells(lastRow, 4).Value = Time
    ws.Cells(lastRow, 7).Value = "Hadir"
    
    MsgBox "Absensi Masuk Tercatat!", vbInformation, "Sukses"
End Sub

Sub AbsensiPulang()
    Dim ws As Worksheet
    Dim lastRow As Integer
    Dim nama As String
    
    Set ws = ThisWorkbook.Sheets("Absensi")
    lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
    
    nama = InputBox("Masukkan Nama Karyawan:")
    
    For i = lastRow To 2 Step -1
        If ws.Cells(i, 2).Value = nama And ws.Cells(i, 5).Value = "" Then
            ws.Cells(i, 5).Value = Time
            ws.Cells(i, 6).Value = Format(ws.Cells(i, 5).Value - ws.Cells(i, 4).Value, "hh:mm")
            MsgBox "Absensi Pulang Tercatat!", vbInformation, "Sukses"
            Exit Sub
        End If
    Next i
    
    MsgBox "Data tidak ditemukan!", vbExclamation, "Error"
End Sub

Kode ini akan mencatat jam masuk dan jam pulang dengan format waktu yang sesuai.


Menghitung Gaji Otomatis dengan VBA

Setelah absensi dicatat, kita perlu membuat perhitungan gaji berdasarkan total jam kerja. Berikut adalah kode VBA untuk menghitung gaji:

Sub HitungGaji()
    Dim wsAbsensi As Worksheet, wsGaji As Worksheet
    Dim lastRowAbsensi As Integer, lastRowGaji As Integer
    Dim i As Integer, j As Integer, nama As String
    Dim totalJam As Double, gajiPerJam As Double
    
    Set wsAbsensi = ThisWorkbook.Sheets("Absensi")
    Set wsGaji = ThisWorkbook.Sheets("Gaji")
    
    lastRowAbsensi = wsAbsensi.Cells(Rows.Count, 1).End(xlUp).Row
    lastRowGaji = wsGaji.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    nama = InputBox("Masukkan Nama Karyawan:")
    gajiPerJam = InputBox("Masukkan Gaji Per Jam:")
    totalJam = 0
    
    For i = 2 To lastRowAbsensi
        If wsAbsensi.Cells(i, 2).Value = nama Then
            totalJam = totalJam + (wsAbsensi.Cells(i, 6).Value * 24) 'Konversi ke jam
        End If
    Next i
    
    wsGaji.Cells(lastRowGaji, 1).Value = lastRowGaji - 1
    wsGaji.Cells(lastRowGaji, 2).Value = nama
    wsGaji.Cells(lastRowGaji, 3).Value = totalJam
    wsGaji.Cells(lastRowGaji, 4).Value = gajiPerJam
    wsGaji.Cells(lastRowGaji, 5).Value = totalJam * gajiPerJam
    
    MsgBox "Perhitungan Gaji Berhasil!", vbInformation, "Sukses"
End Sub

Kode ini akan menghitung total jam kerja dan mengalikannya dengan gaji per jam untuk mendapatkan total gaji karyawan.


Kesimpulan

Dengan menggunakan VBA Macro di Excel, kita dapat membuat sistem absensi dan penggajian otomatis yang lebih efisien. Dengan hanya memasukkan nama karyawan, waktu masuk, dan waktu pulang, sistem dapat menghitung total jam kerja serta gaji secara otomatis. Hal ini sangat bermanfaat bagi usaha kecil atau menengah yang ingin menghemat biaya tanpa harus membeli software HRIS mahal.

Semoga artikel ini membantu Anda dalam mengembangkan sistem absensi dan gaji yang lebih efektif! 🚀

baca juga : Travel Galang Bahari - Penyedia Layanan Wisata Terpercaya di Batam

0 Komentar