Anda di halaman 1dari 158

PERANCANGAN SISTEM INFORMASI PENERBITAN FAKTUR PAJAK

PENJUALAN SEPEDA MOTOR HONDA BERBASIS WEB


MENGGUNAKAN FRAMEWORK CODEIGNITER
DI MERDEKA MOTOR BANDUNG

TUGAS AKHIR

Diajukan sebagai salah satu syarat untuk kelulusan


Jenjang Strata Satu (S1)
pada Program studi Sistem Informasi

Oleh :

MUSTAFID KHUMAEDY
351461001

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER


INDONESIA MANDIRI
BANDUNG
2016
LEMBAR PENGESAHAN

PERANCANGAN SISTEM INFORMASI PENERBITAN FAKTUR PAJAK


PENJUALAN SEPEDA MOTOR HONDA BERBASIS WEB
MENGGUNAKAN FRAMEWORK CODEIGNITER
DI MERDEKA MOTOR BANDUNG

DESIGNING OF HONDA MOTORCYCLE’S TAX INVOICE PUBLISHING


INFORMATION SYSTEM BY WEB BASED CODEIGNITER FRAMEWORK
AT MERDEKA MOTOR BANDUNG

Oleh:

MUSTAFID KHUMAEDY
351461001

Tugas Akhir ini telah diterima dan disahkan


untuk memenuhi persyaratan mencapai gelar

SARJANA SISTEM INFORMASI

Pada

PROGRAM STUDI SISTEM INFORMASI


SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER
INDONESIA MANDIRI

Bandung, Maret 2016


Disahkan oleh

Ketua Program Studi, Dosen Pembimbing,

Hendra Gunawan, S.T., M.KOM. Yudhi W. Arthana R., S.T., M.Kom.


NIDN: 0423037202 NIDN: 04061180045
SURAT PERNYATAAN

Dengan ini saya menyatakan bahwa:

1. Tugas akhir ini adalah asli dan belum pernah diajukan untuk mendapatkan

gelar akademik, baik di Sekolah Tinggi Manajemen Informatika dan Komputer

Indonesia Mandiri maupun perguruan tinggi lainnya

2. Tugas akhir ini murni merupakan karya penelitian saya sendiri dan tidak

menjiplak karya pihak lain. Dalam hal ada bantuan atau arahan dari pihak lain

maka telah saya sebutkan identitas dan jenis bantuannya di dalam lembar

ucapan terima kasih

3. Seandainya ada karya pihak lain yang ternyata memiliki kemiripan dengan

karya saya ini, maka hal ini adalah di luar pengetahuan saya dan terjadi tanpa

kesengajaan dari pihak saya

Pernyataan ini saya buat dengan sesungguhnya dan apabila di kemudian hari

terbukti adanya kebohongan dalam pernyataan ini, maka saya bersedia menerima

sanksi akademik sesuai norma yang berlaku di Sekolah Tinggi Manajemen

Informatika dan Komputer Indonesia Mandiri.

Bandung, Maret 2016

Yang Membuat Pernyataan

Mustafid Khumaedy
351461001

i
ABSTRAK

Penelitian ini bertujuan menentukan perancangan sistem informasi penerbitan


faktur Pajak penjualan sepeda motor Honda berbasis web menggunakan framework
CodeIgniter di Merdeka Motor Bandung.
Metode perancangan yang digunakan adalah metode prototype sedangkan metode
pengumpulan data yang digunakan adalah dengan cara observasi, wawancara dan
dilengkapi dengan studi pustaka yang berhubungan dengan pokok permasalahan.
Dari penelitian yang telah dilakukan, ditemukan bahwa di perusahaan ini telah
menggunakan sistem komputerisasi, tetapi masih menggunakan Ms. Excel yang dapat
menyebabkan adanya data ganda dan manipulasi data. Oleh karena itu, dibuatlah sistem
informasi baru yang berbasis web dan menggunakan framework CodeIgniter
Saran yang diberikan adalah: 1) merancang sistem informasi baru yang dapat
membantu pembuatan faktur pajak dengan benar, dan 2) menerapkan sistem yang
terkomputerisasi agar dapat membantu pekerjaan dengan efektif, efisien dan tepat guna.

Kata kunci: Sistem Informasi, Faktur Pajak Penjualan, Framework, CodeIgniter

ii
ABSTRACT

This study aimed to determine designing of Honda motorcycles’ sales tax invoice
publishing information system using Web Based CodeIgniter Framework at Merdeka
Motor Bandung.
Designing method used by prototype, and data collection methods used were by
observations, interviews, and completed by literature study which had relation to the
main subjects.
From research conducted, it could be found that computerized information system
have been using there, but still using Ms. Excel. It might be causing the double and
manipulated data. Therefore new information system was made using web based
CodeIgniter Framework.
Suggestions given were by: 1) designing new information system which could
publish tax invoice well, and 2) applying computerized system which helped the jobs
effectively and efficiently.

Keywords: Information System, Tax Invoice Publishing, Framework, CodeIgniter

iii
UCAPAN TERIMAKASIH

Dengan mengucap syukur Alhamdulillah, penulis dapat menyelesaikan

laporan tugas akhir ini. Laporan tugas akhir ini di ajukan untuk memenuhi dan

melengkapi salah satu syarat akademik dalam kelulusan jenjang Strata Satu (S1)

jurusan Sistem Informasi pada Sekolah Tinggi Manajamen Informatika dan

Komputer Indonesia Mandiri.

Penyusunan tugas akhir ini tidak lepas dari dukungan dan bimbingan dari

berbagai pihak, maka pada kesempatan ini penulis ingin menyampaikan rasa

terimakasih yang sebesar-besarnya kepada:

1. Bapak Ivan Aries Setiawan, Dr., selaku Ketua Sekolah Tinggi Manajemen

Informatika & Komputer Indonesia Mandiri (STMIK-IM).

2. Bapak Hendra Gunawan, S.T., M.Kom selaku Ketua program studi Sistem

Informasi STMIK-IM.

3. Bapak Yudhi W. Artahana R., S.T., M.Kom. selaku Dosen pembimbing yang

selalu meluangkan waktu dan tenaga dalam memberikan bimbingan, masukan

dan saran-sarannya.

4. Sahabat saya yang biasa dipanggil Vie, yang menemani dari awal proses studi

hingga selesainya laporan ini disusun.

5. Segenap Dosen, staf dan karyawan STMIK-IM yang telah mendidik dan

membantu dalam proses studi berlangsung.

6. Tentunya teruntuk kedua orang tua yang selalu mendoakan dan menemani

sekaligus menjadi dorongan dalam menyelesaikan laporan ini.

iv
7. Rekan-rekan di STMIK-IM yang seringkali menjadi tempat sharing, baik yang

berhubungan dengan materi perkuliahan maupun lainnya.

Akhir kata, saya berharap semoga dengan selesainya laporan Tugas Akhir

ini dapat memberikan manfaat bagi semua pihak serta menambah wawasan bagi

pemikiran kita semua. Terimakasih.

v
KATA PENGANTAR

Dengan mengucap Alhamdulillah, sebagai wujud syukur ke hadirat Allah SWT,

yang senantiasa memberikan rahmat dan karunia-NYA.

Tugas Akhir ini, berjudul PERANCANGAN SISTEM INFORMASI

PENERBITAN FAKTUR PAJAK PENJUALAN SEPEDA MOTOR HONDA

BERBASIS WEB MENGGUNAKAN FRAMEWORK CODEIGNITER DI MERDEKA

MOTOR BANDUNG, disusun untuk melengkapi tahapan akhir studi yang dijalani di

Sekolah Tinggi Manajemen Informatika dan Komputer Indonesia Mandiri.

Tugas akhir ini berisi mengenai perancangan sebuah sistem informasi

penerbitan faktur pajak penjualan sepeda motor Honda, yang meliputi analisis dari

sistem yang sedang berjalan hingga proses pembuatan sistem baru yang diusulkan

dengan harapan dapat mengatasi berbagai masalah yang ada pada sistem yang sedang

digunakan.

Dengan segala keterbatasan tentunya diharapkan sistem ini dapat bermanfaat

bagi berbagai pihak, khususnya bagi penulis sendiri.

Bandung, Maret 2016


Penulis

Mustafid Khumaedy
351461001

vi
DAFTAR ISI

SURAT PERNYATAAN .......................................................................................... i


ABSTRAK ................................................................................................................. ii
ABSTRACT ............................................................................................................... iii
UCAPAN TERIMAKASIH ..................................................................................... iv
KATA PENGANTAR ............................................................................................... vi
DAFTAR ISI ............................................................................................................. vii
DAFTAR GAMBAR ................................................................................................. x
DAFTAR TABEL ..................................................................................................... xii

BAB I PENDAHULUAN .......................................................................................... 1


1.1. Latar Belakang ..................................................................................................... 1
1.2. Identifikasi Masalah ............................................................................................. 2
1.3. Maksud dan Tujuan Penelitian ............................................................................ 3
1.3.1. Maksud Penelitian ........................................................................................... 3
1.3.2. Tujuan Penelitian ............................................................................................ 3
1.4. Batasan Masalah .................................................................................................. 4
1.5. Metode Penelitian ................................................................................................ 4
1.5.1. Metode Pengumpulan Data ............................................................................. 5
1.5.2. Metode Perancangan Perangkat Lunak ........................................................... 5
1.6. Sistematika Penulisan .......................................................................................... 7

BAB II LANDASAN TEORI ................................................................................... 9


2.1. Pengertian Perancangan ....................................................................................... 9
2.2. Konsep Dasar Sistem ........................................................................................... 9
2.2.1. Karakteristik Sistem ........................................................................................ 10
2.2.2. Klasifikasi Sistem ........................................................................................... 12
2.3. Konsep Dasar Informasi ...................................................................................... 14
2.3.1. Kualitas Informasi ........................................................................................... 14
2.3.2. Siklus Informasi .............................................................................................. 16
2.3.3. Nilai Informasi ................................................................................................ 16
vii
2.4. Konsep Dasar Sistem Informasi .......................................................................... 17
2.4.1. Komponen Sistem Informasi .......................................................................... 17
2.5. Analisis dan Perancangan Berorientasi Objek (Object Oriented Analysis and
Object Oriented Design) ....................................................................................... 18
2.6. Flowmap .............................................................................................................. 29
2.7. Konsep Dasar Basis Data ..................................................................................... 30
2.7.1. Komponen Basis Data .................................................................................... 30
2.7.2. Bahasa Basis Data ........................................................................................... 32
2.8. Konsep Dasar Faktur ........................................................................................... 33
2.9. Konsep Dasar Pajak ............................................................................................. 33
2.9.1. Fungsi Pajak .................................................................................................... 35
2.9.2. Wajib Pajak ..................................................................................................... 36
2.9.3. Konsep Dasar Pajak Pertambahan Nilai (PPN) .............................................. 37
2.9.3.1. Karakteristik Pajak Pertambahan Nilai .......................................................... 38
2.9.3.2. Kelebihan dan Kekurangan Pajak Pertambahan Nilai (PPN) ........................ 40
2.9.3.3. Tipe Pajak Pertambahan Nilai ....................................................................... 41
2.10. Konsep Dasar Faktur Pajak................................................................................. 42
2.10.1. Fungsi Faktur Pajak ........................................................................................ 42
2.10.2. Jenis Faktur Pajak ........................................................................................... 43
2.11. Konsep Dasar Framework ................................................................................. 46
2.11.1. Framework CodeIgniter ................................................................................. 47
2.12. Konsep Dasar PHP (Hypertext Preprocessor) ................................................. 49
2.13. MySQL ............................................................................................................ 50
2.14. Web Server dan Web Browser ......................................................................... 51
2.15. Tinjauan Organisasi ......................................................................................... 53
2.15.1. Sejarah Singkat ............................................................................................... 53
2.15.2. Visi dan Misi ................................................................................................... 54
2.15.3. Struktur Organisasi ......................................................................................... 55
2.15.4. Fungsi dan Tugas ............................................................................................ 55

BAB III PEMBAHASAN ......................................................................................... 57


3.1. Analisis Sistem .................................................................................................... 57
viii
3.2. Analisis Masalah .................................................................................................. 57
3.3. Analisis Sistem yang Sedang Berjalan ................................................................ 58
3.3.1. Analisis Dokumen ........................................................................................... 59
3.4. Analisis Sistem yang Diusulkan .......................................................................... 62
3.4.1. Analisis Kebutuhan Non Fungsional .............................................................. 62
3.4.1.1. Analisis Kebutuhan Perangkat Keras ............................................................ 62
3.4.1.1.1. Kebutuhan Perangkat Keras Developer .................................................... 63
3.4.1.1.2. Kebutuhan Perangkat Keras User ............................................................. 63
3.4.1.2. Analisis Kebutuhan Perangkat Lunak ............................................................ 64
3.4.1.2.1. Kebutuhan Perangkat Lunak Developer ................................................... 64
3.4.1.2.2. Kebutuhan Perangkat Lunak User ............................................................ 64
3.4.1.3. Analisis user .................................................................................................. 65
3.4.2. Analisis Kebutuhan Fungsional ...................................................................... 65
3.4.2.1. Use Case Diagram Pada Sistem yang Diusulkan .......................................... 65
3.4.2.2. Activity Diagram Pada Sistem yang Diusulkan ............................................. 75
3.4.2.3. Class Diagram Pada Sistem yang Diusulkan ................................................ 82
3.4.2.4. Sequence Diagram Pada Sistem yang Diusulkan .......................................... 83
3.4.2.5. Deployment Diagram Pada Sistem yang Diusulkan ...................................... 87
3.4.2.6. Analisis Atribut Class .................................................................................... 88
3.4.3. Perancangan Antar Muka ................................................................................ 91
3.4.3.1. Struktur Menu ................................................................................................ 91
3.4.3.2. Rancangan Antar Muka ................................................................................. 91
3.4.4. Implementasi Sistem ....................................................................................... 93
3.4.5. Pengujian Sistem ............................................................................................. 96

BAB IV KESIMPULAN DAN SARAN .................................................................. 99


4.1. Kesimpulan .......................................................................................................... 99
4.2. Saran .................................................................................................................... 99

DAFTAR PUSTAKA ................................................................................................ 101


LAMPIRAN

ix
DAFTAR GAMBAR

Gambar 1.1 : Prototype Paradigma .................................................................. 6


Gambar 2.1 : Kualitas Informasi ...................................................................... 15
Gambar 2.2 : Siklus Informasi ......................................................................... 16
Gambar 2.3 : Simbol-simbol pada Flowmap .................................................... 29
Gambar 2.4 : Format Kode dan Nomor Seri Faktur Pajak ............................... 44
Gambar 2.5 : Perbandingan CodeIgniter dengan Normal PHP ........................ 48
Gambar 2.6 : Logo Merdeka Motor Bandung .................................................. 54
Gambar 3.1 : Flowmap Sistem yang Sedang Berjalan ..................................... 58
Gambar 3.2 : Surat Pesanan Kendaraan (SPK) ................................................ 60
Gambar 3.3 : Kartu NPWP ............................................................................... 61
Gambar 3.4 : Use Case Diagram SI faktur pajak yang diusulkan ................... 66
Gambar 3.5 : Activity Diagram Data User yang Diusulkan ............................. 75
Gambar 3.6 : Activity Diagram Data Penjual yang Diusulkan ......................... 76
Gambar 3.7 : Activity Diagram Data Pembeli yang Diusulkan ....................... 77
Gambar 3.8 : Activity Diagram Data Barang yang Diusulkan ......................... 78
Gambar 3.9 : Activity Diagram Data Nomor Faktur yang Diusulkan .............. 79
Gambar 3.10 : Activity Diagram Buat Faktur yang Diusulkan .......................... 80
Gambar 3.11 : Activity Diagram Cetak Laporan yang Diusulkan ..................... 81
Gambar 3.12 : Class Diagram Sistem Penerbitan Faktur Pajak yang
Diusulkan..................................................................................... 82
Gambar 3.13 : Sequence Diagram Login ........................................................... 83
Gambar 3.14 : Sequence Diagram Kelola User ................................................. 84
Gambar 3.15 : Sequence Diagram Kelola Penjual ............................................. 84
Gambar 3.16 : Sequence Diagram Kelola Pembeli ............................................ 85
Gambar 3.17 : Sequence Diagram Kelola Barang ............................................. 85
Gambar 3.18 : Sequence Diagram Kelola Nomor Faktur .................................. 86
Gambar 3.19 : Sequence Diagram Cetak Faktur Pajak ...................................... 86
Gambar 3.20 : Sequence Diagram Cetak Laporan ............................................. 87
Gambar 3.21 : Deployment Diagram Pada Sistem yang Diusulkan .................. 87
Gambar 3.22 : Struktur Menu Sistem Informasi Penerbitan Faktur Pajak ......... 91
x
Gambar 3.23 : Rancangan antar muka halaman home ....................................... 91
Gambar 3.24 : Rancangan antar muka halaman kelola data .............................. 92
Gambar 3.25 : Rancangan antar muka halaman buat faktur pajak ..................... 92
Gambar 3.26 : Rancangan antar muka halaman cetak laporan .......................... 93
Gambar 3.27 : Tampilan halaman home ............................................................ 93
Gambar 3.28 : Tampilan halaman form login .................................................... 94
Gambar 3.29 : Tampilan halaman kelola data .................................................... 94
Gambar 3.30 : Tampilan halaman tambah data .................................................. 95
Gambar 3.31 : Tampilan halaman edit data ....................................................... 95
Gambar 3.32 : Tampilan halaman kelola faktur pajak ....................................... 96

xi
DAFTAR TABEL

Tabel 2.1 : Simbol-simbol pada Use Case ................................................... 22


Tabel 2.2 : Simbol-simbol pada Class Diagram .......................................... 23
Tabel 2.3 : Simbol-simbol pada Activity Diagram ....................................... 24
Tabel 2.4 : Simbol-simbol pada Sequence Diagram .................................... 25
Tabel 2.5 : Simbol-simbol pada State Chart Diagram ................................. 26
Tabel 2.6 : Simbol-simbol pada Collaboration Diagram ............................. 27
Tabel 2.7 : Simbol-simbol pada Component Diagram ................................. 27
Tabel 2.8 : Simbol-simbol pada Deployment Diagram ................................ 28
Tabel 3.1 : Spesifikasi kebutuhan perangkat keras developer ...................... 63
Tabel 3.2 : Spesifikasi kebutuhan perangkat keras user ............................... 63
Tabel 3.3 : Spesifikasi kebutuhan perangkat lunak developer ..................... 64
Tabel 3.4 : Spesifikasi kebutuhan perangkat lunak user .............................. 65
Tabel 3.5 : Tabel tb_user .............................................................................. 88
Tabel 3.6 : Tabel tb_penjual ......................................................................... 88
Tabel 3.7 : Tabel tb_pembeli ........................................................................ 89
Tabel 3.8 : Tabel tb_barang .......................................................................... 89
Tabel 3.9 : Tabel tb_nofaktur ....................................................................... 89
Tabel 3.10 : Tabel tb_buatfaktur .................................................................... 90
Tabel 3.11 : Tabel Pengujian Sistem .............................................................. 96

xii
BAB I

PENDAHULUAN

1.1. Latar Belakang

Ilmu pengetahuan dan teknologi saat ini semakin berkembang, terutama pada

teknologi informasi yang sangat berpengaruh di berbagai bidang, dan kebutuhan akan

informasi untuk menyajikan data yang lengkap sangatlah diperlukan oleh suatu oganisasi

baik formal maupun nonformal.

Komputer sesuai dengan fungsinya adalah alat untuk mengelola data menjadi

informasi yang benar, akurat, tepat guna dan tepat waktu. Hal ini sudah menjadi

kebutuhan yang bersifat khusus, terutama bagi perusahaan dan instansi baik milik

pemerintah maupun milik swasta. Dalam penggunaannya komputer telah berkembang

menjadi sebuah sarana komunikasi yang paling cepat untuk saat ini, sehingga menjadi

sebuah elemen yang sangat penting di setiap kehidupan masyarakat, termasuk dalam

proses perolehan informasi pada suatu perusahaan.

Perusahaan umumnya memiliki divisi keuangan yang harus memiliki kinerja yang

baik. Salah satu cara agar divisi keuangan bisa memiliki kinerja yang baik adalah dengan

menggunakan suatu sistem informasi yang terkomputerisasi. Sistem informasi keuangan

dalam hal ini sistem informasi faktur pajak penjualan, merupakan salah satu sistem

informasi yang sangat vital pada suatu perusahaan yang penerapannya bisa menggunakan

komputer. Sehingga informasi yang disampaikan dapat tersimpan secara otomatis di

dalam komputer dan memudahkan dalam pembuatan laporan faktur pajak penjualan baik

harian, mingguan, bulanan bahkan tahunan.

1
2

Sistem penerbitan faktur pajak penjualan yang digunakan oleh Bagian Pajak di

PT. Mitradeka Mandiri atau sering disebut Merdeka Motor Bandung masih menggunakan

cara manual, yaitu dengan membuat faktur pajak penjualan menggunakan Microsoft

Excel tanpa sistem yang lebih terkomputerisasi.

Dalam pelaksanaannya, banyak pula hambatan dan masalah yang sering dihadapi,

diantaranya dalam proses pembuatan faktur pajak, user seringkali sulit dalam mencari

dan mengecek nomor faktur pajak yang telah dibuat sebelumnya, kemudian dalam proses

penyimpanan sering timbul data ganda karena tidak ada kata kunci yang membedakan

untuk item data yang sama, sehingga berpengaruh terhadap pelaporan pajak di bulan

berikutnya karena penyelesaian laporan pajak pada bulan berjalan membutuhkan waktu

yang cukup lama.

Berdasarkan permasalahan-permasalahan yang telah diuraikan di atas, maka

dibuatlah penelitian dengan judul “Perancangan Sistem Informasi Penerbitan Faktur

Pajak Penjualan Sepeda Motor Honda Berbasis Web Menggunakan Framework

CodeIgniter di Merdeka Motor Bandung” yang diharapkan mampu menjadi solusinya.

1.2. Identifikasi Masalah

Berdasarkan latar belakang yang telah diuraikan diatas, terdapat beberapa

permasalahan yang timbul, yaitu:

1. Masih menggunakan sistem manual, yaitu dengan Microsoft Excel tanpa sistem

yang lebih terkomputerisasi.

2. User tidak dapat mencari dan mengecek nomor faktur pajak yang telah terdaftar

secara efektif karena belum menggunakan sistem yang baik sehingga rentan

terjadi manipulasi pada data tersebut.


3

3. Sering timbul permasalahan dalam penyimpanan data, karena tidak ada kata

kunci yang membedakan untuk item data yang sama.

4. Sistem yang digunakan saat ini belum bisa menyelesaikan pekerjaan dengan

cepat dan akurat sehingga untuk membuat laporan pajak membutuhkan waktu

yang cukup lama.

1.3. Maksud dan Tujuan Penelitian

Penelitian ini memiliki maksud dan tujuan sebagai berikut:

1.3.1. Maksud Penelitian

Maksud dari penelitian ini adalah membangun sistem informasi penerbitan faktur

pajak di Merdeka Motor Bandung berbasis Web untuk mempermudah proses kerja,

khususnya staf bagian pajak di Merdeka Motor Bandung dalam pembuatan dan pelaporan

faktur pajak.

1.3.2. Tujuan Penelitian

Adapun tujuan penelitian ini adalah sebagai berikut:

1. Bagaimana merancang suatu sistem yang terkomputerisasi untuk membuat

faktur pajak.

2. Bagaimana agar user dapat mencari dan mengecek faktur pajak yang telah

dibuat secara efektif, sehingga dapat mengurangi resiko terjadinya manipulasi

data.
4

3. Bagaimana pembuatan sebuah kata kunci dalam sistem informasi faktur pajak

untuk membedakan item-item yang sama pada suatu data, sehingga tidak terjadi

lagi permasalahan dalam penyimpanan data yang telah dibuat.

4. Bagaimana merancang suatu sistem yang bisa digunakan dengan cepat dan

akurat, sehingga tidak memerlukan waktu yang lama untuk menyelesaikan

suatu pekerjaan seperti pembuatan laporan pajak.

1.4 Batasan Masalah

Agar masalah yang diteliti tidak menyimpang dari inti penelitian, maka diperlukan

adanya suatu batasan masalah dalam perancangan Sistem Informasi Penerbitan Faktur

Pajak di Merdeka Motor Bandung, yaitu:

1. Sistem yang dirancang hanya Sistem Informasi Penerbitan Faktur Pajak Penjualan

Sepeda Motor Honda.

2. Hanya membahas sistem informasi faktur pajak penjualan dan tidak membahas

mengenai faktur pajak pembelian sepeda motor serta pelaporan PPn dan PPh baik

perorangan maupun lembaga.

3. Sistem yang dirancang bukan untuk digunakan dalam sistem online.

1.5. Metode Penelitian

Metode penelitian yang digunakan dalam penelitian ini menggunakan metode

deskriptif kualitatif, hal ini berhubungan dengan data yang digunakan tidak berupa angka-

angka tetapi berupa kualitas bentuk verbal dan visual (teks dan gambar). Sehingga

penelitian ini bersifat deskriptif, maka data-data digambarkan dengan kata-kata atau

kalimat yang dipisahkan menurut kategori untuk memperoleh simpulan (Arikunto,


5

2005:193). Metode ini memungkinkan penulis memberikan penjelasan, argument, dan

interpretasi dalam menganalisis data.

1.5.1. Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini, yaitu:

1. Studi Pustaka, yaitu teknik yang dilakukan dengan cara mempelajari buku-buku,

dokumen, serta sumber bacaan lain yang berhubungan dengan penelitian.

2. Interview atau Wawancara, yaitu bentuk komunikasi dua arah yang memungkinkan

pewawancara mendapatkan informasi secara langsung dengan narasumber yang

kompeten. Dalam hal ini wawancara dilakukan dengan Bagian Administrasi Pajak

yaitu yang langsung menangani faktur pajak penjualan Honda.

3. Observasi, yaitu teknik yang dilakukan dengan cara mengamati secara langsung

kegiatan yang terjadi sehingga dapat memberikan gambaran yang lebih jelas

mengenai aktifitas di Bagian Administrasi Pajak.

4. Dokumentasi, yaitu melakukan dokumentasi informasi berupa dokumen dan arsip

yang digunakan untuk penelitian.

1.5.2. Metode Perancangan Perangkat Lunak

