Anda di halaman 1dari 189

PERANCANGAN PERANGKAT LUNAK

SISTEM E-COMMERCE
(STUDI KASUS TOKO A4 SPORT PADANG)

Tugas Akhir

Diajukan kepada Tim Penguji Tugas Akhir Jurusan Teknik Elektronika


Sebagai Salah Satu Persyaratan Guna Memperoleh Gelar Sarjana Pendidikan

Oleh :
WIDIA FEBRYANTI
NIM : 53076 / 2010

PROGRAM STUDI PENDIDIKAN TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2015

i
ABSTRAK

Widia Febryanti 2010. Perancangan Perangkat Lunak Sistem E-Commerce


(Studi Kasus Toko A4 Sport Padang). Prodi Pendidikan Teknik Informatika,
Jurusan Elektronika, Fakultas Teknik, Universitas Negeri Padang.

Keterbatasan pegawai yang menangani penjualan secara manual,


mengurangi produktivitas penjualan. Selain itu, Keterbatasan waktu menjadi
kendala untuk pembuatan laporan stok produk dan laporan penjualan oleh kasir.
Dimana beragamnya format dokumentasi, juga menambah waktu dalam
penyusunan laporan. Perkembangan teknologi internet yang sangat pesat dapat
mendukung penerapan sistem e-commerce dalam penjualan produk. Tujuan Tugas
Akhir ini adalah untuk membuat website e-commerce Toko A4 Sport Padang,
yang merupakan sarana pemasaran dan penjualan produk secara online. Dimana
pada perancangan sistem ini, penulis menggunakan konsep Object Oriented
Programming (OOP) dan menggunakan pemodelan Unified Modelling Language
(UML). Setelah diuji coba, perancangan yang menggunakan PHP Framework
Codeigniter dan MySQL sebagai DBMS untuk database, berhasil dengan baik.
Sehingga dapat diimplementasikan oleh Toko A4 Sport Padang, dalam hal
promosi dan penjualan online, serta dapat melakukan manajemen seluruh data
produk, data laporan dan data user.

Kata Kunci : E-Commerce, Database, Object Oriented Programming, Unified


Modelling Language

ii
KATA PENGANTAR

Syukur Allhamdulillah atas kehadirat Allah SWT yang telah memberikan

rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan Tugas Akhir

dengan judul ” Perancangan Perangkat Lunak Sistem E-Commerce (Studi Kasus

Toko A4 Sport Padang)”. Tugas Akhir ini ditulis sebagai salah satu syarat

memperoleh gelar Sarjana Pendidikan Program Studi Pendidikan Teknik

Informatika, Jurusan Teknik Elektronika, Fakultas Teknik, Universitas Negeri

Padang. Tugas Akhir ini dapat diselesaikan berkat bantuan dan bimbingan dari

berbagai pihak. Untuk itu dalam kesempatan ini disampaikan penghargaan dan

rasa terima kasih yang setulus-tulusnya kepada :

1. Bapak Drs. Denny Kurniadi, M.Kom selaku pembimbing I yang telah

memberikan saran dan banyakbimbingan dalam penulisan Tugas Akhir ini.

2. Ibu Yeka Hendriyani, S.Kom, M.Kom selaku pembimbing II yang telah

memberikan saran dan bimbingan dalam penulisan Tugas Akhir ini.

3. Bapak Oktoria, S.Pd, MT selaku dosen ketua penguji Tugas Akhir.

4. Bapak Asrul Huda, S.Kom, M.Kom selaku dosen penguji Tugas Akhir.

5. Bapak dan Ibu dewan dosen Program Studi Pendidikan Teknik Informatika

Jurusan Teknik Elektronika, Fakultas Teknik Universitas Negeri Padang yang

telah membimbing penulis selama menuntut ilmu.

6. Pihak Toko A4 Sport Padang, yang telah bersedia bekerja sama dan

memberikan izin pengambilan data.

iii
7. Rekan-rekan mahasiswa jurusan teknik elektronika Universitas Negeri

Padang, khususnya program studi pendidikan teknik informatika angkatan

2010.

Semua pihak yang telah membantu penulis dalam menuntaskan Tugas Akhir

ini dan menyelesaikan studi, yang tidak bisa penulis sebutkan satu per satu.

Semoga bantuan dan bimbingan serta arahan yang diberikan menjadi amal saleh

dan mendapat pahala dari Allah SWT, amin.

Semoga petunjuk, saran, bimbingan dan motivasi yang bapak, ibu,

keluarga, dan teman-teman berikan menjadi amal kebaikan dan mendapatkan

balasan yang lebih baik dari ALLAH SWT. Tak ada gading yang tak retak tidak

ada manusia yang sempurna, untuk itu dengan segala kerendahan hati diharapkan

saran dan kritik yang membangun dari semua pihak demi sempurnanya Tugas

Akhir ini. Semoga Tugas Akhir ini bisa bermanfaat bagi penulis khususnya, dan

semua pihak pada umumnya.

Padang, 10 Mei 2015

Penulis

iv
DAFTAR ISI

Halaman

HALAMAN JUDUL ........................................................................................ i


ABSTRAK ........................................................................................................ ii
KATA PENGANTAR ...................................................................................... iii
DAFTAR ISI ...................................................................................................... v
DAFTAR GAMBAR ......................................................................................... viii
DAFTAR TABEL ............................................................................................ x
DAFTAR LAMPIRAN .................................................................................... xii
BAB I PENDAHULUAN ............................................................................ 1

A. Latar Belakang ............................................................................ 1


B. Identifikasi Masalah .................................................................... 3
C. Batasan Masalah ......................................................................... 4
D. Rumusan Masalah ....................................................................... 4
E. Tujuan Tugas Akhir .................................................................... 5
F. Manfaat Tugas Akhir................................................................... 6
BAB II LANDASAN TEORI ...................................................................... 8
A. Ruang Lingkup E-Commerce ..................................................... 8
1. Pengertian E-Commerce .......................................................... 8
2. Keuntungan E-commerce ......................................................... 9
3. Kerugian Perdagangan Elektronik ........................................... 12
4. Pemesanan ................................................................................ 13
5. Promotion (Promosi) E-Commerce ......................................... 13
B. Rekayasa Perangkat Lunak (RPL) ............................................... 14
1. Pengertian RPL ........................................................................ 14
2. Kriteria Rekayasa Perangkat Lunak ......................................... 15
3. Tantangan Rekayasa Perangkat Lunak ................................... 16
5. Pengembangan RPL Model Waterfall ..................................... 17

v
C. Perancangan Unified Modelling Language (UML)...................... 18
1. Pengertian UML ...................................................................... 18
2. Diagram-diagram Dalam UML................................................ 19
D. Konsep Dasar Pemrograman Berorientasi Objek ........................ 21
1. Pengertian Pemrograman Berorientasi Objek .......................... 21
2. Keuntungan Menggunakan Metodologi Berorientasi Objek ... 22
3. Konsep Dasar Pemrograman Berorientasi Objek .................... 22
E. Database (Basis Data) ................................................................. 23
1. Database MySQL .................................................................... 23
2. DBMS (Database Management System) ................................. 24
3. Alur Hidup Database ............................................................... 25
4. Normalisasi .............................................................................. 26
5. Entity Relationship Diagram (ERD) ........................................ 27
F. Tools Pendukung .......................................................................... 28
1. Xammp ..................................................................................... 28
2. Framework ............................................................................... 28
3. Codeigniter .............................................................................. 30
4. Model, View, Controller........................................................... 33

BAB III ANALISIS DAN PERANCANGAN SISTEM............................... 35

A. Analisis Sistem............................................................................. 35
1. Analisis Sistem Yang Berjalan ............................................... 35
2. Analisis Fungsional ................................................................. 40
3. Analisis Non Fungsional .......................................................... 40
4. Analisis Kebutuhan Sistem ...................................................... 41
5. Analisis Masalah dan Solusi .................................................... 41
6. Analisis Antar Muka ................................................................ 42
7. Flowmap yang Sedang Berjalan .............................................. 43
B. Perancangan Sistem ..................................................................... 44
1. Flowmap Sistem Yang Akan Dirancang ................................. 44

vi
2. Perancangan Context Diagram ................................................ 46
3. Use Case Diagram .................................................................. 47
4. Activity Diagram ..................................................................... 48
C. Perancangan Database ................................................................. 53
1. Normalisasi .............................................................................. 54
2. Struktur Tabel .......................................................................... 57
3. Entity Relationship Diagram (ERD) ........................................ 63
D. Perancangan Antar Muka (Interface)........................................... 64
1. Perancangan Antar Muka Halaman Utama .............................. 64
2. Perancangan Input .................................................................... 64
3. Perancangan Output ................................................................. 68

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM .......................... 72

A. Implementasi Sistem .................................................................... 72


1. Halaman Home Costumer ........................................................ 72
2. Halaman Login Costumer ........................................................ 74
3. Koneksi Database .................................................................... 75
4. Halaman User Admin .............................................................. 76
5. Halaman User Owner .............................................................. 90
6. Halaman User Supplier ............................................................ 95
B. Pengujian Sistem .......................................................................... 99
1. Pengujian Halaman Akses Costumer........................................ 99
2. Pengujian Halaman Akses Admin ........................................... 100
3. Pengujian Halaman Akses Owner............................................ 102
4. Pengujian Halaman Akses Supplier ......................................... 103
5. Kelemahan dan Solusi Sistem .................................................. 104
C. Pembahasan.................................................................................. 104
BAB V PENUTUP ......................................................................................... 106

A. Kesimpulan .................................................................................. 106

vii
B. Saran ............................................................................................ 107

DAFTAR PUSTAKA .................................................................................... 108

viii
DAFTAR GAMBAR
Halaman
Gambar 1 : Ilustrasi Model Waterfall ........................................................... 17
Gambar 2 : Alur Hidup Basis Data ............................................................... 26
Gambar 3 : Flowmap yang Sedang Berjalan ................................................ 43
Gambar 4 : Flowmap yang Akan Dibangun ................................................. 45
Gambar 5 : Context Diagram ........................................................................ 46
Gambar 6 : Use Case Diagram...................................................................... 48
Gambar 7 : Activity Diagram Menampilkan Menu Home ............................ 49
Gambar 8 : Activity Diagram Registrasi User .............................................. 50
Gambar 9 : Activity Diagram Login .............................................................. 50
Gambar 10 : Activity Diagram Order ............................................................. 51
Gambar 11 : Activity Diagram Konfirmasi Pembayaran ................................ 52
Gambar 12 : Activity Diagram Cek Status Order ........................................... 53
Gambar 13 : Entity Relationship Diagram...................................................... 63
Gambar 14 : Rancangan Halaman Utama ....................................................... 64
Gambar 15 : Form Input Admin ...................................................................... 65
Gambar 16 : Rancangan Input Halaman Login Supplier ................................ 66
Gambar 17 : Rancangan Input Halaman Login Customer .............................. 66
Gambar 18 : Rancangan Input Halaman Biodata Costumer ........................... 67
Gambar 19 : Form Input Data Owner ............................................................. 68
Gambar 21 : Halaman Login Costumer .......................................................... 74
Gambar 22 : Pesan Error Login ...................................................................... 75
Gambar 23 : Halaman Home Admin ............................................................... 76
Gambar 24 : Halaman Manajemen Kategori Admin ...................................... 77
Gambar 25 : Halaman Manajemen Produk Admin ......................................... 78
Gambar 26 : Halaman Manajemen Merk Produk .......................................... 79

viii
Gambar 27 : Halaman Manajemen Ulasan Admin ......................................... 80
Gambar 28 : Halaman Program Diskon Admin .............................................. 81
Gambar 29 : Halaman Stok Produk Sedikit .................................................... 82
Gambar 30 : Halaman Permintaan Produk Admin ......................................... 82
Gambar 31 : Halaman Pesan Admin ............................................................... 84
Gambar 32 : Halaman Manajemen Order Admin........................................... 84
Gambar 33 : Halaman Edit Status Order ........................................................ 85
Gambar 34 : Halaman Pengaturan Admin ...................................................... 86
Gambar 35 : Halaman Menu Supplier User Admin ....................................... 87
Gambar 36 : Halaman Menu Kurir User Admin ............................................ 88
Gambar 37 : Halaman Menu Laporan Admin................................................. 89
Gambar 38 : Halaman Katalog Kategori Owner ............................................. 90
Gambar 39 : Halaman Katalog Produk Owner ............................................... 91
Gambar 40 : Halaman Katalog Merk Produk Owner...................................... 92
Gambar 41 : Halaman Lapora Order Owner .................................................. 93
Gambar 42 : Halaman Laporan Penjualan Owner .......................................... 94
Gambar 43 : Halaman Login Supplier ............................................................ 96
Gambar 44 : Halaman Permintaan Produk User Supplier .............................. 97
Gambar 45 : Halaman Pesan User Supplier .................................................... 99

ix
DAFTAR TABEL

Halaman

Tabel 1. Simbol-simbol Pada Use Case Diagram ............................................ 20


Tabel 2. Simbol-simbol Pada Activity Diagram ............................................... 22
Tabel 3. Perkembangan SQL ............................................................................ 23
Tabel 4. Simbol-simbol ERD ............................................................................ 28
Tabel 5. Analisis User ....................................................................................... 35
Tabel 6. Analisis Dokumen ............................................................................... 36
Tabel 7. Analisis Masalah dan Solusi ............................................................... 42
Tabel 8. Bentuk Unnormal................................................................................ 54
Tabel 9. First Normal Form (1NF) ................................................................... 55
Tabel 10. Second Normal Form (2NF1) ............................................................. 56
Tabel 11. Second Normal Form (2NF2) ............................................................. 56
Tabel 12. Second Normal Form (2NF3) ............................................................. 56
Tabel 13. Normalisasi Admin ............................................................................. 56
Tabel 14. Normalisasi Supplier ........................................................................... 57
Tabel 15. Normalisasi Costumer ......................................................................... 57
Tabel 16. Normalisasi Order Produk .................................................................. 57
Tabel 17. Tabel Admin ....................................................................................... 58
Tabel 18. Tabel Costumer ................................................................................... 58
Tabel 19. Tabel Supplier ..................................................................................... 59
Tabel 20. Tabel Kategori .................................................................................... 60
Tabel 21. Tabel Produk ....................................................................................... 60
Tabel 22. Tabel Order ......................................................................................... 61
Tabel 23. Tabel Order Produk ............................................................................ 62
Tabel 24. Tabel Confirm ..................................................................................... 62

x
Tabel 25. Rancangan Output Order Costumer ................................................... 69

Tabel 26. Laporan Order .................................................................................... 70

Tabel 27. Laporan Penjualan .............................................................................. 70

Tabel 28. Pengujian Halaman Akses Costumer .................................................. 99

Tabel 29. Pengujian Halaman Akses Admin ...................................................... 100

Tabel 30. Pengujian Halaman Akses Owner ...................................................... 102

Tabel 31. Pengujian Halaman Akses Supplier .................................................... 103

Tabel 32. Kelemahan Sistem............................................................................... 104

xi
DAFTAR LAMPIRAN

Lampiran 1 : Lampiran Script

Lampiran 2 : Lampiran Surat Izin Pengambilan Data

Lampiran 3 : Lampiran Surat Balasan Izin pengampilan Data

Lampiran 4 : Lampiran Surat Keterangan pengambilan Data

xii
BAB I

PENDAHULUAN

A. Latar Belakang

Perkembangan teknologi informasi dan komunikasi di seluruh dunia,

membuka peluang bagi para pelaku usaha untuk mengembangkan kegiatan

bisnis melalui media elektronik (electronic business/e-business), yang

diprediksi akan menjadi model bisnis besar di masa depan. Salah satu

bentuk e-business yang paling dikenal publik adalah kegiatan “perdagangan

secara elektronik”, atau yang lazim dikenal dengan istilah electronic

commerce atau e-commerce.

Perkembangan yang begitu pesat, sekarang sangat menarik perhatian

masyarakat dalam mengembangkan bisnis online melalui website maupun

jejaring sosial. Website e-commerce sebagai salah satu tempat perdagangan

online yang semakin banyak bermunculan di internet, mulai dari bidang

usaha fashion, kosmetik, elektronik, buku, aksesoris dan properti olahraga.

Website termasuk salah satu tempat berbelanja online yang sangat

mudah untuk melakukan transaksi pembelian. Dengan sistem belanja yang

praktis membuat masyarakat lebih tertarik berbelanja langsung melalui

website itu sendiri. Website menyediakan keterangan lengkap tentang

produk dan dapat melakukan transaksi di dalam website itu sendiri, sehingga

1
2

kapan saja dan dimana saja kita dapat melakukan pembelian, dengan catatan

kita terkoneksi dengan internet.

Demikian pula studi kasus yang dilakukan pada Toko A4 Sport Padang,

yang beralamat di Jl. Sutomo, Simpang Aru, Padang. Toko ini menjual

beberapa perlengkapan olah raga dengan multibrand atau banyak merk. Tapi

dengan menggunakan supplier resmi dengan merk Adidas. Seperti sepatu

olahraga, bola, seragam olahraga, dan sebagainya.

Pada toko A4 Sport jumlah karyawan hanya 2 orang. Keterbatasan

jumlah karyawan dan beragamnya format dokumentasi, menambah waktu

dalam penyusunan laporan manual stok produk maupun penjualan, serta tidak

adanya keamanan data. Karyawan tersebut juga mengemban tugas untuk

kebersihan dan kerapian toko. Tidak jarang ketika banyaknya pelanggan

datang, karyawan tersebut harus meninggalkan pekerjaannya untuk melayani

konsumen. Sehingga pelanggan tidak terlayani dengan maksimal. Banyaknya

pelanggan membuat permintaan dan pesanan akan suatu produk menjadi

meningkat, keadaan tersebut menjadi kendala dalam persediaan stok.

Berdasarkan hasil survei penulis, pengunjung rata-rata per hari adalah

30-35 orang, dengan jumlah pembeli rata-rata 25-30 orang, dan pengunjung

yang berasal dari luar kota Padang rata-rata 20-25 orang per bulan. Di

samping itu, tingkat rata-rata penjualan toko ini per hari adalah Rp.

2.500.000,00 sampai dengan Rp. 8.500.000,00.

Dengan kondisi seperti ini, perkembangan teknologi e-commerce

dapat dimanfaatkan demi kelancaran sebuah penjualan. Selain dapat di


3

akses online, manajemen sistem report dan order produk dapat dilakukan

dengan maksimal antar user terkait. Sehingga dalam penyusunan laporan

stok produk dan penjualan menjadi lebih efektif dan efisien.

Untuk perancangan sebuah website e-commerce yang mempunyai

sistem seperti dijelaskan di atas, penulis membutuhkan bahasa pemograman

PHP Framework Codeigniter. Karena codeigniter dieksekusi dengan cepat

dan memiliki performance yang handal. Selain itu, framework codeigniter

juga menerapkan konsep Model-View-Controller (MVC). Pemodelan yang

digunakan adalah Unified Modelling Language (UML), karena bahasa

desainnya lebih mudah untuk diimplementasikan. Sedangkan konsep

perancangan yang digunakan adalah Object Oriented Programming (OOP),

karena konsep ini lebih cocok digunakan untuk pemograman PHP.

Berawal dari latar belakang masalah tersebut, penulis tertarik untuk

merancang perangkat lunak sistem e-commerce untuk Toko A4 Sport

sebagai Tugas Akhir (TA) dengan judul penulisan “Perancangan

Perangkat Lunak Sistem E-Commerce (Studi Toko A4 Sport Padang).

B. Identifikasi Masalah

Berdasarkan latar belakang di atas, dapat diidentifikasi masalah sebagai

berikut :

1. Keterbatasan karyawan yang menangani penjualan secara manual,

mengurangi produktivitas penjualan.

2. Keterbatasan waktu menjadi kendala untuk pembuatan laporan stok

produk dan laporan penjualan.


4

3. Beragamnya format dokumentasi menambah waktu dalam penyusunan

laporan.

4. Banyaknya permintaan suatu produk, namun tidak bisa terlayani dengan

baik.

5. Banyaknya pelanggan yang melakukan pesanan, sehingga mengalami

kendala dalam persediaan stok.

C. Batasan Masalah

Agar tugas akhir ini lebih terarah dan sesuai dengan tujuan yang

diharapkan, maka ditetapkan batasan masalah yaitu sebagai berikut :

1. Perangkat lunak yang akan dibangun adalah sistem e-commerce yang

dapat diakses user secara online.

2. Perangkat ini dapat melayani sistem penjualan online dan sistem

manajemen data produk dan laporan.

3. Perangkat yang diimplementasikan pada perancangan sistem e-

commerce menggunakan konsep Object Oriented Programming (OOP).

4. Model perancangan sistem e-commerce yang digunakan adalah Unified

Modelling Language (UML).

5. Bahasa pemrograman yang digunakan pada perancangan perangkat

lunak sistem e-commerce adalah PHP Framework Codeigniter, software

development code generator atau editornya menggunakan Sublime Text

3, MySQL sebagai DBMS untuk database, serta Xampp-win 32-1.6.8

sebagai servernya.
5

D. Rumusan Masalah

Berdasarkan identifikasi masalah dan batasan masalah di atas, maka

rumusan masalah yang akan dikaji dalam tugas akhir ini yaitu :

1. Bagaimana membangun sebuah perangkat lunak sistem e-commerce yg

dapat diakses user secara online ?

2. Bagaimana merancang sebuah sistem e-commerce yang dapat melayani

sistem penjualan online dan sistem manajemen data produk dan

laporan. ?

3. Bagaimana konsep perancangan sebuah sistem e-commerce

menggunakan Object Oriented Programming (OOP) ?

4. Bagaimana merancang sistem e-commerce menggunakan pemodelan

Unified Modelling Language (UML) ?

5. Bagaimana melakukan perancangan perangkat lunak sistem e-

commerce menggunakan bahasa pemrograman PHP Framework

Codeigniter, software development code generator atau editornya

menggunakan Sublime Text 3, DBMS yang digunakan untuk database

adalah MySQL, serta Xampp-win 32-1.6.8 sebagai servernya ?

E. Tujuan Tugas Akhir

Adapun tujuan yang ingin dicapai dari tugas akhir ini adalah :

1. Menghasilkan sebuah perangkat lunak sistem e-commerce yang

dimanfaatkan secara online.


6

2. Menghasilkan sebuah perangkat lunak sistem e-commerce yang dapat

melayani sistem penjualan online dan sistem manajemen data produk

dan laporan.

3. Menghasilkan sebuah sistem e-commerce yang dirancang menggunakan

konsep Object Oriented Programming (OOP).

4. Menciptakan sebuah sistem e-commerce yang dirancang menggunakan

Unified Modelling Language (UML).

5. Menghasilkan sebuah perangkat lunak sistem e-commerce yang

dirancang menggunakan bahasa pemrograman PHP Framework

Codeigniter, software development code generator atau editornya

menggunakan Sublime Text 3, DBMS yang digunakan untuk database

adalah MySQL, serta Xampp-win 32-1.6.8 sebagai servernya.

F. Manfaat Tugas Akhir

Adapun manfaat yang diharapkan dari penelitian ini yaitu :

1. Bagi Toko A4 Sport Padang

a. Dapat terpenuhinya informasi tentang tempat dan barang yang

dijual oleh Toko A4 Sport Padang kepada masyarakat luas.

b. Mempermudah pemilik Toko A4 Sport Padang untuk melakukan

manajemen data produk dan laporan keuangan.

c. Meningkatkan tingkat promosi kepada masyarakat luas.

2. Bagi Konsumen

a. Mempermudah konsumen untuk menemukan informasi untuk

analisa sebelum melakukan pembelian.


7

b. Mempermudah konsumen untuk melakukan pembelian, sehingga

jika alamatnya jauh tidak perlu lagi datang ke toko tersebut.

3. Bagi Penulis

a. Dengan melakukan perancangan perangkat lunak ini, penulis dapat

meningkatkan daya kreativitas, dan bisa secara langsung

menerapkan ilmu yang telah dipelajari selama ini.

b. Dapat melakukan penelitian, perancangan dan ikut berpartisipasi

dalam penggunaan dan pengembangan teknologi komputerisasi.

c. Penulis dapat mengetahui lebih banyak tentang perancangan

sebuah website.

4. Bagi Jurusan Elektronika

a. Meningkatkan kontribusi sebuah lembaga pendidikan bagi

kemajuan informasi untuk masyarakat.

b. Agar dapat meningkatkan nama besar di masyarakat, sebagai alat

bukti bahwa ilmu yang diajarkan kepada mahasiswa benar-benar

bermanfaat
BAB II

LANDASAN TEORI

A. Ruang Lingkup E-Commerce

1. Pengertian E-Commerce

Dengan semakin matangnya teknologi internet dan web, telah

mengubah cara berbagai perusahaan untuk mengendalikan bisnis

mereka. Dengan semakin meluasnya pengaruh dan dampak internet,

dan semakin banyak perusahaan menggunakan internet, kemungkinan

untuk mengendalikan perdagangan antar bisnis di internet semakin

bertambah, dan semakin menjadi bagian yang utama dari perdagangan

barang dan jasa saat ini.

E-commerce sering disebut dengan perdagangan elektronik,

merupakan prosedur berdagang atau mekanisme jual-beli di internet

dimana pembeli dan penjual akan melakukan transaksi di dunia maya.

Menurut Adi Nugroho (2006:5) “perdagangan elektronik (e-

commerce) didefinisikan sebagai cara untuk menjual dan membeli

barang-barang (dan jasa) lewat jaringan internet, tetapi hal itu (tentu

saja) mencakup berbagai aspek”.

Itu berarti e-commerce dapat melibatkan fasilitas elektronik,

pertukaran data elektronik, sistem manajemen inventori otomatis, dan

sistem pengumpulan data otomatis. Sehingga sistem jual beli online

dapat dilakukan pada tempat yang berjauhan.

8
9

Dari definisi di atas, penulis menyimpulkan bahwa e-commerce

merupakan suatu proses jual beli produk dan atau jasa yang dilakukan

konsumen dari perusahaan dengan menggunakan media online

sebagai perantara transaksi.

2. Keuntungan E-Commerce (Perdagangan Elektronik)

Perdagangan elektronik menawarkan kepada perusahaan

keuntungan jangka pendek dan jangka panjang. Perdagangan

elektronik tidak hanya membuka pasar baru bagi produk dan / jasa

yang ditawarkan, mencapai konsumen baru, tetapi ia juga dapat

mempermudah cara perusahaan melakukan bisnis. Disamping itu,

perdagangan elektronik juga sangat bermanfaat bagi pelanggan /

konsumen dan masyarakat umum. Menurut Adi Nugroho (2006:19)

manfaat perdagangan elektronik adalah sebagai berikut :

a) Keuntungan Bagi Perusahaan

1) Memperpendek jarak.

Perusahaan-perusahaan dapat lebih mendekatkan diri dengan

konsumen. Dengan hanya mengklik link-link yang ada pada

situs-situs, konsumen dapat menuju ke perusahaan dimana

pun saat itu mereka berada.

2) Perluasan pasar.

Jangkauan pemasaran menjadi semakin luas dan tidak

terbatas oleh area geografis dimana perusahaan berada.


10

3) Perluasan jaringan mitra bisnis.

Pada perdagangan tradisional, sangat sulit bagi suatu

perusahaan untuk mengetahui posisi georgrafis mitra

kerjanya yang berada di negara-negara lain atau benua lain.

4) Efisien.

Seperti disinggung dibagian sebelumnya, perdagangan

elektronik akan sangat memangkas biaya-biaya operasional.

b) Keuntungan Bagi Konsumen

1) Efektif.

Konsumen dapat memperoleh informasi tentang produk / jasa

yang dibutuhkannya dan bertransaksi dengan cara yang cepat

dan murah.

2) Aman secara fisik.

Konsumen tidak perlu mendatangi toko tempat perusahaan

menjajakan barangnya dan ini memungkinkan konsumen

dapat bertransaksi dengan aman sebab di daerah-daerah

tertentu mungkin sangat berbahaya jika berkendaraan dan

membawa uang tunai dalam jumlah yang besar.

3) Fleksibel.

Konsumen dapat melakukan transaksi dari berbagai lokasi,

baik dari rumah, kantor, warnet, atau tempat-tempat lainnya.

Konsumen juga tidak perlu berdandan rapi seperti pada

perdagangan tradisional umumnya.


11

c) Keuntungan Bagi Masyarakat Umum

1) Mengurangi polusi dan pencemaran lingkungan.

Dengan adanya perdagangan elektronik yang dapat

dilakukan dimana saja, konsumen tidak perlu melakukan

perjalanan ke toko-toko, dimana hal ini akan mengurangi

jumlah kendaraan yang berlalu-lalang di jalanan.

2) Membuka peluang kerja baru.

Era perdagangan elektronik akan membuka peluang-

peluang kerja baru bagi mereka yang tidak „buta‟

teknologi. Seperti pemrogram komputer, perancang web,

ahli di bidang basis data, analisis sistem, ahli di bidang

jaringan komputer, dan sebagainya.

3) Mengutungkan dunia akademis.

Berubahnya pola hidup masyarakat dengan hadirnya

perdagangan elektronik, kalangan akademisi akan semakin

diperkaya dengan kajian-kajian psikologis, antropologis,

sosial-budaya, dan sebagainya.

4) Meningkatkan kualitas sumberdaya manusia.

Perdagangan elektronik, seperti juga teknologi komputer

pada umumnya, hanya bisa dilakukan oleh orang-orang

yang tidak gaptek (gagap teknologi), sehingga

merangsang orang-orang untuk mempelajari teknologi

komputer.
12

Jadi, keuntungan lainnya bahwa e-commerce menawarkan

