Skip to main content

title: “Payroll Automation — Otomasi Penggajian” description: “Otomasi penggajian dengan kalkulator real-time, AI insights, konfigurasi BPJS/PPh 21, dan export PDF di SNISHOP ERP.”

Payroll Automation — Otomasi Penggajian

Payroll Payroll Automation mengotomatisasi seluruh proses penggajian dari perhitungan gaji pokok, lembur, bonus KPI, potongan BPJS, PPh 21, hingga generate slip gaji PDF. Dilengkapi AI assistant untuk optimasi biaya dan deteksi anomali.

Arsitektur Payroll

Akses Halaman

URL: /payroll

Empat Tab Utama

Tab Realtime: Payroll Calculator

Kalkulator real-time menghitung proyeksi gaji hingga hari ini (bukan akhir bulan):

Tab Payroll: Daftar Resmi

Daftar payroll resmi dengan aksi:

Tab AI Insights: PayrollAIAssistant

AI assistant menggunakan base44.integrations.Core.InvokeLLM untuk analisis mendalam:

1. Cost-Saving Detection

2. Anomaly Detection

3. KPI Impact Analysis

Menganalisis korelasi antara skor KPI dan bonus yang diberikan per periode.

4. Tax Optimization

Saran optimasi PPh 21 berdasarkan bracket pajak dan PTKP.

4. Per-Employee Explanation

Untuk setiap karyawan, AI menghasilkan penjelasan natural language tentang komponen gaji:

Tab Konfigurasi: PayrollConfigForm

Entitas: PayrollConfiguration

Perhitungan Payroll: generatePayroll()

Langkah 1: Gaji Pokok Pro-rated

Langkah 2: Upah Lembur

Langkah 3: Bonus KPI

Bonus berdasarkan rating KPI:

Langkah 4: Gaji Kotor

Langkah 5: BPJS Kesehatan

Langkah 6: BPJS Ketenagakerjaan

Langkah 7: PPh 21 (Pajak Penghasilan)

Perhitungan PPh 21 progresif dengan PTKP: Bracket Pajak Progresif:

Langkah 8: Gaji Bersih

Export PDF

Single Slip

PayrollPDFGenerator menghasilkan PDF slip gaji individual dengan format resmi.

Bulk Export

BulkPayrollPDFButton generate PDF untuk seluruh karyawan dalam satu periode. Berguna untuk arsip dan distribusi slip gaji.

Integrasi dengan Modul Lain


Entity Relationship Diagram


Tabel Schema

CompanyPayroll

Entitas utama untuk menyimpan record penggajian per karyawan per periode. Required fields: company_id, employee_id, period, basic_salary, gross_salary, net_salary

PayrollConfiguration

Konfigurasi penggajian per perusahaan — menyimpan formula, tarif BPJS, bracket pajak, dan parameter kalkulasi. Required fields: company_id

CompanyLoan

Entitas kasbon/pinjaman karyawan yang potongannya diterapkan pada payroll. Required fields: company_id, employee_id, amount, reason

State Machine — Siklus Hidup Payroll

State Machine — Siklus Hidup CompanyLoan


Sequence Diagram — Perhitungan Payroll

Sequence Diagram — Generate Slip Gaji PDF


Enum Tables

payroll_status

Status siklus hidup record payroll.

payroll_period

Format periode penggajian. Periode selalu dalam format ISO 8601 year-month. Satu record payroll per karyawan per periode.

basic_salary_formula

Formula perhitungan gaji pokok yang dikonfigurasi di PayrollConfiguration.

payment_method

Metode pembayaran gaji.

loan_status

Status siklus hidup kasbon/pinjaman karyawan.

kpi_rating

Rating hasil penilaian KPI yang menentukan persentase bonus.

attendance_status

Status absensi harian karyawan.

employment_type

Tipe kepegawaian karyawan.

RBAC — Hak Akses Payroll

Kontrol akses berdasarkan role di CompanyMember. Permission flags di CompanyMember.permissions: RLS Policy: Semua entitas payroll menggunakan filter company_id = user.data.active_company_id untuk isolasi data antar perusahaan. Karyawan hanya bisa melihat data milik sendiri via employee_email = user.email.

Tabel Perhitungan BPJS

BPJS Kesehatan

BPJS Ketenagakerjaan

Ringkasan Total Potongan & Kontribusi

Contoh Perhitungan (Gaji Pokok Rp 10.000.000)


Diagram Relasi Entitas Payroll — Schema Lengkap


Schema Entitas Lengkap — Dikelompokkan per Komponen

Komponen Gaji Pokok (Income)

Field-field yang membentuk penghasilan karyawan sebelum potongan.

CompanyPayroll — Field Gaji Pokok

Payroll (Legacy) — Field Gaji Pokok

Komponen Tunjangan (Allowances)

