Fakultas Ilmu Komputer
Pengembangan Web Portal Landing Page E-Commerce Dengan Pola Single
Page Application
Alif Sani Ekasmara1, Nurudin Santoso2
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1saniekasmara@gmail.com, 2nurudin.santoso@ub.ac.id
Abstrak
Berdasarkan studi yang dilakukan oleh Google dan Temasek pada tahun 2018, Indonesia memiliki potensi ekonomi digital yang besar. Hal ini akan sangat baik jika pelaku bisnis di Indonesia dapat memanfaatkan potensi tersebut. Namun pelaku bisnis di Indonesia yang didominasi oleh pelaku skala kecil dan menengah (UMKM) akan memiliki beberapa masalah jika harus mengembangkan website bisnisnya sendiri. Untuk mengatasi masalah berikut maka dikembangkan sebuah website portal landing
page e-commerce. Dengan banyaknya data yang diolah dan di-transfer antar server dan client maka
sistem akan dikembangkan dengan pola single-page application. Sistem akan dikembangkan dengan model prototyping pada proses pengembangannya. Antarmuka sistem dikembangkan dengan library ReactJS dan pada server menggunakan NodeJS dan Express framework. Komunikasi antar server dan
client dilakukan dengan JSON. Hasil dari penelitian didapatkan ada 3 aktor, 41 kebutuhan fungsional,
dan 3 kebutuhan non-fungsional. Pengujian system dilakukan dengan pengujian white-box dan
black-box. Hasil dari pengujian tiap kebutuhan didapati 100% valid.
Kata kunci: single-page application, e-commerce, prototyping, portal, white-box, black-box, landing
page.
Abstract
Based on studies conducted by Google and Temasek in 2018, Indonesia has great digital economic potential. This will be very good if business people in Indonesia can exploit this potential. But businesses in Indonesia which are dominated by small and medium scale entrepreneurs (MSMEs) will have some problems if they have to develop their own business websites. To overcome the following problem, an e-commerce landing page portal website was developed. With so much data being processed and transferred between servers and clients, the system will be developed using a single-page application pattern. The system will be developed with a prototyping model in the development process. The system interface was developed with the ReactJS library and on the server using NodeJS and Express framework. Communication between server and client is done with JSON. The results of the study found that there were 3 actors, 41 functional needs, and 3 non-functional needs. System testing is done by white-box and black-box testing. The results of testing each need found 100% valid.
Keywords: single-page application, e-commerce, prototyping, portal, white-box, black-box, landing page.
1. PENDAHULUAN
Ekonomi digital di Indonesia menjadi salah satu ekonomi yang melaju sangat pesat. Ekonomi digital Indonesia adalah yang terbesar dan paling cepat berkembang di kawasan ASEAN, dengan capaian 27 miliar dollar Amerika pada tahun 2018 dan diprediksi untuk tumbuh ke 100 miliar dollar Amerika pada 2025 (Google TEMASEK, 2018). Salah satu bidang ekonomi digital di Indonesia yang digemari
adalah e-commerce. E-commerce bukanlah suatu hal yang asing lagi bagi penduduk Indonesia apalagi di kalangan anak muda. Belanja melalui
e-commerce memberikan banyak keuntungan
selain mudah dan tidak perlu keluar rumah, dengan banyaknya penjual yang ada pada
e-commerce memberikan banyak pilihan dari jenis
produk hingga harga yang ditawarkan pun beragam. Pasar e-commerce di Indonesia diprediksi akan naik 41% dari tahun 2018 yaitu sebesar 53 miliar dollar Amerika dari 12.2 miliar dollar Amerika (Google TEMASEK, 2018).
Pelaku bisinis di Indonesia didominasi oleh usaha skala rumahan atau dapat dikategorikan sebagai usaha mikro kecil menengah (UMKM). Dengan besarnya pasar e-commerce di Indonesia maka diharapakan pelaku usaha dapat memanfaatkan e-commerce untuk memperluas pemasaran produk yang dimiliki dan memperdalam penetrasi pasar. Untuk itu biasanya pelaku usaha akan membuat website-nya sendiri, namun hal ini memiliki kelemahan selain biaya pengembangan yang besar sehingga tidak cocok untuk usaha kecil dan dalam hal pemeliharaan juga susah untuk pelaku usaha yang memiliki pengetahuan yang kurang tentang teknologi informasi. Oleh karena itu perlu adanya sebuah aplikasi portal landing page
e-commerce yang akan menjadi sebuah situs yang
memiliki tujuan spesifik yaitu melakukan jual beli yang mengumpulkan banyak sumber ke dalam satu website dalam bentuk yang seragam. Sehingga selain akan mengakomodasi tren yang ada saat ini pembeli lebih suka mengakses aplikasi yang memberikan banyak pilihan dalam satu aplikasi (Kestenbaum, 2017), penjual yang tergabung dalam website memliki peluang yang lebih besar untuk produknya dapat diketahui, dan yang paling penting adalah penjual tidak perlu khawatir dan repot dalam melakukan pemeliharaan website yang dipakai karena semua menjadi tanggung jawab dari penyedia
website.
Website yang dikembangkan dengan arsitektur tradisional bekerja dengan cara melakukan request ke server yang kemudian
server akan mengembalikan data yang diminta.
Data yang dikembalikan oleh server ini biasanya memiliki ukuran cenderung besar karena memang kebutuhannya besar. Package yang dikirim oleh server biasanya berisi data html, css, dan lain-lain maka diperlukan adanya banyak user interface agar konten dapat ditampilkan sesuai rancangan. Hal ini tentunya membebani server ketika pengguna ingin mendapatkan konten yang lain, server harus mengirimkan semua sumber daya yang dibutuhkan berulang-ulang. Untuk mengatasi permasalahan tersebut dapat digunakan
asynchronous javascript dan XML (AJAX). Single-page application (SPA) sesuai nama
-nya adalah sebuah aplikasi yang hanya perlu memuat satu halaman (Flanagan, 2006).
Single-page application bekerja dengan cara website
melakukan penulisan ulang pada halaman yang digunakan user ketimbang harus memuat ulang seluruh halaman. Dengan menggunakan
single-page application maka aplikasi cenderung
menjadi lebih cepat karena interaksi antara client dengan server hanya sebatas pertukaran data dan dengan menggunakan single-page application
back-end yang telah dibuat dapat digunakan
ulang untuk pengembangan aplikasi mobile. Berdasarkan permasalahan tersebut maka diperlukan aplikasi web portal landing page
e-commerce yang tidak memberatkan server
dalam transaksi data, hal ini dapat dicapai dengan penggunaan teknologi single page
application (SPA). Oleh karena itu penulis
mengambil inisiatif untuk mengajukan penelitian berjudul “PENGEMBANGAN WEB
PORTAL E-COMMERCE DENGAN POLA SINGLE PAGE APPLICATION”.
2. LANDASAN KEPUSTAKAAN
2.1. Kajian Pustaka
Penelitan pertama dengan judul “Pengembangan Single Page Application Pada Sistem Akademik” dilakukan penelitian tentang penggunaan single-page application untuk mengatasi beban kerja server yang berat untuk melayani request berkas yang dilakukan pengguna (Belluano, 2018). Penelitian selanjutnya dengan judul “Analisis Penerapan
Single Page Application Menggunakan Teknologi AJAX dan Rest API” dilakukan penelitian penggunaan single-page application untuk mengatasi borosnya bandwith yang diperlukan untuk melayani request pengguna dan merespon request pengguna (Azhari & Tanone, 2017). Pada penelitian yang terakhir dengan judul “Modern Web Development using ReactJS” dilakukan indentifikasi library ReactJS dan didapati bahwa ReactJS memenuhi kriteria untuk pengembangan aplikasi web modern (Aggarwal, 2018).
2.2. Single-page Application
Sesuai bahasanya merupakan aplikasi yang menggunakan satu file HTML untuk seluruh aplikasi sebagai cangkang (Fink & Flatow, 2014). Pada pengembangan aplikasi web tradisional developer cenderung fokus kepada sisi server. Server menjadi tulang punggung dari aplikasi yang ada. Seluruh operasi logika pada aplikasi dilakukan oleh mesin server, client hanya berperan dalam menampilkan halaman aplikasi.
Gambar 1. Interaksi pada website tradisional (Fink
& Flatow, 2014)
Pada single-page application interaksi antara client dengan server menggunakan mekanisme yang berbeda dengan web
tradisional. Untuk request single-page application menggunakan asynchronous
javascript and XML (AJAX) dan server akan memberikan respon data dalam bentuk javascript
object notation (JSON) atau potongan HTML
yang belum di-render. Render pada single-page
application dilakukan pada sisi client dan
perpindahan antar halaman diproses oleh sisi
client dengan routing dan mekanisme templat.
Gambar 2. Interaksi pada single-page application
(Fink & Flatow, 2014)
2.3.E-commerce
Pada zaman modern penggunaan internet telah mempermudah manusia dalam melakukan interaksi dengan sesama dan dengan adanya internet batasan-batasan yang dulu ada seperti jarak dan waktu menjadi hilang. Dengan penggunaan internet pada bidang perdagangan membuka peluang bagi pelaku usaha dalam menjalankan usaha dan pemasaran produknya. Istilah e-commerce pada saat ini menjadi sangat terkenal. Pada dasarnya e-commerce atau
electronic commerce mengacu pada penjualan
dan pembelian melalui internet dan pengiriman uang dan data untuk menjalankan transaksi (Shopify, n.d.).
2.4. Landing Page
Landing page pada dasarnya adalah sebuah
halaman website yang ditemui oleh pegunjung internet pada saat pertama kali seseorang ketika akan melakukan sebuah aksi penting yang diinginkan oleh pemilik website (Ash, et al., 2012). Pada fungsinya sebuah landing page memiliki dua fungsi. Fungsi yang pertama memiliki kaitan dengan marketing seperti mencatat lead pengunjung. Nantinya lead pengunjung ini diharapkan akan melakukan transaksi pada website. Yang kedua adalah untuk mempercepat sebuah transaksi dengan sedikit distraksi dari link dan tombol.
2.5. ReactJS
ReactJS adalah sebuah library javascript yang diluncurkan pada tahun 2013. ReactJS diluncurkan untuk pengembangan view pada arsitektur Model-View-Controller (MVC) atau dapat dibilang user interface (UI) pada sebuah program. Salah satu kekuatan dari ReactJS adalah penggunaan virtual document object
model (VDOM). Virtual DOM adalah sebuah
konsep pemrograman dimana representasi ideal
user interface (UI) disimpan pada memori dan
disinkronkan dengan DOM sesungguhnya dengan ReactDOM (ReactJS, 2019).
2.6. Javascript
Javascript adalah pemrograman yang diinterpretasikan dengan kekuatan object oriented (OO). Objek pada Javascript memetakan nama property ke nilai property
arbiter dan mekanisme turunan pada object oriented menggunakan basis property
(Flanagan, 2006). Javascript memiliki notasi objek literal yang kuat (Crockford, 2008). Pada Javascript objek dapat dibuat hanya dengan menuliskan komponen-komponennya.
2.7. NodeJS
NodeJS adalah runtime javascript yang dibangun pada mesin Chrome V8 javascript (Node.js, 2019). Pada model pemrograman terdahulu setiap permintaan yang dilakukan oleh pengguna harus mempunyai thread tersendiri. Untuk aplikasi yang besar dan memiliki pengguna yang banyak hal ini menjadi masalah tersendiri. Nodejs diciptakan untuk mengatasi
kelemahan tersebut dengan menggunakan model
single threaded. Permintaan pada Nodejs
berjalan pada thread yang sama bahkan berbagi sumber daya (Sathees, et al., 2015).
2.8. Express
Express adalah sebuah framework untuk NodeJS yang diciptakan karena pemrograman menggunakan vanilla NodeJS bertele-tele, membingungkan, dan memiliki fitur yang terbatas (Hahn, 2016). Dengan middleware maka request handler tersebut dipecah-pecah menjadi bagian kecil yang mengerjakan tugas spesifik. Routing memiliki prinsip sama dengan
middleware hanya saja pada routing kerja yang
dilakukan dipengaruhi oleh URL dan HTTP yang diminta. Routing bekerja bersama-sama dengan middleware dan saling melengkapi. 2.9. MongoDB
MongoDB adalah basis data yang menggunakan konsep document-oriented.
Alasan utama untuk menjauh dari data relasional adalah mempermudah scaling out (Chodorow, 2014). Pada document-oriented juga tidak mengenal skema tetap. Data yang disimpan pada basis data baik jenis maupun atributnya tidak harus sama dan tetap.
2.10. Prototyping Model
Penggunaan software prototyping menjadi sangat popular karena dengan penggunaan
prototype memungkinkan pengembang mengerti
kebutuhan pengguna pada tahap awal pengembangan (Tutorialspoint, n.d.). Pada pengembangan model ini sistem yang akan dikembangkan dibuat terlebih dahulu modelnya. Model tersebut akan dievaluasi oleh pengguna. Dengan model ini nantinya pengembang akan dapat menemukan kebutuhan yang dibutuhkan pengguna yang tidak teridentifikasi pada fase perancangan. Penggunaan model prototype dapat digunakan ketika kebutuhan pengguna sangat rumit dan susah ditetapkan secara presisi (Agileinfoways, 2016).
2.11. Payment Gateway
Payment gateway adalah sebuah sotware
yang mengotorisasi transaksi online melalui berbagai moda pembayaran seperti perbankan, kartu kredit, kartu debit, UPI, atau dompet daring yang banyak tersedia pada saat ini (Parikh, 2019).
2.12. Sequence Diagram
Merupakan sebuah diagram yang berfokus pada pertukaran pesan di antara beberapa
lifelines (Object Management Group, 2011).
Dengan pengertian tersebut maka sequence
diagram masuk ke dalam kategori diagram
interaksi.
3. METODOLOGI PENELITIAN
Penelitian dilakukan dengan menggunakan model pengembangan prototyping. Alur dari penelitian akan digambarkan pada gambar 3. Adapun tahap-tahap yang dijalankan dalam penelitian ini adalah studi kepustakaan, rekayasa persyaratan, perancangan dan implementasi, pengujian, dan yang terakhir adalah penarikan kesimpulan dan saran.
Gambar 3. Diagram alir penelitian 4. REKAYASA PERSYARATAN
4.1. Identifikasi Aktor
Pada tahap ini dilakukan pengidentifikasian siapa-siapa saja pengguna dari sistem yang akan menggunakan sistem yang akan dikembangkan. Pada tahap ini didapatkan ada sebanyak 3 aktor dimana aktor tersebut adalah: admin,
non-member, dan member. Setelah aktor berhasil
peranan aktor tersebut dalam sistem yang dikembangkan.
4.2. Kebutuhan Fungsional
Kebutuhan fungsional merupakan kebutuhan yang harus ada pada sistem agar aktor yang telah diidentifikasi dapat melakukan perannya secara maksimal.
Pada sistem ini didapati pada iterasi pertama sejumlah 32 kebutuhan fungsional yang kemudian mengalami penambahan pada iterasi kedua sebanyak 9 kebutuhan fungsional sehingga total terdapat 41 kebutuhan fungsional pada sistem.
4.3. Kebutuhan Non-fungsional
Pada sistem ini terdapat 2 kebutuhan non-fungsional security yaitu pada bentuk penyimpanan password akun dan lama waktu valid dari reset password. Kemudian ada 1 kebutuhan non-fungsional pada reliability yaitu lama pengiriman e-mail reset password.
4.4. Use Case Diagram
Pada gambar 4 akan memperlihatkan use
case kebutuhan non-member sistem pada iterasi
pertama dan kemudian pada gambar 5 akan ditampilkan use case kebutuhan non-member pada iterasi kedua dimana terjadi penambahan sebanyak sembilan kebutuhan baru.
Gambar 4. Use case diagram non-member iterasi 1
Gambar 5. Use case diagram non-member iterasi 2 5. PERANCANGAN DAN
IMPLEMEN-TASI
5.1. Perancangan Arsitektur
Perancangan arsitektur sistem akan diperlihatakan pada gambar 6. Sistem menggunakan arsitektur MVVM dimana pada bagian front-end berperan menampilkan tampilan dan menyimpan sebagian data pada
local storage. Pada bagian back-end digunakan
Express framework dan NodeJS. Pada database digunakan MongoDB dan terdapat pihak ketiga untuk melakukan payment dan pengiriman
e-mail.
Gambar 6. Arsitektur aplikasi
5.2. Perancangan Data
Pada perancangan data dilakukan dengan menentukan entitas data yang ada pada sistem dimana diketahui terdapat 5 entitas pada sistem yang kemudian digambarkan relasi antar entitas tersebut dengan Physical Data Modeling. 5.3. Perancangan Komponen
Pada perancangan komponen dilakukan untuk memberikan gambaran yang lebih rinci dari struktur sistem dan bagaimana komponen-komponen dalam sistem berkomunikasi.
Gambar 7 merupakan class diagram yang menggambarkan objek-objek yang ada pada sistem.
Gambar 7. Class diagram sistem
Selain itu juga dilakukan pemodelan dengan sequence diagram dimana diagram ini digunakan untuk menggambarkan bagaimana komponen yang ada pada suatu fungsi berkomunikasi ketika sebuah fungsi pada sistem dijalankan. Gambar 8 merupakan sequence
diagram yang menggambarkan interaksi dari
komponen yang ada ketika fungsi order dijalankan.
Gambar 8. Sequence diagram fungsi order
5.4. Perancangan Antarmuka
Pada tahap ini dilakukan perancangan user
interface untuk tampilan sistem. Perancangan
dilakukan dengan konsep low-fidelity yang menggambarkan gambaran besar dari sebuah
tampilan pada halaman sistem. 5.5. Implementasi Database
Implementasi dilakukan sesuai dengan hasil perancangan pada database dengan ketentuan yang sesuai dengan MongoDB. Terdapat lima collections pada database sesuai dengan entitas yang ada. Pada implementasi digunakan library mongoose untuk mempermudah melakukan manipulasi database yang ada.
5.6. Implementasi Fungsi
Implementasi dilakukan dengan mengacu pada dua perancangan yaitu perancangan antarmuka dan perancangan komponen. Pada perancangan antarmuka digunakan sebagai dasar untuk melakukan implementasi pada sisi
front-end. Dimana tampilan halaman, dan warna pada
halaman yang telah dirancang sebelumnya diimplementasikan ke kode. Pada sisi front-end digunakan ReactJS untuk pengimplementasian. Untuk pengimplementasian sisi back-end
mengacu pada perancangan komponen sehingga objek dan alur dari fungsi sesuai dan dapat ditelusuri kembali alur berjalannya. Pada sisi
back-end Express sebagai framework untuk
NodeJS digunakan untuk mengimplementasikan
server. Server akan berkomunikasi dengan
MongoDB melalui mongoose. Gambar 9 akan menggambarkan hasil dari implementasi fungsi.
Gambar 9. Halaman beli produk 6. PENGUJIAN
6.1. Pengujian Unit
Pengujian unit dilakukan untuk memastikan fungsi menjalankan fungsinya sesuai harapan dengan tanpa komunikasi dengan fungsi lain. Pengujian unit dilakukan dengan cara white-box dengan metode basis path testing. Berikut contoh dari pengujian unit yaitu pada fungsi handleFile():
handleFile()
SET fileContainer To file parameter
SET file name + id + name + imgindex TO imgName
CALL mv() FROM fileContainer
IF formerImg !== null
CALL removeFile() ENDIF
RETURN imgName
Gambar 10. Control flow graph fungsi handleFile()
-
V(G) = Jumlah Edge – Jumlah Node + 2= 5 – 5 + 2 = 2
Maka jalur independennya adalah: - Jalur 1: 1-2-3-4-5
- Jalur 2: 1-2-4-5
Pada tabel 1 menggambarkan bagaimana alur logika dari fungsi. Alur logika ini kemudian digunakan untuk dasar membuat control flow
graph (CFG) pada gambar 10. Kemudian dari graph tersebut dihitung complexity dan menentukan jalur independen yang kemudian akan digunakan untuk menjalankan kasus uji. Dari hasil diatas maka ada dua jalur independen untuk kasus uji dari fungsi handleFile(). Maka kasus uji dan hasil kasus uji dapat dilihat pada tabel berikut:
Tabel 2. Kasus uji handleFile()
Test Scenario Expected Result Actual Result Pass/ Fail Upload file dengan tanpa file File baru yang ditambahkan disimpan pada folder File baru yang ditambahkan disimpan pada folder Pass. lama tersedia. upload yang disediakan, nama file yang ditambahkan diubah sesuai dengan namafile + id + nama produk + index. upload yang disediakan, nama file yang ditambahkan diubah sesuai dengan namafile + id + nama produk + index. Upload file dengan file lama tersedia. File baru yang ditambahkan disimpan pada folder upload yang disediakan, nama file yang ditambahkan diubah sesuai dengan namafile + id + nama produk + index. File yang lama dihapus dari folder upload. File baru yang ditambahkan disimpan pada folder upload yang disediakan, nama file yang ditambahkan diubah sesuai dengan namafile + id + nama produk + index. File yang lama dihapus dari folder upload. Pass. 6.2. Pengujian Integrasi
Pengujian intergrasi dilakukan setelah melakukan pengujian unit. Pengujian ini dilakukan untuk mengetahui apakah fungsi pada saat dijalankan dan berkomunikasi dengan fungsi lain berjalan sesuai dengan harapan dan menghasilkan hasil sesuai dengan yang diinginkan. Proses pengujian integrasi dilakukan sama seperti pengujian unit dengan white-box menggunakan metode basis path testing. 6.3. Pengujian Validasi
Pengujian validasi dilakukan pada semua kebutuhan fungsional yang telah dijabarkan pada fase analisis kebutuhan dengan menggunakan metode black-box untuk mengetahui apakah hasil keluaran fungsi sesuai dengan yang diharapkan. Hasil dari pengujian adalah 100% valid.
6.4. Pengujian Non-fungsional
Pengujian non-fungsional dilakukan dengan menjalankan kasus uji pada kebutuhan non-fungsional security dan reliability yang
1
2
3
4
5
telah didefinisikan. Hasil dari pengujian dari kebutuhan security adalah password tersimpan dengan bentuk hash, lama valid reset password adalah 1 jam. Untuk kebutuhan reliability didapatkan e-mail reset dikirim kurang dari 5 detik.
7. KESIMPULAN
Kesimpulan yang dapat ditarik adalah:
a. Hasil dari proses analisis kebutuhan didapatkan aktor sebanyak 3 aktor, 41 kebutuhan fungsional, dan 3 kebutuhan non-fungsional yang kemudian digambarkan pada use-case diagram dan use-case
scenario.
b. Perancangan dilakukan dengan tahapan perancangan aristektur menyesuaikan penggunaan single-page application dengan MERN stack. Perancangan data dilakukan dengan physical data modeling. Kemudian perancangan komponen dilakukan dengan
sequence diagram dan class diagram untuk
menggambarkan komponen pada sistem dan alur dari fungsi dieksekusi. Perancangan antarmuka dilakukan dengan metode
low-fidelity.
c. Implementasi dilakukan dengan menggunakan ReactJS pada sisi client dan Express pada sisi server. Pada bagian
database digunakan MongoDB.
d. Hasil pengujian dari pengujian unit, integrasi dan validasi yang dilakukan pada kebutuhan fungsional dan non-fungsional didapatkan hasil 100% valid.
8. SARAN
Dari penelitian yang telah dilakukan ada beberapa saran yang dapat dikembangkan untuk penelitian lebih lanjut:
a. Penggunaan GraphQL sebagai protokol komunikasi API yang menyediakan mekanisme komunikasi lebih efisien dibandingkan penggunaan Rest API. b. Penyempurnaan fitur search yang dapat
melakukan pencarian dengan menyeluruh pada semua data baik produk, toko, maupun kategori yang ada pada sistem dibandingkan dengan hanya mencari produk berdasarkan kategori yang ada saat ini.
c. Penambahan fitur bagi administrasi sehingga peran administrator pada sistem bisa lebih baik dalam mengatur website.
9. DAFTAR PUSTAKA
Aggarwal, S., 2018. Modern Web-Development using ReactJS. International Journal of
Recent Research Aspects ISSN: 2349-7688, 5(1), pp. 133-137.
Agileinfoways, 2016. Software
PROTOTYPING – Worth or Not?.
[Online] Available at:
https://www.agileinfoways.com/blog/so ftware-prototyping-worth-or-not/ [Accessed 4 November 2019]. Ash, T., Page, R. & Ginty, M., 2012. Landing
Page Optimization. 2nd ed.
Indianapolis: John Wiley & Sons, Inc. Azhari, A. L. & Tanone, R., 2017. Analisis
Penerapan Single Page Application.
Jurnal Teknik Informatika dan Sistem Informasi , pp. 116-126.
Belluano, P. L. L., 2018. PENGEMBANGAN SINGLE PAGE APPLICATION.
ILKOM Jurnal Ilmiah, pp. 38-43.
Chodorow, K., 2014. MongoDB: The Definitive
Guide. 2nd ed. Sebastopol: O'Reilly.
Crockford, D., 2008. Javascript: The Good
Parts. 1st ed. Sebastopol: O'Reilly.
Fink, G. & Flatow, I., 2014. Pro Single Page
Application Development. 1st ed.
s.l.:Apress.
Flanagan, D., 2006. JavaScript: The Definitive
Guide. 5th ed. Sebastopol: O'Reilly.
Google TEMASEK, 2018. e-Conomy SEA 2018
Southeast Asia's internet economy hits an inflection point, s.l.: Google
TEMASEK.
Hahn, E. M., 2016. Express in Action. Shelter Island: MANNING.
Kestenbaum, R., 2017. Forbes. [Online] Available at: https://www.forbes.com/sites/richardke stenbaum/2017/04/26/what-are-online- marketplaces-and-what-is-their-future/#2d448cf83284 [Accessed 28 Mei 2020]. Node.js, 2019. Node.js. [Online]
Available at: https://nodejs.org/en/ [Accessed 13 Oktober 2019]. Object Management Group, 2011. OMG
Unified Modeling LanguageTM (OMG UML) Version 2.4.1, Needham: Object
Management Group.
Parikh, S., 2019. What is a Payment Gateway
and How Does It Work. [Online]
Available at:
https://razorpay.com/blog/payment-gateway-101/
[Accessed 15 Juni 2020]. ReactJS, 2019. React. [Online]
Available at: https://reactjs.org/ [Accessed 23 Oktober 2019]. Sathees, M., Krol, J. & D'mello, B. J., 2015.
Web Development with MongoDB and NodeJS. 2nd ed. Birmingham: Packt.
Shopify, n.d. Ecommerce. [Online] Available at:
https://www.shopify.com/encyclopedia/
what-is-ecommerce
[Accessed 3 November 2019].
Tutorialspoint, n.d. SDLC - Software Prototype
Model. [Online]
Available at:
https://www.tutorialspoint.com/sdlc/sdl c_software_prototyping.htm