pengurangan sejumlah biaya tambahan karena biaya tersebut tidak

digunakan untuk gedung dan pelayanan pelanggan (costumer

service), jika dibandingkan dengan jenis bisnis tradisional. Hal ini

membantu perusahaan dalam meningkatkan keuntungannya. Salah

satu jenis bisnis yang mengambil keuntungan dari e-commerce adalah

perbankan.

3. Kerugian Perdagangan Elektronik

Sebagai media online, selain mempunyai keuntungan,

perdagangan elektronik juga mempunyai kerugian. Karena sesuatu

ciptaan manusia pasti memiliki kekurangan dan sisi negatif. Namun,

dari sudut pandang manapun, perdangan elektronik memiliki sisi

keuntungan yang lebih banyak dari pada sisi kerugiannya. Menurut

pendapat Adi Nugroho (2006:22) segi negatif perdagangan elektronik

sebagai berikut :

a) Meningkatkan Individualisme

Pada perdagangan elektronik, seseorang dapat bertransaksi dan

mendapatkan barang/jasa yang diperlukannya tanpa perlu

bertemu dengan siapa pun.

b) Terkadang Menimbulkan Kekecewaan

Apa yang dilihat di layar monitor komputer kadang berbeda

dengan apa yang dilihat secara kasat mata. Seseorang yang

membeli lukisan di internet mungkin suatu saat akan mendapati


13

lukisannya tidak memiliki warna yang sama dengan apa yang

dilihatnya di layar monitor.

c) Tidak Manusiawi

Sering kali orang pergi ke toko-toko dan pusat-pusat

perbelanjaan (mall) tidak sekedar ingin memuaskan

kebutuhannya akan barang/jasa tertentu. Ia mungkin

melakukannya untuk penyegaran (refreshing). Perdagangan

elektronik gagal dipandang dari sudut pandang seperti ini.

4. Pemesanan

Pemesan merupakan hal yang rutin bahwa para konsumen

secara elektronik mengirimkan pesanan-pesanan akan barang dan/atau

jasa ke perusahaan. Menurut Adi Nugroho (2006:15) “Form

elektronik merupakan form yang mirip dengan surat pesanan pada

perdagangan tradisional”.

Aplikasi-aplikasi klien/server sering dirancang untuk

menanganinya. Web menuntut campur tangan yang relatif sedikit dari

personal-personal perusahaan, namun karena kebanyakan sistem web

mendukung form-form elektronik, kebanyakan perusahaan yang

bergerak di bidang perdagangan elektronik saat ini menggunakan

aplikasi web dan basis data untuk tujuan yang sama.

5. Promotion (Promosi) E-Commerce

Fungsi penjualan dan pemasaran merupakan entitas yang

terpisah dalam rantai nilai berorientasi konsumen. Menurut Adi


14

Nugroho (2006:210), “Promotion (promosi) dalam ilmu pemasaran

tradisional, merupakan suatu upaya perusahaan agar semua fungsi-

fungsi pemasaran suatu saat nanti akan berakhir dengan tahapan

penjualan”.

Adi Nugroho (2006:210) juga menjelaskan pesan-pesan ini

mungkin dikomunikasikan dengan berbagai cara, yaitu :

a) Saluran periklanan komersial.

b) Cerita-cerita dan berita-berita pers.

c) Kalimat-kalimat dari mulut ke mulut.

d) Pengalaman konsumen secara pribadi.

e) Pengemasan.

B. Rekayasa Perangkat Lunak (RPL)

1. Pengertian RPL

Perangkat lunak (software) adalah program komputer yang

terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi

kebutuhan, model desain, dan cara penggunaan (user manual).

Menurut Rosa A. S. & M. Shalahuddin (2013:4) “Rekayasa

perangkat lunak (software engineering) merupakan pengembangan

dengan menggunakan prinsip atau konsep rekayasa dengan tujuan

menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya

dan bekerja secara efisien menggunakan mesin”.


15

Jadi rekayasa perangkat lunak adalah sebuah pengembangan

dari konsep rekayasa yang sudah ada untuk menghasilkan sebuah

perangkat lunak yang bernilai lebih dari yang sebelumnya.

2. Kriteria Rekayasa Perangkat Lunak

Rekasaya perangkat lunak lebih fokus pada praktik

pengembangan perangkat lunak dan mengirimkan perangkat lunak

yang bermanfaat kepada pelanggan (costumer). Rosa A. S. & M.

Shalahuddin (2013:5) juga menjelaskan rekayasa perangkat lunak

lebih fokus pada bagaimana membuat perangkat lunak yang

memenuhi kriteria berikut :

a) Dapat terus dipelihara setelah perangkat lunak selesai dibuat

seiring berkembangnya teknologi dan lingkungan

(maintainability).

b) Dapat diandalkan dengan proses bisnis yang dijalankan dan

perubahan yang terjadi (dependability dan robust).

c) Efisien dari segi sumber daya dan penggunaan.

d) Kemampuan untuk dipakai sesuai dengan kebutuhan (usability).

Dari kriteria di atas, maka perangkat lunak yang baik adalah

perangkat lunak yang dapat memenuhi kebutuhan pelanggan atau user

atau berorientasi pada pelanggan atau pemakai perangkat lunak, bukan

berorientasi pada pembuat atau pengembang perangkat lunak.


16

3. Tantangan Rekayasa Perangkat Lunak

Dalam hal pengembangannya, rekayasa perangkat lunak juga

memiliki tantangan yang dihadapi dari prosenya. Rosa A. S. & M.

Shalahuddin (2013:7) juga menguraikan tantangan rekayasa perangkat

lunak sebagai berikut :

a) Tantangan warisan dimana perangkat lunak dikembangkan

selama bertahun-tahun oleh orang-orang yang berbeda, hal ini

dapat menyebabkan ketidakpahaman atau perubahan tujuan

pembuatan perangkat lunak

b) Tantangan heterogenetis dimana perangkat lunak harus dapat

beradaptasi dengan teknologi yang terus berkembang dengan

semakin luasnya lingkungan distribusi perangkat lunak

c) Tantangan pengiriman bahwa perangkat lunak dengan sekala

besar dan kompleks sekalipun dapat sampai ke tangan pelanggan

(costumer) atau user dengan cepat dan kualitas tetap terjaga.

4. Proses Rekayasa Perangkat Lunak

Proses rekayasa perangkat lunak dilakukan selama

pembangunan perangkat lunak. Rosa A. S. & M. Shalahuddin

(2013:11) juga menjelaskan proses perangkat lunak sebagai berikut :

a) Pengumpulan spesifikasi (spesification). Mengetahui apa saja

yang harus dapat dikerjakan sistem perangkat lunak dan batasan

pengembangan perangkat lunak.


17

b) Pengembangan (development). Pengembangan perangkat lunak

untuk menghasilkan sistem perangkat lunak.

c) Validasi (validation). Memeriksa apakah perangkat lunak sudah

memenuhi keinginan pelanggan (costumer).

d) Evolusi (evolution). Mengubah perangkat lunak untuk

memenuhi perubahan kebutuhan pelanggan (costumer).

5. Pengembangan RPL Model Waterfall

Model SLDC air terjun (waterfall) sering juga disebut model

sekuensial linier (sequential linear) atau alur hidup klasik (classic life

cycle). Menurut Martin Fowler (2005:28) “Gaya waterfall adalah

memecah sebuah proyek berdasarkan aktivitas. Adapun kegiatan

untuk membuat perangkat lunak yaitu analisis persyaratan, desain,

coding, dan testing”.

Sedangkan menurut Rosa A. S. & M. Shalahuddin (2013:28)

model air terjun menyediakan pendekatan alur hidup perangkat lunak

secara sekuensial atau terurut dimulai dari analisis, desain, pengodean,

pengujian, dan tahap pendukung (support).

Berikut adalah gambar model airt terjun :

Sistem / rekayasa
Informasi

Analisis Desain Pengodean Pengujian

Gambar 1. Ilustrasi Model Waterfall


18

Dari gambar di atas dijelaskan urutan pemodelan waterfall yang

dimulai dari analisis, desain, pengodean dan pengujian.

a) Analisis kebutuhan perangkat lunak. Proses pengumpulan

kebutuhan dilakukan secara intensif untuk menspesifikasikan

kebutuhan perangkat lunak.

b) Desain. Desain perangkat lunak adalah prosesmulti langkah

yang fokus pada desain pembuatan program perangkat lunak

termasuk struktur data, arsitektur perangkat lunak, representasi

antarmuka, dan prosedur pengodean.

c) Pembuatan kode program. Desain harus ditranslasikan ke dalam

program perangkat lunak.

d) Pengujian. Pengujian fokus pada perangkat lunak secara dari

segi lojik dan fungsional dan memastikan bahwa semua bagian

sudah diuji.

e) Pendukung (support) atau pemeliharaan (maintenance). Tidak

menutup kemungkinan sebuah perangkat lunak mengalami

perubahan ketika sudah dikirimkan ke user.

C. Perancangan Unified Modelling Language (UML)

1. Pengertian UML

Dalam buku yang berjudul UML Distilled Panduan Singkat

Bahasa Pemodelan Objek Standar Martin Fowler (2005:1)

menjelaskan bahwa “Unified Modelling Language (UML) adalah

keluarga notasi grafis yang didukung oleh meta-model tunggal, yang


19

membantu pendeskripsian dan desain sistem perangkat lunak,

khususnya sistem yang dibangun menggunakan pemrograman

berorientasi objek (OO)”.

Sedangkan menurut Rosa A. S. & M. Shalahuddin (2013:137)

“UML merupakan bahasa visual untuk pemodelan dan komunikasi

mengenai sebuah sistem dengan menggunakan diagram dan teks-teks

pendukung.”

Jadi UML adalah bahasa yang digunakan untuk pemodelan dan

desain rancangan perangkat lunak dalam bentuk diagram dan teks

untuk menggambarkan rancangan.

2. Diagram-diagram dalam UML

Pada saat membuat desain, diperlukan teknik untuk

mendokumentasikan perangkat lunak sejak pertama kali ditulis.

Dokumentasi ini dapat menolong orang-orang untuk memahami

perangkat lunak tersebut saat mereka harus menelaahnya tapi tidak

menguasai kode-kodenya. Rosa A. S. & M. Shalahuddin (2013:141)

menjelaskan diagram UML sebagai berikut :

a) Use-case Diagram

Use case diagram merupakan pemodelan untuk

melakukan (behavior) sistem informasi yang akan dibuat. Use

case mendeskripsikan sebuah interaksi antara satu atau lebih

aktor dengan sistem informasi yang akan dibuat.


20

Syarat penamaan pada use case adalah didefinisikan

sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada

use case yaitu pendefinisian apa yang disebut aktor dan use

case.

1) Aktor merupakan orang, proses, atau sistem lain yang

berinteraksi dengan sistem informasi yang akan dibuat

diluar sistem informasi yang akan dibuat itu sendiri, jadi

walaupun simbol dari aktor adalah gambar orang, tapi

aktor belum tentu merupakan orang.

2) Use case merupakan fungsionalitas yang disediakan

sistem sebagai unit-unit yang saling bertukar pesan antar

unit atau aktor.

b) Activity Diagram

Activity diagram menggambarkan work flow (aliran kerja)

atau aktivitas sari sebuah sistem atau proses bisnis. Yang perlu

diperhatikan disini adalah bahwa diagram aktivitas

menggambarkan aktivitas sistem bukan apa yang dilakukan

aktor, jadi aktivitas yang dapat dilakukan oleh sistem.

Diagram aktivitas juga banyak digunakan untuk

mendefinisikan hal-hal berikut :

1) Rancangan proses bisnis dimana setiap urutan aktivitas

yang digambarkan merupakan proses bisnis sistem yang

didefinisikan.
21

2) Urutan atau pengelompokan tampilan dari sistem / user

interface dimana setiap aktivitas dianggap memiliki

antarmuka tampilan.

3) Rancangan pengujian dimana setiap aktivitas dianggap

memerlukan sebuah pengujian yang perlu didefinisikan

kasus ujinya.

Berikut ini tabel simbol pada activity diagram :

Tabel 1. Simbol-simbol Pada Activity Diagram


NO GAMBAR NAMA KETERANGAN
Aktivitas yang
dilakukan sistem,
1 Aktivitas aktivitas biasanya
diawali dengan kata
kerja.
Asosiasi percabangan
dimana jika ada piliha
Percabangan
2 aktivitas biasanya
/ Decision
diawali dengan kata
kerja.
Status awal yang
dilakukan sistem,
3 Status Awal sebuah diagram
aktivitas memiliki
sebuah status awal.

Tabel di atas menjelaskan jumlah simbol yang terdapat

pada activity diagram, untuk menjelaskan aktivitas yang

dilakukan oleh sistem.

D. Konsep Dasar Pemrograman Berorientasi Objek

1. Pengertian Pemrograman Berorientasi Objek

Metodologi berorientasi objek adalah suatu strategi

pembangunan perangkat lunak yang mengorganisasikan perangkat


22

lunak sebagai kumpulan objek yang berisi data dan operasi yang

diberlakukan terhadapnya.

Menurut Rosa A. S. & M. Shalahuddin (2013:100) “Metodologi

berorientasi objek merupakan suatu cara bagaimana sistem perangkat

lunak dibangun melalui pendekatan objek secara sistematis. Metode

berorientasi objek didasarkan pada penerapan prinsip-prinsip

pengelolaan kompleksitas”. Metode berorientasi objek meliputi

rangkaian aktivitas analisis berorientasi objek, perancangan

berorientasi objek, pemrograman berorientasi objek, dan pengujian

berorientasi objek.

2. Keuntungan Menggunakan Metodologi Berorientasi Objek

Dalam buku yang berjudul Rekayasa perangkat Lunak, Rosa A.

S. & M. Shalahuddin (2013:100) menjelaskan keuntungan

menggunakan metodologi berorientasi objek sebagai berikut :

a) Meningkatkan produktivitas

b) Kecepatan pengembangan

c) Kemudahan pemeliharaan

d) Adanya konsistensi

e) Meningkatkan kualitas perangkat lunak

3. Konsep Dasar Pemrograman Berorientasi Objek

Rosa A. S. & M. Shalahuddin (2013:104) juga menjelaskan

konsep dasar yang harus dipahami tentang metodologi berorientasi

objek :
23

a) Kelas (class)

b) Objek (object)

c) Metode (method)

d) Atribut (attribute)

e) Abstraksi (abstraction)

f) Antarmuka (interface)

g) Komunikasi Antar Objek

h) Package

E. Database (Basis Data)

1. Database MySQL

Database MySql merupakan sistem manajemen basis data SQL

yang sangat terkenal dan bersifat open source. MySql dibangun,

didistribusikan, dan didukung oleh MySql AB. MySql AB merupakan

perusahaan komersial yang dibiayai oleh pengembang MySql.

Menurut Wahana Komputer (2006:2) fitur utama dari MySql

adalah :

a) Ditulis dalam bahasa C dan C++

b) Bekerja dalam berbagai platfrom

c) Menyediakan mesin penyimpanan transaksi dan non transaksi

d) Server tersedia sebagai program yang terpisah untuk

digunakan pada jaringan client/server

e) MySql mempunyai library yang ditempel pada aplikasi

f) Mempunyai sistem password yang fleksibel dan aman


24

g) Dapat menangani basis data dalam skala besar

h) Klien dapat terkoneksi ke MySql server menggunakan socket

TCP/IP pada platform manapun.

i) Server dapat mengirim pesan error ke klien dalam berbagai

bahasa.

2. DBMS (Database Management System)

DBMS atau dalam bahasa Indonesia sering disebut sebagai

Sistem Manajemen Basis Data adalah suatu sistem aplikasi yang

digunakan untuk menyimpan, mengelola, dan menampilkan data.

Menurut Rosa A. S. & M. Shalahuddin (2013:45) suatu sistem

aplikasi disebut DBMS jika memenuhi persyaratan minimal sebagai

berikut:

a) Menyediakan fasilitas untuk mengelola akses data

b) Mampu menangani integritas data

c) Mampu menangani akses data yang dilakukan secara

d) Mampu menangani backup data

Karena pentingnya data bagi suatu organisasi/perusahaan, maka

hampir sebagian besar perusahaan memanfaatkan DBMS dalam

mengelola data yang mereka miliki. Pengelolaan DBMS sendiri

biasanya ditangani oleh tenaga ahli yang spesial menangani DBMS

yang disebut sebagai DBA (Database Administrator).


25

Pada buku karangan Wahana Komputer (2006:3) dijelaskan

bahwa “MySql termasuk jenis RDBMS (Relational Database

Management System)”.

3. Alur Hidup Database

Tidak hanya perangkat lunak yang memiliki alur hidup, dalam

membuat perencanaan basis data juga memiliki alur hidup atau

Database Life Cycle (DBLC). Alur hidup basis data dapat dilihat pada

gambar berikut :

Analisis Kebutuhan dan


Desain Konseptual

Desain Logik

Desain Fisik

Implementasi

Gambar 2. Alur Hidup Basis Data

Gambar di atas menjelaskan tentang alur hidup basis data.

Dimana sebelum melakukan desain lojik, harus dilakukan analisis

kebutuhan dan desain konseptual. Barulah setelah itu melakukam

desain fisik dan melakukan implementasin.

Menurut Rosa A. S. & M. Shalahuddin (2013:49), fase-fase

DBLC antara lain :

a) Analisis Kebutuhan / Requirement Analysis

Hal-hal yang harus dilakukan pada tahap ini adalah:


26

1) Didefinisikan dengan mewawancarai produsen dan pemakai

data, data apa sajakah yang butuh untuk disimpan dan terkait

dengan aplikasi komputer yang akan dikembangkan.

2) Membuat kontrak spesifikasi basis data

3) Entity Relationship Diagram (ERD) sebagai bagian dari

desain konseptual

b) Desain Lojik Basis Data / Logic Database Design

Pada tahap ini harus dibuat rancangan lojik basis data. Bisanya

pada tahap ini dibuat Conceptual Data Model (CDM).

c) Desain Fisik Basis Data / Physical Database Design

Pada tahap ini harus dibuat rancangan fisik basis data. Biasanya

pada tahap ini dibuat Physical Data Model (PDM).

d) Implementasi

 Membuat Query SQL

 Aplikasi ke DBMS atau file

4. Normalisasi

Normalisasi adalah langkah-langkah sistematis untuk menjamin

bahwa struktur database memungkinkan untuk general purpose query

dan bebas dari insertion, update dan deleting anomalies yang dapat

menyebabkan hilangnya integritas data. Normalisasi dilakukan untuk

memperbaiki desain tabel yang kurang baik, sehingga penyimpanan

data menjadi lebih efisien dan bebas anomali data. Normalisasi


27

dilakukan dengan cara menerapkan bentuk-bentuk normal secara

bertahap dari level terendah sampai level yang dikehendaki.

5. Entity Relationship Diagram (ERD)

Pemodelan awal basis data yang paling banyak digunakan

adalah menggunakan ERD. ERD dikembangkan berdasarkan teori

himpunan dalam bidang matematika. ERD digunakan untuk

pemodelan basis data relasional.

Menurut Rosa A. S. & M. Shalahuddin (2013:50) ERD memiliki

beberapa aliran notasi Chen (dikembangkan oleh Peter Chen), Barker

(dikembangkan oleh Richard Barker, Ian Palmer, Harry Ellis), notasi

Crows Foot, dan beberapa notasi lain. Namun yang banyak digunakan

adalah notasi dari Chen.

Berikut adalah simbol-simbol pada ERD dengan notasi Chen :

Tabel 2. Simbol-Simbol ERD


Simbol Nama Deskripsi
Entitas / Entitas merupakan data
nama_entitas
Entity inti yang akan disimpan
Atribut Field atau kolom data
Nama_atribu yang butuh disimpan
dalam suatu entitas
Atribut Kunci Field atau kolom data
nama_kunci_
primer yang butuh disimpan
primer dalam suatu entitas dan
digunakan sebagai kunci
akses record; biasanya
berupa id
Atribut Field atau kolom data
nama_atribut
Multinilai yang butuh disimpan
dalam suatu entitas yang
dapat memiliki nilai lebih
dari satu
Relasi Relasi yang
nama_rela menghubungkan antar
28

Tabel di atas merupakan tabel yang berisikan simbol-simbol

yang digunakan pada perancangan ERD. Setiap simbol mempunyai

nama dan kategori yang berbeda. Dimana pada sebuah ERD terdiri

dari nama entitas, nama atribut, nama kunci primer, dan nama relasi.

F. Tools Pendukung

1. Xampp

Perangkat lain yang digunakan untuk perancangan aplikasi

adalah xampp. Xampp mempunyai beberapa aplikasi yang dibutuhkan

untuk proses perancangan. Menurut Bunafit Nugroho (2012:1)

“xampp adalah software triad yang berisi software Apache, PHP, dan

MySql dalam sekali installasi”.

Ini berarti xampp mempunyai kelebihan kelengkapan tersendiri.

Seperti user dapat mengaplikasi MySql untuk perancangan database,

dan apache untuk web server aplikasi yang dirancang. Hanya dengan

melakukan 1 kali installasi, user dapat memanfaatkan beberapa

aplikasi yang tersedia di dalam xampp tersebut.

2. Framework

a) Pengertian Framework

Framework merupakan sekumpulan perintah dengan aturan-

aturan tertentu yang saling berkaitan untuk pembuatan sebuah

website. Hal ini berkaitan dengan pendapat Awan Pribadi Basuki

(2014:13) bahwa “Framework dapat diartikan sebagai kumpulan

potongan-potongan program (kelas dan fungsi) yang disusun dan


29

diorganisasikan sedemikian rupa, sehingga dapat digunakan

kembali untuk membantu membuat aplikasi utuh tanpa harus

membuat semua kodenya dari awal”.

Framework memungkinkan untuk membangun sebuah

aplikasi yang lebih cepat karena developer hanya akan

memfokuskan pada pokok permasalahan yang diminta untuk

sebuah aplikasi, sedangkan hal-hal penunjang lainnya seperti

koneksi database, form validation, GUI dan security, umumnya

telah disediakan oleh framework.

b) Alasan Memilih Framework

Menurut Wahana Komputer (2011:2) alasan mengapa

menggunakan framework, sebagai berikut:

1. Mempercepat dan mempermudah pembangunan sebuah

aplikasi web.

2. Memudahkan dalam proses maintenance karena sudah ada

pola tertentu dalam sebuah framework (dengan syarat

programmer mengikuti pola standar yang ada).

3. Umumnya framework menyediakan fasilitas-fasilitas yang

umum dipakai sehingga Anda tidak perlu membangun dari

awal.

4. Lebih bebas dalam pengembangan jika dibandingkan CMS.


30

3. Codeigniter

a) Pengertian Codeigniter

Codeigniter merupakan sebuah bahasa pemrograman web

yang dikembangkan dari bahasa pemroraman PHP yang berbasis

OOP (Object Oriented Programming) yang memiliki class dan

function. Sesuai dengan pendapat Wahana Komputer (2011:2)

bahwa “Codeigniter adalah aplikasi open source yang berupa

framework dengan model MVC (Model, View, Controller) untuk

membangun website dinamis dengan menggunakan PHP”.

Sedangkan menurut Riyanto (2011:1) “Codeigniter

(selanjutnya disebut CI) adalah sebuah framework yang

digunakan untuk membuat sebuah aplikasi berbasis web yang

disusun dengan menggunakan bahasa PHP”.

Pendapat lain menurut Awan Pribadi Basuki (2014:23)

“Codeigniter adalah framework PHP yang dibuat berdasarkan

“design pattern” Model-View-Controller atau biasa disingkat

MVC. Design pattern sendiri adalah sekumpulan penjelasan

mengenai metode-metode bagaimana cara menyelesaikan suatu

masalah yang umumditemui dalam proses perancangan perangkat

lunak (software design)”.

Jadi codeigniter merupakan sebuah aplikasi framework dari

PHP yang mempunyai desain tersendiri yang digunakan untuk

membangun sebuah website. Codeigniter adalah framework PHP


31

yang mudah untuk dikembangkan. Sehingga sebagai pemula,

tidak akan kesulitan untuk menggunakan framework ini. Karena

selain mudah digunakan, framewrok codeigniter juga cepat dalam

perancangan sebuah sistem aplikasi.

b) Kelebihan Codeigniter

Di samping menerapkan konsep MVC, codeigniter juga

mempunyai kelebihan. Wahana Komputer (2011:4) juga

menjelaskan bahwa beberapa kelebihan CodeIgniter (CI)

dibandingkan dengan framework PHP lain, sebagai berikut:

a) Performa sangat cepat. Salah satu alasan tidak

menggunakan framework adalah karena eksekusinya yang

lebih lambat dari pada PHP, from the scratch.

b) Konfigurasi yang sangat minim (Nearly Zero

Configuration). Tentu saja untuk menyesuaikan dengan

database dan keleluasaan routing tetap diizinkan

melakukan konfigurasi dengan mengubah beberapa file

konfigurasi seperti database, php atau autoload.php.

c) Banyak komunitas. Dengan banyaknya komunitas

codeigniter ini, memudahkan Anda untuk berinteraksi

dengan yang lain, baik itu bertanya atau mengetahui

perkembangan terbaru.

d) Dokumentasi yang sangat lengkap. Setiap paket installasi

codeigniter sudah disertai user guide yang sangat bagus dan


32

lengkap untuk dijadikan permulaan. Bahasa yang digunakan

pun mudah dipahami.

Awan Pribadi Basuki (2014:14) menjelaskan beberapa

alasan mengapa menggunakan codeigniter yaitu :

a) Codeigniter termasuk framework sederhana dengan ukuran

kecil, namun dengan kemampuan besar.

b) Codeigniter dieksekusi dengan cepat dan memiliki

performance yang handal.

c) Menerapkan konsep Mode-View-Controller (MVC).

d) Codeigniter menyediakan Library dan Helper yang cukup

lengkap.

e) Dokumentasi codeigniter lengkap dan jelas.

c) Kelebihan Framework Codeigniter

Sedangkan menurut Riyanto (2011:3) kelebihan framework

codeigniter sebagai berikut :

a) Berukuran kecil

Hanya dengan sekitar 4MB, seorang pengembang pemula

sudah bisa menggunakan CI yang di dalamnya terdapat

berbagai fitur andal yang bisa digunakan untuk membangun

aplikasi, mulai dari skala kecil samapai skala enterprise.

b) Sangat cepat

Sangat cepat di sini dalam eksekusi file. Kecepatan ini

memungkinkan CI membangun aplikasi berskala enterprise.


33

c) Sederhana (simple)

Anda harus mencobanya terlebih dahulu maka Anda akan

sadar betapa sederhananya CI, baik dari sisi sintaks yang

digunakan maupun dari sisi alur penyusunan program.

d) Bisa langsung digunakan

Setiap orang akan bisa menggunakan CI. Hanya tinggal

mengunduh, mengekstrak file, dan meletakkan pada folder

kerja web server Anda (htdoc atau public html) maka Anda

akan bisa langsung mencobanya.

e) Bisa dikombinasikan dengan beberapa aplikasi dengan cara

yang sangat mudah.

f) Kode program rapi

Kode program Anda akan menjadi sangat rapi, karena

penggunaan sistem MVC yang mengelompokkan kode

sesuai dengan fungsinya masing-masing.

4. Model, View, Controller (MVC)

MVC adalah sebuah pendekatan yang ditempuh untuk

memisahkan aplikasi menjadi 3 bagian, yaitu Model, View, dan

Controller. Awan Pribadi Basuki (2014:23) juga menjelaskan bahwa

MVC memberikan struktur kepada aplikasi, sehingga dapat dicapai

“code reusability”.

a) Model, merepresentasikan data yang digunakan aplikasi.

Contoh data misalnya database, RSS, atau data yang diperoleh


34

dari pemanggilan API, dan aksi yang melibatkan operasi Create,

Read, Update, dan Delete (CRUD) data.

b) View, adalah informasi yang ditampilkan kepada user melalui

browser. Biasanya berupa file HTML atau kode PHP yang

menyusun template untuk sebuah website. Pada codeigniter,

view dapat berupa bagian-bagian sebuah halaman, template, atau

jenis lain dari halaman atau template.

c) Controller, adalah “business logic” bertugas sebagai

jembatan antara Model dan View. Controller akan merespon

HTTP request yang datang dari user (melalui browser), dari

request ini controller akan menentukan apa yang harus

dilakukan.
BAB III

ANALISIS DAN PERANCANGAN SISTEM

A. Analisis Sistem

Sebelum dilakukan tahap perancangan sebuah sistem, perlu dilakukan

analisis sistem. Analisis sistem merupakan penguraian dari suatu sistem

informasi yang utuh kedalam bagian-bagian komponennya. Adapun tujuan

dari analisis sistem ini adalah untuk mengidentifikasi dan mensimulasi

permasalahan-permasalahan yang ada pada sistem serta memberikan

gambaran yang jelas terhadap sistem yang akan dibangun.

1. Analisis Sistem Yang Sedang Berjalan

Untuk menjelaskan sistem yang sedang berjalan pada toko A4

Sport akan diuraikan sebagai berikut :

a) Analisis User
Untuk menjelaskan analisis user, penulis mendapatkan

data sebagai berikut:

Tabel 5. Analisis User


No User Tugas pokok dan fungsi
1. Admin - Melayani pemesanan dan pembelian
costumer
- Membuat laporan stok produk
- Membuat pembukuan keuangan
- Melakukan pemesanan kepada supplier
2. Supplier - Melayani pemesanan yang dilakukan
admin.
- Menyediakan dan mengirim order melalui
kurir supplier
Pada tabel di atas terlihat bahwa ada beberapa user yang

