Anda di halaman 1dari 18

LAPORAN PROGRAM

PENGHITUNGAN PAJAK PENGHASILAN

Disusun Untuk Memenuhi Ujian Tengah Semester (PPI-MK)


Oleh:

03. Anita Anggitia (4111210016)


08. Farchani Assih Pradilla (4121210059)
13. Lely Nur Azizah (4121210073)
18. Parcelia Tara Amanda (4131210059)
23. Tazkiya Khairani (4111210018)

Dosen Pengampu:
Nurul Budi Utomo

POLITEKNIK KEUANGAN NEGARA STAN


BADAN PENDIDIKAN DAN PELATIHAN KEUANGAN
KEMENTERIAN KEUANGAN
2022
LAPORAN PROGRAM PENGHITUNGAN
PAJAK PENGHASILAN

A. Deskripsi
Pajak Penghasilan atau PPh adalah pajak yang dikenakan kepada orang pribadi atau
badan atas penghasilan yang diterima atau diperoleh dalam suatu tahun pajak.
Penghasilan yang dimaksud dapat berupa keuntungan usaha, gaji, honorarium, hadiah,
dan yang lainnya. Dasar pengenaan pajak atau DPP adalah dasar pengenaan pajak dari
wajib pajak penerima penghasilan. Dasar pengenaan pajak atau DPP adalah dasae
pengenaan pajak yang diperoleh dari wajib pajak penerima penghasilan. Wajib pajak
yang dimaksud adalah yang memiliki nomor pokok wajib pajak (NPWP).
Tarif PPh pasal 21 dipotong dari jumlah penghasilan kena pajak (PKP) yang
dibulatkan ke bawah dalam ribuan penuh. Tarif PPh bersifat progresif yang artinya
semakin tinggi penghasilan yang diterima maka akan dikenakan lapis tarif lebih tinggi.
Berdasarkan Pasal 17 Undang-undang PPh besarnya tarif pajak yang berlaku yaitu :

 5% untuk penghasilan tahunan sampai dengan Rp50.000.000


 15% untuk penghasilan diatas Rp50.000.000 sampai dengan Rp250.000.000
 25% untuk penghasilan Rp250.000.000 sampai dengan Rp500.000,000
 30% untuk penghasilan diatas Rp500.000.000
 Bagi penerima penghasilan yang tidak memiliki NPWP dikenakan dengan tarif
yang lebih tinggi.

Program ini adalah program yang dapat memungkinkan Wajib Pajak untuk
menghitung Besaran Pajak Terutang yang harus dibayar dengan memasukkan
komponen-komponen penting perhitungan Pajak.

B. Tujuan
Program ini bertujuan untuk memudahkan Wajib Pajak dalam menghitung Besaran
Pajak Terutang yang harus dibayar dengan memasukkan komponen-komponen
penting perhitungan Pajak.
Melalui program ini diharapkan masyarakat taat untuk membayar pajak karena
pajak merupakan salah satu hak dan kewajiban bagi warga negara Indonesia, dan
ketepatan waktu dalam membayar pajak akan berpengaruh pada penerimaan negara
yang akan berdampak pada kesejahteraan masyarakat di Indonesia.

C. Target Pencapaian
1. Code berhasil dijalankan
2. Program dapat menghitung PPh dengan akurat
3. Program dapat menjadi solusi atas case yang ada
D. Proses Pengerjaan
Dalam mengerjakan pemrograman ini kami mendiskusikan bersama untuk
menentukan program seperti apa yang dibutuhkan. Pada prosesnya, terdapat
sejumlah ide yang muncul. Kemudian, kami mengambil kesepakatan bersama dan
memutuskan untuk membuat program penghitungan PPh serta sejumlah konsep
terkait.

Dalam prosesnya, kami membagi tugas antar anggota mengingat kami juga harus
mengerjakan tugas lainnya (visualisasi data). Adapun pembagian rincian
pembagian tugas, sebagai berikut :
1. Anita : mengelola Trello, testing code, dokumentasi kelompok, dan Menyusun
laporan akhir
2. Farchani : membuat coding python, menyusu pseudocode, dan mengelola
Trello.
3. Lely : Menyusun visualisasi data, Menyusun materi pph, laporan akhir, dan
testing code.
4. Parcelia : testing code, menyusun visualisasi data, membuat template
penilaian teman sejawat.
5. Tazkiya : testing code, membuat case, dan Menyusun visualisasi data.