Metode penelitian dan perancangan yang digunakan adalah Metode Prototype.

Metode ini dapat memberikan ide bagi seorang analis sistem bagaimana menyajikan

gambaran suatu model sistem secara lengkap, sehingga dapat dilihat baik dari sisi

tampilan maupun teknik prosedural yang akan dibangun. Atas dasar itulah metode yang

digunakan dalam penelitian ini adalah metode Prototype.


6

Menurut Pressman (2002:39) agar model Prototype ini berhasil dengan baik,

maka perlu mendefinisikan aturan-aturan main terlebih dahulu, yaitu pelanggan dan

pengembang harus setuju bahwa Prototype dibangun untuk mendefinisikan kebutuhan.

Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat lunak aktual

direkayasa dengan kualitas dan implementasi yang sudah ditentukan.

Menurut Pressman (2002:41) rincian tahapan-tahapan yang akan dikerjakan

dalam proses Prototyping, diantaranya:

1. Mendengarkan pelanggan, meliputi identifikasi kebutuhan, yaitu analisis terhadap

kebutuhan user.

2. Membangun, memperbaiki market, meliputi:

a. Quick design, berfokus pada pembuatan aspek-aspek perangkat lunak yang

Nampak bagi pelanggan/pemakai (contohnya pembuatan format input dan

output).

b. Build Prototype, yaitu pembuatan perangkat lunak Prototype termasuk pengujian

dan penyempurnaan.

3. Uji pelanggan, mengendalikan market, meliputi:

a. Evaluasi, yaitu mengevaluasi Prototype dan mengevaluasi analisis kebutuhan

user.

b. Implementasi.

Gambar 1.1 Prototype Paradigma (Pressman, 2002:41)


7

Prototype bisa menjadi metode yang efektif bagi rekayasa perangkat lunak karena

biaya yang digunakan relatif tidak terlalu besar, tidak memerlukan waktu yang lama, dan

paling baik digunakan untuk penerapan pada sistem yang kecil.

1.6. Sistematika Penulisan

Untuk mempermudah dalam pemahaman materi dan pembahasan, penulisan

laporan ini terdiri dari beberapa bab. Berikut ini adalah uraian singkat mengenai bab-bab

tersebut:

BAB I PENDAHULUAN

Bab pendahuluan berisi latar belakang penelitian, identifikasi masalah, maksud dan

tujuan penelitian, batasan masalah, metode penelitian dan sistematika penulisan

BAB II LANDASAN TEORI

Bab ini menjelaskan definisi dari topik dan pokok permasalahan dan teori-teori yang

relevan dengan masalah yang akan diteliti. Landasan teori dapat pula berisi uraian tentang

data sekunder yang diperoleh dari publikasi ilmiah, atau hasil penelitian pihak lain yang

dapat dijadikan pertimbangan dan kaidah-kaidah teoritis, serta asumsi-asumsi yang

memungkinkan terjadinya penalaran untuk menjawab masalah yang diteliti.

BAB III PEMBAHASAN

Bab ini membahas mengenai tinjauan organisasi, uraian prosedur, dan analisis sistem

yang digunakan sebagai dasar pembuatan aplikasi yang akan dibangun. Selain itu, bab

ini membahas mengenai pemodelan sistem yang menggambarkan muatan dan aliran
8

informasinya menggunakan Flowmap dan UML. Serta berisi tentang perancangan sistem

dan perancangan antar muka serta implementasi dan pengujian aplikasi sistem informasi

penerbitan Faktur Pajak di Merdeka Motor Bandung.

BAB IV KESIMPULAN DAN SARAN

Berisi mengenai kesimpulan dari pembahasan pada bab-bab sebelumnya dan beberapa

saran yang diharapkan bermanfaat sebagai bahan pertimbangan untuk pengembangan

sistem nantinya.
BAB II

LANDASAN TEORI

2.1. Pengertian Perancangan

Menurut Subhan (2012:109) Perancangan adalah proses pengembangan

spesifikasi baru berdasarkan rekomendasi hasil analisis sistem. Dalam tahap ini harus

dapat dipastikan bahwa semua prasyaratan untuk menghasilkan sistem informasi dapat

dipenuhi. Hasil sistem yang dirancang harus sesuai dengan kebutuhan pemakai untuk

mendapatkan informasi. Hal lain yang perlu diperhatikan adalah bahwa sistem yang

disusun harus dapat dikembangkan lagi.

2.2. Konsep Dasar Sistem

Menurut Yakub (2012:1) sistem adalah sekelompok elemen-elemen yang

terintegrasi dengan tujuan yang sama untuk mencapai tujuan.

Terdapat dua pendekatan yang dapat digunakan untuk mendefinisikan sebuah

sistem, yaitu:

1. Pendekatan Prosedur

Pendekatan prosedur didefinisikan sebagai suatu urutan-urutan yang tepat dari

tahapan-tahapan instruksi yang menerangkan apa yang harus dikerjakan, siapa yang

mengerjakan, kapan dikerjakan dan bagaimana mengerjakannya.

2. Pendekatan Elemen

Pendekatan elemen didefinisikan sebagai sistem bagian-bagian yang saling

berkaitan yang beroperasi bersama untuk mencapai beberapa sasaran atau maksud. Dapat

9
10

juga diartikan bahwa sistem sebagai suatu komponen atau variabel yang terorganisir,

saling berinteraksi, saling bergantung, satu sama lain dan terpadu.

Tantra (2012:1) mendefinisikan sistem adalah entitas atau satuan yang terdiri dari

dua atau lebih komponen atau subsistem (sistem yang lebih kecil) yang saling terhubung

dan terkait untuk mencapai suatu tujuan.

Sehingga untuk menganalisis dan merencanakan sebuah sistem, seorang analis

atau perancang sistem harus mengerti komponen-komponen atau subsistem-subsistem

dari sistem yang sedang dianalisis.

2.2.1. Karakteristik Sistem

Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu, yaitu mempunyai

komponen-komponen, batasan sistem, lingkungan luar sistem, penghubung, masukan,

keluaran, pengolah dan sasaran atau tujuan.

1. Komponen Sistem

Komponen-komponen sistem atau elemen sistem dapat berupa suatu subsistem

atau bagian-bagian dari sistem yang saling bekerjasama membentuk suatu kesatuan.

Setiap subsistem mempunyai karakteristik dari sistem yang menjalankan suatu fungsi

tertentu dan mempengaruhi proses sistem secara keseluruhan.

2. Batasan Sistem

Batas sistem merupakan pemisah antara suatu sistem dengan daerah diluar sistem.

Sistem yang berada diluar sistem disebut lingkungan. Adanya batas sistem ini

memungkinkan suatu sistem dipandang sebagai suatu kesatuan dan menunjukkan ruang

lingkup dari sistem tersebut. Ada 8 elemen lingkungan yang mempengaruhi sistem, yaitu
11

pemasok, pelanggan, serikat pekerja, masyarakat keuangan, pemegang saham atau

pemilik, pesaing atau competitor, pemerintah dan masyarakat global.

3. Lingkungan Luar Sistem

Lingkungan luar dari suatu sistem adalah apapun di luar batas dari sistem yang

mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat menguntungkan

dan juga merugikan. Lingkungan luar yang menguntungkan merupakan energi dari

sistem dengan demikian harus dijaga dan dipelihara. Sedangkan lingkungan luar yang

merugikan harus ditahan dan dikendalikan, jika tidak maka akan mengganggu

kelangsungan hidup dari sistem tersebut.

4. Penghubung Sistem

Merupakan media yang menghubungkan antara satu subsistem dengan subsistem

lainnya. Melalui penghubung ini kemungkinan sumber-sumber daya mengalir dari satu

subsistem ke subsistem lainnya hingga dapat membentuk satu kesatuan.

5. Masukan Sistem

Segala sesuatu yang dimasukan ke dalam sebuah sistem untuk diproses. Input

dapat berupa data, baik berupa karakter-karakter huruf maupun berupa numerik. Data ini

diproses dengan metode-metode tertentu dan akan menghasilkan output yang berupa

informasi. Informasi yang dihasilkan dapat berupa laporan atau report maupun solusi

dari proses yang telah dijalankan.

6. Keluaran Sistem

Keluaran (output) diterima dari proses yang dihasilkan. Hasil dari proses bias

berupa informasi, laporan, gambar dan grafik, keluaran juga dapat sebagai masukan untuk

subsistem yang lain.


12

7. Pengolahan Sistem

Semua bahan yang dimasukkan ke dalam sistem diolah atau diproses menjadi

output, yaitu informasi yang berguna bagi pemakainya. Suatu sistem dapat mempunyai

suatu bagian pengolah atau sistem itu sendiri sebagai pengolahnya. Kegiatan yang ada

dalam proses pengolahan dapat meliputi, mencatat, mengklasifikasi, menghitung,

menganalisis, membuat hipotesis dan perkiraan-perkiraan, menarik kesimpulan, serta

membuat keputusan.

8. Tujuan Sistem

Setiap sistem yang dibangun pasti mempunyai sasaran atau tujuan tertentu.

Tujuan ini merupakan pedoman sistem untuk melaksanakan tugas serta menjadi pemacu

untuk mencapai hasil tertentu. Setiap sistem tidak mempunyai tujuan yang identik sama

persis, namun secara umum tujuan dari sebuah sistem adalah sebagai berikut:

a) Untuk mendukung organisasi dari sistem tersebut.

b) Untuk menentukan pengambilan keputusan dari sistem.

c) Untuk menentukan arah kegiatan dari operasi perusahaan.

2.2.2. Klasifikasi Sistem

Sistem merupakan suatu bentuk integrasi antara satu komponen dengan

komponen lainnya. Karena sistem memiliki tujuan berbeda untuk setiap kasus yang

terjadi yang ada didalam sistem tersebut, oleh karena itu sistem dapat diklasifikasikan

kedalam beberapa sudut pandang, yaitu:


13

1. Sistem Abstrak (abstract system)

Sistem abstrak merupakan suatu sistem yang terdiri dari suatu susunan yang

teratur dari beberapa gagasan yang memiliki ketergantungan satu sama lain dan sistem

ini tidak tampak secara fisik.

2. Sistem Fisik (physical system)

Sistem fisik merupakan sistem yang ada secara fisik dan memiliki seperangkat

unsur yang secara bersama-sama melakukan operasi untuk mencapai tujuan bersama.

3. Sistem Terbuka (open system) dan Sistem Tertutup (close system)

a. Sistem Terbuka (open system)

Sistem ini merupakan sistem yang memungkinkan terjadinya pertukaran bahan,

informasi atau energi dengan lingkungan luar subsistem yang lainnya dan dipengaruhi

oleh lingkungan.

b. Sistem Tertutup (close system)

Sistem ini merupakan sistem yang tidak terjadi pertukaran bahan, informasi atau

energi dengan lingkungannya.

4. Sistem Tertentu (deterministic system) dan Sistem Tak Tertentu (probalistic

system)

a. Sistem Tertentu (deterministic system)

Sistem ini beroperasi dengan tingkah laku dan hasil yang dapat diprediksikan,

interaksi antar bagian dapat dideteksi dengan pasti sehingga keluarannya dapat

diramalkan.

b. Sistem Tak Tertentu (probalistic system)

Sistem ini merupakan sistem yang hasil atau kondisi masa depannya tidak dapat

diprediksikan karena mengandung unsur probabilitas.


14

5. Sistem Alamiah dan Sistem Buatan

a. Sistem Alamiah

Sistem alamiah adalah sistem yang terjadi karena pengaruh atau faktor alam.

b. Sistem Buatan

Sistem buatan adalah sistem yang dirancang dan dibuat oleh manusia.

2.3. Konsep Dasar Informasi

Sumber informasi adalah data. Data merupakan fakta-fakta dengan nilai-nilai

tertentu yang belum mempunyai arti bagi penggunanya. Untuk mempunyai arti maka data

tersbeut diolah dengan menggunakan sebuah pengolah data, data yang masih mentah

diolah dengan menggunakan prosedur-prosedur tertentu hingga menjadi sebuah

informasi yang berguna bagi penggunanya.

Informasi adalah data yang telah diolah menjadi bentuk yang lebih berarti dan

berguna bagi penerimanya untuk mengambil keputusan masa kini maupun masa yang

akan datang (Sutabri, 2012:1).

Menurut Mc Leod, Informasi sebagai data yang telah diolah menjadi bentuk yang

lebih berarti abgi penerimanya (Yakub, 2012:8). Alat pengolah informasi dapat meliputi

elemen komputer, elemen non komputer atau kombinasinya. Informasi mempunyai ciri

benar atau salah, baru, tambahan, dan korektif.

2.3.1. Kualitas Informasi

Mnurut Agus Mulyanto (2009:20) kualitas informasi adalah sejauh mana informasi secara

konsisten dapat memenuhi persyaratan dan harapan semua pihak yang membutuhkan
15

informasi tersebut untuk melakukan proses mereka. Kualitas informasi sangat

dipengaruhi oleh tiga hal seperti yang ditunjukkan pada gambar 2.1.

Akurat Relevan Tepat Waktu

Kualitas
Informasi

Gambar 2.1 Kualitas Informasi (Mulyanto, 2009:20)

1. Akurat (accuracy)

Informasi dikataka berkualitas jika seluruh kebutuhan informasi tersebut telah

tersampaikan (Completeness), seluruh pesan telah sesuai (Correctness), serta

pesan yang disampaikan sudah lengkap.

2. Relevan (relevancy)

Seberapa jauh tingkat relevansi informasi terhadap kenyataan kejadian masa lalu,

masa kini dan kejadian yang akan datang. Informasi yang berkualitas akan mampu

menunjukan relevansi antara kejadian masa lalu, masa kini dan masa depan sebagai

sebuah bentuk aktivitas yang kongkrit dan mampu dilaksanakan, dan dibuktikan oleh

siapa saja.

3. Tepat Waktu (timeliness)

Ketepatan waktu dan kecepatan dalam pengolahan yang menghasilkan informasi

harus sangat diperhatikan agar informasi yang dibutuhkan dapat disampaikan kepada

penerima tepat waktu.


16

2.3.2. Siklus Informasi

Data merupakan bentuk yang paling sederhana dan belum bisa menjadi suatu

informasi. Untuk menjadi sebuah informasi, data diolah dengan model tertentu.

Kemudian penerima menerima informasi tersebut untuk membuat keputusan dan

menghasilkan tindakan yang lain yang akan menjadi sejumlah data kembali. Data

tersebut akan ditangkap sebagai input diproses kembali dalam suatu model dan seterusnya

membentuk suatu siklus yang disebut siklus informasi (information cycle), seperti yang

ditunjukkan pada gambar 2.2.

Proses
(Model)

Data Informasi
(Input) (Output)
Basis
Data
Data Penerima
(Diterima)

Hasil Keputusan
Keputusan Tindakan

Gambar 2.2 Siklus Informasi (Sutabri, 2005:21)

2.3.3. Nilai Informasi

Menurut Sutarman (2012:14) nilai informasi ditentukan oleh lima hal, yaitu:

a. Untuk memperoleh pemahaman dan manfaat.

b. Untuk mendapatkan pengalaman.


17

c. Pembalajaran yang terakumulasi sehingga dapat diaplikasikan dalam pemecahan

masalah.

d. Untuk mengkekstrak implikasi kritis dan merefleksikan pengalaman masa lampau

yang menyediakan pengetahuan yang terorganisasi dengan nilai yang tinggi.

e. Informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya

mendapatkannya. Sebagian informasi tidak dapat ditaksir keuntungannya dengan nilai

uang, tetapi dapat ditaksir nilai efektivitasnya

2.4. Konsep Dasar Sistem Informasi

Pengertian sistem informasi menurut beberapa ahli:

Menurut Alter dalam Abdul Kadir (2014:9) sistem informasi adalah kombinasi

antar prosedur kerja, informasi, orang, dan teknologi informasi yang diorganisasikan

untuk mencapai tujuan dalam sebuah organisasi.

Pendapat lain menurut Subhan (2012:18) sistem informasi merupakan kumpulan

perangkat keras dan perangkat lunak computer serta perangkat manusia yang akan

mengolah data menggunakan perangkat keras memegang peranan yang penting dalam

sistem informasi.

2.4.1. Komponen Sistem Informasi

Sistem informasi merupakan sebuah susunan yang terdiri dari beberapa

komponen, yaitu sebagai berikut:

1. Blok masukan (input block), input memilki data masuk ke dalam sistem informasi,

juga metode-metode untuk menangkap data yang dimasukan.


18

2. Blok model (model block), blok ini terdiri dari kombinasi prosedur logika dan model

matematik yang akan memanipulasi data masukan dan data yang akan tersimpan di

basis data.

3. Blok keluaran (output block), produk sistem informasi adalah keluaran yang

merupakan informasi berkualitas dan dokumentasi yang berguna untuk semua

tingkat manajemen serta semua pemakai sistem.

4. Blok teknologi (technology block), blok ini digunakan untuk menerima input,

menyimpan, mengakses data, menghasilkan dan mengirimkan keluaran dari sistem

secara keseluruhan. Teknologi ini terdiri dari tiga bagian utama, yaitu: teknisi

(brainware), perangkat lunak (software) dan perangkat keras (hardware).

5. Blok basis data (database block), basis data merupakan kumpulan data yang saling

berhubungan dengan yang lainnya, tersimpan di perangkat keras komputer dan

digunakan perangkat lunak untuk memanipulasinya.

2.5. Analisis dan Perancangan Berorientasi Objek (Object Oriented Analysis and

Object Oriented Design)

Analisis berkaitan dengan pemahaman dan pemodelan aplikasi serta domain

dimana aplikasi beroperasi. Masukan awal fase analisis adalah pernyataan masalah yang

mendeskripsikan masalah yang ingin diselesaikan dan menyediakan pandangan

konseptual terhadap sistem yang diusulkan.

Analisis berorientasi objek mendefinisikan semua kelas yang relevan terhadap

masalah beserta operasi-operasi dan atribut-atribut yang diasosiasikan dengan kelas itu,

keterhubungan di kelas-kelas dan perilaku yang dimilikinya. Sasaran analisis berorientasi


19

objek adalah untuk mengembangkan model yang mendeskripsikan perangkat lunak yang

memenuhi sekelompok kebutuhan yang didefiniskan pemesan.

Analisis berorientasi objek menggunakan sejumlah pemodelan untuk memenuhi

sasaran. Model analisis akan mengekspresikan informasi, perilaku dan fungsi di dalam

konteks model objek.

1. Level Analisis Berorientasi Objek

Analisis sistem berorientasi objek dapat terjadi di banyak level abstraksi yang

berbeda, yaitu:

a. Level abstraksi enterprise. Level ini merupakan level tertinggi, analisis ini mencakup

seluruh enterprise sebagai satu sistem utuh.

b. Level abstraksi bisnis, analisis berusaha mendefinisikan kelas-kelas, objek-objek,

keterhubungan-keterhubungan, dan perilaku-perilaku yang memodel-kan seluruh

bisnis. Pada level enterprise dan bisnis dapat digabungkan dengan pendekatan

rekayasa proses bisnis (BPE – Bussiness Process Engineering).

c. Level abstraksi area bisnis, analisis mendeskripsikan model analisis di suatu area

bisnis tertentu.

d. Level abstraksi aplikasi, pemodelan berfokus pada kebutuhan pemesan yang spesifik

yang berpengaruh pada apikasi yang dibangun.

2. Metode Analisis Berorientasi Objek

Terdapat banyak metode analisis berorientasi objek. Masing-masing metode

memperkenalkan proses untuk analisis sistem, sejumlah diagram dan notasi di proses

yang memungkinkan rekayasawan menciptakan model analisis secara konsisten.

Beberapa metode analisis berorientasi objek yang popular adalah:


20

a. Metode Booch

b. Metode Rumbaugh (OMT – Object Modeling Technique)

c. Metode Jacobson (OOSE – Object Oriented Software Engineering)

d. Metode Coad dan Yourdon

e. Metode Wirfs-Brock

f. Metode Rational Unified Process

Perancangan berorientasi objek (OOD – Object Oriented Design) merupakan

disiplin yang lebih kompleks dibanding perancangan konvensional. Kompleksitas

muncul antara lain dari keberagaman yang dibahas di perancangan berorientasi objek.

Terdapat beberapa konsep perancangan penting, yaitu:

a. Abstraksi

b. Modularitas

c. Arsitektur Perangkat Lunak

d. Hirarki

e. Pengkapsulan dan Penyembunyian Informasi

Pemrograman berorientasi objek bekerja dengan baik dibarengi dengan Object-

oriented Analysis and Design Process (OOAD). Wampler (2001:2) mengatakan jika kita

membuat program berorientasi objek tanpa OOAD, ibarat membangun rumah tanpa

terlebih dahulu menganalisa apa saja yang dibutuhkan oleh rumah itu, tanpa perncanaan,

tanpa blueprint, tanpa menganalisis ruangan apa saja yang diperlukan, berapa besar

rumah yang akan dibangun dan sebagainya.

UML (Unified Modeling Language) adalah bahasa grafis untuk men-dokumentasi,

menspesifikasiskan, dan membangun sistem perangkat lunak. UML berorientasi objek,


21

menerapkan banyak level abstraksi, tidak bergantung proses pengembangan, tidak

bergantung bahasa dan teknologi.

UML diaplikasikan untuk maksud tertentu, antara lain untuk:

a. Merancang perangkat lunak.

b. Sarana komunikasi antara perangkat lunak dengan proses bisnis.

c. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan

sistem.

d. Mendokumentasikan sistem yang ada, proses-proses dan organisasinya.

Blok pembangaun utama UML adalah diagram. Diagram mengemukakan banyak

hal, penggunaan notasi yang terdefinisi baik dan ekspresif adalah penting pada proses

pengembangan perangkat lunak, yaitu:

a. Notasi standar memungkinkan pengembang mendeskripsikan skenario atau rumusan

arsitektur dan kemudian mengkomunikasikan secara tidak ambigu.

b. Notasi yang bagus membebaskan otak untuk berkonsentrasi pada masalah-masalah

yang lebih lanjut.

c. Notasi yang baik memungkinkan mengeliminasi keperluan pemeriksaan konsistensi

dan kebenaran keputusan-keputusan dengan menggunakan tool terotomatisasi.

Terdapat beberapa diagram yang digunakan dalam pemodelan menggunakan

UML, yaitu:

1. Use Case Diagram

Use case diagram adalah diagram yang menunjukan fungsionalitas suatu sistem

atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar dan menjelaskan
22

sistem secara fungsional yang terlihat user. Yang ditekankan dalam use case diagram

adalah “apa” yang diperbuat sistem dan bukan “bagaimana” sistem itu melakukannya.

Use case diagram juga menjelaskan manfaat sistem jika dilihat menurut

pandangan orang yang berada diluar sistem (aktor). Use case merupakan sebuah

pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar-daftar dan

sebagainya. Simbol-simbol pada use case dapat dilihat pada tabel 2.1.

Tabel 2.1 Simbo-Simbol pada Use Case

No Simbol Nama Keterangan


Actor adalah pengguna sistem.
Actor tidak terbatas hanya manusia
saja, jika sebuah sistem berkomu-
1 Actor nikasi dengan aplikasi lain dan
membutuhkan input atau mem-
berikan output, maka aplikasi
tersebut juga bisa dianggap sebagai
actor.
Deskripsi dari urutan aksi-aksi yang
2 Use Case ditampilkan sistem yang menghasil-
kan suatu hasil yang terukur bagi
suatu actor
Asosiasi digunakan untuk menghu-
3 Association bungkan actor dengan use case.

2. Class Diagram

Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka,

kolaborasi-kolaborasi, serta relasi-relasi.

Class diagram menggambarkan struktur dan deskripsi class, package dan object

beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi dan lain-lain.
23

Class memiliki tiga area pokok:

a. Nama dan stereotype

b. Atribut

c. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut:

a. Private, tidak dapat dipanggil dari luar class yang bersangkutan.

b. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang

mewarisinya.

c. Public, dapat dipanggil oleh siapa saja.

Simbol-simbol pada class diagram dapat dilihat pada tabel 2.2.

Tabel 2.2 Simbol-simbol pada Class Diagram

NO GAMBAR NAMA KETERANGAN


Hubungan dimana objek anak
(descendent) berbagi perilaku dan
1 Generalization
struktur data dari objek yang ada di
atasnya objek induk (ancestor).

Nary Upaya untuk menghindari asosiasi


2
Association dengan lebih dari 2 objek.

Himpunan dari objek-objek yang


3 Class berbagi atribut serta operasi yang
sama.
Deskripsi dari urutan aksi-aksi yang
ditampilkan sistem yang menghasil-
4 Collaboration
kan suatu hasil yang terukur bagi
suatu actor
24

NO GAMBAR NAMA KETERANGAN


Operasi yang benar-benar dilakukan
5 Realization
oleh suatu objek.
Hubungan dimana perubahan yang
terjadi pada suatu elemen mandiri
6 Dependency (independent) akan mempegaruhi
elemen yang bergantung padanya
elemen yang tidak mandiri
Apa yang menghubungkan antara
7 Association objek satu dengan objek lainnya

3. Activity Diagram

Activity diagram adalah tipe khusus dari state diagram yang memperlihatkan

aliran dari suatu aktivitas ke aktivitas lainnya dalam suatu sistem.

Diagram ini penting dalam pemodelan fungsi-fungsi suatu sistem dan memberi

tekanan pada aliran kendali antar objek.

Sebuah aktivitas dapat direalisasikan oleh suatu use case atau lebih. aktivitas

menggambarkan proses yang berjalan, sementara use case menggam-barkan bagaimana

aktor menggunakan sistem untuk melakukan aktivitas. Simbol-simbol pada activity

diagram dapat dilihat pada tabel 2.3.

Tabel 2.3 Simbol-simbol pada Activity Diagram

NO GAMBAR NAMA KETERANGAN

Memperlihatkan bagaimana masing-


1 Activity masing kelas antarmuka saling ber-
interaksi satu sama lain
25

NO GAMBAR NAMA KETERANGAN


State dari sistem yang mencerminkan
2 Action
eksekusi dari suatu aksi
Bagaimana objek dibentuk atau
3 Initial Node
diawali.
Activity
4 Bagaimana objek diakhiri
Final Node
Digunakan untuk menunjukkan ke-
giatan yang dilakukan secara parallel
5 Fork Node
atau untuk menggabungkan dua ke-
giatan paralel menjadi satu.

4. Sequence Diagram

