PHPackages                             irwan-runtuwene/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. irwan-runtuwene/id-payroll-calculator

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

irwan-runtuwene/id-payroll-calculator
=====================================

Indonesian Employee Payroll Calculator

v1.8.3(2y ago)1801MITPHPPHP ^8.0.0

Since May 9Pushed 2y agoCompare

[ Source](https://github.com/irwan-runtuwene/id-payroll-calculator)[ Packagist](https://packagist.org/packages/irwan-runtuwene/id-payroll-calculator)[ RSS](/packages/irwan-runtuwene-id-payroll-calculator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (1)Versions (32)Used By (0)

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

[](#indonesia-payroll-calculator)

[![Latest Stable Version](https://camo.githubusercontent.com/a239cd3ca78b2d6f07fb3561e7e83034929e3ce0b2ebd485e51d04b44c5612ba/687474703a2f2f706f7365722e707567782e6f72672f697277616e2d72756e747577656e652f69642d706179726f6c6c2d63616c63756c61746f722f76)](https://packagist.org/packages/irwan-runtuwene/id-payroll-calculator) [![Total Downloads](https://camo.githubusercontent.com/8e7e1829ed11f60f5aa547682f687f410ec775626f6d6af06a0304664fc387e2/687474703a2f2f706f7365722e707567782e6f72672f697277616e2d72756e747577656e652f69642d706179726f6c6c2d63616c63756c61746f722f646f776e6c6f616473)](https://packagist.org/packages/irwan-runtuwene/id-payroll-calculator) [![Latest Unstable Version](https://camo.githubusercontent.com/563184ab518b4bc8a39191fe7a80629bba5e261fc9b61753ee53bed721d8550b/687474703a2f2f706f7365722e707567782e6f72672f697277616e2d72756e747577656e652f69642d706179726f6c6c2d63616c63756c61746f722f762f756e737461626c65)](https://packagist.org/packages/irwan-runtuwene/id-payroll-calculator) [![License](https://camo.githubusercontent.com/666ca2c15211b1fe2deeddf11bd1e4f4f1945d434a052c433a109dbed63d5a54/687474703a2f2f706f7365722e707567782e6f72672f697277616e2d72756e747577656e652f69642d706179726f6c6c2d63616c63756c61746f722f6c6963656e7365)](https://packagist.org/packages/irwan-runtuwene/id-payroll-calculator) [![PHP Version Require](https://camo.githubusercontent.com/33252371564e698859608aba6a27de7f897a0840bcacfc8f5f73d59bc85b2e6a/687474703a2f2f706f7365722e707567782e6f72672f697277616e2d72756e747577656e652f69642d706179726f6c6c2d63616c63756c61746f722f726571756972652f706870)](https://packagist.org/packages/irwan-runtuwene/id-payroll-calculator)

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

Fitur
-----

[](#fitur)

- Perhitungan PPH21 HPP 2021
- 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/irwan.runtuwene/id-payroll-calculator)

```
composer require irwan-runtuwene/id-payroll-calculator

```

Penggunaan
----------

[](#penggunaan)

```
use IrwanRuntuwene\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 tunjangan karyawan yang tidak dipotong pajak
$payrollCalculator->employee->nonTaxAllowances->offsetSet('fasilitas', 2750000);
// 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 pinjaman karyawan
$payrollCalculator->employee->loans->offsetSet('pinjamanKaryawan', 1000000);
// NOTE: Jumlah pinjaman 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/irwan.runtuwene/id-payroll-calculator/wiki)

Credits
-------

[](#credits)

Repo ini merukapan forking dari

Terima kasih kepada [Steeven Andrian Salim](https://github.com/steevenz) untuk code awal yang cemerlang.

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

[](#bugs-and-issues)

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

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

[](#requirements)

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

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 51.6% 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 ~61 days

Recently: every ~130 days

Total

30

Last Release

791d ago

PHP version history (3 changes)1.0.0PHP ^7.2.0

v1.4.7PHP ~7.2.0

v1.8.3PHP ^8.0.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/8a8e269a8cea5f660aadda2fa2f2eaf5ec817642f68ec41516e00c79bb050f0d?d=identicon)[irwan-runtuwene](/maintainers/irwan-runtuwene)

---

Top Contributors

[![irwan-runtuwene](https://avatars.githubusercontent.com/u/1209559?v=4)](https://github.com/irwan-runtuwene "irwan-runtuwene (33 commits)")[![Loetfi](https://avatars.githubusercontent.com/u/19318186?v=4)](https://github.com/Loetfi "Loetfi (24 commits)")[![saesetiawan](https://avatars.githubusercontent.com/u/31687610?v=4)](https://github.com/saesetiawan "saesetiawan (4 commits)")[![johanriyanto](https://avatars.githubusercontent.com/u/3894676?v=4)](https://github.com/johanriyanto "johanriyanto (1 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/irwan-runtuwene-id-payroll-calculator/health.svg)

```
[![Health](https://phpackages.com/badges/irwan-runtuwene-id-payroll-calculator/health.svg)](https://phpackages.com/packages/irwan-runtuwene-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)