E. Kasus
Sistem Pemungutan Pajak yang dilakukan di Indonesia adalah Self Assessment
System yaitu penentuan besaran pajak yang perlu dilakukan oleh wajib pajak secara
mandiri. Namun, Pak Reno kesulitan dalam melakukan perhitungan pajak
penghasilan. Kira-kira bagaimana yaa program yang dapat memudahkan Pak Reno?

Diketahui, Pak Reno sudah memiliki akun di program tersebut dengan username
renoyanto dan password-nya reno123, dengan nomor NPWP-nya 12.123.1-123.123

Pak Reno adalah asisten manajer pemasaran memperoleh gaji pokok sebesar Rp
15.000.000 per bulan dan tunjangan jabatan sebesar Rp 3.000.000 dan tunjangan
transport sebesar Rp 2.000.000. Pada bulan Februari menerima lembur sebesar Rp
1.000.000, lembur selalu ada tiap bulan namun jumlahnya bervariasi tiap bulannya.
Perusahaan membayarkan premi asuransi kecelakan kerja sebesar 0,54%, premi
asuransi kecelakaan kerja dan asuransi kematian sebesar 0,3% gaji pokok. Iuran
jaminan hari tua yang dibayarkan oleh pemberi kerja 3,7% dan yang dibayar sendiri
oleh Ibu Rina 2% gaji pokok. Perusahaan mendaftarkan juga pada program pensiun
dengan iuran Rp 500.000 dibayar pemberi kerja dan Rp 400.000 dibayar sendiri. Reno
menikah dan memiliki 2 orang anak yang masih sekolah, istrinya bekerja di sebuah
BUMN dengan gaji Rp 15.000.000,00. Bagaimana penyelesaian kasus tersebut?
F. Algoritma Program
print ("APLIKASI PENGHITUNG PAJAK PENGHASILAN")
print ("Selamat datang di Aplikasi Penghitung Pajak Penghasilan")

def login():
print("=" * 30)
print("\tLOGIN WAJIB PAJAK")
print("=" * 30)
username = input("Masukkan Username\t: ")
password = input("Masukkan Password\t: ")
if username == "renoyanto" and password == "reno123":
print("Login berhasil")
else:
print("Login Gagal")
login()

def NPWP_check():
from re import compile
NPWP_format = compile('^[0-9]{2}["."][0-9]{3}["."][0-9]{3}["."][0-9]{1}[-][0-9]{3}["."][0-
9]{3}$')
NPWP = input("\nMasukkan Nomor Pokok Wajib Pajak\t: ")
if NPWP_format.match(NPWP) is not None:
print("NPWP berhasil ditemukan")
status()
else:
print("NPWP tidak ditemukan")
NPWP = input("\nMasukkan Nomor Pokok Wajib Pajak\t: ")

def status():
print("\n===STATUS & TANGGUNGAN===")
print("Pilih STATUS dan TANGGUNGAN")
print("1. Pribadi\n(tidak menanggung siapa–siapa)")
print("2. Kawin\n(punya istri tapi istri tidak bekerja)/ 1 tanggungan")
print("3. Kawin dan memiliki tanggungan")
print("4. Beristri namun belum memiliki tanggungan, dengan penghasilan digabung\n(istrinya
kerja dan penghasilan digabung)")
print("5. Kawin dan istri bekerja serta memiliki tanggungan\n")

login()
NPWP_check()
while True:
status = input("Masukkan keterangan STATUS & TANGGUNGAN (1/2/3/4/5): ")
Gajipokok = int(input("\nMasukkan nominal Gaji Pokok: "))
Tunjanganpajak = int(input("Masukkan nominal Tunjangan PPh: "))
Tunjangalain = int(input("Masukkan nominal Tunjangan Lain: "))
Premiasuransi = int(input("Masukkan nominal Premi Asuransi: "))
bruto = int(Gajipokok + Tunjanganpajak + Tunjangalain + Premiasuransi)
biayajabatan = int((5 * bruto) / 100)
iuran = int(input("Masukkan nominal Iuran yang ditanggung: "))
netto = int(bruto - biayajabatan - iuran) * 12

