BACKEND JAVASCRIPT
Oleh :
Atika Indah Sari / 1901092026
Oleh :
Atika Indah Sari / 1901092026
Program Magang dan Studi Independen Bersertifikat (MSIB) adalah salah satu
program kampus merdeka yang dirancang untuk memastikan para mahasiswa
mendapatkan kompetensi terbaik, kompetensi terkini, dan kompetensi terdepan untuk
menghadapi dunia di masa depan. PT Lentera Bangsa Benderang atau yang lebih
dikenal dengan Binar Academy ialah salah satu mitra yang tergabung dalam program
MSIB Kampus Merdeka ini. Binar Academy adalah pelopor startup edutech di bidang
digital skill. Salah satu kelas yang disediakan oleh pihak Binar Academy ialah kelas
Backend JavaScript. Project yang dikerjakan di kelas ini diantaranya menampilkan
output penjumlahan sederhana, menampilkan output program berupa pola bintang
atau segitiga menggunakan looping, membuat API seperti API untuk register, login,
CRUD, dan sebagainya. Final project yang diberikan oleh pihak Binar Academy
adalah membuat website jual beli barang bekas. Final project ini merupakan
implementasi dari seluruh materi yang telah diberikan selama mengikuti program
MSIB Kampus Merdeka. Program MSIB sampai saat ini berjalan dengan baik,
project yang diberikan oleh mitra juga sangat aplikatif. Sehingga mahasiswa
mendapat banyak pengetahuan dan pengalaman.
Kata Kunci : MSIB Kampus Merdeka, Binar Academy, Backend JavaScript,
Project.
KATA PENGANTAR
Puji dan syukur penulis ucapkan atas kehadiran Allah SWT yang telah
memberikan berkah, rahmat, dan karunia-Nya, sehingga penulis dapat menyelesaikan
Laporan Akhir MSIB Kampus Merdeka yang telah dilaksanakan selama 6 bulan di
PT Lentera Bangsa Benderang (Binar Academy). Laporan ini disusun dan diajukan
untuk memenuhi syarat akhir Program MSIB Kampus Merdeka Angkatan 2.
Laporan ini dapat diselesaikan karena penulis menerima banyak bantuan dan
dukungan. Untuk itu, penulis mengucapkan terima kasih kepada :
1. Bapak Ronal Hadi, ST., M.Kom. selaku Ketua Jurusan Teknologi Informasi
Politeknik Negeri Padang.
2. Ibu Defni, S.Si., M.Kom. selaku pembimbing jurusan.
3. Ibu Rita Afyenni, M.Kom. dan Ibu Indri Rahmayuni, MT. selaku dosen
pembimbing yang telah menyediakan waktu, tenaga, dan pikiran untuk
membantu penulis dalam menyelesaikan Laporan Akir MSIB Kampus
Merdeka ini.
4. Kak Agnes Pravida Irlitashanty selaku fasilitator BackEnd JavaScript yang
telah membimbing penulis dalam melaksanakan program MSIB Kampus
Merdeka di Binar Academy.
5. Kak Candra selaku Academic Affairs & Operation (AAO) yang bertanggung
jawab di kelas BEJS 2 dan banyak membantu penulis dalam menyelesaikan
laporan ini.
6. Mas Didik Nur Hidayat dan Febryan Ali Akbar selaku tim BEJS 2 yang telah
membantu penulis dalam membuat dan menyelesaikan final project serta
mengizinkan penulis menggunakan final project ini untuk tugas akhir.
7. Mas Erlangga Aditya, Ilham Bintang Pratama, dan Muhammad Rian Syah
selaku tim FEJS 2 yang telah membantu dan mengizinkan penulis
menggunakan final project ini untuk tugas akhir.
8. Orang tua, keluarga, teman-teman, dan semua pihak yang tidak dapat penulis
sebutkan satu persatu yang telah memberikan do’a serta dukungan kepada
penulis selama mengikuti Program MSIB Kampus Merdeka ini.
9. Diri penulis yang telah berusaha untuk bertahan sampai tahap ini.
Laporan Akhir MSIB Kampus Merdeka ini, disusun berdasarkan apa yang
telah dijalankan selama melaksanakan kegiatan MSIB di Binar Academy. Yang
dilaksanakan selama kurang lebih 5 bulan, mulai tanggal 14 Februari 2022 sampai
dengan 22 Juli 2022.
Penulis menyadari bahwa laporan akhir ini masih jauh dari sempurna. Oleh
karena itu, saran dan kritik yang bersifat membangun akan penulis terima dengan
senang hati. Penulis berharap laporan akhir ini dapat bermanfaat bagi semua pihak
yang memerlukan.
Penulis
Penulisan menggunakan font Times New Roman ukuran 12 dengan spasi satu;
Judul tiap bab ditulis menggunakan huruf kapital dan dicetak tebal;
Jarak antara judul dengan daftar Isi adalah empat (4) spasi
Dapat ditambahkan berbagai daftar yang dibutuhkan seperti daftar tabel, daftar
gambar, daftar algoritma, daftar padanan istilah, daftar singkatan, daftar istilah, daftar
simbol. Khusus untuk daftar pustaka, dapat diletakkan setelah bab Penutup, sebelum
lampiran.Jika hanya terdapat satu gambar atau satu tabel, maka tidak perlu dibuat
daftar gambar atau daftar tabel. Setiap daftar, misal daftar gambar, daftar tabel, daftar
istilah dan singkatan, semuanya diletakkan pada halaman terpisah.
DAFTAR TABEL
DAFTAR GAMBAR
DAFTAR LAMPIRAN
BAB I
PENDAHULUAN
1.2 Lingkup
1.3 Tujuan
FINAL PROJECT
SecondHand
Task Description
Auth Akun untuk user
CRUD User
Product (Sesuai fitur minimu)
Transaksi
Design Pattern / Architectural Basic MCR, Monolith two layers
(back end layer and front end
layer)
Searching Filtering Searching Pagination and Sorting
Role Buyer
Seller
c. Perancangan database
Melakukan diskusi terkait tabel-tabel database yang diperlukan
untuk membuat API web SecondHand. Hasil dari kegiatan ini
berupa ERD dari API web SecondHand.
d. Pembuatan kode program
Membuat dan melakukan installasi package yang akan di pakai
dalam pembuatan API web SecondHand. Kode program awal yang
dibuat terdapat pada file app.js, package.json, .env, dsb.
e. Membuat database
Penulis menggunakan model dan migration dari sequelize.
Migration adalah blueprint dari database yang akan dibuat
sedangkan Model adalah representasi dari entity atau tabel yang
ada di database. Database web SecondHand diperlihatkan pada
gambar 3.4 berikut
f. Membuat CRUD
Penulis dan tim BackEnd sudah mulai membuat API yang
dibutuhkan untuk web SecondHand. API yang sudah mulai dibuat
antaranya Auth, Profile, dan beberapa API Product (update
product, getAllProduct untuk dashboard, delete product)
2. Sprint 2 (25 Juni – 8 Juli 2022)
a. Mengerjakan API lanjutan
Penulis dan tim BackEnd melanjutkan pembuatan API untuk
Product (delete image product), Transaction, dan Notification.
b. Melakukan testing API
API yang telah dibuat kemudian di test menggunakan Postman.
Pada gambar 3.5 akan diperlihatkan API yang di test menggunakan
Postman
1) https://secondhandapi.herokuapp.com/v1/auth/register
Post Register, digunakan untuk membuat akun bagi user yang belum
memiliki akun. User diminta untuk mengisi body yaitu name, email,
dan password.
2) https://secondhandapi.herokuapp.com/ v1/auth/login
Post Login, digunakan untuk login bagi user yang sudah memiliki akun.
User akan diminta mengisi body yaitu email dan password.
3) https://secondhandapi.herokuapp.com/ v1/auth/logout
Delete Logout, digunakan user untuk logout dari aplikasi.
b. API Profile
Gambar 3. 9 Dokumentasi API Profile
1) https://secondhandapi.herokuapp.com/v1/profile
Get Profile Info, digunakan untuk mendapatkan data profile user. User
hanya perlu login terlebih dahulu agar mendapatkan token yang akan
dipakai untuk mendapatkan info profilenya.
2) https://secondhandapi.herokuapp.com/v1/profile
Put Update Profile, digunakan untuk melakukan update terhadap data
profile user. User juga perlu login untuk mendapatkan token yang
akan dipakai untuk melakukan update info profilenya.
c. API Product
1) https://secondhandapi.herokuapp.com/v1/product/:id
Detail Product, digunakan untuk melihat info product sesuai dengan id
product. User harus login terlebih dahulu dan mengisi params berupa
id product yang akan di lihat detail infonya.
2) https://secondhandapi.herokuapp.com/v1/product/?page=1
Get All Product, digunakan untuk menampilkan info product. API ini
tidak membutuhkan authorization, jadi user boleh login ataupun tidak
untuk mengakses API ini. User perlu mengisi salah satu atau semua
params, yang terdiri dari limit (menunjukkan jumlah product yang
akan ditampilkan), page (menunjukkan banyak halaman), category
(menunjukkan kategori product yang ingin ditampilkan), dan search
3) https://secondhandapi.herokuapp.com/v1/product/seller
Get All Product yang dimiliki seller. User perlu melakukan login
untuk bisa mendapatkan list product yang dimilikinya. Karena token
yang didapat ketika login akan digunakan untuk mengambil data
product dari database.
4) https://secondhandapi.herokuapp.com/v1/product/wishlist
Get All Wishlist, digunakan oleh user untuk melihat list product yang
telah dimasukkan ke wishlist. User perlu melakukan login untuk
menggunakan fitur ini, karen token yang didapat ketika login akan
digunakan untuk mengambil list product yang ada pada tabel wishlist.
5) https://secondhandapi.herokuapp.com/v1/product
Post Create Product, digunakan oleh user dengan role seller untuk
melakukan input product yang akan dijual. User perlu login dan
mengisi body yang terdiri dari name, price, category, status, image
(max. 3), dan description.
6) https://secondhandapi.herokuapp.com/v1/product/:id_product/image
Post Add Image Product, digunakan ketika melakukan update detail
product maka API ini berfungsi untuk melakukan update pada bagian
gambar product. User perlu mengisi params berupa id product dan
mengisi body berupa image yang akan ditambahkan. Untuk mengakses
fitur ini, user juga perlu untuk login.
7) https://secondhandapi.herokuapp.com/v1/product/:id_product/wishlist
Add Wishlist, digunakan oleh user untuk menambahkan product ke
dalam wishlist. User perlu mengisi params berupa id product yang
akan di masukkan ke dalam wishlist. Untuk mengakses fitur ini, user
perlu login terlebih dahulu.
8) https://secondhandapi.herokuapp.com/v1/product/:id_product
Put Update Product, digunakan oleh user untuk melakukan update
pada detail product yang sudah di input. User perlu login untuk
mengakses fitur ini, selain itu user juga perlu mengisi body yang
terdiri dari name, price, category, description, serta mengisi params
berupa id product yang akan di update.
9) https://secondhandapi.herokuapp.com/v1/product/:id_product/publish
Patch Publish Product, digunakan untuk mempublis product yang telah
di input. Product tidak akan tampil di halaman dashboard sebelum
seller melakukan publish product. User perlu login untuk mengakses
fitur ini, selain itu user juga perlu mengisi params berupa id product
yang akan di publish.
10) https://secondhandapi.herokuapp.com/v1/product/:id_product
Delete Product, digunakan oleh user untuk menghapus product. User
harus mengisi params berupa id product yang ingin di hapus, selain itu
untuk mengakses fitur ini user juga harus login terlebih dahulu.
11) https://secondhandapi.herokuapp.com/v1/product/:id_wishlist/wishlist
Delete Wishlist, digunakan oleh user untuk menghapus product yang
ada di dalam wishlist. User perlu mengisi params berupa id product
yang akan di hapus dari wishlist. User juga perlu login untuk
mengakses fitur ini.
12) https://secondhandapi.herokuapp.com/ v1/product/:id_image/image
Delete Image Product, digunakan user untuk menghapus image yang
ada pada product. User perlu login untuk mengakses fitur ini, selain itu
user juga perlu mengisi params berupa id product yang image nya
akan dihapus.
d. API Transaction
Buyer
https://secondhandapi.herokuapp.com /v1/transaction/:id_product/bid
Post Bid Product, digunakan oleh buyer untuk melakukan penawaran
terhadap product yang ingin dibeli. Untuk mengakses fitur ini buyer
perlu login terlebih dahulu, setelah itu mengisi body yaitu price bid
(harga penawaran) serta mengisi params berupa id product yang ingin
ditawar.
Seller
1) https://secondhandapi.herokuapp.com /v1/transaction/history
Get Transaction History, digunakan oleh seller untuk menampilkan
list transaksi yang telah selesai dilakukan. Untuk mengakses fitur ini
seller harus login terlebih dahulu.
2) https://secondhandapi.herokuapp.com/v1/transaction/bids
Get All Data Bids, digunakan oleh seller untuk menampilkan list data
penawaran. User perlu login untuk mengakses fitur ini.
3) https://secondhandapi.herokuapp.com/v1/transaction/:id_bid/bid
Get Detail Bid, digunakan seller untuk menampilkan detail data
penawaran berdasarkan id penawaran. User perlu login untuk
mengakses fitur ini serta mengisi params berupa id bid.
e. API Notification
1) https://secondhandapi.herokuapp.com/v1/notification/:id_notification/
status
Patch Change Notification Status, digunakan untuk mengubah status
notifikasi dari yang belum dibaca menjadi sudah dibaca. User perlu
login untuk mengakses fitur ini serta mengisi params berupa id
notification.
2) https://secondhandapi.herokuapp.com/v1/notification?limit=3&page=1
Get All Notification, digunakan oleh user untuk menampilkan list
notifikasi semua product. Untuk mengakses fitur ini user harus login
terlebih dahulu serta mengisi params berupa limit (banyak product
yang akan ditampilkan) dan page.
f. Dokumentasi Swagger
https://secondhandapi.herokuapp.com/v1/docs/
Digunakan untuk mengkases dokumentasi seluruh API web
SecondHand.
BAB IV
PENUTUP
4.1 Kesimpulan
4.2 Saran
Adapun saran dari penulis terhadap pihak yang terlibat dalam program
MSIB Kampu Merdeka ini adalah :
1. Untuk pihak Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi
Republik Indonesia, mohon lebih diperbanyak sosialisasi program Kampus
Merdeka ini. Karena menurut penulis masih banyak masyarakat, khususnya
mahasiswa yang tidak mendapat info terkait program ini. Sangat
disayangkan jika mahasiswa Indonesia tidak bisa mengikuti program yang
bagus ini hanya karena kurangnya info.
2. Untuk pihak Binar Academy, program yang dijalankan sudah baik, namun
masih ada kekurangan pada beberapa materi yang disajikan, karena
terkadang materi yang disajikan sedikit susah dipahami, sehingga ppt binar
tidak terpakai saat belajar. Selain itu, kalau bisa materi yang diberikan
saling berurutan sehingga peserta paham tahapan pembuatan project nya.
3. Untuk perguruan tinggi, semoga lebih gencar dalam menyebarkan info
terkait program Kampus Merdeka ini, selain itu kebijakan terkait Kampus
Merdeka sebaiknya langsung di informasikan kepada seluruh mahasiswa
dan dosen. Sehingga mahasiswa tidak lagi kebingungan terhadap info yang
didapat.
BAB V
REFERENSI
[1] Widodo, Aris Puja, dkk, Bahan Ajar Pemrograman Internet. Prodi Ilmu
Komputer Jurusan Matematika Fakultas MIPA Universitas Diponegoro, 2006.
[3] T. H. Shah, "Node.js Challenges in Implementation," Glob. Journals Inc, vol. 17,
no. 2, 2017.
LAMPIRAN A. TOR
Penulisan halaman untuk setiap lampiran sama dengan format penulisan halaman
untuk setiap bab, contoh untuk Lampiran A, halaman berawal dari A-1, A-2, dst.
Posisi nomor halaman pada halaman pertama ditulis pada bottom center, untuk
halaman berikutnya adalah top right. Hal ini juga berlaku untuk nomor halaman pada
bab isi.
Lampiran A bersifat wajib untuk mahasiswa yang melakukan MSIB. TOR berisi job
description Mahasiswa dan target mengikuti MSIB di organisasi Mitra yang telah
disepakati bersama antara Mahasiswa dan Organisasi Mitra. TOR ini dibuat pada
awal pelaksanaan (onboarding) dan ditandatangani oleh pihak Mahasiswa dan
Organisasi Mitra. Pembimbing dari Program Studi akan membantu mahasiswa
melaksanakan MSIB dan menyusun laporan MSIB sesuai TOR yang telah disepakati.
LAMPIRAN B. LOG ACTIVITY
Pada Bagian ini berisi log activity dengan format sebagai berikut
1. Minggu ke-1
2. Minggu ke-2
3. Minggu ke-3
4. Minggu ke-4
5. Minggu ke-5
6. Minggu ke-6
7. Minggu ke-7
8. Minggu ke-8
9. Minggu ke-9
BAB VIII
Sawagger : https://secondhandapi.herokuapp.com/v1/docs/
Link Deployement :
Link Repository :