Diagram ini menunjukkan interaksi yang terjadi antar objek. Diagram ini

merupakan pandangan dinamis terhadap sistem. Sequence diagram menekankan pada

basis keberurutan waktu dari pesan-pesan yang terjadi. Simbol-simbol pada sequence

diagram dapat dilihat pada tabel 2.4.

Tabel 2.4 Simbol-simbol pada Sequence Diagram

NO GAMBAR NAMA KETERANGAN


Objek entity, antarmuka yang saling
1 LifeLine
berinteraksi.
Spesifikasi dari komunikasi antar
2 Activation objek yang memuat informasi tentang
aktifitas yang terjadi
Spesifikasi dari komunikasi antar
objek yang memuat informasi-
3 Message
informasi tentang aktifitas yang
terjadi
26

5. State chart Diagram

Statechart diagram atau biasa juga disebut state diagram digunakan untuk

mendokumentasikan beragam kondisis/keadaan yang bisa terjadi terhadap sebuah class

dan kegiatan apa saja yang dapat merubah kondisi/keadaan tersebut. Simbol-simbol pada

state chart diagram dapat dilihat pada tabel 2.5.

Tabel 2.5 Simbol-simbol pada State Chart Diagram

NO GAMBAR NAMA KETERANGAN

Nilai atribut dan nilai link pada suatu


1 State waktu tertentu, yang dimiliki oleh
suatu objek.

Initial Pseudo Bagaimana objek dibentuk atau


2
State diawali

3 Final State Bagaimana objek diakhiri

Sebuah kejadian yang memicu


sebuah state objek dengan cara
4 Transition
memperbaharui satu atau lebih nilai
atributnya

Apa yang menghubungkan antara


5 Association
objek satu dengan objek lainnya.

Elemen fisik yang eksis saat aplikasi


6 Node dijalankan dan mencerminkan suatu
sumber daya komputasi.

6. Collaboration Diagram

Collaboration diagram yaitu diagram yang mengelompokan pesan pada

kumpulan sequence diagram menjadi sebuah diagram. Dalam diagram tersebut terdapat

method yang dijalankan antara objek yang satu dengan objek yang lainnya. Di diagram

kolaborasi ini, objek harus melakukan sinkronisasi pesan dengan serangkaian pesan-

pesan lainnya. Simbol-simbol pada collaboration diagram dapat dilihat pada tabel 2.6.
27

Tabel 2.6 Simbol-simbol pada Collaboration Diagram

SIMBOL NAMA KETERANGAN


Object merupakan instance
dari sebuah class dan
dituliskan tersusun secara
horizontal. Digambarkan
Object
sebagai sebuah class (kotak)
dengan nama obyek dida-
lamnya yang diawali dengan
sebuah titik koma
Aktor juga dapat berkomu-
nikasi dengan obyek, maka
Actor
aktor juga dapat diurutkan
sebagai kolom.
Digambarkan dengan anak
panah yang mengarah antar
obyek dan diberi label urutan
Message
nomor yang mengindikasikan
urutan komunikasi yang ter-
jadi antar obyek.

7. Component Diagram

Component diagram memperlihatkan kebergantungan sistem/perangkat lunak

pada komponen-komponen yang telah ada sebelumnya. Diagram ini berhubungan dengan

class diagram dimana komponen secara tipikal dipetakan ke dalam satu atau lebih kelas-

kelas, antarmuka-antramuka serta kolaborasi-kolaborasi. Simbol-simbol pada component

diagram dapat dilihat pada tabel 2.7.

Tabel 2.7 Simbol-simbol pada Component Diagram

SIMBOL NAMA KETERANGAN

Sebuah komponen me-


lambangkan sebuah enti-
Component
tas software dalam se-
buah sistem.
28

SIMBOL NAMA KETERANGAN


Notasinya adalah tanda
panah putus putus yang
diarahkan kepada
Depedency
komponen tempat
sebuah komponen itu
bergantung.

8. Deployment Diagram

Deployment diagram adalah diagram yang menggambarkan detail bagaimana

komponen tersebar (deploy) kedalam infrastruktur sistem, dimana komponen akan

terletak pada mesin, node, server atau piranti keras apa saja, bagaimana kemampuan

jaringan pada lokasi tersebut, spesifikasi server dan hal-hal lain yang bersifat fisikal.

Simbol-simbol pada deployment diagram dapat dilihat pada tabel 2.8.

Tabel 2.8 Simbol-simbol pada Deployment Diagram

SIMBOL NAMA KETERANGAN

Pada deployment diagram,


komponen yang ada dile-
Component takkan didalam node untuk
memastikan keberadaan
posisi mereka

Menggambarkan bagian-
Node bagian hardware dalam
sebuah sistem.

Sebuah association di-


gambarkan sebagai se-
buah garis yang meng-
Association hubungkan dua node yang
mengindikasikan jalur ko-
munikasi antar elemen
hardware.
29

“Object Oriented Analysis and Design merupakan kegiatan untuk menentukan

problem domain dan kemudian mencari pemecahan masalah yang logical dalam suatu

wadah, yaitu objek itu sendiri.

2.6. Flowmap

Suatu bagan yang menunjukkan arus data operasi secara menyeluruh dari suatu

sistem yang menjelaskan urutan-urutan prosedur yang terdapat dalam sistem. Gambaran

ini dinyatakan dengan adanya flowmap urutan proses kegiatan menjadi lebih jelas.

Flowmap disusun dengan simbol-simbol. Simbol ini digunakan sebagai alat bantu

menggambarkan proses di dalam program. Seperti yang dapat dilihat di gambar 2.3.

Gambar 2.3 Simbol-Simbol pada Flowmap (Jogiyanto, 2010:742)


30

2.7. Konsep Dasar Basis Data

Secara umum sebuah sistem basis data merupakan sistem yang terdiri atas

kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data di sebuah sistem

komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai

dan/atau program lain untuk mengakses dan memanipulasi file-file (tabel-tabel) tersebut.

Basis Data terdiri dari 2 kata, yaitu basis dan data. Basis dapat diartikan sebagai

markas/gudang, tempat berkumpul/bersarang, sedangkan Data adalah representasi fakta

dunia nyata yang mewakili suatu objek.

Basis Data dapat didefinisikan dalam beberapa sudut pandang, seperti:

a. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi

sedemikian rupa agar dapat dimanfaatkan kembali dengan cepat dan mudah.

b. Kumpulan data yang saling berhubungan yang disimpan secara bersama dan tanpa

pengulangan yang tidak perlu, untuk memenuhi berbagai kebutuhan.

2.7.1. Komponen Basis Data

Ditinjau dari komponen-komponennya, Sistem Basis Data akan terdiri dari:

1. Perangkat Keras (Hardware)

Perangkat keras yang dimaksud adalah perangkat komputer beserta perangkat

pendukung lainnya, yaitu:

a. Komputer (satu untuk yang stand-alone atau lebih dari satu untuk sistem jaringan).

b. Memori sekunder yang on-line (Harddisk).

c. Memori sekunder yang off-line (Tape atau Removable Disk untuk kperluan back up

data).
31

d. Media/perangkat komunikasi (untuk sistem jaringan).

Di dalam perangkat komputer semua proses pengolahan dan pengelolaan data

dilakukan.

2. Perangkat Lunak (Software)

Komponen kedua dalam sebuah sistem basis data adalah perangkat lunak

(software). Paling tidak ada 3 jenis perangkat lunak yang terlibat dalam pengelolaan dan

pengolahan basis data, yaitu:

a. Sistem Operasi (Operating System)

Selain fungsinya sebagai pengendali semua operasi di dalam sebuah komputer

atau jaringan, sistem operasi juga menyediakan layanan low level (berbahasa mesin) bagi

perangkat lunak apapun yang berjalan di atasnya untuk memanfaatkan semua sarana yang

tersedia.

b. Sistem Pengelola Basis Data (Database Management System atau DBMS)

DBMS merupakan perangkat lunak utama dalam pengelolaan dan pengolahan

Basis Data. DBMS menentukan bagaimana basis data dikelola dan diorganisasi secara

fisik dalam media penyimpanan perangkat komputer. Dalam jaringan komputer DBMS

berperan dalam menerapkan pengamanan (security), menjaga integritas basis data, dan

lain-lain.

c. Aplikasi Pengguna Basis Data

Merupakan perangkat lunak yang bersentuhan langsung dengan pengguna basis

data (end-user). Melalui perangkat lunak ini, pengguna (end-user) akan dengan mudah

(user-friendly) dan terarah dalam melakukan berbagai proses pengelolaan dan

pengolahan terhadap basis data.


32

2.7.2. Bahasa Basis Data

Perantara bagi pengguna dengan basis data dalam disk adalah DBMS, dengan cara

menggunakan bahasa khusus yang diterapkan oleh pihak pembuat DBMS, bahasa

tersebut terdiri atas sejumlah perintah (command) yang dapat dituliskan user untuk

kemudian diproses oleh DBMS untuk melakukan aksi tertentu. Contoh bahasa basis data

adalah SQL, dBase, dan lain-lain.

Sebuah bahasa basis data biasanya dapat dipilah ke dalam 2 kelompok, yaitu:

1. Data Definition Language (DDL)

Merupakan struktur yang menggambarkan desain basis data secara keseluruhan

yang dispesifikasikan dengan bahasa khusus. Dengan bahasa inilah kita dapat membuat tabel

baru, mengubah tabel, menentukan struktur penyimpanan tabel, dan lain-lain. Hasil dari

kompilasi perintah DDL adalah Kamus Data (Data Dictionary), yaitu, kumpulan tabel

yang disimpan dalam file khusus.

Kamus Data nerupakan suatu metadata (superdata) yang mendeskripsikan data

sesungguhnya dan akan selalu diakses dalam suatu operasi basis data sebelum suatu file

data yang sesungguhnya diakses.

2. Data Manipulation Language (DML)

DML berisi kumpulan perintah yang berguna untuk melakukan manipulasi dan

pengambilan data pada suatu basis data. Manipulasi data dapat berupa:

a. Penambahan data baru ke suatu basis data.

b. Penghapusan data dari suatu basis data

c. Pengubahan data dari suatu basis data.

DML merupakan bahasa yang bertujuan memudahkan pengguna untuk


33

mengakses data, sebagaimana direpresentasikan oleh model data. Ada 2 jenis DML,

yaitu:

a. Prosedural, yang mensyaratkan agar pengguna menentukan data yang diinginkan

serta bagaimana cara mendapatkannya.

b. Non Prosedural, yang membuat pengguna dapat menentukan apa yang diinginkan tanpa

menyebutkan bagaimana cara mendapatkannya DML juga sering disebut Query Language.

2.8. Konsep Dasar Faktur

Ada beberapa pengertian faktur, diantaranya:

a. Faktur adalah perhitungan penjualan kredit yang diberikan oleh penjual kepada pembeli.

b. Faktur adalah sebuah perincian pengiriman barang yang mencatat daftar barang, harga, dan

hal-hal lain yang biasanya terkait dengan pembayaran.

c. Faktur merupakan salah satu dokumen dasar sebagi bukti pencatatan bagi perusahaan

penjual dan perusahaan pembeli. Faktur ini merupakan bukti transaksi penjualan yang

dilakukan secara kredit dan biasanya dibuat rangkap.

2.9. Konsep Dasar Pajak

“Pajak adalah iuran rakyat pad akas negara berdasarkan undang-undang (yang dapat
dipaksa) dengan tidak mendapat jasa timbal (kontraprestasi), yang langsung dapat
ditunjukan dan yang digunakan untuk membayar pengeluaran umum” (Mardiasmo,
2008:1).

Definisi diatas menyebutkan pajak sebagai iuran dan pungutan.

Ciri-ciri atau unsur pokok yang terdapat pada definisi pajak, yaitu:

1) Pajak dipungut berdasarkan Undang-undang

Merupakan hal yang sangat mendasar, pemungutan pajak harus berdasarkan

peraturan perundang-undangan yang telah disetujui oleh rakyat melalui lembaga perwakilan
34

rakyat. Hasil persetujuan tersebut dituangkan dalam suatu undang-undang yang harus

dipatuhi oleh setiap wajib pajak.

2) Pajak dapat dipaksakan

Wajib pajak dapat dikenakan tindakan hukum oleh pemerintah berdasarkan

undang-undang jika kewajiban perpajakan tersebut tidak dipenuhi. Jika terjadi

pelanggaran dalam pelaksanaan kewajiban perpajakan, wajib pajak menurut Undang-

undang no. 28 Tahun 2007, fiskus berwenang untuk memberi sanksi-sanksi pidana fiskal

(pajak) dan sanksi administratif termasuk wewenang melakukan penyitaan terhadap harta

bergerak/tetap wajib pajak.

Sanksi admnistratif merupakan tindak pidana yang wajib dilakukan wajib pajak

yang oleh Undang-undang diancam pidana, karena melawan atau bertentangan dengan

hukum, yang dapat merugikan masyarakat dan Negara dilakukan di bidang perpajakan.

3) Diperuntukan bagi keperluan pembiayaan umum pemerintah

Pemerintah tidak memberikan penghargaan atau keuntungan kepada wajib pajak

secara langsung, karena apa yang telah dibayarkan wajib pajak hanya dapat merasakan

secara tidak langsung bentuk-bentuk kontraprestasi dari pemerintah, seperti banyak

dibangunnya fasilitas umum

4) Tidak dapat ditunjukannya kontraprestasi secara langsung

Pemerintah tidak memberikan penghargaan atau keuntungan kepada wajib pajak

secara langsung, karena apa yang telah dibayarkan wajib pajak kepada pemerintah digunakan

untuk keperluan umum pemerintah. Wajib pajak hanya dapat merasakan secara tidak langsung

bentuk-bentuk kontraprestasi dari peme-rintah, seperti banyak dibangunnya fasilitas umum.


35

5) Berfungsi sebagai budgetair (anggaran) dan regulerend

Fungsi budgetair (anggaran), pajak berfungsi mengisi kas Negara atau anggaran

pendapatan Negara, yang digunakan untuk keperluan pembiayaan umum pemerintah baik rutin

maupun untuk pembangunan. Fungsi regulerend adalah pajak berfungsi sebagai alat untuk

mengatur atau alat untuk melaksanakan kebiajakan yang ditetapkan Negara dalam bidang

ekonomi sosial untuk mencapai tujuan tertentu.

2.9.1. Fungsi Pajak

Pengertian fungsi dalam fungsi pajak adalah pengertian fungsi sebagai kegunaan

suatu hal. Maka fungsi pajak adalah kegunaan pokok, manfaat pokok pajak. Sebagai alat

untuk menentukan politik perekonomian, pajak memiliki kegunaan dan manfaat pokok dalam

meningkatkan kesejahteraan umum. Umumnya dikenal dengan dua macam fungsi pajak, yaitu

fungsi budgetair dan fungsi regulerend.

1. Fungsi Budgetair

Fungsi ini merupakan fungsi utama pajak, atau fungsi fiskal (fiscal function), yaitu

pajak dipergunakan sebagai alat untuk memasukkan dana secara optimal ke kas negara yang

dilakukan sistem pemungutan berdasarkan undang-undang perpajakan yang berlaku.

Disebut sebagai fungsi utama karena fungsi inilah yang secara historis pertama kali muncul.

2. Fungsi Regulerend

Disebut juga fungsi mengatur, yaitu pajak merupakan alat kebijakan pemerintah untuk

mencapai tujuan tertentu. Di samping usaha untuk memasukkan uang ke kas Negara, pajak

dimaksudkan pula sebagai usaha pemerintah untuk ikut andil dalam mengatur dan bilamana

perlu mengubah susunan penapatan dan kekayaan dalam sektor swasta. Fungsi ini disebut
36

juga fungsi tambahan, karena fungsi regulerend ini hanya sebagai tambahan atas fungsi utama

pajak, yaitu budgetfair.

2.9.2. Wajib Pajak

Wajib pajak adalah orang pribadi atau badan meliputi pembayar pajak, pemotong

pajak dan pemungut pajak yang mempunyai hak dan kewajiban sesuai dengan ketentuan

perundang-undangan perpajakan ditentukan untuk melakukan kewajiban perpajakan

termasuk pemungut pajak dan pemotong pajak tertentu (pasal 1 butir 2 UU KUP).

Wajib pajak (subyek pajak penghasilan) adalah wajib untuk memiliki NPWP (Nomor

Pokok Wajib Pajak). Jadi orang atau badan yang bertempat tinggal di Indonesia, yang

menerima atau memperoleh penghasilan bagi perorangan yang jumlahnya setahun melampaui

batas pajak wajib memiliki NPWP. Adapun fungsi NPWP, yaitu:

a. Untuk mengetahui identitas wajib pajak

b. Untuk menjaga ketertiban dalam pembayaran pajak

c. Sebagai bentuk pengawasan administrasi perpajakan

d. Untuk keperluan yang berhubungan dengan dokumen perpajakan sehingga semua yang

berhubungan dengan dokumen perpajakan harus mencantumkan NPWP

e. Untuk memenuhi kewajiban-kewajiban perpajakan (contoh:Surat Setoran Pajak)

f. Untuk mendapatkan pelayanan dari instansi-instansi tertentu yang mewajibkan

mencantumkan NPWP dalam dokumen-dokumen yang diajukan (contoh: Dokumen

Import, dokumen Eksport)

g. Untuk keperluan pelaporan Surat Pemberitahuan (SPT) masa atau tahun.


37

2.9.3. Konsep Dasar Pajak Pertambahan Nilai (PPN)

Dalam rangka melaksanakan program reformasi (pembaharuan) Sistem

Perpajakan Nasional tahun 1983, Undang-undang pajak penjualan 1951 dinyatakan tidak

berlaku dan diganti oleh Undang-undang Pajak Pertambahan Nilai 1984, dan sejak 1

April 1985 Pajak Penjualan telah diganti oleh Pajak Pertambahan Nilai yang

pemungutannya didasarkan pada Undang-undang nomor 8 Tahun 1983.

Pengertian Pajak Pertambahan Nilai dapat dirumuskan berdasar dua sudut

pandang sebagai berikut:

1. Sudut pandang ekonomi, beban pajak dialihkan kepada pihak lain, yaitu pihak yang

akan mengkonsumsi barang atau jasa yang menjadi objek pajak.

2. Sudut pandang yuridis, tanggung jawab pembayaran pajak kepada kas Negara tidak

berada di tangan pihak yang memikul beban pajak.

Pajak Pertambahan Nilai (PPN) adalah pajak yang dikenakan atas:

1. Penyerahan Barang Kena Pajak di dalam daerah Pabean yang dilakukan oleh

pengusaha

2. Impor Barang Kena Pajak

3. Penyerahan Jasa Kena Pajak di dalam daerah Pabean yang dilakukan oleh pengusaha

4. Pemanfaatan Barang Kena Pajak Tidak Berwujud dari luar Daerah Pabean di dalam

Daerah Pabean

5. Pemanfaatan Jasa Kena Pajak dari luar Daerah Pabean di dalam Daerah Pabean

6. Ekspor Barang Kena Pajak Berwujud oleh Pengusaha Kena Pajak

7. Ekspor Barang Kena Pajak Tidak Berwujud oleh Pengusaha kena Pajak

8. Ekspor Jasa Kena Pajak oleh Pengusaha Kena Pajak.


38

2.9.3.1. Karakteristik Pajak Pertambahan Nilai

Karakteristik Pajak Pertambahan Nilai Indonesia, dapat dirinci sebagai berikut:

a. Pajak Pertambahan Nilai merupakan Pajak Tidak Langsung

Karakter ini memberikan suatu konsekuensi yuridis bahwa antara pemikul beban

pajak dengan penanggung jawab atas pembayaran pajak ke kas Negara berada pada pihak

berbeda.

Pemikul beban ini secara nyata berkudukan sebagai pembeli Barang kena Pajak

atau penerima Jasa kena Pajak. Sedangkan penanggung jawab atas pemba-yaran pajak

ke kas Negara adalah Pengusaha Kena Pajak yang bertindak selaku penjual Barang Kena

Pajak atau pengusaha Jasa Kena Pajak.

b. Pajak Objektif

Pajak objektif adalah suatu jenis pajak yang saat timbulnya kewajiban pajak

ditentukan oleh faktor objektif, yaitu adanya taatbestand. Adapun yang dimaksud

taatbestand adalah keadaan, peristiwa atau perbuatan hukum yang dapat dikenakan

pajak yang juga disebut dengan nama objek pajak.

c. Multi Stage Tax

Multi stage tax adalah karakteristik Pajak Pertambahan Nilai yang dikena-kan

pada setiap mata rantai jalur produksi maupun jalur distribusi. Setiap penyerahan barang

yang menjadi objek Pajak Pertambahan Nilai mulai dari tingkat pabrikan (manufacturer)

kemudian di tingkat pedagang besar (wholesaler) dalam berbagai bentuk atau nama

sampai dengan tingkat pedagang pengecer (retailer) dikenakan Pajak Pertambahan Nilai.

d. Mekanisme Pemungutan Pajak Pertambahan Nilai Menggunakan Faktur Pajak

Sebagai konsekuensi penggunaan credit method untuk menghitung Pajak

Pertambahan Nilai yang terutang maka pada setiap penyerahan Barang Kena Pajak atau
39

Jasa Kena Pajak, Pengusaha Kena Pajak yang bersangkutan diwajibkan untuk membuat

Faktur Pajak sebagai bukti pemungutan pajak.

e. Pajak Pertambahan Nilai adalah Pajak atas Konsumsi Umum Dalam negeri

Sebagai pajak atas konsumsi umum dalam negeri, Pajak Pertambahan Nilai hanya

dikenakan atas konsumsi Barang Kena Pajak dan/atau Jasa Kena Pajak yang dilakukan di

dalam negeri. Oleh karena itu, komoditi impor dikenakan Pajak Pertambahan Nilai

dengan persentase yang sama dengan produk domestik.

f. Pajak pertambahan Nilai bersifat Netral

Netralitas Pajak Pertambahan Nilai (PPN) dibentuk oleh dua factor, yaitu:

1) PPN dikenakan baik atas konsumsi barang maupun jasa.

2) Dalam pemungutannya, PPN menganut prinsip tempat tujuan (destination

principle).

Dalam mekanisme pemungutannya, PPN mengenal dua prinsip pemungutan,

yaitu:

1) Prinsip tempat asal (origin principle)

2) Prinsip tempat tujuan (destination principle)

g. Tidak menimbulkan dampak pengenaan pajak berganda

Kemungkinan pengenaan pajak berganda seperti yang dialami dalam era UU

Pajak Penjualan (PPn) 1951 dapat dihindari sebanyak mungkin karena Pajak

Pertambahan Nilai dipungut atas nilai tambah saja. Keadaan ini berbeda dengan situasi

dalam era UU PPn 1951, yang dalam pelaksanaannya, pengusaha tidak diberi hak untuk

memperoleh kembali PPn yang dibayar atas perolehan bahan baku/pembantu atau barang

modal. Akibatnya, Pajak Penjualan yang terutang sepenuhnya merupakan hasil perkalian

tariff PPn dengan peredaran bruto.


40

2.9.3.2. Kelebihan dan Kekurangan Pajak Pertambahan Nilai (PPN)

Dari beberapa karakteristik PPN tersebut, dapat dikemukakan bahwa PPN

memiliki beberapa kelebihan yang tidak dimiliki oleh Pajak Penjualan. Meskipun

demikian, sebagai suatu sistem, ternyata PPN juga tidak bebas sama sekali dari beberapa

kekurangan.

a. Beberapa kelebihan Pajak Pertambahan Nilai.

1) Mencegah terjadinya pajak berganda.

2) Netral dalam perdagangan dalam dan luar negeri.

3) Pajak Pertambahan Nilai atas perolehan Barang Modal dapat diperoleh kembali

pada bulan perolehan, sesuai dengan tipe konsumsi (consumption type VAT) dan

metode pengurangan tidak langsung (indirect subtraction method). Dengan

demikian maka sangat membantu likuiditas perusahaan.

4) Ditinjau dari sumber pendapatan negara, Pajak Pertambahan Nilai mendapat

predikat sebagai “money maker” karena konsumen selaku pemikul beban pajak

tidak merasa dibebani oleh pajak tersebut sehingga memudahkan fiskus untuk

memungutnya.

b. Beberapa kelemahan Pajak Pertambahan Nilai.

1) Biaya administrasi relative tinggi bila dibandingkan dengan Pajak Tidak Langsung

lainnya, baik dipihak administrasi pajak maupun dipihak wajib pajak.

2) Menimbulkan dampak regresif, yaitu semakin tinggi tingkat kemampuan

konsumen, semakin ringan bebab pajak yang dipikul, dan sebaliknya semakin

rendah tingkat kemampuan konsumen, semakin berat beban pajak yang dipikul.

Dampak timbul sebagai konsekuensi karakteristik PPN sebagai pajak objektif.


41

3) PPN sangat rawan dari upaya penyelundupan pajak, kerawanan ini ditimbulkan

sebagai akibat dari mekanisme pengkreditan yang merupakan upaya memperoleh

kembali pajak yang dibayar oleh pengusaha dalam bulan yang sama tanpa terlebih

dahulu melalui prosedur administrasi fiskus.

4) Konsekuensi dari kelemahan tersebut pada sub 3), PPN menuntut tingkat

pengawasan yang lebih cermat oleh administrasi pajak terhadap tingkat kepatuhan

wajib pajak dalam melaksanakan kewajiban perpajakannya.

2.9.3.3. Tipe Pajak Pertambahan Nilai

Berdasarkan perlakuan terhadap perolehan barang modal, Pajak Pertambahan

Nilai (Value Added Tax) dapat dibedakan ke dalam tiga tipe, yaitu:

a. Consumption Type VAT

Dalam consumption type, value added tax semua pembelian yang digunakan

untuk produksi termasuk pembelian barang modal dikurangkan dari perhitungan nilai

tambah. Pajak Pertambahan Nilai tipe konsumsi ini memiliki beberapa nilai positif, yaitu:

1) Membantu likuiditas perusahaan, karena seluruh Pajak Masukan atas pembelian

Barang Kena Pajak yang digunakan dalam proses produksi (dalam arti luas)

segera dapat dikreditkan.

2) Menunjang iklim investasi yang sehat.

3) Mendorong pengusaha secara berkala melakukan regenerasi alat produksi barang

modal tidak dikenakan pajak lebih dari satu kali.

4) Tidak menimbulkan pengenaan pajak berganda (bersifat non kumulasi).