Tunjangan tambahan yang diberikan kepada karyawan, disimpan sebagai array objek.

CompanyPayroll.allowances

Contoh data allowances:

Payroll.allowances

Komponen Potongan (Deductions)

Potongan-potongan yang mengurangi gaji kotor menjadi gaji bersih.

CompanyPayroll.deductions

Contoh data deductions:

Payroll.deductions

Komponen Status & Pembayaran

Field yang mengatur siklus hidup dan metode pembayaran payroll.

CompanyPayroll — Status & Pembayaran

Payroll (Legacy) — Status & Pembayaran


Employee — Data Karyawan

Entitas yang menyimpan data lengkap karyawan termasuk informasi perbankan dan kontak darurat. Required fields: company_id, employee_id, full_name, email, department, position, hire_date

Employee.bank_account — Informasi Rekening Bank

Objek nested yang menyimpan detail rekening bank untuk transfer gaji. Contoh data bank_account:

Employee.emergency_contact — Kontak Darurat

Objek nested yang menyimpan informasi kontak darurat karyawan. Contoh data emergency_contact:

CompanyAttendance — Data Absensi

Entitas yang mencatat absensi harian karyawan termasuk lokasi GPS dan foto selfie. Required fields: company_id, employee_id, date, clock_in_time

CompanyAttendance.clock_in_location / clock_out_location — Koordinat GPS

Objek nested yang menyimpan koordinat GPS saat clock in/out.

CompanyKPI — Penilaian Kinerja

Entitas yang menyimpan penilaian KPI karyawan per periode, termasuk metrik terbobor dan bukti pencapaian. Required fields: company_id, employee_id, period, metrics

CompanyKPI.metrics[] — Detail Metrik KPI

Setiap elemen array menyimpan satu metrik penilaian. Contoh data metrics:

CompanyMember — Anggota Perusahaan

Entitas yang menghubungkan User dengan Company, menyimpan role, permission, dan data kerja. Required fields: company_id, user_email

CompanyMember.working_hours — Jam Kerja

CompanyMember.permissions — Hak Akses Detail


PayslipTemplate — Template Slip Gaji

Entitas yang menyimpan template untuk cetak slip gaji PDF dengan kustomisasi tampilan. Required fields: company_id, template_name

KPITemplate — Template Penilaian KPI

Entitas yang menyimpan template KPI reusable berdasarkan role dan departemen. Required fields: company_id, template_name, default_metrics

KPITemplate.default_metrics[] — Metrik Default Template


CompanyAttendanceSettings — Pengaturan Absensi

Entitas yang menyimpan konfigurasi absensi perusahaan termasuk geofence, shift, dan pengaturan lembur. Required fields: company_id

CompanyAttendanceSettings.locations[] — Lokasi Geofence

CompanyAttendanceSettings.shifts[] — Shift Kerja

CompanyAttendanceSettings.overtime_settings — Pengaturan Lembur


CompanyLeave — Pengajuan Cuti

Entitas yang menyimpan pengajuan cuti karyawan yang mempengaruhi hari hadir di payroll. Required fields: company_id, employee_id, leave_type, start_date, end_date, reason

State Diagram — Siklus Hidup Lengkap Payroll Processing

State Diagram — Siklus Hidup KPI Assessment

State Diagram — Siklus Hidup CompanyLeave


Sequence Diagram — Perhitungan PPh 21 Progresif

Sequence Diagram — Pencairan Kasbon & Potongan Payroll

Sequence Diagram — Integrasi Absensi ke Payroll


Referensi Enum Lengkap

member_role

Role yang tersedia untuk CompanyMember dalam perusahaan.

employee_status

Status kepegawaian karyawan di entitas Employee.

member_status

Status keanggotaan di CompanyMember.

department

Departemen yang tersedia di entitas Employee.

leave_type

Jenis-jenis cuti yang tersedia di CompanyLeave.

leave_status

Status pengajuan cuti di CompanyLeave.

kpi_status

Status penilaian KPI di CompanyKPI dan KPI.

kpi_calculation_method

Metode perhitungan metrik di KPITemplate.

kpi_aggregation

Jenis agregasi untuk auto_source di KPITemplate.

calculation_frequency

Frekuensi kalkulasi otomatis KPI.

company_industry

Industri perusahaan di entitas Company.

RBAC Lengkap — Hak Akses Semua Entitas Payroll

Hak Akses CompanyPayroll & Payroll

Hak Akses Employee

Hak Akses CompanyAttendance

Hak Akses CompanyKPI

Hak Akses CompanyLoan

Hak Akses CompanyLeave

Hak Akses PayrollConfiguration

Hak Akses PayslipTemplate

Hak Akses KPITemplate

RLS Policy — Ringkasan Isolasi Data


Ringkasan Alur Data Payroll