Membuat Aplikasi Absen di Excel dengan Macro: Lengkap dengan Potongan Gaji

Membuat Aplikasi Absen di Excel dengan Macro: Lengkap dengan Potongan Gaji

 

Membuat Aplikasi Absen di Excel dengan Macro: Lengkap dengan Potongan Gaji

Pendahuluan

Absensi karyawan merupakan salah satu aspek penting dalam manajemen sumber daya manusia. Dengan adanya sistem absensi yang baik, perusahaan dapat memastikan kedisiplinan pegawai serta mengelola gaji dengan lebih akurat. Salah satu cara sederhana dan efektif untuk membuat sistem absensi adalah dengan menggunakan Microsoft Excel yang didukung oleh Macro (VBA - Visual Basic for Applications)..

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

Artikel ini akan membahas secara lengkap cara membuat aplikasi absensi menggunakan Excel Macro, termasuk fitur potongan gaji berdasarkan ketidakhadiran atau keterlambatan karyawan.


Persiapan Awal

Sebelum memulai pembuatan aplikasi, pastikan Anda telah menyiapkan hal-hal berikut:

  1. Microsoft Excel (Versi 2010 ke atas lebih disarankan)

  2. Mengaktifkan Macro dan Developer Tab

  3. Pemahaman Dasar tentang VBA (Visual Basic for Applications)

Cara Mengaktifkan Macro dan Developer Tab

  1. Buka Microsoft Excel.

  2. Klik FileOptionsCustomize Ribbon.

  3. Centang Developer di panel kanan dan klik OK.

  4. Untuk mengaktifkan Macro:

    • Klik DeveloperMacro Security.

    • Pilih Enable all macros.

    • Klik OK.


Membuat Template Absensi

Langkah pertama dalam pembuatan aplikasi absensi ini adalah membuat template utama.

  1. Buka Microsoft Excel dan buat tabel absensi dengan format seperti berikut:

    NoNama KaryawanTanggalJam MasukJam KeluarTotal JamKeterlambatanStatus
    1John Doe01/03/202508:1017:008:5010 MenitHadir
  2. Tambahkan kolom untuk perhitungan potongan gaji:

    NoNama KaryawanGaji PokokPotonganGaji Bersih
    1John Doe5.000.00050.0004.950.000
  3. Simpan file dengan nama Absensi_Macro.xlsm (format Excel Macro-Enabled Workbook).


Membuat Formulir Input Data Absensi

Agar lebih mudah digunakan, kita akan membuat formulir input otomatis menggunakan UserForm VBA.

Langkah Membuat UserForm:

  1. Klik DeveloperVisual Basic.

  2. Di VBA Editor, klik InsertUserForm.

  3. Tambahkan kontrol berikut:

    • TextBox untuk Nama Karyawan.

    • ComboBox untuk memilih Tanggal.

    • TextBox untuk Jam Masuk dan Jam Keluar.

    • Button untuk menyimpan data.

Menambahkan Kode VBA untuk Menyimpan Data

Tambahkan kode berikut ke tombol Simpan:

Private Sub btnSimpan_Click()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    Dim lastRow As Integer
    lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    ws.Cells(lastRow, 1).Value = lastRow - 1 'Nomor Otomatis
    ws.Cells(lastRow, 2).Value = Me.txtNama.Value
    ws.Cells(lastRow, 3).Value = Me.cmbTanggal.Value
    ws.Cells(lastRow, 4).Value = Me.txtJamMasuk.Value
    ws.Cells(lastRow, 5).Value = Me.txtJamKeluar.Value
    Me.Hide
End Sub

Menghitung Total Jam Kerja dan Keterlambatan

Untuk menghitung total jam kerja dan keterlambatan, gunakan formula Excel berikut:

  • Total Jam Kerja: =TEXT(E2-D2,"[h]:mm")

  • Keterlambatan: =IF(D2>TIME(8,0,0),D2-TIME(8,0,0),0)

Atau tambahkan kode VBA untuk otomatis menghitung keterlambatan:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("D2:D100")) Is Nothing Then
        Dim i As Integer
        For i = 2 To 100
            If Cells(i, 4).Value > TimeValue("08:00:00") Then
                Cells(i, 7).Value = Cells(i, 4).Value - TimeValue("08:00:00")
            Else
                Cells(i, 7).Value = "Tepat Waktu"
            End If
        Next i
    End If
End Sub

Menentukan Potongan Gaji Otomatis

Untuk setiap keterlambatan atau ketidakhadiran, perusahaan dapat menerapkan potongan gaji. Misalnya:

  • Keterlambatan 10-30 menit: Potongan Rp50.000

  • Keterlambatan >30 menit: Potongan Rp100.000

  • Tidak hadir tanpa keterangan: Potongan Rp200.000

Tambahkan formula Excel di kolom Potongan:

=IF(H2="Tidak Hadir",200000, IF(G2>TIME(0,30,0),100000,IF(G2>TIME(0,10,0),50000,0)))

Untuk VBA:

Private Sub HitungPotongan()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim i As Integer
    
    For i = 2 To 100
        If ws.Cells(i, 8).Value = "Tidak Hadir" Then
            ws.Cells(i, 10).Value = 200000
        ElseIf ws.Cells(i, 7).Value > TimeValue("00:30:00") Then
            ws.Cells(i, 10).Value = 100000
        ElseIf ws.Cells(i, 7).Value > TimeValue("00:10:00") Then
            ws.Cells(i, 10).Value = 50000
        Else
            ws.Cells(i, 10).Value = 0
        End If
    Next i
End Sub

Kesimpulan

Dengan menggunakan Excel Macro dan VBA, kita dapat membuat aplikasi absensi yang otomatis mencatat kehadiran, menghitung keterlambatan, dan menerapkan potongan gaji. Sistem ini cocok digunakan oleh UMKM atau perusahaan yang ingin memiliki sistem absensi sederhana tanpa perlu software mahal.

Jika ingin mengembangkan lebih lanjut, Anda bisa menambahkan fitur notifikasi email atau integrasi dengan Google Sheets untuk penyimpanan berbasis cloud. Selamat mencoba!

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

0 Komentar