TUGAS AKHIR
Oleh :
MUSTAFID KHUMAEDY
351461001
Oleh:
MUSTAFID KHUMAEDY
351461001
Pada
1. Tugas akhir ini adalah asli dan belum pernah diajukan untuk mendapatkan
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
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
Pernyataan ini saya buat dengan sesungguhnya dan apabila di kemudian hari
terbukti adanya kebohongan dalam pernyataan ini, maka saya bersedia menerima
Mustafid Khumaedy
351461001
i
ABSTRAK
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.
iii
UCAPAN TERIMAKASIH
laporan tugas akhir ini. Laporan tugas akhir ini di ajukan untuk memenuhi dan
melengkapi salah satu syarat akademik dalam kelulusan jenjang Strata Satu (S1)
Penyusunan tugas akhir ini tidak lepas dari dukungan dan bimbingan dari
berbagai pihak, maka pada kesempatan ini penulis ingin menyampaikan rasa
1. Bapak Ivan Aries Setiawan, Dr., selaku Ketua Sekolah Tinggi Manajemen
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
dan saran-sarannya.
4. Sahabat saya yang biasa dipanggil Vie, yang menemani dari awal proses studi
5. Segenap Dosen, staf dan karyawan STMIK-IM yang telah mendidik dan
6. Tentunya teruntuk kedua orang tua yang selalu mendoakan dan menemani
iv
7. Rekan-rekan di STMIK-IM yang seringkali menjadi tempat sharing, baik yang
Akhir kata, saya berharap semoga dengan selesainya laporan Tugas Akhir
ini dapat memberikan manfaat bagi semua pihak serta menambah wawasan bagi
v
KATA PENGANTAR
MOTOR BANDUNG, disusun untuk melengkapi tahapan akhir studi yang dijalani di
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.
Mustafid Khumaedy
351461001
vi
DAFTAR ISI
ix
DAFTAR GAMBAR
xi
DAFTAR TABEL
xii
BAB I
PENDAHULUAN
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
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
menjadi sebuah sarana komunikasi yang paling cepat untuk saat ini, sehingga menjadi
sebuah elemen yang sangat penting di setiap kehidupan masyarakat, termasuk dalam
Perusahaan umumnya memiliki divisi keuangan yang harus memiliki kinerja yang
baik. Salah satu cara agar divisi keuangan bisa memiliki kinerja yang baik adalah dengan
dalam hal ini sistem informasi faktur pajak penjualan, merupakan salah satu sistem
informasi yang sangat vital pada suatu perusahaan yang penerapannya bisa menggunakan
dalam komputer dan memudahkan dalam pembuatan laporan faktur pajak penjualan baik
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
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
1. Masih menggunakan sistem manual, yaitu dengan Microsoft Excel tanpa sistem
2. User tidak dapat mencari dan mengecek nomor faktur pajak yang telah terdaftar
secara efektif karena belum menggunakan sistem yang baik sehingga rentan
3. Sering timbul permasalahan dalam penyimpanan data, karena tidak ada kata
4. Sistem yang digunakan saat ini belum bisa menyelesaikan pekerjaan dengan
cepat dan akurat sehingga untuk membuat laporan pajak membutuhkan waktu
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.
faktur pajak.
2. Bagaimana agar user dapat mencari dan mengecek faktur pajak yang telah
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
4. Bagaimana merancang suatu sistem yang bisa digunakan dengan cepat dan
Agar masalah yang diteliti tidak menyimpang dari inti penelitian, maka diperlukan
adanya suatu batasan masalah dalam perancangan Sistem Informasi Penerbitan Faktur
1. Sistem yang dirancang hanya Sistem Informasi Penerbitan Faktur Pajak Penjualan
2. Hanya membahas sistem informasi faktur pajak penjualan dan tidak membahas
mengenai faktur pajak pembelian sepeda motor serta pelaporan PPn dan PPh baik
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
1. Studi Pustaka, yaitu teknik yang dilakukan dengan cara mempelajari buku-buku,
2. Interview atau Wawancara, yaitu bentuk komunikasi dua arah yang memungkinkan
kompeten. Dalam hal ini wawancara dilakukan dengan Bagian Administrasi Pajak
3. Observasi, yaitu teknik yang dilakukan dengan cara mengamati secara langsung
kegiatan yang terjadi sehingga dapat memberikan gambaran yang lebih jelas
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
Menurut Pressman (2002:39) agar model Prototype ini berhasil dengan baik,
maka perlu mendefinisikan aturan-aturan main terlebih dahulu, yaitu pelanggan dan
Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat lunak aktual
kebutuhan user.
output).
dan penyempurnaan.
user.
b. Implementasi.
Prototype bisa menjadi metode yang efektif bagi rekayasa perangkat lunak karena
biaya yang digunakan relatif tidak terlalu besar, tidak memerlukan waktu yang lama, dan
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
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
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
Berisi mengenai kesimpulan dari pembahasan pada bab-bab sebelumnya dan beberapa
sistem nantinya.
BAB II
LANDASAN TEORI
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
sistem, yaitu:
1. Pendekatan Prosedur
tahapan-tahapan instruksi yang menerangkan apa yang harus dikerjakan, siapa yang
2. Pendekatan Elemen
berkaitan yang beroperasi bersama untuk mencapai beberapa sasaran atau maksud. Dapat
9
10
juga diartikan bahwa sistem sebagai suatu komponen atau variabel yang terorganisir,
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
1. Komponen Sistem
atau bagian-bagian dari sistem yang saling bekerjasama membentuk suatu kesatuan.
Setiap subsistem mempunyai karakteristik dari sistem yang menjalankan suatu fungsi
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
Lingkungan luar dari suatu sistem adalah apapun di luar batas dari sistem yang
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
4. Penghubung Sistem
lainnya. Melalui penghubung ini kemungkinan sumber-sumber daya mengalir dari satu
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
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
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
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:
komponen lainnya. Karena sistem memiliki tujuan berbeda untuk setiap kasus yang
terjadi yang ada didalam sistem tersebut, oleh karena itu sistem dapat diklasifikasikan
Sistem abstrak merupakan suatu sistem yang terdiri dari suatu susunan yang
teratur dari beberapa gagasan yang memiliki ketergantungan satu sama lain dan sistem
Sistem fisik merupakan sistem yang ada secara fisik dan memiliki seperangkat
unsur yang secara bersama-sama melakukan operasi untuk mencapai tujuan bersama.
informasi atau energi dengan lingkungan luar subsistem yang lainnya dan dipengaruhi
oleh lingkungan.
Sistem ini merupakan sistem yang tidak terjadi pertukaran bahan, informasi atau
system)
Sistem ini beroperasi dengan tingkah laku dan hasil yang dapat diprediksikan,
interaksi antar bagian dapat dideteksi dengan pasti sehingga keluarannya dapat
diramalkan.
Sistem ini merupakan sistem yang hasil atau kondisi masa depannya tidak dapat
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.
tertentu yang belum mempunyai arti bagi penggunanya. Untuk mempunyai arti maka data
tersbeut diolah dengan menggunakan sebuah pengolah data, data yang masih mentah
Informasi adalah data yang telah diolah menjadi bentuk yang lebih berarti dan
berguna bagi penerimanya untuk mengambil keputusan masa kini maupun masa yang
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
Mnurut Agus Mulyanto (2009:20) kualitas informasi adalah sejauh mana informasi secara
konsisten dapat memenuhi persyaratan dan harapan semua pihak yang membutuhkan
15
dipengaruhi oleh tiga hal seperti yang ditunjukkan pada gambar 2.1.
Kualitas
Informasi
1. Akurat (accuracy)
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.
harus sangat diperhatikan agar informasi yang dibutuhkan dapat disampaikan kepada
Data merupakan bentuk yang paling sederhana dan belum bisa menjadi suatu
informasi. Untuk menjadi sebuah informasi, data diolah dengan model tertentu.
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
Proses
(Model)
Data Informasi
(Input) (Output)
Basis
Data
Data Penerima
(Diterima)
Hasil Keputusan
Keputusan Tindakan
Menurut Sutarman (2012:14) nilai informasi ditentukan oleh lima hal, yaitu:
masalah.
e. Informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya
Menurut Alter dalam Abdul Kadir (2014:9) sistem informasi adalah kombinasi
antar prosedur kerja, informasi, orang, dan teknologi informasi yang diorganisasikan
perangkat keras dan perangkat lunak computer serta perangkat manusia yang akan
mengolah data menggunakan perangkat keras memegang peranan yang penting dalam
sistem informasi.
1. Blok masukan (input block), input memilki data masuk ke dalam sistem informasi,
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
4. Blok teknologi (technology block), blok ini digunakan untuk menerima input,
secara keseluruhan. Teknologi ini terdiri dari tiga bagian utama, yaitu: teknisi
5. Blok basis data (database block), basis data merupakan kumpulan data yang saling
2.5. Analisis dan Perancangan Berorientasi Objek (Object Oriented Analysis and
dimana aplikasi beroperasi. Masukan awal fase analisis adalah pernyataan masalah yang
masalah beserta operasi-operasi dan atribut-atribut yang diasosiasikan dengan kelas itu,
objek adalah untuk mengembangkan model yang mendeskripsikan perangkat lunak yang
sasaran. Model analisis akan mengekspresikan informasi, perilaku dan fungsi di dalam
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
bisnis. Pada level enterprise dan bisnis dapat digabungkan dengan pendekatan
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
memperkenalkan proses untuk analisis sistem, sejumlah diagram dan notasi di proses
a. Metode Booch
e. Metode Wirfs-Brock
muncul antara lain dari keberagaman yang dibahas di perancangan berorientasi objek.
a. Abstraksi
b. Modularitas
d. Hirarki
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
c. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan
sistem.
hal, penggunaan notasi yang terdefinisi baik dan ekspresif adalah penting pada proses
UML, yaitu:
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
sebagainya. Simbol-simbol pada use case dapat dilihat pada tabel 2.1.
2. Class Diagram
Class diagram menggambarkan struktur dan deskripsi class, package dan object
beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi dan lain-lain.
23
b. Atribut
c. Metoda
b. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya.
3. Activity Diagram
Activity diagram adalah tipe khusus dari state diagram yang memperlihatkan
Diagram ini penting dalam pemodelan fungsi-fungsi suatu sistem dan memberi
Sebuah aktivitas dapat direalisasikan oleh suatu use case atau lebih. aktivitas
4. Sequence Diagram
Diagram ini menunjukkan interaksi yang terjadi antar objek. Diagram ini
basis keberurutan waktu dari pesan-pesan yang terjadi. Simbol-simbol pada sequence
Statechart diagram atau biasa juga disebut state diagram digunakan untuk
dan kegiatan apa saja yang dapat merubah kondisi/keadaan tersebut. Simbol-simbol pada
6. Collaboration Diagram
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
7. Component Diagram
pada komponen-komponen yang telah ada sebelumnya. Diagram ini berhubungan dengan
class diagram dimana komponen secara tipikal dipetakan ke dalam satu atau lebih kelas-
8. Deployment Diagram
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.
Menggambarkan bagian-
Node bagian hardware dalam
sebuah sistem.
problem domain dan kemudian mencari pemecahan masalah yang logical dalam suatu
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.
Secara umum sebuah sistem basis data merupakan sistem yang terdiri atas
kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data di sebuah sistem
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
sedemikian rupa agar dapat dimanfaatkan kembali dengan cepat dan mudah.
b. Kumpulan data yang saling berhubungan yang disimpan secara bersama dan tanpa
a. Komputer (satu untuk yang stand-alone atau lebih dari satu untuk sistem jaringan).
c. Memori sekunder yang off-line (Tape atau Removable Disk untuk kperluan back up
data).
31
dilakukan.
Komponen kedua dalam sebuah sistem basis data adalah perangkat lunak
(software). Paling tidak ada 3 jenis perangkat lunak yang terlibat dalam pengelolaan dan
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.
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.
data (end-user). Melalui perangkat lunak ini, pengguna (end-user) akan dengan mudah
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
Sebuah bahasa basis data biasanya dapat dipilah ke dalam 2 kelompok, yaitu:
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
sesungguhnya dan akan selalu diakses dalam suatu operasi basis data sebelum suatu file
DML berisi kumpulan perintah yang berguna untuk melakukan manipulasi dan
pengambilan data pada suatu basis data. Manipulasi data dapat berupa:
mengakses data, sebagaimana direpresentasikan oleh model data. Ada 2 jenis DML,
yaitu:
b. Non Prosedural, yang membuat pengguna dapat menentukan apa yang diinginkan tanpa
menyebutkan bagaimana cara mendapatkannya DML juga sering disebut Query Language.
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
c. Faktur merupakan salah satu dokumen dasar sebagi bukti pencatatan bagi perusahaan
penjual dan perusahaan pembeli. Faktur ini merupakan bukti transaksi penjualan yang
“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).
Ciri-ciri atau unsur pokok yang terdapat pada definisi pajak, yaitu:
peraturan perundang-undangan yang telah disetujui oleh rakyat melalui lembaga perwakilan
34
rakyat. Hasil persetujuan tersebut dituangkan dalam suatu undang-undang yang harus
undang no. 28 Tahun 2007, fiskus berwenang untuk memberi sanksi-sanksi pidana fiskal
(pajak) dan sanksi administratif termasuk wewenang melakukan penyitaan terhadap harta
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.
secara langsung, karena apa yang telah dibayarkan wajib pajak hanya dapat merasakan
secara langsung, karena apa yang telah dibayarkan wajib pajak kepada pemerintah digunakan
untuk keperluan umum pemerintah. Wajib pajak hanya dapat merasakan secara tidak langsung
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
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
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
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
Wajib pajak adalah orang pribadi atau badan meliputi pembayar pajak, pemotong
pajak dan pemungut pajak yang mempunyai hak dan kewajiban sesuai dengan ketentuan
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
d. Untuk keperluan yang berhubungan dengan dokumen perpajakan sehingga semua yang
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
1. Sudut pandang ekonomi, beban pajak dialihkan kepada pihak lain, yaitu pihak yang
2. Sudut pandang yuridis, tanggung jawab pembayaran pajak kepada kas Negara tidak
1. Penyerahan Barang Kena Pajak di dalam daerah Pabean yang dilakukan oleh
pengusaha
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
7. Ekspor Barang Kena Pajak Tidak Berwujud oleh Pengusaha kena Pajak
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
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
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.
Pertambahan Nilai yang terutang maka pada setiap penyerahan Barang Kena Pajak atau
39
Jasa Kena Pajak, Pengusaha Kena Pajak yang bersangkutan diwajibkan untuk membuat
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
Netralitas Pajak Pertambahan Nilai (PPN) dibentuk oleh dua factor, yaitu:
principle).
yaitu:
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
memiliki beberapa kelebihan yang tidak dimiliki oleh Pajak Penjualan. Meskipun
demikian, sebagai suatu sistem, ternyata PPN juga tidak bebas sama sekali dari beberapa
kekurangan.
3) Pajak Pertambahan Nilai atas perolehan Barang Modal dapat diperoleh kembali
pada bulan perolehan, sesuai dengan tipe konsumsi (consumption type VAT) dan
predikat sebagai “money maker” karena konsumen selaku pemikul beban pajak
tidak merasa dibebani oleh pajak tersebut sehingga memudahkan fiskus untuk
memungutnya.
1) Biaya administrasi relative tinggi bila dibandingkan dengan Pajak Tidak Langsung
konsumen, semakin ringan bebab pajak yang dipikul, dan sebaliknya semakin
rendah tingkat kemampuan konsumen, semakin berat beban pajak yang dipikul.
3) PPN sangat rawan dari upaya penyelundupan pajak, kerawanan ini ditimbulkan
kembali pajak yang dibayar oleh pengusaha dalam bulan yang sama tanpa terlebih
4) Konsekuensi dari kelemahan tersebut pada sub 3), PPN menuntut tingkat
pengawasan yang lebih cermat oleh administrasi pajak terhadap tingkat kepatuhan
Nilai (Value Added Tax) dapat dibedakan ke dalam tiga tipe, yaitu:
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:
Barang Kena Pajak yang digunakan dalam proses produksi (dalam arti luas)
Dalam net income value added tax, pengurangan pembelian barang modal dari
dasar pengenaan pajak tidak dimungkinkan. Pembelian barang modal hanya boleh
hasil bersih dalam rangka penghitungan Pajak Penghasilan. Oleh karena itu dasar
pengenaan Pajak Pertambahan Nilai akan sama dengan dasar pengenaan Pajak
Penghasilan.
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
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.
a. Bukti pungutan PPN dan PPnBM bagi penjual BKP/JKP dan/atau DJBC atas impor
BKP
Faktur pajak yang bentuk dan isinya telah ditentukan oleh peraturan perundang-
undangan. Dalam Faktur pajak harus dicantumkan keterangan tentang penyerahan BKP
7) Nama, jabatan dan tanda tangan yang berhak menandatangani Faktur Pajak
Faktur Pajak Standar yang memuat lebih dari satu transaksi dalam satu bulan
takwim untuk pelanggan yang sama. Dalam pembuatan Faktur Pajak Gabungan sama
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
Dengan demikian, faktur pajak dalam hal ini faktur pajak penjualan dengan jenis
faktur pajak standar, sederhana dan gabungan yang digunakan pada penerbitan faktur
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:
Sehingga format Kode dan Nomor Seri Faktur Pajak secara keseluruhan menjadi
sebagai berikut:
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
Diisi sesuai dengan nama, alamat dan Nomor Pokok Wajib Pajak pembeli Barang
a. Nomor Urut
b. Nama BKP/JKP
keterangan jumlah unit dan harga per unit dari BKP yang diserahkan.
c. Harga Jual
e. Potongan Harga
Diisi dengan total nilai potongan harga BKP/JKP yang diserahkan, jika terdapat
f. Uang Muka
Diisi dengan nilai uang muka yang telah diterima dari penyerahan BKP/JKP
46
Diisi dengan jumlah harga jual dikurangi dengan potongan harga dan uang muka
Diisi dengan jumlah pajak pertambahan nilai yang terutang sebesar 10% dari
i. Tanggal
Diisi dengan nama dan tandatangan pejabat yang telah ditunjuk oleh PKP untuk
menandatangani faktur pajak, yang telah diberitahukan secara tertulis kepada kantor
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-
Dengan menggunakan framework, kita tidak perlu membuat program dari awal,
tetapi kita sudah diberikan library fungsi-fungsi yang sudah diorganisasi untuk
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
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
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.
anda akan memiliki struktur yang baku, sehingga kita dapat menggunakan
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
HTML
PHP, Function, Query,
Access Database, …
View Model
a. Model
Model mengelola basis data (RDBMS) seperti MySQL ataupun Oracle RDMS.
Model berhubungan dengan database sehingga biasanya dalam model akan berisi class
data (delete), mencari data (search), dan mengambil data (select) pada database. Selain
itu juga model akan berhubungan dengan perintah-perintah query sebagai tindak lanjut
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
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,
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP
diantaranya Linux, Unix, Windows, Mac OsX, RISC OS, dan operating system lainnya.
Selain itu ada beberapa kelebihan lain yang dimiliki oleh PHP, yaitu:
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
PHP dapat digunakan dengan dan tanpa web server atau web browser. Dengan
memanfaatkan PHP Parser saja kita sudah bisa menggunakan PHP pada command line
Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet
servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, dan lain-lain.
Program PHP dapat kita buat menggunakan teknik program Procedural, Object
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.
Salah satu fitur yang paling signifikan dalam PHP adalah dukungan penggunaan
2.13. MySQL
diantaranya:
51
c. Tidak semua orang bisa mengakses basis data yang ada sehingga memberikan
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
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
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
operasi dan merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai
server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP server,
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
b. phpMyAdmin, adalah bagian dari XAMPP yang digunakan untuk mengelola basis
data MySQL.
c. Control Panel, berfungsi untuk mengelola layanan (services) maupun admin dari
2. Web Browser
Web browser adalah aplikasi yang digunakan untuk menampilkan informasi dari
web server. Web browser memungkinkan user untuk menjelajahi World Wide Web
mengetahui alamat halaman web yang akan diakses, kemudian web browser menunggu
informasi yang diminta dikirimkan kembali oleh web server, sehingga user dapat melihat
Contoh beberapa web browser yang popular dipakai, antara lain, Google Chrome,
World Wide Web (WWW), sering disingkat web, adalah suatu layanan di dalam
1. Informasi disimpan di dalam dokumen yang sering kita sebut halaman web
2. Halaman web adalah file-file yang disimpan dalam komputer. Komputer tersebut
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.
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
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
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
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
Hingga tahun 2015, Merdeka Motor memiliki 1 kantor pusat dan 6 kantor cabang.
A. Visi
“customer dan kawan seumur hidup”. Membangun dan membina “keluarga jaringan
layanan solusi motor Honda yang handal, bersemangat melayani, terpercaya dan saling
B. Misi
Merdeka Motor senantiasa memberi “layanan sepenuh hati dan solusi yang terbaik
2.7.
Direktur Utama
Administrasi Administrasi
Divisi Penjualan Divisi Penjualan
Honda Toyota
KaBag.
Administrasi Pajak
Administrasi Pajak
1. Direktur Utama
2. Direktur
baik Honda maupun Toyota, mengontrol penjualan, pengeluaran dan hal-hal administratif
3. Kepala Cabang
berupa data penjualan, data pembelian, data keuangan, stok barang dan unit kendaraan
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
bermunculan di masyarakat.
7. Administrasi Pajak
seperti Faktur Pajak, PPN, PPH, laporan keuangan, Laba/Rugi, Neraca dan lain-lain.
BAB III
PEMBAHASAN
Sehingga user dapat bekerja dengan cepat dan akurat serta dapat mengurangi
resiko terjadinya kesalahan dan manipulasi data dalam proses pembuatan faktur pajak
tersebut.
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
3. Sering timbul permasalahan dalam penyimpanan data, karena tidak ada kata kunci
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
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
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
Pengajuan Faktur
Pajak
Pembuatan Data Faktur
Ada NPWP Faktur Pajak Pajak
Faktur Pajak
Standar/Sederhana
SPK
End
Phase
2. Data konsumen yang telah membeli sepeda motor diisikan kedalam SPK (Surat
3. SPK kemudian diajukan kepada kepala cabang untuk disetujui. Setelah disetujui,
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
6. Faktur pajak dibuat 2 (dua) rangkap dengan rangkap pertama untuk konsumen dan
Adapun dokumen yang digunakan dan dihasilkan dalam proses tersebut adalah:
Sebagai dokumen dasar yang dikeluarkan oleh divisi penjualan dan digunakan
b. Data salesman, yaitu sebagai data orang yang menjual unit motor kepada
c. Data unit motor, yaitu data lengkap unit motor yang dijual dan akan dikirim
kepada konsumen berupa type motor, nomor rangka, nomor mesin, tahun,
SPK yang digunakan sebanyak rangkap tiga, yaitu untuk arsip konsumen, arsip
administrasi Honda dan arsip administrasi pajak, untuk lebih jelasnya dapat dilihat
Tanda tangan
pemesan &
penerima
Disetujui oleh
Spv salesman
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
a. Nomor kartu NPWP, memiliki kode seri 15 digit, dengan format sebagai berikut:
(2) Nomor registrasi dari Kantor Pusat Direktorat Jenderal Pajak kepada Kantor
(5) Status Wajib Pajak, “000” berarti tunggal/pusat sementara “001”, “002”
berarti cabang.
Nomor NPWP
Nama Wajib
Pajak Alamat
Wajib Pajak
Kantor Tanggal
Penerbit NPWP daftar
3. Faktur Pajak
perusahaan dan laporan yang diminta oleh konsumen untuk bahan pelaporan pajak.
d. Data unit motor yaitu, type, nomor rangka, nomor mesin, warna, tahun dan harga
Adapun analisis sistem yang diusulkan akan dijelaskan pada sub bab dibawah ini.
menunjang sistem informasi faktur pajak dapat berjalan sesuai dengan harapan.
Sub bab ini menjelaskan tentang spesifikasi perangkat keras bagi komputer user
guna mendukung sistem ini dapat berjalan serta menggambarkan bagaimana sistem ini
dibuat.
63
Pada tabel 3.1 dijelaskan spesifikasi perangkat keras (hardware) yang digunakan
Nama Keterangan
Pada tabel 3.2 dijelaskan spesifikasi minimum perangkat keras (hardware) yang
dibutuhkan user untuk menggunakan sistem informasi penerbitan faktur pajak ini agar
berjalan optimal.
Nama Keterangan
RAM 2 GB
VGA 512MB
Hard Disk 80 GB
Sub bab ini menjelaskan tentang spesifikasi perangkat lunak bagi komputer user
guna mendukung sistem ini dapat berjalan serta menggambarkan bagaimana sistem ini
dibuat
Pada tabel 3.3 dijelaskan spesifikasi perangkat lunak (software) yang digunakan
Nama Keterangan
Database MySQL
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
Nama Keterangan
Database MySQL
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
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.
Pada use case diagram ini, digambarkan keterkaitan aktor dengan objek pada
sistem informasi faktur pajak, seperti pada gambar 3.2 berikut ini.
66
antara lain:
Deskripsi : Aktor masuk ke halaman login admin dan mengisi form login
AKTOR SISTEM
1. User memasukkan username dan
password kemudian login
2. Verifikasi bahwa username dan
password adalah benar.
3. Menampilkan menu utama
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
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
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
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
Deskripsi : user merupakan admin pajak. Terdapat dua sub menu dari
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
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
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
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
sistem.
Skenario:
user yaitu menambah user baru, edit data dan hapus data.
Skenario:
penjual yaitu menambah penjual baru, edit data dan hapus data.
Skenario:
pembeli yaitu menambah pembeli baru, edit data dan hapus data.
Skenario:
barang yaitu menambah barang baru, edit data dan hapus data.
79
Skenario:
nomor faktur yaitu menambah nomor faktur baru, edit data dan
hapus data.
80
Skenario:
faktur pajak yaitu membuat faktur pajak baru, edit data, hapus data
Skenario:
menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain
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
(set_data).
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.
bagian perangkat lunak mana yang berjalan pada perangkat keras mana.
Gambar 3.21 merupakan deployment diagram dari sistem informasi yang akan
class dan mendeskripsikannya kedalam atribut atau field, serta menentukan deskripsi
untuk type, size dan primary key yang ada pada tabel.
3 nama_penjual Varchar 40
4 alamat_penjual Varchar 50
5 Created_at Datetime
6 Updated_at Datetime
89
sistem dari segi tampilan atau display serta kemudahan user dalam pengoperasiannya.
Gambar 3.22 menunjukkan struktur menu yang ada pada sistem informasi
termasuk sistem informasi yang telah dibuat sebelumnya sehingga siap digunakan pada
waktunya.
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
4.1. Kesimpulan
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
2. Pembuatan sistem informasi penerbitan faktur pajak ini menggunakan frame work
CodeIgniter karena memiliki kelebihan yaitu konsep dari sistem yang sudah
sehingga sistem ini dapat dikembangkan dengan lebih mudah dan lebih cepat sesuai
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
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)
2. Apabila dilakukan pengembangan menjadi sistem yang lebih besar tentunya harus
A. BUKU ILMIAH
Al-Bahra bin Ladjamudin, Analisis dan Desain Sistem Informasi, Yogyakarta:
Graha Ilmu, 2005.
B. WEBSITE
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
} $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;
$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->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"'));
$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->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'); }
}
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
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"')); }
$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"')); }
$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
} 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
} }
{ 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
<?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
'<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>
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">×</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>
</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
<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.' &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
LAPORAN PENJUALAN