Uploaded by Harris

FIX TIPRO21

advertisement
PRAKTIKUM PEMROGRAMAN INTERNET
Oleh:
KELOMPOK XXI
Afani Agung Nugroho
(1605551005)
Kadek Satria Umbaraditha
(1605551025)
Desak Ayu Putu Savita Arsarini
(1605551053)
Ni Luh Putu Giri Gita Saraswati
(1605551102)
I Wayan Eka Krisna Putra
(1605552007)
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2018
KATA PENGANTAR
Puji syukur terhadap Tuhan Yang Maha Esa, karena atas berkatnya
penyusunan laporan yang berjudul “Praktikum Pemrograman Internet” dapat
terselesaikan. Tujuan disusunnya laporan ini untuk memenuhi tugas akhir
semester 4 dari mata kuliah Praktikum Pemrograman Internet. Tidak lupa ucapan
terima kasih untuk pihak-pihak yang telah membantu kepada:
1.
Bapak I Nyoman Piarsa, S.T., M.T. selaku dosen pengampu mata kuliah
Praktikum Pemrograman Internet.
2.
Asisten dosen yang telah membimbing dalam melakukan proses
penyusunan laporan Praktikum Pemrograman Internet ini.
3.
Teman-teman yang telah bekerjasama dan memberikan ide, sehingga
laporan Praktikum Pemrograman Internet ini dapat selesai tepat pada
waktunya.
Semoga laporan Praktikum Pemrograman Internet ini dapat menambah
dan memberikan informasi yang bermanfaat bagi masyarakat, agar wawasan dan
pengetahuan dapat berkembang lebih luas lagi. Laporan Praktikum Pemrograman
Internet ini masih jauh dari kata sempurna, oleh karena itu kritik dan saran yang
bersifat membangun sangat diharapkan demi sempurnanya laporan ini.
Jimbaran, Mei 2018
Tim Penyusun
ii
ABSTRAK
.
Perkembangan teknologi sekarang berbanding lurus dengan peningkatan
kebutuhan masyarakat mengenai informasi. Penggunaan teknologi juga sudah
merambah ke berbagai bidang khususnya bidang bisnis. Perkembangan teknologi
informasi sekarang, telah menciptakan peluang-peluang bisnis yang baru,
transaksi bisnis semakin banyak dilakukan secara digital. Perkembangan internet
yang terus meningkat memberi pengaruh signifikan dalam segala aspek kehidupan
khususnya dalam bidang bisnis. Transaksi bisnis melalui internet disebut ecommerce. E-commerce adalah proses pembelian, penjualan atau pertukaran
produk, jasa dan informasi melalui jaringan komputer. Salah satu contoh kegiatan
perdagangan yang dapat menggunakan e-commerce adalah toko Online.
Sistem informasi toko Online dibuat berbasis web dengan teknik
pemograman terstruktur, menggunakan bahasa pemograman PHP dan basis data
MySQL. Sistem informasi disediakan untuk memberikan kemudahan
penyampaian informasi kepada konsumen terkait produk yang dipasarkan dan
mempermudah dalam kegiatan pembayaran. Selain itu, dapat memberikan solusi
kecepatan, ketepatan dan keakuratan dalam melaksanakan pengolahan data
mencakup barang- barang yang di pasarkan agar mendapat hasil yang optimal.
Kata kunci : Internet, E-commerce PHP, MySQL.
iii
DAFTAR ISI
HALAMAN JUDUL .............................................................................................. i
KATA PENGANTAR ........................................................................................... ii
ABSTRAK ............................................................................................................ iii
DAFTAR ISI ......................................................................................................... iv
DAFTAR GAMBAR ............................................................................................ vi
DAFTAR KODE PROGRAM ........................................................................... vii
BAB I PENDAHULUAN .......................................................................................1
1.1
Latar Belakang Masalah ........................................................................... 1
1.2
Rumusan Masalah .................................................................................... 2
1.3
Tujuan Penelitian ...................................................................................... 2
1.4
Manfaat Penelitian .................................................................................... 3
1.5
Batasan Masalah ....................................................................................... 3
1.6
Sistematika Penulisan ............................................................................... 3
1.6.1
BAB I PENDAHULUAN ................................................................. 3
1.6.2
BAB II TINJAUAN PUSTAKA....................................................... 3
1.6.3
BAB III METODE DAN PERANCANGAN SISTEM .................... 4
1.6.4
BAB IV PEMBAHASAN ................................................................. 4
1.6.5
BAB V PENUTUP ............................................................................ 4
BAB II TINJAUAN PUSTAKA............................................................................5
2.1
Sistem Informasi ....................................................................................... 5
2.1.1
Blok Masukan ................................................................................... 5
2.1.2
Blok Model ....................................................................................... 5
2.1.3
Blok Keluaran ................................................................................... 6
2.1.4
Blok Teknologi ................................................................................. 6
2.1.5
Blok Basis Data ................................................................................. 6
2.1.6
Blok Kendali ..................................................................................... 6
2.2
E-Commerce ............................................................................................. 6
2.3
Database ................................................................................................... 7
2.4
Pemrograman Web ................................................................................... 8
2.5
HTML ....................................................................................................... 9
2.6
CSS ........................................................................................................... 9
2.7
PHP ......................................................................................................... 10
2.8
Bootstrap ................................................................................................ 11
2.9
J-Query ................................................................................................... 11
2.10 Laravel .................................................................................................... 12
2.11 GitHub .................................................................................................... 13
BAB III METODE DAN PERANCANGAN SISTEM .....................................19
3.1
Tempat dan Waktu Penelitian ................................................................ 19
3.2
Gambaran Umum Sistem ....................................................................... 19
1.3.1
Mekanisme Penjualan Laptop ......................................................... 19
1.3.2
Cara Kerja Admin ........................................................................... 21
1.3.3
Cara Kerja Pembeli ......................................................................... 21
1.3.4
Perancangan Use Case Diagram..................................................... 22
1.3.5
Perancangan Mockup ...................................................................... 23
iv
3.3
Perancangan Database ........................................................................... 41
BAB IV PEMBAHASAN.....................................................................................44
4.1
Source Code ........................................................................................... 44
4.2.1
Controller ........................................................................................ 44
4.2.2
Model............................................................................................... 62
4.2.3
View ................................................................................................. 74
4.2
Uji Coba ............................................................................................... 118
4.2.1
User ............................................................................................... 118
4.2.2
Admin ............................................................................................ 122
BAB V PENUTUP ..............................................................................................127
5.1
Simpulan ............................................................................................... 127
5.2
Saran ..................................................................................................... 127
DAFTAR PUSTAKA .........................................................................................128
v
DAFTAR GAMBAR
Gambar 4. 1 Halaman Home Website Toko Online Tipro .................................. 119
Gambar 4. 2 Halaman Register Website Toko Online Tipro .............................. 119
Gambar 4. 3 Halaman Login Website Toko Online Tipro .................................. 120
Gambar 4. 4 Halaman Cart Website Toko Online Tipro .................................... 121
Gambar 4. 5 Halaman Pembayaran Website Toko Online Tipro ....................... 121
Gambar 4. 6 Halaman Address User Website Toko Online Tipro ...................... 122
Gambar 4. 7 Halaman Dashboard Website Toko Online Tipro.......................... 123
Gambar 4. 8 Halaman Categories Website Toko Online Tipro .......................... 123
Gambar 4. 9 Halaman Product Website Toko Online Tipro............................... 124
Gambar 4. 10 Halaman Order Website Toko Online Tipro ................................ 125
Gambar 4. 11 Halaman Statistic Website Toko Online Tipro............................. 125
vi
DAFTAR KODE PROGRAM
Kode Program 4. 1 Controller AddressController ........................................... 45
Kode Program 4. 2 Controller CartController ................................................. 47
Kode Program 4. 3 Controller CatalogsController ......................................... 48
Kode Program 4. 4 Controller CategoriesController ..................................... 50
Kode Program 4. 5 Controller CheckoutController ......................................... 55
Kode Program 4. 6 Controller HomeController .................................................. 56
Kode Program 4. 7 Controller OrderController ............................................... 57
Kode Program 4. 8 Controller ProductsController ......................................... 60
Kode Program 4. 9 Controller UsersController ............................................... 61
Kode Program 4. 10 Address Model .................................................................... 62
Kode Program 4. 11 Cart Model .......................................................................... 63
Kode Program 4. 12 Categories Model ............................................................. 65
Kode Program 4. 13 Chart Model ........................................................................ 65
Kode Program 4. 14 Fees Model .......................................................................... 67
Kode Program 4. 15 Orders Model ..................................................................... 68
Kode Program 4. 16 Orders Details Model ...................................................... 69
Kode Program 4. 17 Products Model .................................................................. 71
Kode Program 4. 18 Province Model ................................................................. 72
Kode Program 4. 19 Regenciess Model ............................................................. 73
Kode Program 4. 20 Orders Model ...................................................................... 74
Kode Program 4. 21 View Login.blade.php ...................................................... 75
Kode Program 4. 22 View Register.blade.php ................................................ 78
Kode Program 4. 23 View index.blade.php ....................................................... 80
Kode Program 4. 24 View _add-product-form.blade.php .............................. 81
Kode Program 4. 25 View _breadcrumb.blade.php .......................................... 81
Kode Program 4. 26 View _category-panel.blade.php .................................. 82
Kode Program 4. 27 View _product-added.blade.php .................................... 83
Kode Program 4. 28 View _product-thumbnail.blade.php ............................ 83
Kode Program 4. 29 View _search-panel.blade.php ...................................... 84
Kode Program 4. 30 View _sub-category-panel.blade.php .......................... 85
Kode Program 4. 31 View index.blade.php ...................................................... 87
Kode Program 4. 32 View _form.blade.php ...................................................... 88
Kode Program 4. 33 View create.blade.php .................................................... 88
Kode Program 4. 34 View edit.blade.php ....................................................... 89
Kode Program 4. 35 View index.blade.php ...................................................... 90
Kode Program 4. 36 View _address-choose-form.blade.php ........................ 91
Kode Program 4. 37 View _address-field.blade.php .................................... 93
Kode Program 4. 38 View _address-new-form.blade.php .............................. 94
Kode Program 4. 39 View _cart-panel.blade.php .......................................... 95
Kode Program 4. 40 View _login-form.blade.php .......................................... 96
Kode Program 4. 41 View _payment-form.blade.php ...................................... 97
Kode Program 4. 42 View_step.blade.php ....................................................... 98
Kode Program 4. 43 View address.blade.php ................................................. 98
vii
Kode Program 4. 44 View login.blade.php ...................................................... 99
Kode Program 4. 45 View payment.blade.php ................................................ 100
Kode Program 4. 46 View success.blade.php ................................................ 101
Kode Program 4. 47 View edit.blade.php ..................................................... 103
Kode Program 4. 48 404.blade.php ................................................................ 104
Kode Program 4. 49 View app.blade.php ....................................................... 107
Kode Program 4. 50 View edit.blade.php ..................................................... 108
Kode Program 4. 51 View _form.blade.php .................................................... 109
Kode Program 4. 52 View edit.blade.php ...................................................... 110
Kode Program 4. 53 View index.blade.php .................................................... 111
Kode Program 4. 54 View _form.blade.php .................................................... 113
Kode Program 4. 55 View create.blade.php .................................................. 114
Kode Program 4. 56 View edit.blade.php ...................................................... 114
Kode Program 4. 57 View index.blade.php .................................................... 116
Kode Program 4. 58 View edit.blade.php ...................................................... 118
viii
BAB I
PENDAHULUAN
Bab I merupakan pendahuluan dari laporan Praktikum Pemrograman
Internet. Laporan Bab I ini membahas tentang latar belakang masalah, rumusan
masalah, tujuan penelitian, manfaat penelitian, serta sistematika penulisan yang
menjadikan awal dalam proses penulisan laporan pemrograman internet ini.
1.1
Latar Belakang Masalah
Perkembangan teknologi yang semakin pesat menyebabkan sekumpulan
manusia mengahasilkan karya yang memiliki tujuan tertentu. Saat ini, web
dijadikan sebagai kumpulan halaman yang dapat menampilkan informasi data
teks, gambar diam atau gerak, animasi, suara, video atau gabungan dari semuanya,
baik yang bersifat statis maupun dinamis untuk membentuk satu rangkaian
bangunan yang saling terkait serta terhubung dengan jaringan-jaringan halaman
(hyperlink). Web dikatakan statis, apabila isi informasi website tetap, jarang
berubah, dan searah hanya dari pemilik website, sedangkan web dikatakan
dinamis, apabila isi informasi website selalu berubah-ubah serta interaktif dua
arah berasal dari pemilik serta pengguna website. Website dinamis menurut
pengembangannya dapat di-update oleh pengguna sebagai pencarian infromasi
yang dibutuhkan serta berkomunikasi dengan orang lain melalui sosial media.
Aplikasi yang diperlukan untuk website adalah browser. Browser memiliki scriptscript yang dapat dimengerti oleh komputer.
Perkembangan internet juga memberi pengaruh signifikan dalam segala
aspek kehidupan. Internet membantu untuk berinteraksi, berkomunikasi, bahkan
melakukan perdagangan dengan orang dari segala penjuru dunia dengan murah,
cepat dan mudah. Salah satu manfaat dari keberadaan internet adalah sebagai
media promosi suatu produk. Suatu produk yang dipromosikan melalui internet
dapat membawa keuntungan besar bagi pengusaha karena produknya dikenal di
seluruh dunia. E-commerce merupakan salah satu bentuk kontak transaksi
perdagangan antara penjual dengan pembeli menggunakan media internet. Jadi,
1
2
proses pemesanan barang dikomunikasikan melalui internet. Keberadaan ecommerce memberikan banyak kemudahan bagi kedua belah pihakdi dalam
melakukan transaksi perdagangan, meskipun berada di benua berbeda sekalipun.
Setiap transaksi yang dilakukan dengan e-commerce tidak memerlukan pertemuan
dalam tahap negoisasi. Berbelanja atau melakukan transaksi perdagangan melalui
internet sangat berbeda dengan dunia nyata, karena lebih cepat dan biaya murah
tanpa melalui proses yang berbelit-belit. Pihak pembeli (buyer) cukup mengakses
internet ke website perusahaan yang mengiklankan produknya di internet,
kemudian mempelajari term of condition (ketentuan-ketentuan yang diisyaratkan)
pihak penjual. Manfaat dari e-commerce ini dapat menekan biaya barang dan jasa,
meningkatkan kepuasan pembeli, mempercepat dalam hal mendapatkan barang
yang dibutuhkan dengan kualitas yang terbaik sesuai dengan harganya.
Oleh karena itu, Praktikum Pemrograman Internet dibuat untuk
membahas pembuatan dan penggunaan aplikasi berbasis website mengenai bisnis
penjualan. Website ini diberikan nama “Toko Online Tipro”. Website ini berfungsi
untuk tempat memperjual-belikan barang elektronik seperti Laptop, dengan harga
perbandingan jauh lebih murah daripada website-website lain.
1.2
Rumusan Masalah
Berdasarkaan latar belakang yang telah dibuat, maka adapun perumusan
masalah yang dirumuskan adalah, sebagai berikut.
a.
Bagaimana perancangan website Toko Online.
b.
Bagaimana bisnis proses dari website Toko Online.
c.
Bagaimana membangun website Toko Online menggunakan framework
Laravel.
1.3
Tujuan Penelitian
Melihat dari rumusan masalah di atas, adapun tujuan dari laporan
Praktikum Pemrograman Internet ini adalah sebagai berikut.
a.
Mengetahui rancangan website Toko Online
b.
Mengetahui bisnis proses dari website Toko Online.
c.
Mengimplementasikan framework Laravel.
3
1.4
Manfaat Penelitian
Manfaat yang dapat diambil setelah penelitian ini selesai dilaksanakan
yaitu, diharapkan pada laporan Praktikum Pemrograman Internet ini dapat
memberikan pemikiran terhadap pengembangan ilmu pengetahuan khususnya
Teknologi Informasi dan mengasah keterampilan yang berkaitan dengan
perancangan sistem website.
1.5
Batasan Masalah
Adapun beberapa masalah yang dapat membatasi masalah, diangkat pada
laporan Praktikum Pemrograman Internet ini, meliputi perancangan bisnis proses,
perancangan database pada MySQl, penggunaan fungsi model, view dan
controller pada bahasa Pemrograman PHP dan framework Laravel, serta
penggunaan CSS Bootstrap untuk memperindah tampilan website.
1.6
Sistematika Penulisan
Sistematika penulisan yang digunakan pada laporan Praktikum
Pemrograman Internet ini terdiri dari pembahasan umum secara teori disertai
dengan pemaparan contoh dari penjelasan tersebut. Pengambilan teori
menggunakan metode pengumpulan data seperti artikel yang nantinya dirangkum
dari beberapa sumber.
1.6.1
BAB I PENDAHULUAN
Bab I merupakan pendahuluan dari laporan Praktikum Pemrograman
Internet. Laporan pada Bab I ini mengenai latar belakang, rumusan masalah,
tujuan penelitian, manfaat penelitian, batasan masalah dan sistematika penulisan
yang digunakan dalam proses penulisan laporan Praktikum Pemrograman Internet
ini.
1.6.2
BAB II TINJAUAN PUSTAKA
Bab II merupakan tinjauan pustaka dari laporan Praktikum Pemrograman
Internet. Laporan Bab II ini membahas tentang landasan teori secara umum yang
menjadikan dasar untuk digunakan dalam proses penulisan laporan Praktikum
Pemrograman Internet.
4
1.6.3
BAB III METODE DAN PERANCANGAN SISTEM
Bab III merupakan metode dan perancangan sistem dari laporan
Praktikum Pemrograman Internet. Laporan Bab III membahas tentang tempat dan
waktu penelitian, sumber data dan perancangan website Sistem Informasi
Penjualan Laptop.
1.6.4
BAB IV PEMBAHASAN
Bab IV merupakan pembahasan dari laporan Praktikum Pemrograman
Internet. Laporan Bab IV membahas tentang bisnis proses, kode program pada
model, view, controller dan screenshoot tampilan website yang dipraktikan pada
mata kuliah Praktikum Pemrograman Internet.
1.6.5
BAB V PENUTUP
Bab V merupakan penutup dari laporan Praktikum Pemrograman
Internet. Laporan ini mengenai kesimpulan dari keseluruhan modul-modul
Praktikum Pemrograman Internet serta saran atau masukan yang diberikan oleh
dosen pengempu mata kuliah Praktikum Pemrograman Internet.
BAB II
TINJAUAN PUSTAKA
Bab II merupakan tinjauan pustaka dari laporan Praktikum Pemrograman
Internet. Laporan Bab II ini membahas tentang landasan teori secara umum yang
menjadikan dasar untuk digunakan dalam proses penulisan laporan Praktikum
Pemrograman Internet.
2.1
Sistem Informasi
Sistem informasi adalah suatu sistem pada suatu organisasi yang
mempertemukan kebutuhan dalam pengolahan transaksi harian, mendukung
operasi, bersifat manajerial dan menciptakan strategi dari suatu organisasi serta
menyediakan informasi bagi pihak luar dalam bentuk laporan apabila diperlukan.
Sistem informasi terdiri dari komponen-komponen, yaitu blok masukan
(input block), blok model (model block), blok keluaran (output block), blok
teknologi (technology block), blok basis data (database block) dan blok kendali
(control block). Sebagai suatu sistem, keenam blok tersebut masing-masing saling
berinteraksi satu dengan yang lainnya membentuk satu kesatuan untuk mencapai
sasarannya.
2.1.1
Blok Masukan
Blok masukan (input block) mewakili data yang masuk ke dalam sistem
informasi. Input dapat berupa metode-metode dan media untuk menangkap data
yang akan dimasukkan, yang dapat berupa dokumen-dokumen dasar.
2.1.2
Blok Model
Blok model (model block) terdiri dari kombinasi prosedur, logika dan
model matematik yang akan memanipulasi data input dan data yang tersimpan di
basis data dengan cara yang sudah tertentu untuk menghasilkan keluaran yang
diinginkan.
5
6
2.1.3
Blok Keluaran
Produk dari sistem informasi adalah keluaran yang merupakan informasi
yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan
manajemen serta semua pemakai sistem.
2.1.4
Blok Teknologi
Teknologi digunakan untuk menerima input, menjalankan model,
menyimpan dan mengakses data, menghasilkan dan mengirimian keluaran dan
membantu pengendalian dari sistem secara keseluruhan. Teknologi terdiri dari 3
bagian utama, yaitu teknisi (brainware), perangkat lunak (software) dan perangkat
keras (hardware).
2.1.5
Blok Basis Data
Basis data (database) merupakan kumpulan dari data yang saling
berhubungan satu dengan yang lainnya, tersimpan di perangkat keras komputer
dan digunakan perangkat lunak untuk memanipurasinya.
2.1.6
Blok Kendali
Pengendalian perlu dirancang dan diterapkan untuk meyakinkan bahwa
hal-hal yang dapat merusak sistem (bencana alam atau kecurangan) dapat dicegah
ataupun bila terlanjur terjadi kesalahan-kesalahan dapat langsung cepat diatasi.
2.2
E-Commerce
Electronic Commerce (e-commerce) merupakan bagian dari e-business,
tidak hanya sekedar perniagaan tetapi mencakup pengkolaborasian mitra bisnis,
pelayanan nasabah, lowongan pekerjaan dan lain-lain. E-commerce adalah proses
pembelian, penjualan atau pertukaran produk, jasa dan informasi melalui jaringan
komputer.
E-commerce mencakup distribusi, penjualan, pembelian, marketing dan
service dari sebuah produk yang dilakukan dalam sebuah sistem elektronika
seperti Internet atau bentuk jaringan komputer yang lain. E-commerce bukan
sebuah jasa atau sebuah barang, tetapi perpaduan antara jasa dan barang. E-
7
commerce dan kegiatan yang terkait melalui internet dapat menjadi penggerak
untuk memperbaiki ekonomi domestik melalui liberalisasi jasa domestik dan
mempercepat integrasi dengan kegiatan produksi global.
E-commerce
mengintegrasikan
perdagangan
domestik
dengan
perdagangan dunia, berbagai bentuk pembicaraan atau negosiasi tidak hanya
terbatas dalam aspek perdagangan dunia, tetapi bagaimana kebijakan domestik
tentang pengawasan di sebuah negara, khususnya dalam bidang telekomunikasi,
jasa keuangan, dan pengiriman serta distribusi.
E-commerce
dijalankan
menggunakan
beberapa
perpaduan
dari
infrastruktur teknologi. Contohnya menggunakan teknologi jaringan World Wide
Web (www). Selain teknologi jaringan www, e-commerce juga memerlukan
teknologi basis data (database), surat elektronik (e-mail), dan bentuk teknologi
non komputer yang lain seperti halnya sistem pengiriman barang, dan alat
pembayaran untuk e-commerce ini.
2.3
Database
Database merupakan komponen dasar dari sebuah sistem informasi dan
pengembangan serta penggunaannya dipandang dari perspektif kebutuhan
organisasi yang lebih besar. Database merupakan kumpulan dari data-data yang
membentuk suatu berkas (file) yang saling berhubungan (relation) dengan proses
tertentu untuk membentuk data baru atau informasi. Oleh karena itu siklus hidup
sebuah sistem informasi organisasi berhubungan dengan siklus hidup sistem
database yang mendukungnya.
Relasi data biasanya ditunjukkan dengan kunci (key) dari tiap file yang
ada. Data yang merupakan fakta yang tercatat dan selanjutnya dilakukan
pengolahan menjadi bentuk yang berguna atau bermanfaat bagi pemakainya
sebagai informasi. Bentuk informasi yang kompleks dan terintegrasi dan
pengolahan sebuah database dengan komputer digunakan untuk proses
pengambilan keputusan pada manajemen membentuk SIM (Sistem Informasi
Manajemen), data dalam database merupakan item terkecil dan terpenting untuk
membangun database yang baik dan valid.
8
Database memiliki beberapa komponen yang penting di dalamnya, yaitu
sebagai berikut.
1.
Hardware, perangkat yang mendukung operasi pengolahan data seperti
CPU, memori, disk, terminal, dan sebagainya.
2.
Software sistem operasi, contohnya Windows 10, Windows 2000/XP,
Linux, Unix.
3.
Software program aplikasi misalnya Visual Basic, Delphi, Visual Foxpro.
4.
Software pengelola database (DBMS) seperti MS-Access, SQL
(Structured Query Language), Oracle. DBMS (Database Management
System) menyediakan akses data yang efisien, kebebasan data, integritas
data, keamanan, dan pengembangan aplikasi yang cepat, mendukung
akses bersamaan dan perbaikan dari kerusakan.
5.
Database, semua data yang diperlukan, dipelihara, dikelola oleh sistem.
6.
Pemakai atau pengguna database (Brainware).
2.4
Pemrograman Web
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug)
dan memelihara kode yang membangun suatu program komputer. Web adalah
jaringan komputer yang terdiri dari kumpulan situs internet yang menawarkan
teks dan grafik dan suara dan sumber daya animasi melalui protokol transfer
hypertext. Web dikenal dengan istilah WWW (World Wide Web) merupakan
layanan internet yang paling populer saat ini. Pemrograman web merupakan
proses penulisan kode atau pembangunan sebuah situs web dengan menggunakan
bahasa pemrograman tingkat tinggi (high level).
WWW adalah halaman website yang saling terkoneksi satu dengan
lainnya (hyperlink) dan membentuk samudera belantara informasi. WWW
berjalan dengan protokol HTTP (HyperText Transfer Protokol). Halaman Web
merupakan file teks murni (plain text) yang berisi sintaks-sintaks HTML dapat
dibuka atau diterjemahkan dengan browser. Sintaks HTML mampu memuat
konten text, gambar, audio, video dan animasi. Web dijadikan sebagai standar
interface pada layanan-layanan yang ada di internet, mulai dari penyedia
9
informasi, lalu penggunaanya dalam bidang komunikasi seperti e-mail dan
chatting, sampai transaksi bisnis (commerce).
Keuntungan yang diberikan oleh Aplikasi berbasis Web dibandingkan
dengan aplikasi berbasis desktop sangat banyak, sehingga aplikasi berbasis web
diadopsi oleh perusahaan sebagai bagian dari strategi teknologi informasinya,
karena memberikan kemudahan dalam mengakses informasi, setup server,
pendistribusian informasi dan kebebasan menggunakan platform dapat disajikan
oleh web browser pada sistem operasi apapun.
2.5
HTML
HTML (Hypertext Markup Language) adalah bahasa markup yang
digunakan untuk membuat halaman web. HTML merupakan bahasa markup atau
penandaan terhadap sebuah dokumen teks. Tanda ini digunakan untuk
menentukan format atau style dari teks yang di tandai.
HTML dibuat oleh Tim Berners-Lee ketika bekerja untuk CERN dan
dipopulerkan pertama kali oleh browser Mosaic. Awal tahun 1990 HTML
mengalami perkembangan yang sangat pesat.
HTML disahkan sebagai suatu dokumen HTML standard dan disetujui
oleh World Wide Web Consortium (W3C) untuk dievaluasi secara ketat.
Perkembangan yang terjadi untuk versi HTML, browser memperbaiki diri agar
bisa mendukung kode-kode HTML yang baru, jika tidak browser tidak dapat
menampilkan HTML tersebut.
Fungsi utama HTML adalah membuat, mendesain, dan mengontrol
tampilan dari web page dan isinya. HTML juga berfungsi untuk mempublikasikan
document secara Online, sehingga dapat diakses dan dilihat dari seluruh dunia.
HTML digunakan untuk membuat Online form yang digunakan untuk menangani
pendaftaran transaksi secara Online. Fungsi lain HTML adalah menambahkan
object seperti image, audio, video dan juga java applet di dalam dokumennya.
2.6
CSS
CSS (Cascading Style Sheet) adalah bahasa pemrograman web yang
digunakan untuk mempercantik halaman web dan mengendalikan beberapa
10
komponen sebuah web, sehingga lebih terstruktur dan seragam. CSS digunakan
dalam mengendalikan ukuran gambar, warna teks, warna tabel, ukuran border,
warna border, warna hyperlink, warna mouse over, spasi antar paragraf, spasi
antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya. CSS diartikan
sebagai bahasa style sheet untuk mengatur tampilan dokumen.
Tahun 1996 CSS menjadi teknologi internet yang direkomendasikan oleh
World Wide Web Consortium atau W3C. CSS distandarisasi oleh Internet
Explorer dan Netscape untuk melepas browser terbaru yang mendekati standar
CSS.
Kelebihan CSS yaitu dapat memisahkan desain dengan konten halaman
web, mengatur desain, mengubah suatu tema halaman web, dan sebagainya. CSS
menghadirkan sesuatu yang tidak dapat dilakukan oleh HTML. CSS lebih mudah
di-download karena ukuran filenya lebih ringan. Satu CSS dapat digunakan
banyak halaman web.
2.7
PHP
Hypertext Prepocessor atau PHP merupakan bahasa pemograman
berbasis web yang menerapkan sistem sisi server side. PHP disisipkan antara
skrip-skrip bahasa HTML dan arena bahasa server side lainnya, sehingga PHP
dieksekusi secara langsung oleh server.
Kelebihan PHP yaitu web yang menggunakan PHP mudah dibuat dan
memiliki kecepatan akses yang cukup tinggi. Skrip-skrip PHP berjalan dalam web
server yang berbeda dan dalam sistem operasi yang berbeda. PHP berjalan dalam
berbagai sistem operasi seperti UNIX, Windows dan Macintosh. PHP juga
berjalan pada web server Microsoft Personal Web Server, Apache, IIS (Internet
Information Services), Xitami dan sebagainya. PHP diletakan dalam tag HTML
karena termasuk bahasa embedded.
Web server diperlukan untuk menjalankan PHP untuk memproses file-file
PHP dan mengirimkan hasil pemrosesan untuk ditampilkan di browser client
sehingga PHP termasuk server-side scripting (script yang diproses di sisi server).
Web server adalah software yang di-install pada komputer lokal ataupun
komputer lain yang berada di jaringan intranet atau internet yang berfungsi untuk
11
melayani permintaan-permintaan web dari client. Web server yang paling banyak
digunakan saat ini untuk PHP adalah apache.
Selain apache, PHP juga memerlukan PHP binary yang dikonfigurasikan
sebagai modul apache atau aplikasi CGI (Computer Generated Image). Media
penyimpanan datanya (database server), PHP biasa menggunakan MySQL.
Setelah meng-install ketiga komponen, program PHP dapat dibuat dan dijalankan
melalui web browser.
2.8
Bootstrap
Bootstrap adalah sebuah framework CSS yang dapat digunakan untuk
mempermudah dan mempercepat pembuatan halaman website. Hal ini karena
Bootstrap sudah menyediakan CSS dan Javascript yang siap pakai dan mudah
dikembangkan. Bootstrap merupakan framework yang dikhususkan untuk frontend website. Bootstrap pertama kali dikembangkan pertengahan 2010 pada
Twitter oleh Mark Otto dan Jacob Thornton.
Bootstrap menyediakan kumpulan komponen class interface dasar yang
dapat menciptakan tampilan website yang menarik, bersih dan ringan. Bootstrap
juga memiliki fitur grid yang berfungsi untuk mengatur layout pada halaman
website yang dapat digunakan dengan mudah dan cepat. Developer dapat
mengembangkan Bootstrap yang digunakan dengan menambah class dan CSS.
Keuntungan Bootstrap dapat menghemat waktu pembuatan website
karena sudah disiapkan template yang dibuat menggunakan HTML, CSS, dan
Jacvascript. Tampilan Bootstrap sangat responsive dan mendukung semua jenis
resolusi baik dari komputer, laptop, dan smartphone. Bootstrap sangat ringan
karena dibuat sangat terstruktur dan terlihat modern.
2.9
J-Query
J-Query merupakan library JavaScript multiplatform yang dirancang
untuk memudahkan penyusunan client-side script pada file HTML. Sintaks jQuery dirancang untuk memudahkan pengembang website dalam menavigasi
dokumen, menyeleksi elemen-elemen DOM (Document Object Model),
12
menerapkan animasi, mengaplikasikan events, serta membangun aplikasi AJAX
(Asynchronous JavaScript and XML).
J-Query membantu menciptakan berbagai plugin berbasis library
JavaScript. Plugin-plugin dapat menyusun sejumlah abstraksi untuk interaksi dan
animasi sederhana, dan beberapa efek yang cukup kompleks dan berbagai widget
yang dapat dikonfigurasikan. Fitur-fitur j-Query meliputi sebagai berikut.
1.
Syntax ekspresif (CSS selectors) untuk menunjuk elemen pada dokumen.
2.
Query yang efektif dan efisien dalam menemukan elemen pada dokumen.
3.
Kumpulan method yang berguna untuk memanipulasi elemen yang
terpilih.
4.
Succinct idiom (method berantai) untuk membuat sequence dari operasi
yang dibuat.
2.10
Laravel
Laravel adalah framework yang digunakan untuk web development di
PHP. Laravel dibangun dengan konsep MVC (Model View Controller). Laravel
mengembangkan website berbasis MVC dan ditulis dalam PHP. Laravel
dirancang untuk meningkatkan kualitas perangkat lunak dengan mengurangi biaya
pengembangan awal dan biaya maintenance, serta mempermudah pengerjaan,
karena menyediakan sintaks yang ekspresif dan mengefisiensikan waktu
pembuatan.
MVC merupakan metode dalam pembuatan aplikasi dengan memisahkan
data (Model) dari tampilan (View) dan memprosesnya (Controller). MVC
memisahkan pengembangan aplikasi berdasarkan komponen utama yang
membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan
bagian yang menjadi kontrol sebuah aplikasi web. MVC terdiri dari, sebagai
berikut.
1.
Model mewakili struktur data. Model berisi fungsi-fungsi yang
membantu dalam pengelolaan database seperti memasukkan data ke
database, pembaruan data dan lain-lain.
2.
View adalah bagian yang mengatur tampilan ke pengguna. View berupa
halaman web.
13
3.
Controller merupakan bagian yang menjembatani model dan view.
Laravel memiliki beberapa fitur yang digunakan untuk membangun
sebuah website. Fitur- fitur yang ada pada laravel, yaitu sebagai berikut.
1.
Bundles, fitur sistem pengemasan modular dan tersedia di beragam
aplikasi.
2.
Eloquent ORM, menerapkan PHP lanjutan menyediakan metode internal
dari pola active record yang mengatasi masalah pada hubungan objek
database.
3.
Application Logic, aplikasi yang menggunakan controller atau bagian
route.
4.
Reverse Routing, relasi atau hubungan antara link dan route.
5.
Restful controllers, memisahkan logika dalam melayani HTTP GET and
POST.
6.
Class Auto Loading, menyediakan loading otomatis untuk class PHP.
7.
View Composer, kode unit logikal yang dapat dieksekusi ketika view
sedang loading.
8.
IoC Container, objek baru dihasilkan dengan pembalikan controller.
9.
Migration, menyediakan sistem kontrol untuk skema database.
10.
Unit Testing, banyak tes untuk mendeteksi dan mencegah regresi.
11.
Automatic Pagination, menyederhanakan tugas dari penerapan halaman.
2.11
GitHub
GitHub merupakan layanan web bersama yang digunakan untuk proyek
pengembangan perangkat lunak yang menggunakan sistem pengontrol versi Git
dan layanan hosting internet. GithHub banyak digunakan untuk kode komputer.
Ini memberikan kontrol akses dan beberapa fitur kolaborasi seperti pelacakan bug,
permintaan fitur, manajemen tugas, dan wiki untuk setiap proyek.
Github menyediakan fungsi jejaring sosial seperti feed, Followers, dan
wiki. Github dilengkapi dengan forks, yaitu fitur untuk menduplikasi suatu proyek
dan menjadi kanal bagi pengembang lain di luar team utama proyek tersebut
untuk mengirimkan kode yang hendak dikontribusikan.
14
GitHub menawarkan paket repositori pribadi dan gratis pada akun yang
sama dan digunakan untuk proyek perangkat lunak sumber terbuka yang
menjadikannya sebagai layanan terbesar dari kode sumber di dunia. GitHub
mempunyai sebuah maskot yang bernama Octocat, seekor kucing dengan 5
tentakel dan wajah seperti manusia.
Git sebagai Distributed Version Control System (DVCS), menjadikan Git
sebagai sebuah sistem yang mencatat setiap perubahan terhadap berkas atau
kumpulan berkas sehingga pada suatu saat dapat dikembalikan pada salah satu
versi dari berkas tersebut. Git mampu menangani sejumlah remote repository
dengan baik, jadi dapat kolaborasi dengan berbagai kelompok kolaborator dalam
berbagai cara, secara bersama-sama pada suatu proyek. Git dapat melakukan
version control secara terdistribusi dan dapat menangani sejumlah remote
repository, maka perlu adanya Git Server untuk menyediakan layanan tersebut.
GitHub dapat dijalankan dengan menggunakan command prompt. Dalam
membuat dan mengembangkan project menggunakan GitHub terdapat beberapa
perintah yang harus digunakan, yaitu sebagai berikut.
1.
Pembuatan Repository
Pembuatan repository Online dilakukan setelah akun GitHub sudah ada
sehingga dapat mengakses GitHub. Pembuatan repository Online, dilakukan
dengan mengarahkan kursor pada tombol “+” lalu klik tombol dan pilih “new
repository”. Tampilan GitHub dapat dilihat pada Gambar 2.1
Gambar 2. 1 New Repository GitHub
Gambar 2.1 Menampilkan cara membuat repository baru. Pembuatan
repository baru perlu memilih “New Repository” dengan mengarahkan kursor
pada tombol “+”. Setelah memilih “new repository”, pengguna perlu memasukan
beberapa informasi meliputi nama repository, deskripsi repository, kondisi
repository berupa public atau private, dan initialize the repository with README.
Tampilan dari GitHub dapat dilihat pada Gambar 2.2
15
Gambar 2. 2 Repository GitHub
Gambar 2.2 merupakan tampilan GitHub saat membuat repository.
Dalam memasukan informasi repository perlu diperhatikan kondisi dari repository
Online yakni bersifat public (di buat untuk umum) atau private (untuk digunakan
pribadi dan tertutup). Selain itu perlu diperhatikan “Initiallize the repository with
README” yakni isi dokumentasi pada project yang dikerjakan.
2.
Git Clone
Perintah Git Clone digunakan untuk mengunduh kode yang ada pada
repository. Pengguna GitHub dapat mengunduh semua repository yang bersifat
public. Kode pada repository tersimpan pada folder htdocs. Tampilan dari
perintah git clone dapat dilihat pada Gambar 2.3.
Gambar 2. 3 Git Clone
16
Gambar 2.3 merupakan kode program yang perlu dimasukan pada
command prompt. Perintah git clone digunakan untuk mengunduh kode dalam
repository GitHub. Kode program ini berisi perintah yakni “git clone” dan link
repository yaitu “https://github.com/satriaumbaraditha/tiproo.git”.
3.
Git Status
Perintah git status digunakan untuk mengecek status dari repository
project. dengan memasukan perintah ini, akan diketahui file atau folder yang
belum dimasukan kedalam repository GitHub. Tampilan dari perintah git
status
dapat dilihat pada Gambar 2.4.
Gambar 2. 4 Git Status
Gambar 2.4 merupakan penggunaan dari perintah git status. Apabila
kontributor melakukan perubahan pada repository maka akan ditampilkan file atau
folder yang belum masuk dalam repository GitHub. File atau folder ini berwarna
merah. Setelah file atau folder sudah dimasukan kedalam repository maka
warnanya berubah menjadi hijau.
4.
Git Add
Perintah git add digunakan untuk menambah file atau folder project
yang diunggah pada repository GitHub. Dengan menggunakan perintah git add
“.”
maka mewakili isi keseluruhan file yang ada pada folder project. Sedangkan
untuk memasukan beberapa file kedalam repository dapat menggunakan perintah
git add
dan diikuti dengan nama file yang ingin dimasukan dalam repository.
Tampilan dari perintah git add dapat dilihat pada Gambar 2.5.
17
Gambar 2. 5 Git Add
Gambar 2.5 menampilkan penggunaan perintah git
add
dalam
memasukan file project kedalam repository GitHub. Untuk memasukan file
project perintah git add perlu diikuti dengan nama file yang ingin dimasukan
kedalam repository.
5.
Git Commit
Perintah git
commit
digunakan untuk menambahkan keterangan
ataupun status perubahan saat menngunggah file project pada repository GitHub.
Keterangan dapat berupa pemberitahuan file yang telah diunggah sehingga dapat
meminimalisir kesalahan dalam project. Tampilan dari perintah git commit
dapat dilihat pada Gambar 2.6.
Gambar 2. 6 Git Commit
Gambar 2.6 menampilkan penggunaan perintah git commit dalam
memberitahukan status perubahan dari project di repository GitHub. Dalam
menambahkan keterangan perintah git commit –m perlu diikuti dengan isi
komentar yakni “menambahkan css home”.
6.
Git Push
Perintah git push digunakan untuk mengunggah file yang ada pada
repository lokal ke repository Online yang diletakan pada branch yang sudah
tersedia di repository Online. Perintah git push dilakukan setelah melakukan
commit pada tempat penyimpanan projeknya. Tampilan dari perintah git push
dapat dilihat pada Gambar 2.7.
18
Gambar 2. 7 Git Push
Gambar 2.7 menampilkan penggunaan perintah git
push
dalam
menggungah file projek yang ada pada repository lokal ke repository Online.
Setelah memasukan perintah ini, maka perlu memberikan username dan password
GitHub dan file segera terunggah.
7.
Git Pull
Perintah git pull digunakan untuk mengambil file porject dari
repository Online ke repository lokal. Perintah ini sering digunakan dalam
pembuatan dan pengembangan aplikasi secara tim. Tampilan dari perintah git
pull
dapat dilihat pada Gambar 2.8.
Gambar 2. 8 Git Pull
Gambar 2.8 merupakan gambar untuk menampilkan penggunaan perintah
git pull
dalam mengunduh file project dari repository Online ke repository
lokal. Apabila perintah ini telah dijalankan maka muncul pemberitahuan yakni
“Already up to date”. Sehingga pengguna dapat mengakses project.
BAB III
METODE DAN PERANCANGAN SISTEM
Bab III merupakan metode dan perancangan sistem dari laporan
Praktikum Pemrograman Internet. Laporan Bab III membahas tentang tempat dan
waktu penelitian, sumber data, bisnis proses dan perancangan website Sistem
Informasi Penjualan Laptop.
3.1
Tempat dan Waktu Penelitian
Tempat pembuatan laporan Praktikum Pemrograman Internet ini
bertempat di kampus Program Studi Teknologi Informasi Fakultas Teknik
Universitas Udayana dan Kampus Sudirman yang bertempat di Bukit, Jimbaran
dan Denpasar dengan rentangan waktu pembuatan selama tiga bulan dari MaretMei 2018.
3.2
Gambaran Umum Sistem
Gambaran umum sistem merupakan penjelasan mengenai bisnis proses
yang menjadikan mekanisme dan alur kerja dari bisnis penjualan laptop secara
Online ini berjalan, yaitu seperti berikut.
1.3.1
Mekanisme Penjualan Laptop
Mekanisme website dalam menjual dan memasarkan produk berupa
laptop, yaitu dengan beberapa tahapan sebagai berikut.
1.
Website menyediakan beberapa produk berupa laptop yang tersedia yang
dapat dilihat oleh semua pengunjung website. Menu home menyediakan
berbagai produk mulai dari produk termurah hingga termahal yang di
pasarkan.
2.
Website memiliki kebijakan dimana untuk melihat lebih rinci mengenai
detail produk meliputi spesifikasi produk serta harga yang ditawarkan
ataupun melihat koleksi produk yang lebih luas, pengunjung perlu
melakukan Register bagi yang belum memiliki akun atau melakukan
Login untuk yang sudah memiliki akun.
19
20
3.
Website menyediakan fitur search untuk mempermudah pengunjung
dalam mencari produk sesuai dengan kebutuhan dan keinginan. Dengan
memasukkan nama produk, website akan menampilkan produk-produk
sesuai input-an pengunjung.
4.
Untuk dapat melihat spesifikasi produk, pengunjung dapat mengklik
gambar produk. Website tersebut menampilkan spesifikasi dari produk
dengan jelas dan rinci.
5.
Agar dapat membeli produk, pengunjung perlu memasukan jumlah
produk yang ingin dibeli mengklik tombol “Tambah ke Cart”. Setelah
itu, muncul pemberitahuan bahwa produk telah ditambahkan ke
keranjang dan kemudian disediakan dua buah pilihan untuk melanjutkan
pembelian produk lain atau melanjutkan pada menu pembayaran.
6.
Menu pembayaran dalam website menampilkan detail pembelian serta
total yang harus dibayarkan. Halaman ini juga menampilkan beberapa
syarat yang harus dimasukan oleh pengunjung meliputi nama dan alamat
yang ingin dituju. Apabila pengunjung memiliki alamat baru yang ingin
dituju, pembeli perlu mengisi informasi mengenai alamat meliputi nama,
alamat, provinsi, kabupaten/kota, serta nomer telepon penerima. Setelah
itu pembeli memilih pihak ketiga (bank) sebagai media untuk
mengirimkan dana sejumlah total belanja.
7.
Setelah melakukan pembayaran, maka admin dapat mengecek halaman
order yang berisi bukti transfer dari pengunjung. Admin perlu melihat
kecocokan informasi tersebut. Apabila sudah sesuai, admin dapat
memvalidasi atau memverifikasi sehingga barang dapat langsung
dikirim.
8.
Pengunjung melakukan transfer dana ke rekening yang sudah diberikan
sesuai dengan kesepakatan pada menu pembayaran. Setelah melakukan
transfer pengunjung menunggu barang diantarkan oleh pihak ketiga
(ekspedisi pengiriman barang).
21
1.3.2
Cara Kerja Admin
Cara kerja untuk admin dalam melakukan penjualan laptop ini, yaitu
dengan tahapan-tahapan sebagai berikut.
1.
Admin perlu melakukan login agar admin dapat mengakses akun dan
melihat halaman dashboard khusus admin. Dalam halaman dashboard
terdapat grafik penjualan dari produk yang dipasarkan.
2.
Admin dapat menambah produk yang dipasarkan. Admin perlu menginput nama, jenis (merk), dan stok, serta spesifikasi dari laptop yang
dipasarkan. Data mengenai produk otomatis tersimpan di dalam
database.
3.
Apabila ada pesanan dari pembeli, admin dapat menmerikksa pada
halaman order. Admin dapat melihat informasi pembelian yang meliputi
nama, jenis, jumlah produk yang dibeli.
4.
Setelah pembeli melakukan pembayaran, maka admin dapat kembali
mengecek halaman order yang berisi bukti transfer dari pembeli. Admin
perlu melihat kecocokan informasi tersebut. Apabila sudah sesuai, admin
dapat memvalidasi atau memverifikasi sehingga barang dapat langsung
dikirim.
1.3.3
Cara Kerja Pembeli
Cara kerja untuk pembeli dalam melakukan pembelian laptop ini, yaitu
dengan tahapan-tahapan sebagai berikut.
1.
Pembeli dapat melihat produk-produk berupa laptop yang tersedia dalam
website ini. Menu home terdapat berbagai produk mulai dari produk
termurah hingga termahal yang di pasarkan.
2.
Untuk melihat lebih rinci mengenai detail produk meliputi spesifikasi
produk serta harga yang ditawarkan ataupun melihat koleksi produk yang
lebih luas, pembeli perlu melakukan Register bagi pembeli yang belum
memiliki akun atau melakukan Login bagi yang sudah memiliki akun.
3.
Website menyediakan fitur search untuk mempermudah pembeli dalam
mencari produk sesuai dengan kebutuhan dan keinginan, dengan meng-
22
inputkan nama produk, website menampilkan produk-produk sesuai
input-an pembeli.
4.
Pembeli dapat mengklik gambar produk untuk melihat spesifikasi
produk. Setelah itu website menampilkan spesifikasi dari produk dengan
jelas dan rinci.
5.
Pembeli yang berminat untuk membeli produk, perlu memasukan jumlah
produk yang ingin dibeli mengklik tombol “Tambah ke Cart”. Setelah itu
muncul pemberitahuan bahwa produk telah ditambahkan ke keranjang
dan kemudian disediakan dua buah pilihan untuk melanjutkan pembelian
produk lain atau melanjutkan pada menu pembayaran.
6.
Menu pembayaran dalam website menampilkan detail pembelian serta
total yang harus dibayarkan. Halaman ini juga menampilkan beberapa
syarat yang harus dimasukan oleh pembeli meliputi Nama dan alamat
yang ingin dituju. Apabila pembeli memiliki alamat baru yang ingin
dituju, pembeli perlu mengisi informasi mengenai alamat meliputi nama,
alamat, provinsi, kabupaten/kota, serta nomor telepon penerima. Setelah
itu pembeli memilih pihak ketiga (bank) sebagai media untuk
mengirimkan dana sejumlah total belanja.
7.
Pembeli melakukan transfer dana ke rekening yang sudah diberikan
sesuai dengan kesepakatan pada menu pembayaran. Setelah melakukan
transfer pembeli menunggu barang diantarkan oleh pihak ketiga
(ekspedisi pengiriman barang).
1.3.4
Perancangan Use Case Diagram
Perancangan Use Case Diagram ini merupakan gambaran umum yang
menjelaskan tentang interaksi yang terjadi antara aktor (inisiator) sistem sendiri
dengan sistem yang ada. Use Case Diagram digambarkan dengan urutan langkahlangkah yang sederhana. Berikut merupakan Use Case Diagram dari Sistem
Informasi Penjualan Laptop pada website Toko Online Tipro seperti Gambar 3.1.
23
Gambar 3. 1 Use Case Diagram Penjualan Laptop
Gambar 3.1 merupakan Use Case Diagram dari Sistem Informasi
Penjualan Laptop. Terdapat 2 aktor yaitu antara admin dan pembeli yang memiliki
batasan tersendiri. Aktor admin pada Use Case Diagram penjualan laptop dapat
melakukan login, mengubah password, melihat dashboard, menambahkan barang,
mengelola barang, melakukan verifikasi dan melakukan pembayaran. Sedangkan
aktor pembeli dapat melakukan registrasi, melakukan login, melihat barang,
memilih barang, memesan barang, memasukkan barang ke keranjang, mengisikan
alamat baru, melakukan pembayaran, serta menerima verifikasi.
1.3.5
Perancangan Mockup
Perancangan mockup adalah rancangan gambaran sederhana atau desain
dari tampilan website yang dibuat. Mockup dibuat sebagai acuan untuk
memudahkan dalam pengaplikasiannya. Terdapat 7 tampilan mockup yang dibuat,
yaitu sebagai berikut.
1.3.5.1 Mockup Halaman Login
Mockup halaman login merupakan rancangan tampilan atau desain dari
halaman login, baik login sebagai admin maupun sebagai pembeli (member).
Berikut merupakan mockup halaman login dari aplikasi website Toko Online
Tipro Gambar 3.2.
24
Gambar 3. 2 Mockup Halaman Login
Gambar 3.2 merupakan tampilan mockup halaman login dari aplikasi
berbasis website Toko Online Tipro. Tampilan ini merupakan form untuk masuk
sebagai admin maupun sebagai member. Terdapat form login yang berisi field
email address,
field password, checkbox “Remember Me” serta button login.
Checkbox “Remember Me” berfungsi untuk menyimpan data login pembeli
dengan mencentang kolom sebelum menekan button login. Pembeli dapat
mengklik kalimat “Forgot Your Password?”, apabila member melupakan
password-nya dan diarahkan untuk membuat password yang baru.
1.3.5.2 Mockup Halaman Register
Mockup halaman register merupakan rancangan tampilan atau desain
dari halaman register untuk calon pembeli mendaftarkan dirinya sebelum
bergabung menjadi member dalam aplikasi website Toko Online Tipro. Berikut
merupakan mockup halaman register dari website Toko Online Tipro Gambar 3.5.
25
Gambar 3. 3 Mockup Halaman Register
Gambar 3.3 merupakan tampilan mockup halaman register dari aplikasi
berbasis website Toko Online Tipro. Tampilan ini merupakan form untuk
mendaftarkan diri sebagai member. Terdapat form register yang berisi field name,
field email address, field password, field confirm password yang semuanya
harus diisikan serta button register.
1.3.5.3 Mockup Halaman Pembeli
Mockup halaman pembeli merupakan rancangan tampilan atau desain
dari halaman pembeli yanag menampilkan beberapa list barang yang dijual oleh
aplikasi website Toko Online Tipro. Berikut merupakan mockup halaman pembeli
dari aplikasi website Toko Online Tipro Gambar 3.4.
26
Gambar 3. 4 Mockup Halaman Pembeli
Gambar 3.4 merupakan mockup halaman pembeli pada website Toko
Online Tipro. Halaman ini menyediakan fitur cart yang digunakan untuk melihat
detail pembelian member, fitur search yang dapat digunakan untuk mencari
produk dengan memasukan nama produk pada kolom pencaria, fitur logout jika
member ingin keluar dari website Toko Online Tipro serta menyediakan beberapa
produk yang sudah dilengkapi dengan nama, model, kategori, gambar dan button
untuk menambahkan produk ke dalam cart.
27
1.3.5.4 Mockup Halaman Detail Barang
Mockup halaman detail barang merupakan rancangan tampilan atau
desain dari halaman deskripsi mengenai barang yang dipilih. Berikut merupakan
mockup halaman detail barang dari aplikasi website Toko Online Tipro Gambar
3.5.
Gambar 3. 5 Mockup Halaman Detail Barang
Gambar 3.5 merupakan mockup halaman detail barang pada website Toko
Online Tipro. Halaman ini mendeskripsikan secara detail barang yang dipilih
sebelumnya pada halaman pembeli. Terdapat gambar, nama, model, harga serta
deskripsi yang berisikan spesifikasi mengenai barang tersebut. Halaman ini juga
menyediakan fitur cart yang digunakan untuk melihat detail pembelian member
serta fitur logout jika member ingin keluar dari website Toko Online Tipro
1.3.5.5 Mockup Halaman Keranjang
Mockup halaman keranjang merupakan rancangan tampilan atau desain
dari halaman keranjang (cart), ketika member sudah memilih barang yang
dibelinya. Berikut merupakan mockup halaman keranjang dari aplikasi website
Toko Online Tipro Gambar 3.6.
28
Gambar 3. 6 Mockup Halaman Keranjang
Gambar 3.6 merupakan mockup halaman keranjang pada website Toko
Online Tipro. Halaman ini menampilkan barang yang sudah dipilih untuk
disimpan sementara di dalam keranjang (cart). Terdapat gambar, nama, harga,
jumlah beserta total pemesanan. Terdapat pula button edit dan hapus, jika
member ingin mengubah atau menghapus barang yang sudah dipilih sebelumnya.
Selanjutnya, member yang sudah selesai memilih barang diarahkan ke proses
pengisian alamat dan berlanjut ke proses pembayaran, namun jika member masih
ingin memilih barang diarahkan kembali ke halaman pembeli. Halaman ini juga
menyediakan fitur cart yang digunakan untuk melihat detail pembelian member
serta fitur logout jika member ingin keluar dari website Toko Online Tipro
1.3.5.6 Mockup Halaman Pengisian Alamat
Mockup halaman pengisian alamat merupakan rancangan tampilan atau
desain dari halaman pengisian alamat member, agar mengetahui alamat yang
dituju untuk proses pengiriman barang. Berikut merupakan mockup halaman
pengisian alamat dari aplikasi website Toko Online Tipro Gambar 3.7.
29
Gambar 3. 7 Mockup Halaman Pengisian Alamat
Gambar 3.7 merupakan mockup halaman pengisian alamat pada website
Toko Online Tipro. Halaman ini berisi informasi mengenai nama produk, subtotal
dan total pembelajaan produk pada tabel cart. Halaman ini juga berisi beberapa
data yang harus di-inputkan oleh pembeli yakni nama, alamat, provinsi,
kabupaten/kota
dan telepon yang berupa field serta button nama untuk
mengarahkan pembeli pada halaman selanjutnya yakni halaman pembayaran.
Halaman ini juga menyediakan fitur cart yang digunakan untuk melihat detail
pembelian member serta fitur logout jika member ingin keluar dari website Toko
Online Tipro.
1.3.5.7 Mockup Halaman Pembayaran
Mockup halaman pembayaran merupakan rancangan tampilan atau desain
dari halaman pembayaran yang diterima oleh pembeli setelah melengkapi data
30
yang diperlukan untuk proses pengiriman. Berikut merupakan mockup halaman
pembayaran dari aplikasi website Toko Online Tipro Gambar 3.8.
Gambar 3. 8 Mockup Halaman Pembayaran
Gambar 3.8 merupakan mockup halaman pembayaran pada website Toko
Online Tipro. Halaman pembayaran berisikan beberapa syarat yang harus
dimasukan berupa media perantara (bank) yang digunakan untuk mengirimkan
uang serta nama pengirim yang mengirimkan uang tersebut. Terdapat juga
informasi mengenai nama barang, subtotal dan total pembelanjaan barang pada
tabel cart yang harus dibayarkan nantinya. Halaman ini juga menyediakan fitur
cart yang digunakan untuk melihat detail pembelian member serta fitur logout
jika member ingin keluar dari website Toko Online Tipro
1.3.5.8 Mockup Halaman Notifikasi
Mockup halaman notifikasi merupakan rancangan tampilan atau desain
dari halaman notifikasi yang diterima oleh member untuk informasi dan tata cara
oengiri Berikut merupakan mockup halaman notifikasi dari aplikasi website Toko
Online Tipro Gambar 3.9.
31
Gambar 3. 9 Mockup Halaman Notifikasi
Gambar 3.9 merupakan mockup halaman notifikasi yang diterima oleh
member setelah member melakukan serangkaian proses peng-inputan data pada
halaman pembayaran. Terdapat informasi bahwa proses pengisian data telah
berhasil, kemudian dilanjutkan dengan pemberian informasi berupa rekening
tujuan, nomor pesanan dan total pembayaran yang harus di transfer. Halaman ini
memiliki button yakni “Lanjutkan Belanja” untuk mengarahkan pembeli pada
menu home agar pembelian dapat dilakukan lagi apabila diperlukan. Halaman ini
juga menyediakan fitur cart yang digunakan untuk melihat detail pembelian
member serta fitur logout jika member ingin keluar dari website Toko Online
Tipro.
1.3.5.9 Mockup Halaman Dashboard Admin
Mockup halaman dashboard admin merupakan rancangan tampilan atau
desain dari halaman dashboard admin yaitu berupa data-data yang berhubungan
mengenai penjualan barang di website Toko Online Tipro. Berikut merupakan
mockup halaman keranjang pada website Toko Online Tipro Gambar 3.10.
32
Gambar 3. 10 Mockup Halaman Dashboard Admin
Gambar 3.10 merupakan mockup halaman dashboard admin pada
website Toko Online Tipro. Halaman ini berisi data yang ditampilkan dalam
bentuk diagram mengenai data yang diperoleh dari hasil penjualan laptop berbasis
website ini.
1.3.5.10 Mockup Halaman Admin
Mockup halaman admin merupakan rancangan tampilan atau desain dari
halaman admin yang berisikan list barang yang dijual. Berikut merupakan mockup
halaman admin pada website Toko Online Tipro Gambar 3.11.
33
Gambar 3. 11 Mockup Halaman Admin
Gambar 3.11 merupakan mockup halaman admin dari website Toko
Online Tipro. Sebenarnya halaman ini tidak jauh berbeda isinya dengan halaman
pembeli, namun yang membedakan ketika admin mengklik gambar yang
ditampilkan halaman yang dituju selanjutnya adalah halaman kategori dari barang,
yang mana barang tersebut dapat dikelola oleh admin baik di edit ataupun di
hapus. Halaman ini juga menyediakan fitur manage yang digunakan untuk pilihan
(option) mengenai halaman yang dituju seperti halaman category, halaman
dashboard, halaman orders dan halaman product, fitur profil jika admin ingin
melihat atau mengubah tampilan profilnya, serta fitur logout jika member ingin
keluar dari website Toko Online Tipro.
34
1.3.5.11 Mockup Halaman Kategori
Mockup halaman kategori merupakan rancangan tampilan atau desain
dari halaman kategori barang-barang yang dijual. Berikut merupakan mockup
halaman kategori dari aplikasi website Toko Online Tipro Gambar 3.12.
Gambar 3. 12 Mockup Halaman Kategori
Gambar 3.12 merupakan mockup halaman kategori pada website Toko
Online Tipro. Halaman ini menyediakan button search untuk memudahkan
admin dalam proses pencarian nama kategori barang, disedikan button edit dan
hapus
serta button new
category
untuk mengubah, menghapus dan
menambahkan kategori baru. Halaman ini juga menyediakan fitur manage yang
digunakan untuk pilihan (option) mengenai halaman yang dituju seperti halaman
category, halaman dashboard, halaman orders dan halaman product, fitur profil
jika admin ingin melihat atau mengubah tampilan profilnya, serta fitur logout jika
member ingin keluar dari website Toko Online Tipro.
1.3.5.12 Mockup Halaman Edit Kategori
Mockup halaman edit kategori merupakan rancangan tampilan atau
desain dari halaman edit kategori barang yang dipilih pada halaman kategori.
Berikut merupakan mockup halaman edit kategori dari aplikasi website Toko
Online Tipro Gambar 3.13.
35
Gambar 3. 13 Mockup Halaman Edit Kategori
Gambar 3.13 merupakan mockup halaman edit kategori pada website
Toko Online Tipro. Halaman ini berupa form yang dapat diisikan dengan title
dan parent barang, jika ada perubahan kategori serta button update untuk
menyimpan perubahan data. Halaman ini sama seperti halaman membuat kategori
baru namun button yang digunakan adalah button save. Halaman ini juga
menyediakan fitur manage yang digunakan untuk pilihan (option) mengenai
halaman yang dituju seperti halaman category, halaman dashboard, halaman
orders dan halaman product, fitur profil jika admin ingin melihat atau mengubah
tampilan profilnya, serta fitur logout jika member ingin keluar dari website Toko
Online Tipro.
1.3.5.13 Mockup Halaman Order Pesanan
Mockup halaman order pesanan merupakan rancangan tampilan atau
desain dari halaman order pesanan berupa data-data dari para member yang telah
memesan barang di aplikasi website Toko Online Tipro. Berikut merupakan
mockup halaman order pesanan dari aplikasi website Toko Online Tipro Gambar
3.14.
36
Gambar 3. 14 Mockup Halaman Order Pesanan
Gambar 3.14 merupakan mockup halaman order pesanan pada website
Toko Online Tipro. Terdapat button search serta diberikan pilihan (option) untuk
memudahkan admin dalam proses pencarian id dan mengenai status yang sudah
dilakukan oleh para member mengenai orderan yang dipesan. Halaman ini juga
menyediakan fitur manage yang digunakan untuk pilihan (option) mengenai
halaman yang dituju seperti halaman category, halaman dashboard, halaman
orders dan halaman product, fitur profil jika admin ingin melihat atau mengubah
tampilan profilnya, serta fitur logout jika member ingin keluar dari website Toko
Online Tipro.
1.3.5.14 Mockup Halaman Produk
Mockup halaman produk merupakan rancangan tampilan atau desain dari
halaman produk barang yang dijual. Berikut merupakan mockup halaman
pengisian alamat dari aplikasi website Toko Online Tipro Gambar 3.15.
37
Gambar 3. 15 Mockup Halaman Produk
Gambar 3.15 merupakan mockup halaman produk pada website Toko
Online Tipro. Halaman ini berisikan nama, model, kategori dan deskripsi dari
produk yang dijual pada website Toko Online Tipro. Halaman ini menyediakan
fitur checkbox mark jika admin ingin memilih produk yang akan dikelolanya, ada
button search untuk memudahkan admin dalam proses pencarian nama produk
barang, disedikan button edit dan hapus serta button new product untuk
mengubah, menghapus dan menambahkan produk baru. Halaman ini juga
menyediakan fitur manage yang digunakan untuk pilihan (option) mengenai
halaman yang dituju seperti halaman category, halaman dashboard, halaman
orders dan halaman product, fitur profil jika admin ingin melihat atau mengubah
tampilan profilnya, serta fitur logout jika member ingin keluar dari website Toko
Online Tipro.
1.3.5.15 Mockup Halaman Tambah Produk
Mockup halaman tambah produk merupakan rancangan tampilan atau
desain dari halaman tambah produk untuk menambahkan jumlah barang yang
ingin dijual pada aplikasi website Toko Online Tipro. Berikut merupakan mockup
halaman tambah produk dari aplikasi website Toko Online Tipro Gambar 3.16.
38
Gambar 3. 16 Mockup Halaman Tambah Produk
Gambar 3.16 merupakan mockup halaman tambah produk pada website
Toko Online Tipro. Admin dapat menambahkan barang terbaru yang ingin dijual
dan mungkin belum ada pada aplikasi website Toko Online Tipro. Halaman ini
berisikan form berupa nama, model, harga, kategori, berat serta deskripsi dari
barang tersebut. Lalu ada kolom pilih file dimana gambar yang diambil berasal
dari gambar yang disimpan dalam file komputer admin. Setelah mengisikan data,
admin dapat menekan button save untuk menyimpan datanya. Halaman ini juga
menyediakan fitur manage yang digunakan untuk pilihan (option) mengenai
halaman yang dituju seperti halaman category, halaman dashboard, halaman
orders dan halaman product, fitur profil jika admin ingin melihat atau mengubah
tampilan profilnya, serta fitur logout jika member ingin keluar dari website Toko
Online Tipro.
39
1.3.5.16 Mockup Halaman Edit Produk
Mockup halaman edit produk merupakan rancangan tampilan atau desain
dari halaman edit produk untuk mengubah beberapa data barang yang dijual.
Berikut merupakan mockup halaman edit produk dari aplikasi website Toko
Online Tipro Gambar 3.17.
Gambar 3. 17 Mockup Halaman Edit Produk
40
Gambar 3.17 merupakan mockup halaman edit produk pada website Toko
Online Tipro. Sebenarnya halaman ini tidak jauh berbeda isinya dengan halaman
tambah produk, namun yang membedakan hanya gambar yang tersedia pada
halaman ini dimunculkan sedangkan pada halaman tambah produk tidak dan
button yang digunakan adalah button update. Halaman ini juga menyediakan fitur
manage yang digunakan untuk pilihan (option) mengenai halaman yang dituju
seperti halaman category, halaman dashboard, halaman orders dan halaman
product, fitur profil jika admin ingin melihat atau mengubah tampilan profilnya,
serta fitur logout jika member ingin keluar dari website Toko Online Tipro.
1.3.5.17 Mockup Halaman Verifikasi
Mockup halaman verifikasi merupakan rancangan tampilan atau desain
dari halaman verifikasi untuk persetujuan jika member sudah membayar dengan
mengirimkan uang. Berikut merupakan mockup halaman verifikasi dari aplikasi
website Toko Online Tipro Gambar 3.18.
Gambar 3. 18 Mockup Halaman Verifikasi
Gambar 3.18 merupakan mockup halaman verifikasi pada website Toko
Online Tipro. Halaman ini berisi informasi data order pesanan member yang
41
disetujui oleh admin, jika member sudah mengirimkan uangnya, maka status
pembayarannya diubah oleh admin tergantung pilihan seperti menunggu
pembayaran, order disiapkan, paket dikirim dan paket diterima. Halaman ini juga
menyediakan fitur manage yang digunakan untuk pilihan (option) mengenai
halaman yang dituju seperti halaman category, halaman dashboard, halaman
orders dan halaman product, fitur profil jika admin ingin melihat atau mengubah
tampilan profilnya, serta fitur logout jika member ingin keluar dari website Toko
Online Tipro.
3.3
Perancangan Database
Perancangan pada Sistem Informasi Penjualan Laptop ini menggunakan
database sebagai tempat penyimpanan data. Perancangan database ini berbasis
web. Perancangan database menghasilkan skema konseptual tergantung pada
sebuah DBMS yang spesifik. Skema konseptual, harus merinci aplikasi-aplikasi
database yang diketahui. Perancangan database melalui tahapan Physical Data
Model (PDM) merupakan gambaran secara detail basis data dalam bentuk fisik.
Penggambaran rancangan PDM memperlihatkan struktur penyimpanan data yang
benar pada basis data yang digunakan sesungguhnya. PDM website toko Online
ini mempunyai 13 tabel. Tabel-tabel tersebut dihubungkan dengan tabel lainnya
untuk memperlihatkan struktur penyimpanan data yang benar pada basis data
website Toko Online Tipro. Berikut merupakan tabel-tabel yang membangun
struktur PDM Website Toko Online Tipro pada Gambar 3.19.
42
Gambar 3. 19 Database Website Toko Online
Gambar 3.19 merupakan 13 tabel pada Database Website Toko Online.
Tabel tersebut berisi addresses, carts, category_product, categories, fees,
migration, orders, order_details, password_resets, products, provinces,
regencies
dan users. Tabel-tabel tersebut saling berhubungan antara tabel satu
dengan tabel lainnya.
Tabel-tabel pada database tersebut memiliki kolom-kolomnya sendiri
seperti tabel addresses berisikan kolom-kolom id, user_id, name, detail,
regency_id, phone, created_at,
dan update_at. Tabel carts berisikan kolom-
kolom id, user_id, product_id, quantity, created_at, dan update_at. Tabel
category_product
created_at,
berisikan kolom-kolom id, product_id, category_id,
dan update_at. Tabel categories berisikan kolom-kolom id,
tittle, parent_id, created_at,
kolom
id,
created_at,
migration
origin,
dan update_at. Tabel fees berisikan kolom-
destination,
courier,
service,
dan update_at. Tabel migration
weight,
cost,
berisikan kolom-kolom
dan batch. Tabel orders berisikan kolom-kolom id, order_id,
product_id, address_id, status, bank, sender, total_payment, created_at,
dan update_at. Tabel password_resets berisikan kolom-kolom email, token,
dan created_at. Tabel products berisikan kolom-kolom id, name, photo,
model,
price,
provinces
created_at,
update_at, description
dan weight. Tabel
berisikan kolom-kolom id, name, created_at dan update_at. Tabel
43
users
berisikan kolom-kolom id, name, email, remember_token, email,
created_at, update_at
dan role.
BAB IV
PEMBAHASAN
Bab IV merupakan pembahasan dari laporan Praktikum Pemrograman
Internet. Laporan Bab IV membahas tentang kode program pada model, view,
controller dan screenshoot tampilan website yang dipraktikan pada mata kuliah
Praktikum Pemrograman Internet.
4.1
Source Code
Sistem informasi Toko Online Tipro memiliki memiliki source code
yang terdiri dari model, controller dan view. Berikut merupakan penjelasan dari
source code dari program website Toko Online Tipro.
4.2.1
Controller
Website Toko Online Tipro terdiri dari banyak controller. Berikut
merupakan penjelasan dari semua controllerl yang ada pada website Toko Online
Tipro.
4.2.1.1 Controller Address Controller
Controller AddressController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
AddressController
seperti pada Kode Program 4.1.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Regency;
class AddressController extends Controller
{
public function regencies(Request $request)
{
$this->validate($request, [
'province_id'=>'required|exists:provinces,id'
]);
return Regency::where('province_id', $request-
44
45
>get('province_id'))->get();
}
}
Kode Program 4. 1 Controller AddressController
Kode
Program
AddressController.
mengambil
4.1
merupakan
sintaks
Controller AddressController
permintaan
address,
memparsing
dari
ini
Controller
berguna
permintaan
untuk
address,
menginisialisasi, memanggil model dan kemudian mengambil responnya, dan
mengirimkannya ke View. Controller AddressController berguna untuk
memvalidasi status kabupaten dan provinsi pada fungsi regencies.
4.2.1.2 Controller Cart Controller
Controller CartController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
CartController
seperti pada Kode Program 4.2.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Product;
use Session;
use Auth;
use App\Support\CartService;
use Flash;
use App\Cart;
class CartController extends Controller
{
protected $cart;
public function __construct(CartService $cart)
{
$this->cart = $cart;
}
public function removeProduct(Request $request, $product_id)
{
$cart = $this->cart->find($product_id);
46
if (!$cart) return redirect('cart');
{
Flash::success($cart['detail']['name'] .' Berhasil
dihapus dari Cart.');
if (Auth::check()) {
$cart = Cart::firstOrCreate([
'product_id'=>$product_id,
'user_id'=>$request->user()->id
]);
$cart->delete();
return redirect('cart');
}else{
$cart = $request->cookie('cart', []);
unset($cart[$product_id]);
return redirect('cart')->withCookie(cookie()>forever('cart', $cart));
}
}
}
public function addProduct(Request $request)
{
$this->validate($request, [
'product_id' => 'required|exists:products,id',
'quantity' => 'required|integer|min:1'
]);
$product = Product::find($request->get('product_id'));
$quantity = $request->get('quantity');
Session::flash('flash_product_name', $product->name);
if (Auth::check()) {
$cart = Cart::firstOrCreate([
'product_id'=> $product->id,
'user_id'=>$request->user()->id
]);
$cart->quantity += $quantity;
$cart->save();
return redirect('catalogs');
} else {
$cart = $request->cookie('cart', []);
if (array_key_exists($product->id, $cart)) {
$quantity += $cart[$product->id];
}
$cart[$product->id] = $quantity;
return redirect('catalogs')->withCookie(cookie()>forever('cart', $cart));
}
}
public function show(){
return view('carts.index');
}
public function changeQuantity(Request $request,
$product_id)
47
{
$this>validate($request,['quantity'=>'required|integer|min:1']);
$quantity=$request->get('quantity');
$cart = $this->cart->find($product_id);
if (!$cart) return redirect('cart');
{
\Flash::success('Jumlah untuk ' .
$cart['detail']['name'] . ' berhasil dirubah.');
if (Auth::check()) {
$cart= Cart::firstOrCreate(['user_id'=>$request>user()->id, 'product_id'=>$product_id]);
$cart->quantity = $quantity;;
$cart->save();
}else{
$cart= $request->cookie('cart',[]);
$cart[$product_id] = $quantity;
return redirect('cart')->withCookie(cookie()>forever('cart', $cart));
}
}
}
}
Kode Program 4. 2 Controller CartController
Kode Program 4.2 merupakan sintaks dari Controller CartController.
Controller CartController ini berguna untuk mengambil permintaan cart,
memparsing permintaan cart, menginisialisasi, memanggil model dan kemudian
mengambil responnya, dan mengirimkannya ke View. Fungsi removeProduct
berguna untuk menghapus data produk yang sudah masuk ke dalam cart
(keranjang belanja). Fungsi addProduct berguna untuk menambah data belanja
pada cart. Fungsi show untuk menampilkan atau me – return ke view
cart.index.
Fungsi
changeQuantity
berguna untuk mengubah jumlah
belanjaan pada cart sebelum pembayaran.
4.2.1.3 Controller Catalogs Controller
Controller CatalogsController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
CatalogsController
seperti pada Kode Program 4.3.
<?php
namespace App\Http\Controllers;
48
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Product;
use App\Category;
class CatalogsController extends Controller
{
public function index(Request $request)
{
// return view('berandauser');
$q = $request->get('q');
if($request->has('cat')) {
$cat = $request->get('cat');
$category = Category::findOrFail($cat);
//we use to get product form curret category and
its child
$products = Product::whereIn('id', $category>related_products_id)->where('name','LIKE', '%'.$q.'%');
}else{
$products =Product::where('name',
'LIKE','%'.$q.'%');
}
if ($request->has('sort')) {
$sort = $request->get('sort');
$order = $request->has('order') ? $request>get('order') : 'asc';
$filed = in_array($sort, ['price','name']) ?
$request->get('sort') : 'price';
$proucts = $products->orderBy($filed, $order);
}
$products = $products->paginate(4);
return view('catalogs.index', compact('products', 'q',
'cat' , 'selected_category', 'sort', 'order', 'category'));
}
}
Kode Program 4. 3 Controller CatalogsController
Kode
Program
CatalogsController.
mengambil
4.3
merupakan
sintaks
dari
Controller
Controller CatalogsController ini berguna untuk
permintaan
catalog,
memparsing
permintaan
catalog,
menginisialisasi, memanggil model dan kemudian mengambil responnya, dan
mengirimkannya ke View. Fungsi index pada Controller CatalogsController
berguna untuk memilah kategori dari produk – produk yang tersedia dan lewat
kategori pun bisa langsung melakukan order dan memasukkannya ke cart.
49
4.2.1.4 Controller Categories Controller
Controller CategoriesController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
CategoriesController
seperti pada Kode Program 4.4.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Category;
class CategoriesController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:admin');
}
public function index(Request $request)
{
$q = $request->get('q');
$categories = Category::where('title','LIKE',
'%'.$q.'%')->orderBy('title')->paginate(5);
return view('categories.index', compact('categories',
'q'));
}
public function create()
{
return view('categories.create');
}
public function store(Request $request)
{
$this->validate($request, [
'title'=>'required|string|max:255|unique:categories',
'parent_id'=>'exists:categories,id'
]);
Category::create($request->all());
\Flash::success($request->get('title') . ' category
saved');
return redirect()->route('categories.index');
}
public function show($id)
{
//
}
50
public function edit($id)
{
$category = Category::findOrFail($id);
return view('categories.edit', compact('category'));
}
public function update(Request $request, $id)
{
$category = Category::findOrFail($id);
$this->validate($request,[
'title'=>'required|string|max:255|unique:categories,title,' .
$category->id,
'parent_id'=>'exists:categories,id'
]);
$category->update($request->all());
\Flash::success($request->get('title') . ' category
update.' );
return redirect()->route('categories.index');
}
public function destroy($id)
{
Category::find($id)->delete();
\Flash::success('Category Deleted');
return redirect()->route('categories.index');
}
}
Kode Program 4. 4 Controller CategoriesController
Kode
Program
CategoriesController.
mengambil
permintaan
4.4
merupakan
sintaks
dari
Controller
Controller CategoriesController berguna untuk
category,
memparsing
permintaan
category,
menginisialisasi, memanggil model dan kemudian mengambil responnya, dan
mengirimkannya ke View. Fungsi create berguna untuk membuat kategori.
Fungsi store berguna untuk memvalidasi input-an kategori baru. Fungsi update
dan edit berguna untuk menguba kategori yang ada dan harus unique. Fungsi
destroy
berguna untuk menghapus kategori.
4.2.1.5 Controller Checkout Controller
Controller CheckoutController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
CheckoutController
seperti pada Kode Program 4.5.
51
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use
use
use
use
use
use
use
use
use
use
use
use
App\Http\Requests;
App\Http\Controllers\Controller;
App\Http\Requests\CheckoutLoginRequest;
App\Http\Requests\CheckoutAddressRequest;
Auth;
Illuminate\Support\MessageBag;
App\User;
App\Address;
App\Product;
App\Support\CartService;
App\Order;
App\OrderDetail;
class CheckoutController extends Controller
{
protected $cart;
public function __construct(CartService $cart)
{
$this->cart = $cart;
$this->middleware('checkout.have-cart', [
'only' => ['login', 'postLogin',
'address', 'postAddress',
'payment', 'postPayment']
]);
$this->middleware('checkout.login-step-done', [
'only' => ['address', 'postPayment',
'payment', 'postPayment']
]);
$this->middleware('checkout.address-step-done', [
'only' => ['payment', 'postPayment']
]);
$this->middleware('checkout.payment-step-done', [
'only' => ['success']
]);
}
public function login()
{
if (Auth::check()) {
return redirect('/checkout/address');
} else {
return view('checkout.login');
}
}
public function postLogin(CheckoutLoginRequest $request)
{
52
$email = $request->get('email');
$password = $request->get('checkout_password');
$is_guest = $request->get('is_guest') > 0;
if ($is_guest) {
return $this->guestCheckout($email);
}
return $this->authenticatedCheckout($email, $password);
}
protected function guestCheckout($email)
{
if ($user = User::where('email', $email)->first()) {
if ($user->hasPassword()) {
$errors = new MessageBag();
$errors->add('checkout_password', 'Alamat email
"' . $email . '" sudah terdaftar, silahkan masukan password.');
return redirect('checkout/login')>withErrors($errors)
->withInput(compact('email') + ['is_guest'
=> 0]);
}
// show view to request new password
session()->flash('email', $email);
return view('checkout.reset-password');
}
session(['checkout.email' => $email]);
return redirect('checkout/address');
}
protected function authenticatedCheckout($email, $password)
{
if (!Auth::attempt(['email' => $email, 'password' =>
$password])) {
$errors = new MessageBag();
$errors->add('email', 'Data user yang dimasukan
salah');
return redirect('checkout/login')
->withInput(compact('email', 'password') +
['is_guest' => 0])
->withErrors($errors);
}
$deleteCartCookie = $this->cart->merge();
return redirect('checkout/address')>withCookie($deleteCartCookie);
}
public function address()
{
return view('checkout.address');
}
public function postAddress(CheckoutAddressRequest $request)
{
if (Auth::check()) return $this-
53
>authenticatedAddress($request);
return $this->guestAddress($request);
}
protected function
authenticatedAddress(CheckoutAddressRequest $request)
{
$address_id = $request->get('address_id');
session()->forget('checkout.address');
if ($address_id == 'new-address') {
$this->saveAddressSession($request);
} else {
session(['checkout.address.address_id' =>
$address_id]);
}
return redirect('checkout/payment');
}
protected function guestAddress(CheckoutAddressRequest
$request)
{
$this->saveAddressSession($request);
return redirect('checkout/payment');
}
protected function saveAddressSession(CheckoutAddressRequest
$request)
{
session([
'checkout.address.name' => $request->get('name'),
'checkout.address.detail' => $request>get('detail'),
'checkout.address.province_id' => $request>get('province_id'),
'checkout.address.regency_id' => $request>get('regency_id'),
'checkout.address.phone' => $request->get('phone')
]);
}
public function payment()
{
return view('checkout.payment');
}
public function postPayment(Request $request)
{
$this->validate($request, [
'bank_name' => 'required|in:' .
implode(',',array_keys(config('bank-accounts'))),
'sender' => 'required'
]);
session([
'checkout.payment.bank' => $request>get('bank_name'),
'checkout.payment.sender' => $request->get('sender')
]);
54
if (Auth::check()) return $this>authenticatedPayment($request);
return $this->guestPayment($request);
}
protected function authenticatedPayment(Request $request)
{
$user = Auth::user();
$bank = session('checkout.payment.bank');
$sender = session('checkout.payment.sender');
$address = $this->setupAddress($user,
session('checkout.address'));
$order = $this->makeOrder($user->id, $bank, $sender,
$address, $this->cart->details());
session()->forget('checkout');
$this->cart->clearCartRecord();
return redirect('checkout/success')>with(compact('order'));
}
protected function guestPayment(Request $request)
{
$user = $this->setupCustomer(session('checkout.email'),
session('checkout.address.name'));
$bank = session('checkout.payment.bank');
$sender = session('checkout.payment.sender');
$address = $this->setupAddress($user,
session('checkout.address'));
$order = $this->makeOrder($user->id, $bank, $sender,
$address, $this->cart->details());
session()->forget('checkout');
$deleteCartCookie = $this->cart->clearCartCookie();
return redirect('checkout/success')>with(compact('order'))
->withCookie($deleteCartCookie);
}
protected function setupCustomer($email, $name)
{
$user = User::create(compact('email', 'name'));
$user->role = 'customer';
$user->save();
return $user;
}
protected function setupAddress(User $customer,
$addressSession)
{
if (Auth::check() &&
isset($addressSession['address_id'])) {
return Address::find($addressSession['address_id']);
}
return Address::create([
'user_id' => $customer->id,
55
'name' => $addressSession['name'],
'detail' => $addressSession['detail'],
'regency_id' => $addressSession['regency_id'],
'phone' => $addressSession['phone']
]);
}
protected function makeOrder($user_id, $bank, $sender,
Address $address, $cart)
{
$status = 'waiting-payment';
$address_id = $address->id;
$order = Order::create(compact('user_id', 'address_id',
'bank', 'sender', 'status'));
foreach ($cart as $product) {
OrderDetail::create([
'order_id' => $order->id,
'address_id' => $address->id,
'product_id' => $product['id'],
'quantity' => $product['quantity'],
'price' => $product['detail']['price'],
'fee' => Product::find($product['id'])>getCostTo($address->regency_id)
]);
}
return Order::find($order->id);
}
public function success()
{
return view('checkout.success');
}
}
Kode Program 4. 5 Controller CheckoutController
Kode Program 4.5 merupakan sintaks dari CheckoutController. Kode
program ini berguna untuk mengetahui langkah-langkah pada cart. Langkahlangkah yang terdapat pada CheckoutController yaitu login, input alamat, dan
pembayaran.
4.2.1.6 Controller Home Controller
Controller HomeController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
HomeController
seperti pada Kode Program 4.6.
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
56
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth', ['only'=>['index',
'viewOrders']]);
$this->middleware('role:customer',
['only'=>'viewOrders']);
}
public function index()
{
return view('home');
}
public function viewOrders(Request $request)
{
$q = $request->get('q');
$status = $request->get('status');
$orders = auth()->user()->orders()
->where('id', 'LIKE', '%'.$q.'%')
->where('status', 'LIKE', '%'.$status.'%')
->orderBy('updated_at')
->paginate(5);
return view('customer.view-orders')>with(compact('orders', 'q', 'status'));
}
}
Kode Program 4. 6 Controller HomeController
Kode Program 4.6 merupakan sintaks dari HomeController. Kode
program ini berguna untuk mengambil permintaan home, memparsing permintaan
home, menginisialisasi, memanggil model dan kemudian mengambil responnya,
dan mengirimkannya ke view. Home berfungsi untuk menamilkan produk di menu
home dan juga bisa klik like untuk laptop yang disukai agar bisa disimpan dan kita
mudah mencari laptop yang disukai.
4.2.1.7 Controller Orders Controller
Controller OrdersController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
HomeController
seperti pada Kode Program 4.7.
<?php
namespace App\Http\Controllers;
57
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Order;
class OrdersController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:admin');
}
public function index(Request $request)
{
$status = $request->get('status');
$orders = Order::where('status', 'LIKE',
'%'.$status.'%');
if ($request->has('q')) {
$q = $request->get('q');
$orders = $orders->where(function($query) use ($q) {
$query->where('id', $q)
->orWhereHas('user', function($user) use ($q) {
$user->where('name', 'LIKE', '%'.$q.'%');
});
});
}
$orders = $orders->orderBy( 'updated_at', 'desc')>paginate(7);
return view('orders.index', compact('orders', 'status',
'q'));
}
public function edit($id)
{
$order = Order::find($id);
return view('orders.edit')->with(compact('order'));
}
public function update(Request $request, $id)
{
$order = Order::find($id);
$this->validate($request, ['status'=>'required|in:'.
implode(',',Order::allowedStatus())]);
$order->update($request->only('status'));
\Flash::success($order->padded_id.' Berhasil
Tersimpan');
return redirect()->route('orders.index');
}
}
Kode Program 4. 7 Controller OrderController
58
Kode
Program
OrderController.
4.7
merupakan
sintaks
dari
Controller
Controller OrderController berguna untuk mengambil
permintaan order, memparsing permintaan order, menginisialisasi, memanggil
model dan kemudian mengambil responnya, dan mengirimkannya ke View.
Fungsi store berguna untuk membuat order baru. Fungsi update dan edit
berguna untuk mengubah orderan.
4.2.1.8 Controller Products Controller
Controller ProductsController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
HomeController
seperti pada Kode Program 4.8.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Product;
use Symfony\Component\HttpFoundation\file\UploadedFile;
use File;
class ProductsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:admin');
}
public function deletePhoto($filename)
{
$path = public_path().DIRECTORY_SEPARATOR. 'img'.
DIRECTORY_SEPARATOR. $filename;
}
protected function savePhoto(UploadedFile $photo)
{
$filename = str_random(40). '.'. $photo>guessClientExtension();
$destentionPath =
public_path().DIRECTORY_SEPARATOR.'img';
$photo->move($destentionPath, $filename);
return $filename;
}
public function index(Request $request)
{
59
$q= $request->get('q');
$products= Product::where('name', 'LIKE',
'%'.$q.'%')->orderBy('model', 'LIKE', '%'.$q.'%')>orderBy('name')->paginate(5);
return view('products.index',
compact('products','q'));
}
public function create()
{
return view('products.create');
}
public function store(Request $request)
{
$this->validate($request,[
'name' =>'required|unique:products',
'model'=>'required',
'photo'=>'mimes:jpeg,png,jpg|max:10240',
'price'=>'required|numeric|min:1000',
'weight'=>'required|numeric|min:1'
]);
$data = $request->only('name', 'model', 'price',
'weight');
if ($request->hasFile('photo'))
{
$data['photo'] = $this->savePhoto($request>file('photo'));
}
$product = Product::create($data);
$product->categories()->sync($request>get('category_lists'));
\Flash::success($product->name. ' saved.');
return redirect()->route('products.index');
}
public function show($id)
{
}
public function edit($id)
{
$product = Product::findOrFail($id);
return view('products.edit', compact('product'));
}
public function update(Request $request, $id)
{
$product = Product::findOrFail($id);
$this->validate($request, [
'name'=>'required|unique:products,name,'.$product>id,
'model'=>'required',
'photo'=>'mimes:jpeg,jpg,png|max:10240',
60
'price'=>'required|numeric|min:1000',
'weight'=>'required|numeric|min:1'
]);
$data = $request->only('name', 'model', 'price',
'weight');
if ($request->hasFile('photo')) {
$data['photo'] = $this->savePhoto($request>file('photo'));
if ($product->photo !== '') $this>deletePhoto($product->photo);
}
$product->update($data);
if (count($request->get('category_lists')) > 0) {
$product->categories()->sync($request>get('category_lists'));
}else{
$product->categories()->detach();
}
\Flash::success($product->name. ' update.');
return redirect()->route('products.index');
}
public function destroy($id)
{
$product= Product::find($id);
if ($product->photo !=='') $this->deletePhoto($product>photo);
$product->delete();
\Flash::success('Product Deleted.');
return redirect()->route('products.index');
}
}
Kode Program 4. 8 Controller ProductsController
Kode
Program
ProductsCOntoller.
4.8
merupakan
sintaks
dari
Controller
Controller ProductsContoller berguna untuk mengambil
permintaan produk, memparsing permintaan produk, menginisialisasi, memanggil
model dan kemudian mengambil responnya, dan mengirimkannya ke View.
Fungsi store berguna untuk menambahkan produk baru. Fungsi update dan
edit
berguna untuk mengedit produk yang ada di website Toko Online Tipro.
Fungsi destroy beguna unuk menghapus produk.
61
4.2.1.9 Controller Users Controller
Controller UserController merupakan salah satu dari controller
website Toko Online Tipro. Berikut merupakan sintaks dari Controller
UserController
seperti pada Kode Program 4.9.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\User;
use Auth;
class UsersController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:admin');
}
public function edit()
{
return view('profile.edit');
}
public function update(Request $request)
{
$this->validate($request, [
'name'=>'alpha|max:20',
'email'=>'max:20',
'password'=>'max:20'
]);
Auth::user()->update([
'name'=>$request->input('name'),
'email'=>$request->input('email'),
'password'=>$request->input('password'),
]);
\Flash::success('Profile has been updated');
return redirect()->route('profile.edit');
}
}
Kode Program 4. 9 Controller UsersController
Kode Program 4.9 merupakan sintaks dari controller UserController.
Controller UserController untuk mengupdate password lama, password baru
dan konfirmasi password yang kemudian disimpan pada database.
62
4.2.2
Model
Website Toko Online Tipro terdiri dari banyak model. Berikut merupakan
penjelasan dari semua model yang ada pada website Toko Online Tipro.
4.2.2.1 Address
Model Address merupakan salah satu dari model website Toko Online
Tipro. Berikut merupakan sintaks dari Model Address seperti pada Kode Program
4.10.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Address extends Model
{
protected $fillable = ['user_id', 'name', 'detail',
'regency_id', 'phone'];
public function user()
{
return $this->belongsTo('App\User');
}
public function regency()
{
return $this->belongsTo('App\Regency');
}
}
Kode Program 4. 10 Address Model
Kode Program 4.10 merupakan sintaks dari address model. Model
address mewakili struktur data address user. Model berisi fungsi-fungsi yang
membantu dalam pengelolaan database seperti memasukkan data ke database,
pembaruan data dan lain-lain. Fungsi protected $fillable digunakan agar
controller dapat mengakses dan memasukkan data berupa id, user_id, name,
detail,
regency_id
dan phone. Fungsi
public
function
regency
berguna untuk menghubungkan antara tabel addresses dengan tabel regencys.
Fungsi public function user berguna untuk menghubungkan antara tabel
addresses
dengan tabel users.
63
4.2.2.2 Cart
Model Cart merupakan salah satu dari model website Toko Online Tipro.
Berikut merupakan sintaks dari Model Cart seperti pada Kode Program 4.11.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cart extends Model
{
protected $fillable = ['user_id', 'product_id', 'quantity'];
public function user()
{
return $this->belongsTo('App\User');
}
public function product()
{
return $this->belongsTo('App\Product');
}
}
Kode Program 4. 11 Cart Model
Kode Program 4.11 merupakan sintaks dari cart model. Model cart
mewakili struktur data belanja user. Model berisi fungsi-fungsi yang membantu
dalam pengelolaan database seperti memasukkan data ke database, pembaruan
data dan lain-lain. Fungsi protected $fillable digunakan agar controller
dapat mengakses dan memasukkan data berupa id, user_id, product_id,
dan
quantity.
Fungsi
public
function
user
berguna
menghubungkan antara tabel carts dengan tabel users. Fungsi
function product
untuk
public
berguna untuk menghubungkan antara tabel carts dengan
tabel products.
4.2.2.3 Category
Model Category merupakan salah satu dari model website Toko Online
Tipro. Berikut merupakan sintaks dari Model Category seperti pada Kode
Program 4.12.
<?php
64
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $fillable = ['title', 'parent_id'];
public function childs()
{
return $this->hasMany('App\Category','parent_id');
}
public function parent()
{
return $this->belongsTo('App\Category', 'parent_id');
}
public function products()
{
return $this->belongsToMany('App\Product');
}
public static function boot()
{
parent::boot();
static::deleting(function ($model){
//removing relations to products
$model->products()->detach();
foreach ($model->childs as $child) {
$child->parent_id = '';
$child->save();
}
});
}
public function getRelatedProductsIdAttribute()
{
$result = $this->products->lists('id')->toArray();
foreach ($this->childs as $child) {
$result = array_merge($result, $child>related_products_id);
}
return $result;
}
public function scopeNoParent($query)
{
return $this->where('parent_id','');
}
public function getTotalProductsAttribute()
{
return Product::whereIn('id', $this>related_products_id)->count();
}
65
public function hasParent()
{
return $this->parent_id >0;
}
public function hasChild()
{
return $this->childs()->count() >0;
}
}
Kode Program 4. 12 Categories Model
Kode Program 4.12 merupakan sintaks dari categories model. Model
categories mewakili struktur data jenis perangkat apakah laptop atau notebook.
Model berisi fungsi-fungsi yang membantu dalam pengelolaan database seperti
memasukkan data ke database, pembaruan data dan lain-lain. Fungsi protected
$fillable
digunakan agar controller dapat mengakses dan memasukkan data
berupa id, title, dan parent_id. Fungsi public function product
berguna untuk menghubungkan antara tabel categories dengan tabel products.
4.2.2.4 Chart
Chart merupakan salah satu model yang digunakan untuk membantu
contoroller Home untuk menampilkan statistic penjualan. Berikut merupakan
sintaks dari Model Chart seperti pada Kode Program 4.13.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Stock extends Model
{
protected $fillable = ['order_id', 'product_id', 'quantity'];
}
Kode Program 4. 13 Chart Model
Kode Program 4.13 merupakan sintaks dari Chart model. Model Chart
berisi fungsi-fungsi class stock yang mem-protected variable fillable dengan
array order_id, produk_id dan quantity.
66
4.2.2.5 Fee
Model Fee merupakan salah satu dari model website Toko Online Tipro.
Berikut merupakan sintaks dari Model Fee seperti pada Kode Program 4.14.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
use RajaOngkir;
use App\Product;
class Fee extends Model
{
protected $fillable = ['origin', 'destination', 'courier',
'service', 'weight', 'cost', 'update_at'];
public static function getCost($origin_id, $destination_id,
$weight, $courier, $service)
{
$free = static::firstOrCreate([
'origin'=>$origin_id,
'destination'=>$destination_id,
'weight'=>$weight,
'courier'=>$courier,
'service'=>$service
]);
if ($free->haveCost() && !$free->isNeedUpdate()) return
$free->cost;
return $free->populateCost();
}
protected function haveCost()
{
return $this->cost > 0;
}
protected function isNeedUpdate()
{
return $this->updated_at->diffInDays(Carbon::today()) >
7;
}
public function populateCost()
{
$params = $this->toArray();
$costs = RajaOngkir::Cost($params)->get();
$cost = 0;
67
foreach ($costs[0]['costs'] as $result) {
if ($result['service'] == $this->service) {
$cost = $result['cost'][0]['value'];
break;
}
}
$cost = $cost > 0 ? $cost :
config('rajaongkir.fallback_fee');
//update cost & force update 'update_at' field
$this->update(['cost' => $cost,
'updated_at'=>Carbon::today()]);
return $cost;
}
}
Kode Program 4. 14 Fees Model
Kode Program 4.14 merupakan sintaks dari Fees model. Model Fees
mewakili struktur data pembayaran. Model berisi fungsi-fungsi yang membantu
dalam pengelolaan database seperti memasukkan data ke database, pembaruan
data dan lain-lain. Fungsi protected $fillable digunakan agar controller
dapat mengakses dan memasukkan data berupa id, origin, destination,
courier, service, weight,
dan cost.
4.2.2.6 Order
Model Order merupakan salah satu dari model website Toko Online
TIipro. Berikut merupakan sintaks dari Model Order seperti pada Kode Program
4.15.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $fillable = ['id', 'user_id', 'address_id',
'bank', 'sender', 'status', 'total_payment'];
public function user()
{
return $this->belongsTo('App\User');
}
public function details()
{
return $this->hasMany('App\OrderDetail');
}
68
public function address()
{
return $this->belongsTo('App\Address');
}
public function refreshTotalPayment()
{
$total_payment = 0;
foreach ($this->details as $detail) {
$total_payment += $detail->total_price;
}
$this->total_payment = $total_payment;
$this->save();
}
public function getPaddedIdAttribute()
{
return str_pad($this->id, 6, 0, STR_PAD_LEFT);
}
public static function statusList()
{
return [
'waiting-payment'=>'Menunggu Pembayaran',
'packaging'=>'Order disiapkan',
'sent'=>'Paket dikirim',
'finised'=>'Paket Diterima'
];
}
public function getHumanStatusAttribute()
{
return static::statusList()[$this->status];
}
public static function allowedStatus()
{
return array_keys(static::statusList());
}
}
Kode Program 4. 15 Orders Model
Kode Program 4.15 merupakan sintaks dari Orders model. Model Orders
mewakili struktur data order. Model berisi fungsi-fungsi yang membantu dalam
pengelolaan database seperti memasukkan data ke database, pembaruan data dan
lain-lain. Fungsi protected
$fillable
digunakan agar controller dapat
mengakses dan memasukkan data berupa id, user_id, address_id, status,
bank,
sender,
dan total_payment. Fungsi public function
user
berguna untuk menghubungkan antara tabel orders dengan tabel users. Fungsi
public function details
berguna untuk menghubungkan antara tabel orders
69
dengan tabel orderdetails. Fungsi public function address berguna untuk
menghubungkan antara tabel orders dengan tabel addresses.
4.2.2.7 Order Detail
Model OrderDetail merupakan salah satu dari model website Toko
Online Tipro. Berikut merupakan sintaks dari Model OrderDetail seperti pada
Kode Program 4.16.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class OrderDetail extends Model
{
protected $table = 'order_details';
protected $fillable = ['id', 'order_id', 'product_id',
'quantity', 'price', 'fee', 'total_price'];
public function product()
{
return $this->belongsTo('App\Product');
}
public function order()
{
return $this->belongsTo('App\Order');
}
public static function boot()
{
parent::boot();
static::saved(function($model) {
if ($model->total_price <1 ) {
$model->refreshTotalPrice();
}
$model->order->refreshTotalPayment();
});
}
public function refreshTotalPrice()
{
$total_price = ($this->price + $this->fee) * $this>quantity;
$this->total_price = $total_price;
$this->save();
}
}
Kode Program 4. 16 Orders Details Model
70
Kode Program 4.16 merupakan sintaks dari OrderDetails model. Model
OrderDetails mewakili struktur data detail order. Model berisi fungsi-fungsi yang
membantu dalam pengelolaan database seperti memasukkan data ke database,
pembaruan data dan lain-lain. Fungsi protected $fillable digunakan agar
controller dapat mengakses dan memasukkan data berupa id, order_id,
product_id, quantity, price, fee,
function user
users.
tabel
dan total_price.
Fungsi public
berguna untuk menghubungkan antara tabel orders dengan
Fungsi
public
function
details
berguna
untuk
menghubungkan antara tabel orders dengan tabel orderdetails. Fungsi
public function address
berguna untuk menghubungkan antara tabel orders
dengan tabel addresses.
4.2.2.8 Product
Model Product merupakan salah satu dari model website Toko Online
Tipro. Berikut merupakan sintaks dari Model Product seperti pada Kode Program
4.17.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Fee;
class Product extends Model
{
protected $appends = ['photo_path'];
protected $fillable = ['name', 'photo', 'model', 'prince',
'weight'];
public function categories()
{
return $this->belongsToMany('App\Category');
}
public function getCategoryListsAttribute()
{
if ($this->categories()->count() < 1) {
return null;
}
return $this->categories->lists('id')->all();
71
}
public static function boot()
{
parent::boot();
static::deleting(function($model){
$model->categories()->detach();
$model->cart()->detach();
});
}
public function getPhotoPathAttribute()
{
if ($this->photo !=='') {
return url ('/img/'. $this->photo);
}else{
return 'http://placehold.it/850x618';
}
}
public function carts()
{
return $this->hasMany('App\Cart');
}
public function getCostTo($destination_id)
{
return Fee::getCost(
config('rajaongkir.origin'),
$destination_id,
$this->weight,
config('rajaongkir.courier'),
config('rajaongkir.service')
);
}
}
Kode Program 4. 17 Products Model
Kode Program 4.17 merupakan sintaks dari Product model. Model
Product mewakili struktur data produk yang dijual di Toko Online Tipro. Model
berisi fungsi - fungsi yang membantu dalam pengelolaan database seperti
memasukkan data ke database, pembaruan data dan lain-lain. Data yang
dimasukkan berupa id, name, photo, model, price, dan weight.
4.2.2.9 Province
Model Province merupakan salah satu dari model website Toko Online
Tipro. Berikut merupakan sintaks dari Model Province seperti pada Kode
Program 4.18.
72
<?php
namespace App;
use RajaOngkir;
use Illuminate\Database\Eloquent\Model;
class Province extends Model
{
protected $fillable = ['id', 'name'];
public static function populate(){
foreach (RajaOngkir::Provinsi()->all() as $province) {
$model =
static::firstOrNew(['id'=>$province['province_id']]);
$model->name = $province['province'];
$model->save();
}
}
}
Kode Program 4. 18 Province Model
Kode Program 4.18 merupakan sintaks dari Provice model. Model
Provice mewakili struktur data provinsi. Model berisi fungsi-fungsi yang
membantu dalam pengelolaan database seperti memasukkan data ke database,
pembaruan data dan lain-lain. Data yang dimasukkan berupa id dan name.
4.2.2.10 Regency
Model Regency merupakan salah satu dari model website Toko Online
Tipro. Berikut merupakan sintaks dari Model Regency seperti pada Kode Program
4.19.
<?php
namespace App;
use RajaOngkir;
use Illuminate\Database\Eloquent\Model;
class Regency extends Model
{
protected $fillable = ['id', 'province_id', 'name'];
public static function populate(){
foreach (RajaOngkir::Kota()->all() as $kota) {
$model =
static::firstOrNew(['id'=>$kota['city_id']]);
$model->province_id = $kota['province_id'];
$model->name = $kota['type'] .' '.
$kota['city_name'];
$model->save();
73
}
}
public function province()
{
return $this->belongsTo('App\Province');
}
}
Kode Program 4. 19 Regenciess Model
Kode Program 4.19 merupakan sintaks dari Regencies model. Model
Regencies mewakili struktur data kabupaten. Model berisi fungsi-fungsi yang
membantu dalam pengelolaan database seperti memasukkan data ke database,
pembaruan data dan lain-lain. Data yang dimasukkan berupa id, provice_id
dan name.
4.2.2.11 Users
Model Users merupakan salah satu dari model website Toko Online
Tipro. Berikut merupakan sintaks dari Model Users seperti pada Kode Program
4.20.
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
public function hasPassword()
{
return $this->password !=='';
}
public function addresses()
{
return $this->hasMany('App\Address');
}
public function orders()
{
74
return $this->hasMany('App\Order');
}
}
Kode Program 4. 20 Orders Model
Kode Program 4.20 merupakan sintaks dari Orders model. Model Fees
mewakili struktur data order. Model berisi fungsi-fungsi yang membantu dalam
pengelolaan database seperti memasukkan data ke database, pembaruan data dan
lain-lain. Data yang dimasukkan berupa id, user_id, address_id, status,
bank, sender,
4.2.3
dan total_payment.
View
Website Toko Online Tipro terdiri dari banyak view. Berikut merupakan
penjelasan dari semua view yang ada pada website Toko Online Tipro.
4.2.3.1 Auth
Folder Auth merupakan salah satu tampilan dari view. View Auth terdiri
dari
beberapa
bagian
Register.blade.php.
1.
yaitu
View
Login.blade.php,
View
Sintaks dari folder Auth dapat dilihat sebagai berikut.
View Login.blade.php
View Login.blade.php merupakan sintaks yang menampilkan halaman
pada saat user ataupun admin melakukan login. Berikut merupakan sintaks dari
View Login.blade.php seperti pada Kode Program 4.21.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default" style="backgroundcolor:powderblue; border-radius: 20px;">
<div class="panel-heading">Login</div>
<div class="panel-body">
<form
class="form-horizontal"
role="form"
method="POST" action="{{ url('/login') }}">
{!! csrf_field() !!}
<div
class="form-group{{
$errors>has('email') ? ' has-error' : '' }}">
<label
class="col-md-4
controllabel">E-mail Address</label>
<div class="col-md-6">
<input type="email" class="formcontrol" name="email" value="{{ old('email') }}">
75
@if ($errors->has('email'))
<span class="help-block">
<strong>{{
$errors>first('email') }}</strong>
</span>
@endif
</div>
</div>
<div
class="form-group{{
>has('password') ? ' has-error' : '' }}">
<label
class="col-md-4
label">Password</label>
$errorscontrol-
<div class="col-md-6">
<input
type="password"
class="form-control" name="password">
@if ($errors->has('password'))
<span class="help-block">
<strong>{{
$errors>first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<div class="checkbox">
<label>
<input
type="checkbox"
name="remember"> Remember Me
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn
btn-primary">
<i
class="fa
fa-btn
fa-sign-
<a class="btn btn-link"
url('/password/reset') }}">Forgot Your Password?</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
Kode Program 4. 21 View Login.blade.php
href="{{
in"></i>Login
</button>
76
Kode Program 4.21 merupakan sintaks yang digunakan untuk melakukan
login ke website Toko Online Tipro. Halaman ini berisi form untuk mengisi email dan password dari user maupun admin untuk melakukan login, jika login
sebagai user maka menuju ke halaman user, apabila login sebagai admin maka
menuju ke halaman dashboard.
2.
View Register.blade.php
View Register.blade.php merupakan sintaks yang menampilkan
halaman register untuk user yang belum terdaftar pada website Toko Online
Tipro. Sintaksnya dapat dilihat pada Kode Program 4.22.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Register</div>
<div class="panel-body">
<form class="form-horizontal" role="form"
method="POST" action="{{ url('/register') }}">
{!! csrf_field() !!}
<div class="form-group{{ $errors>has('name') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">Name</label>
<div class="col-md-6">
<input type="text" class="formcontrol" name="name" value="{{ old('name') }}">
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors>first('name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors>has('email') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="formcontrol" name="email" value="{{ old('email') }}">
77
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors>first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors>has('password') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">Password</label>
<div class="col-md-6">
<input type="password"
class="form-control" name="password">
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors>first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors>has('password_confirmation') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">Confirm Password</label>
<div class="col-md-6">
<input type="password"
class="form-control" name="password_confirmation">
@if ($errors>has('password_confirmation'))
<span class="help-block">
<strong>{{ $errors>first('password_confirmation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn
btn-primary">
<i class="fa fa-btn fauser"></i>Register
</button>
</div>
</div>
</form>
</div>
</div>
78
</div>
</div>
</div>
@endsection
Kode Program 4. 22 View Register.blade.php
Kode Program 4.22 merupakan sintaks yang digunakan untuk melakukan
registrasi pada website Toko Online Tipro. Halaman ini berisi form registrasi yang
terdapat kolom nama, e-mail, dan password. User yang sudah melakukan
registrasi maka datanya tersimpan pada database.
4.2.3.2 Cart
Folder Cart merupakan salah satu tampilan dari view. View Cart terdiri
dari beberapa bagian yaitu View index.blade.php. Sintaks dari folder Cart dapat
dilihat sebagai berikut.
1.
View index.blade.php
View index.blade.php merupakan sintaks yang menampilkan halaman
cart untuk menyimpan barang yang akan di beli user. Sintaksnya dapat dilihat
pada Kode Program 4.23.
@extends('layouts.app')
@section('content')
<div class="container" style="background-color:powderblue;
border-radius: 20px;">
@if($cart->isEmpty())
<div class="text-center">
<h1> : | </h1>
<p>Cart Masih Kosong</p>
<p><a href="{{url ('/catalogs')}}">Lihat Semua
Produk <i class="fa fa arrow-right"></i></a></p>
</div>
@else
<table class="cart table table-hover table-condensed">
<thead>
<tr>
<th style="width:50%">Produk</th>
<th style="width:10%">Harga</th>
<th style="width:8%">Jumlah</th>
<th style="width:22%" class="textcenter">Subtotal</th>
<th style="width:10%"></th>
</tr>
</thead>
<tbody>
@foreach($cart->details() as $order)
<tr>
79
<td data-th="Produk">
<div class="row">
<div class="col-sm-2 hiddenxs"><img src="{{ $order['detail']['photo_path']}}" alt="..."
class="img-responsive"></div>
<div class="col-sm-10">
<h4 class="nomargin">{{
$order['detail']['name']}}</h4>
</div>
</div>
</td>
<td data-th="Harga">Rp{{
number_format($order['detail']['price']) }}</td>
<td data-th="jumlah">
{!! Form::open(['url'=>['cart',
$order['id']],
'method'=>'put', 'class'=>'forminline']) !!}
{!! Form::number('quantity',
$order['quantity'], ['class'=>'form-control text-center']) !!}
<td data-th="Subtotal" class="textcenter">
Rp{{ number_format($order['subtotal'])
}}</td>
<td class="actions" data-th="">
{!! Form::button('<i class="fa farefresh"></i>', array('type'=>'submit', 'class'=>'btn btn-info
btn-sm')) !!}
{!! Form::close() !!}
{!! Form::open(['url'=>['cart',
$order['id']], 'method'=>'delete', 'class'=>'form-inline']) !!}
{!! Form::button('<i class="fa fatrash-o"></i>', array('type'=>'submit', 'class'=>'btn btn-danger
btn-sm js-submit-confirm', 'data-confrim-message'=>'Kamu akan
Menghapus ' .$order['detail']['name'] . ' dari cart.')) !!}
{!! Form::close() !!}
</td>
</td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr class="visible-xs">
<td class="text-center"><strong>Total
Rp{{number_format($cart->totalPrice() )}}</strong></td>
</tr>
<tr>
<td><a href="{{url('/catalogs')}}"
class="btn btn-warning"><i class="fa fa-angel-left"></i>Belanja
Lagi</a></td>
<td colspan="2" class="hidden-xs"></td>
80
<td class="hidden-xs textcenter"><strong>Total {{number_format($cart>totalPrice())}}</strong></td>
<td><a href="{{url('/checkout/login')}}"
class="btn btn-success btn-block">Pembayaran <i class="fa faangle-right"></i></td>
</tr>
</tfoot>
</table>
@endif
</div>
@endsection
Kode Program 4. 23 View index.blade.php
Kode Program 4.23 merupakan sintaks yang digunakan untuk membuat
tampilan halaman cart pada website Toko Online Tipro. Halaman ini berisi nama
produk, harga produk, jumlah produk, dan total harga produk yang akan dibeli.
Halaman ini juga berisi tombol pembayaran yang berfungsi untuk melakukan
pembayaran. User dapat menghapus produk yang sudah dimasukkan ke dalam
cart jika batal membeli produk tersebut. Index.blade.php menampilkan
halaman cart yang merupakan turunan dari layout.app
4.2.3.3 Catalogs
Folder catalogs merupakan folder tampilan yang digunakan untuk
menampilkan tampilan catalog pada tampilan catalog ini dibagi menjadi beberapa
blade yang kemudian dijadikan satu pada index.blade.php. Sintaks dari folder
catalogs dapat dilihat sebagai berikut.
1.
View _add-product-form.blade.php
View_add-product-form.blade.php
merupakan
sintaks
yang
menampilkan produk yang dibeli sebelum di tambahkan ke cart. Sintaksnya dapat
dilihat pada Kode Program 4.24.
<p>
{!! Form::open(['url'=>'cart', 'method'=>'post',
'class'=>'form-inline']) !!}
{!! Form::hidden('product_id', $product->id) !!}
<div class="form-group">
{!! Form::number('quantity', null, ['class'=>'formcontrol', 'min'=>1, 'placeholder'=> 'Jumlah Order']) !!}
</div>
{!! Form::submit('Tambah Ke Cart', ['class'=>'btn btnprimary']) !!}
{!! Form::close() !!}
81
</p>
Kode Program 4. 24 View _add-product-form.blade.php
Kode Program 4.24 merupakan sintaks yang digunakan untuk membuat
tampilan pada bagian menambahkan jumlah belanja pada website Toko Online
Tipro. View _add-product-form.blade.php menggunakan metode laravel
collective. User dapat menambahkan produk yang dibeli.
2.
View _breadcrumb.blade.php
View _breadcrumb.blade.php merupakan sintaks yang menampilkan
filter untuk menentukan barang termurah dan barang termahal. Sintaksnya dapat
dilihat pada Kode Program 4.25.
<ol class="breadcrumb" style="background-color:powderblue;">
@if(!is_null($current_category))
<li>Kategori : <a href="{{
url('/catalogs?cat'.$current_category->id)}}">{{$current_category>title}}</a></li>
@else
<li>Kategori Semua Produk :</li>
@endif
<span class="pull-right">Urutkan Harga:
<a
href="{{appendQueryString(['sort'=>'price','order'=>'asc'])}}"
class="btn btn-default btn-xs
{{isQueryStringEqual(['sort'=>'price',
'order'=>'asc']) ? 'active' : ''}}" >Termurah</a> |
<a href="{{appendQueryString(['sort'=>'price',
'order'=>'desc']) }}" class="btn btn-default btn-xs {{
isQueryStringEqual(['sort'=>'price', 'order'=>'desc']) ? 'active'
: '' }}">Termahal</a>
</span>
</ol>
Kode Program 4. 25 View _breadcrumb.blade.php
Kode Program 4.25 merupakan sintaks yang digunakan untuk membuat
bagian yang menentukan barang termurah dan barang termahal pada website Toko
Online Tipro. View _breadcrumb.blade.php menggunakan metode laravel
collective. User dapat melihat produk yang dijual dengan mengurutkan dari
barang yang termurah sampai dengan barang yang termahal.
82
3.
View _category-panel.blade.php
View_category-panel.blade.php
merupakan
sintaks
yang
menampilkan bagian menentukan kategori. Sintaksnya dapat dilihat pada Kode
Program 4.26.
<div class="panel panel-default">
<div class="panel-heading"style="background-color:powderblue;
border-radius: 4px;">
<h3 class="panel-title" >Lihat Per Kategori</h3>
</div>
<div class="list-group">
<a href="/catalogs" class="list-group-item"
style="background-color:powderblue; border-radius: 4px;">Semua
Produk <span class="badge">{{ App\Product::count() }}</span></a>
@foreach(App\Category::noParent()->get() as $category)
<a href="{{url('/catalogs?cat='.$category->id)}}"
class="list-group-item"style="background-color:powderblue; borderradius: 4px;">{{ $category->title }}
{!! $category->total_products > 0 ? '<span
class="badge">'.$category->total_products.'</span>' : '' !!}</a>
@endforeach
</div>
</div>
Kode Program 4. 26 View _category-panel.blade.php
Kode Program 4.26 merupakan sintaks yang digunakan untuk membuat
bagian yang menentukan kategori pada website Toko Online Tipro. View
_category-panel.blade.php
menggunakan metode laravel collective. User
dapat melihat kategori produk yang dijual.
4.
View _product-added.blade.php
View_product-added.blade.php
merupakan
sintaks
yang
menampilkan tampilan java script yang berfungsi untuk melakukan konfirmasi
pesanan. Sintaksnya dapat dilihat pada Kode Program 4.27.
<script>
$(document).ready(function(){
swal({
title: "Suksess",
text
:"Berhasil
menambahkan
<strong>{{
Session::get('flash_product_name') }}</strong> ke cart",
type: "success",
showCancelButton:true,
confirmButtonColor:"#63BC81",
confirmButtonText:"Konfirmasi Pesanan",
cancelButtonText:"Lanjutkan belanja",
html :true
83
}, function (isConfirm){
if (isConfirm) {
window.location ='/cart';
}
});
});
</script>
Kode Program 4. 27 View _product-added.blade.php
Kode Program 4.27 merupakan sintaks yang digunakan untuk membuat
tampilan konfirmasi pesanan atau lanjutkan belanja website Toko Online Tipro.
View _product-added.blade.php menggunakan metode laravel collective. User
dapat mengkonfirmasi suatu pesanan dan melanjutkan belanja pada website Toko
Online Tipro.
5.
View _product-thumbnail.blade.php
View
_product-thumbnail.blade.php
merupakan
sintaks
yang
menampilkan gambar, nama, model, harga dan kategori pada suatu produk.
Sintaksnya dapat dilihat pada Kode Program 4.28.
<h3>{{$product->name}}</h3>
<div class="thumbnail" style="background-color:powderblue;">
<a
href="{{
url('/produk')
}}/{{$product->id
}}">
<img
src="{{$product->photo_path}}" class="img-rounded"></a>
<p>Model : {{$product->model}}</p>
<p>Harga
:<strong>Rp{{number_format($product->price,
2)}}</strong></p>
<p>Category:
@foreach($product->categories as $category)
<span class="label label-primary">
<i class="fa fa-tags"></i>
{{$category->title}}
</span>
@endforeach
</p>
@include('layouts._customer-feature',
['partial_view'=>'catalogs._add-product-form',
'data'=>compact('product')])
</div>
Kode Program 4. 28 View _product-thumbnail.blade.php
Kode Program 4.28 merupakan sintaks yang digunakan untuk membuat
tampilan gambar, nama, model, harga, dan kategori produk yang terjual pada
website
Toko
Online
Tipro.
View
_product-thumbnail.blade.php
menggunakan metode laravel collective. User dapat melihat produk yang dijual
pada website Toko Online Tipro.
84
6.
View _search-panel.blade.php
View
_search-panel.blade.php
merupakan
sintaks
yang
menampilkan pencarian suatu produk. Sintaksnya dapat dilihat pada Kode
Program 4.29.
<div class="panel panel-default" style="backgroundcolor:powderblue;">
<div class="panel-heading"style="backgroundcolor:powderblue;">
<h3 class="panel-title">Cari Poduk</h3>
</div>
<div class="panel-body">
{!! Form::open(['url'=> 'catalogs', 'method'=>'get']) !!}
<div class="form-group {!! $errors->has('q') ? 'haserror' : '' !!}">
{!! Form::label('q', 'Apa Yang Kamu Cari ?') !!}
{!! Form::text('q', $q, ['class'=>'form-control'])
!!}
{!! $errors->first('q', '<p class="helpblock">:message</p>') !!}
</div>
{!! Form::hidden('cat', $cat) !!}
{!! Form::submit('Cari', ['class'=>'btn btn-primary'])
!!}
{!! Form::close() !!}
</div>
</div>
Kode Program 4. 29 View _search-panel.blade.php
Kode Program 4.29 merupakan sintaks yang digunakan untuk membuat
tampilan yang menampilkan pencarian suatu produk yang tersedia pada website
Toko Online Tipro. View _search-panel.blade.php menggunakan metode
laravel collective. User dapat melakukan proses pencarian produk yang ingin di
beli berdasarkan nama produk dan kategori produk.
7.
View _sub-category-panel.blade.php
View _sub-category-panel.blade.php
merupakan sintaks yang
menampilkan tampilan pada bagian untuk menentukan kategori pada website
Toko Online Tipro. Sintaksnya dapat dilihat pada Kode Program 4.30.
<div class="panel panel-default">
<div
class="panel-heading"
color:powderblue;">
<h3
class="panel-title">Sub
style="backgroundKategori
Untuk
85
{{$current_category->title}}</h3>
</div>
<div class="list-group">
@foreach($current_category->childs as $category)
<a
href="{{url('/catalogs?cat='.
$category->id)}}"
class="list-group-item"
style="background-color:powderblue;
border-radius: 4px;">{{$category->title}}
{!!
$category->total_products
>
0
?
'<span
class="badge">'.$category->total_products.'</span>' : '' !!}
</a>
@endforeach
</div>
</div>
Kode Program 4. 30 View _sub-category-panel.blade.php
Kode Program 4.30 merupakan sintaks yang digunakan untuk membuat
tampilan pada bagian untuk menentukan kategori dan sub kategori pada website
Toko Online Tipro. View _sub-category-panel.blade.php menggunakan
metode laravel collective. Admin dapat melakukan penentuan kategori pada
produk yang ditambahkan pada website, selain kategori admin juga bisa
menentukan sub kategori pada website Toko Online Tipro.
8.
View index.blade.php
View index.blade.php merupakan sintaks untuk mengambil nama
blade.php
pada catalogs. Sintaksnya dapat dilihat pada Kode Program 4.31.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-3">
@include ('catalogs._search-panel',[
'q'=>isset($q) ? $q :null,
'cat'=>isset($cat) ? $cat :''
])
@include('catalogs._category-panel')
@if(isset($category)&& $category->hasChild())
@include('catalogs._sub-category-panel',
['current_category'=>$category])
@endif
@if(isset($category)&& $category->hasParent())
@include('catalogs._sub-category-panel',
['current_category'=>$category->parent])
@endif
86
</div>
<div class="col-md-9">
<div class="row">
<div class="col-md-12">
@include('catalogs._breadcrumb', [
'current_category' => isset($category) ?
$category :null
])
@if($errors->has('quantity'))
<div class="alert alert-danger">
<button
type="button"
class="close"
datadismis="alert" aria-hidden="true">×</button>
{{$errors->first('quantity')}}
</div>
@endif
</div>
@forelse($products as $product)
<div
class="col-md-6"
style="backgroundcolor:powderblue; border-radius: 20px;">
<!-<a
href="{{
url('/produk')
}}">@include('catalogs._product-thumbnail',
['product'=>
$product]) </a> -->
@include('catalogs._product-thumbnail',
['product'=> $product])
</div>
@empty
<div class="col-md-12 text-center">
@if(isset($q))
<h1>:(</h1>
<p>Produk
Yang
Anda
Cari
Tidak
Ditemukan.</p>
@if(isset($category))
<p><a
href="{{url('/catalogs?q='.$q)}}">Cari
Disemua
Kategori<i
class="fa fa-arrow-right"></i></a></p>
@endif
@else
<h1>:|</h1>
<p>Belum
Ada
Produk
Untuk
Kategori
Ini.</p>
@endif
<p><a
href="{{url('/catalogs')}}">Lihat
Semua Produk <i class="fa fa-arrow-right"></i></p>
</div>
@endforelse
<div class="pull-right">
{!!
$products>appends(compact('cat','category','q', 'sort', 'order'))->links()
!!}
</div>
</div>
</div>
</div>
</div>
87
@endsection
Kode Program 4. 31 View index.blade.php
Kode Program 4.31 merupakan sintaks yang digunakan sebagai tempat
untuk mengambil nama blade.php catalogs pada website Toko Online Tipro. View
index.blade.php
index.blade.php
menggunakan
metode
laravel
collective.
View
mengambil setiap blade.php pada catalogs yang dijadikan
satu pada index.blade.php.
4.2.3.4 Categories
Folder categories merupakan tampilan yang berisi tampilan kategori
untuk menambahkan kategori dan mengubah kategori. Sintaks dari folder
categories dapat dilihat sebagai berikut.
1.
View _form.blade.php
View _form.blade.php merupakan sintaks yang menampilkan tambah
kategori yang terdapat input text title. Sintaksnya dapat dilihat pada Kode
Program 4.32.
<div class="form-group {!! $errors->has('title') ? 'has-error' :
'' !!}">
{!! Form::label('title', 'Title') !!}
{!! Form::text('title', null, ['class'=>'form-control']) !!}
{!! $errors->first('title', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('parent_id') ? 'has-error'
: '' !!}">
{!! Form::label('parent_id', 'Parent') !!}
{!! Form::select('parent_id',
[''=>'']+App\Category::lists('title','id')->all(), null,
['class'=>'form-control']) !!}
{!! $errors->first('parent_id', '<p class="helpblock">:message</p>') !!}
</div>
<!-- <div class="form-group {!! $errors->has('parent_id') ? 'haserror' : '' !!}">
{!! Form::label('parent_id', 'Perusahaan') !!}
{!! Form::text('parent_id', null, ['class'=>'form-control']) !!}
{!! $errors->first('parent_id', '<p class="helpblock">:message</p>') !!}
</div> -->
88
{!! Form::submit(isset($model) ? 'Update' : 'Save', ['class'=>'btn
btn-primary']) !!}
Kode Program 4. 32 View _form.blade.php
Kode Program 4.32 merupakan sintaks yang digunakan untuk
menambahkan kategori yang terdapat input text title dan input list title
berdasarkan id pada website Toko Online Tipro. View _form.blade.php
menggunakan metode laravel collective.
2.
View create.blade.php
View create.blade.php
merupakan sintaks yang menampilkan
tampilan pada bagian untuk menambah kategori. Sintaksnya dapat dilihat pada
Kode Program 4.33.
@extends('layouts.app')
@section('content')
<div
class="container"
style="background-color:powderblue;
border-radius: 20px;">
<div class="row">
<div class="col-md-12">
<h3>New Category</h3>
{!! Form::open(['route' => 'categories.store']) !!}
@include('categories._form')
{!! Form::close() !!}
</div>
</div>
<br></br>
</div>
@endsection
Kode Program 4. 33 View create.blade.php
Kode Program 4.33 merupakan sintaks yang digunakan untuk
menambahkan kategori yang berupa button New Category pada website Toko
Online
Tipro.
create.blade.php.
View
create.blade.php
menampilkan
halaman
View create.blade.php menggunakan metode laravel
collective.
3.
View edit.blade.php
View edit.blade.php merupakan sintaks yang menampilkan tampilan
edit kategori. Sintaksnya dapat dilihat pada Kode Program 4.34.
@extends('layouts.app')
89
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<h3>Edit {{ $category->title }}</h3>
{!! Form::model($category, ['route'=>
['categories.update', $category], 'method'=>'patch']) !!}
@include('categories._form', ['model'=>$category])
{!! Form::close() !!}
</div>
</div>
</div>
@endsection
Kode Program 4. 34 View edit.blade.php
Kode Program 4.34 merupakan sintaks yang digunakan untuk
menampilkan tampilan edit kategori pada website Toko Online Tipro. Edit
kategori berupa button edit yang menampilkan halaman _form.blade.php. View
edit.blade.php
4.
menggunakan metode laravel collective.
View index.blade.php
View index.blade.php merupakan sintaks yang menampilkan tampilan
pada bagian hasil pembuatan kategori. Sintaksnya dapat dilihat pada Kode
Program 4.35.
@extends('layouts.app')
@section('content')
<div class="container" style="background-color:powderblue; borderradius: 20px;">
<div class="row">
<div class="col-md-12">
<h3>Category <small ><a
href="{{route('categories.create')}}" class="btn btn-warning btnsm">New Category</a></small></h3>
{!! Form::open(['url'=>'categories', 'method'=>'get',
'class'=>'form-inline']) !!}
<div class="form-group {!! $errors->has('q') ? 'haserror':'' !!}">
{!! Form::text('q', isset($q)? $q : null,
['class'=>'form-control', 'placeholder'=>'Type Category']) !!}
{!! $errors->first('q', '<p class="helpblock">:massage</p>') !!}
</div>
{!! Form::submit('Search', ['class'=>'btn btn-primary'])
!!}
{!! Form::close() !!}
<table class="table table-hover">
<thead>
<tr>
90
<td>Title</td>
<td>Parent</td>
<td>Action</td>
</tr>
</thead>
<tbody>
@foreach($categories as $category)
<tr>
<td>{{$category->title}}</td>
<td>{{$category->parent ? $category->parent>title : ''}}</td>
<td>
{!! Form::model($category,
['route'=>['categories.destroy', $category], 'method'=>'delete',
'class'=>'form-inline']) !!}
<a href="{{route('categories.edit',
$category->id)}}">Edit</a> |
{!! Form::submit('delete',['class'=>'btn
btn-xs btn-danger js-submit-confirm']) !!}
{!! Form::close() !!}
</td>
</tr>
@endforeach
</tbody>
</table>
{{$categories->appends(compact('q'))->links()}}
</div>
</div>
</div>
@endsection
Kode Program 4. 35 View index.blade.php
Kode Program 4.35 merupakan sintaks yang digunakan untuk
menampilkan tampilan bagian menampilkan hasil pembuatan kategori pada
_form.blade.php.
View index.blade.php dapat menampilkan action delete dan
edit. View index.blade.php menggunakan metode laravel collective.
4.2.3.5 Checkout
Folder checkout merupakan tampilan yang berisi tampilan proses
transaksi yang dilakukan oleh user. Sintaks dari folder checkout dapat dilihat
sebagai berikut.
1.
View _address-choose-form.blade.php
View_address-choose-form.blade.php
merupakan
sintaks
yang
menampilkan alamat user. Sintaksnya dapat dilihat pada Kode Program 4.36.
{!! Form::open(['url'=>'/checkout/address', 'method'=>'post',
'class'=>'form-horizontal']) !!}
<div class="form-group {!! $errors->has('address_id') ? 'has-
91
error' : '' !!}">
{!! Form::label('address_id', 'Pilih Alamat',
['class'=>'col-md-4 control-label']) !!}
<div class="col-md-6">
@foreach(auth()->user()->addresses as $address)
<div class="row">
<div class="col-md-1">
<label>
{!! Form::radio('address_id', $address>id, null) !!}
</label>
</div>
<div class="col-md-11">
<address>
<strong>{{ $address->name }}</strong><br>
{{ $address->detail }} <br>
{{ $address->regency->name }}, {{ $address>regency->province->name }} <br>
<abbr title="Phone">P:</abbr> +62 {{ $address>phone }}
</address>
</div>
</div>
@endforeach
<div class="row">
<div class="col-md-1">
<label>
{!! Form::radio('address_id', 'newaddress', null) !!}
</label>
</div>
<div class="col-md-11">
<strong>Alamat Baru</strong>
</div>
</div>
<div class="row">
{!! $errors->first('address_id', '<p class="helpblock">:message</p>') !!}
</div>
</div>
</div>
<div id="js-new-address">
@include('checkout._address-field')
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
{!! Form::button('Lanjut <i class="fa fa-arrowright"></i>', array('type'=>'submit', 'class'=>'btn btn-primary'))
!!}
</div>
</div>
{!! Form::close() !!}
Kode Program 4. 36 View _address-choose-form.blade.php
Kode Program 4.36 merupakan sintaks yang digunakan untuk
menampilkan alamat user yang akan memesan produk pada website Toko Online
92
Tipro. View _address-choose-form.blade.php dapat meng-inputkan alamat
user pada saat melakukan transaksi pembelian barang. View _address-chooseform.blade.php
2.
menggunakan metode laravel collective.
View _address-field.blade.php
View
_address-field.blade.php
merupakan
sintaks
yang
menampilkan tampilan untuk meng-inputkan alamat. Sintaksnya dapat dilihat
pada Kode Program 4.37.
<div class="form-group {!! $errors->has('name') ? 'has-error' : ''
!!}">
{!! Form::label('name', 'Nama', ['class'=>'col-md-4 controllabel']) !!}
<div class="col-md-6">
{!! Form::text('name', null, ['class'=>'form-control'])
!!}
{!! $errors->first('name', '<p class="helpblock">:message</p>') !!}
</div>
</div>
<div class=" form-group {!! $errors->has('detail') ? 'has-error'
: ''!!}">
{!! Form::label('detail', 'Alamat', ['class'=>'col-md-4
control-label']) !!}
<div class="col-md-6">
{!! Form::textarea('detail', null, ['class'=>'form-control',
'row'=>3]) !!}
{!! $errors->first('detail', '<p class="helpblock">:message</p>') !!}
</div>
</div>
<div class="form-group {!! $errors->has('province_id') ? 'haserror' : '' !!}">
{!! Form::label('province_id', 'Provinsi', ['class' => 'colmd-4 control-label']) !!}
<div class="col-md-6">
{!! Form::select('province_id',
[''=>'']+DB::table('provinces')->lists('name', 'id'),null,
['class'=>'form-control', 'id'=>'province_selector']) !!}
{!! $errors->first('province_id', '<p class="helpblock">:message</p>') !!}
</div>
</div>
<div class="form-group {!! $errors->has('regency_id') ? 'haserror' : '' !!}">
{!! Form::label('regency_id', 'Kabupaten/Kota',
['class'=>'col-md-4 control-label'])
93
!!}
<div class="col-md-6">
{!! Form::select('regency_id',
old('province_id') !== null ? DB::table('regencies')->where
('province_id', old('province_id'))->lists('name', 'id') : [],
old('regency_id'), ['class'=>'form-control',
'id'=>'regency_selector']) !!}
{!! $errors->first('regency_id','<p class-"helpblock">:message</p>') !!}
</div>
</div>
<div class="form-group {!! $errors->has('phone') ? 'has-error' :
'' !!}">
{!! Form::label('phone','Telepon', ['class'=>'col-md-4
control-label']) !!}
<div class="col-md-6">
<div class="input-group">
<div class="input-group-addon">+62</div>
{!! Form::text('phone', null, ['class'=>'formcontrol']) !!}
</div>
{!! $errors->first('phone', '<p class="helpblock">:message</p>') !!}
</div>
</div>
Kode Program 4. 37 View _address-field.blade.php
Kode Program 4.37 merupakan sintaks yang digunakan untuk
menampilkan input alamat user pada website Toko Online Tipro. View _addressfield.blade.php
form.blade.php.
memasukkan
alamat
pada
blade
_address-choose-
View _address-field.blade.php menggunakan metode
laravel collective.
3.
View _address-new-form.blade.php
View_address-new-form.blade.php
merupakan
sintaks
yang
menampilkan lantujan proses transaksi. Sintaksnya dapat dilihat pada Kode
Program 4.38.
{!! Form::open(['url'=>'/checkout/address', 'method'=>'post',
'class'=>'form-horizontal']) !!}
@include('checkout._address-field')
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
{!! form::button('Lanjut<i class="fa fa-arrowright"></i>', array('type'=>'submit', 'class'=>'btn btn-primary'))
!!}
</div>
</div>
94
{!! Form::close() !!}
Kode Program 4. 38 View _address-new-form.blade.php
Kode Program 4.38 merupakan sintaks yang digunakan untuk
menampilkan button untuk melanjutkan proses transaksi pada website Toko
Online Tipro . View_address-new-form.blade.php akan menampilkan proses
transaksi
pada
form.blade.php
4.
blade
_address-field.blade.php.
View_address-new-
menggunakan metode laravel collective.
View _cart-panel.blade.php
View _cart-panel.blade.php merupakan sintaks yang menampilkan
cart belanja dari user. Sintaksnya dapat dilihat pada Kode Program 4.39.
<div class="panel panel-default">
<div class="panel-heading">Cart</div>
<div class="panel-body"style="background-color:powderblue;
border-radius: 4px;">
<table class="table table-condensed">
<thead>
<tr>
<th style="width:50%">Produk</th>
<th style="width:20%">Jumlah</th>
<th style="width:30%">Harga</th>
</tr>
</thead>
<tbody>
@foreach($cart->details() as $order)
<tr>
<td datath="Produk">{{$order['detail']['name']}}</td>
<td data-th="Jumlah" class="text-center">
{{$order['quantity']}}
</td>
<td data-th="Harga" class="textright">{{number_format($order['detail']['price'])}}</td>
</tr>
<tr>
<td data-th="Subtotal">Subtotal</td>
<td data-th="Subtotal" class="text-right"
colspan="2">Rp{{number_format($order['subtotal'])}}</td>
</tr>
@endforeach
</tbody>
<tfoot>
@if(request()->is('checkout/payment'))
<tr>
<td data-th="Subtotal"><strong>Ongkos
Kirim</strong></td>
<td data-th="subtotal" class="text-right"
colspan="2"><strong>Rp{{number_format($cart>shipingFee())}}</strong></td>
95
</tr>
<tr>
<td><strong>Total</strong></td>
<td class="text-right"
colspan="2"><strong>{{number_format($cart->totalPrice()+$cart>shipingFee())}}</strong></td>
</tr>
@else
<tr>
<td><strong>total</strong></td>
<td class="textright"colspan="2"><strong>{{number_format($cart>totalPrice())}}</strong></td>
</tr>
@endif
</tfoot>
</table>
</div>
</div>
Kode Program 4. 39 View _cart-panel.blade.php
Kode Program 4.39 merupakan sintaks yang digunakan untuk
menampilkan cart belanja pada website Toko Online Tipro. Cart belanja pada
View_cart-panel.blade.php terdapat nama produk, jumlah produk, harga
produk, subtotal harga, dan ongkos kirim pada website Toko Online Tipro. Cart
berfungsi sebagai keranjang barang user yang berguna untuk menyimpan barang
yang akan dibeli.
5.
View _login-form.blade.php
View _login-form.blade.php merupakan sintaks yang menampilkan
tampilan login. Sintaksnya dapat dilihat pada Kode Program 4.40.
{!!
Form::open(['url'=>'/checkout/login',
'method'=>'post',
'class'=>'form-horizontal']) !!}
<div class="form-group {!! $errors->has('email') ? 'has-error' :''
!!}">
{!!
Form::label('email','Email',
['class'=>'col-md-4
controllabel']) !!}
<div class="col-md-6">
{!! Form::email('email', null, ['class'=>'form-control'])
!!}
{!!
$errors->first('email','<p
class="helpblock">:message</p>') !!}
</div>
</div>
<div class="form-group {!! $errors->has('is_guest') ? 'has-error'
: ''!!}">
<div class="col-md-6 col-md-offset-4 radio">
<p><label>{{ Form::radio('is_guest', 1, true)}}Saya adalah
96
pelanggan baru</label></p>
<p><label>{{Form::radio('is_guest',
0)}}
pelanggan tetap</label></p>
{!!
$errors->first('is_guest','<p
block">:message</p>') !!}
</div>
</div>
Saya
adalah
class="help-
<div class="form-group{!! $errors->has('checkout_password')
?
'has-error' : '' !!}">
{!! Form::label('checkout_password','Password',['class'=>'colmd-4 control-label']) !!}
<div class="col-md-6">
{!!
Form::password('checkout_password',['class'=>'formcontrol']) !!}
{!!
$errors->first('checkout_password','<p
class="helpblock">:message</p>') !!}
<a href="{{url('/password/reset')}}">Lupa kata sandi ?</a>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
{!!
Form::button('Lanjut<i
class="fa
fa-arrowright"></i>', array('type'=>'submit', 'class'=>'btn btn-primary'))
!!}
</div>
</div>
{!! Form::close() !!}
Kode Program 4. 40 View _login-form.blade.php
Kode Program 4.40 merupakan sintaks yang digunakan untuk
menampilkan tampilan login pada website Toko Online Tipro. Tampilan login
dapat memasukkan e-mail, radio button, password dan button lanjut. Login
berfungsi untuk user yang akan melakukan transaksi pada website Toko Online
Tipro.
6.
View _payment-form.blade.php
View
_payment-form.blade.php
merupakan
sintaks
yang
menampilkan pembayaran oleh user yang akan membeli produk. Sintaksnya dapat
dilihat pada Kode Program 4.41.
{!! Form::open(['url'=>'/checkout/payment', 'method'=>'post',
'class'=>'form-horizontal']) !!}
<div class="form-group {!! $errors->has('bank_name') ? 'haserror' : '' !!}">
{!! Form::label('bank_name', 'Pilih Bank Yang Anda
Gunakan', ['class'=>'col-md-4 control-label']) !!}
<div class="col-md-6">
97
{!! Form::select('bank_name', bankList(), null,
['class'=>'form-control js-selectize']) !!}
{!! $errors->first('bank_name', '<p class="helpblock">:message</p>') !!}
</div>
</div>
<div class="form-group {!! $errors->has('sender') ? 'haserorr' : '' !!}">
{!! Form::label('sender', 'Name Pengirim', ['class'=>'colmd-4 control-label']) !!}
<div class="col-md-6">
{!! Form::text('sender', null, ['class'=>'formcontrol']) !!}
{!! $errors->first('sender', '<p class="helpblock">:message</p>') !!}
</div>
</div>
<div class="form-group ">
<div class="col-md-6 col-md-offset-4">
{!! Form::button('<i class="fa fa-lock"></i>Konfirmasi
Pesan', array('type'=>'submit', 'class'=>'btn btn-primary')) !!}
</div>
</div>
{!! Form::close() !!}
Kode Program 4. 41 View _payment-form.blade.php
Kode Program 4.41 merupakan sintaks yang digunakan untuk
menampilkan tampilan pembayaran pada website Toko Online Tipro. View
_payment-form.blade.php
menampilkan tampilan pembayaran menggunakan
bank dengan memasukkan nama pengirim dan button konfirmasi.
7.
View_step.blade.php
View_step.blade.php merupakan sintaks yang menampilkan langkah-
langkah belanja ketika user akan melakukan transaksi. Sintaksnya dapat dilihat
pada Kode Program 4.42.
<div class="row">
<div class="col-xs-12">
<ul class="nav nav-pills nav-justified thumbnail setuppanel">
<li class="{{Request::is('checkout/login') ? 'active'
:
'disabled'}}"><a><h4
class="list-group-itemheading">Login</h4></a></li>
<li
class="{{Request::is('checkout/address')
?
'active' : 'disabled'}}"><a>
<h4 class="list-group-item-heading">Alamat</h4>
</a></li>
<li
class="{{Request::is('checkout/payment')
?
'active' : 'disabled'}}"><a>
<h4
class="list-group-item-
98
heading">Pembayaran</h4>
</a></li>
</ul>
</div>
</div>
Kode Program 4. 42 View_step.blade.php
Kode Program 4.42 merupakan sintaks yang digunakan untuk
menampilkan langkah-langkah belanja pada website Toko Online Tipro.
View_step.blade.php menampilkan langkah-langkah belanja yang dilakukan
user ketika akan melakukan transaksi. Langkah-langkah tersebut diawali dari
melakukan login, kemudian menentukan alamat pengiriman, dan menentukan atau
melakukan pembayaran.
8.
View address.blade.php
View address.blade.php merupakan sintaks yang menampilkan alamat
yang di-input oleh user. Sintaksnya dapat dilihat pada Kode Program 4.43.
@extends('layouts.app')
@section('content')
<div class="container">
@include('checkout._step')
<div class="row">
<div class="col-xs-8">
<div
class="panel
panel-default"
style="background-color:powderblue; border-radius: 20px;">
<div class="panel-heading">
Alamat Pengirim
</div>
<div class="panel-body">
@if(auth()->check())
@include('checkout._address-chooseform')
@else
@include('checkout._address-new-form')
@endif
</div>
</div>
</div>
<div class="col-xs-4">
@include('checkout._cart-panel')
</div>
</div>
</div>
@endsection
Kode Program 4. 43 View address.blade.php
Kode Program 4.43 merupakan sintaks yang digunakan untuk
menampilkan
alamat
user
pada
website
Toko
Online
Tipro.
View
99
address.blade.php
merupakan sebagai tempat untuk memanggil blade seperti
_address-choose-form.php
9.
dan _address-new-form.php.
View login.blade.php
View login.blade.php merupakan sintaks yang menampilkan tampilan
login. Sintaksnya dapat dilihat pada Kode Program 4.44.
@extends('layouts.app')
@section('content')
<div class="container">
@include('checkout._step')
<div class="row">
<div class="col-xs-8">
<div class="panel panel-default">
<div class="panel-heading">
Login atau Checkout Tanpa Mendaftar
</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{session('status')}}
</div>
@endif
@include('checkout._login-form')
</div>
</div>
</div>
<div class="col-xs-4">
@include('checkout._cart-panel')
</div>
</div>
</div>
@endsection
Kode Program 4. 44 View login.blade.php
Kode Program 4.44 merupakan sintaks yang digunakan untuk
menampilkan tampilan login pada website Toko Online Tipro. View
login.blade.php
merupakan sebagai tempat untuk memanggil blade seperti
_login-form.blade.php.
10.
View payment.blade.php
View payment.blade.php
merupakan sintaks untuk menampilkan
pembayaran yang dilakukan oleh user. Sintaksnya dapat dilihat pada Kode
Program 4.45.
100
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-xs-8">
<div class="panel panel-default">
<div class="panel-heading">
Pembayaran
</div>
<div class="panel-body"style="backgroundcolor:powderblue; border-radius: 4px;">
@include('checkout._payment-form')
</div>
</div>
</div>
<div class="col-xs-4">
@include('checkout._cart-panel')
</div>
</div>
</div>
@endsection
Kode Program 4. 45 View payment.blade.php
Kode Program 4.45 merupakan sintaks yang digunakan untuk
menampilkan tampilan pembayaran pada website Toko Online Tipro. View
payment.blade.php
merupakan sebagai tempat pembayaran untuk memanggil
blade seperti _payment-form.blade.php dan _cart-panel.blade.php pada
folder checkout.
11.
View success.blade.php
View success.blade.php
merupakan sintaks yang menampilkan
tampilan success saat berhasil melakukan transaksi. Sintaksnya dapat dilihat pada
Kode Program 4.46.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Berhasil!</h3>
</div>
<div class="panel-body">
<p>Hi <strong>{{ session('order')->user->name
}}</strong></p>
<p></p>
101
<p>Terima Kasih Telah Berbelanja Di TIPro.<br>
Untuk Melakukan Pembayaran Dengan {{
config('bank-accounts')[session('order')->bank]['title'] }}</p>
<ol>
<li>Silahkan transfer ke rekening
<strong>{{ config('bank-accounts')[session('order')->bank]['bank']
}} {{ config('bank-accounts')[session('order')->bank]['number'] }}
An. {{ config('bank-accounts')[session('order')->bank]['name']
}}</strong>.</li>
<li>Ketika Melakukan Pembayaran Sertakan
nomor pesanan <strong>{{ session('order')->padded_id
}}</strong></li>
<li>Total Pembayaran <strong>Rp{{
number_format(session('order')->total_payment) }}</strong></li>
</ol>
</div>
<div class="panel-footer"><a href="/">Lanjutkan
Belanja</a></div>
</div>
</div>
</div>
</div>
</div>
@endsection
Kode Program 4. 46 View success.blade.php
Kode Program 4.46 merupakan sintaks yang digunakan untuk
menampilkan tampilan success saat berhasil melakukan transaksi pada website
Toko Online Tipro. View payment.blade.php menampilkan perintah success
saat berhasil melakukan pembayaran dan kemudian menampilkan rekening sesuai
bank yang dipilih.
4.2.3.6 Customer
Folder Customer merupakan salah satu tampilan dari view. View
Customer terdiri dari beberapa bagian yaitu View view-orders.blade.php yang
dijelaskan sebagai berikut.
1.
View view-orders.blade.php
View view-orders.blade.php merupakan sintaks yang menampilkan
tampilan view order. Sintaksnya dapat dilihat pada Kode Program 4.47.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
{!! Form::open(['url'=>'home/orders',
102
'method'=>'get', 'class'=>'form-inline']) !!}
<div class="form-group {!! $errors->has('q') ? 'haserror' : ''!!}">
{!! Form::text('q', isset($q) ? $q : null,
['class'=>'form-control', 'placeholder'=>'Order ID']) !!}
{!! $errors->first('q', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('status') ?
'has-error' : '' !!}">
{!! Form::text('q', isset($q) ? $q : null,
['class'=>'form-control', 'placeholder'=>'Order ID']) !!}
{!! Form::select('status', [''=>'Semua
Status']+App\Order::statusList(), isset($status) ? $status : null,
['class'=>'form-control']) !!}
{!! $errors->first('status', '<p class="helpblock">:message</p>') !!}
</div>
{!! Form::submit('Cari', ['class'=>'btn btnprimary']) !!}
{!! Form::close() !!}
<table class="table">
<thead>
<tr>
<td>Order #</td>
<td>Tanggal Order</td>
<td>Status</td>
<td>Pembayaran</td>
<td>Detail</td>
</tr>
</thead>
<tbody>
@forelse( $orders as $order)
<tr>
<td>{{ $order->padded_id}}</td>
<td>{{ $order->created_at}}</td>
<td>{{ $order->human_status}}</td>
<td>
Total :
<strong>{{number_format($order->total_payment)}}</strong><br>
Transfer ke : {{ config('bankaccounts')[$order->bank]['bank']}} An. {{ config('bankaccounts')[$order->bank]['name'] }} {{ config('bankaccounts')[$order->bank]['number'] }}<br>
Dari : {{$order->sender}}
</td>
<td>
@include('orders._details',
compact('order'))
</td>
</tr>
@empty
<tr>
<td colspan="4">Tidak Ada order yang
ditemukan</td>
</tr>
103
@endforelse
</tbody>
</table>
{!! $orders->appends(compact('q', 'status'))>links() !!}
</div>
</div>
</div>
@endsection
Kode Program 4. 47 View edit.blade.php
Kode Program 4.47 merupakan sintaks yang digunakan untuk admin
yang dimana admin dapat mengkonfirmasi pembayaran pelanggan. Data yang
digunakan untuk memvalidasikan adalah status dimana status akan di-update oleh
admin pada saat user sudah melakukan pembayaran dengan mengirimkan bukti
pembayaran.
4.2.3.7 Errors
Folder Errors merupakan salah satu tampilan error dari view. View
Errors terdiri dari beberapa bagian yaitu View 404.blade.php dan View
503.blade.php
1.
yang dijelaskan sebagai berikut.
View 404.blade.php
View 404.blade.php merupakan sintaks yang menampilkan tampilan
error. Sintaksnya dapat dilihat pada Kode Program 4.48.
<!DOCTYPE html>
<html>
<head>
<title>Page Not Found</title>
<link
href="https://fonts.googleapis.com/css?family=Lato:100"
rel="stylesheet" type="text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
color: black;
display: table;
font-weight: 100;
font-family: 'serif';
}
104
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 60px;
margin-bottom: 20px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<div class="content">
<div class="title"><h3>Page Not Found</h3></div>
<a href="{{ url('/')}}"><h4>back to home</h4></a>
</div>
</div>
</body>
</html>
Kode Program 4. 48 404.blade.php
Kode Program 4.48 merupakan sintaks yang digunakan untuk
menampilkan tampilan error pada website Toko Online Tipro. View
404.blade.php
akan menampilkan halaman yang berisi tampilan “Page Note
Found”.
4.2.3.8 Layout
Folder Layout merupakan salah satu tampilan dari view. View Layout
terdiri dari beberapa bagian yaitu View app.blade.php yang dijelaskan sebagai
berikut.
1.
View app.blade.php
View app.blade.php merupakan sintaks yang menampilkan tampilan
edit kategori. Sintaksnya dapat dilihat pada Kode Program 4.49.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
105
scale=1">
<title>TOKO ONLINE TIPRO</title>
<link
href="https://fonts.googleapis.com/css?family=Lato:100,300,400,700
" rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="{{ URL::to('/')
}}/themes/img/iya.ico">
<link href="{{ asset(elixir('css/app.css')) }}"
rel="stylesheet">
<style>
body {
font-family: 'Lato';
}
.fa-btn {
margin-right: 6px;
}
</style>
</head>
<body id="app-layout">
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle
collapsed" data-toggle="collapse" data-target="#app-navbarcollapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="{{ url('/') }}">
<img src="{{ URL::to('/')
}}/themes/img/ITPrognet.png" alt="" style="height: 25px;">
</a>
</div>
<div class="collapse navbar-collapse" id="app-navbarcollapse">
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
@if(Auth::check())
<!-- <li><a href="{{ url('/home')
}}">Home</a></li> -->
@can('admin-access')
<li class="dropdown">
<a href="#" class="dropdown-toggle" datatoggle="dropdown" role="button" aria-expanded="false">
Manage <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li><a href="{{
106
route('categories.index')}}"><i class="fa fa-btn fatags"></i>Categories</a></li>
<li><a href="{{
route('products.index')}}"><i class="fa fa-gift">
Products</i></a></li>
<li><a href="{{ route('orders.index')
}}"><i class="fa fa-btn fa-shopping-cart"></i>Orders</a></li>
<li><a href="{{ url('/dashboard')
}}"><i class="fa fa-user fa-fw"></i>Dashboard</a></li>
</ul>
</li>
@endcan
@endif
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@include('layouts._customer-feature',
['partial_view'=>'layouts._cart-menu-bar'])
@if (Auth::guest())
<li><a href="{{ url('/login')
}}">Login</a></li>
<li><a href="{{ url('/register')
}}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle"
data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span
class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
@if(Auth::check())
@can('admin-access')
<li><a href="{{url('profile/edit')
}}"><i class="fa fa-user-md"></i>Profile</a></li>
@endcan
@endif
<li><a href="{{ url('/logout')
}}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
</ul>
</li>
@endif
</ul>
</div>
</div>
</nav>
@if(session()->has('flash_notification.message'))
<div class="container">
<div class="alert alert-{{session()>get('flash_notification.level')}}">
<button type="button" class="close" datadismis="alert" aria-hidden="true">×</button>
{{session()->get('flash_notification.message')}}
</div>
</div>
107
@endif
@yield('content')
<script src="{{ asset(elixir('js/all.js')) }}"></script>
@if(Session::has('flash_product_name'))
@include('catalogs._product-added', ['product_name'=>
Session::get('flash_product_name')])
@endif
</body>
</html>
Kode Program 4. 49 View app.blade.php
Kode Program 4.50 merupakan sintaks yang digunakan untuk
menampilkan tampilan utama pada website Toko Online Tipro. View
app.blade.php
menampilkan tampilan keseluruhan dari website Toko Online
Tipro.
4.2.3.9 Orders
Folder Orders merupakan salah satu tampilan dari view. View Orders
terdiri
dari
beberapa
_form.blade.php,
bagian
yaitu
_details.blade.php,
View
View edit.blade.php, dan View index.blade.php
yang dijelaskan sebagai berikut.
1.
View _details.blade.php
View _details.blade.php merupakan sintaks yang menampilkan
tampilan detail order. Sintaksnya dapat dilihat pada Kode Program 4.50.
<table class="table table-condensed">
<thead>
<tr>
<th style="width:50%">Produk</th>
<th style="width:20%">Jumlah</th>
<th style="width:30%">Harga</th>
</tr>
</thead>
<tbody>
@foreach($order->details as $detail)
<tr>
<td data-th="Produk">{{$detail->product->name}}</td>
<td
data-th="Jumlah"
class="text-center">{{$detail>quantity}}</td>
<td
data-th="Harga"
class="textright">{{number_format($detail->price)}}</td>
</tr>
<tr>
<td data-th="Subtotal">Subtotal</td>
<td
data-th="Subtotal"
class="text-right"
108
colspan="2">Rp{{number_format($detail->total_price)}}</td>
</tr>
@endforeach
<tr>
<td
data-th="Subtotal"><strong>Ongkos
Kirim</strong></td>
<td
data-th="Subtotal"
class="text-right"
colspan="2">{{ number_format($order->total_fee) }}</td>
</tr>
<tr>
<td><strong>Total</strong></td>
<td
class="text-right"
colspan="2"><strong>Rp{{
number_format($order->total_payment) }}</strong></td>
</tr>
</tbody>
</table>
Kode Program 4. 50 View edit.blade.php
Kode Program 4.50 merupakan sintaks yang digunakan untuk
menampilkan detail order yaitu produk, jumlah dan harga yang dibeli. Produk
yang dibeli akan ditotal lalu dimasukan ke tabel orders dan detailsorder.
2.
View _form.blade.php
View _form.blade.php merupakan sintaks yang menampilkan tampilan
form order. Sintaksnya dapat dilihat pada Kode Program 4.51.
<div class="form-group">
<div class="row">
<div class="col-md-4 text-right">
<label>Order #</label>
</div>
<div class="col-md-6">
{{ $order->padded_id }}
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-4 text-right">
<label>Customer</label>
</div>
<div class="col-md-6">
{{ $order->user->name}}
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-4 text-right">
<label>Alamat Pengirim</label>
</div>
109
<div class="col-md-6">
<address>
<strong>{{$order->address->name}}</strong><br>
{{$order->address->detail}}<br>
{{$order->address->regency->name}}, {{$order>address->regency->province->name}}<br>
<abbr title="Phone">P:</abbr>+62{{$order->address>phone}}
</address>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-4 text-right">
<label>Detail</label>
</div>
<div class="col-md-6">
@include('orders._details', compact('order'))
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-4 text-right">
<label class="control-label">Status</label>
</div>
<div class="col-md-6">
{!! Form::select('status', App\Order::statusList(),
null, ['class'=>'form=control']) !!}
{!! $errors->first('status', '<p class="helpblock">:message</p>') !!}
</div>
</div>
</div>
{!! Form::submit('Simpan', ['class'=>'btn btnprimary']) !!}
Kode Program 4. 51 View _form.blade.php
Kode Program 4.51 merupakan sintaks yang digunakan untuk
menampilan order, customer, alamat pengirim, phone, detail product. View dapat
dilihat dari _detail.blade.php, status dan button simpan.
3.
View edit.blade.php
View edit.blade.php merupakan sintaks yang menampilkan tampilan
edit order. Sintaksnya dapat dilihat pada Kode Program 4.52.
@extends('layouts.app')
@section('content')
<div class="container">
110
<div class="row">
<div class="col-md-12">
<h3>Edit{{ $order->title }}</h3>
{!! Form::model($order,
['route'=>['orders.update', $order], 'method'=>'patch',
'class'=>'form-horizontal']) !!}
@include('orders._form', ['model'=>$order])
{!! Form::close() !!}
</div>
</div>
</div>
@endsection
Kode Program 4. 52 View edit.blade.php
Kode Program 4.52 merupakan sintaks yang digunakan untuk
menampilkan tampilan untuk mengesekusi button simpan pada tampilan blade
_form.blade.php.
4.
View index.blade.php
View index.blade.php merupakan sintaks yang menampilkan tampilan
order. Sintaksnya dapat dilihat pada Kode Program 4.53.
@extends('layouts.app')
@section('content')
<div class="container" style="background-color:powderblue;
border-radius: 20px;">
<div class="row">
<br></br>
<div class="col-md-12">
{!! Form::open(['url'=>'orders', 'method'=>'get',
'class'=>'form-inline']) !!}
<div class="form-group {{ $errors->has('q') ? 'haserrot' : '' }}">
{!! Form::text('q', isset($q) ? $q : null,
['class'=>'form-control', 'placeholder'=>'Order ID/Customer...'])
!!}
{!! $errors->first('q', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('status') ?
'has-error' : '' !!}">
{!! Form::select('status', [''=>'Semua
Status']+App\Order::statusList(), isset($status) ? $status : null,
['class'=>'form-control']) !!}
{!! $errors->first('status', '<p class="helpblock">:message</p>') !!}
</div>
{!! Form::submit('Cari', ['class'=>'btn btn-primary'])
!!}
{!! Form::close() !!}
<br></br>
<table class="table table-hover">
111
<thead>
<tr>
<td>Order #</td>
<td>Customer</td>
<td>Status</td>
<td>Pembayaran</td>
<td>Update Terakhir</td>
</tr>
</thead>
@forelse($orders as $order)
<tbody>
<tr>
<td><a href="{{ route('orders.edit',
$order->id) }}">{{ $order->padded_id }}</a></td>
<td>{{ $order->user->name }}</td>
<td>{{ $order->human_status }}</td>
<td>
Total : <strong>{{
number_format($order->total_payment) }}</strong><br>
Transfer ke : {{ config('bankaccounts')[$order->bank]['bank'] }} <br>
Dari : {{ $order->sender }}
</td>
<td>{{ $order->updated_at }}</td>
</tr>
@empty
<tr>
<td colspan="4">Tidak Ada Order Yang
ditemukan</td>
</tr>
@endforelse
</tbody>
</table>
{!! $orders->appends(compact('status', 'q'))>links() !!}
</div>
</div>
</div>
@endsection
Kode Program 4. 53 View index.blade.php
Kode Program 4.53 merupakan sintaks View index.blade.php. Sintaks
ini View index.blade.php digunakan untuk menampilkan orders yang terdapat
beberapa fungsi yaitu melakukan pencarian berdasarkan order id atau customer
dan berdasarkan status pembayaran.
4.2.3.10 Product
Folder Product merupakan salah satu tampilan dari view. View Product
terdiri
dari
beberapa
create.blade.php,
bagian
yaitu
View
_form.blade.php,
View
View create.blade.php, dan View create.blade.php
yang dijelaskan sebagai berikut.
112
1.
View _form.blade.php
View _form.blade.php merupakan sintaks yang menampilkan tampilan
form untuk melakukan input produk baru. Sintaksnya dapat dilihat pada Kode
Program 4.54.
<div class="form-group {!! $errors->has('name') ? 'has-error' : ''
!!}">
{!! Form::label('name', 'Name') !!}
{!! Form::text('name',null, ['class'=>'form-control']) !!}
{!! $errors->first('name', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('model') ? 'has-error' :
'' !!}">
{!! Form::label('model', 'Model') !!}
{!! Form::text('model',null, ['class'=>'form-control']) !!}
{!! $errors->first('model', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('price') ? 'has-error' :
'' !!}">
{!! Form::label('price', 'Price') !!}
{!! Form::text('price', null, ['class'=>'form-control']) !!}
{!! $errors->first('price', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('category_lists') ? 'haserror' : '' !!}">
{!! Form::label('category_lists', 'Categories') !!}
{!! Form::select('category_lists[]',
[''=>'']+App\Category::lists( 'title','id')->all(), null,
['class'=>'form-control js-selectize','multiple']) !!}
{!! $errors->first('category_lists', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group{!! $errors->has('weight') ? 'has-error' :
'' !!}">
{!! Form::label('weight', 'Berat (Gram)') !!}
{!! Form::number('weight', null, ['class'=>'form-control'])
!!}
{!! $errors->first('weight', '<p class="helpblock">:message</p>') !!}
</div>
<div class="form-group{!! $errors->has('description') ? 'haserror' : '' !!}">
{!! Form::label('description', 'Description') !!}
{!! Form::textarea('description', null, ['class'=>'formcontrol']) !!}
{!! $errors->first('description', '<p class="help-
113
block">:message</p>') !!}
</div>
<div class="form-group {!! $errors->has('photo') ? 'has-error' :''
!!}">
{!! Form::label('photo', 'Product photo (jpeg, png, jpg)') !!}
{!! Form::file('photo') !!}
{!! $errors->first('photo', '<p class="helpblock">:message</p>') !!}
@if(isset($model) && $model->photo !== '')
<div class="row">
<div class="col-sm-6">
<p>Current Photo :</p>
<div class="thumbnail">
<img src="{{ url('/img/' . $model->photo) }}"
class="img-rounded">
</div>
</div>
</div>
@endif
</div>
{!! Form::submit(isset($model) ? 'Update' : 'Save',
['class'=>'btn btn-primary']) !!}
Kode Program 4. 54 View _form.blade.php
Kode Program 4.54 merupakan sintaks View _form.blade.php.
Sintaks View _form.blade.php digunakan untuk menampilkan tampilan untuk
memasukkan nama, model, harga, kategori, berat, deskripsi, photo dan button
submit pada produk.
2.
View create.blade.php
View create.blade.php
merupakan sintaks yang menampilkan
tampilan untuk mengeksekusi form. Sintaksnya dapat dilihat pada Kode Program
4.55.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-6"style="backgroundcolor:powderblue; border-radius: 10px;">
<h3>New Product</h3>
{!! Form::open(['route'=>'products.store',
'files'=>'true']) !!}
@include('products._form')
{!! Form::close() !!}
</div>
114
</div>
</div>
@endsection
Kode Program 4. 55 View create.blade.php
Kode Program 4.55 merupakan sintaks View create.blade.php.
Sintaks View create.blade.php merupakan tampilan untuk mengeksekusi
button simpan pada tampilan form.blade.php.
3.
View edit.blade.php
View edit.blade.php merupakan sintaks yang menampilkan tampilan
edit produk. Sintaksnya dapat dilihat pada Kode Program 4.56.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<h3>Edit {{$product->litle}}</h3>
{!! Form::model($product, ['route'=>['products.update',
$product], 'method'=>'patch', 'files'=>true]) !!}
@include('products._form', ['model'=> $product])
{!! Form::close() !!}
</div>
</div>
</div>
@endsection
Kode Program 4. 56 View edit.blade.php
Kode Program 4.56 merupakan sintaks View
_edit.blade.php.
Sintaks View _form.blade.php merupakan tampilan untuk mengeksekusi button
simpan pada tampilan _form.blade.php
.
4.
View index.blade.php
View index.blade.php merupakan sintaks yang menampilkan detail
produk. Sintaksnya dapat dilihat pada Kode Program 4.57.
@extends('layouts.app')
@section('content')
115
<div class="container" style="background-color:powderblue; borderradius: 10px;">
<div class="row">
<div class="col-md-12">
<h3>Product <small><a href="{{route('products.create')
}}" class="btn btn-warning btn-sm">New Product</a></small></h3>
{!! Form::open(['url'=>'products', 'method'=>'get',
'class'=>'form-inline']) !!}
<div class="form-group {!! $errors->has('q') ? 'haserror' :'' !!}">
{!! Form::text('q', isset($q) ? $q :null,
['class'=>'form-control', 'placeholder'=>'Type Nama / Model']) !!}
{!! $errors->first('q', '<p class="helpblock">:message</p>') !!}
</div>
{!! Form::submit('Search',['class'=>'btn btn-primary']
) !!}
{!! Form::close() !!}
</div>
<table class="table table-hover">
<thead>
<!-- <input type="checkbox" id="checkAll"/> Check
all</label> and <a href="">Delete all checked</a> -->
<tr>
<!-- <td>Mark</td> -->
<td>Name</td>
<td>Model</td>
<td>Category</td>
<td>Description</td>
<td>Action</td>
</tr>
</thead>
<tbody>
@foreach($products as $product)
<tr>
<!-- <td><input type="checkbox" name="checkbox[]"
data-id="checkbox"class="cb" value="{{$product->id}}" /></td> -->
<td>{{ $product->name}}</td>
<td>{{ $product->model}}</td>
<td>
@foreach($product->categories as $category)
<span class="label label-primary">
<i class="fa fa-btn fa-tags"></i>
{{$category->title}}</span>
@endforeach
</td>
<td>{{ $product->description}}</td>
<td>
{!!
Form::model($product,['route'=>['products.destroy', $product],
'method'=>'delete', 'class'=>'form-inline']) !!}
<a href="{{route('products.edit', $product>id)}}">Edit</a> |
{!! Form::submit('Delete', ['class'=>'btn btnxs btn-danger js-submit-confirm']) !!}
{!! Form::close() !!}
</td>
</tr>
116
@endforeach
</tbody>
</table>
{{$products->appends(compact('q'))->links() }}
</div>
</div>
@endsection
Kode Program 4. 57 View index.blade.php
Kode Program 4.57 merupakan sintaks View index.blade.php. View
index.blade.php
merupakan tampilan yang menampilan detail produk meliputi
nama, mode, category, description, dan action. Action terdapat fungsi edit dan
delete.
4.2.3.11 Profile
Folder Profile merupakan salah satu tampilan dari view. View Profile
terdiri dari beberapa bagian yaitu View edit.blade.php yang dijelaskan sebagai
berikut.
1.
View edit.blade.php
View edit.blade.php merupakan sintaks yang menampilkan tampilan
edit profile admin. Sintaksnya dapat dilihat pada Kode Program 4.58.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Profile <span
style="color:blue">{{Auth::user()->name }}</span></div>
<div class="panel-body">
<form class="form-horizontal" role="form"
method="POST" action="{{ route('profile.edit') }}">
<!-- <div class="form-group{{ $errors>has('name') ? ' has-error' : '' }}">
<div class="form-group{{ $errors>has('name') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">Name</label>
<div class="col-md-6">
<input type="text" class="formcontrol" name="name" value="{{ Request::old('name') ?:
Auth::user()->name }}">
@if ($errors->has('name'))
117
<span class="help-block">
<strong>{{ $errors>first('name') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors>has('email') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="formcontrol" name="email" value="{{ Request::old('email')
?:Auth::user()->email }}">
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors>first('email') }}</strong>
</span>
@endif
</div>
</div> -->
<div class="form-group{{ $errors>has('current_password') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">Current Password</label>
<div class="col-md-6">
<input type="password"
class="form-control" name="current_password" placeholder="Current
Password">
@if ($errors>has('current_password'))
<span class="help-block">
<strong>{{ $errors>first('current_password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors>has('password') ? ' has-error' : '' }}">
<label class="col-md-4 controllabel">New Password</label>
<div class="col-md-6">
<input type="password"
class="form-control" name="password" placeholder="New Password">
</div>
</div>
<div class="form-group{{ $errors>has('password_confirmation') ? ' has-error' : '' }}">
118
<label class="col-md-4 controllabel">Confirm Password</label>
<div class="col-md-6">
<input type="password"
class="form-control" name="password_confirmation"
placeholder="Confirm Password">
@if ($errors>has('password_confirmation'))
<span class="help-block">
<strong>{{ $errors>first('password_confirmation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn
btn-primary">
<i class="fa fa-btn fauser"></i>Update
</button>
</div>
</div>
<input type="hidden" name="_token"
value="{{Session::token()}}">
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
Kode Program 4. 58 View edit.blade.php
Kode Program 4.58 merupakan sintaks View edit.blade.php.
Sintaks
View edit.blade.php merupakan tampilan untuk mengganti password admin
yang terdapat Current Password, New Password, Confirm Password dan button
Update.
4.2
Uji Coba
Uji coba merupakan beberapa screenshoot tampilan merupakan
gambaran dari fitur-fitur yang terdapat di dalam aplikasi berbasis website yang
telah dibuat, yaitu sebagai berikut.
4.2.1
User
User dalam website Toko Online Tipro dapat melakukan beberapa hal.
Berikut uji coba website Toko Online Tipro dapat dilakukan oleh user. Awalnya
119
user langsung ke halaman home dari website Toko Online Tipro yang dapat
dilihat pada Gambar 4.1.
Gambar 4. 1 Halaman Home Website Toko Online Tipro
Gambar 4.1 merupakan halaman home website Toko Online Tipro yang
dimana merupakan halaman untuk melihat–lihat produk yang ada di website Toko
Online Tipro, jika user menekan salah satu gambar dari produk maka user akan
disuruh login atau register jika sudah memiliki akun. Menu register dapat dilihat
pada Gambar 4.2.
Gambar 4. 2 Halaman Register Website Toko Online Tipro
120
Gambar 4.2 merupakan menu register dari website Toko Online Tipro
dimana user harus memasukkan nama, e-mail, password dan confirm password
untuk melakukan registrasi, setelah melakukan regitrasi maka user harus login.
Halaman login dapat dilihat pada Gambar 4.2.
Gambar 4. 3 Halaman Login Website Toko Online Tipro
Gambar 4.3 merupakan menu login dari website Toko Online Tipro
dimana user harus meng-inputkan e-mail dan password untuk dapat melakukan
transaksi pada website Toko Online Tipro pada menu home, pada menu home user
dapat membeli produk yang dijual dengan cara menekan salah satu produk dan
memasukkan banyaknya produk yang dibeli jika sudah meng-inputkan maka user
dapat melihat data belanja pada menu cart. Halaman cart dapat dilihat pada
Gambar 4.4.
121
Gambar 4. 4 Halaman Cart Website Toko Online Tipro
Gambar 4.4 merupakan menu cart dari website Toko Online Tipro
dimana user dapat melihat apa saja yang sudah di input untuk melakukan
pembelian. Pembelian itu dapat diedit jumlahnya dan juga membatalkan
pembeliannya, setelah selesai mengkonfirmasi maka akan masuk ke menu
pembayaran. Halaman pembayaran dapat dilihat pada Gambar 4.5.
Gambar 4. 5 Halaman Pembayaran Website Toko Online Tipro
Gambar 4.5 merupakan menu pembayaran dari website Toko Online
Tipro dimana user dapat melakukan pembayaran dengan memilih bank yang akan
122
digunakan untuk melakukan pembayaran. Halaman Address User dapat dilihat
pada Gambar 4.6.
Gambar 4. 6 Halaman Address User Website Toko Online Tipro
Gambar 4.6 merupakan menu Address User dari website Toko Online
Tipro dimana user dapat memasukkan nama dan alamat yang dituju untuk
mengirim barang yang akan dibeli.
4.2.2
Admin
Admin dalam website Toko Online Tipro dapat melakukan bebrapa hal.
Berikut uji coba website Toko Online Tipro dapat dilakukan oleh admin. Awalnya
admin akan langsung ke halaman dashboard dari website Toko Online Tipro yang
dapat dilihat pada Gambar 4.7.
123
Gambar 4. 7 Halaman Dashboard Website Toko Online Tipro
Gambar 4.7 merupakan halaman dashboard website Toko Online Tipro
yang dimana merupakan halaman untuk me-manage website Toko Online Tipro.
Admin dapat melakukan manage pada categories, product, order dan statistic
penjualan. Menu categories dapat dilihat pada Gambar 4.8.
Gambar 4. 8 Halaman Categories Website Toko Online Tipro
Gambar 4.8 merupakan menu categories dari website Toko Online Tipro.
Halaman categories terdapat tiga menu yaitu new category, search engine, dan
tampilan category. Admin dapat menambahkan category baru pada menu new
category. Admin dapat melakukan mencarian kategori pada menu search engine.
124
Tampilan category terdapat beberapa field title, parent, dan action Halaman
product dapat dilihat pada Gambar 4.9.
Gambar 4. 9 Halaman Product Website Toko Online Tipro
Gambar 4.9 merupakan menu product dari website Toko Online Tipro.
Halaman categories terdapat tiga menu yaitu new product, search engine, dan
tampilan product. Admin dapat menambahkan product baru pada menu new
product. Admin dapat melakukan mencarian product pada menu search engine.
Tampilan product terdapat beberapa field name, model, category, description dan
action. Halaman order dapat dilihat pada Gambar 4.10.
125
Gambar 4. 10 Halaman Order Website Toko Online Tipro
Gambar 4.10 merupakan menu order dari website Toko Online Tipro.
Halaman order terdapat dua menu yaitu search engine, dan tampilan order. Admin
dapat mengubah status pembayaran. Admin dapat melakukan pencarian order
berdasarkan id user pada menu search engine. Tampilan order terdapat beberapa
field order, customer, status, pembayaran dan update terakhir. Halaman statistic
dapat dilihat pada Gambar 4.11.
Gambar 4. 11 Halaman Statistic Website Toko Online Tipro
126
Gambar 4.11 merupakan menu statistic dari website Toko Online Tipro.
Halaman statistic terdapat tampilan diagram yang merupakan diagram hasil
penjualan terbanyak.
BAB V
PENUTUP
Bab V merupakan penutup dari laporan Praktikum Pemrograman
Internet. Laporan ini mengenai kesimpulan dari keseluruhan modul-modul
Praktikum Pemrograman Internet serta saran atau masukan yang diberikan oleh
dosen pengampu mata kuliah Praktikum Pemrograman Internet.
5.1
Simpulan
Simpulan yang dapat ditarik dari penulisan laporan Praktikum
Pemrograman Internet adalah dalam perancangan dan pengembangan aplikasi
berbasis website Toko Online Tipro ini dapat diketahui alur bisnis proses
kerjanya. Aplikasi berbasis website Toko Online Tipro ini menggunakan
framework bernama Laravel. Laravel merupakan cara yang lebih mudah,
terperinci dan efisiensi dalam sebuah web berbasis PHP. Sehingga, menjadikan
aplikasi berbasis website yang sebenarnya membutuhkan beberapa software yang
mendukung kegiatan dalam pengembangan Toko Online Tipro.
5.2
Saran
Saran yang dapat diberikan bagi mahasiswa yaitu diharapkan dapat
mengenal dan memperbanyak referensi untuk memahami bahasa pemrograman
PHP dengan framework Laravel serta MySQL dalam mengoperasikan software
penunjang Praktikum Pemrograman Internet. Perintah-perintah dasar yang ada
pada sistem operasi PHP dan SQLyog sangat penting untuk dikuasai agar
memudahkan mahasiswa dalam melakukan aktifitas ataupun bekerja pada
pemrograman web.
127
DAFTAR PUSTAKA
Priyanka
Permata
Putri.
Aplikasi
TIK
dalam
Perpustakaan.
Website:
<https://priyankapermataputri.wordpress.com/web/>. Diakses pada tanggal
1 April 2018.
Andre. 2013. Tutorial Belajar CSS Part 1: CSS. Website
<http://www.duniailkom.com/tutorial-belajar-css-part-1-pengertian-cssapa-yang-dimaksud-dengan-css/. Diakses pada tanggal 1 April 2018.
Andika
Saputra,
2012,
“tipe-tipe
data
mysql”.Website
<https://andikasaputra.web.id/2012/07/tipe-tipe-data-mysql.html>.
Diakses 3 April 2018.
Arief, Rudyanto.2011. Pemrograman Web Dinamis Menggunakan PHP dan
MySQL.Yogyakarta: Andi.
Rohman,
Abdul.
2014.
“Mengenal
Framework
Laravel”.
Website
<http://www.abdulrohman.web.id/>. Diakses 24 April 2018.
Hilman. 2016. “Mengenal CSS Framework dan 5 Macam Contohnya”. Website
<http://www.plimbi.com/article/166276/mengenalcssframework?force_desktop=1>. Diakses 24 April 2018.
Zaki, Ali. 2016. “Pengenalan Cascading Style Sheet (CSS). Online Journal
<http://mahasiswa.dinus.ac.id/docs/skripsi/bab2/20269.pdf>. Diakses 26
April 2018.
Suryanto,
Kap.
2015.
“Pembuatan
Web”.
Website
<http://kap-
suryanto.id/pembuatan-web/> . Diakses 26 April 2018
Universitas
Dian
Nusantoro.
2015
“Skripsi
Bab
2”.
Website
<http://mahasiswa.dinus.ac.id/docs/skripsi/bab2/20269.pdf>. Diakses 26
April 2018
Sugiyanti. 2016 “Pengertian Server Side Scripting dan Client Side Scripting”.
Website
<https://sugiyanti27.wordpress.com/2016/04/06/pengertian-
server-side-scripting-dan-client-side-scripting/>. Diakses 26 April 2018
128
Download