42

b. Net Income Type VAT

Dalam net income value added tax, pengurangan pembelian barang modal dari

dasar pengenaan pajak tidak dimungkinkan. Pembelian barang modal hanya boleh

dikurangkan sebesar prosentase penyusutan yang ditentukan pada waktu menghitung

hasil bersih dalam rangka penghitungan Pajak Penghasilan. Oleh karena itu dasar

pengenaan Pajak Pertambahan Nilai akan sama dengan dasar pengenaan Pajak

Penghasilan.

c. Gross Product VAT

Dalam gorss product type value added tax, pembelian barang modal sama sekali

tidak boleh dikurangkan dari dasar pengenaan pajak. Hal ini mengakibatkan barang

modal dikenakan pajak dua kali yaitu pada saat dibeli, kemudian pemajakan yang kedua

dilakukan melalui hasil produksi yang dijual kepada konsumen.

2.10. Konsep Dasar Faktur Pajak

Faktur Pajak adalah bukti pungutan pajak yang dibuat oleh PKP (Pengusaha Kena

Pajak) karena penyerahan Barang Kena Pajak (BKP)/Jasa Kena Pajak (JKP), atau bukti

pungutan pajak karena impor BKP yang digunakan oleh Direktorat Jenderal Bea dan

Cukai.

2.10.1. Fungsi Faktur Pajak

Faktur pajak mempunyai beberapa fungsi, yaitu:

a. Bukti pungutan PPN dan PPnBM bagi penjual BKP/JKP dan/atau DJBC atas impor

BKP

b. Bukti pembayaran PPN dan PPnBM bagi PKP pembeli BKP/JKP


43

c. Sarana pengkreditan Pajak Masukan

d. Dasar pembuatan nota retur.

2.10.2. Jenis Faktur Pajak

Faktur Pajak terdiri dari 3 macam:

a. Faktur Pajak Standar (Pasal 13 ayat 4, 5 dan 6 UU No. 18 Tahun 2000).

Faktur pajak yang bentuk dan isinya telah ditentukan oleh peraturan perundang-

undangan. Dalam Faktur pajak harus dicantumkan keterangan tentang penyerahan BKP

(pasal 13 ayat 5 UU PPN) yang meliputi:

1) Nama, alamat, NPWP yang menyerahkan BKP

2) Nama, alamat, dan NPWP pembeli BKP

3) Jenis barang, jumlah harga jual dan potongan harga

4) PPN yang dipungut

5) PPnBM yang dipungut

6) Kode, No. Seri dan tanggal pembuatan Faktur Pajak

7) Nama, jabatan dan tanda tangan yang berhak menandatangani Faktur Pajak

b. Faktur Pajak Gabungan (Pasal 13 ayat 2 UU No.18 Tahun 2000).

Faktur Pajak Standar yang memuat lebih dari satu transaksi dalam satu bulan

takwim untuk pelanggan yang sama. Dalam pembuatan Faktur Pajak Gabungan sama

seperti ketentuan pada Faktur Pajak Standar.

c. Faktur Pajak Sederhana (Pasal 13 ayat 7 UU No. 18 Tahun 2000).

Faktur Pajak Sederhana dibuat dalam hal penyerahan BKP kepada konsumen

akhir atau pembeli BKP tidak memiliki atau tidak mau menunjukan identitas lengkap,

missal tidak ada NPWP. Membuat Faktur Pajak Sederhana tidak memerlukan ijin
44

siapapun dan dapat berbentuk bon kontan, faktur penjualan, kuitansi, nota, karcis atau

tanda bukti penyerahan/pembayaran lain yang sejenis.

Dengan demikian, faktur pajak dalam hal ini faktur pajak penjualan dengan jenis

faktur pajak standar, sederhana dan gabungan yang digunakan pada penerbitan faktur

pajak penjualan Honda berisi data-data sebagai berikut:

1. Kode dan No. Seri Faktur Pajak

Diisi dengan kode dan nomor seri faktur pajak yang formatnya telah ditetapkan

oleh Peraturan Direktur Jenderal Pajak Nomor: PER-13/PJ/2010 tanggal 24 Maret 2010,

yaitu:

1) Kode faktur pajak terdiri atas 6 (enam) digit, yaitu:

a. 2 (dua) digit pertama adalah Kode Transaksi,

b. 1 (satu) digit berikutnya adalah Kode Status,

c. 3 (tiga) digit berikutnya adalah Kode Cabang

2) Nomor seri Faktur Pajak terdiri dari 10 (sepuluh) digit, yaitu:

a. 2 (dua) digit pertama adalah Tahun Penerbitan,

b. 8 (delapan) digit berikutnya adalah Nomor Urut

Sehingga format Kode dan Nomor Seri Faktur Pajak secara keseluruhan menjadi

sebagai berikut:

Gambar 2.4 Format Kode dan Nomor Seri Faktur Pajak


(Yamin, 2012)
45

2. Identitas PKP

Diisi dengan nama, alamat dan Nomor Pokok Wajib Pajak Pengusaha Kena Pajak

yang menyerahkan Barang Kena Pajak dan/atau Jasa Kena Pajak, sesuai dengan

keterangan dalam Surat Pengukuhan Pengusaha Kena Pajak, kecuali alamat diisi dengan

alamat tempat domisili/tempat kegiatan usaha terakhir Pengusaha Kena Pajak.

3. Identitas pembeli BKP atau JKP

Diisi sesuai dengan nama, alamat dan Nomor Pokok Wajib Pajak pembeli Barang

Kena Pajak dan/atau penerima Jasa Kena Pajak.

4. Tentang BKP/JKP yang diserahkan

a. Nomor Urut

Diisi dengan nomor urut dari BKP/JKP yang diserahkan

b. Nama BKP/JKP

Diisi dengan nama BKP/JKP yang diserahkan, dapat juga menambahkan

keterangan jumlah unit dan harga per unit dari BKP yang diserahkan.

c. Harga Jual

Diisi dengan Harga Jual dari BKP/JKP tersebut

d. Jumlah Harga Jual

Diisi dengan Total dari penjumlahan harga jual

e. Potongan Harga

Diisi dengan total nilai potongan harga BKP/JKP yang diserahkan, jika terdapat

potongan harga yang diberikan.

f. Uang Muka

Diisi dengan nilai uang muka yang telah diterima dari penyerahan BKP/JKP
46

g. Dasar Pengenaan Pajak (DPP)

Diisi dengan jumlah harga jual dikurangi dengan potongan harga dan uang muka

yang telah diterima

h. Pajak Pertambahan Nilai (PPN)

Diisi dengan jumlah pajak pertambahan nilai yang terutang sebesar 10% dari

Dasar Pengenaan Pajak (DPP)

i. Tanggal

Diisi dengan tempat dan tanggal faktur pajak dibuat

j. Nama dan Tandatangan

Diisi dengan nama dan tandatangan pejabat yang telah ditunjuk oleh PKP untuk

menandatangani faktur pajak, yang telah diberitahukan secara tertulis kepada kantor

pelayanan pajak tempat PKP dikukuhkan.

2.11. Konsep Dasar Framework

Framework dalam bahasa Indonesia berarti kerangka kerja, secara teori menurut

Gungun (2011:7), framework dapat diartikan sebagai kumpulan dari library (class) yang

bisa diturunkan atau bisa langsung dipakai fungsinya oleh modul-modul atau fungsi-

fungsi yang akan kita kembangkan.

Dengan menggunakan framework, kita tidak perlu membuat program dari awal,

tetapi kita sudah diberikan library fungsi-fungsi yang sudah diorganisasi untuk

menyelesaikan suatu program. Kita dapat memfokuskan kerja pada penyelesaian

masalah, tidak banyak lagi bekerja untuk membuat library fungsi dan prosedur.

Seperti yang diuraikan dengan istilah DRY (Don’t Repeat Yourself) dalam

bukunya Betha Sidik (2012:5), DRY (Don’t Repeat yourself) adalah suatu konsep yang
47

perlu kita ikuti, yaitu jangan sampai kita melakukan pengulangan pekerjaan dari awal

lagi, kalau kita pernah mengerjakannya. Selain itu, kita juga bisa memanfaatkan hasil

kerja orang lain, yang memang sesuai dengan kebutuhan kita untuk menyelesaikan

masalah. Tentu saja, setelah kita mendapatkan ijin untuk menggunakannya.

2.11.1. Framework CodeIgniter

CodeIgniter (CI) adalah framework pengembangan aplikasi (Application

Development Framework) dengan menggunakan PHP, suatu kerangka untuk bekerja atau

membuat program dengan menggunakan PHP yang lebih sistematis. Pemrogram tidak

perlu membuat program dari awal (from scracth), karena CI menyediakan sekumpulan

library yang banyak yang diperlukan untuk menyelesaikan pekerjaan yang umum, dengan

menggunakan antarmuka dan struktur logika yang sederhana untuk mengakses librarinya.

(Sidik, 2012:1)

Menurut Gungun (2011:9) CodeIgniter adalah aplikasi open source yang berupa

framework dengan model MVC (model, view, dan controller) untuk membangun website

yang dinamis, cepat dan mudah.

Beberapa keuntungan yang didapat dalam penggunaan framework adalah:

a. Menghemat waktu pengembangan, dengan library yang telah disediakan oleh

framework maka tidak perlu lagi memikirkan hal-hal dasar atau hal-hal umum yang

sudah dibuat pada library, jadi pemrogram hanya focus ke proses bisnis yang akan

dikerjakan.

b. Penggunaan ulang program/kode, dengan menggunakan framework maka pekerjaan

anda akan memiliki struktur yang baku, sehingga kita dapat menggunakan

program/kode itu kembali untuk pekerjaan lainnya.


48

c. Kumpulan program terbaik, sebuah framework merupakan kumpulan program terbaik

yang sudah teruji, sehingga dapat meningkatkan kualitas program/kode anda.

Untuk memahami CodeIgniter, setidaknya kita juga harus mengetahui dasar dari

Model View Controller (MVC). MVC adalah suatu metode yang memisahkan data logic

(model) dari presentation logic (view) dan process logic (controller) atau secara

sederhana adalah memisahkan desain interface, data dan proses. Seperti yang

ditunjukkan pada gambar 2.5.

PHP, Function, Query,


Controller Access Database, …

HTML
PHP, Function, Query,
Access Database, …
View Model

Gambar 2.5 Perbandingan CodeIgniter (Metode MVC) dengan Normal PHP


(Hidayatullah & Kawistara, 2014:299)

Dalam metode MVC terdapat tiga komponen, yaitu:

a. Model

Model mengelola basis data (RDBMS) seperti MySQL ataupun Oracle RDMS.

Model berhubungan dengan database sehingga biasanya dalam model akan berisi class

ataupun fungsi untuk membuat (create), melakukan pembaruan (update), menghapus

data (delete), mencari data (search), dan mengambil data (select) pada database. Selain

itu juga model akan berhubungan dengan perintah-perintah query sebagai tindak lanjut

dari fungsi-fungsi (create, update, delete, select).

b. View

View adalah bagian User Interface atau bagian yang nantinya merupakan tampilan

untuk end-user. View bisa berupa halaman html, css, rss, javascript, jquery, ajax, dan
49

lain-lain. Karena metode yang dipakai merupakan MVC sehingga dalam view tidak boleh

terdapat pemrosesan data ataupun pengaksesan yang berhubungan dengan database.

Sehingga view hanya menampilkan data-data hasil dari model dan controller.

c. Controller

Controller adalah penghubung antara view dan model, maksudnya adalah karena

model tidak dapat berhubungan langsung dengan view ataupun sebaliknya, jadi controller

inilah yang digunakan sebagai jembatan keduanya. Tugas controller adalah sebagai

pemrosesan data atau alur logic program, menyediakan variable yang akan ditampilkan

di view, pemanggilan model sehingga model dapat mengakses database, error handling,

validasi atau check terhadap suatu inputan.

2.12. Konsep Dasar PHP (Hypertext Preprocessor)

Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP

mengalami perubahan besar. Versi ini juga memasukkan model pemrograman

berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman

ke arah paradigm berorientasi objek. (Hidayatullah & Kawistara, 2014:233)

Kelebihan dari PHP adalah bisa digunakan di berbagai operating system,

diantaranya Linux, Unix, Windows, Mac OsX, RISC OS, dan operating system lainnya.

Selain itu ada beberapa kelebihan lain yang dimiliki oleh PHP, yaitu:

1. PHP Berbasis Server Side Scripting

Server Side Scripting pada PHP dapat bekerja jika ada tiga komponen berikut:

PHP Parser (CGI atau server modul), web server (contohnya apache dalam XAMPP),

web browser. Hasil output PHP yang melewati web server dapat dilihat pada web

browser.
50

2. Command Line Scripting pada PHP

PHP dapat digunakan dengan dan tanpa web server atau web browser. Dengan

memanfaatkan PHP Parser saja kita sudah bisa menggunakan PHP pada command line

(misalnya shell bash pada Linux, task scheduler pada Windows).

3. Mendukung Berbagai Macam Web Server

PHP dapat menggunakan berbagai macam web server. Contoh: Apache,

Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet

servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, dan lain-lain.

4. Objecr Oriented Programming atau Procedural

Program PHP dapat kita buat menggunakan teknik program Procedural, Object

Oriented Programming (OOP), ataupun menggabungkan teknik program keduanya.

5. Output file PHP pada XHTML, HTML, & XML

PHP tidak membatasi oleh output HTML saja. PHP mampu untuk menghasilkan

gambar sebagai output, file bertipe PDF, bahkan Flash. PHP juga menerima output teks

dengan mudah seperti penggunaan output pada XHTML dan file XML lainnya.

6. Mendukung Banyak RDMS (Database)

Salah satu fitur yang paling signifikan dalam PHP adalah dukungan penggunaan

untuk berbagai database.

2.13. MySQL

Database management System (DBMS) adalah aplikasi yang dipakai untuk

mengelola basis data.

DBMS biasanya menawarkan beberapa kemampuan yang terintegrasi,

diantaranya:
51

a. Membuat, menghapus, menambah, dan memodifikasi basis data

b. Pada beberapa DBMS pengelolaannya berbasis windows (berbentuk jendela-jendela)

sehingga lebih mudah digunakan

c. Tidak semua orang bisa mengakses basis data yang ada sehingga memberikan

keamanan bagi data

d. Kemampuan berkomunikasi dengan program aplikasi yang lain (contoh:PHP)

e. Kemampuan pengaksesan melalui komunikasi antarkomputer (client server)

MySQL adalah salah satu aplikasi DBMS yang sudah sangat banyak digunakan

oleh para pemrogram aplikasi web. Kelebihan dari MySQL adalah gratis, handal, selalu

di-update dan banyak forum yang memfasilitasi para pengguna jika memiliki kendala.

MySQL juga menjadi DBMS yang sering di-bundling dengan web server sehingga proses

instalasinya jadi lebih mudah.

2.14. Web Server dan Web Browser

1. Web Server

Web server adalah tempat yang digunakan untuk menyimpan aplikasi web yang

sudah dibuat kemudian mengaksesnya melalui web browser. Web server ini dibutuhkan

karena untuk server side script seperti PHP, pemeriksaan baru akan tampil jika

menggunakan web server.

Agar sebuah web dapat diakses secara local menggunakan web server lokal, maka

diharuskan untuk menginstal PHP (untuk script), Apache (web server) dan MySQL

(database) satu per satu. Namun sekarang sudah ada beberapa web server lokal yang

menyediakan fasilitas diatas dalam satu program, salah satunya XAMPP.


52

XAMPP merupakan perlangkat lunak bebas, yang mendukung banyak sistem

operasi dan merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai

server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP server,

MySQL database, PHP dan Perl.

Nama XAMPP sendiri merupakan singkatan dari X (cross platform di berbagai

sistem operasi), A (Apache), M (MySQL), PP (PHP dan Perl).

Adapun bagian-bagian dari XAMPP yang pada umumnya biasa digunakan, antara

lain:

a. Htdocs, adalah folder tempat meletakkan berkas-berkas yang telah dibuat dan akan

dijalankan seperti file PHP, HTML, dan lainnya.

b. phpMyAdmin, adalah bagian dari XAMPP yang digunakan untuk mengelola basis

data MySQL.

c. Control Panel, berfungsi untuk mengelola layanan (services) maupun admin dari

XAMPP, seperti memulai (start) layanan, ataupun berhenti (stop).

2. Web Browser

Web browser adalah aplikasi yang digunakan untuk menampilkan informasi dari

web server. Web browser memungkinkan user untuk menjelajahi World Wide Web

(WWW) untuk mendapatkan informasi dan berkomunikasi. Namun user hanya

mengetahui alamat halaman web yang akan diakses, kemudian web browser menunggu

informasi yang diminta dikirimkan kembali oleh web server, sehingga user dapat melihat

informasi tersebut dari web browser.

Contoh beberapa web browser yang popular dipakai, antara lain, Google Chrome,

Mozilla Firefox, Opera dan Internet Explorer.


53

World Wide Web (WWW), sering disingkat web, adalah suatu layanan di dalam

jaringan internet yang berupa ruang informasi (Raharjo, 2011:2).

WWW bekerja berdasarkan pada empat mekanisme berikut:

1. Informasi disimpan di dalam dokumen yang sering kita sebut halaman web

2. Halaman web adalah file-file yang disimpan dalam komputer. Komputer tersebut

dikenal dengan istilah web server.

3. Komputer yang mengakses isi dari halaman web disebut dengan web clients.

4. Web client menampilkan halaman web dengan program yang dikenal dengan nama

web browser.

2.15. Tinjauan Organisasi

Merdeka Motor Bandung merupakan salah satu Dealer resmi sepeda motor

Honda area Jawa Barat yang melayani penjualan unit, jasa service dan penjualan spare

part kendaraan sepeda motor Honda, sehingga dealer ini tidak akan melayani selain

jenis sepeda motor Honda.

2.15.1. Sejarah Singkat

PT. Mitradeka Mandiri didirikan pada tahun 1980 di Jalan Merdeka No. 51

Bandung sebagai bengkel dan showroom motor Honda oleh Hanan Kurniawan sebagai

Direktur Utama dan Hugeng Kurniawan sebagai Direktur di PT. Mitradeka Mandiri

atau selanjutnya disebut Merdeka Motor.

Pada tahun 1990, Merdeka Motor mendirikan cabang di Jalan Terusan

Kiaracondong No.47 Bandung sebagai Authorized Toyota Dealer untuk area Jawa Barat

yang melayani penjualan unit, jasa service dan penjualan spare part khusus untuk
54

kendaraan Toyota. Pada tahun 1994, Merdeka Motor kembali mendirikan cabang di

Jalan Buah Batu No. 165A sebagai bengkel spooring balancing dan penjualan ban GT

Tire sekaligus digunakan sebagai kantor Direktur Utama PT. Mitradeka Mandiri.

Pada tahun 2010, Merdeka Motor Honda kembali membuka cabang baru di Jalan

Raya Cibiru No. 211 Bandung yang juga difungsikan sebagai gudang penyimpanan unit

motor Honda untuk seluruh dealer Merdeka Motor.

Pada tahun 2012, Merdeka Motor kembali membuka cabang baru Honda dan

Toyota, untuk Honda bertempat di Jalan Raya Rancaekek KM 7,5 sedangkan Toyota di

Jalan Raya Kopo Bandung tepat di depan pintu Tol Kopo yang juga difungsikan sebagai

gudang penyimpanan unit mobil Toyota.

Hingga tahun 2015, Merdeka Motor memiliki 1 kantor pusat dan 6 kantor cabang.

Gambar 2.6 Logo Merdeka Motor Bandung

2.15.2. Visi dan Misi

A. Visi

Merdeka Motor menjadikan tiap pengguna sepeda motor Honda menjadi

“customer dan kawan seumur hidup”. Membangun dan membina “keluarga jaringan

layanan solusi motor Honda yang handal, bersemangat melayani, terpercaya dan saling

menguntungkan. Ikut serta memantu pembinaan “lingkungan masyarakat yang cerdas

secara emosional, spiritual dan intelektual”.


55

B. Misi

Merdeka Motor senantiasa memberi “layanan sepenuh hati dan solusi yang terbaik

dan tuntas” kepada customer.

2.15.3. Struktur Organisasi

Adapun struktur organisasi di Merdeka Motor, seperti digambarkan pada gambar

2.7.

Direktur Utama

Direktur Honda Direktur Toyota

Kepala Cabang Kepala Cabang

Administrasi Administrasi
Divisi Penjualan Divisi Penjualan
Honda Toyota

KaBag.
Administrasi Pajak

Administrasi Pajak

Gambar 2.7 Struktur Organisasi Merdeka Motor Bandung

2.15.4. Fungsi Dan Tugas

1. Direktur Utama

Peranan Direktur Utama sangat penting bagi kelangsungan hidup perusahaan,

dengan tanggung jawab mengontrol detail setiap kegiatan perusahaan berdasarkan

laporan-laporan dari para direktur maupun lainnya.


56

2. Direktur

Berperan untuk mengontrol kegiatan yang ada pada bagiannya masing-masing

baik Honda maupun Toyota, mengontrol penjualan, pengeluaran dan hal-hal administratif

berdasarkan laporan dari divisi nya masing-masing.

3. Kepala Cabang

Bertugas mengendalikan hal yang bersifat teknis lapangan, khususnya yang

berhubungan dengan penjualan unit dan jasa servis (bengkel).

4. Administrasi Honda dan Toyota

Bertugas membuat semua hal yang berhubungan dengan pengarsipan, yakni

berupa data penjualan, data pembelian, data keuangan, stok barang dan unit kendaraan

dan laporan-laporan pendukung lainnya.

5. Divisi Penjualan

Sebagai hal penting yang harus dimiliki sebuah perusahaan, divisi penjualan ini

bertugas menjual produk/unit yang ada. Divisi penjualan ini harus memiliki daya juang

yang tinggi di lapangan melihat banyaknya kompetitor serupa yang banyak

bermunculan di masyarakat.

6. KaBag. Administrasi Pajak

Berperan untuk mengawasi dan mengendalikan aktivitas kerja di bagian pajak.

7. Administrasi Pajak

Administrasi pajak berhubungan dengan hal-hal yang mengenai perpajakan,

seperti Faktur Pajak, PPN, PPH, laporan keuangan, Laba/Rugi, Neraca dan lain-lain.
BAB III

PEMBAHASAN

3.1. Analisis Sistem

Sistem yang dirancang merupakan usulan perancangan sistem untuk memudahkan

user melakukan pekerjaan dalam penerbitan faktur pajak penjualan.

Sehingga user dapat bekerja dengan cepat dan akurat serta dapat mengurangi

resiko terjadinya kesalahan dan manipulasi data dalam proses pembuatan faktur pajak

tersebut.

3.2. Analisis Masalah

Adapun masalah yang dihadapi dalam sistem yang digunakan saat ini adalah:

1. Masih menggunakan sistem manual, yaitu dengan Microsoft Excel tanpa sistem yang

lebih terkomputerisasi.

2. User tidak dapat mencari dan mengecek nomor faktur pajak yang telah terdaftar secara

efektif karena belum menggunakan sistem yang baik sehingga rentan terjadi

manipulasi pada data tersebut.

3. Sering timbul permasalahan dalam penyimpanan data, karena tidak ada kata kunci

yang membedakan untuk item data yang sama.

4. Sistem yang digunakan saat ini belum bisa menyelesaikan pekerjaan dengan cepat dan

akurat sehingga untuk membuat laporan pajak membutuhkan waktu yang cukup lama.

57
58

3.3. Analisis Sistem yang Sedang Berjalan

Pada sub bab ini dijelaskan proses apa saja yang dilakukan dalam sistem

penerbitan faktur pajak penjualan yang sedang berjalan di Merdeka Motor Bandung.

Adapun uraian prosedur yang berjalan pada proses penerbitan faktur pajak

penjualan di Merdeka Motor Bandung dapat dilihat pada gambar 3.1.

Sistem Informasi yang Sedang Berjalan

Konsumen Penjual/Sales Admin Honda Kepala Cabang Admin Gudang Admin Pajak

Start
Pengisian Data
Konsumen di SPK Pengajuan SPK
Permintaan
Data Unit
Motor
Melakukan
pembelian unit SPK dengan data
sepeda motor belum lengkap

SPK
Tidak ada NPWP

SPK dengan data


yang lengkap Pembuatan
SPK dan NPWP
Faktur Pajak

Pengajuan Faktur
Pajak
Pembuatan Data Faktur
Ada NPWP Faktur Pajak Pajak

Faktur Pajak
Standar/Sederhana
SPK

Faktur pajak Faktur pajak


rangkap ke-1 rangkap ke-1 Faktur
pajak
R.2

End
Phase

Gambar 3.1 Flowmap Sistem yang Sedang Berjalan


59

1. Penjualan unit sepeda motor kepada konsumen oleh sales/penjual.

2. Data konsumen yang telah membeli sepeda motor diisikan kedalam SPK (Surat

Pesanan Kendaraan) beserta harga dan banyaknya unit yang dibeli.

3. SPK kemudian diajukan kepada kepala cabang untuk disetujui. Setelah disetujui,

administrasi Honda akan melaporkan permintaan unit ke administrasi gudang untuk

disiapkan unit motor yang akan dikirim.

4. Administrasi gudang akan memberikan data motor tersebut berupa nomor rangka,

nomor mesin dan tipe motor kepada administrasi Honda untuk kemudian diisikan di

SPK.

5. SPK yang telah lengkap, diajukan dengan data keseluruhan pembeli ke administrasi

pajak untuk dibuatkan faktur pajak standar bagi konsumen yang berbadan usaha dan

menyertakan NPWP saat pembelian, dan faktur pajak sederhana bagi konsumen

perorangan yang tidak menyertakan NPWP saat pembelian.

6. Faktur pajak dibuat 2 (dua) rangkap dengan rangkap pertama untuk konsumen dan

rangkap kedua untuk arsip administrasi pajak.

3.3.1. Analisis Dokumen

Adapun dokumen yang digunakan dan dihasilkan dalam proses tersebut adalah:

1. SPK (Surat Pesanan Kendaran)

Sebagai dokumen dasar yang dikeluarkan oleh divisi penjualan dan digunakan

untuk mencatat data penjualan seperti:

a. Data konsumen, yaitu nama, alamat kirim dan nomor telepon.

b. Data salesman, yaitu sebagai data orang yang menjual unit motor kepada

