Anda di halaman 1dari 4

<?

php
//Nama: Bakthiar Sitanggang

//NIM : 223303030412
//Kelas: 3 Malam A

class Perpajakan {

private $penghasilanBruto;

private $bebanTanggungan;

private $statusPernikahan;

private $jumlahAnggotaKeluarga;

public function __construct($penghasilanBruto, $bebanTanggungan, $statusPernikahan,


$jumlahAnggotaKeluarga) {

$this->penghasilanBruto = $penghasilanBruto;

$this->bebanTanggungan = $bebanTanggungan;

$this->statusPernikahan = $statusPernikahan;
$this->jumlahAnggotaKeluarga = $jumlahAnggotaKeluarga;

public function hitungPenghasilanBersih() {


return $this->penghasilanBruto - $this->bebanTanggungan;

public function hitungPTKP() {

$ptkpDasar = 54000000;

$ptkpKawin = 4500000;

$ptkpAnak = 4500000;

$tambahanPTKP = 0;
if ($this->statusPernikahan == 'kawin') {

$tambahanPTKP += $ptkpKawin;
}

$jumlahAnak = min($this->jumlahAnggotaKeluarga, 3); // Batas maksimal 3 anak

$tambahanPTKP += $ptkpAnak * $jumlahAnak;

return $ptkpDasar + $tambahanPTKP;

public function hitungPKP() {

$penghasilanBersih = $this->hitungPenghasilanBersih();
$ptkp = $this->hitungPTKP();

$pkp = max(0, $penghasilanBersih - $ptkp);

return $pkp;

public function hitungPPh() {


$pkp = $this->hitungPKP();

$pPh = 0;

if ($pkp <= 50000000) {

$pPh = $pkp * 0.05;

} elseif ($pkp <= 250000000) {

$pPh = ($pkp - 50000000) * 0.15 + 50000000 * 0.05;

} elseif ($pkp <= 500000000) {

$pPh = ($pkp - 250000000) * 0.25 + 200000000 * 0.15 + 50000000 * 0.05;


} else {
$pPh = ($pkp - 500000000) * 0.3 + 250000000 * 0.25 + 200000000 * 0.15 + 50000000 * 0.05;

return $pPh;

$perpajakanAndi = new Perpajakan(100000000, 2000000, 'kawin', 1);

$penghasilanBersih = $perpajakanAndi->hitungPenghasilanBersih();
$ptkp = $perpajakanAndi->hitungPTKP();

$pkp = $perpajakanAndi->hitungPKP();
$pPh = $perpajakanAndi->hitungPPh();

echo "Penghasilan Bersih: Rp " . number_format($penghasilanBersih, 2) . PHP_EOL;

echo "PTKP: Rp " . number_format($ptkp, 2) . PHP_EOL;

echo "PKP: Rp " . number_format($pkp, 2) . PHP_EOL;

echo "PPh yang harus dibayarkan oleh Andi: Rp " . number_format($pPh, 2) . PHP_EOL;

?>

Anda mungkin juga menyukai