memiliki tugas pokok dan fungsi yang berbeda pada sistem yang

sedang berjalan.

35
36

b) Analisis Dokumen

Demi kemudahan dalam melakukan perancangan sistem,

penulis menyusun tabel untuk analisis dokumen toko, seperti di

bawah ini :

Tabel 6. Analisis Dokumen


No Nama Sumber Tujuan Isi
Dokumen
1. Dokumen Admin Supplier Berisi dokumen
pemesanan pemesan dan
barang dari pembelian barang
admin dari admin
kepada kepada supplier
supplier
2. Dokumen Admin Pelangga Berisi tentang
faktur n transaksi yang
dilakukan
pelanggan
3. Laporan Admin Owner Berisi tentang
Penjualan laporan penjualan

Pada tabel di atas, terlihat bahwa terdapat beberapa

dokumen yang digunakan pihak toko. Dimana dokumen

tersebut, di-input dan di-output secara manual.

c) Analisis Prosedur

Analisis prosedur adalah analisis yang dilakukan untuk

mengetahui prosedur yang sedang berjalan pada Toko A4 Sport

Padang.

Adapun prosedurnya yaitu sebagai berikut :

1) Prosedur Pemesanan Produk

Untuk melakukan pemesanan produk kepada supplier,

admin melakukan prosedur yaitu:


37

a) Admin melakukan pengecekan produk yang ada di

gudang.

b) Admin menyusun daftar produk yang akan dipesan.

c) Admin melakukan pemesanan produk kepada

supplier.

d) Supplier menerima daftar pesanan dari admin.

2) Prosedur Pembayaran dan Penerimaan Produk

Adapun prosedur untuk melakukan pembayaran dan

penerimaan produk adalah sebagai berikut :

a) Setelah memesan produk, owner melakukan

pembayaran.

b) Supplier melakukan pengiriman barang melalui jasa

pengiriman.

c) Setelah barang diterima, owner menerima dan

menandatangani kwitansi.

3) Prosedur Pembelian Oleh Custumer

Adapun prosedur pembelian yang dilakukan oleh costumer

adalah :

a) Costumer mendatangi toko A4 Sport.

b) Costumer melihat produk yang ada di toko.

c) Costumer membeli produk.

d) Costumer membayar kepada admin.


38

4) Prosedur Pembuatan Laporan

Adapun prosedur pembuatan laporan adalah sebagai

berikut :

a) Setelah barang diterima, owner memeriksa nota

transaksi pembelian produk.

b) Owner melakukan pembuatan laporan tentang produk

yang di beli dan di jual.

d) Analisis Input

Sistem e-commerce ini memerlukan data input yang akan

diolah, sehingga dapat menghasilkan informasi yang valid

sesuai dengan kebutuhan sistem. Data-data input yang

diperlukan oleh sistem adalah sebagai berikut :

1) Data terkait owner sebagai pemilik toko, meliputi nama,

jenis kelamin, email, nama user, username, dan password.

2) Data terkait supplier sebagai pamasok meliputi nama, jenis

kelamin, email, nama perusahaan, username, dan

password.

3) Data terkait costumer, meliputi nama, alamat, jenis kelamin,

telp, email, dan password.

4) Data produk, yang akan dijelaskan secara detail dengan

adanya id_produk, id_kategori, id_merk, supplier_id, kode,

nama_produk, deskripsi, spesifikasi, warna, ukuran, berat,


39

harga, diskon, stok, status, gambar, tanggal, jam, slider dan

notif_supplier.

5) Data order produk, meliputi id_order, id_session,

id_produk, qty, colour, size, harga_unit, tanggal dan waktu.

6) Data konfirmasi pembayaran costumer, meliputi

confirm_id, fullname, email, date_payment, nominal,

to_bank, bank_account, order_id, no_invoice, messages,

dan attachment.

Data-data tersebut akan tersimpan di dalam sistem yang

terstruktur dalam bentuk database sebagai gudang penyimpanan

data. Data yang tersimpan tersebut akan digunakan dan

dimanipulasi sesuai dengan informasi yang akan ditampilkan

pada sistem.

e) Analisis Output

Analisis output dilakukan berdasarkan dokumen yang

dihasilkan. Berdasarkan hasil dari analisa input yang sedang

berjalan, maka selanjutnya perlu dilakukan analisis terhadap

output yang ada yaitu :

1) Data order produk dari costumer.

2) Informasi data konfirmasi pembayaran yang dilakukan

costumer.

3) Informasi laporan order dan penjualan.

4) Informasi tentang stok barang.


40

2. Analisis Fungsional

Analisis fungsional merupakan paparan mengenai apa yang

dilakukan oleh sistem penjualan e-commerce. Adapun diantaranya

yaitu:

a) Menampilkan semua informasi yang dibutuhkan user.

b) Menampilkan menu registrasi dan login.

c) Menampilkan form order.

d) Menampilkan konfirmasi pembayaran untuk costumer.

e) Mampu menampilkan menu-menu yang dibutuhkan user.

f) Menampilkan menu pesan dan konfirmasi pada sistem, sehingga

memudahkan antar user terkait.

3. Analisis Non Fungsional

Analisis ini menjelaskan mengenai apa yang dimiliki sistem,

diantaranya adalah :

a) Fasilitas pengelolaan costumer, yang menyediakan pelayanan jika

ingin melakukan registrasi, login, order dan konfirmasi

pembayaran.

b) Adanya fasilitas pengelolaan supplier, sehingga supplier

mendapat informasi tentang stok dan order dari admin.

c) Fasilitas pengelolaan admin untuk melakukan manajemen data

produk, laporan, konfirmasi, dan order.

d) Fasilitas akses untuk owner dalam meninjau dan menampilkan

laporan.
41

4. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem dilakukan untuk menganalisis

terhadap tools yang digunakan setelah sistem dibuat, baik perangkat

keras maupun perangkat lunak.

a) Analisis Kebutuhan Perangkat Keras

1) Processor dengan kecepatan minimal 1 GHz

2) Monitor

3) RAM minimal 256 MB

4) Harddisk 40 GB

5) VGA Card

6) USB

b. Analisis Kebutuhan Perangkat Lunak

Perangkat lunak yang perlu dipersiapkan dalam

pembuatan website ini yaitu :

1) Sistem operasi windows 7 Ultimate

2) Xampp-win32-1.6.8

3) Framework CI

4) Sublime Text 3

5) MySQL sebagai perancangan database

5. Analisis Masalah dan Solusi

Analisis masalah dan solusi diperlukan untuk menganalisa

permasalahan yang terjadi pada proses jual beli pada toko A4 Sport,

dengan memberikan solusi untuk menyelesaikan masalah tersebut.


42

Berikut tabel analisis masalah dan solusi pada toko A4 Sport:

Tabel 7. Analisis Masalah dan Solusi


No Masalah Solusi

1. Promosi dan informasi Sistem baru akan memberikan


masih dilakukan melalui promosi dan informasi tentang
brosur. toko dan produk yang ada
pada website.
2. Costumer sudah mendatangi Dengan adanya sistem baru,
toko, namun persediaan costumer bisa melakukan
kosong. pengecekan terlebih dahulu.
3. Costumer yang bertempat Sistem baru menyediakan
tinggal jauh dari lokasi, layanan pembelian online,
harus mendatangi sehingga costumer tidak perlu
mendatangi toko untuk datang ke toko.
mendapatkan produk.
4. Pihak toko harus mengecek Sistem baru dapat
stok produk, dan menampilkan stok produk,
menghubungi supplier untuk sehingga jika stok habis,
melakukan pemesanan sistem dapat melakukan
barang. pesanan otomatis ke supplier.

Tabel di atas menjelaskan rincian masalah pada sistem yang

sedang berjalan, kemudian dijelaskan rincian solusi yang diberikan

sistem untuk yang user ada.

6. Analisis Antar Muka

Analisis antar muka dilakukan untuk mengetahui bagaimana

sistem berinteraksi dengan user, sehingga sistem yang dihasilkan

dapat menarik perhatian user. Adapun aspek yang perlu diperhatikan

untuk menjaga kenyamanan user pada sistem e-commerce ini adalah :

1. Tampilan halaman dan sub menu sesuai kebutuhan user terkait.

2. Dibutuhkan form yang dapat menangkap identitas order dan data

lain yang relevan.


43

3. Perlunya notifikasi untuk mengetahui adanya order atau

konfirmasi lainnya.

4. Perlunya layanan pesan yang dapat di akses admin dan supplier

dalam hal permintaan produk.

5. Dibutuhkannya sebuah konfirmasi pembayaran untuk costumer.

6. Diperlukan sebuah halaman status order, untuk costumer

mengetahui status ordernya.

7. Flowmap yang Sedang Berjalan

Berikut adalah sebuah flowmap yang menggambarkan secara

keseluruhan tentang sistem penjualan yang sedang berjalan :

Costumer Admin Supplier Owner

Data Data Nota


Pemesanan Pemesanan Permintaan
Barang Barang Barang

Mengecek Mengecek
Barang Barang

Tersedia T Membuat Nota T Membuat Nota


Permintaan Barang Tersedia
Stok
Y
Y
Membuat
Nota Membuat
Faktur Nota
Permintaan Faktur
Penjualan Pemberitahuan
Barang Pengiriman Stok
Supplier
A
Faktur
Faktur Faktur Faktur
Penjualan
Penjualan A
Pengiriman Pengiriman
Faktur
Penjualan
Membuat
Laporan Nota
Penjualan Pemberitahuan
Stok
Nota
Pemberitahuan
Laporan Stok
Penjualan
A
Laporan
Penjualan

Gambar 3. Flowmap Yang Sedang Berjalan


44

Flowmap di atas menjelaskan bagaimana jalannya sistem yang

sedang berjalan. Dimana costumer memesan produk kepada admin,

lalu admin mengecek stok produk. Jika produk ada, admin akan

membuat faktur penjualan untuk costumer. Jika barang tidak ada,

admin akan membuat nota permintaan barang kepada supplier.

B. Perancangan Sistem

Perancangan sistem dilakukan untuk menggambarkan, merencanakan,

dan membuat sketsa atau pengaturan dari beberapa elemen yang terpisah ke

dalam satu kesatuan yang utuh dan berfungsi. Perancangan sistem

merupakan hasil transformasi dari analisis ke dalam perancangan yang

nantinya akan diimplementasikan. Hal penting yang menjadi perhatian pada

tahap ini adalah rancangan yang dibuat diharapkan dapat digunakan dengan

mudah oleh semua user.

1. Flowmap Sistem Yang Akan Dirancang

Pada flowmap ini dilakukan pengolahan data yang lebih mudah.

Dimana setiap pengolahan data dilakukan oleh sistem. Jalannya sistem

dapat dilihat pada flowmap berikut :


45

COST UMER ADMIN SUPPLIER OWNER

Input Data Input Data Validasi Data Data


Input Data
Costumer Permintaan Permintaan Registrasi
Katalog
Produk Produk

v
Data
Proses Data Proses Data Katalog
Proses Data Proses Validasi
Registrasi Permintaan Data Permintaan
Katalog
Produk Produk Data
Order
Data
Data Data Validasi Data
Permintaan
Registrasi Katalog Permintaan Data
Produk
Produk Permintaan
Produk

Database
Penjualan Data Supplier
Online

Input Data Input Data


Order Input Status Data
Validasi Data Kurir
Data Permintaan Kurir
Order Produk

Proses Data v
Proses Data
Order Proses Proses Input Status
Kurir Data
Validasi Data Data Permintaan Promo
Order Produk
Data
Data
Order Data
Data Validasi Kurir Status Data
Order Laporan
Permintaan Penjualan
Produk

Input Status Input Data


Input Data
Data Order Supplier
Konfirmasi
Pembayaran
v

Proses Status Proses Data


Proses Data Data Order Supplier
Konfirmasi
Pembayaran
Status Data
Data Order Supplier
Data Konfirmasi
Pembayaran

Validasi Data Input Data


Laporan Penjualan Promo
v

Status
Data Order Proses Validasi Proses Data
Data Penjualan Promo

Data Data
Laporan Promo
Penjualan

Gambar 4. Flowmap Yang Akan Dibangun

Flowmap di atas menjelaskan bagaimana jalannya sistem yang

diusulkan. Dimana costumer membuka sistem dan melakukan order.

Setelah mengisi form order, costumer dapat melakukan pembayaran


46

melalui transfer bank. Setelah itu melakukan konfirmasi pembayaran

di sistem. Admin melakukan validasi order yang dilakukan costumer.

Setelah itu barulah sistem akan menampilkan laporan penjualan untuk

owner. Supplier juga dapat menerima pesan permintaan barang, jika

barang kurang sama dengan 4.

2. Perancangan Context Diagram

Diagram konteks (context diagram) adalah suatu diagram alir

yang tingkat tinggi yang menggambarkan seluruh jaringan, masukan

dan keluaran. Sistem yang dimaksud adalah untuk menggambarkan

sistem yang sedang berjalan, mengidentifikasikan awal dan akhir data,

awal dan akhir yang masuk dan keluaran sistem.

Berdasarkan analisis user, maka dapat digambarkan diagram

konteks dari sistem e-commerce sebagai berikut :

Admin Informasi Katalog Costumer


Username dan Password Informasi Konfirmasi
Validasi Data Registrasi Order
Data Permintaan Produk
Informasi Data Costumer Validasi Status Order Username dan Password
Data Promo
Informasi Data Order Data Laporan
Informasi Data Kurir Data Registrasi
Informasi Data Supplier Data Order
Informasi Data Laporan Data Konfirmasi Pembayaran
SISTEM
E-COMMERCE
Informasi Costumer
Informasi Katalog
Informasi Kurir Username dan Password
Informasi Supplier Validasi Data Permintaan Produk
Informasi Promo
Informasi Laporan Data Permintaan Produk
Informasi Order

Owner Username dan Password Supplier

Gambar 5. Context Diagram


47

Berdasarkan context diagram di atas, user pada sistem e-

commerce terdiri atas Owner, Admin, Costumer, dan Supplier. Admin

memiliki hak akses untuk menambahkan produk, melakukan

konfirmasi order, melihat data costumer, melakukan status order,

melakukan permintaan produk kepada supplier dan laporan. Costumer

memiliki hak akses untuk melihat data produk dan memasukkan data

registrasi, data order, dan konfirmasi pembayaran. Sedangkan

supplier dapat melihat data produk yang tersedia dan akan menerima

pesan jika ada permintaan produk dari admin. Owner dapat mengecek

setiap laporan yang ada.

3. Use Case Diagram

Use case diagram menggambarkan bagaimana seseorang akan

menggunakan atau memanfaatkan sistem, sedangkan aktor adalah

seseorang atau sesuatu yang berinteraksi dengan sistem. Sistem ini

terdiri dari aktor admin, costumer, supplier dan owner.

Rancangan use case diagram sistem e-commerce dapat dilihat

seperti berikut:
48

CRUD Katalog Registrasi


<<extend>>
<<include>>
Input Status Order View Katalog
<<include>>
<<include>>
CRUD Data Supplier <<include>> Input Order
<<include>>
<<include>> Input Konfirmasi
CRUD Kurir Pembayaran
<<include>> <<include>>
View History Costumer
Input Konfirmasi Order
Order Login View Status
Admin <<include>>
Order
CRUD Promo
View Promo
View Laporan <<include>>
Cetak Laporan

CRUD Permintaan Input Data


Produk Owner
<<extend>> <<include>> View Data
Costumer
<<include>>
View <<include>> View Katalog
Permintaan Produk <<include>>
View Order
Konfirmasi <<include>>
<<include>>
Permintaan Produk View Promo
Supplier
<<include>>
<<include>> Owner
Input Status
View Supplier
Permintaan Produk <<include>>

<<include>> View Laporan

Gambar 6. Use Case Diagram

Use case diagram di atas menjelaskan semua aktor yang terlibat

dalam perancangan sistem. Diagram tersebut juga memperlihatkan

bagaimana hubungan antara semua aktor, serta aktor dengan sistem.

3. Activity Diagram

Activity diagram di desain untuk memperlihatkan apa yang

terjadi selama suatu proses atau operasi berlangsung. Setiap activity

direpresentasikan dengan suatu rounded rectangle. Pemrosesan pada


49

suatu aktivitas yang telah selesai akan dikirimkan keaktivitas

berikutnya secara otomatis untuk melakukan aktivitas berikutnya.

a) Activity Diagram Menampilkan Menu Home Oleh User

Sebagai user, menu Home dapat ditampilkan untuk

membuka salah satu menu dari sistem. Activity diagram untuk

menampilkan halaman home adalah:

User Sistem

Buka Website Menampilkan Website

Pilih Menu Home

Menampilkan Menu Home

Gambar 7. Activity Diagram Menampilkan Menu Home

Pada activity diagram di atas, terlihat bahwa user

membuka website terlebih dahulu. Setelah tampil, user dapat

memilih menu Home. Barulah sistem akan menampilkan menu

Home.

b) Activity Diagram Registrasi User

Activity diagram registrasi user adalah proses yang harus

dilakukan sebelum melakukan sebelum masuk ke menu

selanjutnya. Activity diagram untu registrasi user adalah :


50

User Sist em

Buka But t on Regist rasi T ampilkan List Regist rasi

Input Dat a Regist rasi

Simpan Dat a Regist rasi

Gambar 8. Activity Diagram Registrasi User

Pada activity diagram di atas, dijelaskan bahwa user

memilih button registrasi terlebih dahulu. Maka sistem akan

menampilkan list registrasi. User diminta untuk memasukkan

data registrasi. Jika data sudah lengkap, maka sistem akan

menyimpan data registrasi tersebut.

c) Activity Diagram Proses Login

Proses Login adalah proses untuk masuk ke dalam sistem

dengan memasukkan identitas berupa username dan password.

Activity diagram untukLogin


proses login adalah sebagai berikut:

User Sist em

Input Username dan P assword Validasi

User T idak Valid

Record Dat a

Gambar 9. Activity Diagram Proses Login


51

Activity diagram login di atas akan diakses oleh user

dengan memasukkan username dan password. Apabila

username dan password valid, maka data tersebut akan di-

record dan kemudian user dapat masuk ke dalam sistem.

d) Activity Diagram Order Oleh Costumer

Activity diagram order produk adalah prosedur yang

dilakukan jika costumer ingin melakukan order terhadap suatu

produk.

Adapun activity diagram untuk order costumer adalah:

User Sist em

Membuka Sist em Menampilkan Sist em

Membuka Kat egori P roduk

Menampilkan P roduk

P ilih Dat a P roduk

Menampilkan List P esanan

Mengisi List P esanan

Menyimpan List P esanan

Gambar 10. Activity Diagram Order

Pada gambar di atas, dijelaskan bahwa setelah user

membuka sistem dan kategori produk, maka sistem akan

menampilkan kategori dan produk yang masih tersedia. User

dapat memilih produk, dan sistem akan menampilkan list order.


52

Setelah dikonfirmasi, data order akan divaliditas oleh admin

setelah menekan tombol konfirmasi.

e) Activity Diagram Konfirmasi Pembayaran Oleh Costumer

Activity diagram konfirmasi pembayaran dilakukan oleh

costumer. Konfirmasi pembayaran harus dilakukan jika

costumer memilih metode pembayaran transfer bank.

Rancangan activity diagram konfirmasi pembayaran yaitu:

User Sistem

Membuka Sistem Menampilkan Sistem

Memilih Menu Konfirmasi


Pembayaran

Menampilkan Form
Konfirmasi Pembayaran

Mengisi dan Memilih T ombol Kirim


Konfirmasi Pembayaran

Mengirim Konfirmasi
Pembayaran

Gambar 11. Activity Diagram Konfirmasi Pembayaran

Gambar di atas menjelaskan activity diagram konfirmasi

pembayaran yang dilakukan oleh costumer. Setelah membuka

sistem, costumer memilih menu konfirmasi pembayaran. Setelah

form konfirmasi pembayaran ditampilkan sistem, costumer

mengisi semua data dan memilih tombol kirim. Sistem akan

mengirimkan konfirmasi pembayaran untuk divalidasi admin.


53

f) Activity Diagram Cek Status Order

Activity diagram untuk cek status order dilakukan oleh

user costumer. Tujuannya adalah untuk mengetahui status

produk yang telah diorder costumer.

Rancangan activity diagram cek status order yaitu :

User Sistem

Membuka Sistem Menampilkan Sistem

Memilih Menu Status Order

Menampilkan Form Order


Id dan Invoice Id

Mengisi Form Order Id dan Invoice Id

Menampilkan Halaman
Status Order

Gambar 12. Activity Diagram Cek Status Order

Pada gambar di atas dijelaskan activity diagram cek status

order. Setelah costumer memilih menu status order, sistem akan

menampilkan form order id dan invoice id. Setelah diisi dengan

valid, sistem akan menampilkan halaman status order produk

dari id order yang telah dimasukkan.

C. Perancangan Database

Pada tahap ini banyak hal yang harus diperhatikan dengan cermat

terutama menyangkut validitas database yang akan dibangun. Beberapa hal

yang harus diperhatikan adalah masalah penumpukan data yang akan


54

dimasukan ke dalam tabel database, penumpukan data dalam basisdata

sering disebut dengan istilah redudansi data.

1. Normalisasi

Proses normalisasi akan memecah sebuah kasus ke dalam tabel-

tabel yang berelasi sehingga kejadian redudansi dapat dihindari.

Berikut adalah tahap-tahap normalisasi database.

a) Bentuk Unnormal

Pada tahap ini, semua data yang ada direkam tanpa format

tertentu, dan bisa jadi mengalami duplikasi. Dibawah ini

ditampilkan tabel bentuk tidak normal :

Tabel 8. Bentuk Unnormal

Id_ord Id_Co Nama E-mail Telp Nama


er st _Cost _
Produ
k
#1 J01 Jovan Jovan25@gmail +628* Baju
.com *
#2
Alamat J01Id_ Jovan
Harg Jovan25@gmail
Total_ Tgl_ +628*
Nama Bola
Jumla
Produ a .com
Harga Order * _ h
#3 R01k Randy Bank Sepat
Randy@yahoo.c +628* Item
Bukittingi B01 99rb om99rb 2 -02- * Mandi u 1
14 ri
#4 G01 Gian Gian110@ymail +628* Serag
Bukittingi B02 189r 189rb 10-3- Mandi 1
R .com * am
b 14 ri
Padang S02 549r 549rb 10 -2- BRI 1
a
b 14
nPadang D01 289r 289rb 22 -2- BNI 1
b 14
cangan tabel di atas merupakan bentuk tidak normal. Dimana

semua struktur dimasukkan ke dalam tabel.

b) Bentuk Normal Pertama (1NF)


55

Merupakan sebuah relasi, dimana setiap irisan dari

masing-masing baris dan kolom berisi satu dan hanya satu nilai.

Dan setiap data dibentuk dalam satu record demi satu record.

Tabel 9. First Normal Form (1NF)

Id_ord Id_Co Nama Email Telp Nama_


er st _ Produk
Cost
#1 J01 Jovan Jovan25@gmail +628* Baju
.com *
#2 J01 Jovan Jovan25@gmail +628* Bola
.com *

#3 R01 Rand Randy@yahoo.c +628* Sepatu


y om *
Id_Prod Harga Harga Total_ Tgl_ord Nama Jumla
#4
uk G01 Gian Gian110@ymail
Harga er +628*
_ Seraga
h
.com * Bank mItem

B01 99rb 99rb 99rb 2 -02- Mand 1


14 iri

B02 189rb 189rb 189rb 10-3- Mand 1


14 iri
S02 549rb 549rb 549rb 10 -2- BRI 1
P 14
D01 289rb 289rb 289rb 22 -2- BNI 1
a 14

da tabel di atas, bisa kita lihat keseluruhan data berada dalam

satu tabel yang berisikan satu dan hanya satu data pada setiap

barisnya, jadi tabel tersebut telah memenuhi persyaratan 1NF.

c) Bentuk Normal Kedua (2NF)

Pada second normal form ini, tabel telah memenuhi 1NF

dan setiap tabel memiliki primary key dan atribut non-primary

key memiliki ketergantungan terhadap atribut primary key. Pada


56

tabel 1NF bisa kita melihat relasi antara nilai awal dengan nilai

point, sehingga kunci primer yang dapat digunakan yaitu e-mail

dan id_barang. Sehingga dibentuklah tabel 2NF sebagai berikut:

Tabel 10. Second Normal Form (2NF_1 )

Id_Pesa Tgl_Pemesa Nama_Pro Jumla Harg Tota


n nan duk h a l_
Item Harg
a
AA001 2 Januari 14 Bola 1 99rb 99rb
Volly
AA001 2 Januari Bola Kaki 1 189r 189r
2014 b b
AA002 10 Feb 2014 Sepatu 1 549r 549r
b b
AA003 22 Feb 2014 Seragam 1 289r 289r
b b

Tabel 11. Second Normal Form (2NF_2 )


Id_produk Nama_Produk Harga

B01 BolaVolly 99rb

B02 Bola Kaki 189rb

S02 Sepatu 549rb

D01 Seragam 289rb

Tabel 12. Second Normal Form (2NF_3 )


Id_Costume Nama_ Email Telp
r Costume
r
J01 Jovan Jovan25@gmail.co +628**
m
57

R01 Randy Randy@yahoo.co +628**


m

G01 Gian Gian110@ymail.c +628**


om

Dari tabel 2NF di atas, terlihat bahwa semua atribut yang

bukan primary key memiliki ketergantungan dengan primary

key.

d) Bentuk Normal Ketiga (3NF)

Lalu untuk normal ketiga, dibentuk relasi antar tabel

(database), dengan menentukan foreign key yaitu id_produk,

id_costumer, dan id_pesan. Lalu dimasukkan ke tabel transaksi.

Tabel 13. Normalisasi Admin


Pass
Id_Admin Nama Jenis_Kelamin Telp Alamat Username word
1 Hendri Laki-laki 082383xx Padang Admin admin

Tabel 14. Normalisasi Supplier

Supplier_id username password nama Status level email

2 supplier supplier AdidasInd 0,1 supplier Gmail.com

Tabel 15. Normalisasi Costumer


Id
Id Ka
Id_Cost Nama E-mail
Telepon password Alamat Propinsi
+628**
001 Jovan @gmail.com jovan Bukittinggi 1 2

Tabel 16. Normalisasi Order Produk


Id_or Id_sessi Id_Prod
der on uk qty warn ukur harg tgl wakt
58

a an a u

201578 mera 40 3990 10-2- 10.0


001 273 001 2 h 00 15 0

Tabel-tabel di atas telah memenuhi syarat 3NF karena

tidak ada lagi atribut yang memiliki partial dependencies

terhadap primary key. Hal yang sama dilakukan kepada data-

data lainnya secara keseluruhan.

2. Struktur Tabel

Struktur tabel menggambarkan isi dari tabel-tabel yang terdapat

dalam basis data (database) yang dirancang. Tabel-tabel yang

terstruktur tersebut digunakan untuk menyimpan semua data yang

dimasukkan kedalam sistem basis data tersebut. Dalam perancangan

sistem informasi ini, digunakan tabel-tabel berikut beserta strukturnya,

diantaranya:

a) Tabel Admin

Tabel admin berisi data tentang admin. Untuk merancang

database admin dapat dilihat pada tabel berikut :

Tabel 17. Tabel Admin


No Tb_Admin Type Width Keteragan
primary
1 Admin_id Int 11 key
2 Nama Varchar 35
Jenis_kelami
3 n enum
4 Email Varchar 25
5 Telepon Varchar 15
6 Alamat Varchar 50
59

7 Username Varchar 25
8 Password Varchar 20
9 Avatar Varchar
Enum(„admin
10 Level ‟)
Date_modifie
11 d Datetime

Tabel di atas menjelaskan bahwa nama tabelnya adalah

tb_admin, dimana id_admin adalah sebagai primary key.

b) Tabel Costumer

Untuk merancang database costumer dapat dilihat pada

tabel berikut :

Tabel 18. Tabel Costumer


No Tb_Costumer Type Width Keteranga
n
1 Id_costumer bigint 11 primery
key
2 Firstname Varchar 15
3 Lastname Varchar 20
4 Email Varchar 25
5 Telepon varchar 15
6 Password varchar 25
7 Company varchar 30
8 Address_1 varchar 30
9 Address_2 varchar 30
10 Id_provinsi int 2
11 Id_kota int 4
12 Level Enum(“cost
umer)
13 Token varchar 50

Tabel costumer merupakan tabel yang harus di isi oleh

costumer sebelum melakukan login. Yang menjadi primary key

nya adalah id_costumer.


60

c) Tabel Supplier

Untuk merancang database supplier, dapat dilihat pada

tabel berikut :

Tabel 19. Tabel Supplier


Tbl_
No Supplier Type Width Keteragan
1 Id_supplier int 11 primary key
2 Username varchar 25
3 Password varchar 25
4 Nama varchar 35
5 Status enum(„0‟,‟1‟)
6 Level enum(„supplier‟)
7 Email varchar 30
8 Alamat text
9 Telepon varchar 15

Tabel di atas menjelaskan bahwa nama tabelnya adalah

tb_supplier. Dimana id_supplier menjadi primary key.

d) Tabel Kategori

Tabel kategori berisikan tentang kategori barang. Untuk

merancang database tabel kategori dapat dilihat pada tabel

berikut

Tabel 20. Tabel Kategori


No Tbl_kategori Type Width Keterangan
1 Id_kategori varchar 11 Primary key
2 Nama_kategori Varchar 20

Pada tabel kategori terdiri dari id_kategori dan nama

kategori. Dimana id_kategori merupakan primary key dari tabel.

e) Tabel Produk
61

Tabel produk berisikan tentang detail produk. Untuk

