Akreditasi KEMRISTEKDIKTI, No 48a/E/KPT/2017 e-ISSN: 2528-6579
1
Perancangan Module Discount pada
Website TokoOnderdil menggunakan Magento 2
(Studi Kasus: PT. Tokoonderdil Karya Utama)
Tugas Akhir
Peneliti:
Dicko Finus / 672015178
Dr. Kristoko Dwi Hartomo, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana Salatiga
Desember 2018
Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK) DOI: 10.25126/jtiik…
Vol. x, No. x, April 2014, hlm. x-x p-ISSN: 2355-7699
Akreditasi KEMRISTEKDIKTI, No 48a/E/KPT/2017 e-ISSN: 2528-6579
6
PERANCANGAN MODULE DISCOUNT PADA
WEBSITE TOKOONDERDIL MENGGUNAKAN MAGENTO 2
(STUDI KASUS: PT. TOKOONDERDIL KARYA UTAMA)
Dicko Finus Natawijaya1, Kristoko Dwi Hartomo2
1,2Universitas Kristen Satya Wacana
Email: 1[email protected], 2[email protected] (Naskah masuk: dd mmm yyyy, diterima untuk diterbitkan: dd mmm yyyy)
Abstrak
Kebutuhan terhadap pengaturan angka margin yang mempengaruhi diskon dan harga pada e-commerce Tokoonderdil, membuat pengembang harus menciptakan sebuah modul baru untuk halaman Tokoonderdil. Modul ini dibutuhkan dikarenakan, nantinya akan ada dua jenis pembeli pada Tokoonderdil yaitu B2B dan B2C. Pembeli juga nantinya akan ada yang memiliki diskon khusus yang beda sendiri. Modul ini dapat mengubah angka diskon dan harga pada pembeli yang B2B, B2C, maupun pembeli dengan diskon khusus, sesuai dengan margin yang ditentukan. Untuk memungkinkan hal tersebut teknologi Magento yang ada diterapkan semaksimal mungkin, memungkinkan kemudahan dalam pengembangan dan penggunaan. Magento digunakan pada penelitian dikarenakan mudahnya dalam pembuatan modul baru terpisah yang dapat diimplementasikan ke program utama. Sekalipun bukan sebuah framework yang terbilang ringan, tetapi Magento sangat memungkinkan untuk dimodifikasi dan dikembangkan. Penelitian ini bertujuan memudahkan admin, sehingga pengaturan pada satu tempat mempengaruhi semua yang ditujukan untuk berubah. Hasil dari penelitian ini adalah seluruh harga dan diskon pada halaman Tokoonderdil dapat berubah secara seluruhnya. Perubahan ini terjadi saat admin menentukan nilai margin terhadap masing-masing tipe pembeli.
Kata kunci: E-commerce, Magento, Modul, Framework
DISCOUNT MODULE CONSTRUCTION IN
TOKOONDERDIL WEBSITE WITH MAGENTO 2
Abstract
The need of margin value configuration that affect discount and price in Tokoonderdil’s e-commerce website, makes developer need to create a whole new module for Tokoonderdil website. This module needed because, later there will be two kind of customer in Tokoonderdil one is B2B and the other one is B2C. Later some customer will also have their own discount. This module can change discount and price for B2B, B2C, and discounted customer, depends on their own margin. To make this thing possible Magento’s technology need to be used effectively, so it can make the development and usage easier. Magento used in this research because, it is very easy to create a whole new module that can be implemented to the main program. Even it is not a light framework but, Magento can be said very possible to modify and develop. This research purpose is to allow easier configuration so, if admin need to make changes, they only need to change it from one place. The result from this research is so every price and discount value in Tokoonderdil can changed completely. This change is happening when administrator set the margin value depends on the user type.
Keywords: E-commerce, Magento, Module, Framework
1. PENDAHULUAN
TokoOnderdil.co.id merupakan salah satu
website yang dibuat dan dikembangkan oleh PT.
Tokoonderdil Karya Utama. Berasal dari gagasan awal bagaimana mempermudah sebuah bengkel mencari suku cadang saat ada yang melakukan klaim asuransi. Terciptalah ide sebuah marketplace online
yang melayani pengguna B2B yaitu, Business to
Business.
Banyak e-commerce dan marketplace online masa kini melayani pengguna B2C (Business to
Consumer). Di mana para pelaku bisnis atau yang
lebih dikenal dengan pedagang atau pemilik toko ini akan menjual produk atau jasa mereka secara
langsung kepada pembeli biasa atau consumer. Pengguna B2B menggunakan konsep yang berbeda yaitu, pelaku bisnis (penjual) akan menjual produk atau jasanya kepada pelaku bisnis lainnya (pembeli). Dalam studi kasus ini adalah penjual merupakan
supplier suku cadang otomotif, dan pembeli yang
diharapkan adalah bengkel atau toko otomotif. Setiap pembeli ini, nantinya mereka akan mendapatkan diskon yang berbeda-beda. Karena mereka adalah sebuah bisnis juga, diskon itu nantinya ditentukan melalui kontrak yang sudah didiskusikan dengan TokoOnderdil terlebih dahulu. Bahkan bila
B2B sudah berjalan diharapkan nantinya B2C juga
dapat dijalankan. Pembeli B2B yang merupakan pasar besar ini sudah pasti mendapatkan diskon yang lebih besar dari pada pembeli B2C. Sehingga nantinya akan ada banyak pengaturan harga dan diskon yang berbeda-beda. Pada setiap pembelian, TokoOnderdil akan mendapat margin dari transaksi sebagai penyedia jasa. Margin ini didapat dari angka diskon yang berbeda-beda sesuai dengan perjanjian yang sudah ditetapkan terlebih dahulu. Margin ini nantinya akan mempengaruhi perhitungan pada diskon juga. Rumitnya diskon-diskon ini memaksa untuk pembuatan sebuah modul terpisah untuk mengatur segalanya yang berhubungan dengan harga.
Untuk mengatasi masalah rumitnya mengatur angka-angka di atas, maka dapat dibuat satu modul
Magento terpisah. Modul ini nantinya berisikan
semua rumus untuk mengubah angka diskon sesuai dengan pembagian yang ditentukan oleh perjanjian masing-masing. Modul ini juga berguna untuk melakukan override tampilan-tampilan dan rumus yang menggunakan harga normal, sehingga tidak perlu diubah satu-satu tiap barangnya. Modul ini akan mempengaruhi seluruh proses transaksi, mulai dari melihat harga pada katalog, hingga saat pembeli melakukan pembayaran. Dengan modul ini jika memang ada perubahan diskon khusus (tiap pembeli) kembali, maka cukup mengubah dari modul ini yang nantinya akan mempengaruhi seluruh katalog yang berkaitan. Semua yang angka yang diubah harus sesuai mulai dari katalog, keranjang, pembayaran, hingga riwayat pembelian.
2. TINJAUAN PUSTAKA 2.1. PENELITIAN TERDAHULU
Perpustakaan merupakan salah satu sarana penunjang yang wajib dimiliki oleh setiap lembaga pendidikan, Salah satu objeknya adalah perpustakaan pada kampus STMIK Asia Malang, pada perpustakaan kampus ini sistem administrasi masih dilakukan secara manual, kurang efisien untuk mengembangkan prasarana penunjang bagi mahasiswa. Penelitian ini bertujuan mengembangkan perpustakaan online berbasis web di kampus STMIK Asia Malang demi memperbaiki efisiensi kerja dan memuaskan pelayanan mahasiswa. Penelitian menggunakan metode model view controller (MVC)
dengan tujuan mampu mengembangkan sistem perpustakaan online yang memberikan tampilan memisahkan data dari tampilan dan mengimplementasikannya dalam framework
sehingga dapat digunakan sebagai pemanipulasi data, antarmuka pengguna, dan bagian kontrol dalam sebuah aplikasi web. Penggunaan metode MVC mampu digunakan pada perpustakaan STMIK ASIA MALANG, Informasi yang disampaikan sudah memenuhi kebutuhan para pengguna mengenai rincian buku, daftar peminjaman, daftar denda, stok buku, ketersediaan buku, dan akses peminjaman
online. (Putri, 2016)
Dari penelitian ini kita dapat mengambil bagaimana penggunaan MVC pada sebuah halaman jejaring. MVC sendiri sebenarnya merupakan sebuah struktur berkas yang dapat digunakan pada pemrograman berbasis objek apa saja. Dalam studi kasus penelitian sendiri adalah MVC ini akan digunakan dalam pembangunan kelas pada bahasa pemrograman PHP.
Masyarakat perkotaan umumnya memiliki lahan terbatas namun memiliki minat tinggi untuk bercocok tanam. Pada lahan terbatas kuantitas benih yang dibutuhkan relatif dalam skala kecil. Namun demikian, penjualan benih eceran untuk skala kecil masih sulit dicari. Sistem Penjualan Benih Eceran
online dikembangkan untuk menjawab permasalahan
tersebut. Sistem dikembangkan dengan mengintegrasikan framework Bootstrap dan CMS
Magento secara extreme programming. Tahapan
perencanaan dilakukan dengan survei benih yang dijual di 5 toko benih serta minat bercocok tanam dari 224 responden. Hasil survei menyiratkan mayoritas toko penjual benih hanya berminat sebagai supplier benih saja. Sementara hasil survei terhadap responden ialah 77% responden berasal dari perkotaan, 65% responden berminat bercocok tanam, dan 42% responden lebih memilih benih bunga (tanaman hias). Untuk sistem, responden menginginkan tersedianya fitur-fitur registrasi pembeli, keranjang belanja, sistem pembayaran, serta manajemen produk, data konsumen, pemesanan, dan harga. Selanjutnya, di
lakukan desain tampilan dan kebutuhan fungsional, coding serta penyesuaian coding dengan
Boostrap dan Magento, pengujian Blackbox dengan
hasil sukses memenuhi kebutuhan fungsional, serta diakhiri dengan tahapan rilis. Sistem online yang telah berhasil dibuat diharapkan dapat meningkatkan minat masyarakat perkotaan dalam bercocok tanam sekaligus memperlihatkan peran nyata penerapan teknologi informasi dalam mengembangkan pertanian dalam arti luas di era modern. (Rachmaniah, & Sebastian, 2018)
Magento terbukti dapat membantu dalam
menyukseskan penelitian di atas. Magento
memanglah merupakan sebuah framework untuk
e-commerce yang sudah cukup terkenal. Penelitian
8
<<<Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK), Vol. x, No. x, April 2018, hlm. x-y>>>framework dasar. Bootstrap pun dapat digunakan
untuk mempercantik halaman. Tidak hanya mempercantik tetapi juga dapat memudahkan dalam mendesain sebuah halaman web.
Content Management System (CMS) open source banyak digunakan dalam website e-commerce.
CMS open source e-commerce tumbuh semakin canggih dan lebih kompetitif. Artikel ini berisi perbandingan kualitas software dari top three CMS
open sourece e-commerce yaitu Magento, Woocomerce, dan OpenCart. perbandingan dilakukan terhadap kualitas revision software yaitu
maintainability, fleksibility, dan testability. Kualitas revison diuji sebab maintenance dan testing
merupakan proses yang sangat penting dalam pembuatan sebuah software dan memerlukan banyak
resource. Pengukuran dilakukan dengan menggunakan phpmetric untuk menghitung
maintainability index, afferent coupling, efferent couping, lack of cohesion method, cyclomatic complexity. Tujuan dari penulisan artikel ini adalah
untuk menentukan open source e-commerce terbaik dalam proses maintenance, adaptasi, dan modifikasi. Hasil menunjukkan bahwa magento memiliki kemampuan terbaik untuk maintenance, testing, dan perubahan kode dibandingkan Woocommerce dan
Opencart, di mana nilai maintainaility indeksnya
111,36, afferent coupling 0,826, efferent coupling 1,83, Lack of cohesion method 2,10 dan Cyclomatic
Complexity 11,02. (Anggrainingsih, Suryono, &
Rohmawati, 2017)
Dapat dilihat dari data di atas Magento dapat memberikan hasil nilai pengujian yang baik. Performa yang sudah tidak diragukan ini dapat membantu peneliti dalam mengembangkan sebuah
web sesuai dengan keinginan dari pengguna.
Penelitian penulis yang menggunakan Magento pun dikarenakan performanya yang baik sesuai dengan penelitian yang sudah ada sebelumnya seperti di atas. Penelitian ini akan menggunakan MVC, seperti sudah tertulis sebelumnya bahwa struktur MVC ini berguna untuk memisahkan tampilan dan data, sehingga dapat diimplementasikan ke dalam sebuah
framework. Dalam kasus ini sendiri pun Magento
sudah menggunakan MVC secara default. Dengan adanya MVC ini program jadi lebih mudah dibaca, dan terstruktur. Magento sendiri merupakan sebuah
framework web yang siap digunakan dan mudah
dikembangkan. Magento fokus pada web
perdagangan online. Magento pun memiliki nilai performa yang tinggi dibandingkan dengan pesaingnya. Bukan sebuah framework yang ringan tetapi, Magento menyediakan segudang fitur dan kemudahan dalam mengembangkannya.
2.2. DASAR TEORI MVC
MVC merupakan sebuah cara efisien untuk
menciptakan aplikasi modular terorganisasi (Supaartagorn, 2011).
MVC adalah sebuah konsep yang membagi
aplikasi menjadi tiga modul yaitu, model (logika bisnis), view (tampilan antarmuka), dan controller (penghubung antara model dan view, pusat kontrol) (Simanjuntak, & Kasnady, 2016).
Magento
Sebuah framework web yang sangat fleksibel, modular, memiliki desain tema yang modern dan dapat diunduh dengan mudah, juga memiliki API yang lengkap. Magento sendiri dibangun berdasarkan PHP MVC, pengguna yang pernah menggunakan PHP MVC sebelumnya akan lebih cepat adaptasi saat menggunakan Magento. Untuk menghasilkan kinerja yang lebih cepat Magento juga memungkinkan kompresi gambar dan JavaScript. Juga mendukung integrasi Apache Varnish yang dapat meningkatkan kinerja. Magento memiliki command-line utility yang dapat membantu dalam mengoptimalkan. Framework ini juga dapat bekerja dengan PHP Standards
Recommendations (PSR), yang berarti memungkinkan penggunaan ekstensi PHP (Miguel, 2016). HTML yang didukung sudah mencapai HTML5. Magento juga mendukung CSS, jQuery,
RequireJS. Untuk basis data pun sangat mudah, hal
itu dikarenakan Magento mendukung penggunaan
MySQL, yang merupakan basis data standar dan
gratis. Fitur dasar yang disediakan oleh Magento melingkupi inventaris produk, keranjang belanja, dukungan beberapa cara pembayaran dan metode pengiriman, pengaturan promosi, manajer konten, menggunakan lebih dari satu mata uang, lebih dari satu bahasa, dan lebih banyak lagi (Ajzele, 2015).
Ada juga sumber lain yang mengatakan sebagai berikut, Magento dipilih karena Magento merupakan salah satu platform yang paling banyak digunakan situs jual-beli di dunia dan memiliki fitur yang lengkap. Sumber menyatakan demikian dikarenakan
Magento menawarkan fitur yang tidak ditawarkan platform e-commerce lainnya, seperti debugging, multistore dalam satu panel admin, dan fitur analisis
yang lengkap. Magento juga bersifat open-source sehingga dapat digunakan tanpa membayar dahulu (Sebastian, 2016).
Magento menawarkan fitur yang tidak ditawarkan oleh platform jual beli online lain. Fitur pada Magento diantaranya ialah fitur untuk
debugging kode Magento, fitur multistore yang
memungkinkan lebih dari satu toko dalam satu admin panel, serta fitur analisis yang lengkap mulai dari analisis kata pencarian hingga analisis hasil penjualan (Rachmaniah, & Sebastian, 2018).
Modul Magento
Magento adalah platform yang sangat modular. Magento menyediakan sebuah lokasi berkas independen hanya untuk modul kostum yang akan digunakan. Banyaknya kemungkinan yang dapat dibuat melalui modul kostum, menjadi sebuah kelebihan besar menggunakan Magento. Modul yang akan dibuat harus didaftarkan terlebih dahulu. Walaupun Magento memiliki dua ruang lingkup
frontend dan adminhtml tetapi, bila memang
dibutuhkan dapat dibuat dalam satu modul yang sama. Modul yang sudah didaftarkan harus dipasang melalui perintah upgrade lalu akan aktif secara otomatis (Ajzele, 2015).
Magento, membuka kemungkinan untuk mengembangkan fitur yang belum pernah ada sebelumnya. Modul yang terpisah ini dapat dipublikasikan dan digunakan oleh pengguna lainnya jika suatu saat membutuhkannya. Pembuatan modul ada baiknya memiliki tingkat kompatibilitas yang tinggi, sehingga tidak tergantung pada kebutuhan tertentu. Penambahan fitur yang dapat dipublikasikan ini juga dapat menunjang ketenaran dari aplikasi yang dibuat (Rachmaniah, & Sebastian, 2018).
E-Commerce
Zaman sekarang teknologi sangat mudah digunakan, internet pun begitu mudah untuk diakses. Berbelanja sehari-hari yang dulunya butuh untuk keluar, sekarang dapat dilakukan di dalam tempat tinggal dengan mudah melalui internet. Berbelanja
online ini lebih dikenal dengan e-commerce. E-commerce awalnya hanya mencangkup pembelian
tetapi, sekarang sudah banyak fitur baru seperti kredit, resource planning, dan sebagainya.
Berdasarkan jenisnya e-commerce terbagi menjadi lima bagian yaitu (Aryato, & Tarigan, 2015): 1. B2B (Business to Business), Bisnis antar
perusahaan / produsen.
2. B2C (Business to Consumer), Pelelangan, penjualan jasa, atau retail online.
3. C2B (Consumer to Business), Bisnis konsumen dengan produsen.
4. G2B (Government to Business), Bisnis pemerintah dengan pengusaha.
5. G2C (Government to Consumer), Bisnis pemerintah dengan konsumen.
Jenis e-commerce yang dilakukan pada TokoOnderdil adalah B2B dan B2C. Tujuan pelanggan awal TokoOnderdil adalah B2B, dengan target pembeli adalah perusahaan asuransi, bengkel, tempat rental. B2B dapat melakukan kredit dengan masa tenggang bebas sesuai perjanjian antar pelaku jual beli. Sementara untuk B2C adalah jika sudah B2B berjalan baik, pembeli satuan / konsumen biasa dapat membeli suku candang otomotif dari TokoOnderdil dengan pembayaran melalui virtual account.
Modul Discount
Adalah modul Magento yang menjadi fokus dalam penelitian ini. Modul diskon bermaksud untuk mengubah nilai margin yang mempengaruhi diskon dan harga. Margin tersebut adalah keuntungan yang nantinya didapat oleh pihak Tokoonderdil. Margin ini dipengaruhi oleh jenis pembeli yaitu, B2B, B2C, dan pembeli dengan diskon khusus.
Alurnya sebagai berikut. Admin akan menentukan sebuah nilai margin. Nilai tersebut akan disimpan dalam basis data. Diskon yang sudah ada pada barang nantinya akan dipotong margin tersebut terlebih dahulu. Sehingga pembeli akan mendapat diskon yang terpotong sebagian. Sebagian itulah yang menjadi keuntungan bagi Tokoonderdil. Dalam kasus tertentu margin tersebut juga tidak berlaku, seperti jika pembeli adalah pihak rekan dari Tokoonderdil. Pembeli seperti tersebut akan mendapatkan diskon tertinggi atau maksimal.
10
<<<Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK), Vol. x, No. x, April 2018, hlm. x-y>>> 3. METODE PENELITIANMetodologi
Metodologi penelitian ini terbagi menjadi delapan bagian total, bagian-bagian tersebut sebagai berikut.
Menurut gambar 1, dapat dilihat metodologi penelitian ini dibagi menjadi 8 bagian, yang masing-masing bagiannya memiliki perannya sendiri. Lebih rinci lagi metodologi tersebut dijabarkan seperti berikut :
Identifikasi Masalah
Pada tahap ini, dilakukan pengidentifikasian masalah. Didapatkan bahwa apa yang dibutuhkan adalah bagaimana harga pada semua barang di halaman TokoOnderdil dapat mengikuti dengan margin yang ditentukan. Margin ini nantinya akan mengubah diskon barang, yang juga mempengaruhi harga jual barang tersebut. Bagaimana program dapat memudahkan pengguna sehingga tidak perlu mengubah pada tiap barang, dikarenakan margin juga akan memukul rata semua barang dengan nilai yang sama.
Perancangan Modul
Pada tahap ini, memulai perancangan dari masalah yang ada. Bagaimana modul nantinya akan bekerja, dependensi apa saja yang dibutuhkan oleh modul. Dengan pertimbangan sebelumnya maka akan dibuat sebuah kelas fungsi yang diharapkan akan digunakan di berbagai kelas atau tampilan lainnya. Untuk ini solusi yang diambil adalah penggunaan
helper. Sedangkan untuk menangkap perubahan
pengguna (masuk akun atau ganti akun) dapat menggunakan observer. Untuk mengatasi fungsi yang sudah ada sebelumnya dapat melakukan
overiding.
Pembangunan Modul
Dari rancangan modul yang ada, mulailah dibuat sebuah modul dalam Magento. Modul yang dibuat ini sesuai dengan rancangan yang dibuat sebelumnya. Yang pertama dibangun adalah helper. Berisikan rumus yang memperhitungkan margin pada harga barang, helper dapat dipanggil di seluruh bagian program yang mempengaruhi harga barang. Untuk kasus tertentu akan membutuhkan override dan observer.
Implementasi Modul
Modul yang sudah siap mulai dimasukkan ke dalam server yang sudah disediakan untuk percobaan. Modul akan dipasang melalui perintah PHP dari terminal untuk memperbarui modul-modul yang terpasang atau akan dipasang. Setelah itu tampilan
web pun harus di render di dalam sebuah folder static.
Testing
Pada server uji coba, modul yang sudah dibuat dicoba. Jika terjadi kesalahan pada tahap ini, maka perancangan dan pembangunan seputar kesalahan yang terjadi dilakukan kembali. Pada tahap ini sudah tidak boleh ada kesalahan yang terjadi pada dan oleh karena modul yang dibuat. Hingga semua berjalan sesuai keinginan barulah boleh melanjutkan ke tahap selanjutnya.
Module Deployment
Modul yang telah lulus tahap testing boleh lanjut ke tahap selanjutnya, deployment. Yaitu memindahkan modul dari server test ke server live. Pada server live modul harus berjalan dengan sempurna, tidak boleh ada kesalahan. Jika modul sudah masuk tahap ini, berarti modul sudah bisa berjalan dan bisa diakses oleh umum. Pemindahan modul ini dilakukan dengan FTP menggunakan
Filezilla.
Laporan Hasil
Penelitian yang sudah dilakukan, dikemas kembali dalam bentuk laporan. Dengan pembuatan laporan hasil ini, diharapkan penelitian dapat dikembangkan lebih lanjut. Laporan tersebut juga dapat digunakan oleh peneliti atau pengguna lainnya untuk menjadi bahan pembelajaran. Laporan ini berguna untuk meringkas hasil dari langkah-langkah yang dilakukan sebelumnya.
Perancangan Sistem Use Case Diagram
Gambar 2 memperlihatkan Use Case Diagram dapat dilihat apa yang dapat dilakukan tiap aktor pada TokoOnderdil secara garis besar. Seller dapat menaruh barang, TokoOnderdil menentukan margin, dan buyer dapat melakukan pemesanan. Seller pertama membuat sebuah barang, barang berisi detail-detail lainnya tetapi yang mempengaruhi penelitian ini adalah harga dan diskon. Setelah selesai dibuat barang diletakan. Admin TokoOnderdil dapat membuat margin, yang di mana pembuatan persennya menggunakan harga dan diskon dari item yang diletakan. Barang yang diletakan nantinya akan menggunakan harga yang sudah diubah sesuai margin. Buyer nantinya dapat membeli barang yang sudah ada.
Class Diagram
Sementara pada gambar 3 dapat dilihat Class
Diagram, hubungan antara kelas digambarkan
sedemikian rupa. Dapat dilihat DiscMargin dipengaruhi oleh buyer yang di mana kategori buyer yang menentukan. Data item juga diambil DiscMargin. Ketika DiscMargin memproses harga baru, barulah semua item yang ditampilkan tersebut dapat masuk ke dalam keranjang dan pemesanan.
Ketika sudah mulai terintegrasi dengan
Magento mungkin akan dibutuhkan adaptasi lebih.
Dari semua penjelasan di atas, modul akan terfokus pada saat margin mengubah nominal harga dan diskon. Sehingga modul sangat berkaitan dengan hal yang menyinggung “margin”.
Activity Diagram
Pada gambar 4 dapat dilihat Activity Diagram. Pada diagram ini dilihat bagaimana proses order dilakukan, dan bagaimana juga di mana margin nantinya akan mempengaruhi harga juga alur pemesanan. Pertama pembeli melakukan login di TokoOnderdil kemudian diperiksa apakah dia pembeli B2B atau B2C. Harga barang di katalog akan berubah sesuai kategori pembeli. Setelah itu pembeli hanya cukup melakukan proses order biasa, semua harga akan ditampilkan sesuai dengan kategori pembeli.
Gambar 3. Class Diagram
Gambar 4. Activity Diagram Gambar 2. Use Case Diagram
12
<<<Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK), Vol. x, No. x, April 2018, hlm. x-y>>> 4. PEMBAHASANSebelum menjabarkan seluruh hasil dan pembahasan. Terlebih dahulu akan diperlihatkan, apa yang akan diubah oleh modul diskon nantinya. Secara singkat modul Discount mengubah semua tampilan angka yang berhubungan dengan harga sesuai dengan margin harga yang ditentukan.
Pada gambar 5 dapat dilihat halaman utama dari tokoonderdil.co.id. Angka yang dimaksudkan berubah seiring dengan pengaturan margin adalah angka yang terdapat pada kotak merah. Akan memakan waktu sangat lama apabila tiap produk diubah satu persatu sesuai dengan margin yang ditentukan. Masalah pun akan terjadi jika margin diubah dan produk harus diubah satu persatu kembali. Maka karena itu modul ini bertujuan untuk mengatasi masalah tersebut. Angka pada gambar 4.1 hanyalah contoh dari angka-angka di halaman lain yang dipengaruhi oleh modul Discount.
Penulis akan menjabarkan bagaimana perhitungan margin yang dimaksud.
hA= harga aktual [tipe data : angka] dA= diskon aktual [tipe data : angka] mB= margin B2B / B2C [tipe data : angka] dH= diskon hasil [tipe data : angka] hH= harga hasil [tipe data : angka]
𝑑𝐻 = 𝑑𝐴 − 𝑚𝐵 (1)
ℎ𝐻 = ℎ𝐴 − ℎ𝐴 ∗𝑑𝐻
100 (2)
Untuk menyimpan data margin itu, maka diperlukan sebuah tabel baru pada basis data. Karena margin tersebut sepenuhnya kostum, maka Magento tidak pernah menyediakan tabel tersebut sebelumnya.
Jika dilihat pada gambar 6, basis data sama sekali tidak rumit. Hal tersebut dikarenakan kebutuhan sesungguhnya hanya sebuah margin. Kategori untuk menentukan apa yang disimpan PPN (untuk keperluan lain) atau margin. Jika margin, maka sub kategori untuk membagi margin B2B atau B2C. Nilai parameter untuk menyimpan nilai dari PPN atau margin tersebut. Lalu sisanya adalah untuk menyimpan dan merekap riwayat data basis data tersebut.
Rumus perhitungannya sudah ada, rumus fungsi tersebut akan dibuat menjadi sebuah kelas. Karena tujuan fungsi yang mengubah angka ini dapat digunakan di berbagai tempat dan kondisi, maka langkah tepat yang digunakan adalah memasukkan fungsi tersebut ke dalam sebuah kelas helper. Helper adalah sebuah kelas yang sifatnya global kelas ini dapat diakses dari block, controller, model, dan view. Tidak hanya dalam modul yang sama helper juga dapat diakses dari modul dan lokasi penyimpanan yang berbeda. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
start function helperRuleDiscount get discount_cutomer from
customer_data
if discount_customer equal 0
if customer_status isLoggedIn and
isB2bCustomer discountData = B2BDiscountValue else discountData = B2CDiscountValue end if else discountData = discount_customer; end if if customer_status isAsm discountData = 0; end if discount = old_discount -discountData; if discount isMinus discount = 0; end if
price = old_price – old_price * discount / 100;
return price; end
Kode Program 1. Fungsi DiscountRule dalam helper Pada kode program 1 dapat dilihat rumus yang sebelumnya dibahas disesuaikan kembali dengan kebutuhan di mana jika pembeli memiliki margin khusus, atau adalah Asuransi Sinar Mas maka tidak dikenakan margin, juga jika hasil pengurang Gambar 5. Halaman utama tokoonderdil.co.id
mengeluarkan hasil negatif maka dibulatkan menjadi nol. Perlu diketahui bahwa helper ini hanya sebuah kelas dengan fungsi tersebut yang diinginkan. Jadi fungsi ini hanya berupa sebuah rumus belum mempengaruhi perubahan harga apa pun. Nantinya fungsi ini disematkan ke halaman utama, katalog, perbandingan, dan lainnya. Kelas ini juga nanti diinjeksi ke sebuah kelas unik lainnya yaitu observer. Setelah perhitungan sudah disediakan, maka harus diketahui di mana letak program yang menampilkan harga yang ingin diubah. Butuh pengertian dasar terhadap struktur berkas dan folder pada Magento. Magento memiliki dua letak sumber pemrograman, yang satu folder ‘app’ yaitu folder yang berisikan modul tema dan logis yang dibuat secara pribadi oleh pemrogram. Folder lainnya bernama ‘vendor’, adalah sebuah lokasi yang tidak boleh diubah-ubah, merupakan fondasi dasar dan bawaan langsung dari Magento. Jika ingin mengubah sesuatu dari dalam folder tersebut tidak boleh langsung menumpuk kode sumber, melainkan melakukan teknik overriding. Overriding adalah menumpuk kelas yang sudah ada sehingga menggunakan kelas lain, yang memiliki fungsi tambahan atau keseluruhan fungsi berbeda sama sekali.
Untuk menunjukkan bagaimana helper tersebut digunakan, maka akan dicontohkan pada salah satu halaman, yaitu halaman katalog. Halaman katalog ini terbuka jika masuk ke sebuah kategori ataupun mencari barang.
Gambar 7 merupakan contoh dari katalog dengan menekan tombol menu kategori barang ‘BODY
PART’. Halaman katalog ini sudah menggunakan
tema pihak ketiga yaitu Venustheme. Folder
venustheme sudah meng-override berkas template
yang mengubah bagaimana tampilan seharusnya. Berkas tersebut memiliki ekstensi PHTML, CSS, maupun JS. Berkas PHTML adalah standar semua tampilan pada Magento. Menggunakan bahasa HTML biasa yang dicampur dengan cara penulisan objek seperti PHP yang biasa digunakan Magento. Untuk style dan javascript tidak ada yang mengalami perubahan. Tetapi fokus ditujukan pada PHTML untuk mengetahui di mana program yang menampilkan harga pada barang.
Untuk katalog, berkas PHTML yang sudah
di-override oleh venustheme awalnya bersumber di
\vendor\magento\module-catalog\templates\product\ dengan berkas bernama list.phtml. Hasil dari override yang dilakukan tersebut berada di \venustheme\need\magento_catalog\templates\produ
ct\ dengan nama berkas yang sama list.phtml. Berisi
semua program untuk tampilan pada katalog, tapi fokus ditujukan pada bagian yang mengubah harganya. Sebelum mengubah semua pengaturan tampilan harga ada yang harus dipikirkan terlebih dahulu. Karena tampilan akan menjadi manual, maka tampilan jika ada diskon pun harus dibuat ulang.
1 2 3 4 5 6 7 8 9 10 11 12 13
$diskon = $_product->getResource ()->getAttribute
('diskon_product')->getFrontend()->getValue($_product); $formattedPrice = $objectManager
->create('Magento\Framework\Pricing\Price CurrencyInterface');
$actualPrice = $_product->getResource ()->getAttribute
('actual_price')->getFrontend()->getValue($_product); $helper =$this
->helper('TokoOnderdil\Discount\Helper\Di skonRule');
$hargaSetelahRule = $helper
->DiscountRule($diskon, $actualPrice); if($diskon != null && $hargaSetelahRule != $actualPrice && $hargaSetelahRule < $actualPrice ){
echo("<div class='harga-diskon' style = 'text-align:left;text-decoration:line-through;color:grey;'>".$formattedPrice ->convertAndFormat($actualPrice, true,0)."</div>"); echo $block ->getProductPrice($_product); }else{
echo "<div align=left
style='color:red;font-size:1.2em;font-weight:bold;'>"; echo $formattedPrice ->convertAndFormat($hargaSetelahRule, true,0); echo "</div>"; }
Kode Program 2. Template harga pada katalog Kode program 2 menunjukkan bagian dari PHTML katalog yang sudah diubah sedemikian rupa untuk memenuhi kebutuhan. Tidak hanya menampilkan harga, tetapi bila ada diskon maka akan diberi format khusus yaitu, harga awal dicoret dan ditampilkan harga diskon. Jika dilihat ada sebuah variabel dengan nama hargaSetelahRule yang dihitung menggunakan helper (perhatikan baris lima) yang sudah dibuat. Tetapi ketika langsung diaplikasikan, stiker diskon tidak ingin tampil, sehingga harus menggunakan bagaimana cara
Magento menampilkan harga produk. Dari penggalan
kode pada kode program 2 tersebut juga dapat dilihat pada baris 9 ada bagian yang memanggil harga produk dengan menggunakan block fungsi tertentu.
Block fungsi adalah tempat di mana fungsi
logika dirancang dan dibuat. Fungsi logika tersebut nantinya dapat digunakan oleh template. Dikarenakan jika mengubah template dengan menghilangkan
block tersebut dan langsung menimpa dengan hargaSetelahRule menyebabkan masalah, maka
14
<<<Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK), Vol. x, No. x, April 2018, hlm. x-y>>> harus dibuat sebuah solusi. Yaitu membiarkan Blocktersebut menghitung dan menampilkan harga, tetapi fungsi dalam block tersbut yang melakukan hal tersebut di-override.
Karena sebelumnya sudah melakukan override
template maka untuk menemukan lokasi di mana
letak block tersebut akan menjadi lebih mudah karena berbagi lokasi induk yang sama. Karena perlu diketahui, tidak seperti helper, block pada sebuah modul hanya dapat diakses di modul tersebut. Tanpa harus mencari lokasi dari block untuk list.phtml dapat diketahui berada di \vendor\magento\module-catalog\block\product. Lalu dicari block yang
memiliki fungsi getProductPrice maka di situ didapat berkas ListProduct.php.
Beda dengan template yang sudah di-override terlebih dahulu oleh venustheme yang memang merupakan sebuah tema pihak ketiga. Block ini belum pernah di-override sebelumnya. Sehingga harus melakukan override sendiri di dalam modul Discount. Untuk melakukan hal tersebut pertama harus didaftar di dalam berkas di.xml yang terdapat dalam folder
\Discount\etc\. Cara menambahkannya yang ingin di override cukup mudah, hanya cukup menambahkan tag preferences baru di dalam tag config.
Untuk kasus kali ini perhatikan, diamana
Magento\...\Product\ListProduct di override ke
modul Discount pada lokasi
\Discount\...\Product\ListProduct. Jika sudah didaftarkan untuk override berkas ListProduct.php yang terdapat pada modul Discount dapat dibuat dan langsung di-override. Cara override pada Magento tidak susah, hanya cukup melakukan ekstensi terhadap kelas induk, dan juga menyertakan
constructor dari kelas induk. Beri nama fungsi yang
sama, maka fungsi pada kelas yang baru yang akan digunakan.
Sebelum lanjut ke fungsi getProductPrice yang baru. Perlu diketahui terlebih dahulu, perhitungan dalam helper yang sudah dikutip pada kode program 1 akan digunakan. Helper sendiri akan di injeksi langsung ke constructor sehingga sebelum digunakan, kelas helper sudah di siapkan terlebih dahulu. 1 2 3 4 5 6 7 8 9 10
start function getProductPrice
get product
get old_price from product get old_discount from product
call helperRuleDiscount
use helperRuleDiscount
get price withParam old_price, old_discount
end use return price; end
Kode Program 3. Fungsi getProductPrice yang baru Kode program 3 menunjukkan fungsi terbaru dari getProductPrice yang siap meng-override fungsi yang lama. Tidak ada perhitungan apa-apa pada fungsi ini, semuanya hanya mengambil nilai dan melempar nilai melalui parameter. Seluruh perhitungan sudah terjadi di helper. Jika perhitungan
sudah selesai maka nominal tersebut hanya butuh diubah menjadi format yang sesuai, seperti normalnya format harga.
Sampai titik ini, begitulah bagaimana tampilan yang sebelumnya menggunakan harga yang tercantum dalam basis data barang dapat berubah secara masal dan bersama menjadi harga yang menggunakan perhitungan baru. Penulis hanya menggunakan katalog sebagai contoh, karena halaman utama, halaman pencarian, halaman detail produk, dan widget produk semuanya menggunakan cara yang sama hanya pada lokasi berkas yang berbeda.
Seperti yang di sebutkan sebelumnya, semua itu hanya berupa tampilan. Tidak ada basis data yang tersentuh. Oleh karena itu perlu diperhatikan ketika barang dimasukkan ke dalam keranjang, pastilah nilai yang dilempar hanya identitas produk, dan dari identitas tersebut dicari harga dari basis data. Maka haruslah dibuat sebuah fungsi baru di mana harga yang masuk ke keranjang dan nantinya dibelanjakan berubah menjadi harga yang baru yang telah menggunakan rumus dengan atribut margin di dalamnya. Untuk mengatasi solusi ini Magento telah menyediakan sebuah kelas unik lagi, tapi tidak seperti
helper, cara kerjanya sangat berbeda. Kelas tersebut
dikenal dengan nama observer.
Observer, sebuah kelas yang memiliki kegunaan
khusus yaitu, mencegat sebuah kejadian (event). Sesuai dengan namanya, observer atau pengamat, kelas ini akan terus mengamati kejadian yang sudah di daftarkan terlebih dahulu ke kelas tersebut. Dan jika ada sebuah aksi atau kejadian maka akan di cegat oleh kelas observer dan saat pencegatan ini dapat diisi dengan fungsi pada kelas observer tersebut baru kejadian dilanjutkan. Untuk daftar kejadian atau aksi yang bisa dicegat oleh observer hanya yang sudah disediakan oleh Magento, dan ada di dokumentasi
Magento.
Pada kasus ini bisa diumpamakan seperti ini. Bagaimana sebelum barang masuk ke keranjang, harga yang dilempar oleh basis data, dapat diganti dengan harga yang sudah dihitung di dalam helper. Jadi observer digunakan untuk mengamati apakah ada yang menekan tambah keranjang pada barang. Jika ada maka sebelum barang di perbaharui di keranjang, dapat dibuat fungsi saat dicegat. Fungsi tersebut akan menggunakan helper untuk menghitung ulang menjadi harga baru. Baru proses penambahan keranjang dapat dilanjutkan, dan barang berhasil masuk keranjang, dengan harga baru di keranjang.
Pada gambar 8 adalah gambar bagaimana keranjang tidak mengambil langsung harga barang dari basis data, melainkan harga yang sudah dihitung terlebih dahulu. Observer dapat bekerja dengan baik dan tidak ada masalah. Dengan adanya observer tersebut sangat membantu pekerjaan menjadi sangat mudah. Karena tidak dibutuhkan untuk mencari letak program di mana alur ini terjadi dan ke mana data dilempar. Melainkan hanya butuh menambahkan
observer pada kejadian penambahan keranjang. Lalu
jika ingin mencegat atau menyisipkan fungsi pada kejadian tersebut, maka dapat di program di dalam
observer.
Ada 2 event yang didaftarkan. Event yang pertama “checkout_cart_product_add_after”, berguna untuk mengubah harga saat barang di masukan ke dalam keranjang, fungsinya diletakan pada berkas SetDiskonObserver.php. Sedangkan
event yang kedua
“customer_login_set_diskon_quote”, untuk memastikan saat pengguna yang belum masuk sebelumnya menambahkan barang ke keranjang. Lalu masuk ke sebuah akun yang memiliki nilai diskon dan margin berbeda, harga barang yang sudah ada di dalam keranjang, dapat mengikuti dengan diskon milik pengguna yang bersangkutan saat itu, fungsinya diletakan pada berkas SetDiskonAfterLogin.php.
1 2 3 4 5 6 7 8 9 10 11 12
start function toCartEvent withParam
event_item
get product from event_item get old_price from product get old_discount from product
call helperRuleDiscount
use helperRuleDiscount
get price withParam old_price, old_discount
end use
get cart from event_item get cart_item_price from cart
set cart_item_price = price
end
Kode Program 4. Observer saat masuk keranjang Menggunakan parameter EventItem data pada
event tersebut dapat digunakan. Pada baris tiga objek
produk yang ingin di masukan ke dalam keranjang ditarik. Pada baris empat nomor identitas (unik) barang tersebut diambil. Lalu baris lima dan enam menggunakan helper yang sudah dimasukkan terlebih dahulu ke dalam constructor dalam
SetDiskonObserver.php. Setelah itu harga baru
tersebut akan menumpuk harga lama dalam data barang tersebut.
Kode program 4 tersebut merupakan format standar dari observer. Kelas execute adalah kelas yang akan segera dijalankan ketika event yang didaftarkan berjalan. Dan di dalam kelas tersebut ada sebuah parameter yang dilempar. Parameter tersebut melempar objek yang bersangkutan dengan event tersebut. Jika dibutuhkan observer juga bisa mengimpor kelas lain.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
public function cartItemAfterLoginEvent
withParam event_item
get cart_items from event_item
for cart_item in cart_items get product from cart_item get old_price from product get old_discount from product
call helperRuleDiscount
use helperRuleDiscount
get price withParam old_price, old_discount
end use
get cart_item_price from cart_item
set cart_item_price = price end for
use cleanCache
clean app_cache
end use end
Kode Program 5. Mengubah ulang harga dalam keranjang setelah login
Kalau kode program 4 berguna untuk menangkap setiap barang pada saat masuk keranjang. Kode program 5 melakukan hal yang berbeda dengan tujuan yang sama. Saat pengguna belum masuk dan menambah barang ke dalam keranjang, maka ada sederet barang dalam keranjang yang menggunakan harga awal. Jika pelanggan tersebut merupakan pelanggan B2B dan masuk ke akunnya maka harga berubah, kode program 5 ini membaca tiap barang yang sudah ada dalam keranjang, dan saat masuk akun tiap barang akan diubah harganya. Dengan tambahan pada akhir program, baris tersebut berguna untuk membersihkan cache, dikarenakan harga awal tersimpan di dalam cache dan harus dibersihkan terlebih dahulu. Jika sudah dibersihkan, harga lama akan hilang, dan harga baru bisa ditampilkan dengan normal tanpa kendala.
Untuk pengujian aplikasi, akan digunakan metode Black Box Testing. Alasan menggunakan
Black Box Testing, dikarenakan metode pengujian
tersebut memang dimaksudkan untuk melakukan pengujian terhadap detail fungsi sebuah aplikasi. Objek dari pengujian tersebut adalah fungsionalitas aplikasi, juga pengaruh aplikasi sesuai dengan alur yang diharapkan. Dan jikalau memang terjadi masalah, dari letak tampilan tersebut pengembang harus dapat menemukan dan membetulkan masalah tersebut. Berikut tabel dari hasil pengujian Black Box
Testing.
16
<<<Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK), Vol. x, No. x, April 2018, hlm. x-y>>> Tabel 1. Black Box TestingPengujian Keluaran Harapan Keluaran Sesungguhnya Lolos / Gagal Harga pada halaman utama Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Lolos Persen diskon pada halaman utama Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Lolos Harga pada halaman katalog barang Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Lolos Persen diskon pada halaman katalog barang Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Lolos Harga barang pada keranjang saat masuk keranjang Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Lolos Harga barang pada keranjang saat masuk akun Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Lolos Harga barang pada halaman utama saat masuk akun Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Lolos Persen diskon pada halaman utama saat masuk akun Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Lolos Harga barang pada halaman komparasi barang Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Harga lama di potong persen diskon baru menghasilkan harga yang sesuai Lolos Persen diskon pada halaman komparasi barang Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Persen diskon baru sesuai dengan persen lama dikurangi margin yang ditentukan Lolos
Setelah melakukan Black Box Texting, maka program harus terlebih dahulu di presentasikan kepada pengguna sebelum dapat dikatakan layak digunakan. Presentasi testing ini biasa dikenal dengan nama UAT (User Acceptance Test) pada perusahaan yang terkait studi kasus. UAT sendiri adalah memperagakan apa yang dibuat di depan atasan dan depan pengguna. Apa saja yang diperagakan / dipresentasikan pada UAT itu tergantung dengan
kebutuhan nyata program tersebut. Dikarenakan hanya sekumpulan fungsi logika (yang hanya mengubah sedikit tampilan) maka UAT yang dilakukan untuk penelitian ini hampir sama dengan
Black Box Testing pada tabel 1. Hanya saja
dipraktikkan langsung di depan atasan dan pengguna. UAT penelitian ini sendiri sudah dinyatakan lulus atau dapat diterima oleh TokoOnderdil dan sudah diimplementasikan pada halaman website
Tokoonderdil.co.id.
Secara keseluruhan pembuatan modul ini sekilas terlihat rumit dan berbelit tetapi, jika dilihat pada pengujian di tabel 1, seluruh hasil yang diharapkan dapat terpenuhi. Tidak hanya rumit, banyak komponen yang dibuat terpisah pada
Magento ini juga menyebabkan muatan yang lebih
berat dan waktu menjalankan yang lebih lama, sekalipun di jalankan pada dasar web. Dibalik kerumitannya banyak keuntungan yang dapat diambil. Masalah dapat dilacak dengan mudah tergantung bagian mana yang terjadi kesalahan. Modul terpisah ini juga nantinya dapat digunakan kembali jika dibutuhkan. Dengan menggunakan
Magento dan modulnya, jika kita sudah merancang
dengan baik alur dari yang akan dibuat, dapat memangkas waktu pemrograman. Memangkas waktu pemrograman yang disebut hanya bisa berlaku secara optimal jika pengembangan sudah mempelajari dasar dari Magento.
5. KESIMPULAN DAN SARAN Kesimpulan
Modul Discount berhasil diimplementasikan dengan baik dan tanpa masalah pada sebuah website TokoOnderdil dengan framework Magento. Magento sendiri sudah menyiapkan banyak fitur yang memudahkan pembuatan sebuah modul khusus menjadi sangat mudah. Dengan adanya fitur ini seluruh pengaturan harga menjadi lebih mudah. Tidak hanya mudah untuk mengatur tetapi juga memudahkan pengguna, karena hanya dengan cukup melihat harga yang tertera di halaman website TokoOnderdil menurut akun mereka.
Saran
Untuk pengembangan dan penelitian selanjutnya, ada beberapa hal yang butuh diperhatikan. Pastikan ketika melakukan override modul, jika itu back-end maupun front-end, letakan di lokasi folder yang telah disediakan Magento dan sesuai dengan standar Magento. Juga ketika membutuhkan tindakan cache clean atau flush, seharusnya dilakukan di luar sebuah logika pemrograman, atau program dapat mengakses dan mengubah data tanpa menyentuh cache.
DAFTAR PUSTAKA
AJZELE, B., 2015. Magento 2 Developer’s Guide. Birmingham: Packt Publishing.
ANGGRAININGSIH, R., SURYONO, A.D.P., &
ROHMAWATI, U.A.N., 2017.
Perbandingan Maintainability, Fleksibility, Testability Pada CMS Open Source E-Commerce. InfoTekJar (Jurnal Nasional Informatika dan Teknologi Jaringan) Vol 2. e-ISSN : 2540-7600. p-ISSN : 2540-7597. ARYATO, D., TARIGAN F.A., 2015. . Aplikasi
Penjualan Pakaian Secara Online (Studi Kasus: Tauko Medan). Jurnal TIMES, Vol. IV No 1: 6-12, 2015. ISSN: 2337-3601. BINUS, 2016. Perbedaan White Box Testing dan
Black Box Testing. Tersedia melalui:
Website Resmi Binus
<http://scdc.binus.ac.id/himsisfo/2016/10/p erbedaan-white-box-testing-dan-black-box-testing/> [Diakses 6 September 2018] JAMAL, E.U., & AMBOROWATI, A., 2015.
Analisis Perbandingan Aplikasi Web Berdasarkan Quality Factors dan Object Oriented Design Metrics. Jurnal Ilmiah DASI Vol. 16. ISSN: 1411-3201.
MIGUEL, F.J., 2016. Magento 2 Development Essentials. Birmingham: Packt Publishing. PUTRI, S.I., YUDISTIRA A.S., 2016. Perancangan
Sistem Perpustakaan Online Menggunakan Metode Model View Controller (MVC) (Studi Kasus: STMIK Asia Malang). Jurnal Ilmiah Teknologi dan Informasia ASIA, Vol. 10 No. 2. ISSN: 0852-730X.
RACHMANIAH, M., SEBASTIAN, A., 2018. Sistem Penjualan Benih Eceran untuk Masyarakat Perkotaan Menggunakan Magento dan Bootstrap. Vol 5. ISSN: 2089-6026.
SEBASTIAN, A., 2016. Semaksemak.com: Sistem Penjualan Benih Eceran Untuk Masyarakat Perkotaan Menggunakan Magento Dan Bootstrap. Skripsi Tidak Diterbitkan. Fakultas Matematika dan Ilmu Pengetahuan Alam. Institut Pertanian Bogor.
SIMANJUNTAK, P., KASNADY, A., 2016. Analisis Model View Controller (MVC) Pada Bahasa PHP. Jurnal ISD, Vol 2. e-ISSN: 2528-5114. SUPAARTAGORN, C., 2011. PHP Framework For Database Management Based On MVC Pattern. International Journal of Computer Science & Information Technology
(IJCSIT), Vol 3. DOI :