if status == "1":
if netto < 54000000:
print("\nAnda tidak perlu membayar Pajak")
if netto > 54000000:
PKP = int(netto - 54000000)
print("\nPenghasilan Kena Pajak = ", PKP)
if PKP < 50000000:
pajak_terhutang = int((PKP * 5) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 50000000<PKP<250000000:
pajak_terhutang = int((PKP * 15) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 250000000<PKP<500000000:
pajak_terhutang = int((PKP * 25) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if PKP>500000000:
pajak_terhutang = int((PKP * 30) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if status == "2":
if netto < 58500000:
print("\nAnda tidak perlu membayar Pajak")
if netto > 58500000:
PKP = int(netto - 58500000)
print("\nPenghasilan Kena Pajak = ", PKP)
if PKP < 50000000:
pajak_terhutang = int((PKP * 5) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 50000000<PKP<250000000:
pajak_terhutang = int((PKP * 15) / 100)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 250000000<PKP<500000000:
pajak_terhutang = int((PKP * 25) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if PKP>500000000:
pajak_terhutang = int((PKP * 30) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if status == "3":
jumlah_tanggungan = int(input("Masukkan jumlah tanggungan: "))
PTKP = 54000000 + (4500000 * jumlah_tanggungan)
if netto < PTKP:
print("Anda tidak perlu membayar Pajak")
if netto > PTKP:
PKP = int(netto - PTKP)
print("\nPenghasilan Kena Pajak = ", PKP)
if PKP < 50000000:
pajak_terhutang = int((PKP * 5) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 50000000<PKP<250000000:
pajak_terhutang = int((PKP * 15) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 250000000<PKP<500000000:
pajak_terhutang = int((PKP * 25) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if PKP>500000000:
pajak_terhutang = int((PKP * 30) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if status == "4":
if netto < 112500000:
print("\nAnda tidak perlu membayar Pajak")
if netto > 112500000:
PKP = int(netto - 112500000)
print("\nPenghasilan Kena Pajak = ", PKP)
if PKP < 50000000:
pajak_terhutang = int((PKP * 5) / 100 /12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 50000000<PKP<250000000:
pajak_terhutang = int((PKP * 15) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 250000000<PKP<500000000:
pajak_terhutang = int((PKP * 25) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if PKP>500000000:
pajak_terhutang = int((PKP * 30) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if status == "5":
jumlah_tanggungan = int(input("Masukkan jumlah tanggungan: "))
PTKP = 112500000 + (4500000 * jumlah_tanggungan)
if netto < PTKP:
print("\nAnda tidak perlu membayar Pajak")
if netto > PTKP:
PKP = int(netto - PTKP)
print("\nPenghasilan Kena Pajak = ", PKP)
if PKP < 50000000:
pajak_terhutang = int((PKP * 5) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 50000000<PKP<250000000:
pajak_terhutang = int((PKP * 15) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if 250000000<PKP<500000000:
pajak_terhutang = int((PKP * 25) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")
if PKP>500000000:
pajak_terhutang = int((PKP * 30) / 100/12)
print("\nPajak yang harus anda bayar adalah sebesar ", pajak_terhutang)
print("Jangan lupa bayar pajak anda yaa!")

pilih = input("\n" + "Apakah ingin menggunakan kembali ? (Y/N) = ")


if pilih.upper() == "N":
print("Terima Kasih")
break
if pilih.upper() != "Y":
print("Error")
break

PSEUDOCODE
Prosedur login
Deklarasi variabel lokal
username, password:string
Deskripsi
Cetak “LOGIN WAJIB PAJAK”
Input username
Input password
if username = usernamewajibpajak and password = passwordwajibpajak then
Cetak “Login berhasil”
Panggil prosedur menu
else
Cetak “Login gagal”
Panggil prosedur login
Prosedur cek NPWP
Mengimpor modul compile
Deklarasi variabel lokal
NPWP:string
Deskripsi
Input NPWP
if NPWP match = NPWP_format then
Cetak “NPWP Berhasil ditemukan”
Panggil prosedur status
else
Cetak “NPWP tidak ditemukan”
Input NPWP
Prosedur menu
Deskripsi
Cetak “STATUS & TANGGUNGAN”
Cetak “Silahkan Pilih STATUS dan TANGGUNGAN”
Cetak “1. Pribadi (tidak menanggung siapa–siapa)”
Cetak “2. Kawin (punya istri tapi istri tidak bekerja)/ 1 tanggungan”
Cetak “3. Kawin dan memiliki tanggungan”
Cetak “4. Beristri dengan penghasilan digabung (istrinya kerja dan penghasilan digabung)”
Cetak “5. Kawin dan istri bekerja serta memiliki tanggungan”
Deklarasi
Gajipokok, Tunjanganpajak, Tunjanganlain, Premiasuransi, bruto, biayajabatan, iuran, netto,
PKP, pajak_terhutang:integer
Deskripsi
Panggil prosedur login
Panggil prosedur cek NPWP
while True
Input pilihan status
Input Gaji Pokok
Input Tunjangan Pph
Input Tunjangan lain
Input Premi Asuransi
Input iuran yang ditanggung
Deskripsi
Input gaji pokok
Input tunjangan pajak
Input tunjangan lain
Input premi asuransi
Input iuran yang ditanggung
bruto = gajipokok + tunjanganpajak + tunjanganlain + premiasuransi
biayajabatan = (5 * bruto)/100
Input iuran
netto = (bruto – biayajabatan – iuran) * 12
if status = 1 then
If netto < 54.000.000 then
Cetak “Anda tidak perlu membayar pajak”
If netto > 54.000.000 then
PKP = netto – 54.000.000
Cetak “Penghasilan Kena Pajak = ” + PKP
If PKP < 50.000.000 then
pajak_terhutang = PKP * 5 /100/12
Cetak “Pajak yang harus anda bayar adalah sebesar” + pajak_terhutang
Cetak “Jangan lupa bayar pajak Anda yaa!”
If 50.000.000<PKP<250.000.000 then
pajak_terhutang = PKP * 15 /100/12
Cetak “Pajak yang harus anda bayar adalah sebesar” + pajak_terhutang
Cetak “Jangan lupa bayar pajak Anda yaa!”
If 250.000.000<PKP<500.000.000 then
pajak_terhutang = PKP * 25 /100/12
Cetak “Pajak yang harus anda bayar adalah sebesar” + pajak_terhutang
Cetak “Jangan lupa bayar pajak Anda yaa!”
` If PKP>500.000.000 then
pajak_terhutang = PKP * 30 /100/12
Cetak “Pajak yang harus anda bayar adalah sebesar” + pajak_terhutang
Cetak “Jangan lupa bayar pajak Anda yaa!”

Input pilihan untuk menggunakan program kembali (Y/N)


if pilih = N then
Cetak “Terima kasih telah menggunakan program ini”
break
if pilih != Y then
Cetak “Error”
break
G. Simpulan
Dengan menggunakan program algortima di atas, Pak Reno hanya perlu memasukan
sejumlah data. Kemudian, akan muncul hasil perhitungan pajak terhutang.
Berdasarkan hal tersebut, Pak Reno harus membayar pajak terhutang sebesar :
Rp 2.502.705

H. Evaluasi
1. Hal yang dibanggakan
Sejumlah pencapaian yang dapat kami banggakan, antara lain :
a. Program dapat bekerja
b. Program dapat menghitung Pph dengan akurat dan menyelesaikan case yang
disajikan
c. Kami dapat bekerja sama dengan baik dan saling melengkapi antar anggota
d. Meskipun anggota kami seluruhnya merupakan mahasiswi tetapi kami dapat
menyelesaikannya dengan baik,
e. Kami menyelesaikannya dalam jangka waktu yang relative cepat (2 hari)
f. Kami bekerja sama secara efektif dan efisien.

2. Hambatan :
Terdapat sejumlah hambatan dalam penyusunan program ini, antara lain :
a. Kendala teknis (masalah laptop error/koneksi internet)
b. Error saat percobaan
c. Kesulitan mencari data yang dibutuhkan
Lampiran 1 (Pseudocode)

Main

login()

NPWPCheck()

True
While

False

Integer status, Gajipokok,


Tunjanganpajak,
Tunjanganlain,
Premiasuransi, bruto,
biayajabatan, iuran, netto,
pilih, PTKP, PKP,
pajakterhutang

Input status

Input Gajipokok

Input Tunjanganpajak

Input Tunjanganlain

Input Premiasuransi

Input iuran

Input pilih

status1()

status2()

status3()

status4()

status5()

False True
pilih=="N"

False True Output "Terima Kasih"


pilih!="Y"

break()

Output "Error"

break()

End
login

Output "Login Wajib Pajak"

False True
LoginSuccess

Output "Login gagal" Output "login Berhasil"

login()

End
NPWPCheck

String NPW P

Input NPW P

False True
NPWP = true

Output "NPW P tidak Output "NPW P berhasil


ditemukan" ditemukan"

NPWPCheck() status()

End
status

Output
kategoristatusdantanggungan

End
status1

False True
status==1

False True
netto < 54000000

Output "Anda tidak perlu


membayar Pajak"

False True
netto > 54000000

PKP = netto - 54000000

Output PKP

False True
PKP < 50000000

pajakterhutang = ((PKP * 5)
/ 100/12)

Output pajakterhutang

False True
50000000<PKP
<250000000

pajakterhutang = ((PKP *
15) / 100/12)

Output pajakterhutang

False True
250000000<PKP
<500000000

pajakterhutang = ((PKP *
25) / 100/12)

Output pajakterhutang

False True
PKP>500000000

pajakterhutang = ((PKP *
30) / 100/12)

Output pajakterhutang

End
status2

False True
status==2

False True
netto < 58500000

Output "Anda tidak perlu


membayar Pajak"

False True
netto > 58500000

PKP = netto - 58500000

Output PKP

False True
PKP < 50000000

pajakterhutang = ((PKP * 5)
/ 100/12)

Output pajakterhutang

False True
50000000<PKP
<250000000

pajakterhutang = ((PKP *
15) / 100/12)

Output pajakterhutang

False True
250000000<PKP
<500000000

pajakterhutang = ((PKP *
25) / 100/12)

Output pajakterhutang

False True
PKP>500000000

pajakterhutang = ((PKP *
30) / 100/12)

Output pajakterhutang

End
status3

False True
status==3

Integer jumlahtanggungan

Input jumlahtanggungan

PTKP = 54000000 +
(4500000 *
jumlahtanggungan)

False True
netto < PTKP

Output "Anda tidak perlu


membayar Pajak"

False True
netto > PTKP

PKP = netto - PTKP

Output PKP

False True
PKP < 50000000

pajakterhutang = ((PKP * 5)
/ 100/12)

Output pajakterhutang

False True
50000000<PKP
<250000000

pajakterhutang = ((PKP *
15) / 100/12)

Output pajakterhutang

False True
250000000<PKP
<500000000

pajakterhutang = ((PKP *
25) / 100/12)

Output pajakterhutang

False True
PKP>500000000

pajakterhutang = ((PKP *
30) / 100/12)

Output pajakterhutang

End
status4

False True
status==4

False True
netto < 112500000

Output "Anda tidak perlu


membayar Pajak"

False True
netto > 112500000

PKP = netto - 112500000

Output PKP

False True
PKP < 50000000

pajakterhutang = ((PKP * 5)
/ 100/12)

Output pajakterhutang

False True
50000000<PKP
<250000000

pajakterhutang = ((PKP *
15) / 100/12)

Output pajakterhutang

False True
250000000<PKP
<500000000

pajakterhutang = ((PKP *
25) / 100/12)

Output pajakterhutang

False True
PKP>500000000

pajakterhutang = ((PKP *
30) / 100/12)

Output pajakterhutang

End
status5

False True
status==5

Integer jumlahtanggungan

Input jumlahtanggungan

PTKP = 112500000 +
(4500000 *
jumlahtanggungan)

False True
netto < PTKP

Output "Anda tidak perlu


membayar Pajak"

False True
netto > PTKP

PKP = netto - PTKP

Output PKP

False True
PKP < 50000000

pajakterhutang = ((PKP * 5)
/ 100/12)

Output pajakterhutang

False True
50000000<PKP
<250000000

pajakterhutang = ((PKP *
15) / 100/12)

Output pajakterhutang

False True
250000000<PKP
<500000000

pajakterhutang = ((PKP *
25) / 100/12)

Output pajakterhutang

False True
PKP>500000000

pajakterhutang = ((PKP *
30) / 100/12)

Output pajakterhutang

End

Anda mungkin juga menyukai