pembuatan aplikasi penghitungan pajak …
TRANSCRIPT
PEMBUATAN APLIKASI PENGHITUNGAN PAJAK PENGHASILAN PASAL 21
ORANG PRIBADI BERDASARKAN UNDANG-UNDANG NOMOR 36 TAHUN 2008
OLEH:
AGUS PRAMONO PUTRA
107091002863
PROGRAM SARJANA (S1) KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2014 M / 1435 H
i
HALAMAN JUDUL
PEMBUATAN APLIKASI PENGHITUNGAN PAJAK PENGHASILAN
PASAL 21 ORANG PRIBADI BERDASARKAN UNDANG-UNDANG
NOMOR 36 TAHUN 2008
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer
Pada Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh :
Agus Pramono Putra
107091002863
PROGRAM SARJANA (S1) KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2014 M / 1435 H
ii
LEMBAR PERSETUJUAN PEMBIMBING
iii
LEMBAR PENGESAHAN UJIAN
iv
LEMBAR PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, 22 Mei 2014
Agus Pramono Putra
107091002863
v
ABSTRAK
Agus Pramono Putra, dengan judul Pembuatan Aplikasi Penghitungan Pajak
Penghasilan Pasal 21 Orang Pribadi Berdasarkan Undang-Undang Nomor 36
Tahun 2008, dibimbing oleh Siti Ummi Masruroh, M.Sc dan Imam M.Shofi,
MT
Pajak adalah iuran wajib yang dipungut oleh pemerintah dari masyarakat (Wajib
Pajak) untuk menutupi pengeluaran rutin negara dan biaya pembangunan tanpa
balas jasa yang dapat ditunjuk secara langsung (Waluyo, 2008:26). Salah satu
jenis pajak yang dikenakan adalah Pajak Penghasilan Orang Pribadi (PPh Orang
Pribadi) pasal 21. Dasar pengenaan Pajak Penghasilan pasal 21 ini adalah
Undang-Undang Pajak Penghasilan No. 17 Tahun 2000 sebagai mana telah
dirubah terakhir dengan Undang-Undang Pajak Penghasilan No. 36 Tahun 2008.
Aplikasi Penghitungan Pajak Penghasilan PPh 21 ini dapat dipergunakan untuk
membantu perusahaan dalam menghitung PPh 21 OP karyawannya dan dapat
mengetahui berapa total jumlah pajak PPh 21 yang harus dibayarkan oleh
perusahaan dalam perbulan dan pertahun.
Kata Kunci : Pajak Penghasilan 21, Rapid Application Development (RAD),
Code Igniter, JQuery
Halaman : xviii + 112 halaman + V Bab + 40 Gambar + 34 Tabel + 4
Lampiran
vi
KATA PENGANTAR
Bismillaahirrahmaanirraahim,
Puji dan syukur Penulis panjatkan kehadirat Allah SWT, karena atas
berkat , rahmat, dan hidayah-Nya lah, penulis dapat menyelesaikan skripsi ini
dengan judul “Pembuatan Aplikasi Penghitungan Pajak Penghasilan Pasal 21
Orang Pribadi Berdasarkan Undang-Undang Nomor 36 Tahun 2008”,
sebagai tugas akhir untuk memenuhi mata kuliah skripsi , dan sekaligus sebagai
salah satu syarat untuk memperoleh gelar sarjana komputer.
Shalawat serta salam semoga tercurah kepada baginda nabi besar kita, suri
tauladan kita, Nabi besar panutan orang-orang beriman, nabi besar Muhammad
SAW. Juga kepada para keluarganya yang mulia, para sahabatnya yang agung,
dan kita sebagai para pengikutnya semoga tetap istiqamah hingga akhir zaman.
Skripsi ini dapat penulis selesaikan berkat dukungan, bimbingan, dan
bantuan dari berbagai pihak. Dalam kesempatan ini, penulis ingin menyampaikan
rasa terima kasih yang tak terbatas kepada :
1. Bapak Dr. Agus Salim, M.Si, selaku Dekan Fakultas Sains dan Teknologi
UIN Syarif Hidayatullah Jakarta.
2. Ibu Nurhayati, Ph.D dan Bapak Hendra Bayu, M.Kom selaku ketua dan
Sekretaris Program Studi Teknik Informatika yang dengan tulus dan sabar
membantu kelancaran penyelesaian skripsi ini.
3. Ibu Siti Ummi Masruroh, M.Sc dan Bapak Imam M.Shofi, MT selaku
dosen pembimbing pada mata kuliah skripsi yang dengan sangat ikhlas
vii
dan sabar membimbing dan mengarahkan penulis dalam pembuatan
skripsi ini.
4. Kepada kedua orang tua yang selalu memberikan dukungan moril dan
materil kepada penulis.
5. Teman seperjuangan, sebangsa, dan setanah air TI-C angkatan 2007, TI-B
(Networking).
6. Seluruh Dosen Program Studi Teknik Informatika.
7. Komunitas FCBK (FC Barcelona Kaskus), Anggota Stay Hungry Stay
Foolish Guild Defence of the Ancient 2, dan Guild Last Exile Cabal
Online Indonesia.
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna dan tidak
lepas dari kesalahan dan kekurangan, oleh karena itu dengan segala kerendahan
hati, penulis akan menerima semua saran dan kritik demi kesempurnaan di masa
mendatang. Akhirnya, penulis berharap agar skripsi ini dapat bermanfaat bagi
semua pihak yang berkepentingan.
Jakarta, 22 Mei 2014
Agus Pramono Putra
viii
DAFTAR ISI
HALAMAN JUDUL .............................................................................................. i
LEMBAR PERSETUJUAN PEMBIMBING ..................................................... ii
LEMBAR PENGESAHAN UJIAN .................................................................... iii
LEMBAR PERNYATAAN ................................................................................. iv
ABSTRAK ............................................................................................................. v
KATA PENGANTAR .......................................................................................... vi
DAFTAR ISI ....................................................................................................... viii
DAFTAR GAMBAR .......................................................................................... xiii
DAFTAR TABEL ............................................................................................... xv
DAFTAR LAMPIRAN ..................................................................................... xvii
1. BAB I PENDAHULUAN .................................................................................. 1
1.1 Latar Belakang .......................................................................................... 1
1.2 Rumusan Masalah ..................................................................................... 3
1.3 Batasan Masalah ....................................................................................... 3
1.4 Tujuan Penelitian ...................................................................................... 4
1.5 Manfaat Penelitian .................................................................................... 4
1.5.1 Manfaat Bagi Penulis ...................................................................... 4
1.5.2 Manfaat Bagi Akademik .................................................................. 5
1.5.3 Manfaat Bagi Pengguna .................................................................. 5
1.6 Metode Penelitian ..................................................................................... 5
1.6.1 Metode Pengumpulan Data ............................................................. 5
1.6.1.1 Studi Pustaka .............................................................................. 5
1.6.1.2 Studi Lapangan ........................................................................... 6
1.6.1.3 Studi Literatur sejenis ................................................................. 6
ix
1.6.2 Metode Pengembangan Sistem........................................................ 6
1.7 Sistematika Penulisan ............................................................................... 7
2. BAB II LANDASAN TEORI ........................................................................... 8
2.1 Pajak .......................................................................................................... 8
2.1.1 Pengertian Pajak .............................................................................. 8
2.1.2 Fungsi Pajak .................................................................................... 9
2.1.3 Sistem Pemungutan Pajak ............................................................... 9
2.2 Undang-Undang Pajak Penghasilan No.36 Tahun 2008 ......................... 10
2.2.1 Pengertian Pajak Penghasilan ........................................................ 10
2.3 Pajak Penghasilan Pasal 21 ..................................................................... 11
2.3.1 Pengertian Pajak penghasilan Pasal 21 .......................................... 11
2.3.2 Wajib pajak PPh Pasal 21 .............................................................. 11
2.3.3 Tidak Termasuk Objek Pajak Penghasilan Pasal 21 ..................... 12
2.3.4 Objek Pajak Penghasilan Pasal 21 ................................................. 13
2.3.5 Pemotongan Pajak PPh Pasal 21 ................................................... 14
2.3.6 Tarif Pajak Penghasilan ................................................................. 16
2.3.7 Pengurangan yang diperbolehkan .................................................. 17
2.3.8 Nomor Pokok Wajib Pajak (NPWP) ............................................. 17
2.3.9 Penghasilan Tidak Kena Pajak (PTKP) ......................................... 18
2.3.10 Contoh Penghitungan PPh 21 ........................................................ 19
2.4 Surat Pemberitahuan (SPT) ..................................................................... 20
2.4.1 Pengertian Surat Pemberitahuan (SPT) ......................................... 20
2.4.2 Fungsi Surat Pemberitahuan (SPT) ............................................... 20
2.4.3 Lampiran Surat Pemberitahuan (SPT)........................................... 21
2.4.4 Batas Waktu Surat Pemberitahuan (SPT) ...................................... 21
2.4.5 Pembetulan Surat Pemberitahuan (SPT) ....................................... 21
x
2.4.6 Sanksi administrasi dan Sanksi Pidana Sehubungan Dengan SPT 22
2.5 Surat Setoran Pajak (SSP) ....................................................................... 23
2.5.1 Pengertian Surat Setoran Pajak (SSP) ........................................... 23
2.5.2 Fungsi Surat Setoran Pajak (SSP) ................................................. 23
2.5.3 Tempat pembayaran dan penyetoran pajak ................................... 23
2.5.4 Batas Waktu Pembayaran dan Penyetoran Pajak .......................... 23
2.6 Framework .............................................................................................. 24
2.7 Codeigniter Framework .......................................................................... 25
2.7.1 Kosep MVC ................................................................................... 27
2.8 Rapid Application Development (RAD) ................................................. 29
2.8.1 Konsep Dasar RAD ....................................................................... 29
2.8.2 Fase-fase RAD............................................................................... 30
2.8.3 Kekurangan RAD .......................................................................... 33
2.9 Unified Modeling Language(UML) ....................................................... 33
2.9.1 Definisi UML ................................................................................ 33
2.9.2 Diagram-Diagram UML ................................................................ 34
2.9.3 Keunggulan UML .......................................................................... 48
2.10 JQuery ................................................................................................. 49
2.10.1 Fungsi JQuery ................................................................................ 50
2.11 Literatur Sejenis .................................................................................. 52
2.12 Pengujian Black-box ........................................................................... 53
3. BAB III METODOLOGI PENELITIAN ..................................................... 54
3.1 Perusahaan .............................................................................................. 54
3.2 Metode Pengumpulan Data ..................................................................... 57
3.2.1 Studi Pustaka ................................................................................. 57
3.2.2 Studi Lapangan .............................................................................. 58
xi
3.2.2.1 Observasi .................................................................................. 58
3.2.2.2 Kuisioner ................................................................................... 58
3.2.3 Studi Literatur Sejenis ................................................................... 58
3.3 Metode Pengembangan Sistem ............................................................... 60
3.3.1 Requirement Planning ................................................................... 60
3.3.2 Workshop Design ........................................................................... 61
3.3.3 Implementation .............................................................................. 62
3.3.4 Fase RAD ...................................................................................... 63
3.4 Kerangka Berfikir ................................................................................... 64
4. BAB IV HASIL DAN PEMBAHASAN ........................................................ 65
4.1 Fase Requirement Planning .................................................................... 67
4.1.1 Analisis Sistem berjalan ................................................................ 67
4.1.1.1 Perusahaan ................................................................................ 67
4.1.1.2 Flowchart Business Process ...................................................... 68
4.1.1.3 Dokumen-dokumen yang terkait dalam prosedur : .................. 70
4.1.2 Identifikasi Masalah ...................................................................... 70
4.1.3 Solusi Permasalahan ...................................................................... 71
4.1.3.1 Analisa Sistem yang diusulkan ................................................. 71
4.2 Fase Workshop Design ............................................................................ 74
4.2.1 Membuat Use Case Diagram ......................................................... 74
4.2.2 Membuat Use Case Scenario ........................................................ 76
4.2.3 Membuat Activity Diagram ............................................................ 83
4.2.4 Membuat Sequence Diagram ........................................................ 93
4.2.5 Desain Basis Data .......................................................................... 96
4.2.5.1 Database Relasional ................................................................. 96
4.2.5.2 Daftar Tabel .............................................................................. 97
xii
4.2.6 Desain Interface ............................................................................. 99
4.2.7 Pengkodean Sistem ...................................................................... 102
4.2.8 Fase Implementation .................................................................... 104
4.2.8.1 Spesifikasi Hardware (Perangkat Keras) ............................... 104
4.2.8.2 Spesifikasi Software (Perangkat Lunak) ................................. 104
4.2.8.3 Hasil Pengujian Aplikasi ........................................................ 105
5. BAB V PENUTUP ......................................................................................... 110
5.1 Kesimpulan ........................................................................................... 110
5.2 Saran ..................................................................................................... 110
DAFTAR PUSTAKA ........................................................................................ 111
xiii
DAFTAR GAMBAR
Gambar 2.1 Alur MVC pada Code Igniter (Daqiqil, 2011:6) ......................... 28
Gambar 2.2 Ilustrasi Model RAD (Shalahudin dan A.S Rosa, 2013) ............ 30
Gambar 2.3Fase RAD (Kendall dan Kendall, 2010:164) ................................ 32
Gambar 2.4 Contoh Class Diagram untuk Holiday Travel Vehicles ............... 36
Gambar 2.5 Textual Analysis Guidelines ........................................................... 37
Gambar 2.6 Class Diagram Syntax .................................................................... 38
Gambar 2.7 Syntax Untuk Use Case Diagram .................................................. 39
Gambar 2.8 Contoh Use Case Diagram untuk Vehicle Sales System ............ 40
Gambar 2.9 Sequence Diagram Syntax ............................................................. 42
Gambar 2.10 Sequence Diagram ........................................................................ 43
Gambar 2.11 Activity Diagram Syntax ............................................................... 45
Gambar 2.12 Activity Diagram untuk Offer for a Vehicle ................................ 46
Gambar 3.1Struktur Organisasi Perusahaan .................................................. 55
Gambar 3.2 Fase RAD ........................................................................................ 63
Gambar 3.3 Kerangka Berpikir ........................................................................ 64
Gambar 4.1 Flowchart Prosedur Pembayaran dan Pelaporan PPh 21 ......... 68
Gambar 4.2 Analisa Sistem yang diusulkan ..................................................... 72
Gambar 4.3 Flowchart Final .............................................................................. 74
Gambar 4.4 Use Case Diagram .......................................................................... 75
Gambar 4.5 Activity Diagram Hitung ............................................................... 83
Gambar 4.6 Activity Diagram Fungsi e-SPT .................................................... 84
Gambar 4.7 Activity Diagram Fungsi Cetak e-SPT ........................................ 85
Gambar 4.8 Activity Diagram Fungsi Simpan e-SPT ..................................... 86
Gambar 4.9 Activity Diagram Fungsi Reset ..................................................... 87
xiv
Gambar 4.10 Activity Diagram Fungsi Data Karyawan ................................. 88
Gambar 4.11 Activity Diagram Fungsi Edit Data Karyawan ........................ 89
Gambar 4.12 Activity Diagram Fungsi Delete Data Karyawan ..................... 90
Gambar 4.13 Activity Diagram Fungsi Cetak Data Karyawan ...................... 91
Gambar 4.14 Activity Diagram Fungsi Simpan Data Karyawan ................... 92
Gambar 4.15 Sequence Diagram Reset ............................................................. 93
Gambar 4.16 Sequence Diagram e-SPT ............................................................ 94
Gambar 4.17 Sequence Diagram Data Karyawan ........................................... 95
Gambar 4.18 Desain Database Relational ......................................................... 96
Gambar 4.19 Desain Interface Hitung Pajak ................................................... 99
Gambar 4.20 Desain Interface Hitung Pajak 2 .............................................. 100
Gambar 4.21 Desain Interface e-SPT .............................................................. 101
Gambar 4.22 Desain Interface Data Karyawan ............................................. 102
Gambar 0.1 Kuisioner Penelitian I.a ............................................................... A-7
Gambar 0.2 Kuisioner Penelitian I.b............................................................... A-8
Gambar 0.3 Kuisioner Penelitian II .............................................................. B-11
Gambar 0.4 SK Dosen Pembimbing .............................................................. C-12
xv
DAFTAR TABEL
Table 3.1 Kelebihan dan Kekurangan dalam Literatur Sejenis ..................... 60
Table 4.1 Strategi Penyelesaian ......................................................................... 73
Table 4.2 Use Case Scenario Hitung Pajak ....................................................... 76
Table 4.3 Use Case Scenario Reset .................................................................... 77
Table 4.4 Use Case Scenario Hitung .................................................................. 77
Table 4.5 Use Case Scenario Proses e-SPT ....................................................... 78
Table 4.6 Use Case Scenario Proses Cetak e-SPT ............................................ 78
Table 4.7 Use Case Scenario Simpan e-SPT ..................................................... 79
Table 4.8 Use Case Skenario Data Karyawan .................................................. 80
Table 4.9 Use Case Skenario Edit Data Karyawan .......................................... 80
Table 4.10 Use Case Skenario Delete Data Karyawan .................................... 81
Table 4.11 Use Case Skenario Cetak Data Karyawan ..................................... 82
Table 4.12 Use Case Skenario Simpan Data Karyawan .................................. 82
Table 4.13 Tabel tbl_ptkp .................................................................................. 97
Table 4.14 Tabel tbl_setting ............................................................................... 97
Table 4.15 Tabel tb_setting_detail ..................................................................... 98
Table 4.16 tb_admin ........................................................................................... 98
Table 4.17 vw_setting .......................................................................................... 99
Table 4.18 Pengujian Interface User ............................................................... 105
Table 4.19 Pengujian Aplikasi e-SPT .............................................................. 106
Table 4.20 Pengujian Aplikasi Data Karyawan ............................................. 107
Table 4.21 Tabel Pengujian Sistem menggunakan Kuesioner ...................... 108
Table 0.1 Divisi dalam perusahaan ................................................................. A-2
xvi
Table 0.2 Keterlibatan dalam penghitungan PPh 21 ..................................... A-3
Table 0.3 Proses Penghitungan PPh 21 secara manual ................................. A-3
Table 0.4 Kesulitan penghitungan PPh21 secara manual ............................. A-4
Table 0.5 Kebutuhan akan aplikasi penghitungan PPh21 ............................ A-4
Table 0.6 Pernah menggunakan aplikasi pajak ............................................. A-4
Table 0.7 Tingkat kepentingan aplikasi bagi pekerjaan ............................... A-5
Table 0.8 Keinginan menggunakan aplikasi PPh21 ...................................... A-5
Table 0.9 Tabel Pengujian Sistem menggunakan Kuesioner ........................ B-9
Table 0.10 Pengkodean pada model .............................................................. D-13
Table 0.11Pengkodean pada Controller ........................................................ D-15
Table 0.12 Pengkodean pada View ................................................................ D-17
xvii
DAFTAR LAMPIRAN
Lampiran Hasil Kuisioner Penelitian I ........................................................... A-1
Lampiran Hasil Kuisioner Penelitian II ......................................................... B-9
SK Dosen Pembimbing Skripsi ...................................................................... C-12
Source Code ..................................................................................................... D-13
1
1.BAB I
PENDAHULUAN
1.1 Latar Belakang
Pajak menurut Undang-Undang Nomor 28 Tahun 2007 tentang Ketentuan
umum dan Tata Cara Perpajakan (UU KUP) adalah kontribusi wajib kepada negara
yang terutang oleh orang pribadi atau badan yang bersifat memaksa berdasarkan
Undang-Undang, dengan tidak mendapatkan imbalan secara langsung dan
digunakan untuk kepentingan negara bagi sebesar-besarnya kemakmuran rakyat.
Pembayaran pajak merupakan perwujudan dari kewajiban kenegaraan dan peran
serta wajib pajak untuk secara langsung dan bersama-sama melaksanakan
kewajiban perpajakan untuk pembiayaan negara dan pembangunan nasional.
Salah satu jenis pajak yang dikenakan adalah Pajak Penghasilan orang
pribadi (PPh orang pribadi) yaitu pajak yang dikenakan terhadap subjek pajak
orang pribadi atas penghasilan yang diterima atau diperoleh dalam tahun pajak.
Dasar pengenaan PPh 21 adalah Undang-Undang Pajak Penghasilan No. 17
Tahun 2000 sebagai mana telah diubah terakhir dengan Undang-Undang Pajak
Penghasilan No.36 Tahun 2008.
Sebagaimana halnya perekonomian dalam suatu rumah tangga atau
keluarga, perekonomian negara juga mengenal sumber-sumber penerimaan dan
pos-pos pengeluaran. Pajak merupakan sumber utama penerimaan negara. Tanpa
pajak sebagian besar kegiatan negara sulit dijalankan. Penggunaan uang pajak
2
meliputi belanja pegawai, pembangunan sarana umum seperti jalan-jalan,
jembatan, sekolah, rumah sakit dan lain-lain.
Penerimaan negara yang berasal dari sektor perpajakan menduduki posisi
utama dalam struktur Anggaran Pendapatan dan Belanja Negara (APBN). Artinya,
jumlah penerimaan pajak jauh lebih tinggi dari penerimaan-penerimaan negara
lainnya (Hasanudin Tatang, 2013:11). Keberhasilan pemungutan pajak oleh
negara tidak lepas dari peran pihak ketiga dalam melaksakan kewajiban
perpajakan yang menjadi tugasnya yang disebut withholding tax system. Fungsi
withholding tax system adalah memanfaatkan pihak ketiga untuk memotong atau
memungut sebagai bantuan tenaga bagi pemerintah untuk mengumpulkan pajak
guna membiayai anggaran pemerintah. Untuk seorang Wajib Pajak Orang Pribadi
(WPOP) yang menjadi karyawan dan memiliki pekerjaan tetap maka fungsi
withholding tax system ini dilakukan oleh pemberi kerja.
Proses pemotongan PPh 21 itu semakin memakan waktu merunut dari
makin banyaknya jumlah karyawan dalam perusahaan/pemberi kerja. Atas dasar
pemikiran tersebut penulis ingin membuat suatu aplikasi berbasis Web yang
bertujuan untuk membantu pemberi kerja/perusahaan dalam menghitung PPh 21
karyawannya dengan judul “Pembuatan Aplikasi Penghitungan Pajak
Penghasilan Pasal 21 Orang Pribadi berdasarkan Undang-Undang Nomor 36
Tahun 2008”
3
1.2 Rumusan Masalah
Dari penjelasan pada latar belakang diatas, maka ditetapkan suatu rumusan
masalah yaitu :
1. Bagaimana membuat aplikasi Web penghitungan pajak yang dapat diakses
oleh pemberi kerja/perusahaan.
2. Bagaimana membangun suatu aplikasi penghitungan pajak yang mudah
digunakan
1.3 Batasan Masalah
1. Pembahasan pajak yang dimaksud hanya pajak yang berlaku dalam
lingkup NKRI (Negara Kesatuan Republik Indonesia) saja.
2. Pajak yang diproses hitung dalam aplikasi hanya Pajak Penghasilan pasal
21 orang pribadi yang menerima gaji secara bulanan dan masa kerjanya
dihitung selama setahun.
3. Proses penghitungan pajak berdasarkan pada Undang-Undang Nomor 36
Tahun 2008 tentang Pajak Penghasilan.
4. Output dari program berupa tampilan penghitungan PPh 21
5. Hasil penghitungan berupa file SPT dan pdf
6. Pengembangan sistem menggunakan bahasa pemrograman PHP, dengan
tools XAMPP versi 3.2.1 sebagai penyedia web server service dan basis
data.
4
7. Pengembangan sistem menggunakan framework Codeigniter versi 2.1.4
untuk mempermudah pengkodean dan dokumentasi, dan JQuery versi
1.11.0 sebagai interface.
8. Implementasi Web hanya sampai localhost, belum sampai terimplementasi
pada jaringan Internet.
1.4 Tujuan Penelitian
1. Mempermudah menghitung besar pajak penghasilan WPOP tiap bulan dan
tahun di perusahaan.
2. Mempersingkat waktu penghitungan PPh 21 bagi pemotong pajak di
kerja/perusahaan.
1.5 Manfaat Penelitian
1.5.1 Manfaat Bagi Penulis
a) Menerapkan ilmu-ilmu yang diperoleh selama kuliah seperti
Pengenalan Komputer, Rekayasa Perangkat Lunak, Pemrograman
berbasis Web, dan Multimedia.
b) Memperdalam dan memahami ilmu tentang Pajak.
c) Mengetahui cara penghitungan Pajak Penghasilan Orang Pribadi pasal
21.
d) Memenuhi salah satu syarat kelulusan mahasiswa Teknik Informatika
UIN Syarif Hidayatullah Jakarta.
5
1.5.2 Manfaat Bagi Akademik
a) Mengetahui kemampuan mahasiswa dalam menguasai teori yang telah
diperoleh selama kuliah.
b) Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan
sebagai bahan evaluasi.
c) Memberikan gambaran tentang kesiapan mahasiswa dalam
menghadapi dunia kerja dari hasil yang diperoleh selama belajar atau
kuliah.
1.5.3 Manfaat Bagi Pengguna
a) Tersedia aplikasi untuk menghitung nominal Pajak Penghasilan Orang
Pribadi Pasal 21.
b) Mempermudah pemberi kerja/perusahaan dalam menghitung PPh 21
karyawannya.
c) Mempersingkat waktu dalam penghitungan PPh 21.
1.6 Metode Penelitian
1.6.1 Metode Pengumpulan Data
1.6.1.1 Studi Pustaka
Pada metode ini merupakan metode untuk memperoleh
teori-teori yang menjadi landasan untuk melaksanakan praktek
maupun memperoleh teori-teori pendukung yang dapat
digabungkan di lapangan, sehingga tercipta kesinambungan antara
teori dan praktek yang bersumber dari buku-buku ilmiah, catatan
6
perkuliahan, dan buku lainnya, serta sumber-sumber terkait dari
internet.
1.6.1.2 Studi Lapangan
a) Observasi
Pengumpulan data dan informasi dengan cara melakukan
peninjauan dan pengamatan langsung kegiatan-kegiatan yang
berlangsung pada tempat pengambilan data yang bersangkutan.
1.6.1.3 Studi Literatur sejenis
Dalam tahapan ini, penulis akan melakukan analisa
perbandingan dari sistem yang digunakan sebelumnya.
1.6.2 Metode Pengembangan Sistem
Metode yang digunakan dalam perancangan system manajemen
aset TIK adalah dengan pendekatan RAD (Rapid Application
Development), dimana terdapat tiga fase utama yaitu (Kendall & Kendall,
2010:164) :
1. Requirement Planning
2. Workshop Design
3. Implementation
7
1.7 Sistematika Penulisan
Dalam penulisan skripsi dibagi menjadi lima bab yang didalamnya
terdapat beberapa sub pokok bahasan. Sistematika penulisan dari skripsi adalah
sebagai berikut:
BAB I Pendahuluan
Bab ini berisi latar belakang, rumusan masalah, batasan masalah,
tujuan penelitian, manfaat penelitian, metode penelitian, dan
sistematika penulisan.
BAB II Landasan Teori
Bab ini berisi kajian teori yang berkaitan dalam penelitian dan
penyusunan yang penulis lakukan.
BAB III Metodologi Penelitian
Bab ini menjelaskan tentang metode yang digunakan penulis dalam
melakukan analisa dan pengembangan aplikasi.
BAB IV Hasil dan Pembahasan
Bab ini menjelaskan hasil dari penelitian yang telah dilakukan beserta
penjelasan dari aplikasi yang dibuat.
BAB V Penutup
Bab ini berisi berisikan kesimpulan dan saran terhadap penelitian yang
dilakukan.
8
2.BAB II
LANDASAN TEORI
2.1 Pajak
2.1.1 Pengertian Pajak
Pajak adalah iuran wajib yang dipungut oleh pemerintah dari
masyarakat (wajib pajak) untuk menutupi pengeluaran rutin negara dan
biaya pembangunan tanpa balas jasa yang dapat ditunjuk secara langsung.
(Waluyo, 2008:26).
Pengertian pajak menurut beberapa ahli :
1. Prof Dr Adriani
Pajak adalah iuran kepada negara yang dapat dipaksakan, yang
terutang oleh wajib pajak membayarnya menurut peraturan dengan
tidak mendapat imbalan kembali yang di tunjuk secara langsung.
2. Prof. DR. Rachmat Sumitro, SH
Pajak adalah iuran rakyat kepada kas negara (peralihan kekayaan dari
kas negara ke sektor pemerintah berdasarkan undang-undang) dapat
dipaksakan dengan tiada mendapat jasa timbal (tegen prestasi) yang
langsung dapat ditunjukan dan digunakan untuk membiayai
pengeluaran umum.
9
Lima unsur pokok dalam definisi pajak :
1. Iuran / pungutan
2. Pajak dipungut berdasarkan undang-undang
3. Pajak dapat dipaksakan
4. Tidak menerima kontraprestasi
5. Untuk membiayai pengeluaran umum pemerintah
Pada dasarnya setiap definisi pajak yang dikemukakan para ahli
memuat unsur-unsur diatas. Adanya kelima unsur tersebut menjadikan
pajak mempunyai kekuatan hukum yang kuat sehingga apabila masyarakat
wajib pajak tidak melakukan kewajiban pembayaran pajak sesuai dengan
UU perpajakan, maka wajib pajak tersebut dapat dikenakan sanksi
administrasi maupun pidana.
2.1.2 Fungsi Pajak
Fungsi pajak ada dua yaitu :
1. Fungsi Budgeter (Penerimaan) merupakan fungsi pajak sebagai sumber
dana pemerintah untuk biaya-biaya pengeluarannya.
2. Fungsi Regulerent (Mengatur) adalah fungsi pajak sebagai alat untuk
mengatur kebijakan pemerintah dibidang sosial ekonomi (Waluyo,
2008:30).
2.1.3 Sistem Pemungutan Pajak
a. Official Assessment System
Sistem pemungutan pajak yang memberi wewenang kepada
pemerintah untuk menentukan besarnya pajak yang terutang oleh wajib
10
pajak. Dalam official assessment system wajib pajak bersifat pasif dan
utang pajak timbul setelah dikeluarkan surat ketetapan pajak oleh fiskus
(pemotong pajak)
b. Self Assessment System
Sistem pemungutan pajak yang memberi wewenang kepada wajib
pajak untuk menentukan besarnya pajak yang terutang. Dalam Self
Assessment System wajib pajak bersifat aktif, mulai dari menghitung,
menyetor, dan melaporkan sendiri pajak yang terutang sedangkan fiskus
tidak ikut campur, hanya mengawasi.
c. With Holding System
Sistem pemungutan pajak yang member wewenang kepada pihak
ketiga (bukan fiskus dan bukan wajib pajak yang bersangkutan) untuk
menentukan besarnya pajak yang terhutang oleh wajib pajak.
2.2 Undang-Undang Pajak Penghasilan No.36 Tahun 2008
2.2.1 Pengertian Pajak Penghasilan
Dalam pasal 1 Undang-Undang No.7 Tahun 1983 tentang pajak
penghasilan sebagaimana telah diubah terakhir dengan Undang-Undang
No.36 Tahun 2008 yang dimaksud dengan pajak penghasilan adalah pajak
yang dikenakan terhadap subjek pajak atas penghasilan yang diterima atau
diperolehnya dalam tahun pajak. Dalam Waluyo (2008:89) subjek pajak
diartikan orang yang dituju oleh undang-undang untuk dikenakan pajak.
Undang-Undang pasal 36 Tahun 2008 merupakan Undang-Undang
perubahan keempat atas Undang-Undang No.7 tahun 1983 yang mengatur
11
tentang Pajak Penghasilan. Undang-Undang ini mulai diberlakukan sejak
tanggal 1 Januari 2009.
2.3 Pajak Penghasilan Pasal 21
2.3.1 Pengertian Pajak penghasilan Pasal 21
“Pajak penghasilan pasal 21 merupakan pajak penghasilan yang
dikenakan atas penghasilan berupa gaji, upah, honorarium, tunjangan, dan
pembayaran lain dengan nama apapun sehubungan dengan pekerjaan, jasa,
atau kegiatan yang dilakukan oleh wajib pajak pribadi dalam negeri”.
(Waluyo,2009:38)
Dasar pengenaan pajak penghasilan pasal 21 adalah Undang-
Undang Pajak Penghasilan No.17 Tahun 2000 sebagai mana telah dirubah
terakhir dengan Undang-Undang Pajak Penghasilan No.36 Tahun 2008.
2.3.2 Wajib pajak PPh Pasal 21
Menurut Waluyo dan Wirawan B. Ilyas (2001:14) penerimaan
penghasilan yang dipotong pajak penghasilan orang pribadi pasal 21 yaitu:
a) Pegawai adalah setiap orang pribadi, yang melakukan pekerjaan
berdasarkan perjanjian atau kesepakatan kerja baik tertulis maupun
tidak tertulis, termasuk yang melakukan pekerjaan dalam jabatan
negeri atau Badan Usaha Milik Negara atau Badan Usaha Milik
Daerah.
12
b) Penerima uang pensiun adalah orang pribadi atau ahli warisnya yang
menerima atau memperoleh imbalan untuk pekerjaan yang dilakukan
dimasa lalu, termasuk orang pribadi atau ahli warisnya yang menerima
Tabungan Hari Tua.
c) Penerima honorarium adalah orang pribadi yang menerima atau
memperoleh imbalan sehubungan dengan jasa, jabatan, atau kegiatan
yang dilakukan.
d) Penerima upah adalah orang pribadi yang menerima upah harian, upah
mingguan, upah borongan, atau upah satuan.
e) Orang pribadi lainnya yang menerima atau memperoleh penghasilan
sehubungan dengan pekerjaan, jasa, dan kegiatan dari pemotong
pajak.
2.3.3 Tidak Termasuk Objek Pajak Penghasilan Pasal 21
Dalam Pasal 8 Keputusan Direktorak Jenderal Pajak No. KEP
31/PJ/2009, yang tidak termasuk objek pajak penghasilan Pasal 21, yaitu:
a) Pembayaran asuransi dari perusahaan asuransi kesehatan, asuransi
kecelakaan, asuransi jiwa, asuransi dwiguna, dan asuransi beasiswa.
b) Penerima dalam bentuk natura dan kenikmatan kecuali yang diberikan
oleh bukan wajib pajak.
c) Iuran pensiun yang dibayarkan kepada dana pensiun yang
pendiriannya disahkan Menteri Keuangan serta Iuran Tabungan hari
Tua atau Tunjangan Hari Tua (THT).
13
d) Kenikmatan yang berupa pajak yang ditanggung oleh pemberi kerja.
e) Zakat yang diterima oleh pribadi yang berhak dari badan atau lembaga
amil zakat yang dibentuk atau disahkan oleh Pemerintah.
f) Beasiswa
2.3.4 Objek Pajak Penghasilan Pasal 21
Dalam pasal 3 Peraturan Direktorat Jenderal Pajak No. PER
31/PJ/2009, yang menjadi objek penghasilan adalah :
a) Penghasilan yang diterima atau diperoleh secara teratur berupa gaji,
uang pensiun bulanan, upah, honorarium, (termasuk honorarium
anggota dewan komisaris atau anggota dewan pengawas) premi
bulanan, uang lembur, uang sokongan, uang tunggu, uang ganti rugi,
tunjangan istri, tunjangan anak, tunjangan jabatan, tunjangan khusus,
tunjangan transportasi, tunjangan pajak, tunjangan pensiun, tunjangan
pendidikan anak, beasiswa, premi asuransi yang dibayar pemberi
kerja, dan penghasilan teratur lainnya dengan nama apapun.
b) Penghasilan yang diterima atau diperoleh secara tidak teratur berupa
jasa produksi, tantiem, gratifikasi, tunjangan cuti, tunjangan hari raya,
tunjangan tahun baru, bonus, premi tahunan, dan penghasilan sejenis
lainnya yang sifatnya tidak tetap.
c) Upah harian, upah mingguan, upah satuan dan upah borongan.
d) Uang tebusan pensiun, uang pesangon, uang tabungan hari tua, atau
jaminan hari tua, dan pembayaran lain sejenis.
14
e) Honorarium, uang saku, hadiah, atau penghargaan dengan nama dan
dalam bentuk apapun, komisi, beasiswa, dan pembayaran lain sebagai
imbalan, sehubungan dengan pekerjaan, jasa, dan kegiatan yang
dilakukan oleh pihak berwajib dalam negeri.
f) Gaji, gaji kehormatan, tunjangan-tunjangan lain yang terkait dengan
gaji yang diterima oleh pejabat negara dan PNS.
g) Uang pensiun dan tunjangan-tunjangan lain yang bersifat terkait
dengan uang pensiun yang diterima oleh pensiunan termasuk janda
dan duda dan atau anak-anaknya.
h) Penerima dalam bentuk natura dan kenikmatan lainnya dengan nama
apapun yang diberikan oleh bukan wajib pajak.
2.3.5 Pemotongan Pajak PPh Pasal 21
Yang dapat melakukan pemotongan pajak antara lain:
a) Pemberi kerja yang terdiri dari orang pribadi dan badan, baik
merupakan pusat maupun cabang, perwakilan atau unit, bentuk usaha
tetap, yang membayar gaji, upah, honorarium, tunjangan, dan
pembayaran lain dengan nama apapun, sebagai imbalan sehubungan
dengan pekerjaan atau jasa yang dilakukan oleh pegawai atau bukan
pegawai.
b) Bendaharawan pemerintah termasuk bendaharawan pada pemerintah
pusat, pemerintah daerah, instansi atau lembaga pemerintah, lembaga-
lembaga negara lainnya, dan kedutaan besar RI (Republik Indonesia)
diluar negeri yang membayar gaji, upah, honorarium, tunjangan, dan
15
pembayaran lain dengan nama apapun, sehubungan dengan pekerjaan
atau jabatan, jasa, dan kegiatan.
c) Dana pensiun, Badan Penyelenggara Jaminan Sosial, tenaga kerja, dan
badan-badan lain yang membayar uang pensiun dan Tabungan Hari
Tua atau Jaminan Hari Tua.
d) Perusahaan, Badan, dan Bentuk Usaha Tetap, yang membayar
honorarium atau pembayaran lain sebagai imbalan sehubungan
dengan kegiatan, jasa, termasuk jasa tenaga ahli dengan status wajib
pajak dalam negeri yang melakukan pekerjaan bebas dan bertindak
untuk dan atas nama persekutuannya.
e) Perusahaan, Badan, dan Bentuk Usaha Tetap, yang membayar
honorarium atau pembayaran lain sebagai imbalan sehubungan
dengan kegiatan, jasa, termasuk jasa tenaga ahli dengan status wajib
pajak luar negeri.
f) Yayasan,(termasuk yayasan dibidang kesejahteraan, rumah sakit,
pendidikan kesenian, olah raga, kebudayaan), lembaga, kepanitiaan,
asosiasi, perkumpulan, organisasi masa, organisasi sosial politik, dan
organisasi lainnya dalam bentuk apapun dalam segala bidang kegiatan
sebagai pembayaran gaji, upah, honorarium, atau imbalan dengan
nama apapun sehubungan dengan pekerjaan, jasa, kegiatan yang
dilakukan orang pribadi.
16
g) Perusahaan, Badan, dan Bentuk Usaha Tetap, yang membayarkan
honorarium sebagai imbalan lain kepada peserta didik, pelatihan, dan
pemagangan.
h) Penyelenggara kegiatan (termasuk badan pemerintah, organisasi
termasuk organisasi internasional, perkumpulan, orang pribadi serta
lembaga lainnya yang menyelenggarakan kegiatan) yang membayar
honorarium, hadiah atau penghargaan dalam bentuk apapun kepada
wajib pajak orang pribadi dalam negeri berkenaan dengan suatu
kegiatan.
2.3.6 Tarif Pajak Penghasilan
Tabel 2.1Tarif Pasal 17 UU Nomor 36 Tahun 2008
Penghasilan Kena Pajak Tarik Pajak
Sampai dengan Rp 50.000.000 5%
Diatas Rp 50.000.000 s.d Rp
250.000.000
15%
Diatas Rp 250.000.000 s.d Rp
500.000.000
25%
Diatas 500.000.000 30%
Sumber : Undang-Undang Perpajakan No.36 Tahun 2008
17
2.3.7 Pengurangan yang diperbolehkan
Dalam pasal 1 Keputusan Jenderal Pajak No. KEP-250/PJ/2009,
yang menjadi pengurangan Pajak Penghasilan Pasal 21 adalah :
a) Besarnya biaya jabatan yang dapat dikurangkan dari penghasilan bruto
untuk penghitungan pemotongan pajak penghasilan bagi pegawai
tetap sebagaimana dimaksud dalam pasal 21 ayat (3) Undang-Undang
No. 7 Tahun 1983 tentang Pajak Penghasilan sebagaimana telah
beberapa kali diubah terakhir dengan Undang-Undang No. 36 Tahun
2008 ditetapkan sebesar 5% (lima persen) dari penghasilan bruto,
setinggi-tingginya Rp 6.000.000 (enam juta rupiah) setahun atau Rp
500.000 (lima ratus ribu) sebulan.
b) Besarnya biaya pensiun yang dapat dikurangkan dari penghasilan
bruto untuk penghitungan pemotongan pajak penghasilan bagi
pensiunan sebagaimana dimaksud dalam pasal 21 ayat (3) Undang-
Undang No. 7 Tahun 1983 tentang Pajak Penghasilan sebagaimana
telah beberapa kali diubah terakhir dengan Undang-Undang No. 36
Tahun 2008 ditetapkan sekitar 5% (lima persen) dari penghasilan
bruto, setinggi-tingginya Rp 2.400.000 (dua juta empat ratus ribu)
setahun atau Rp 200.000 (dua ratus ribu) sebulan.
2.3.8 Nomor Pokok Wajib Pajak (NPWP)
Nomor pokok wajib pajak adalah nomor yang diberikan kepada
wajib pajak sebagai sarana dalam administrasi perpajakan yang
18
dipergunakan sebagai tanda pengenal diri atau identitas wajib pajak dalam
melaksanakan hak dan kewajibannya.
Bagi penerima penghasilan yang dipotong PPh Pasal 21 yang tidak
memiliki NPWP, dikenakan pemotong PPh Pasal 21 dengan tarif lebih
tinggi 20% daripada tarif yang di terapkap kepada wajib pajak yang
memiliki NPWP. Artinya jumlah PPh Pasal 21 yang harus dipotong adalah
sebesar 120% dari jumlah yang seharusnya dipotong dalam hal yang
bersangkutan memiliki NPWP
2.3.9 Penghasilan Tidak Kena Pajak (PTKP)
Besarnya Penghasilan Tidak Kena Pajak (PTKP) dari seorang
pegawai dihitung berdasarkan penghasilan netonya dikurangi dengan
PTKP. Atas besarnya PTKP dalam Pasal 7 ayat (1) Undang-Undang
Perpajakan Nomor 36 Tahun 2008 dan Peraturan Direktorat Jenderal Pajak
No. PER-31/PJ/2012 sebagai berikut:
Tabel 2.2PTKP Pasal 7 ayat (1) Undang-Undang Nomor 36 Tahun 2008
Status Pekerja PTKP (Rp)
Belum Kawin 24.300.000
Kawin, anak 0 26.325.000
Kawin, anak 1 28.350.000
Kawin, anak 2 30.375.000
Kawin, anak 3 32.400.000
Sumber : Undang-Undang Perpajakan Nomor 36 Tahun 2008
19
a) Rp. 24.300.000 (dua puluh empat juta tiga ratus ribu rupiah) untuk diri
wajib pajak pribadi.
b) Rp. 2.025.000 (dua juta dua puluh lima ribu rupiah) tambahan untuk
wajib pajak yang sudah menikah.
c) Rp. 24.300.000 (dua puluh empat juta tiga ratus ribu rupiah) tambahan
untuk seorang istri yang penghasilannya digabung dengan suami.
d) Rp. 2.025.000 (dua juta dua puluh lima ribu rupiah) tambahan untuk
setiap anggota keluarga dalam garis keturunan lurus serta anak angkat,
yang menjadi tanggungan sepenuhnya. Paling banyak (maksimal) tiga
orang untuk setiap keluarga.
2.3.10 Contoh Penghitungan PPh 21
PPh 21 Terhadap Penghasilan Pegawai Tetap
Lionel bekerja pada perusahaan PT. MQUC dengan memperoleh
gaji sebulan Rp. 5000.000 dan membayar iuran pensiun sebesar Rp.
100.000. Lionel telah menikah dan mempunyai anak satu
Perhitungan PPh Pasal 21
Gaji Sebulan Rp. 5000.000
Pengurangan
Biaya Jabatan :
5% x Rp. 5000.000 Rp. 250.000
Iuran Pensiun : Rp. 100.000 Rp. 350.000
Penghasilan Neto Sebulan Rp. 4.650.000
Penghasilan Neto Setahun 12xRp. 4.650.000 Rp.55.800.000
PTKP Setahun
Untuk WP sendiri Rp. 24.300.000
Tambahan WP Kawin Rp. 2.025.000
20
Tambahan anak 1 Rp. 2.025.000 Rp.28.350.000
Penghasilan Kena Pajak Setahun Rp.27.450.000
PPh Pasal 21 Terutang :
5% x Rp. 27.450.000 = Rp. 1.372.500
PPh Pasal 21 Sebulan =
Rp. 1.372.500 : 12 Rp. 114.375
2.4 Surat Pemberitahuan (SPT)
2.4.1 Pengertian Surat Pemberitahuan (SPT)
Menurut Pasal 1 angka 10 Undang-Undang No. 16 Tahun 2009
tentang tata cara umum dan tata cara perpajakan menyebutkan bahwa
pengertian Surat Pemberitahuan (SPT) adalah surat yang oleh wajib pajak
digunakan untuk melaporkan penghitungan peraturan perundang-
undangan perpajakan.
2.4.2 Fungsi Surat Pemberitahuan (SPT)
a) Fungsi SPT bagi wajib pajak yaitu :
1. Sarana melaporkan dan mempertanggung jawabkan penghitungan
pajak yang sebenarnya terhutang.
2. Melaporkan pembayaran atau pelunasan pajak yang telah
dilaksanakan sendiri atau melalui pemotongan atau pemungutan
pihak lain dalam satu tahun pajak atau bagian tahun pajak.
3. Melaporkan pembayaran dan pemotongan atau pemungutan pribadi
atau badan lain dari satu masa pajak, sesuai dengan peraturan
perpajakan yang berlaku.
21
b) Fungsi SPT bagi pemungutan atau pemotongan pajak yaitu :
Sebagai sarana untuk melaporkan dan mempertanggung jawabkan
pajak yang dipotong atau dipungut dan disetorkan.
2.4.3 Lampiran Surat Pemberitahuan (SPT)
a) Pengisian Surat Pemberitahuan Pajak Penghasilan oleh wajib pajak
yang wajib melakukan pembukuan harus dilengkapi dengan laporan
keuangan berupa neraca dan penghitungan rugi laba serta keterangan-
keterangan lain yang diperlukan untuk menghitung besarnya
penghasilan kena pajak.
b) Bagi wajib pajak yang menggunakan norma penghitungan, dalam
SPT-nya harus dilampiri atau dilengkapi penghitungan dan
pembayaran pajak yang terhutang dalam suatu tahun pajak.
2.4.4 Batas Waktu Surat Pemberitahuan (SPT)
a) Untuk Surat Pemberitahuan Masa, selambat-lambatnya dua puluh hari
setelah akhir masa pajak.
b) Untuk Surat Pemberitahuan Tahunan, selambat-lambatnya tiga bulan
setelah akhir tahun pajak.
2.4.5 Pembetulan Surat Pemberitahuan (SPT)
Apabila diketahui ada kesalahan dalam SPT wajib pajak dapat
melakukan pembetulan SPT atas kemauan sendiri dengan menyampaikan
pernyataan tertulis dalam jangka waktu dua tahun saat terhutang pajak atau
saat berakhirnya masa pajak dengan syarat Dirjen Pajak belum melakukan
pemeriksaan pajak. Dalam hal ini wajib pajak dikenakan sanksi
22
administrasi berupa bunga sebesar 2% atas jumlah pajak yang kurang
bayar, dihitung saat penyampaian SPT berakhir sampai tanggal
pembayaran karena pembetulan SPT tersebut.
2.4.6 Sanksi administrasi dan Sanksi Pidana Sehubungan Dengan SPT
Kepada wajib pajak yang tidak memenuhi ketentuan yang telah
ditetapkan dalam UU sehubungan dengan SPT dikenakan sanksi
administrasi dan sanksi pidana yaitu:
a) Wajib pajak yang terlambat menyampaikan SPT dikenakan sanksi
administrasi berupa untuk SPT masa Rp. 50.000 dan untuk SPT
Tahunan sebesar Rp. 100.000 (Pasal 7 UU KUP).
b) Pasal 38 Undang-Undang No. 16 Tahun 2009 menyatakan apabila
wajib pajak tidak menyampaikan SPT atau menyampaikan SPT tapi
isinya tidak benar atau tidak lengkap dalam melampiri keterangan
karena kealpaan wajib pajak sehingga dapat menimbulkan kerugian
dalam pendapatan negara, dipidana dengan pidana kurungan paling
lama satu tahun dan atau denda setinggi-tingginya dua kali jumlah
pajak terutang yang tidak atau kurang bayar.
c) Pasal 29 UU No. 16 Tahun 2009 menyatakan apabila dengan sengaja
wajib pajak tidak menyampaikan SPT dan atau keterangan yang isinya
tidak benar atau tidak lengkap sehingga dapat menimbulkan kerugian
pada pendapatan negara diancam dengan hukuman penjara paling
23
lama 6 tahun dan denda setinggi-tingginya empat kali jumlah pajak
yang terutang yang tidak atau kurang bayar.
2.5 Surat Setoran Pajak (SSP)
2.5.1 Pengertian Surat Setoran Pajak (SSP)
Surat Setoran Pajak (SSP) adalah surat yang oleh wajib pajak
digunakan untuk melakukan pembayaran atau penyetoran pajak yang
terutang ke kas negara atau ketempat pembayaran lain yang telah
ditentukan oleh Menteri Keuangan.
2.5.2 Fungsi Surat Setoran Pajak (SSP)
a) Sebagai sarana untuk membayar pajak.
b) Sebagai bukti dan laporan pembayaran pajak.
2.5.3 Tempat pembayaran dan penyetoran pajak
a) Bank-bank yang ditunjuk oleh Direktorat Jenderal Pajak.
b) Kantor Pos dan Giro.
2.5.4 Batas Waktu Pembayaran dan Penyetoran Pajak
Pembayaran masa untuk PPh Pasal 21 selambat-lambatnya tanggal
10 bulan takwim berikutnya setelah masa pajak berakhir. Pembayaran
kekurangan pajak terutang berdasarkan SPT Tahunan harus dibayar
selambat-lambatnya 25 bulan ketiga setelah tahun pajak berakhir sebelum
SPT tersebut disampaikan ke Kantor Pelayanan Pajak (KPP, SKP,
SKPKB, SKPKBT, Surat Keputusan Pembetulan, Surat Keputusan
Keberatan dan putusan banding yang menyebabkan jumlah pajak yang
24
harus dibayarkan bertambah, harus dilunasi dalam jangka waktu satu bulan
sejak tanggal diterbitkan surat-surat tersebut.
2.6 Framework
Framework (kerangka kerja) merupakan kumpulan dari fungsi atau
prosedur dan class dengan tujuan tertentu yang sudah siap digunakan, sehingga
mempermudah dan mempercepat pengembang dalam membuat program tanpa
harus membuat fungsi atau class dari awal (Ardhana, 2013:22).
Framework dapat juga diartikan sebagai koleksi atau kumpulan
potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa,
sehingga dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus
membuat semua kodenya dari awal (Basuki, 2010:3).
Kemudahan yang ditawarkan dalam menggunakan framework yaitu
sudah tersedianya struktur aplikasi yang baik, seperti standar coding, best
practice, design pattern dan common function, sehingga pengembang dapat fokus
kepada proses pembangunan sistem tanpa harus berpikir pada masalah struktur
aplikasi dan standar coding.
Konsekuensi dan tantangan yang dihadapi pengembang dengan
menggunakan framework yaitu harus mempelajari lingkungan pengembangan
berdasarkan framework yang digunakan, karena setiap framework memiliki
lingkungan pengembangannya masing-masing.
25
2.7 Codeigniter Framework
Codeigniter (CI) dikembangkan oleh Rick Ellis pendiri ellislab.com. CI
dirilis pertama kali pada tanggal 28 Februari 2006. CI adalah suatu kerangka
pengembangan aplikasi dengan menggunakan PHP. Berbagai library atau pustaka
untuk pembuatan website dan interface sudah disediakan oleh CI, sehingga dapat
membantu mempercepat pengembang dibandingkan jika menulis semua kode
program dari awal.
CI dikembangkan oleh komunitas dan disebarluaskan ke seluruh dunia
dengan lisensi bebas yang dapat diunduh di http://ellislab.com/codeigniter.
Kelebihan framework CI diantaranya sebagai berikut (Ardhana, 2013:15):
1. Open Source
CI merupakan framework yang gratis untuk digunakan dan dapat
dikembangkan secara legal.
2. Multiplatform
CI sangat ringan ketika dijalankan pada berbagai platform. Pada bagian
sistem utama, CI hanya memerlukan kapasitas yang sedikit untuk server
dalam membentuk class library.
3. Efisiensi waktu
Dengan adanya struktur dan library yang telah disediakan oleh framework,
pengembang dapat fokus pada proses pengembangan sistem yang akan
dibangun.
26
4. Menggunakan metode MVC
Metode MVC adalah metode dengan cara Model, View, Controller. Metode
framework MVC dapat mempermudah membedakan antara tampilan dan
program.
5. User Friedly
CI sangat mudah digunakan dikarenakan bentuk dan tampilan yang sudah
dirancang secara terstruktur.
6. Framework yang lengkap
CI dikemas secara lengkap, karena didalamnya terdapat kumpulan class
yang ada didalam library yang tersedia, sehingga sangat menunjang dalam
pembuatan website, basis data, validasi form data, pembuatan session dan
penggunaan XML-RPC.
7. User guide
CI telah dilengkapi dengan dokumentasi yang baik dan lengkap, sehingga
dapat membantu para pengembang dalam mempelajarinya.
8. Reuse of code
Dengan menggunakan framework maka program yang dibuat akan memiliki
struktur yang baku, sehingga dapat digunakan kembali pada proyek-proyek
lainnya.
9. Berjalan di PHP versi 4 dan 5
CI dikembangkan agar tetap kompatibel dengan PHP versi 4 dan 5.
27
2.7.1 Kosep MVC
MVC adalah singkatan dari Model View Controller. MVC
merupakan sebuah teknik pemrograman yang memisahkan bisnis logic, data
logic dan presentation logic. Adapun komponen-komponen MVC antara
lain (Daqiqil, 2011:5) :
1. Model
Model berhubungan dengan data dan interaksi ke basis data atau web
service. Dalam model ini akan berisi class dan fungsi untuk
mengambil, melakukan perubahan dan menghapus data, sehingga
komponen model erat kaitannya dengan perintah-perintah query SQL.
2. View
Komponen View berhubungan dengan segala sesuatu yang akan
ditampilkan ke end user. View dapat dikatakan sebagai halaman
website yang dibuat menggunakan HTML dan bantuan CSS atau
JavaScript.
3. Controller
Controller bertindak sebagai penghubung komponen Model dan View.
Di dalam Controller terdapat class-class dan fungsi-fungsi yang
memproses permintaan dari View ke dalam struktur data di dalam
Model. Tugas dari Controller adalah menyediakan berbagai variabel
yang akan ditampilkan di View, memanggil Model untuk melakukan
28
akses ke basis data, menyediakan penanganan kesalahan, mengerjakan
proses logika dari aplikasi serta melakukan validasi.
Gambar 2.1 Alur MVC pada Code Igniter (Daqiqil, 2011:6)
Pada dapat dijelaskan alur MVC pada CI, yaitu ketika datang
sebuah user request, maka permintaan tersebut akan ditangani oleh
Controller, kemudian Controller akan memanggil Model jika memang
diperlukan operasi basis data. Hasil dari query oleh Model kemudian akan
dikembalikan ke Controller. Selanjutnya Controller akan memanggil View
yang tepat dan mengkombinasikannya dengan hasil query Model. Hasil
29
akhir dari operasi ini akan ditampilkan ke web browser yang selanjutnya
bisa dilihat oleh user.
2.8 Rapid Application Development (RAD)
2.8.1 Konsep Dasar RAD
Rapid Application Development (RAD) adalah model proses
pengembangan perangkat lunak yang bersifat inkremental terutama untuk
waktu pengerjaan yang pendek (Shalahudin dan A.S Rosa, 2011:34). Model
RAD merupakan adaptasi dari model waterfall versi kecepatan tinggi
dengan menggunakan model waterfall untuk pengembangan setiap
komponen perangkat lunak.
Model RAD membagi tim pengembang menjadi beberapa untuk
mengerjakan beberapa komponen. Setelah kebutuhan perangkat lunak
dipahami dan ruang lingkup perangkat lunak dibatasi, kemudian masing-
masing tim dapat memulai mengerjakan proyek secara paralel.
30
Gambar 2.2 Ilustrasi Model RAD (Shalahudin dan A.S Rosa, 2013)
Model RAD cocok diterapkan pada proyek yang memenuhi
kriteria sebagai berikut:
1. Anggota tim sudah berpengalaman mengembangkan perangkat lunak
yang sejenis.
2. Pengembang sudah memiliki komponen-komponen sistem yang bisa
digunakan kembali dalam proyek tersebut.
2.8.2 Fase-fase RAD
Pengembangan sistem dengan menggunakan RAD terdiri dari tiga
fase sebagai berikut (Kendall dan Kendall, 2010:164):
31
1. Requirement Planning
Requirement Planning merupakan tahap dimana user dan analyst
melakukan semacam pertemuan untuk saling bekerja sama dalam
mengidentifikasi tujuan dari sistem serta mencari kebutuhan informasi
yang timbul dari tujuan tersebut. Pada tahap ini hal terpenting adalah
adanya keterlibatan dari kedua belah pihak, bukan hanya sekedar
persetujuan akan proposal yang sudah dibuat. Untuk lebih jauh lagi,
keterlibatan user bukan hanya dari satu tingkatan pada suatu
organisasi, melainkan beberapa tingkatan organisasi, sehingga
informasi yang dibutuhkan untuk masing-masing user dapat terpenuhi
dengan baik.
2. Workshop Design
Pada tahap ini adalah melakukan proses desain dan melakukan
perbaikan-perbaikan apabila masih terdapat ketidaksesuaian desain
antara user dan analyst. Untuk tahap ini maka keaktifan user yang
terlibat sangat menentukan untuk mencapai tujuan, karena user bisa
langsung memberikan komentar apabila terdapat ketidaksesuaian pada
desain. Apabila memungkinkan, maka tiap-tiap user diberikan satu
komputer yang terhubung satu dengan yang lain, sehingga tiap-tiap
user bisa melihat desain yang dibuat dan langsung memberikan
komentar. Setelah user dan analyst menyetujui desain yang dibuat,
kemudian dilanjutkan oleh pengembang dalam pembuatan prototype
32
dari aplikasi yang dimaksud dengan langsung menampilkan kepada
user hasilnya dengan cepat.
Pada tahap workshop ini membutuhkan waktu beberapa hari, akan
tetapi bisa semakin lebih lama, tergantung dari besar kecilnya sistem
yang dibuat. Pada selang waktu tersebut, user bisa memberikan
tanggapan akan sistem yang sudah dikembangkan untuk selanjutnya
dilakukan perbaikan-perbaikan. Dengan demikian proses
pengembangan suatu sistem membutuhkan waktu yang cepat.
3. Implementation
Setelah hasil dari workshop design disepakati dan sistem yang
dibangun telah disempurnakan serta diuji, maka kemudian
diperkenalkan kepada organisasi. Proses perubahan yang terjadi
dengan adanya sistem aplikasi yang baru ini akan mudah diterima oleh
user, karena muncul rasa kepemilikan sistem akibat turut berperan
dalam fase workshop design.
Gambar 2.3Fase RAD (Kendall dan Kendall, 2010:164)
33
2.8.3 Kekurangan RAD
Model RAD memiliki kelemahan sebagai berikut (Shalahudin dan
A.S Rosa, 2011:36):
1. Untuk pembuatan sistem perangkat lunak dengan skala besar maka
model RAD akan memerlukan sumber daya manusia yang cukup
besar untuk membentuk tim-tim yang mengembangkan komponen-
komponen.
2. Jika tidak ada persetujuan untuk mengembangkan perangkat lunak
dengan cepat (rapid), maka proyek akan gagal karena akan terjadi
kesulitan dalam mendefinisikan kebutuhan.
3. Jika sistem perangkat lunak yang akan dikembangkan tidak bisa
dibagi-bagi menjadi beberapa komponen, maka model RAD tidak
dapat digunakan karena terlalu banyak campur tangan antar tim.
4. Model RAD tidak cocok digunakan pada sistem perangkat lunak yang
memiliki resiko tinggi, misalnya menggunakan teknologi baru yang
belum banyak dikenal dan dikuasai pengembang.
2.9 Unified Modeling Language(UML)
2.9.1 Definisi UML
Pada perkembangan teknologi perangkat lunak, diperlukan
adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang
akan dibuat dan perlu adanya standarisasi agar orang diberbagai negara
dapat mengerti pemodelan perangkat lunak.
34
Unified Modeling Language (UML) merupakan salah satu bahasa
pemodelan untuk pembangunan perangkat lunak yang menggunakan teknik
pemrograman berorientasi objek (Shalahudin dan A.S Rosa, 2011:137).
UML muncul karena adanya kebutuhan pemodelan visual untuk
menspesifikasikan, mengambarkan, membangun dan mendokumentasikan
sistem perangkat lunak.
UML diaplikasikan untuk maksud tertentu, antara lain sebagai
berikut (Widodo dan Herlawati, 2011:6) :
1. Merancang perangkat lunak.
2. Sarana komunikasi antara perangkat lunak dengan bisnis proses.
3. Menjabarkan sistem secara rinci untuk analisis dan mencari apa yang
diperlukan sistem.
4. Mendokumentasi sistem yang ada, proses-proses dan organisasinya.
2.9.2 Diagram-Diagram UML
Terdapat sembilan diagram pada UML. Kesembilan diagram ini
tidak mutlak harus digunakan dalam pengembangan perangkat lunak,
semuanya dibuat sesuai kebutuhan. Pada UML dimungkinkan juga
menggunakan diagram lain, seperti DFD (Data Flow Diagram) atau ERD
(Entity Relationship Diagram). Kesembilan digram yang terdapat pada
UML antara lain (Widodo dan Herlawati, 2011:10) :
35
1. Diagram Kelas (Class Diagram)
Class diagram adalah static model yang mendukung pandangan
statis dari susunan sistem. Class diagram menunjukkan kelas-kelas
dan hubungan antara kelas-kelas yang tetap konstan dalam sistem dari
waktu ke waktu. Class diagram sangat mirip dengan entity
relationship diagram (ERD), bagaimanapun, class diagram
menggambarkan kelas-kelas, yang mana termasuk attributes,
behavior, dan states, ketika entitas pada ERD hanya berupa atribut.
Cakupan dari class diagram, seperti ERD, yaitu sistem yang luas
(Dennis, dkk: 2010;510).
Pembangunan blok utama dari class diagram adalah class, yang
mana ditempatkan dan diatur dalam sistem informasi. (Lihat gambar
2.4) Selama analisis, class mengacu ke orang, tempat, kejadian, dan
hal-hal mengenai sistem yang akan menangkap informasi. Kemudian,
selama desain dan implementasi, kelas-kelas dapat mengacu pada
artefak implementasi yang spesifik seperti windows, form, dan object
lainnya yang digunakan untuk membangun sistem. Setiap class
digambarkan dengan menggunakan tiga bagian kotak dengan nama
class di atas, atribut di tengah, dan method (juga disebut operasi) di
bawah (Dennis, dkk: 2010;512).
36
Beberapa pendekatan berbeda telah disarankan untuk menolong
analis dalam mengidentifikasi sekumpulan kandidat kelas-kelas untuk
class diagram. Pendekatan yang paling umum adalah textual analysis,
analisis dari isi di dalam use case. Seorang analis mulai meninjau
ulang use case dan use case diagram. Isi deskripsi di dalam use case
diperiksa untuk mengidentifikasi potensial object, attribute, method,
dan association. Kata benda pada use case mengusulkan kemungkinan
kelas-kelas, ketika kata kerja mengusulkan kemungkinan operasi atau
Gambar 2.4 Contoh Class Diagram untuk Holiday Travel Vehicles
37
asosiasi. Gambar 2.5 menampilkan suatu ringkasan dari pedoman
yang telah kita temukan berguna (Dennis, dkk: 2010;517).
Gambar 2.5 Textual Analysis Guidelines
Tujuan utama dari diagram adalah untuk menunjukkan association
atau relationship yang dimiliki oleh satu class dengan dengan class
lainnya. Ini digambarkan pada diagram dengan menggambarkan garis
di antara kelas-kelas (Lihat gambar 2.6.). Association ini sangat mirip
dengan relationship yang ditemukan pada ERD. Association
dipelihara oleh references yang mana mirip seperti pointer dan
dipelihara secara internal oleh sistem (tidak seperti model relasional di
mana relationship dipelihara oleh foreign key dan primary key)
(Dennis, dkk: 2010;514).
38
2. Diagram Use Case
Diagram ini memperlihatkan himpunan use case dan aktor-aktor
yang berfungsi untuk mengorganisasi dan memodelkan perilaku suatu
sistem yang dibutuhkan serta diharapkan pengguna.
Potongan gambar orang yang diberi label pada diagram
menunjukkan actor (Lihat gambar 2.7). Seorang actor sama dengan
sebuah entitas eksternal yang ditemukan pada DFD—ini merupakan
orang atau sistem lain yang berinteraksi dengannya dan mendapat
Gambar 2.6 Class Diagram Syntax
39
nilai dari sistem. Seorang actor bukanlah pengguna spesifik, tetapi
suatu peran yang dapat dimainkan oleh pengguna ketika berinteraksi
dengan sistem. Actor adalah eksternal sistem dan menginisiasi sebuah
use case (Dennis, dkk:2010;506).
Use case dihubungkan kepada actor melalui association
relationship. Ini menunjukkan dengan mana use case dan actor
berinteraksi. (Lihat gambar 2.8) Sebuah garis digambarkan dari
seorang actor ke sebuah use case yang menggambarkan sebuah
association. Association secara umum menggambarkan dua cara
berkomunikasi antara use case dan actor (Dennis, dkk:2010;506).
Sebuah use case, digambarkan oleh sebuah oval, yaitu proses
utama yang akan dilakukan oleh sistem yang memberikan keuntungan
Gambar 2.7 Syntax Untuk Use Case Diagram
40
seorang actor dalam beberapa cara (Lihat gambar 2.8), dan ini
dilabelkan oleh sebuah pendeskripsian frase kata kerja (banyak seperti
proses DFD). Ada waktu ketika satu use case salah satunya akan
menggunakan fungsionalitas atau meng-extends fungsionalitas dari
use case lain pada diagram, dan ini ditunjukkan oleh includes atau
extends relationship. (Dennis, dkk:2010;507).
Use case dilampirkan di dalam sebuah system boundary, yang
mana sebuah kotak yang menggambarkan sistem dan secara jelas
melukiskan bagian apa-apa saja dari diagram, baik itu eksternal
maupun internal. (Lihat gambar 2.8) Nama dari sistem dapat terlihat
di dalam ataupun di atas dari kotak (Dennis, dkk: 2010;507).
Gambar 2.8 Contoh Use Case Diagram untuk Vehicle Sales
System
41
3. Diagram Interaksi dan Urutan (Sequence Diagram)
Sequence diagram mengilustrasikan objek yang berpartisipasi
dalam sebuah use case dan message yang melewatinya dari waktu ke
waktu untuk satu use case. Sequence diagram adalah dynamic model
yang mendukung tampilan dinamis dari sistem yang berkembang. Ini
jelas menunjukkan urutan dari message yang lewat di antara objek-
objek dalam mendefinisikan suatu interaksi. Sejak sequence diagram
menekankan time-based ordering pada aktivitas yang terjadi di antara
sekumpulan object, sequence diagram sangat membantu untuk
mengerti spesifikasi secara real time dan use case yang rumit (Dennis,
dkk: 2010;519).
Sequence diagram dapat menjadi sebuah generic sequence
diagram yang menunjukkan semua kemungkinan scenario. Scenario
adalah suatu jalur tunggal yang dapat dieksekusi yang melalui sebuah
use case. Tetapi biasanya setiap analis mengembangkan sekumpulan
instance sequence diagram, yang mana menggambarkan satu scenario
tunggal dalam use case. Jika analis tertarik dalam mengerti aliran
kontrol suatu scenario oleh waktu, analis harus menggunakan
sequence diagram untuk menggambarkan informasi ini. Diagram
digunakan selama fase analisis dan desain, bagaimanapun, desain
diagram diimplementasikan dengan sangat spesifik, sering termasuk
database objek atau komponen spesifik GUI (General User Interface)
sebagai kelas-kelas. Bagian berikut pertama menyajikan syntax dari
42
sebuah sequence diagram dan kemudian mendemonstrasikan
bagaimana sequence diagram harus digambarkan (Dennis, dkk:
2010;519).
Actor dan object yang berpartisipasi pada sequence diagram
ditempatkan di seberang atas dari diagram, digambarkan dengan
simbol actor dari use case diagram atau persegi panjang tidak berlabel
(Dennis, dkk: 2010;520).
Gambar 2.9 Sequence Diagram Syntax
43
Gambar 2.10 Sequence Diagram
Garis putus-putus berjalan secara vertikal di bawah tiap actor dan
object untuk menunjukkan lifeline (garis hidup) dari actor/object dari
waktu ke waktu. (Lihat gambar 2.10) Kadang-kadang sebuah object
membuat sebuah temporary object, dan pada kasus ini sebuah X
ditempatkan pada akhir dari lifeline pada titik di mana object
dihancurkan atau tidak digambarkan (Dennis, dkk: 2010;521).
Sebuah kotak tipis persegi panjang, disebut execution occurrence
(eksekusi kejadian), yang dilapisi ke lifeline untuk menunjukkan
ketika kelas-kelas mengirim dan menerima message. (Dennis, dkk:
2010;521).
Sebuah message adalah komunikasi antara objek-objek yang
menyampaikan informasi, dengan harapan bahwa aktivitas yang akan
terjadi, dan message yang lewat di antara objek ditunjukkan oleh garis
padat yang menghubungkan dua objek, disebut link. Panah pada link
44
menunjukkan ke arah mana message berlalu, dan nilai argumen untuk
message ditempatkan ke dalam tanda kurung sesudah nama message.
Urutan message berjalan dari atas ke bawah pada satu halaman, maka
message ditempatkan lebih tinggi pada diagram yang menunjukkan
message terjadi di awal urutan, berlawanan dari message yang lebih
rendah yang terjadi kemudian. Ada waktu ketika message yang
dikirim hanya jika suatu kondisi bertemu. Pada kasus tersebut, kondisi
ditempatkan di antara kumpulan dari [], kondisi ditempatkan di depan
nama message (Dennis, dkk: 2010;521).
4. Diagram Aktitas (Activity Diagram)
Beberapa dari kelas-kelas dalam class diagram cukup dinamis pada
yang mana kelas-kelasitu melalui berbagai macam keadaan selama
keberadaan kelas-kelas tersebut. Suatu activity diagram adalah
dynamic model yang menunjukkan perbedaan keadaan-keadaan yang
mana suatu class tunggal lewat melalui selama hidupnya dalam
merespon kejadian, bersamaan dengan respon dan aksinya. Secara
khusus, activity diagram tidak digunakan untuk seluruh kelas-kelas,
tetapi hanya untuk mendefinisikan kelas-kelas kompleks yang lebih
lanjut membantu menyederhanakan desain dari algoritma untuk
method classes tersebut. activity diagram menunjukkan perbedaan
state (keadaan) dari class dan event apa yang menyebabkan sebuah
class untuk berubah dari satu state ke state yang lain. Dibandingkan
sequence diagram, activity diagram harusnya digunakan jika
45
pengembang tertarik dalam memahami aspek dinamis dari sebuah
class tunggal dan bagaimana instances-nya berkembang seiring
waktu, dan tidak dengan bagaimana sebuah use case scenario tertentu
dieksekusi lebih dari satu set kelas-kelas (Dennis, dkk:2010;524).
Sebuah state adalah sekumpulan nilai-nilai yang mendeskripsikan
sebuah objek pada sebuah titik spesifik dalam waktu dan itu
merepresentasikan sebuah titik di dalam sebuah kehidupan objek pada
yang mana itu memenuhi beberapa kondisi, menampilkan beberapa
aksi, atau menunggu sesuatu terjadi. Sebuah state digambarkan oleh
sebuah state symbol, yang mana sebuah kotak dengan sudut berbentuk
bulat dengan sebuah label deskriptif yang mengomunikasikan suatu
keadaan tertentu. Ada dua pengecualian. Sebuah initial state yang
Gambar 2.11 Activity Diagram Syntax
46
digambarkan oleh sebuah lingkaran kecil, padat, berisi dan sebuah
objek milik final state digambarkan sebagai sebuah lingkaran
mengelilingi lingkaran yang kecil, padat, berisi. Pengecualian-
pengecualian ini digambarkan ketika sebuah objek dimulai dan
diakhiri (Dennis, dkk:2010;524).
Attributes atau properties dari sebuah objek mengakibatkan
keadaan yang berada di dalam, bagaimanapun, tidak semua attribute
atau perubahan attribute akan membuat suatu perbedaan (Dennis,
dkk:2010;526).
Sebuah event adalah sesuatu yang mengambil tempat pada titik
tertentu dalam waktu dan merubah suatu nilai yang mendeskripsikan
sebuah objek, yang mana membalikkan perubahan keadaan objek. Hal
ini bisa menjadi kondisi yang ditunjuk menjadi benar, tanda terima
dari pemanggilan sebuah method oleh sebuah objek, atau bagian dari
berlalunya waktu yang telah ditetapkan. State dari objek menentukan
secara pasti apa respon yang akan terjadi (Dennis, dkk:2010;526).
Gambar 2.12 Activity Diagram untuk Offer for a Vehicle
47
Anak panah digunakan untuk menghubungkan state symbol,
merepresentasikan sebuah transisi di antara states. Sebuah transisi
adalah hubungan yang mereprersentasikan pergerakan sebuah objek
dari satu state ke state lainnya. Beberapa transisi akan memiliki suatu
‘guard condition’. Suatu ‘guard condition’ adalah sebuah ekspresi
Boolean yang termasuk nilai-nilai attribute, yang mana
memperbolehkan suatu transisi hanya jika kondisinya benar. Setiap
anak panah dilabelkan dengan nama eventyang sesuai dan dengan
bebrapa parameter atau kondisi yang mungkin berlaku (Dennis,
dkk:2010;526).
5. Diagram Komunikasi (Communication Diagram)
Diagram sebagai pengganti diagram kolabrasi UML yang
menekankan organisasi struktural dari objek-objek yang menerima
serta mengirim pesan.
6. Diagram Status (Statechart Diagram)
Diagram status memperlihatkan keadaan-keadaan pada sistem,
memuat status (state), transisi, kejadian serta aktifitas.
7. Diagram Komponen (Component Diagram)
Diagram komponen memperlihatkan organisasi serta
kebergantungan sistem pada komponen-komponen yang telah ada
sebelumnya.
48
8. Diagram Deployment
Diagram ini memperlihatkan konfigurasi saat aplikasi dijalankan.
Diagram deployment berhubungan erat dengan diagram komponen
dimana diagram ini memuat satu atau lebih komponen-komponen.
Diagram ini berguna saat aplikasi yang dikembangkan, dijalankan
pada banyak mesin.
9. Diagram Paket (Package Diagram)
Diagram ini memerlihatkan kumpulan kelas-kelas yang merupakan
bagian dari diagram komponen.
2.9.3 Keunggulan UML
Adi Nugroho (2005) menemukakan bahwa secara umum UML
diterapkan dalam pengembangan sistem/perangkat lunak berorientasi
objek sebab metodologi UML ini umumnya memiliki keunggulan-
keunggulan sebagai berikut :
a. Uniformity, dengan metodologi UML, para pengembang cukup
menggunakan 1 metodologi dari tahap analisis hingga perancangan.
Hal ini tidak bisa dilakukan dalam metodologi pengembangan
terstruktur. Dengan perkembangan masa kinikearah aplikasi GUI
(Graphical User Interface), UML juga memungkinkan kita
merancang komponen antarmuka pengguna (User Interface) secara
intergrasi bersama dengan perancangan perangkat lunak sekaligus
dengan perancangan basisdata.
49
b. Understandability. Dengan metodologi ini kode yang dihasilkan
dapat diorganisasi kedalam kelas-kelas yang berhubungan dengan
masalah sesungguhnya sehingga lebih mudah dipahami siapapun
juga.
c. Stability. Kode program yang dihasilkan relatif stabil sepanjang
waktu sebab sangat mendekati permasalahan sesungguhnya di
lapangan.
d. Reusability. Dengan metodolgi berorientasi objek, dimungkinkan
pengguna ulang kode, sehingga oada gilirannya akan sangat
mempercepat waktu pengembangan perangkat lunak.
2.10 JQuery
JQuery merupakan suatu framework (library) Javascript yang
menekankan bagaimana interaksi antara Javascript dan HTML. JQuery pertama
kali dirilis pada tahun 2006 oleh John Resig. Pada perkembangannya JQuery tidak
sekedar sebagai framework Javascript, namun memiliki kehandalan dan kelebihan
yang cukup banyak. Hal tersebut menyebabkan banyak developer web
menggunakannya. JQuery memiliki slogan “Write less, do more” yang kurang
lebih maksudnya adalah kesederhanaan dalam penulisan code, tapi dengan hasil
yang lebih banyak.
JQuery merupakan library open source dengan lisensi GNU General
Public License dan MIT License. Dari sisi ukurannya, framework JQuery sungguh
ramping, hanya sekitar 20 KB dan hanya terdiri dari satu file. Namun demikian,
bagi yang menginginkan fungsi lebih, JQuery memungkinkan penambahan
50
fungsionalitas dalam bentuk plugin. Saat ini tersedia ribuan plugin yang dapat
diperoleh secara gratis di internet.
2.10.1 Fungsi JQuery
1. Mengakses bagian halaman tertentu dengan mudah.
Tanpa adanya library Javascript khusus, untuk mengakses suatu
bagian tertentu dari halaman, harus mengikuti aturan Document
Object Model (DOM) dan pengaksesan harus secara spesifik
menyesuaikan dengan struktur HTML. Dengan kata lain,
pengaksesan bagian tertentu dari halaman sangat tergantung pada
struktur dari HTML. JQuery menawarkan cara yang mudah (bahkan
sangat mudah) dalam mengakses bagian tertentu dari halaman.
Pengaksesan juga tidak terlalu bergantung pada struktur HTML.
2. Mengubah tampilan bagian halaman tertentu.
CSS (Cascading Style Sheet) menawarkan metode yang cukup
handal dalam mengatur dan mempercantik halaman web. Namun
terkadang CSS punya kelemahan yang cukup mengganggu, yaitu
beberapa perintah CSS tidak didukung oleh semua browser. Cukup
merepotkan jika kita harus mendesign halaman web dengan beberapa
CSS sekaligus. Sekali lagi JQuery menawarkan solusi untuk
mengatasi hal tersebut. Dengan JQuery, “kesenjangan” yang terjadi
antara browser dalam urusan CSS akan tertutup dengan baik.
51
3. Mengubah isi dari halaman.
Jaman dulu (baca:sebelum JQuery lahir) cukup sulit jika kita akan
mengubah sebagian isi dari halaman. Mengubah disini dapat berarti
mengganti teks, menambahkan teks atau gambar, mengurutkan suatu
daftar (list), menghapus baris tabel dan sebagainya. Dengan JQuery,
hal tersebut dapat dilakukan dengan hanya beberapa baris perintah.
4. Merespond interaksi user dalam halaman.
Website yang baik tidak cukup digambarkan dengan user-interface
dan tampilan yang memukau. Namun lebih dari itu, bagaimana
pengunjung dapat berinteraksi dengan website dan dapat mengatur
tampilannya sendiri. Interaktivitas sangat bergantung bagaimana
pemrograman yang dipakai dalam menangani event-handling.
Javascript sendiri memiliki beberapa event-handling seperti onclick
untuk menangani event saat terjadi click. Namun demikian, event
handling pada Javascript terbatas pada object-object tertentu, dan
jenisnya pun terbatas. JQuery melengkapi semuanya dengan tambahan
penanganan event-handling yang semakin mudah.
5. Menambahkan animasi ke halaman.
Animasi seringkali disertakan dalam suatu halaman web untuk
menambah kecantikannya. Saat ini animasi masih cukup digemari
oleh para peselancar situs. Animasi dapat dibuat dalam berbagai gaya,
ada yang menggunakan Flash, gambar bergerak (GIF), video, dan
sebagainya. Masing-masing tentu memiliki kelebihan dan kekurangan
52
masing-masing. JQuery sendiri menawarkan konsep animasi
(walaupun masih sederhana) yang cukup apik namun ramah
bandwidth alias ringan. Salah satu animasi yang bisa dibuat dengan
JQuery adalah fading jika terdapat suatu bagian dari halaman
ditambahkan atau dihilangkan.
6. Mengambil informasi dari server tanpa me-refresh seluruh halaman.
Mengambil informasi dari server tanpa refresh halaman merupakan
salah satu konsep dasar dari yang namanya AJAX (Asynchronous
Javascript and XML). Pada penerapannya, cukup ribet jika harus
membangun website dengan konsep AJAX, saat ini banyak library
khusus yang berusaha mempermudahnya. JQuery merupakan salah
satunya.
7. Menyederhanakan penulisan Javascript biasa.
Semboyan JQuery adalah “Write less, do more” atau dengan kata
lain kesederhanaan dalam penulisan code, tetapi menghasilnya
tampilan yang lebih. Sebenarnya inilah yang menjadi daya tarik
tersendiri buat para pengembang web untuk menggunakan JQuery.
2.11 Literatur Sejenis
Dalam melakukan penulisan aplikasi pajak penghasilan berbasis Web
penulis telah mengkaji penulisan sejenis yang disusun oleh Syaiful Amarullah
Isnaini (NIM : 105091002890) Program Studi Teknik Informatika Fakultas Sains
dan Teknologi UIN Syarif Hidayatullah Jakarta 2010 dengan judul “Aplikasi
53
Perhitungan Pajak Penghasilan Pasal 21 dan SSP Multi Function Berbasis Web
(Studi Kasus: CV. Buana Mitra Consulting)”. Tujuan penulisannya adalah
merancang suatu aplikasi perhitungan pajak dan mengimplementasikannya yang
berbasis web dan menghasilkan output berupa pdf sehingga perhitungan pajak ini
diharapkan dapat membantu CV. Buana Mitra Consulting dalam memberikan
fasilitas perhitungan pajak kepada para kliennya.
2.12 Pengujian Black-box
Black-box adalah sebuah metode yang digunakan untuk menguji sebuah
software pada level interface. Metode ini menguji beberapa aspek mendasar dari
sebuah software dengan sedikit memperhatikan struktur logic dasar dari software
tersebut (Pressman, 2002:551 ).
Metode pengujian black-box disebut juga pengujian perilaku
(behavioraltesting), pengujian ini fokus kepada kebutuhan fungsional dari
software. Jadi, teknik pengujian black-box memungkinkan seseorang untuk
memperoleh kumpulan dari kondisi masukan yang benar-benar akan menguji
semua kebutuhan fungsional dari sebuah program.
Pengujian blackbox berusaha menemukan kesalahan dalam kategori
sebagai berikut (Pressman:2002;551) :
1. Fungsi-fungsi yang tidak benar atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan kinerja
5. Inisialisasi dan kesalahan terminasi
54
3.BAB III
METODOLOGI PENELITIAN
3.1 Perusahaan
Perusahaan adalah tempat terjadinya kegiatan produksi dan berkumpulnya
semua faktor produksi. Perusahaan termasuk dalam pemberi kerja yang dapat
melakukan pemotongan terhadap PPh 21 para karyawannya.
Organisasi Perusahaan
Organisasi Perusahaan adalah suatu proses dimana terdapat orang-
orang yang saling berkomunikasi dan berinteraksi pada perusahaan
tersebut. Organisasi Perusahaan juga disebut suatu rangka dasar yang
menjadi tempat orang-orang melangsungkan kegiatannya untuk menerima,
menyimpan, mengolah, menyajikan informasi, dan merawat aktiva yang
mencakup susunan staf, alokasi tugas, dan tanggung jawab dalam
mengelola data, memasok informasi untuk pembuatan keputusan dan
merawat aktiva.
Struktur Organisasi Perusahaan
Struktur organisasi bisa didefinisikan merupakan salah satu
mekanisme-mekanisme secara formal tentang pengolahan dari pengertian
55
organisasi itu sendiri. Struktur organisasi mencakup unsur-unsur seperti
spesialisasi kerja, standarisasi, koordinasi, sentralisasi atau desentralisasi
dalam pembuatan keputusan dan ukuran satuan kerja.
Faktor-faktor yang dapat mempengaruhi pembuatan struktur organisasi :
1. Strategi organisasi pencapaian tujuan.
2. Perbedaan teknologi yang digunakan untuk memproduksi output akan
membedakan bentuk struktur organisasi.
3. Kemampuan dan cara berpikir para anggota serta kebutuhan mereka
juga lingkungan sekitarnya perlu dipertimbangkan dalam penyusunan
struktur perusahaan.
4. Besarnya organisasi dan satuan kerjanya mempengaruhi struktur
organisasi.
Gambar 3.1Struktur Organisasi Perusahaan
56
Berikut ini adalah beberapa pembagian divisi yang ada di dalam
perusahaan secara umum.
1. Divisi Produksi
Tugas dan tanggung jawab dari divisi ini adalah untuk proses produksi
yang ada di dalam perusahaan. Tugas yang dijalankan adalah pengolahan
barang yang ada sampai menghasilkan barang yang diproduksi didalam
perusahaan tersebut.
2. Divisi Keuangan
Divisi ini adalah untuk mengatur keuangan di dalam perusahaan. Divisi
keuangan ini akan melihat bagaimana alur uang dari dan keluar dari
perusahaan. Tugas yang dijalankan termasuk membuat laporan keuangan,
menghitung pajak perusahaan dan karyawan dan juga laporan rugi laba
untuk melihat bagaimana keberhasilan dari proses penjalanan tugas di
dalam perusahaan.
3. Divisi Marketing
Divisi marketing ini disebut juga sebagai divisi pemasaran, yaitu bertugas
untuk memasarkan atau mempromosikan produk yang telah diproduksi
oleh perusahaan sampai ketangan konsumer. Jadi, kerja dari divisi ini
adalah untuk melihat respon pasar terhadap barang yang telah diproduksi.
4. Divisi Personalia
Memiliki tugas untuk menjaga sumber daya manusia yang ada di dalam
perusahaan. Hal ini dijalankan dari awal proses perekrutan seorang
57
karyawan untuk perusahaan tersebut. Kemudia melakukan tindakan
promosi terhadap karyawan, mutasi atau hal yang lainnya.
3.2 Metode Pengumpulan Data
Dalam penyusunan skripsi ini, diperlukan data-data serta informasi
yang relatif lengkap sebagai bahan yang dapat mendukung kebenaran materi
uraian dan pembahasan. Oleh karena itu, sebelum penyusunan skripsi ini
dilakukan, maka dilakukan riset atau penelitian terlebih dahulu untuk
menjaring data serta informasi yang terkait.
Teknik pengumpulan data yang dilakukan dalam skripsi ini adalah
sebagai berikut:
3.2.1 Studi Pustaka
Pada tahapan pengumpulan data dengan cara studi pustaka, penulis
mencari referensi-referensi yang relevan dengan objek yang akan diteliti.
Pencarian referensi dilakukan di perpustakaan, toko buku, maupun secara
online melalui internet. Setelah mendapatkan referensi-referensi yang
relevan tersebut, penulis lalu mencari informasi-informasi yang
dibutuhkan dalam penelitian ini dari referensi-referensi tersebut. Informasi
yang didapatkan digunakan dalam penyusunan landasan teori, metodologi
58
penelitian serta pengembangan aplikasinya secara langsung. Pustaka-
pustaka yang dijadikan acuan dapat dilihat pada bagian Daftar Pustaka.
3.2.2 Studi Lapangan
3.2.2.1 Observasi
Demi menjaga keakuratan data-data yang penulis sajikan,
penulis melakukan observasi secara online dengan mengunjungi
website pemerintah terkait seperti website Direktorat Jenderal Pajak
di www.pajak.go.id, Kementerian Keuangan di
www.kemenkeu.go.id, Bank Indonesia di www.bi.go.id. Penulis
melihat data dan publikasi yang dikeluarkan secara berkala yang
sesuai dengan judul skripsi yang penulis buat.
3.2.2.2 Kuisioner
Penyebaran kuisioner dilakukan untuk mengetahui
permasalahan yang ada. Penyebaran kuisioner dilakukan dua kali.
Pertama penulis menyebarkan kuisioner untuk mengetahui masalah
yang ada dan mengetahui aplikasi seperti apa yang pengguna
inginkan. Kedua, penulis menyebarkan kuisioner untuk melihat
tanggapan pengguna terhadap aplikasi yang telah dibuat.
3.2.3 Studi Literatur Sejenis
Selain studi pustaka dan studi lapangan, penulis juga melakukan
studi literatur sejenis. Penulis melakukan studi literatur sejenis dengan cara
mencari mengenai penelitian-penelitian yang telah dilakukan oleh penulis
59
lain, yang mana topiknya relevan dengan topik yang diteliti oleh penulis,
kecocokan terhadap maksud dan tujuan dari skripsi penulis, serta
implementasi aplikasi dari skripsi penulis.
Pencarian studi literatur sejenis dilakukan di perpustakaan
maupun online di internet. Penulis melakukan pencarian dengan kata
kunci ataupun melalui tujuan dilakukannya penelitian oleh penulis lain.
Seperti yang sudah penulis sampaikan dalam Landasan Teori penulis
mengambil literatur yang disusun oleh Syaiful Amarullah Isnaini (NIM :
105091002890) Program Studi Teknik Informatika Fakultas Sains dan
Teknologi UIN Syarif Hidayatullah Jakarta 2010 dengan judul “Aplikasi
Perhitungan Pajak Penghasilan Pasal 21 dan SSP Multi Function Berbasis
Web (Studi Kasus: CV. Buana Mitra Consulting)”. Tujuan penulisannya
adalah merancang suatu aplikasi perhitungan pajak dan
mengimplementasikannya yang berbasis web dan menghasilkan output
berupa pdf sehingga perhitungan pajak ini diharapkan dapat membantu
CV. Buana Mitra Consulting dalam memberikan fasilitas perhitungan
pajak kepada para kliennya menjadi lebih mudah.
Adapun kelebihan dan kekurangan dari sistem yang dikembangkan
oleh Syaiful Amarullah Isnaini adalah
60
Table 3.1 Kelebihan dan Kekurangan dalam Literatur Sejenis
Kelebihan Kekurangan
1. Sistem yang dikembangkan
berbasis Web, sehingga mudah
untuk diakses.
2. Memiliki banyak fitur seperti
SPT masa, Halaman Pegawai,
Halaman Pasal 17, Bukti Potong
Tidak Final, Bukti Potong Final,
Halaman Admin, dan Halaman
Perubahan Pegawai Tetap.
1. Tidak menggunakan framework
dalam pemrograman.
2. Tidak terintegrasi dengan e-SPT
3. Menggunakan Login untuk
mengakses aplikasi, karena ruang
lingkupnya terbatas hanya untuk
klien C.V Buana
3.3 Metode Pengembangan Sistem
Metode pengembangan yang penulis gunakan adalah RAD atau Rapid
Application Development. Alasan penulis menggunakan metode RAD adalah
karena aplikasi yang dikembangkan adalah aplikasi yang sederhana, tidak
membutuhkan analisis dan perancangan secara mendalam yang tidak
membutuhkan waktu yang lama dalam pembuatannya. Sesuai dengan fase-fase
RAD yang sudah dijelaskan pada sub bab 2.8.2, fase pengembangan sistem yang
penulis lakukan dibagi menjadi tiga.
3.3.1 Requirement Planning
Pada fase requirement planning kerjasama antara penulis dan user
sangat penting agar solusi dari permasalahan menjadi tepat guna, serta
61
tujuan dari pengembangan aplikasi dapat berjalan dengan baik. sehingga
penulis mendapatkan gambaran kebutuhan yang harus tersedia pada
aplikasi. Penulis juga melakukan analisis kebutuhan dengan melakukan
perbandingan terhadap beberapa aplikasi akademik yang sudah ada.
Selanjutnya penulis mencatat gambaran tersebut secara sederhana agar
mudah dimengerti dan membuat aplikasi untuk memberikan kemudahan
kepada pengguna.
3.3.2 Workshop Design
Hasil analisis dari fase requirement planning syarat-syarat diatas
dibuatlah rancangan proses-proses yang akan terjadi di dalam sistem.
a. Perancangan Proses
Pada perancangan proses ini digunakanlah UML (Unified Modelling
Language) sebagai tools agar sistem yang dibuat dapat dimanfaatkan
secara optimal. UML memiliki beberapa jenis diagram, dalam
perancangan ini penulis hanya menggunakan use case diagram,
sequence diagram, class diagram dan activity diagram..
b. Perancangan Database
Pada perancangan database ini penulis menggunakan database
MySQL.
c. Perancangan Antarmuka Pemakai (User Interface)
Perancangan User Interface memberikan fasilitas komunikasi antar
pemakai dan sistem. Untuk perancangan user interface ini penulis
menggunakan Micosoft Office Visio 2007
62
d. Build system
Pada tahap build system penulis melakukan pengkodean berdasarkan
dokumentasi yang dihasilkan dari tahap design system. Pengkodean
yang dilakukan menggunakan bahasa pemrograman PHP dengan
framework Codeigniter sebagai pengatur hubungan antara controller,
model dan view sebagai framework tampilan interface sistem.
3.3.3 Implementation
Pada fase implementation pengembang dan user melakukan
pengujian terhadap sistem yang telah dikembangkan menggunakan
black-box testing Black-box testing ini menguji apakah input dari
aplikasi sesuai dengan output. lebih lanjut. Fase implementation ini
dibagi menjadi tiga tahap yaitu sebagai berikut:
1. Spesifikasi hardware dan software yang digunakan
2. Pengujian sistem aplikasi
3. Tanggapan user
63
3.3.4 Fase RAD
Fase Requirement Planning
1. Analisis sistem yang Berjalan
2. Identifikasi masalah
3. Solusi permasalahan
Fase Workshop Design
1. Membuat use case diagram
2. Membuat use case scenario
3. Membuat Activity diagram
4. Membuat sequence diagram
5. Membuat database relasional
6. Merancang antarmuka / interface
Fase Implementation
1. Spesifikasi hardware dan software
2. Pengujian aplikasi
3. Tanggapan user pada aplikasi
Gambar 3.2 Fase RAD
64
3.4 Kerangka Berfikir
Diagram pada gambar 3.3 menjelaskan kerangka berpikir peneliti dalam
melakukan penelitian.
Gambar 3.3 Kerangka Berpikir
65
4.BAB IV
HASIL DAN PEMBAHASAN
Dengan judul penelitian “Pembuatan Aplikasi Penghitungan Pajak
Penghasilan Pasal 21 Orang Pribadi Berdasarkan Undang-Undang Nomor 36
Tahun 2008”, penulis melakukan penelitian dengan metode pengumpulan data
dan metode pengembangan sistem. Metode-metode tersebut akan dijelaskan pada
bab ini.
A. Metode Pengumpulan Data
Pada metode pengumpulan data ini penulis melakukan pengumpulan data
dengan 4 cara yaitu observasi, studi pustaka, kuisioner, studi literatur sejenis.
1. Observasi
Demi menjaga keakuratan data-data yang penulis sajikan, penulis
melakukan observasi secara online dengan mengunjungi website
pemerintah terkait seperti website Direktorat Jenderal Pajak di
www.pajak.go.id, Kementerian Keuangan di www.kemenkeu.go.id, Bank
Indonesia di www.bi.go.id. Penulis melihat data dan publikasi yang
dikeluarkan secara berkala yang sesuai dengan judul skripsi penulis.
.
66
2. Studi Pustaka
Pada tahapan pengumpulan data dengan cara studi pustaka, penulis
mencari referensi-referensi yang relevan dengan objek yang akan diteliti.
Pencarian referensi dilakukan di perpustakaan, toko buku, maupun secara
online melalui internet. Setelah mendapatkan referensi-referensi yang
relevan tersebut, penulis lalu mencari informasi-informasi yang
dibutuhkan dalam penelitian ini dari referensi-referensi tersebut. Informasi
yang didapatkan digunakan dalam penyusunan landasan teori, metodologi
penelitian serta pengembangan aplikasinya secara langsung. Pustaka-
pustaka yang dijadikan acuan dapat dilihat pada bagian Daftar Pustaka.
3. Kuisioner
Penyebaran kuisioner dilakukan untuk mengetahui permasalahan
yang ada. Penyebaran kuisioner dilakukan dua kali. Pertama penulis
menyebarkan kuisioner untuk mengetahui masalah yang ada dan
mengetahui aplikasi seperti apa yang pengguna inginkan. Kedua, penulis
menyebarkan kuisioner untuk melihat tanggapan pengguna terhadap
aplikasi yang telah dibuat.
4. Studi Literatur Sejenis
Penulis melakukan studi literatur terhadap penelitian sejenis.
Kemudian penulis menarik kesimpulan dari kekurangan-kekurangan
penelitian tersebut dan dikembangkan pada aplikasi yang penulis buat.
67
B. Metode Pengembangan Sistem
Pada metode pengembangan sistem ini penulis menggunakan metode
RAD yang terdiri dari 3 tahapan yaitu fase Requirement Planning, fase
Workshop Design, dan fase Implementation.
4.1 Fase Requirement Planning
4.1.1 Analisis Sistem berjalan
4.1.1.1 Perusahaan
Perusahaan adalah tempat terjadinya kegiatan produksi dan
berkumpulnya semua faktor produksi. Perusahaan termasuk dalam
pemberi kerja yang dapat melakukan pemotongan terhadap PPh 21
para karyawan/pegawai tetapnya.
Yang dimaksud dengan pegawai tetap adalah
1. menerima penghasilan dalam jumlah tertentu secara teratur
2. bekerja terus menerus atau sesuai kontrak, ikut mengelola
kegiatan perusahaan.
3. Bekerja penuh (full time).
Pemotongan PPh 21 dalam suatu perusahaan mencakup
beberapa prosedur standar yang melibatkan bagian personalia,
bagian perpajakan, bagian keuangan, bank dan kantor pajak.
(Robbins, Stephen P., 1994: 22)
68
4.1.1.2 Flowchart Business Process
Flowchart adalah bagan-bagan yang mempunyai arus yang
menggambarkan langkah-langkah penyelesaian suatu masalah.
Untuk mengetahui letak dimana aplikasi dipergunakan perhatikan
flowchart dibawah ini.
Gambar 4.1 Flowchart Prosedur Pembayaran dan Pelaporan PPh 21
Berikut adalah prosedur pembayaran dan pelaporan PPh 21 suatu
perusahaan :
1. Dari bagian Payroll membuat data gaji karyawan dan memberikan
data tersebut ke bagian Perpajakan.
69
2. Setelah menerima data gaji dari bagian Payrol maka bagian
perpajakan membuat Kertas Kerja yang berisi perhitungan PPh 21
karyawan, lalu input ke dalam sistem e-SPT Pajak dan print-out SPT
masa PPh 21.
3. Kemudian tanda tangan oleh pejabat yang berwenang dan beri stempel
perusahaan.
4. Setelah SPT masa selesai buat Surat Setoran Pajak (SSP) lalu buat
Bukti Kas Keluar sebagai dokumen permintaan kas ke bagian
Keuangan.
5. Setelah BKK diterima oleh bagian keuangan, maka terlebih dahulu di
cek kelengkapan BKK dan tandatangani oleh pejabat berwenang di
bagian pengeluaran kas.
6. Setelah semua selesai, siapkan giro pembayaran untuk BKK tersebut
dan bayarkan ke bank.
7. Siapkan giro pembayaran dan SSP, setor ke bank dan terima SSP yang
sudah di validasi bank.
8. Setelah pajak disetor ke bank maka laporkan SPT masa disertai
lembar ke 3 SSP yang sudah divalidasi ke KPP dan pastikan
menerima tanda terima dari KPP.
9. Jurnal Pengeluaran kas otomatis tercatat di sistem ketika ada
pembayaran.
70
4.1.1.3 Dokumen-dokumen yang terkait dalam prosedur :
1. Surat Pemberitahuan (SPT) adalah dokumen perpajakan yang
berfungsi sebagai sarana untuk melaporkan pajak yang terutang
2. Data gaji karyawan adalah dokumen yang berisi tentang data
karyawan dan juga gaji yang diterima selama 1 bulan.
3. Surat Setoran Pajak (SSP) adalah dokumen perpajakan yang
berfungsi sebagai sarana untuk menyetorkan atau membayar pajak
yang terutang.
4. Nomor Pokok Wajib Pajak (NPWP) adalah nomor yang diberikan
kepada wajib pajak sebagai sarana dalam administrasi perpajakan
yang dipergunakan sebagai identitas wajib pajak.
5. Nomor Pengukuhan Pengusaha Kena Pajak (NPPKP) adalah
Pengusaha yang melakukan penyerahan Barang Kena Pajak dan
atau penyerahan Jasa Kena Pajak yang dikenakan pajak
berdasarkan Undang-undang Pajak Pertambahan Nilai
6. Bukti Tanda Terima adalah dokumen yang menyatakan bahwa
dokumen perpajakan telah diterima oleh kantor pajak.
4.1.2 Identifikasi Masalah
Berdasarkan hasil studi lapangan dan survey yang penulis lakukan
terhadap calon user yang dilakukan secara online ditemukan bahwa
pemotong pajak di sebuah perusahaan mengalami kesulitan dalam
menghitung pajak karyawannya dan kegiatan pemotongan tersebut juga
memakan banyak sekali waktu seiring dengan makin banyaknya karyawan
71
pada suatu perusahaan aplikasi penghitungan pajak yang ada juga
memuat terlalu banyak form sehingga membingungkan user dan terbatas
hanya untuk segmen tertentu saja sehingga memerlukan login terlebih
dahulu dan bahkan membayar lebih untuk menggunakan semua
fiturnya. Contoh aplikasi online yang beredar adalah Krishand PPh
21 dan JewelSoft PPh 21.
Hal tersebut bertentangan dengan tujuan penelitian yang penulis
lakukan, tentang aplikasi pajak yang dapat mempermudah proses hitung
dan mempersingkat waktu pemotong dalam menghitung PPh 21
karyawannya.
4.1.3 Solusi Permasalahan
4.1.3.1 Analisa Sistem yang diusulkan
Adapun sistem aplikasi yang diajukan penulis
menitikberatka pada kesederhanaan, kemudahan serta daya tarik
dalam proses penghitungan pajak. User memasukan data gaji
karyawan yang diterima dari Payroll Department (Departemen
Penggajian) secara manual meliputi NPWP, nama, pekerjaan, status
dan tanggungan. Penghasilan user yang meliputi gajipokok, tunjangan
dan bonus lainnya. Dan yg terakhir pengeluaran user dari penghasilan
yang telah didapat seperti tunjangan hari tua, iuran pensiun, dan lain
lain. Setelah itu user dapat langsung menghitung data tersebut yang
nantinya akan menghasilkan keluaran berupa penghasilan bruto,
72
penghasilan bersih, PTKP, dan PPh21 terhutang. Selanjutnya user
dapat memilih untuk menghitung ulang dengan menekan tombol reset
atau mau menghitung jumlah total PPh 21 karyawan yang harus
dibayarkan oleh perusahaan. Hasil keluaran berupa SPT masa yang
setelah mendapatkan autentifikasi dari petinggi terkait dapat dijadikan
SSP. Bukti kas keluar sebagai dokumen permintaan kas ke bagian
Keuangan. Dan SSP ini nantinya dapat dipergunakan oleh Finance
Department (Departemen Keuangan) untuk melakukan pembayaran
pajak melalui KKP terkait.
Gambar 4.2 Analisa Sistem yang diusulkan
73
Sistem aplikasi ini dibangun selain untuk mempermudah para
pemotong pajak di perusahaan untuk menghitung PPh 21 para
karyawannya, serta mengefisienkan waktu dalam proses tersebut.
Table 4.1 Strategi Penyelesaian
No Sasaran Perbaikan Pola Solusi
1. Kemudahan dalam
mengakses aplikasi
Membangun sistem berbasis Web
yang dapat diakses dari jaringan
internet dengan tanpa
menggunakan login sebagai
pembatasan hak akses user.
2. Penyederhanaan tampilan. Karena aplikasinya sangat
spesifik maka tampilan yang ada
sangat ringkas dan mudah
dipahami user
3. Kemudahan proses hitung Langsung dapat menampilkan
hasil dari penghitungan
4. Adanya Output dari aplikasi File output berupa pdf dan e-SPT
5. Mempercepat waktu hitung Automatisasi penghitungan
dimana user tidak perlu
menghitung secara manual
74
Gambar 4.3 Flowchart Final
4.2 Fase Workshop Design
4.2.1 Membuat Use Case Diagram
Use case diagram menjelaskan kegiatan-kegiatan yang dapat
dilakukan oleh sistem dan aktor-aktor yang terlibat didalamnya. Seperti
yang dijelaskan pada tabel 4.1 berikut:
75
Tabel 4.1Aktor Sistem
No. Aktor Deskripsi
1 Admin
Aktor yang mengelola dan mengontrol
Website Aplikasi
2 User
Aktor yang melakukan perhitungandi
Website Aplikasi
Gambar 4.4 merupakan use case diagram yang menggambarkan
kegiatan-kegiatan yang ada dalam sistem
Gambar 4.4 Use Case Diagram
76
4.2.2 Membuat Use Case Scenario
5. Use Case Scenario Hitung Pajak
Table 4.2 Use Case Scenario Hitung Pajak
Use Case Name Hitung Pajak
Use Case ID 1
Actor User
Description Use case menggambarkan kegiatan pengguna
untuk mengakses sistem dan memasukan data
karyawan
Precondition User sistem membuka sistem dengan
menggunakan Web browser.
Typical Course
of Events Actor Action System Response
1. Input Nama,
NPWP,
Pekerjaan, No.
telp, tahun pajak,
status kawin,
tanggungan, gaji
pokok, bonus,
tunjangan, biaya
jabatan, THT,
potongan
2.
Menampilkan
Data yang di
Input
3.
Alternate
Courses
Conclusion Memasukan Data Karyawan
Post Condition
77
6. Use Case Scenario Reset
Table 4.3 Use Case Scenario Reset
Use Case Name Reset
Use Case ID 2
Actor User
Description Use case menggambarkan kegiatan pengguna
untuk menghapus semua input pada kolom
isian
Precondition User mengisi kolom isian
Typical Course of
Events Actor Action System Response
1. Click tombol
Reset
2. Melakukan proses
Reset
3. Menampilkan
kolom isian yang
kembali kosong
Alternate Courses
Conclusion User melakukan reset
Post Condition
7. Use Case Hitung
Table 4.4 Use Case Scenario Hitung
Use Case Name Hitung
Use Case ID 3
Actor User
Description Use case menggambarkan kegiatan pengguna
untuk melakukan penghitungan data
Precondition User memasukan input data karyawan pada
kolom yang tersedia
Typical Course of
Events Actor Action System Response
1. Click Hitung 2. Menampilkan
hasil
penghitungan
3
4.
Alternate Courses Jika ada kolom yang kosong, maka sistem
78
akan memberikan peringatan
Conclusion Use case menggambarkan User melakukan
proses penghitungan
Post Condition Terdapat hasil penghitungan
8. Use Case Scenario Proses e-SPT
Table 4.5 Use Case Scenario Proses e-SPT
Use Case Name e-SPT
Use Case ID 4
Actor User
Description Use case menggambarkan kegiatan pengguna
untuk menampilkan form e-SPT
Precondition
Typical Course of
Events Actor Action System Response
1. Click e-SPT 2. Menampilkan
form e-SPT
Alternate Courses
Conclusion Use case menggambarkan User menampilkan
form e-SPT
Post Condition Masukan data karyawan dari Hitung Pajak ke
e-SPT
9. Use Case Scenario Proses Cetak e-SPT
Table 4.6 Use Case Scenario Proses Cetak e-SPT
Use Case Name Cetak e-SPT
Use Case ID 5
Actor User
Description Use case menggambarkan kegiatan pengguna
untuk mencetak/printout e-SPT
79
Precondition User membuka form e-SPT dengan mengklik
tombol e-SPT
Typical Course of
Events Actor Action System Response
1. Click tombol
Cetak e-SPT
2. Mencetak e-SPT
3
4.
Alternate Courses
Conclusion Use case menggambarkan User mencetak e-
SPT
Post Condition
10. Use Case Scenario Simpan e-SPT
Table 4.7 Use Case Scenario Simpan e-SPT
Use Case Name Simpan e-SPT
Use Case ID 6
Actor User
Description Use case menggambarkan kegiatan User untuk
menyimpan e-SPT
Precondition User membuka form e-SPT dengan mengklik
tombol e-SPT
Typical Course
of Events Actor Action System Response
1.
Click Simpan
2. Menyimpan e-
SPT dalam
format PDF
Alternate
Courses
Conclusion User menyimpan file e-SPT
Post Condition
80
11. Use Case Skenario Data Karyawan
Table 4.8 Use Case Skenario Data Karyawan
Use Case Name Data Karyawan
Use Case ID 6
Actor User
Description Use case menggambarkan kegiatan pengguna
untuk menampilkan halaman Data Karyawan
Precondition
Typical Course
of Events Actor Action System Response
1. ClickData
Karyawan
2. Menampilkan
halaman Data
karyawan
Alternate
Courses
Conclusion User mengakses halaman Data Karyawan
Post Condition
12. Use Case Skenario Edit Data Karyawan
Table 4.9 Use Case Skenario Edit Data Karyawan
Use Case Name Edit Data Karyawan
Use Case ID 6
Actor User
Description Use case menggambarkan kegiatan User untuk
mengedit Data Karyawan
Precondition User mengakses halaman Data Karyawan
dengan mengklik tombol Data Karyawan
pada halaman Hitung Pajak
Typical Course
of Events Actor Action System Response
81
1. ClickData
Karyawan
2. Menampilkan
halaman Data
karyawan
Alternate
Courses
Conclusion User mengakses halaman Data Karyawan
Post Condition Menampilkan halaman Hitung Pajak
13. Use Case Skenario Delete Data Karyawan
Table 4.10 Use Case Skenario Delete Data Karyawan
Use Case Name Delete Data Karyawan
Use Case ID 6
Actor User
Description Use case menggambarkan kegiatan User untuk
menghapus salah satu Data Karyawan
Precondition User mengakses halaman Data Karyawan
dengan mengklik tombol Data Karyawan
pada halaman Hitung Pajak
Typical Course
of Events Actor Action System Response
1. Click Delete
2. Menghapus Data
Karyawan
Alternate
Courses
Conclusion User dapat menghapus Data Karyawan
Post Condition
82
14. Use Case Skenario Cetak Data Karyawan
Table 4.11 Use Case Skenario Cetak Data Karyawan
Use Case Name Cetak Data Karyawan
Use Case ID 6
Actor User
Description Use case menggambarkan kegiatan User untuk
mencetak Data Karyawan
Precondition User mengakses halaman Data Karyawan
dengan mengklik tombol Data Karyawan
pada halaman Hitung Pajak
Typical Course
of Events Actor Action System Response
1. Click Cetak
2. Mencetak Data
Karyawan
Alternate
Courses
Conclusion User dapat mencetak Data Karyawan
Post Condition
15. Use Case Skenario Simpan Data Karyawan
Table 4.12 Use Case Skenario Simpan Data Karyawan
Use Case Name Simpan Data Karyawan
Use Case ID 6
Actor User
Description Use case menggambarkan kegiatan User untuk
menyimpan Data Karyawan
Precondition User mengakses halaman Data Karyawan
dengan mengklik tombol Data Karyawan
pada halaman Hitung Pajak
Typical Course
of Events Actor Action System Response
83
1. Click Simpan
2. Menyimpan Data
Karyawan
3. Tersimpan dalam
format PDF
Alternate
Courses
Conclusion User dapat menyimpan Data Karyawan
Post Condition Tersimpan dalam format PDF
4.2.3 Membuat Activity Diagram
1. Activity Diagram Fungsi Hitung
Gambar 4.5 Activity Diagram Hitung
Keterangan gambar: activity diagram Gambar 4.5 menjelaskan
aktifitas Hitung. Dimana yang harus dilakukan User yaitu
memasukan input Data Karyawan kedalam form yang terdapat di
Halaman Hitung. Selanjutnya user dapat click tombol Hitung untuk
dapat melihat hasil dari perhitungan pajak berdasarkan input data
karyawan tadi.
84
2. Activity Diagram Fungsi e-SPT
Gambar 4.6 Activity Diagram Fungsi e-SPT
Keterangan gambar: activity diagram pada Gambar 4.6
menjelaskan aktifitas dari User untuk memanggil form e-SPT. Pada
Halaman Hitung Pajak, User click e-SPT lalu akan keluar form
pengisian e-SPT. Pengisian form e-SPT menurut data karyawan dan
hasil hitung yang sebelumnya telah dilakukan.
85
3. Activity Diagram Fungsi Cetak e-SPT
Gambar 4.7 Activity Diagram Fungsi Cetak e-SPT
Keterangan gambar: activity diagram Gambar 4.7 menjelaskan aktifitas
User dalam mencetak e-SPT. Setelah hasil hitung didapat maka User
meng-click Cetak pada halaman e-SPT. Hasil cetakan berupa print out.
86
4. Activity Diagram Fungsi Simpan e-SPT
Gambar 4.8 Activity Diagram Fungsi Simpan e-SPT
Keterangan gambar: activity diagram Gambar 4.8 menjelaskan aktifitas
User dalam menyimpan e-SPT yang telah dihitung. Pada halaman e-SPT
user dapat meng-click Simpan yang selanjutnya file e-SPT dapat disimpan
di storage dengan format pdf.
87
5. Activity Diagram Fungsi Reset
Gambar 4.9 Activity Diagram Fungsi Reset
Keterangan gambar: activity diagram Gambar 4.9 menjelaskan aktifitas
User dalam melakukan fungsi reset. User yang telah melakukan
penghitungan dapat melakukan proses penghitungan lagi dengan
melakukan reset terlebih dahulu. Pada halaman Hitung user click Reset
lalu akan muncul box konfirmasi apakah proses reset dilakukan atau tidak.
Jika user memilih Ya maka data dalam kolom input akan hilang.
88
6. Activity Diagram Fungsi Data Karyawan
Gambar 4.10 Activity Diagram Fungsi Data Karyawan
Keterangan gambar: activity diagram Gambar 4.10 menjelaskan aktifitas
User pada halaman Hitung user meng-click Data Karyawan. Halaman
Data Karyawan akan keluar dan user dapat melihat data dari karyawan
yang telah dihitung pajaknya
89
7. Activity Diagram Fungsi Edit Data Karyawan
Gambar 4.11 Activity Diagram Fungsi Edit Data Karyawan
Keterangan gambar: activity diagram Gambar 4.11 menjelaskan aktifitas
User untuk melakukan perubahan (Edit) pada Data Karyawan. Pada
halaman Hitung User meng-click Data Karyawan. Setelah halaman Data
Karyawan keluar user dapat meng-click Edit. Selanjutnya user akan
dibawa ke halaman Hitung lagi dan dapat memasukan data terbaru.
90
8. Activity Diagram Fungsi Delete Data Karyawan
Gambar 4.12 Activity Diagram Fungsi Delete Data Karyawan
Keterangan gambar: activity diagram Gambar 4.12 menjelaskan aktifitas
User mendelete Data Karyawan. Pada halaman Hitung user meng-click
Data Karyawan. Lalu muncul halaman Data Karyawan, setelah itu user
dapat meng-click Delete. Setelah itu akan muncul kotak konfirmasi apakah
proses akan dilanjutkan atau tidak. Jika user memilih Tidak maka akan
kembali ke halaman Data Karyawan. Jika user memilih Ya maka data
akan dihapus dari basis data.
91
9. Activity Diagram Fungsi Cetak Data Karyawan
Gambar 4.13 Activity Diagram Fungsi Cetak Data Karyawan
Keterangan gambar: activity diagram Gambar 4.13 menjelaskan aktifitas
User untuk melakukan proses cetak Data Karyawan. Pada halaman Hitung
user meng-click Data Karyawan. Setelah halaman Data Karyawan
muncul user dapat meng-click Cetak untuk melakukan proses pencetakan
(print out).
92
10. Activity Diagram Fungsi Simpan Data Karyawan
Gambar 4.14 Activity Diagram Fungsi Simpan Data Karyawan
Keterangan gambar: activity diagram Gambar 4.14 menjelaskan aktifitas
User dalam melakukan Simpan Data Karyawan. Pada halaman Hitung
user meng-click Data Karyawan. Setelah halaman Data Karyawan ini
muncul maka user dapat meng-click Simpan untuk melakukan proses
penyimpanan Data Karyawan di Storage dalam format pdf.
93
4.2.4 Membuat Sequence Diagram
Gambar 4.15 Sequence Diagram Reset
Keterangan gambar : user sudah berada didalam aplikasi, lalu user dapat
mengisi data karyawan yang akan dihitung pajaknya didalam form hitung yang
sudah tersedia. Setelah selesai memasukkan semua data karyawan, user dapat
memilih menu hitung untuk memulai proses penghitungan. Tampilan hasil hitung
akan muncul dengan hasil penghitungan tadi, selanjutnya jika user mendapati ada
kesalahan data yang dimasukkan maka user dapat memilih menu reset yang akan
menghapus data yang tadi telah dimasukkan dan user dapat memasukkan data
baru.
94
Gambar 4.16 Sequence Diagram e-SPT
Keterangan gambar : user sudah berada didalam aplikasi, lalu user dapat
mengisi data karyawan yang akan dihitung pajaknya didalam form hitung yang
sudah tersedia. Setelah selesai memasukkan semua data karyawan, user dapat
memilih menu hitung untuk memulai proses penghitungan. Tampilan hasil hitung
akan muncul dengan hasil penghitungan tadi, selanjutnya jika user mendapati ada
kesalahan data yang dimasukkan maka user dapat memilih menu reset yang akan
menghapus data yang tadi telah dimasukkan dan user dapat memasukkan data
baru. Selanjutnya user dapat memilih menu e-SPT untuk menampilkan hasil
penghitungan kedalam form e-SPT. Di form e-SPT user dapat memilih untuk
menyimpan data tersebut kedalam pdf atau langsung mencetaknya.
95
Gambar 4.17 Sequence Diagram Data Karyawan
Keterangan gambar : user sudah berada didalam aplikasi, lalu user dapat
mengisi data karyawan yang akan dihitung pajaknya didalam form hitung yang
sudah tersedia. Setelah selesai memasukkan semua data karyawan, user dapat
memilih menu hitung untuk memulai proses penghitungan. Tampilan hasil hitung
akan muncul dengan hasil penghitungan tadi, selanjutnya jika user mendapati ada
kesalahan data yang dimasukkan maka user dapat memilih menu reset yang akan
menghapus data yang tadi telah dimasukkan dan user dapat memasukkan data
baru. User dapat memilih menu data karyawan untuk melihat seluruh data hasil
penghitungan yang telah dilakukan. Tampilan form data karyawan ditampilkan
disitu user dapat melakukan pengecekan apakah sudah sesuai atau masih ada data
96
karyawan yang salah atau kurang, jika itu terjadi maka user dapat memilih menu
edit untuk kembali melakukan proses penghitungan atau delete untuk menghapus
data karyawan. Setelah semua dirasa tepat user dapat memilih menu cetak untuk
mencetak printout data karyawan atau memilih menu simpan untuk menyimpan
data karyawan kedalam file pdf.
4.2.5 Desain Basis Data
4.2.5.1 Database Relasional
Gambar 4.18 Desain Database Relational
97
4.2.5.2 Daftar Tabel
1. Tabel tbl_ptkp
Tabel tb_ptkp berisikan informasi mengenai PTKP (Penghasilan
Tidak Kena Pajak). Property dari field-field pada tabel
tb_dept dapat dilihat pada
Table 4.13 Tabel tbl_ptkp
Nama Field Property
rowid_ptkp int(11) AUTO_INCREMENT PK
nama_ptkp varchar(50)
ket_ptkp varchar(80)
status_setting int(11)
2. Tabel tbl_setting
Tabel tbl_setting berisikan informasi mengenai kolom identitas.
Property dari field-field pada tabel tbl_setting dapat dilihat pada
4.10
Table 4.14 Tabel tbl_setting
Nama Field Property
rowid_setting_detail int(11) AUTO_INCREMENT PK
Value_setting Float
ket_settng text
status_ptkp int(11)
value_ptkp float
98
3. Tabel tb_setting_detail
berisikan informasi mengenai. Property dari field-field pada tabel
tb_setting_detail dapat dilihat pada 4.11
Table 4.15 Tabel tb_setting_detail
Nama Field Property
rowid_ptkp int(11) AUTO_INCREMENT PK
nama_ptkp varchar(50)
Tahun_setting_detail Int(11)
tbl_setting_rowid_setting int(11)
4. Tabel tb_admin
Table 4.16 tb_admin
Nama Field Property
rowid_admin int(11) AUTO_INCREMENT
username varchar(50) PK
password text
status_admin int(11)
99
5. Tabel vw_setting
Table 4.17 vw_setting
Nama Field Property
rowid_setting int(11) AUTO_INCREMENT
Nama varchar(50) PK
Ket_setting text
status_setting int(11)
Value_setting float
Tahun_setting_detail int(11)
Rowed_setting_detail int(11)
4.2.6 Desain Interface
1. Desain Interface Hitung Pajak
Gambar 4.19 Desain Interface Hitung Pajak
100
Gambar 4.20 Desain Interface Hitung Pajak 2
101
2. Desain Interface e-SPT
Gambar 4.21 Desain Interface e-SPT
102
3. Desain Interface Data Karyawan
Gambar 4.22 Desain Interface Data Karyawan
4.2.7 Pengkodean Sistem
Pada framework Codeigniter yang menggunakan konsep MVC,
pengkodean sistem dibagi menjadi pengkodean model, view dan controller.
Tabel 4.10 Contoh Pengkodean Model
1 <?php
class mdl_ptkp extends CI_Model {
private $tbl_name= 'tbl_ptkp';
function __construct(){
parent::__construct();
}
function get_dataMarital(){
103
$this->db->order_by('ket_ptkp','asc');
$this->db->where('status_ptkp', 1);
$this->db->where('kode_ptkp', 'NKH');
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_dataTanggungan(){
$this->db->order_by('ket_ptkp','asc');
$this->db->where('status_ptkp', 1);
$this->db->where('kode_ptkp', 'ANK');
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_data_group($sortField, $groupField){
$this->db->order_by($sortField,'asc');
$this->db->group_by($groupField);
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_data_where($sortField, $whereField, $value){
$this->db->order_by($sortField,'asc');
$this->db->where($whereField, $value);
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_data_where_group($sortField, $whereField, $value,
$groupField){
$this->db->order_by($sortField,'asc');
$this->db->where($whereField, $value);
$this->db->group_by($groupField);
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function record_count() {
return $this->db->count_all($this->tbl_name);
}
function fetch_admin($limit, $start,$groupField) {
$this->db->group_by($groupField);
$this->db->limit($limit, $start);
$query = $this->db->get($this->tbl_name);
104
4.2.8 Fase Implementation
4.2.8.1 Spesifikasi Hardware (Perangkat Keras)
Spesifikasi perangkat keras di sisi server pada tahap pengujian
adalah sebagai berikut:
1. Prosesor intel i5-460M
2. RAM 2GB
3. HDD 500GB
4. ATI Mobility Radeon HD 5650
Dalam melakukan pengujian, perangkat keras yang digunakan di
sisi client adalah sebagai berikut:
1. Prosesor intel i5-460M
2. RAM 2GB
3. HDD 500GB
4. ATI Mobility Radeon HD 5650
4.2.8.2 Spesifikasi Software (Perangkat Lunak)
Perangkat lunak yang digunakan di sisi server adalah sebagai
berikut:
1. Windows 7 Ultimate
2. XAMPP v3.2.1
Web browser yang digunakan untuk pengujian di sisi client yaitu
sebagai berikut:
1. Google Chrome v30.0.1599.69 m,
2. Mozilla Firefox v23.0.
105
4.2.8.3 Hasil Pengujian Aplikasi
Dalam pengujian aplikasi penghitungan pajak penghasilan pasal
21 ini, penulis menggunakan black-box testing untuk mengetahui fitur-
fitur yang dibuat apakah sudah berjalan sesuai dengan yang diinginkan.
Cara pengujiannya, hanya dilakukan dengan menjalankan atau
mengeksekusi unit atau modul, kemudian diamati apakah hasil dari unit
tersebut sesuai dengan proses bisnis yang diinginkan
1. Pengujian Aplikasi User
Table 4.18 Pengujian Interface User
No Test
Case
Prasyarat Hasil yang
diharapkan
Hasil Uji
Coba
Sesuai Tidak
1. Akses
aplikasi
User
mengakses
aplikasi
Aplikasi
menampilkan
form Hitung
Pajak
Sesuai
2. Input
data
karyawa
n
User mengisi
form Hitung
Pajak.
Jika ada form
penting yang
tidak terisi
maka akan
muncul
notification
pada kolom
tersebut
Sesuai
3. Hitung
Pajak
User memilih
menu Hitung
Pajak
muncul form
hasil
penghitungan
Sesuai
4 Reset User memilih Data yang Sesuai
106
menu Reset di
form Hitung
Pajak
sudah
dimasukkan
dalam kolom
hitung pajak
dihapus
2. Pengujian Aplikasi e-SPT
Table 4.19 Pengujian Aplikasi e-SPT
No Test Case Prasyarat Hasil yang
diharapkan
Hasil Uji
Coba
Sesuai Tidak
1. Akses
aplikasi
User
mengakses
aplikasi
Aplikasi
menampilkan
form Hitung
Pajak
Sesuai
2. e-SPT User memilih
menu E-SPT
Muncul
halaman form
e-SPT
Sesuai
3. Cetak User memilih
menu Cetak
Muncul
halaman
setting print
Sesuai
4 Simpan User memilih
menu Simpan
e-SPT
tersimpan
dalam format
sesuai
107
3. Pengujian Aplikasi Data Karyawan
Table 4.20 Pengujian Aplikasi Data Karyawan
No Test Case Prasyarat Hasil yang
diharapkan
Hasil Uji
Coba
Sesuai Tidak
1. Akses
aplikasi
User
mengakses
aplikasi
Aplikasi
menampilkan
form Hitung
Pajak
Sesuai
2. Data
Karyawan
User
memilih
menu Data
Karyawan
Muncul halaman
form Data
Karyawan
Sesuai
3. Cetak User
memilih
menu Cetak
Muncul halaman
setting print
Sesuai
4 Simpan User
memilih
menu
Simpan
e-SPT tersimpan
dalam format pdf
Sesuai
5 Edit User
memilih
menu Edit
User Kembali ke
halaman form
Hitung
Sesuai
6 Delete User
memilih
menu Delete
Data Karyawan
yang tersimpan
dalam database
terhapus
Sesuai
108
4. Pengujian Sistem Menggunakan Kuesioner
Pengujian sistem dengan kuesioner digunakan dengan tujuan untuk
kelayakan dari aplikasi yang dibuat. Sebelum melakukan kuesioner kepada
tiap responden, terlebih dahulu responden menggunakan aplikasi.
Responden berasal dari para karyawan yang berhubungan dengan pajak
seperti divisi payroll, finance, dan accounting. Responden yang terkumpul
sebanyak 15 orang. Pada kuesioner tersebut terdapat 4 jenjang pilihan
yang terdiri dari, SB (sangat baik), B (baik), TB (tidak baik), dan STB
(sangat tidak baik).
Table 4.21 Tabel Pengujian Sistem menggunakan Kuesioner
UJI COBA
SB B TB STB
Dalam Persentase (%)
1. User Interface Aplikasi, layout, warna,
form, link menu
60 20 20 0
2. Kemudahan Dalam Penggunaan
Aplikasi (user friendly) 33,3 46,7 13,3 6,7
3. Kelengkapan Konten Menu Yang Ada
Pada Aplikasi 33.3 46,7 20 0
4. Kemudahan Dalam Memahami
Pertanyaan Pada Fasilitas Konsultasi 46,7 20 20 13,3
5. Saran Yang Diberikan Pada Hasil
Konsultasi 46,7 40 13,3 0
109
1. User Interface Aplikasi
9 responden memilih SB, 3 responden memilih B, 3 responden
memilih TB, dan 0 responden memilih STB.
2. User Friendly
5 responden memilih SB, 7 responden memilih B, 2 responden
memilih TB, dan 1 responden memilih STB.
3. Kelengkapan Konten Menu
5 responden memilih SB, 7 responden memilih B, 3 responden
memilih TB, dan 0 responden memilih STB.
4. Kemudahan Dalam Memahami Pertanyaan
7 responden memilih SB, 3 responden memilih B, 3 responden
memilih TB, dan 2 responden memilih STB.
5. Saran Yang Diberikan
7 responden memilih SB, 6 responden memilih B, 2 responden
memilih TB, dan 0 responden memilih STB.
110
5.BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan pembahasan pada bab-bab sebelumnya, maka penulis dapat
mengambil kesimpulan dari penelitian yang telah dilakukan, bahwa:
1. Aplikasi penghitungan pajak PPh21 yang dapat diakses secara langsung
sangat memudahkan user yang ingin menghitung pajak penghasilannya.
2. Menghemat waktu dalam penghitungan PH 21
3. Tampilan yang simple dan disertakannya info tentang pajak menambah
pengetahuan user tentang manfaat pentingnya pajak.
4. Output yang berupa SPT dan dapat langsung di serahkan kepada KPP
(Kantor Pemungut Pajak) terkait, diharapkan bisa mendorong kesadaran
jumlah wajib pajak yang membayar pajak
5.2 Saran
1. Pada perkembangan selanjutnya bisa ditambahkan pasal lain seperti 22,
25, 26 sehingga cakupan aplikasinya menjadi lebih luas.
2. Dilengkapi dengan animasi bergerak yang aktraktif sehingga user menjadi
lebih tertarik menggunakan aplikasi.
3. Terdapat pilihan SPT yang lain sehingga user dapat menyesuaikan
dengan kebutuhannya.
111
DAFTAR PUSTAKA
A.S Rosa dan Salahuddin M, 2011. Modul Pembelajaran Rekayasa Perangkat
Lunak (Terstruktur dan Berorientasi Objek), Bandung: Modula.
Achmad Tjahyono, Muhammad Fachri H, Edisi Sembilan, “Perpajakan” UPP
STIM YKPN, Jakarta, 2009.
Adi Nugroho. 2005. Analisis dan Perancangan Sistem Informasi Dengan
Metodologi Berorientasi Objek. Informatika. Bandung.
Alan Dennis dkk. 2010. Systems Analysis and Design with UML Version 2.0. An
Object-Oriented Approach. Edisi Kedua. America : John Wiley & Sons
Alatas, Husein. 2013.Responsive Web Design dengan PHP dan Bootstrap.
Yogyakarta : Lokomedia.
Ardhana, YM Kusuma. 2013.Pemrograman PHP Codeigniter Black Box.
Jakarta : Jasakom.
Basuki, Awan Pribadi. 2010.Membagun Web Berbasis PHP dengan Framework
Codeihniter. Yogyakarta : Lokomedia.
Daqiqil, Ibnu. 2011.Framework Codeigniter Sebuah Panduan dan Best Practice.
Pekanbaru.
Hasibuan, Malayu. 2005.Manajemen Dasar, Pengertian dan Masalah. Jakarta :
PT Bumi Aksara.
Kendall, Kenneth E and Kendall, Julie E. 2010.System Analysis and Design. New
Delhi : PHI Learning.
112
Pressman, Roger S, 2002, Rekayasa Perangkat Lunak: Pendekatan Praktisi (Buku
I). Yogyakarta : Andi.
Prof. Gunadi, M. Sc, Ak, Ph.D. 2013. Panduan Komprehensif Pajak Penghasilan.
Jakarta : Bee Media.
Pudjo Widodo, Herlawati. 2011. Menggunakan UML. Bandung: Informatika.
Ridwan, dan Sunarto. 2009. Pengantar Statistika untuk Penelitian Pendidikan,
Sosial, Ekonomi, dan Bisnis. Bandung: Alfabeta.
Robbins, Stephen P., 1994, Teori Organisasi, Struktur, Desain dan Aplikasi, edisi
3, Arcan,Donaldson.
Tatang, Hasanudin. 2013. Pajak Penghasilan Pemotongan/Pemungutan. Surabaya
: dbuku.
Waluyo, 2008. Akutansi Pajak. Jakarta: Salemba Empat.
Waluyo, Didik Budi. 2009. Petunjuk Pemotongan Pajak Penghasilan Pasal
21/26. Jakarta: Salemba Empat.
A-1
A. Lampiran Hasil Kuisioner Penelitian I
Penyebaran kuisioner pertama menggunakan metode Simple Random
Sampling, yaitu metode pengambilan sampel dari anggota populasi secara acak
tanpa memperhatikan strata (tingkatan) dalam anggota populasi tersebut. Hal ini
dilakukan apabila jumlah anggota populasi dianggap homogen (sejenis). (Ridwan,
2009:58).
Perhitungan hasil kuisioner pertama menggunakan metode skala Guttman
yaitu skala kumulatif. Jika seseorang menyisahkan pertanyaan yang berbobot
lebih berat, ia akan mengiyakan pertanyaan yang kurang berbobot lainnya. Skala
Guttman mengukur suatu dimensi saja dari suatu variable yang multidimensi.
Skala Guttman disebut juga skala Scalogram yang sangat baik untuk meyakinkan
peneliti tentang kesatuan dimensi dan sikap atau sifat yang diteliti, yang sering
disebut attribute universal. Pada skala Guttman terdapat beberapa pertanyaan
yang diurutkan secara hirarkis atau melihat sikap tertentu seseorang. Jika
seseorang menyatakan tidak pada pernyataan sikap tertentu dari sederetan sikap
pernyataan itu, ia akan menyatakan lebih dari tidak pada pernyataan berikutnya
(Ridwan, 2009:90).
Hasil Penyebaran kuisioner dengan hasil aturan perhitungan sebagai
berikut:
Pertanyaan dengan menggunakan dua opsi jawaban, memiliki nilai
a =2
b = 1
Pertanyaan dengan menggunakan tiga opsi jawaban, memiliki nilai
A-2
a = 2
b = 1
c = 0
Range :
100 – 76 = Sangat Perlu
75 – 51 = Perlu
50 – 26 = Biasa
25 – 0 = Tidak perlu
1. Pada divisi apa posisi anda dalam perusahaan?
a. Finance b. Accounting c. Human Resource Development (HRD)
Table 0.1 Divisi dalam perusahaan
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Finance
20
5 (25%)
Perlu*
*Poin tingkat
jawaban
b. Accounting 15 (75%)
c. HRD 0 (0%)
A-3
2. Apa anda terlibat dengan proses penghitungan pajak penghasilan PPh 21
Karyawan di perusahaan anda?
a. Ya b.Tidak
Table 0.2 Keterlibatan dalam penghitungan PPh 21
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Ya
20
20 (100%)
Sangat Perlu
b. Tidak 0 (0%)
3. Apakah selama ini anda melakukan proses penghitungan PPh 21 secara
manual?
a. Ya b. Tidak
Table 0.3 Proses Penghitungan PPh 21 secara manual
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Ya
20
20 (100%)
Sangat Perlu
b. Tidak 0 (0%)
4. Apakah anda mengalami kesulitan ketika melakukan penghitungan PPh 21
secara manual?
a. Ya b. Tidak
A-4
Table 0.4 Kesulitan penghitungan PPh21 secara manual
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Ya
20
20 (100%)
Sangat Perlu b. Tidak 0 (0%)
c. Biasa saja 0 (0%)
5. Apakah anda butuh suatu aplikasi penghitungan pajak PPh 21 di
perusahaan anda?
a. Butuh b. Tidak Butuh
Table 0.5 Kebutuhan akan aplikasi penghitungan PPh21
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Butuh
20
20 (100%)
Sangat Perlu
b. Tidak Butuh 0 (0%)
6. Apakah anda pernah menggunakan aplikasi penghitungan pajak
sebelumnya?
a. Pernah b. Tidak Pernah
Table 0.6 Pernah menggunakan aplikasi pajak
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Pernah 20 20 (100%) Sangat Perlu
A-5
b. Tidak Pernah 0 (0%)
7. Seberapa pentingkah aplikasi penghitungan PPh 21 bagi pekerjaan anda?
a. Penting b. Biasa saja c. Tidak Begitu Penting
Table 0.7 Tingkat kepentingan aplikasi bagi pekerjaan
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Penting
20
20 (100%)
Sangat Perlu
b. Biasa saja 0 (0%)
c. Tidak begitu
penting
0 (0%)
8. Apakah anda ingin aplikasi PPh 21 yang simple dan mudah digunakan?
a. Ya b. Tidak
Table 0.8 Keinginan menggunakan aplikasi PPh21
Jawaban
Responden
Jumlah Responden
Jumlah
Penjawab (%)
Hasil
a. Ya
20
20 (100%)
Sangat Perlu b. Ragu-ragu 0 (0%)
c. Tidak 0 (0%)
A-6
Kesimpulan
1. Divisi yang paling banyak mengisi kuisioner ini adalah divisi accounting
mencapai 75%.
2. Tingkat keterlibatan dalam proses penghitungan pajak penghasilan PPh 21
mencapai 100% (sangat perlu).
3. Responden selama ini yang melakukan proses penghitungan secara manual
mencapai 100% . (Sangat perlu)
4. Jumlah responden yang mengalami kesulitan ketika melakukan proses
penghitungan PPh21 mencapai 100% (Sangat perlu).
5. Responden yang membutuhkan aplikasi penghitungan pajak PPh21
mencapai 100% (Sangat perlu).
6. Jumlah responden yang pernah memakai aplikasi penghitungan PPh21
mencapai 100% (Sangat perlu).
7. Responden yang menyatakan pentingnya suatu aplikasi pajak PPh21 bagi
pekerjaan mereka mencapai 100% (Sangat perlu).
8. Responden yang menginginkan aplikasi penghitugnan PPh21 yang simple
dan mudah digunakan mencapai 100% (Sangat perlu).
A-7
Kuisioner Penelitian I
Gambar 0.1 Kuisioner Penelitian I.a
A-8
Gambar 0.2 Kuisioner Penelitian I.b
A-9
B. Lampiran Hasil Kuisioner Penelitian II
Responden berasal dari para karyawan yang berhubungan dengan pajak
seperti divisi payroll, finance, dan accounting. Responden yang terkumpul
sebanyak 15 orang. Pada kuesioner tersebut terdapat 4 jenjang pilihan yang terdiri
dari, SB (sangat baik), B (baik), TB (tidak baik), dan STB (sangat tidak baik).
Table 0.9 Tabel Pengujian Sistem menggunakan Kuesioner
UJI COBA
SB B TB STB
Dalam Persentase (%)
1. User Interface Aplikasi, layout, warna,
form, link menu
60 20 20 0
2. Kemudahan Dalam Penggunaan
Aplikasi (user friendly) 33,3 46,7 13,3 6,7
3. Kelengkapan Konten Menu Yang Ada
Pada Aplikasi 33.3 46,7 20 0
4. Kemudahan Dalam Memahami
Pertanyaan Pada Fasilitas Konsultasi 46,7 20 20 13,3
5. Saran Yang Diberikan Pada Hasil
Konsultasi 46,7 40 13,3 0
Kesimpulan :
1. User Interface Aplikasi
9 responden memilih SB, 3 responden memilih B, 3 responden
memilih TB, dan 0 responden memilih STB.
A-10
2. User Friendly
5 responden memilih SB, 7 responden memilih B, 2 responden
memilih TB, dan 1 responden memilih STB.
3. Kelengkapan Konten Menu
5 responden memilih SB, 7 responden memilih B, 3 responden
memilih TB, dan 0 responden memilih STB.
4. Kemudahan Dalam Memahami Pertanyaan
7 responden memilih SB, 3 responden memilih B, 3 responden
memilih TB, dan 2 responden memilih STB.
5. Saran Yang Diberikan
7 responden memilih SB, 6 responden memilih B, 2 responden
memilih TB, dan 0 responden memilih STB.
A-11
Gambar 0.3 Kuisioner Penelitian II
A-12
C. SK Dosen Pembimbing Skripsi
Gambar 0.4 SK Dosen Pembimbing
A-13
D. Source Code
Table 0.10 Pengkodean pada model
1 <?php
class mdl_ptkp extends CI_Model {
private $tbl_name= 'tbl_ptkp';
function __construct(){
parent::__construct();
}
function get_dataMarital(){
$this->db->order_by('ket_ptkp','asc');
$this->db->where('status_ptkp', 1);
$this->db->where('kode_ptkp', 'NKH');
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_dataTanggungan(){
$this->db->order_by('ket_ptkp','asc');
$this->db->where('status_ptkp', 1);
$this->db->where('kode_ptkp', 'ANK');
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_data_group($sortField, $groupField){
$this->db->order_by($sortField,'asc');
$this->db->group_by($groupField);
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_data_where($sortField, $whereField, $value){
$this->db->order_by($sortField,'asc');
$this->db->where($whereField, $value);
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function get_data_where_group($sortField, $whereField, $value,
$groupField){
$this->db->order_by($sortField,'asc');
$this->db->where($whereField, $value);
$this->db->group_by($groupField);
$query=$this->db->get($this->tbl_name);
A-14
return $query->result();
}
function record_count() {
return $this->db->count_all($this->tbl_name);
}
function fetch_admin($limit, $start,$groupField) {
$this->db->group_by($groupField);
$this->db->limit($limit, $start);
$query = $this->db->get($this->tbl_name);
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
/*function add_data(){
$data=array(
'nama_pt' => $this->input->post('txtname')
);
$this->db->insert($this->tbl_name,$data);
}*/
function add_data($param){
$arrayParam = explode("~", $param);
$data=array(
'username' => $arrayParam[0],
'password' => md5($arrayParam[1])
);
$this->db->insert($this->tbl_name,$data);
return $this->db->_error_message();
}
/*function upd_data_where($whereField,$value){
$data=array(
'nama_pt' => $this->input->post('txtname')
);
$this->db->where($whereField, $value);
$this->db->update($this->tbl_name, $data);
}*/
function upd_data_where($whereField,$value,$param){
$arrayParam = explode("||", $param);
$data=array(
A-15
'nama_pt' => strtoupper($arrayParam[0])
);
$this->db->where($whereField, $value);
$this->db->update($this->tbl_name, $data);
return $this->db->_error_message();
}
/*function get_data_like($sortField){
$this->db->order_by($sortField,'asc');
$this->db->like('nama_pt', $this->input-
>post('txtSearch'));
$query=$this->db->get($this->tbl_name);
return $query->result();
}*/
function get_data_like($sortField, $param){
$this->db->order_by($sortField,'asc');
$this->db->like('username', $param);
$query=$this->db->get($this->tbl_name);
return $query->result();
}
function delete_data($deleteField, $value){
$this->db->where($deleteField, $value);
$this->db->delete($this->tbl_name);
return $this->db->_error_message();
}
}
?>
Table 0.11Pengkodean pada Controller
1 <?php
class ctrl_login extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
A-16
* So any other public methods not prefixed with an underscore
will
* map to /index.php/welcome/<method_name>
* @see http://codeigniter.com/user_guide/general/urls.html
*/
function __construct(){
parent::__construct();
$this->load->helper(array('url','form'));
}
public function index()
{
$this->load->view('template/media');
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
<?php
class ctrl_home extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore
will
* map to /index.php/welcome/<method_name>
* @see http://codeigniter.com/user_guide/general/urls.html
*/
var $template = 'template/media';
function __construct(){
parent::__construct();
$this->load->helper(array("html","form","url","text"));
$this->load->model('mdl_ptkp');
$this->load->library("pagination");
$this->load->library('trackback');
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
}
public function index(){
A-17
$data['content'] = 'vw_home';
$data["tampil"] = $this->mdl_ptkp->get_dataMarital();
$data["tampil02"] = $this->mdl_ptkp-
>get_dataTanggungan();
$this->load->view($this->template,$data);
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
Table 0.12 Pengkodean pada View
<script type="text/javascript">
var pengBruto =0;
var pengBersih =0;
var totPemotongan =0;
var pengBersihSetahun =0;
var ptkp =0;
var pkp =0;
var pph21 =0;
var layer1 =0;
var layer2 =0;
var layer3 =0;
var layer4 =0;
var npwp ="";
var gapok =0;
var tTranport =0;
var tMakan =0;
var tJabatan =0;
var bonus =0;
var tLain =0;
var thr =0;
var lain =0;
var bJabatan =0;
var tHaritua =0;
var pensiun =0;
var potLain =0;
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
A-18
function clearField(){
window.location.reload(true);
}
function checkNum(fieldId){
var temp = 0;
temp =
parseInt(document.getElementById(""&fieldId).value);
if (temp="NaN"){
$("#"&fieldId).after('<span
class="error"> Numeric only!</span>');
document.getElementById(""&fieldId).value =
temp;
}
}
function initial(){
layer1 =0;
layer2 =0;
layer3 =0;
layer4 =0;
npwp ="";
npwp =
document.getElementById("txt_npwp").value;
gapok =
parseInt(document.getElementById("txt_gapok").value);
tTransport =
parseInt(document.getElementById("txt_t_transport").value);
tMakan =
parseInt(document.getElementById("txt_t_makan").value);
tJabatan =
parseInt(document.getElementById("txt_t_jabatan").value);
tLain =
parseInt(document.getElementById("txt_t_lainnya").value);
bonus =
parseInt(document.getElementById("txt_bonus").value);
thr =
parseInt(document.getElementById("txt_thr").value);
lain =
parseInt(document.getElementById("txt_lain").value);
pengBruto =
gapok+tTransport+tMakan+tJabatan+tLain+bonus+thr+lain;
bJabatan = parseInt(pengBruto)*5/100;
if (bJabatan<=500000){
A-19
bJabatan=bJabatan;
}else{
bJabatan=500000;
}
tHaritua =
parseInt(document.getElementById("txt_t_haritua").value);
pensiun =
parseInt(document.getElementById("txt_pensiun").value);
potLain =
parseInt(document.getElementById("txt_pot_lain").value);
totPemotongan = bJabatan+tHaritua+pensiun+potLain;
pengBersih = pengBruto-totPemotongan;
pengBersihSetahun = pengBersih*12;
ptkp =
parseInt(document.getElementById("slc_tanggungan").value)+parseInt(do
cument.getElementById("slc_status_kawin").value)
pkp = pengBersihSetahun-ptkp
if (pkp>500000000){
layer1 = pkp*30/100;
}
if (pkp>250000000 & pkp <=500000000){
layer2 = pkp*25/100;
}
if (pkp>50000000 & pkp <=250000000){
layer3 = pkp*15/100;
}
if (pkp>=50000000){
layer4 = pkp*5/100;
}
pph21 =
parseInt(layer1)+parseInt(layer2)+parseInt(layer3)+parseInt(layer4);
pph21 = pph21/12;
if (npwp==""){
pph21 = pph21*20/100;
}
document.getElementById("txt_b_jabatan").value =
numberWithCommas(Math.round(bJabatan));
document.getElementById("txt_peng_bruto").value =
numberWithCommas(pengBruto);
document.getElementById("txt_peng_bersih").value =
numberWithCommas(pengBersih);
document.getElementById("txt_ptkp").value =
numberWithCommas(ptkp);
A-20
document.getElementById("txt_pph21").value =
numberWithCommas(Math.round(pph21));
//$("#txt_pot_lain").after('<span
class="error"> Numeric only!</span>')
}
/*
function simulate(){
var pengBruto="";
pengBruto = ;
}/*
jQuery(function($){
$("#txt_npwp").mask("999-99-9999");
});*/
</script>
<script>
jQuery(function($){
$("#txt_npwp").mask("99 - 999 - 999 - 9 - 999 - 999");
$("#txt_tahun_pajak01").mask("9999");
$("#txt_tahun_pajak02").mask("9999");
});
$(document).ready(function () {
//called when key is pressed in textbox
$("#txt_gapok").keypress(function (e) {
//if the letter is not digit then display error and don't type
anything
if (e.which != 8 && e.which != 0 && (e.which < 48 ||
e.which > 57)) {
//display error message
//$("#errmsg").html("Digits
Only").show().fadeOut("slow");
return false;
}
});
});
</script>
<div class="jqm-block-content">
<h3>Identitas</h3>
<div class="ui-field-contain">
<label for="text-basic">NPWP</label>
<input type="text" name="txt_npwp" id="txt_npwp"
value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">Nama WP</label>
<input type="text" name="txt_nama" id="txt_nama"
value="" data-mini="true" data-clear-btn="true">
A-21
</div>
<div class="ui-field-contain">
<label for="text-basic">Pekerjaan</label>
<input type="text" name="txt_pekerjaan"
id="txt_pekerjaan" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">No. Telp</label>
<input type="text" name="txt_telp" id="txt_telp"
value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">Tahun Pajak</label>
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a">
<input type="text"
name="txt_tahun_pajak01" id="txt_tahun_pajak01" value="" data-
mini="true" data-clear-btn="true">
</div>
<div class="ui-block-b">
<p
align="center"><label>s/d</label></p>
</div>
<div class="ui-block-c">
<input type="text"
name="txt_tahun_pajak02" id="txt_tahun_pajak02" value="" data-
mini="true" data-clear-btn="true">
</div>
</div>
</div>
<div class="ui-field-contain">
<label for="text-basic">Status Kawin</label>
<fieldset data-role="controlgroup" data-type="horizontal"
data-mini="true">
<select name="slc_status_kawin"
id="slc_status_kawin">
<option value="0">---</option>
<?php
error_reporting(E_ERROR);
foreach($tampil as $row):
echo "
<option value='".$row-
>value_ptkp."'>".$row->ket_ptkp."</option>
";
endforeach;
?>
A-22
</select>
</fieldset>
</div>
<div class="ui-field-contain">
<label for="text-basic">Tanggungan</label>
<fieldset data-role="controlgroup" data-type="horizontal"
data-mini="true">
<select name="slc_tanggungan"
id="slc_tanggungan">
<option value="0">---</option>
<?php
error_reporting(E_ERROR);
foreach($tampil02 as $row02):
echo "
<option
value='".$row02->value_ptkp."'>".$row02->ket_ptkp."</option>
";
endforeach;
?>
</select>
</fieldset>
</div>
</div>
<div class="jqm-block-content">
<h3>Penghasilan</h3>
<div class="ui-field-contain">
<label for="text-basic">Gaji Pokok</label>
<input type="text" name="txt_gapok" id="txt_gapok"
value="" data-mini="true" data-clear-btn="true"
onBlur="checkNum('txt_gapok')">
</div>
<div class="ui-field-contain">
<label for="text-basic">T.Transport</label>
<input type="text" name="txt_t_transport"
id="txt_t_transport" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">T.Makan</label>
<input type="text" name="txt_t_makan"
id="txt_t_makan" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">T.Jabatan</label>
<input type="text" name="txt_t_jabatan"
id="txt_t_jabatan" value="" data-mini="true" data-clear-btn="true">
A-23
</div>
<div class="ui-field-contain">
<label for="text-basic">T.Lainnya</label>
<input type="text" name="txt_t_lainnya"
id="txt_t_lainnya" value="" data-mini="true" data-clear-btn="true">
</div>
<br>
<div class="ui-field-contain">
<label for="text-basic">Bonus</label>
<input type="text" name="txt_bonus" id="txt_bonus"
value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">THR</label>
<input type="text" name="txt_thr" id="txt_thr" value=""
data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">Lain-lain</label>
<input type="text" name="txt_lain" id="txt_lain"
value="" data-mini="true" data-clear-btn="true">
</div>
</div>
<div class="jqm-block-content">
<h3>Pengeluaran</h3>
<div class="ui-field-contain">
<label for="text-basic">B.Jabatan</label>
<input type="text" disabled="disabled"
name="txt_b_jabatan" id="txt_b_jabatan" value="" data-mini="true" data-
clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">T.Hari Tua</label>
<input type="text" name="txt_t_haritua"
id="txt_t_haritua" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">Iuran Pensiun</label>
<input type="text" name="txt_pensiun" id="txt_pensiun"
value="" data-mini="true" data-clear-btn="true">
</div>
A-24
<div class="ui-field-contain">
<label for="text-basic">Potongan Lain</label>
<input type="text" name="txt_pot_lain" id="txt_pot_lain"
value="" data-mini="true" data-clear-btn="true">
</div>
<!--
<div data-role="collapsibleset" data-theme="a" data-content-
theme="a" data-collapsed-icon="arrow-r" data-expanded-icon="arrow-
d">
<div data-role="collapsible">
<h3>Jamsostek</h3>
<p>
<div class="ui-field-contain">
<label for="text-
basic">J.Kecelakaan Kerja</label>
<input type="text" name="text-
basic" id="text-basic" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-
basic">J.Kematian</label>
<input type="text" name="text-
basic" id="text-basic" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">J.Hari
Tua</label>
<input type="text" name="text-
basic" id="text-basic" value="" data-mini="true" data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-
basic">J.Ditanggung</label>
<input type="text" name="text-
basic" id="text-basic" value="" data-mini="true" data-clear-btn="true">
</div>
</p>
</div>
</div>
-->
</div>
<div class="ui-grid-solo">
<div class="ui-block-a">
A-25
<div class="ui-body ui-body-a ui-corner-all">
<div class="ui-field-contain">
<label for="text-basic">Penghasilan
Bruto</label>
<input type="text" disabled="disabled"
name="txt_peng_bruto" id="txt_peng_bruto" value="" data-mini="true"
data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">Penghasilan
Bersih</label>
<input type="text" disabled="disabled"
name="txt_peng_bersih" id="txt_peng_bersih" value="" data-mini="true"
data-clear-btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">PTKP</label>
<input type="text" disabled="disabled"
name="txt_ptkp" id="txt_ptkp" value="" data-mini="true" data-clear-
btn="true">
</div>
<div class="ui-field-contain">
<label for="text-basic">Pph 21
Terhutang</label>
<input type="text" disabled="disabled"
name="txt_pph21" id="txt_pph21" value="" data-mini="true" data-clear-
btn="true">
</div>
</div>
</div>
</div>
<br>
<fieldset class="ui-grid-b">
<div class="ui-block-a">
<a href="#" class="ui-btn ui-btn-b"
onClick="initial()">Hitung</a>
</div>
<div class="ui-block-b">
<a href="#popupDialog" data-rel="popup" data-position-
to="window" data-transition="pop" class="ui-btn ui-btn-b">Reset</a>
</div>
<div data-role="popup" id="popupDialog" data-overlay-
theme="b" data-theme="b" data-dismissible="false" style="max-
width:400px;">
<div data-role="header" data-theme="a">
A-26
<h1>Reset input?</h1>
</div>
<div role="main" class="ui-content">
<h3 class="ui-title">Anda yakin untuk
menghapus semua data input?</h3>
<a href="<?php echo base_url();?>" class="ui-btn
ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-transition="flow"
onClick="clearField()">Ya</a>
<a href="#" class="ui-btn ui-corner-all ui-shadow
ui-btn-inline ui-btn-b" data-rel="back">Tidak</a>
</div>
</div>
<div class="ui-block-c"><input type="button" value="E-SPT"
data-mini="true" onClick="a()"></div>
</fieldset>
<div class="ui-grid-d">
<div class="ui-block-a"></div>
<div class="ui-block-b"></div>
<div class="ui-block-c"></div>
<div class="ui-block-d"></div>
<div class="ui-block-e" align="right"><a
href="#top">Top</a></div>
</div>
<!--
/*
document.getElementById("txt_npwp").value="";
document.getElementById("txt_nama").value="";
document.getElementById("txt_pekerjaan").value="";
document.getElementById("txt_telp").value="";
document.getElementById("txt_tahun_pajak01").value="";
document.getElementById("txt_tahun_pajak02").value="";
document.getElementById("slc_status_kawin").selectedIndex=1;
document.getElementById("slc_tanggungan").selectedIndex=1;
*/
/*if (gapok="NaN"){
$("#txt_gapok").after('<span
class="error"> Numeric only!</span>');
document.getElementById("txt_gapok").value = gapok;
}
if (tTransport="NaN"){
$("#txt_t_transport").after('<span
class="error"> Numeric only!</span>');
document.getElementById("txt_t_transport").value = "";
}
if (tMakan="NaN"){
$("#txt_t_makan").after('<span
class="error"> Numeric only!</span>');
document.getElementById("txt_t_makan").value = "";
A-27
}
if (tJabatan="NaN"){
$("#txt_t_jabatan").after('<span
class="error"> Numeric only!</span>');
document.getElementById("txt_t_jabatan").value = "";
}
if (tLain="NaN"){
$("#txt_t_lainnya").after('<span
class="error"> Numeric only!</span>');
document.getElementById("txt_t_lainnya").value = "";
}
if (bonus="NaN"){
$("#txt_bonus").after('<span
class="error"> Numeric only!</span>');
document.getElementById("txt_bonus").value = "";
}
if (thr="NaN"){
$("#txt_thr").after('<span class="error"> Numeric
only!</span>');
document.getElementById("txt_thr").value = "";
}
if (lain="NaN"){
$("#txt_lain").after('<span class="error"> Numeric
only!</span>');
document.getElementById("txt_lain").value = "";
}
else{
}*/
-->