PHPackages                             steevenz/id-payroll-calculator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. steevenz/id-payroll-calculator

ActivePhp-class[API Development](/categories/api)

steevenz/id-payroll-calculator
==============================

Indonesian Employee Payroll Calculator

v1.7.5(6y ago)2155016[1 issues](https://github.com/steevenz/id-payroll-calculator/issues)[1 PRs](https://github.com/steevenz/id-payroll-calculator/pulls)MITPHPPHP ^7.2.0

Since May 9Pushed 3y ago3 watchersCompare

[ Source](https://github.com/steevenz/id-payroll-calculator)[ Packagist](https://packagist.org/packages/steevenz/id-payroll-calculator)[ RSS](/packages/steevenz-id-payroll-calculator/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (1)Versions (23)Used By (0)

Indonesia Payroll Calculator
============================

[](#indonesia-payroll-calculator)

[![Latest Stable Version](https://camo.githubusercontent.com/4db5b91b469cd91b2307370b3ee8dc4127ee394441d3fa085e6ca82445ff69f8/68747470733a2f2f706f7365722e707567782e6f72672f7374656576656e7a2f69642d706179726f6c6c2d63616c63756c61746f722f762f737461626c65)](https://packagist.org/packages/steevenz/id-payroll-calculator) [![Total Downloads](https://camo.githubusercontent.com/5a6bd232ae805ecaa2f2c1577be314fd6dcc26946410f67f9fc8ca5a0b4ec833/68747470733a2f2f706f7365722e707567782e6f72672f7374656576656e7a2f69642d706179726f6c6c2d63616c63756c61746f722f646f776e6c6f616473)](https://packagist.org/packages/steevenz/id-payroll-calculator) [![Latest Unstable Version](https://camo.githubusercontent.com/f4a255890f0991b9a6ffe74a502f7cfe1ce3e22ba8b13f87d02462c9ab6e7468/68747470733a2f2f706f7365722e707567782e6f72672f7374656576656e7a2f69642d706179726f6c6c2d63616c63756c61746f722f762f756e737461626c65)](https://packagist.org/packages/steevenz/id-payroll-calculator) [![License](https://camo.githubusercontent.com/883c211a1df95d665868180b89389d8b0e7979ac27bac15e3ac536127cc4434f/68747470733a2f2f706f7365722e707567782e6f72672f7374656576656e7a2f69642d706179726f6c6c2d63616c63756c61746f722f6c6963656e7365)](https://packagist.org/packages/steevenz/id-payroll-calculator)

Ini merupakan PHP Component pembantu proses perhitungan gaji yang disesuaikan dengan peraturan-peraturan yang berlaku di Indonesia.

Fitur
-----

[](#fitur)

- Perhitungan PPH21
- Perhitungan PPH23
- Perhitungan PPH26
- Perhitungan Perpajakan Bonus dan Tunjangan Hari Raya
- Perhitungan Overtime sesuai ketentuan
- Perhitungan Split Shift

Referensi
---------

[](#referensi)

- [PPh21](https://www.online-pajak.com/perhitungan-pph-21)
- [PTKP](https://www.online-pajak.com/ptkp-terbaru-pph-21)
- [PPh23](https://www.online-pajak.com/perhitungan-pph-23)
- [PPh26](https://www.online-pajak.com/perhitungan-pph-26)
- [BPJS Kesehatan](https://www.panduanbpjs.com/iuran-bpjs-perbulan/)
- [BPJS Ketenagakerjaan](https://www.finansialku.com/berapa-iuran-bpjs-ketenagakerjaan-yang-harus-saya-bayar-dan-yang-ditanggung-perusahaan/)
- [UMP 2019](https://smartlegal.id/smarticle/layanan/2018/12/12/ini-daftar-upah-minimum-provinsi-ump-2019/)

Instalasi
---------

[](#instalasi)

Cara terbaik untuk melakukan instalasi library ini adalah dengan menggunakan [Composer](https://packagist.org/packages/steevenz/id-payroll-calculator)

```
composer require steevenz/id-payroll-calculator

```

Penggunaan
----------

[](#penggunaan)

```
use Steevenz\IndonesiaPayrollCalculator\PayrollCalculator;

// Inisiasi class PayrollCalculator
$payrollCalculator = new PayrollCalculator();

// Khusus Perhitungan PPH 21 -------

// Calculation method
$payrollCalculator->method = PayrollCalculator::NETT_CALCULATION;

// Tax Number
$payrollCalculator->taxNumber = 21;

// Set data karyawan
$payrollCalculator->employee->permanentStatus = true; // Tetap (true), Tidak Tetap (false), secara default sudah terisi nilai true.
$payrollCalculator->employee->maritalStatus = true; // Menikah (true), Tidak Menikah/Single (false), secara default sudah terisi nilai false.
$payrollCalculator->employee->hasNPWP = true; // Secara default sudah terisi nilai true. Jika tidak memiliki npwp akan dikenakan potongan tambahan 20%
$payrollCalculator->employee->numOfDependentsFamily = 0; // Jumlah tanggungan, max 5 jika lebih akan dikenakan tambahannya perorang sesuai ketentuan BPJS Kesehatan

// Set data pendapatan karyawan
$payrollCalculator->employee->earnings->base = 8000000; // Besaran nilai gaji pokok/bulan
$payrollCalculator->employee->earnings->fixedAllowance = 0; // Besaran nilai tunjangan tetap
$payrollCalculator->employee->calculateHolidayAllowance = 0; // jumlah bulan proporsional
// NOTE: besaran nilai diatas bukan nilai hasil proses perhitungan absensi tetapi nilai default sebagai faktor perhitungan gaji.

// Set data kehadiran karyawan
$payrollCalculator->employee->presences->workDays = 25; // jumlah hari masuk kerja
$payrollCalculator->employee->presences->overtime = 2; //  perhitungan jumlah lembur dalam satuan jam
$payrollCalculator->employee->presences->latetime = 0; //  perhitungan jumlah keterlambatan dalam satuan jam
$payrollCalculator->employee->presences->travelDays = 0; //  perhitungan jumlah hari kepergian dinas
$payrollCalculator->employee->presences->indisposedDays = 0; //  perhitungan jumlah hari sakit yang telah memiliki surat dokter
$payrollCalculator->employee->presences->absentDays = 0; //  perhitungan jumlah hari alpha
$payrollCalculator->employee->presences->splitShifts = 0; // perhitungan jumlah split shift

// Set data tunjangan karyawan diluar tunjangan BPJS Kesehatan dan Ketenagakerjaan
$payrollCalculator->employee->allowances->offsetSet('tunjanganMakan', 100000);
// NOTE: Jumlah allowances tidak ada batasan

// Set data potongan karyawan diluar potongan BPJS Kesehatan dan Ketenagakerjaan
$payrollCalculator->employee->deductions->offsetSet('kasbon', 100000);
// NOTE: Jumlah deductions tidak ada batasan

// Set data bonus karyawan diluar tunjangan
$payrollCalculator->employee->bonus->offsetSet('serviceCharge', 100000);
// NOTE: Jumlah bonus tidak ada batasan

// Set data ketentuan negara
$payrollCalculator->provisions->state->overtimeRegulationCalculation = true; // Jika false maka akan dihitung sesuai kebijakan perusahaan
$payrollCalculator->provisions->state->provinceMinimumWage = 3940972; // Ketentuan UMP sesuai propinsi lokasi perusahaan

// Set data ketentuan perusahaan
$payrollCalculator->provisions->company->numOfWorkingDays = 25; // Jumlah hari kerja dalam satu bulan
$payrollCalculator->provisions->company->numOfWorkingHours = 8; // Jumlah hari kerja dalam satu hari
$payrollCalculator->provisions->company->calculateOvertime = true; // Apakah perusahaan menghitung lembur

// Jika $payrollCalculator->provisions->state->overtimeRegulationCalculation = false;
$payrollCalculator->provisions->company->overtimeRate = 10000 // Nilai rate overtime per jam, Jika bernilai 0 namun $payrollCalculator->provisions->company->calculateOvertime, maka rate akan dihitung secara otomatis berdasarkan renumerasi besaran gaji, hari dan jam kerja

$payrollCalculator->provisions->company->calculateSplitShifts = true; // Apakah perusahan menghitung split shifts
$payrollCalculator->provisions->company->splitShiftsRate = 25000; // Rate Split Shift perusahaan
$payrollCalculator->provisions->company->calculateBPJSKesehatan = true; // Apakah perusahaan menyediakan BPJS Kesehatan / tidak untuk orang tersebut

// Apakah perusahaan menyediakan BPJS Ketenagakerjaan / tidak untuk orang tersebut
$payrollCalculator->provisions->company->JKK = true;
$payrollCalculator->provisions->company->JKM = true;
$payrollCalculator->provisions->company->JHT = true;
$payrollCalculator->provisions->company->JIP = true;

$payrollCalculator->provisions->company->riskGrade = 2; // Golongan resiko ketenagakerjaan, umumnya 2
$payrollCalculator->provisions->company->absentPenalty = 55000; // Perhitungan nilai potongan gaji/hari sebagai penalty.
$payrollCalculator->provisions->company->latetimePenalty = 100000; // Perhitungan nilai keterlambatan sebagai penalty.

// Mengambil hasil perhitungan
$payrollCalculator->getCalculation(); // Berupa SplArrayObject yang berisi seluruh data perhitungan gaji, lengkap dengan perhitungan BPJS dan PPh21

// Khusus Perhitungan PPH 23 -------
$payrollCalculator->taxNumber = 23;
$payrollCalculator->employee->hasNPWP = true;
$payrollCalculator->employee->earnings->base = 8000000;

// Khusus Perhitungan PPH 26 -------
$payrollCalculator->taxNumber = 26;
$payrollCalculator->employee->hasNPWP = true;
$payrollCalculator->employee->earnings->base = 8000000;

// Mengambil hasil perhitungan
$payrollCalculator->getCalculation(); // Berupa SplArrayObject yang berisi lengkap dengan perhitungan pajak
```

Untuk keterangan lebih lengkap dapat dibaca di [Wiki](https://github.com/steevenz/id-payroll-calculator/wiki)

Ide, Kritik dan Saran
---------------------

[](#ide-kritik-dan-saran)

Jika anda memiliki ide, kritik ataupun saran, anda dapat mengirimkan email ke [steevenz@stevenz.com](mailto:steevenz@steevenz.com). Anda juga dapat mengunjungi situs pribadi saya di [steevenz.com](http://steevenz.com)

Bugs and Issues
---------------

[](#bugs-and-issues)

Jika anda menemukan bugs atau issue, anda dapat mempostingnya di [Github Issues](http://github.com/steevenz/id-payroll-calculator/issues).

Requirements
------------

[](#requirements)

- PHP 7.2+
- [Composer](https://getcomposer.org)
- [O2System Spl](http://github.com/o2system/spl)

###  Health Score

34

↑

LowBetter than 77% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~1 days

Total

22

Last Release

2349d ago

PHP version history (2 changes)1.0.0PHP ^7.2.0

v1.4.7PHP ~7.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/e2ac781bdba53fdce5ac7a9f090a4afd42b18766646036370661ffefde7811de?d=identicon)[steevenz](/maintainers/steevenz)

---

Top Contributors

[![saesetiawan](https://avatars.githubusercontent.com/u/31687610?v=4)](https://github.com/saesetiawan "saesetiawan (4 commits)")[![steevenz](https://avatars.githubusercontent.com/u/218405?v=4)](https://github.com/steevenz "steevenz (1 commits)")[![turahe](https://avatars.githubusercontent.com/u/6832622?v=4)](https://github.com/turahe "turahe (1 commits)")

---

Tags

apiid-payroll-calculator

### Embed Badge

![Health badge](/badges/steevenz-id-payroll-calculator/health.svg)

```
[![Health](https://phpackages.com/badges/steevenz-id-payroll-calculator/health.svg)](https://phpackages.com/packages/steevenz-id-payroll-calculator)
```

###  Alternatives

[m165437/laravel-blueprint-docs

API Blueprint Renderer for Laravel

22779.0k](/packages/m165437-laravel-blueprint-docs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