merancang database tabel produk dapat dilihat pada tabel

berikut:

Tabel 21. Tabel Produk


No Tbl_Produk Type Width Keterangan
1 Id_produk bigint 11 Primary
key
2 Id_admin bigint 11
3 Id_kategori varchar 11
4 Id_merk varchar 11
5 Id_supplier bigint 11
6 Kode varchar 10
7 Nama_produk varchar 25
8 Deskripsi text
9 Harga Int 10
10 Gambar varchar
11 Berat Int 10
12 Warna varchar 20

Pada tabel kategori terdiri dari nama. Dimana id_produk

merupakan primary key dari tabel. Id_produk juga join dengan

tabel kategori.

f) Tabel Order

Tabel order merupakan tabel yang akan di isi oleh

costumer. Untuk merancang database tabel order dapat dilihat

seperti rancangan berikut :

Tabel 22. Tabel Order


Keteranga
No Tbl_order Type Width n
1 Id_order Bigint 11 Primary
key
2 Id_invoice Bigint 11
3 Id_costumer Varchar 11
4 Nama Varchar 35
62

5 Email Varchar 25
6 Telepon Varchar 15
7 Alamat Varchar 35
9 Id_produk Varchar 11
10 Harga Int 10
11 Jumlah Int 5
12 Tgl_order Date
13 Jam_order Time
14 Status order Enum
15 Kode_promo Varchar 20
16 Diskon_prom Int 5
o

Pada tabel order dimasukkan semua data terkait order,

mulai dari data produk dan data costumer sendiri. Primery key

untuk tabel order adalah id_order.

g) Tabel Order Produk

Tabel order produk merupakan tabel yang akan

ditampilkan pada laporan order. Dimana detail dari order

produk, akan menampilkan data dari tabel order. Untuk

merancang database tabel order produk dapat dilihat seperti

rancangan berikut :

Tabel 23. Order Produk


Tbl_order_Pro Keteranga
No duk Type Width n
1 Id_order_prod Bigint 11 Primary
uk key
2 Id_session varchar 11
3 Id_produk bigint 11
4 Qty int 11
5 Colour varchar 25
6 Size varchar 10
7 Harga_unit bigint 10
63

8 Tgl_order Date

Tabel order produk menampilkan garis umum tentang

order produk. Dimana tabel order produk merupakan primary

key. Pada tabel ini juga ada id_session.

h) Tabel Confirm

Tabel confirm merupakan tabel yang akan digunakan

costumer untuk melakukan konfirmasi pembayaran setelah

melakukan transfer melalui bank. Rancangan database untuk

tabel confirm adalah :

Tabel 24. Confirm


Keteranga
No Tbl_confirm Type Width n
1 Confirm_id Bigint 11 Primary
key
2 Fullname varchar 35
3 Email varchar 25
4 Date_payment date 11
5 Nominal bigint 10
6 To_bank varchar 10
7 Bank_account varchar 20
8 Order_id bigint 11
9 No_invoice varchar 11
10 Messages Text
11 Attachment varchar
12 Status_confirm tinyint 1
13 Date_added datetime
Pada tabel confirm di atas,yang menjadi primary key

adalah confirm_id. Costumer harus melengkapi semua data

tersebut sebelum mengirim konfirmasi pembayaran.

3. Entity Relationship Diagram (ERD)


64

Perancangan basis data diperlukan ERD untuk menggambarkan

entitas (aktor) yang berperan dalam sebuah basis data serta hubungan

antar aktor-aktor yang berperan. Berikut ERD sistem pelayanan

penjualan online :

Keterangan Nama
Pasword Perusahaan
Alamat Foto Keterangan

Nama Alamat
Telepon Ukuran Stok
Username
Jenis Email
User Name Harga Warna
Kelamin
Id_Kategori Nama
Id_Supplier
Id_Barang Nama Barang Kategori
Id_admin Password Telepon

1 N 1 1 Kategori 1 M
Admin Menjual Barang Mempunyai Dijual Supplier
Barang

Dibeli

1 N Melakukan M M M
Owner Dimiliki Sistem Costumer Melakukan Order
Konfirmasi

Id_owner
Password Id_Costumer E-mail
Id_Order Id_Produk
Nama User Name Alamat Nama
Jumlah Nama
Jenis Gender Bank
Telepon Tanggal Total
Kelamin
Telp
Alamat Nama_Bank

Gambar 13. Entity Relationship Diagram

Diagram di atas menunjukkan semua entitas aktor yang terlibat

dalam sistem. Bagaimana aktor tersebut berperan sesuai dengan

ketentuan.

D. Perancangan Antar Muka (Interface)


65

Perancangan antar muka adalah proses pembuatan desain tampilan

dari sistem informasi yang akan dibuat. Adapun Perancangan website Toko

A4 Sport Padang adalah sebagai berikut.

1. Perancangan Antar Muka Halaman Utama

Perancangan ini menampilkan tampilan halaman utama dari

web. Pada halaman ini dapat beberapa menu yang dapat di akses oleh

user. Adapun rancangan tampilan yang akan dibat yaitu :

LOGO Pencarian

Beranda Produk Brand Konfirmasi Tentang


Kontak Login
Pembayaran Kami

Troli Belanja
Kategori

Banner Image

Gambar Produk

Gambar 14. Rancangan Halaman Utama


Gambar di atas merupakan rancangan halaman utama yang akan

ditampilkan pada website. Dimana page ini menampilkan menu-menu

Beranda, produk, brand, konfirmasi pembayaran, kontak, tentang

kami, dan Login.

2. Perancangan Input

Perancangan input merupakan sebuah rancangan yang

menggambarkan masukan/entry data yang dapat dilakukan pada

sistem informasi yang dirancang. Berikut adalah rancangan input

sistem informasi yang diusulkan.


66

a) Form Input Data Admin

Form ini berguna untuk menginputkan data-data Admin

pada Toko A4 Padang. Hasil inputan dari form ini akan

disimpan di dalam database.

INP UT DAT A ADMIN

ID ADMIN
NAMA

ALAMAT

EMAIL
T ELEP ON
USER NAME
P ASSWORD

DAFT AR BAT AL

Gambar 15. Form Input Data Admin

Form di atas merupakan form untuk input data Admin.

Dimana Admin juga memiliki username dan password.

b) Rancangan Input Data Supplier

Rancangan input data supplier digunakan untuk

menambahkan data dari supplier. Data yang dimasukkan akan

disimpan di dalam database.


67

INP UT DAT A SUP P LIER

ID SUP P LIER
NAMA P ERUSAHAAN
ALAMAT
EMAIL
T ELEP ON
USER NAME
P ASSWORD

DAFT AR BAT AL

Gambar 16. Rancangan Input Halaman Login Supplier

Form di atas merupakan halaman input data supplier.

Supplier dapat mengakses sistem jika telah melakukan login .

c) Rancangan Input Halaman Login Customer

Rancangan input halaman login menyajikan verifikasi

untuk hak akses customer dan admin untuk masuk ke halaman

pengelolaan sistem informasi.

INP UT LOGIN COST UMER

USERNAME

P ASSWORD

DAFT AR LOGIN

Gambar 17. Rancangan Input Halaman Login Customer


Untuk dapat mengakses sistem dan melakukan pemesanan

costumer harus login terlebih dahulu. Sebelum login, costumer

harus melakukan registrasi terlebih dahulu.


68

d) Rancangan Input Halaman Biodata Customer

Rancangan input halaman biodata menyajikan verifikasi

untuk hak akses customer dan admin untuk masuk ke halaman

pengelolaan sistem informasi.

INP UT DAT A COST UMER

NAMA

E-MAIL

ALAMAT

GENDER

T ELP ON
USERNAME
P ASSWORD

REGIST ER BAT AL

Gambar 18. Rancangan Input Halaman Biodata Customer

Form di atas adalah untuk registrasi costumer. Costumer

diminta untuk melengkapi data-data yang diperlukan sebelum

melakukan pemesanan produk pada sistem.

e) Form Input Data Owner

Form ini berguna untuk menginputkan data-data owner

pada Toko A4 Sport Padang. Hasil inputan dari form ini akan

disimpan di dalam database.


69

INP UT DAT A OWNER

ID OWNER
NAMA

ALAMAT

EMAIL
T ELEP ON
USER NAME
P ASSWORD

DAFT AR BAT AL

Gambar 19. Form Input Data Owner

Form di atas merupakan form untuk input data Admin.

Dimana Admin juga memiliki username dan password.

3. Perancangan Output

Rancangan output dimaksudkan untuk menetapkan format

tampilan yang digunakan sebagai media untuk melihat hasil akhir dari

sebuah website yang telah dibangun. Sebagai bentuk data yang dapat

dilihat pada layar komputer. Bentuk dari desain output sistem website

yang dirancang adalah sebagai berikut :

a) Rancangan Output Order Costumer

Rancangan output order costumer merupakan bukti order

yang dilakukan oleh costumer. Costumer dapat mencetak bukti

ini. Adapun rancangannya adalah seperti berikut :

Tabel 25. Rancangan Output Order Costumer


70

Detail Order
Order ID Metode Pembayaran Transfer
Invoice ID Nama a/n
Tanggal Bank

Bank

Alamat Pembayaran

Nama Produk Brand QTY Harga Total

Subtotal
Berat
Ongkir
Total
Status Order
Tanggal Order Status Komentar

Tabel di atas menjelaskan berisikan tentang detail order,

dimana ini merupakan bukti order costumer. tabel ini juga

berisikan status order yang diberikan admin yang bisa dicetak.

Berikut adalah query menampilkan output buki pembelian:


SELECT `no` , `tanggal` , `id_costumer` ,`id_pesanan` ,
`id_produk`, `jumlah`,‟harga‟
FROM`tbl_Bukti_Pembelian`
WHERE1
LIMIT 0 , 30

b) Laporan Order

Untuk menjelaskan laporan order produk pada sistem ini,

akan di rancang sebuah tampilan output laporan order yang


71

dibutuhkan oleh owner. Rancangan tersebut dapat dilihat seperti

di bawah ini :

Tabel 26. Laporan Order


No Tanggal Order ID Nama Ongkir Total

Tabel di atas menjelaskan rancangan output untuk laporan

penjualan, yang akan menampilkan tentang no, tanggal

penjualan, order ID, nama, ongkos kirim, dan total.

Berikut adalah query menampilkan output laporan penjualan:

SELECT `no` , `tanggal` , `order_id` ,`nama` , `ongkos_kirim`,


`total`
FROM`tbl_Laporan_penjualan`
WHERE1
LIMIT 0 , 30

c) Laporan Penjualan

Untuk menjelaskan laporan penjualan produk pada sistem

ini, akan di rancang sebuah tampilan output laporan penjualan

yang dibutuhkan oleh owner. Rancangan tersebut dapat dilihat

seperti di bawah ini :

Tabel 27. Laporan Penjualan


Tangg Order ID
No Nama Ongkir Total
al
72

Tabel di atas menjelaskan rancangan output untuk laporan

penjualan, yang akan menampilkan tentang no, tanggal

penjualan, order ID, nama, ongkos kirim, dan total.

Berikut adalah query menampilkan output laporan penjualan:

SELECT `no` , `tanggal` , `order_id` ,`nama` , `ongkos_kirim`,


`total`
FROM`tbl_Laporan_penjualan`
WHERE1
LIMIT 0
BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

A. Implementasi Sistem

Implementasi merupakan tahap uji coba terhadap Perancangan Perangkat

Lunak Sistem E-Commerce pada Toko A4 Sport. Implementasi ini dilakukan

untuk mengetahui apakah Perancangan Perangkat Lunak Sistem E-Commerce

yang telah dirancang dapat berjalan sesuai dengan yang diinginkan.

Berdasarkan analisis user, terdapat 4 halaman utama dalam sistem ini

yaitu halaman user costumer, user admin, user owner, dan user supplier.

Adapun tahap implementasinya akan dibahas sebagai berikut.

1. Halaman Home Costumer

Halaman home merupakan halaman awal saat user costumer

membuka website sistem e-commerce. Pada halaman home ini terdapat

informasi mengenai produk dan kategori, brand, konfirmasi pembayaran,

dan informasi tentang toko. Dimana costumer dapat melakukan

pembelian di halaman ini setelah melakukan login dan konfirmasi order

(checkout) .

Gambar 20. Halaman Home User Costumer

72
73

Gambar di atas merupakan tampilan halaman utama untuk user

costumer atau pengunjung website. Di halaman ini user costumer dapat

melihat produk dan melakukan order.

Untuk menampilkan slide pada home :

<div class="col-sm-9">
<div id="slideshow0" class="flexslider">
<ul class="slides">
<?php foreach ($slider as $r) { ?>
<li><a href="<?php echo $r->url; ?>"><img
src="uploads/banners/<?php echo $r->image;
?>" class="img-responsive" /></a></li>
<?php } ?>
</ul>
</div>
<script type="text/javascript">
<!--
$('#slideshow0').flexslider({
animation: 'slide',
animationLoop: true,
itemWidth: 1140});
-->
</script>
</div>

Potongan script di atas bekerja pada tampilan home yang berfungsi

sebagai slider. Sehingga gambar bergerak dari kiri ke kanan.

Script untuk menambahkan produk ke troli belanja yaitu:

<div class="button-group">
<?php if($rows->stok > 0) { ?>
<button type="button" onclick="cart.add('<?php echo
$product_id; ?>','1','<?php echo $hdiskon; ?>','
<?php echo $product_name; ?>');"><i class="fa fa-
shopping-cart"></i> <span class="hidden-xs hidden-
sm hidden-md">Beli Sekarang</span></button>

<?php } else { ?>


<button type="button"><i class="fa fa-shopping-
cart"></i> <span class="hidden-xs hidden-sm hidden-
md">Beli Sekarang</span></button><?php } ?>
<?phpif($this->session->userdat(„level‟=="customer"{?>

Potong script di atas berfungsi untuk menambahkan produk yang di

beli ke troli belanja. Setelah user memilih menu Beli Sekarang, produk

akan otomatis ditambahkan ke troli belanja.


74

Sedangkan script untuk melihat isi troli adalah:

<?php foreach ($cart as $row) {


$harga = $row->harga;
$qty = $row->qty;
$diskon = $row->diskon;
$berat = $row->berat * $qty;
$diskonrp = $diskon/100*$harga;
$hdiskon = $harga - $diskonrp;
$sub_total = $hdiskon * $qty;
@$ttl_berat = $ttl_berat + $berat;
} ?>

<h3>Troli (<?php if(@$ttl_berat==null) { echo "0"; } else { echo str_replace('.',',',@$ttl_berat); } ?>


Kg)</h3>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th class="text-center">Gambar</th>
<th class="text-left">Nama Produk</th>
<th class="text-left">Kategori</th>
<th class="text-left">Quantity</th>
<th class="text-right">Harga Unit</th>
<th class="text-right">Total</th>
</tr>
</thead>
Potongan script di atas bekerja untuk memanggil produk yang telah

dibeli. Pada troli ini user juga dapat melakukan pembelian lagi setelah

memilih tombol Beli Lagi. Sedangkan tombol checkout untuk selesai

belanja.

2. Halaman Login Costumer

Halaman login adalah halaman yang harus diisi setelah costumer

melakukan checkout. Implementasi halaman login costumer dapat dilihat

dari gambar berikut :

Gambar 21. Halam Login Costumer


75

Pada halaman login, costumer harus memasukkan akun e-mail dan

password. Jika belum mempunyai akun, costumer dapat mendaftar

terlebih dahulu. Pada saat login, jika e-mail atau password salah, maka

akan muncul pesan error.

Gambar 22. Pesan Error Login

Gambar di atas merupakan pesan error pada halaman login. Pesan

tersebut akan muncul, jika e-mail atau password costumer salah.

Adapun script untuk menampilkan form login sebagai berikut :


<h2>Pelanggan Tetap</h2>
<p><strong>Saya pelanggan tetap</strong></p>
<div class="form-group">
<label class="control-label" for="input
email">Alamat E-mail</label>
<input type="text" name="email" value="" placeholder="example@example.com"
id="input-email" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-
password">Password</label>
<input type="password" name="password" value="" placeholder="Password"
id="input-password" class="form-control" />
<a href="customer/forgotten">Lupa Password?</a>
</div>
<button type="button" id="button-login" data-loading-text="<i class='fa fa-spinner fa-
pulse'></i> Mengeksekusi..." class="btn btn-primary">Masuk</button>
</div>

Potongan script di atas akan bekerja untuk menampilkan form login

untuk user costumer. Dimana user harus memasukkan e-mail dan

password.

3. Koneksi Database

Untuk penyimpanan data pada sistem e-commerce ini dibutuhkan

koneksi ke database, pada file database di folder application/config

dengan script sebagai berikut :


76

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'db_ecommerce_sport';
$db['default']['dbdriver'] = 'mysql';

Dari script di atas diketahui bahwa secara default, nama situs dari

aplikasi ini yaitu localhost, dengan database db_ecommerce_sport yang

dikoneksikan dengan mysql.

4. Halaman User Admin

Halaman user admin merupakan halaman yang dapat dilihat oleh

user admin. Admin memiliki hak akses untuk manajemen produk,

kategori, order dan user costumer. Berikut beberapa sub halaman yang

terdapat dalam halaman user admin :

a) Halaman Home Admin

Implementasi halaman home user admin dapat dilihat dari

gambar berikut :

Gambar 23. Halaman Home Admin

Halaman home merupakan halaman utama dari user admin.

Halaman ini merupakan tampilan awal jika admin telah melakukan

login.
77

b) Halaman Manajemen Menu Katalog Kategori Admin

Implementasi halaman kategori user admin sebagai berikut :

Gambar 24. Halaman Manajemen Kategori Admin

Pada halaman kategori, admin memiliki hak akses untuk

menambahkan kategori, melakukan edit, update dan menghapus

kategori. Kategori yang di tambahkan admin, akan tampil di halaman

home website.

Script yang bekerja untuk halaman kategori sebagai berikut:

<td style="width: 60px;" class="text-center">No.</td>


<td class="text-left">Kategori</td>
<td class="text-right">Opsi</td>
</thead>
<tr class="record">
<td class="text-center">
<input type="checkbox" name="checkbox[]" id="<?php echo
$rows->id_kategori; ?>" />
</td>
<td class="text-center"><?php echo $no; ?>.</td>
<td class="text-left"><?php echo $rows->nama_kategori; <td
class="text-right"><a href="admin/editcategory/<?php echo
$rows->id_kategori; ?>" data-toggle="tooltip" title="Edit"
class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
</tr>

Potongan program di atas bekerja untuk menampilkan halaman

kategori, yang bisa ditambah, edit, update dan dihapus oleh admin.
78

c) Halaman Menu Katalog Produk Admin

Halaman produk merupakan halaman yang memberikan hak

akses kepada admin untuk melakukan manajemen produk.

Implementasi halaman produk dapat dilihat sebagai berikut :

Gambar 25. Halaman Manajemen Produk Admin

Gambar di atas menjelaskan bahwa pada halaman produk

terdapat tabel opsi yang memiliki 3 tombol, tombol biru (kiri) untuk

manajemen edit detail produk, tombol biru muda (tengah) sebagai

manajemen warna, dan tombol hijau (kanan) untuk manajemen

ukuran produk.

Script yang digunakan untuk memanggil tampilan halaman

manajemen produk adalah sebagai berikut :

id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input
type="checkbox"onclick="$('input[name*=\'checkbox\']').
prop('checked', this.checked);" /></td>
<td class="text-center">Gambar</td>
<td class="text-left"><a href="#">Nama Produk</a></td>
<td class="text-left"><a href="#">Merk</a></td>
<td class="text-left"><a href="#">Kategori</a></td>
<td class="text-left"><a href="#">Harga</a></td>
<td class="text-right"><a href="#">Quantity
Stok</a></td>
<td class="text-right"><a href="#">Berat</a></td>
<td class="text-left"><a href="#">Status</a></td>
<td class="text-right">Opsi</td>
</tr>
79

Potongan program di atas memanggil tampilan halaman produk.

Dimana fungsi form akan memberikan akses kepada admin untuk

menambahkan produk, mengubah, dan menghapus produk. Fungi

edit terdapat pada <td class paling bawah.

d) Halaman Manajemen Merk Produk Admin

Halaman manajemen merk produk memberikan hak akses untuk

admin dalam hal melakukan perubahan terhadap merk. Implementasi

halaman menu merk produk sebagai berikut :

Gambar 26. Halaman Manajemen Merk Produk Admin

Tampilan halaman merk produk merupakan halaman

manajemen merk produk oleh admin. Pada halaman ini admin dapat

menambahkan, mengubah, dan menghapus merk produk.

Adapun script yang bekerja untuk memanggil halaman ini adalah :

<td style="width: 1px;" class="text-center"><input type="checkbox"


onclick="$('input[name*=\'checkbox\']').prop('checked', this.checked);"
/></td>
<td style="width: 60px;" class="text-center">No.</td>
<td class="text-left">Merk</td>
<td class="text-right">Opsi</td>
</tr>
<tr class="record">
<td class="text-center"><input type="checkbox"
name="checkbox[]" id="<?php echo $rows->id_merk; ?>"
80

Script di atas menampilkan halaman manajemen merk produk

dan memanggil fungsi-fungsi tambah, edit, dan hapus.

e) Halaman Manajemen Ulasan Admin

Halaman ulasan produk merupakan halaman manajemen

ulasan/komentar yang ditulis costumer terhadap produk. Gambar

berikut akan menjelaskan tampilan halaman ulasan produk:

Gambar 27. Halaman Manajemen Ulasan Admin

Gambar di atas menjelaskan bahwa pada tabel ulasan terdapat

status yang dapat di edit admin menjadi enable. Itu artinya, ulasan

tersebut akan ditampilkan pada detail produk tersebut.

Potongan program yang bekerja untuk halaman ini adalah :

<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-bars"></i> Edit
Ulasan</h3>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-
status">Status</label>
<div class="col-sm-10">
<select name="status_ulasan" id="input-status" class="form-
control">
<option value="1" <?php if($rows->status_ulasan=="1") {
echo 'selected="selected"'; } ?>>Enabled</option>
<option value="0" <?php if($rows->status_ulasan=="0") { echo
'selected="selected"'; } ?>>Disabled</option>
</select>
Script di atas menjelaskan bahwa, terdapat 2 value untuk

mengubah status ulasan. Value 0 untuk status disable, artinya belum


81

disetujui admin. Sedangkan value 1 untuk status enable, artinya telah

disetujui admin untuk ditampilkan pada produk

f) Halaman Program Diskon Admin

Halaman program diskon merupakan halaman manajemen

admin yang menyediakan diskon toko dengan kode tertentu. Jika

costumer berbelanja menggunakan kode tersebut, akan mendapatkan

diskon sesuai dengan syarat tertentu.

Adapun implementasi halaman program diskon adalah:

Gambar 28. Halaman Program Diskon Admin

Gambar di atas menjelaskan ketentuan untuk program diskon.

Dimana minimal belanja costumer harus Rp. 300.000, dan sesuai

dengan jangka waktu yang ditetapkan.

Potongan script yang digunakan adalah :

<?php } ?>
<?php $no=1; foreach ($promo as $rows) { ?>
<tr class="record">
<td class="text-center"><input type="checkbox" name=
"checkbox[]" id="<?php echo $rows->id_promo; ?>" /></td>
<td class="text-center"><?php echo $no; ?>.</td>
<td class="text-left"><?php echo $rows->kode_promo;
<td class="text-right"><?php echo $rows->diskon_promo;
<td class="text-left"><?php echo $rows->ket_promo; ?></td>
<td class="text-right">Rp. <?php echo number_format($rows-
>minimal_transaksi,0,',','.'); ?></td>
<td class="text-left"><?php echo $rows->tgl_mulai; ?></td>
<td class="text-left"><?php echo $rows->tgl_selesai;
<td class="text-right"><a href="admin/editpromo/<?php echo
$rows->id_promo; ?>" data-toggle="tooltip" title="Edit"
class="btn btn-primary"><i class="fa fa-pencil"></i></a>
</td>
</tr>
82

Potongan script di atas berfungsi untuk menampilkan tabel

program promo, menampilkan minimal belanja dan memanggil

waktu awal promo serta batas akhir promo.

g) Halaman Permintaan Produk Admin

Halaman permintaan produk admin merupakan halaman

permintaan produk dari admin kepada supplier terkait. Halaman ini

merupakan halaman lanjutan dari status stok produk pada menu

katalog produk, dimana jika jumlah produk ≤ 4, akan tampil tombol

permintaan barang otomais kepada supplier (tombol orange kanan).

Implementasi halaman permintaan produk sebagai berikut:

Gambar 29. Halaman Stok Produk Sedikit

Pada gambar di atas terdapat tabel opsi warna orange, tombol ini

akan menampilkan permintaan produk kepada supplier, dan akan

tampil pada menu permintaan produk.

Gambar 30. Halaman Permintaan Produk Admin


83

Pada gambar di atas, admin dapat mengubah jumlah permintaan

produk, menambahkan keterangan warna dan ukuran produk kepada

supplier terkait. Script yang digunakan untuk halaman ini adalah:

<?php foreach ($products as $rows) { ?>


<tr class="record">
<td class="text-center"><input type="checkbox" name=
"checkbox[]" id="<?php echo $rows->id_permintaan; ?>"
<td class="text-center"><img src="uploads/products
/<?php echo $rows->gambar; ?>" width="50px" height=
"50px" alt="Canon EOS 5D" class="img-thumbnail" /></td>
<td class="text-left"><a href="product/id/<?php echo
$rows->id_produk; ?>/<?php echo strtolower(str_replace('
','-',$rows->nama_produk)); ?>.html" target="_blank">
<?php echo $rows->nama_produk; ?></a><br><span
style="color: #f28e00">ID: <?php echo $rows->id_produk;
?></span></td>
<td class="text-left"><?php echo $rows->merk; ?></td>
<td class="text-left"><?php echo $rows->nama_kategori;
<td class="text-right"><span class="label <?php if
($rows->stok<=4) { echo 'label-danger'; } else { echo
'label-success'; } ?>"><?php echo $rows->stok; ?></span>
Item(s)</td>
<td class="text-right"><?php echo $rows->jml_permintaan;
?> Item(s)</td>
<td class="text-right"><?php if($rows->jml_dikirim!=0) {
echo $rows->jml_dikirim; echo " Item(s)"; } else { echo
'-'; } ?></td>
<td class="text-left"><?php echo $rows->pesan; ?></td>
<td class="text-center"><?php echo ucwords($rows-
>status_permintaan); ?></td>
<td class="text-center">
<a href="admin/editrequest/<?php echo $rows-
>id_permintaan; ?>" class="btn btn-warning"
title="Edit"><i class="fa fa-pencil"></i></a>

Potongan script di atas berfungsi untuk mengirimkan

permintaan produk kepada supplier, yang secara otomatis terkirim

kepada supplier terkait yang telah di-input pada saat admin

menambahkan produk dan detailnya.

h) Halaman Pesan Admin

Halaman pesan admin merupakan halaman yang memberikan

hak akses kepada admin, untuk melakukan manajemen terhadap


84

pesan masuk dari supplier dan pesan terkirim ke supplier. Adapun

implementasi halaman pesan admin sebagai berikut :

Gambar 31. Halaman Pesan Admin

Pada gambar di atas, ditampilkan inbox dari supplier dan outbox

kepada supplier. Pada halaman ini juga ditampilkan waktu pesan.

Sehingga admin dapat mengecek dengan mudah.

i) Halaman Manajemen Order Admin

Halaman order berfungsi untuk manajemen data order oleh

admin. Menampilkan opsi delete (warna merah) dan edit (warna

biru). Dapat dilihat pada gambar berikut :

Gambar 32. Halaman Manajemen Order Admin

Gambar di atas menjelaskan bahwa admin mempunyai hak

akses untuk mengubah status order pelanggan. Lebih jelasnya dapat

digambarkan sebagai berikut:


85

Gambar 33. Halaman Edit Status Order

Gambar di atas merupakan halaman edit status order pelanggan,

terdiri dari menu detail order, detail pembayaran, produk dan

history. Pada history, admin dapat mengubah status order pelanggan.

Adapun script yang digunakan adalah sebagai berikut :

>Order Status</label>
<div class="col-sm-10">
<select name="status_history" id="input-history-status"
class="form-control">
<option value="pending" <?php if($rows->status_order==
"pending") { echo "selected"; } ?>>Pending</option>
<option value="verifikasi" <?php if($rows->status_order==
"verifikasi") { echo "selected"; } ?>>Verifikasi</option
<option value="selesai verifikasi" <?php if($rows->status_order=="selesai
verifikasi") { echo "selected"; } ?>>Selesai Verifikasi</option>
<option value="proses" <?php if($rows->status_order==
"proses") { echo "selected"; } ?>>Proses</option>
<option value="terkirim" <?php if($rows->status_order=="terkirim") { echo
"selected"; } ?>>Terkirim</option>
<option value="diterima" <?php if($rows->status_order==
"diterima") { echo "selected"; } ?>>Diterima</option> <option value="refund"
<?php if($rows->status_order==
"refund") { echo "selected"; } ?>>Refund</option> <option value="batal"
<?php if($rows->status_order==
"batal") { echo "selected"; } ?>>Batal</option>
<option value="kadaluarsa" <?php if($rows->status_order==
"kadaluarsa") { echo "selected"; } ?>>Kadaluarsa</option>
</select>
</div>

Potongan script di atas bekerja untuk menampilkan pilihan

status order. Jika status dikirim, akan ditampilkan jasa pengirim dan

dan No. Resi kirim, pemberitahuannya akan dikirim ke akun


86

costumer pada website. Jika status order produk terkirim, maka

dengan otomatis jumlah stok produk akan berkurang di katalog

produk.

j) Halaman Pengaturan Admin

Halaman pengaturan memberikan hak akses kepada admin

untuk melakukan pengaturan terhadap beberapa tampilan di halaman

user. Adapun implementasi halaman pengaturan adalah sebagai

berikut :

Gambar 34. Halaman Pengaturan Admin

Gambar di atas menampilkan halaman pengaturan admin.

Admin dapat mengatur tampilan mengenai tentang, kontak, privacy

policy, terms of service, bantuan, slider produk dan ongkos kirim.

k) Halaman Menu Supplier User Admin

