Disusun oleh :
SEKOLAH VOKASI
YOGYAKARTA
2018
DAFTAR ISI
DAFTAR ISI............................................................................................................................... i
i
BAB I
PENDAHULUAN
Jogjaland.net merupakan sebuah CV startup software house yang berdiri kurang lebih
dua tahun lalu, belokasi di Maguwoharjo, dan telah memiliki client serta menghasilkan
beberapa project, salah satunya adalah indotravelgo, memegang server kompas jogjakarta, dan
lain sebagainya.
Jogjaland.net dapat membantu menyukseskan beberapa event/kegiatan dengan menjadi
Media Partner yang kemudian akan mempromosikan event/kegiatan tersebut.
1
demand yang ada. Salah satu diantaranya Jogjaland. Berdiri dalam usia yang relatif muda yaitu
2 tahun, membuat kami tertarik untuk turut serta menjadi bagian dari perkembangan Jogjaland.
Merasakan iklim bekerja di sebuah start-up, belajar dari para karyawan dan mendengar
pengalaman mereka menjadi beberapa pertimbangan kami untuk mau menerima tawaran kerja
magang atau PKL di Jogjaland.
Harapan kami ketika mulai bergabung untuk mengerjakan project PKL bersama
Jogjaland adalah mendapatkan ilmu-ilmu baru yang belum pernah kami jumpai di perkuliahan
dan dapat membantu mendorong prospek pekerjaan kami di masa depan.
2
BAB II
PERMASALAHAN
3
2.2.1 Analis dan Proyek Manager
Tugasnya adalah merancang dan menentukan business rule, menentukan kebutuhan
sistem/web ecommerce yang akan dikerjakan oleh tim, membuat timeline dengan
mempertimbangkan kemampuan tim, membagi jobdesc untuk masing masing anggota,
melengkapi dokumen analis yang biasa digunakan analis Jogjaland, membuat flowchart untuk
kejelasan alur sistem yang akan menjadi patokan ketika pengembangan, memantau progres tim
dengan membuat trelo, dan hasil progres tiap minggunya akan dipresentasikan maupun
dikonsultasikan kepada Supervisor maupun tim Jogjaland, dan juga membuat proposal untuk
diberikan kepada client pihak ketiga.
4
2.2.4 Backend Programmer
Sebagai Backend Programmer bertugas mempelajari dan membuat source code Admin
LTE, Bekeja sama dengan Frontend Developer untuk menyelaraskan fitur fitur sesuai
kebutuhan client, Integrasi sisi Backend dan Frontend
Setiap progres dipresentasikan di hari jumat namun ketika Supervisor sedang di luar
kota maka kelompok kami di remote sehingga progres cukup submit laporan via Whatsapp,
dan data diupload pada Trello dan Gitlab.
5
BAB III
METODE PENYELESAIAN
2. Desain UI/UX
a. Menentukan warna dasar yang akan digunakan
Setelah diskusi bersama anggota tim, didapatkan warna orange sebagai warna dasar
dengan kombinasi warna biru. Warna ini dipilih karena memiliki kesan hangat yang
6
membuat user menikmati setiap experience yang ada ketika membuka web
ecommerce yang kami kembangkan. Warna biru tua dipilih sebagai perpaduan,
karena cocok jika dikombinasikan dengan warna orange, selain itu warna biru tua
juga lebih mencolok dari warna orange, sehingga cocok dijadikan sebagai warna
tombol atau icon penting. Untuk tulisan yang bersifat penting kami menggunakan
warna merah.
b. Membuat logo
Membuat logo dalam versi grafis menggunakan corel draw setelah rancangan logo
selesai dibuat.
c. Mencari referensi web jual beli lainnya
Dalam menentukan desain, hal yang dilakukan adalah melakukan analis terhadap
web jual beli yang ada untuk melihat desain yang mereka gunakan dan menganalisis
kekurangan dan kelebihan desain tersebut. Serta menentukan mana yang sebaiknya
diadopsi dan mana yang tidak.
d. Membuat wireframe
Untuk memudahkan dalam
brainstroming, perlu dilakukan
pembuatan wireframe terlebih dahulu
untuk mengetahui gambaran umum
sistem, seperti menentukan tata letak
dan fitur apa saja dalam suatu halaman
tertentu.
7
e. Membuat desain menggunakan figma
Kami memilih merancang desain menggunakan figma karena figma dapat diakses
secara online yang memungkinkan kita untuk bekerja bersama-sama dalam waktu
yang bersamaan. Selain itu fitur yang dimiliki figma tidak sulit untuk dipelajari.
3. Frontend
a. Persiapan Environment
1) Penggunaan Framework dan peletakan route
Developing frontend dari website Beliaja dilakukan dengan menggunakan
framework Laravel versi 5.4.36 (versi Laravel yang sama dengan versi Laravel
dari template admin panel yang telah disediakan).
Dalam proses developing, route untuk halaman murni frontend (belum
digabung dengan sistem backend) diletakkan dalam path
http://localhost/beliaja-pkl-ugm/master untuk halaman utama/homepage dan
http://localhost/beliaja-pkl-ugm/master/[...] untuk halaman yang lain.
2) Analisis dan penggunaan asset pendukung
Proses styling dari website Beliaja dibuat dengan memanfaatkan librari CSS
Bootstrap versi 4.1.1. Bootstrap dipilih karena model style dari Bootstrap sesuai
dengan konsep design dari mock-up yang sudah dibuat sebelumnya.
Website Beliaja juga menggunakan plugin swiper.js untuk bagian slider yang
dipasang pada halaman utama (section banner, hot item, dan deals). Swiper.js
dipilih karena kemudahan dalam kustomisasi, terdapat beberapa varian slider,
sudah mendukung flexbox dan grid, serta dapat digunakan secara gratis.
Untuk beberapa icon-icon dalam Beliaja diambil dari fontawesome.com dengan
versi yang digunakan adalah versi 5.1.1. Fontawesome dipilih karena
kepraktisan pengunaan serta varian font icon yang cukup memadai dengan
status free.
Aset font yang digunakan adalah Roboto dan Reem Kufi yang diambil dari
Google Fonts dengan metode embed dan kustomisasi yang sudah disesuaikan
dengan kebutuhan karena pertimbangan kecepatan load dari website.
Logo dan gambar-gambar background pendukung turut dipersiapkan dan
diletakkan dalam folder tersendiri.
b. Proses Pengerjaan Frontend
1) Penggunaan Git sebagai version control dan kerja bersama developer lain
8
Setiap tahapan proses pekerjaan didokumentasikan menggunakan commit di
dalam Git. Karena pengerjaan website beliaja juga dilakukan bersama developer
frontend lain sehingga dengan menggunakan Git, developer-developer dapat
memanfaatkan fitur branching di dalam Git guna kepraktisan dan kerapian
kerja.
2) Penggunaan teknologi SASS (Syntactically Awesome Style Sheets) dan
SMACSS (Scalable and Modular Architecture for CSS)
Dengan memperhatikan keefisienan pekerjaan, di bagian styling CSS, kami
memanfaatkan teknologi SASS yang mana dapat mempercepat pembuatan style
guide dari web dengan memanfaatkan preprocessing, variabel, mixin, nesting,
import, dan operators dalam SASS.
Proses developing dari CSS yang ada menggunakan metode SMACSS yang
merupakan framework CSS yang dikembangkan oleh Jonathan Snook. Dengan
SMACSS maka style guide CSS dipisah dalam beberapa folder tersendiri.
4. Backend
a. Persiapan Environment
1) Instalasi Admin Panel
Salah satu sisi yang paling penting dalam pembuatan website e-commerce
Beliaja adalah Admin Panel. Dalam proyek ini telah disediakan Admin
Panel yang menggunakan basis Framework Laravel versi 5.4.36. Admin
9
Panel ini telah dilengkapi berbagai fitur sesuai dengan kebutuhan serta
Admin Panel ini telah terhubung ke dalam Andorid Mobile dan belum
terhubung kedalam sisi Web. Didalam tahap instalasinya Admin Panel ini
kami instal di komputer lokal C:\xampp\htdocs\beliaja-pkl-ugm. Untuk
dapat mengakses Admin Panel ini dapat kita akses menggunakan alamat :
http://localhost/beliaja-pkl-ugm/admin/login
10
Gb. Database Beliaja
b. Proses Pengerjaan Backend
1) Penggunaan Git
Pekerjaan sebagai Backend tidak lepas dengan adanya campur tangan oleh
Frontend Developer, maka dari itu diperlukan adanya kesetaraan
dokumentasi sehingga dapat memudahkan team dalam bekerja. Adanya Git
dapat membantu setiap anggota team dapat menulis kode programnya
masing masing yang kemudian digabungkan kedalam VCS (Version
Control System) yang digunakan.
2) Penggunaan Tools
Tool dalam proses pengerjaan Backend melipui Atom Text editor, Chrome
sebagai Web serta Pengujian, dan Git Bash sebagai Command Line
11
BAB IV
HASIL DAN PEMBAHASAN
Hasil kegiatan dari awal tahap perkiraan timeline, melakukan analisis menentukan bussines
rule flow hingga membuat tampilan mockup dibuat menjadi proposal yang akan diberikan
kepada client.
Pembuatan timeline yang disesuaikan dengan kemampuan tim. Diusahakan sudah sesuai
namun pada kenyataannya saat eksekusi terkadang banyak yang melebihi batas timeline yang
diberikan, karena ternyata eksekusinya diluar dugaan, sehingga kami membutuhkan waktu
untuk mempelajari sendiri, atau menunggu konsultasi untuk kemudian baru melakukan
pemecahan masalah.
12
Flowchart yang dipresentasikan kepada supervisor, sebagai gambaran utama sistem yang akan
dibangun.
13
4.1 Analisis Kebutuhan
1. Informasi pada bagian header aplikasi
a. Terdapat logo ecommerce
b. Button untuk memilih kategori dalam bentuk menu drop down untuk memilih
produk, diurutkan berdasar kategori yang banyak diminati diletakkan diurutan atas
c. Kolom search untuk proses pencarian, dimana dibawah kolom search terdapat kata
sugestion bisa langsung di klik
d. Icon keranjang untuk menyimpan produk yang akan diorder sebelum melanjutkan
ke proses pembayaran
e. Icon love untuk menyimpan wishlist, tidak bisa menyimpan ketika belum login atau
akan diarahkan ke halaman login dan register untuk dapat menyimpan/menyukai
produk
f. Menu utama untuk Login dan Register
g. Icon notifikasi jika user sudah masuk ke dalam sistem/aplikasi ecommerce
h. Navbar menu My account untuk melihat/setting profil, kupon, menu
pembelian,bantuan(faq/qna), logout.
2. Informasi pada bagian body/content
a. Banner berisi iklan atau promo
b. Informasi produk persection yang didapat dari hasil survei analis dan diurutkan
berdasarkan yang paling sering sering dicari
c. Kategori Hot Items dimana terdapat list produk yang banyak diminati/dibeli
d. Top Deals dimana berisi produk yang ada promo/potongan harga
e. Fashion Trends berisi list produk yang trendi
f. Beauty care berisi list produk tentang produk kecantikan/perawatan tubuh
g. Advanced Technology berisi list produk teknologi seperti barang elektronik
h. Furniture kategori berisi list produk tentang perabotan, mebel, dll
i. Section Category dimana akan menampilkan list produk
j. Menu untuk register, ketika user belum register/login tetapi sudah melihat produk
section di web kami, kemudian dimudahkan dengan adanya button register
k. Menu berita dimana berisi kumpulan berita mengenai produk kami
l. Terdapat informasi sekilas tentang kelebihan/produk service dari aplikasi
ecommerce
3. Pada bagian footer
Berisi informasi about us, kontak, alamat dari ecommerce kami
14
4.2 Fitur pada Web Ecommerce
1. User dapat melakukan pencarian produk melalui kategori drop down antara lain
• Fashion Wanita
• Fashion Pria
• Perawatan Kecantikan
• Handphone
• Elektronik
• Komputer
• Hobi/olahraga
• Furniture
• Rumah tangga
• Fashion anak
Dimana tiap kategori bisa memiliki sub kategori, dimana sub kategori memiliki list
produk
2. Pada halaman list produk, tiap produk terdapat fitur untuk quick review yang berisi
deskripsi singkat yang akan memudahkan user, juga bisa melihat detail / deskripsi
produk beserta infomasi lainnya.
3. Setelah melakukan pencarian, juga dapat melakukan sorting berdasarkan terlaris,
termahal, termurah. Filter berdasarkan warna, size, length, waist dimana akan
disesuaikan produk yang dicari semisal produk handphone maka akan muncul filter
merk, dll.
4. Dapat menambah produk ke cart tanpa harus login terlebih dahulu, namun ketika ingin
menyimpan di wishlist atau ingin melanjutkan ke proses pembayaran maka sebelumnya
harus diarahkan ke halaman login/register.
5. Pada navbar terdapat fitur bantuan/panduan tentang penggunaan ecommerce
6. Terdapat fitur chat dengan admin mengenai produk yang dicari, user dapat melakukan
chat dengan penjual ketika sudah login ke aplikasi, jika belum maka akan diarahkan
untuk login terlebih dahulu. Fitur chat dapat dilakukan baik di homepage maupun pada
halaman deskripsi/detail produk.
7. Fitur untuk melengkapi profil
8. Pada halaman cart dapat melakukan pembayaran sekaligus/lebih dari dua produk dalam
waktu order yang bersamaan
15
9. Pada halaman cart dapat melakukan pemindahan produk ke halaman wishlist jika
produk pada cart tidak ingin dilanjutkan untuk pembayaran.
10. Fitur keluhan untuk memberi masukan/kritikan kepada admin tentang barang yang
telah dibeli jika ada masalah.
16
13. User dapat melakukan chat dengan penjual ketika sudah login ke aplikasi, apabila user
belum login pada tampilan homepage selalu terdapat menu chat dipojok bawah, namun
jika belum login maka user akan diarahkan ke halaman untuk login/register, barulah
user dapat menggunakan fitur chat untuk menanyakan produk yang dipajang oleh
admin.
14. User dapat melakukan pembelian dengan cara klik add to chart pada halaman deskripsi
produk.
15. Setelah melakukan add to cart produk pada halaman diskripsi produk maka akan
muncul popup berisi informasi bahwa barang dengan jenis/ukuran tersebut sudah
dimasukkan ke cart, kemudian ada opsi button untuk lihat troli atau langsung proses
payment.
Jika popup diclose maka user tetap berada di halaman sebelumnya yaitu deskripsi
produk digunakan untuk mengatasi apabila user ingin membeli barang yang sama
dengan warna/ukuran berbeda dalam waktu yang bersamaan, maka list barang akan
muncul dalam bentuk row berbeda pada cart/troli.
16. Setelah masuk ke keranjang maka user dapat melihat produk apa saja yang pernah
ditambahkan, bisa memilih beberapa produk atau ceklis semua produk untuk
dilanjutkan ke pembayaran.
17. User dapat memindahkan produk dari cart ke wishlist jika barang tidak ingin
dilanjutkan ke proses pembayaran, juga tidak memungkinkan barang disimpan pada
wishlist.
18. Kondisi jika user sudah masuk ke cart namun belum login ke sistem/aplikasi
ecommerce, untuk dapat melanjutkan ke proses pembayaran maka user akan diarahkan
ke halaman login/register
19. Setelah berhasil login maka user akan tetap berada pada halaman cart untuk kemudian
melanjutkan ke pembayaran
20. Melengkapi informasi pengiriman, berisi total biaya dari produk yang ingin dibeli,
kemudian user diminta untuk melengkapi informasi seperti nama user, alamat
pengiriman ( bisa memakai default alamat ataupun menambahkan satu alamat
baru/alamat lain) dengan melengkapi/memilih lokasi seperti Indonesia, memilih
provinsi, memilih kota, memilih kecamatan, mengisi alamat detailnya, Ok. Jika di klik
simpan, maka akan kembali ke halaman “Beli” (melengkapi informasi pengiriman)
21. Pada halaman informasi pengirimana juga user memilih Metode shipping seperti Free
Shipping, Local Pickup, Flat Rate, UPS Shipping. Maka akan muncul biaya ongkos
17
kirim jika ada, terdapat biaya total yang harus dibayarkan, kemudian button untuk
melanjutkan
22. Proses pembayaran, memilih metode pembayaran seperti Paypal, Doku, Credit card,
transfer ATM. Terdapat histori pilihan metode pembayaran jika sebelumnya pernah
melakukan pembayaran produk.
23. Terdapat infromasi tata cara pembayaran, kemudian deadline batas waktu pembayaran,
jika tidak dipenuhi otomatis transaksi dibatalkan.
24. Terdapat button menu untuk melihat status pembayaran, maka dialihkan ke menu
Pembelian, dimana didalamnya terdapat beberapa sub menu
25. Sub menu status pembayaran jika user belum melakukan pembayaran/pembayaran
belum divalidasi admin, di halaman pembelian sub menu status pembayaran berisi
informasi mengenai tanggal order, nominal, sumber pembayaran, tujuan pembayaran,
aksi untu melihat cara pembayaran, mengunggah bukti transfer untuk divalidasi, ubah
data pembayaran,dan aksi untuk membatalkan transaksi.
26. Sub menu status pemesanan berisi informasi mengenai produk yang telah dilakukan
pembayaran, namun produk masih berada pada admin/ pada kurir, proses pengiriman
oleh kurir, hingga proses ke tujuan alamat user.
27. Sub menu konfirmasi penerimaan untuk user melakukan konfirmasi kepada admin jika
barang telah sampai di tujuan. Akan hilang jika telah dilakukan konfirmasi
28. Sub menu transaksi untuk melihat daftar transaksi yang berhasil, atau pernah
dibatalkan.
29. Pada halaman pembelian sub menu transaksi jika terdapat history transaksi yang
dibatalkan dapat dilanjutkan lagi/pemesanan ulang, jika melakukan pemesanan ulang
maka akan dikembalikan/diarahkan ke halaman proses untuk pemilihan metode
pembayaran, untuk selanjutnya memilih metode pembayaran, hingga berhasil.
18
4.4 Tampilan dari sisi admin
19
Form Product
Form Categories
20
Form Data
21
4.5 Tampilan UI/UX Web Ecommerce
1. Homepage
Desain homepage dibagi menjadi dua, yaitu ketika user melakukan login dan ketika
belum login. Selain itu desain homepage ketika web ecommerce kali pertama rilis akan
berbeda pula, menyesuaikan berdasarkan kategori yang bisa ditampilkan. Misalnya
untuk kali pertama rilis maka belum didapatkan produk “Top Seller” atau “Most Liked”
22
Jika web ecommerce sudah berjalan maka tampilan kategori utama di homepage
adalah:
23
Gambar halaman login
3. My Account
4. Dropdown kategori
24
5. List Product
Ketika user melakukan klik pada kategori tertentu maka akan keluar tampilan dengan
format berikut:
6. Quick Preview
Ketika user menyorot produk maka akan keluar tombol untuk melakukan quick preview
:
25
7. Detail Produk
26
8. Beli
Ketika user ingin membeli produk maka akan melakukan klik pada tombol “beli”
9. Keranjang Belanja
27
11. Menambah alamat baru
13. Pembayaran
28
14. Cara Pembayaran
29
16. Fitur Chat
Fitur chat akan ada disetiap halaman pada pojok kanan bawah halaman.
Fitur foto untuk mengupload foto dari galery, dan fitur produk untuk memilih produk
di toko, seperti berikut:
30
17. Wishlist
31
4.6 Penjelasan Source Code Frontend
1. Blade Templating
Web Beliaja, khususnya halaman end-user, menggunakan dua template layout
yaitu layout untuk guest dan layout untuk anggota/member yang sudah terdaftar.
Dua layout tadi ditempatkan di dalam folder views/master/layout
app.blade.php merupakan layout template untuk user. Berisi header dan footer
dari keseluruhan tampilan. User-app.blade.php secara garis besar sama dengan isi dari
halaman app.blade.php, hanya berbeda di bagian header yang berisi dropdown menu
yang dapat digunakan oleh user yang sudah berstatus sebagai anggota.
Berikut merupakan source code bagian header pada app.blade.php yang berada di
dalam tag head meliputi meta tag, judul web, pemanggilan icon, asset style, serta font.
Source code bagian header :
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="description" content="Beliaja">
<meta name="keywords" content="beliaja, commerce, ecommerce, online
shop, shop, online">
<meta name="author" content="Beliaja IT Developer Team">
<meta name="robots" content="index,follow">
32
<link
href="https://fonts.googleapis.com/css?family=Roboto:400,500,700"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Reem+Kufi"
rel="stylesheet">
<link rel="stylesheet"
href="https://use.fontawesome.com/releases/v5.1.1/css/all.css"
integrity="sha384-
O8whS3fhG2OnA5Kas0Y9l3cfpmYjapjI0E4theH4iuMD+pLhbf6JI0jIMfYcK3yZ"
crossorigin="anonymous">
33
</div>
</div>
<div class="d-flex">
<div>
<p class="mb-0 small wh">Temukan kami di </p>
</div>
<div class="ml-2">
<ul class="list-inline">
<li class="list-inline-item"><a href=""><i class="fab fa-
facebook"></i></a></li>
<li class="list-inline-item"><a href=""><i class="fab fa-
twitter"></i></a></li>
<li class="list-inline-item"><a href=""><i class="fab fa-
instagram"></i></a></li>
<li class="list-inline-item"><a href=""><i class="fab fa-
google-plus-g"></i></a></li>
</ul>
</div>
</div>
</div>
</div>
Bagian footer berisi shortcut link dari halaman-halaman website, link kontak
Beliaja, link media sosial Beliaja, serta pemanggilan asset script javascript yang
digunakan.
34
<nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="{{ URL::to('master')}}">
<img src="{!! asset('resources/views/master/assets/img/logo.png')
!!}" width="30" height="30" class="d-inline-block align-top" alt="">
Beliaja
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-
expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarTogglerDemo02">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#"
id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Kategori
</a>
35
CSS terus mengalami perkembangan termasuk diantara muncul flexbox dan grid
untuk memudahkan layouting halaman web karena penempatan yang lebih fleksibel
dan dapat dikustomisasi secara praktis.
Salah satu contoh pengimplementasian penggunaan flexbox dalam website
Beliaja yaitu pada bagian card untuk menampilkan display list item.
Source code contoh pengimplementasian flexbox pada bagian hot deals di
halaman utama Beliaja :
<div class="card-body d-flex flex-column">
<figure>
<img src="{!! asset('resources/views/master/assets/img/bg-
square.png') !!}" alt="" style="background-image: url('{!!
asset('resources/views/master/assets/img/004.jpg') !!}')">
<div class="overlay"></div>
<figcaption>
<a href="#" data-toggle="modal" data-
target="#quick_preview" class="btn btn-primary btn-sm">Lihat Cepat</a>
</figcaption>
</figure>
<section class="d-flex">
<a href="{{ URL::to('master/detail-product')}}"><h6
class="card-title small"> Lorem ipsum dolor sit amet with more
lines</h6></a>
<div class="d-flex">
<div>
<p class="small text-muted"><strike>Rp 50.000</strike></p>
<h4 class="price">Rp 75.000</h4>
</div>
<a href="#"><i class="far fa-heart"></i></a>
</div>
36
<input type="password" class="baby-small form-
control inputpd" id="inputPassword" placeholder="Password">
</div>
<div class="text-left form-group form-check">
<input type="checkbox" class="form-check-input"
id="rememberMe">
<label class="form-check-label baby-small"
for="rememberMe">Ingat password</label>
</div>
<div class="">
<button type="submit"class="col btn btn-b btn-b-
primary sh1 font-weight-bold my-2">MASUK</button>
</div>
<div class="smaller text-right">
<span><a href="#" >Lupa password?</a></span>
</div>
</form>
</section>
<section class="d-flex flex-column justify-content-
center col-md-5 text-center p-0">
<div>
<img src="{!!
asset('resources/views/master/assets/img/logo-white.png') !!}"
width="25%" class="img-login "alt="">
</div>
<h5 class="font-weight-bold wh mt-4">Beliaja</h5>
<p class="font-weight-normal wh smaller mb-
4">Belanja Menyenangkan!</p>
<p class="font-weight-normal wh baby-small mt-5 mb-
2">Belum memiliki Akun?</p>
<div class="">
<ANY data-toggle="modal" data-
target="#modalRegister" data-dismiss="modal">
<button type="submit"class="col-md-5 btn btn-
primary sh1 ">DAFTAR</button>
</ANY>
</div>
</section>
</div>
</div>
</div>
</div>
</div>
</div>
37
Sedangkan untuk membedakan pengaturan di masing-masing bagian tadi
(banner, hot item, dan top deals) dilakukan dengan menggunakan class yang berbeda
dan diletakkan berdampingan dengan class-class yang telah menjadi struktur utama
seperti yang telah disebutkan sebelumnya.
Berikut source code HTML untuk container swiper.js pada bagian banner:
<div class="swiper-container single-item-swipe">
<div class="swiper-wrapper">
<figure class="swiper-slide">
<img src="{!!
asset('resources/views/master/assets/img/bg-img.png') !!}"
style="background-image:url('{!!
asset('resources/views/master/assets/img/1.jpg') !!}')" alt="">
</figure>
<figure class="swiper-slide">
<img src="{!!
asset('resources/views/master/assets/img/bg-img.png') !!}"
style="background-image:url('{!!
asset('resources/views/master/assets/img/2.jpg') !!}')" alt="">
</figure>
<figure class="swiper-slide">
<img src="{!!
asset('resources/views/master/assets/img/bg-img.png') !!}"
style="background-image:url('{!!
asset('resources/views/master/assets/img/4.jpg') !!}')" alt="">
</figure>
<figure class="swiper-slide">
<img src="{!!
asset('resources/views/master/assets/img/bg-img.png') !!}"
style="background-image:url('{!!
asset('resources/views/master/assets/img/banner.png') !!}')" alt="">
</figure>
</div>
<div class="swiper-pagination swiper-pagination-
1"></div>
<div class="swiper-button-prev swiper-button-prev-1"><i
class="fas fa-chevron-left wh"></i></div>
<div class="swiper-button-next swiper-button-next-1"><i
class="fas fa-chevron-right wh"></i></div>
</div>
38
prevEl: '.swiper-button-prev-6',
}
});
39
Bila jarak sama dengan atau lebih kecil dari nol, maka muncul pemberitahuan
bahwa waktu untuk melakukan pembayaran sudah habis.
Berikut source code untuk membuat countdown dengan jquery :
// timer
var expiredDate = document.getElementById("expired_date").innerHTML;
var countDownDate = new Date(expiredDate).getTime();
// console.log(countDownDate);
var x = setInterval(function(){
var now = new Date().getTime();
var distance = countDownDate - now;
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 *
60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("hour").innerHTML = hours;
document.getElementById("minute").innerHTML = minutes;
document.getElementById("second").innerHTML = seconds;
console.log(distance);
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "<b> Waktu Melakukan
Pembayaran Telah HABIS <b>";
}
});
40
<!-- START STATUS PEMESANAN -->
<div class="tab-pane fade" id="nav-second" role="tabpanel"
aria-labelledby="nav-second-tab">
…
</div>
<!-- END TAB DAFTAR TRANSAKSI -->
</div>
<!-- END TABS CONTENT -->
9. Increment dan decrement number untuk bagian kuantitas pada detail produk
Berikut adalah source code HTML untuk input kuantitas :
<div class="form-group row d-flex align-items-center">
<label for="inputPassword" class="col-sm-2 col-form-
label">Kuantitas</label>
<div class="col-sm-10">
<div class="input-group input-number-group">
<div class="input-group-button">
<span class="input-number-decrement">-</span>
</div>
<input class="input-number" type="number"
value="1" min="0" max="1000">
<div class="input-group-button">
<span class="input-number-increment">+</span>
</div>
</div>
</div>
</div>
$('.input-number-decrement').click(function() {
var $input = $(this).parents('.input-number-
group').find('.input-number');
var val = parseInt($input.val(), 10);
$input.val(val - 1);
});
41
4.7 Penjelasan Source Code Backend
1. Login
Membuat LoginController dimana didalamnya terdapat script seperti gambar diatas yang
berguna untuk menangani jalannya proses login. Pada kode diatas terdapat class redirectTo
yang berguna untuk mengarahkan session selanjutnya. Kemudian membuat controller untuk
Register.
Pada RegisterController dilakukan inisiasi data sesuai kolom Register pada FrontEnd,
kemudian membuat function Create() dimana didalamnya terdapat firstName, lastName, email,
password, serta phoneNumber. Password menggunakan enkripsi md5 yang dikenal dengan
keamanannya. Kemudian validasi data Regitrasi user dengan script berikut :
42
tujuan dari validator ini adalah untuk menegaskan tipe data dan karakter dari masing masing
atribut, seperti contoh ‘firstName’ -> ‘required|string|max:255’, dimana memiliki arti
firstName ini harus diisi dengan tipe data String dan jumlah karakter maksimal adalah 255
karakter. Kemudian membuat controller untuk ResetPasswordController dan
ForgotPasswordController.
Setelah semua berhasil dibuat kemudian dilakukan pemanggilan ke dalam View dangan
menambahkan code diatas.
43
2. Hot Deals
Pada Hot Deals ini menampilkan barang barang apa saja yang sedang polpuler dibeli oleh user.
Disini terdapat kendala yaitu hanya dapat menampilkan gambar saja dalam jumlah banyak,
tidak terbatas oleh product yang tersedia.
Solusinya adalah dengan melakukan edit beberapa bagian pada index.blade.php dengan
mengubah code pada img src dengan menggantinya ke dalam “{!! asset($item-
>product_image) !!}” dimana untuk memanggil assets dari database pada tabel
products_image
3. Home Controller
Untuk membuat link atau url tanpa harus memanggil nama folder yang yang berada didalam
Resources/Views kita membuat controller untuk mempersingkat alamat url.
44
4. User.php
Pada User.php ini kita membikin function loginPost guna validasi user login, disini kita
tambahkan juga Session untuk membatasi user login, User hanya bisa login sekali waktu dan
apabila browser tertutup maka user harus login kembali. Data login yang kita ambil hanyalah
email dan Password, kemudian kita gunakan fungsi IF untuk mengecek apakah inputan sesuai
dengan data yang berada di database.
45
Kita tambahkan juga fuction registerPost, isi dari function ini hampir sama seperti pada
RegisterController.
46
BAB V
KESIMPULAN DAN SARAN
47
Namun sayangnya, materi dan pembekalan ketika akan melakukan PKL sangat kurang
dan terkesan mendadak, yakni hanya dilakukan dalam waktu singkat, kurang mendalam,
dan jarak waktu yang berdekatan dengan pemberangkatan PKL. Hal-hal non teknis seperti
attitude, etiket, bagaimana bersikap sebagai seorang profesional dalam dunia IT, dan hal-
hal lain dalam mata kuliah etika profesi hanya disampaikan secara sekilas ketika briefing
PKL, yang mana sebaiknya mata kuliah itu (etika profesi) diberikan kepada mahasiswa
(atau dijadwalkan) pada semester-semester sebelum dilaksanakannya PKL. Agar ketika
tiba masa PKL, para mahasiswa menjadi lebih siap untuk terjun ke industri dengan tetap
membawa nama baik almamater UGM dan KOMSI.
48