RANCANG BANGUN SISTEM INFORMASI PENJUALAN
MENGGUNAKAN CODEIGNITER PADA AKA STORE
BERBASIS WEB MOBILE
Tugas Akhir disusun untuk memenuhi syarat
mencapai gelas Kesarjanaan Komputer pada
Program Studi Teknik Informatika
Jenjang Program Strata-1
Oleh:
Catur Ananta Putra
(13.01.53.0118)
15945
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS STIKUBANK (UNISBANK)
SEMARANG
2017
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS STIKUBANK (UNISBANK) SEMARANG
Program Studi: Teknik Informatika
Tugas Akhir Sarjana Komputer
RANCANG BANGUN SISTEM INFORMASI PENJUALAN
MENGGUNAKAN CODEIGNITER PADA AKA STORE
BERBASIS WEB MOBILE
Catur Ananta Putra
NIM: 13.01.53.0118
ABSTRAK
Pemanfaatan E-Commerce semakin meningkat sejalan dengan perkembangan
teknologi pada saat ini. E-Commerce berperan penting dalam transaksi penjualan
atau pembelian karena dapat beroperasi 24 jam, memudahkan pelanggan dalam
membeli barang, dan menghemat waktu pelanggan. Sistem pendataan barang pada
sebuah toko penjualan sangat penting karena dapat membantu mengelola data
barang yang dijual, sehingga dapat meningkatkan kinerja dari toko tersebut.
Belum adanya sistem pendataan barang pada Aka Store menyebabkan
permasalahan seperti kesalahan penyimpanan jumlah ketersediaan barang, dan
kesalahan penulisan nama barang karena jumlah barang yang dijual cukup
banyak. Sistem informasi penjualan pada Aka Store dirancang untuk membantu
Aka Store dalam menyampaikan informasi produk seperti stock, harga, dan detail
barang. Pembuatan sistem penjualan pada Aka Store menggunakan framework
Codeigniter, dan MySQL sebagai database. Framework Codeigniter
menggunakan metode Model View Controller (MVC), metode MVC memisahkan
antara desain interface, data, dan proses. Perancangan dengan menggunakan
framework Codeigniter ini menghasilkan sebuah sistem informasi penjualan yang
mampu mengolah data produk yang dijual dengan mudah, dan pelanggan dapat
melihat detail produk yang dijual dengan lengkap.
Kata kunci : Penjualan, Web Mobile, Sistem Informasi Penjualan
Semarang, 28 Agustus 2017
MOTTO DAN PERSEMBAHAN
MOTTO :
Awali sesuatu dengan bismillah, menyebut Gusti Allah yang sudah
memberikan rezeki. InsyaAllah dimudahkan segala urusan
Berdoa, berdoa, dan berdoa.
Berusaha, berusaha, dan berusaha sebaik mungkin. Tidak akan terwujud
doa seseorang tanpa diikut usaha yang maksimal.
Hargai orang lain, sekecil apapun usahanya.
PERSEMBAHAN :
Skripsi ini saya persembahkan untuk:
Orangtuaku, yang setiap hari selalu mendoakanku.
Saudara dan saudariku, yang selalu mendukung dan mendoakanku.
Dosen pembimbing, Fatkhul Amin,S.T, M.Kom
Seluruh teman-teman stikubank angkatan 2013, terutama genk kapak yang
selalu membakar kesunyian kost-an mentari.
KATA PENGGANTAR
Puji syukur kehadirat Allah Yang Maha Kuasa atas segala rahmat dan
karunia-Nya, sehingga penulis dapat menyelesaikan penyusunan Tugas Akhir ini
yang berjudul “RANCANG BANGUN SISTEM INFORMASI PENJUALAN
MENGGUNAKAN CODEIGNITER PADA AKA STORE BERBASIS WEB
MOBILE”.
Penulis telah banyak mendapat pengarahan dan dorongan dari berbagai
pihak, baik secara langsung maupun tidak langsung oleh karena itu, penulis ingin
mengucapkan terima kasih kepada :
1. Ibuku, yang disetiap tengah malamnya selalu bersujud mendoakan anak-
anaknya menjadi anak yang sholeh dan sholehah. Mendoakan anak-anaknya
menjadi orang yang berguna. Mendoakan anak-anaknya untuk menjadi
orang yang sukses dunia dan akhirat.
2. Bapaku, yang tak pernah berhenti berjuang demi kebaikan anak-anaknya,
yang tak pernah pernah berhenti mengajarkan kebaikan untuk anak-
anaknya.
3. Bapak Dr. H. Hasan Abdul Rozak, S.H., C.N., M.M. selaku Rektor
UNIVERSITAS STIKUBANK (UNISBANK) SEMARANG.
4. Bapak Dr. Drs. Yohanes. Suhari, M.MSI. selaku Dekan FAKULTAS
TEKNOLOGI INFORMASI UNISBANK SEMARANG.
5. Bapak Jati Sasongko Wibowo, S.Kom, M.Cs, selaku kepala Progdi Teknik
Informatika UNISBANK SEMARANG.
6. Bapak Fatkhul Amin S.T, M.Kom selaku dosen pembimbing yang tak
pernah lelah membimbing saya hingga akhirnya dapat menyelesaikan
penulisan tugas akhir ini.
7. Seluruh Bapak dan Ibu dosen Universitas Stikubank Semarang.
8. Untuk teman-teman seperjuanganku Rifki, Yogi AB, Didik, Iqbal,
Sondolop, Sucip, dan semua teman-teman FTI Unisbank 2013 yang tak bisa
saya sebutkan satu-satu. Kalian terbaik !
9. Yuni Ismiati, teman spesial yang selalu ada untuk memberikan semangat
dan mendukungku dalam keadaan susah maupun senang.
Penulis mengharapkan kritik dan saran yang membangun dari pembaca
demi kesempurnaan tugas akhir ini. Kiranya isi tugas akhir ini bermanfaat dalam
memperkaya khasanah ilmu pendidikan dan juga dapat dijadikan sebagai salah
satu sumber referensi bagi peneliti selanjutnya yang berminat meneliti hal yang
sama.
Semarang,28 Agustus 2017
Penulis,
DAFTAR ISI
Halaman
HALAMAN JUDUL ....................................................................................... i
HALAMAN PERSETUJUAN ........................................................................ ii
HALAMAN PENGESAHAN ......................................................................... iii
HALAMAN INTISARI ................................................................................... iv
HALAMAN MOTTO DAN PERSEMBAHAN ............................................. v
KATA PENGANTAR .................................................................................... vi
DAFTAR ISI ................................................................................................... viii
DAFTAR GAMBAR ....................................................................................... xi
DAFTAR TABEL ............................................................................................ xiii
DAFTAR LAMPIRAN .................................................................................... xiv
BAB I PENDAHULUAN
1.1. Latar Belakang ..................................................................... 1
1.2. Perumusan Masalah ............................................................. 2
1.3. Tujuan dan Manfaat Penelitian ............................................ 3
1.4.1. Tujuan ..................................................................... 3
1.4.2. Manfaat ................................................................... 3
1.4. Metodologi Penelitian .......................................................... 3
1.5.1. Obyek Penelitian ...................................................... 3
1.5.2. Metode Pengumpulan Data ..................................... 3
1.5. Metode Pengembangan Sistem ............................................ 4
1.6. Sistematika Penulisan .......................................................... 6
BAB II TINJAUAN PUSTAKA ................................................................ 8
BAB III LANDASAN TEORI
3.1. Konsep Dasar Sistem ........................................................... 11
3.1.1 Definisi Sistem ......................................................... 11
3.1.2 Karakteristik Sistem ................................................. 12
3.2. Konsep Dasar Informasi ....................................................... 13
3.2.1 Definisi Data ............................................................ 13
3.2.2 Definisi Informasi .................................................... 14
3.2.3 Kualitas Informasi .................................................... 14
3.3. Definisi E-Commerce ........................................................... 16
3.3.1 Komponen E-Commerce ......................................... 17
3.4. Konsep Dasar Program ......................................................... 18
3.4.1 PHP .......................................................................... 18
3.5. Definisi MySQL .................................................................... 19
3.5.1 Kelebihan MySQL ................................................... 20
3.6. Definisi XAMPP ................................................................... 20
3.7. Definisi Framework .............................................................. 21
3.7.1 Definisi Framework Codeigniter ............................. 22
3.7.2 Konsep MVC ........................................................... 25
3.7.3 Flow Diagram Codeigniter ...................................... 27
3.8. Alat Bantu Perancangan Sistem ............................................ 27
3.8.1 Data Flow Diagram ................................................. 27
3.8.2 Entity Relationship Diagram ................................... 28
BAB IV ANALISA DAN PERANCANGAN SISTEM
4.1. Identifikasi Pengguna Sistem ............................................... 30
4.2. Deskripsi Sistem .................................................................. 30
4.3. Analisis dan Kebutuhan Non Fungsional .............................. 31
4.3.1 Analisis Kebutuhan Perangkat Lunak ..................... 31
4.3.2 Analisis Kebutuhan Perangkat Keras ....................... 32
4.3.3 Analisis Kebutuhan User ......................................... 32
4.4. Perancangan Sistem .............................................................. 32
4.4.1 Analisis Flow Map ................................................... 32
4.4.2 Diagram Konteks ..................................................... 33
4.4.3 Data Flow Diagram ................................................. 33
4.5. Rancangan Tabel Database ................................................... 38
4.6. Design Interface .................................................................... 42
BAB V IMPLEMENTASI SISTEM
5.1. Implementasi Program ........................................................ 51
5.2. Implementasi Rancangan Komponen Diagram ................... 51
5.3. Tampilan Utama ................................................................. 53
5.3.1. Halaman Home ........................................................ 53
5.3.2. Halaman Login ........................................................ 54
5.3.3. Halaman Utama Admin .......................................... 55
5.3.4. Halaman Tambah Produk ....................................... 56
5.3.5. Halaman Invoice List .............................................. 56
5.3.6. Halaman Detail Invoice .......................................... 57
5.3.7. Halaman Daftar Member ......................................... 58
5.3.8. Halaman Pengaturan ............................................... 59
5.3.9. Halaman Home Pelanggan ....................................... 59
5.3.10. Halaman Detail Produk ............................................ 60
5.3.11. Halaman Keranjang Belanja .................................... 61
5.3.12. Halaman Konfirmasi Pembayaran ........................... 62
5.3.13. Halaman History ...................................................... 63
5.3.14. Halaman About ....................................................... 63
5.3.15. Halaman Tutorial Pembelian .................................. 64
BAB VI HASIL PENELITIAN DAN PEMBAHASAN
6.1. Hasil Penelitian ................................................................... 65
6.1.1. Mengetahui Bagaimana Pelanggan Melakukan
Pembelian Pada Sistem ............................................ 65
6.1.2. Mengetahui Bagaimana Admin Memproses Order . 74
BAB VII PENUTUP
7.1. Kesimpulan .......................................................................... 80
7.2. Saran .................................................................................... 80
DAFTAR PUSTAKA
LAMPIRAN
DAFTAR GAMBAR
Gambar Halaman
1.1 Tahapan Model Waterfall .................................................................. 4
3.1 Flowchart Codeigniter ....................................................................... 24
3.2 Metode MVC ...................................................................................... 26
3.3 Flow Diagram Codeigniter ................................................................. 27
4.1 Diagram Konteks ............................................................................... 34
4.2 DFD level 0 ........................................................................................ 35
4.3 DFD level 1 Olah Data ....................................................................... 36
4.4 DFD level 1 Proses Order Produk ...................................................... 37
4.5 Entity Relation Diagram .................................................................... 38
4.6 Halaman Login .................................................................................. 42
4.7 Halaman Daftar Pelanggan ................................................................. 42
4.8 Halaman Home Pelanggan ................................................................. 43
4.9 Halaman Cart Pelanggan .................................................................... 44
4.10 Halaman History Belanja Pelanggan .................................................. 45
4.11 Halaman Konfirmasi Pembayaran Pelanggan ................................... 45
4.12 Halaman Home Admin ....................................................................... 46
4.13 Halaman Tambah Produk .................................................................. 47
4.14 Halaman Edit Produk ......................................................................... 48
4.15 Halaman Order List ........................................................................... 49
4.16 Halaman Detail Order ....................................................................... 49
4.17 Halaman Daftar Member ................................................................... 50
5.1 Model Products .................................................................................. 52
5.2 Controller Home ................................................................................ 52
5.3 View Home ......................................................................................... 53
5.4 Halaman Utama ................................................................................. 53
5.5 Halaman Login .................................................................................. 54
5.6 Halaman Utama Admin ...................................................................... 55
5.7 Halaman Tambah Produk ................................................................... 56
5.8 Halaman Invoice List ......................................................................... 57
5.9 Detail Invoce ...................................................................................... 57
5.10 Halaman Daftar Member ................................................................... 58
5.11 Halaman Pengaturan .......................................................................... 59
5.12 Halaman Home Pelanggan ................................................................. 59
5.13 Halaman Detail Produk ...................................................................... 60
5.14 Halaman Keranjang Belanja ............................................................... 61
5.15 Halaman Konfirmasi Pembayaran ..................................................... 62
5.16 Halaman History ................................................................................. 63
5.17 Halaman About .................................................................................. 64
5.18 Halaman Tutorial Pembelian .............................................................. 64
6.1 Halaman Login .................................................................................. 65
6.2 Listing Program Login ...................................................................... 66
6.3 Halaman Utama Pelanggan ............................................................... 67
6.4 Halaman Cart Pelanggan ................................................................... 68
6.5 Listing Program Halaman Cart ......................................................... 69
6.6 Tampilan Pesan .................................................................................. 70
6.7 Halaman Konfirmasi Bayar ............................................................... 71
6.8 Tampilan Pesan Konfirmasi .............................................................. 71
6.9 Listing Program Halaman Konfirmasi Pembayaran ......................... 72
6.10 Halaman History Belanja ................................................................... 73
6.11 Listing Program Halaman History .................................................... 74
6.12 Halaman Utama Admin ..................................................................... 75
6.13 Listing Program Halaman Utama Admin ......................................... 76
6.14 Halaman Daftar Invoice ..................................................................... 76
6.15 Listing Program Halaman Invoice List .............................................. 77
6.16 Halaman Detail Invoice ..................................................................... 78
6.17 Listing Program Halaman Detail Invoice .......................................... 79
DAFTAR TABEL
Tabel Halaman
2.1 perbedaan Penelitian yang dilakukan oleh penelitian sebelumnya .... 10
3.1 Simbol DFD ........................................................................................ 28
3.2 Simbol ERD ........................................................................................ 29
4.1 pengguna sistem ................................................................................ 30
4.2 tabel users .......................................................................................... 38
4.3 tabel products ..................................................................................... 39
4.4 tabel orders ........................................................................................ 39
4.5 tabel invoices ..................................................................................... 40
4.6 tabel groups ........................................................................................ 40
4.7 tabel settings ...................................................................................... 41
4.8 tabel reports ....................................................................................... 41
4.9 tabel session ....................................................................................... 41
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi informasi pada saat ini, penggunaan
internet masih mendominasi seluruh kegiataan yang ada di dunia. Menurut
O‟brien (2003) “Internet merupakan jaringan komputer yang berkembang
pesatdari jutaan bisnis, pendidikan, dan jaringan pemerintahan yang saling
berhubungan dengan jumlah penggunanya lebih dari 200 negara”. Pada
saat ini perusahaan harus memiliki kemampuan untuk beradaptasi terhadap
perkembangan teknologi informasi agar dapat bertahan dan bersaing
dengan perusahaan lain.
Hadirnya e-commerce (electronic commerce) dalam lingkungan
bisnis menjadi sebuat trend bisnis yang baru. Pengelolaan dan penjualan
barang pada umumnya masih berjalan secara konvensional. Hampir
keseluruhan kegiatannya belum memanfaatkan teknologi-teknologi yang
ada seperti website, namun tidak sedikit pula yang memanfaatkan
teknologi seperti sosial media. Namun tidak semua barang langsung
dipasarkan di sosial media dan barang yang dijual pun masih minim
informasinya seperti stok barang yang dijual.
Aka Store merupakan organisasi bisnis yang menjual berbagai
macam produk. Organisasi yang berlokasi di Yogyakarta ini
memanfaatkan teknologi-teknologi yang ada seperti media sosial untuk
memasarkan barang yang dijual. Namun pemanfaatan teknologi yang
digunakan oleh pihak Aka Store masih kurang karena belum adanya
sistem pendataan barang yang ada. Selama ini Aka Store masih
menggunakan cara konvensional untuk melakukan pendataan barang,
sehingga pihak aka store kesulitan untuk mendata jumlah barang yang
akan di jual dan harus menghitung ulang stok barang yang masih ada,
terlebih lagi jumlah produk yang di jual cukup banyak.
Berdasarkan penjelasan sebelumnya, bahwa pendataan barang di
Aka Store masih dilakukan secara manual, untuk itu penting dilakukan
komputerisasi pengolahan data barang untuk mempermudah akses data
dan sebuah website penjualan barang untuk membantu penyampaian
informasi produk, harga serta stok barang secara detail kepada konsumen,
selain itu website penjualan juga dapat diakses dengan mudah dimana saja
dan kapan saja. Oleh karena itu penulis mengusulkan untuk membuat
sebuah “Sistem Informasi Penjualan Menggunakan CodeIgniter pada Aka
Store Berbasis Web Mobile” yang nantinya diharapkan dapat berguna
untuk perusahaan dan karyawan.
1.2 Perumusan Masalah
Berdasarkan permasalahan yang terjadi pada Aka Store, maka
dapat dirumuskan masalah yang akan dibahas sebagai berikut :
a. Bagaimana membuat aplikasi penjualan pada Aka Store berbasis Web?
1.3 Tujuan dan Manfaat Penelitian
1.3.1 Tujuan Penelitian
Menghasilkan rancangan sistem informasi berupa website
penjualan yang membantu penjualan, jumlah ketersediaan barang,
dan laporan penjualannya.
1.3.2 Manfaat Penelitian
a. Memudahkan pihak Aka Store untuk mengelola data barang.
b. Membantu pihak Aka Store untuk mempromosikan barang-
barang yang dijual.
c. Memudahkan pelanggan untuk memesan barang karena website
beroperasi 24 jam.
d. Membantu pelanggan untuk mendapatkan informasi biaya
pengiriman.
1.4 Metodologi Penelitian
1.4.1 Obyek Penelitian
Obyek yang digunakan dalam penelitian ini adalah barang-barang
yang dijual oleh pihak akaku seperti kain, pakaian, dan lain-lain.
1.4.2 Pengumpulan data
a. Wawancara (interview)
Melakukan tanya jawab kepada pihak-pihak yang terkait dalam
hal ini adalah pemelik Aka store.
b. Pengamatan Langsung
Melakukan penelitian secara langsung dan mengamati tentang
obyek yang akan diteliti.
c. Studi Pustaka
Pengumpulan data yang bersumber dari buku, internet, dan
jurnal yang terkait dengan materi penelitian.
1.5. Metode Pengembangan Sistem
Metode pengembangan yang digunakan pada penelitian ini adalah
metode waterfall. Metode air terjun atau yang sering disebut metode
waterfall sering dinamakan siklus hidup klasik (classic life cycle), dimana
hal ini menggambarkan pendekatan yang sistematis dan juga berurutan
pada pengembangan perangkat lunak, dimulai dengan spesifikasi
kebutuhan pengguna lalu berlanjut melalui tahapan-tahapan perencanaan
(planning), permodelan (modeling), konstruksi (construction), serta
penyerahan sistem ke para pelanggan/pengguna (deployment), yang
diakhiri dengan dukungan pada perangkat lunak lengkap yang dihasilkan
(Pressman, 2012). Tahapan metode waterfall dapat dilihat pada gambar di
bawah ini.
Gambar 1.1 Tahapan Model Waterfall
Berikut adalah tahapan-tahapan penelitian pada model
waterfall:
a. Requirement Analisis
Tahap ini pengembang sistem diperlukan komunikasi yang bertujuan
untuk memahami perangkat lunak yang diharapkan oleh pengguna dan
batasan perangkat lunak tersebut. Informasi ini biasanya dapat
diperoleh melalui wawancara, diskusi atau survei langsung. Informasi
dianalisis untuk mendapatkan data yang dibutuhkan oleh pengguna.
b. System Design
Spesifikasi kebutuhan dari tahap sebelumnya akan dipelajari dalam
fase ini dan desain sistem disiapkan. Desain Sistem membantu dalam
menentukan perangkat keras (hardware) dan sistem persyaratan dan
juga membantu dalam mendefinisikan arsitektur sistem secara
keseluruhan.
c. Implementation
Pada tahap ini, sistem pertama kali dikembangkan di program kecil
yang disebut unit, yang terintegrasi dalam tahap selanjutnya. Setiap
unit dikembangkan dan diuji untuk fungsionalitas yang disebut
sebagaiunit testing.
d. Integration & Testing
Seluruh unit yang dikembangkan dalam tahap implementasi
diintegrasikan ke dalam sistem setelah pengujian yang dilakukan
masing-masing unit. Setelah integrasi seluruh sistem diuji untuk
mengecek setiap kegagalan maupun kesalahan.
e. Operation & Maintenance
Tahap akhir dalam model waterfall. Perangkat lunak yang sudah jadi,
dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk
dalam memperbaiki kesalahan yang tidak ditemukan pada langkah
sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa
sistem sebagai kebutuhan baru.
1.6.1 Sistematika Penulisan
Sistematika penulisan pada tugas akhir ini dibagi menjadi beberapa
bab, yaitu :
BAB I PENDAHULUAN
Bab ini berisikan latar belakang, perumusan masalah, tujuan dan
manfaat penelitian, metodologi penelitian, dan sistematika
penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini berisi informasi hasil penelitian yang terkait dengan materi
pada penelitian ini yang telah dilakukan sebelumnya.
BAB III LANDASAN TEORI
Bab ini berisikan dasar teori yang melandasi penulisan laporan
pada tugas akhir ini.
BAB IV ANALISA DAN PERANCANGAN SISTEM
Bab ini berisikan analisis dan perancangan aplikasi penjualan pada
Aka Store.
BAB V IMPLEMENTASI SISTEM
Bab ini merupakan tahapan-tahapann pengembangan sistem dan
disertakan implementasi yang menggambarkan program.
BAB VI HASIL PENELITIAN DAN PEMBAHASAN
Bab ini berisi tentang hasil pembahasan penelitian aplikasi
penjualan pada Aka Store.
BAB VII PENUTUP
Bab ini berisikan tentang kesimpulan serta saran pada penelitian.
BAB II
TINJAUAN PUSTAKA
2.1. Pustaka Yang Terkait dengan Penelitian
Penelitian sebelumnya yang dilakukan oleh Candra Aprianto
dengan judul Sistem Informasi Penjualan Arloji Berbasis Web Pada
Cv.Sinar Terang Semarang. Metode yang digunakan dalam perancangan
dan pembuatan perangkat lunak ini adalah metode Waterfall, bahasa
pemrograman yang digunakan sebagai server-side scripting adalah PHP
5.2.2, HTML, dan Flash MX sebagai efek multimedia. Cascading Style
Sheet (CSS) sebagai representasi content, Macromedia Dreamweaver MX,
database MySQL sebagai penyimpanan data. Sistem yang dibangun dapat
menampilkan secara online tentang layanan dan produk CV.Sinar Terang
secara luas.
Penelitian sebelumnya yang dilakukan oleh Sandy Kosasi dengan
judul Perancangan Sistem Informasi Penjualan Berbasis Web Dalam
Memasarkan Mobil Bekas. Perancangan sistem pada penelitian ini
menggunakan pendekatan ICDM (Internet Commerce Development
Methodology). Pendekatan ICDM menggabungkan struktur manajemen,
prosedur keterlibatan pelanggan dan memberikan pedoman pada
pengembangan budaya organisasi yang kondusif. Website pada peneletian
ini memberikan ruang untuk orang-orang yang akan menjual mobil cukup
dengan upload foto dan spesifikasi mobil pada halaman website serta
menggunakan metode black box sebagai metode pengujian yang
memungkinkan pengembang perangkat lunak untuk membuat himpunan
kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu
program.Bahasa pemrograman yang digunakan adalah PHP 5, sublime text
sebagai text editor, XAMPP 1.7.3, serta MySQL sebagai database.
Penelitian sebelumnya yang dilakukan oleh Viktor Nicolas Nore
dengan judul Perancangan Sistem Informasi Penjualan dan Pemesanan
Produk Berbasis Web. Desain penelitian yang digunakan bersifat
deskriptif dengan pendekatan pada CV. Richness Development. Metode
pendekatan yang digunakan terstruktur dan metode pengembangan sistem
informasi penjualan pakaian berbasis web ini menggunakan metode
prototype, dengan alat bantu pengembangan sistem berupa flowmap,
diagram konteks, DFD, serta alat perancangan database yaitu berupa ERD.
Penelitian ini menggunakan PHP, Macromedia Dreamweaver, dan
MySQL sebagai database.
2.2. Perbedaan Penelitian Yang Dilakukan Dengan Penelitian Terdahulu
Berdasarkan beberapa contoh jurnal tersebut, masing-masing
mempunyai kesamaan dan perbedaan dengan penelitian yang dilakukan
oleh penulis.
Tabel 1: Perbedaan penelitian yang dilakukan oleh penelitian sebelumnya
Jurnal Judul Peneliti dan
Tahun
Bahasa
Pemrograman
dan alat bantu
Database Metode
pengembangan
sistem
Jurnal I Sistem Informasi
Penjualan Arloji Berbasis
Web Pada Cv.Sinar
Terang Semarang.
Candra
Aprianto
2011
PHP 5,
HTML,
Flash MX.
MySQL Waterfall
Jurnal
II
Perancangan Sistem
Informasi Penjualan
Berbasis Web dalam
Memasarkan Mobil
Bekas
Sandy Kosasi
2015
PHP 5, HTML,
Sublime text,
XAMPP 1.7.3
MySQL Waterfall
Jurnal
III
Sistem Informasi
Penjualan Dan
Pemesanan Produk
Berbasis Web.
Viktor
Nicolas Nore.
2013
PHP,
Macromedia
Dreamweaver
MySQL Prototype
Penulis Sistem Informasi
Penjualan Menggunakan
Codeigniter pada
Akastore Berbasis Web.
Catur Ananta
Putra.
2017
PHP 5,
Framework
CodeIgniter,
HTML,
Sublime Text,
XAMPP
MySQL Waterfall
BAB III
LANDASAN TEORI
3.1 Konsep Dasar Sistem
3.1.1 Definisi Sistem
Menurut Kusrini (2007) mengemukakan bahwa “Sistem adalah
sebuah tatanan yang terdiri atas sejumlah komponen fungsional (dengan
tugas/fungsi khusus) yang saling berhubungan dan secara bersama-sama
bertujuan untuk memenuhi suatu proses/pekerjaan tertentu”.
Menurut Winarno (2006) menyimpulkan bahwa definisi sistem
adalah sekelompok komponen yang saling bekerja sama untuk mencapai
tujuan tersebut. Sistem berfungsi menerima input (masukan), mengolah
input, dan menghasilkan output (keluaran). Input dan output berasal dari
luar sistem, atau dari lingkungan sistem tersebut berada. Oleh karenanya,
sistem akan berinteraksi dengan lingkungannya. Sistem yang mampu
berinteraksi dengan lingkungannya akan mampu bertahan lama. Sistem
yang tidak cepat berinteraksi dengan lingkungannya tidak akan bertahan
lama.
Berdasarkan definisi-definisi di atas, dapat disimpulkan bahwa
sistem terdiri dari unsur-unsur atau elemen-elemen yang merupakan
bagian yang saling terpadu dan saling berhubungan secara erat antara satu
dengan yang lainnya dengan sifat serta kerjasama antara unsur atau elemen
tersebut mempunyai bentuk yang tertentu dan saling mempengaruhi untuk
mencapai tujuan yang sama pula. Dapat pula dikatakan bahwa suatu sistem
dari dari struktur dan proses. Struktur merupakan unsur-unsur yang secara
terintegrasi membentuk sistem tersebut. Sedangkan proses merupakan
penjelasan prosedur atau tata urutan kerja dari suatu sistem untuk
mencapai tujuan tertentu. Agar suatu sistem dapat bekerja secara efektif
dan efesien maka setiap struktur dan proses tersebut harus saling berkaitan
antara satu dengan yang lainnya.
3.1.2 Karakteristik Sistem
Menurut Kusrini dan Koniyo (2007), sistem mempunyai
karakteristik atau sifat-sifat tertentu, diantaranya:
a. Komponen Sistem (Component): Suatu sistem terdiri dari sejumlah
komponen yang saling berinteraksi, yang saling bekerja sama
membentuk suatu komponen sistem atau bagian-bagian dari sistem.
b. Batas Sistem (Boundary): Merupakan daerah yang membatasi suatu
sistem dengan sistem yang lain atau dengan lingkungan kerjanya.
c. Subsistem: Bagian-bagian dari sistem yang beraktivitas dan
berinteraksi satu sama lain untuk mencapai tujuan dengan sasarannya
masing-masing.
d. Lingkungan Luar Sistem (Environment): Suatu sistem yang ada diluar
dari atas sistem yang dipengaruhi oleh operasi sistem.
e. Penghubung Sistem (Interface): Media penghubung antara suatu
subsistem dengan subsistem lain. Adanya penghubung ini
memungkinkan berbagai sumber daya mengalir dari suatu subsistem ke
subsistem lainnya.
f. Masukan Sistem (Input): Energi yang masuk ke dalam sistem, berupa
perawatan dan sinyal. Masukkan perawatan adalah energi yang
dimasukkan supaya sistem tersebut dapat berinteraksi.
g. Keluaran Sistem (Output): Hasil energi yang diolah dan
diklasifikasikan menjadi keluaran yang berguna dan sisa pembuangan.
h. Pengolahan Sistem (Proces) : Suatu sistem yang mempunyai suatu
bagian pengolah yang akan mengubah masukan menjadi keluaran.
i. Sasaran Sistem (Objective) : Tujuan yang ingin dicapai oleh sistem,
akan dikatakan berhasil apabila mengenai sasaran atau tujuan.
3.2 Konsep Dasar Informasi
3.2.1 Definisi Data
Menurut Turban (2010), data adalah deskripsi dasar dari benda,
peristiwa, aktivitas dan transaksi yang direkam, dikelompokkan, dan
disimpan tetapi belum terorganisir untuk menyampaikan arti tertentu.
Menurut Thompson dan Handelman dalam Bambang Hartono (2013), data
adalah hasil pengukuran dan pencatatan terhadap fakta tentang sesuatu,
keadaan, tindakan atau kejadian. Dari beberapa pengertian diatas
mengenai data dapat disimpulkan bahwa data merupakan bahan yang akan
diolah menjadi suatu bentuk yang lebih berguna dan bermanfaat.
3.2.2 Definisi Informasi
Menurut Sutarman (2012), “Informasi adalah sekumpulan fakta
(data) yang diorganisasikan dengan cara tertentu sehingga mereka
mempunyai arti bagi si penerima”. Menurut McLeod dalam Yakub (2012),
“Informasi adalah data yang diolah menjadi bentuk yang lebih berguna
bagi penerimanya”. Berdasarkan beberapa pendapat yang dikemukakan
diatas dapat ditarik kesimpulan bahwa “Informasi merupakan data yang
telah diolah, dibentuk, ataupun dimanipulasi sesuai dengan keperluan
tertentu bagi penggunanya”.
3.2.3 Kualitas Informasi
Menurut Jogiyanto (2005), Kualitas dari suatu informasi (quality of
information) tergantung dari tiga hal, yaitu :
a. Akurat, berarti informasi harus bebas dari kesalahan-kesalahan dan
harus jelas mencerminkan maksudnya.
b. Tepat pada waktunya, berarti informasi yang datang ke penerima tidak
boleh terlambat. Informasi yang sudah usang tidak ada nilainya lagi.
Karena informasi merupakan landasan dalam pengambilan keputusan.
c. Relevan, berarti informasi tersebut mempunyai manfaat untuk
pemakainya.
Menurut James A. Senn (1989), Informasi yang berkualitas
memiliki ciri – ciri sebagai berikut :
a. Akurat (accuracy) : bebas dari kesalahan, tidak bias / menyesatkan,
jelas mencerminkan maksudnya.
b. Bentuk (form) : kualitatif atau kuantitatif, numerical atau berupa
grafik, ringkas atau rinci.
c. Frekuensi (frequency) : seberapa sering informasi dibutuhkan,
dikumpulkan atau dihasilkan.
d. Kelebarannya (breadth) : ruang lingkup, meliputi berbagai bidang atau
hanya satu bidang saja.
e. Asal (origin) : informasi berasal dari dalam atau dari luar perusahaan /
organisasi.
f. Orientasi waktu (time horizon) : informasi dapat berorientasi pada
masa lalu, masa kini dan masa yang akan datang.
g. Tepat pada waktunya (timeliness) : informasi yang diperlukan untuk
pengambilan keputusan tidak boleh terlambat, keterlambatan dapat
mengakibatkan informasi tidak mempunyai nilai lagi.
h. Relevan (relevance) : mempunyai manfaat untuk digunakan
sebagaimana mestinya, sesuai peruntukkannya.
i. Lengkap (completeness) : mengandung semua data – data yang penting
yang dibutuhkan semua pengguna informasi.
j. Ekonomis (economies) : informasi yang dihasilkan melalui proses
yang ekonomis (dari segi biaya)
k. Sederhana (simple) : informasi sebaiknya tidak terlalu kompleks, tidak
bertele – tele sehingga memudahkan penentuan prioritas.
l. Dapat dibuktikan (approved): informasi harus dapat dibuktikan, dapat
di cek kebenarannya.
3.3 Definisi E-Commerce
Menurut Jony Wong (2003), E-Commerce adalah adalah
pembelian, penjualan dan pemasaran barang serta jasa melalui sistem
elektronik. Seperti televisi, radio dan jaringan komputer atau internet.
Menurut Munawar (2009), E-Commerce juga dapat diartikan
sebagai suatu proses berbisnis dengan menggunakan teknologi elektronik
yang menghubungkan antara perusahaan, konsumen dan masyarakat dalam
bentuk transaksi elektronik dan pertukaran/penjualan barang, servis, dan
informasi secara elektronik.
Menurut Suyanto (2003), definisi E-Commerce dapat ditinjau dari
beberapa perspektif, yaitu:
a. Berdasarkan perspektif komunikasi, e-commerce adalah pengiriman
barang, layanan, informasi, atau pembayaran melalui jaringan
komputer atau melalui peralatan elektronik lainnya.
b. Berdasarkan perspektif proses bisnis, e-commerce adalah aplikasi dari
teknologi yang menuju otomatisasi dari transaksi bisnis dan aliran
kerja.
c. Berdasarkan perspektif layanan, e-commerce merupakan suatu alat
yang memenuhi keinginan perusahaan, konsumen, dan manajemen
untuk memangkas biaya layanan (service cost) ketika meningkatkan
kualitas barang dan meningkatkan kecepatan layanan pengiriman.
d. Berdasarkan perspektif online, e-commerce menyediakan kemampuan
untuk membeli dan menjual barang ataupun informasi melalui internet
dan sarana online lainnya.
3.3.1 Komponen E-Commerce
E-Commerce memiliki beberapa komponen standar yang dimiliki
dan tidak dimiliki transaksi bisnis yang dilakukan secara offline, yaitu
(Hidayat, 2008:7):
a. Produk: Banyak jenis produk yang bisa dijual melalui internet seperti
komputer, buku, musik, pakaian, mainan, dan lain-lain.
b. Tempat menjual produk (a place to sell): tempat menjual adalah
internet yang berarti harus memiliki domain dan hosting.
c. Cara menerima pesanan: email, telpon, sms dan lain-lain.
d. Cara pembayaran: Cash, cek, bankdraft, kartu kredit, internet payment
(misalnya paypal).
e. Metode pengiriman: pengiriman bisa dilakukan melalui paket,
salesman, atau download jika produk yang dijual memungkinkan
untuk itu (misalnya software).
f. Customer service: email, formulir online, FAQ, telpon, chatting, dan
lain-lain.
3.4 Konsep Dasar Program
3.4.1 PHP
Pada awalnya PHP merupakan kependekan dari Personal Home
Page. Kemudian pada tahun 1998, sebuah peusahaan bernama Zend
merilis Interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai
PHP 3.0 dan singkatan PHP di ubah menjadi akronim berulang PHP:
Hypertexst Processing. Priyanto H, Jauhari K H (2017).
PHP adalah Bahasa server side scripting yang menyatu dengan
HTML untuk membuat halaman web yang dinamis. Karena PHP
merupakan server side scripting maka sintaks dan perintah-perintah PHP
akan diesksekusi diserver kemudian hasilnya akan dikirimkan ke browser
dengan format HTML. Arief,M.Rudianto (2011).
Beberapa kelebihan PHP menurut Aditya Alan Nur (2011).
a. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak
melakukan sebuah kompilasi dalam penggunaannya.
b. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari
mulai Apache, IIS,Lighttpd, hingga Xitami dengan konfigurasi yang
relatif mudah.
c. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis
dan developer yang siap membantu dalam pengembangan.
d. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling
mudah karena memiliki referensi yang banyak.
e. PHP adalah bahasa open source yang dapat digunakan diberbagai
mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara
runtime melalui console serta juga dapat menjalankan perintah-
perintah sistem.
f. PHP bersifat bebas dipakai (free).
3.5 Definisi MySQL
Menurut Priyanto H, Jauhari K H (2017). Database Managemen,
System (DBMS) adalah aplikasi yang dipakai untuk mengelola basis data.
Biasanya menawarkan beberapa kemampuan yang terintegrasi seperti:
a. Membuat, menghapus, menambah, dan memodifikasi basis data.
b. Pada beberapa DBMS pengelolanya berbasis windows ( berbentuk
jendela-jendela) sehingga lebih mudah digunakan.
c. Tidak semua orang bisa mengakses basis data yang ada sehingga
memberikan keamanan bagi data.
d. Kemampuan berkomunikasi dengan program aplikasi yang lain.
Misalnya dimungkinkan untuk mengkakses basis data MySQL
menggunakan aplikasi yang dibuat menggunakan PHP.
e. Kemampuan pengaksesan melalui komunikasi antar komputer (client
server).
MySQL adalah salah satu aplikasi DBMS yang sudah sangat
banyak digunakan oleh para pemrogram aplikasi web. Contoh DBMS
lainnya adalah: postgresSQL (freware), SQL server, MS Access dari
Microsoft, DB2 dari IBM, Oracle dan Oeacle Corp, Dbase, FoxPro, dsb.
3.5.1 Kelebihan MySQL
a. Source MySQL dapat diperoleh dengan mudah dan gratis.
b. Sintaksnya lebih mudah dipahami dan tidak rumit.
c. Pengaksesan database dapat dilakukan dengan mudah.
d. MySQL merupakan program yang multithreaded, sehingga dapat
dipasang pada server yang memiliki multiCPU.
e. Didukung program-program umum seperti C, C++, Java, Perl, PHP,
Python, dsb.
f. Bekerja pada berbagai platform. (tersedia berbagai versi untuk
berbagai sistem operasi).
g. Memiliki jenis kolom yang cukup banyak sehingga memudahkan
konfigurasi sistem database.
h. Memiliki sistem keamanan yang cukup baik dengan verifikasi host.
i. Mendukung ODBC untuk sistem operasi Windows.
j. Mendukung record yang memiliki kolom dengan panjang tetap atau
panjang bervariasi.
3.6 Definisi XAMPP
Menurut Wicaksono (2008). Menjelaskan bahwa “XAMPP adalah
sebuah software yang berfungsi untuk menjalankan website berbasis PHP
dan menggunakan pengolah data MYSQL di komputer lokal”. XAMPP
berperan sebagai server web pada komputer lokal. XAMPP juga dapat
disebut sebuah Cpanel server virtual, yang dapat membantu melakukan
preview sehingga dapat dimodifikasi website tanpa harus online atau
terakses dengan internet.
Menurut Puspitasari (2011), “XAMPP adalah sebuah software
webserver apache yang didalamnya sudah tersedia database server mysql
dan support php programming. xampp merupakan software yang mudah
digunakan, gratis, dan mendukung instalasi di linux dan windows.
Keuntungan lainya adalah cukup menginstal 1 kali sudah tersedia apache
web server, mysql database server, php support (php4 dan php5) dan
beberapa modul lainya hanya bedanya kalau versi windows selalu dalam
bentuk instalasi grafis dan yang linux dalam bentuk file terkompresi tar.gz.
kelebihan lain yang berbeda dari versi untuk windows adalah memeliki
fitur untuk mengaktifkan sebuah server secara grafis, sedangkan linux
masih berupa perintah-perintah didalam console. oleh karena itu versi
untuk linux sulit untuk dioperasikan”.
Berdasarkan pengertian diatas dapat disimpulkan Xampp
merupakan tool paket perangkat lunak yang menggambungkan Apache,
PHP, dan MySQL dalam satu paket aplikasi.
3.7 Definisi Framework
Menurut Oxford Dictionaries , Framework adalah “A basic
structure underlying a system, concept, or text” atau dalam bahasa
Indonesia “Struktur dasar yang mendasari sistem, konsep, atau teks”.
Menurut Pressman, R.S. (2005), Framework adalah kerangka kode yang
dapat disempurnakan dengan kelas yang spesifik atau dengan fungsi yang
telah dirancang untuk mengatasi masalah yang dihadapi. Dari dua
pengertian mengenai Framework tersebut, dapat disimpulkan bahwa
penggunaan framework bertujuan untuk mengurangi pembuatan ulang
kode yang sama / telah dibuat sehingga memudahkan programmer.
3.7.1 Definisi Framework CodeIgniter
Menurut Hidayatullah P dan Jauhari K.H (2017), Framework
CodeIgniter adalah sebuah framework PHP yang paling powerful saat ini
karena di dalamnya terdapat fitur lengkap aplikasi web dimana fitur-fitur
tersebut sudah dikemas menjadi satu. Menurut Hakim (2010:8)
CodeIgniter adalah sebuah framework PHP yang dapat membantu
mempercepat developer dalam pengembangan aplikasi web berbasis PHP
dibanding jika menulis semua kode program dari awal. CodeIgniter
pertama kali dibuat oleh Rick Ellis, CEO Ellislab, Inc.
(http://ellislab.com), sebuah perusahaan yang memproduksi CMS (Content
Management System) yang cukup handal, yaitu Expression Engine
(http://www.expressionengine.com). Saat ini, CodeIgniter dikembangkan
dan dimaintain oleh Expression Engine Development Team.
Adapun beberapa keuntungan menggunakan CodeIgniter, diantaranya:
a. Gratis
CodeIgniter berlisensi dibawah Apache/BSD open source.
b. Ditulis Menggunakan PHP 4
Meskipun CodeIgniter dapat berjalan di PHP 5, namun sampai saat ini
kode program CodeIgniter masih dibuat dengan menggunakan PHP 4.
c. Berukuran Kecil
Ukuran CodeIgniter yang kecil merupakan keunggulan tersendiri.
Dibanding dengan framework lain yang berukuran besar.
d. Menggunakan Konsep MVC
CodeIgniter menggunakan konsep MVC yang memungkinkan
pemisahan layer application logic dan presentation.
e. URL yang Sederhana
Secara default, URL yang dihasilkan CodeIgniter sangat bersih dan
Search Engine Friendly (SEF).
f. Memiliki Paket Library yang Lengkap
CodeIgniter mempunyai library yang lengkap untuk mengerjakan
operasi-operasi yang umum dibutuhkan oleh sebuah aplikasi berbasis
web, misalnya mengakses database, mengirim email, memvalidasi
form, menangani session dan sebagainya.
g. Extensible
Sistem dapat dikembangkan dengan mudah menggunakan plugin dan
helper, atau dengan menggunakan hooks.
h. Tidak Memerlukan Template Engine
Meskipun CodeIgniter dilengkapi dengan template parsrer sederhana
yang dapat digunakan, tetapi hal ini tidak mengharuskan kita untuk
menggunakannya.
i. Dokumentasi Lengkap dan Jelas
Dari sekian banyak framework, CodeIgniter adalah satu-satunya
framework dengan dokumentasi yang lengkap dan jelas.
j. Komunitas
Komunitas CodeIgniter saat ini berkembang pesat. Salah satu
komunitasnya bisa dilihat di (http://codeigniter.com/forum/).
Proses aliran data aplikasi pada sistem dapat diilustrasikan seperti
terlihat pada gambar 2.5.
Gambar 3.1 Flowchart CodeIgniter
Sumber : Hakim (2010 : 12) Membangun Web Berbasis PHP dengan Framework
CodeIgniter
3.7.2 Konsep MVC
Model View Controller atau MVC adalah suatu metode yang
memisahkan data logic (Model) dari presentation logic (View) dan
progress logic (Controller) atau secara sederhana adalah memisahkan
antara desain interface, data, dan proses. Hidayatullah P dan Jauhari K.H
(2017).
Dalam metode MVC terdapat tiga komponen, yaitu (Hidayatullah
P dan Jauhari K.H):
a. Model
Model mengelola basis data (RDBMS) seperti MySQL
ataupun Oracle RDMS. Model berhubungan dengan database
sehingga biasanya dalam Model akan berisi kelas ataupun fungsi
untuk membuat (create), melakukan pembaruan (update), menghapus
data (delete), mencari data (search), dan mengambil data (select) pada
database. Selain itu juga Model akan berhubungan dengan perintah-
perintah query sebagai tindak lanjut dari fungsi-fungsi (create, update,
delete, select).
b. View
View adalah bagian user interface atau bagian yang nantinya
merupakan tampilan untuk end user. View bisa berupa halaman html,
css, rss, javascript, jquery, ajax, dll. Karena metode yang dipakai
merupakan MVC sehingga dalam View tidak boleh terdapat
pemrosesan data ataupun pengaksesan yang berhubungan langsung
dengan database. Sehingga View hanya menampilkan data-data hasil
dari Model dan Controller.
c. Controller
Controller adalah penghubung antara View dan Model,
maksudnya adalah karena Model tidak dapat berhubungan langsung
dengan View ataupun sebaliknya jadi, Controller inilah yang
digunakan sebagai jembatan di keduanya. Sehingga tugas Controller
ialah sebagai pemrosesan data atau alur logic program, menyediakan
variabel yang akan ditampilkan di View, pemanggilan Model
sehingga Model dapat mengakses database, error handling, validasi
atau check terhadap suatu inputan. Metode MVC ditunjukkan pada
gambar 3.2.
Gambar 3.2 Metode MVC
Sumber: Priyanto H, Jauhari K H (2017). Pemrograman Web
Controller
Model View
3.7.3 Flow Diagram CodeIgniter
Gambar 3.3 Flow Diagram CodeIgniter
Sumber : Priyanto H, Jauhari K H (2017). Pemrograman Web
3.8 Alat Bantu Perancangan Sistem
3.8.1 Data Flow Diagram
Pengertian Data Flow Diagram (DFD) menurut Pahlevy (2010),
DFD adalah suatu diagram yang menggunakan notasi-notasi untuk
menggambarkan arus dari data sistem, yang penggunaannya sangat
membantu untuk memahami sistem secara logika, tersruktur dan jelas.
DFD merupakan alat bantu dalam menggambarkan atau
menjelaskan sistem yang sedang berjalan logis. Dalam sumber lain
dikatakan bahwa DFD ini merupakan salah satu alat pembuatan model
yang sering digunakan, khususnya bila fungsi- fungsi sistem merupakan
bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi
oleh sistem. Dengan kata lain, DFD adalah alat pembuatan model yang
memberikan penekanan hanya pada fungsi sistem. DFD ini merupakan alat
perancangan sistem yang berorientasi pada alur data dengan konsep
dekomposisi dapat digunakan untuk penggambaran analisa maupun
rancangan sistem yang mudah dikomunikasikan oleh profesional sistem
kepada pemakai maupun pembuat program (Pahlevy. 2010).
Tabel 3.1 Simbol DFD
Simbol Nama Penjelasan
Sumber dan Tujuan
Data
External Entity merupakan
kesatuan di luar lingkungan
sistem bisa berupa orang,
organisasi, dan sistem lain
Arus Data Arus Data yang masuk dan
keluar dalam sebuah sistem
Proses Transformasi Proses yang mengubah input
menjadi Output
Penyimpanan Data Penyimpanan data
digambarkan dengan dua garis
horisontal
3.8.2 Entity Relationship Diagram (ER-Diagram)
Menurut Sutanta (2011:91) dalam bukunya yang berjudul "Basis
Data Dalam Tinjauan Konseptual" menjelaskan bahwa "Entity
Relationship Diagram (ERD) merupakan suatu model data yang
dikembangkan berdasarkan objek."
Menurut Mata-Toledo dan Cushman (2007 : 139) Mendefenisikan
"Entity Relationship Diagram (ERD) merupakan representasi grafis dari
logika database dengan menyertakan deskripsi detail mengenai seluruh
entitas (entity), hubungan (relationship), dan batasan (constraint)."
Sedangkan Menurut Brady dan Loonam (2010), Entity
Relationship diagram (ERD) "merupakan teknik yang digunakan untuk
memodelkan kebutuhan data dari suatu organisasi, biasanya oleh Sistem
Analis dalam tahap analisis persyaratan proyek pengembangan sistem."
Dari beberapa pengertian diatas, dapat disimpulkan bahwa ERD
merupakan gambaran grafis dari suatu model data yang menyertakan
deskripsi detail dari seluruh entitas (entity), hubungan (relationship), dan
batasan (constraint) untuk memenuhi kebutuhan sistem analis dalam
menyelesaikan pengembangan sebuah sistem.
Tabel 3.2 Simbol Entity Relationship Diagram
Simbol Nama Penjelasan
Entitas
Obyek yang dapat diidentifikasi
dalam lingkungan pemakai
Relasi
Untuk menunjukan adanya
hubungan di antara entitas yang
berbeda
Atribut
Berfungsi mendeskripsikan
karakter entitas (atribut yang
berfungsi sebagai key diberi
garis bawah)
Garis
Sebagai penghubung antara
relasi dengan entitas, relasi dan
entitas dengan atribut
BAB IV
ANALISA DAN PERANCANGAN SISTEM
4.1. Identifikasi Pengguna Sistem
Tahap ini merupakan identifikasi pemakai atau pengguna yang
terlibat pada sistem informasi penjualan pada Aka Store. Tabel pengguna
sistem informasi penjualan pada Aka Store ditunjukan seperti tabel 4.1.
Tabel 4.1 pengguna sistem
Istilah Deskripsi
Admin Individu yang memiliki hak akses tertinggi dan akan
bertanggung jawab penuh terhadap pengaturan dan
pemantauan sistem.
Pelanggan Individu yang memanfaatkan sistem yang telah
dibangun
Pengunjung Individu yang memanfaatkan sistem yang telah
dibangun namun belum bisa memanfaatkan fitur-fitur
web dengan maksimal
4.2. Deskripsi Sistem
Sistem informasi penjualan pada Aka Store memiliki beberapa fitur
yang dibagi berdasarkan hak akses pengguna sistem, yaitu :
a. Admin
1) Mampu melakukan login dan logout.
2) Mampu mengaktifkan dan menonaktifkan pelanggan.
3) Mampu membuat, mengubah, dan menghapus produk.
4) Mampu memproses pemesanan produk
5) Mampu melihat laporan daftar order.
b. Pelanggan
1) Mampu melakukan login dan logout.
2) Mampu melihat, menambah, dan mengurangi produk pada
keranjang belanja / cart.
3) Mampu melakukan konfirmasi pembayaran.
4) Mampu melihat history pemesanan/pembelian.
c. Pengunjung
1) Mampu melihat produk yang dijual pada sistem.
2) Mampu melakukan registrasi member.
4.3. Analisis dan Kebutuhan Non Fungsional
Merupakan analisa dan kebutuhan yang terdiri dari analisis dan
kebutuhan perangkat lunak (software), analisis dan kebutuhan perangkat
keras (hardware), serta analisis dan kebutuhan user.
4.3.1. Analisis dan Kebutuhan Perangkat Lunak
Pengembangan sistem informasi penjualan pada Aka Store
menggunakan perangkat lunak berupa sebuah unit komputer dengan
spesifikasi minimal sebagai berikut :
a. Sistem Operasi Windows 10.0
b. Sublime Text 3
c. PHP
d. Web Server
e. Database Server MySQL
f. Framework Codeigniter
4.3.2 Analisis dan Kebutuhan Perangkat Keras
Pengembangan sistem informasi penjualan pada Aka Store
menggunakan perangkat keras berupa sebuah unit komputer dengan
spesifikasi minimal sebagai berikut :
a. Intel(R) Celeron(R) 1.6 GHz
b. Memory 2048MB Ram
c. Hard Disk 320 GB
4.3.3 Analisis dan Kebutuhan User
a. Memiliki perangkat yang dapat terhubung dengan internet seperti
handphone, komputer.
b. Mampu mengoperasikan browser internet.
4.4 Perancangan Sistem
Rancang bangun sistem informasi penjualan menggunakan
codeigniter pada Aka Store berbasis web mobile menggunakan pemodelan
DFD (Data Flow Diagram), dan ERD (Entity Relationship Diagram).
4.4.1 Analisis Flow Map
Flow map dibuat untuk menggambarkan sistem yang sedang
berjalan dan yang akan diusulkan. Didalam sebuah flow map terdapat
entitas dalam maupun luar. Flow map digunakan sebagai alat bantu
komunkasi dan untuk dokumentasi, khususnya membantu pada pembuatan
program yang sesuai dengan keutuhan dan keinginan pemakai. Flow map
yang sedang berjalan untuk sistem informasi penjualan pada Akaku Store
tidak akan mengubah prosedur yang telah ada.
4.4.2 Diagram Konteks
Diagram konteks digunakan untuk menggambarkan sistem
penjualan barang secara garis besar dan keseluruhan. Diagram konteks
dirancang untuk memperhatikan masukan yang dibutuhkan oleh sistem
dan keluaran yang dihasilkan oleh sistem
4.4.3 Data Flow Diagram
Diagram aliran data pada sistem penjualan barang merupakan salah
satu gambaran mengenai semua kegiatan dan aktifitas penjualan barang
untuk memberikan gambaran yang lebih jelas dan mudah untuk dipahami
di dalam kegiatan proses pengolahan data.
DFD (Data Flow Diagram) adalah diagram yang menggunakan
notasi simbol untuk menggambarkan arus data sistem (Jogiyanto Hartono,
2005, 701). DFD sering digunakan untuk menggambarkan suatu sistem
yang telah ada atau sistem baru yang akan dikembangkan secara logika
tanpa mempertimbangakan lingkungan fisik dimana data tersebut akan
disimpan. Analisis dari Data Flow Diagram pada penelitian ini adalah
sebagai berikut :
a. Diagram Konteks
Admin mampu melakukan input data produk, setelah berhasil
input maka data-data tersebut berhasil masuk ke sistem yang nantinya
dapat dilihat oleh pelanggan dan pengunjung. Jika pengunjung ingin
melakukan transaksi/order produk maka pengunjung harus melakukan
pendaftaran ke sistem. Setelah proses pendaftaran, pengunjung telah
dianggap sebagai pelanggan dan dapat melakukan proses order produk.
Diagram konteks rancang bangun sistem informasi penjualan pada Aka
Store ditunjukkan seperti gambar 4.1.
Gambar 4.1 Diagram Konteks
b. DFD Level 0
Admin mampu melakukan input, edit, delete data produk pada
bagian olah data. Pada proses tampil data akan ditampilkan data
produk yang dapat diakses oleh pengunjung dan pelanggan. Apabila
pengunjung ingin melakukan transaksi pembelian, pengunjung harus
melalui proses daftar pelanggan. Proses daftar pelanggan memerlukan
username, password, alamat, no telepon, dan email yang harus diisi.
Setelah proses pendaftaran, pelanggan dapat melakukan transaksi
dengan menambahkan produk yang diinginkan ke keranjang belanja /
cart yang nantinya akan ditampilkan kepada admin untuk melakukan
proses pengiriman produk setelah pelanggan mengkonfirmasi
pembayaran. DFD level 0 rancang bangun sistem informasi penjualan
pada Aka Store ditunjukkan seperti gambar 4.2.
Gambar 4.2 DFD level 0
c. DFD Level 1 Olah Data
Admin melakukan input data produk. Admin dapat mengubah
data produk dan admin juga memiliki hak untuk menghapus data
produk. DFD level 1 olah data sistem informasi penjualan pada Aka
Store dapat ditunjukkan seperti gambar 4.3.
Gambar 4.3 DFD level 1 olah data
d. DFD Level 1 Proses Order Produk
Pada proses order produk pelanggan memilih produk yang akan
dibeli, kemudian menambahkan produk tersebut ke keranjang belanja.
Pelanggan dapat menambah atau mengurangi quantity dan menghapus
produk dalam keranjang belanja, lalu akan tampil jumlah total yang
harus dibayarkan oleh pelanggan. Pelanggan dapat melakukan
checkout atau konfirmasi pembayaran, proses checkout akan mengirim
data order produk ke data store yang nantinya akan ditampilkan ke
admin. DFD level 1 proses order produk ditunjukkan seperti gambar
4.4.
Gambar 4.4 dfd level 1 proses order produk
4.4.4 Entitiy Relation Diagram
Gambar 4.5 Entity Relation Diagram
4.5 Rancangan Tabel Database
a. Tabel Users (Admin dan Pelanggan)
Tabel users merupakan tabel yang digunakan untuk
menyimpan data pengguna sistem. Struktur tabel users ditunjukkan
pada tabel 4.2.
Tabel 4.2 tabel users
# Nama Tipe Length / Value
1 Usr_id Int 10
2 Usr_name Varchar 25
3 Usr_password Varchar 60
4 Alamat Varchar 100
5 No_telp Varchar 15
6 Email Varchar 50
7 Usr_group Tinyint 1
8 Stuts Tinyint 1
b. Tabel products
Tabel products merupakan tabel yang digunakan untuk
menyimpan data-data produk yang dijual pada Aka Store. Struktur
tabel products ditunjukkan pada tabel 4.3.
Tabel 4.3 tabel products
# Name Type Length / Value
1 Pro_id Int 16
2 Pro_name Varchar 50
3 Pro_title Varchar 20
4 Pro_description Text
5 Pro_price Int 9
6 Pro_stock Int 3
7 Pro_image text
c. Tabel orders
Tabel orders merupakan tabel yang digunakan untuk
menyimpan data order pelanggan pada sistem informasi penjualan
Aka Store. Struktur tabel orders dapat ditunjukkan pada tabel 4.4
Tabel 4.4 tabel orders
# Name Type Length / value
1 Id Int 16
2 Invoice_id Int 16
3 pro_id Int 16
4 pro_name Varchar 60
5 pro_title Varchar 60
6 Usr_id Int 11
7 Usr_name Varchar 20
8 No_telp Varchar 20
9 Qty Int 3
10 Pro_price Int 9
11 Bukti_trnsfr Varchar 200
12 Alamat_kirim Varchar 200
13 Keterangan Varchar 200
14 options Text
d. Tabel Invoices
Tabel invoices merupakan tabel yang digunakan untuk
menyimpan data invoice pada sistem informasi penjualan Aka Store.
Strukur tabel invoices ditunjukkan pada tabel 4.5.
Tabel 4.5 tabel invoices
# Name Type Length / Value
1 Id Int 16
2 Data Datetime
3 Due_date Datetime
4 Usr_id Int 10
5 status Enum(
„paid‟,
„unpaid‟,
„confirmed‟,
„expired‟)
e. Tabel groups
Tabel groups merupakan tabel yang digunakan untuk
memisahkan level pengguna yaitu admin dan pelanggan pada sistem
informasi penjualan Aka Store. Struktur tabel groups ditunjukkan
pada tabel 4.6
Tabel 4.6 tabel groups
# Name Type Length / value
1 Gro_id Tinyint 1
2 Gro_name Varchar 60
f. Tabel settings
Tabel settings merupakan tabel yang digunakan untuk
menyimpan pengaturan-pengaturan pada sistem informasi penjualan
Aka Store. Struktur tabel settings ditunjukkan pada tabel 4.7
Tabel 4.7 tabel settings
# Name Type Length / value
1 All_id Int 3
2 All_name_settings Varchar 60
3 All_value_settings Varchar 60
g. Tabel reports
Tabel reports merupakan tabel yang digunakan untuk
menyimpan data report produk yang dilakukan oleh pengguna pada
sistem informasi penjualan Aka Store. Struktur tabel reports
ditunjukkan pada tabel 4.8.
Tabel 4.8 tabel reports
# Name Type Length / value
1 Rep_id Int 9
2 Rep_name Varchar 60
3 Rep_id_product Int 9
4 Rep_title_product Varchar 60
5 Rep_usr_name Varchar 60
6 Rep_usr_group Varchar 60
h. Tabel session
Tabel session merupakan tabel yang digunakan untuk
menyimpan data pengguna sistem berupa id dan ip address pengguna.
Struktur tabel session ditunjukkan pada tabel 4.9.
Tabel 4.9 tabel session
# Name Type Length / value
1 Id Varchar 60
2 Ip_address Varchar 40
3 Timestamp Int 10
4 Data Blob
4.6 Design Interface
A. Halaman Login
Gambar 4.6 halaman login
Halaman login admin dan pelanggan berada dalam satu form
yang sama, namun pengguna dalam sistem informasi penjualan Aka
Store dibedakan oleh level pengguna yang terdapat pada tabel groups.
Pada halaman login terdapat tombol login yang berfungsi untuk
mengirim, tombol cancel untuk membatalkan, serta tombol register
untuk menuju ke halaman daftar pelanggan.
B. Halaman Daftar Pelanggan
Gambar 4.7 halaman daftar pelanggan
Halaman daftar pelanggan menampilkan form pendaftaran
yang berisi username, password, alamat, nomor telepon, email, serta
tombol register yang berfungsi untuk mengirim form pendaftaran,
tombol cancel untuk membatalkan pendaftaran, dan tombol login
untuk menuju halaman login. Halaman ini juga memuat navigation
dan footer.
C. Halaman Home Pelanggan
Gambar 4.8 halaman home pelanggan
Halaman home pelanggan merupakan halaman utama yang
menampilkan menu home, konfirmasi pembayaran, history, logout,
cart, slide, daftar produk, dan footer. Menu cart merupakan menu
yang berfungsi sebagai keranjang belanja pelanggan, menu history
merupakan menu yang berfungsi sebagai penampung data pembelian
yang pernah dilakukan oleh pelanggan, menu konfirmasi pembayaran
merupakan menu untuk melakukan konfirmasi pembayaran, dan menu
logout merupakan menu untuk logout.
D. Halaman Cart Pelanggan
Gambar 4.9 halaman cart pelanggan
Halaman cart merupakan halaman yang berfungsi sebagai
penampung data produk yang ditambahkan ke cart oleh pelanggan.
Halaman cart menampilkan detail belanja yang berisi kategori produk,
nama produk, quantity, harga, dan subtotal. Halaman cart pelanggan
juga terdapat beberapa tombol seperti clear cart, continue shoping,
checkout. Tombol clear cart berfungsi untuk menghapus data pada
produk pada cart, tombol continue shoping berfungsi untuk menuju
halaman home, dan tombol checkout untuk mengirim data tersebut ke
tabel invoices dan orders.
E. Halaman History Belanja Pelanggan
Gambar 4.10 halaman history belanja pelanggan
Halaman history merupakan halaman yang menampilkan
riwayat belanja pelanggan. Halaman history menampilkan nomer
invoice, invoice date, due date, total bayar, status (unpaid /confirmed).
Terdapat dua status yang ada pada halaman history yaitu belum
terbayarkan (unpaid) dan terkonfirmasi (confirmed).
F. Halaman Konfirmasi Pembayaran Pelanggan
Gambar 4.11 halaman konfirmasi pembayaran pelanggan
Halaman konfirmasi pembayaran merupakan halaman yang
berfungsi untuk pelanggan mengkonfirmasi pembayaran. Halaman
konfirmasi pembayaran menampilkan logo bank, nomor rekening Aka
Store, form konfirmasi berupa id invoice, jumlah bayar, alamat kirim,
bukti transfer, serta tombol konfirmasi dan tombol cancel. Tombol
konfirmasi berfungsi untuk mengirim form tersebut ke database,
sedangkan tombol cancel berfungsi untuk membatalkan.
G. Halaman Home Admin
Gambar 4.12 halaman home admin
Halaman home admin merupakan halaman utama yang
menampilkan menu order, report, member, data produk, setting,
tombol tambah produk, tombol logout, tombol edit dan hapus.
H. Halaman Tambah Produk
Gambar 4.13 halaman tambah produk
Halaman tambah produk berfungsi untuk menambahkan
produk ke sistem. Halaman tambah produk menampilkan form tambah
produk berupa kategori, nama produk, deskripsi, harga, stok, dan
gambar. Halaman tambah produk juga terdapat tombol create, dan
tombol cancel. Tombol create berfungsi untuk mengirim form
tersebut ke tabel products pada database, dan tombol cancel berfungsi
untuk membatalkan.
I. Halaman Edit Produk
Gambar 4.14 halaman edit produk admin
Halaman edit produk merupakan halaman yang berfungsi
untuk mengubah data produk yang sudah ada pada sistem. Halaman
edit produk menampilkan form edit produk berupa kategori, nama
produk, deskripsi, harga, stok, dan gambar. Halaman tambah produk
juga terdapat tombol update, dan tombol cancel. Tombol update
berfungsi untuk mengirim form tersebut dan mengupdate data pada
tabel products, dan tombol cancel untuk membatalkan.
J. Halaman Order List
Gambar 4.15 halaman order list admin
Halaman order list admin merupakan halaman yang berfungsi
untuk menampilkan data order. Halaman order list menampilkan data
order yang diambil dari tabel invoices berupa id invoice, date, due
date, status (unpaid / confirmed), dan tombol detail. Tombol detail
merupakan tombol untuk menuju ke halaman detail order.
K. Halaman Detail Order
Gambar 4.16 halaman detail order
Halaman detail order merupakan halaman yang berfungsi
untuk melihat detai order pelanggan. Halaman detail order
menampilkan detail order berupa nama produk, nama pemesan, nomor
telepon, bukti transfer, alamat kirim, qty, harga, dan sub total yang
diambil dari tabel orders.
L. Halaman Daftar Member
gambar 4.17 halaman daftar member
Halaman daftar member merupakan halaman yang berfungsi
untuk melihat daftar pelanggan. Halaman daftar member
menampilkan seluruh data member berupa id, username, alamat,
nomor telepon, email, status, tombol disable dan tombol active yang
diambil dari tabel users. Tombol disable berfungsi untuk
menonaktifkan member, dan tombol active berfungsi untuk
mengaktifkan member.
BAB V
IMPLEMENTASI SISTEM
5.1 Implementasi Program
Rancang bangun sistem informasi penjualan menggunakan
codeigniter pada Aka Store berbasis web mobile merupakan sistem penjualan
yang digunakan untuk mempermudah Aka Store dalam mengolah data produk
yang dijual, dan memudahkan pelanggan mencari produk yang diinginkan.
5.2 Implementasi Rancangan Komponen Diagram
A. Relasi Model Dengan Basis Data MySQL
Model berhubungan dengan database sehingga biasanya dalam
Model akan berisi kelas ataupun fungsi untuk membuat (create),
melakukan pembaruan (update), menghapus data (delete), mencari data
(search), dan mengambil data (select) pada database. Sebagai komponen
pengolah data, model harus memiliki relasi dengan basis data MySQL.
Salah satu penerapan relasi ini terjadi pada file “model_products.php”
yang ditunjukkan pada gambar 5.1, pada gambar tersebut file
model_prodcuts.php memiliki fungsi yaitu all_products. Fungsi
all_products berfungsi untuk mengambil seluruh data pada tabel products.
Gambar 5.1 Model products
A. Relasi Controller Dengan View dan Model
Controller adalah penghubung antara View dan Model, tugas
Controller ialah sebagai pemrosesan data atau alur logic program,
menyediakan variabel yang akan ditampilkan di View, pemanggilan
Model sehingga Model dapat mengakses database, error handling, validasi
atau check terhadap suatu inputan. Salah satu penerapan relasi ini terjadi
pada file Controller ”Home.php” yang ditunjukkan pada gambar 5.2, file
Home.php memiliki fungsi index yang berfungsi untuk memanggil data
Model dan memuat file View.
Gambar 5.2 Controller Home
B. Relasi View Dengan Controller
View adalah bagian user interface atau bagian yang nantinya
merupakan tampilan untuk end user. View bisa berupa halaman html, css,
rss, javascript, jquery, ajax, dll. Karena metode yang dipakai merupakan
MVC sehingga dalam View tidak boleh terdapat pemrosesan data ataupun
pengaksesan yang berhubungan langsung dengan database. Berikut adalah
contoh relasi View dengan Controller pada file View “Home.php” yang
ditunjukkan pada gambar 5.3. Sintaks base_url(„product/detail‟) digunakan
sebagai tautan menuju file Controller product.php dan fungsi detail.
Gambar 5.3 View Home
5.3 Tampilan Utama
5.3.1 Halaman Home
Halaman home aplikasi penjualan aka store merupakan halaman
awal pada sistem penjualan Aka Store. Halaman awal ditunjukkan pada
gambar 5.4.
Gambar 5.4 halaman utama
Halaman home ini menampilkan navigation berupa home, about,
login/signup, my cart, dan seluruh produk yang dijual. Halaman utama
telah diatur pada config sebagai default controllernya.
5.3.2 Halaman Login
Halaman login menampilkan navigation, form, dan footer.
Halaman login ditunjukkan pada gambar 5.5.
Gambar 5.5 halaman login
Halaman login admin dan user berada dalam satu form yang sama,
namun pengguna dalam sistem informasi penjualan Aka Store dibedakan
oleh level pengguna yang terdapat pada tabel groups. Pada halaman login
terdapat tombol login yang berfungsi untuk mengirim form, tombol cancel
untuk membatalkan, serta tombol register untuk menuju ke halaman daftar
pelanggan.
5.3.3 Halaman Utama Admin
Halaman utama admin menampilkan navigation, data produk, dan
footer. Halaman utama admin ditunjukkan pada gambar 5.6.
Gambar 5.6 halaman utama admin
Halaman utama admin merupakan halaman yang memuat menu
invoice list, product report, dashboard, members,dan settings. Menu
invoice list berfungsi untuk menampilkan data tagihan yang ada, menu
product report berfungsi untuk menampilkan data produk yang tidak
disukai pelanggan, menu dashboard berfungsi untuk menuju halaman
utaman admin, dan menu members untuk melihat data pelanggan yang
terdaftar. Admin mampu menambahkan, menghapus, dan mengubah data
produk dan juga dapat mengubah status keaktifan pelanggan.
5.3.4 Halaman Tambah Produk
Halaman tambah produk menampilkan navigation, form, dan
footer. Halaman tambah produk ditunjukkan pada gambar 5.7.
Gambar 5.7 halaman tambah produk
Halaman tambah produk merupakan halaman yang berfungsi untuk
menambahkan produk yang dijual. Halaman tambah produk menampilkan
form create produk berupa kategori, nama produk, deskripsi, harga, stok,
dan gambar produk. Tombol create berfungsi untuk mengirim form
tersebut ke database dan akan disimpan pada tabel products.
5.3.5 Halaman Invoice List
Halaman invoice list menampilkan navigation, data invoice, dan
footer. Halaman invoice list ditunjukkan pada gambar 5.8.
Gambar 5.8 halaman invoice list
Halaman invoice merupakan halaman yang menampilkan data
invoice yang diambil dari tabel invoices pada database berupa id, date, due
date, status, dan actions. Terdapat dua status pada invoice list, yaitu
unpaid yang artinya belum dibayarkan dan confirmed yang artinya sudah
dikonfirmasi oleh pelanggan. Pada halaman invoice juga terdapat tombol
detail untuk melihat detail invoice pelanggan.
5.3.6 Detail Invoice
Halaman detail invoice menampilkan navigation, data order, dan
footer. Halaman invoice ditunjukkan pada gambar 5.9.
Gambar 5.9 detail invoice
Halaman detail invoice menampilkan data order yang diambil dari
tabel orders berupa nama produk, nama pemesan, alamat pengiriman, no
telp, bukti transfer berupa gambar, quantity, harga, dan subtotal. Ketika
bukti transfer diklik oleh admin, maka akan muncul tampilan gambar.
5.3.7 Halaman Daftar Member
Halaman daftar member menampilkan navigation, data member,
dan footer. Halaman daftar member ditunjukkan pada gambar 5.10.
Gambar 5.10 halaman daftar member
Halaman daftar member merupakan halaman yang berfungsi untuk
menampilkan data member yang diambil dari tabel users pada database
berupa id, username, alamat, no telp, email, level, dan status. Level pada
data member didapatkan dari tabel groups. Pada halaman ini admin
mampu menonaktifkan maupun mengaktifkan pelanggan dengan cara
mengklik disabled atau active. Tombol disabled untuk menonaktifkan
member, dan tombol active untuk mengaktifkan member.
5.3.8 Halaman Pengaturan
Halaman pengaturan menampilkan navigation, form setting, dan
footer. Halaman pengaturan ditunjukkan pada gambar 5.11.
Gambar 5.11 halaman pengaturan
Halaman pengaturan merupakan halaman yang berfungsi untuk
mengganti Site Name, Site Footer, dan password admin. Tombol change
akan mengirim form tersebut ke tabel all_settings pada database.
5.3.9 Halaman Home Pelanggan
Halaman home pelanggan menampilkan navigation, data produk,
dan footer. Halaman home pelanggan ditunjukkan pada gambar 5.12.
Gambar 5.12 halaman home pelanggan
Halaman home pelanggan merupakan halaman utama untuk
pelanggan. Halaman pelanggan menampilkan menu home, about, cara
pembelian, konfirmasi pembayaran, history, logout, my cart pada bagian
navigation. Halaman home pelanggan juga menampilkan data produk yang
dijual serta footer pada bagian terbawah. Menu home berfungsi untuk
menuju halaman utama, menu about berisi profil Aka Store seperti alamat
dan nomor komplain, menu cara pembelian berisi tata cara untuk
melakukan pembelian produk, menu konfirmasi pembayaran untuk
melakukan konfirmasi pembayaran pelanggan, menu history yang
berfungsi untuk menampilkan riwayat pembelian, menu logout untuk
keluar dari sistem, dan menu my cart yang berfungsi untuk menampung
data produk yang ditambahkan oleh pelanggan.
5.3.10 Halaman Detail Produk
Halaman detail produk menampilkan navigation , data produk, dan
footer. Halaman detail produk ditunjukkan pada gambar 5.13.
Gambar 5.13 halaman detail produk
Halaman detail produk berfungsi untuk menampilkan detail produk
berupa gambar produk, kategori, nama produk, harga, deskripsi, dan
jumlah stok barang. Halaman detail produk juga terdapat tombol add to
cart yang berfungsi untuk menambahkan produk ke cart.
5.3.11 Halaman Keranjang Belanja
Halaman keranjang belanja menampilkan navigation, data produk,
dan footer. Halaman keranjang belanja ditunjukkan pada gambar 5.14.
Gambar 5.14 halaman keranjang belanja
Halaman keranjang belanja merupakan halaman yang berfungsi
untuk menampilkan data produk yang ditambahkan oleh pelanggan ke
keranjang belanja. Halaman keranjang menampilkan detail belanja yang
berisi kategori produk, nama produk, quantity, harga, dan subtotal.
Halaman keranjang belanja juga terdapat beberapa tombol seperti clear
cart, continue shoping, checkout. Tombol clear cart berfungsi untuk
menghapus data yang ada pada keranjang, tombol continue shoping
berfungsi untuk menuju halaman utama, dan tombol checkout untuk
mengirim data tersebut ke tabel invoice dan orders.
5.3.12 Halaman Konfirmasi Pembayaran
Halaman konfirmasi pembayaran menampilkan navigation, form,
dan footer. Halaman konfirmasi pembayaran ditunjukkan pada gambar
5.15.
Gambar 5.15 halaman konfirmasi pembayaran
Halaman konfirmasi pembayaran merupakan halaman yang
berfungsi untuk pelanggan melakukan konfirmasi pembayaran. Halaman
ini menampilkan logo bank, nomor rekening Aka Store, dan form
konfirmasi berupa id invoice, jumlah bayar, alamat kirim, bukti transfer,
dan keterangan tambahan, serta tombol konfirmasi dan tombol cancel.
Tombol konfirmasi berfungsi untuk mengirim form tersebut ke tabel
orders untuk di update, dan tombol cancel untuk membatalkan.
5.3.13 Halaman History
Halaman history menampilkan navigation, data invoice, dan footer.
Halaman history ditunjukkan pada gambar 5.16.
Gambar 5.16 halaman history
Halaman history merupakan halaman yang berfungsi untuk
menampilkan riwayat belanja pelanggan. Halaman history menampilkan
nomer invoice, invoice date, due date, total bayar, status (unpaid /
confirmed). Unpaid berarti pelanggan belum mengkonfirmasi pembayaran,
sedangkan confirmed berarti pelanggan sudah melakukan konfirmasi
pembayaran.
5.3.14 Halaman About
Halaman about menampilkan navigation, profil Aka Store, dan
footer. Halaman about ditunjukkan pada gambar 5.17.
Gambar 5.17 halaman about
Halaman about merupakan halaman yang berfungsi untuk
menampilkan profil Aka Store berupa, alamat lengkap Aka Store, email,
dan no telepon.
5.3.15 Halaman Tutorial Pembelian
Halaman tutorial menampilkan navigation, tata cara pembelian,
dan footer. Halaman tutorial pembelian ditunjukkan pada gambar 5.18.
Gambar 5.18 halaman tutorial pembelian
Halaman tutorial pembelian merupakan halaman yang berfungsi
untuk membantu pelanggan yang kesulitan dalam melakukan pembelian
produk. Halaman tutorial menampilkan tata cara pembelian yang benar
BAB VI
HASIL PENELITIAN DAN PEMBAHASAN
6.1 Hasil Penelitian
Pengujian sistem dilakukan untuk mengetahui fungsi sistem dapat
berfungsi dengan baik dimana sistem dapat dijalankan sesuai dengan
proses perancangan. Berikut ini merupakan hasil pengujian yang telah
dilakukan.
6.1.1 Mengetahui Bagaimana Pelanggan Melakukan Pembelian Pada
Sistem
A. Login Pelanggan
Pelanggan dapat melakukan pembelian produk pada sistem
informasi penjualan Aka Store, yang harus dilakukan adalah masuk ke
sistem atau login sebagai pelanggan. Halaman login ditunjukkan pada
gambar 6.1.
Gambar 6.1 halaman login
Halaman login admin dan pelanggan berada dalam form yang
sama, namun pengguna sistem informasi penjualan pada Aka Store
memiliki hak akses yang berbeda berdasarkan gro_id pada tabel
groupsApabila pelanggan memasukkan username dan password
pelanggan, maka sistem akan melakukan pengecekan username dan
password yang disimpan di tabel users. Apabila username dan password
pelanggan cocok, maka akan di redirect ke halaman utama pelanggan
yaitu http://localhost/akastore/. Listing program yang menampilkan form
login pada sistem penjualan Aka Store ditunjukkan pada gambar 6.2.
<div class="panel-body" width="100px">
<div class="col-md-12">
<?= validation_errors() ?>
<hr>
<div class="col-md-3">
<?= $this->session->flashdata('error') ?></div>
<div class="col-md-6">
<?= form_open('login') ?>
<div class="form-group">
<label for="username">User Name : </label>
<input type="text" class="form-control" name="username" ></div>
<div class="form-group">
<label for="password">Password : </label>
<input type="password" class="form-control" name="password" >
</div>
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-7">
<button type="submit" class="btn btn-success">Login</button>
<?= anchor(base_url(),'Cancel',['class'=>'btn']) ?></div>
<div class="col-md-3">
<?= anchor('register','Register',['class'=>'btn btn-default'])
?></div></div>
<?= form_close() ?></div>
<div class="col-md-3"></div></div>
Gambar 6.2 listing program login
B. Tambah Produk Ke Keranjang
Setelah pelanggan berhasil login maka sistem akan secara otomatis
memuat tampilan utama pelanggan. halaman utama pelanggan ditunjukkan
pada gambar 6.3.
Gambar 6.3 halaman utama pelanggan
Halaman utama pelanggan merupakan tampilan yang memuat
seluruh data produk, history belanja pelanggan, cara pembelian, dan menu
konfirmasi pembayaran yang harus dilakukan oleh pelanggan. Pelanggan
dapat melakukan pembelian dengan cara menambahkan produk yang
diinginkan ke keranjang belanja, dengan mengklik tombol add to cart.
Setiap pelanggan mengklik tombol add to cart, sistem otomatis
menambahkan produk yang dipilih ke keranjang belanja. Pelanggan dapat
menambah ataupun mengurangi quantity produk yang akan dibeli.
C. Checkout Produk
Pelanggan dapat melihat seluruh produk yang telah ditambahkan
ke dalam cart. Halaman cart pelanggan ditunjukkan pada gambar 6.4.
Gambar 6.4. halaman cart pelanggan
Pelanggan mampu menghapus daftar produk yang ada pada
keranjang belanja, melanjutkan belanja, dan melakukan checkout. Tombol
checkout berfungsi untuk mengirim data produk yang ada dalam keranjang
belanja ke tabel invoices dan orders. Data yang disimpan setelah
pelanggan mengklik tombol checkout berstatus unpaid atau belum
dibayarkan. Listing program yang menampilkan cart pelanggan
ditunjukkan pada gambar 6.5.
<div class="panel panel-default">
<div class="panel-heading">
<h3>My Carts : <?= $this->cart->total_items()?>
<i class="fa fa-shopping-cart"></i></h3>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<hr>
<div class="col-md-1">
<h3>#</h3></div>
<div class="col-md-2">
<h3>Jenis</h3></div>
<div class="col-md-2">
<h3>Nama</h3></div>
<div class="col-md-2">
<h3>Quantity</h3>
</div>
<div class="col-md-3">
<h3>Harga</h3>
</div>
<div class="col-md-2">
<h3>Subtotal</h3>
</div>
</div>
<hr>
<?php $i=0;foreach($this->cart->contents()as $items):$i++;?>
<div class="col-md-12">
<hr>
<div class="col-md-1">
<?= $i ?>
</div>
<div class="col-md-2">
<?= $items['name'] ?>
</div>
<div class="col-md-2">
<?= $items['title'] ?>
</div>
<div class="col-md-2">
<div class="input-group spinner">
<input
type="hidden"id="qty_max_<?=$items['id'];?>"value="<?=$items
['stock'];?>">
<input
type="text"class="formcontrol"id="qty_<?=$items['id'];?>"
value="<?= $items['qty'] ?>">
<div class="input-group-btn-vertical">
<button class="btn btn-default btn-caret-up"
id="<?=$items['id'];?>" type="button"><i class="fa fa-caret-
up"></i></button>
<button class="btn btn-default btn-caret-down"
id="<?=$items['id'];?>" type="button"><i class="fa fa-caret-
down"></i></button></div></div></div>
<div class="col-md-3">
<?php echo $this->cart->format_number( $items['price'] );?>
</div><div class="col-md-2">
<?php echo $this->cart->format_number( $items['subtotal']
);?></div>
<hr>
</div>
<?php endforeach;?>
Gambar 6.5 listing program halaman cart
D. Konfirmasi Pembayaran
Setelah pelanggan melewati proses checkout, sistem akan secara
otomatis mengirim pesan ke email pelanggan. Tampilan pesan ditunjukkan
pada gambar 6.6.
Gambar 6.6. tampilan pesan
Pesan ini merupakan tagihan dan petunjuk pembayaran, pelanggan
cukup mengklik link yang ada pada pesan tersebut yang nantinya akan
dialihkan ke halaman konfirmasi pembayaran.
Terdapat dua status bayar yang ada pada sistem informasi
penjualan Aka Store, yaitu unpaid dan confirmed. Unpaid berarti produk
belum dibayarkan oleh pelanggan, sedangkan confirmed berarti pelanggan
telah melakukan konfirmasi pembayaran. Halaman konfirmasi bayar
ditunjukkan pada gambar 6.7.
Gambar 6.7. halaman konfirmasi bayar
Tombol konfirmasi pembayaran akan mengirim form berupa
invoice id, amount, keterangan tambahan, alamat kirim, dan bukti transfer,
kemudian form tersebut diarahkan ke database yang nantinya akan
mengupdate data yang ada pada database menyesuaikan form konfirmasi
bayar yang dikirim oleh pelanggan. Setelah pelanggan mengkonfirmasi
pembayaran, sistem akan secara otomatis mengirim pesan ke email
pelanggan dan mengubah status bayar menjadi confirmed. Tampilan pesan
konfirmasi setelah pelanggan melakukan konfirmasi pembayaran
ditunjukkan pada gambar 6.8.
Gambar 6.8 tampilan pesan konfirmasi
Tampilan pesan konfirmasi dikirim ke email pelanggan,
memanfaatkan helper yang ada pada codeigniter. Pelanggan dapat
menerima pesan tersebut apabila sudah melakukan konfirmasi
pembayaran. Listing program yang menampilkan halaman konfirmasi
pembayaran ditunjukkan pada gambar 6.9.
<?= form_open_multipart('customer/payment_confirmation/') ?>
<div class="form-group">
<label for="invoice_input">Invoice id : </label>
<input type="text" class="form-control" name="invoice_id_input"
placeholder="lihat nomor invoice pada history" value=<?=(
$invoice_id != 0 ? $invoice_id:'')?> >
</div>
<div class="form-group">
<label for="amount">Total Bayar : </label>
<input type="text" class="form-control" name="amount_input" >
</div>
<div class="form-group">
<label for="alamat_kirim">Alamat pengiriman : </label>
<input type="text" class="form-control" name="alamat_kirim" >
</div>
<div class="form-group">
<label for="bukti_trnsfr">Bukti Transfer : </label>
<input type="file" class="form-control" name="userfile">
</div>
<div class="form-group">
<label for="keterangan">Keterangan Tambahan: </label>
<input type="text" class="form-control" name="keterangan"
placeholder="Tambahkan keterangan seperti ukuran dan warna">
</div>
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-7">
<button type="submit" class="btn btn-success">Konfirmasi
Pembayaran</button>
<?= anchor(base_url(),'Cancel',['class'=>'btn']) ?> </div>
<div class="col-md-3">
<?=anchor('customer/shopping_history','Back.to.history',['class'=>
'btn btn-default']) ?>
</div>
</div>
<?= form_close() ?></div>
Gambar 6.9 listing program halaman konfirmasi pembayaran
E. History Belanja
Halaman history belanja menampilkan data transaksi belanja
pelanggan, dan telah melalui proses checkout. Halaman history belanja
ditunjukkan pada gambar 6.10.
Gambar 6.10 halaman history belanja
Halaman history belanja merupakan hasil update dari keranjang
belanja yang disimpan pada tabel invoices, kemudian data pada tabel
invoices ditampilkan pada keranjang belanja. Listing program untuk
menampilkan history ditunjukkan pada gambar 6.11.
<div class="col-md-12">
<div class="panel panel-default">
<?php if($history != FALSE):?>
<?= $this->session->flashdata('message')?>
<div class="panel-heading">
<h3>My History : </h3>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<hr>
<div class="col-md-1"></div>
<div class="col-md-2">
<h3>Invoice</h3>
</div>
<div class="col-md-2">
<h3>Invoice Date</h3></div>
<div class="col-md-2">
<h3>Due Date</h3></div>
<div class="col-md-2">
<h3>Total Bayar</h3></div>
<div class="col-md-3">
<h3>Status</h3></div></div>
<?php foreach ($history as $row): ?>
<div class="col-md-12">
<hr>
<div class="col-md-1"></div>
<div class="col-md-2">
<?= $row->id ?></div>
<div class="col-md-2">
<?= $row->data ?></div>
<div class="col-md-2">
<?= $row->due_date ?></div>
<div class="col-md-2">
<?= $row->total ?></div>
<div class="col-md-3">
<?php if($row->status == 'unpaid'):?>
<code><?= $row->status ?></code>
<?=anchor('customer/payment_confirmation/'.$row->id,'Confirn
Payment',array('class'=>'btn btn-primary btn-xs')) ?>
<?php else:?><label class="btn btn-success btn-xs active"><?=
$row->status ?></label>
<?php endif;?></div></div>
<?php endforeach;?>
Gambar 6.11 listing program halaman history
6.1.2 Mengetahui Bagaimana Admin Memproses Order
A. Login
Admin dapat memproses order pelanggan pada sistem informasi
penjualan Aka Store, yang harus dilakukan adalah masuk ke sistem atau
login sebagai admin. Halaman login admin ditunjukkan seperti pada
gambar 6.1. Setelah admin berhasil login maka sistem akan secara
otomatis memuat halaman utama admin. Halaman utama admin
ditunjukkan pada gambar 6.12.
Gambar 6.12 halaman utama admin
Halaman utama admin merupakan tampilan yang memuat data
orders, reports, users, products, all_settings. Admin mampu
menambahkan, menghapus, dan mengubah data produk. Admin juga dapat
mengubah status keaktifan pelanggan. Listing program untuk
menampilkan halaman utama admin ditunjukkan pada gambar 6.13.
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4><i.class="fa.fa-
archive"></i>Products<?=anchor('admin/products/create','Add.New.Pr
oduct',
['class'=>'btn btn-primary btn-xs']) ?>
</h4></div>
<section class="content">
<!-- Small boxes (Stat box) -->
<div class="row">
<div class="col-md-12">
<div class="box">
<div class="box-title">
</div><!-- /.box-title -->
<div class="box-body">
<table class="table table-striped table-hover" id="tableproducts">
<thead><tr>
<th>Id</th>
<th>Kategori</th>
<th>Nama Produk</th>
<th>Deskripsi</th>
<th>Harga</th>
<th>Stock</th>
<th>Image</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php foreach ($products as $product ) : ?>
<tr><td><?= $product->pro_id ?></td>
<td><?= $product->pro_name ?></td>
<td><?= $product->pro_title ?></td>
<td width="30%"><?= $product->pro_description ?></td>
<td><?= $product->pro_price ?></td>
<td><?= $product->pro_stock ?></td>
<td><a href=""><style>#g {width:50px;height:50px;}</style>
<?php $product_image =['src' =>'assets/uploads/'.$product-
>pro_image,
'class'=>'img-responsive img-portfolio img-hover','id'=>'g'];
echo img($product_image);?></td>
<td>
<?=anchor('admin/products/edit/'.$product-
>pro_id,'Edit',['class'=>'btn btn-success btn-xs']) ?>
<?php if($this->session->userdata('group')=='1' ): ?>
<?=anchor('admin/products/delete/'.
$product->pro_id,'Delete',['class'=>'btn btn-danger btn-xs',
Gambar 6.13 listing program halaman utama admin
B. Cek Daftar Invoice
Halaman daftar invoice menampilkan data tagihan pembayaran
pelanggan. Halaman daftar invoice ditunjukkan pada gambar 6.14.
Gambar 6.14 halaman daftar invoice
Data yang ada pada halaman daftar invoice diambil dari tabel invoices
yang ada pada database. Admin dapat melihat status pembayaran yang ada,
jika pelanggan sudah melalu proses konfirmasi bayar maka status yang tampil
adalah confirmed, dan apabila pelanggan belum melakukan konfirmasi
pembayaran maka status yang tampil adalah unpaid. Listing program untuk
menampilkan halaman invoice list ditunjukkan pada gambar 6.15.
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4><i class="fa fa-archive"></i> Invoices List </h4> </div>
<div class="panel-body">
<table class="table table-striped table-hover" id="table-
invoice">
<thead>
<tr>
<th>id</th>
<th>data</th>
<th>due_date</th>
<th>status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($invoices as $invoice ) : ?>
<tr>
<td><?= $invoice->id ?></td>
<td><?= $invoice->data ?></td>
<td><?= $invoice->due_date ?></td>
<td><?= $invoice->status ?></td>
<?php if($invoice->status == 'confirmed'):?>
<td><?=anchor('admin/invoices/detail/'.$invoice>id,'Details',
['class'=>'btn btn-success btn-xs']) ?>
<?php else:?>
<td><?=anchor('admin/invoices/detail/'.$invoice>id,
'Details',['class'=>'btn btn-primary btn-xs']) ?>
<?php endif;?></td></tr>
<?php endforeach; ?>
Gambar 6.15 listing program halaman invoice list
C. Detail Invoice
Tampilan detail invoice menampilkan data order pelanggan yang
diambil dari tabel orders pada database. Halaman detail invoice
ditunjukkan pada gambar 6.16.
Gambar 6.16 halaman detail invoice
Pada halaman detail invoice ini admin dapat melihat detail order
pelanggan seperti alamat kirim barang dan bukti transfer yang di upload
oleh pelanggan. Ketika bukti transfer diklik oleh admin, maka akan
muncul tampilan gambar. Listing program untuk menampilkan halaman
detail invoice ditunjukkan pada gambar 6.16.
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4><i class="fa fa-archive"></i> Items Ordered in Invoice #
<?php foreach ($invoice as $invoice_id ):?><?= $invoice_id->id
?>
<?php endforeach; ?> </h4></div>
<div class="panel-body">
<table class="table table-striped table-hover" id="table-
invoice">
<thead><tr>
<th>Nama Produk</th>
<th>Nama Pemesan</th>
<th>Alamat Pengiriman</th>
<th>No telp</th>
<th>Bukti Transfer</th>
<th>Keterangan</th>
<th>Quantity</th>
<th>price</th>
<th>Subtotal</th></tr>
</thead>
<tbody>
<?php $total = 0; foreach ($orders as $order ) :
$subtotal = $order->qty * $order->price;
$total += $subtotal;?>
<tr>
<td><?= $order->product_title ?></td>
<td><?= $order->nama ?></td>
<td><?= $order->alamat_kirim ?></td>
<td><?= $order->telp ?></td>
<td><a target="_BLANK" data-caption="<?=$order->bukti_trnsfr;?>"
rel="light" href="<?=base_url('assets/uploads/').'/'.$order-
>bukti_trnsfr;?>"><?= $order->bukti_trnsfr ?></a></td>
<td><?= $order->keterangan ?></td>
<td><?= $order->qty ?></td>
<td><?= $order->price ?></td>
<td><?= $subtotal ?></td>
</tr>
<?phpendforeach; ?>
Gambar 6.16 listing program halaman detail invoice
BAB VII
KESIMPULAN
Berdasarkan hasil penelitian dalam rancang bangun sistem informasi
penjualan menggunakan codeigniter pada Aka Store berbasis web mobile, penulis
dapat menarik kesimpulan dan saran sebagai berikut :
7.1 Kesimpulan
a. Sistem informasi penjualan ini membantu Aka Store mengolah data
barang yang dijual.
b. Sistem informasi penjualan pada Aka Store sudah user friendly.
c. Sistem informasi penjualan pada Aka Store membantu pelanggan dalam
mencari produk yang dibutuhkan.
d. Penyampaian informasi spesifikasi produk yang dijual pada sistem
informasi penjualan Aka Store sudah cukup jelas.
7.2 Saran
a. Dibutuhkan biaya kirim barang pada sistem.
b. Dibutuhkan menu tracking order untuk memantau produk yang dikirim.
c. Dibutuhkan informasi harga promo produk yang dijual.
DAFTAR PUSTAKA
Aditya, Alan Nur. 2011. Jago Php Dan Mysql. Bekasi: Dunia Komputer.
Arief, M.Rudianto. 2011. Pemrograman Web Dinamis Menggunakan Php Dan
Mysql. Yogyakarta: Andi.
Booch, G. James, R. Ivar, J, 2005. The Unified Modeling Language User Guide
Second Edition. Addison Wesley Professional. United States.
Ditya Inggar Prayudha. 2015. Penjualan Pakaian Jepang Pada Toko Hikaru
Mangacloth Berbasis Web Mobile Menggunakan Codeigniter. Skripsi.
Universitas Stikubank Semarang.
Firman Sanjaya, 2014, Rancang Bangun Aplikasi E-Commerce Order
Management System Berbasis Framework Codeigniter. Skripsi.
Universitas Stikubank Semarang.
Hakim, Lukmanul. 2010. Trik Rahasia Master Php Terbongkar Lagi. Lokomedia.
Yogyakarta
Hartono, Bambang. 2013. Sistem Informasi Manajemen Berbasis Komputer.
Rineka Cipta. Jakarta.
Hidayat, Taufik. 2008. Panduan Membuat Toko Online Dengan Oscommerce.
Mediakita. Jakarta.
Hidayatullah P, Jauhari K H. 2014. Pemrograman Web. Informatika. Bandung.
Indrajani, Dkk. 2010. Analisis Dan Perancangan Sistem Pemasaran Berbasis Web
Pada Pt. Dutadharma Utama. Jurnal Jakarta: Jurusan Sistem Informasi.
Universitas Binus.
Jogiyanto, H.M. 2005. Analisa dan Desain Sistem Informasi: Pendekatan
Terstruktur Teori dan Praktik Aplikasi Bisnis. Andi. Yogyakarta
Jony Wong. 2010. Internet Marketing For Beginners. Pt Elex Media Komputindo.
Jakarta.
Kusrini & Andri Koniyo. 2007.Tuntunan Praktis Membangun Sistem Informasi
Akuntansi dengan Visual Basic & Microsoft SQL server. Andi.
Yogyakarta
Kusrini, M.kom, 2007. Konsep dan Aplikasi Sistem Pendukung Keputusan. Andi.
Yogyakarta
Munawar, Kholil. 2009. E-Commerce. Http://Staff.Uns.Ac.Id.
N Candra Apriyanto. 2011. “Sistem Informasi Penjualan Arloji Berbasis Web
Pada Cv.Sinar Terang Semarang”. Skripsi. Program Studi Teknik
Informatika. Upn Yogyakarta.
Nugroho, Adi. 2010. Rekayasa Perangkat Lunak Menggunakan Uml & Java. Andi
Offset. Yogyakarta.
O‟Brien, James A. 2003. Pengantar Sistem Informasi (Judul asli : Introduction to
Information System, diterjemahkan oleh : Dewi Fitriasari dan Beny
Arnos Kwary),Salemba empat, Jakarta, 2005.
Pahlevy, Randy, Tesar. 2010. Rancang Bangun Sistem Pendukung Keputusan
Menentukan Penerima Beasiswa Dengan Menggunakan Metode Simple
Additive Weighting (Saw). Skripsi. Program Studi Tehnik Informatika.
Upn Surabaya.
Pressman, R.S. (2005) Software Engineering A Practitioner's Approach P281. Mc
Graw Hill.
Puspitasari. 2011. Pemrograman Web Database Dengan Php & Mysql. Skripta.
Jakarta.
Sandy Kosasi. 2015. Perancangan Sistem Informasi Penjualan Berbasis Web
Dalam Memasarkan Mobil Bekas. Skripsi. Stmik Pontianak.
Senn, James A., 1989. Analysis and Design of Information Systems. 2nd edition,
Mc Graw-Hill. Singapore.
Sutanta, Edhy. 2011. Basis Data dalam Tinjauan Konseptual. Andi. Yogyakarta.
Sutarman. 2012. Buku Pengantar Teknologi Informasi. Bumi Aksara. Jakarta.
Suyanto M. 2003. Strategi Periklanan Pada E-Commerce Perusahaan Top Dunia.
Andi. Yogyakarta.
Suyanto, M. 2003. Multimedia alat untuk meningkatkan keunggulan bersaing.
Andi. Jakarta.
Turban, Efrain, Linda Volonino. 2010. Information Technology for Management.
7th Edition John Willey & Sons. Asia.
Viktor Nicolas Nore. 2013. Perancangan Sistem Informasi Penjualan Dan
Pemesanan Produk Berbasis Web. Skripsi. Program Studi Sistem
Informasi. Universitas Widyatama.
Wicaksono. Yogi. 2008. Membangun Bisnis Online Dengan Mambo. Jakarta: Pt.
Elex Media Komputindo.
Widodo, Prabowo.P,Dkk. 2011. Pemodelan Sistem Berorientasi Obyek Dengan
Uml. Graha Ilmu. Yogyakarta.
Yakub. 2012. Pengantar Sistem Informasi. Graha Ilmu. Yogyakarta.
LAMPIRAN
Model_customer.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_customer extends CI_Model {
public function get_shopping_history($user)
{// get all invoices identified by $user
$get_it = $this->db->select('i.*,SUM(o.qty * o.price) AS total')
->from('invoices i, users u,orders o')
->where('u.usr_name',$user)
->where('u.usr_id = i.user_id')
->where('o.invoice_id = i.id')
->group_by('o.invoice_id')
->get
();
if($get_it->num_rows() > 0 ){
return $get_it->result();
}else{
return FALSE; //if there are no matching records
}}
public function
mark_invoice_paid_confirmed($invoice_id,$amount,$bukti_trnsfr)
{//check the invoice
// print_r($bukti_trnsfr);die;
$ret = TRUE ;
$this->db->where('invoice_id', $invoice_id)
->update('orders', $bukti_trnsfr);
$is_invoice = $this->db->where('id',$invoice_id)->limit(1)-
>get('invoices');
if($is_invoice->num_rows() == 0 ){
$ret = $ret && FALSE;
}else{//check the amount
//get total qty order from invoice id
$get_total_qty = $this->db->select("a.*,((SELECT p.pro_stock FROM
products p WHERE pro_id=a.product_id)-a.qty)stocksisa")
->where("invoice_id",$invoice_id)
->from("orders a")
->get()->result_array();
for($x=0;$x<count($get_total_qty);$x++){
$this->db->where('pro_id',$get_total_qty[$x]['product_id'])-
>update('products',array('pro_stock'=>$get_total_qty[$x]['stocksis
a']));}
$total = $this->db->select('SUM(qty * price) AS total')
->where('invoice_id',$invoice_id)
->get('orders');
if($total->row()->total > $amount ){
$ret = $ret && FALSE ;
}else
{//mark the invoice to PAID
$this->db->where('id',$invoice_id)-
>update('invoices',array('status'=>'confirmed'));
$this->db->where('invoice_id',$invoice_id)-
>update('orders',array('alamat_kirim'=>$this->input-
>post('alamat_kirim')));
$this->db->where('invoice_id',$invoice_id)
->update('orders',array('keterangan'=>$this->input
->post('keterangan')));
}}
return $ret;
}
public function simpangambar($bukti_trnsfr){
$ret = TRUE;
$data_order = $this->db->insert('invoices', $bukti_trnsfr);
}}?>
Model_orders.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_orders extends CI_Model {
public function get_user_id_by_session(){
$usr_name = $this->session->userdata('username');
$gry = $this->db->where('usr_name',$usr_name)
->select('usr_id')
->limit(1)
->get('users');
if($gry->num_rows() > 0 ){
return $gry->row()->usr_id;
}else{
return 0;
}}
public function get_user_name_by_session(){
$usr_name = $this->session->userdata('username');
$gry = $this->db->where('usr_name',$usr_name)
->select('usr_name')
->limit(1)
->get('users');
if($gry->num_rows() > 0 ){
return $gry->row()->usr_name;
}else{
return 0;
}}
public function get_email_by_session(){
$usr_name = $this->session->userdata('username');
$gry = $this->db->where('usr_name',$usr_name)
->select('email')
->limit(1)
->get('users');
if($gry->num_rows() > 0 ){
return $gry->row()->email;
}else{
return 0;
}}
public function get_no_telp_by_session(){
$usr_name = $this->session->userdata('username');
$gry = $this->db->where('usr_name',$usr_name)
->select('no_telp')
->limit(1)
->get('users');
if($gry->num_rows() > 0 ){
return $gry->row()->no_telp;
}else{
return 0;
}}
public function process(){
$invoice = array(
'data' => date('Y-m-d H:i:s'),
'due_date' => date('Y-m-d
H:i:s',mktime(date('H'),date('i'),date('s'),date('m'),date('d') +
1,date('Y'))),
'user_id' => $this->get_user_id_by_session(),
'status' => 'unpaid'
);
$this->db->insert('invoices',$invoice);
$invoice_id = $this->db->insert_id();
foreach ($this->cart->contents() as $item){
$data = array(
'invoice_id' => $invoice_id,
'product_id' => $item['id'],
'product_type' => $item['name'],
'product_title' => $item['title'],
'usr' => $this->get_user_id_by_session(),
'nama' => $this-
>get_user_name_by_session(),
'telp' => $this->get_no_telp_by_session(),
'qty' => $item['qty'],
'price' => $item['price']
);
$this->db->insert('orders',$data);}
$status['status'] = 'request';
$data += $status;
$pname = $item['name'];
$pname = $pname.' - '.$item['title'];
send_email($this->get_email_by_session(),$data,'Tagihan dan
Petunjuk Pembayaran '.$pname.'');
return TRUE;}
public function all_invoices()
{ // get all orders from orders tble
$get_orders = $this->db->get('invoices');
if($get_orders->num_rows() > 0 ) {
return $get_orders->result();
} else {
return array();
}}
public function get_invoice_by_id($invoice_id){
$get_invoice_by = $this->db->where('id',$invoice_id)->limit(1)-
>get('invoices');
if($get_invoice_by->num_rows() > 0 ) {
return $get_invoice_by->result();
} else {
return FALSE;
}}
public function get_orders_by_invoice($invoice_id){
$get_orders_by = $this->db->where('invoice_id',$invoice_id)-
>get('orders');
if($get_orders_by->num_rows() > 0 ) {
return $get_orders_by->result();
} else {
return FALSE;
}}}
Model_products.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_products extends CI_Model {
public function all_products(){
$show = $this->db->get('products');
if($show->num_rows() > 0 ) {
return $show->result();
} else {
return array();
}}
public function dis_products(){
$this->db->distinct();
$query = $this->db->query('SELECT DISTINCT pro_name FROM
products');
return $query->result();}
public function showme($pro_name){
$query = $this->db->get_where('products', array('pro_name' =>
$pro_name));
return $query->result();}
public function find($pro_id){
$code = $this->db->where('pro_id',$pro_id)
->limit(1)
->get('products');
if ($code->num_rows() > 0 ){
return $code->row();
}else {
return array();
}//end if code->num_rows > 0
}//end function find
public function create($data_products){
$this->db->insert('products',$data_products);
}//end function craete
public function edit($pro_id,$data_products){
//guery update FROM .. WHERE id->products
$this->db->where('pro_id',$pro_id)
->update('products',$data_products);}
public function delete($pro_id){
//guery delete id->products
$this->db->where('pro_id',$pro_id)
->delete('products');}
public function report($report_products){
$this->db->insert('reports',$report_products);
}//end function craete
public function reports(){
$report = $this->db->get('reports');
if($report->num_rows() > 0 ) {
return $report->result();
} else {
return array();
} }
public function del_report($rep_id_product){
$this->db->where('rep_id_product',$rep_id_product)
->delete('reports');
}}
Model_settings.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_settings extends CI_Model {
public function sitename_settings(){
$query = $this->db->query('SELECT * FROM all_settings WHERE
all_name_settings = "site_name"');
return $query->result();}
public function m_edit_sitename_settings($edit_sitename_is){
$sitename = 'site_name';
$this->db->where('all_name_settings',$sitename)
->update('all_settings',$edit_sitename_is);}
public function footer_settings(){
$query = $this->db->query('SELECT * FROM all_settings WHERE
all_name_settings = "footer"');
return $query->result();}
public function m_edit_footer_settings($edit_footer_is){
$footer = 'footer';
$this->db->where('all_name_settings',$footer)
->update('all_settings',$edit_footer_is);
}}
Model_users.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_users extends CI_Model {
public function check_usr(){
$username = set_value('username');
$password = set_value('password');
$stuts = '1';
$gry = $this->db->where('usr_name',$username)
->where('usr_password',$password)
->where('stuts',$stuts)
->limit(1)
->get('users');
if($gry->num_rows() > 0){
return $gry->row();
}else{
return array();}
public function check_user_is_active(){
$username = set_value('username');
$password = set_value('password');
$stuts = '0';
$gry = $this->db->where('usr_name',$username)
->where('usr_password',$password)
->where('stuts',$stuts)
->limit(1)
->get('users');
if($gry->num_rows() > 0){
return $gry->row();
}else{
return array();
}}
public function members(){
$member = $this->db->get('users');
if($member->num_rows() > 0 ) {
return $member->result();
} else {
return array();}
public function active($usr_id,$data_user){
$this->db->where('usr_id',$usr_id)
->update('users',$data_user);}
public function disable($usr_id,$data_user){
$this->db->where('usr_id',$usr_id)
->update('users',$data_user);}
public function register_new($data_register_new){
$this->db->insert('users',$data_register_new);}
public function is_usr(){
$username = set_value('rusername');
$gry = $this->db->where('usr_name',$username)
->limit(1)
->get('users');
if($gry->num_rows() > 0){
return TRUE;
}else{
return FALSE;
}}
public function check(){
$username = set_value('rusername');
$password = set_value('rpassword');
$stuts = '1';
$gry = $this->db->where('usr_name',$username)
->where('usr_password',$password)
->where('stuts',$stuts)
->limit(1)
->get('users');
if($gry->num_rows() > 0){
return $gry->row();
}else{
return array();
}}
public function check_password_admin_for_change(){
$old_password = set_value('oldpassword_admin');
$usr_name = 'admin';
$gry = $this->db->where('usr_name',$usr_name)
->where('usr_password',$old_password)
->limit(1)
->get('users');
if($gry->num_rows() > 0){
return $gry->row();
}else{
return array();
}}
public function m_change_admin_password($new_admin_password){
$usr_name = 'admin';
$this->db->where('usr_name',$usr_name)
->update('users',$new_admin_password);
}}
?>
Customer.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Customer extends CI_Controller {
public function __construct (){
parent::__construct();
$this->load->helper(array('form','url'));
$this->load->model('model_customer');
$this->load->model('model_settings');
$this->load->model('model_users');}
public function index()
{}
public function payment_confirmation($invoice_id = 0 ){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->form_validation->set_rules('invoice_id_input','Invoice
id','required|integer');
$this->form_validation->set_rules('amount_input','Amount
Transfered','required|integer');
if($this->form_validation->run() == FALSE){
if($this->input->post('invoice_id_input')){
$data['invoice_id'] =set_value('invoice_id_input');
}else{
$data['invoice_id'] = $invoice_id;}
$this->load->view('customer/form_payment_confirmation',$data);
}else{
$config['upload_path'] = 'assets/uploads/';
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
$config['max_size'] = '4084';
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if(!$this->upload->do_upload('userfile')){
//kalau error upload
print_r($this->upload->display_errors());
}else{
$upload_image = $this->upload->data('bukti_trnsfr');
$userfile = array(
'bukti_trnsfr' => $this->upload->data()['file_name']);
$is_valid = $this->model_customer-
>mark_invoice_paid_confirmed(set_value('invoice_id_input'),set_val
ue('amount_input'),$userfile);
if ($is_valid){
$data['nama'] = $this->session->userdata('username');
$data['status'] = 'verified';
send_email($this->get_email_by_session(),$data,'Terima Kasih,
Pesanan Sedang Di Proses.');
$this->session->set_flashdata('message','Terima Kasih, Produk Yang
Anda Pesan Akan Segera Kami Proses');
redirect('customer/shopping_history');
}else{
$this->session->set_flashdata('error','Jumlah Nominal Salah,
Silahkan Coba Lagi ');
redirect('customer/payment_confirmation/'.set_value('invoice_id_in
put'));
}}}}
public function shopping_history(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$user=$this->session->userdata('username');
$data['history'] = $this->model_customer-
>get_shopping_history($user);
$this->load->view('customer/shopping_history_list',$data);}
public function get_email_by_session(){
$usr_name = $this->session->userdata('username');
$gry = $this->db->where('usr_name',$usr_name)
->select('email')
->limit(1)
->get('users');
if($gry->num_rows() > 0 ){
return $gry->row()->email;
}else{
return 0;
}}
Home.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
public function __construct (){
parent::__construct();
$this->load->model('model_products');
$this->load->model('model_settings');}
public function index(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['products'] = $this->model_products->all_products(); //this
all_products from model
$data['starts'] = $this->model_products->dis_products();
$this->load->view('home',$data); //this $data from model inside
class model_products}
public function about(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('about',$data);}
public function tutorial(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('tutorial',$data);}
public function showme($pro_name){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['starts'] = $this->model_products->dis_products();
$data['comes'] = $this->model_products->showme($pro_name); //for
showme function in home/showme
$this->load->view('this_products',$data);}
public function add_to_cart(){
$pro_id =$this->input->post('id');
$qty =$this->input->post('qty');
$stock =$this->input->post('stock');
if(empty($this->session->userdata()['username'])){
echo "0";
}else{
$product = $this->model_products->find($pro_id);
$data = array(
'id' => $product->pro_id,
'qty' => $qty,
'stock' => $stock,
'price' => $product->pro_price,
'price' => $product->pro_price,
'name' => $product->pro_name,
'title' => $product->pro_title
);
$this->cart->insert($data);
echo "1";
}}
public function cart(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('show_cart',$data);}
public function clear_cart(){
$this->cart->destroy();
redirect(base_url());}
public function report($pro_id){
$product = $this->model_products->find($pro_id);
if($this->session->userdata('group') != ('2' ||'3')){
$group_usr = Gost;
$name_usr = Gost;
}else{
$group_usr = $this->session->userdata('group');
$name_usr = $this->session->userdata('username');}
$report_products = array(
'rep_id_product' => $product->pro_id,
'rep_name' => $product->pro_name,
'rep_title_product' => $product->pro_title,
'rep_usr_name' => $name_usr,
'rep_usr_group' => $group_usr
);
$this->model_products->report($report_products);
redirect(base_url());}}
Login.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
public function index(){
$this->load->model('model_settings');
$this->form_validation-
>set_rules('username','Username','required|alpha_numeric');
$this->form_validation-
>set_rules('password','Password','required|alpha_numeric|md5');
if($this->form_validation->run() == FALSE){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('login/form_login',$data);
}else{
$this->load->model('model_users');
$valid_user = $this->model_users->check_usr();
$check_user_is_active = $this->model_users-
>check_user_is_active();
if($valid_user == FALSE){
if ($check_user_is_active == FALSE){
$this->session->set_flashdata('error','Username / Password Not
Correct !' );
}else{
$this->session->set_flashdata('error','Sorry this account is not
active !' );}
redirect('login');
}else{
$this->session->set_userdata('username',$valid_user->usr_name);
$this->session->set_userdata('group',$valid_user->usr_group);
switch($valid_user->usr_group){
case 1 ://for admin
redirect('admin/products');
break;
case 2 ://for c-admin
redirect('admin/products');
break;
case 3 ://for member
redirect(base_url());
break;
default: break;}
}//end if valid_user
}//end if validation
}
public function logout(){
$this->session->sess_destroy();
redirect('login');
}}
Order.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Order extends CI_Controller {
public function __construct(){
parent::__construct();
if(!$this->session->userdata('username')){
redirect('login');}
$this->load->model('model_settings');
$this->load->model('model_orders');
$this->load->model('model_users');}
public function index(){
$is_processed = $this->model_orders->process();
if($is_processed){
$this->cart->destroy();
redirect('order/success');
}else{
$this->session->set_flashdata('error','Failed To Processed Your
Order ! , please try again');
redirect('home/cart');
}}
public function success(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('order_success',$data);
}}
Product.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Product extends CI_Controller {
public function __construct(){
parent::__construct();
if(!$this->session->userdata('username')){
// redirect('login');}
$this->load->model('model_settings');
$this->load->model('model_products');
$this->load->model('model_users');}
public function index(){
$is_processed = $this->model_orders->process();
if($is_processed){
$this->cart->destroy();
redirect('order/success');
}else{
$this->session->set_flashdata('error','Failed To Processed Your
Order ! , please try again');
redirect('home/cart');
}}
public function detail($id=null){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['product'] = $this->model_products->find($id);
$this->load->view('customer/product_detail',$data);}
public function detail_kat($pro_name=''){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['starts'] = $this->model_products->dis_products();
$data['comes'] = $this->model_products->showme($pro_name);
$this->load->view('customer/this_products_detail',$data);
}}
Register.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Register extends CI_Controller {
public function __construct (){
parent::__construct();
$this->load->model('model_users');
$this->load->model('model_settings');}
public function index(){
$this->form_validation-
>set_rules('rusername','Username','required|alpha_numeric|min_leng
th[4]|max_length[20]');
$this->form_validation-
>set_rules('rpassword','Password','required|alpha_numeric|matches[
repassword]|min_length[6]|max_length[24]|md5');
$this->form_validation-
>set_rules('repassword','Password','required|alpha_numeric');
$this->form_validation->set_rules('ralamat','Alamat','required');
$this->form_validation-
>set_rules('rtelepon','Telepon','required');
$this->form_validation->set_rules('remail','Email','required');
if($this->form_validation->run() == FALSE){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('register/form_register',$data);
}else{
$data_register_new = array(
'usr_name' => set_value('rusername'),
'usr_password' => set_value('rpassword'),
'alamat' => set_value('ralamat'),
'no_telp' => set_value('rtelepon'),
'email' => set_value('remail'),
'stuts' => '1',
'usr_group' =>'3'
);
if($this->model_users->is_usr() == FALSE){
$this->model_users->register_new($data_register_new);
$this->form_validation->set_rules('rusername');
$this->form_validation->set_rules('rpassword');
$this->form_validation->set_rules('ralamat');
$this->form_validation->set_rules('rtelepon');
$this->form_validation->set_rules('remail');
if($this->form_validation->run() == FALSE){
$this->load->view('login/form_login');
}else{
$valid_user = $this->model_users->check();
if($valid_user == FALSE){
$this->session->set_flashdata('error','Username / Password Not
Correct !' );
redirect('login');
}else{
$this->session->set_userdata('username',$valid_user->usr_name);
$this->session->set_userdata('group',$valid_user->usr_group);
switch($valid_user->usr_group){
case 3 ://for member
redirect(base_url());
break;
default: break;
}}}
redirect(base_url());
}else{
$this->session->set_flashdata('error','Please Write Other User
Name !' );
redirect('register');
}}}}
Invoices.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Invoices extends CI_Controller {
public function __construct (){
parent::__construct();
if($this->session->userdata('group')!= ('1' ||'2') ){
$this->session->set_flashdata('error','Sorry You Are Not Logged in
!');
redirect('login');}
$this->load->model('model_orders');
$this->load->model('model_users');
$this->load->model('model_settings');}
public function index(){
$data['invoices'] = $this->model_orders->all_invoices();
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('backend/view_all_invoices',$data);}
public function detail($invoice_id){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['orders'] = $this->model_orders-
>get_orders_by_invoice($invoice_id);
$data['invoice'] = $this->model_orders-
>get_invoice_by_id($invoice_id);
$data['users'] = $this->model_users->members();
$this->load->view('backend/view_invoice_detail',$data);
}}
Products.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Products extends CI_Controller {
public function __construct (){
parent::__construct();
if($this->session->userdata('group')!= ('1' ||'2') ){
$this->session->set_flashdata('error','Sorry You Are Not Logged in
!');
redirect('login');}
//load model -> model_products
$this->load->model('model_products');
$this->load->model('model_users');
$this->load->model('model_settings');}
public function index(){
$data['products'] = $this->model_products->all_products();
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('backend/dashboard',$data);}
public function create(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
// $this->load->view('backend/form_create_product',$data);
$this->form_validation->set_rules('pro_name','Product
Name','required');
$this->form_validation->set_rules('pro_title','Product
Title','required');
$this->form_validation->set_rules('pro_description','Product
Description','required');
$this->form_validation->set_rules('pro_price','Product
Price','required|integer');
$this->form_validation->set_rules('pro_stock','Available
Stock','required|integer');
//$this->form_validation->set_rules('userfile','image
error','required');
if ($this->form_validation->run() == FALSE){
$this->load->view('backend/form_create_product',$data);
}else{
//load uploading file
$config['upload_path'] = './assets/uploads/';
$config['allowed_types'] = 'jpg|png';
$config['max_size'] = 2048000;// = MB
$config['max_width'] = 2000;
$config['max_height'] = 2000;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload()){
$this->load->view('backend/form_create_product');
}else{
// if form_validation = true -> insert into db
$upload_image = $this->upload->data();
$data_products = array(
'pro_name' => set_value('pro_name'),
'pro_title' => set_value('pro_title'),
'pro_description' => set_value('pro_description'),
'pro_price' => set_value('pro_price'),
'pro_stock' => set_value('pro_stock'),
'pro_image' => $upload_image['file_name']
);//end array data_products
$this->model_products->create($data_products);
redirect('admin/products');
} //end if uploading
}//end if form_validation
}///end class create ///
public function edit($pro_id){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->form_validation->set_rules('pro_name','Product
Name','required');
$this->form_validation->set_rules('pro_title','Product
Title','required');
$this->form_validation->set_rules('pro_description','Product
Description','required');
$this->form_validation->set_rules('pro_price','Product
Price','required|integer');
$this->form_validation->set_rules('pro_stock','Available
Stock','required|integer');
if ($this->form_validation->run() == FALSE){
$data['product'] = $this->model_products->find($pro_id);
$this->load->view('backend/form_update_product',$data);
} else {
if($_FILES['userfile']['name'] != ''){
//load uploading file
$config['upload_path'] = './assets/uploads/';
$config['allowed_types'] = 'jpg|png';
$config['max_size'] = 2000;// = MB
$config['max_width'] = 2000;
$config['max_height'] = 2000;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload()){
$data['product'] = $this->model_products->find($pro_id);
$this->load->view('backend/form_update_product',$data);
}else{
$upload_image = $this->upload->data();
$data_products = array(
'pro_name' => set_value('pro_name'),
'pro_title' => set_value('pro_title'),
'pro_description' => set_value('pro_description'),
'pro_price' => set_value('pro_price'),
'pro_stock' => set_value('pro_stock'),
'pro_image' => $upload_image['file_name']
);
$this->model_products->edit($pro_id,$data_products);
redirect('admin/products');}
}else{
$data_products = array(
'pro_name' => set_value('pro_name'),
'pro_title' => set_value('pro_title'),
'pro_description' => set_value('pro_description'),
'pro_price' => set_value('pro_price'),
'pro_stock' => set_value('pro_stock'),
);
$this->model_products->edit($pro_id,$data_products);
redirect('admin/products');}
}}public function delete($pro_id){
$this->model_products->delete($pro_id);
redirect('admin/products');}
public function reports(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['reports'] = $this->model_products->reports();
$this->load->view('backend/reports',$data);}
public function del_report($rep_id_product){
$this->model_products->del_report($rep_id_product);
redirect('admin/products/reports');}
public function members(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$data['members'] = $this->model_users->members();
$this->load->view('backend/members',$data);}
public function active_usr($usr_id){
$active = '1';
$data_user = array(
'stuts' => $active
);
$this->model_users->active($usr_id,$data_user);
redirect('admin/products/members');}
public function disable_usr($usr_id){
$active = '0';
$data_user = array(
'stuts' => $active
);
$this->model_users->active($usr_id,$data_user);
redirect('admin/products/members');
}}
Settings.php <?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Settings extends CI_Controller {
public function __construct (){
parent::__construct();
if($this->session->userdata('group')!= '1' ){
redirect('admin/products');}
$this->load->model('model_settings');}
public function index(){
$data['get_sitename'] = $this->model_settings-
>sitename_settings();
$data['get_footer'] = $this->model_settings->footer_settings();
$this->load->view('backend/settings',$data);}
public function edit_sitename(){
$this->form_validation->set_rules('edit_sitename_input','Edit Site
Name','required');
if ($this->form_validation->run() == FALSE){
redirect('admin/settings');
}else{
$edit_sitename_is = array(
'all_value_settings' => set_value('edit_sitename_input')
);
$this->model_settings-
>m_edit_sitename_settings($edit_sitename_is);
redirect('admin/settings');}}
public function edit_footer(){
$this->form_validation->set_rules('edit_footer_input','Edit
Footer','required');
if ($this->form_validation->run() == FALSE){
redirect('admin/settings');
}else{
$edit_footer_is = array(
'all_value_settings' => set_value('edit_footer_input')
);
$this->model_settings->m_edit_footer_settings($edit_footer_is);
redirect('admin/settings');}}
public function change_password_admin(){
$this->form_validation->set_rules('oldpassword_admin','Old
Password','required|alpha_numeric|md5');
$this->form_validation->set_rules('password_admin','New
Password','required|alpha_numeric|matches[repassword_admin]|min_le
ngth[6]|max_length[24]|md5');
$this->form_validation->set_rules('repassword_admin','Re-Type
Password','required|alpha_numeric');
if ($this->form_validation->run() == FALSE){
redirect('admin/settings');
}else{
$this->load->model('model_users');
$valid_user = $this->model_users-
>check_password_admin_for_change();
if($valid_user == FALSE){
redirect('logout');
$this->session->set_flashdata('error','Username / Password Not
Correct !' );
}else{
$new_admin_password = array(
'usr_password' => set_value('password_admin')
);
$this->model_users->m_change_admin_password($new_admin_password);
$this->session->set_userdata('username',$valid_user->usr_name);
$this->session->set_userdata('group',$valid_user->usr_group);
redirect('login');
}}}}
Home.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
<style>
.spinner {
width: 80px;}
.spinner input {
text-align: right;}
.input-group-btn-vertical {
position: relative;
white-space: nowrap;
width: 1%;
vertical-align: middle;
display: table-cell;}
.input-group-btn-vertical > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
padding: 8px;
margin-left: -1px;
position: relative;
border-radius: 0;}
.input-group-btn-vertical > .btn:first-child {
border-top-right-radius: 4px;}
.input-group-btn-vertical > .btn:last-child {
margin-top: -2px;
border-bottom-right-radius: 4px;}
.input-group-btn-vertical i{
position: absolute;
top: 0;
left: 4px;}
</style>
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<!-- Product Menu -->
<?php $this->load->view('layout/product_menu')?>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table -->
<?php foreach ($products as $product ) : ?>
<div class="col-md-3">
<div class="panel panel-default">
<div class="panel-heading">
<a href="<?=base_url('product/detail/'.$product-
>pro_id);?>"><h6><?= $product->pro_title ?></h6></a>
</div>
<div class="panel-body" width="100px">
<a href="">
<style>#g {width:500%;height: 120px;}</style>
<?php
$product_id = $product->pro_id;
$product_image =['src' =>'assets/uploads/'.$product->pro_image,
'class'=>'img-responsive img-portfolio img-hover',
'id'=>'g'
];
echo "<a
href='".base_url('product/detail/'.$product_id.'')."'>".img($produ
ct_image).'</a>';
?>
</a>
<p><code>Price:</code> <?= $product->pro_price ?> <code>
Stock:</code> <?= $product->pro_stock ?> </p>
<?php if($this->session->userdata('group') != '1' and
$this->session->userdata('group') != '2' ): ?>
<div class="form-inline">
<div class="form-group">
<input type="hidden" id="cart_<?=$product->pro_id;?>"
value="<?=$product->pro_id;?>">
<!--
<?= anchor('home/add_to_cart/'.$product->pro_id,'Add To Cart ||
Buy',['class'=>'btn btn-success btn-xs','role'=>'button']) ?>
-->
<button id="<?=$product->pro_id;?>" class="btn btn-cart btn-
success form-control btn-xs">Add To Cart || Buy</button>
</div>
<div class="form-group">
<div class="input-group spinner">
<input type="hidden" id="qty_max_<?=$product->pro_id;?>"
value="<?=$product->pro_stock;?>">
<input type="text" class="form-control" id="qty_<?=$product-
>pro_id;?>" value="1">
<div class="input-group-btn-vertical">
<button class="btn btn-default btn-caret-up" id="<?=$product-
>pro_id;?>" type="button"><i class="fa fa-caret-up"></i></button>
<button class="btn btn-default btn-caret-down" id="<?=$product-
>pro_id;?>" type="button"><i class="fa fa-caret-
down"></i></button>
</div>
</div>
</div>
</div>
<ul class="nav nav-tabs navbar-right">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">Report <i
class="fa fa-exclamation-triangle"></i></a>
<ul class="dropdown-menu">
<li>
<?= anchor('home/report/'.$product->pro_id,"I don't like this
Product",["class'=>'btn btn-xs"]) ?>
</li>
</ul>
</li>
</ul>
<?php else:?>
<?=anchor('admin/products/edit/'.$product-
>pro_id,'Edit',['class'=>'btn btn-success btn-xs']) ?>
<?php if($this->session->userdata('group') == '1' ): ?>
<?=anchor('admin/products/delete/'.$product-
>pro_id,'Delete',['class'=>'btn btn-danger btn-xs',
'onclick'=>'return confirm(\'Are You Sure ? \')'
]) ?>
<?php else:?>
<?= anchor('admin/products/delete/','Delete',['class'=>'btn btn-
danger btn-xs ','data-toggle'=>'button',
'onclick'=>'return confirm(\'Sorry You Cant Delete it , Should Be
Admin ! \')'
]) ?>
<?php endif;?>
<?php endif;?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Harap Menggunakan Email Yang Dapat Dihubungi. Periksa Kembali
Alamat Pengiriman Pada Saat Pembelian.</p>
</div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Aka Store</a>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed
})
// (function ($) {
$(".btn-caret-up").click(function(){
var stock = $("#qty_max_"+this.id).val();
var plus = parseInt($('#qty_'+this.id).val(), 10) + 1;
if(plus<=stock){
$('#qty_'+this.id).val(plus);}
})
$(".btn-caret-down").click(function(){
if($('#qty_'+this.id).val()==1){
return false;}
$('#qty_'+this.id).val( parseInt($('#qty_'+this.id).val(), 10) -
1);
})
$(".btn-cart").click(function(){
var stock = $("#qty_max_"+this.id).val();
if(parseInt($("#qty_"+this.id).val())>=stock){
alert("Stock Tidak Tersedia (Tersedia: "+stock+"), Mohon Rubah
Quantity");
return false;}
$.post("<?=base_url();?>home/add_to_cart/",{id:$("#cart_"+this.id)
.val(),qty:$("#qty_"+this.id).val(),stock:stock})
.success(function(data){
if(data==0){
alert('Harap login terlebih dahulu');
window.location.href='<?=base_url('login');?>';
}else if(data==1){
window.location.href='<?=base_url();?>';}
})
})
</script>
</body>
</html>
Show_cart.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
<style>
.spinner {
width: 80px;}
.spinner input {
text-align: right;}
.input-group-btn-vertical {
position: relative;
white-space: nowrap;
width: 1%;
vertical-align: middle;
display: table-cell;}
.input-group-btn-vertical > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
padding: 8px;
margin-left: -1px;
position: relative;
border-radius: 0;}
.input-group-btn-vertical > .btn:first-child {
border-top-right-radius: 4px;}
.input-group-btn-vertical > .btn:last-child {
margin-top: -2px;
border-bottom-right-radius: 4px;}
.input-group-btn-vertical i{
position: absolute;
top: 0;
left: 4px;}
</style>
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<hr>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3>My Carts : <?= $this->cart->total_items()?> <i class="fa fa-
shopping-cart"></i></h3>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<hr>
<div class="col-md-1">
<h3>#</h3>
</div>
<div class="col-md-2">
<h3>Jenis</h3>
</div>
<div class="col-md-2">
<h3>Nama</h3>
</div>
<div class="col-md-2">
<h3>Quantity</h3>
</div>
<div class="col-md-3">
<h3>Harga</h3>
</div>
<div class="col-md-2">
<h3>Subtotal</h3>
</div>
</div>
<hr>
<?php
$i=0;
foreach ($this->cart->contents() as $items):
$i++;
?>
<div class="col-md-12">
<hr>
<div class="col-md-1">
<?= $i ?>
</div>
<div class="col-md-2">
<?= $items['name'] ?>
</div>
<div class="col-md-2">
<?= $items['title'] ?>
</div>
<div class="col-md-2">
<div class="input-group spinner">
<input type="hidden" id="qty_max_<?=$items['id'];?>"
value="<?=$items['stock'];?>">
<input type="text" class="form-control"
id="qty_<?=$items['id'];?>" value="<?= $items['qty'] ?>">
<div class="input-group-btn-vertical">
<button class="btn btn-default btn-caret-up"
id="<?=$items['id'];?>" type="button"><i class="fa fa-caret-
up"></i></button>
<button class="btn btn-default btn-caret-down"
id="<?=$items['id'];?>" type="button"><i class="fa fa-caret-
down"></i></button>
</div>
</div>
</div>
<div class="col-md-3">
<?php echo $this->cart->format_number( $items['price'] );?>
</div>
<div class="col-md-2">
<?php echo $this->cart->format_number( $items['subtotal'] );?>
</div>
<hr>
</div>
<?php endforeach;?>
<div class="col-md-12">
<hr>
<div class="col-md-9">
<hr>
</div>
<div class="col-md-3">
<h3>Total : <?php echo $this->cart->format_number( $this->cart-
>total() ); ?></h3>
</div>
</div>
<div class="col-md-4"></div>
<div class="col-md-6">
<?= anchor('home/clear_cart','Clear Cart',['class'=>'btn btn-
danger','role'=>'button']) ?>
<?= anchor(base_url(),'Continue Shopping',['class'=>'btn btn-
primary','role'=>'button']) ?>
<?php
$url_check ='<button class="btn btn-success type="submit">';
$url_check .= 'Check Out'.'</button>';
?>
<?php if ($this->cart->total_items()!=0):?>
<?= anchor('order',' Check Out',['class'=>'btn btn-
success','role'=>'button']) ?>
<?php else:?>
<?= anchor(base_url(),$url_check); ?>
<?php endif ;?>
</div>
<div class="col-md-2"></div></div></div></div> </div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Molestias, expedita, saepe, vero rerum deleniti beatae veniam
harum neque nemo praesentium cum alias asperiores commodi.</p>
</div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Report For
Buggs</a></div></div></div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed
})
$(".btn-caret-up").click(function(){
var stock = $("#qty_max_"+this.id).val();
var plus = parseInt($('#qty_'+this.id).val(), 10) + 1;
if(plus<=stock){
$('#qty_'+this.id).val(plus); }})
$(".btn-caret-down").click(function(){
if($('.spinner input').val()==1){
return false; }
$('#qty_'+this.id).val( parseInt($('#qty_'+this.id).val(), 10) -
1); })
</script>
</body>
</html>
This_product.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<!-- Product Menu -->
<?php $this->load->view('layout/product_menu')?>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table --><?php $send = 'add';?>
<?php foreach ($comes as $come ) : ?>
<div class="col-md-3">
<div class="panel panel-default">
<div class="panel-heading">
<ahref="<?=base_url('product/detail/'.$come>pro_id);?>"><h6><?=
$come->pro_title ?></h6>
</div>
<div class="panel-body">
<style>#g {width:500%;height: 120px;}</style>
<?php
$product_image =['src' =>'assets/uploads/'.$come-
>pro_image,'class'=>'img-responsive img-portfolio img-
hover','id'=>'g'];
echo img($product_image);
?></a>
<style>#t {width: 230px;height: 75px;overflow: scroll;}</style>
<p><code>Harga:</code> <?= $come->pro_price ?> <code>
Stok:</code> <?= $come->pro_stock ?> </p>
<?php if($this->session->userdata('group') != '1' and
$this->session->userdata('group') != '2' ): ?>
<?=anchor('home/add_to_cart/'.$come>pro_id.'/'.$send,'Add To Cart
|| Buy',['class'=>'btn btn-success btn-xs','role'=>'button']) ?>
<ul class="nav nav-tabs navbar-right">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">Report <i
class="fa fa-exclamation-triangle"></i></a>
<ul class="dropdown-menu"> <li>
<?= anchor('home/report/'.$come->pro_id,"I don't like this
Product",["class'=>'btn btn-xs"]) ?>
</li>
</ul>
</li>
</ul>
<?php else:?>
<?= anchor('admin/products/edit/'.$come-
>pro_id,'Edit',['class'=>'btn btn-success btn-xs']) ?>
<?= anchor('admin/products/delete/'.$come-
>pro_id,'Delete',['class'=>'btn btn-danger btn-xs',
'onclick'=>'return confirm(\'Are You Sure ? \')'
]) ?>
<?php endif;?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<!-- /.row -->
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Harap Menggunakan Email Yang Dapat Dihubungi. Periksa Kembali
Alamat Pengiriman Pada Saat Pembelian</p>
</div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Aka Store</a>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed})
</script>
</body>
</html>
Form_register.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<hr>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3>Register <i class="fa fa-user"></i> :</h3>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<?= validation_errors() ?>
<hr>
<div class="col-md-3"><?= $this->session->flashdata('error')
?></div>
<div class="col-md-6">
<?= form_open('register') ?>
<div class="form-group">
<label for="username">User Name : </label>
<input type="text" class="form-control" name="rusername"
value="<?= set_value('rusername') ?>">
</div>
<div class="form-group">
<label for="password">Password : </label>
<input type="password" class="form-control" name="rpassword"
value="<?= set_value('rpassword') ?>" >
</div>
<div class="form-group">
<label for="password">Re-Type Password : </label>
<input type="password" class="form-control" name="repassword"
value="<?= set_value('repassword') ?>" >
</div>
<div class="form-group">
<label for="alamat">Alamat : </label>
<input type="text" class="form-control" name="ralamat" value="<?=
set_value('ralamat') ?>">
</div>
<div class="form-group">
<label for="telepon">No Telepon : </label>
<input type="text" class="form-control" name="rtelepon" value="<?=
set_value('rtelepon') ?>">
</div>
<div class="form-group">
<label for="email">E-mail : </label>
<input type="text" class="form-control" name="remail" value="<?=
set_value('remail') ?>">
</div>
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-7">
<button type="submit" class="btn btn-success">Register</button>
<?= anchor(base_url(),'Cancel',['class'=>'btn ']) ?>
</div>
<div class="col-md-3">
<?= anchor('Login','Login',['class'=>'btn btn-default']) ?>
</div></div>
<?= form_close() ?>
</div>
<div class="col-md-3"></div>
</div></div></div></div></div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Molestias, expedita, saepe, vero rerum deleniti beatae veniam
harum neque nemo praesentium cum alias asperiores
commodi.</p></div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Report For
Buggs</a></div></div></div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?></div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed })
</script>
</body>
</html>
Form_login.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<hr>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3>Login <i class="fa fa-user"></i> :</h3>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<?= validation_errors() ?>
<hr>
<div class="col-md-3"><?= $this->session->flashdata('error')
?></div>
<div class="col-md-6">
<?= form_open('login') ?>
<div class="form-group">
<label for="username">User Name : </label>
<input type="text" class="form-control" name="username" >
</div>
<div class="form-group">
<label for="password">Password : </label>
<input type="password" class="form-control" name="password" >
</div>
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-7">
<button type="submit" class="btn btn-success">Login</button>
<?= anchor(base_url(),'Cancel',['class'=>'btn']) ?>
</div>
<div class="col-md-3">
<?= anchor('register','Register',['class'=>'btn btn-default']) ?>
</div>
</div>
<?= form_close() ?>
</div>
<div class="col-md-3"></div>
</div>
</div>
</div>
</div>
</div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Molestias, expedita, saepe, vero rerum deleniti beatae veniam
harum neque nemo praesentium cum alias asperiores commodi.</p>
</div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Report For
Buggs</a>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed
})
</script>
</body>
</html>
Form_payment_confirmation.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>Payment Confirmation </title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<hr>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h5>KONFIRMASI PEMBAYARAN :</h5>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<center><img width="75%" src="<?php echo base_url();
?>assets/uploads/bukti.png"></center>
<hr>
<div class="col-md-3"><?= validation_errors() ?>
<?= $this->session->flashdata('error') ?>
</div>
<div class="col-md-8">
<?= form_open_multipart('customer/payment_confirmation/') ?>
<div class="form-group">
<label for="invoice_input">Invoice id : </label>
<input type="text" class="form-control" name="invoice_id_input"
placeholder="lihat nomor invoice pada history" value=<?=(
$invoice_id != 0 ? $invoice_id:'')?> >
</div>
<div class="form-group">
<label for="amount">Total Bayar : </label>
<input type="text" class="form-control" name="amount_input" >
</div>
<div class="form-group">
<label for="alamat_kirim">Alamat pengiriman : </label>
<input type="text" class="form-control" name="alamat_kirim" >
</div>
<div class="form-group">
<label for="bukti_trnsfr">Bukti Transfer : </label>
<input type="file" class="form-control" name="userfile">
</div>
<div class="form-group">
<label for="keterangan">Keterangan Tambahan: </label>
<input type="text" class="form-control" name="keterangan"
placeholder="Tambahkan keterangan seperti ukuran dan warna">
</div>
<div class="form-group">
<div class="col-md-2"></div>
<div class="col-md-7">
<button type="submit" class="btn btn-success">Konfirmasi
Pembayaran</button>
<?= anchor(base_url(),'Cancel',['class'=>'btn']) ?>
</div>
<div class="col-md-3">
<?= anchor('customer/shopping_history','Back to
history',['class'=>'btn btn-default']) ?>
</div>
</div>
<?= form_close() ?>
</div>
<div class="col-md-3"></div>
</div>
</div>
</div>
</div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
</div>
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Harap Menggunakan Email Yang Dapat Dihubungi. Periksa Kembali
Alamat Pengiriman Pada Saat Pembelian.</p>
</div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Aka Store</a>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed
})
</script>
</body>
</html>
Form_create_product.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
<!-- load for table and search in table -->
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery-1.10.2.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery.dataTables.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/dataTables.bootstrap.js');?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo
base_url('/assets/css/dataTables.bootstrap.css');?>">
</head>
<body>
<!-- Navigation -->
<?php $this->load->view('layout/navigation')?>
<!-- Header- dash_menu -->
<?php $this->load->view('layout/dash_menu')?>
<!-- Page Content -->
<div class="container">
<!-- /.row -->
<div class="row">
<!-- body items -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4>
<i class="fa fa-archive"></i> Products <?=
anchor('admin/products/create','Add New Product',['class'=>'btn
btn-primary btn-xs']) ?>
</h4>
</div><!-- /..panel-heading -->
<div class="panel-body">
<div><?= validation_errors()?></div>
<?= form_open_multipart('admin/products/create',['class'=>'form-
group']) ?>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" style="min-width:150px;text-
align:left;">Kategori</div>
<input type="text" class="form-control" name="pro_name"
placeholder="Tambahkan Kategori" value="<?= set_value('pro_name')
?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" style="min-width:150px;text-
align:left;">Nama Produk</div>
<input type="text" class="form-control" name="pro_title"
placeholder="Tambahkan Nama Produk" value="<?=
set_value('pro_title') ?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" style="min-width:150px;text-
align:left;">Deskripsi</div>
<textarea rows="4" class="form-control col-md-12"
name="pro_description" placeholder="Tambahkan Keterangan"><?=
set_value('pro_description') ?></textarea>
</div>
</div>
<div class="form-inline">
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">Harga</div>
<input type="text" class="form-control" name="pro_price"
placeholder="" value="<?= set_value('pro_price') ?>">
<div class="input-group-addon">Rp</div>
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">Available Stock</div>
<input type="text" class="form-control" name="pro_stock"
value="<?= set_value('pro_stock') ?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<input type="file" name="userfile">
</div>
</div>
<div class="form-group">
<div class="input-group">
<button type="submit" class="btn btn-
primary">Create</button>
<?= anchor('admin/products','Cancel',['class'=>'btn btn-danger'])
?>
</div>
</div>
</div>
<?= form_close() ?>
</div><!-- /..panel-body -->
</div><!-- /..panel panel-default -->
</div>
</div>
<!-- /.row -->
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.. container -->
<!-- jQuery -->
<script src="js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>
View_all_invoice.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
<!-- load for table and search in table -->
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery-1.10.2.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery.dataTables.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/dataTables.bootstrap.js');?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo
base_url('/assets/css/dataTables.bootstrap.css');?>">
</head>
<body>
<!-- Navigation -->
<?php $this->load->view('layout/dash_navigation');?>
<!-- Header- dash_menu -->
<?php $this->load->view('layout/dash_menu');?>
<!-- Page Content -->
<div class="container">
<!-- /.row -->
<div class="row">
<!-- body items -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4><i class="fa fa-archive"></i> Invoices List </h4>
</div>
<div class="panel-body">
<table class="table table-striped table-hover" id="table-invoice">
<thead>
<tr>
<th>id</th>
<th>data</th>
<th>due_date</th>
<th>status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<!-- load products from table -->
<?php foreach ($invoices as $invoice ) : ?>
<tr>
<td><?= $invoice->id ?></td>
<td><?= $invoice->data ?></td>
<td><?= $invoice->due_date ?></td>
<td><?= $invoice->status ?></td>
<?php if($invoice->status == 'confirmed'):?>
<td><?= anchor('admin/invoices/detail/'.$invoice-
>id,'Details',['class'=>'btn btn-success btn-xs']) ?>
<?php else:?>
<td><?= anchor('admin/invoices/detail/'.$invoice-
>id,'Details',['class'=>'btn btn-primary btn-xs']) ?>
<?php endif;?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<script>
$(document).ready(function(){
$('#table-invoice').DataTable();
});
</script>
</div>
</div>
</div>
</div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script type="text/javascript" src="<?php
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script type="text/javascript" src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
</body>
</html>
View_invoice_detail.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
<!-- load for table and search in table -->
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery-1.10.2.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery.dataTables.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/dataTables.bootstrap.js');?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo
base_url('/assets/css/dataTables.bootstrap.css');?>">
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/jquery-
lights/jquery.light.js');?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo
base_url('/assets/jquery-lights/jquery.light.css');?>">
</head>
<body>
<!-- Navigation -->
<?php $this->load->view('layout/dash_navigation');?>
<!-- Header- dash_menu -->
<?php $this->load->view('layout/dash_menu');?>
<!-- Page Content -->
<div class="container">
<!-- /.row -->
<div class="row">
<!-- body items -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4><i class="fa fa-archive"></i> Items Ordered in Invoice # <?php
foreach ($invoice as $invoice_id ) : ?><?= $invoice_id->id ?><?php
endforeach; ?> </h4>
</div>
<div class="panel-body">
<table class="table table-striped table-hover" id="table-invoice">
<thead>
<tr>
<th>Nama Produk</th>
<th>Nama Pemesan</th>
<th>Alamat Pengiriman</th>
<th>No telp</th>
<th>Bukti Transfer</th>
<th>Keterangan</th>
<th>Quantity</th>
<th>price</th>
<th>Subtotal</th>
</tr>
</thead>
<tbody>
<!-- load products from table -->
<?php
$total = 0;
foreach ($orders as $order ) :
$subtotal = $order->qty * $order->price;
$total += $subtotal;
?>
<tr>
<td><?= $order->product_title ?></td>
<td><?= $order->nama ?></td>
<td><?= $order->alamat_kirim ?></td>
<td><?= $order->telp ?></td>
<td><a target="_BLANK" data-caption="<?=$order->bukti_trnsfr;?>"
rel="light" href="<?=base_url('assets/uploads/').'/'.$order-
>bukti_trnsfr;?>"><?= $order->bukti_trnsfr ?></a></td>
<td><?= $order->keterangan ?></td>
<td><?= $order->qty ?></td>
<td><?= $order->price ?></td>
<td><?= $subtotal ?></td>
</tr>
<?php endforeach; ?>
<tfoot>
<tr>
<td align="right" colspan="7">Total :</td>
<td><?=$total?></td>
</tr>
</tfoot>
</tbody>
</table>
<script>
$(document).ready(function(){
$('#table-invoice').DataTable();
});
</script>
</div></div></div> </div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script type="text/javascript" src="<?php
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script type="text/javascript" src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
</body>
<script>
$(function() {
$('a[rel=light]').light({
loadText:'Loading...',
unbind:true
});
});
</script>
</html>
Members.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
<!-- load for table and search in table -->
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery-1.10.2.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/jquery.dataTables.min.js');?>"></script>
<script type="text/javascript" language="javascript" src="<?php
echo base_url('/assets/js/dataTables.bootstrap.js');?>"></script>
<link rel="stylesheet" type="text/css" href="<?php echo
base_url('/assets/css/dataTables.bootstrap.css');?>">
</head>
<body>
<!-- Navigation -->
<?php $this->load->view('layout/dash_navigation')?>
<!-- Header- dash_menu -->
<?php $this->load->view('layout/dash_menu')?>
<!-- Page Content -->
<div class="container">
<!-- /.row -->
<div class="table">
<!-- body items -->
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4><i class="fa fa-fw fa-user"></i> Members</h4>
</div>
<div class="panel-body">
<table class="table table-striped table-hover" id="tableproducts">
<thead>
<tr>
<th>ID</th>
<th>Nama Member</th>
<th>Alamat</th>
<th>No Telp</th>
<th>Email</th>
<th>Level</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php foreach ($members as $member ) : ?>
<tr>
<td><?= $member->usr_id ?></td>
<td><?= $member->usr_name ?></td>
<td><?= $member->alamat ?></td>
<td><?= $member->no_telp ?></td>
<td><?= $member->email ?></td>
<td>
<?php if ($member->usr_group == '1' ):?>
<?php echo "administrator" ;?>
<?php endif;?>
<?php if ($member->usr_group == '2' ):?>
<?php echo "C-administrator" ;?>
<?php endif;?>
<?php if ($member->usr_group == '3' ):?>
<?php echo "Members" ;?>
<?php endif;?>
</td>
<td>
<?php if($this->session->userdata('group') == '1' ): ?>
<h4>User Status</h4>
<?php if ($member->usr_id == '1' ):?>
<?php echo "administrator"?>
<?php else:?>
<?php if ($member->stuts == '1' and $member->usr_id != '1' ):?>
<?= anchor('admin/products/disable_usr/'.$member-
>usr_id,'Disabled ',['class'=>'btn btn-danger btn-xs ',
'onclick'=>'return confirm(\'Are You Sure You Want Disabled This
user ? \')'
]) ?>
<?= anchor('#','Active',['class'=>'btn btn-success btn-xs
disabled '
]) ?>
<?php else:?>
<?= anchor('#','Disabled ',['class'=>'btn btn-danger btn-xs
disabled']) ?>
<?= anchor('admin/products/active_usr/'.$member->usr_id,'Active
',['class'=>'btn btn-success btn-xs ',
'onclick'=>'return confirm(\'Are You Sure You Want Disabled This
user ? \')'
]) ?>
<?php endif;?>
<?php endif;?>
<?php endif;?>
</td>
<?php endforeach; ?>
</tbody>
</table>
<script>
$(document).ready(function(){
$('#tableproducts').DataTable();
});
</script>
</div>
</div>
</div>
</div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- Script to Activate the Carousel -->
</body>
</html>
Shoping_history_list.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>Shop Online</title>
<!-- Bootstrap Core CSS -->
<link href="<?php echo
base_url('/assets/css/bootstrap.min.css');?>" rel="stylesheet">
<!-- Custom CSS -->
<link href="<?php echo base_url('/assets/css/modern-
business.css');?>" rel="stylesheet">
<!-- Custom Fonts -->
<link href="<?php echo base_url('/assets/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]>
<script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></s
cript>
<script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js">
</script>
<![endif]-->
</head>
<body>
<!-- Navigation Top_Menu -->
<?php $this->load->view('layout/navigation')?>
<!-- Header Carousel -->
<!-- Page Content -->
<div class="container">
<hr>
<!-- /.row -->
<div class="row">
<!-- body items -->
<!-- load products from table -->
<div class="col-md-12">
<div class="panel panel-default">
<?php if($history != FALSE):?>
<?= $this->session->flashdata('message')?>
<div class="panel-heading">
<h3>My History : </h3>
</div>
<div class="panel-body" width="100px">
<div class="col-md-12">
<hr>
<div class="col-md-1"></div>
<div class="col-md-2">
<h3>Invoice</h3>
</div>
<div class="col-md-2">
<h3>Invoice Date</h3>
</div>
<div class="col-md-2">
<h3>Due Date</h3>
</div>
<div class="col-md-2">
<h3>Total Bayar</h3>
</div>
<div class="col-md-3">
<h3>Status</h3>
</div>
</div>
<?php foreach ($history as $row): ?>
<div class="col-md-12">
<hr>
<div class="col-md-1"></div>
<div class="col-md-2">
<?= $row->id ?>
</div>
<div class="col-md-2">
<?= $row->data ?>
</div>
<div class="col-md-2">
<?= $row->due_date ?>
</div>
<div class="col-md-2">
<?= $row->total ?>
</div>
<div class="col-md-3">
<?php if($row->status == 'unpaid'):?>
<code><?= $row->status ?></code>
<?= anchor('customer/payment_confirmation/'.$row->id,'Confirn
Payment',array('class'=>'btn btn-primary btn-xs')) ?>
<?php else:?>
<label class="btn btn-success btn-xs active"><?= $row->status
?></label>
<?php endif;?>
</div>
</div>
<?php endforeach;?>
<div class="col-md-12">
<hr>
<div class="col-md-10">
<hr>
</div>
<div class="col-md-2">
<?= anchor(base_url(),'Back to Home',['class'=>'btn btn-
default','role'=>'button']) ?>
</div>
</div>
</div>
<?php else : ?>
<div class="panel-heading">
<h3>My History : </h3>
</div>
<div class="col-md-12">
<hr>
<div class="col-md-3"></div>
<div class="col-md-6"><h3>There Are No Shopping History For You
!</h3></div>
<div class="col-md-3"><?= anchor(base_url(),'Shopping
Now',['class'=>'btn btn-primary','role'=>'button']) ?></div>
</div>
<?php endif?>
</div>
</div>
</div>
<!-- /.row -->
<!-- Features Section -->
<!-- /.row -->
<hr>
<!-- Call to Action Section -->
<div class="well">
<div class="row">
<div class="col-md-8">
<p>Harap Menggunakan Email Yang Dapat Dihubungi. Periksa Kembali
Alamat Pengiriman Pada Saat Pembelian.</p>
</div>
<div class="col-md-4">
<a class="btn btn-lg btn-default btn-block" href="#">Aka Store</a>
</div></div></div>
<hr>
<!-- Footer -->
<?php $this->load->view('layout/footer')?>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="<?php echo
base_url('/assets/js/jquery.js');?>"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo
base_url('/assets/js/bootstrap.min.js');?>"></script>
<!-- Script to Activate the Carousel -->
<script>
$('.carousel').carousel({
interval: 5000 //changes the speed
})
</script>
</body>
</html>
Navigation.php <!-- Navigation Top_Menu -->
<nav class="navbar navbar-inverse navbar-fixed-top"
role="navigation">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<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="<?php echo base_url(); ?>"><?php
foreach($get_sitename as $sitename):?><?= $sitename-
>all_value_settings;?><?php endforeach;?></a>
</div>
<!-- Collect the nav links, forms, and other content for toggling
-->
<div class="collapse navbar-collapse" id="bs-example-navbar-
collapse-1">
<ul class="nav navbar-nav navbar-left">
<li>
<a href="<?php echo base_url(); ?>">Home</a></li>
<li>
<a href="<?=base_url('home/about/');?>">About</a></li>
<li>
<a href="<?=base_url('home/tutorial/');?>">Cara Pembelian</a>
</li></ul>
<ul class="nav navbar-nav navbar-right">
<?php if($this->session->userdata('group') == '1' or
$this->session->userdata('group') == '2' ): ?>
<li>
<?php echo anchor('admin/invoices','Invoices List');?></li>
<li>
<?php echo anchor('admin/products/reports','Product
Report');?></li>
<li>
<?php echo anchor('admin/products','Dashboard');?>
<?php endif;?>
</li>
<?php if ($this->session->userdata('group')=='3'): ?>
<li>
<?php echo anchor('customer/payment_confirmation','Konfirmasi
Pembayaran');?></li>
<li>
<?php echo anchor('customer/shopping_history','History');?></li>
<?php endif;?>
<?php if ($this->session->userdata('username')): ?>
<li>
<?php echo ('<a>'.'You Are : '.$this->session-
>userdata('username').'</a>'); ?></li>
<li>
<?php echo anchor('logout','Logout');?>
<?php else:?></li>
<li>
<?php echo anchor('login','Login / Sign Up');?>
<?php endif;?></li>
<?php if($this->session->userdata('group') != '1' and
$this->session->userdata('group') != '2' ): ?>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> My
Cart <?= $this->cart->total_items(); ?> <i class="fa fa-shopping-
cart"> </i> <b class="caret"> </b></a>
<ul class="dropdown-menu">
<li>
<?php
$url_cart = 'My Cart ';
$url_cart .=$this->cart->total_items().' <i class="fa fa-
shopping-cart"></i></a>';
?>
<?= anchor('home/cart',$url_cart); ?></li>
<li>
<?php
$url_order = 'Check Out';
$url_order .=' <i class="fa fa-cc-paypal"></i> '.' <i class="fa
fa-credit-card"></i> '.' <i class="fa fa-cc-visa"></i></a> ';
?>
<?php if ($this->cart->total_items()!=0):?>
<?= anchor('order',$url_order); ?>
<?php else:?>
<?= anchor(base_url(),$url_order); ?>
<?php endif ;?>
</li></ul></li>
<?php endif;?></ul></div>
<!-- /.navbar-collapse --></div>
<!-- /.container --></nav>
Footer.php <footer>
<div class="row">
<div class="col-lg-12">
<p><?php foreach($get_footer as $footer):?><?=$footer->
all_value_settings;?><?php endforeach;?></p>
</div>
</div>
</footer>