Merupakan halaman yang menampilkan data dari supplier.

Admin juga diberi hak akses untuk melakukan manajemen terhadap

data supplier. Adapun implementasi halaman menu supplier admin :


87

Gambar 35. Halaman Menu Supplier User Admin

Gambar di atas menjelaskan tampiln data supplier. Admin dapat

melakukan tambah dan edit data supplier. Adapun script yang

bekerja untuk halaman ini adalah sebagai berikut :

<div class="container-fluid">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-bars"></i> Data
Supplier</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered table-hover zebra-
style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input
type="checkbox" onclick="$('input[name*=\'checkbox\']')
.prop('checked', this.checked);" /></td>
<td class="text-center">No.</td>
<td class="text-left">Nama Perusahaan</td>
<td class="text-left">Telepon</td>
<td class="text-left">Email</td>
<td class="text-center">Status</td>
<td class="text-right">Opsi</td>
</tr>

Script di atas berfungsi untuk menampilkan tabel data supplier.

Dimana tabel yang ditampilkan di halaman data supplier terdiri dari

no, nama perusahaan, alamat, telepon, email, status dan opsi.

l) Halaman Menu Kurir User Admin

Halaman menu kurir merupakan halaman dalam akses admin

untuk melakukan manajemen terhadap data kurir. Adapun

implementasi dari halaman menu kurir admin adalah :


88

Gambar 36. Halaman Menu Kurir User Admin

Gambar di atas menampilkan tabel data kurir. Admin memiliki

hak akses untuk menambah, mengubah dan menghapus data kurir.

Script yang berfungsi untuk menampilkan halaman ini adalah :

<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered table-hover zebra-
style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input
type="checkbox" onclick="$('input[name*=\'checkbox\']')
.prop('checked', this.checked);" /></td>
<td style="width: 60px;" class="text-center">No.</td>
<td class="text-left">Kurir</td>
<td class="text-right">Opsi</td>
</tr>
</thead>
<tbody>
<?php if($kurir==null)
{
?>

Potongan script di atas bekerja untuk memanggil dan

menampilkan tabel data kurir dan memberikan hak akses untuk

admin melakukan manajemen data kurir.

m) Halaman Menu Laporan Admin

Halaman menu laporan merupakan halaman yang menampilkan

detail order dan detail penjualan. Laporan merupakan hal penting

dalam sebuah penjualan. Adapun implementasi laporan admin yaitu:


89

Gambar 37. Halaman Menu Laporan Admin

Gambar di atas menampilkan tabel order dan penjualan dalam

bentuk laporan. No order akan menampilkan detail order atau

penjualan. Admin dapat mencetak laporan order dan penjualan

sebagai bukti penjualan.

Script yang bekerja pada halaman laporan admin yaitu :

<tbody>
<?php $no=1; foreach ($order as $rows) { $total =
@$total + $rows->subtotal;
?>
<tr>
<td class="text-left"><?php echo $no; ?>.</td>
<td class="text-left"><?php echo $rows->
tanggal_order; ?></td>
<td class="text-center"><a href="admin/orderinfo/
<?php echo $rows->id_order; ?>/?encript=utf-8"
data-toggle="tooltip" title="" data-original-
title="Detail" target="_blank">0<?php echo $rows-
>id_order; ?></a></td>
<td class="text-right"><?php echo $rows->firstname;
?> <?php echo $rows->lastname; ?></td>
<td class="text-right">Rp. <?php echo format_rupiah
($rows->shipping_price); ?></td>
<td class="text-right">Rp. <?php echo format_rupiah
($rows->subtotal); ?></td>
/tr>
Potongan script di atas menampilkan detail order berdasarkan

no order. Sehingga ketika memilih no order, akan tampil detail

order dari costumer.


90

5. Halaman User Owner

Halaman user owner merupakan halaman untuk hak akses owner

sebagai pemilik toko. Sebagai owner, sistem dapat diakses untuk melihat

laporan order dan perkembangan pelanggan online. Sehingga owner

dapat memantau perkembangan toko dan penjualan toko secara online.

Owner hanya memiliki hak akses untuk melihat, dimana manajemen

datanya sudah dilakukan oleh admin.

Adapun implementasi halaman owner sebagai berikut :

a. Halaman Katalog Kategori Owner

Halaman ini terdapat pada sub menu katalog, yang menampilkan

kategori dari produk. Adapun implementasi halaman kategori user

owner dapat dilihat sebagai berikut :

Gambar 38. Halaman Katalog Kategori Owner

Gambar di atas menampilkan data kategori produk, dimana

owner dapat melihat kategori apa saja yang tersedia di toko online.

Script untuk menampilkan halaman kategori sebagai berikut :


91

<h3 class="panel-title"><i class="fa fa-bars"></i>


Kategori Produk</h3>
<td style="width: 60px;" class="text-center">No.</td>
<td class="text-left">Kategori</td>
<?php } ?>
<?php $no=1; foreach ($categories as $rows) { ?>
<tr class="record">
<td class="text-center">
<input type="checkbox" name="checkbox[]" id="<?php echo
$rows->id_kategori; ?>" />
</td>
<td class="text-center"><?php echo $no; ?>.</td>
<td class="text-left"><?php echo $rows->nama_kategori;
</tr>
Potongan script di atas digunakan untuk menampilkan halaman

kategori untuk diakses oleh owner. Dimana id_kategori yang

dimasukkan, akan memanggil kategori yang tersimpan.

b. Halaman Katalog Produk Owner

Halaman ini menampilkan produk dan detailnya yang telah

dimasukkan admin. Adapun implementasi halaman produk yaitu:

Gambar 39. Halaman Katalog Produk Owner

Gambar di atas menampilkan semua data detail produk. Dimana

terdapat tabel yang menjelaskan detail produk, sehingga owner dapat

mengetahui stok produk yang tersisa.


92

Script yang bekerja untuk halaman katalog produk adalah :

<thead>
<tr>
<td style="width: 1px;" class="text-center"><input
type="checkbox"onclick="$('input[name*=\'checkbox\']').pr
op('checked', this.checked);" /></td>
<td class="text-center">Gambar</td>
<td class="text-left"><a href="#">Nama Produk</a></td>
<td class="text-left"><a href="#">Merk</a></td>
<td class="text-left"><a href="#">Kategori</a></td>
<td class="text-left"><a href="#">Harga</a></td>
<td class="text-right"><a href="#">Quantity Stok</a></td>
<td class="text-right"><a href="#">Berat</a></td>
<td class="text-left"><a href="#">Status</a></td>
</tr>
</thead>
Potongan script di atas berfungsi untuk menampilkan tabel

produk. Dimana tabel berisikan gambar, nama produk, merk,

kategori, harga stok, berat dan status.

c. Halaman Katalog Merk Produk Owner

Hamalan katalog merk produk merupakan halaman untuk owner

melihat merk produk. Sama halnya dengan dengan katalog kategori

dan produk, owner hanya bisa melihat.

Implementasi halaman merk produk sebagai berikut :

Gambar 40. Halaman Katalog Merk Produk Owner

Gambar di atas menampilkan tabel merk produk yang tersedia.

Karena hanya memakai 4 merk resmi, otomatis merk yang tampil

tersedia 4 buah.
93

Adpun script yang digunakan adalah sebagai berikut :

<h3 class="panel-title"><i class="fa fa-bars"></i> Merk</h3>


<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered table-hover zebra-
style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input
type="checkbox"onclick="$('input[name*=\'checkbox\']
').prop('checked', this.checked);" /></td>
<td style="width: 60px;" class="text-center">No.</td>
<td class="text-left">Merk</td>

Script di atas bekerja untuk menampilkan tabel dan memanggil

merk produk yang telah dimasukkan oleh admin.

d. Halaman Laporan Order Owner

Halaman laporan order merupakan halaman yang berisikan

laporan untuk di akses owner mengenai order yang dilakukan

pelanggan. Laporan ini mengenai pemesanan yang masih di proses.

Adapun implementasinya adalah sebagai berikut :

Gambar 41. Halaman Laporan Order Owner

Gambar di atas menampilkan tabel tentang laporan order. Tabel

tersebut menampilkan no, tanggal, order ID, nama, ongkos kirim,


94

dan total belanja. Owner juga dapat melakukan filter berdasarkan

status order dan tanggal order. Owner juga dapat menampilkan

detail order, jika mengklik order ID.

Script yang bekerja untuk halaman laporan order adalah:

<h3 class="panel-title"><i class="fa fa-bar-chart"></i>


Pemesanan</h3>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<td class="text-left">No.</td>
<td class="text-left">Tanggal</td>
<td class="text-right">Order ID</td>
<td class="text-right">Nama</td>
<td class="text-right">Ongkos Kirim</td>
<td class="text-right">Total</td>
</tr>
</thead>
Script di atas bekerja untuk memanggil jenis order status untuk

di filter owner dan menampilkan tabel order sesuai dengan filter

yang diinginkan.

e. Halaman Laporan Penjualan Owner

Halaman laporan penjualan merupakan halaman yang

menampilkan tabel penjualan. Di sini data yang tampil adalah data

costumer yang telah melakukan pembayaran dan barang telah

berhasil dikirim.

Implementasi halaman laporan penjualan owner sebagai berikut:

Gambar 42. Halaman Laporan Penjualan Owner


95

Gambar di atas menampilkan laporan penjualan untuk di akses

owner. Pada halaman ini, owner juga bisa melakukan filter untuk

tanggal penjualan. Sama halnya dengan laporan order, detail

penjualan juga dapat ditampilkan setelah mengklik order ID.

Script yang bekerja untuk halaman ini adalah sebagai berikut :

<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<td class="text-left">No.</td>
<td class="text-left">Tanggal</td>
<td class="text-right">Order ID</td>
<td class="text-right">Nama</td>
<td class="text-right">Ongkos Kirim</td>
<td class="text-right">Total</td>
</tr>
</thead>

Potongan script di atas menampilkan tabel laporan penjualan

dan memanggilnya berdasarkan tanggal jika dilakukan filter oleh

owner sesuai tanggal yang diinginkan.

6. Halaman User Supplier

a) Halaman Login Supplier

Halaman login merupakan halaman utama saat supplier

membuka website. Agar dapat masuk ke halaman menu selanjutnya,

supplier harus memasukkan username dan password. Implementasi

dari halaman login supplier adalah sebagai berikut:


96

Gambar 43. Halaman Login Supplier

Gambar di atas menampilkan sebuah form login supplier.

Setelah memasukkan username dan password, supplier harus

memilih tombol login untuk masuk ke halaman selanjutnya.

Adapun script yang dibutuhkan untuk halaman ini yaitu:

<h1 class="panel-title"><i class="fa fa-lock"></i> Login


Supplier</h1>
<div class="panel-body">
<form id="form" action="supplier/auth" method="post"
enctype="multipart/form-data">
<div id="result"></div>
<div class="form-group">
<label for="input-username">Username</label>
<div class="input-group"><span class="input-group-
addon"><i class="fa fa-user"></i></span>
<input type="text" name="username" value="" placeholder=
"Username" id="input-username" class="form-control" />
</div>
<div class="form-group">
<label for="input-password">Password</label>
<div class="input-group"><span class="input-group-
addon"><i class="fa fa-lock"></i></span>
<input type="password" name="password" value=""
placeholder="Password" id="input-password" class="form-
control" />
</div>
<div class="text-right">
<button type="submit" id="submit" class="btn btn-
warning"><i class="fa fa-key"></i> Login</button> OR <a
href="admin/login" class="btn btn-primary"><i class="fa
fa-key"></i> Login Admin</a>
</div>
97

Potongan script di atas bekerja untuk menampilkan form login.

Dimana ditampilkan form untuk memasukkan username dan

password, serta menampilkan tombol untuk login.

b) Halaman Permintaan Produk User Supplier

Halaman ini merupakan halaman yang memberikan hak akses

kepada supplier terkait untuk melakukan manajemen produk,

terutama permintaan produk dari admin. Supplier akan menerima

pemberitahuan jika admin mengirimkan permintaan produk. Supplier

juga dapat melakukan validasi terhadap permintaan admin.

Implementasi halaman ini sebagai berikut :

Gambar 44. Halaman Permintaan Produk User Supllier

Gambar di atas menampilkan pemberitahuan tentang permintaan

admin. Tabel tersebut menampilkan jumlah permintaan produk yang

dikirim admin. Supplier dapat menggunakan tombol opsi untuk

memberikan validasi untuk proses selanjutnya kepada admin. Script

yang bekerja untuk halaman ini adalah :

<option value=""> --- Pilih --- </option>


<option value="meminta" <?php if($status_permintaan==
"meminta") { echo "selected"; } ?>>Meminta Stok</option>
<option value="terkirim" <?php if($status_permintaan==
"terkirim") { echo "selected"; } ?>>Terkirim</option>
<option value="stok kosong" <?php if($status_permintaan==
"stok kosong") { echo "selected"; } ?>>Stok
Kosong</option>
<option value="batal" <?php if($status_permintaan==
"batal") { echo "selected"; } ?>>Batal</option>
98

Potongan script di atas berfungsi untuk mengubah status

permintaan produk dari admin. Status yang dikirim supplier dapat

dilihat admin pada halaman permintaan produk admin. Jumlah stok

produk yang dikirim supplier, otomatis akan bertambah di katalog

produk. Jadi admin tidak perlu lagi menambahkan stok produk pada

katalog produk.

c) Halaman Pesan User Supplier

Halaman pesan merupakan halaman yang di akses supplier

untuk menerima dan mengirim pesan ke admin. Halaman pesan ini

juga akan menampilkan permintaan produk dari admin.

Implementasi dari halaman pesan supplier adalah sebagai berikut:

Gambar 45. Halaman Pesan User Supplier

Pada gambar di atas, di tampilkan form menu inbox dari admin

dan outbox kepada admin. Pada detail pesan juga ditampilkan

tanggal pesan. Supplier juga dapat melakukan searching pesan

berdasarkan nama pengirim.


99

B. Pengujian Sistem

Pengujian sistem merupakan uji coba terhadap sistem yang telah dibuat

untuk mengetahui apakah sistem sudah berjalan dengan benar. Pengujian juga

merupakan proses evaluasi untuk memastikan aplikasi telah memenuhi

persyaratan dan siap untuk digunakan. Berikut adalah penjelasan mengenai

pengujian dari masing-masing halaman sistem.

1. Pengujian Halaman Akses Costumer

Halaman home merupakan halaman awal yang akan ditampilkan oleh

sistem ketika sistem dijalankan. Berikut tabel pengujian halaman home.

Tabel 28. Pengujian Halaman Akses Costumer


No Kasus uji Hasil yang diharapkan Hasil Pengujian Status
1 Menampilkan Tampil halaman home Tampil halaman Sukses
halaman home home
2 Memilih produk Tampil produk sesuai Tampil produk Sukses
sesuai kategori kategori
3 Melakukan order Tampil di troli belanja Tampil di troli Sukses
4 Menampilkan tabel Tampil tabel order Tampil tabel order Sukses
order di troli
5 Lanjutkan belanja Tampil ke kategori Tampil kategori Sukses
6 Checkout belanja Tampil pilihan checkout Tampil pilihan Sukses
checkout
7 Daftar pelanggan Pendaftaran berhasil Pendaftaran Sukses
baru berhasil
9 Masukan e-mail Button masuk bisa Checkout Sukses
dan password pilih diklik dan checkout dilanjutkan
button masuk dilanjutkan
10 Masukan e-mail Halaman loading lalu Tampil pesan error
dan password salah tampil pesan error Sukses
11 Melengkapi data Tampil konfirmasi Tampil konfirmasi Sukses
order costumer dan costumer dan
pemesanan selesai pemesanan selesai
12 Melakukan Konfirmasi terkirim Tampil Konfirmasi Sukses
konfirmasi terkirim
pembayaran
13 Pilih keluar akun Keluar dari akun Keluar dari akun Sukses

Berdasarkan tabel pengujian di atas, dapat disimpulkan bahwa

keseluruhan proses yang diharapkan dalam halaman yang diakses

costumer berhasil dilakukan dengan sukses.


100

2. Pengujian Halaman Akses Admin

Halaman akses admin merupakan halaman yang bisa diakses admin,

terutama untuk manajemen data. Berikut tabel pengujian halaman akses

admin:

Tabel 29. Pengujian Halaman Akses Admin


No Kasus Uji Hasil yang Hasil Pengujian Status
Diharapkan
1 Masuk ke menu login Tampil menu login Tampil menu login Sukses
2 Masukan username dan Tampil beranda Tampil beranda Sukses
password admin admin
Pilih login
3 - Pilih katalog sub - Tampil halaman - Tampil halaman
kategori kategori kategori
- Pilih button tambah - Tampil halaman - Tampil halaman
kategori tambah kategori tambah kategori
- Pilih simpan kategori - Kategori tersimpan - Kategori tersimpan Sukses
- Pilih opsi edit - Tampil halaman - Tampil halaman
- Simpan edit kategori edit edit
- Pilih button hapus - Edit berhasil - Edit berhasil
- Kategori terhapus - Kategori terhapus
4 - Pilih katalog sub - Tampil halaman - Tampil halaman
produk produk produk
- Pilih button tambah - Tampil halaman - Tampil halaman
produk tambah produk tambah produk
- Pilih simpan produk - Produk tersimpan - Produk tersimpan Sukses
- Pilih opsi edit produk - Tampil halaman - Tampil halaman
- Simpan edit produk edit edit
- Pilih button hapus - Edit berhasil - Edit berhasil
- Produk terhapus - Produk terhapus
5 - Pilih katalog sub - Tampil halaman - Tampil halaman
ulasan ulasan ulasan
- Pilih opsi edit ulasan - Tampil halaman - Tampil halaman
- Pilih ubah status edit edit Sukses
- Simpan edit ulasan - Tampil enable - Tampil enable
- Pilih button hapus - Edit status sukses - Edit status sukses
- Ulasan terhapus - Ulasan terhapus
6 - Pilih menu program - Tampil halaman - Tampil halaman
diskon program diskon program diskon
- Pilih button tambah - Tampil form - Tampil form
- Edit program diskon tambah tambah
Sukses
- Pilih button hapus - Tampil form edit - Tampil form edit
- Program diskon - Program diskon
terhapus terhapus

7. - Pilih menu permintaan - Tampil menu - Tampil menu


produk permintaan produk permintaan produk
- Pilih button tambah - Tampil form tambah - Tampil form tambah
permintaan permintaan
Sukses
- Pilih button edit - Tampil form edit - Tampil form edit
- Pilih button hapus - Permintaan terhapus - Permintaan terhapus
101

No Kasus Uji Hasil yang Hasil Pengujian Status


Diharapkan
8. - Pilih menu pesan - Tampil halaman - Tampil halaman
pesan pesan
- Pilih button tulis - Tampil form tulis - Tampil form pesan
- Pilih button inbox - Tampil form inbox - Tampil form inbox Sukses
- Pilih button terkirim - Tampil pesan - Tampil pesan
terkirim terkirim
- Pilih button hapus - Pesan terhapus - Pesan terhapus
9. - Pilih sales sub order - Tampil halaman - Tampil halaman
- Pilih button lihat order order
- Tambah status order - Tampil detail order - Tampil detail order
Sukses
- Pilih button hapus - Tampil tambah - Tampil tambah
status status
- Order terhapus - Order terhapus
10. - Pilih sales sub - Tampil halaman - Tampil halaman
costumer costumer costumer
- Pilih button edit - Tampil halaman - Tampil halaman
- Pilih simpan edit edit edit Sukses
- Pilih button hapus - Edit costumer - Edit costumer
sukses sukses
- costumer terhapus - Costumer terhapus
11 - Pilih sub pengaturan - Tampil halaman - Tampil halaman
pengaturan pengaturan
- Pilih button edit - Tampil halaman - Tampil halaman
- Pilih simpan edit edit edit
Sukses
- Edit pengaturan - Edit pengaturan
- Pilih button hapus sukses sukses
- Sub pengaturan - Sub pengaturan
terhapus terhapus
12 - Pilih menu supplier - Tampil halaman - Tampil halaman
supplier supplier
- Pilih button tambah - Tampil halaman - Tampil halaman
tambah tambah Sukses
- Pilih button edit - Tampil halaman - Tampil halaman
edit edit
- Pilih hapus supplier - Supplier terhapus - Supplier terhapus
13. - Pilih menu kurir - Tampil menu kurir - Tampil menu kurir
- Pilih button tambah - Tampil form - Tampil form
- Pilih button edit tambah tambah Sukses
- Pilih button hapus - Tampil form edit - Tampil form edit
- Kurir terhapus - Kurir terhapus
14. - Pilih laporan order - Tampil halaman - Tampil halaman
- Pilih filter status order order
Sukses
- Pilih cetak order - Tampil tabel order - Tampil tabel order
- Tampil tabel cetak - Tampil tabel cetak
15. - Pilih laporan penjualan - Tampil halaman - Tampil halaman
- Pilih filter status penjualan penjualan
Sukses
- Pilih cetak order - Tampil tabel order - Tampil tabel order
- Tampil tabel cetak - Tampil tabel cetak
16. - Pilih button logout - Keluar dari - Keluar dari Sukses
halaman akses halaman akses
admin admin
- Tampil form login - Tampil form login
102

Berdasarkan tabel pengujian di atas, dapat disimpulkan bahwa

keseluruhan proses yang diharapkan dalam halaman yang diakses admin

berhasil dilakukan dengan sukses.

3. Pengujian Halaman Akses Owner

Halaman akses admin merupakan halaman yang bisa diakses owner,

terutama untuk melihat laporan. Berikut tabel pengujian halaman akses

owner:

Tabel 30. Pengujian Halaman Akses Owner


No Kasus Uji Hasil yang Hasil Pengujian Status
Diharapkan
1 Masuk ke menu login Tampil menu login Tampil menu login Sukses
2 Masukan username dan Tampil beranda Tampil beranda Sukses
password owner owner
Pilih login
3 - Pilih katalog sub - Tampil halaman - Tampil halaman Sukses
kategori kategori kategori
4 - Pilih katalog sub - Tampil halaman - Tampil halaman Sukses
produk produk produk
5 - Pilih katalog sub merk - Tampil halaman - Tampil halaman merk Sukses
produk merk produk produk
6 - Pilih menu program - Tampil halaman - Tampil halaman Sukses
diskon program diskon program diskon
7 - Pilih menu permintaan - Tampil halaman - Tampil halaman Sukses
produk permintaan produk permintaan produk
8 - Pilih sales sub order - Tampil halaman - Tampil halaman
Sukses
order order
9 - Pilih sales sub - Tampil halaman - Tampil halaman Sukses
costumer costumer costumer
10 - Pilih menu supplier - Tampil halaman - Tampil halaman Sukses
supplier supplier
11 - Pilih menu kurir - Tampil halaman data - Tampil halaman data Sukses
kurir kurir
12 - Pilih laporan order - Tampil halaman - Tampil halaman
order order
- Pilih filter status - Tampil tabel order - Tampil tabel order Sukses
- Pilih order ID - Tampil detail order - Tampil detail order
- Pilih cetak order - Tampil tabel cetak - Tampil tabel cetak
13 - Pilih laporan penjualan - Tampil halaman - Tampil halaman
- Pilih filter status penjualan penjualan
Sukses
- Pilih cetak order - Tampil tabel order - Tampil tabel order
- Tampil tabel cetak - Tampil tabel cetak
14 - Pilih button logout - Keluar dari halaman - Keluar dari halaman Sukses
akses admin akses admin
103

Berdasarkan tabel pengujian di atas, dapat disimpulkan bahwa

keseluruhan proses yang diharapkan dalam halaman yang diakses owner

berhasil dilakukan dengan sukses.

4. Pengujian Halaman Akses Supplier

Halaman akses admin merupakan halaman yang bisa diakses

supplier, terutama untuk melihat laporan. Berikut tabel pengujian

halaman akses supplier:

Tabel 31. Pengujian Halaman Akses Supplier


No Kasus Uji Hasil yang Hasil Pengujian Status
Diharapkan
1 Masuk ke menu login Tampil menu login Tampil menu login Sukses
2 Masukan username Tampil beranda Tampil beranda Sukses
dan password supplier supplier
Pilih login
3 - Pilih katalog sub - Tampil halaman - Tampil halaman Sukses
kategori kategori kategori
4 - Pilih katalog sub - Tampil halaman - Tampil halaman Sukses
produk produk produk
5 - Pilih katalog sub - Tampil halaman - Tampil halaman Sukses
merk produk merk produk merk produk
6 Ubah status Tampil status Tampil status
permintaan dari Sukses
admin
7 Simpan status - Status tersimpan - Status tersimpan
Dan terkirim - Dan terkirim
halaman halaman Sukses
permintaan produk permintaan produk
admin admin
8 - Pilih menu pesan - Tampil halaman - Tampil halaman
pesan pesan
- Pilih button tulis - Tampil form tulis - Tampil form pesan
- Pilih button inbox - Tampil form inbox - Tampil form inbox Sukses
- Pilih button terkirim - Tampil pesan - Tampil pesan
terkirim terkirim
- Pilih button hapus - Pesan terhapus - Pesan terhapus

Berdasarkan tabel pengujian di atas, dapat disimpulkan bahwa

keseluruhan proses yang diharapkan dalam halaman yang diakses

supplier berhasil dilakukan dengan sukses.


104

5. Kelemahan Dan Solusi Sistem

Adapun kelemahan dan solusi dari sistem ini adalah sebagai berikut:

Tabel 32. Kelemahan dan Solusi Sistem


No Kelemahan sistem Solusi

1 Jasa pengirim masih di inputkan Harus ada penambahan


manual oleh admin, belum ada script lagi, jasa pengirim
form input tersendiri punya form input

C. Pembahasan

Setelah proses perancangan perangkat lunak sistem e-commerce

selesai dilakukan, dapat dikatakan bahwa sistem ini dapat mempermudah

sebuah sistem jual-beli. Karena costumer tidak perlu lagi datang ke toko,

cukup melakukan transaksi online di website yang tersedia.

Pada sistem ini terdapat 4 user yaitu costumer, admin, supplier,

dan owner. Setiap user memiliki hak akses yang berbeda. Seperti admin

menjadi lebih gampang melakukan manajemen data produk dan data

laporan, dan owner pun menjadi lebih gampang dalam memantau

perkembangan toko. Laporan yang diterima owner pun menjadi lebih

lengkap dan akurat. Tingkat promosi produk pun menjadi lebih luas,

karena bisa diakses masyarakat dimana saja.

Di dalam aplikasi ini, penulis menggunakan PHP framework

codeigniter dalam pembuatannya. Codeigniter terdiri dari 3 bagian yaitu

Model, View dan Controler. Menurut Wahana Komputer (2011:2) alasan

mengapa menggunakan framework adalah dapat mempercepat dan

mempermudah pembangunan sebuah aplikasi web. Selain itu juga


105

memudahkan dalam proses maintenance karena sudah ada pola tertentu

dalam sebuah framework (dengan syarat programmer mengikuti pola

standar yang ada). Umumnya framework menyediakan fasilitas-fasilitas

yang umum dipakai, sehingga tidak perlu membangun dari awal. Serta

lebih bebas dalam pengembangan jika dibandingkan CMS.


BAB V

PENUTUP

A. Kesimpulan

Berdasarkan hasil Perancangan Perangkat Lunak Sistem E-Commerce

(Studi Kasus Toko A4 Sport Padang) dapat disimpulkan sebagai berikut :

1. Perangkat lunak sistem e-commerce yang dirancang, setelah diuji coba

telah berhasil dengan baik.

2. Pada perangkat lunak yang telah diimplementasikan, sistem penjualan

online dan sistem manajemen data produk dan laporan telah dapat

digunakan dengan baik.

3. Konsep Object Oriented Programming (OOP) yang diimplementasikan

pada perancangan sistem e-commerce telah berhasil dengan baik.

4. Pemodelan Unified Modelling Language (UML) yang diimplementasikan

pada perancangan sistem e-commerce telah berhasil baik.

5. Bahasa pemrograman PHP Framework Codeigniter, software

development code generator atau editornya menggunakan Sublime Text

3, MySQL sebagai DBMS untuk database, serta Xampp-win 32-1.6.8

sebagai servernya, yang digunakan pada perancangan perangkat lunak

sistem e-commerce telah berhasil baik.

106
107

B. Saran

Adapun saran setelah merancang sistem e-commerce ini adalah:

1. Agar menghasilkan sebuah sistem e-commerce yang lebih komplit,

sebaiknya sistem dapat bekerja sama dengan sistem online kurir yang

dibutuhkan.

2. Agar konsumen lebih merasa puas, ada bagusnya pada sistem

ditambahkan form untuk konsumen memilih dan menginputkan kurir

yang diinginkan.

3. Pada pengembangan sistem e-commerce selanjutnya, sebaiknya

perancangan untuk pesan admin dan supplier lebih baik lagi, seperti

perancangan chat yang lebih smart dan 1 form merangkap inbox dan

outbox.
DAFTAR PUSTAKA

Adi Nugroho. 2006. E-Commerce Memahami Perdagangan Modern di Dunia