konsumen berupa nama salesman dan disertai tanda tangan.


60

c. Data unit motor, yaitu data lengkap unit motor yang dijual dan akan dikirim

kepada konsumen berupa type motor, nomor rangka, nomor mesin, tahun,

diskon penjualan dan harga jual motor.

SPK yang digunakan sebanyak rangkap tiga, yaitu untuk arsip konsumen, arsip

administrasi Honda dan arsip administrasi pajak, untuk lebih jelasnya dapat dilihat

pada gambar 3.2.

Data No. Registrasi


Konsumen SPK & Tanggal
Janji
penyerahan
unit (jika ada)

Data Unit Data Unit


Motor Motor

Tanda tangan
pemesan &
penerima
Disetujui oleh
Spv salesman

Gambar 3.2 Surat Pesanan Kendaraan (SPK)


61

2. NPWP

NPWP yang digunakan adalah berupa foto kopi, harus disertakan dengan SPK

pada saat pengajuan penerbitan faktur pajak standar. Adapun data yang terdapat dalam

npwp seperti pada gambar 3.3, yaitu:

a. Nomor kartu NPWP, memiliki kode seri 15 digit, dengan format sebagai berikut:

(1) (2) (3) (4) (5)

(1) Identitas wajib pajak

(2) Nomor registrasi dari Kantor Pusat Direktorat Jenderal Pajak kepada Kantor

Pelayanan Pajak (KPP)

(3) Alat pengaman untuk menghindari pemalsuan/kesalahan pada NPWP

(4) Kode Kantor Pelayanan Pajak (KPP)

(5) Status Wajib Pajak, “000” berarti tunggal/pusat sementara “001”, “002”

berarti cabang.

b. Nama pemilik NPWP

c. Alamat wajib pajak

d. Nama kantor penerbit NPWP

e. Tanggal daftar NPWP

Nomor NPWP
Nama Wajib
Pajak Alamat
Wajib Pajak
Kantor Tanggal
Penerbit NPWP daftar

Gambar 3.3 Kartu NPWP


62

3. Faktur Pajak

Sebagai laporan yang dibutuhkan untuk menghitung pembayaran pajak bulanan

perusahaan dan laporan yang diminta oleh konsumen untuk bahan pelaporan pajak.

Adapun data-data yang terdapat pada faktur pajak, yaitu:

a. Nomor seri faktur pajak

b. Nama, alamat dan nomor npwp penjual

c. Nama, alamat dan nomor npwp pembeli

d. Data unit motor yaitu, type, nomor rangka, nomor mesin, warna, tahun dan harga

e. Dasar pengenaan pajak (DPP)

f. Pajak pertambahan nilai (PPN)

g. Tanggal cetak dan tanda tangan supervisor pajak

3.4. Analisis Sistem yang Diusulkan

Adapun analisis sistem yang diusulkan akan dijelaskan pada sub bab dibawah ini.

3.4.1. Analisis Kebutuhan Non Fungsional

Sub bab ini menjelaskan mengenai kebutuhan-kebutuhan non fungsional guna

menunjang sistem informasi faktur pajak dapat berjalan sesuai dengan harapan.

3.4.1.1. Analisis Kebutuhan Perangkat Keras

Sub bab ini menjelaskan tentang spesifikasi perangkat keras bagi komputer user

guna mendukung sistem ini dapat berjalan serta menggambarkan bagaimana sistem ini

dibuat.
63

3.4.1.1.1. Kebutuhan Perangkat Keras Developer

Pada tabel 3.1 dijelaskan spesifikasi perangkat keras (hardware) yang digunakan

dalam merancang sistem informasi penerbitan faktur pajak ini.

Tabel 3.1 Spesifikasi Kebutuhan perangkat keras developer

Nama Keterangan

Processor Intel Pentium (Ivy Bridge) 2020M 2.40GHz

RAM DDR3 PC12800 6GB (4GB + 2GB)

VGA Intel HD Graphics + Radeon HD 8570M 2GB

Hard Disk 500 GB Sata2

Layar LED 14 inch

3.4.1.1.2. Kebutuhan Perangkat keras User

Pada tabel 3.2 dijelaskan spesifikasi minimum perangkat keras (hardware) yang

dibutuhkan user untuk menggunakan sistem informasi penerbitan faktur pajak ini agar

berjalan optimal.

Tabel 3.2 Spesifikasi kebutuhan perangkat keras user

Nama Keterangan

Processor Pentium Dual Core 1.50GHz

RAM 2 GB

VGA 512MB

Hard Disk 80 GB

Monitor LCD/RCT 16 inch

Mouse + keyboard Standar


64

3.4.1.2. Analisis Kebutuhan Perangkat Lunak

Sub bab ini menjelaskan tentang spesifikasi perangkat lunak bagi komputer user

guna mendukung sistem ini dapat berjalan serta menggambarkan bagaimana sistem ini

dibuat

3.4.1.2.1. Kebutuhan Perangkat Lunak Developer

Pada tabel 3.3 dijelaskan spesifikasi perangkat lunak (software) yang digunakan

dalam merancang sistem informasi penerbitan faktur pajak ini.

Tabel 3.3 Spesifikasi kebutuhan perangkat lunak developer

Nama Keterangan

Sistem Operasi Windows 8.1 Enterprise 64bit

Desain Editor Sublime Text v.3

Bahasa Pemrograman PHP, HTML

Web Browser Mozilla Firefox v.39.0

Web Server Apache

Database MySQL

3.4.1.2.2. Kebutuhan Perangkat Lunak User

Pada tabel 3.4 dijelaskan spesifikasi minimum perangkat lunak (software) yang

dibutuhkan user untuk menggunakan sistem informasi penerbitan faktur pajak ini agar

berjalan optimal.
65

Tabel 3.4 Spesifikasi kebutuhan perangkat lunak user

Nama Keterangan

Sistem Operasi Windows 7 32bit atau lebih

Web Browser Mozilla Firefox

Web Server Apache

Database MySQL

3.4.1.3. Analisis User

Guna mendukung agar sistem ini berjalan dengan baik, maka user yang diijinkan

untuk mengakses sistem ini adalah hanya staf dari bagian pajak dengan kualifikasi

minimal pendidikan lulus SMA, mampu mengoperasikan komputer dengan baik, terbiasa

menggunakan aplikasi office pada umumnya dan mendapat ijin dari admin sistem yaitu

supervisor administrasi pajak.

3.4.2. Analisis Kebutuhan Fungsional

Pada sub bab ini akan dijelaskan mengenai rancangan fungsional yang merupakan

gambaran dari sistem yang akan dirancang di sistem informasi faktur pajak. Pada analisis

fungsional ini akan diuraikan tentang aktifitas actor dan objek dalam sistem yang akan

dibuat.

3.4.2.1. Use Case Diagram Pada Sistem yang Diusulkan

Pada use case diagram ini, digambarkan keterkaitan aktor dengan objek pada

sistem informasi faktur pajak, seperti pada gambar 3.2 berikut ini.
66

Gambar 3.4 Use Case Diagram SI faktur pajak yang diusulkan

Untuk mempermudah dalam menganalisis, dapat menggunakan skenario pada

fase-fase selanjutnya, sehingga dapat melakukan pemilahan pada skenario tersebut,

antara lain:

Skenario Use Case

Nama use case : Login

Aktor : Spv pajak dan Admin Pajak

Tujuan : Verifikasi user sebagai supervisor atau admin pajak

Deskripsi : Aktor masuk ke halaman login admin dan mengisi form login

dengan memasukkan username dan password kemudian

masuk ke tampilan utama


67

AKTOR SISTEM
1. User memasukkan username dan
password kemudian login
2. Verifikasi bahwa username dan
password adalah benar.
3. Menampilkan menu utama

Nama use case : Kelola data user

Aktor : Spv Pajak

Tujuan : Mengelola user yang berhak menggunakan sistem termasuk

menambah,edit dan hapus data.

Deskripsi : Spv Pajak menentukan user yang dapat menggunakan sistem

untuk pembuatan faktur pajak

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Spv pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman data user
7. Pilih menu tambah user
8. Tampil form tambah user
9. Input data user
10. Simpan data user
11. Kembali ke halaman data user
12. Pilih menu edit data
13. Tampil halaman edit data
14. Edit data user
15. Update dan simpan data user
68

AKTOR SISTEM
16. Kembali ke halaman data user
17. Pilih menu hapus data
18. Konfirmasi hapus data
19. Hapus data user

Nama use case : Kelola data penjual

Aktor : Admin pajak

Tujuan : Mengelola data penjual unit sepeda motor

Deskripsi : user merupakan admin pajak. Mengelola data penjual

termasuk menambah, edit dan hapus data penjual.

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu data penjual
8. Tampil halaman data penjual
9. Pilih menu tambah penjual
10. Tampil form tambah penjual
11. Input data penjual
12. Simpan data penjual
13. Kembali ke halaman data
penjual
14. Pilih menu edit data
15. Tampil halaman edit data
16. Edit data penjual
17. Update dan simpan data penjual
69

AKTOR SISTEM
18. Kembali ke halaman data
penjual
19. Pilih menu hapus data
20. Konfirmasi hapus data
21. Hapus data penjual

Nama use case : Kelola data pembeli

Aktor : Admin pajak

Tujuan : Mengelola data pembeli unit sepeda motor

Deskripsi : user merupakan admin pajak. Mengelola data pembeli

termasuk menambah, edit dan hapus data pembeli.

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu data pembeli
8. Tampil halaman data pembeli
9. Pilih menu tambah pembeli
10. Tampil form tambah pembeli
11. Input data pembeli
12. Simpan data pembeli
13. Kembali ke halaman data
pembeli
14. Pilih menu edit data
15. Tampil halaman edit data
16. Edit data pembeli
17. Update dan simpan data pembeli
70

AKTOR SISTEM
18. Kembali ke halaman data
pembeli
19. Pilih menu hapus data
20. Konfirmasi hapus data
21. Hapus data pembeli

Nama use case : Kelola data barang

Aktor : Admin pajak

Tujuan : Mengelola data barang/unit sepeda motor

Deskripsi : user merupakan admin pajak. Mengelola data barang

termasuk menambah, edit dan hapus data barang.

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu data barang
8. Tampil halaman data barang
9. Pilih menu tambah barang
10. Tampil form tambah barang
11. Input data barang
12. Simpan data barang
13. Kembali ke halaman data barang
14. Pilih menu edit data
15. Tampil halaman edit data
16. Edit data barang
17. Update dan simpan data barang
18. Kembali ke halaman data barang
71

AKTOR SISTEM
19. Pilih menu hapus data
20. Konfirmasi hapus data
21. Hapus data barang

Nama use case : Kelola data faktur

Aktor : Admin pajak

Tujuan : Mengelola data faktur pajak

Deskripsi : user merupakan admin pajak. Terdapat dua sub menu dari

faktur pajak, yaitu nomor faktur dan buat faktur pajak

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu faktur pajak
8. Tampil halaman sub menu
faktur pajak

Nama use case : Kelola nomor faktur

Aktor : Admin pajak

Tujuan : Mengelola data nomor faktur pajak

Deskripsi : user merupakan admin pajak. Mengelola data nomor faktur

pajak yaitu menambah, edit dan hapus nomor faktur.


72

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu faktur pajak
8. Tampil halaman sub menu
faktur pajak
9. Pilih menu nomor faktur
10. Tampil halaman nomor faktur
11. Pilih menu tambah nomor
faktur
12. Tampil form tambah nomor
faktur
13. Input data nomor faktur
14. Simpan data nomor faktur
15. Kembali ke halaman nomor
faktur
16. Pilih menu edit data
17. Tampil halaman edit data
18. Edit data nomor faktur
19. Update dan simpan data nomor
faktur
20. Kembali ke halaman nomor
faktur
21. Pilih menu hapus data
22. Konfirmasi hapus data
23. Hapus data nomor faktur

Nama use case : Kelola faktur pajak

Aktor : Admin pajak

Tujuan : Mengelola data faktur pajak


73

Deskripsi : user merupakan admin pajak. Mengelola data faktur pajak

yaitu menambah, edit, hapus dan cetak faktur pajak.

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu faktur pajak
8. Tampil halaman sub menu
faktur pajak
9. Pilih menu buat faktur pajak
10. Tampil halaman buat faktur
pajak
11. Pilih menu tambah faktur
pajak baru
12. Tampil form tambah faktur
pajak
13. Input data faktur pajak
14. Simpan data faktur pajak
15. Kembali ke halaman buat faktur
pajak
16. Pilih cetak faktur pajak
17. Cetak faktur pajak yang telah
dibuat
18. Pilih menu edit data
19. Tampil halaman edit data
20. Edit data faktur pajak
21. Update dan simpan data faktur
pajak
22. Kembali ke halaman buat faktur
pajak
74

AKTOR SISTEM
23. Pilih menu hapus data
24. Konfirmasi hapus data
25. Hapus data faktur pajak

Nama use case : Kelola laporan faktur

Aktor : Admin pajak

Tujuan : Mengelola laporan faktur pajak

Deskripsi : user merupakan admin pajak. Mengelola laporan faktur

pajak dari faktur pajak yang telah dibuat sebelumnya yaitu

mencetak laporan per bulan.

AKTOR SISTEM
1. Masuk ke halaman login
admin
2. Tampil halaman login admin
3. Meminta username dan
password
4. Admin pajak memasukkan
username dan password
5. Verifikasi username dan
password adalah benar
6. Tampil halaman utama
7. Pilih menu data laporan
8. Tampil halaman laporan
9. Pilih menu bulan yang akan
dicetak
10. Tampil format laporan yang
akan dicetak
11. Pilih menu cetak laporan
12. Cetak laporan yang telah dipilih
75

3.4.2.2. Activity Diagram Pada Sistem yang Diusulkan

Activity diagram digunakan untuk mendokumentasikan alura kerja pada sebuah

sistem.

1. Activity Diagram Kelola Data User

Gambar 3.5 Activity Diagram Data User yang Diusulkan

Skenario:

Nama diagram : Activity Diagram Data User

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan


76

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mengelola data

user yaitu menambah user baru, edit data dan hapus data.

2. Activity Diagram Kelola Data Penjual

Gambar 3.6 Activity Diagram Data Penjual yang Diusulkan

Skenario:

Nama diagram : Activity Diagram Data Penjual

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan


77

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mengelola data

penjual yaitu menambah penjual baru, edit data dan hapus data.

3. Activity Diagram Kelola Data Pembeli

Gambar 3.7 Activity Diagram Data Pembeli yang Diusulkan

Skenario:

Nama diagram : Activity Diagram Data Pembeli

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan


78

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mengelola data

pembeli yaitu menambah pembeli baru, edit data dan hapus data.

4. Activity Diagram Kelola Data Barang

Gambar 3.8 Activity Diagram Data Barang yang Diusulkan

Skenario:

Nama diagram : Activity Diagram Data Barang

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mengelola data

barang yaitu menambah barang baru, edit data dan hapus data.
79

5. Activity Diagram Kelola Nomor Faktur

Gambar 3.9 Activity Diagram Data Nomor Faktur yang Diusulkan

Skenario:

Nama diagram : Activity Diagram Data Nomor Faktur

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mengelola data

nomor faktur yaitu menambah nomor faktur baru, edit data dan

hapus data.
80

6. Activity Diagram Buat Faktur Pajak

Gambar 3.10 Activity Diagram Buat Faktur yang Diusulkan

Skenario:

Nama diagram : Activity Diagram Buat Faktur Pajak

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mengelola data

faktur pajak yaitu membuat faktur pajak baru, edit data, hapus data

dan cetak faktur.


81

7. Activity Diagram Cetak Laporan

Gambar 3.11 Activity Diagram Cetak Laporan

Skenario:

Nama diagram : Activity Diagram Cetak Faktur Pajak

Tujuan : Pengelompokan aktifitas user berdasarkan aktifitas yang dilakukan

Deskripsi : Diagram ini menggambarkan aktifitas user dalam mencetak laporan

dari faktur pajak yang telah dibuat sebelumnya.


82

3.4.2.3. Class Diagram Pada Sistem yang Diusulkan

Class Diagram adalah sebuah spesifikasi yang jika di instansiasi akan

menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain

berorientasi objek. Class menggambarkan keadaan(atribut/properti) suatu sistem,

sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

Class Diagram menggambarkan struktur dan deskripsi class, package dan object beserta

hubungan satu sama lain seperti containment, pewarisan, asosiasi dan lain-lain.

Gambar 3.12 Class Diagram Sistem Penerbitan Faktur Pajak yang Diusulkan

Skenario

Nama diagram : Class Diagram Sistem Penerbitan Faktur Pajak

Nama Database : db_fakturpajak

Tujuan : Pengelompokkan class untuk koneksi ke database dan relasi table

Deskripsi : Tabel-tabel class diatas semuanya berguna untuk penyimpanan data


83

untuk ditampilkan sebagai informasi untuk user. Adapun data yang

disimpan berupa data jemaat, data keluarga, data pendidikan, data

sektor dan data persembahan. Dalam setiap class diberi keterangan

aktifitas user seperti tambah, hapus, edit, simpan dan tampilkan

(set_data).

3.4.2.4. Sequence Diagram Pada Sistem yang Diusulkan

Sequence diagram digunakan untuk menggambarkan perilaku pada setiap obyek

pada sebuah skenario. Diagram ini menunjukkan sejumlah contoh obyek dan pesan yang

diletakkan diantara obyek-obyek ini didalam use case. Komponen utama sequence

diagram terdiri atas obyek yang digambarkan dengan kotak bernama. Pesan diwakili oleh

garis dengan tanda panah dan waktu yang ditunjukkan dengan progress vertikal.

1. Sequence Diagram login

Gambar 3.13 Sequence diagram Login


84

2. Sequence Diagram Kelola user

Gambar 3.14 Sequence Diagram Kelola User

3. Sequence Diagram Kelola Penjual

Gambar 3.15 Sequence Diagram Kelola Penjual


85

4. Sequence Diagram Kelola Pembeli

Gambar 3.16 Sequence Diagram Kelola Pembeli

5. Sequence Diagram Kelola Barang

Gambar 3.17 Sequence Diagram Kelola Barang


86

6. Sequence Diagram Kelola Nomor Faktur

Gambar 3.18 Sequence Diagram Kelola Nomor Faktur

7. Sequence Diagram Cetak Faktur Pajak

Gambar 3.19 Sequence Diagram Cetak Faktur Pajak


87

8. Sequence Diagram Cetak Laporan

Gambar 3.20 Sequence Diagram Cetak Laporan

3.4.2.5.Deployment Diagram Pada Sistem yang Diusulkan

Deployment diagram menunjukkan susunan fisik sebuah sistem, menunjukkan

bagian perangkat lunak mana yang berjalan pada perangkat keras mana.

Gambar 3.21 merupakan deployment diagram dari sistem informasi yang akan

dirancang, yang mendokumentasikan arsitektur fisik dari sistem tersebut.

Gambar 3.21 Deployment Diagram Pada Sistem yang Diusulkan


88

3.4.2.6. Analisis Atribut Class

Merupakan pengelompokkan data-data hasil analisis yang dijadikan entitas atau

class dan mendeskripsikannya kedalam atribut atau field, serta menentukan deskripsi

untuk type, size dan primary key yang ada pada tabel.

1. Tabel 3.5 menjelaskan field-field pada table tb_user.

Tabel 3.5 Tabel tb_user

No Field Type Size Keterangan


1 Id Tinyint 2 Primary Key
2 Username Varchar 30
3 Password Varchar 50
4 Nama Varchar 30
5 Level Enum ‘Operator’,
‘Administrator’
6 Is_blokir Enum ‘0’, ‘1’
7 Created_at Datetime
8 Updated_at Datetime

2. Tabel 3.6 menjelaskan field-field pada table tb_penjual.

Tabel 3.6 Tabel tb_penjual

No Field Type Size Keterangan


1 ID Int (Auto 10 Primary Key
Increment)
2 npwp_penjual Varchar 20

3 nama_penjual Varchar 40

4 alamat_penjual Varchar 50

5 Created_at Datetime
6 Updated_at Datetime
89

3. Tabel 3.7 menjelaskan field-field pada table tb_pembeli.

Tabel 3.7 Tabel tb_pembeli

No Field Type Size Keterangan


1 ID Int (Auto 10 Primary Key
Increment)
2 npwp_pembeli varchar 20
3 nama_pembeli varchar 40
4 alamat_pembeli varchar 50
5 Created_at Datetime
6 Updated_at Datetime

4. Tabel 3.8 menjelaskan field-field pada table tb_barang.

Tabel 3.8 Tabel tb_barang

No Field Type Size Keterangan


1 ID Int (Auto 10 Primary Key
Increment)
2 type Varchar 15
3 nama_barang Varchar 25
4 harga_jual float
5 Bbn Float
6 Created_at Datetime
7 Updated_at Datetime

5. Tabel 3.9 menjelaskan field-field pada table tb_nofaktur.

Tabel 3.9 Tabel tb_nofaktur

No Field Type Size Keterangan


1 ID Int (Auto 10 Primary Key
Increment)
2 no_faktur varchar 20
3 bulan varchar 10
4 tahun Int 5
5 Created_at Datetime
6 Updated_at Datetime
90

6. Tabel 3.10 menjelaskan field-field pada table tb_buatfaktur.

Tabel 3.10 Tabel tb_buatfaktur

No Field Type Size Keterangan


1 ID Int (Auto 10 Primary Key
Increment)
2 no_faktur varchar 20
3 npwp_penjual varchar 20
4 nama_penjual varchar 40
5 alamat_penjual varchar 50
6 npwp_pembeli varchar 20
7 nama_pembeli varchar 40
8 alamat_pembeli varchar 50
9 type varchar 14
10 no_rangka varchar 15
11 no_mesin varchar 15
12 harga_jual Float
13 warna Varchar 15
14 tahun Int 5
15 diskon Float
16 mediator Float
17 jumlah Float
18 dpp Float
19 Ppn Float
20 tgl_faktur date
21 Created_at Datetime
22 Updated_at Datetime
91

3.4.3. Perancangan Antar Muka

Merupakan rancangan yang menggambarkan interaksi user atau actor dengan

sistem dari segi tampilan atau display serta kemudahan user dalam pengoperasiannya.

3.4.3.1. Struktur Menu

Gambar 3.22 menunjukkan struktur menu yang ada pada sistem informasi

penerbitan faktur pajak di Merdeka Motor Bandung.

Gambar 3.22 Struktur Menu Sistem Informasi Penerbitan Faktur Pajak

3.4.3.2. Rancangan Antar Muka

1. Gambar 3.23 menunjukkan rancangan halaman home

Gambar 3.23 Rancangan antar muka halaman home


92

2. Gambar 3.24 menunjukkan rancangan halaman kelola data

Gambar 3.24 Rancangan antar muka halaman kelola data

3. Gambar 3.25 menunjukkan rancangan halaman buat faktur pajak

Gambar 3.25 Rancangan antar muka halaman buat faktur pajak


93

4. Gambar 3.26 menunjukkan rancangan halaman cetak laporan

Gambar 3.26 Rancangan antar muka halaman cetak laporan

3.4.4. Implementasi Sistem

Implementasi sistem merupakan tahap penerapan sistem yang akan digunakan,

termasuk sistem informasi yang telah dibuat sebelumnya sehingga siap digunakan pada

waktunya.

1. Gambar 3.27 menunjukkan tampilan halaman home

Gambar 3.27 Tampilan halaman home


94

2. Gambar 3.28 menunjukkan tampilan halaman form login

Gambar 3.28 Tampilan halaman form login

3. Gambar 3.29 menunjukkan tampilan halaman kelola data

Gambar 3.29 Tampilan halaman kelola data


95

4. Gambar 3.30 menunjukkan tampilan halaman tambah data

Gambar 3.30 Tampilan halaman tambah data

5. Gambar 3.31 menunjukkan tampilan halaman edit data

Gambar 3.31 Tampilan halaman edit data


96

6. Gambar 3.32 menunjukkan tampilan halaman kelola faktur pajak

Gambar 3.32 Tampilan halaman kelola faktur pajak

3.4.5. Pengujian Sistem

Metode pengujian yang digunakan adalah dengan metode blackbox. Pengujian

blackbox ini untuk menguji spesifikasi suatu fungsi atau modul, apakah berjalan sesuai

dengan yang diharapkan atau tidak. Table 3.11 menunjukkan proses dan hasil pengujian

pada sistem yang dirancang.

Tabel 3.11 Tabel Pengujian Sistem

Hasil yang Hasil


Kelas Uji Skenario pengujian
diharapkan pengujian
Masukkan URL:
Halaman Index Tampil halaman index Sukses
http://localhost:88/pajak
Klik menu login – Isi Masuk ke halaman
Login Sukses
username dan password menu utama
97

Hasil yang Hasil


Kelas Uji Skenario pengujian
diharapkan pengujian
Klik menu login – Isi Muncul pesan error
Login username dan password username dan Sukses
yang salah password salah
Pilih menu data user Masuk ke halaman
Data User Sukses
data user
Pilih menu data penjual Masuk ke halaman
Data penjual Sukses
data penjual
Pilih menu data pembeli Masuk ke halaman
Data pembeli Sukses
data pembeli
Pilih menu data barang Masuk ke halaman
Data barang Sukses
data barang
Data nomor Pilih menu data nomor Masuk ke halaman
Sukses
faktur faktur nomor faktur
Data faktur Pilih data faktur pajak Masuk ke halaman
Sukses
pajak data faktur pajak
Pilih menu laporan Masuk ke halaman
Data Laporan Sukses
laporan
Mengisi form input user – Data yang di input
Input data user Sukses
klik simpan tersimpan di database
Input data Mengisi form input Data yang di input
Sukses
penjual penjual – klik simpan tersimpan di database
Input data Mengisi form input Data yang di input
Sukses
pembeli pembeli – klik simpan tersimpan di database
Input data Mengisi form input data Data yang di input
Sukses
barang barang – klik simpan tersimpan di database
Mengisi form input data
Input data Data yang di input
nomor faktur – klik Sukses
nomor faktur tersimpan di database
simpan
98

Hasil yang Hasil


Kelas Uji Skenario pengujian
diharapkan pengujian
Input faktur Mengisi form input data Data yang di input
Sukses
pajak faktur pajak – klik simpan tersimpan di database
Mengisi kata kunci Data yang dicari
Cari data pencarian di form kotak ditampilkan di Sukses
pencarian halaman terkait
Pilih menu buat faktur
Cetak faktur Faktur pajak yang
pajak – pilih cetak data Sukses
pajak dipilih tercetak
faktur
BAB IV

