Pembuatan aplikasi penghitungan pajak penghasilan pasal 21 orang pribadi berdasarkan undang-undang nomor 36 Tahun 2008

(1)

OLEH:

AGUS PRAMONO PUTRA 107091002863

PROGRAM SARJANA (S1) KOMPUTER PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA


(2)

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


(3)

(4)

iii


(5)

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


(6)

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


(7)

vi 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


(8)

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


(9)

viii

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


(10)

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


(11)

x

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


(12)

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


(13)

xii

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


(14)

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


(15)

xiv

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


(16)

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


(17)

xvi

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


(18)

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


(19)

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


(20)

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


(21)

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.


(22)

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.


(23)

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


(24)

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


(25)

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.


(26)

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.


(27)

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


(28)

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


(29)

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.


(30)

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).


(31)

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.


(32)

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


(33)

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.


(34)

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%


(35)

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


(36)

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


(37)

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


(38)

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.


(39)

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


(40)

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


(41)

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


(42)

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.


(43)

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.


(44)

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


(45)

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


(46)

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


(47)

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.


(48)

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):


(49)

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


(50)

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.


(51)

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.


(52)

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) :


(53)

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).


(54)

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


(55)

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).


(56)

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


(57)

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


(58)

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


(59)

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


(60)

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).


(61)

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


(62)

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


(63)

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


(64)

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).


(65)

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.


(66)

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.


(67)

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


(68)

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.


(69)

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


(70)

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


(71)

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


(72)

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


(73)

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.


(1)

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="" 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">


(2)

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-name="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-name="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-name="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-name="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">


(3)

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;">


(4)

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">&nbsp;&nbsp;Numeric only!</span>');

document.getElementById("txt_gapok").value = gapok; }

if (tTransport="NaN"){

$("#txt_t_transport").after('<span

class="error">&nbsp;&nbsp;Numeric only!</span>');

document.getElementById("txt_t_transport").value = ""; }

if (tMakan="NaN"){

$("#txt_t_makan").after('<span

class="error">&nbsp;&nbsp;Numeric only!</span>');


(5)

A-27

}

if (tJabatan="NaN"){

$("#txt_t_jabatan").after('<span

class="error">&nbsp;&nbsp;Numeric only!</span>');

document.getElementById("txt_t_jabatan").value = ""; }

if (tLain="NaN"){

$("#txt_t_lainnya").after('<span

class="error">&nbsp;&nbsp;Numeric only!</span>');

document.getElementById("txt_t_lainnya").value = ""; }

if (bonus="NaN"){

$("#txt_bonus").after('<span

class="error">&nbsp;&nbsp;Numeric only!</span>'); document.getElementById("txt_bonus").value = ""; }

if (thr="NaN"){

$("#txt_thr").after('<span class="error">&nbsp;&nbsp;Numeric only!</span>');

document.getElementById("txt_thr").value = ""; }

if (lain="NaN"){

$("#txt_lain").after('<span class="error">&nbsp;&nbsp;Numeric only!</span>');

document.getElementById("txt_lain").value = ""; }

else{ }*/ -->


(6)