Maya. Bandung : Informatika Bandung

Awan Pribadi Basuki. 2014. Proyek Membangun Website Berbasis PHP dengan
CodeIgniter. Yogyakarta : Lokomedia

Bunafit Nugroho. 2012. Panduan Membuat Program Toko Dengan PHP, MySql
dan Dreamweaver Point Of Sale (POS). Yogyakarta : Alif Media

Fowler, Martin. 2005. UML DISTILLED Edisi 3. Yogyakarta:Andi

Riyanto. 2011. Membuat Sendiri Aplikasi E-Commerce dengan PHP & MySql
menggunakan Codeigniter & JQuery. Yogyakarta: Andi

Rosa A.S. & M. Shalahuddin. 2013. Rekayasa Perangkat Lunak (Terstruktur dan
Berorientasi Objek). Bandung : Informatika Bandung

Universitas Negeri Padang. 2010. Buku Panduan Penulisan Tugas Akhir/Skripsi


Padang : Universitas Negeri Padang.
Wahana Komputer. 2006. Pengolahan Database Dengan MySql. Yogyakarta :
Andi
Wahana Komputer. 2011. Mudah dan Cepat Membuat Website Dengan
CodeIgniter. Yogyakarta : Andi

108
Lampiran 1

Perancangan Perangkat Lunak Sistem E-Commerce

(Studi Kasus Toko A4 Sport Padang)

A. Model

1. Model Admin