KESIMPULAN DAN SARAN

4.1. Kesimpulan

Berdasarkan hasil pembahasan beserta penelitian yang telah dilakukan, maka

dapat diambil beberapa kesimpulan, diantaranya:

1. Pembuatan sistem informasi penerbitan faktur pajak berbasis web dapat mengurangi

resiko terjadinya manipulasi data dari pihak yang kurang bertanggung jawab, karena

diperlukan validasi user sebelum dapat menggunakan sistem ini, sehingga tidak

semua orang dapat mengakses sistem ini.

2. Pembuatan sistem informasi penerbitan faktur pajak ini menggunakan frame work

CodeIgniter karena memiliki kelebihan yaitu konsep dari sistem yang sudah

dikerjakan, dimana kode program dapat digunakan kembali, sehingga dalam

pengembangan sistem tidak perlu melakukan pengulangan pekerjaan yang sama,

sehingga sistem ini dapat dikembangkan dengan lebih mudah dan lebih cepat sesuai

dengan kebutuhan perusahaan.

3. Sistem informasi penerbitan faktur pajak berbasis web ini, mampu meningkatkan

kinerja dan produktifitas karyawan, sehingga dapat bekerja secara efektif dan efisien.

4.2. Saran

Dengan adanya kesimpulan diatas, ada beberapa saran yang dapat dikemukakan

sebagai bahan pertimbangan lebih lanjut guna mengingkatkan produktifitas kerja dari

sistem informasi penerbitan faktur pajak ini khususnya di bagian pajak.

99
100

1. Karena sistem ini dirancang hanya untuk mengolah data sepeda motor Honda, maka

diperlukan pengembangan terhadap sub-sistem yang lebih luas agar sistem ini dapat

dijalankan oleh bagian pajak dari divisi mobil Toyota dan suku cadang (spare part)

bengkel sehingga mencakup lebih luas dalam penggunaanya.

2. Apabila dilakukan pengembangan menjadi sistem yang lebih besar tentunya harus

menggunakan database yang lebih besar.

3. Diperlukan pemeliharaan (maintenance) baik software maupun hardware agar

sistem iformasi dapat dijalankan dengan baik dan tanpa kendala.


DAFTAR PUSTAKA

A. BUKU ILMIAH
Al-Bahra bin Ladjamudin, Analisis dan Desain Sistem Informasi, Yogyakarta:
Graha Ilmu, 2005.

Awan Pribadi Basuki, Kolaborasi CodeIgniter Bootstrap Membangun Aplikasi


PSB Sekolah, Yogyakarta: Lokomedia, 2015.

Awan Pribadi Basuki, Proyek Membangun Website Berbasis PHP dengan


CodeIgniter, Yogyakarta: Lokomedia, 2014.

Betha Sidik, FRAMEWORK CODEIGNITER, Bandung: Informatika, 2012.

H.M Jogianto, Sistem Teknologi Informasi. Yogyakarta: Andi, 2005.

Kusrini, M.Kom, Strategi Perancangan & Pengolahan Basis Data, Yogyakarta:


Andi, 2007.

Martin Fowler, UML Distilled, 3th ed, Yogyakarta: Andi, 2005.

Mohammad Yamin,S.E.,AK. Pajak Pertambahan Nilai. Yogyakarta: Graha Ilmu,


2012.

Prabowo Pudjo Widodo Herlawati, Menggunakan UML, Bandung: Informatika


2013.

Tata Sutabri, Sistem Informasi Manajemen, Yogyakarta: Andi, 2005.

Yakub, Pengantar Sistem Informasi, Yogyakarta: Graha Ilmu, 2012.

B. WEBSITE

Cahyono. (2015) Perancangan Sistem Informasi [online] tersedia di:


http://www.noficahyono.com/2015/07/perancangan-sistem-
informasi_13.html (20 Januari 2016)

Online pajak (2016) Kode Seri Pada NPWP [online] tersedia di: http://www.online-
pajak.com/id/berita-dan-tips/nomor-pokok-wajib-pajak-npwp/kode-seri-pada-
npwp (28 Februari 2016)

101
DAFTAR LAMPIRAN
L1

LISTING PROGRAM $this->load-


>view('admin/login_form');
FILE CONTROLLERS }
Login.php
<?php public function logout()
class Login extends {
CI_Controller $this->login->logout();
{ redirect('admin');
public function }
__construct() }
{
parent::__construct(); Home.php
$this->load- <?php
>model('admin/login_model', class Home extends
'login'); Operator_Controller
} {
public $data = array(
public function index() 'halaman' => 'home',
{ 'main_view' =>
// Validasi. 'admin/home'
if (! $this->login- );
>validate('form_rules')) {
public function index()
$data['validation_errors'] = {
$this->form_validation- $this->load->view($this-
>error_array(); >layout, $this->data);
$this->load- }
>view('admin/login_form', }
$data);
return; User.php
} <?php
class User extends
// Login Admin_Controller
$login = $this->input- {
>post(null, true); public $data = array(
if (! $this->login- 'halaman' => 'user',
>login($login)) { 'main_view' =>
$this->session- 'admin/user_list',
>set_flashdata('pesan_error', 'title' => 'Data User',
'Username atau Password salah. );
Atau akun Anda sedang
diblokir.'); // Perlu mendefisikan
ulang, karena lokasi model tidak
redirect('admin/login_error'); standar
} // yaitu di bawah folder
"admin" -> model/admin
// Jika login benar, public function
alihkan ke halaman dashboard. __construct()
redirect('admin/home'); {
} parent::__construct();
$this->load-
public function error() >model('admin/user_model',
{ 'user');
L2

} $this->session-
>set_flashdata('pesan', 'user
public function index() berhasil disimpan. Kembali ke
{ halaman ' . anchor('admin/user',
$user = $this->user- 'user.', 'class="alert-link"'));
>get_all();
if ($user) { redirect('admin/user/sukses');
$this->data['user'] } else {
= $user; $this->session-
} else { >set_flashdata('pesan_error',
$this->data['user'] 'user gagal disimpan. Kembali ke
= 'Tidak ada data user.'; halaman ' . anchor('admin/user',
} 'user.', 'class="alert-link"'));
$this->load->view($this-
>layout, $this->data); redirect('admin/user/error');
} }
}
public function tambah()
{ public function edit($id =
$this->data['main_view'] null)
= 'admin/user_form'; {
$this- // Pastikan data user
>data['form_action'] = ada.
site_url('admin/user/tambah'); $user = $this->user-
>get($id);
// Data untuk form. if (! $user) {
if (! $_POST) { $this->session-
$user = (object) >set_flashdata('pesan_error',
$this->user->default_value; 'Data user tidak ada. Kembali ke
$user->password = halaman ' . anchor('admin/user',
''; 'user.', 'class="alert-link"'));
$user->passconf =
''; redirect('admin/user/error');
} else { }
$user = $this-
>input->post(null, true); // Data untuk form.
} if (!$_POST) {
$data = (object)
// Validasi. $user;
if (! $this->user- $data->password =
>validate('form_rules')) { '';
$this- $data->passconf =
>data['values'] = (object) '';
$user; } else {
$this->load- $data = (object)
>view($this->layout, $this- $this->input->post(null, true);
>data); }
return; $this->data['values'] =
} $data;

// Simpan ke DB. // Validasi.


