perancangan aplikasi point of sale (pos) berbasis web
TRANSCRIPT
SKRIPSI
PERANCANGAN APLIKASI POINT OF SALE (POS) BERBASIS
WEB DENGAN PHP DAN MYSQLI UNTUK CV. MULTI CITRA
KIMIA
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Komputer
Disusun oleh:
Nama : Kemas Aulia Haldi
NIM : 311510106
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PELITA BANGSA
KABUPATEN BEKASI
2019
vi
UCAPAN TERIMAKASIH
Segala puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang
telah melimpahkan kasih dan karunia-Nya sehingga penulis dapat menyelesaikan
penulisan Skripsi ini dengan tepat waktu. Penulisan Laporan Tugas Akhir dengan judul
“PERANCANGAN APLIKASI POINT OF SALE (POS) BERBASIS WEB
DENGAN PHP DAN MYSQLI UNTUK CV. MULTI CITRA KIMIA“, adapun
maksud dari penulisan Skripsi ini untuk memenuhi salah satu syarat kelulusan Program
Studi Teknologi Informasi Jenjang Pendidikan Strata-1 di Universitas Pelita Bangsa.
Penulis menyadari bahwa penulisan Skripsi ini tidak terlepas dari bimbingan,
bantuan dan dukungan dari berbagai pihak. Untuk itu, pada kesempatan yang
berbahagia ini, penulis mengucapkan terima kasih kepada:
1. Putri Anggun Sari, S.Pt., M.Si Selaku Dekan Fakultas Teknik Universitas
Pelita Bangsa.
2. Bapak Aswan S, Sunge. S.E, M.Kom. Selaku Ketua Program Studi
Universitas Pelita Bangsa.
3. Hamzah Muhammad M, S.K.M., M.M, selaku Rektor Universitas Pelita
Bangsa.
4. Bapak Muhammad Fatchan S.Kom., M.Kom. Selaku Pembimbing I
Skripsi yang telah banyak memberika saran dan bimbingan dalam proses
pembuatan project aplikasi untuk Skripsi ini.
5. Bapak Hamzah Muhammad M, S.K.M., M.M Selaku Dosen Pembimbing
II Skripsi yang telah banyak memberikan saran dan bimbingan dalam
proses penulisan Skripsi ini.
6. Seluruh Dosen Teknik Informatika Universitas Pelita Bangsa.
7. Bapak Susanto Santoso Selaku Pemilik CV. Multi Citra Kimia.
8. Muhammad Irfansyah sebagai penasehat dalam membuat aplikasi.
vii
9. Orang tua dan keluarga besar yang selalu memberikan do’a, dukungan
dan semangat yang tinggi untuk dapat menyelesaikan penulisan Skripsi
ini.
10. Teman-teman yang selalu memberikan dorongan dan selalu memberikan
motivasi bagi penulis yang menyelesaikan penulisan Skripsi ini.
11. Seluruh pihak yang belum disebutka diatas, karena begitu banyak nya
bantuan, kesabaran, dan gagasan-gagasan yang diberikan kepada penulis,
sehingga penulis Skripsi ini lebih berjalan dengan mudah dan lancar.
Penulis juga menyadari bahwa penulisan Skripsi ini masih terdapat banyak
kelemahan dan kekurangannya. Maka dari itu, penulis akan dengan senang hati
menerima segala saran dan kritik yang ditunjukan untuk menyempurnakan adanya
Skrpsi ini. Akhir kata, semoga Penulisan Skripsi ini bermanfaat bagi rekan-rekan dan
semua pihak yang membutuhkan.
Bekasi, 1 Oktober 2019
Kemas Aulia Haldi
viii
ABSTRAK
Di zaman teknologi komputerisasi di perusahaan perdagangan barang yang
berskala kecil ataupun menengah di Indonesia masih banyak yang belum digunakan.
Seperti pada toko kimia bernama CV. Multi Citra Kimia masih belum menggunakan
teknologi komputer. Disana masih menggunakan cara manual dalam melakukan
pendataan transaksi karena masih menggunakan sistem buku untuk mencatat transaksi
pembelian dan penjualan, dan perhitungan pendapatan dan pengeluaran terkadang
masih keliru. Aplikasi point of sale ini akan dirancang dengan menggunakan metode
prototyping dan menggunakan PHP dan MySQLi karena menghemat waktu.
Tujuannya adalah agar CV. Multi Citra Kimia dapat melakukan semua pendataan
transaksi penjualan dan pembelian tanpa harus tulis tangan dibuku serta dapat melihat
stok barang langsung di aplikasi. Hasil dari penelitian ini adalah aplikasi Point of Sale
yang berbasis web dapat mendokumentasikan dan menghasilkan laporan secara detail
mengenai hal-hal yang berkaitan dengan proses jual–beli dan transaksi yang dilakukan
oleh pihak customer dan gudang sehingga mempermudah aktivitas serta dapat
mengakomodasi aktivitas jual-beli dan lebih cepat dan efisien. Kesimpulannya adalah
dengan aplikasi Point of Sale di CV. Multi Citra Kimia dapat menghemat waktu dalam
melakukan pendataan barang, transaksi penjualan dan pembelian, calon customer dapat
melihat stok barang sebelum membeli barang, dan sebagai penghitung pengeluaran dan
pendapatan secara otomatis.
Kata Kunci : CV. Multi Citra Kimia, Aplikasi Point Of Sale, Metode Prototyping,
PHP, MySQLi.
ix
ABSTRACT
In the age of computerized technology in small and medium scale goods trading
companies in Indonesia, there were still many that had not been used. As in the
chemical shop called CV. Multi Citra Kimia still doesn't use computer technology.
There is still using the manual method of conducting transaction data collection
because it still uses the book system to record purchases and sales transactions, and
the calculation of income and expenses is sometimes still wrong. This point of sale
application will be designed using prototyping method and using PHP and MySQLi
because it saves time. The aim is that CV. Multi Citra Kimia can do all the data
collection of sales and purchases without having to hand write a book and can see the
stock of goods directly in the application. The results of this study are the web-based
Point of Sale application that can document and produce detailed reports on matters
relating to the buying and selling process and transactions carried out by customers
and warehouses so as to facilitate activities and be able to accommodate buying and
selling activities and faster and efficient. The conclusion is with the Point of Sale
application in CV. Multi Citra Kimia can save time in data collection of goods, sales
and purchase transactions, prospective customers can see the stock of goods before
buying goods, and as a count of expenditure and income automatically.
Keywords: CV. Multi Citra Kimia, Point Of Sale Application, Prototyping Method,
PHP, MySQLi.
x
DAFTAR ISI
HALAMAN PERSETUJUAN .................................................... Error! Bookmark not defined.
HALAMAN PENGESAHAN................................................................................................... ii
PERNYATAAN KEASLIAN SKRIPSI ..................................... Error! Bookmark not defined.
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS .................................................. Error! Bookmark not defined.
UCAPAN TERIMAKASIH ...................................................................................................... vi
DAFTAR ISI ..............................................................................................................................x
DAFTAR TABEL .................................................................................................................... xv
DAFTAR GAMBAR ............................................................................................................. xvii
DAFTAR LAMPIRAN ......................................................................................................... xviii
BAB I ........................................................................................................................................ 1
PENDAHULUAN .................................................................................................................... 1
1.1 Latar Belakang Masalah ................................................................................................. 1
1.2 Identifikasi Masalah ........................................................................................................ 3
1.3 Rumusan Masalah ........................................................................................................... 4
1.4 Batasan Masalah ............................................................................................................. 4
1.5 Tujuan Dan Manfaat ....................................................................................................... 5
1.5.1 Tujuan ...................................................................................................................... 5
1.5.2 Manfaat .................................................................................................................... 5
1.6 Sistematika Penulisan ..................................................................................................... 6
BAB II ....................................................................................................................................... 8
TINJAUAN PUSTAKA ........................................................................................................... 8
2.1 Tinjauan Penelitian ......................................................................................................... 8
2.2 Landasan Teori .............................................................................................................. 12
2.2.1 Pengertian Sistem Informasi .................................................................................. 12
2.2.2 Pengertian Point Of Sale (POS) ............................................................................. 13
2.2.3 PHP ........................................................................................................................ 13
2.2.4 XAMPP .................................................................................................................. 14
xi
2.2.5 Pengertian MySQL ................................................................................................ 14
2.2.6 Pengertian Pejualan ................................................................................................ 14
2.2.7 Metode Prototyping................................................................................................ 15
2.2.7.1 Tahapan Metode Prototype ............................................................................. 15
2.2.7.2 Pengumpulan Kebutuhan ................................................................................ 16
2.2.7.3 Membangun Prototype .................................................................................... 16
2.2.7.4 Evaluasi Prototype .......................................................................................... 16
2.2.7.5 Mengkodekan Sistem ...................................................................................... 16
2.2.7.6 Menguji Sistem ............................................................................................... 16
2.2.7.7 Evaluasi Sistem ............................................................................................... 17
2.2.7.8 Menggunakan Sistem ...................................................................................... 17
2.2.7.9 Kelebihan Metode Prototype .......................................................................... 17
2.2.7.10 Kelemahan Metode Prototype ..................................................................... 17
2.2.8 Diagram UML (Unified Modelling Language) ............................................... 18
2.2.8.1 Usecase Diagram............................................................................................. 19
2.2.8.2 Activity Diagram............................................................................................. 21
2.2.8.3 Sequence Diagram .......................................................................................... 22
2.2.8.4 Class Diagram ................................................................................................. 24
2.2.8.5 User Interface (UI) .......................................................................................... 25
2.2.9 Database .......................................................................................................... 26
2.2.10 Cascading Style Sheets ................................................................................... 27
2.2.11 HTML ............................................................................................................. 27
2.2.12 Website ........................................................................................................... 27
2.2.13 Web Server ...................................................................................................... 27
BAB III ................................................................................................................................... 28
METODE PENELITIAN ........................................................................................................ 28
3.1 Objek Penelitian ............................................................................................................ 28
3.1.1 Sejarah .................................................................................................................... 28
3.1.2 Visi CV. Multi Citra Kimia .................................................................................... 28
3.1.4 Misi CV. Multi Citra Kimia ................................................................................... 29
xii
3.2 Jenis Pengumpulan Data .............................................................................................. 29
3.3 Metode Pengumpulan Data ........................................................................................... 30
3.4 Teknik Analisis Data ..................................................................................................... 31
3.5 Analisa Sistem yang Berjalan ................................................................................. 33
3.6 Membuat Database di MySQLi(XAMPP) .................................................................... 34
3.7 Sistem Yang Diusulkan Untuk CV. Multi Citra Kimia ................................................ 36
3.7.1 Gambaran Sistem ............................................................................................ 37
3.7.2 Use Case Diagram Sistem Yang Diusulkan .................................................... 38
3.7.3 Activity Diagram (Login) ............................................................................... 41
3.7.4 Activity Diagram (Pembeli Memesan Barang) ............................................... 43
3.7.5 Activity Diagram (Pegawai Toko Menerima Pesanan Barang) ...................... 45
3.7.6 Activity Diagram(Transaksi) .......................................................................... 47
3.7.7 Activity Diagram (Transaksi Pembelian Stok Barang) ................................... 49
3.7.8 Activity Diagram (Input Data Barang) ........................................................... 51
3.7.9 Activity Diagram (Edit Data Barang) ............................................................. 53
3.7.10 Activity Diagram (Membuat Laporan) ........................................................... 55
3.7.11 Activity Diagram (Melihat Laporan) .............................................................. 57
3.7.12 Activity Diagram (Logout) ............................................................................. 59
3.7.13 Sequence Diagram (Login) ............................................................................. 60
3.7.14 Sequence Diagram (Pembeli Memesan Barang) ............................................. 62
3.7.15 Sequence Diagram (Pegawai Toko Menerima Pesanan) ................................ 65
3.7.16 Sequence Diagram (Transaksi) ....................................................................... 68
3.7.17 Sequence Diagram (Transaksi Pembelian Stok Barang) ................................ 70
3.7.18 Sequence Diagram (Input Data Barang) ......................................................... 72
3.7.19 Sequence Diagram (Edit Data Barang) ........................................................... 74
3.7.20 Sequence Diagram (Membuat Laporan) ......................................................... 76
3.7.21 Sequence Diagram (Melihat Laporan) ............................................................ 78
3.7.22 Sequence Diagram (Logout) ........................................................................... 79
3.7.23 Class Diagram Aplikasi Point Of Sale ............................................................ 80
3.7.24 User Interface Login ....................................................................................... 81
xiii
3.7.25 User Interface Dashboard Utama (Pemilik Toko) .......................................... 82
3.7.26 User Interface Dashboard Utama (Pegawai Toko) ......................................... 83
3.7.27 User Interface Dashboard Utama (Admin Gudang) ........................................ 84
3.7.28 User Interface Tabel Nama Barang ................................................................. 85
3.7.29 User Interface Tabel Karyawan ...................................................................... 86
3.7.30 User Interface Tabel Nama Pelanggan ............................................................ 87
3.7.31 User Interface Penjualan ................................................................................. 88
3.7.32 User Interface Pembelian ................................................................................ 89
3.7.33 User Interface Tambah Barang (Input Data Barang) ...................................... 90
3.7.34 User Interface Tambah Data Karyawan .......................................................... 91
3.7.35 User Interface Tambah Data Pelanggan .......................................................... 92
3.7.36 User Interface Tabel Supplier ......................................................................... 93
3.7.37 User Interface Tambah Data Supplier ............................................................. 94
3.7.38 User Interface Laporan .................................................................................... 95
3.7.39 User Interface Laporan Penjualan ................................................................... 96
3.7.40 User Interface Laporan Pembelian .................................................................. 97
3.8 Pengujian................................................................................................................. 97
3.8.1 Rencana Pengujian .......................................................................................... 98
BAB IV ................................................................................................................................... 98
HASIL DAN PEMBAHASAN ............................................................................................... 98
4.1 Hasil ........................................................................................................................ 98
4.1.1 Spesifikasi Sistem ........................................................................................... 98
4.1.2 Implementasi Tampilan Sistem ....................................................................... 99
4.1.3 Hasil Pengujian ............................................................................................. 116
4.2 Pembahasan Hasil Pengujian ................................................................................ 122
BAB V .................................................................................................................................. 124
PENUTUP ............................................................................................................................ 124
5.1 Kesimpulan ........................................................................................................... 124
5.2 Saran ..................................................................................................................... 124
DAFTAR PUSTAKA ........................................................................................................... 126
xiv
LAMPIRAN .......................................................................................................................... 128
xv
DAFTAR TABEL
Tabel 1 (Usecase Diagram)..........................................................................................19
Tabel 2 (Activity Diagram)..........................................................................................21
Tabel 3 (Sequence Diagram)........................................................................................23
Tabel 4 (Class Diagram)..............................................................................................25
Tabel 5 (Pengujian Black Box)..................................................................................116
xvi
DAFTAR GAMBAR
Gambar 2.1 Alur Metode Prototyping..........................................................................18
Gambar 3.1 Activity Diagram Sistem Yang Berjalan..................................................33
Gambar 3.2 Database Untuk Aplikasi Point Of Sale di MySQLi................................35
Gambar 3.3 Database Barang Untuk Aplikasi Point Of Sale Di MySQLi...................35
Gambar 3.4 Usecase Diagram Sistem Yang Diusulkan...............................................38
Gambar 3.5 Activity Diagram (Login) Sistem Yang Diusulkan..................................41
Gambar 3.6 Activity Diagram (Pembeli Memesan Barang)........................................43
Gambar 3.7 Activity Diagram (Pegawai Toko Menerima Pesanan Barang)...............45
Gambar 3.8 Activity Diagram (Transaksi)...................................................................47
Gambar 3.9 Activity Diagram (Transaksi Pembelian Stok Barang).............................49
Gambar 3.10 Activity Diagram (Input Data Barang)...................................................51
Gambar 3.11 Activity Diagram (Edit Data Barang).....................................................53
Gambar 3.12 Activity Diagram (Membuat Laporan)...................................................55
Gambar 3.13 Activity Diagram (Melihat Laporan)......................................................57
Gambar 3.14 Activity Diagram (Logout).....................................................................59
Gambar 3.15 Sequence Diagram (Login)....................................................................60
Gambar 3.16 Sequence Diagram (Pembeli Memesan Barang)...................................62
Gambar 3.17 Sequence Diagram (Pegawai Toko Menerima Pesanan).......................65
Gambar 3.18 Sequence Diagram (Transaksi)..............................................................68
Gambar 3.19 Sequence Diagram (Transaksi Pembelian Stok Barang).......................70
Gambar 3.20 Sequence Diagram (Input Data Barang)................................................72
Gambar 3.21 Sequence Diagram (Edit Data Barang)..................................................74
Gambar 3.22 Sequence Diagram (Membuat Laporan)................................................76
Gambar 3.23 Sequence Diagram (Melihat Laporan)...................................................78
xvii
Gambar 3.24 Sequence Diagram (Logout)..................................................................79
Gambar 3.25 Class Diagram Aplikasi Point Of Sale...................................................80
Gambar 3.26 User Interface Login..............................................................................81
Gambar 3.27 User Interface Dashboard Utama (Pemilik Toko).................................82
Gambar 3.28 User Interface Dashboard Utama (Pegawai Toko)................................83
Gambar 3.29 User Interface Dashboard Utama (Admin Gudang)..............................84
Gambar 3.30 User Interface Tabel Nama Barang.......................................................85
Gambar 3.31 User Interface Tabel Karyawan........................... .................................86
Gambar 3.32 User Interface Tabel Nama Pelanggan..................................................87
Gambar 3.33 User Interface Penjualan........................................................................88
Gambar 3.34 User Interface Pembelian.......................................................................89
Gambar 3.35 User Interface Tambah Barang (Input Data Barang).............................90
Gambar 3.36 User Interface Tambah Data Karyawan.................................................91
Gambar 3.37 User Interface Tambah Data Pelanggan..................................................92
Gambar 3.38 User Interface Tabel Supplier.................................................................93
Gambar 3.39 User Interface Tambah Data Supplier....................................................94
Gambar 3.40 User Interface Laporan...........................................................................95
Gambar 3.41 User Interface Laporan Penjualan..........................................................96
Gambar 3.42 User Interface Laporan Pembelian.........................................................97
xviii
DAFTAR LAMPIRAN
1. Wawancara Penelitian ............................................................................................... 128
2. Source Code Login ................................................................................................... 132
3. Source Code Menu Utama/Dashboard Utama .......................................................... 135
4. Source Code Barang ................................................................................................. 151
5. Source Code Edit Data Barang ................................................................................. 152
6. Source Code Tambah Barang ................................................................................... 155
7. Source Code Hapus Data Barang .............................................................................. 158
8. Source Code Penjualan ............................................................................................. 158
9. Source Code Struk .................................................................................................... 166
10. Source Code tambah penjualan ................................................................................. 169
11. Source Code Kurang (Diskon Harga) ....................................................................... 169
12. Source Code Hapus ................................................................................................... 170
13. Source Code Supplier ................................................................................................ 170
14. Source Code Tambah Supplier .................................................................................. 171
15. Source Code Hapus Supplier ..................................................................................... 172
16. Source Code Beranda ................................................................................................ 173
17. Source Code Pembelian ............................................................................................ 182
18. Source code struk pembelian ..................................................................................... 189
19. Source Code Tambah Pembelian .............................................................................. 192
20. Source Code Layout Karyawan ................................................................................. 193
21. Source Code Tambah Data Karyawan ...................................................................... 195
22. Source Code Edit Data Karyawan ............................................................................. 197
23. Source Code Hapus Data Karyawan ......................................................................... 199
24. Source Code Pemesanan ........................................................................................... 200
25. Source Code Satuan Barang ...................................................................................... 203
26. Source Code Tambah Satuan .................................................................................... 204
27. Source Code Edit Satuan ........................................................................................... 205
xix
28. Source Code Hapus Satuan ....................................................................................... 207
29. Source Code Laporan ................................................................................................ 207
30. Source Code Laporan Penjualan ............................................................................... 210
31. Source Code Laporan Pembelian .............................................................................. 213
32. Source Code Riwayat Penjualan ............................................................................... 215
33. Source Code Riyawat Pembelian .............................................................................. 217
34. Source Code Detail Penjualan ................................................................................... 218
35. Source Code Detail Pembelian .................................................................................. 226
36. Source Code Cetak 1 (Penjualan) .............................................................................. 233
37. Source Code Cetak 2 (Pembelian) ............................................................................ 239
38. Source Code Pengaturan Point Of Sale ..................................................................... 241
39. Source Code Logout Aplikasi ................................................................................... 241
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Seperti yang kita lihat dewasa ini, banyak sekali perubahan yang terjadi di
bidang komunikasi. Dimulai dari bentuk komunikasi yang sederhana sampai pada
komunikasi elektronik. Perubahan yang cepat terutama pada abad 20 ini oleh sejumlah
ahli dikatakan sebagai revolusi komunikasi. Ilmu pengetahuan yang selama ini kita
pelajari selalu mengalami perubahan dan perkembangan yang tidak mendadak [1].
Teknologi informasi merupakan satu dari sekian banyak hal yang dibutuhkan dalam
perkembangan bisnis di dunia tanpa terkecuali Indonesia, bahkan kita dapat
menyebutnya sebagai faktor pokok bagi perkembangan dunia bisnis saat ini.
Di mana-mana sudah menggunakan TI dalam memproses kegiatan bisnisnya.
Hal itu jelas saja karena TI memberikan kemudahan bagi para pebisnis untuk
melakukan kegiatan bisnisnya [2]. Pada zaman sekarang masih banyak yang
menggunakan komputer karena dapat digunakan sebagai media pengolahan data .
Menurut Jogiyanto H.M. (2013:34), bahwa Sistem (System) dapat didefinisikan dengan
pendekatan prosedur dan dengan pendekatan komponen [3]. Dengan pendekatan
prosedur, sistem dapat didefinisikan sebagai kumpulan dari prosedur-prosedur yang
mempunyai tujuan tertentu . Dengan pendekatan komponen, sistem dapat didefinisikan
sebagai kumpulan dari komponen yang saling berhubungan satu dengan yang lainnya
membentuk satu kesatuan untuk mencapai tujuan tertentu [3].
Ternyata di Indonesia masih ada beberapa perusahaan atau industri yang belum
terkomputerisasi. Perkembangan industri yang semakin pesat tentunya akan membawa
implikasi pada persaingan antar unit usaha, sehingga sebuah UKM harus dapat
bersaing dengan jenis kegiatan usaha lain agar tidak tersingkir dari persaingan.
Berdasarkan survei yang dilakukan oleh BPS dan Kantor Menteri Negara untuk
2
Koperasi dan Usaha Kecil dan Menengah (Menegkop & UKM), usaha-usaha kecil
termasuk usaha-usaha rumah tangga atau mikro (yaitu usaha dengan jumlah total
penjualan (turn over) setahun yang kurang dari Rp 1 miliar), pada tahun 2000 meliputi
99,9 persen dari total usaha-usaha yang bergerak di Indonesia [4].
Teknologi komputerisasi di perusahaan perdagangan barang yang berskala kecil
ataupun menengah di Indonesia masih banyak yang belum digunakan contohnya
aplikasi point of sale padahal itu sangat penting dan lebih praktis dibandingkan masih
menggunakan sistem manual.
Seperti pada sebuah toko kimia bernama CV. Multi Citra Kimia masih belum
menggunakan teknologi komputer. Disana masih menggunakan cara-cara manual
dalam melakukan pendataan transaksi. Dikatakan pendataan yang dilakukan masih
manual karena masih menggunakan sistem buku NOTA/catatan untuk mencatat
transaksi pembelian dan penjualan, penyimpanan buku-buku data masih menggunakan
rak yang belum tertata terlalu rapi, terkadang tidak mengetahui stok barang sisa hari
ini sehingga sering terjadi saat pembeli ingin membeli barang, ternyata sudah habis
semua, dan perhitungan pendapatan dan pengeluaran terkadang masih keliru. Itulah
kelemahan sistem manual yang masih terjadi di CV. Multi Citra Kimia dan bahkan
untuk perubahan data atau pencarian data tertentu seperti data penjualan masih kurang
cepat bila dibandingkan dengan menggunakan komputer.
Karena teknologi komputer dalam perdagangan barang dan dalam pengolahan
data penjualan di toko kimia CV. Multi Citra Kimia tersebut masih belum digunakan,
maka sistem yang terkomputerisasi harus dilakukan dan juga dibutuhkan sebuah sistem
aplikasi yang bisa membantu dalam melakukan pengolahan data yang cepat terutama
data penjualan di toko tersebut dan juga dapat melakukan perubahan atau melakukan
pembaharuan data yang up to date tanpa harus lelah menghapus data seperti di buku
catatan. Salah satu bentuk pengolahan data informasi penjualan dengan berbasis
komputerisasi yaitu sebuah aplikasi yang berbasis dekstop ataupun berbasis Web.
Aplikasi berbasis web pada saat ini sudah sangat dibutuhkan dan sejajar dengan
aplikasi-aplikasi berbasis android. Aplikasi berbasis web sangat mudah dan lebih baik
3
dari aplikasi desktop dan bisa dibuka oleh siapa saja.
Berdasarkan latar belakang masalah tersebut, maka dibuatlah aplikasi untuk
melakukan pendataan penjualan dan perhitungan laba dengan menggunakan PHP dan
MySQLi, agar dapat menjadi media pendataan data penjualan yang menampilkan
rincian seperti nama pelanggan, nama barang, nama pegawai, pendapatan, pengeluaran
dan lain-lain, dapat disimpan langsung ke database sehingga dapat menggantikan
sistem basis data yang ada namun sudah menggunakan aplikasi yaitu Aplikasi Point Of
Sale agar data baik yang disimpan maupun ditampilkan dapat terintegritas serta
mempercepat pengolahan data dapat mengurangi tingkat kesalahan penulisan saat
pendataan barang penjualan.
Oleh karena itu, pada penulisan tugas akhir (Skripsi) ini juga akan membuat suatu
aplikasi yang akan memanfaatkan aplikasi software bernama PHP dan menggunakan
pembuatan databases MySQLi untuk menampilkan informasi dan memperbarui data
mengenai stock yang ada di CV. Multi Citra Kimia dan juga dapat dibuka oleh calon
pembeli sehingga pembeli bisa mengetahui stock barang yang ingin dibeli dan bisa
merequest barang yang ingin dipesan. Berdasarkan hal dan alasan yang telah dijelaskan
diatas, maka judul yang diajukan pada penulisan laporan kuliah kerja praktek ini adalah
“Perancangan Aplikasi Point Of Sale (POS) Berbasis Web dengan PHP dan MySQLi”
1.2 Identifikasi Masalah
Dari latar belakang diatas yang sudah ditulis, saya memberikan suatu
identifikasi masalah yaitu sebagai berikut:
a. Penyimpanan data penjualan di CV. Multi Citra Kimia masih menggunakan
cara yang konvensional/manual.
b. Masih menggunakan teknik manual seperti menggunakan buku catatan.
c. Masih belum mempunyai aplikasi penjualan/point of sale untuk mendata
penjualan pada toko kimia CV. Multi Citra Kimia.
4
d. Karena yang mengetahui stok barang adalah pegawai toko dan pemilik
toko, tidak jarang saat customer ingin memesan barang, barang telah habis
atau stock kurang.
e. Perhitungan pendapatan dan pengeluaran terkadang mengalami kesalahan.
1.3 Rumusan Masalah
Berdasarkan identifikasi masalah yang telah dipaparkan terlebih dahulu, maka
rumusan sebagai berikut :
1. Bagaimana cara membuat sistem aplikasi untuk memudahkan dalam pendataan
barang?
2. Bagaimana cara membuat sistem aplikasi untuk mengetahui stok barang sisa
tanpa harus menghitung satu persatu di gudang?
3. Bagaimana cara membuat aplikasi yang dapat menghitung neraca keuangan
secara cepat dan otomatis untuk CV. Multi Citra Kimia?
1.4 Batasan Masalah
Dari rumusan masalah dan identifikasi masalah maka penelitian ini dibatasi
hanya untuk membahas tentang Pembuatan Aplikasi Point Of Sale berbasis web
dengan menggunakan PHP, dan MySQLi untuk CV. Multi Citra Kimia agar
penyimpanan data-data penjualan bisa terkomputerisasi, bisa untuk melakukan
perbandingan penjualan produk dan untuk mengetahui jumlah stok yang ada pada CV.
Multi Citra Kimia dan itu juga bisa dibuka oleh calon pembeli sebelum membeli barang
di CV. Multi Citra Kimia dan juga bisa merequest barang dan dapat dengan benar
mengetahui jumlah pendapatan dan pengeluaran dengan benar. Menggunakan satu
aplikasi untuk beberapa kegunaan dan sangat efisien.
5
1.5 Tujuan Dan Manfaat
1.5.1 Tujuan
Tujuan yang ingin dicapai dari pelaksanaan dan penulisan tugas akhir ini adalah
untuk membuat Aplikasi Point Of Sale untuk CV. Multi Citra Kimia agar semua data-
data penjualan bisa terkomputerisasi, mengetahui stok barang dan dapat melakukan
perbadingan item-item yang dijual serta membuat laporan penjualan yang rapi dan
detail.
1.5.2 Manfaat
Adapun beberapa manfaat yang diharapkan pada pembuatan tugas akhir ini
adalah:
1. Bagi Penulis
Penulis dapat lebih mengetahui cara menerapkan ilmu-ilmu yang
telah dipelajari selama ini dalam mempelajari cara bagaimana membuat
sebuah aplikasi Point Of Sale berbasis web serta sebagai syarat dalam
memperoleh gelar Sarjana Komputer. Juga sebagai kontribusi pemikiran
dalam pemikiran dalam memberikan solusi yang efektif untuk
Akademik.
2. Bagi CV. Multi Citra Kimia
Diharapkan dengan adanya aplikasi Point Of Sale untuk CV.
Multi Citra Kimia, bisa membantu untuk menyimpan data-data
penjualan, membuat data laporan yang lebih rapi dan detail, serta dapat
membuat calon pembeli juga dapat mengetahui stok barang disana dan
juga bisa merequest barang agar bisa terus membuat pembeli bisa tetap
senang akan pelayanan di CV. Multi Citra Kimia.
6
1.6 Sistematika Penulisan
BAB I : PENDAHULUAN
Bab ini menguraikan tentang latar belakang masalah, rumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode
penelitian, dan sistematika penulisan.
BAB II : TINJAUAN PUSTAKA
Bab ini berisi teori-teori yan digunakan untuk memahami
permasalahan yang dibahas pada penelitian ini. Pada bab ini dijelaskan
tentang Aplikasi Point Of Sale/Aplikasi Penjualan berbasis Web dengan
menggunakan PHP dan MySQLi.
BAB III : METODE PENELITIAN
Bab ini menjelaskan tentang objek subjek penelitian dan
pengumpulan data. Merupakan inti pembahasan membuat aplikasi point
of sale berbasis web menggunakan php dan MySQLi untuk CV. Multi
Citra Kimia
BAB IV : HASIL DAN PEMBAHASAN
Menjelaskan dan menampilkan hasil dari pembuatan aplikasi
dan mengujinya yaitu Aplikasi Point Of Sale Berbasis Web untuk CV.
Multi Citra Kimia.
7
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang diambil dari penelitian ini dan
saran-saran yang ditunjukan untuk penelitian berikutnya yang akan
datang.
8
BAB II
TINJAUAN PUSTAKA
2.1 Tinjauan Penelitian
Beberapa penelitian mengenai Aplikasi Point Of Sale berbasis web atau pun yang
mendekati penelitian tersebut.
1. Implementasi Pembuatan Sistem Informasi Penjualan Berbasis Web
(Ikhtiar Rizki & Raden Arum Setia, 2014) [5]. Pada tahap implementasi
sistem informasi dilakukan realisasi terhadap perancangan yang telah
dibuat sebelumnya. Tahap implementasi ini menghasikan sistem
informasi yang mampu mengelola transaksi penjualan secara online
melalui website Toko online Ali Computer dan di tahap pengujiannya,
dilakukan untuk mengetahui tingkat keberhasilan dari masing-masing
bagian yang telah dibuat. Pengujian ini melibatkan beberapa
sukarelawan untuk menguji menu dari interface customer, dari menu
registrasi sampai menu konfirmasi pembayaran. Pada bagian menu
interface admin, pengujian ini dilakukan kepada pihak yang
bersangkutan atau bagian yang menangani transaksi tersebut terdiri atas
seorang pegawai yang menangani bagian penjualan, pegawai yang
menangani bagian gudang atau stok barang dan pimpinan Toko Ali
Computer untuk menguji sistem informasi yang telah dibangun.
2. Sistem Informasi Point Of Sales Berbasis Web Pada Colony Amaranta
Bekasi (Catur, Sapto Cahyodi, 2017) [6]. Berdasarkan hasil
pengembangan sistem yang dilakukan maka dapat ditarik kesimpulan
dan saran-saran yang berhubungan dengan pembahasan yang telah
9
dikemukakan pada babbab sebelumnya. Sistem ini dibuat untuk
meningkatkan kinerja dan pelayanan dalam melakukan proses registrasi
customer, proses input data dan proses penjualan, sehingga
mempermudah dalam pembuatan laporan-laporan yang dibutuhkan dan
sekarang telah berbasis intranet sehingga mempermudah pemilik dalam
mengontrol jalannya proses bisnis yang berjalan.
3. Sistem Informasi Penjualan Berbasis Web Pada PT Era Makmur
Cahaya Damai Bekasi (Ferdika M & Kuswara H, 2017) [3]. Dari hasil
pegujian dan kesimpulan, Dengan dibangunnya Sistem Informasi
Penjualan Berbasi Online ini diharapkan dapat membantu perusahaan
dalam meningkatkan pemasaran bukan hanya di wilayah Bekasi saja.
Dengan dibangunanya sistem informasi ini maka semua pengolahan
data dilakukan secara komputerisasi yang dilakukan oleh sistem untuk
memperkecil kesalahan dan lebih aman. Pemesanan produk pada
website ini menghemat waktu dan biaya dibandingkan dengan
pemesanan secara langsung datang ke lokasi, dan pembeli dapat melihat
produk yang dapat langsung dilihat di halaman website ini.
Meningkatkan penjualan dengan promosi secara online sehingga dapat
menghemat segala biaya dan bahan yang dibutuhkan untuk segala
promosi.
4. Sistem Informasi Penjualan Pupuk Berbasis Web pada PT. Sri Aneka
Karyatama (Asfinoza & Puspasari, Shinta 2018) [7]. Dari Hasil dan
Implementasi yang disajikan dalam bentuk gambar yang dibuat dengan
Tools Dreamweaver dan MySQL sebagai Database. Dan berdasarkan
hasil penelitian, telah diambil beberapa kesimpulan yaitu Sistem
Informasi Penjualan Pupuk Berbasis Web pada PT. Sri Aneka
Karyatama, proses penjualan dan pegolahan data barang berjalan
dengan baik dan terhubung dengan database, dan Sistem Informasi
Penjualan Pupuk Berbasis Web pada PT. Sri Aneka Karyatama
10
diimplementasikan dalam bentuk website sehingga membantu
pelanggan untuk melakukan proses pembelian pupuk saat tidak bisa
datang ke lokasi.
5. Perancangan Aplikasi Point Of Sales (POS) Berbasis Web
Menggunakan Metode Siklus Hidup Pengembangan Sistem (Yuarita
Grawidi Titania & Marisa Fitri, 2017) [8]. Hasil dari studi ini adalah
Aplikasi Point of Sale yang dibangun ini adalah dari hasil survey yang
dilakukan pada perusahaan yang sedang berkembang dan dalam
melakukan transaksi masih menggunakan cara yang manual. Sehingga
sering kali terjadi kesalahan dan kehilangan faktur pembelian dan
penjualan. Aplikasi yang dibuat ini digunakan untuk meminimalisir
terjadinya kesalahan dan kehilangan faktur pembelian dan penjualan,
meyimpan data dengan lengkap, dan memudahkan pengelola untuk
melakukan transaksi pengecekan stok roti, harga produksi, data
penjualan, data pembelian dan pengecekan rugi dan laba perusahaan.
6. Sistem Informasi Penjualan Berbasis Web Pada PT. Mustika Jati
(Ramadhan Farhan, & Purwandari Nuraini, 2017) [9]. Pengujian sistem
merupakan bagian penting dari implementasi sebuah sistem. Pada tahap
ini peneliti melakukan pengujian Sistem Informasi Penjualan PT.
Mustika Jati dengan menggunakan metode black box. Pengujian
dilakukan terhadap fungsi-fungsi yang terlibat dalam sistem sehingga
dapat menghasilkan output yang telah diintegrasikan. Pengujian black
box testing dilakukan untuk mencari kesalahan yang terjadi pada sistem
sehingga peneliti dapat memperbaiki kesalahan tersebut. Dan
kesimpulannya yaitu penelitian ini menghasilkan Sistem Informasi
Penjualan berbasis web yang berguna sebagai alat bantu perusahaan
untuk mencatat, menyimpan, mengolah, dan mengintegrasi data di PT.
Mustika Jati. Sistem yang dibangun mampu memberikan informasi
lengkap mengenai penjualan, stok barang, dan pelanggan. Sehingga
11
sistem yang telah dibangun menjadi sebuah alat bantu perusahaan dalam
melakukan kegiatan penjualan. Fungsi dari sistem dapat berkerja sesuai
kebutuhan berdasarkan pengujian yang telah dilakukan oleh pengguna
melalui metode black box testing. Berdasarkan hasil pengujian dan
implementasi, dapat disimpulkan bahwa Sistem Informasi Penjualan
pada PT. Mustika Jati dapat diterima dengan baik dan memenuhi
kebutuhan perusahaan.
7. Sistem Informasi Penjualan Kawat Berbasis Web Pada CV. Givro Multi
Teknik (Abdussomad, 2016) [10]. Tujuan penelitian ini adalah Web ini
memudahkan para konsumen CV. Givro Multi Teknik untuk
mendapatkan informasi mengenai produk, harga dan pemesanan produk
secara online tanpa harus datang langsung ke toko. Sehingga pelayanan
terhadap konsumen menjadi lebih baik dan lebih mudah. Dengan
adanya web ini CV. Givro Multi Teknik menjadi lebih mudah dalam
memberikan informasi produk, harga kepada konsumen dan pemesanan
produk dengan lebih efektif. Sehingga dapat menghemat biaya promosi
dan meningkatkan omset penjualan. Saat ini dengan adanya web, CV.
Givro Multi Teknik dapat bersaing dengan toko lain yang sudah
menerapkan e-commerce terlebih dahulu dalam memasarkan produk
dan mencari konsumen. Sehingga target untuk meningkatkan daya
saing dan meningkatkan omset penjualan dapat tercapai.
8. Analisa Dan Perancangan Aplikasi Point Of Sale (POS) Untuk
Mendukung Manajemen Hubungan Pelanggan (Permana HDS & Faisal
2017) [11]. Tujuan dari Rancangan aplikasi point of sales (POS) ini
mampu mengatasi permasalahan dan dapat menyajikan informasi
secara lebih baik dan terkomputerisasi. Dengan diterapkannya aplikasi
point of sales (POS) ini dapat membantu tugas-tugas pihak-pihak terkait
atau seluruh stakeholder yang berhubungan langsung dengan aplikasi
POS ini. Aplikasi POS ini didesain dengan antar muka interaktif
12
sehingga baik administasi maupun pemilik dapat langsung
menggunakan aplikasi POS ini dengan sebaik-baiknya.
Dari semua penelitian-penelitian dari berbagai jurnal yang digunakan terbukti
kalau Aplikasi Point Of Sale (POS) atau Aplikasi Penjualan sangat bermanfaat untuk
toko-toko karena dapat membantu dalam penyimpanan data penjualan dan laporan
dengan rapi, mengetahui laba dan pengeluaran yang didapat serta pembeli dapat juga
melihat stok barang terkini. Di jurnal pendukung yang digunakan juga menjelaskan
sedikit kalau aplikasi Penjualan/POS yang berbasis web ini lebih baik daripada aplikasi
yang berbasis desktop. Ini dari itu penulis ingin membuat aplikasi point of sale berbasis
web untuk CV. Multi Citra Kimia agar dapat lebih cepat dalam pencarian data serta
perhitungan pendapatan dan pengeluaran yang tepat dan dapat mengetahui stok secara
benar.
2.2 Landasan Teori
2.2.1 Pengertian Sistem Informasi
Menurut John F. Nash (1995:8) yang diterjemahkan oleh La Midjan dan Azhar
Susanto, menyatakan bahwa Sistem Informasi adalah kombinasi dari manusia, fasilitas
atau alat teknologi, media, prosedur dan pengendalian yang bermaksud menata
jaringan komunikasi yang penting, proses atas transaksi-transaksi tertentu dan rutin,
membantu manajemen dan pemakai intern dan ekstern dan menyediakan dasar
pengambilan keputusan yang tepat [12]. Dari pengertian sitem informasi di atas, dapat
disimpulkan bahwa Sistem Informasi menyediakan informasi untuk membantu
pengambilan keputusan manajemen, dan informasi yang layak. Selain itu pengertian
sistem informasi menurut Rommey (1997:16) yang dialih bahasakan oleh Krismiaji
(2002;12) adalah Sistem Informasi adalah cara-cara yang diorganisasi untuk
mengumpulakn, memasukkan, mengolah, dan menyimpan data dan cara-cara yang
diorganisasi untuk menyimpan, mengelola, mengendalikan dan melaporkan informasi
13
sedemikian rupa sehingga sebuah organisasi dapat mencapai tujuan yang telah
ditetapkan [6].
2.2.2 Pengertian Point Of Sale (POS)
Point Of Sale (POS) yaitu merupakan kegiatan yang berorientasi pada
penjualan serta sistem yang membantu proses transaksi. Setiap POS terdiri dari
hardware berupa (Terminal/PC, Receipt Printer, Cash Drawer, Terminal pembayaran,
Barcode Scanner) dan software berupa (Inventory Management, Pelaporan,
Purchasing, Customer Management, Standar Keamanan Transaksi, Return
Processing) dimana kedua komponen tersebut digunakan untuk setiap proses transaksi.
Point Of Sales (POS) dapat berupa sebuah checkout counters dalam sebuah toko atau
tempat usaha dimana transaksi penjualan terjadi, (Bobby Loardy, 2010) [13]. POS akan
menjadi sangat penting di dunia bisnis karena POS diibaratkan berupa terminal uang
dimana tempat menerima pembayaran dari pembeli kepada pedagang, karena
pembayaran tersebut merupakan indikator bagi pebisnis untuk mengukur tingkat
pendapatan mereka (Axopos, 2015 dalam (Faisal, 2015)) [11].
2.2.3 PHP
Hypertext Preprocessor (PHP) adalah bahasa server side scripting yang
menyatu dengan HTML untuk membuat halaman web yang dinamis menrut M.
Rudyanto Arief PHP banyak dipakai untuk pemrograman situs WEB dinamis. Karena
PHP merupakan server-side scripting maka sintaks dan perintah-perintah PHP akan
dieksekusi di server kemudian hasilnya dikirim ke browser dalam format HTML.
Dengan demikian kode program yang ditulis dalam PHP tidak akan terlihat oleh user
sehingga keamanan halaman web lebih terjamin. PHP dirancang untuk membentuk
sutu tampilan berdasarkan permintaan terkini, seperti menampilkan isi basis data ke
halaman web. (Nugroho, 2006) [7].
14
2.2.4 XAMPP
XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem
operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server
yang berdiri sendiri (localhost) yang terdiri atas program Apache, HTTP Server,
MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman
PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi
apapun), Apache, MySQL, PHP, dan Perl. Program ini tersedia dalam GNU (General
Public License) dan bebas, merupakan web server yang mudah digunakan yang dapat
melayani tampilan halaman web yang dinamis. Untuk mendapatkannya dapat
mengunduh langsung dari web resminya. (Peter, Jerry: 2007 dalam (Kusuma, 2017))
[8].
2.2.5 Pengertian MySQL
MySQL merupakan software open source yang pada awalnya dikembangkan
pada platform sistem operasi Linux namun kemudian dikembangkan untuk penggunaan
pada platform Windows. Operasi dasar yang dapat dilakukan pada MySQL meliputi
pembuatan (create) database, modifikasi database dan operasi Query (operasi yang
digunakan untuk menampilkan atau mengambil data dari database), (Firdaus, 2006)
[8].
2.2.6 Pengertian Pejualan
Penjualan menurut Basu Swasta (2001:1) di dalam bukunya Manajeman
Penjualan edisi ketiga, “Menjual adalah ilmu dan seni untuk mempengaruhi pribadi
yang dilakukan oleh penjual untuk mengajak orang lain agar bersedia membeli barang
ataupun jasa yang ditawarkan“ [14].
15
2.2.7 Metode Prototyping
Pengertian metode Prototype adalah metode pengembangan yang sangat cepat
dan pengujian model kerja aplikasi baru melalui proses interaksi yang berulang-ulang
sehingga dapat digunakan dengan baik. Pengertian metode prototype dapat mengatasi
permasalahan kesalahpahaman antara user dan analis, permasalahan user tidak mampu
mengidentifikasi secara jelas.
Pengertian lainnya adalah adalah perangkat lunak (software prototyping) atau
siklus hidup menggunakan protoyping (life cycle using prototyping). Pengertian
metode prototype adalah salah satu metode siklus hidup sistem yang didasarkan pada
konsep model bekerja (working model). Adapun tujuan metode protorype adalah
mengembangkan model menjadi sistem final. Sehingga sistem ini akan dikembangkan
dengan cepat dan biayanya menjadi lebih rendah. Menjadi ciri khas metode prototype
ini adalah pengembang sistem, klien, dan pengguna akhir dapat melihat dan melakukan
eksperimen sejak awal proses pengembangan. Ada beberapa metode untuk
mengerjakan prototype. Metode Prototype sering disebut juga desain aplikasi cepat
rapit application design/RAD karena sederhana dan cepat desain sistem (O’Brien,
2005) .
2.2.7.1 Tahapan Metode Prototype
Metode Prototype memiliki beberapa tahap didalamnya. Berikut ini adalah
tahapan-tahapan dari prototype yaitu:
a. Pengumpulan Kebutuhan
b. Membangun Prototype
c. Evaluasi Prototype
d. Mengkodekan Sistem
e. Menguji Sistem
f. Evaluasi Sistem
g. Menggunakan Sistem
16
2.2.7.2 Pengumpulan Kebutuhan
Langkah pertama kali yang harus dilakukan dalam tahapan metode prototype
adalah mengidentifikasi seluruh perangkat dan permasalahan. Tahapan metode
prototype yang sangat penting adalah analisis dan identifikasi kebutuhan garis besar
dari system. Setelah itu akan diketahui langkah apa dan permasalahn yang akan di buat
dan di pecahkan. Pengumpulan kebutuhan sangat penting dalam proses ini.
2.2.7.3 Membangun Prototype
Langkah selanjutnya adalah langkah metode prototype membangun prototipe
yang berfokus pada penyajian pelanggan. Misalkan membuat input dan output hasil
system. Sementara hanya prototype saja dulu selanjutnya aka nada tidak lanjut yang
harus di kerjakaan.
2.2.7.4 Evaluasi Prototype
Sebelum melangkah ke langkah selanjutnya, ini bersifat wajib yaitu memeriksa
langkah 1, dan Karena ini adalah penentu keberhasilan dan proses yang sangat penting.
Ketika langkah 1, dan 2 ada yang kurang atau salah kedepannya akan sulit sekali
melanjutkan langkah selanjutnya.
2.2.7.5 Mengkodekan Sistem
Sebelum pengkodean atau biasaya kita sebut proses koding, perlu kita ketahui
terlebih dahulu pengkodingan menggunakan Bahasa pemograman. Proses ini sangat
sulit, karena mengaplikasikan kebutuhan dalam bentuk kode program.
2.2.7.6 Menguji Sistem
Setelah pengkodean atau pengkodingan tentunya akan di testing. Banyak sekali
cara untuk testing, misalkan menggunakan white box atau black box. Menggunakan
17
white box berarti menguji kodingan sedangkan black box menguji fungus-fungsi
tampilan apakah sudah benar dengan aplikasinya atau tidak.
2.2.7.7 Evaluasi Sistem
Mengevaluasi dari semua langkah yang pernah di lakukan. Sudah sesuai dengan
kebutuhan atau belum. Jika belum atau masih ada revisi maka dapat mengulangi dan
kembali di tahap 1 dan 2.
2.2.7.8 Menggunakan Sistem
System sudah selesai dan siap di serahkan kepada pelanggan, dan jangan lupa
untuk maintenance agar system terjaga dan berfungsi sebagai mana mestinya.
2.2.7.9 Kelebihan Metode Prototype
Metode Prototype memiliki beberapa kelebihan yaitu:
a. Adanya komunikasi yang baik antara pengembang dan pelanggan.
b. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan
pelanggan.
c. Pelanggan berperan aktif dalam pengembangan system.
d. Lebih menghemat waktu dalam pengembangan system.
e. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang
diharapkannya membuat klien mendapat gambaran awal dari prototype
2.2.7.10 Kelemahan Metode Prototype
Metode Prototype juga memiliki beberapa kelemahan yaitu:
a. Pelanggan tidak melihat bahwa perangkat lunak belum mencerminkan
kualitas perangkat lunak secara keseluruhan dan belum memikirkan
peneliharaan dalam jangka waktu yang lama.
b. Pengembang biasanya ingin cepat menyelesaikan proyek sehingga
menggunakan algoritma dan bahasa pemrograman sederhana.
18
c. Hubungan pelanggan dengan komputer mungkin tidak menggambarkan
teknik perancangan yang baik.
Gambar 2.1 Alur Metode Prototype
2.2.8 Diagram UML (Unified Modelling Language)
Unified Modelling Language (UML) adalah sebuah “bahasa” yang telah
menjadi standar dalam industri untuk visualisasi, merancang dan
mendokumentasikan sistem piranti lunak. Menurut Hend (2006:5) “Unified
Modeling Language (UML) adalah bahasa yang telah telah menjadi standard untuk
visualisasi, menetapkan, membangun dan mendokumentasikan artifak suatu sistem
perangkat lunak”.
Menurut Martin Fowler (2005:1) “Unified Modeling Language (UML)
adalah keluarga notasi grafis yang didukunng oleh meta-model 28 tunggal, yang
membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang
dibangun menggunakan pemrograman berorientasi objek”. Dengan UML dapat
dibuat model untuk semua jenis aplikasi piranti lunak, dapat berjalan pada piranti
19
keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman
apapun. UML cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi
objek seperti C++, Java, C# atau VB.NET dapat juga digunakan untuk modeling
aplikasi prosedural dalam VB atau C.
2.2.8.1 Usecase Diagram
Usecase Diagram merupakan pemodelan untuk kelakuan (bevarior) sistem
informasi yang akan dibuat. Usecase digunakan digunakan untuk mengetahui fungsi
apa saja yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan
fungsi-fungsi tersebut. Simbol yang dalam Usecase Diagram yaitu:
Tabel 1. Usecase Diagram
Gambar Keterangan
UseCase menggambarkan fungsionalitas
yang disediakan sistem sebagai unit-unit
yang bertukar pesan antar unit dengan
aktor, yang dinyatakan dengan
menggunakan kata kerja
Actor atau Aktor adalah Abstraction dari
orang atau sistem yang lain yang
mengaktifkan fungsi dari target sistem.
Untuk mengidentifikasikan aktor, harus
ditentukan pembagian tenaga kerja dan
tugas-tugas yang berkaitan dengan peran
pada konteks target sistem. Orang atau
sistem bisa muncul dalam beberapa
peran. Perlu dicatat bahwa actor
berinteraksi dengan Use Case, tetapi
20
tidak memiliki kontrol terhadap use
case.
Asosiasi antara aktor dan use case,
digambarkan dengan garis tanpa panah
yang mengindikasikan siapa atau apa
yang meminta interaksi secara langsung
dan bukannya mengindikasikan data.
Asosiasi antara aktor dan usecase yang
menggunakan panah terbuka untuk
mengindikasikan bila aktor berinteraksi
secara pasif dengan sistem.
Include, merupakan didalam use case
lain (required) atau pemanggilan use
case oleh use case lain, contohnya adalah
pemanggilan sebuah fungsi program.
<< extends >>
Extend, merupakan perluasan dari use
case lain jika kondisi atau syarat
terpenuhi.
21
2.2.8.2 Activity Diagram
Activity Diagram menyediakan analis dengan kemampuan untuk memodelkan
proses dalam suatu sistem informasi. Activity diagram dapat digunakan untuk alur
kerja model, use case individual, atau logika keputusan yang terkandung dalam
metode individual. Activity diagram juga menyediakan pendekatan untuk proses
pemodelan paralel.
Pada dasarnya, diagram aktivitas canggih dan merupakan diagram aliran data
yang terbaru. Secara teknis, diagram aktivitas menggabungkan ide-ide proses
pemodelan dengan teknik yang berbeda termasuk model acara, statecharts. Simbol-
simbol yang digunakan dalam activity diagram yaitu:
Tabel 2. Activity Diagram
No GAMBAR NAMA KETERANGAN
1 Activity Memperlihatkan
bagaimana masing-masing
kelas saling berinteraksi
satu saama lain
2 Action State dari sistem yang
mencerminkan ekekusi dari
suatu aksi
3 Initial Node Bagaimana Objek dibentuk
atau diawali
22
4 Activity Final
Node
Bagaimana Objek dibentuk
dan diakhiri
5 Decision Digunakan Untuk
Menggambarkan Suatu
Keputusan/tindakan yang
diambil pada kondisi
tertentu
6 Line Connector Digunakan Untuk
Menghubungkan Satu
symbol dengan symbol
lainya
2.2.8.3 Sequence Diagram
Sequence Diagram menjelaskan tentang interaksi objek yang disusun
berdasarkan urutan waktu. Secara mudahnya, Sequence Diagram adalah gambaran-
gambaran tahap demi tahap yang seharusnya dilakukan untuk menghasilkan sesuatu
sesuai dengan use case diagram. Berikut ini adalah penjelasan mengenai komponen
Sequence Diagram beserta penjelasannya:
23
Tabel 3. Sequence Diagram
Gambar Keterangan
Entity Class merupakan bagian dari
sistem yang berisi kumpulan kelas
berupa entitas-entitas yang membentuk
gambaran awal sistem dan menjadi
landasan untuk menyusun basis data.
Boundary Class, berisi kumpulan kelas
yang menjadi interfaces atau interaksi
antara satu atau lebih actor dengan
sistem, seperti tampilan form entry dan
form cetak.
Control Class, suatu objek yang berisi
logika aplikasi yang tidak memiliki
tanggung jawab kepada entitas,
contohnya adalah kalkulasi dan aturan
bisnis yang melibatkan berbagai objek
Message, simbol mengirim pesan antar
class
24
Recursive, menggambarkan pengiriman
pesan untuk dirinya sendiri
Activation, mewakili sebuah eksekusi
operasi dari objek, Panjang kotak ini
berbanding lurus dengan durasi aktivasi
sebuah operasi
Lifeline, garis titik yang terhubung
dengan objek, sepanjang lifeline terdapat
activation
2.2.8.4 Class Diagram
Tujuan utama dari Class Diagram adalah untuk menciptakan sebuah kosa kata
yang digunakan oleh analis dan pengguna. Class Diagram biasanya merupakan hal-
hal, ide-ide atau konsep yang terkandung dalam aplikasi. Misalnya, jika sedang
membangun sebuah aplikasi penggajian, diagram kelas mungkin akan berisi kelas
yang mewakili hal-hal seperti karyawan, cek, dan pendaftaran gaji. Class diagram
juga akan menggambarkan hubungan antara kelas.
Class diagram memiliki 3 area pokok yaitu:
a. Name
b. Attribute
25
c. Method
Class Diagram juga menunjukkan atribut-atribut dan operasi dari sebuah
kelas dan constraint yang berhubungan dengan objek yang dikoneksikan. Class
Diagram secara khas meliputi: Kelas (Class), Relasi Assosiations, Generalitation dan
Aggregation, attribute (Attributes), operasi (operation/method) dan visibility, tingkat
akses objek eksternal kepada suatu operasi atau attribut. Hubungan antar kelas
mempunyai keterangan yang disebut dengan Multiplicity atau Cardinality.
Tabel 4. Class Diagram
Multiplicity Penjelasan
1 Satu dan hanya satu
0..* Boleh tidak ada atau satu atau lebih
1..* Satu atau lebih
0..1 Boleh tidak ada, maksimal satu
n..n Batasan antara. Contoh 2..4 mempunyai
arti minimal 2 maksimal 4
2.2.8.5 User Interface (UI)
Antar Muka Pengguna atau didalam Bahasa Inggris disebut dengan User
Interface, adalah mekanisme komunikasi antara pengguna (user) dengan sistem,atau
bentuk sistem tampilan grafis yang berhubungan langsung dengan pengguna
(user),atau bisa juga sebuah antarmuka pengguna sistem di mana pengguna
berinteraksi dengan mesin. Antarmuka pemakai (User Interface) dapat menerima
informasi dari pengguna (user) dan memberikan informasi kepada pengguna (user)
untuk membantu mengarahkan alur penelusuran masalah sampai ditemukan suatu
solusi. Pengertian lainnya dari antarmuka atau Interface adalah cara program dan user
berkomunikasi dan salah satu layanan yang disediakan sistem operasi sebagai sarana
26
interaksi antara pengguna dengan sistem operasi. Antarmuka adalah komponen
sistem operasi yang bersentuhan langsung dengan pengguna. Terdapat dua jenis
antarmuka, yaitu Command Line Interface (CLI) dan Graphical User Interface (GUI).
Pengertian dan Definisi dari User Interface (UI) dan Fungsinya serta Penggunaannya
Istilah user interface atau interface kadang-kadang digunakan sebagai penggati istilah
HCI (Human Computer Interaction). HCI (Human Computer Interface) adalah semua
aspek dari interaksi pengguna dan computer, tidak hanya hardware. Semuanya yang
terlihat dilayar, membaca dalam dokumentasi dan dimanipulasi dengan keyboard
(atau mouse) merupakan bagian dari user interface atau bisa dibilang desktop niver.
2.2.9 Database
Database Menurut Ladjamudin (2013:129), Database adalah sekumpulan
data store (bisa dalam jumlah yang sangat besar) yang tersimpan dalam magnetic disk,
oftical disk, magnetic drum, atau media penyimpanan sekunder lainnya [15].
Menurut Connolly dan Begg (2010:65) [16], basis data adalah sebuah
kumpulan data yang secara logis terkait dan dirancang untuk memenuhi suatu
kebutuhan informasi dari sebuah organisasi. Dalam pembentukan database, data yang
dikenal memiliki beberapa jenjang antara lain:
a. Field
Merupakan unit data terkecil, mencerminkan jumlah data terkecil yang akan
ditarik komputer pada satu waktu.
b. Record
Merupakan suatu koleksi field-field data yang saling berhubungan.
c. File
Merupakan koleksi record yang saling berhubungan, seperti satu file dari
seluruh record.
27
2.2.10 Cascading Style Sheets
Menurut Winarno dan Utomo (2010:106) menerangkan bahwa “CSS
merupakan bahasa pemrograman web yang digunakan untuk mengatur style-style
yang ada di tagtag HTML” [5].
2.2.11 HTML
Menurut Winarno dan Utomo (2010:66) “HTML singkatan dari Hypertext
Markup Language dan berguna untuk menampilkan halaman web”[5].
2.2.12 Website
Menurut Yuhefizar (2013) pengertian website adalah keseluruhan halaman-
halaman web yang terdapat dari sebuah domain yang mengandung informasi [5].
2.2.13 Web Server
Web server adalah perangkat keras (server) dan perangkat lunak yang
menyediakan layanan akses kepada pengguna melalui protokol komunikasi HTTP
ataupun variannya (seperti FTP dan HTTPS) atas berkas-berkas yang terdapat pada
suatu URL ke pemakai (Fathansyah, 2012) [17].
28
BAB III
METODE PENELITIAN
3.1 Objek Penelitian
3.1.1 Sejarah
CV. Multi Citra Kimia merupakan salah satu toko yang menjual berbagai
bahan-bahan kimia dari berbagai jenis. CV. Multi Citra Kimia didirikan pertama kali
pada tahun 2007 yang berlokasi di JL. Tegal Gede, No. 29 Rt 9, Rw 10, Cikarang
Selatan, Bekasi, Jawa Barat, Indonesia. Memiliki 20 pegawai yang terbagi disetiap
bagiannya.
Berkat kesuksesannya dan atas banyaknya pelanggan dari banyak
perusahaan yang ada di Jabodetabek dan masih banyak lagi. Beberapa prosedur dalam
membeli bahan-bahan kimia tertentu pun akan kami lakukan dengan sangat ketat
sehingga toko kami juga tidak sembarangan menjual produk-produk yang tingkat
kadar kimia sangat tinggi dan harus ada surat izin resmi dari perusahaan dan
kepolisian. Kami akan terus berkembang dan kami akan melayani konsumen dengan
senang hati setiap saat.
3.1.2 Visi CV. Multi Citra Kimia
Berikut ini adalah Visi dari CV. Multi Citra Kimia yaitu:
1. Menjadi toko kimia yang dapat diandalkan, dipersembahkan bagi
kesejahteraan customer dan kebaikan semua stakholders.
2. Kami mengandalkan keahlian kami untuk dapat memberikan produk kimia
yang bermutu tinggi ke pasar secara berkesinambungan agar dapat
meningkatkan kualitas untuk para pelanggan. Kepuasan pelanggan
menjadi konsep yang mendasari semua kegiatan kami.
29
3. Menjadi perusahaan yang dapat diandalkan berarti dapat dipercaya oleh
pasar dan pelanggan. Keandalan harus menjadi tujuan semua komponen
perusahaan.
3.1.4 Misi CV. Multi Citra Kimia
Untuk menjadi perusahaan yang dapat diandalkan, kami akan melakukan hal-
hal sebagai berikut ini:
1. Memperkuat teknologi dan pemasaran untuk menghasilkan produk
yang sangat berkualitas, kompetitif dan aman.
2. Menambah skala dan keuntungan perusahaan untuk meningkatkan
kualitas hidup karyawan yang pada akhirnya akan memberikan manfaat
bagi pemegang saham.
3. Menciptakan manajemen yang responsive dan cerdas.
4. Berkontribusi kepada pemeliharaan keselamatan dan pemeliharaan
lingkungan.
3.2 Jenis Pengumpulan Data
Data- Data dapat diartikan sebagai fakta yang digambarkan melalui angka,
simbol, kode, dan lain-lain. Dalam penelitian sumber data dapat dikelompokan
menjadi dua yaitu sumber data primer dan sumber data skunder.
1. Sumber Data Primer
Data primer adalah data yang didapatkan dari sumber data, seperti hasil dari
wawancara atau hasil dari penelitian yang dilakukan oleh peneliti. Data primer
juga diperoleh dari hasil observasi atau dengan cara menyebarkan kuisioner.
Dalam penelitian metode yang digunakan peneliti untuk mendapatkan data
primer adalah dengan melakukan observasi dan wawancara.
30
2. Sumber Data Sekunder
Data sekunder adalah cara pengumpulan data dengan mempelajari data yang
telah tersedia, atau data-data yang diberikan oleh pihak perusahaan. Dan peneliti
telah melakukan berbagai pengumpulan data dengan menyimpan berbagai
bentuk dokumen seperti data barang, data penjualan beserta data pembelian
hingga stock barang.
3.3 Metode Pengumpulan Data
Berikut ini adalah metode yang dilakukan dalam pengumpulan data yaitu:
1. Interview atau wawancara
Merupakan metode pengumpulan data dengan jalannya proses tanya
jawab sepihak yang dilakukan secara sistematis dan berlandaskan kepada
tujuan penelitian. Pada metode ini penulis melakukan proses tanya jawab
kepada beberapa nasumber pada objek penelitian yaitu pegawai CV. Multi
Citra Kimia, Admin Gudang dan Pemilik CV. Multi Citra Kimia tersebut.
Interview/isi pertanyaan dari ini berisi tentang info profil toko CV. Multi Citra
Kimia dan sistem point of sale di CV. Multi Citra Kimia.
2. Studi Pustaka
Merupakan cara untuk mencari dan mendapatkan sumber-sumber
kajian. Landasan teori yang mendukung, data-data atau informasi sebagai
acuan dalam perancanaan, percobaan, pembuatan dan penyusunan laporan
serta melalui teknologi internet.
31
3.4 Teknik Analisis Data
Dalam sebuah penelitian terutama pada saat menganalisis sistem, akan lebih
mudah jika menggunakan metode pendeketan dan pengembangan sistem.
1. Metode Pendekatan Sistem
Metode pendekatan sistem yang akan digunakan oleh penulis adalah metode
pendeketan berbasis objek.
2. Metode Pengembangan Sistem
Metode pengembangan sistem yang digunakan dalam perancangan Sistem
Informasi apotek ini adalah Prototype. Berikut ini akan diuraikan tahapan-
tahapan pengembangan sistem dengan menggunakan metode Prototype di
antaranya yaitu :
a. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format dan
kebutuhan kesseluruhan perangkat lunak, mengidentifikasikan semua kebutuhan,
dan garis besar sistem yang akan dibuat.
b. Membangun Prototyping
Membangun prototyping dengan membuat perancangan sementara yang berpusat
pada penyajian kepada client (misalnya dengan membuat input dan contoh
outputnya).
c. Evaluasi Prototyping
Evaluasi ini dilakukan oleh client apakah prototyping yang sudah dibangun sudah
sesuai dengan keinginan pelanggan. Jika sudah sesuai maka langkah keempat
32
akan diambil. Jika tidak, maka prototyping diperbaiki dengan mengulang
langkah 1, 2 , dan 3.
d. Mengcoding Prototyping
Dalam tahap ini prototyping yang sudah disepakati diterjemahkan ke dalam
bahasa pemrograman yang sesuai.
e. Menguji Sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites
dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black
Box, Basis Path, pengujian arsitektur dan lain-lain.
f. Evaluasi Sistem
Client mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang
diharapkan . Jika sudah, maka langkah ketujuh dilakukan, jika belum maka
mengulangi langkah 4 dan 5.
g. Menggunakan Sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
33
3.5 Analisa Sistem yang Berjalan
Adapun gambaran untuk sistem yang berjalan pada CV. Multi Citra Kimia saat
ini ialah sebagai berikut :
Gambar 3.1 Activity Diagram Sistem Yang Berjalan
Penjelasan dari activity diagram tidak berbeda dari usecase diagram, namun
akan tetap dijabarkan. Berikut ini adalah penjelasan dari activity diagram dari sistem
yang berjalan seperti yang tampak pada gambar:
1. Pertama pembeli datang dan mencari/memilih barang.
2. Jika pembeli ingin membeli suatu bahan kimia yang sangat khusus, maka
tentunya pembeli membawa surat izin dari perusahaannya tempat dia
diperintahkan atau surat dari pihak berwajib. Lalu memberikan kepada
pegawai toko.
3. Setelah itu pegawai toko menerima permintaan pembeli tersebut.
34
4. Selanjutnya, pegawai memberikan barang yang diminta oleh pembeli
tersebut.
5. Lalu pmebeli membayar barang tersebut dan menerima barang yang
diinginkan.
6. Pegawai toko menerima uang transaksi pembayaran atas pembelian
barang tersebut dan lalu pegawai toko memberikan struk atas pembelian
barang dan memberikannya kepada pembeli.
7. Pembeli menerima struk dari pegawai toko sebagai pembuktian
pembelian barang.
8. Setelah proses transaksi penjualan dan pembelian selesai, selanjutnya
pegawai toko membuat laporan. Contohnya laporan penjualan hari ini.
9. Setelah itu laporang tersebut di simpan dibuku laporan data. Dibuku
laporan ini ada beberapa jenis seperti contoh laporan penjualan dan
laporan data barang.
10. Lalu ada aktor Admin Gudang, tugasnya hanya menginput dan mengedit
data barang. Data sewaktu-waktu mungkin dapat dirubah.
11. Lalu sama menyimpan data dibuku laporan. Tetapi laporan tentang data
barang.
12. Terakhir adalah aktor pemilik. Disini pemilik juga berperan. Pemilik
dapat melihat data laporan dari berbagai jenis. Untuk mengecek barang
apa saja yang terjual, lalu butuh barang apa saja, berapa banyak yang
sudah terjual. Seperti itulah contohnya.
3.6 Membuat Database di MySQLi(XAMPP)
Sebelum membuat aplikasi, kita harus memiliki database yang bersangkutan
dengan aplikasi yang dibuat seperti contohnya aplikasi point of sale. Merancang
aplikasi Point of Sale di CV. Multi Citra Kimia diperlukan data-data barang yang
dijual. Seperti Nama Barang, Kode barang, sifatnya, satuan dan sebagainya. Berikut
35
ini adalah gambar tentang database pada aplikasi point of sale yang dirancang untuk
CV. Multi Citra Kimia:
Gambar 3.2 Database untuk Aplikasi Point Of Sale di MySQLi
Gambar 3.3 Database Barang untuk Aplikasi Point Of Sale di MySQLi
Gambar diatas adalah gambar struktur-struktur yang terkait untuk aplikasi
didalam MySQLi untuk aplikasi Point Of Sale dan gambar yang kedua adalah gambar
36
tentang database barang-barang yang dijual di CV. Multi Citra Kimia yang
dicantumkan seperti ada kode barang, nama barang, stok, satuan, harga jual, harga beli,
serta keuntungan (laba).
3.7 Sistem Yang Diusulkan Untuk CV. Multi Citra Kimia
Untuk pembahasan selanjutnya, kami akan mengusulkan sebuah sistem yang
akan bermanfaat bagi CV. Multi Citra Kimia yang proses pendataan penjualannya
sendiri masih menggunakan cara manual/konvensional yang mengakibatkan
kemungkinan terjadinya kerusakan pada buku catatan pendataan penjualan, hilang atau
bahkan memakan waktu yang lama saat mencari data sesuatu dan saat salah tulis
mungkin akan ada banyak coretan, lalu tidak jarang beberapa pembeli ingin membeli
barang ternyata barang sudah habis dan belum ter-stok dan terkadang perhitungan
pendapatan dengan pengeluaran dibeberapa momen suka mengalami kesalahan. Itulah
kekurangannya yang saat ini masih terjadi menggunakan sistem konvensional/manual
dalam penjualan.
Oleh karena itu, kami mengusulkan sistem yang terkomputerisasi yang akan
ditetapkan pada sistem penjualan di CV. Multi Citra Kimia, sehingga diharapkan
mampu membantu dan mempermudah serta membuat rapi suatu data penjualan di CV.
Multi Citra Kimia, dan pembeli dapat melihat stok barang saat ini, pegawai gudang
tidak perlu menghitung barang satu persatu dan hasil perhitungan pendapatan dan
pengeluaran juga bisa terhitung secara otomatis. Dalam perancangan sistem informasi
ini menggunakan sistem pemrograman Web PHP, hal ini disebabkan karena aplikasi
berbasis web pada saat ini sangat banyak diminati dikalangan para pemilik usaha kecil
menengah hingga atas dan merupakan salah satu sistem pemrograman yang cukup baik
dan efektif dibandingkan aplikasi berbasis desktop, serta tidak terlalu sulit
menggunakannya.
37
3.7.1 Gambaran Sistem
Untuk gambaran sistem yang kami usulkan aplikasi Point Of Sale untuk CV.
Multi Citra Kimia ialah berupa Use Case diagram, Activity Diagram, Sequence
Diagram, Class Diagram, dan User Interface yang diharapkan mampu memberikan
pendataan yang lebih cepat dan akurat serta dapat menangani kendala yang ada pada
CV. Multi Citra Kimia tersebut. Berikut ini adalah gambaran untuk Use Case Diagram,
Activity Diagram, Sequence Diagram, Class Diagram, dan User Interface diusulkan:
38
3.7.2 Use Case Diagram Sistem Yang Diusulkan
Gambar 3.4 Use Case Diagram sistem yang diusulkan
Gambar diatas adalah gambar Use Case diagram sistem yang diusulkan untuk
CV. Multi Citra Kimia untuk Aplikasi Point Of Sale. Berikut ini adalah penjelasan dari
usecase sistem yang diusulkan seperti yang tampak pada gambar:
1. Pada penjelasan pertama, di jelaskan kalau pemilik toko, pegawai toko dan
admin gudang bisa melakukan login aplikasi dan sementara calon pembeli
hanya dapat melihat jumlah stok barang saat ini di layout khusus untuk
pembeli memesan barang tanpa harus login aplikasi. Di aplikasi Point Of
39
Sale ini nantinya akan menyediakan layout khusus untuk pembeli memesan
barang tanpa harus login.
2. Jika pembeli sudah melihat stok barang dan memesan barang, lalu tinggal
memilih kirim.
3. Saat pegawai toko sudah login, dia akan merespon pesanan barang dari
calon pembeli.
4. Setelah itu saat pembeli datang ke CV. Multi Citra Kimia untuk mengambil
pesanan barang yang telah dibeli, maka terjadilah transaksi.
5. Pegawai Toko akan mencetak struk pembelian barang yang telah dibeli oleh
pembeli dan menyerahkan barang tersebut kepada pelanggan dan pelanggan
akan membayar barang tersebut.
6. Lalu selanjutnya ada admin gudang yang tugasnya membeli barang ke
supplier jika barang sudah mendekati habis.
7. Disini transaksi admin gudang, supplier tidak dibawa kedalam sistem
karena tidak menyangkut pada aplikasi Point Of Sale itu sendiri. Disini
menjelaskan bahwa admin gudang melakukan transaksi pembelian barang.
8. Setelah itu admin gudang akan membuat record saat dia ingin membeli
barang di suatu supplier tentang barang apa yang dibeli, jumlah nya berapa
dan ke supplier mana dia membeli, admin gudang akan membuat record
tersebut.
9. Selanjutnya secara otomatis, record itu masuk kedalam menu laporan dan
dapat dicetak
10. Selain Menginput nama barang yang telah dibeli, admin gudang dapat
mengedit nama barang tersebut.
11. Selanjutnya jika pemilik toko juga ingin melihat laporan langsung didalam
aplikasi, maka tinggal memilih menu laporan, jenis laporan, masukkan
tanggal awal dan akhir dan pilih cari. Setelah itu laporan akan muncul dan
dapat dicetak juga.
40
12. Terakhir semua yang dapat login ke aplikasi yaitu Pemilik Toko, Admin
Gudang dan Pegawai Toko, maka dapat melakukan Logout User.
41
3.7.3 Activity Diagram (Login)
Gambar 3.5 Activity Diagram (Login) sistem yang diusulkan
Gambar diatas adalah gambar dari alur login aplikasi yang dibuat didalam
activity diagram. Berikut ini adalah penjelasan dari activity diagram (Login) sistem
yang diusulkan seperti yang tampak pada gambar:
1. User (Pemilik, Pegawai toko, Admin Gudang) melakukan login aplikasi
Point Of Sale.
2. Memasukkan Username dan Password.
42
3. Setelah itu di sistem aplikasi akan memproses permintaan untuk masuk
ke aplikasi Point Of Sale.
4. Setelah itu didalam database aplikasi akan memvalidasi permintaan.
5. Didalam database akan di cek terlebih dahulu. Jika username dan
password yang dimasukkan ternyata benar dan valid, maka user tersebut
akan bisa masuk ke aplikasi. Tetapi jika gagal, maka akan secara otomatis
dikembalikan kembali ke halaman awal untuk memasukkan username
dan password dengan sangat benar dan tidak ada kekeliruan dalam
memasukkannya.
6. Saat user sudah masuk ke aplikasi, maka user akan di bawa langsung ke
tampilan dashboard dimana menu-menu utama ada.
7. Setelah itu user akan memilih menu utama disamping di dashboard depan
43
3.7.4 Activity Diagram (Pembeli Memesan Barang)
Gambar 3.6 Activity Diagram (Pembeli memesan barang) di sistem yang diusulkan
Gambar diatas adalah gambar dari alur pembeli memesan barang. Berikut ini
adalah penjelasan dari activity diagram (Pembeli memesan barang) didalam sistem
yang diusulkan seperti yang tampak pada gambar:
44
1. Seperti yang sudah dijelaskan sebelumnya, di aplikasi Point Of Sale ini
nantinya pelanggan mendapatkan layoutnya sendiri untuk melihat stok
barang dan dapat memesannya. Seperti didalam pembahasan karena
tidak jarang saat pembeli ingin membeli barang di CV. Multi Citra
Kimia ternyata barang sudah habis dari siang (Contoh)
2. Pertama calon pembeli dapat membuka layout khusus pembeli di
aplikasi point of sale CV. Multi Citra Kimia didalam browser mereka
dengan membuka alamat http://localhost:8080/point-of-
sale/customer/?page=pemesanan dan saat di enter maka calon pembeli
sudah ditampilkan stok barang saat ini.
3. Lalu jika calon pembeli ingin memesan barang, maka masukan jumlah
barang yang ingin dibeli di masing-masing nama barang.
4. Setelah itu ada kolom nama maka harus memasukkan nama calon
pembeli.
5. Selanjutnya sistem akan memproses pemesanan barang yang dipesan
oleh calon pembeli.
6. Lalu yang terakhir sistem mengirimkan permintaan pesanan tersebut ke
pegawai toko yang nanti akan muncul di notifikasi saat membuka
aplikasi.
45
3.7.5 Activity Diagram (Pegawai Toko Menerima Pesanan Barang)
Gambar 3.7 Activity Diagram (Pegawai Toko Menerima Pesanan Barang)
46
Gambar diatas adalah gambar dari alur pembeli memesan barang. Berikut ini
adalah penjelasan dari activity diagram (Pembeli memesan barang) didalam sistem
yang diusulkan seperti yang tampak pada gambar:
1. Pertama, Pegawai Toko akan melakukan login Aplikasi Point Of Sale,
memasukkan username dan password.
2. Sistem aplikasi POS akan memvalidasi permintaan login tersebut. Jika
password benar dan username pun benar, maka akan masuk kedalam
aplikasi. Namun jika salah, maka akan balik lagi ke layout login dan
harus memasukkan kembali username dan password dengan benar.
3. Setelah berhasil login, maka akan tampil tampilan utama.
4. Lalu pegawai toko klik gambar Lonceng Notification.
5. Sistem akan memproses permintaan.
6. Setelah itu akan muncul notifikasi tentang pesanan barang yang dipesan
oleh pembeli.
7. Lalu pegawai toko menyetujui pesanan barang tersebut.
8. Setelah itu permintaan akan diproses
9. Permintaan pembeli sudah dibuat record laporan.
47
3.7.6 Activity Diagram(Transaksi)
Gambar 3.8 Activity Diagram (Transaksi)
Gambar diatas adalah gambar dari alur transaksi pembelian barang. Transaksi
antara pembeli dengan pegawai toko. Berikut ini adalah penjelasan dari activity
diagram transaksi:
48
1. Pembeli (Langganan/biasa) datang dan memilih barang. Yang dimaksud
dipertama ini sebenarnya juga menjelaskan pembeli acak/pembeli biasa
yang belum tau tentang adanya layout pemesanan barang.
2. Setelah memilih/mencari barang yang dicari, kemudian pegawai toko
melakukan login aplikasi dan memilih menu transaksi penjualan di aplikasi
point of sale.
3. Di sistem maka aplikasi akan menampilkan layout tentang transaksi
penjualan.
4. Lalu pegawai toko mengisi kode barang atau nama barang. Sebenarnya
nanti di aplikasinya ada checkbox dimana saat di klik, maka barang-barang
yang dijual akan muncul beserta kodenya. Tetapi jika mencarinya dengan
nama atau kode barang juga bisa.
5. Seperti yang dijelaskan tadi, setelah itu barang akan tampil beserta kode
barangnya.
6. Lalu pegawai toko memasukkan jumlah barang yang ingin dibeli oleh
pembeli dan klik tambahkan.
7. Lalu sistem secara otomatis dengan cepat akan melakukan perhitungan
biaya berapa harga yang harus dibayar dan juga tersedia kolom diskon dan
perhitungan otomatis tersebut juga sekaligus perhitungan total bayar.
8. Setelah itu pegawai toko akan mencetak struk pembayaran.
9. Sistem akan menampilkan layout struk dan bisa dicetak.
10. Setelah itu pegawai toko menyerahkan struk.
11. Pembeli menerima struk.
12. Setelah itu pembeli menerima barang yang dibeli dan membayar.
13. Pegawai toko menerima uang pembayaran barang.
14. Transaksi penjualan pun telah dilaksanakan/dilakukan.
49
3.7.7 Activity Diagram (Transaksi Pembelian Stok Barang)
Gambar 3.9 Activity Diagram (Transaksi pembelian stok barang)
50
Gambar diatas adalah gambar dari alur dari pembelian stok barang. Saat di
notifikasi aplikasi point of sale telah menunjukkan/memberitahukan bahwa ada barang
yang mau habis, maka tugas seorang admin gudang ialah membeli barang untuk dijual
lagi agar saat calon pembeli ingin membeli barang, barang tersebut ada. Pembelian stok
barang di aplikasi point of sale ini hanya sebatas record. Maksudnya adalah sebagai
bukti kalau tadi admin gudang membeli barang dengan nama yang jelas dan spplier
yang tertera. Lalu hubungan antara admin gudang dengan supplier adalah call to call
karena supplier tidak termasuk dalam element aplikasi point of sale. Hanya pemilik
toko, pegawai toko(Kasir), calon pembeli dan admin gudang. Berikut ini adalah
penjelasannya:
1. Pertama adalah admin toko melakukan login aplikasi.
2. Sistem akan memproses login tersebut.
3. Setelah itu sistem akan menampilkan dashboard utama.
4. Saat dashboard aplikasi point of sale sudah tampil, admin gudang memilih
menu pembelian yang tersedia disamping dashboard. Pembelian tersebut
bukan transaksi pembelian antara calon pembeli dengan pegawai toko atau
calon pembeli langsung ke admin gudang, tapi pembelian disini adalah
untuk transaksi pembelian barang yang dilakukan oleh admin gudang
dengan supplier.
5. Lalu sistem memproses.
6. Setelah itu masuk ke layout pembelian barang dan admin gudang memilih
nama barang yang ingin dibeli dan nama supplier yang ingin di call. Disini
secara otomatis di aplikasi point of sale, total bayar akan muncul setelah
admin gudang memasukkan berapa jumlah yang inggin dibeli lalu klik
tambahkan.
7. Setelah itu dikolom nominal uang, admin gudang memasukkan berapa
rupiah yang akan dibayar.
8. Setelah itu klik tombol Simpan.
51
9. Sistem akan memproses.
10. Klik tombol cetak untuk sebagai struk pembelian barang.
11. Barulah disini admin gudang melakukan call to call dengan supplier yang
terpercaya dan selalu lengkap barang-barangnya. Disini saat sudah klik
tombol simpan, maka record tersebut akan otomatis masuk ke menu laporan
pembelian.
3.7.8 Activity Diagram (Input Data Barang)
Gambar 3.10 Activity Diagram (Input Data Barang)
52
Gambar diatas adalah menunjukkan alur activity diagram menginput data
barang. Berikut ini adalah penjelasannya:
1. Pertama Admin gudang memilih menu input barang.
2. Sistem memproses permintaan dan database akan mengeksekusi
3. Sistem akan menampilkan layout input data barang.
4. Admin gudang melakukan penginputan data barang.
5. Sistem akan memproses penyimpanan data barang
6. Terakhir didalam database, barang telah tersimpan.
54
Gambar diatas adalah gambar dari alur edit data barang yang dilakukan admin
gudang didalam aplikasi point of sale tersebut. Berikut ini adalah penjelasannya:
1. Pertama adalah admin gudang melakukan login aplikasi point of sale.
2. Lalu sistem akan mengecek dan memproses username dan password
tersebut.
3. Setelah berhasil masuk, sistem akan menampilkan layout dashboard.
4. Pegawai gudang memilih menu barang.
5. Setelah masuk ke layout barang, maka akan muncul nama-nama barang.
Disampingnya ada tombol edit, maka pilihlah tombol edit.
6. Sistem memproses dan berhasil masuk ke layout Edit.
7. Dan pegawai toko dapat merubah kode barang, nama barang, harga beli,
harga jual, dan lain-lain.
8. Setelah semuanya sudah selesai, maka admin Gudang akan mengklik
tombol simpan.
9. Sistem memproses dan data barang berhasil disimpan.
10. Setelah itu sistem secara otomatis akan balik sendiri kembali ke list-list
barang.
56
Gambar diatas adalah gambar activity diagram yang menunjukkan alur
membuat laporan yang dilakukan oleh pegawai toko dan admin gudang. Berikut ini
adalah penjelasannya mengenai gambar diatas:
1. Pertama pegawai toko atau admin gudang melakukan login aplikasi point
of sale.
2. Selanjutnya sistem akan mengecek dan memvalidasi. Apakah username dan
password yang dimasukkan sudah benar atau belum.
3. Jika gagal akan balik lagi ke layout login dan harus kembali login dengan
cermat dan semua username dan pasword juga sudah sangat benar. Jika
sudah berhasil login maka selanjutnya sistem aplikasi akan menampilkan
dashboard utama.
4. Setelah itu pegawai toko/admin gudang memilih menu laporan.
5. Setelah itu tinggal memilih. Mau memilih riwayat penjualan, laporan
penjualan, riwayat pembelian atau laporan pembelian.
6. Setelah memilih, selanjutnya pegawai toko/admin gudang harus
memasukkan tanggal mulai dan tanggal akhir. Saat di klik dikolom tanggal
tersebut sistem akan otomatis mengeluarkan semacam kalender, guna dapat
di klik sebagai pilihan tanggal mulai dan tanggal akhir.
7. Setelah itu laporan akan muncul sesuai tanggal yang dipilih.
8. Terakhir pegawai toko/admin gudang tinggal memilih cetak laporan.
Selanjutnya laporan tersebut dapat di print.
57
3.7.11 Activity Diagram (Melihat Laporan)
Gambar 3.13 Activity Diagram (Melihat Laporan)
Gambar diatas adalah gambar activity diagram dari alur melihat laporan yang
dilakukan oleh sang pemilik toko. Pemilik toko juga memiliki hak akses aplikasi dan
58
sangat lengkap serta dapat melihat laporan langsung di aplikasi. Berikut ini adalah
penjelasan mengenai gambar diatas:
1. Pertama pemilik toko akan melakukan login aplikasi point of sale.
2. Setelah itu sistem aplikasi akan memproses username dan password sang
pemilik toko.
3. Setelah di proses dan semuanya benar, maka login berhasil dan
menampilkan layout dashboard utama.
4. Selanjutnya pemilik toko tinggal mengklik atau memilih menu laporan.
Laporan mana yang akan dipilih. Pembelian atau Penjualan.
5. Lalu masukkan tanggal mulai dan tanggal akhir.
6. Sistem akan memproses dan mencari laporan yang diinginkan sesuai
tanggal yang dipilih.
7. Terakhir laporan yang dicari telah muncul.
59
3.7.12 Activity Diagram (Logout)
Gambar 3.14 Activity Diagram (Logout)
Gambar diatas adalah activity diagram tahapan terakhir dari alur yang ada di
aplikasi point of sale, yaitu login. User (Pemilik Toko, Pegawai Toko dan Admin
Gudang) akan logout setelah menggunakan aplikasi point of sale. Berikut adalah
penjelasannya:
1. User (Pemilik Toko, Pegawai Toko dan Admin Gudang) memilih menu
logout.
2. Selanjutnya sistem akan memproses dengan cepat
60
3. Terakhir aplikasi sudah berhasil ter-logout dan kembali menampilkan
layout untuk login.
3.7.13 Sequence Diagram (Login)
Gambar 3.15 Sequence Diagram (Login)
Sekarang adalah penjelasan mengenai sequence diagram. Tidak terlalu berbeda
dengan activity diagram, hanya saja penjelasan disequence diagram terlihat lebih detail
dan bagaimana jalannya suatu pekerjan didalam aplikasi yang akan dirancang.
61
Gambar diatas adalah gambar dari sequence diagram login yang dilakukan di
aplikasi point of sale. Berikut ini adalah penjelasannya:
1. Pertama-tama seperti biasa, jika ingin masuk aplikasi yang menggunakan
sistem username dan password, maka harus melakukan login dahulu.
2. User (Pemilik Toko, Pegawai Toko dan Admin Gudang) akan melakukan
login. Mereka-lah yang mendapat akses untuk masuk secara dalam aplikasi
point of sale untuk CV. Multi Citra Kimia nantinya. User memasukkan
username dan password yang diketikkan didalam form login.
3. Setelah itu password dan username tersebut di tranfer dan ke dalam sistem
aplikasi yang diatas dengan nama kontrol login.
4. Lalu selanjutnya pergi ke dalam data user. Maksud data user disini adalah
database yang ada di MySQLi yang sudah terdaftar dan paten.
5. Didalam data user ini juga memvalidasi atau mengecek, apakah username
dan password yang dimasukkan benar atau salah.
6. Jika username atau password yang dimasukkan telah salah atau keliru, maka
dari data user yang ada di aplikasi akan mengirimkan kalau username dan
pasword yang dimasukkan salah dan akan muncul di form login.
7. Jika login berhasil, username dan password yang dimasukkan adalah data
yang benar, maka akan langsung masuk ke menu utama.
8. Dan di sistem aplikasi akan menampilkan menu utama dan dari layout
kontrol login akan tampil dashboard utama dan user dapat melihat menu
utama atau tampilan dashboard utama.
62
3.7.14 Sequence Diagram (Pembeli Memesan Barang)
Gambar 3.16 Sequence Diagram (Pembeli Memesan Barang)
Gambar diatas adalah gambar sequence diagram tentang pembeli memesan
barang. Sudah dijelaskan diawal tadi, kalau calon pembeli juga memiliki akses aplikasi
63
tapi hanya sekedar melihat jumlah stok barang dan memesan barang. Calon pembeli
tidak melakukan login aplikasi. Berikut ini adalah penjelasan mengenai gambar diatas:
1. Calon pembeli masuk ke situs web yang dimiliki dan pergi ke alamat web
http://localhost:8080/point-of-sale/customer/?page=pemesanan.
2. Jika alamatnya benar maka pembeli akan masuk ke layout khusus calon
pembeli. Disini saat sudah enter alamat tersebut, Situs web akan memproses
permintaan.
3. Lalu dari control sistem web nya sendiri akan langsung menuju Layout
daftar stok barang di aplikasi point of sale tersebut tanpa harus login. Disini
calon pembeli dapat memesan barang.
4. Lalu dari sinilah layout tampil untuk sang calon pembeli. Hanya ingin
sekedar melihat stok barang atau memesan barang.
5. Lalu jika ingin memesan barang, calon pembeli harus memilih barang yang
mana yang ingin dibeli dan jumlahnya serta masukkan nama sang calon
pembeli. Setelah itu mengklik tombol “pesan”.
6. Selanjutnya dikontrol aplikasi permintaan akan diproses hingga beberapa
detik hingga berhasil diproses.
7. Selanjutnya di layout point of sale tersebut akan memberi tau simpan telah
berhasil dan bukti pemesanan akan tampil.
8. Lalu akan ada tombol kirim, maka selanjutnya calon pembeli dapat memilih
tombol kirim untuk mengirim pesanan barang yang telah dipesan tadi.
9. Setelah itu jika sudah di klik, layout pos dengan kontrol aplikasi akan
memproses hingga proses pengiriman permintaan berhasil.
10. Setelah berhasil, akan ada pemberitahuan kalau pesanan berhasil terkirim.
11. Disini pembeli juga dapat mencetak data/bukti pemesanan barang yang dia
sudah pesan.
64
12. Jika ingin mencetak, maka calon pembeli akan mengklik tombol cetak, lalu
di layout point of sale ke control aplikasi akan memproses permintaan
tersebut.
13. Setelah berhasil memproses maka dari kontrol aplikasi ke layout point of
sale akan menampilkan layout cetak.
14. Jika ingin mebatalkan pemesanan, maka calon pembeli dapat mengklik
tombol batal.
15. Lalu dari layout point of sale ke control aplikasi permintaan tersebut akan
diproses.
16. Setelah berhasil diproses, maka dari kontrol aplikasi ke layout point of sale
akan memberitahu pesanan telah dibatalkan. Dalam hal ini, jika calon
pembeli membatalkan pesanan barang, maka barang yang dipilih tadi tidak
akan berkurang dari stok. Karena pesanan barang yang benar-benar setuju,
akan di konfirmasi oleh pegawai toko.
65
3.7.15 Sequence Diagram (Pegawai Toko Menerima Pesanan)
Gambar 3.16 Sequence Diagram (Pegawai Toko Menerima Pesanan)
66
Gambar diatas adalah gambar sequence diagram alur saat pegawai toko
menerima pesanan dari calon pembeli. Yaitu pesanan barang. Berikut ini adalah
penjelasannya dari gambar diatas:
1. Pertana pegawai toko melakukan login aplikasi. Memasukkan username
dan password sang pegaawai toko di aplikasi point of sale.
2. Lalu username dan password yang sudah dimasukkan lalu di enter, maka
dari layout akan masuk ke kontrol aplikasi untuk diproses.
3. Setelah itu didalam user data akan di cek apakah ada atau tidak serta
memvalidasi.
4. Jika login gagal, maka dari cek data user tadi akan langsung ke form login
untuk memberi tahu kalaua login gagal. Password yang dimasukkan beserta
username nya salah.
5. Jika berhasil login dengan benar, maka setelah proses cek data tadi akan
langsung tampil layout menu utama/dashboard utama dari aplikasi point of
sale.
6. Tampilan menu utama sudah bisa dilihat.
7. Selanjutnya pegawai toko akan memilih menu notifikasi yang ada di menu
dashboard utama. Terletak dibagian atas. Menu utama akan langsung
memproses untuk membuka notifikasi.
8. Lalu keluarlah pesan yang ada didalam notifikasi dan ditampilkan di layout.
Dan pegawai toko dapat melihat pesan itu.
9. Setelah itu pegawai toko mengklik pesan tersebut yang ada di notifikasi.
10. Lalu dari layout menu utama ke menu notifikasi akan memproses untuk
membuka request tersebut dan menapilkan isi pesan tersebut.
11. Isi pesan request tampil dan pegawai toko melihat apa yang dipesan oleh
calon pembeli.
12. Selanjutnya jika ingin memproses pesanan tersebut, maka pegawai toko
tinggal mengklik tombol proses di layout.
67
13. Saat sudah diklick akan ada pesan yang muncul dari kontrol aplikasi.
“Apakah anda yakin ingin memproses pesanan?”
14. Jika memilih YA, maka dari layout tadi akan menuju kontrol aplikasi untuk
memproses.
15. Selanjutnya dari kontrol sistem kembali ke layout masuk ke menu penjualan
untuk didata dan disave
16. Pegawai toko disini dapat memasukkan diskon harga tapi tetap atas perintah
lebih lanjut dari pemilik toko jika memang barang tersebut memiliki/sedang
mendapatkan diskon harga.
17. Lalu dari layout aplikasi akan diproses di control aplikasi jika semua sudah
disimpan.
18. Selanjutnya pegawai toko dapat mencetak bukti yang sudah disimpan tadi
menjadi sebuah struk. Hal ini akan otomatis masuk ke laporan penjualan
jika memang pembelian tersebut tidak dibatalkan.
19. Lalu dari layout aplikasi ke kontrol aplikasi, akan diproses permintaan
cetak.
20. Terakhir dari kontrol aplikasi tersebut, akan masukke layout cetak dan siap
di print.
68
3.7.16 Sequence Diagram (Transaksi)
Gambar 3.17 Sequence Diagram (Transaksi)
Gambar diatas adalah gambar sequence diagram dari transaksi. Berikut ini
adalah penjelasannya dari gambar diatas:
69
1. Pertama pembeli datang memesan atau mencari barang. Disini pembeli
memesan maksudnya benar-benar pembeli random. Yang benar-benar tidak
tau akan layout pemesanan di aplikasi point of sale khusus untuk calon
pembeli.
2. Setelah menerima request barang yang sedang dicari calon pembeli,
selanjutnya pegawai toko yang sudah login aplikasi point of sale tadi masuk
ke menu barang untuk mencari barang yang dicari oleh calon pembeli.
3. Dari menu utama ke menu barang membutuhkan proses. Setelah itu didalam
form barang dapat di cek barang ada atau tidak.
4. Jika barang ada/tersedia, maka pegawai toko akan menginformasikan
kepada calon pembeli kalau barang masih tersedia.
5. Jika barang sudah tidak tersedia, juga akan diinformasikan kepada pembeli
atau dapat memesan.
6. Selanjutnya pegawai toko masuk form transaksi atau form penjualan
dengan menginputkan nama barang, jumlah dan harga total sesuai yang
dibeli oleh calon pembeli.
7. Setelah itu langsung memilih simpan.
8. Setelah itu pembeli membayar uang pembelian barang dengan nominal
yang diterima.
9. Selanjutnya transaksi yang tadi disimpan dapat divetak menjadi struk.
10. Pegawai toko akan memberikan struk pembelian barang dan juga barang
yang dibeli oleh pembeli dan sesuai jumlahnya.
11. Dan terakhir pembeli menerimanya.
70
3.7.17 Sequence Diagram (Transaksi Pembelian Stok Barang)
Gambar 3.18 Sequence Diagram (Transaksi Pembelian Stok Barang)
71
Gambar diatas adalah sequence diagram dari alur pembelian barang yang
dilakukan oleh admin gudang untuk mempersiapkan stok barang di CV. Multi Citra
Kimia. Saat membeli barang di supplier, admin gudang akan tetap membuat record atau
rekaman pembelian barang. Berikut ini adalah penjelasan mengenai gambar diatas:
1. Pertama admin gudang akan melakukan login aplikasi. Memasukkan
username dan password ke dalam form login di dalam aplikasi point of sale.
2. Dari form login aplikasi akan masuk kedalam kontrol aplikasi untuk di
proses dan juga akan di cek didalam database dan memvalidasi.
3. Jika login gagal, dari data user akan memberi pesan ke form login kalau
login telah gagal. Username dan password yang dimasukkan tidak benar
dan akan tampil ke admin gudang.
4. Jika login berhasil, maka dari kontrol aplikasi akan memproses menuju
menu utama/dashboard utama.
5. Lalu admin gudang memilih menu pembelian yang terletak disamping
menu utama.
6. Selanjutnya admin gudang akan memasukkan nama supplier yang ingin
dituju, nama barang yang ingin dibeli, dan jumlahnya.
7. Lalu klik tombol tambahkan. Disini supplier yang menjadi langganan CV.
Multi Citra Kimia adalah supplier yang memang benar-benar terpercaya
kualitas barang nya dan selalu siap sedia saat CV. Multi Citra Kimia ingin
membelinya.
8. Lalu dari menu utama (pembelian) tadi akan menuju kontrol aplikasi point
of sale untuk memproses permintaan.
9. Selanjutnya dari kontrol aplikasi akan memberi pesan kalau barang yang
disimpan telah tampil.
10. Selanjutnya admin gudang akan memasukkan total bayar dan memilih
tombol simpan.
72
11. Layout menu utama atau layout pembelian tadi akan menuju control
aplikasi untuk memproses simpan data tersebut.
12. Terakhir admin gudang dapat memilih tombol cetak dan akan masuk ke
proses kontrol aplikasi terlebih dahulu.
13. Dan layout cetak telah tampil dan laporan record pembelian barang bisa
dicetak.
Disini admin gudang akan menelpon sang supplier untuk membeli barang. Atau
admin gudang menelpon supplier pertama sebelum membuat record. Karena supplier
disini tidak memiliki hak akses aplikasi point of sale tersebut.
3.7.18 Sequence Diagram (Input Data Barang)
Gambar 3.19 Sequence Diagram (Input Data Barang)
73
Gambar diatas adalah gambar sequence diagram dari alur input data barang
yang dilakukan oleh admin gudang. Berikut ini adalah penjelasannya:
1. Admin Gudang yang sudah login, langsung masuk ke form input data
barang yang ada di layout barang dan memasukkan data-data barang.
2. Lalu selanjutnya akan diproses didalam kontrol aplikasi.
3. Lalu dari proses kontrol akan langsung menuju database barang/data barang
dan data telah tersimpan.
4. Dari layout data barang ke kontrol data diaplikasi dan akan membuat pesan
kalau data barang berhasil tersimpan.
5. Terakhir dari form input data barang di layout barang akan menampilkan
pesan kalau barang berhasil disimpan.
74
3.7.19 Sequence Diagram (Edit Data Barang)
Gambar 3.20 Sequence Diagram (Edit Data Barang)
Gambar diatas adalah gambar sequence diagram dari alur edit data barang.
Berikut ini adalah penjelasan mengenai gambar diatas:
75
1. Pertama-tama admin gudang yang sudah melakukan login aplikasi point of
sale akan menuju ke menu barang untuk menginput data barang didalam
form input barang.
2. Setelah menginputkan kode barang, maka akan menuju kontrol data/kontrol
aplikasi untuk di transfer ke data barang untuk melakukan pencarian
otomatis didalam aplikasi.
3. Didalam data barang/database barang yang ada didalam aplikasi akan
melakukan proses pencarian data barang tersebut.
4. Jika data barang tidak ditemukan, akan langsung ke menu layout input
barang dengan pesan data tidak ditemukkan.
5. Jika barang ditemukan, maka sama yaitu dari data barang akan menuju
layout input barang dan akan muncul pesan kalau barang ditemukkan dan
data barang akan tampil.
6. Selanjutnya admin gudang akan mengubah data barang di layout input
barang dengan memilih tombol edit terlebih dahulu.
7. Dari layout barang akan di lanjutkan di kontrol data untuk di proses dan
selanjutnya menuju data barang.
8. Didalam data barang, akan melakukan proses sendiri sesuai request admin
gudang tadi untuk melakukan perubahan data barang.
9. Setelah data berhasil dirubah, maka dari database barang didalam aplikasi
akan menuju langsung ke layout pertama tadi yaitu layout for input barang
dan akan ditampilkan kepada admin gudang kalau data barang berhasil
diubah.
10. Terakhir data barang yang sudah dirubah tadi akan tampil.
77
Gambar diatas adalah gambar sequence diagram dari alur membuat laporan. Ini
dilakukan oleh 2 user yaitu Pegawai Toko dan Admin Gudang. Berikut ini adalah
penjelasan mengenai gambar yang tertera diatas:
1. Pertama-tama pegawai toko dan admin gudang melakukan login aplikasi
terlebih dahulu.
2. Pegawai toko dan admin gudang memasukkan username dan password
didalam layout login aplikasi point of sale tersebut.
3. Username dan password yang dimasukkan akan diproses didalam control
aplikasi.
4. Lalu menuju data user dan didalam data user tersebut akan dicek dan
divalidasi
5. Jika username dan password yang dimasukkan tidak sesuai, maka dari data
user langsung menuju layout aplikasi akan memberi pesan kalau login
gagal. Username dan password yang dimasukkan tidak sesuai.
6. Dan dari layout login/aplikasi sendiri akan langsung menampilkan pesan
gagal login tersebut kepada Pegawai toko dan admin gudang.
7. Jika login telah berhasil, maka dari data user ke layout login akan membawa
notifikasi kalau login telah berhasil dan menampilkannya kepada user.
8. Setelah berhasil, maka dari data user akan menuju menu utama/layout
dashboard utama.
9. Dari menu utama akan menampilkan dashboard utama aplikasi point of sale
tersebut.
10. Selanjutnya user akan memilih menu laporan.
11. Dari dashboard utama akan menuju menu laporan/layout laporan.
12. Laporan dari berbagai jenis akan muncul.
13. Tampilan laporan akan ditampilkan kepada user.
14. Selanjutnya user akan memilih jenis laporan dan memasukkan tanggal
mulai dan tanggal akhir didalamnya.
78
15. Di layout laporan akan mencari laporan yang sedang dicari oleh user.
Sistem aplikasi yang ada didalam layout laporan akan mencarinya.
16. Setelah laporan tampil, akan menampilkan laporan tersebut kepada user.
17. Setelah itu user memilih menu print.
18. Dari layout laporan ke kontrol aplikasi akan menuju layout cetak
19. Terakhir user dapat mencetak laporan tersebut.
3.7.21 Sequence Diagram (Melihat Laporan)
Gambar 3.22 Sequence Diagram (Melihat Laporan)
79
Gambar diatas adalah gambar sequence diagram dari alur melihat laporan. Ini
dilakukan oleh pemilik toko jika ingin melihat data laporan secara langsung lewat
aplikasi. Berikut ini adalah penjelasan mengenai gambar diatas:
1. Pertama pemilik toko akan melakukan login didalam aplikasi point of sale
terlebih dahulu.
2. Setelah itu pemilik toko akan memilih menu laporan.
3. Lalu permintaan tersebut akan menuju ke kontrol aplikasi (kontrol laporan).
4. Didalam form laporan, jenis laporan yang dipilih oleh pemilik akan muncul
5. Dan dari kontrol laporan ke form laporan hingga ke pemilik akan
ditampilkan laporan tersebut.
3.7.22 Sequence Diagram (Logout)
Gambar 3.23 Sequence Diagram (Logout)
80
Gambar diatas adalah gambar sequence diagram dari alur logout aplikasi point
of sale. Ini dilakukan oleh semua user (Pegawai Toko, Admin Gudang dan Pemilik
Toko). Berikut ini adalah penjelasannya:
1. Pertama user akan ke form logout.
2. Setelah itu menuju kontrol aplikasi untuk menuju menu logout.
3. User akan mengklik logout dan keluar aplikasi.
3.7.23 Class Diagram Aplikasi Point Of Sale
Gambar 3.24 Class Diagram Aplikasi Point Of Sale
Gambar diatas adalah gambar dari class-class yang ada didalam aplikasi point
of sale nantinya. Semua saling berhubungan dan semua memiliki peran dan manfaat
masing-masing. Ada Login aplikasi, transaksi, detail transaksi, barang, pembeli, struk,
81
admin gudang, pegawai toko, pemilik toko, laporan dan terakhir adalah logout. Semua
saling berhubungan kepada satu sistem yaitu sistem aplikasi point of sale.
3.7.24 User Interface Login
Gambar 3.25 User Interface Login Aplikasi Point Of Sale
Gambar diatas adalah gambar dari user interface login dari sistem aplikasi point
of sale. Disini yang dapat melakukan login ada 3 aktor yaitu Pemilim Toko, Pegawai
Toko(Kasir) dan juga Admin Gudang. Tampilan terlihat sederhana namun sudah cukup
untuk desain sebuah point of sale.
82
3.7.25 User Interface Dashboard Utama (Pemilik Toko)
Gambar 3.26 User Interface Dashboard Utama untuk Pemilik Toko
Diatas adalah gambar user interface dari dahboard utama jika login sebagai
pemilik toko. Disini pemilik toko dapat melihat secara lengkap tentang pengeluaran,
pendapatan, penjualan dan pembelian. Di dashboard ini khusus pemilik toko
ditampilkan 2 grafik sekaligus. Grafik penjualan dan pembelian. Pemilik toko dapat
membuka aplikasi karena juga memiliki hak untuk melihat laporan secara langsung
83
dari aplikasi point of sale tersebut. Dan menu bar yang ada disebelah kiri juga tampil
secara lengkap.
Dan di samping grafik, jika ada stok barang yang mendekati habis, maka akan
di beritahu tentang jumlah stok dan nama barangnya di dashboard utama. Tidak hanya
pemilik toko, pegawai toko dan admin gudang akan juga diberi tahu di tabel dashboard
tersebut jika ada barang yang mendekati habis stok dan di gambar notifikasi akan
muncul juga. Untuk logout user dapat mengklik gambar user (Gambar orang) yang ada
di sebelah kanan atas disamping gambar notifikasi.
3.7.26 User Interface Dashboard Utama (Pegawai Toko)
Gambar 3.27 User Interface Dashboard Utama untuk Pegawai Toko
Diatas adalah gambar yang sama yaitu halaman layout dashboard utama, hanya
diatas ini adalah gambar tampilan user interface dashboard utama untuk pegawai toko
(kasir) jika masuk kedalam aplikasi point of sale. Disini pegawai toko hanya
84
ditampilkan tentang grafik penjualan dan pendapatan saja. Dan menu-menu yang ada
di sebelah kiri juga simple dan memiliki menu penjualan karena pegawai toko hanya
melakukan aktivitas didalam aplikasi point of sale untuk transaksi penjualan kepada
pelanggan terdata (Langganan) dan pelanggan null(random).
Dan pegawai toko juga dapat mencetak laporan di menu laporan. Transaksi
dengan pelanggan, pelanggan bisa memesan barang dengan membuka web khusus
untuk pelanggan. Nanti didalam lambang notifikasi saat pegawai toko sudah login,
maka akan muncul angka 1 (artinya ada sebuah pesan). Disini notifikasi bisa
memberikan kalau ada barang pesanan atau stock barang sudah mendekati habis.
3.7.27 User Interface Dashboard Utama (Admin Gudang)
Gambar 3.28 User Interface Dasboard Utama untuk Admin Gudang
Diatas adalah gambar dari user interface dashboard utama untuk admin gudang.
Disini hampir sama seperti dashboard milik pegawai toko hanya saja untuk admin
85
gudang mengacu kepada pembelian dan pengeluaran. Admin gudang memiliki tugas
dan tanggung jawab akan ketersediaan stok barang yang ada di CV. Multi Citra Kimia.
Dan supplier yang memiliki kerja sama dengan CV. Multi Citra Kimia adalah supplier
bahan-bahan kimia yang terlenkap se-indonesia dan terpercaya dan sudah tercantum
didalam aplikasi point of sale ini nama-nama perusahaan supplier tersebut.
Supplier tidak memiliki/tidak dapat login karena tidak masuk kedalam sistem
aplikasi point of sale ini. Hanya untuk ruang lingkup CV. Multi Citra Kimia sendiri.
Saat barang-barang ada yang kurang jumlah stok nya, maka aplikasi ini akan
menampilkan di notifikasi dan dashboard utama admin gudang. Notifikasi yang ada di
admin gudang hanya berfungsi jika barang ada yang kurang dari stok normalnya. Dan
grafik yang dimiliki oleh admin gudang hanyalah grafik pembelian dan perhitungan
pembelian dan pengeluarang di setiap harinya.
3.7.28 User Interface Tabel Nama Barang
Gambar 3.29 User Interface Tabel Nama Barang
86
Selanjutnya gambar diatas adalah gambar dari user interface dari tabel nama-
nama barang yang di jual di CV. Multi Citra Kimia. Disini Pemilik Toko, Admin
Gudang dan Pegawai Toko bisa membuka tabel nama-nama barang tersebut dan juga
bisa mengedit atau menghapusnya.
3.7.29 User Interface Tabel Karyawan
Gambar 3.30 User Interface Tabel Nama Karyawan
Diatas adalah gambar user interface dari tabel nama-nama karyawan didalam
aplikasi point of sale. Disini dapat mereset akun, edit dan juga menghapus. Hal ini
hanya dapat dilakukan oleh pemilik toko didalam aplikasi point of sale ini karena admin
gudang dan pegawai toko tidak punya hak untuk merubah data karyawan.
87
3.7.30 User Interface Tabel Nama Pelanggan
Gambar 3.31 User Interface Tabel Nama Pelanggan
Diatas adalah tampilan dari user interface nama pelanggan. Disini dapat
dicantumkan pembeli langganan (dengan nama) atau tanpa nama(Pembeli Random).
Disini Pemilik dan juga Pegawai Toko dapat akses untuk mengubah nama-nama
pelanggan tersebut atau menghapusnya.
88
3.7.31 User Interface Penjualan
Gambar 3.32 User Interface Penjualan
Gambar diatas adalah gambar dari tampilan user interface untuk penjualan. Ini
diakses oleh pegawai toko (kasir). Saat ada pembeli datang membeli barang maka data
transaksi akan dimasukkan kedalam tabel ini seuai barang yang dibeli dan jumlahnya.
Penginputan ini dilakukan oleh pegawai toko. Disini, secara otomatis kode penjualan
sudah muncul secara random dan tidak dapat diubah dan barang dan jumlah yang di
cantumkan akan tampil di tabel. Kode barang, nama barang, dan lain-lainnya akan
muncul. Total bayar akan muncul dan sub total akan muncul saat kolom diskon terisi.
Saat menginput jumlah pembayaran, kolom kembalian akan otomatis muncul dari
sistem aplikasinya.
89
3.7.32 User Interface Pembelian
Gambar 3.33 User Interface Pembelian
Diatas adalah tampilan dari user interface pembelian. Ini hanya dapat diakses
oleh admin gudang saja. Hampir sama dengan user interface penjualan, hanya saja
kalau user interface pembelian tidak memakai diskon. Semua yang akan dibeli oleh
admin gudang akan diinput disini dan harus dilakukan. Sisanya, komunikasi antara
admin gudang dengan supplier adalah komunikasi call to call karena supplier tidak
masuk dalam sistem aplikasi point of sale ini.
90
3.7.33 User Interface Tambah Barang (Input Data Barang)
Gambar 3.34 User Interface Tambah Data Barang
Gambar diatas adalah tampilan user interface yang yang terhunung dengan tabel
barang. Yaitu tambah data barang. Disini bisa dilakukan oleh 3 aktor. Saat
menambahkan barang, maka harus memasukkan kode barang, nama barang, stok yang
tersedia, satuan, harga beli, harga jual, keuntungan dan kategori. Semua data harus
terisi sesuai dengan barang yang memang ingin dimasukkan. Selanjutnya tinggal pilih
tombol simpan.
91
3.7.34 User Interface Tambah Data Karyawan
Gambar 3.35 User Interface Tambah Data Karyawan
Gambar diatas adalah gambar tampilan user interface dari tambah data
karyawan. Ini dapat dilakukan oleh aktor (Pemilik Toko). Untuk menambah data, maka
harus memasukkan nama karyawan, alamat karyawan, no.telepon dan jabatan
karyawan yang ditambahkan tersebut. Setelah itu tinggal mengklik tombol simpan.
Maka data karyawan yang tadi diinputkan akan tersimpan.
92
3.7.35 User Interface Tambah Data Pelanggan
Gambar 3.36 User Interface Tambah Data Pelanggan
Diatas adalah gambar tampilan user interface tambah data pelanggan. Tidak
jauh berbeda dengan tambah data karyawan. Yang membedakan adalah, pelanggan
tidak memiliki jabatan apapun. Untuk menginputnya, harus memasukkan nama
pelanggan, alamat pelanggan, dan nomor teleponnya setelah itu simpan.
93
3.7.36 User Interface Tabel Supplier
Gambar 3.37 User Interface Tabel Supplier
Gambar diatas adalah tampilan user interface dari tabel supplier yang bekerja
sama dengan CV. Multi Citra Kimia. Nama-nama supplier ini di input oleh pemilik
toko didalam aplikasi. Disini dapat dilihat kalau tampilanmya tidak terlalu berlebihan
dan terkesan simple. Bisa kita tambahkan data supplier, edit atau menghapusnya.
94
3.7.37 User Interface Tambah Data Supplier
Gambar 3.38 User Interface Tambah Data Supplier
Gambar diatas adalah gambar dari tampilan user interface dari tambah data
supplier. Ini berhubungan dengan tabel data supplier yang ada digambar 3.37. Disini
yang dapat menambahkan data supplier adalah sang pemilik toko. Aktor pertama. Sama
seperti yang lainnya, pertama harus menginputkan nama supplier, alamat supplier dan
no.telepon/HP perusahaan supplier tersebut.
95
3.7.38 User Interface Laporan
Gambar 3.39 User Interface Laporan
Diatas adalah gambar dari tampilan user interface menu laporan. Seperti yang
dapat dilihat, ada 2 jenis laporan dan 2 jenis riwayat. Disini jika login sebagai pemilik
toko, makan seperti yang diatas ini tampilannya. Tampilan secaa lengkap. Jika login
sebagai pegawai toko, maka yang muncul hanya riwayat penjualan dan laporan
penjualan. Begitu juga sebaliknya dengan admin gudang. Hanya mendapatkan menu
riwayat pembelian dan laporan pembelian.
96
3.7.39 User Interface Laporan Penjualan
Gambar 3.40 User Interface Laporan Penjualan
Gambar diatas adalah isi dari menu laporan penjualan. Terlihat sangat simple
namun sudah memiliki penentuan tanggal. Disini pegawai toko hanya memasukkan
tanggal mulai dan tanggal akhir untuk mencetak suatu laporan penjualan karena
didalam CV. Multi Citra Kimia selalu ada pemeriksaan data penjualan setiap
minggunya.
97
3.7.40 User Interface Laporan Pembelian
Gambar 3.41 User Interface Laporan Pembelian
Diatas adalah adalah gambar dari user interface menu laporan pembelian. Tidak
ada yang berbeda dari laporan penjualan. Laporan pembelian dapat diakses oleh admin
gudang dan sama seperti laporan penjualan, dalam mencari laporan harus memasukkan
tanggal mulai dan tanggal akhir.
3.8 Pengujian
Pengujian sistem merupakan proses pengeksekusian sistem perangkat
lunak untuk menentukan apakah sistem tersebut berjalan sesuai yang diinginkan.
Pengujian sistem sering dihubungkan dengan pencarian bug. Ketidak sempurnaan
dan kesalahan pada program, sehingga terjadi kegagalan pada eksekusi perangkat
lunak.
Pengujian dilakukan dengan menguji setiap proses dan kemungkinan
kesalahan yang terjadi dari setiap proses. Pengujian yang dilakukan adalah Black
98
Box. Pengujian Black Box adalah merupakan pengujian yang berfokus pada
spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan
kondisi input dan melakukan pengetesan pada spesifikasi fungsional program.
3.8.1 Rencana Pengujian
Persiapan yang dilakukan dalam melakukan rencana pengujian adalah sebagai
berikut:
a. Menyiapkan laptop atau komputer yang dapat terhubung dengan
jaringan internet, agar dapat membuka situs website ini atau sementara
menggunakan Localhost.
b. Memasukkan alamat URL website.
c. Melakukan proses pengujian sistem.
d. Mencatat hasil pengujian sistem
98
BAB IV
HASIL DAN PEMBAHASAN
4.1 Hasil
Setelah melakukan analisis dan perancangan maka pada bab ini, akan
dilanjutkan dengan hasil dan pembahasan dari rancang bangun sistem pada aplikasi
point of sale sederhana menggunakan menggunakan php.
4.1.1 Spesifikasi Sistem
Dalam tahap ini akan dijelaskan tentang spesifikasi perangkat keras dan lunak
serta bahasa pemograman yang dipakai dalam penelitian ini yaitu:
1. Perangkat keras
Perangkat keras yang digunakan dalam penelitian ini, yaitu laptop sebagai
perangkat untuk melalukan coding program aplikasi. Adapun spesifikasi
laptop yang digunakan dalam penelitian ini adalah sebagai berikut:
a. Laptop Asus X452E
b. Processor: Processor AMD E1 2500
c. Memory: 10 GB RAM
d. Display: 1366 x 768 pixel
2. Perangkat Lunak
Perangkat lunak yang digunakan didalam penelitian ini adalah sebagai berikut:
a. Sistem Operasi Windows 10
b. MySQL (Versi PHP 7.3.3 Terbaru)
c. Sublime Text 3
99
d. XAMPP (Versi 3.2.3)
e. Google
4.1.2 Implementasi Tampilan Sistem
Implementasi merupakan tahap akhir dalam pembangunan sistem, yang
dimana pada tahap ini sistem akan diimplementasikan. Implementasi antar muka
dari perangkat lunak dilakukan berdasarkan rancangan yang telah dilakukan.
Implementasi antarmuka ditampilkan dalam bentuk screenshoot dari laptop
yang digunakan sebagai alat dan bahan penelitian yang telah dirincikan pada BAB
III. Aplikasi Point Of Sale ini hanya dapat di akses 3 aktor yaitu pemilik toko, pegawai
toko dan admin gudang. Masing-masing memiliki hak tersendiri dan isi didalam
aplikasinya nanti masing-masing tidak semua sama. Adapun hasil dari implementasi
sistem yaitu sebagai berikut:
a. Antarmuka Menu Login Aplikasi Point Of Sale
Merupakan tampilan pertama sistem yang muncul sementara
sebelum masuk ke menu utama.
Gambar 4.1 Antarmuka Login Aplikasi Point Of Sale
100
Pada gambar 4.1 diatas merupakan tampilan halaman login yang
berfungsi untuk menampikan halaman login dimana pengguna harus menginput
username dan password terlebih dahulu sebelum mengakses aplikasi tersebut.
Setelah itu, data yang sudah diinput tersimpan kedalam database untuk pengguna
yang baru pertama kali mengakses aplikasi ini, setelah mengisi username dan
password kemudian tekan tombol login.
b. Menu Utama (Pemilik Toko)
Gambar 4.2 Antarmuka Menu Utama Untuk Pemilik Toko
Pada gambar 4.2 diatas merupakan tampilan halaman menu utama
untuk pemilik toko yang berfungsi untuk menampikan informasi penjualan
barang, dan beberapa pilihan informasi seperti data pelanggan, stories
pembelian, dan data supplier. Pemilik Toko memiliki tampilan yang lebih
lengkap daripada Pegawai Toko dan Admin Gudang.
101
c. Menu Utama (Untuk Pegawai Toko)
Gambar 4.3 Antarmuka menu utama untuk Pegawai Toko
Pada gambar 4.3 adalah tampilan menu utama jika login sebagai
pegawai toko/kasir. Yang tampil untuk pegawai toko adalah hal-hal yang
menyangkut tantang transaksi penjualan barang dengan pembeli.
d. Menu Utama (Untuk Admin Gudang)
Gambar 4.4 Antarmuka menu utama untuk Admin Gudang
102
Pada gambar 4.4 adalah tampilan menu utama jika login sebagai admin
gudang. Hal-hal yang terkait hanyalah seputar pembelian barang dengan
supplier.
e. Menu Barang
Gambar 4.5 Antarmuka Menu Barang
Pada gambar diatas adalah tampilan dari menu barang. Memunculkan
list barang-barang yang dijual. Data barang dapat ditambah dan di edit serta
dapat dihapus.
103
f. Tambah Barang
Gambar 4.6 Antarmuka Tambah Data Barang
Gambar diatas adalah tampilan antarmuka saat memilih tombol tambah
barang. Setelah memilih maka akan langsung masuk ke layout ini. Data dapat
ditambah dengan mengisi data-data yang tersedia didalam kolom.
g. Edit Data Barang
Gambar 4.7 Antarmuka Edit Data Barang
104
Gambar diatas adalah tampilan antarmuka dari edit data barang jika kita
memilih tombol edit. Sama dengan tambah data, saat edit, tampilan tidak terlalu
berbeda. Hanya saja sudah terisi data barang yang akan kita edit.
h. Menu Pelanggan
Gambar 4.8 Antarmuka menu pelanggan
Gambar diatas ini adalah gambar dari tampilan antarmuka saat masuk
ke menu pelanggan. Semua list-list nama-nama pelanggan akan muncul dan
semua dapat di edit dan juga dihapus datanya.
105
i. Menu Tambah Pelanggan
Gambar 4.9 Antarmuka menu tambah pelanggan
Gambar diatas adalah antarmuka dari menu tambah pelanggan. Saat kita
menekan tombol tambahkan pelanggan, maka selanjutnya akan muncul ke
tampilan ini dan kita harus mengisi data pelanggan yang ingin ditambahkan.
j. Menu Edit Data Pelanggang
Gambar 4.10 Antarmuka Edit Data Pelanggan
106
Pada gambar diatas adalah tampilan edit data pelanggan jika kita
menargetkan data mana yang ingin diedit, hanya mengklik tombol edit,
selanjutnya akan menuju layout seperti gambar diatas. Setelah itu dapat
mengedit data pelanggan dan memilih simpan.
k. Menu Karyawan
Gambar 4.11 Antarmuka Menu Karyawan
Gambar diatas adalah tampilan yang akan muncul jika kita memilih
menu karyawan. Berisi list pegawai yang bekerja. Termasuk ada pemilik toko
tersebut.
107
l. Menu Tambah Data Karyawan
Gambar 4.12 Antarmuka Tambah Data Karyawan
Gambar diatas ini adalah tampilan antarmuka jika memilih tombol
tambah karyawan, maka dapat menambah data karyawan kedalam aplikasi.
m. Menu Edit Data Karyawan
Gambar 4.13 Antarmuka Edit Data Karyawan
108
Gambar diatas adalah gambar antarmuka edit data karyawan. Kita dapat
mengedit data karyawan jika login menjadi pemilik toko. Mengisi semua data
dan menyimpannya kembali.
n. Menu Data Supplier
Gambar 4.14 Antarmuka Data Supplier
Gambar diatas adalah gambar tampilan antarmuka dari isi menu
supplier. Berisi data-data supplier. Disini dapat mengedit dan menghapus
datanya juga.
o. Menu Tambah Supplier
Gambar 4.15 Antarmuka Tambah Supplier
109
Gambar diatas adalah tampilan jika memilih untuk menambahkan data
supplier baru di aplikasi.
p. Menu Edit Data Supplier
Gambar 4.16 Antarmuka Edit Data Supplier
Gambar diatas adalah tampilan antarmuka saat ingin edit data supplier
didalam aplikasi. Kita dapat merubah data tersebut jika login sebagai pemilik
toko.
q. Menu Laporan
Gambar 4.17 Antarmuka Menu Laporan
110
Gambar diatas adalah isi dari menu laporan. Laporan tersedia dari
berbagai jenis.
r. Menu Laporan Penjualan
Gambar 4.18 Antarmuka Menu Laporan Penjualan
Gambar diatas adalah tampilan antarmuka menu laporan penjualan. Kita
dapat memasukkan tanggal awal dan tanggal akhir dan setelah itu pilih tombol
cari untuk mencari data laporan tersebut.
111
s. Menu Laporan Pembelian
Gambar 4.19 Antarmuka Menu Laporan Pembelian
Gambar diatas tidak berbeda dengan laporan penjualan. Kita dapat
mencari data laporan pembelian dengan memasukkan tanggal awal dan tanggal
akhir.
t. Menu Riwayat Penjualan
Gambar 4.20 Antarmuka Riwayat Penjualan
112
Gambar diatas adalah gambar dari tampilan riwayat penjualan dari
semua baranng yang terdata secara rapih. Detail untuk melihat detail
penjualannya.
u. Menu Riwayat Pembelian
Gambar 4.21 Antarmuka Riwayat Pembelian
Gambar diatas adalah gambar dari tampilan antarmuka dari riwayat
pembelian. Sama seperti dapa gambar sebelumnya di riwayat penjualan, di
riwayat pembelian akan ditampilkan list-list tentang history transaksi
pembelian barang yang sudah pernah dilakukan.
113
v. Menu Transaksi Penjualan
Gambar 4.22 Antarmuka Menu Penjualan
Gambar diatas adalah gambar dari tampilan antarmuka menu penjualan
yang hanya bisa diakses oleh pegawai toko. Pada gambar diatas, terlihat jelas
jika transaksi sedang berlangsung, pegawai toko dapat memasukkan semua
data-data tentang barang yang dibeli oleh pembeli danberapa jumlahnya. Lalu
memilih tombol tambahkan. Setelah itu akan tampil diposisi tengah.
Senlanjutnya memasukan kolom nominal uang sesuai nominal uang yang
pembeli berikan dan jika mendapatkan diskon maka otomatis harga akan
berkurang. Tegantung berapa besar diskon yang digunakan. Selanjutnya dapat
memilih tombol cetak untuk mencetak struk dan memberikannya kepada
pembeli sebagai bukti pembelian barang.
114
w. Tampilan Struk Penjualan
Gambar 4.23 Antarmuka Layout Struk Penjualan
Gambar diatas ini adalah antarmuka dari tampilan struk jika sebelumnya
pegawai toko memilih tombol cetak saat transaksi dengan pembeli. Struk ini
diperlukan untuk pelanggan sebagai bukti kalau pembeli sudah membeli barang
di toko ini.
x. Menu Transaksi Pembelian
Gambar 2.24 Antarmuka Menu Pembelian
115
Gambar 2.24 ini adalah antarmuka dari tampilan menu pembelian. Ini
hanya dapat diakses oleh admin gudang. Menu ini dipakai sendiri untuk
menedata barang apa aja yang harus dibeli, memasukkan nama supplier lalu
berapa jumlah barang yang dibeli. Setelah mengklik tambahkan, maka akan
muncul di tampilan tengah. Tentang barang yang dibeli. Senlanjutnya
memasukka nominal pembayaran dan klik simpan untuk menyimpan datanya.
Terakhir dapat memilih tombol cetak.
y. Tampilan Struk Pembelian
Gambar 2.25 Antarmuka Struk Pembelian Barang
Gambar 2.25 ini adalah gambar antarmuka dari tampilan struk
pembelian barang. Ini dilakukan saat pembelian barang antara admin gudang ke
supplier. Tampilan struknya tidak jauh berbeda dengan tampilan struk untuk
transaksi penjualan.
116
4.1.3 Hasil Pengujian
Berdasarkan rencana pengujian aplikasi seperti diatas, maka dapat dilakukan
pengujian sebagai berikut ini:
Tabel 5 Pengujian Black Box Testing
No Item
Pengujian
Detail
Pengujian
Hasil yang
Diharapkan
Hasil Pengujian
1 From Login Username User dan
admin tidak
dapat
masuk jika
username
salah
atau tidak
sesuai dengan
database
OK
Login User dan
admin tidak
dapat
masuk jika
pasword salah
atau
tidak sesuai di
database
OK
2 Menu Utama Dashboard Menampilkan
Menu yang
diharapkan
OK
3 Layout Barang Menu Barang Menampilkan
List barang-
barang yang
dijual
OK
117
Tombol
Tambah
Barang
Manmbahkan
barang yang
dijual dan
muncul
kolom-kolom
untuk diisi
datanya
OK
Tombol Edit Masuk ke
layout edit
data barang
dan muncul
kolom-kolom
dengan
keterangan
data yang
dipilih tadi
untuk
mengedit data
barang yang
dipilih
OK
Tombol Hapus Langsung
menghapus
data yang
dipilih
OK
Tombol
Simpan
Menyimpan
data barang
yang selesai
diedit
OK
4 Layout
Supplier
Menu Supplier Menampilkan
list supplier
yang
tercantum
didatabase
OK
Kolom Search Dapat mencari
nama
perusahaan
OK
118
supplier
dengan cepat
Tombol
Tambah
Supplier
Menuju layout
untuk
menambah
data supplier
lain
OK
Tombol Edit Menuju
Layout untuk
edit data
supplier
dengan
keterangan
data supplier
yang kita pilih
OK
Tombol
Simpan
Untuk
menyimpan
data supplier
yang selesai
kita ubah
OK
Tombol Hapus Langsung
menghapus
data supplier
OK
5 Layout
Pelanggan
Menu
Pelanggan
Menampilkan
list-list daftar
pelanggan
yang
tercantum
OK
Kolom Search Mencari data
pelanggan
dengan cepat
OK
Tombol
Tambah
Pelanggan
Menuju layout
untuk
menambahkan
data
OK
119
pelanggan
yang lainnya
Tombol Edit Menuju layout
untuk
pengeditan
data
pelanggan
dengan semua
kolom berisi
data-data
pelanggan
yang ingin
kita edit
datanya
OK
Tombol
Simpan
Menyimpan
data
pelanggan
yang selesai
kita edit
OK
Tombol Hapus Langsung
menghapus
data
pelanggan
dalam list
OK
6 Layout
Karyawan
Menu Data
Karyawan
Menampilkan
list-list
karyawan
yang bekerja
OK
Kolom Search Mencari Data
secara cepat
OK
Tombol
Tambah
Karyawan
Menuju layout
tambah data
OK
Tombol
Simpan
Menyimpan
data yang
OK
120
telah di
tambah
Tombol Reset
Akun
Untuk mereset
akun secara
menyeluruh.
Layout akan
berkedip 1
detik
OK
Tombol Edit Menuju layout
edit data
karyawan
OK
Tombol Hapus Langsung
menghapus
data dengan
cepat
OK
7 Layout
Laporan
Menu laporan
dan riwayat
dari penjualan
dan pembelian
Jenis laporan
tampil
OK
Laporan
Penjualan
Dapat tanggal
awal dan
tanggal akhir
untuk
mencetak
laporan
OK
Tombol Cari Mencari
laporan yang
sudah
dimasukkan
tanggal awal
dan tanggal
akhir
OK
Laporan
Pembelian
Dapat tanggal
awal dan
tanggal akhir
OK
121
untuk
mencetak
laporan
Tombol Cari Mencari
laporan yang
sudah
dimasukkan
tanggal awal
dan tanggal
akhir
OK
8 Menu
Transaksi
Penjualan
Layout
Penjualan
Menampilkan
kolom-kolom
data untuk
diisi sesuai
transaksi yang
sedang
berlangsung
OK
Tombol
Tambahkan
Menambahkan
jumlah barang
yang dibeli
OK
Tombol
Simpan
Menyimpan
barang yang
dibeli kedalam
data laporan
OK
Tombol Cetak Mencetak
Struk
Pembelian
OK
9 Menu
Pembelian
(Dilakukan
oleh admin
gudang)
Layout
Pembelian
Menampilkan
kolom-kolom
data untuk
diisi sesuai
pembelian
yang
dilakukan
admin gudang
OK
122
dengan
supplier
Tombol
Tambahkan
Menambahkan
jumlah barang
yang dibeli
OK
Tombol
Simpan
Menyimpan
barang yang
dibeli kedalam
data laporan
OK
Tombol Cetak Mencetak
Struk
Pembelian
OK
10 Logout User Logout Langsung
keluar dari
aplikasi dan
jika ingin
masuk
kembali maka
harus login
kembali
OK
4.2 Pembahasan Hasil Pengujian
Seperti yang sudah dijelaskan sebelumnya, aplikasi point of sale ini dirancang
dengan menggunakan metode prototyping. Karena pengembangannya cepat dan sangat
menghemat waktu. Dan aplikasi ini hanya untuk skala kecil. Yaitu hanya untuk CV.
Multi Citra Kimia. Aplikasi point of sale ini sederhana dan sudah mampu membuat
pendataaan menjadi rapi, dapat mengetahui stok barang dan menjadi neraca/perhitungan
keuangan untuk CV. Multi Citra Kimia.
Menurut penelitian Izharyan Iqbal pada tahun 2015, Aplikasi Point of
Sale/Aplikasi Penjualan yang berbasis web sangat bagus karena mampu
mendokumentasikan dan menghasilkan laporan secara detail mengenai hal-hal yang
123
berkaitan dengan proses jual – beli dan transaksi yang dilakukan oleh pihak customer
dan gudang sehingga mempermudah aktivitas dan pengawasan terhadap unit- unit bisnis
yang dimiliki oleh perusahaan serta dapat mengakomodasi aktivitas jual – beli dan
pelayanan yang dilakukan dengan lebih cepat dan efisien. Admin Gudang dapat
mengetahui stok barang terkini di aplikasi dan customer juga dapat dengan mudah
mendapatkan informasi terkini terkait produk barang yang disediakan oleh perusahaan
[18].
Dalam aplikasi Point of Sale juga dibutuhkan sistem yang dapat menghitung
neraca keuangan secara otomatis sama seperti fungsi dari aplikasi keuangan. Menurut
Heribertus Yulianton dan kawan-kawan pada penelitiannya yang berjudul Rancang
Bangun Sistem Informasi Keuangan Berbasis Area untuk Pengusaha Kecil (Studi Kasus
Batik Wijayanti Semarang) pada tahun 2014, Untuk memudahkan perusahaan dalam
mengelola keuangan dibutuhkan kecermatan dalam pencatatan kejadian-kejadian yang
terkait dengan keuangan. Dengan memanfaatkan teknologi berbasis web
memungkinkan perusahaan yang memiliki wilayah operasional lebih dari satu tempat
dapat membantu perusahaan mengelola transaksi keuangannya dengan tepat, cermat
dan akuntabel dalam waktu yang lebih cepat. Karena sistem informasi keuangan yang
berbasis web dapat diakses secara bersamaan di beberapa tempat sekaligus [19].
124
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan dengan uraian-uraian diatas dan pembahasan pada bab
sebelumnya mengenai aplikasi Point Of Sale untuk CV. Multi Citra Kimia, maka dapat
di simpulkan sebagai berikut:
1. Aplikasi yang dirancang menggunakan PHP berbasis web dan MySQLi
serta control panel XAMPP, dalam pengolahan data transaksi penjualan dan
pembelian stok barang, akan secara otomatis berkurang dan bertambah serta
pendataan menjadi lebih rapih dalam aplikasi Point Of Sale ini.
2. Dengan aplikasi ini, admin gudang dapat melihat stok sisa di list barang
tanpa harus menghitung satu persatu. Stok barang dapat dilihat juga oleh
calon pembeli jika dia ingin membeli suatu barang di CV. Multi Citra Kimia
agar tau ada berapa jumlah stok barang yang tersisa. Ini akan mengurangi
masalah jika pembeli ingin membeli barang dan barang telah habis.
3. Dengan aplikasi point of sale ini dapat menghitung pendapatan dan
pengeluaran uang secara otomatis yang ditampilkan di dashboard utama.
Serta menampilkan jumlah transaksi pembelian dan penjualan.
5.2 Saran
Berdasarkan penyusunan laporan dan kesimpulan diatas, penulis akan
memberikan saran yang dapat dijadikan bahan pertimbangan untuk penelitian
selanjutnya, yaitu diantaranya :
1. Untuk tiga aktor aplikasi ini (Pemilik, Pegawai Toko, Admin Gudang)
diharapkan belajar dan berlatih terlebih dahulu sebelum mengoperasikan
125
program ini, agar dapat dengan mudah mengoprasikan program ini dengan
baik.
2. Diharapkan untuk penelitian selanjutnya dapat menyempurnakan aplikasi
point of sale berbasis web dengan semua calon pelanggan yang memesan
lewat alamat link atau membeli secara langsung, dapat menampilkan nama-
nama calon pelanggan di menu laporan penjualan, di struk dan di dalam
aplikasinya.
126
DAFTAR PUSTAKA
[1] D. A. N. Dampaknya and T. Kehidupan, “Perkembangan Teknologi Informasi, Vol. X
No. 2, Juli-Desember 2009 195,” vol. X, no. 2, pp. 195–211.
[2] P. Bisnis, “PENGARUH TEKNOLOGI INFORMASI DALAM PERKEMBANGAN
BISNIS Setyaningsih Sri Utami Fakultas Ekonomi Universitas Slamet Riyadi
Surakarta,” pp. 61–67.
[3] M. Ferdika, H. Kuswara, and K. Kunci, “Sistem Informasi Penjualan Berbasis Web
Pada PT Era Makmur Cahaya Damai Bekasi,” vol. 1, no. 2, pp. 175–188, 2017.
[4] T. Bagi, U. Kecil, and D. A. N. Menengah, “Jurnal Economia ,” vol. 8, 2012.
[5] I. Rizki, R. A. S. P, Y. Yuniati, and A. L. Belakang, “Pembuatan Sistem Informasi
Penjualan Berbasis Web ( Studi Kasus pada Toko Ali Computer ).”
[6] S. C. Cahyodi and R. W. Arifin, “Sistem Informasi Point Of Sales Berbasis Web Pada
Colony Amaranta Bekasi,” vol. 1, no. 2, pp. 189–204, 2017.
[7] S. Aneka, S. Puspasari, and H. Sunardi, “Sistem Informasi Penjualan Pupuk Berbasis
Web,” vol. 14, no. 1, 2018.
[8] T. G. Yuarita, F. Marisa, J. T. Informatika, and U. W. Malang, “PERANCANGAN
APLIKASI POINT OF SALES ( POS ) BERBASIS WEB MENGGUNAKAN
METODE SIKLUS HIDUP,” pp. 167–171, 2010.
[9] P. Pt and M. Jati, “Sistem Informasi Penjualan Berbasis Web,” pp. 43–57, 1970.
[10] P. Cv and G. Multi, “SISTEM INFORMASI PENJUALAN KAWAT BERBASIS
WEB ISBN : 978-602-72850-3-3 INF-577,” pp. 576–581.
[11] S. Dian, H. Permana, F. Telematika, U. Trilogi, and U. M. Language, “ANALISA DAN
PERANCANGAN APLIKASI POINT OF SALE ( POS ) UNTUK MENDUKUNG
MANAJEMEN HUBUNGAN PELANGGAN,” vol. 2, no. 1, pp. 20–28, 2015.
[12] M. John and F. Nash, “Pengertian Sistem Informasi,” 1995.
[13] B. Loardy, B. Bunawan, and P. Hartono, “Aplikasi Point Of Sales Yang Terhubung
Dengan Electronic Data Capture,” no. Lc, pp. 3–6.
[14] B. A. B. Ii and T. Pustaka, “Pengertian Penjualan Basu Swasta,” 2004.
[15] B. A. B. Ii and L. Teori, “Database Menurut Para Ahli,” pp. 1–26.
[16] “Pengertian Basis Data,” pp. 6–56, 2011.
[17] E. Munawaroh et al., “Perancangan aplikasi rekam medis klinik bersalin baiturrahman
menggunakan metode object oriented,” pp. 1–10, 1999.
[18] F. R. Industri, “PERANCANGAN APLIKASI PENJUALAN BERBASIS WEB
DENGAN METODE PROTOTYPING PADA CV KHATULISTIWA,” vol. 2, no. 1,
127
pp. 1083–1097, 2015.
[19] H. Yulianton, F. Andreas, and S. Mulyani, “Rancang Bangun Sistem Informasi
Keuangan Berbasis Area untuk Pengusaha Kecil ( Studi Kasus Batik Wijayanti
Semarang ),” vol. 19, no. 2, pp. 137–143, 2014.
128
LAMPIRAN
1. Wawancara Penelitian
Profil Narasumber
Nama Narasumber : Susanto Santoso
Umur : 54 Tahun
Jenis Kelamin : Laki-laki
Jabatan : Pemilik Toko
Berikut ini adalah sesi wawancara tanya jawab antara peneliti dengan pemilik
toko:
1. Pada tahun berapa pertama kali toko ini didirikan?
Jawab: Pertama kali didirikan pada tahun tahun 2007 dan berlokasi di JL.
Tegal Gede, No. 29 Rt 9, Rw 10, Cikarang Selatan, Bekasi, Jawa Barat,
Indonesia.
2. Ada berapa jumlah pegawai di toko ini:
Jawab: Memiliki 20 orang pegawai
3. Apakah sistem penjualan disini masih menggunakan cara manual?
Jawab: Ya. Semua sistem yang ada disini masih manual. Untuk mendata
transaksi penjualan dan pembelian masih menggunakan buku tulis.
4. Apa kendala yang terjadi selama ini didalam sistem penjualan ditoko ini yang
masih manual?
Jawab: Kendala nya adalah sering terjadinya penumpukan di ruang data
mengingat toko kami masih menggunakan sistem manual untuk pendataan.
Dan untuk mencari laporan yang saya perlukan, terkadang pegawai harus
mencari-cari dulu dan memakan waktu. Dan lagi juga pernah mengalami
129
kerusakan pada buku catatan data yaitu basah terkena hujan. Dan banyak
saya lihat juga pembeli yang datang mau beli barang, barang habis. Lalu
perhitungan pengeluaran dan pendapatan yang setiap sore dihitung, kadang
suka tidak sesuai. Sering terjadi kurang uang. Entah itu Rp.3000 atau berapa
pun tapi itu juga tidak terlalu sering
5. Apakah bapak Santoso selaku pemilik toko, ingin untuk merubah sistem
penjualan menjadi terkomputerisasi?
Jawab: Ya. Karena sudah menggunakan semua secara manual itu sejak toko
ini didirikan. Dan ingin beralih menggunakan aplikasi yang bisa digunakan
untuk mendata barang, pegawai, pelanggan, nama barang, nama supplier,
mendata penjualan dan pembelian dan untuk menampilkan pendapatan dan
pengeluaran secara otomatis.
Profil Narasumber
Nama Narasumber : Mia Indah Mawarni
Umur : 28 Tahun
Jenis Kelamin : Perempuan
Jabatan : Pegawai toko (Kasir)
Berikut ini adalah sesi wawancara tanya jawab antara peneliti dengan pegawai
toko:
1. Sudah berapa lama bekerja di CV. Multi Citra Kimia?
Jawab: Bekerja sejak tahun 2014 dan sudah diposisikan sebagai kasir.
2. Disini yang menjadi kasir ada berapa orang?
130
Jawab: Disini kasir ada 3 orang. Kerjanya terkadang bergantian. Lebih
banyak sisanya ada sebagai pegawai gudang. Memang harus beli barang
banyak ke beberapa supplier.
3. Sebagai kasir, Apakah ada kendala mengingat sistem penjualan di toko ini
masih manual
Jawab: Ya betul. Disini masih manual dan disini mesin kasir pun belum
dimiliki. Jadi setiap ada pembeli, saya bertanya dulu ke admin gudang
apakah barang masih ada atau belum. Lalu setelah terjadi transaksi saya
langsung mencatat di buku barang apa saja yang terjual.
4. Lalu untuk struk bukti pembeliannya bagaimana?
Jawab: Untuk struk kita memang ada kertas khusus tapi itu juga tulis tangan.
5. Jika akan menggunakan sistem komputer, apa yang ingin diharapkan?
Jawab: Yang penting ada sistem kasirnya. Maksudnya untuk mendata
penjualan dan kita juga bisa cetak struk langsung dengan rapi.
Dibandingkan tulis tangan. Dan kalau disuruh untuk mencari laporan dari
tanggal sekian hingga sekian, itu laporan bisa muncul.
Profil Narasumber
Nama Narasumber : Abdul Sakriy
Umur : 28 Tahun
Jenis Kelamin : Laki-laki
Jabatan : Admin Gudang
Berikut ini adalah sesi wawancara tanya jawab antara peneliti dengan admin
gudang:
131
1. Sudah berapa lama bekerja di CV. Multi Citra Kimia sebagai admin
gudang?
Jawab: Sudah 5 tahun bekerja di toko ini. Awalnya menjadi kasir selama 1
bulan, tetapi langsung dipindahkan menjadi admin gudang untuk ngurus
barang-barang digudang
2. Di bagian gudang, pegawai ada berapa orang?
Jawab: ada 17 orang. Karena suka ada pembelian banyak barang ke banyak
supplier, jadi petugas gudang disini lebih banyak.
3. Memangnya, berapa supplier yang didatangi? Apakah supplier tersebut
hanya memproduksi 1 barang saja hingga harus banyak pegawai gudang ke
banyak supplier?
Jawab: yang bekerja sama disini ada sekitar 5 Supplier. Itu yang memang
sudah sangat terpercaya dan barang selalu ready. 1 supplier banyak yang
hanya khusus memproduksi 1 bahan kimia dan ada juga yang 2 jenis barang
4. Sebagai admin gudang, apakah ada kendala mengingat sistem disini masih
menggunakan sistem manual?
Jawab: Ya tentu. Toko ini sudah didirikan sejak 2007, semua hingga tahun
ini masih manual semua. Semua data penjualan ataupun pembelian barang
dicatat menggunakan buku tulis. Pernah terjadi buku yang didalamnya
berisi data pembelian barang, buku rusak dimakan serangga.
5. Jika akan menggunakan sistem komputer, apa yang ingin diharapkan?
Jawab: Yang penting jika menggunakan aplikasi yang terkomputerisasi,
diharapkan bisa meletakkan data-data nama barang beserta stok
didalamnya, mencetak laporan, dan ada penghitung kalau hari ini uang
keluar berapa rupiah. Dan bisa disediain juga untuk customer kalau mau
beli barang, stok bisa dilihat dulu. Karena yang masih manual, petugas
gudang harus hitung barang dulu. Sering Customer beli barang gak Cuma 1
jenis. Tapi banyak. Diharapkan bisa mengandalkan sistem komputer.
132
2. Source Code Login
<?php
session_start();
// $koneksi = mysqli_connect("localhost","root","","db_pos");
include 'koneksi.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Login - Point Of Sale</title>
<!-- Bootstrap Core CSS -->
<link href="asset/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- MetisMenu CSS -->
<link href="asset/metisMenu/metisMenu.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="asset/dist/css/sb-admin-2.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="asset/font-awesome/css/font-awesome.min.css"
rel="stylesheet" type="text/css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and
media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --
>
<!--[if lt IE 9]>
133
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-default">
<div class="panel-heading text-center">
<h3 class="panel-title"><i><img src="asset/icon/cashier-
machine.png" alt=""></i><br> Please Sign In</h3>
</div>
<div class="panel-body">
<form method="post" id="login">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="Username"
name="username" type="username" autofocus>
</div>
<div class="form-group">
<input class="form-control" placeholder="Password"
name="password" type="password" value="">
</div>
<!-- Change this to a button or input when using this as a
form -->
<input type="submit" name="login" value="Login"
class="btn btn-lg btn-success btn-block">
</fieldset>
</form>
</div>
</div>
</div>
</div>
134
</div>
<!-- jQuery -->
<script src="asset/jquery/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="asset/bootstrap/js/bootstrap.min.js"></script>
<!-- Metis Menu Plugin JavaScript -->
<script src="asset/metisMenu/metisMenu.min.js"></script>
<!-- Custom Theme JavaScript -->
<script src="asset/dist/js/sb-admin-2.js"></script>
<script src="asset/jquery/jquery.validate.min.js"></script>
<script src="asset/jquery/additional-methods.min.js"></script>
<script src="asset/js/main.js"></script>
</body>
</html>
<?php
if(isset($_POST['login'])) {
$username = $_POST['username'];
$password = sha1(md5($_POST['password']));
$query = mysqli_query($koneksi, "SELECT * FROM tb_admin WHERE
username = '$username' AND password = '$password'");
$data = mysqli_fetch_array($query);
if(mysqli_num_rows($query) >= 1) {
$_SESSION['username'] = $data['username'];
$_SESSION['id_karyawan'] = $data['id_karyawan'];
echo "<script>alert('Berhasil Login');</script>";
echo "<meta http-equiv='refresh' content='1;url=index.php' >";
} else {
echo "<script>alert('Gagal Login');</script>";
echo "<meta http-equiv='refresh' content='1;url=login.php' >";
}
135
}
?>
3. Source Code Menu Utama/Dashboard Utama
<?php
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
include 'random_code.php';
include 'kode_pembelian.php';
include 'format_rupiah.php';
include 'koneksi.php';
include 'autocode.php';
session_start();
// $koneksi = mysqli_connect("localhost","root","","db_pos");
if(!empty($_SESSION['username']) AND
!empty($_SESSION['id_karyawan'])) {
$id_karyawan = $_SESSION['id_karyawan'];
$user = mysqli_query($koneksi, "SELECT * FROM tb_karyawan,
tb_jabatan WHERE tb_karyawan.id_jabatan = tb_jabatan.id_jabatan AND
tb_karyawan.id_karyawan = '$id_karyawan'");
$userData = mysqli_fetch_array($user);
if (isset($_POST['batal'])) {
if ($_POST['btl']!=='') {
$sql=mysqli_query($koneksi, "UPDATE tb_pemesanan SET jadi='b'
where invoice='".$_POST['btl']."'");
if (!$sql) {
echo "<script>alert('gagal update
tb_pemesanan');window.location.href = '?page=beranda';</script>";
}
else{
echo "<script>alert('berhasil update
tb_pemesanan');window.location.href = '?page=beranda';</script>";
}
}
}
?>
136
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="asset/icon/cashier-machine.png"/>
<title><?php include "title.php" ?></title>
<!-- Bootstrap Core CSS -->
<link href="asset/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- MetisMenu CSS -->
<link href="asset/metisMenu/metisMenu.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="asset/dist/css/sb-admin-2.css" rel="stylesheet">
<!-- Morris Charts CSS -->
<link href="asset/morrisjs/morris.css" rel="stylesheet">
<!-- DataTables CSS -->
<link href="asset/datatables-plugins/dataTables.bootstrap.css"
rel="stylesheet">
<!-- DataTables Responsive CSS -->
<link href="asset/datatables-responsive/dataTables.responsive.css"
rel="stylesheet">
<!-- Custom Fonts -->
<link href="asset/font-awesome/css/font-awesome.min.css"
rel="stylesheet" type="text/css">
<!-- Bootstrap Chosen -->
<link rel="stylesheet" href="asset/chosen/bootstrap-chosen.css"/>
137
<!-- Flatpickr -->
<link rel="stylesheet" href="asset/flatpickr/dist/flatpickr.min.css"/>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and
media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --
>
<!--[if lt IE 9]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script type="text/javascript" src="Chart.js"></script>
</head>
<body>
<div id="wrapper">
<!-- Navigation -->
<nav class="navbar navbar-default navbar-static-top" role="navigation"
style="margin-bottom: 0">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="?page=beranda"><i><img
src="asset/icon/cashier-machine-2.png" alt=""></i> Point Of Sale</a>
</div>
<!-- /.navbar-header -->
<ul class="nav navbar-top-links navbar-right">
<!-- /.dropdown -->
<li class="dropdown">
138
<?php
$tarik=0;
$bar2 = mysqli_query($koneksi, "SELECT COUNT(id_barang)
AS barang FROM `tb_barang` WHERE stok <= 10 ");
$ambil2 = mysqli_fetch_array($bar2);
if($userData['jabatan'] !== "Gudang") {
$bar3 = mysqli_query($koneksi, "SELECT pelanggan FROM
`tb_pemesanan` WHERE jadi='Y' group by invoice");
$ambil3 = mysqli_fetch_array($bar3);
$tarik=mysqli_num_rows($bar3);
}
$total=$ambil2['barang']+$tarik;
?>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<b style="color: red"><?php echo $total; ?></b> <i class="fa fa-
bell fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-alerts">
<?php
if($userData['jabatan'] !== "Gudang") {
$bar = mysqli_query($koneksi, "SELECT * FROM
`tb_pemesanan` WHERE jadi='Y' group by invoice order by invoice desc");
while($ambil = mysqli_fetch_array($bar)) {
?>
<li>
<a
href="index.php?page=pemesanan&aksi=preview&id=<?php echo
$ambil['invoice'] ?>">
<div>
<i class="fa fa-user fa-fw"></i> <?php echo
$ambil['pelanggan'] ?>
<span class="pull-right text-muted small"><?php echo
date('d/m/Y',strtotime($ambil['tanggal'])) ?></span>
</div>
</a>
</li>
<li class="divider"></li>
<?php }
139
}
$bar = mysqli_query($koneksi, "SELECT * FROM `tb_barang`
WHERE stok <= 10 ");
while($ambil = mysqli_fetch_array($bar)) {
?>
<li>
<a href="#">
<div>
<i class="fa fa-cube fa-fw"></i> <?php echo
$ambil['nama_barang'] ?>
<span class="pull-right text-muted small">Stok <?php
echo $ambil['stok'] ?></span>
</div>
</a>
</li>
<li class="divider"></li>
<?php } ?>
<li>
<a class="text-center" href="#">
<strong>See All Alerts</strong>
<i class="fa fa-angle-right"></i>
</a>
</li>
</ul>
<!-- /.dropdown-alerts -->
</li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-
down"></i>
</a>
<ul class="dropdown-menu dropdown-user">
<li><a href="?page=user"><i class="fa fa-user fa-fw"></i>
User Profile</a>
</li>
<li class="divider"></li>
<li><a href="logout.php"><i class="fa fa-sign-out fa-fw"></i>
Logout</a>
140
</li>
</ul>
<!-- /.dropdown-user -->
</li>
<!-- /.dropdown -->
</ul>
<!-- /.navbar-top-links -->
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu">
<li class="sidebar-search">
<h4><?php echo $userData['nama'] ?></h4>
<h6>Login Sebagai <b><?php echo $userData['jabatan']
?></b></h6>
<p><b><?php echo date("d/m/Y") ?></b></p>
<!-- /input-group -->
</li>
<?php if($userData['jabatan'] == "Administrator") { ?>
<li>
<a href="?page=beranda"><i class="fa fa-home fa-fw"></i>
Beranda</a>
</li>
<li>
<a href="?page=barang"><i class="fa fa-cubes fa-fw"></i>
Barang</a>
</li>
<li>
<a href="?page=supplier"><i class="fa fa-truck fa-fw"></i>
Supplier</a>
</li>
<li>
<a href="?page=pelanggan"><i class="fa fa-users fa-
fw"></i> Pelanggan</a>
</li>
<li>
<a href="?page=karyawan"><i class="fa fa-male fa-
fw"></i> Karyawan</a>
141
</li>
<li>
<a href="?page=laporan"><i class="fa fa-book fa-fw"></i>
Laporan</a>
</li>
<li>
<a href="?page=pengaturan_aplikasi"><i class="fa fa-gear
fa-fw"></i> Pengaturan Aplikasi</a>
</li>
<?php } elseif($userData['jabatan'] == "Gudang") { ?>
<li>
<a href="?page=beranda"><i class="fa fa-home fa-fw"></i>
Beranda</a>
</li>
<li>
<a href="?page=barang"><i class="fa fa-cubes fa-fw"></i>
Barang</a>
</li>
<li>
<a href="?page=pembelian&kodepb=<?php echo $kodePB
?>"><i class="fa fa-cart-plus fa-fw"></i> Pembelian</a>
</li>
<li>
<a href="?page=supplier"><i class="fa fa-truck fa-fw"></i>
Supplier</a>
</li>
<li>
<a href="?page=laporan"><i class="fa fa-book fa-fw"></i>
Laporan</a>
</li>
<?php } else { ?>
<li>
<a href="?page=beranda"><i class="fa fa-home fa-fw"></i>
Beranda</a>
</li>
<li>
142
<a href="?page=barang"><i class="fa fa-cubes fa-fw"></i>
Barang</a>
</li>
<li>
<a href="?page=penjualan&kodepj=<?php echo $kode
?>"><i class="fa fa-shopping-cart fa-fw"></i> Penjualan</a>
</li>
<li>
<a href="?page=pelanggan"><i class="fa fa-users fa-
fw"></i> Pelanggan</a>
</li>
<li>
<a href="?page=laporan"><i class="fa fa-book fa-fw"></i>
Laporan</a>
</li>
<?php } ?>
</ul>
</div>
<!-- /.sidebar-collapse -->
</div>
<!-- /.navbar-static-side -->
</nav>
<div id="page-wrapper">
<?php include "konten.php"; ?>
</div>
<!-- /#page-wrapper -->
</div>
<footer>
<div class="container-fluid">
<p class="copyright">© 2019 <b>Toko Kimia -
CV. Multi Citra Kimia</b></p>
</div>
</footer>
<div class="modal fade" id="modalbatal" tabindex="-1" role="dialog" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" >
<div class="modal-content">
143
<form action="index.php?page=pemesanan" method="POST">
<div class="modal-header">
<button class="close" type="button" data-dismiss="modal" aria-
hidden="true">
×
</button>
<h4 class="modal-title" id="exampleModalLabel">Batalkan Pesanan
Barang?</h4>
</div>
<div class="modal-body">Apakah Anda yakin ingin membatalkan
pemesanan tersebut?</div>
<input type="hidden" name="pk_hapus" class="pk_hapus">
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-
dismiss="modal">Tidak</button>
<input class="btn btn-primary dihapus" type="submit"
name="dihapus" value="Ya">
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="modalsimpan" tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" >
<div class="modal-content">
<form action="index.php?page=pemesanan" method="POST">
<div class="modal-header">
<button class="close" type="button" data-dismiss="modal" aria-
hidden="true">
×
</button>
<h4 class="modal-title" id="exampleModalLabel">Kirim permintaan
pesanan?</h4>
</div>
<div class="modal-body">Apakah Anda yakin ingin mengirim
permintaan tersebut?</div>
144
<input type="hidden" name="pk" class="pk">
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-
dismiss="modal">Tidak</button>
<input class="btn btn-primary save" type="submit" name="save"
value="Ya">
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="proses" tabindex="-1" role="dialog" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" >
<div class="modal-content">
<form action="?page=penjualan&kodepj=<?php echo $kode ?>"
method="POST">
<div class="modal-header">
<button class="close" type="button" data-dismiss="modal" aria-
hidden="true">
×
</button>
<h4 class="modal-title" id="exampleModalLabel">Proses
Pesanan</h4>
</div>
<div class="modal-body">Apakah Anda yakin ingin memproses
pesanan?</div>
<input type="hidden" name="proc" class="proc">
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-
dismiss="modal">Tidak</button>
<input class="btn btn-primary diproses" type="submit"
name="diproses" value="Ya">
</div>
</form>
</div>
</div>
</div>
145
<div class="modal fade" id="batal" tabindex="-1" role="dialog" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" >
<div class="modal-content">
<form action="?page=beranda" method="POST">
<div class="modal-header">
<button class="close" type="button" data-dismiss="modal" aria-
hidden="true">
×
</button>
<h4 class="modal-title" id="exampleModalLabel">Batalkan
Pesanan</h4>
</div>
<div class="modal-body">Apakah Anda yakin ingin membatalkan
pesanan?</div>
<input type="hidden" name="btl" class="btl">
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-
dismiss="modal">Tidak</button>
<input class="btn btn-primary batal" type="submit" name="batal"
value="Ya">
</div>
</form>
</div>
</div>
</div>
<!-- /#wrapper -->
<!-- jQuery -->
<script src="asset/jquery/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="asset/bootstrap/js/bootstrap.min.js"></script>
<!-- Metis Menu Plugin JavaScript -->
<script src="asset/metisMenu/metisMenu.min.js"></script>
<!-- Morris Charts JavaScript -->
146
<script src="asset/raphael/raphael.min.js"></script>
<script src="asset/morrisjs/morris.min.js"></script>
<script src="../data/morris-data.js"></script>
<!-- DataTables JavaScript -->
<script src="asset/datatables/js/jquery.dataTables.min.js"></script>
<script src="asset/datatables-
plugins/dataTables.bootstrap.min.js"></script>
<script src="asset/datatables-
responsive/dataTables.responsive.js"></script>
<!-- Custom Theme JavaScript -->
<script src="asset/dist/js/sb-admin-2.js"></script>
<!-- Validation form -->
<script src="asset/jquery/jquery.validate.min.js"></script>
<script src="asset/jquery/additional-methods.min.js"></script>
<!-- JS Chosen -->
<script src="asset/chosen/chosen.jquery.min.js"></script>
<!-- JS flatpickr -->
<script src="asset/flatpickr/dist/flatpickr.min.js"></script>
<script src="asset/js/main.js"></script>
<script type="text/javascript">
$(document).on("click", ".batal", function(e){
var pk_hapus=$(this).data('pk_hapus');
$(".pk_hapus").val(pk_hapus);
});
$(document).on("click", ".simpan", function(e){
var pk=$(this).data('pk');
$(".pk").val(pk);
});
$(document).on("click", ".proses", function(e){
var proses=$(this).data('proses');
$(".proc").val(proses);
});
147
$(document).on("click", ".btl", function(e){
var btl=$(this).data('btl');
$(".btl").val(btl);
});
</script>
<script>
$(".chosen-select").chosen();
flatpickr(".flatpickr", {
dateFormat: "Y-m-d",
});
// $(document).ready(function(){
// $(".flatpickr").flatpickr({
// dateFormat: "Y-m-d"
// });
// });
</script>
</body>
</html>
<?php
} else {
echo "<meta http-equiv='refresh' content='1;url=login.php' >";
}
?>
<script>
var nama1 = $("#nama1").val();
var nama2 = $("#nama2").val();
var nama3 = $("#nama3").val();
var nama4 = $("#nama4").val();
var nama5 = $("#nama5").val();
var nama6 = $("#nama6").val();
var nama7 = $("#nama7").val();
var nama8 = $("#nama8").val();
var nama9 = $("#nama9").val();
148
var nama10 = $("#nama10").val();
var jml1 = $("#jml1").val();
var jml2 = $("#jml2").val();
var jml3 = $("#jml3").val();
var jml4 = $("#jml4").val();
var jml5 = $("#jml5").val();
var jml6 = $("#jml6").val();
var jml7 = $("#jml7").val();
var jml8 = $("#jml8").val();
var jml9 = $("#jml9").val();
var jml10 = $("#jml10").val();
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: [nama1, nama2, nama3, nama4, nama5, nama6, nama7,
nama8, nama9, nama10],
datasets: [{
label: ' <?php if($userData['jabatan'] == "Gudang") { echo
"Pembelian";}else{echo "Penjualan";} ?>',
data: [jml1, jml2, jml3, jml4, jml5, jml6, jml7, jml8, jml9, jml10],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(48, 9, 99, 0.53)',
'rgba(4, 82, 95, 0.66)',
'rgba(178, 92, 184, 0.62)',
'rgba(243, 247, 6, 0.66)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderWidth: 1
}]
149
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
</script>
<?php if($userData['jabatan'] == "Administrator") { ?>
<script>
var nama1a = $("#nama1a").val();
var nama2a = $("#nama2a").val();
var nama3a = $("#nama3a").val();
var nama4a = $("#nama4a").val();
var nama5a = $("#nama5a").val();
var nama6a = $("#nama6a").val();
var nama7a = $("#nama7a").val();
var nama8a = $("#nama8a").val();
var nama9a = $("#nama9a").val();
var nama10a = $("#nama10a").val();
var jml1a = $("#jml1a").val();
var jml2a = $("#jml2a").val();
var jml3a = $("#jml3a").val();
var jml4a = $("#jml4a").val();
var jml5a = $("#jml5a").val();
var jml6a = $("#jml6a").val();
var jml7a = $("#jml7a").val();
var jml8a = $("#jml8a").val();
var jml9a = $("#jml9a").val();
var jml10a = $("#jml10a").val();
var ctx = document.getElementById("myCharta").getContext('2d');
var myChart = new Chart(ctx, {
150
type: 'bar',
data: {
labels: [nama1a, nama2a, nama3a, nama4a, nama5a, nama6a,
nama7a, nama8a, nama9a, nama10a],
datasets: [{
label: 'pembelian',
data: [jml1a, jml2a, jml3a, jml4a, jml5a, jml6a, jml7a, jml8a,
jml9a, jml10a],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(48, 9, 99, 0.53)',
'rgba(4, 82, 95, 0.66)',
'rgba(178, 92, 184, 0.62)',
'rgba(243, 247, 6, 0.66)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
</script>
<?php } ?>
151
4. Source Code Barang
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-cubes fa-fw"></i> Barang</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<a href="?page=barang&aksi=tambah" class="btn btn-sm btn-
primary">Tambah Barang</a>
<br>
<br>
<table class="table table-responsive table-bordered" id="tables">
<thead>
<tr>
<th>Kode Barcode</th>
<th>Nama Barang</th>
<th>Stok</th>
<th>Satuan</th>
<th width="8%">Harga Jual</th>
<th width="8%">Harga Beli</th>
<th>Keuntungan</th>
<th>Kategori</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_kategori INNER
JOIN tb_barang ON tb_kategori.id_kategori=tb_barang.id_kategori");
while($row = mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $row['kode_barcode']; ?></td>
<td><?php echo $row['nama_barang']; ?></td>
<td><?php echo $row['stok']; ?></td>
<td><?php echo $row['satuan']; ?></td>
<td><?php echo $row['harga_jual']; ?></td>
152
<td><?php echo $row['harga_beli']; ?></td>
<td><?php echo $row['keuntungan'] ?></td>
<td><?php echo $row['nama'] ?></td>
<td>
<a href="?page=barang&aksi=edit&id=<?php echo
$row['id_barang'] ?>" class="btn btn-sm btn-warning"><i class="fa fa-pencil-
square fa-fw"></i> Edit</a>
<a href="?page=barang&aksi=hapus&id=<?php echo
$row['id_barang'] ?>" class="btn btn-sm btn-danger"><i class="fa fa-trash fa-
fw"></i> Hapus</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
5. Source Code Edit Data Barang
<?php
if(isset($_GET['id'])){
$id = $_GET['id'];
$query1 = mysqli_query($koneksi, "SELECT * FROM tb_barang WHERE
id_barang='$id'");
$data = mysqli_fetch_array($query1);
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-cubes fa-fw"></i> Edit
Barang</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="post" id="barang">
<div class="form-group">
<label for="barcode">Kode Barcode</label>
153
<input type="text" name="barcode" id="barcode" class="form-control"
id="barcode" autofocus="" value="<?php echo $data['kode_barcode'] ?>">
</div>
<div class="form-group">
<label for="nama">Nama Barang</label>
<input type="text" name="nama" id="nama" class="form-control"
value="<?php echo $data['nama_barang'] ?>">
</div>
<div class="form-group">
<label for="stok">Stok</label>
<input type="number" name="stok" id="stok" class="form-control"
value="<?php echo $data['stok'] ?>">
</div>
<div class="form-group">
<label for="satuan">Satuan</label>
<select name="satuan" id="satuan" class="form-control">
<?php
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_satuan");
while($row1 = mysqli_fetch_array($query2)) {
?>
<option <?php if($row1['satuan'] == $data['satuan']){echo
"selected"; } ?> value="<?php echo $row1['satuan'] ?>"><?php echo
$row1['satuan'] ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label for="beli">Harga Beli</label>
<input type="number" name="beli" id="beli" class="form-control"
value="<?php echo $data['harga_beli'] ?>" onkeyup="hitung();">
</div>
<div class="form-group">
<label for="jual">Harga Jual</label>
<input type="number" name="jual" id="jual" class="form-control"
value="<?php echo $data['harga_jual'] ?>" onkeyup="hitung();">
</div>
<div class="form-group">
<label for="keuntungan">Keuntungan</label>
154
<input type="number" name="keuntungan" id="keuntungan"
class="form-control" value="<?php echo $data['keuntungan'] ?>" readonly=""
onkeyup="hitung();">
</div>
<div class="form-group">
<label for="kategori">Kategori</label>
<select name="kategori" id="kategori" class="form-control">
<!-- <option value="">---Pilih Kategori---</option> -->
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_kategori");
while($row = mysqli_fetch_array($query)){
?>
<option <?php if($data['id_kategori'] == $row['id_kategori']){echo
"selected";} ?> value="<?php echo $row['id_kategori'] ?>"><?php echo
$row['nama'] ?></option>
<?php }
?>
</select>
</div>
<div class="form-group">
<input type="submit" name="simpan" class="btn btn-lg btn-block btn-
success" value="Simpan">
</div>
</form>
<script>
function hitung() {
var beli = document.getElementById("beli").value;
var jual = document.getElementById("jual").value;
var keuntungan = parseInt(jual) - parseInt(beli);
if(!isNaN(keuntungan)) {
var potongan = document.getElementById('keuntungan').value =
keuntungan;
}
}
</script>
<?php
if(isset($_POST['simpan'])) {
$barcode = $_POST['barcode'];
155
$nama = $_POST['nama'];
$stok = $_POST['stok'];
$satuan = $_POST['satuan'];
$beli = $_POST['beli'];
$jual = $_POST['jual'];
$keuntung = $_POST['keuntungan'];
$kategori = $_POST['kategori'];
mysqli_query($koneksi, "UPDATE tb_barang SET kode_barcode =
'$barcode', nama_barang='$nama', stok = '$stok', satuan = '$satuan', harga_jual
= '$jual', harga_beli = '$beli', keuntungan = '$keuntung', id_kategori =
'$kategori' WHERE id_barang='$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=barang'>";
}
?>
6. Source Code Tambah Barang
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-cubes fa-fw"></i> Tambah
Barang</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="post" id="barang">
<div class="form-group">
<label for="barcode">Kode Barcode</label>
<input type="text" name="barcode" id="barcode" class="form-control"
id="barcode" autofocus="">
</div>
<div class="form-group">
<label for="nama">Nama Barang</label>
<input type="text" name="nama" id="nama" class="form-control">
</div>
<div class="form-group">
<label for="stok">Stok</label>
<input type="number" name="stok" id="stok" class="form-control">
156
</div>
<div class="form-group">
<label for="satuan">Satuan</label>
<select name="satuan" id="satuan" class="form-control">
<option value="">--Pilih Satuan--</option>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_satuan");
while($row = mysqli_fetch_array($query)) {
?>
<option value="<?php echo $row['satuan'] ?>"><?php echo
$row['satuan'] ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label for="beli">Harga Beli</label>
<input type="number" name="beli" id="beli" class="form-control"
onkeyup="hitung();">
</div>
<div class="form-group">
<label for="jual">Harga Jual</label>
<input type="number" name="jual" id="jual" class="form-control"
onkeyup="hitung();">
</div>
<div class="form-group">
<label for="keuntungan">Keuntungan</label>
<input type="number" name="keuntungan" id="keuntungan"
class="form-control" readonly="" onkeyup="hitung();">
</div>
<div class="form-group">
<label for="kategori">Kategori</label>
<select name="kategori" id="kategori" class="form-control">
<option value="">---Pilih Kategori---</option>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_kategori");
while($row = mysqli_fetch_array($query)){
?>
<option value="<?php echo $row['id_kategori'] ?>"><?php echo
$row['nama'] ?></option>
157
<?php }
?>
</select>
</div>
<div class="form-group">
<input type="submit" name="simpan" class="btn btn-lg btn-block btn-
success" value="Simpan">
</div>
</form>
<script>
function hitung() {
var beli = document.getElementById("beli").value;
var jual = document.getElementById("jual").value;
var keuntungan = parseInt(jual) - parseInt(beli);
if(!isNaN(keuntungan)) {
var potongan = document.getElementById('keuntungan').value =
keuntungan;
}
}
</script>
<?php
if(isset($_POST['simpan'])) {
$barcode = $_POST['barcode'];
$nama = $_POST['nama'];
$stok = $_POST['stok'];
$satuan = $_POST['satuan'];
$beli = $_POST['beli'];
$jual = $_POST['jual'];
$keuntung = $_POST['keuntungan'];
$kategori = $_POST['kategori'];
mysqli_query($koneksi, "INSERT INTO tb_barang SET kode_barcode =
'$barcode', nama_barang='$nama', stok = '$stok', satuan = '$satuan', harga_jual
= '$jual', harga_beli = '$beli', keuntungan = '$keuntung', id_kategori =
'$kategori'");
echo "<meta http-equiv='refresh' content='1;url=?page=barang'>";
}
158
?>
7. Source Code Hapus Data Barang
<?php
if(isset($_GET['id'])) {
$id = $_GET['id'];
mysqli_query($koneksi, "DELETE FROM tb_barang WHERE id_barang =
'$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=barang'>";
}
8. Source Code Penjualan
<?php
if(isset($_GET['kodepj'])) {
$code = $_GET['kodepj'];
}
if (isset($_POST['diproses'])) {
$sql=mysqli_query($koneksi, "select a.*,b.nama_barang,b.harga_jual,a.qty
* b.harga_jual as jumlah FROM tb_pemesanan a join tb_barang b on
a.barang=b.kode_barcode where a.invoice='".$_POST['proc']."'");
while ($row=mysqli_fetch_array($sql)) {
$bar=$row['barang'];
$sum=$row['qty']*$row['harga_jual'];
$qty=$row['qty'];
$tgl=$row['tanggal'];
$query = mysqli_query($koneksi, "INSERT INTO tb_penjualan SET
kode_penjualan='$code', kode_barcode='$bar', jumlah = '$qty', total = '$sum',
tgl_penjualan ='$tgl', id_pelanggan = '9', id_karyawan = '$id_karyawan'");
}
$query=mysqli_query($koneksi, "update tb_pemesanan set jadi='P' where
invoice='".$_POST['proc']."'");
159
if (!$query) {
echo "<script type='text/javascript'>alert('pesanan gagal
diproses')</script>";
}
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-shopping-cart fa-fw"></i>
Penjualan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="POST">
<div class="form-group">
<label for="kodejual" class="label-control col-md-3">Kode
Penjualan</label>
<div class="col-md-3">
<input type="text" name="kodejual" id="kodejual" readonly
class="form-control" value="<?php echo $code; ?>">
</div>
</div>
<div class="col-md-6"><br><br></div>
<div class="form-group">
<label for="kodejual" class="label-control col-md-3">Barang</label>
<div class="col-md-4">
<select name="barcode" id="barcode" class="chosen-select form-
control" autofocus>
<option value="">Masukkan Barang</option>
<?php
$sql = mysqli_query($koneksi, "SELECT * FROM tb_barang");
while($pecah = mysqli_fetch_array($sql)) {
?>
<option value="<?php echo $pecah['kode_barcode'] ?>"><?php
echo $pecah['kode_barcode']." ".$pecah['nama_barang']."
Rp.".rupiah($pecah['harga_jual']) ?></option>
<?php
}
160
?>
</select>
<!-- <input type="text" name="barcode" id="barcode" class="form-
control" autofocus> -->
</div>
</div>
<div class="form-group">
<label for="jumlah" class="label-control col-md-1">Jumlah</label>
<div class="col-md-3">
<input type="number" name="jumlah" id="jumlah" class="form-
control" >
</div>
</div>
<div class="col-md-12"><br></div>
<div class="form-group">
<label for="pelanggan" class="label-control col-md-3">Nama
Pelanggan</label>
<div class="col-md-4">
<select name="pelanggan" id="pelanggan" class="chosen-select form-
control">
<option >Pilih Pelanggan</option>
<?php
$query4 = mysqli_query($koneksi, "SELECT * FROM
tb_pelanggan");
while($pelanggan = mysqli_fetch_array($query4)){
echo "
<option
value=$pelanggan[id_pelanggan]>$pelanggan[nama]</option>
";
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-3">
<input type="submit" name="tambahkan" class="btn btn-sm btn-
primary" value="Tambahkan">
161
</div>
</div>
</form>
<!-- tambah daftar belanja -->
<?php
if(isset($_POST['tambahkan'])) {
$date = date("Y-m-d");
$kodepj = $_POST['kodejual'];
$barcode = $_POST['barcode'];
$pelanggan1 = $_POST['pelanggan'];
$barang = mysqli_query($koneksi, "SELECT * FROM tb_barang WHERE
kode_barcode = '$barcode'");
$data_barang = mysqli_fetch_array($barang);
$harga_jual = $data_barang['harga_jual'];
$jumlah = $_POST['jumlah'];
$total = $jumlah * $harga_jual;
$barang2 = mysqli_query($koneksi, "SELECT * FROM tb_barang WHERE
kode_barcode = '$barcode'");
while($data_barang2 = mysqli_fetch_array($barang2)) {
$sisa = $data_barang2['stok'];
if($sisa == 0) {
?>
<script>alert("Barang Habis");
//window.location.href="?page=penjualan&kodepj=<?php //echo
$code ?>"
</script>
<?php
} elseif($jumlah > $sisa) {
?>
<script>alert("Jumlah Barang Diminta melebihi stok");
//window.location.href="?page=penjualan&kodepj=<?php //echo
$code ?>"
</script>
<?php
} else {
$query = mysqli_query($koneksi, "INSERT INTO tb_penjualan SET
kode_penjualan='$kodepj', kode_barcode='$barcode', jumlah = '$jumlah', total
162
= '$total', tgl_penjualan ='$date', id_pelanggan = '$pelanggan1', id_karyawan =
'$id_karyawan'");
}
}
}
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_penjualan_detail
WHERE kode_penjualan='$code'");
$data3 = mysqli_fetch_array($query3);
?>
<br>
<br>
<br><br><br><br><hr>
<form method="post">
<h3>Daftar Belanjaan</h3>
<hr>
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>Kode Barcode</th>
<th>Nama Barang</th>
<th>Harga</th>
<th>Jumlah</th>
<th>Total</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$total_bayar=0;
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_penjualan,
tb_barang WHERE tb_penjualan.kode_barcode = tb_barang.kode_barcode
AND kode_penjualan = '$code'");
while($data2 = mysqli_fetch_array($query2)) {
?>
<tr>
<td><?php echo $data2['kode_barcode'] ?></td>
<td><?php echo $data2['nama_barang']?></td>
<td><?php echo rupiah($data2['harga_jual']) ?></td>
<td><?php echo $data2['jumlah'] ?></td>
163
<td><?php echo rupiah($data2['total']) ?></td>
<td>
<a href="?page=penjualan&aksi=tambah&id=<?php echo
$data2['id_penjualan'] ?>&kodepj=<?php echo $data2['kode_penjualan']
?>&harga=<?php echo $data2['harga_jual'] ?>&barcode=<?php echo
$data2['kode_barcode'] ?>" class="btn btn-sm btn-success"><b>+</b></a>
<a href="?page=penjualan&aksi=kurang&id=<?php echo
$data2['id_penjualan'] ?>&kodepj=<?php echo $data2['kode_penjualan']
?>&harga=<?php echo $data2['harga_jual'] ?>&barcode=<?php echo
$data2['kode_barcode'] ?>" class="btn btn-sm btn-success"><b>-</b></a>
<a href="?page=penjualan&aksi=hapus&id=<?php echo
$data2['id_penjualan'] ?>&kodepj=<?php echo $data2['kode_penjualan']
?>&harga=<?php echo $data2['harga_jual'] ?>&barcode=<?php echo
$data2['kode_barcode'] ?>&jumlah=<?php echo $data2['jumlah'] ?>"
class="btn btn-sm btn-danger"><i class="fa fa-trash fa-fw"></i></a>
</td>
</tr>
<?php
$total_bayar = $total_bayar + $data2['total'];
}
?>
</tbody>
</table>
<hr>
<div class="form-group">
<label for="total_bayar" class="label-control col-md-3">Total</label>
<div class="col-md-3">
<input type="number" name="total_bayar" id="total_bayar"
onkeyup="hitung();" readonly="" class="form-control" value="<?php echo
$total_bayar ?>">
</div>
</div>
<div class="form-group">
<label for="s_total" class="label-control col-md-3">Sub Total</label>
<div class="col-md-3">
164
<input type="number" name="s_total" id="s_total" readonly=""
onkeyup="hitung();" class="form-control" value="<?php echo
$data3['sub_total'] ?>">
</div>
</div>
<br>
<div class="form-group">
<label for="diskon" class="label-control col-md-3">Diskon</label>
<div class="col-md-3">
<input type="number" name="diskon" id="diskon"
onkeyup="hitung();" class="form-control" value="<?php echo $data3['diskon']
?>">
</div>
</div>
<div class="form-group">
<label for="bayar" class="label-control col-md-3">Bayar</label>
<div class="col-md-3">
<input type="number" name="bayar" onkeyup="hitung();" id="bayar"
class="form-control" value="<?php echo $data3['bayar'] ?>">
</div>
</div>
<br>
<div class="form-group">
<label for="potongan" class="label-control col-md-3">Potongan
Diskon</label>
<div class="col-md-3">
<input type="number" name="potongan" id="potongan" readonly=""
onkeyup="hitung();" class="form-control" value="<?php echo
$data3['potongan_diskon'] ?>">
</div>
</div>
<div class="form-group">
<label for="kembali" class="label-control col-md-3">Kembalian</label>
<div class="col-md-3">
<input type="number" name="kembali" id="kembali" readonly=""
onkeyup="hitung();" class="form-control" value="<?php echo
$data3['kembalian'] ?>">
</div>
</div><br><br>
165
<input type="submit" name="simpan" class="btn btn-md btn-success"
value="Simpan">
<button type="button" class="btn btn-md btn-primary"
onclick="window.open('penjualan/struk.php?kodepj=<?php echo $code;
?>','mywindow','width=450, height=400')"><i class="fa fa-print fa-fw"></i>
Cetak</button>
</form>
<br>
<?php
if(isset($_POST['simpan'])) {
$total_byr = $_POST["total_bayar"];
$diskon = $_POST['diskon'];
$potongan = $_POST['potongan'];
$sub_total = $_POST['s_total'];
$bayar = $_POST['bayar'];
$kembali = $_POST['kembali'];
$tanggal = date("Y-m-d");
mysqli_query($koneksi, "INSERT INTO tb_penjualan_detail SET
kode_penjualan ='$code', total = '$total_byr', diskon = '$diskon',
potongan_diskon = '$potongan', sub_total = '$sub_total', bayar = '$bayar',
kembalian = '$kembali', tanggal = '$tanggal'");
}
?>
<script>
function hitung() {
var diskon = document.getElementById('diskon').value;
var total_bayar = document.getElementById('total_bayar').value;
var diskon_potongan = parseInt(total_bayar) * parseInt(diskon) /
parseInt(100);
if(!isNaN(diskon_potongan)) {
var potongan = document.getElementById('potongan').value =
diskon_potongan;
}
var sub_total = parseInt(total_bayar) - parseInt(potongan);
if(!isNaN(sub_total)) {
166
var s_total = document.getElementById('s_total').value = sub_total;
}
var bayar = document.getElementById('bayar').value;
var b_bayar = parseInt(bayar) - parseInt(s_total);
if(!isNaN(b_bayar)) {
var kembali = document.getElementById('kembali').value = b_bayar;
}
}
</script>
9. Source Code Struk
<?php
// $koneksi = mysqli_connect("localhost", "root", "", "db_pos");
include '../koneksi.php';
$kode = $_GET['kodepj'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_penjualan,
tb_pelanggan WHERE
tb_penjualan.id_pelanggan=tb_pelanggan.id_pelanggan AND
kode_penjualan='$kode'");
$data = mysqli_fetch_array($query);
$query1 = mysqli_query($koneksi, "SELECT * FROM tb_karyawan WHERE
id_karyawan = '$data[id_karyawan]'");
$data1 = mysqli_fetch_array($query1);
?>
<h1 align="center">CV. MULTI CITRA KIMIA</h1>
<hr>
<table>
<tr>
<td>Kode Penjualan</td>
<td> : </td>
<td><?php echo $kode ?></td>
</tr>
<tr>
<td>Tanggal</td>
167
<td> : </td>
<td><?php echo $data['tgl_penjualan'] ?></td>
</tr>
<tr>
<td>Nama Pelanggan</td>
<td> : </td>
<td><?php echo $data['nama'] ?></td>
</tr>
<tr>
<td>Nama kasir</td>
<td> : </td>
<td><?php echo $data1['nama'] ?></td>
</tr>
</table>
<br>
<?php
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_penjualan,
tb_barang WHERE tb_penjualan.kode_barcode=tb_barang.kode_barcode
AND kode_penjualan='$kode'");
?>
<table border="1" cellpadding="5" cellspacing="0">
<thead>
<tr>
<th width="300px">Nama Barang</th>
<th width="80px">Harga</th>
<th>Jumlah</th>
<th width="80px">Total</th>
</tr>
</thead>
<tbody>
<?php
while($row = mysqli_fetch_array($query2)) {
?>
<tr>
<td><?php echo $row['nama_barang'] ?></td>
<td>Rp. <?php echo $row['harga_jual'] ?></td>
<td><?php echo $row['jumlah'] ?></td>
<td>Rp. <?php echo $row['total'] ?></td>
168
</tr>
<?php
}
?>
</tbody>
</table>
<?php
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_penjualan_detail
WHERE kode_penjualan ='$kode'");
$data2 = mysqli_fetch_array($query3);
?>
<hr>
<table>
<tr>
<td>Total</td>
<td>: </td>
<td>Rp. <?php echo $data2['total'] ?></td>
</tr>
<tr>
<td>Diskon</td>
<td>: </td>
<td><?php echo $data2['diskon'] ?>%</td>
</tr>
<tr>
<td>Potongan Diskon</td>
<td>: </td>
<td>Rp. <?php echo $data2['potongan_diskon'] ?></td>
</tr>
<tr>
<td>Sub Total</td>
<td>: </td>
<td>Rp. <?php echo $data2['sub_total'] ?></td>
</tr>
<tr>
<td>Bayar</td>
<td>: </td>
<td>Rp. <?php echo $data2['bayar'] ?></td>
</tr>
<tr>
169
<td>Kembalian</td>
<td>: </td>
<td>Rp. <?php echo $data2['kembalian'] ?></td>
</tr>
</table>
10. Source Code tambah penjualan
<?php
$id = $_GET['id'];
$kodepj = $_GET['kodepj'];
$harga = $_GET['harga'];
$barcode = $_GET['barcode'];
$query = mysqli_query($koneksi, "UPDATE tb_penjualan SET
jumlah=(jumlah+1) WHERE id_penjualan='$id'");
$query2 = mysqli_query($koneksi, "UPDATE tb_penjualan SET
total=(total+$harga) WHERE id_penjualan='$id'");
$query3 = mysqli_query($koneksi, "UPDATE tb_barang SET stok=(stok-1)
WHERE kode_barcode='$barcode'");
?>
<script>
window.location.href="?page=penjualan&kodepj=<?php echo $kodepj ?>"
</script>
11. Source Code Kurang (Diskon Harga)
<?php
$id = $_GET['id'];
$kodepj = $_GET['kodepj'];
$harga = $_GET['harga'];
$barcode = $_GET['barcode'];
$query = mysqli_query($koneksi, "UPDATE tb_penjualan SET
jumlah=(jumlah-1) WHERE id_penjualan='$id'");
170
$query2 = mysqli_query($koneksi, "UPDATE tb_penjualan SET total=(total-
$harga) WHERE id_penjualan='$id'");
$query3 = mysqli_query($koneksi, "UPDATE tb_barang SET stok=(stok+1)
WHERE kode_barcode='$barcode'");
?>
<script>
window.location.href="?page=penjualan&kodepj=<?php echo $kodepj ?>"
</script>
12. Source Code Hapus
<?php
$id = $_GET['id'];
$kodepj = $_GET['kodepj'];
$harga = $_GET['harga'];
$barcode = $_GET['barcode'];
$jumlah = $_GET['jumlah'];
$query = mysqli_query($koneksi, "DELETE FROM tb_penjualan WHERE
id_penjualan='$id'");
$query3 = mysqli_query($koneksi, "UPDATE tb_barang SET
stok=(stok+$jumlah) WHERE kode_barcode='$barcode'");
?>
<script>
window.location.href="?page=penjualan&kodepj=<?php echo $kodepj ?>"
</script>
13. Source Code Supplier
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-truck fa-fw"></i>
Supplier</h1>
</div>
<!-- /.col-lg-12 -->
</div>
171
<a href="?page=supplier&aksi=tambah" class="btn btn-sm btn-info">Tambah
Supplier</a>
<br><br>
<table class="table table-responsive table-bordered" id="tables">
<thead>
<tr>
<th>Nama Supplier</th>
<th>Alamat</th>
<th>No Telepon/Hp</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_supplier");
while($row = mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $row['nama'] ?></td>
<td><?php echo $row['alamat'] ?></td>
<td><?php echo $row['telepon'] ?></td>
<td>
<a href="?page=supplier&aksi=edit&id=<?php echo
$row['id_supplier'] ?>" class="btn btn-sm btn-warning">Edit</a>
<a href="?page=supplier&aksi=hapus&id=<?php echo
$row['id_supplier'] ?>" class="btn btn-sm btn-danger">Hapus</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
14. Source Code Tambah Supplier
<div class="row">
<div class="col-lg-12">
172
<h1 class="page-header"><i class="fa fa-truck fa-fw"></i> Tambah
Supplier</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="post" id="supplier">
<div class="form-group">
<label for="nama">Nama Supplier</label>
<input type="text" name="nama" class="form-control" id="nama">
</div><div class="form-group">
<label for="nama">Alamat Supplier</label>
<textarea name="alamat" id="alamat" cols="15" rows="10" class="form-
control"></textarea>
</div><div class="form-group">
<label for="telp">No Telepon/Hp Supplier</label>
<input type="text" name="telp" class="form-control" id="telp">
</div>
<input type="submit" class="btn btn-lg btn-primary btn-block"
name="simpan" value="Simpan">
</form>
<?php
if(isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$telp = $_POST['telp'];
mysqli_query($koneksi, "INSERT INTO tb_supplier SET nama = '$nama',
alamat = '$alamat', telepon = '$telp'");
echo "<meta http-equiv='refresh' content='1;url=?page=supplier'>";
}
?>
15. Source Code Hapus Supplier
<?php
if(isset($_GET['id'])) {
$id = $_GET['id'];
173
mysqli_query($koneksi, "DELETE FROM tb_supplier WHERE
id_supplier='$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=supplier'>";
}
16. Source Code Beranda
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-home fa-fw"></i>
Beranda</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
<div class="row">
<?php if($userData['jabatan'] !== "Gudang") { ?>
<div class="col-lg-4 col-md-6">
<div class="panel panel-yellow">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i><img src="asset/icon/shopping-cart.png" alt=""></i>
</div>
<?php
$date = date("Y-m-d");
$query1 = mysqli_query($koneksi, "SELECT SUM(sub_total) AS
pendapatan, COUNT(kode_penjualan) AS penjualan FROM
tb_penjualan_detail WHERE tanggal ='$date' ");
$data1 = mysqli_fetch_array($query1);
174
?>
<div class="col-xs-9 text-right">
<div class="huge"><?php echo $data1['penjualan'] ?></div>
<div>Penjualan <?php echo date("d/m/Y", strtotime($date));
?></div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-8 col-md-6">
<div class="panel panel-green">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i><img src="asset/icon/rich.png" alt=""></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">Rp. <?php echo
rupiah($data1['pendapatan']) ?></div>
<div>Pendapatan <?php echo date("d/m/Y", strtotime($date));
?></div>
</div>
</div>
</div>
</div>
</div>
<?php } if($userData['jabatan'] !== "Kasir") { ?>
<div class="col-lg-4 col-md-6">
175
<div class="panel panel-info">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i><img src="asset/icon/trolley.png" alt=""></i>
</div>
<?php
$query2 = mysqli_query($koneksi, "SELECT SUM(total) AS
pengeluaran, COUNT(kode_pembelian) AS pembelian FROM
tb_pembelian_detail WHERE tanggal = '$date' ");
$data2= mysqli_fetch_array($query2);
?>
<div class="col-xs-9 text-right">
<div class="huge"><?php echo $data2['pembelian'] ?></div>
<div>Pembelian <?php echo date("d/m/Y", strtotime($date));
?></div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-8 col-md-6">
<div class="panel panel-red">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i><img src="asset/icon/payment.png" alt=""></i>
</div>
<div class="col-xs-9 text-right">
176
<div class="huge">Rp. <?php echo
rupiah($data2['pengeluaran']) ?></div>
<div>Pengeluaran <?php echo date("d/m/Y", strtotime($date));
?></div>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<div class="row">
<div class="col-md-5">
<h4>Stok Barang Mendekati Habis</h4>
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>Nama Barang</th>
<th>Stok</th>
</tr>
</thead>
<tbody>
<?php
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_barang
WHERE stok <= 10");
while($data3 = mysqli_fetch_array($query3)) {
?>
<tr>
<td><?php echo $data3['nama_barang'] ?></td>
177
<td><?php echo $data3['stok'] ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<div class="col-md-7">
<?php
if($userData['jabatan'] == "Gudang") {
$x=1;
$sql = mysqli_query($koneksi, "SELECT b.nama_barang, sum(p.jumlah)
jumlah FROM tb_pembelian p join tb_barang b WHERE p.kode_barcode =
b.kode_barcode GROUP by p.kode_barcode order by jumlah desc limit 10");
}else{
$x=1;
$sql = mysqli_query($koneksi, "SELECT b.nama_barang, sum(p.jumlah)
jumlah FROM tb_penjualan p join tb_barang b WHERE p.kode_barcode =
b.kode_barcode GROUP by p.kode_barcode order by jumlah desc limit 10");
}
while($cell = mysqli_fetch_array($sql)){
if ($x==1) {
$satu=$cell['jumlah'];
$n_satu=$cell['nama_barang'];
echo'<input type="hidden" id="nama1" value="'.$n_satu.'">';
echo'<input type="hidden" id="jml1" value="'.$satu.'">';
} else if ($x==2) {
$dua=$cell['jumlah'];
178
$n_dua=$cell['nama_barang'];
echo'<input type="hidden" id="nama2" value="'.$n_dua.'">';
echo'<input type="hidden" id="jml2" value="'.$dua.'">';
} else if ($x==3) {
$tiga=$cell['jumlah'];
$n_tiga=$cell['nama_barang'];
echo'<input type="hidden" id="nama3" value="'.$n_tiga.'">';
echo'<input type="hidden" id="jml3" value="'.$tiga.'">';
} else if ($x==4) {
$empat=$cell['jumlah'];
$n_empat=$cell['nama_barang'];
echo'<input type="hidden" id="nama4" value="'.$n_empat.'">';
echo'<input type="hidden" id="jml4" value="'.$empat.'">';
}else if ($x==5) {
$lima=$cell['jumlah'];
$n_lima=$cell['nama_barang'];
echo'<input type="hidden" id="nama5" value="'.$n_lima.'">';
echo'<input type="hidden" id="jml5" value="'.$lima.'">';
} else if ($x==6) {
$enam=$cell['jumlah'];
$n_enam=$cell['nama_barang'];
echo'<input type="hidden" id="nama6" value="'.$n_enam.'">';
echo'<input type="hidden" id="jml6" value="'.$enam.'">';
} else if ($x==7) {
$tujuh=$cell['jumlah'];
$n_tujuh=$cell['nama_barang'];
echo'<input type="hidden" id="nama7" value="'.$n_tujuh.'">';
echo'<input type="hidden" id="jml7" value="'.$tujuh.'">';
}else if ($x==8) {
179
$delapan=$cell['jumlah'];
$n_delapan=$cell['nama_barang'];
echo'<input type="hidden" id="nama8" value="'.$n_delapan.'">';
echo'<input type="hidden" id="jml8" value="'.$delapan.'">';
}else if ($x==9) {
$sembilan=$cell['jumlah'];
$n_sembilan=$cell['nama_barang'];
echo'<input type="hidden" id="nama9" value="'.$n_sembilan.'">';
echo'<input type="hidden" id="jml9" value="'.$sembilan.'">';
}else if ($x==10) {
$sepuluh=$cell['jumlah'];
$n_sepuluh=$cell['nama_barang'];
echo'<input type="hidden" id="nama10" value="'.$n_sepuluh.'">';
echo'<input type="hidden" id="jml10" value="'.$sepuluh.'">';
}
$x++;
}
if($userData['jabatan'] == "Administrator") {
$i=1;
$sql2 = mysqli_query($koneksi, "SELECT b.nama_barang,
sum(p.jumlah) jumlah FROM tb_pembelian p join tb_barang b WHERE
p.kode_barcode = b.kode_barcode GROUP by p.kode_barcode order by jumlah
desc limit 10");
while($row = mysqli_fetch_array($sql2)){
if ($i==1) {
$satu2=$row['jumlah'];
180
$n_satu2=$row['nama_barang'];
echo'<input type="hidden" id="nama1a" value="'.$n_satu2.'">';
echo'<input type="hidden" id="jml1a" value="'.$satu2.'">';
} else if ($i==2) {
$dua2=$row['jumlah'];
$n_dua2=$row['nama_barang'];
echo'<input type="hidden" id="nama2a" value="'.$n_dua2.'">';
echo'<input type="hidden" id="jml2a" value="'.$dua2.'">';
} else if ($i==3) {
$tiga2=$row['jumlah'];
$n_tiga2=$row['nama_barang'];
echo'<input type="hidden" id="nama3a" value="'.$n_tiga2.'">';
echo'<input type="hidden" id="jml3a" value="'.$tiga2.'">';
} else if ($i==4) {
$empat2=$row['jumlah'];
$n_empat2=$row['nama_barang'];
echo'<input type="hidden" id="nama4a" value="'.$n_empat2.'">';
echo'<input type="hidden" id="jml4a" value="'.$empat2.'">';
}else if ($i==5) {
$lima2=$row['jumlah'];
$n_lima2=$row['nama_barang'];
echo'<input type="hidden" id="nama5a" value="'.$n_lima2.'">';
echo'<input type="hidden" id="jml5a" value="'.$lima2.'">';
} else if ($i==6) {
$enam2=$row['jumlah'];
$n_enam2=$row['nama_barang'];
echo'<input type="hidden" id="nama6a" value="'.$n_enam2.'">';
echo'<input type="hidden" id="jml6a" value="'.$enam2.'">';
} else if ($i==7) {
181
$tujuh2=$row['jumlah'];
$n_tujuh2=$row['nama_barang'];
echo'<input type="hidden" id="nama7a" value="'.$n_tujuh2.'">';
echo'<input type="hidden" id="jml7a" value="'.$tujuh2.'">';
}else if ($i==8) {
$delapan2=$row['jumlah'];
$n_delapan2=$row['nama_barang'];
echo'<input type="hidden" id="nama8a"
value="'.$n_delapan2.'">';
echo'<input type="hidden" id="jml8a" value="'.$delapan2.'">';
}else if ($i==9) {
$sembilan2=$row['jumlah'];
$n_sembilan2=$row['nama_barang'];
echo'<input type="hidden" id="nama9a"
value="'.$n_sembilan2.'">';
echo'<input type="hidden" id="jml9a" value="'.$sembilan2.'">';
}else if ($i==10) {
$sepuluh2=$row['jumlah'];
$n_sepuluh2=$row['nama_barang'];
echo'<input type="hidden" id="nama10a"
value="'.$n_sepuluh2.'">';
echo'<input type="hidden" id="jml10a" value="'.$sepuluh2.'">';
}
$i++;
}
}
?>
<div style="width: 100%;height: 300px">
182
<canvas id="myChart"></canvas>
</div>
<?php if($userData['jabatan'] == "Administrator") { ?>
<div style="width: 100%;height: 300px">
<canvas id="myCharta"></canvas>
</div>
<?php } ?>
</div>
</div>
17. Source Code Pembelian
<?php
if(isset($_GET['kodepb'])) {
$kodepb = $_GET['kodepb'];
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-cart-plus fa-fw"></i>
Pembelian</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="POST">
<div class="form-group">
<label for="kodejual" class="label-control col-md-3">Kode
Pembelian</label>
<div class="col-md-3">
183
<input type="text" name="kodebeli" id="kodebeli" readonly
class="form-control" value="<?php echo $kodepb; ?>">
</div>
</div>
<div class="col-md-6"><br><br></div>
<div class="form-group">
<label for="kodejual" class="label-control col-md-3">Kode
Barcode</label>
<div class="col-md-4">
<select name="barcode" id="barcode" class="chosen-select form-
control" autofocus>
<option value="">Masukkan Barang</option>
<?php
$sql = mysqli_query($koneksi, "SELECT * FROM tb_barang");
while($pecah = mysqli_fetch_array($sql)) {
?>
<option value="<?php echo $pecah['kode_barcode'] ?>"><?php
echo $pecah['kode_barcode']." ".$pecah['nama_barang']."
Rp.".rupiah($pecah['harga_jual']) ?></option>
<?php
}
?>
</select>
<!-- <input type="text" name="barcode" id="barcode" class="form-
control" autofocus> -->
</div>
</div>
<div class="form-group">
<label for="jumlah" class="label-control col-md-1">Jumlah</label>
184
<div class="col-md-3">
<input type="number" name="jumlah" id="jumlah" class="form-
control" >
</div>
</div>
<div class="col-md-12"><br></div>
<div class="form-group">
<label for="pelanggan" class="label-control col-md-3">Nama
Supplier</label>
<div class="col-md-4">
<select name="supplier" id="supplier" class="chosen-select form-
control">
<option >Pilih Supplier</option>
<?php
$query4 = mysqli_query($koneksi, "SELECT * FROM
tb_supplier");
while($supplier = mysqli_fetch_array($query4)){
echo "
<option
value=$supplier[id_supplier]>$supplier[nama]</option>
";
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-3">
185
<input type="submit" name="tambahkan" class="btn btn-sm btn-
primary" value="Tambahkan">
</div>
</div>
</form>
<?php
if(isset($_POST['tambahkan'])) {
$date = date("Y-m-d");
$kodebeli = $_POST['kodebeli'];
$barcode = $_POST['barcode'];
$supplier1 = $_POST['supplier'];
$barang = mysqli_query($koneksi, "SELECT * FROM tb_barang WHERE
kode_barcode = '$barcode'");
$data_barang = mysqli_fetch_array($barang);
$harga_beli = $data_barang['harga_beli'];
$jumlah = $_POST['jumlah'];
$total = $jumlah * $harga_beli;
$query = mysqli_query($koneksi, "INSERT INTO tb_pembelian SET
kode_pembelian='$kodebeli', kode_barcode='$barcode', jumlah = '$jumlah',
total = '$total', tgl_pembelian ='$date', id_supplier = '$supplier1'");
}
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_pembelian_detail
WHERE kode_pembelian='$kodepb'");
$data3 = mysqli_fetch_array($query3);
?>
<br>
<br>
186
<br><br><br><br><hr>
<form method="post">
<h3>Daftar Pembelian</h3>
<hr>
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>Kode Barcode</th>
<th>Nama Barang</th>
<th>Harga</th>
<th>Jumlah</th>
<th>Total</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_pembelian,
tb_barang WHERE tb_pembelian.kode_barcode = tb_barang.kode_barcode
AND tb_pembelian.kode_pembelian = '$kodepb'");
while($data2 = mysqli_fetch_array($query2)) {
?>
<tr>
<td><?php echo $data2['kode_barcode'] ?></td>
<td><?php echo $data2['nama_barang']?></td>
<td><?php echo rupiah($data2['harga_beli']) ?></td>
<td><?php echo $data2['jumlah'] ?></td>
<td><?php echo rupiah($data2['total']) ?></td>
<td>
187
<a href="?page=pembelian&aksi=tambah&id=<?php echo
$data2['id_pembelian'] ?>&kodebeli=<?php echo $data2['kode_pembelian']
?>&harga=<?php echo $data2['harga_beli'] ?>&barcode=<?php echo
$data2['kode_barcode'] ?>" class="btn btn-sm btn-success"><b>+</b></a>
<a href="?page=pembelian&aksi=kurang&id=<?php echo
$data2['id_pembelian'] ?>&kodebeli=<?php echo $data2['kode_pembelian']
?>&harga=<?php echo $data2['harga_beli'] ?>&barcode=<?php echo
$data2['kode_barcode'] ?>" class="btn btn-sm btn-success"><b>-</b></a>
<a href="?page=pembelian&aksi=hapus&id=<?php echo
$data2['id_pembelian'] ?>&kodebeli=<?php echo $data2['kode_pembelian']
?>&harga=<?php echo $data2['harga_beli'] ?>&barcode=<?php echo
$data2['kode_barcode'] ?>&jumlah=<?php echo $data2['jumlah'] ?>"
class="btn btn-sm btn-danger"><i class="fa fa-trash fa-fw"></i></a>
</td>
</tr>
<?php
$total_bayar = $total_bayar + $data2['total'];
}
?>
</tbody>
</table>
<hr>
<div class="form-group">
<label for="total_bayar" class="label-control col-md-3">Total</label>
<div class="col-md-3">
188
<input type="number" name="total_bayar" id="total_bayar"
onkeyup="hitung();" readonly="" class="form-control" value="<?php echo
$total_bayar ?>">
</div>
</div>
<div class="col-md-6"><br><br></div>
<div class="form-group">
<label for="bayar" class="label-control col-md-3">Bayar</label>
<div class="col-md-3">
<input type="number" name="bayar" onkeyup="hitung();" id="bayar"
class="form-control" value="<?php echo $data3['bayar'] ?>">
</div>
</div>
<div class="col-md-6"><br><br></div>
<div class="form-group">
<label for="kembali" class="label-control col-md-3">Kembalian</label>
<div class="col-md-3">
<input type="number" name="kembali" id="kembali" readonly=""
onkeyup="hitung();" class="form-control" value="<?php echo
$data3['kembalian'] ?>">
</div>
</div>
<div class="col-md-6"><br><br></div><br><br>
<input type="submit" name="simpan" class="btn btn-md btn-success"
value="Simpan">
<button type="button" class="btn btn-md btn-primary"
onclick="window.open('pembelian/struk.php?kodebeli=<?php echo $kodepb;
?>','mywindow','width=720, height=480')"><i class="fa fa-print fa-fw"></i>
Cetak</button>
189
</form>
<?php
if(isset($_POST['simpan'])) {
$total_bayar = $_POST['total_bayar'];
$bayar = $_POST['bayar'];
$kembalian = $_POST['kembali'];
$tanggal = date("Y-m-d");
mysqli_query($koneksi, "INSERT INTO tb_pembelian_detail SET
kode_pembelian = '$kodepb', total = '$total_bayar', bayar = '$bayar', kembalian
= '$kembalian', tanggal = '$tanggal'");
}
?>
<script>
function hitung() {
var total = document.getElementById("total_bayar").value;
var bayar = document.getElementById("bayar").value;
var kembalian = parseInt(bayar) - parseInt(total);
if(!isNaN(kembalian)) {
document.getElementById("kembali").value = kembalian;
}
}
</script>
18. Source code struk pembelian
<?php
// $koneksi = mysqli_connect("localhost","root","","db_pos");
include '../koneksi.php';
190
if(isset($_GET['kodebeli'])) {
$kode = $_GET['kodebeli'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_pembelian,
tb_supplier WHERE tb_pembelian.id_supplier=tb_supplier.id_supplier AND
kode_pembelian = '$kode'");
$data = mysqli_fetch_array($query);
}
?>
<h1 align="center">CV. MULTI CITRA KIMIA</h1>
<hr>
<table>
<tr>
<td>Kode Beli</td>
<td>: </td>
<td><?php echo $kode ?></td>
</tr>
<tr>
<td>Tanggal</td>
<td>: </td>
<td><?php echo $data['tgl_pembelian'] ?></td>
</tr>
<tr>
<td>Nama Supplier</td>
<td>: </td>
<td><?php echo $data['nama'] ?></td>
</tr>
</table>
<hr>
<table border="1" cellpadding="5" cellspacing="0">
191
<thead>
<tr>
<th width="320px">Nama Barang</th>
<th width="100px">Harga</th>
<th width="80px">Jumlah</th>
<th width="150px">Total</th>
</tr>
</thead>
<tbody>
<?php
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_pembelian,
tb_barang WHERE tb_pembelian.kode_barcode=tb_barang.kode_barcode
AND kode_pembelian='$kode'");
while($row = mysqli_fetch_array($query2)) {
?>
<tr>
<td><?php echo $row['nama_barang'] ?></td>
<td>Rp. <?php echo $row['harga_beli'] ?></td>
<td><?php echo $row['jumlah'] ?></td>
<td>Rp. <?php echo $row['total'] ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<hr>
<?php
192
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_pembelian_detail
WHERE kode_pembelian ='$kode'");
$data2 = mysqli_fetch_array($query3);
?>
<table>
<tr>
<td>Total</td>
<td>: </td>
<td>Rp. <?php echo $data2['total'] ?></td>
</tr>
<tr>
<td>Bayar</td>
<td>: </td>
<td>Rp. <?php echo $data2['bayar'] ?></td>
</tr>
<tr>
<td>Kembalian</td>
<td>: </td>
<td>Rp. <?php echo $data2['kembalian'] ?></td>
</tr>
</table>
19. Source Code Tambah Pembelian
<?php
$id = $_GET['id'];
$kodepb = $_GET['kodebeli'];
$harga = $_GET['harga'];
$barcode = $_GET['barcode'];
193
$query = mysqli_query($koneksi, "UPDATE tb_pembelian SET
jumlah=(jumlah+1) WHERE id_pembelian='$id'");
$query2 = mysqli_query($koneksi, "UPDATE tb_pembelian SET
total=(total+$harga) WHERE id_pembelian='$id'");
$query3 = mysqli_query($koneksi, "UPDATE tb_barang SET stok=(stok-1)
WHERE kode_barcode='$barcode'");
?>
<script>
window.location.href="?page=pembelian&kodepb=<?php echo $kodepb
?>"
</script>
20. Source Code Layout Karyawan
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-male fa-fw"></i>
Karyawan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<a href="?page=karyawan&aksi=tambah" class="btn btn-sm btn-
primary">Tambah Karyawan</a>
<br>
<br>
<table class="table table-bordered table-responsive" id="tables">
<thead>
194
<tr>
<th>Nama</th>
<th>Alamat</th>
<th>Telepon</th>
<th>Jabatan</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_karyawan,
tb_jabatan WHERE tb_karyawan.id_jabatan = tb_jabatan.id_jabatan");
while($row = mysqli_fetch_array($query)){
?>
<tr>
<td><?php echo $row['nama'] ?></td>
<td><?php echo $row['alamat'] ?></td>
<td><?php echo $row['telepon'] ?></td>
<td><?php echo $row['jabatan'] ?></td>
<td>
<?php
if($row['status'] == "Belum Aktif") {
?>
<a href="?page=karyawan&aksi=aktif&id=<?php echo
$row['id_karyawan'] ?>" class="btn btn-sm btn-danger">Aktifkan Akun</a>
<?php
} else {
?>
195
<a href="?page=karyawan&aksi=reset&id=<?php echo
$row['id_karyawan'] ?>" class="btn btn-sm btn-warning">Reset Akun</a>
<?php
}
?>
<a href="?page=karyawan&aksi=edit&id=<?php echo
$row['id_karyawan'] ?>" class="btn btn-sm btn-warning">Edit</a>
<a href="?page=karyawan&aksi=hapus&id=<?php echo
$row['id_karyawan'] ?>" class="btn btn-sm btn-danger">Hapus</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
21. Source Code Tambah Data Karyawan
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-male fa-fw"></i> Tambah
Karyawan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="post" id="karyawan">
<div class="form-group">
<label for="nama">Nama</label>
196
<input type="text" name="nama" class="form-control" id="nama">
</div>
<div class="form-group">
<label for="alamat">Alamat</label>
<textarea name="alamat" id="alamat" cols="10" rows="7" class="form-
control"></textarea>
</div>
<div class="form-group">
<label for="telp">Telepon/Hp</label>
<input type="text" name="telp" class="form-control" id="telp">
</div>
<div class="form-group">
<label for="jabatan">Jabatan</label>
<select name="jabatan" id="jabatan" class="form-control">
<option value="">--Pilih Jabatan--</option>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_jabatan");
while($jabatan = mysqli_fetch_array($query)) {
echo "<option
value='$jabatan[id_jabatan]'>$jabatan[jabatan]</option>";
}
?>
</select>
</div>
<input type="submit" name="simpan" value="Simpan" class="btn btn-lg
btn-block btn-primary">
</form>
<br>
<br>
197
<?php
if(isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$telp = $_POST['telp'];
$jabatan = $_POST['jabatan'];
mysqli_query($koneksi, "INSERT INTO tb_karyawan SET nama = '$nama',
alamat = '$alamat', telepon = '$telp', id_jabatan = '$jabatan'");
echo "<meta http-equiv='refresh' content='1;url=?page=karyawan'>";
}
?>
22. Source Code Edit Data Karyawan
<?php
if(isset($_GET['id'])) {
$id = $_GET['id'];
$query1 = mysqli_query($koneksi, "SELECT * FROM tb_karyawan
WHERE id_karyawan='$id'");
$data = mysqli_fetch_array($query1);
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-male fa-fw"></i> Tambah
Karyawan</h1>
</div>
<!-- /.col-lg-12 -->
198
</div>
<form method="post" id="karyawan">
<div class="form-group">
<label for="nama">Nama</label>
<input type="text" name="nama" class="form-control" id="nama"
value="<?php echo $data['nama'] ?>">
</div>
<div class="form-group">
<label for="alamat">Alamat</label>
<textarea name="alamat" id="alamat" cols="10" rows="7" class="form-
control"><?php echo $data['alamat'] ?></textarea>
</div>
<div class="form-group">
<label for="telp">Telepon/Hp</label>
<input type="text" name="telp" class="form-control" id="telp"
value="<?php echo $data['telepon'] ?>">
</div>
<div class="form-group">
<label for="jabatan">Jabatan</label>
<select name="jabatan" id="jabatan" class="form-control">
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_jabatan");
while($jabatan = mysqli_fetch_array($query)) {
?>
<option <?php if($data['id_jabatan'] == $jabatan['id_jabatan']){echo
"selected";} ?> value="<?php echo $jabatan['id_jabatan']?>"><?php echo
$jabatan['jabatan'] ?></option>
<?php
}
199
?>
</select>
</div>
<input type="submit" name="simpan" value="Simpan" class="btn btn-lg
btn-block btn-primary">
</form>
<br>
<br>
<?php
if(isset($_POST['simpan'])) {
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$telp = $_POST['telp'];
$jabatan = $_POST['jabatan'];
mysqli_query($koneksi, "UPDATE tb_karyawan SET nama = '$nama',
alamat = '$alamat', telepon = '$telp', id_jabatan = '$jabatan' WHERE
id_karyawan='$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=karyawan'>";
}
?>
23. Source Code Hapus Data Karyawan
<?php
if(isset($_GET['id'])) {
$id = $_GET['id'];
mysqli_query($koneksi, "DELETE FROM tb_karyawan WHERE
id_karyawan='$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=karyawan'>";
200
}
24. Source Code Pemesanan
<?php
if (isset($_POST['dihapus'])) {
$query=mysqli_query($koneksi, "delete from tb_pemesanan where
invoice='".$_POST['pk_hapus']."'");
if ($query) {
echo "<script type='text/javascript'>alert('pemesanan berhasil dihapus |
delete from tb_pemesanan where invoice=".$_POST['pk_hapus']."')</script>";
}
else {
echo "<script type='text/javascript'>alert('pemesanan gagal
dihapus')</script>";
}
}
if (isset($_POST['save'])) {
$query=mysqli_query($koneksi, "update tb_pemesanan set jadi='Y'
where invoice='".$_POST['pk']."'");
if ($query) {
echo "<script type='text/javascript'>alert('permintaan anda telah
dikirim')</script>";
}
else {
201
echo "<script type='text/javascript'>alert('permintaan anda gagal
dikirim')</script>";
}
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-cubes fa-fw"></i> List Stok
Barang</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<br>
<form action="index.php?page=pemesanan&aksi=preview&id=<?php echo
$id_Order; ?>" method="POST">
<table class="table table-responsive table-bordered" id="tables">
<thead>
<tr>
<th>Nama Barang</th>
<th>Stok</th>
<th>Satuan</th>
<th width="8%">Harga</th>
<th>Kategori</th>
<th>Jumlah Pesan</th>
</tr>
</thead>
<tbody>
202
<?php
$query = mysqli_query($koneksi, "SELECT * FROM tb_kategori INNER
JOIN tb_barang ON tb_kategori.id_kategori=tb_barang.id_kategori");
while($row = mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $row['nama_barang']; ?></td>
<td><?php echo $row['stok']; ?></td>
<td><?php echo $row['satuan']; ?></td>
<td><?php echo $row['harga_jual']; ?></td>
<td><?php echo $row['nama'] ?></td>
<td>
<input type="hidden" name="barang[]" value="<?php echo
$row['kode_barcode']; ?>">
<input type="number" name="qty[]" id="<?php echo
$row['kode_barcode']; ?>" min="0" value="0" style="width: 100%;outline:
none !important;border: 0px">
</td>
</tr>
<?php
}
?>
203
</tbody>
</table>
<input type="text" name="pelanggan">
<br>
<br>
<input class="btn btn-sm btn-primary" value="Pesan" type="submit"
name="add">
</form>
25. Source Code Satuan Barang
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Satuan Barang</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<a href="?page=satuan&aksi=tambah" class="btn btn-md btn-
primary">Tambah</a>
<br>
<br>
<table class="table table-responsive table-bordered" id="tables">
<thead>
<tr>
<th>No</th>
<th>Satuan Barang</th>
<th>Aksi</th>
</tr>
204
</thead>
<tbody>
<?php
$no = 1;
$query = mysqli_query($koneksi, "SELECT * FROM tb_satuan");
while($row = mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $row['satuan'] ?></td>
<td>
<a href="?page=satuan&aksi=edit&id=<?php echo
$row['id_satuan'] ?>" class="btn btn-sm btn-warning">Edit</a>
<a href="?page=satuan&aksi=hapus&id=<?php echo
$row['id_satuan'] ?>" class="btn btn-sm btn-danger">Hapus</a>
</td>
</tr>
<?php
$no++;
}
?>
</tbody>
</table>
26. Source Code Tambah Satuan
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Satuan Barang</h1>
205
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<form method="POST" id="f_satuan">
<div class="form-group">
<label for="">Satuan</label>
<input type="text" name="satuan" id="satuan" class="form-control">
</div>
<input type="submit" name="simpan" class="btn btn-sm btn-success"
value="Simpan">
</form>
<?php
if(isset($_POST['simpan'])) {
$satuan = $_POST['satuan'];
mysqli_query($koneksi, "INSERT INTO tb_satuan SET satuan =
'$satuan'");
echo "<meta http-equiv='refresh' content='1;url=?page=satuan'>";
}
?>
27. Source Code Edit Satuan
<?php
if(isset($_GET['id'])) {
$id = $_GET['id'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_satuan WHERE
id_satuan ='$id'");
206
$data = mysqli_fetch_array($query);
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Satuan Barang</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<form method="POST" id="f_satuan">
<div class="form-group">
<label for="">Satuan</label>
<input type="text" name="satuan" id="satuan" class="form-control"
value="<?php echo $data['satuan'] ?>">
</div>
<input type="submit" name="simpan" class="btn btn-sm btn-success"
value="Simpan">
</form>
<?php
if(isset($_POST['simpan'])) {
$satuan = $_POST['satuan'];
mysqli_query($koneksi, "UPDATE tb_satuan SET satuan = '$satuan'
WHERE id_satuan='$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=satuan'>";
}
?>
207
28. Source Code Hapus Satuan
<?php
if(isset($_GET['id'])) {
$id = $_GET['id'];
mysqli_query($koneksi, "DELETE FROM tb_satuan WHERE id_satuan
='$id'");
echo "<meta http-equiv='refresh' content='1;url=?page=satuan'>";
}
29. Source Code Laporan
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-book fa-fw"></i>
Laporan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<?php if($userData['jabatan'] == "Kasir") { ?>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=riwayat_penjualan">
<div class="panel panel-info">
<div class="panel-heading text-center">
<i><img src="asset/icon/shopping-cart.png" alt=""></i>
<div class="huge-1">Riwayat Penjualan</div>
</div>
</div>
208
</a>
</div>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=laporan_penjualan">
<div class="panel panel-red">
<div class="panel-heading text-center">
<i><img src="asset/icon/book.png" alt=""></i>
<div class="huge-1">Laporan Penjualan</div>
</div>
</div>
</a>
</div>
<?php } elseif($userData['jabatan'] == "Gudang") { ?>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=riwayat_pembelian">
<div class="panel panel-green">
<div class="panel-heading text-center">
<i><img src="asset/icon/trolley.png" alt=""></i>
<div class="huge-1">Riwayat Pembelian</div>
</div>
</div>
</a>
</div>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=laporan_pembelian">
<div class="panel panel-yellow">
<div class="panel-heading text-center">
<i><img src="asset/icon/book.png" alt=""></i>
<div class="huge-1">Laporan Pembelian</div>
209
</div>
</div>
</a>
</div>
<?php } elseif($userData['jabatan'] == "Administrator"){ ?>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=riwayat_penjualan">
<div class="panel panel-info">
<div class="panel-heading text-center">
<i><img src="asset/icon/shopping-cart.png" alt=""></i>
<div class="huge-1">Riwayat Penjualan</div>
</div>
</div>
</a>
</div>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=laporan_penjualan">
<div class="panel panel-red">
<div class="panel-heading text-center">
<i><img src="asset/icon/book.png" alt=""></i>
<div class="huge-1">Laporan Penjualan</div>
</div>
</div>
</a>
</div>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=riwayat_pembelian">
<div class="panel panel-green">
<div class="panel-heading text-center">
210
<i><img src="asset/icon/trolley.png" alt=""></i>
<div class="huge-1">Riwayat Pembelian</div>
</div>
</div>
</a>
</div>
<div class="col-md-3 col-md-6">
<a href="?page=laporan&aksi=laporan_pembelian">
<div class="panel panel-yellow">
<div class="panel-heading text-center">
<i><img src="asset/icon/book.png" alt=""></i>
<div class="huge-1">Laporan Pembelian</div>
</div>
</div>
</a>
</div>
<?php } ?>
</div>
30. Source Code Laporan Penjualan
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-book fa-fw"></i> Laporan
Penjualan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
211
<form method="post" class="form-horizontal">
<label for="" class="col-md-3">Pilih Tanggal Penjualan</label>
<div class="col-md-3">
<input type="text" class="form-control flatpickr" name="mulai">
</div>
<div class="col-md-3">
<input type="text" class="form-control flatpickr" name="akhir">
</div>
<input type="submit" name="cari" class="btn btn-sm btn-success"
value="Cari">
</form>
<?php
if(isset($_POST['cari'])) {
$mulai = $_POST['mulai'];
$akhir = $_POST['akhir'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_penjualan,
tb_barang WHERE (tgl_penjualan BETWEEN '$mulai' AND '$akhir') AND
tb_penjualan.kode_barcode = tb_barang.kode_barcode");
?>
<br>
<a href="laporan/cetak1.php?mulai=<?php echo $mulai ?>&akhir=<?php
echo $akhir ?>" class="btn btn-sm btn-primary" target="_blank"><i class="fa
fa-print"></i> Cetak</a><br><br>
Tanggal <?php echo $mulai." Sampai ". $akhir ?>
<br>
<br>
<table class="table table-responsive table-bordered">
<thead>
212
<tr>
<th>Tanggal Penjualan</th>
<th>Kode Barcode</th>
<th>Nama Barang</th>
<th>Jumlah</th>
<th>Harga Jual</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<?php
$total = 0;
while($row = mysqli_fetch_array($query)){
?>
<tr>
<td><?php echo $row['tgl_penjualan'] ?></td>
<td><?php echo $row['kode_barcode']; ?></td>
<td><?php echo $row['nama_barang']; ?></td>
<td><?php echo $row['jumlah']; ?></td>
<td><?php echo rupiah($row['harga_jual']); ?></td>
<td><?php echo rupiah($row['total']); ?></td>
</tr>
<?php
$total = $total + $row['total'];
} ?>
<tr>
<td colspan="5">Jumlah Pendapatan</td>
<td><b>Rp. <?php echo rupiah($total) ?></b></td>
</tr>
213
</tbody>
</table>
<?php
}
?>
31. Source Code Laporan Pembelian
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-book fa-fw"></i> Laporan
Pembelian</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<form method="post" class="form-horizontal">
<label for="" class="col-md-3">Pilih Tanggal Pembelian</label>
<div class="col-md-3">
<input type="text" class="form-control flatpickr" name="mulai">
</div>
<div class="col-md-3">
<input type="text" class="form-control flatpickr" name="akhir">
</div>
<input type="submit" name="cari" class="btn btn-sm btn-success"
value="Cari">
</form>
<?php
if(isset($_POST['cari'])) {
214
$mulai = $_POST['mulai'];
$akhir = $_POST['akhir'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_pembelian,
tb_barang WHERE (tgl_pembelian BETWEEN '$mulai' AND '$akhir') AND
tb_pembelian.kode_barcode = tb_barang.kode_barcode");
?>
<br>
<a href="laporan/cetak2.php?mulai=<?php echo $mulai ?>&akhir=<?php
echo $akhir ?>" class="btn btn-sm btn-primary" target="_blank"><i class="fa
fa-print"></i> Cetak</a><br><br>
Tanggal <?php echo $mulai." Sampai ". $akhir ?>
<br>
<br>
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>Tanggal Pembelian</th>
<th>Kode Barcode</th>
<th>Nama Barang</th>
<th>Jumlah</th>
<th>Harga Jual</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<?php
$total = 0;
while($row = mysqli_fetch_array($query)){
215
?>
<tr>
<td><?php echo $row['tgl_pembelian'] ?></td>
<td><?php echo $row['kode_barcode']; ?></td>
<td><?php echo $row['nama_barang']; ?></td>
<td><?php echo $row['jumlah']; ?></td>
<td><?php echo rupiah($row['harga_beli']); ?></td>
<td><?php echo rupiah($row['total']); ?></td>
</tr>
<?php
$total = $total + $row['total'];
} ?>
<tr>
<td colspan="5">Jumlah Pendapatan</td>
<td><b>Rp. <?php echo rupiah($total) ?></b></td>
</tr>
</tbody>
</table>
<?php
}
?>
32. Source Code Riwayat Penjualan
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-shopping-cart fa-fw"></i>
Riwayat Penjualan</h1>
216
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<table class="table table-responsive table-bordered" id="tables">
<thead>
<tr>
<th>Kode Penjualan</th>
<th>Total Bayar</th>
<th>Tanggal</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM
tb_penjualan_detail");
while($row = mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $row['kode_penjualan'] ?></td>
<td><?php echo $row['sub_total'] ?></td>
<td><?php echo $row['tanggal'] ?></td>
<td>
<a href="?page=laporan&aksi=detail_penjualan&kode=<?php
echo $row['kode_penjualan'] ?>" class="btn btn-sm btn-primary">Detail</a>
</td>
</tr>
<?php } ?>
217
</tbody>
</table>
</div>
33. Source Code Riyawat Pembelian
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-cart-plus fa-fw"></i> Riwayat
Pembelian</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<table class="table table-responsive table-bordered" id="tables">
<thead>
<tr>
<th>Kode Pembelian</th>
<th>Total Bayar</th>
<th>Tanggal</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$query = mysqli_query($koneksi, "SELECT * FROM
tb_pembelian_detail");
while($row = mysqli_fetch_array($query)) {
?>
218
<tr>
<td><?php echo $row['kode_pembelian'] ?></td>
<td><?php echo $row['total'] ?></td>
<td><?php echo $row['tanggal'] ?></td>
<td>
<a href="?page=laporan&aksi=detail_pembelian&kode=<?php
echo $row['kode_pembelian'] ?>" class="btn btn-sm btn-primary">Detail</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
34. Source Code Detail Penjualan
<?php
if(isset($_GET['kode'])) {
$kodepj = $_GET['kode'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_penjualan,
tb_pelanggan WHERE
tb_penjualan.id_pelanggan=tb_pelanggan.id_pelanggan AND
tb_penjualan.kode_penjualan = '$kodepj'");
$data = mysqli_fetch_array($query);
$query1 = mysqli_query($koneksi, "SELECT * FROM tb_karyawan
WHERE id_karyawan = '$data[id_karyawan]'");
$data1 = mysqli_fetch_array($query1);
}
219
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-shopping-cart fa-fw"></i>
Detail Penjualan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<form class="form-horizontal">
<div class="form-group">
<label for="" class="label-control col-md-2">Kode Penjualan</label>
<div class="col-md-5">
<input type="text" value="<?php echo $data['kode_penjualan'] ?>"
class="form-control" readonly>
</div>
</div>
<div class="form-group">
<label for="" class="label-control col-md-2">Tanggal
Pembelian</label>
<div class="col-md-5">
<input type="text" value="<?php echo $data['tgl_penjualan'] ?>"
class="form-control" readonly>
</div>
</div>
<div class="form-group">
<label for="" class="label-control col-md-2">Nama Pelanggan</label>
<div class="col-md-5">
220
<input type="text" value="<?php echo $data['nama'] ?>"
class="form-control" readonly>
</div>
</div>
<div class="form-group">
<label for="" class="label-control col-md-2">Nama Kasir</label>
<div class="col-md-5">
<input type="text" value="<?php echo $data1['nama'] ?>"
class="form-control" readonly>
</div>
</div>
</form>
</div>
<?php
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_penjualan,
tb_barang WHERE tb_penjualan.kode_barcode=tb_barang.kode_barcode
AND kode_penjualan='$kodepj'");
?>
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>Nama Barang</th>
<th>Harga</th>
<th>Jumlah</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<?php
221
while($row = mysqli_fetch_array($query2)) {
?>
<tr>
<td><?php echo $row['nama_barang'] ?></td>
<td>Rp. <?php echo rupiah($row['harga_jual']) ?></td>
<td><?php echo $row['jumlah'] ?></td>
<td>Rp. <?php echo rupiah($row['total']) ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_penjualan_detail
WHERE kode_penjualan ='$kodepj'");
$data2 = mysqli_fetch_array($query3);
?>
<hr>
<table>
<tr>
<td>Total</td>
<td> : </td>
<td>Rp. <?php echo $data2['total'] ?></td>
</tr>
<tr>
<td>Diskon</td>
<td> : </td>
222
<td><?php echo $data2['diskon'] ?>%</td>
</tr>
<tr>
<td>Potongan Diskon</td>
<td> : </td>
<td>Rp. <?php echo $data2['potongan_diskon'] ?></td>
</tr>
<tr>
<td>Sub Total</td>
<td> : </td>
<td>Rp. <?php echo $data2['sub_total'] ?></td>
</tr>
<tr>
<td>Bayar</td>
<td> : </td>
<td>Rp. <?php echo $data2['bayar'] ?></td>
</tr>
<tr>
<td>Kembalian</td>
<td> : </td>
<td>Rp. <?php echo $data2['kembalian'] ?></td>
</tr>
</table>
35. Source Code Detail Pembelian
<?php
if(isset($_GET['kode'])) {
$kodepj = $_GET['kode'];
223
$query = mysqli_query($koneksi, "SELECT * FROM tb_pembelian,
tb_supplier WHERE tb_pembelian.id_supplier=tb_supplier.id_supplier AND
tb_pembelian.kode_pembelian = '$kodepj'");
$data = mysqli_fetch_array($query);
}
?>
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-shopping-cart fa-fw"></i>
Detail Penjualan</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<form class="form-horizontal">
<div class="form-group">
<label for="" class="label-control col-md-2">Kode Penjualan</label>
<div class="col-md-5">
<input type="text" value="<?php echo $data['kode_penjualan'] ?>"
class="form-control" readonly>
</div>
</div>
<div class="form-group">
<label for="" class="label-control col-md-2">Tanggal
Pembelian</label>
<div class="col-md-5">
<input type="text" value="<?php echo $data['tgl_pembelian'] ?>"
class="form-control" readonly>
</div>
224
</div>
<div class="form-group">
<label for="" class="label-control col-md-2">Nama Pelanggan</label>
<div class="col-md-5">
<input type="text" value="<?php echo $data['nama'] ?>"
class="form-control" readonly>
</div>
</div>
</form>
</div>
<?php
$query2 = mysqli_query($koneksi, "SELECT * FROM tb_pembelian,
tb_barang WHERE tb_pembelian.kode_barcode=tb_barang.kode_barcode
AND tb_pembelian.kode_pembelian='$kodepj'");
?>
<table class="table table-responsive table-bordered">
<thead>
<tr>
<th>Nama Barang</th>
<th>Harga</th>
<th>Jumlah</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<?php
while($row = mysqli_fetch_array($query2)) {
?>
<tr>
225
<td><?php echo $row['nama_barang'] ?></td>
<td>Rp. <?php echo rupiah($row['harga_beli']) ?></td>
<td><?php echo $row['jumlah'] ?></td>
<td>Rp. <?php echo rupiah($row['total']) ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
$query3 = mysqli_query($koneksi, "SELECT * FROM tb_pembelian_detail
WHERE kode_pembelian ='$kodepj'");
$data2 = mysqli_fetch_array($query3);
?>
<hr>
<table>
<tr>
<td>Total</td>
<td> : </td>
<td>Rp. <?php echo $data2['total'] ?></td>
</tr>
<tr>
<td>Bayar</td>
<td> : </td>
<td>Rp. <?php echo $data2['bayar'] ?></td>
</tr>
<tr>
226
<td>Kembalian</td>
<td> : </td>
<td>Rp. <?php echo $data2['kembalian'] ?></td>
</tr>
</table>
36. Source Code Cetak 1 (Penjualan)
<?php
// $koneksi = mysqli_connect('localhost','root','','db_pos');
include '../koneksi.php';
include '../format_rupiah.php';
$mulai = $_GET['mulai'];
$akhir = $_GET['akhir'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_penjualan, tb_barang
WHERE (tgl_penjualan BETWEEN '$mulai' AND '$akhir') AND
tb_penjualan.kode_barcode = tb_barang.kode_barcode");
?>
<head>
<title>Laporan Penjualan</title>
<script type="text/javascript" src="../Chart.js"></script>
</head>
<style>
.container {
width: 80%;
padding-right: 20px;
padding-left: 20px;
margin-right: auto;
margin-left: auto;
227
}
</style>
<div class='container' onclick="window.print()">
<h1 align="center">CV. Multi Citra Kimia</h1>
<br>
<br>
Laporan Penjualan Tanggal <?php echo $mulai." Sampai ". $akhir ?>
<br>
<br>
<table border="1" cellpadding="5" cellspacing="0">
<thead>
<tr>
<th>Tanggal Penjualan</th>
<th width="200px">Kode Barcode</th>
<th width="200px">Nama Barang</th>
<th>Jumlah</th>
<th width="150px">Harga Jual</th>
<th width="200px">Total</th>
</tr>
</thead>
<tbody>
<?php
$total = 0;
while($row = mysqli_fetch_array($query)){
?>
<tr>
<td><?php echo $row['tgl_penjualan'] ?></td>
<td><?php echo $row['kode_barcode']; ?></td>
<td><?php echo $row['nama_barang']; ?></td>
228
<td><?php echo $row['jumlah']; ?></td>
<td><?php echo rupiah($row['harga_jual']); ?></td>
<td><?php echo rupiah($row['total']); ?></td>
</tr>
<?php
$total = $total + $row['total'];
} ?>
<tr>
<td colspan="5">Jumlah Pendapatan</td>
<td><b>Rp. <?php echo rupiah($total) ?></b></td>
</tr>
</tbody>
</table>
<?php
$x=1;
$query = mysqli_query($koneksi, "SELECT b.nama_barang, sum(p.jumlah)
jumlah FROM tb_penjualan p join tb_barang b WHERE (p.tgl_penjualan
BETWEEN '$mulai' AND '$akhir') AND p.kode_barcode = b.kode_barcode
GROUP by p.kode_barcode order by jumlah desc limit 10");
while($row = mysqli_fetch_array($query)){
if ($x==1) {
$satu=$row['jumlah'];
$n_satu=$row['nama_barang'];
echo'<input type="hidden" id="nama1" value="'.$n_satu.'">';
echo'<input type="hidden" id="jml1" value="'.$satu.'">';
} else if ($x==2) {
$dua=$row['jumlah'];
$n_dua=$row['nama_barang'];
229
echo'<input type="hidden" id="nama2" value="'.$n_dua.'">';
echo'<input type="hidden" id="jml2" value="'.$dua.'">';
} else if ($x==3) {
$tiga=$row['jumlah'];
$n_tiga=$row['nama_barang'];
echo'<input type="hidden" id="nama3" value="'.$n_tiga.'">';
echo'<input type="hidden" id="jml3" value="'.$tiga.'">';
} else if ($x==4) {
$empat=$row['jumlah'];
$n_empat=$row['nama_barang'];
echo'<input type="hidden" id="nama4" value="'.$n_empat.'">';
echo'<input type="hidden" id="jml4" value="'.$empat.'">';
}else if ($x==5) {
$lima=$row['jumlah'];
$n_lima=$row['nama_barang'];
echo'<input type="hidden" id="nama5" value="'.$n_lima.'">';
echo'<input type="hidden" id="jml5" value="'.$lima.'">';
} else if ($x==6) {
$enam=$row['jumlah'];
$n_enam=$row['nama_barang'];
echo'<input type="hidden" id="nama6" value="'.$n_enam.'">';
echo'<input type="hidden" id="jml6" value="'.$enam.'">';
} else if ($x==7) {
$tujuh=$row['jumlah'];
$n_tujuh=$row['nama_barang'];
echo'<input type="hidden" id="nama7" value="'.$n_tujuh.'">';
echo'<input type="hidden" id="jml7" value="'.$tujuh.'">';
}else if ($x==8) {
$delapan=$row['jumlah'];
230
$n_delapan=$row['nama_barang'];
echo'<input type="hidden" id="nama8" value="'.$n_delapan.'">';
echo'<input type="hidden" id="jml8" value="'.$delapan.'">';
}else if ($x==9) {
$sembilan=$row['jumlah'];
$n_sembilan=$row['nama_barang'];
echo'<input type="hidden" id="nama9" value="'.$n_sembilan.'">';
echo'<input type="hidden" id="jml9" value="'.$sembilan.'">';
}else if ($x==10) {
$sepuluh=$row['jumlah'];
$n_sepuluh=$row['nama_barang'];
echo'<input type="hidden" id="nama10" value="'.$n_sepuluh.'">';
echo'<input type="hidden" id="jml10" value="'.$sepuluh.'">';
}
$x++;
}
?>
<div style="width: 1000px;height: 500px">
<canvas id="myChart"></canvas>
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-
3.4.0.min.js"></script>
<script>
var nama1 = $("#nama1").val();
var nama2 = $("#nama2").val();
var nama3 = $("#nama3").val();
231
var nama4 = $("#nama4").val();
var nama5 = $("#nama5").val();
var nama6 = $("#nama6").val();
var nama7 = $("#nama7").val();
var nama8 = $("#nama8").val();
var nama9 = $("#nama9").val();
var nama10 = $("#nama10").val();
var jml1 = $("#jml1").val();
var jml2 = $("#jml2").val();
var jml3 = $("#jml3").val();
var jml4 = $("#jml4").val();
var jml5 = $("#jml5").val();
var jml6 = $("#jml6").val();
var jml7 = $("#jml7").val();
var jml8 = $("#jml8").val();
var jml9 = $("#jml9").val();
var jml10 = $("#jml10").val();
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: [nama1, nama2, nama3, nama4, nama5, nama6, nama7,
nama8, nama9, nama10],
datasets: [{
label: 'Penjualan',
data: [jml1, jml2, jml3, jml4, jml5, jml6, jml7, jml8, jml9, jml10],
232
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(48, 9, 99, 0.53)',
'rgba(4, 82, 95, 0.66)',
'rgba(178, 92, 184, 0.62)',
'rgba(243, 247, 6, 0.66)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
</script>
233
37. Source Code Cetak 2 (Pembelian)
<?php
// $koneksi = mysqli_connect('localhost','root','','db_pos');
include '../koneksi.php';
include '../format_rupiah.php';
$mulai = $_GET['mulai'];
$akhir = $_GET['akhir'];
$query = mysqli_query($koneksi, "SELECT * FROM tb_pembelian, tb_barang
WHERE (tgl_pembelian BETWEEN '$mulai' AND '$akhir') AND
tb_pembelian.kode_barcode = tb_barang.kode_barcode");
?>
<title>Laporan Pembelian</title>
<script type="text/javascript" src="../Chart.js"></script>
<style>
.container {
width: 80%;
padding-right: 20px;
padding-left: 20px;
margin-right: auto;
margin-left: auto;
}
</style>
<div class='container' onclick="window.print()">
<h1 align="center">CV. Multi Citra Kimia</h1>
<br>
<br>
Laporan Pembelian Tanggal <?php echo $mulai." Sampai ". $akhir ?>
<br>
234
<br>
<table border="1" cellpadding="5" cellspacing="0">
<thead>
<tr>
<th>Tanggal Penjualan</th>
<th width="200px">Kode Barcode</th>
<th width="200px">Nama Barang</th>
<th>Jumlah</th>
<th width="150px">Harga Jual</th>
<th width="200px">Total</th>
</tr>
</thead>
<tbody>
<?php
$total = 0;
while($row = mysqli_fetch_array($query)){
?>
<tr>
<td><?php echo $row['tgl_pembelian'] ?></td>
<td><?php echo $row['kode_barcode']; ?></td>
<td><?php echo $row['nama_barang']; ?></td>
<td><?php echo $row['jumlah']; ?></td>
<td><?php echo rupiah($row['harga_beli']); ?></td>
<td><?php echo rupiah($row['total']); ?></td>
</tr>
<?php
$total = $total + $row['total'];
} ?>
<tr>
235
<td colspan="5">Jumlah Pendapatan</td>
<td><b>Rp. <?php echo rupiah($total) ?></b></td>
</tr>
</tbody>
</table>
<?php
$x=1;
$query = mysqli_query($koneksi, "SELECT b.nama_barang, sum(p.jumlah)
jumlah FROM tb_pembelian p join tb_barang b WHERE (p.tgl_pembelian
BETWEEN '$mulai' AND '$akhir') AND p.kode_barcode = b.kode_barcode
GROUP by p.kode_barcode order by jumlah desc limit 10");
while($row = mysqli_fetch_array($query)){
if ($x==1) {
$satu=$row['jumlah'];
$n_satu=$row['nama_barang'];
echo'<input type="hidden" id="nama1" value="'.$n_satu.'">';
echo'<input type="hidden" id="jml1" value="'.$satu.'">';
} else if ($x==2) {
$dua=$row['jumlah'];
$n_dua=$row['nama_barang'];
echo'<input type="hidden" id="nama2" value="'.$n_dua.'">';
echo'<input type="hidden" id="jml2" value="'.$dua.'">';
} else if ($x==3) {
$tiga=$row['jumlah'];
$n_tiga=$row['nama_barang'];
echo'<input type="hidden" id="nama3" value="'.$n_tiga.'">';
echo'<input type="hidden" id="jml3" value="'.$tiga.'">';
} else if ($x==4) {
$empat=$row['jumlah'];
236
$n_empat=$row['nama_barang'];
echo'<input type="hidden" id="nama4" value="'.$n_empat.'">';
echo'<input type="hidden" id="jml4" value="'.$empat.'">';
}else if ($x==5) {
$lima=$row['jumlah'];
$n_lima=$row['nama_barang'];
echo'<input type="hidden" id="nama5" value="'.$n_lima.'">';
echo'<input type="hidden" id="jml5" value="'.$lima.'">';
} else if ($x==6) {
$enam=$row['jumlah'];
$n_enam=$row['nama_barang'];
echo'<input type="hidden" id="nama6" value="'.$n_enam.'">';
echo'<input type="hidden" id="jml6" value="'.$enam.'">';
} else if ($x==7) {
$tujuh=$row['jumlah'];
$n_tujuh=$row['nama_barang'];
echo'<input type="hidden" id="nama7" value="'.$n_tujuh.'">';
echo'<input type="hidden" id="jml7" value="'.$tujuh.'">';
}else if ($x==8) {
$delapan=$row['jumlah'];
$n_delapan=$row['nama_barang'];
echo'<input type="hidden" id="nama8" value="'.$n_delapan.'">';
echo'<input type="hidden" id="jml8" value="'.$delapan.'">';
}else if ($x==9) {
$sembilan=$row['jumlah'];
$n_sembilan=$row['nama_barang'];
echo'<input type="hidden" id="nama9" value="'.$n_sembilan.'">';
echo'<input type="hidden" id="jml9" value="'.$sembilan.'">';
}else if ($x==10) {
237
$sepuluh=$row['jumlah'];
$n_sepuluh=$row['nama_barang'];
echo'<input type="hidden" id="nama10" value="'.$n_sepuluh.'">';
echo'<input type="hidden" id="jml10" value="'.$sepuluh.'">';
}
$x++;
}
?>
<div style="width: 1000px;height: 500px">
<canvas id="myChart"></canvas>
</div>
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-
3.4.0.min.js"></script>
<script>
var nama1 = $("#nama1").val();
var nama2 = $("#nama2").val();
var nama3 = $("#nama3").val();
var nama4 = $("#nama4").val();
var nama5 = $("#nama5").val();
var nama6 = $("#nama6").val();
var nama7 = $("#nama7").val();
var nama8 = $("#nama8").val();
var nama9 = $("#nama9").val();
var nama10 = $("#nama10").val();
var jml1 = $("#jml1").val();
238
var jml2 = $("#jml2").val();
var jml3 = $("#jml3").val();
var jml4 = $("#jml4").val();
var jml5 = $("#jml5").val();
var jml6 = $("#jml6").val();
var jml7 = $("#jml7").val();
var jml8 = $("#jml8").val();
var jml9 = $("#jml9").val();
var jml10 = $("#jml10").val();
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: [nama1, nama2, nama3, nama4, nama5, nama6, nama7,
nama8, nama9, nama10],
datasets: [{
label: 'Pembelian',
data: [jml1, jml2, jml3, jml4, jml5, jml6, jml7, jml8, jml9, jml10],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(48, 9, 99, 0.53)',
'rgba(4, 82, 95, 0.66)',
'rgba(178, 92, 184, 0.62)',
'rgba(243, 247, 6, 0.66)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
239
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
</script>
38. Source Code Pengaturan Aplikasi Point Of Sale
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Pengaturan Aplikasi</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-lg-3 col-md-6">
240
<a href="?page=kategori">
<div class="panel panel-tan">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i><img src="asset/icon/backend.png" alt=""></i>
</div>
<div class="col-xs-9 text-right">
<!-- <div class="huge">13</div> -->
<div class="huge-2">Kategori Barang</div>
</div>
</div>
</div>
</div>
</a>
</div>
<div class="col-lg-3 col-md-6">
<a href="?page=satuan">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i><img src="asset/icon/scales.png" alt=""></i>
</div>
<div class="col-xs-9 text-right">
<!-- <div class="huge">13</div> -->
<div class="huge-2">Satuan Barang</div>
</div>
</div>