class Admin_m extends CI_Model {


public function get_data_quota_exp()
{
$this->db>join('tb_supplier','tb_supplier.supplier_id=
tb_produk.supplier_id');
$this->db->where('tb_produk.stok <=','4');
$this->db->where('tb_produk.notif_supplier
!=','1');
$query = $this->db->get('tb_produk');
return $query->result();
}
public function send_request_to_supplier($supplier_id,
$email_supplier, $id_produk, $supplier, $nama_produk)
{
$data = array(
'notif_supplier' => '1'
);
$this->db->where('id_produk',$id_produk);
$query = $this->db->update('tb_produk',$data);

if($query)
{
$reply = "Yth Pimpinan ".$supplier.",<br>Stok
untuk produk ".$nama_produk." sudah mulai habis. Mohon
kiranya untuk menambah stok ke toko kami. Terima
kasih.<br><br>Salam,<br>A4 Sport Padang";
@$config['protocol'] = "mail";
@$config['smtp_host'] = "ssl://smtp.gmail.com";
@$config['smtp_port'] = "465";
@$config['smtp_user'] = "a4sportspadang@gmail.com";
@$config['smtp_pass'] = "085669068990";
@$config['charset'] = "utf-8";
@$config['mailtype'] = "html";
@$config['newline'] = "\r\n";
@$this->email->initialize($config);
@$this->email-
>from('a4sportspadang@gmail.com', 'A4 Sport Padang');
@$this->email->to($email_supplier);
@$this->email-
>reply_to('a4sportspadang@gmail.com.com', 'A4 Sport
Padang');
@$this->email->subject('Permintaan Stok
Barang');
@$this->email->message($reply);
@$this->email->send();
}
public function getAdministrator($uid)
{
$this->db->where('admin_id',$uid);
$query = $this->db->get('tb_admin');
return $query->result();
}
public function newIDProduct()
{
$this->db->select_max('id_produk','max');
$query = $this->db->get('tb_produk');
return $query->result();
}
public function getCategories()
{
$query = $this->db->get('tb_kategori');
return $query->result();
}
public function getProducts($perPage, $uri)
{
$this>db>join('tb_kategori','tb_kategori.id_kategori=
tb_produk.id_kategori');
$this->db>join('tb_merk','tb_merk.id_merk=
tb_produk.id_merk');
$query = $this->db->get('tb_produk',$perPage, $uri);
return $query->result();
}
public function getStock($perPage, $uri)
{
$this->db>join('tb_produk','tb_produk.id_produk=
tb_permintaan_stok.id_produk');
$this>db>join('tb_kategori','tb_kategori.id_kategori=
tb_produk.id_kategori');
$this->db>join('tb_merk','tb_merk.id_merk=
tb_produk.id_merk');
$query = $this->db-
>get('tb_permintaan_stok',$perPage, $uri);
return $query->result();
}
public function getProductID($id_produk)
{
$this->db->where('id_produk',$id_produk);
$query = $this->db->get('tb_produk');
return $query->result();
}
public function getMerk()
{
$query = $this->db->get('tb_merk');
return $query->result();
}
public function getColor($id_produk)
{
$this->db->where('id_produk',$id_produk);
$query = $this->db->get('tb_warna');
return $query->result();
}
public function getWarnaID($id_warna)
{
$this->db->where('id_warna',$id_warna);
$query = $this->db->get('tb_warna');
return $query->result();
}
public function getSize($id_produk)
{
$this->db->where('id_produk',$id_produk);
$query = $this->db->get('tb_ukuran');
return $query->result();
}
public function getUkuranID($id_ukuran)
{
$this->db->where('id_ukuran',$id_ukuran);
$query = $this->db->get('tb_ukuran');
return $query->result();
}
public function getPromo()
{
$this->db->order_by('id_promo','DESC');
$query = $this->db->get('tb_promo');
return $query->result();
}
public function newIDPromo()
{
$this->db->select_max('id_promo','maxID');
$query = $this->db->get('tb_promo');
return $query->result();
}
public function getPromoID($id_promo)
{
$this->db->where('id_promo',$id_promo);
$query = $this->db->get('tb_promo');
return $query->result();
}
public function newIDMerk()
{
$this->db->select_max('id_merk','maxID');
$query = $this->db->get('tb_merk');
return $query->result();
}
public function getMerkID($id_merk)
{
$this->db->where('id_merk',$id_merk);
$query = $this->db->get('tb_merk');
return $query->result();
}
public function newIDKurir()
{
$this->db->select_max('id_kurir','maxID');
$query = $this->db->get('tb_kurir');
return $query->result();
}
public function getKurirID($id_kurir)
{
$this->db->where('id_kurir',$id_kurir);
$query = $this->db->get('tb_kurir');
return $query->result();
}
public function getKurir()
{
$this->db->order_by('kurir','ASC');
$query = $this->db->get('tb_kurir');
return $query->result();
}
public function getReview()
{
$this->db>join('tb_produk','tb_produk.id_produk=
tb_ulasan.id_produk');
$this->db->where('tb_ulasan.status_ulasan','0');
$query = $this->db->get('tb_ulasan');
return $query->result();
}
public function getOrderDetail($id_order)
{

$this>db>join('tb_kabupaten','tb_kabupaten.id_kabupate
n=tb_order.id_kabupaten');
$this->db->where('tb_order.id_order',$id_order);
$query = $this->db->get('tb_order');
return $query->result();
}
public function checkOrder($id_order)
{
$this->db->where('id_order',$id_order);
$query = $this->db->get('tb_order');
return $query->result();
}
public function getDetailOrder($id_order)
{
$this->db-
>join('tb_provinsi','tb_provinsi.id_provinsi=tb_order.
id_provinsi');
$this->db-
>join('tb_kabupaten','tb_kabupaten.id_kabupaten=tb_ord
er.id_kabupaten');
$this->db-
>join('tb_customer','tb_customer.customer_id=tb_order.
customer_id');
$this->db->where('tb_order.id_order',$id_order);
$query = $this->db->get('tb_order');
return $query->result();
}
public function getHistoryList($id_order)
{
$this->db->where('id_order',$id_order);
$query = $this->db->get('tb_history');
if($query->num_rows() > 0)
{
return $query->result();
}
else
{
redirect(''.base_url().'admin/order');
}
}
public function newHistoryId()
{
$this->db->select_max('history_id','max');
$query = $this->db->get('tb_history');
return $query->result();
}
public function getInbox()
{
$this->db->where('Processed','false');
$query = $this->db->get('inbox');
return $query->result();
}
public function getCustomer()
{
$query = $this->db->get('tb_customer');
return $query->result();
}
public function getDataCustomer()
{

$this>db>join('tb_provinsi','tb_provinsi.id_provinsi=
tb_customer.province_id');
$this>db>join('tb_kabupaten','tb_kabupaten.id_kabupate
n=tb_customer.city_id');
$this->db->order_by('tb_customer.customer_id','DESC');
$query = $this->db->get('tb_customer');
return $query->result();
}
public function getDataSupplier()
{
$this->db->order_by('supplier_id','DESC');
$query = $this->db->get('tb_supplier');
return $query->result();
}
public function getDataSupplierID($supplier_id)
{
$this->db->where('supplier_id',$supplier_id);
$query = $this->db->get('tb_supplier');
return $query->result();
}
public function NewCustomerId()
{
$this->db->select_max('customer_id','max');
$query = $this->db->get('tb_customer');
return $query->result();
}
public function getCustomerID($customer_id)
{

$this>db>join('tb_provinsi','tb_provinsi.id_provinsi=
tb_customer.province_id');
$this>db>join('tb_kabupaten','tb_kabupaten.id_kabupate
n=tb_customer.city_id');
$this>db>where('tb_customer.customer_id',$customer_id)
$this->db->order_by('tb_customer.customer_id','DESC');
$query = $this->db->get('tb_customer');
if($query->num_rows() > 0)
{
return $query->result();
}
else
{
redirect(''.base_url().'admin/customer');
}
}
}
public function getReportOrder($perPage, $uri,
$filter_date_start, $filter_date_end,
$filter_order_status_id)
{

if($filter_date_start!=null AND $filter_date_end!=null


AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
$this->db-
>where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
}
elseif($filter_order_status_id!=null)
{
$this->db-
>where('status_order',$filter_order_status_id);
}
$this->db->order_by('id_order','ASC');
$query = $this->db->get('tb_order',$perPage, $uri);
return $query->result();
}
public function
getPrintReportOrder($filter_date_start,
$filter_date_end, $filter_order_status_id)
{
if($filter_date_start!=null AND
$filter_date_end!=null AND
$filter_order_status_id!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
$this->db-
>where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
}
elseif($filter_order_status_id!=null)
{
$this->db-
>where('status_order',$filter_order_status_id);
}
$this->db->order_by('id_order','ASC');
$query = $this->db->get('tb_order');
return $query->result();
}
public function getReportSale($perPage, $uri,
$filter_date_start, $filter_date_end,
$filter_order_status_id)
{

if($filter_date_start!=null AND
$filter_date_end!=null AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
$this->db-
>where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
}
$this->db->where('status_order','terkirim');
$this->db->order_by('id_order','ASC');
$query = $this->db->get('tb_order',$perPage,
$uri);
return $query->result();
}
public function getPrintReportSale($filter_date_start,
$filter_date_end, $filter_order_status_id)
{
if($filter_date_start!=null AND
$filter_date_end!=null AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
$this->db-
>where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=',
$filter_date_start);
$this->db->where('tgl_order <=',
$filter_date_end);
}
$this->db->where('status_order','terkirim');
$this->db->order_by('id_order','ASC');
$query = $this->db->get('tb_order');
return $query->result();
}
public function getConfirm()
{
$this->db-
>order_by('tb_confirm.confirm_id','DESC');
$query = $this->db->get('tb_confirm');
return $query->result();
}
public function getConfirm2($confirm_id)
{
$this->db->where('confirm_id',$confirm_id);
$query = $this->db->get('tb_confirm');
return $query->result();
2. Model Cart

class Cart_m extends CI_Model {


public function getCart()
{
@session_start();
$id = $_SESSION['id_session'];
$this->db>join('tb_produk','tb_produk.id_produk=
tb_order_produk.id_produk');
$this->db>join('tb_kategori','tb_kategori.id_kategori=
tb_produk.id_kategori');
$this->db->where('tb_order_produk.id_session',$id);
$query = $this->db->get('tb_order_produk');
return $query->result();
}
public function getProvince()
{
$query = $this->db->get('tb_provinsi');
return $query->result();
}
public function getKabupaten($id_provinsi)
{
$this->db->where('id_provinsi',$id_provinsi);
$query = $this->db->get('tb_kabupaten');
if ($query->num_rows() > 0 )
{
return $query->result_array();
}
else
{
return array();
}
}
public function getKurir()
{
$query = $this->db->get('tb_kurir');
return $query->result();
}
public function checkSession($id_session)
{
$this->db->where('id_session',$id_session);
$query = $this->db->get('tb_order');
return $query;
}
public function checkProduct($id_session, $product_id)
{
$this->db->where('id_session',$id_session);
$this->db->where('id_produk',$product_id);
$query = $this->db->get('tb_order_produk');
return $query;
}
public function getOrderDetail()
{
@session_start();
$id_session = $_SESSION['id_session'];
$this-
>db>join('tb_kabupaten','tb_kabupaten.id_kabupaten
=tb_order.id_kabupaten');
$this->db->where('tb_order.id_session',$id_session);
$query = $this->db->get('tb_order');
return $query->result();
}
public function getTrolli($id_session)
{
$this->db->join('tb_produk','tb_produk.id_produk=
tb_order_produk.id_produk');
$this->db->where('tb_order_produk.id_session'
,$id_session);
$query = $this->db->get('tb_order_produk');
return $query->result();
}
public function newOrderProductId()
{
$this->db->select_max('id_order_produk','max');
$query = $this->db->get('tb_order_produk');
return $query->result();
}
public function newHistoryId()
{
$this->db->select_max('history_id','max');
$query = $this->db->get('tb_history');
return $query->result();
}
public function newOrderId()
{
$this->db->select_max('id_order','max');
$query = $this->db->get('tb_order');
return $query->result();
}
public function getStok($id_produk)
{
$this->db->where('id_produk',$id_produk);
$query = $this->db->get('tb_produk');
return $query->result();
}
}

3. Model Costumer
class Customer_m extends CI_Model {
public function getProfile()
{
$customer_id = $this->session->userdata('customer_id');
$this->db->where('customer_id',$customer_id);
$query = $this->db->get('tb_customer');
return $query->result();
}
public function checkCustomer($email,$password)
{
$this->db->where('email',$email);
$this->db->where('password',$password);
$query = $this->db->get('tb_customer');
if($query->num_rows() > 0)
{
foreach ($query->result() as $rows)
{
$data = array(
'customer_id' => $rows->customer_id,
'firstname' => $rows->firstname,
'lastname' => $rows->lastname,
'email' => $rows->email,
'telephone' => $rows->telephone,
'company' => $rows->company,
'address_1' => $rows->address_1,
'address_2' => $rows->address_2,
'province_id' => $rows->province_id,
'city_id' => $rows->city_id,
'level' => $rows->level,
'newsletter' => $rows->newsletter,
'shipping_address'=> $rows->shipping_address,
'agree' => $rows->agree,
'date_added' => $rows->date_added,
'customer' => 'customer',
'level' => $rows->level,
'logged_in' => TRUE
);
}
$this->session->set_userdata($data);
return true;
}
return false;
}
public function newWishlistId()
{
$this->db->select_max('wishlist_id','max');
$query = $this->db->get('tb_wishlist');
return $query->result();
}
public function getWishlist()
{
$this->db>join('tb_produk','tb_produk.id_produk=
tb_wishlist.product_id');
$this->db->join('tb_merk','tb_merk.id_merk=
tb_produk.id_merk');
$this->db->where('customer_id',$this->session-
>userdata('customer_id'));
$query = $this->db->get('tb_wishlist');
return $query->result();
}
public function getOrderHistory()
{
$this->db->join('tb_produk','tb_produk.id_produk=
tb_order_produk.id_produk');
$this->db->join('tb_order','tb_order.id_session=
tb_order_produk.id_session');
$this->db->join('tb_kabupaten','tb_kabupaten.
id_kabupaten=tb_order.id_kabupaten');
$this->db->where('tb_order.customer_id',$this-
>session->userdata('customer_id'));
$this->db->group_by('tb_order.id_order');
$query = $this->db->get('tb_order_produk');
return $query->result();
}
public function getRekening()
{
$query = $this->db->get('tb_bank');
return $query->result();
}
public function getOrderList($id_order,$no_invoice)
{
$this->db->join('tb_order','tb_order.id_session=
tb_order_produk.id_session');
$this->db>join('tb_provinsi','tb_provinsi.id_provinsi=
tb_order.id_provinsi');

$this>db>join('tb_kabupaten','tb_kabupaten.id_kabupate
n=tb_order.id_kabupaten');
$this->db->join('tb_produk','tb_produk.id_produk=
tb_order_produk.id_produk');
$this->db->join('tb_merk','tb_merk.id_merk=
tb_produk.id_merk');
$this->db->where('tb_order.id_order',$id_order);
$this->db->where('tb_order.no_invoice'
,$no_invoice);
$query = $this->db->get('tb_order_produk');
if($query->num_rows() > 0)
{
return $query->result();
}
else
{
redirect(''.base_url().'customer/order');
}
}
public function getOrderDetail($id_order)
{
$this->db>join('tb_kabupaten','tb_kabupaten.id_
kabupaten=tb_order.id_kabupaten');
$this->db->where('tb_order.id_order',$id_order);
$query = $this->db->get('tb_order');
return $query->result();
}
public function getHistoryList($id_order)
{
$this->db->where('id_order',$id_order);
$query = $this->db->get('tb_history');
if($query->num_rows() > 0)
{
return $query->result();
}
else
{
redirect(''.base_url().'customer/order');
}
}
public function getAccount()
{
$this->db->where('customer_id',$this->session-
>userdata('customer_id'));
$query = $this->db->get('tb_customer');
return $query->result();
}
public function checkEmail($email)
{
$this->db->where('email',$email);
$query = $this->db->get('tb_customer');
return $query->result();
}
public function checkOldPassword($customer_id)
{
$this->db->where('customer_id',$customer_id);
$query = $this->db->get('tb_customer');
return $query->result();
}
4. Model Supplier
class Supplier_m extends CI_Model {
public function get_data_quota_exp()
{
$this->db>join('tb_supplier','tb_supplier.supplier_id=
_produk.supplier_id');
$this->db->where('tb_produk.stok <=','4');
$this->db->where('tb_produk.notif_supplier !=','1');
$query = $this->db->get('tb_produk');
return $query->result();
}
public function send_request_to_supplier($supplier_id,
$email_supplier, $id_produk, $supplier, $nama_produk)
{
$data = array(
'notif_supplier' => '1'
);
$this->db->where('id_produk',$id_produk);
$query = $this->db->update('tb_produk',$data);
if($query)
{
$reply = "Yth Pimpinan ".$supplier.",<br>Stok
untuk produk ".$nama_produk." sudah mulai habis. Mohon
kiranya untuk menambah stok ke toko kami. Terima
kasih.<br><br>Salam,<br>A4 Sport Padang";
@$config['protocol'] = "mail";
@$config['smtp_host'] = "ssl://smtp.gmail.com";
@$config['smtp_port'] = "465";
@$config['smtp_user'] ="a4sportspadang@gmail.com";
@$config['smtp_pass'] = "085669068990";
@$config['charset'] = "utf-8";
@$config['mailtype'] = "html";
@$config['newline'] = "\r\n";
@$this->email->initialize($config);
@$this->email->from('support@a4sportpadang.com', 'A4
Sport Padang');
@$this->email->to($email_supplier);
@$this->email->reply_to('support@a4sportpadang.com',
'A4 Sport Padang');
@$this->email->subject('Permintaan Stok Barang');
@$this->email->message($reply);
@$this->email->send();
}
}
public function getCategories()
{
$query = $this->db->get('tb_kategori');
return $query->result();
}
public function getProducts($perPage, $uri)
{
$this->db>join('tb_kategori','tb_kategori.id_kategori=
tb_produk.id_kategori');
$this->db->join('tb_merk','tb_merk.id_merk=
tb_produk.id_merk');
$this->db->where('tb_produk.supplier_id',$this-
>session->userdata('uid'));
$query = $this->db->get('tb_produk',$perPage, $uri);
return $query->result();
}
public function getConfirm()
{
$this->db-
>order_by('tb_confirm.confirm_id','DESC');
$query = $this->db->get('tb_confirm');
return $query->result();
}
5. Model Owner
class Owner extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('owner_m');
$this->load->model('messages_m');
$this->check_quota_product();
date_default_timezone_set("Asia/Jakarta");
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;
}
}
public function login()
{
$this->load->view('owner/view_login');
}
public function auth()
{
$this->form_validation->set_rules('username',
'<strong>username</strong>', 'trim|required|xss_clean');
$this->form_validation->set_rules('password',
'<strong>password</strong>', 'trim|required');
$this->form_validation->set_error_delimiters();

if ($this->form_validation->run() == FALSE) { ?>


<div class="alert alert-danger">
<i class="fa fa-exclamation-circle"></i>
Kesalahan!
<button type="button" class="close" data-
dismiss="alert">&times;</button>
<?php echo validation_errors(); ?>
</div>
<?php
}
else
{
$username = $this->input->post('username');
$password = md5($this->input->post('password'));
$query = $this->owner_m->checkUser($username,
$password);
if($query)
{
$url = base_url('owner');
echo"<script>window.location.href='".$url."';</script>";
}
else
{
?>
<div class="alert alert-danger">
<i class="fa fa-exclamation-circle"></i> Kesalahan!
<button type="button" class="close"
data-dismiss="alert">&times;</button>
Username atau password salah.
</div>
<?php
}
public function report_order()
{
if($this->session->userdata('level')=="owner")
{
$data['title'] = "Laporan Pemesanan | A4 Sport - Padang";
$data['page'] = "Laporan Pemesanan";
$this->load->view('owner/header',$data);
$filter_date_start = @$_GET['filter_date_start'];
$filter_date_end = @$_GET['filter_date_end'];
$filter_order_status_id = @$_GET['filter_order_status_id'];
if($filter_date_start!=null AND $filter_date_end!=null AND
$filter_order_status_id!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
$this->db->where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND $filter_date_end!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
}
elseif($filter_order_status_id!=null)
{
$this->db-
>where('status_order',$filter_order_status_id);
}
B. View
1. View Home
<?php foreach ($product as $rows) { ?>
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-
12">
<div class="product-thumb transition">
<div class="image">
<a href="product/id/<?php echo $rows-
>id_produk; ?>/<?php echo strtolower(str_replace(' ','-
',$rows->nama_produk)); ?>.html">
<img src="uploads/products/<?php echo
$rows->gambar; ?>" height="200px" alt="<?php echo $rows-
>nama_produk; ?>" title="<?php echo $rows->nama_produk; ?>"
class="img-product" />
</a>
</div>
<div class="caption">
<div class="title"><a
href="product/id/<?php echo $rows->id_produk; ?>/<?php echo
strtolower(str_replace(' ','-',$rows->nama_produk));
?>.html"><?php echo $rows->nama_produk; ?></a></div>
<p><?php echo substr($rows-
>deskripsi,0,32); ?></p>
<?php
$product_id = $rows->id_produk;
$harga = $rows->harga;
$product_name = $rows->nama_produk;
$diskon = $rows->diskon;
$diskonrp = $diskon/100*$harga;
$hdiskon = $harga - $diskonrp;
if($diskon!="0") { ?>
<span style="text-decoration: line-
through;">RP. <?php echo format_rupiah($harga); ?></span> /
<?php echo $diskon; ?>% OFF<br/>
<span class="product-price">RP. <?php echo
format_rupiah($hdiskon); ?></span>
<?php } else { ?>
<br>
<span class="product-price">RP. <?php echo
format_rupiah($harga); ?></span>
<?php } ?>
<div class="rating" id="rating<?php echo
$rows->id_produk; ?>"></div>
<script>
$('#rating<?php echo $rows->id_produk;
?>').load('product/rating/<?php echo $rows->id_produk;
?>');
</script>
<?php if($rows->stok > 0) { ?>
<span class="tag label-
warning">Tersedia</span>
<?php } else { ?>
<span class="tag label-
danger">Kosong</span>
<?php } ?>
</div>
<div class="button-group">
<?php if($rows->stok > 0) { ?>
<button type="button"
onclick="window.location.href='product/id/<?php echo $rows-
>id_produk; ?>/<?php echo strtolower(str_replace(' ','-
',$rows->nama_produk)); ?>.html'"><i class="fa fa-shopping-
cart"></i> <span class="hidden-xs hidden-sm hidden-md">Beli
Sekarang</span></button>
<?php } else { ?>
<button type="button"><i class="fa fa-
shopping-cart"></i> <span class="hidden-xs hidden-sm
hidden-md">Beli Sekarang</span></button>
<?php } ?>
<?php if($this->session-
>userdata('level')=="customer") { ?>
<button type="button" data-toggle="tooltip"
title="Tambahkan ke Wishlist" onclick="wishlist.add('<?php
echo $rows->id_produk; ?>','<?php echo $rows->nama_produk;
?>');"><i class="fa fa-heart"></i></button>
<?php } else { ?>
<button type="button" title="Tambahkan ke
Wishlist" data-toggle="modal" data-target="#login-modal"><i
class="fa fa-heart"></i></button>
<?php } ?>
<button type="button" data-toggle="tooltip"
title="Koparasi Produk ini" onclick="compare.add('43');"><i
class="fa fa-exchange"></i></button>
</div>
</div>
</div>
<?php } ?>
</div>
</div>

<div class="col-sm-12">
2. View Cart
<div class="col-sm-12">
<h3>Troli (<?php if(@$ttl_berat==null) { echo "0"; }
else { echo str_replace('.',',',@$ttl_berat); } ?> Kg)</h3>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th class="text-center">Gambar</th>
<th class="text-left">Nama Produk</th>
<th class="text-left">Kategori</th>
<th class="text-left">Warna</th>
<th class="text-left">Ukuran</th>
<th class="text-left">Kuantitas</th>
<th class="text-right">Harga Unit</th>
<th class="text-right">Total</th>
</tr>
</thead>
<tbody id="rows">
<?php if($cart==null) { ?>
<tr>
<td class="text-left text-warning"
colspan="6"><span style="font-size: 20px">Troli
Kosong!</span></td>
</tr>
<?php } ?>
<?php foreach ($cart as $rows) { ?>
<tr>
<td class="text-center">
<a href="product/id/<?php echo $rows-
>id_produk; ?>/<?php echo strtolower(str_replace(' ','-
',$rows->nama_produk)); ?>.html" target="_blank"><img
src="uploads/products/<?php echo $rows->gambar; ?>"
width="70px" height="70px" alt="<?php echo $rows-
>nama_produk; ?>" title="<?php echo $rows->nama_produk; ?>"
class="img-thumbnail" /></a>
</td>
<td class="text-left">
<a href="product/id/<?php echo $rows-
>id_produk; ?>/<?php echo strtolower(str_replace(' ','-
',$rows->nama_produk)); ?>.html" target="_blank">
<?php echo $rows->nama_produk; ?>
</a>
<br> ID: <?php echo $rows->id_produk; ?>
</td>
<td class="text-left"><?php echo $rows-
>nama_kategori; ?></td>
<td class="text-left"><?php echo $rows-
>color; ?></td>
<td class="text-left"><?php echo $rows->size;
?></td>
<td class="text-left">
<form action="cart/edit" method="post"
enctype="multipart/form-data">
<div class="input-group btn-block"
style="min-width:130px; max-width: 150px;">
<input type="hidden"
name="id_order_produk" value="<?php echo $rows-
>id_order_produk; ?>">
<input type="hidden" name="id_produk"
value="<?php echo $rows->id_produk; ?>">
<select name="quantity" class="form-
control">
<option value="1" <?php if($rows-
>qty==1) { echo 'selected="selected"'; } ?>>1</option>
<option value="2" <?php if($rows-
>qty==2) { echo 'selected="selected"'; } ?>>2</option>
<option value="3" <?php if($rows-
>qty==3) { echo 'selected="selected"'; } ?>>3</option>
<option value="4" <?php if($rows-
>qty==4) { echo 'selected="selected"'; } ?>>4</option>
<option value="5" <?php if($rows-
>qty==5) { echo 'selected="selected"'; } ?>>5</option>
</select>
<span class="input-group-btn">
<button type="submit" data-
toggle="tooltip" title="Update" class="btn btn-primary"><i
class="fa fa-refresh"></i></button>
<button type="button" data-
toggle="tooltip" title="Remove" class="btn btn-danger"
onclick="cart.remove('<?php echo $rows->id_order_produk;
?>');"><i class="fa fa-times-circle"></i></button>
</span>
</div>
3. View Admin
<div class="page-header">
<div class="container-fluid">
<div class="pull-right">
<a href="admin/addcustomer" data-toggle="tooltip"
title="Tambah" class="btn btn-primary"><i class="fa fa-
plus"></i></a>
<a href="javascript:;" class="btn btn-danger
deleteall" select="dtable" data-toggle="tooltip"
title="Hapus"><i class="fa fa-trash-o"></i></a>
</div>
<h1>Pelanggan</h1>
<ul class="breadcrumb">
<li><a href="admin">Beranda</a></li>
<li><a
href="admin/sms_broadcat">Pelanggan</a></li>
<li><a href="#">Data Pelanggan</a></li>
</ul>
</div>
</div>
<div class="container-fluid">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-
bars"></i> Data Pelanggan</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered table-
hover zebra-style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-
center"><input type="checkbox"
onclick="$('input[name*=\'checkbox\']').prop('checked',
this.checked);" /></td>
<td class="text-center">No.</td>
<td class="text-left"><a href="#">Nama
Lengkap</a></td>
<td class="text-left"><a
href="#">Alamat</a></td>
<td class="text-left"><a
href="#">Telepon</a></td>
<td class="text-left"><a
href="#">Email</a></td>
<td class="text-center"><a
href="#">Status</a></td>
<td class="text-right">Opsi</td>
</tr>
</thead>
<tbody>
<?php if($customer==null) { ?>
<tr>
<td class="text-left"
colspan="10">Belum ada pelanggan</td>
</tr>
<?php } ?>
<?php $no=1; foreach ($customer as $rows) {
?>
<tr class="record">
<td class="text-center"><input
type="checkbox" name="checkbox[]" id="<?php echo $rows-
>customer_id; ?>" /></td>
<td class="text-center"><?php echo $no;
?></td>
<td class="text-left"><?php echo $rows-
>firstname; ?> <?php echo $rows->lastname; ?></td>
<td class="text-left"><?php echo $rows-
>address_1; ?>, <?php echo $rows->nama_kabupaten; ?>, <?php
echo $rows->nama_provinsi; ?></td>
<td class="text-left"><?php echo $rows-
>telephone; ?></td>
<td class="text-left"><a
href="mailto:<?php echo $rows->email; ?>"><?php echo $rows-
>email; ?></a></td>
<td class="text-center"><span
class="label label-success"><?php if($rows->activated==0){
echo"Belum Aktif"; } elseif($rows->activated==1) {
echo"Aktif"; } elseif($rows->activated==2) { echo"Blokir";
} ?></span></td>
<td class="text-right"><a
href="admin/editcustomer/<?php echo $rows->customer_id; ?>"
data-toggle="tooltip" title="Edit" class="btn btn-
primary"><i class="fa fa-pencil"></i></a></td>
</tr>
<?php $no++; } ?>
</tbody>
</table>
</div>
<h3 class="panel-title"><i class="fa fa-bars"></i>
Produk</h3>
</div>
<div class="panel-body">
<form action="#" method="post"
enctype="multipart/form-data" id="form-product">
<div class="table-responsive">
<table class="table table-bordered table-
hover zebra-style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-
center"><input type="checkbox"
onclick="$('input[name*=\'checkbox\']').prop('checked',
this.checked);" /></td>
<td class="text-center">Gambar</td>
<td class="text-left"><a href="#">Nama
Produk</a></td>
<td class="text-left"><a
href="#">Merk</a></td>
<td class="text-left"><a
href="#">Kategori</a></td>
<td class="text-left"><a
href="#">Harga</a></td>
<td class="text-right"><a
href="#">Stok</a></td>
<td class="text-right"><a
href="#">Terjual</a></td>
<td class="text-right"><a
href="#">Berat</a></td>
<td class="text-left"><a
href="#">Status</a></td>
<td class="text-center"
width="189px">Opsi</td>
</tr>
</thead>
<tbody>
<?php if($products==null) { ?>
<tr>
<td class="text-left"
colspan="10">Belum ada produk</td>
</tr>
<?php } ?>
<?php foreach ($products as $rows) { ?>
<tr class="record">
<td class="text-center"><input
type="checkbox" name="checkbox[]" id="<?php echo $rows-
>id_produk; ?>" /></td>
<td class="text-center"><img
src="uploads/products/<?php echo $rows->gambar; ?>"
width="50px" height="50px" alt="Canon EOS 5D" class="img-
thumbnail" /></td>
<td class="text-left"><a
href="product/id/<?php echo $rows->id_produk; ?>/<?php echo
strtolower(str_replace(' ','-',$rows->nama_produk));
?>.html" target="_blank"><?php echo $rows->nama_produk;
?></a><br><span style="color: #f28e00">ID: <?php echo
$rows->id_produk; ?></span></td>
<td class="text-left"><?php echo $rows-
>merk; ?></td>
<td class="text-left"><?php echo $rows-
>nama_kategori; ?></td>
<td class="text-left">
<?php
$harga = $rows->harga;
$diskon = $rows->diskon;
$diskonrp = $diskon/100*$harga;
$hdiskon = $harga - $diskonrp;
if($diskon!="0") { ?>
<span style="text-decoration: line-
through;">Rp. <?php echo format_rupiah($harga); ?></span> /
Disc. <?php echo $diskon; ?>%<br/>
<div class="text-danger">Rp. <?php
echo format_rupiah($hdiskon); ?></div>
<?php } else { ?>
<span>Rp. <?php echo
format_rupiah($harga); ?></span>
<?php } ?>
</td>
<td class="text-right"><span
class="label <?php if($rows->stok<=4) { echo 'label-
danger'; } else { echo 'label-success'; } ?>"><?php echo
$rows->stok; ?></span> Item(s)</td>
<td class="text-right"><span
id="total<?php echo $rows->id_produk; ?>"></span>
Item(s)</td>
<td class="text-right"><?php echo
$rows->berat; ?> Kg</td>
<td class="text-left"><?php echo $rows-
>status; ?></td>
<td class="text-center">
<a href="admin/editproduct/<?php echo
$rows->id_produk; ?>" data-toggle="tooltip" title="Edit"
class="btn btn-primary"><i class="fa fa-pencil"></i></a>
<a href="admin/color/<?php echo
$rows->id_produk; ?>" data-toggle="tooltip" title="Warna"
class="btn btn-info"><i class="fa fa-dashboard"></i></a>
<a href="admin/size/<?php echo $rows-
>id_produk; ?>" data-toggle="tooltip" title="Ukuran"
class="btn btn-success"><i class="fa fa-arrows-h"></i></a>
<?php if($rows->stok <=4 ) { ?>
<a href="admin/addrequest/<?php echo
$rows->id_produk; ?>" data-toggle="tooltip" title="Kirim
Permintaan Produk" class="btn btn-warning"><i class="fa fa-
refresh"></i></a>
<?php } ?>
</td>
</tr>
<script type="text/javascript">
$("#total<?php echo $rows->id_produk;
?>").load('admin/soldout/<?php echo $rows->id_produk; ?>');
</script>
<h3 class="panel-title"><i class="fa fa-bars"></i>
Permintaan Produk</h3>
</div>
<div class="panel-body">
<form action="#" method="post"
enctype="multipart/form-data" id="form-product">
<div class="table-responsive">
<table class="table table-bordered table-
hover zebra-style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-
center"><input type="checkbox"
onclick="$('input[name*=\'checkbox\']').prop('checked',
this.checked);" /></td>
<td class="text-center">Gambar</td>
<td class="text-left"><a href="#">Nama
Produk</a></td>
<td class="text-left"><a
href="#">Merk</a></td>
<td class="text-left"><a
href="#">Kategori</a></td>
<td class="text-right"><a href="#">Stok
Tersisa</a></td>
<td class="text-right"><a href="#">Jml
Permintaan</a></td>
<td class="text-right"><a href="#">Jml
Dikirim</a></td>
<td class="text-left"><a
href="#">Pesan</a></td>
<td class="text-center"><a
href="#">Status</a></td>
<td class="text-center"><a
href="#">Opsi</a></td>
</tr>
</thead>
<tbody>
<?php if($products==null) { ?>
<tr>
<td class="text-left"
colspan="10">Belum ada permintaan produk yang dikirim!</td>
</tr>
<?php } ?>
<?php foreach ($products as $rows) { ?>
<tr class="record">
<td class="text-center"><input
type="checkbox" name="checkbox[]" id="<?php echo $rows-
>id_permintaan; ?>" /></td>
<td class="text-center"><img
src="uploads/products/<?php echo $rows->gambar; ?>"
width="50px" height="50px" alt="Canon EOS 5D" class="img-
thumbnail" /></td>
<td class="text-left"><a
href="product/id/<?php echo $rows->id_produk; ?>/<?php echo
strtolower(str_replace(' ','-',$rows->nama_produk));
?>.html" target="_blank"><?php echo $rows->nama_produk;
?></a><br><span style="color: #f28e00">ID: <?php echo
$rows->id_produk; ?></span></td>
<td class="text-left"><?php echo $rows-
>merk; ?></td>
<td class="text-left"><?php echo $rows-
>nama_kategori; ?></td>
<td class="text-right"><span
class="label <?php if($rows->stok<=4) { echo 'label-
danger'; } else { echo 'label-success'; } ?>"><?php echo
$rows->stok; ?></span> Item(s)</td>
<td class="text-right"><?php echo
$rows->jml_permintaan; ?> Item(s)</td>
<td class="text-right"><?php if($rows-
>jml_dikirim!=0) { echo $rows->jml_dikirim; echo "
Item(s)"; } else { echo '-'; } ?></td>
<td class="text-left"><?php echo $rows-
>pesan; ?></td>
<td class="text-center"><?php echo
ucwords($rows->status_permintaan); ?></td>
<td class="text-center">
<a href="admin/editrequest/<?php echo
$rows->id_permintaan; ?>" class="btn btn-warning"
title="Edit"><i class="fa fa-pencil"></i></a>
</td>
</tr> <tr>
<td style="width: 1px;" class="text-
center"><input type="checkbox"
onclick="$('input[name*=\'checkbox\']').prop('checked',
this.checked);" /></td>
<td class="text-center">Order ID</td>
<td class="text-left">Pelanggan</td>
<td class="text-left">Status</td>
<td class="text-left">Total</td>
<td class="text-left">Tanggal</td>
<td class="text-left">Tanggal
Modifikasi</td>
<td class="text-right">Opsi</td>
</tr>
</thead>
<tbody>
<?php if($order==null) { ?>
<tr>
<td class="text-left"
colspan="10">Belum ada orderan</td>
</tr>
<?php } ?>
<?php foreach ($order as $rows) { ?>
<tr class="record">
<td class="text-center"><input
type="checkbox" name="checkbox[]" id="<?php echo $rows-
>id_order; ?>" /></td>
<td class="text-center">0<?php echo
$rows->id_order; ?></td>
<td class="text-left"><?php echo $rows-
>firstname; echo ' '; echo $rows->lastname; ?></td>
<td class="text-left"><?php echo
ucwords($rows->status_order); ?></td>
<td class="text-left">Rp. <?php echo
format_rupiah($rows->subtotal + $rows->shipping_price);
?></td>
<td class="text-left"><?php echo $rows-
>tanggal_order; ?></td>
<td class="text-left"><?php echo $rows-
>tanggal_modifikasi; ?></td>
<td class="text-right">
<a href="admin/orderinfo/<?php echo
$rows->id_order; ?>" data-toggle="tooltip" title=""
class="btn btn-info" data-original-title="Lihat Detail"><i
class="fa fa-eye"></i></a>
<a href="admin/deleteorder/<?php echo
$rows->id_order; ?>" id="button-delete1" data-
toggle="tooltip" title="" class="btn btn-danger" data-
original-title="Hapus" onclick="return confirm('Yakin akan
menghapus order ini?')"><i class="fa fa-trash-o"></i></a>
</td>
</tr>
4. View Costumer
<div class="well">
<h2>Pelanggan Baru</h2>
<p><strong>Akun Pendaftaran</strong></p>
<p>Dengan membuat akun Anda akan dapat
berbelanja lebih cepat, up to date pada status pesanan, dan
bisa meninjau ulang pesanan yang telah Anda buat
sebelumnya.</p>
<a href="customer/register" class="btn btn-
primary">Daftar</a></div>
</div>
<div class="col-sm-6">
<div class="well">
<h2>Pelanggan Tetap</h2>
<p><strong>Saya pelanggan tetap</strong></p>
<div class="form-group">
<label class="control-label" for="input-
email">Alamat E-mail</label>
<input type="text" name="email" value=""
placeholder="example@example.com" id="input-email"
class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-
password">Password</label>
<input type="password" name="password"
value="" placeholder="Password" id="input-password"
class="form-control" />
<a href="customer/forgotten">Lupa
Password?</a>
</div>
<button type="button" id="button-login" data-
loading-text="<i class='fa fa-spinner fa-pulse'></i>
Mengeksekusi..." class="btn btn-primary">Masuk</button>
</div>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left">Nama Produk</td>
<td class="text-left">Brand</td>
<td class="text-left">Warna</td>
<td class="text-left">Ukuran</td>
<td class="text-right">Kuantitas</td>
<td class="text-right"
width="115px">Harga</td>
<td class="text-right"
width="115px">Total</td>
<td style="width: 20px;"></td>
</tr>
</thead>
<tbody>
<?php foreach ($list as $rows) {
$harga = $rows->harga;
$qty = $rows->qty;
$diskon = $rows->diskon;
$ongkos = $rows->ongkos;
$berat = $rows->berat * $qty;
$diskonrp = $diskon/100*$harga;
$hdiskon = $harga - $diskonrp;
$sub_total = $hdiskon * $qty;
@$ttl_berat = $ttl_berat + $berat;
$tot_berat = number_format($ttl_berat,0);
@$total = $total + $sub_total;
$total_ongkos = $tot_berat * $ongkos;
$grand_total = $total + $total_ongkos;
?>
<div id="content" class="col-sm-9">
<h2>Wishlist Saya</h2>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-center">Gambar</td>
<td class="text-left">Nama Produk</td>
<td class="text-left">Brand</td>
<td class="text-right">Stok</td>
<td class="text-right">Harga Unit</td>
<td class="text-right">Opsi</td>
</tr>
</thead>
<tbody id="wishlist-row47">
<?php foreach ($wishlist as $rows) {
$stok = $rows->stok;
$harga = $rows->harga;
$diskon = $rows->diskon;
$potongan = $diskon/100 * $harga;
$harga_diskon = $harga - $potongan;
?>

5. View Owner
<h3 class="panel-title"><i class="fa fa-bars"></i>
Permintaan Produk</h3>
</div>
<div class="panel-body">
<form action="#" method="post"
enctype="multipart/form-data" id="form-product">
<div class="table-responsive">
<table class="table table-bordered table-
hover zebra-style" id="dtable">
<thead>
<tr>
<td style="width: 1px;" class="text-
center"><input type="checkbox"
onclick="$('input[name*=\'checkbox\']').prop('checked',
this.checked);" /></td>
<td class="text-center">Gambar</td>
<td class="text-left"><a href="#">Nama Produk</a></td>
<td class="text-left"><a href="#">Merk</a></td>
<td class="text-left"><a href="#">Kategori</a></td>
<td class="text-right"><a href="#">Stok Tersisa</a></td>
<td class="text-right"><a href="#">Jml Permintaan</a></td>
<td class="text-right"><a href="#">Jml Dikirim</a></td>
<td class="text-left"><a href="#">Pesan</a></td>
<td class="text-center"><a href="#">Status</a></td>
</tr>
</thead>
<h3 class="panel-title"><i class="fa fa-bar-chart"></i>
Pemesanan</h3>
<table class="table table-bordered">
<thead>
<tr>
<td class="text-left">No.</td>
<td class="text-left">Tanggal</td>
<td class="text-center">Order ID</td>
<td class="text-right">Nama</td>
<td class="text-right">Ongkos Kirim</td>
<td class="text-right">Total</td>
</tr>
</thead>
<tbody>
<?php $no=1; foreach ($order as $rows) {
$total = @$total + $rows->subtotal;
?>
<tr>
<td class="text-left"><?php echo $no; ?>.</td>
<td class="text-left"><?php echo $rows->tanggal_order;
?></td>
<td class="text-center"><a href="owner/orderinfo/<?php echo
$rows->id_order; ?>/?encript=utf-8" data-toggle="tooltip"
title="" data-original-title="Detail"
target="_blank">0<?php echo $rows->id_order; ?></a></td>
<td class="text-right"><?php echo $rows->firstname; ?>
<?php echo $rows->lastname; ?></td>
<td class="text-right">Rp. <?php echo format_rupiah($rows-
>shipping_price); ?></td>
<td class="text-right">Rp. <?php echo format_rupiah($rows-
>subtotal); ?></td>
</tr>
<?php $no++; } ?>
<tr>
<td class="text-right"
colspan="5"><b>Total</b></td>
<td class="text-right">Rp. <?php echo
format_rupiah(@$total); ?></td>
</tr>
<h3 class="panel-title"><i class="fa fa-bar-chart"></i>
Penjualan</h3>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<td class="text-left">No.</td>
<td class="text-left">Tanggal</td>
<td class="text-center">Order ID</td>
<td class="text-right">Nama</td>
<td class="text-right">Ongkos Kirim</td>
<td class="text-right">Total</td>
</tr>
</thead>
<tbody>
<?php $no=1; foreach ($order as $rows) {
$total = @$total + $rows->subtotal;
?>
<tr>
<td class="text-left"><?php echo $no; ?>.</td>
<td class="text-left"><?php echo $rows->tanggal_order;
?></td>
<td class="text-center"><a href="owner/orderinfo/<?php echo
$rows->id_order; ?>/?encript=utf-8" data-toggle="tooltip"
title="" data-original-title="Detail"
target="_blank">0<?php echo $rows->id_order; ?></a></td>
<td class="text-right"><?php echo $rows->firstname; ?>
<?php echo $rows->lastname; ?></td>
<td class="text-right">Rp. <?php echo format_rupiah($rows-
>shipping_price); ?></td>
<td class="text-right">Rp. <?php echo format_rupiah($rows-
>subtotal); ?></td>
</tr>
<?php $no++; } ?>
<tr>
td class="text-right" colspan="5"><b>Total</b></td>
<td class="text-right">Rp. <?php echo
format_rupiah(@$total); ?></td>
</tr>

6. View Supplier
<h1 class="panel-title"><i class="fa fa-lock"></i> Login
Supplier</h1>
</div>
<div class="panel-body">
<form id="form" action="supplier/auth"
method="post" enctype="multipart/form-data">
<div id="result"></div>
<div class="form-group">
<label for="input-
username">Username</label>
<div class="input-group"><span class="input-group-addon"><i
class="fa fa-user"></i></span>
<input type="text" name="username" value=""
placeholder="Username" id="input-username" class="form-
control" />
</div>
</div>
<div class="form-group">
<label for="input-password">Password</label>
<div class="input-group"><span class="input-group-
addon"><i class="fa fa-lock"></i></span>
<input type="password" name="password" value=""
placeholder="Password" id="input-password" class="form-
control" />
</div>
<span class="help-block"><a href="customer/forgotten">Lupa
password?</a></span>
</div>
<div class="text-right">
<button type="submit" id="submit" class="btn btn-
warning"><i class="fa fa-key"></i> Login</button> OR <a
href="admin/login" class="btn btn-primary"><i class="fa fa-
key"></i> Login Admin</a>
</div>
<h3 class="panel-title"><i class="fa fa-bars"></i>
Permintaan Produk</h3>
</div>
<div class="panel-body">
<form action="#" method="post"
enctype="multipart/form-data" id="form-product">
<div class="table-responsive">
<table class="table table-bordered table-
hover zebra-style" id="dtable">
<thead>
<tr>
<td class="text-center">Gambar</td>
<td class="text-left"><a href="#">Nama Produk</a></td>
<td class="text-left"><a href="#">Merk</a></td>
<td class="text-left"><a href="#">Kategori</a></td>
<td class="text-right"><a href="#">Stok Tersisa</a></td>
<td class="text-right"><a href="#">Jml Permintaan</a></td>
<td class="text-right"><a href="#">Jml Dikirim</a></td>
<td class="text-left"><a href="#">Pesan</a></td>
<td class="text-center"><a href="#">Status</a></td>
<td class="text-center"><a href="#">Opsi</a></td>
</tr>
</thead>
<tbody>
<?php if($products==null) { ?>
<tr>
<td class="text-left" colspan="10">Belum ada permintaan
produk yang dikirim!</td>
</tr>
<?php } ?>
<?php foreach ($products as $rows) { ?>
<tr class="record">
<td class="text-center"><img src="uploads/products/<?php
echo $rows->gambar; ?>" width="50px" height="50px"
alt="Canon EOS 5D" class="img-thumbnail" /></td>
<td class="text-left"><a href="product/id/<?php echo $rows-
>id_produk; ?>/<?php echo strtolower(str_replace(' ','-
',$rows->nama_produk)); ?>.html" target="_blank"><?php echo
$rows->nama_produk; ?></a><br><span style="color:
#f28e00">ID: <?php echo $rows->id_produk; ?></span></td>
<td class="text-left"><?php echo $rows->merk; ?></td>
<td class="text-left"><?php echo $rows->nama_kategori;
?></td>
<td class="text-right"><span class="label <?php if($rows-
>stok<=4) { echo 'label-danger'; } else { echo 'label-
success'; } ?>"><?php echo $rows->stok; ?></span>
Item(s)</td>
<td class="text-right"><?php echo $rows->jml_permintaan; ?>
Item(s)</td>
<td class="text-right"><?php if($rows->jml_dikirim!=0) {
echo $rows->jml_dikirim; echo " Item(s)"; } else { echo '-
'; } ?></td>
<td class="text-left"><?php echo $rows->pesan; ?></td>
<td class="text-center"><?php echo ucwords($rows-
>status_permintaan); ?></td>
<td class="text-center">
<?php if($rows->status_permintaan!="terkirim") { ?>
<a href="supplier/editrequest/<?php echo $rows-
>id_permintaan; ?>" class="btn btn-warning" title="Edit"><i
class="fa fa-pencil"></i></a>
<?php } else { ?>
<button type="button" class="btn btn-
warning" disabled="disabled"><i class="fa fa-
pencil"></i></button>
<?php } ?>
</td>
<h3 class="panel-title"><i class="fa fa-bars"></i> Edit
Permintaan Produk</h3>
</div>
<div class="panel-body">
<form id="form" class="form-horizontal"
action="supplier/updaterequest" method="post"
enctype="multipart/form-data" id="form-product">
<div id="result"></div>
<?php foreach ($permintaan as $key) { } ?>
<input type="hidden" name="id_permintaan"
value="<?php echo $key->id_permintaan; ?>">
<input type="hidden" name="sisa_stok"
value="<?php echo $key->stok; ?>">
<div class="form-group required">
<label class="col-sm-2 control-label"
for="input-country">Produk</label>
<div class="col-sm-5">
<select name="id_produk" id="input-payment-
province" class="form-control" readonly>
<option value=""> --- Pilih --- </option>
<?php
$id_produk = $key->id_produk;
$status_permintaan = $key-
>status_permintaan;
foreach ($produk as $rows) { ?>
<option value="<?php echo $rows-
>id_produk; ?>" <?php if($rows->id_produk==$id_produk) {
echo "selected"; } ?>><?php echo $rows->nama_produk;
?></option>
<?php } ?>
</select>
</div>
</div>
<div class="form-group required">
<label class="col-sm-2 control-label"
for="input-email">Jumlah Permintaan</label>
<div class="col-sm-2">
<div class="input-group date">
<input type="text" name="jml_permintaan"
value="<?php echo $key->jml_permintaan; ?>"
placeholder="15" class="form-control" />
<span class="input-group-btn">
<button type="button" class="btn btn-
warning">Item(s)</button>
</span>
</div>
</div>
</div>
<div class="form-group required">
<label class="col-sm-2 control-label"
for="input-email">Jumlah Dikirim</label>
<div class="col-sm-2">
<div class="input-group date">
<input type="text" name="jml_dikirim"
value="<?php echo $key->jml_permintaan; ?>"
placeholder="15" class="form-control" />
<span class="input-group-btn">
<button type="button" class="btn btn-
primary">Item(s)</button>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"
for="input-name1">Pesan</label>
<div class="col-sm-7">
<textarea name="pesan" class="form-control"
rows="7" placeholder="Tambahkan keterangan berupa harga,
warna, ukuran, dan lain-lain yang Anda butuhkan."><?php
echo $key->pesan; ?></textarea>
</div>
</div>
<div class="form-group required">
<label class="col-sm-2 control-label"
for="input-country">Status</label>
<div class="col-sm-3">
<select name="status" id="input-payment-
province" class="form-control">
<option value=""> --- Pilih --- </option>
<option value="meminta" <?php
if($status_permintaan=="meminta") { echo "selected"; }
?>>Meminta Stok</option>
<option value="terkirim" <?php
if($status_permintaan=="terkirim") { echo "selected"; }
?>>Terkirim</option>
<option value="stok kosong" <?php
if($status_permintaan=="stok kosong") { echo "selected"; }
?>>Stok Kosong</option>
<option value="batal" <?php
if($status_permintaan=="batal") { echo "selected"; }
?>>Batal</option>
</select>
</div>
C. Controler

1. Controller Home

class Home extends CI_Controller {


function __construct(){
parent::__construct();
$this->load->model('home_m');
$this->load->model('product_m');
}
public function index()
{
$data['title'] = "Beranda | A4 Sport - Padang";
$data['page'] = "Beranda";
$this->load->view('home/header',$data);

$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories_home',$data);

$data['slider'] = $this->home_m->getSlider();
$data['product'] = $this->home_m->getRandom();
$this->load->view('home/view_home',$data);
$this->load->view('home/footer');
}
public function autocomplete()
{
// tangkap variabel keyword dari URL
$keyword = strtolower($this->uri->segment(3));

// cari di database
$data = $this->db->from('tb_produk')-
>like('nama_produk',$keyword)->get();

// format keluaran di dalam array


foreach($data->result() as $row)
{
$arr['query'] = $keyword;
$arr['suggestions'][] = array(
'value' =>$row->nama_produk,
'data' =>$row->id_produk
);
}
// minimal PHP 5.2
echo json_encode($arr);
}
public function about()
{
$data['title'] = "Tentang Kami | A4 Sport -
Padang";
$data['page'] = "Beranda";
$data['breadcrumb'] = "Tentang Kami";
$this->load->view('home/header',$data);

$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories',$data);
$data['about'] = $this->home_m->getAbout();
$this->load->view('home/view_about',$data);
$this->load->view('home/footer');
}
public function privacy_policy()
{
$data['title'] = "Privacy Policy | A4 Sport -
Padang";
$data['page'] = "Beranda";
$data['breadcrumb'] = "Privacy Policy";
$this->load->view('home/header',$data);

$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories',$data);
$data['privacy'] = $this->home_m->getPrivacy();
$this->load->view('home/view_privacy',$data);
$this->load->view('home/footer');
}
public function tos()
{
$data['title'] = "Terms & Conditions | A4 Sport
- Padang";
$data['page'] = "Beranda";
$data['breadcrumb'] = "Terms & Conditions";
$this->load->view('home/header',$data);
$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories',$data);
$data['tos'] = $this->home_m->getTos();
$this->load->view('home/view_tos',$data);
$this->load->view('home/footer');
}
public function contact()
{
$data['title'] = "Hubungi Kami | A4 Sport -
Padang";
$data['page'] = "Beranda";
$data['breadcrumb'] = "Hubungi Kami";
$this->load->view('home/header',$data);

$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories',$data);
$data['contact'] = $this->home_m->getContact();
$this->load->view('home/view_contact',$data);
$this->load->view('home/footer');
}
public function help()
{
$data['title'] = "Hubungi Kami | A4 Sport -
Padang";
$data['page'] = "Beranda";
$data['breadcrumb'] = "Pusat Bantuan";
$this->load->view('home/header',$data);

$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories',$data);
$data['help'] = $this->home_m->getHelp();
$this->load->view('home/view_help',$data);
$this->load->view('home/footer');
}
}

/* End of file welcome.php */


/* Location: ./application/controllers/welcome.php */
2. Controller Admin
class Admin extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('admin_m');
$this->load->model('messages_m');
$this->check_quota_product();
date_default_timezone_set("Asia/Jakarta");
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;

}
}
public function login()
{
$this->load->view('admin/view_login');

public function logout()


{
$data = array(
'uid' => "",
'nama' => "",
'alamat' => "",
'email' => "",
'telepon' => "",
'username' => "",
'level' => "",
'logged_in' => FALSE
);
$this->session->unset_userdata($data);
$this->session->sess_destroy();
redirect(''.base_url().'admin/login');
}
public function profile()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Profil | A4 Sport -
Padang";
$data['page'] = "Profil";
$this->load->view('admin/header',$data);
$data['supplier'] = $this->admin_m->getProfile();
$this->load>view('admin/view_profile',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Kategori | A4 Sport - Padang";
$data['page'] = "Kategori";
$this->load->view('admin/header',$data);
$data['categories'] = $this->admin_m->getCategories();
$this->load->view('admin/view_categories',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function addProduct()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Tambah Produk | A4 Sport - Padang";
$data['page'] = "Tambah Produk";
$this->load->view('admin/header',$data);
$data['merk'] = $this->admin_m->getMerk();
$data['category'] = $this->admin_m->getCategories();
$data['supplier'] = $this->admin_m->getDataSupplier();
$this->load->view('admin/view_add_products',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function addrequest()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Tambah Permintaan Produk | A4 Sport -
Padang";
$data['page'] = "Tambah Permintaan Produk";
$this->load->view('admin/header',$data);
$data['produk'] = $this->admin_m-
>getProduct();
$this->load-
>view('admin/view_add_request_product',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
public function editrequest($id_permintaan)
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Edit Permintaan Produk | A4 Sport -
Padang";
$data['page'] = "Edit Permintaan Produk";
$this->load->view('admin/header',$data);
$data['produk'] = $this->admin_m->getProduct();
$data['permintaan'] = $this->admin_m-
>getDataPermintaan($id_permintaan);
$this->load->view('admin/view_edit_request_product'
,$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function color($id_produk)
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Warna Produk | A4 Sport - Padang";
$data['page'] = "Warna Produk";
$this->load->view('admin/header',$data);
$data['produk'] = $this->admin_m-
>getProductID($id_produk);
$data['color'] = $this->admin_m->getColor($id_produk);
$this->load->view('admin/view_color',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function size($id_produk)
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Ukuran Produk | A4 Sport - Padang";
$data['page'] = "Ukuran Produk";
$this->load->view('admin/header',$data);
$data['produk'] = $this->admin_m-
>getProductID($id_produk);
$data['size'] = $this->admin_m->getSize($id_produk);
$this->load-
>view('admin/view_size',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function addMerk()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Tambah Merk | A4 Sport - Padang";
$data['page'] = "Tambah Merk";
$this->load->view('admin/header',$data);
$this->load->view('admin/view_add_merk');
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function addKurir()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Tambah Kurir | A4 Sport - Padang";
$data['page'] = "Tambah Kurir";
$this->load->view('admin/header',$data);
$this->load->view('admin/view_add_kurir');
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function promo()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Promo | A4 Sport - Padang";
$data['page'] = "Promo";
$this->load->view('admin/header',$data);
$data['promo'] = $this->admin_m->getpromo();
$this->load->view('admin/view_promo',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function orderinfo($id_order)
{
if($this->session->userdata('level')=="admin")
{
$cek = $this->admin_m->checkOrder($id_order);
foreach ($cek as $rows)
{
$id_customer = $rows->customer_id;
}

$data['title'] = "Order | A4 Sport -


Padang";
$data['page'] = "Order";
$this->load->view('admin/header',$data);
if($id_customer==0)
{
public function customer()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Pelanggan | A4 Sport - Padang";
$data['page'] = "Pelanggan";
$this->load->view('admin/header',$data);
$data['customer'] = $this->admin_m->getDataCustomer();
$this->load->view('admin/view_customer',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function supplier()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Supplier | A4 Sport - Padang";
$data['page'] = "Supplier";
$this->load->view('admin/header',$data);
$data['supplier'] = $this->admin_m->getDataSupplier();
$this->load->view('admin/view_supplier',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}
public function print_report_order()
{
if($this->session->userdata('level')=="admin")
{
$filter_date_start = @$_GET['filter_date_start'];
$filter_date_end = @$_GET['filter_date_end'];
$filter_order_status_id =
@$_GET['filter_order_status_id'];
if($filter_date_start!=null AND $filter_date_end!=null
AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
$this->db-
>where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
}
elseif($filter_order_status_id!=null)
{
$this->db-
>where('status_order',$filter_order_status_id);
}
$data['order'] = $this->admin_m-
>getPrintReportOrder($filter_date_start,
$filter_date_end, $filter_order_status_id);
$this->load-
>view('admin/view_print_report_order',$data);
}
else
{
redirect(''.base_url().'admin/login');
}
}
public function report_sale()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Laporan Penjualan | A4 Sport -
Padang";
$data['page'] = "Laporan Penjualan";
$this->load->view('admin/header',$data);
$filter_date_start = @$_GET['filter_date_start'];
$filter_date_end = @$_GET['filter_date_end'];
$filter_order_status_id =
@$_GET['filter_order_status_id'];
if($filter_date_start!=null AND $filter_date_end!=null
AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
$this->db-
>where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
}
elseif($filter_order_status_id!=null)
{
$this->db-
>where('status_order',$filter_order_status_id);
}
public function payment_confirm()
{
if($this->session->userdata('level')=="admin")
{
$data['title'] = "Konfirmasi pembayaran | A4 Sport -
Padang";
$data['page'] = "Konfirmasi pembayaran";
$this->load->view('admin/header',$data);
$data['confirm'] = $this->admin_m->getConfirm();
$this->load->view('admin/view_confirm',$data);
$this->load->view('admin/footer');
}
else
{
$this->login();
}
}

3. Controller Checkout
class Checkout extends CI_Controller {
function __construct(){
parent::__construct();
date_default_timezone_set("Asia/Jakarta");
$this->load->model('home_m');
$this->load->model('cart_m');
$this->load->model('checkout_m');
}
public function login()
{
?>
<div class="row">
<div class="col-sm-6">
<h2>Pelanggan Baru</h2>
<p>Pilihan Checkout:</p>
<div class="radio">
<label><input type="radio" name="account"
value="register" checked="checked">Daftar</label>
</div>
<div class="radio">
<label><input type="radio" name="account"
value="guest">Tamu Checkout</label>
</div>
<p>Dengan membuat akun Anda akan dapat
berbelanja lebih cepat, up to date pada status pesanan,
dan bisa meninjau ulang pesanan telah Anda buat
sebelumnya.</p>
<button type="button" id="button-account"
data-loading-text="<i class='fa fa-spinner fa-
pulse'></i> Loading..." class="btn btn-
primary">Lanjutkan</button>
</div>
<div class="col-sm-6">
<h2>Pelanggan Tetap</h2>
<p>Saya pelanggan tetap</p>
<div class="form-group">
<label class="control-label" for="input-
email">Email</label>
<input type="text" name="email" value=""
placeholder="example@example.com" id="input-email"
class="form-control">
</div>
<div class="form-group">
<label class="control-label" for="input-
password">Password</label>
<input type="password" name="password"
value="" placeholder="Password" id="input-password"
class="form-control">
<a href="customer/forgotten">Lupa
password?</a></div>
<button type="button" id="button-login"
data-loading-text="<i class='fa fa-spinner fa-
pulse'></i> Loading..." class="btn btn-
primary">Masuk</button>
</div>
</div>
</div>
<?php
}
public function payment_address()
{
?>
<div class="collapse-payment-address"></div>
<form class="form-horizontal">
<div class="radio">
<label>
<input type="radio"
name="payment_address" value="existing"
checked="checked">
Saya ingin menggunakan alamat
yang sudah ada.
</label>
</div>
<div id="payment-existing">
<select name="address_exist"
id="exist" class="form-control">
<?php $payment_address = $this-
>checkout_m->payment_address();
foreach ($payment_address as $rows) { }
$firstname = $rows->firstname;
$lastname = $rows->lastname;
$company = $rows->company;
$address_1 = $rows->address_1;
$address_2 = $rows->address_2;
$province = $rows->nama_provinsi;
$city = $rows->nama_kabupaten;
$province_id = $rows->id_provinsi;
$city_id = $rows->id_kabupaten;
?>
<option value="1"
selected="selected"><?php echo $firstname; echo' '; echo
$lastname; ?>, <?php echo $address_1; echo', '; echo
$city; echo', '; echo $province; ?></option>
<option value="2"><?php echo
$firstname; echo' '; echo $lastname; ?>, <?php echo
$address_2; echo', '; echo $city; echo', '; echo
$province; ?></option>
</select>
public function confirm()
{
session_start();
$id_session = $_SESSION['id_session'];
?>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th class="text-left">Nama
Produk</th>
<th class="text-
right">Kuantitas</th>
<th class="text-right">Harga
Unit</th>
<th class="text-right">Total</th>
</tr>
</thead>
<tbody>
<?php
$cart = $this->cart_m-
>getTrolli($id_session);
foreach ($cart as $rows)
{
$harga = $rows->harga;
$qty = $rows->qty;
$diskon = $rows->diskon;
$berat = $rows->berat * $qty;
$diskonrp = $diskon/100*$harga;
$hdiskon = $harga - $diskonrp;
$sub_total = $hdiskon * $qty;
@$total = $total + $sub_total;
@$ttl_berat = $ttl_berat + $berat;
$item = $rows->qty;
@$total_item = $total_item + $item;

4. Controller Costumer
class Customer extends CI_Controller {
function __construct(){
parent::__construct();
date_default_timezone_set("Asia/Jakarta");
$this->load->model('customer_m');
$this->load->model('home_m');
$this->load->model('cart_m');
$this->load->model('checkout_m');
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;

}
}
public function login()
{
$data['title'] = "Masuk | A4 Sport -
Padang";
$data['page'] = "Akun";
$data['breadcrumb'] = "Masuk";
$this->load->view('home/header',$data);
$this->load->view('customer/view_login');
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
public function auth()
{
$json = array();
$email = $this->input->post('email');
$password = md5($this->input-
>post('password'));

$this->form_validation->set_rules('email', 'E-
mail', 'trim|required|valid_email|xss_clean');
$this->form_validation->set_rules('password',
'password', 'trim|required');
if($this->form_validation->run() == FALSE)
{
$json['error'] =
"".validation_errors()."";
}
else
{

$query = $this->customer_m-
>checkCustomer($email,$password);
if($query)
{
$json['redirect'] = 'customer';
}
else
{
$json['error'] = "E-Mail atau
password salah";
}
}

echo json_encode($json);
}
public function register()
{
$data['title'] = "Daftar | A4 Sport -
Padang";
$data['page'] = "Akun";
$data['breadcrumb'] = "Daftar";
$this->load->view('home/header',$data);
$this->load->view('customer/view_register');
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
public function confirm($token)
{
$json = array();
$this->db->where('token',$token);
$query=$this->db->get("tb_customer");
if($query->num_rows() > 0)
{
$this->db->where('token',$token);
$query = $this->db->update('tb_customer',
array('activated' => '1'));
if($query)
{
$this->login();
}
}
else
{
redirect(''.base_url().'');
}
public function wishlist()
{
if($this->session-
>userdata('level')=="customer")
{
$data['title'] = "Daftar | A4
Sport - Padang";
$data['page'] = "Pelanggan";
$data['breadcrumb'] = "Wishlist";
$this->load->view('home/header',$data);
$data['wishlist'] = $this->customer_m-
>getWishlist();
$this->load-
>view('customer/view_wishlist',$data);
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
else
{
$this->login();
}
public function order()
{
if($this->session-
>userdata('level')=="customer")
{
$data['title'] = "Order History |
A4 Sport - Padang";
$data['page'] = "Order";
$data['breadcrumb'] = "Order History";
$this->load->view('home/header',$data);
$data['order'] = $this->customer_m-
>getOrderHistory();
$this->load-
>view('customer/view_order_history',$data);
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
else
{
$this->login();
}
}
public function orderinfo($id_order)
{
if($this->session-
>userdata('level')=="customer")
{
$no_invoice = $_GET['no_invoice'];
$data['title'] = "Informasi Order
| A4 Sport - Padang";
$data['page'] = "Order";
$data['breadcrumb'] = "Informasi Order";
$this->load->view('home/header',$data);
$data['info'] = $this->customer_m-
>getOrderInfo($id_order,$no_invoice);
$data['list'] = $this->customer_m-
>getOrderList($id_order,$no_invoice);
$data['history'] = $this->customer_m-
>getHistoryList($id_order);
$data['shipping'] = $this-
>customer_m->getOrderDetail($id_order);
$data['rekening'] = $this-
>customer_m->getRekening();
$this->load-
>view('customer/view_order_info',$data);
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
else
{
$this->login();
}
}
public function printorderinfo($id_order)
{
$no_invoice = @$_GET['no_invoice'];
$data['info'] = $this->customer_m-
>getOrderInfo($id_order,$no_invoice);
$data['list'] = $this->customer_m-
>getOrderList($id_order,$no_invoice);
$data['history'] = $this->customer_m-
>getHistoryList($id_order);
$data['shipping'] = $this->customer_m-
>getOrderDetail($id_order);
$data['rekening'] = $this->customer_m-
>getRekening();
$this->load-
>view('customer/view_print_order_info',$data);
}
public function account()
{
if($this->session-
>userdata('level')=="customer")
{
$data['title'] = "Akun Saya | A4
Sport - Padang";
$data['page'] = "Akun";
$data['breadcrumb'] = "Akun Saya";
$this->load->view('home/header',$data);
$data['account'] = $this->customer_m-
>getAccount();
$this->load-
>view('customer/view_account',$data);
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
else
{
redirect(''.base_url().'customer/login');
}

5. Controller Pesan
class Messages extends CI_Controller
{
function __construct(){
parent::__construct();
$this->load->model('messages_m');
$this->load->model('home_m');
date_default_timezone_set('Asia/Jakarta');
}
public function read($inbox_id)
{
if($this->session->userdata('logged_in')==TRUE)
{
if($inbox_id!==NULL)
{
$data['title']="Baca Pesan | A4 Sport - Padang";
$data['page'] ="Pesan";
$data['breadcrumb'] = "Baca";
if($this->session->userdata('level')=="admin")
{
$this->load->view('admin/header',$data);
}
else
$this->load->view('supplier/header',$data);
}
$data['read'] = $this->messages_m-
>readInbox($inbox_id);$this->load-
>view('messages/view_read',$data); if($this->session-
>userdata('level')=="admin")
{
$this->load->view('admin/footer');
}
else
{
$this->load->view('supplier/footer');
}
//Update status pesan
$data = array(
'status_inbox' => 'read'
);
$this->db->where('inbox_id',$inbox_id);
$this->db->update('tb_inbox',$data);
} else {

redirect(''.base_url().'messages/inbox');
}
}
else
{
redirect(''.base_url().'');
}
}
public function sent()
{
if($this->session->userdata('logged_in')==TRUE)
{
$data['title'] = "Pesan Terkirim | A4 Sport - Padang";
$data['page'] = "Pesan";
$data['breadcrumb'] = "Terkirim";
if($this->session->userdata('level')=="admin")
{
$this->load->view('admin/header',$data);
}
else
{
$this->load->view('supplier/header',$data);
}

$keyword = $this->input->get('qword');
if($keyword!='') {
$this->db->like('tb_sent.name_receiver',$keyword);
}
$this->db->where('tb_sent.email_sender', $this->session-
>userdata('email'));
$this->db->order_by('tb_sent.sent_id','DESC');
//$this->db->join('tb_admin',
'tb_admin.email=tb_inbox.email_sender','LEFT');
$getData = $this->db->get('tb_sent');
$a = $getData->num_rows();
$config['base_url'] =
base_url().'messages/send/pages'; //set the base url for
pagination
$config['total_rows'] = $a; //total rows
$config['per_page'] = '10'; //the number
of per page for pagination
$config['uri_segment'] = 4; //see from
base_url. 3 for this case
$config['full_tag_open'] = '<ul
class="pagination pagination-sm no-margin pull-right">';
$config['full_tag_close'] = '</ul>';
$config['first_link'] = '&laquo; First';
$config['first_tag_open'] = '<li class="prev page">';
$config['first_tag_close'] = '</li>';
$config['last_link'] = 'Last &raquo;';
$config['last_tag_open'] = '<li class="next page">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next &rarr;';
$config['next_tag_open'] = '<li class="next page">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = '&larr; Prev';
$config['prev_tag_open'] = '<li class="prev page">';
$config['prev_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li
class="active"><a href="">'; $config['cur_tag_close'] =
'</a></li>';

$config['num_tag_open'] = '<li
class="page">';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
//initialize pagination

$data['send'] = $this->messages_m-
>getAllSend($keyword, $config['per_page'],$this->uri-
>segment(4));
$this->load-
>view('messages/view_send',$data);
$this->load->view('admin/footer', $data);
}
else
{
redirect(''.base_url().'');
}
}
6. Controller Order
class Order extends CI_Controller {
function __construct(){
parent::__construct();
date_default_timezone_set("Asia/Jakarta");
$this->load->model('order_m');
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;

}
}
public function check()
{
$data['title'] = "Cek Status Order | A4
Sport - Padang";
$data['page'] = "Order";
$data['breadcrumb'] = "Cek Status";
$this->load->view('home/header',$data);
$this->load-
>view('customer/view_check_order_status');
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
public function status()
{
$order_id = @$_GET['order_id'];
$no_invoice = @$_GET['no_invoice'];
if($order_id!=null OR $no_invoice!=null)
{
$data['title'] = "Status Order |
A4 Sport - Padang";
$data['page'] = "Order";
$data['breadcrumb'] = "Status";
$this->load->view('home/header',$data);
$data['info'] = $this->order_m-
>getOrderInfo($order_id,$no_invoice);
$data['list'] = $this->order_m-
>getOrderList($order_id,$no_invoice);
$data['history'] = $this->order_m-
>getHistoryList($order_id);
$data['shipping'] = $this->order_m-
>getOrderDetail($order_id);
$data['rekening'] = $this->order_m-
>getRekening();
$this->load-
>view('customer/view_order_status',$data);
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
}
else
{
redirect(''.base_url().'customer/login');
}
}
public function payment_confirm()
{
$data['title'] = "Konfirmasi Pembayaran
| A4 Sport - Padang";
$data['page'] = "Pembayaran";
$data['breadcrumb'] = "Konfirmasi";
$this->load->view('home/header',$data);
$data['bank'] = $this->order_m->getRekening();
$this->load-
>view('customer/view_payment_confirm',$data);
$this->load-
>view('customer/view_customer_menu');
$this->load->view('home/footer');
public function submit_payment_confirm()
{
$json = array();
$fullname = $this->input-
>post('fullname');
$email = $this->input-
>post('email');
$date_payment = $this->input-
>post('date_payment');
$nominal = preg_replace('/[^0-
9]/','',$this->input->post('nominal'));
$bank = $this->input-
>post('bank');
$bank_account = $this->input-
>post('bank_account');
$order_id = $this->input-
>post('order_id');
$no_invoice = $this->input-
>post('no_invoice');
$messages = $this->input-
>post('messages');

$this->form_validation-
>set_rules('fullname','nama lengkap','trim|required');
$this->form_validation-
>set_rules('email','email','trim|required|valid_email');
$this->form_validation-
>set_rules('date_payment','tanggal
pembayaran','trim|required');
$this->form_validation-
>set_rules('nominal','nominal','trim|required');
$this->form_validation->set_rules('bank','bank
tujuan','trim|required');
$this->form_validation-
>set_rules('bank_account','nama rekening
pengirim','trim|required');
$this->form_validation->set_rules('order_id','id
order','trim|required|numeric');
$this->form_validation-
>set_rules('no_invoice','nomor
tagihan/invoice','trim|required|numeric');
if($this->form_validation->run() == FALSE)
{
$json['error'] = validation_errors();
}
else
{
$foto_asli =
$_FILES['attachment']['name'];
$config['upload_path'] =
'./uploads/attachment/';
$config['allowed_types'] = 'jpg|png|jpeg';
$config['max_size'] = '5000';
$config['max_width'] = '10000';
$config['max_height'] = '10000';
$config['overwrite'] = TRUE;
$this->upload->initialize($config);
$dataupload = array();

$rand = random_string('alnum', 15);


foreach($_FILES as $field => $file)
{
// No problems with the file
if($file['error'] == 0)
{
// So lets upload
if ($this->upload->do_upload($field))
{
$data = $dataupload[$field] =
$this->upload->data();

$config_resize['image_library']
= 'gd2';
$config_resize['source_image']
= $data['full_path'];
$this->load->library('image_lib',
$config_resize);

$config_resize['create_thumb'] = FALSE;

$config_resize['maintain_ratio'] = TRUE;

$config_resize['quality'] = '100%';
$config_resize['width']
= 800;
$config_resize['height']
= 650;

$config_resize['new_image'] =
'./uploads/attachment/attachment_'.$rand.'.jpg';
$this->image_lib-
>initialize($config_resize);
$this->image_lib-
>resize();
}
else
{
$this->form_validation-
>set_message('_file[]', $this->upload->display_errors());
echo"<script>alert('Format file
upload tidak sesuai. Silahkan ulangi kembali.');
window.history.back();</script>";
return FALSE;
}
}
}

$new = $this->order_m->newConfirmID();
foreach ($new as $rows)
{
$max = $rows->max;
$max++;
$confirm_id = $max;
}
$data = array(
'confirm_id' => $confirm_id,
'fullname' => $fullname,
'email' => $email,
'date_payment' => $date_payment,
'nominal' => $nominal,
'to_bank' => $bank,
'bank_account' => $bank_account,
'order_id' => $order_id,
'no_invoice' => $no_invoice,
'messages' => $messages,
'date_added' => date('Y-m-d H:i:s')
);

foreach ($dataupload as $key => $value) {


if(isset($value['file_name']))
{
$data[$key] = 'attachment_'.$rand.'.jpg';
}
else
{
$data[$key] = "";
}
}

$do = $this->db->insert('tb_confirm',$data);
if($do)
{
$json['success'] = "Konfirmasi
pembayaran Anda telah kami terima!"
unlink('./uploads/attachment/'.$foto_asli.'');
echo '<script>alert("Konfirmasi
pembayaran telah terkirim.");
window.location.href="'.base_url().'order/payment_confirm"<
/script>';
}
else
{
$json['error'] = "Gagal";
}
}
echo json_encode($json);
}
}
7. Controller Product
class Product extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('product_m');
date_default_timezone_set("Asia/Jakarta");
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;

}
}
public function brand($brand)
{
if($brand!=null)
{
$by = @$_GET['by'];
$sort = @$_GET['sort'];
$limit = @$_GET['limit'];

$data['title'] = "Produk Berdasarkan Brand


| A4 Sport - Padang";
$data['breadcrumb'] = "Semua Produk";
$data['page'] = "Produk";
$this->load->view('home/header',$data);

//Left Sidebar
$data['categories'] = $this->product_m-
>getCategories();
$data['slider'] = $this->product_m-
>getLeftSlider();
$this->load-
>view('home/view_list_categories',$data);

$this->db->order_by('id_produk','DESC');
$query = $this->db->get('tb_produk');
$a = $query->num_rows();
$config['base_url'] =
base_url().'product/brand/page';
$config['total_rows'] = $a; //total rows
$config['use_page_numbers'] = TRUE;
$config['num_links'] = 5;

if($limit==null)
{
$config['per_page'] = '12';
}
else
{
$config['per_page'] = $limit;
}
public function id($id_produk)
{
$detail = $this->product_m-
>getDetail($id_produk);
foreach ($detail as $rows)
{
$nama_produk = $rows->nama_produk;
}
$string = $nama_produk;
$words = array_slice(explode(' ', $string), 0, 3);
$output = implode(' ', $words);
$data['title'] = "".$nama_produk." | A4
Sport - Padang";
$data['page'] = "Detail";
$data['breadcrumb'] = "".$output."";
$this->load->view('home/header',$data);
$data['detail'] = $this->product_m-
>getDetail($id_produk);
$data['warna'] = $this->product_m-
>getWarna($id_produk);
$data['ukuran'] = $this->product_m-
>getUkuran($id_produk);
$this->load->view('home/view_detail',$data);
$this->load->view('home/footer');
}
public function categories()
{
$by = @$_GET['by'];
$sort = @$_GET['sort'];
$limit = @$_GET['limit'];

$id = $this->uri->segment(3);
if($id!=null)
{
$cat = $this->product_m->getCategories_($id);
foreach ($cat as $rows) { }
$data['title'] = "".$rows->nama_kategori."
| A4 Sport - Padang";
$data['breadcrumb'] = "".$rows-
>nama_kategori."";
}
else
{
$data['title'] = "Semua Produk | A4 Sport - Padang";
$data['breadcrumb'] = "Semua Produk";
}
public function totalreview($id_produk)
{
$review = $this->product_m-
>getTotalReview($id_produk);
echo $review->num_rows();
}
public function search()
{
$limit = @$_GET['limit'];
$by = @$_GET['by'];
$sort = @$_GET['sort'];
$q = @$_GET['q'];
$category_id= @$_GET['category_id'];

$data['title'] = "Pencarian - ".ucwords($q)." |


A4 Sport - Padang";
$data['page'] = "Pencarian";
$data['breadcrumb'] = "Hasil Pencarian";
$this->load->view('home/header',$data);
$data['search'] = $this->product_m-
>getSearchResult($limit, $by, $sort, $q, $category_id);
$data['category'] = $this->product_m-
>getCategories();
$this->load->view('home/view_search',$data);
$this->load->view('home/footer');
}
8. Controller Supplier
class Supplier extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('supplier_m');
$this->load->model('admin_m');
$this->load->model('messages_m');
$this->check_quota_product();
date_default_timezone_set("Asia/Jakarta");
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;

}
}
public function login()
{
$this->load->view('supplier/view_login');
public function request()
{
if($this->session-
>userdata('level')=="supplier")
{
$data['title'] = "Produk | A4 Sport
- Padang";
$data['page'] = "Produk";
$this->load-
>view('supplier/header',$data);

$this->db-
>join('tb_produk','tb_produk.id_produk=tb_permintaan_st
ok.id_produk');
$this->db-
>join('tb_kategori','tb_kategori.id_kategori=tb_produk.
id_kategori');
$this->db-
>join('tb_merk','tb_merk.id_merk=tb_produk.id_merk');
$this->db-
>where('tb_produk.supplier_id',$this->session-
>userdata('uid'));
$query = $this->db-
>get('tb_permintaan_stok');

$a = $query->num_rows();
$config['base_url'] =
base_url().'supplier/request/pages'; //set the base url
for pagination
$config['total_rows'] = $a; //total
rows
// $config['use_page_numbers'] =
TRUE;
// $config['num_links'] =
5;$config['per_page'] = '10'; //the number of per page
for pagination
$config['uri_segment'] = 4; //see from
base_url. 3 for this case
$config['full_tag_open'] = '<ul
class="pagination no-margin pull-right">';
$config['full_tag_close'] = '</ul>';

$config['first_link'] = '<i class="fa fa-


angle-double-left"></i> First';
$config['first_tag_open'] = '<li class="prev page">';
$config['first_tag_close'] = '</li>';
$config['last_link'] = 'Last <i class="fa fa-angle-double-
right"></i>';
$config['last_tag_open'] = '<li class="next page">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next <i class="fa fa-angle-
right"></i>';
$config['next_tag_open'] = '<li class="next page">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = '<i class="fa fa-angle-left"></i>
Prev';
$config['prev_tag_open'] = '<li class="prev page">';
$config['prev_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li class="page">';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$data['products'] = $this->supplier_m-
>getStock($config['per_page'],$this->uri->segment(4));
$this->load->view('supplier/view_request_product',$data);
$this->load->view('supplier/footer');
}
else
{
$this->login();
}
}

public function editrequest($id_permintaan)


{
if($this->session-
>userdata('level')=="supplier")
{
$data['title'] = "Edit Permintaan Produk |
A4 Sport - Padang";
$data['page'] = "Edit Permintaan Produk";
$this->load-
>view('supplier/header',$data);
$data['produk'] = $this->admin_m-
>getProduct();
$data['permintaan'] = $this->admin_m-
>getDataPermintaan($id_permintaan);
$this->load-
>view('supplier/view_edit_request_product',$data);
$this->load->view('supplier/footer');
}
else
{
$this->login();
}
}

9. Controller Owner
class Owner extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('owner_m');
$this->load->model('messages_m');
$this->check_quota_product();
date_default_timezone_set("Asia/Jakarta");
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = substr($tgl,5,2);
$tahun = substr($tgl,0,4);
return $tanggal.'/'.$bulan.'/'.$tahun;

}
}
public function login()
{
$this->load->view('owner/view_login');
}
public function auth()
{
$this->form_validation->set_rules('username',
'<strong>username</strong>', 'trim|required|xss_clean');
$this->form_validation->set_rules('password',
'<strong>password</strong>', 'trim|required');
$this->form_validation->set_error_delimiters();

if ($this->form_validation->run() == FALSE) { ?>


<div class="alert alert-danger">
<i class="fa fa-exclamation-circle"></i>
Kesalahan!
<button type="button" class="close" data-
dismiss="alert">&times;</button>
<?php echo validation_errors(); ?>
</div>
<?php
}
else
{
$username = $this->input-
>post('username');
$password = md5($this->input-
>post('password'));
$query = $this->owner_m-
>checkUser($username, $password);
if($query)
{
$url = base_url('owner');

echo"<script>window.location.href='".$url."';</script>
";
}
else
{
?>
<div class="alert alert-danger">
<i class="fa fa-exclamation-
circle"></i> Kesalahan!
<button type="button" class="close"
data-dismiss="alert">&times;</button>
Username atau password salah.
</div>
<?php
}
}
public function logout()
{
$data = array(
'uid' => "",
'nama' => "",
'alamat' => "",
'email' => "",
'telepon' => "",
'username' => "",
'level' => "",
'logged_in' => FALSE
);
$this->session->unset_userdata($data);
$this->session->sess_destroy();
redirect(''.base_url().'owner/login');
}

{
if($this->session->userdata('level')=="owner")
{
$data['title'] = "Supplier | A4 Sport - Padang";
$data['page'] = "Supplier";
$this->load->view('owner/header',$data);
$data['supplier'] = $this->owner_m->getDataSupplier();
$this->load->view('owner/view_supplier',$data);
$this->load->view('owner/footer');
}
else
{
$this->login();
}
}
public function customer()
{
if($this->session->userdata('level')=="owner")
{
$data['title'] = "Pelanggan | A4 Sport - Padang";
$data['page'] = "Pelanggan";
$this->load->view('owner/header',$data);
$data['customer'] = $this->owner_m->getDataCustomer();
$this->load->view('owner/view_customer',$data);
$this->load->view('owner/footer');
}
else
{
$this->login();
}
}
public function print_report_order()
{
if($this->session->userdata('level')=="owner")
{
$filter_date_start = @$_GET['filter_date_start'];
$filter_date_end = @$_GET['filter_date_end'];
$filter_order_status_id = @$_GET['filter_order_status_id'];
if($filter_date_start!=null AND
$filter_date_end!=null AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
$this->db->where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND
$filter_date_end!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
}
elseif($filter_order_status_id!=null)
{
$this->db->where('status_order',$filter_order_status_id);
}
$data['order'] = $this->owner_m-
>getPrintReportOrder($filter_date_start, $filter_date_end,
$filter_order_status_id);
$this->load->view('owner/view_print_report_order',$data);
}
else
{
redirect(''.base_url().'owner/login');
}
}
public function print_report_sale()
{
if($this->session->userdata('level')=="owner")
{
$filter_date_start = @$_GET['filter_date_start'];
$filter_date_end = @$_GET['filter_date_end'];
$filter_order_status_id = @$_GET['filter_order_status_id'];
if($filter_date_start!=null AND
$filter_date_end!=null AND $filter_order_status_id!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
$this->db->where('status_order',$filter_order_status_id);
}
elseif($filter_date_start!=null AND $filter_date_end!=null)
{
$this->db->where('tgl_order >=', $filter_date_start);
$this->db->where('tgl_order <=', $filter_date_end);
}
$this->db->where('status_order','terkirim');
$data['order'] = $this->owner_m-
>getPrintReportSale($filter_date_start, $filter_date_end,
$filter_order_status_id);
$this->load->view('owner/view_print_report_sale',$data);
}
else
{
redirect(''.base_url().'owner/login');
}
}