if ($this->user- if (! $this->user-
>tambah($user)) { >validate('form_rules')) {
L3

$this- }
>data['main_view'] =
'admin/user_form'; public function hapus($id)
$this- {
>data['form_action'] = // Pastikan data user
site_url('admin/user/edit/'.$id) ada.
; if (! $this->user-
$this->load- >get($id)) {
>view($this->layout, $this- $this->session-
>data); >set_flashdata('pesan_error',
return; 'Data user tidak ada. Kembali ke
} halaman ' . anchor('admin/user',
'user.', 'class="alert-link"'));
// Simpan user.
if ($this->user- redirect('admin/user/error');
>edit($id, $data)) { }
$this->session-
>set_flashdata('pesan', 'user // Hapus
berhasil disimpan. Kembali ke if ($this->user-
halaman ' . anchor('admin/user', >delete($id)) {
'user.', 'class="alert-link"')); $this->session-
>set_flashdata('pesan', 'Data
redirect('admin/user/sukses'); berhasil dihapus. Kembali ke
} else { halaman '. anchor('admin/user',
$this->session- 'user.', 'class="alert-link"'));
>set_flashdata('pesan_error',
'user berhasil disimpan. Kembali redirect('admin/user/sukses');
ke halaman ' . } else {
anchor('admin/user', 'user.', $this->session-
'class="alert-link"')); >set_flashdata('pesan_error',
'Data gagal dihapus. Kembali ke
redirect('admin/user/error'); halaman '. anchor('admin/user',
} 'user.', 'class="alert-link"'));
}
redirect('admin/user/error');
public function sukses() }
{ }
$this->data['main_view']
= 'sukses'; // Kolom "password" harus
$this->data['title'] = diisi hanya untuk proses tambah.
'Data User'; // Jika "id" ada di URL
$this->load->view($this- (edit), maka password tidak
>layout, $this->data); "required"
} public function
_is_password_required()
public function error() {
{ $id = $this->uri-
$this->data['main_view'] >segment(4);
= 'error'; if (empty($id)) {
$this->data['title'] = $password = $this-
'Data User'; >input->post('password', true);
$this->load->view($this- if
>layout, $this->data); (empty($password)) {
L4

$this- return true;


>form_validation- }
>set_message('_is_password_requi }
red', '%s harus diisi.');
return false; Penjual.php
} <?php
} class Penjual extends
return true; Admin_Controller
} {
public $data = array(
// Jika "password" diisi, 'halaman' => 'penjual',
maka "passconf" harus diisi 'main_view' =>
public function 'admin/penjual_list',
_is_passconf_required() 'title' => 'Data
{ Penjual',
$password = $this- );
>input->post('password', true);
if (! empty($password)) // Perlu mendefisikan ulang,
{ karena lokasi model tidak
$passconf = $this- standar
>input->post('passconf', true); // yaitu di bawah folder
if "admin" -> model/admin
(empty($passconf)) { public function
$this- __construct()
>form_validation- {
>set_message('_is_passconf_requi parent::__construct();
red', '%s harus diisi.'); $this->load-
return false; >model('admin/penjual_model','pe
} njual');
} }
return true;
} public function index($no =
null)
public function {
_username_unik() $penjual = $this-
{ >penjual->get_all_paged($no);
$id = $this->uri- if ($penjual) {
>segment(4); $this-
$this->db- >data['penjual'] = $penjual;
>where('username', $this->input- $this-
>post('username')); >data['paging'] = $this-
!$id || $this->db- >penjual->paging('biasa',
>where('id !=', $id); site_url('admin/penjual/halaman/
$user = $this->user- '), 3);
>get_all(); } else {
$this-
if (count($user)) { >data['penjual'] = 'Tidak ada
$this- data penjual.';
>form_validation- }
>set_message('_username_unik', //$this-
'%s sudah digunakan.'); >data['form_action'] =
return false; site_url('admin/penjual/cari');
}
L5

$this->load->view($this-
>layout, $this->data); redirect('admin/penjual/sukses')
} ;
} else {
public function tambah() $this->session-
{ >set_flashdata('pesan_error',
$this->data['main_view'] 'penjual gagal disimpan. Kembali
= 'admin/penjual_form'; ke halaman ' .
$this- anchor('admin/penjual',
>data['form_action'] = 'penjual.', 'class="alert-
'admin/penjual/tambah'; link"'));

// Data untuk form. redirect('admin/penjual/error');


if (! $_POST) { }
$penjual = (object) }
$this->penjual->default_value;
$penjual- public function edit($ID=
>npwp_penjual = ''; null)
$penjual- {
>nama_penjual = ''; // Pastikan data penjual
$penjual- ada.
>alamat_penjual = ''; $penjual = $this-
$penjual->tgl_daftar >penjual->get($ID);
= ''; if (! $penjual) {
} else { $this->session-
$penjual = $this- >set_flashdata('pesan_error',
>input->post(null, true); 'Data penjual tidak ada. Kembali
} ke halaman ' .
anchor('admin/penjual',
// Validasi. 'penjual.', 'class="alert-
if (! $this->penjual- link"'));
>validate('form_rules')) {
$this- redirect('admin/penjual/error');
>data['values'] = (object) }
$penjual;
$this->load- // Data untuk form.
>view($this->layout, $this- if (!$_POST) {
>data); $data = (object)
return; $penjual;
} } else {
$data = (object)
$this->input->post(null, true);
// Simpan ke DB. }
if ($this->penjual- $this->data['values'] =
>tambah($penjual)) { $data;
$this->session-
>set_flashdata('pesan', 'penjual // Validasi.
berhasil disimpan. Kembali ke if (! $this->penjual-
halaman ' . >validate('form_rules')) {
anchor('admin/penjual', $this-
'penjual.', 'class="alert- >data['main_view'] =
link"')); 'admin/penjual_form';
L6

$this- $this->load->view($this-
>data['form_action'] = >layout, $this->data);
site_url('admin/penjual/edit/'.$ }
ID);
$this->load- public function hapus($ID)
>view($this->layout, $this- {
>data); // Pastikan data penjual
return; ada.
} if (! $this->penjual-
>get($ID)) {
// Simpan penjual. $this->session-
if ($this->penjual- >set_flashdata('pesan_error',
>edit($ID, $data)) { 'Data penjual tidak ada. Kembali
$this->session- ke halaman ' .
>set_flashdata('pesan', 'penjual anchor('admin/penjual',
berhasil disimpan. Kembali ke 'penjual.', 'class="alert-
halaman ' . link"'));
anchor('admin/penjual',
'penjual.', 'class="alert- redirect('admin/penjual/error');
link"')); }

redirect('admin/penjual/sukses') // Hapus
; if ($this->penjual-
} else { >delete($ID)) {
$this->session- $this->session-
>set_flashdata('pesan_error', >set_flashdata('pesan', 'Data
'penjual gagal disimpan. Kembali berhasil dihapus. Kembali ke
ke halaman ' . halaman '.
anchor('admin/penjual', anchor('admin/penjual',
'penjual.', 'class="alert- 'penjual.', 'class="alert-
link"')); link"'));

redirect('admin/penjual/error'); redirect('admin/penjual/sukses')
} ;
} } else {
$this->session-
public function sukses() >set_flashdata('pesan_error',
{ 'Data gagal dihapus. Kembali ke
$this->data['main_view'] halaman '.
= 'sukses'; anchor('admin/penjual',
$this->data['title'] = 'penjual.', 'class="alert-
'Data Penjual'; link"'));
$this->load->view($this-
>layout, $this->data); redirect('admin/penjual/error');
} }
}
public function error()
{ public function cari($no = 0)
$this->data['main_view'] {
= 'error'; $penjual = $this-
$this->data['title'] = >penjual->cari($no);
'Data Penjual'; if ($penjual) {
L7

$this- $pembeli = $this-


>data['penjual'] = $penjual; >pembeli->get_all_paged($no);
$this- if ($pembeli) {
>data['paging'] = $this- $this-
>penjual->paging('pencarian', >data['pembeli'] = $pembeli;
site_url('admin/penjual/cari/'), $this-
4); >data['paging'] = $this-
} else { >pembeli->paging('biasa',
$this- site_url('admin/pembeli/halaman/
>data['penjual'] = 'Data tidak '), 3);
ditemukan.'. } else {
anchor('admin/penjual', ' $this-
Tampilkan semua penjual.', >data['pembeli'] = 'Tidak ada
'class="alert-link"'); data pembeli.';
} }
$this- //$this-
>data['form_action'] = >data['form_action'] =
site_url('admin/penjual/cari'); site_url('admin/pembeli/cari');
$this->load->view($this- $this->load->view($this-
>layout, $this->data); >layout, $this->data);
} }
}
public function tambah()
Pembeli.php {
<?php $this->data['main_view']
class pembeli extends = 'admin/pembeli_form';
Admin_Controller $this-
{ >data['form_action'] =
public $data = array( site_url('admin/pembeli/tambah')
'halaman' => 'pembeli', ;
'main_view' => // Data untuk form.
'admin/pembeli_list', if (! $_POST) {
'title' => 'Data $this-
pembeli', >data['values'] = (object)
); $this->pembeli->default_value;
} else {
// Perlu mendefisikan ulang, $pembeli = $this-
karena lokasi model tidak >input->post(null, true);
standar }
// yaitu di bawah folder
"admin" -> model/admin
public function // Validasi.
__construct() if (! $this->pembeli-
{ >validate('form_rules')) {
parent::__construct(); $this-
$this->load- >data['values'] = (object)
>model('admin/pembeli_model','pe $pembeli;
mbeli'); $this->load-
} >view($this->layout, $this-
>data);
public function index($no = return;
null) }
{
L8

// Simpan ke DB. $this->data['values'] =


if ($this->pembeli- $data;
>tambah($pembeli)) {
$this->session- // Validasi.
>set_flashdata('pesan', 'pembeli if (! $this->pembeli-
berhasil disimpan. Kembali ke >validate('form_rules')) {
halaman ' . $this-
anchor('admin/pembeli', >data['main_view'] =
'pembeli.', 'class="alert- 'admin/pembeli_form';
link"')); $this-
>data['form_action'] =
redirect('admin/pembeli/sukses') site_url('admin/pembeli/edit/'.$
; ID);
} else { $this->load-
$this->session- >view($this->layout, $this-
>set_flashdata('pesan_error', >data);
'pembeli gagal disimpan. Kembali return;
ke halaman ' . }
anchor('admin/pembeli',
'pembeli.', 'class="alert- // Simpan pembeli.
link"')); if ($this->pembeli-
>edit($id, $data)) {
redirect('admin/pembeli/error'); $this->session-
} >set_flashdata('pesan', 'pembeli
} berhasil disimpan. Kembali ke
halaman ' .
public function anchor('admin/pembeli',
edit($ID=null) 'pembeli.', 'class="alert-
{ link"'));
// Pastikan data pembeli
ada. redirect('admin/pembeli/sukses')
$pembeli = $this- ;
>pembeli->get($ID); } else {
if (! $pembeli) { $this->session-
$this->session- >set_flashdata('pesan_error',
>set_flashdata('pesan_error', 'pembeli gagal disimpan. Kembali
'Data pembeli tidak ada. Kembali ke halaman ' .
ke halaman ' . anchor('admin/pembeli',
anchor('admin/pembeli', 'pembeli.', 'class="alert-
'pembeli.', 'class="alert- link"'));
link"'));
redirect('admin/pembeli/error');
redirect('admin/pembeli/error'); }
} }

// Data untuk form. public function sukses()


if (!$_POST) { {
$data = (object) $this->data['main_view']
$pembeli; = 'sukses';
} else { $this->data['title'] =
$data = (object) $this- 'Data pembeli';
>input->post(null, true); $this->load->view($this-
} >layout, $this->data);
L9

} }

public function error() public function cari($no = 0)


{ {
$this->data['main_view'] $pembeli = $this-
= 'error'; >pembeli->cari($no);
$this->data['title'] = if ($pembeli) {
'Data pembeli'; $this-
$this->load->view($this- >data['pembeli'] = $pembeli;
>layout, $this->data); $this-
} >data['paging'] = $this-
>pembeli->paging('pencarian',
public function hapus($id) site_url('admin/pembeli/cari/'),
{ 4);
// Pastikan data pembeli } else {
ada. $this-
if (! $this->pembeli- >data['pembeli'] = 'Data tidak
>get($id)) { ditemukan.'.
$this->session- anchor('admin/pembeli', '
>set_flashdata('pesan_error', Tampilkan semua pembeli.',
'Data pembeli tidak ada. Kembali 'class="alert-link"');
ke halaman ' . }
anchor('admin/pembeli', $this-
'pembeli.', 'class="alert- >data['form_action'] =
link"')); site_url('admin/pembeli/cari');
$this->load->view($this-
redirect('admin/pembeli/error'); >layout, $this->data);
} }
}
// Hapus
if ($this->pembeli- Barang.php
>delete($id)) { <?php
$this->session- class barang extends
>set_flashdata('pesan', 'Data Admin_Controller
berhasil dihapus. Kembali ke {
halaman '. public $data = array(
anchor('admin/pembeli', 'halaman' => 'barang',
'pembeli.', 'class="alert- 'main_view' =>
link"')); 'admin/barang_list',
'title' => 'Data
redirect('admin/pembeli/sukses') barang',
; );
} else {
$this->session- // Perlu mendefisikan ulang,
>set_flashdata('pesan_error', karena lokasi model tIDak
'Data gagal dihapus. Kembali ke standar
halaman '. // yaitu di bawah folder
anchor('admin/pembeli', "admin" -> model/admin
'pembeli.', 'class="alert- public function
link"')); __construct()
{
redirect('admin/pembeli/error'); parent::__construct();
}
L10

$this->load-
>model('admin/barang_model','bar // ValIDasi.
ang'); if (! $this->barang-
} >validate('form_rules')) {
$this-
public function index($no = >data['values'] = (object)
null) $barang;
{ $this->load-
$barang = $this->barang- >view($this->layout, $this-
>get_all_paged($no); >data);
if ($barang) { return;
$this- }
>data['barang'] = $barang;
$this- // Simpan ke DB.
>data['paging'] = $this->barang- if ($this->barang-
>paging('biasa', >tambah($barang)) {
site_url('admin/barang/halaman/' $this->session-
), 3); >set_flashdata('pesan', 'Data
} else { barang berhasil disimpan.
$this- Kembali ke halaman ' .
>data['barang'] = 'Tidak ada anchor('admin/barang', 'Data
data barang.'; barang.', 'class="alert-
} link"'));
//$this-
>data['form_action'] = redirect('admin/barang/sukses');
site_url('admin/barang/cari'); } else {
$this->load->view($this- $this->session-
>layout, $this->data); >set_flashdata('pesan_error',
} 'Data barang gagal disimpan.
Kembali ke halaman ' .
public function tambah() anchor('admin/barang', 'Data
{ barang.', 'class="alert-
$this->data['main_view'] link"'));
= 'admin/barang_form';
$this- redirect('admin/barang/error');
>data['form_action'] = }
site_url('admin/barang/tambah'); }

// Data untuk form. public function


if (! $_POST) { edit($ID=null)
$barang = (object) {
$this->barang->default_value; // Pastikan data barang
$barang->type = ''; ada.
$barang->nama_barang $barang = $this->barang-
= ''; >get($ID);
$barang->harga_jual if (! $barang) {
= ''; $this->session-
$barang->bbn = ''; >set_flashdata('pesan_error',
'Data barang tIDak ada. Kembali
} else { ke halaman ' .
$barang = $this- anchor('admin/barang', 'Data
>input->post(null, true); barang.', 'class="alert-
} link"'));
L11

}
redirect('admin/barang/error'); }
}
public function sukses()
// Data untuk form. {
if (!$_POST) { $this->data['main_view']
$data = (object) = 'sukses';
$barang; $this->data['title'] =
} else { 'Data barang';
$data = (object) $this->load->view($this-
$this->input->post(null, true); >layout, $this->data);
} }
$this->data['values'] =
$data; public function error()
{
// ValIDasi. $this->data['main_view']
if (! $this->barang- = 'error';
>validate('form_rules')) { $this->data['title'] =
$this- 'Data barang';
>data['main_view'] = $this->load->view($this-
'admin/barang_form'; >layout, $this->data);
$this- }
>data['form_action'] =
site_url('admin/barang/edit/'.$I public function hapus($ID)
D); {
$this->load- // Pastikan data barang
>view($this->layout, $this- ada.
>data); if (! $this->barang-
return; >get($ID)) {
} $this->session-
>set_flashdata('pesan_error',
// Simpan barang. 'Data barang tidak ada. Kembali
if ($this->barang- ke halaman ' .
>edit($ID, $data)) { anchor('admin/barang', 'Data
$this->session- barang.', 'class="alert-
>set_flashdata('pesan', 'barang link"'));
berhasil disimpan. Kembali ke
halaman ' . redirect('admin/barang/error');
anchor('admin/barang', }
'barang.', 'class="alert-
link"')); // Hapus
if ($this->barang-
redirect('admin/barang/sukses'); >delete($ID)) {
} else { $this->session-
$this->session- >set_flashdata('pesan', 'Data
>set_flashdata('pesan_error', berhasil dihapus. Kembali ke
'barang gagal disimpan. Kembali halaman '.
ke halaman ' . anchor('admin/barang', 'Data
anchor('admin/barang', barang.', 'class="alert-
'barang.', 'class="alert- link"'));
link"'));
redirect('admin/barang/sukses');
redirect('admin/barang/error'); } else {
L12

$this->session-
>set_flashdata('pesan_error',
'Data gagal dihapus. Kembali ke public function
halaman '. __construct()
anchor('admin/barang', 'Data {
barang.', 'class="alert- parent::__construct();
link"')); $this->load-
>model('admin/nofaktur_model','f
redirect('admin/barang/error'); aktur');
} }
}
public function index($no =
public function cari($no = 0) null)
{ {
$barang = $this->barang- $faktur = $this->faktur-
>cari($no); >get_all_paged($no);
if ($barang) { if ($faktur) {
$this- $this-
>data['barang'] = $barang; >data['faktur'] = $faktur;
$this- $this-
>data['paging'] = $this->barang- >data['paging'] = $this->faktur-
>paging('pencarian', >paging('biasa',
site_url('admin/barang/cari/'), site_url('admin/nofaktur/halaman
4); /'), 3);
} else { } else {
$this- $this-
>data['barang'] = 'Data tidak >data['faktur'] = 'Tidak ada
ditemukan.'. data nomor faktur.';
anchor('admin/barang', ' }
Tampilkan semua barang.', $this->load->view($this-
'class="alert-link"'); >layout, $this->data);
} }
$this-
>data['form_action'] = public function tambah()
site_url('admin/barang/cari'); {
$this->load->view($this- $this->data['main_view']
>layout, $this->data); = 'admin/nofaktur_form';
} $this-
} >data['form_action'] =
'admin/nofaktur/tambah';
Nofaktur.php
<?php //data untuk form.
class nofaktur extends if (! $_POST){
Admin_Controller $faktur = (object)
{ $this->faktur->default_value;
public $data = array( $faktur ->no_faktur
'halaman' => 'nofaktur', = '';
'main_view' => $faktur ->Bulan =
'admin/nofaktur_list', '';
'title' => 'Nomor Faktur $faktur ->Tahun =
Pajak', '';
); }else{
L13

$faktur = $this- anchor('admin/nofaktur', 'Data


>input->post(null,true); nomor faktur.', 'class="alert-
} link"'));
//validasi
if (! $this->faktur- redirect('admin/nofaktur/error')
>validate('form_rules')) { ;
$this- }
>data['values'] = (object)
$faktur; // Data untuk form.
$this->load- if (!$_POST) {
>view($this->layout, $this- $data = (object)
>data); $faktur;
return; } else {
} $data = (object)
// Simpan ke DB. $this->input->post(null, true);
if ($this->faktur- }
>tambah($faktur)) { $this->data['values'] =
$this->session- $data;
>set_flashdata('pesan', 'Nomor
Faktur berhasil disimpan. // ValIDasi.
Kembali ke halaman ' . if (! $this->faktur-
anchor('admin/nofaktur', 'Nomor >validate('form_rules')) {
Faktur.', 'class="alert- $this-
link"')); >data['main_view'] =
'admin/nofaktur_form';
redirect('admin/nofaktur/sukses' $this-
); >data['form_action'] =
} else { site_url('admin/nofaktur/edit/'.
$this->session- $ID);
>set_flashdata('pesan_error', $this->load-
'Nomor Faktur gagal disimpan. >view($this->layout, $this-
Kembali ke halaman ' . >data);
anchor('admin/nofaktur', 'Nomor return;
Faktur.', 'class="alert- }
link"'));
// Simpan barang.
redirect('admin/nofaktur/error') if ($this->faktur-
; >edit($ID, $data)) {
} $this->session-
} >set_flashdata('pesan', 'Nomor
faktur berhasil disimpan.
public function Kembali ke halaman ' .
edit($ID=null) anchor('admin/nofaktur', 'nomor
{ faktur.', 'class="alert-
// Pastikan data barang link"'));
ada.
$faktur = $this->faktur- redirect('admin/nofaktur/sukses'
>get($ID); );
if (! $faktur) { } else {
$this->session- $this->session-
>set_flashdata('pesan_error', >set_flashdata('pesan_error',
'Data nomor faktur tidak ada. 'Nomor faktur gagal disimpan.
Kembali ke halaman ' . Kembali ke halaman ' .
L14

anchor('admin/nofaktur', 'nomor }
faktur.', 'class="alert-
link"')); public function cari($no = 0)
{
redirect('admin/nofaktur/error') $faktur = $this->faktur-
; >cari($no);
} if ($faktur) {
} $this-
>data['faktur'] = $faktur;
$this-
public function hapus($ID) >data['paging'] = $this->faktur-
{ >paging('pencarian',
// Pastikan data barang site_url('admin/nofaktur/cari/')
ada. , 4);
if (! $this->faktur- } else {
>get($ID)) { $this-
$this->session- >data['faktur'] = 'Data tidak
>set_flashdata('pesan_error', ditemukan.'.
'Data barang tidak ada. Kembali anchor('admin/nofaktur', '
ke halaman ' . Tampilkan semua faktur.',
anchor('admin/nofaktur', 'Data 'class="alert-link"');
nomor faktur.', 'class="alert- }
link"')); $this-
>data['form_action'] =
redirect('admin/nofaktur/error') site_url('admin/nofaktur/cari');
; $this->load->view($this-
} >layout, $this->data);
}
// Hapus
if ($this->faktur- public function sukses()
>delete($ID)) { {
$this->session- $this->data['main_view']
>set_flashdata('pesan', 'Data = 'sukses';
berhasil dihapus. Kembali ke $this->data['title'] =
halaman '. 'Data Nomor Faktur';
anchor('admin/nofaktur', 'Data $this->load->view($this-
nomor faktur.', 'class="alert- >layout, $this->data);
link"')); }

redirect('admin/nofaktur/sukses' public function error()


); {
} else { $this->data['main_view']
$this->session- = 'error';
>set_flashdata('pesan_error', $this->data['title'] =
'Data gagal dihapus. Kembali ke 'Data Nomor Faktur';
halaman '. $this->load->view($this-
anchor('admin/nofaktur', 'Data >layout, $this->data);
nomor faktur.', 'class="alert- }
link"'));
}
redirect('admin/nofaktur/error')
; Pajak.php
} <?php
L15

class Pajak extends $this-


Admin_Controller >data['paging'] = $this-
{ >fakturpajak->paging('biasa',
public $data = array( site_url('admin/fakturpajak/hala
'halaman' => 'pajak', man/'), 3);
'main_view' => } else {
'admin/pajak', $this-
'title' => 'Faktur >data['fakturpajak'] = 'Tidak
Pajak', ada data nomor faktur pajak.';
); }
$this->load->view($this-
public function index() >layout, $this->data);
{ }
$this->load->view($this-
>layout, $this->data); public function tambah()
} {
} $this->data['main_view']
= 'admin/buatfaktur_form';
Buatfaktur.php $this-
<?php >data['form_action'] =
class buatfaktur extends 'admin/buatfaktur/tambah';
Admin_Controller
{ //data untuk form.
public $data = array( if (! $_POST){
'halaman' => $fakturpajak =
'buatfaktur', (object) $this->fakturpajak-
'main_view' => >default_value;
'admin/buatfaktur_list', $fakturpajak -
'title' => 'Faktur >no_faktur = '';
Pajak', $fakturpajak -
); >npwp_penjual = '';
$fakturpajak -
>nama_penjual = '';
$fakturpajak -
public function >alamat_penjual = '';
__construct() $fakturpajak -
{ >npwp_pembeli = '';
parent::__construct(); $fakturpajak -
$this->load- >nama_pembeli = '';
>model('admin/buatfaktur_model', $fakturpajak -
'fakturpajak'); >alamat_pembeli = '';
} $fakturpajak ->type
= '';
public function index($no = $fakturpajak -
null) >no_rangka = '';
{ $fakturpajak -
$fakturpajak = $this- >no_mesin = '';
>fakturpajak- $fakturpajak -
>get_all_paged($no); >Harga_jual = '';
if ($fakturpajak) { $fakturpajak ->warna
$this- = '';
>data['fakturpajak'] = $fakturpajak ->tahun
$fakturpajak; = '';
L16

$fakturpajak - }
>diskon = '';
$fakturpajak - public function
>mediator = ''; edit($ID=null)
$fakturpajak - {
>jumlah = ''; // Pastikan data barang
$fakturpajak ->dpp = ada.
''; $fakturpajak = $this-
$fakturpajak ->ppn = >fakturpajak->get($ID);
''; if (! $fakturpajak) {
$fakturpajak - $this->session-
>tgl_faktur = ''; >set_flashdata('pesan_error',
}else{ 'Data nomor faktur pajak tidak
$fakturpajak = ada. Kembali ke halaman ' .
$this->input->post(null,true); anchor('admin/buatfaktur', 'Data
} faktur pajak.', 'class="alert-
//validasi link"'));
if (! $this-
>fakturpajak- redirect('admin/buatfaktur/error
>validate('form_rules')) { ');
$this- }
>data['values'] = (object)
$fakturpajak; // Data untuk form.
$this->load- if (!$_POST) {
>view($this->layout, $this- $data = (object)
>data); $fakturpajak;
return; } else {
} $data = (object)
// Simpan ke DB. $this->input->post(null, true);
if ($this->fakturpajak- }
>tambah($fakturpajak)) { $this->data['values'] =
$this->session- $data;
>set_flashdata('pesan', 'Nomor
faktur pajak berhasil disimpan. // ValIDasi.
Kembali ke halaman ' . if (! $this-
anchor('admin/buatfaktur', 'buat >fakturpajak-
faktur pajak.', 'class="alert- >validate('form_rules')) {
link"')); $this-
>data['main_view'] =
redirect('admin/buatfaktur/sukse 'admin/buatfaktur_form';
s'); $this-
} else { >data['form_action'] =
$this->session- site_url('admin/buatfaktur/edit/
>set_flashdata('pesan_error', '.$ID);
'Nomor fakturpajak gagal $this->load-
disimpan. Kembali ke halaman ' . >view($this->layout, $this-
anchor('admin/buatfaktur', 'buat >data);
faktur pajak.', 'class="alert- return;
link"')); }

redirect('admin/buatfaktur/error // Simpan barang.


'); if ($this->fakturpajak-
} >edit($ID, $data)) {
L17

$this->session-
>set_flashdata('pesan', 'Faktur redirect('admin/buatfaktur/sukse
pajak berhasil disimpan. Kembali s');
ke halaman ' . } else {
anchor('admin/buatfaktur', 'buat $this->session-
faktur pajak.', 'class="alert- >set_flashdata('pesan_error',
link"')); 'Data gagal dihapus. Kembali ke
halaman '.
redirect('admin/buatfaktur/sukse anchor('admin/buatfaktur', 'Data
s'); faktur pajak.', 'class="alert-
} else { link"'));
$this->session-
>set_flashdata('pesan_error', redirect('admin/buatfaktur/error
'Faktur pajak gagal disimpan. ');
Kembali ke halaman ' . }
anchor('admin/buatfaktur', 'buat }
faktur pajak.', 'class="alert-
link"')); public function cari($no = 0)
{
redirect('admin/buatfaktur/error $fakturpajak = $this-
'); >fakturpajak->cari($no);
} if ($fakturpajak) {
} $this-
>data['fakturpajak'] =
$fakturpajak;
public function hapus($ID) $this-
{ >data['paging'] = $this-
// Pastikan data barang >fakturpajak-
ada. >paging('pencarian',
if (! $this- site_url('admin/buatfaktur/cari/
>fakturpajak->get($ID)) { '), 4);
$this->session- } else {
>set_flashdata('pesan_error', $this-
'Data faktur tidak ada. Kembali >data['fakturpajak'] = 'Data
ke halaman ' . tidak ditemukan.'.
anchor('admin/buatfaktur', 'Data anchor('admin/buatfaktur', '
faktur pajak.', 'class="alert- Tampilkan semua faktur pajakk.',
link"')); 'class="alert-link"');
}
redirect('admin/buatfaktur/error $this-
'); >data['form_action'] =
} site_url('admin/buatfaktur/cari'
);
// Hapus $this->load->view($this-
if ($this->fakturpajak- >layout, $this->data);
>delete($ID)) { }
$this->session-
>set_flashdata('pesan', 'Data public function sukses()
berhasil dihapus. Kembali ke {
halaman '. $this->data['main_view']
anchor('admin/buatfaktur', 'Data = 'sukses';
faktur pajak.', 'class="alert- $this->data['title'] =
link"')); 'Data faktur pajak';
L18

$this->load->view($this- 'username' =>


>layout, $this->data); $login->username,
} 'password' =>
$login->password,
public function error() // Yang diblokir
{ tidak boleh login.
$this->data['main_view'] //'is_blokir' =>
= 'error'; '0',
$this->data['title'] = );
'Data faktur pajak';
$this->load->view($this- // User ada / cocok?
>layout, $this->data); if ($user = $this-
} >get($where)) {
// Buat data session
} $data = array(
'username' =>
FILE MODELS $user->username,
Login_model.php 'user_level' =>
<?php $user->level,
class Login_model extends 'login_status'
MY_Model => true,
{ 'user_id' =>
protected $_tabel = $user->id_user,
'tb_user';
'nama_user'=>$user->nama,
public $form_rules = array( );
array( $this->session-
'field' => >set_userdata($data);
'username',
'label' => // Return login
'Username', status, sukses.
'rules' => return true;
'trim|xss_clean|required' }
), // Return false jika
array( gagal.
'field' => return false;
'password', }
'label' =>
'Password', public function logout()
'rules' => {
'trim|xss_clean|required' $this->session-
), >unset_userdata(
); array('username' =>
'', 'login_status' => false,
public function 'user_level' => '')
login($login) );
{ $this->session-
$login = (object)$login; >sess_destroy();
$login->password = }
md5($login->password); }

$where = array( User_model.php


<?php
L19

class User_model extends 'rules' =>


MY_Model 'trim|xss_clean|required'
{ ),
protected $form_rules = );
array(
array( public $default_value =
'field' => 'nama', array(
'label' => 'Nama', 'nama' => '',
'rules' => 'username' => '',
'trim|xss_clean|required|max_len 'password' => '',
gth[32]' 'passconf' => '',
), 'level' => '',
array( 'is_blokir' => '',
'field' => );
'username',
'label' => public function
'Username', tambah($user)
'rules' => {
'trim|xss_clean|required|max_len $user = (object) $user;
gth[32]|callback__username_unik' unset($user->passconf);
), $user->password =
array( md5($user->password);
'field' => return $this-
'password', >insert($user);
'label' => }
'Password',
'rules' => public function edit($id,
'trim|xss_clean|callback__is_pas $user)
sword_required|max_length[32]|ma {
tches[passconf]' $user = (object) $user;
), unset($user->passconf);
array(
'field' => // Cek password
'passconf', if (empty($user-
'label' => >password)) {
'Konfirmasi Password', unset($user-
'rules' => >password);
'trim|xss_clean|callback__is_pas } else {
sconf_required|max_length[32]|ma $user->password =
tches[password]' md5($user->password);
), }
array( return $this-
'field' => 'level', >update($id, $user);
'label' => 'Level', }
'rules' => }
'trim|xss_clean|required'
), Penjual_model.php
array( <?php
'field' => class penjual_model extends
'is_blokir', MY_Model
'label' => 'Status {
Blokir',
protected $_per_page = 4;
L20

protected $form_rules = $penjual = (object)


array( $penjual;
array( return $this-
'field' => >insert($penjual);
'npwp_penjual', }
'label' => 'Nomor
NPWP', public function edit($ID,
'rules' => $penjual)
'trim|xss_clean|required|max_len {
gth[20]' $penjual = (object)
), $penjual;
array( return $this-
'field' => >update($ID, $penjual);
'nama_penjual', }
'label' => 'Nama
Penjual', public function cari($no)
'rules' => {
'trim|xss_clean|required|max_len $this->get_real_no($no);
gth[50]' $kata_kunci = $this-
), >input->get('kata_kunci', true);
array( $id =
'field' => get_id_value($kata_kunci);
'alamat_penjual',
'label' => 'Alamat return $this->db-
Penjual', >where("(id = '$id' OR
'rules' => npwp_penjual LIKE
'trim|xss_clean|required|max_len '%$kata_kunci%' OR nama_penjual
gth[50]' LIKE '%$kata_kunci%')")
), -
array( >limit($this->_per_page, $this-
'field' => >_no)
'tgl_daftar', -
'label' => 'Tanggal >order_by('id', 'ASC')
Daftar NPWP', -
'rules' => >get($this->_tabel)
'trim|xss_clean|required|max_len -
gth[17]|callback__format_tanggal >result();
' }
),
); public function
cari_num_rows()
public $default_value = {
array( $kata_kunci = $this-
'npwp_penjual' => '', >input->get('kata_kunci', true);
'nama_penjual' => '', $id =
'alamat_penjual' => '', get_id_value($kata_kunci);
'tgl_daftar' => '',
); return $this->db-
>where("(id = '$id' OR
npwp_penjual LIKE
public function '%$kata_kunci%' OR nama_penjual
tambah($penjual) LIKE '%$kata_kunci%')")
{
L21

- 'alamat_pembeli' => '',


>order_by('id', 'ASC')
- );
>get($this->_tabel)
-
>num_rows(); public function
} tambah($pembeli)
} {
// Proses insert data ke
Pembeli_model.php tabel tb_peserta.
<?php $id = $this-
class pembeli_model extends >insert($pembeli);
MY_Model if ($id) {
{ $npwp_pembeli =
public $_tabel = format_npwp_pembeli($id);
'tb_pembeli';
// Set data untuk
protected $_per_page = 10; ditampilkan.
protected $form_rules = $data_session =
array( array(
array( 'npwp_pembeli'
'field' => => $npwp_pembeli,
'npwp_pembeli', 'nama_pembeli'
'label' => 'Nomor => $pembeli->nama_pembeli,
NPWP', 'alamat_pembeli'
'rules' => => $pembeli->alamat_pembeli,
'trim|xss_clean|required|max_len
gth[20]' );
), $this->session-
array( >set_userdata($data_session);
'field' => return true;
'nama_pembeli', }
'label' => 'Nama return false;
pembeli', }
'rules' =>
'trim|xss_clean|required|max_len public function edit($id,
gth[50]' $pembeli)
), {
array( $pembeli = (object)
'field' => $pembeli;
'alamat_pembeli', unset($user->passconf);
'label' => 'Alamat
pembeli', // Cek password
'rules' => if (empty($user-
'trim|xss_clean|required|max_len >password)) {
gth[50]' unset($user-
), >password);
); } else {
$user->password =
public $default_value = md5($user->password);
array( }
'npwp_pembeli' => '', return $this-
'nama_pembeli' => '', >update($id, $pembeli);
L22

} protected $_per_page = 4;
protected $form_rules =
public function cari($no) array(
{ array(
$this->get_real_no($no); 'field' => 'type',
$kata_kunci = $this- 'label' => 'Type',
>input->get('kata_kunci', true); 'rules' =>
$id = 'trim|xss_clean|required|max_len
get_id_value($kata_kunci); gth[20]'
),
return $this->db- array(
>where("(id = '$id' OR 'field' =>
npwp_pembeli LIKE 'nama_barang',
'%$kata_kunci%' OR nama_pembeli 'label' => 'Nama
LIKE '%$kata_kunci%')") barang',
- 'rules' =>
>limit($this->_per_page, $this- 'trim|xss_clean|required|max_len
>_no) gth[50]'
- ),
>order_by('id', 'ASC') array(
- 'field' =>
>get($this->_tabel) 'harga_jual',
- 'label' => 'Harga
>result(); Jual',
} 'rules' =>
'trim|xss_clean|required|max_len
public function gth[25]'
cari_num_rows() ),
{ array(
$kata_kunci = $this- 'field' => 'bbn',
>input->get('kata_kunci', true); 'label' => 'BBN',
$id = 'rules' =>
get_id_value($kata_kunci); 'trim|xss_clean|required|max_len
gth[25]'
return $this->db- ),
>where("(id = '$id' OR );
npwp_pembeli LIKE
'%$kata_kunci%' OR nama_pembeli public $default_value =
LIKE '%$kata_kunci%')") array(
- 'type' => '',
>order_by('id', 'ASC') 'nama_barang' => '',
- 'harga_jual' => '',
>get($this->_tabel) 'bbn' => '',
- );
>num_rows();
}
} public function
tambah($barang)
Barang_model.php {
<?php $barang = (object)
class barang_model extends $barang;
MY_Model return $this-
{ >insert($barang);
L23

} }

public function edit($ID, Nofaktur_model.php


$barang) <?php
{ class nofaktur_model extends
$barang = (object) MY_Model
$barang; {
return $this- protected $_per_page = 4;
>update($ID, $barang); protected $form_rules =
} array(
array(
public function cari($no) 'field' =>
{ 'no_faktur',
$this->get_real_no($no); 'label' => 'Nomor
$kata_kunci = $this- Faktur',
>input->get('kata_kunci', true); 'rules' =>
$id = 'trim|xss_clean|required|max_len
get_id_value($kata_kunci); gth[20]'
),
return $this->db- array(
>where("(ID = '$id' OR type LIKE 'field' => 'Bulan',
'%$kata_kunci%' OR Nama_barang 'label' => 'Bulan',
LIKE '%$kata_kunci%')") 'rules' =>
- 'trim|xss_clean|required|max_len
>limit($this->_per_page, $this- gth[50]'
>_no) ),
- array(
>order_by('ID', 'ASC') 'field' => 'Tahun',
- 'label' => 'Tahun',
>get($this->_tabel) 'rules' =>
- 'trim|xss_clean|required|max_len
>result(); gth[25]'
} ),
);
public function
cari_num_rows() public $default_value =
{ array(
$kata_kunci = $this- 'no_faktur' => '',
>input->get('kata_kunci', true); 'Bulan' => '',
$id = 'Tahun' => '',
get_id_value($kata_kunci); );

return $this->db- public function


>where("(ID = '$id' OR type LIKE tambah($faktur)
'%$kata_kunci%' OR Nama_barang {
LIKE '%$kata_kunci%')") $faktur = (object)
- $faktur;
>order_by('ID', 'ASC') return $this-
- >insert($faktur);
>get($this->_tabel) }
-
>num_rows(); public function edit($ID,
} $faktur)
L24

{ Buatfaktur_model.php
$faktur = (object) <?php
$faktur; class buatfaktur_model extends
return $this- MY_Model
>update($ID, $faktur); {
} protected $_per_page = 4;
protected $form_rules =
array(
public function cari($no) array(
{ 'field' =>
$this->get_real_no($no); 'no_faktur',
$kata_kunci = $this- 'label' => 'Nomor
>input->get('kata_kunci', true); faktur pajak',
$id = 'rules' =>
get_id_value($kata_kunci); 'trim|xss_clean|required|max_len
gth[20]'
return $this->db- ),
>where("(id = '$id' OR no_faktur array(
LIKE '%$kata_kunci%' OR 'field' =>
nama_pembeli LIKE 'npwp_penjual',
'%$kata_kunci%')") 'label' => 'Nomor
- NPWP',
>limit($this->_per_page, $this- 'rules' =>
>_no) 'trim|xss_clean|required|max_len
- gth[20]'
>order_by('id', 'ASC') ),
- array(
>get($this->_tabel) 'field' =>
- 'nama_penjual',
>result(); 'label' => 'Nama
} Penjual',
'rules' =>
public function 'trim|xss_clean|required|max_len
cari_num_rows() gth[50]'
{ ),
$kata_kunci = $this- array(
>input->get('kata_kunci', true); 'field' =>
$id = 'alamat_penjual',
get_id_value($kata_kunci); 'label' => 'Alamat
Penjual',
return $this->db- 'rules' =>
>where("(id = '$id' OR no_faktur 'trim|xss_clean|required|max_len
LIKE '%$kata_kunci%' OR gth[50]'
nama_pembeli LIKE ),
'%$kata_kunci%')") array(
- 'field' =>
>order_by('id', 'ASC') 'npwp_pembeli',
- 'label' => 'Nomor
>get($this->_tabel) NPWP',
- 'rules' =>
>num_rows(); 'trim|xss_clean|required|max_len
} gth[20]'
} ),
L25

array( 'rules' =>


'field' => 'trim|xss_clean|required|max_len
'nama_pembeli', gth[5]'
'label' => 'Nama ),
pembeli', array(
'rules' => 'field' =>
'trim|xss_clean|required|max_len 'harga_jual',
gth[50]' 'label' => 'Harga
), Jual',
array( 'rules' =>
'field' => 'trim|xss_clean|required|max_len
'alamat_pembeli', gth[12]'
'label' => 'Alamat ),
pembeli', array(
'rules' => 'field' => 'diskon',
'trim|xss_clean|required|max_len 'label' => 'Diskon',
gth[50]' 'rules' =>
), 'trim|xss_clean|required|max_len
array( gth[12]'
'field' => 'type', ),
'label' => 'Type', array(
'rules' => 'field' =>
'trim|xss_clean|required|max_len 'mediator',
gth[20]' 'label' =>
), 'Mediator',
array( 'rules' =>
'field' => 'trim|xss_clean|required|max_len
'no_rangka', gth[12]'
'label' => 'Nomor ),
Rangka', array(
'rules' => 'field' => 'jumlah',
'trim|xss_clean|required|max_len 'label' => 'Jumlah',
gth[20]' 'rules' =>
), 'trim|xss_clean|required|max_len
array( gth[20]'
'field' => ),
'no_mesin', array(
'label' => 'Nomor 'field' => 'dpp',
Mesin', 'label' => 'DPP',
'rules' => 'rules' =>
'trim|xss_clean|required|max_len 'trim|xss_clean|required|max_len
gth[20]' gth[20]'
), ),
array( array(
'field' => 'warna', 'field' => 'ppn',
'label' => 'Warna', 'label' => 'PPN',
'rules' => 'rules' =>
'trim|xss_clean|required|max_len 'trim|xss_clean|required|max_len
gth[20]' gth[20]'
), ),
array( array(
'field' => 'tahun', 'field' =>
'label' => 'Tahun', 'tgl_faktur',
L26

'label' => 'Tanggal $this->get_real_no($no);


Cetak faktur', $kata_kunci = $this-
'rules' => >input->get('kata_kunci', true);
'trim|xss_clean|required|max_len $id =
gth[10]|callback__format_tanggal get_id_value($kata_kunci);
'
), return $this->db-
); >where("(id = '$id' OR no_faktur
LIKE '%$kata_kunci%' OR
public $default_value = nama_pembeli LIKE
array( '%$kata_kunci%')")
'no_faktur' => '', -
'npwp_penjual' => '', >limit($this->_per_page, $this-
'nama_penjual' => '', >_no)
'alamat_penjual' => '', -
'npwp_pembeli' => '', >order_by('id', 'ASC')
'nama_pembeli' => '', -
'alamat_pembeli' => '', >get($this->_tabel)
'type' => '', -
'no_rangka' => '', >result();
'no_mesin' => '', }
'warna' => '',
'tahun' => '', public function
'harga_jual' =>'', cari_num_rows()
'diskon' => '', {
'mediator' => '', $kata_kunci = $this-
'jumlah' => '', >input->get('kata_kunci', true);
'dpp' => '', $id =
'ppn' => '', get_id_value($kata_kunci);
'tgl_faktur' => '',
); return $this->db-
>where("(id = '$id' OR no_faktur
public function LIKE '%$kata_kunci%' OR
tambah($fakturpajak) nama_pembeli LIKE
{ '%$kata_kunci%')")
$fakturpajak = (object) -
$fakturpajak; >order_by('id', 'ASC')
return $this- -
>insert($fakturpajak); >get($this->_tabel)
} -
>num_rows();
public function edit($ID, }
$fakturpajak) }
{
$fakturpajak = (object) FILE VIEWS
$fakturpajak; Navbar.php
return $this- <?php $user_level = $this-
>update($ID, $fakturpajak); >session-
} >userdata('user_level')?>

<nav class="navbar navbar-


public function cari($no) inverse" role="navigation">
{ <div class="container">
L27

<!-- Link --> <?php if


<ul class="nav navbar- ($user_level ==
nav navbar-left"> 'Administrator') : ?>
<?php echo <?php echo
(isset($halaman) && $halaman == (isset($halaman) && $halaman ==
'home') ? '<li 'barang') ? '<li
class="active">' : '<li>'; ?> class="active">' : '<li>'; ?>
<?php echo anchor('admin', <?php echo
'<span class="glyphicon anchor('admin/barang', '<span
glyphicon-home"></span> class="glyphicon glyphicon-list-
Home');?></li> alt"></span> Data
Barang'); ?></li>
<?php if <?php endif ?>
($user_level ==
'Administrator') : ?> <?php echo
<?php echo (isset($halaman) && $halaman ==
(isset($halaman) && $halaman == 'pajak') ? '<li
'user') ? '<li class="active">' : '<li>'; ?>
class="active">' : '<li>'; ?> <?php echo anchor('admin/pajak',
<?php echo anchor('admin/user', '<span class="glyphicon
'<span class="glyphicon glyphicon-envelope"></span>
glyphicon-user"></span> Faktur Pajak'); ?></li>
User');?></li> <?php echo
<?php endif ?> (isset($halaman) && $halaman ==
'laporan') ? '<li
<?php if class="active">' : '<li>'; ?>
($user_level == <?php echo
'Administrator') : ?> anchor('admin/laporan', '<span
<?php echo class="glyphicon glyphicon-
(isset($halaman) && $halaman == envelope"></span>
'penjual') ? '<li Laporan'); ?></li>
class="active">' : '<li>'; ?>
<?php echo </ul>
anchor('admin/penjual', '<span <!-- end Link -->
class="glyphicon glyphicon-list-
alt"></span> Data
Penjual');?></li> <!-- Informasi login -->
<?php endif ?> <p class="navbar-text
navbar-right">
<?php if Login sebagai,
($user_level == <strong>
'Administrator') : ?> <?php echo
<?php echo anchor('admin/logout',
(isset($halaman) && $halaman == '<span
'pembeli') ? '<li class="glyphicon glyphicon-
class="active">' : '<li>'; ?> user"></span> ' . $this-
<?php echo >session->userdata('nama_user'),
anchor('admin/pembeli', '<span
class="glyphicon glyphicon-list- array('class' => 'navbar-link',
alt"></span> Data 'data-confirm' => 'Anda yakin
Pembeli'); ?></li> akan logout?')); ?>
<?php endif ?> </strong>
</p>
L28

<!-- end Informasi login <?php echo


--> form_label('Nomor Faktur',
'no_faktur', array('class' =>
</div> <!-- container --> 'control-label')) ?>
</nav> <?php echo
form_input('no_faktur', $values-
Home.php >no_faktur, 'id="no_faktur"
<div class="container"> class="form-control"
<?php $session_error = placeholder="Nomor Faktur"
$this->session- maxlength="20"') ?>
>flashdata('pesan_error') ?> <?php
<?php if (! set_validation_icon('no_faktur')
empty($session_error)): ?> ?>
<div class="alert alert- <?php echo
danger" role="alert"> form_error('no_faktur', '<span
<?php echo class="help-block">',
$session_error ?> '</span>');?>
</div> </div>
<?php endif ?>
<div class="jumbotron"> <!-- npwp_penjual -->
<h2 class="h1">Selamat <div class="form-group
Datang!</h2> has-feedback <?php
<p>Halo, <strong><?php set_validation_style('npwp_penju
echo $this->session- al')?>">
>userdata('nama_user');?></stron <?php echo
g>.</p> form_label('Nomor NPWP',
<p>Anda telah masuk 'npwp_penjual', array('class' =>
sebagai <i><?php echo $this- 'control-label')) ?>
>session- <?php echo
>userdata('user_level');?></i>.< form_input('npwp_penjual',
/p> $values->npwp_penjual,
<p>Silakan memilih menu 'id="npwp_penjual" class="form-
yang ada.</p> control" placeholder="Nomor
</div> NPWP" maxlength="20"') ?>
</div> <?php
set_validation_icon('npwp_penjua
Buatfaktur_form.php l') ?>
<div class="container"> <?php echo
<h2>Data Nomor Faktur</h2> form_error('npwp_penjual',
<hr> '<span class="help-block">',
'</span>');?>
<?php echo </div>
form_open($form_action,
array('ID'=>'myform', <!-- nama_penjual -->
'class'=>'myform', <div class="form-group
'role'=>'form')) ?> has-feedback <?php
set_validation_style('nama_penju
<!-- no_faktur --> al')?>">
<div class="form-group <?php echo
has-feedback <?php form_label('Nama Penjual',
set_validation_style('no_faktur' 'nama_penjual', array('class' =>
)?>"> 'control-label')) ?>
L29

<?php echo control" placeholder="Nomor


form_input('nama_penjual', NPWP" maxlength="20"') ?>
$values->nama_penjual, <?php
'id="nama_penjual" class="form- set_validation_icon('npwp_pembel
control" placeholder="Nama i') ?>
Penjual" maxlength="50"') ?> <?php echo
<?php form_error('npwp_pembeli',
set_validation_icon('nama_penjua '<span class="help-block">',
l') ?> '</span>');?>
<?php echo </div>
form_error('nama_penjual',
'<span class="help-block">', <!-- nama_pembeli -->
'</span>');?> <div class="form-group
</div> has-feedback <?php
set_validation_style('nama_pembe
<!-- alamat_penjual --> li')?>">
<div class="form-group <?php echo
has-feedback <?php form_label('Nama pembeli',
set_validation_style('alamat_pen 'nama_pembeli', array('class' =>
jual')?>"> 'control-label')) ?>
<?php echo <?php echo
form_label('Alamat Penjual', form_input('nama_pembeli',
'alamat_penjual', array('class' $values->nama_pembeli,
=> 'control-label')) ?> 'ID="nama_pembeli" class="form-
<?php echo control" placeholder="Nama
form_input('alamat_penjual', pembeli" maxlength="50"') ?>
$values->alamat_penjual, <?php
'id="alamat_penjual" set_validation_icon('nama_pembel
class="form-control" i') ?>
placeholder="Alamat Penjual" <?php echo
maxlength="50"') ?> form_error('nama_pembeli',
<?php '<span class="help-block">',
set_validation_icon('alamat_penj '</span>');?>
ual') ?> </div>
<?php echo
form_error('alamat_penjual', <!-- alamat_pembeli -->
'<span class="help-block">', <div class="form-group
'</span>');?> has-feedback <?php
</div> set_validation_style('alamat_pem
beli')?>">
<!-- npwp_pembeli --> <?php echo
<div class="form-group form_label('Alamat pembeli',
has-feedback <?php 'alamat_pembeli', array('class'
set_validation_style('npwp_pembe => 'control-label')) ?>
li')?>"> <?php echo
<?php echo form_input('alamat_pembeli',
form_label('Nomor NPWP', $values->alamat_pembeli,
'npwp_pembeli', array('class' => 'ID="alamat_pembeli"
'control-label')) ?> class="form-control"
<?php echo placeholder="Alamat pembeli"
form_input('npwp_pembeli', maxlength="50"') ?>
$values->npwp_pembeli,
'ID="npwp_pembeli" class="form-
L30

<?php
set_validation_icon('alamat_pemb <!-- nomor mesin -->
eli') ?> <div class="form-group
<?php echo has-feedback <?php
form_error('alamat_pembeli', set_validation_style('no_mesin')
'<span class="help-block">', ?>">
'</span>');?> <?php echo
</div> form_label('Nomor Mesin',
'no_mesin', array('class' =>
<!-- Type --> 'control-label')) ?>
<div class="form-group <?php echo
has-feedback <?php form_input('no_mesin', $values-
set_validation_style('type')?>"> >no_mesin, 'id="no_mesin"
<?php echo class="form-control"
form_label('Type', 'type', placeholder="Nomor Mesin"
array('class' => 'control- maxlength="20"') ?>
label')) ?> <?php
<?php echo set_validation_icon('no_mesin')
form_input('type', $values- ?>
>type, 'id="type" class="form- <?php echo
control" placeholder="type" form_error('no_mesin', '<span
maxlength="20"') ?> class="help-block">',
<?php '</span>');?>
set_validation_icon('type') ?> </div>
<?php echo
form_error('type', '<span <!-- Warna -->
class="help-block">', <div class="form-group
'</span>');?> has-feedback <?php
</div> set_validation_style('warna')?>"
>
<!-- nomor rangka --> <?php echo
<div class="form-group form_label('warna', 'warna',
has-feedback <?php array('class' => 'control-
set_validation_style('no_rangka' label')) ?>
)?>"> <?php echo
<?php echo form_input('warna', $values-
form_label('Nomor Rangka', >warna, 'id="warna" class="form-
'no_rangka', array('class' => control" placeholder="Warna"
'control-label')) ?> maxlength="20"') ?>
<?php echo <?php
form_input('no_rangka', $values- set_validation_icon('warna') ?>
>no_rangka, 'id="no_rangka" <?php echo
class="form-control" form_error('warna', '<span
placeholder="Nomor Rangka" class="help-block">',
maxlength="20"') ?> '</span>');?>
<?php </div>
set_validation_icon('no_rangka')
?> <!-- Tahun -->
<?php echo <div class="form-group
form_error('no_rangka', '<span has-feedback <?php
class="help-block">', set_validation_style('tahun')?>"
'</span>');?> >
</div>
L31

<?php echo class="form-control"


form_label('Tahun', 'tahun', placeholder="Diskon"
array('class' => 'control- maxlength="20"') ?>
label')) ?> <?php
<?php echo set_validation_icon('diskon') ?>
form_input('tahun', $values- <?php echo
>tahun, 'id="tahun" class="form- form_error('diskon', '<span
control" placeholder="Tahun" class="help-block">',
maxlength="20"') ?> '</span>');?>
<?php </div>
set_validation_icon('tahun') ?>
<?php echo <!-- Mediator -->
form_error('tahun', '<span <div class="form-group
class="help-block">', has-feedback <?php
'</span>');?> set_validation_style('mediator')
</div> ?>">
<?php echo
<!-- harga jual --> form_label('Mediator',
<div class="form-group 'mediator', array('class' =>
has-feedback <?php 'control-label')) ?>
set_validation_style('harga_jual <?php echo
')?>"> form_input('mediator', $values-
<?php echo >mediator, 'id="mediator"
form_label('Harga Jual', class="form-control"
'harga_jual', array('class' => placeholder="Mediator"
'control-label')) ?> maxlength="20"') ?>
<?php echo <?php
form_input('harga_jual', set_validation_icon('mediator')
$values->harga_jual, ?>
'id="harga_jual" class="form- <?php echo
control" placeholder="Harga form_error('mediator', '<span
Jual" maxlength="20"') ?> class="help-block">',
<?php '</span>');?>
set_validation_icon('harga_jual' </div>
) ?>
<?php echo <!-- jumlah -->
form_error('harga_jual', '<span <div class="form-group
class="help-block">', has-feedback <?php
'</span>');?> set_validation_style('jumlah')?>
</div> ">
<?php echo
<!-- diskon --> form_label('Jumlah ', 'jumlah',
<div class="form-group array('class' => 'control-
has-feedback <?php label')) ?>
set_validation_style('diskon')?> <?php echo
"> form_input('jumlah', $values-
<?php echo >jumlah, 'id="jumlah"
form_label('Diskon', 'diskon', class="form-control"
array('class' => 'control- placeholder="Jumlah"
label')) ?> maxlength="20"') ?>
<?php echo <?php
form_input('diskon', $values- set_validation_icon('jumlah') ?>
>diskon, 'id="diskon"
L32

<?php echo <?php echo


form_error('jumlah', '<span form_label('Tanggal Faktur',
class="help-block">', 'tgl_faktur', array('class' =>
'</span>');?> 'control-label col-sm-3')) ?>
</div>
<div class="input-
<!-- dpp --> group date" data-date-
<div class="form-group format="dd-mm-yyyy">
has-feedback <?php <?php echo
set_validation_style('dpp')?>"> form_input('tgl_faktur',
<?php echo date_to_id($values->tgl_faktur),
form_label('DPP', 'dpp', 'id="tgl_faktur" class="form-
array('class' => 'control- control" placeholder="Tanggal
label')) ?> Faktur" maxlength="10"') ?>
<?php echo <span
form_input('dpp', $values->dpp, class="input-group-addon"><i
'id="dpp" class="form-control" class="glyphicon glyphicon-
placeholder="DPP" calendar"></i></span>
maxlength="20"') ?> </div>
<?php
set_validation_icon('dpp') ?> <?php if
<?php echo (form_error('tgl_faktur')) : ?>
form_error('dpp', '<span <div class="col-sm-9
class="help-block">', col-sm-offset-3">
'</span>');?> <?php echo
</div> form_error('tgl_faktur', '<span
class="help-block">',
<!-- ppn --> '</span>');?>
<div class="form-group </div>
has-feedback <?php <?php endif ?>
set_validation_style('ppn')?>"> </div>
<?php echo <br>
form_label('PPN', 'ppn', <?php echo
array('class' => 'control- form_button(array('content'=>'Si
label')) ?> mpan', 'type'=>'submit',
<?php echo 'class'=>'btn btn-primary',
form_input('ppn', $values->ppn, 'data-confirm'=>'Anda yakin akan
'id="ppn" class="form-control" menyimpan data ini?')) ?>
placeholder="PPN"
maxlength="20"') ?> <?php echo form_close() ?>
<?php </div>
set_validation_icon('ppn') ?>
<?php echo Buatfaktur_list.php
form_error('ppn', '<span <div class="container"
class="help-block">', class="nofaktur">
'</span>');?> <h3><?php echo $title ?></h3>
</div> <hr>
<nav class="navbar navbar-
<!-- tgl cetak --> inverse" role="navigation">
<div class="form-group <ul class="nav navbar-nav
form-group-sm has-feedback <?php navbar-left">
set_validation_style('tgl_faktur <?php echo (isset($halaman)
')?>"> && $halaman == 'nofaktur') ?
L33

'<li class="active">' :
'<li>'; ?> <?php echo <!-- Form Pencarian -->
anchor('admin/nofaktur', 'Nomor <div class="col-xs-12
Faktur');?></li> col-md-4 pull-right">
<?php echo (isset($halaman) <form method="get"
&& $halaman == 'buatfaktur') ? action="<?php echo
'<li class="active">' : site_url('admin/buatfaktur/cari'
'<li>'; ?> <?php echo );?>" role="form" class="form-
anchor('admin/buatfaktur', 'Buat horizontal">
Faktur Pajak');?></li> <div
</ul> class="input-group">
</nav> <input
<hr> type="text" name="kata_kunci"
class="form-control"
<?php placeholder="Masukkan Nomor
// Nomor urut data di tabel. Faktur" id="kata_kunci"
$per_page = 12; value="<?php echo $this->input-
>get('kata_kunci')?>">
// Posisi nomor halaman (untuk <div
paging) jika user login / tidak. class="input-group-btn">
$login_status = $this->session- <button
>userdata('login_status'); class="btn btn-default"
$user_level = $this->session- type="submit"><i
>userdata('user_level'); class="glyphicon glyphicon-
$page = $this->uri->segment(4); search"></i></button>
</div>
// Nomor urut data di tabel. </div>
// Ini karena library pagination </form>
menggunakan option </div>
'use_page_numbers' => true. <!-- /Form Pencarian -->
if (empty($page)) { </div>
$no = 0; <!-- /Paging dan form
} else { pencarian -->
$no = ($page * $per_page -
$per_page); <?php if
} (!empty($fakturpajak) &&
?> is_array($fakturpajak)): ?>
<div class="row">
<div> <div class="col-md-12">
<h4>Daftar faktur pajak yang <table class="table
telah dibuat</h4> table-striped table-bordered
<!-- Paging dan form pencarian - table-hover table-condensed">
-> <thead>
<div class="row <tr>
navigasi_cari">
<!-- Paging --> <th><center>No</center></th>
<div class="col-xs-12
col-md-6"> <th><center>Nomor
<?php echo Faktur</center></th>
(!empty($paging)) ? $paging :
''?> <th><center>No NPWP
</div> Penjual</center></th>
<!-- /Paging -->
L34

// Link
<th><center>Nama edit, hapus, cetak
Penjual</center></th> $link_edit =
anchor('admin/buatfaktur/edit/'.
<th><center>Alamat $row->ID, '<span
Penjual</center></th> class="glyphicon glyphicon-
edit"></span>', array('title' =>
<th><center>No NPWP 'Edit'));
Pembeli</center></th> $link_hapus
=
<th><center>Nama anchor('admin/buatfaktur/hapus/'
pembeli</center></th> .$row->ID,'<span
class="glyphicon glyphicon-
<th><center>Alamat trash"></span>', array('title'
pembeli</center></th> => 'Hapus', 'data-confirm' =>
'Anda yakin akan menghapus data
<th><center>Type</center></th> ini?'));
$link_cetak
<th><center>nomor =
Rangka</center></th> anchor('admin/buatfaktur/cetak/'
.$row->ID,'<span
<th><center>Nomor class="glyphicon glyphicon-
Mesin</center></th> print"></span>', array('title'
=> 'Cetak'));
<th><center>Warna</center></th> ?>
<tr>
<th><center>Tahun</center></th>
<td><center><?php echo
<th><center>Harga ++$no ?></center></td>
Jual</center></th>
<td><center><?php echo $row-
<th><center>Diskon</center></th> >no_faktur ?></center></td>

<th><center>Mediator</center></t <td><center><?php echo $row-


h> >npwp_penjual ?></center></td>

<th><center>Jumlah</center></th> <td><center><?php echo


format_title_case($row-
<th><center>DPP</center></th> >nama_penjual) ?></center></td>

<th><center>PPN</center></th> <td><center><?php echo


format_title_case($row-
<th><center>Tanggal >alamat_penjual) ?></center></td
Cetak</center></th> >

<th><center>Aksi</center></th> <td><center><?php echo $row-


</tr> >npwp_pembeli ?></center></td>
</thead>
<tbody> <td><center><?php echo
<?php format_title_case($row-
foreach($fakturpajak as >nama_pembeli) ?></center></td>
$row): ?>
<?php <td><center><?php echo
L35

format_title_case($row- </div>
>alamat_pembeli) ?></center></td </div>
> <?php else: ?>
<div class="row">
<td><center><?php echo $row- <div class="col-md-12">
>type ?></center></td> <div class="alert
alert-warning alert-dismissible"
<td><center><?php echo $row- role="alert">
>no_rangka ?></center></td> <span
class="glyphicon glyphicon-info-
<td><center><?php echo $row- sign" aria-hidden="true"></span>
>no_mesin ?></center></td> <span class="sr-
only">Error:</span>
<td><center><?php echo $row- <button
>warna ?></center></td> type="button" class="close"
data-dismiss="alert"><span aria-
<td><center><?php echo $row- hidden="true">&times;</span><spa
>tahun ?></center></td> n class="sr-
only">Close</span></button>
<td><center><?php echo $row- <?php echo
>harga_jual ?></center></td> $fakturpajak ?>
</div>
<td><center><?php echo $row- </div>
>diskon ?></center></td> </div>
<?php endif ?>
<td><center><?php echo $row- <!-- /Form Pencarian -->
>mediator ?></center></td> <?php
echo
<td><center><?php echo $row- anchor('admin/buatfaktur/tambah'
>jumlah ?></center></td> , 'Tambah', 'class="btn btn-
primary"');
<td><center><?php echo $row- ?>
>dpp ?></center></td> </div> <!-- container -->
</div>
<td><center><?php echo $row- </div>
>ppn ?></center></td>
Penjual_form.php
<td><center><?php echo $row- <div class="container">
>tgl_faktur ?></center></td> <h2>Data Penjual</h2>
<hr>

<td><center><?php echo <?php echo


$link_edit.'&nbsp;&nbsp;&nbsp;&n form_open($form_action,
bsp;'.$link_hapus.'&nbsp;&nbsp;& array('ID'=>'myform',
nbsp;&nbsp;'.$link_cetak ?></cen 'class'=>'myform',
ter></td> 'role'=>'form')) ?>

</tr> <!-- npwp_penjual -->


<?php <div class="form-group
endforeach ?> has-feedback <?php
</tbody> set_validation_style('npwp_penju
</table> al')?>">
L36

<?php echo <?php echo


form_label('Nomor NPWP', form_input('alamat_penjual',
'npwp_penjual', array('class' => $values->alamat_penjual,
'control-label')) ?> 'id="alamat_penjual"
<?php echo class="form-control"
form_input('npwp_penjual', placeholder="Alamat Penjual"
$values->npwp_penjual, maxlength="50"') ?>
'id="npwp_penjual" class="form- <?php
control" placeholder="Nomor set_validation_icon('alamat_penj
NPWP" maxlength="20"') ?> ual') ?>
<?php <?php echo
set_validation_icon('npwp_penjua form_error('alamat_penjual',
l') ?> '<span class="help-block">',
<?php echo '</span>');?>
form_error('npwp_penjual', </div>
'<span class="help-block">',
'</span>');?> <!-- tgl_daftar -->
</div> <div class="form-group
has-feedback <?php
<!-- nama_penjual --> set_validation_style('tgl_daftar
<div class="form-group ')?>">
has-feedback <?php <?php echo
set_validation_style('nama_penju form_label('Tanggal Daftar
al')?>"> NPWP', 'tgl_daftar',
<?php echo array('class' => 'control-
form_label('Nama Penjual', label')) ?>
'nama_penjual', array('class' => <div class="input-
'control-label')) ?> group date" data-date-
<?php echo format="dd-mm-yyyy">
form_input('nama_penjual', <?php echo
$values->nama_penjual, form_input('tgl_daftar',
'id="nama_penjual" class="form- date_to_id($values->tgl_daftar),
control" placeholder="Nama 'id="tgl_daftar" class="form-
Penjual" maxlength="50"') ?> control" placeholder="Tanggal
<?php Daftar NPWP" maxlength="17"') ?>
set_validation_icon('nama_penjua <span class="input-
l') ?> group-addon"><i class="glyphicon
<?php echo glyphicon-calendar"></i></span>
form_error('nama_penjual', </div>
'<span class="help-block">', <?php echo
'</span>');?> form_error('tgl_daftar', '<span
</div> class="help-block">',
'</span>');?>
<!-- alamat_penjual --> </div>
<div class="form-group <br>
has-feedback <?php <?php echo
set_validation_style('alamat_pen form_button(array('content'=>'Si
jual')?>"> mpan', 'type'=>'submit',
<?php echo 'class'=>'btn btn-primary',
form_label('Alamat Penjual', 'data-confirm'=>'Anda yakin akan
'alamat_penjual', array('class' menyimpan data ini?')) ?>
=> 'control-label')) ?>
<?php echo form_close() ?>
L37

</div> <input
type="text" name="kata_kunci"
Penjual_list.php class="form-control"
<?php placeholder="Masukkan Nomor NPWP
// Nomor urut data di tabel. atau Nama" id="kata_kunci"
$per_page = 1; value="<?php echo $this->input-
>get('kata_kunci')?>">
// Posisi nomor halaman (untuk <div
paging) jika user login / tidak. class="input-group-btn">
$login_status = $this->session- <button
>userdata('login_status'); class="btn btn-default"
$user_level = $this->session- type="submit"><i
>userdata('user_level'); class="glyphicon glyphicon-
$page = $this->uri->segment(4); search"></i></button>
</div>
// Nomor urut data di tabel. </div>
// Ini karena library pagination </form>
menggunakan option </div>
'use_page_numbers' => true. <!-- /Form Pencarian -->
if (empty($page)) { </div>
$no = 0; <!-- /Paging dan form
} else { pencarian -->
$no = ($page * $per_page -
$per_page); <?php if (!empty($penjual)
} && is_array($penjual)): ?>
?> <div class="row">
<div class="col-md-12">
<div class="container"> <table class="table
<h2>Data Penjual</h2> table-striped table-bordered
<hr> table-hover table-condensed">
<!-- Paging dan form <thead>
pencarian --> <tr>
<div class="row
navigasi_cari"> <th><center>No</center></th>
<!-- Paging -->
<div class="col-xs-12 <th><center>No
col-md-6"> NPWP</center></th>
<?php echo
(!empty($paging)) ? $paging : <th><center>Nama
''?> Penjual</center></th>
</div>
<!-- /Paging --> <th><center>Alamat
Penjual</center></th>
<!-- Form Pencarian -->
<div class="col-xs-12 <th><center>Tanggal Daftar
col-md-4 pull-right"> NPWP</center></th>
<form method="get"
action="<?php echo <th><center>Aksi</center></th>
site_url('admin/penjual/cari');? </tr>
>" role="form" class="form- </thead>
horizontal"> <tbody>
<div <?php
class="input-group"> foreach($penjual as $row): ?>
L38

<?php <div class="alert


// Link alert-warning alert-dismissible"
edit, hapus, cetak role="alert">
$link_edit = <span
anchor('admin/penjual/edit/'.$ro class="glyphicon glyphicon-info-
w->ID, '<span class="glyphicon sign" aria-hidden="true"></span>
glyphicon-edit"></span>', <span class="sr-
array('title' => 'Edit')); only">Error:</span>
$link_hapus <button
= type="button" class="close"
anchor('admin/penjual/hapus/'.$r data-dismiss="alert"><span aria-
ow->ID,'<span class="glyphicon hidden="true">&times;</span><spa
glyphicon-trash"></span>', n class="sr-
array('title' => 'Hapus', 'data- only">Close</span></button>
confirm' => 'Anda yakin akan <?php echo
menghapus data ini?')); $pembeli ?>
?> </div>
<tr> </div>
</div>
<td><center><?php echo <?php endif ?>
++$no ?></center></td> <!-- /Form Pencarian -->
<?php
<td><center><?php echo $row- echo
>npwp_penjual ?></center></td> anchor('admin/penjual/tambah',
'Tambah', 'class="btn btn-
<td><center><?php echo primary"');
format_title_case($row- ?>
>nama_penjual) ?></center></td> </div> <!-- /container -->

<td><center><?php echo
format_title_case($row-
>alamat_penjual) ?></center></td
>

<td><center><?php echo
format_title_case($row-
>tgl_daftar) ?></center></td>

<td><center><?php echo
$link_edit.'&nbsp;&nbsp;&nbsp;&n
bsp;'.$link_hapus ?></center></t
d>
</tr>
<?php
endforeach ?>
</tbody>
</table>

</div>
</div>
<?php else: ?>
<div class="row">
<div class="col-md-12">
L39

Formulir SPK
L40

FORMULIR FAKTUR PAJAK


L41

FAKTUR PAJAK LEMBAR KE-2


L42

LAPORAN PENJUALAN

Anda mungkin juga menyukai