11 0 1006 KB
LAPORAN AKHIR MAGANG & STUDI INDEPENDEN BERSERTIFIKAT BACKEND JAVASCRIPT DI PT LENTERA BANGSA BENDERANG (BINAR ACADEMY) Diajukan untuk memenuhi persyaratan kelulusan Program MSIB MBKM Oleh : Atika Indah Sari / 1901092026
PRODI MANAJEMEN INFORMATIKA POLITEKNIK NEGERI PADANG 2022
LEMBAR PENGESAHAN PRODI MANAJEMEN INFORMATIKA POLITEKNIK NEGERI PADANG BACKEND JAVASCRIPT DI PT LENTERA BANGSA BENDERANG
Oleh : Atika Indah Sari / 1901092026
Disetujui dan disahkan sebagai Laporan Magang atau Studi Independen Bersertifikat Kampus Merdeka
Padang, .. Juli 2022 Pembimbing Magang atau Studi Independen Prodi Manajemen Informatika Politeknik Negeri Padang
Defni, S.Si., M.Kom. NIP : 19811207 200812 2 001
LEMBAR PENGESAHAN BACKEND JAVASCRIPT DI PT LENTERA BANGSA BENDERANG
Oleh : Atika Indah Sari / 1901092026
Disetujui dan disahkan sebagai Laporan Magang atau Studi Independen Bersertifikat Kampus Merdeka
Tangerang, 14 Juli 2022 PIC PT Lentera Bangsa Benderang
Bagus Prakoso Gunawan. No. Pegawai : 32201258
ABSTRAKSI
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. Solok, 23 Juli 2022 Penulis
Atika Indah Sari
DAFTAR ISI
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.1 Latar Belakang Dalam rangka menghadapi perubahan sosial, budaya, dunia kerja, dan kemajuan teknologi yang pesat, kompetensi mahasiswa harus disiapkan untuk lebih gayut dengan kebutuhan zaman. Link and match tidak saja dengan dunia industri dan dunia kerja tetapi juga dengan masa depan yang berubah dengan cepat. Perguruan Tinggi dituntut untuk dapat merancang dan melaksanakan proses pembelajaran yang inovatif agar mahasiswa dapat meraih capaian pembelajaran mencakup aspek sikap, pengetahuan, dan keterampilan secara optimal dan selalu relevan. Kampus Merdeka merupakan wujud pembelajaran di perguruan tinggi yang otonom dan fleksibel sehingga tercipta kultur belajar yang inovatif, tidak mengekang, dan sesuai dengan kebutuhan mahasiswa. Proses pembelajaran dalam Kampus Merdeka merupakan salah satu perwujudan pembelajaran yang berpusat pada mahasiswa (student centered learning). Pembelajaran dalam Kampus Merdeka memberikan tantangan dan kesempatan untuk pengembangan inovasi, kreativitas, kapasitas, kepribadian, dan kebutuhan mahasiswa,
serta mengembangkan
kemandirian
dalam
mencari
dan
menemukan pengetahuan melalui kenyataan dan dinamika lapangan seperti persyaratan kemampuan, permasalahan riil, interaksi sosial, kolaborasi, manajemen diri, tuntutan kinerja, target dan pencapaiannya. Program Magang dan Studi Independen Bersertifikat (MSIB) adalah salah satu metode pembelajaran, dari delapan metode yang dicanangkan dalam kebijakan kampus merdeka. Studi Independen Bersertifikat Kampus Merdeka adalah sebuah pembelajaran di kelas yang dirancang dan dibuat
khusus berdasarkan tantangan nyata yang dihadapi oleh mitra/industri. Program ini dapat berupa kursus singkat, boot camp, kursus daring terbuka secara besar-besaran (MOOC) dan lain-lain. Perusahaan memberikan kesempatan kepada mahasiswa untuk belajar softskill. Setelah 4 bulan belajar, mahasiswa kemudian dilibatkan dalam sebuah team project selama 1 bulan. Pada akhir project, perusahaan kemudian memberikan Sertifikat Praktisi Deep Learning kepada para mahasiswa yang terlibat. Salah satu mitra yang bekerja sama dalam program MSIB Kampus Merdeka adalah Binar Academy. Dengan visi saling menginspirasi dan menyemangati, Binar Academy berharap ketika talenta potensial bersatu dan membentuk pembaruan dalam bidang digital, hasil dan kolaborasi mereka harus bisa menghidupkan serta memberikan inspirasi terhadap banyak orang. Selain itu, Binar Academy memiliki beberapa misi diantaranya : 1. Untuk saling menemukan Binar Academy mengajak untuk terus mencari makna/esensi, bukan hanya untuk meraih output/hasil yang terlihat baik. Forma dan substansi harus berjalan beriringan. 2. Untuk saling berproses Binar Academy mendorong untuk tidak hanya mempelajari wawasan dan teori tetapi juga dapat meneladani proses untuk menjadi landasan dalam membuat inovasi yang dapat membangun bangsa. 3. Untuk saling terkoneksi Ilmu dan pelatihan yang menjadi bagian dari ekosistem Binar Academy dirancang untuk menghubungkan talenta dengan pakar atau talenta dengan talenta. Dengan demikian, terciptalah potensi dan kesempatan. Hubungan ini merupakan sebuah simbiosis yang dilandaskan pada daya saing di era digital.
Binar Academy menyediakan beberapa kelas pelatihan yaitu kelas Android Engineering, BackEnd Java, BackEnd JavaScript, FrontEnd JavaScript, FullStack Web, IOS Developer, Product Management, React Native, UI/UX Research & Design.
1.2 Lingkup Lingkup project dari program BackEnd JavaScript yang diadakan oleh Binar Academy pada MSIB Kampus Merdeka Batch 2 ini dibagi menjadi 3 level pembelajaran, yaitu : 1. Level Silver Pada level ini mahasiswa akan dikenalkan dan diajarkan tentang dasar pemrograman. Materi pembelajaran pada level ini terbagi menjadi 4 chapter. 2. Level Gold Level ini berfokus pada pengembangan skill individu masing-masing mahasiswa. Materi pembelajaran pada level ini terbagi menjadi 5 chapter. 3. Level Platinum Level ini berfokus pada pengembangan skill tim project masing-masing mahasiswa dengan menerapkan simulasi kerja dan metodologi yang digunakan dalam industri kerja. Pada level ini materi pembelajaran yang diberikan berupa panduan untuk mengerjakan final project dan terbagi menjadi 3 chapter. TOR (Term of Reference) atau kerangka acuan kegiatan merupakan gambaran umum dan penjelasan mengenai kegiatan yang dilaksanakan. Pada Gambar 1.1 akan ditampilkan gambaran kegiatan yang dilakukan selama program MSIB Kampus Merdeka di Binar Academy.
Gambar 1. 1 Kegiatan BackEnd JavaScript
1.3 Tujuan Tujuan dari program MSIB Kampus Merdeka ini ialah : 1. Meningkatkan pengetahuan, keterampilan, dan sikap Mahasiswa sehingga meningkatkan kesiapan dan keterserapan di dunia kerja dan dunia usaha 2. Menghasilkan terobosan dalam penyelesaian persoalan praktis di industri ataupun organisasi dari inovasi yang dilakukan dalam program ini 3. Mendorong dan memacu pembangunan nasional dengan menumbuhkan motivasi masyarakat untuk berpartisipasi dalam pembangunan 4. Meningkatkan peran dan kontribusi nyata Perguruan Tinggi dan Mahasiswa dalam pembangunan nasional 5. Memberikan
kesempatan
kepada
mahasiswa
untuk
belajar
dan
mengembangkan diri melalui aktivitas di luar kelas perkuliahan namun tetap diakui sebagai bagian dari perkuliahan
BAB II TINJAUAN MITRA MSIB
2.1 Struktur Organisasi
Gambar 2. 1 Logo Binar Academy
Binar Academy merupakan sebuah platform end-to-end digital career solutions, tempat terbaik untuk belajar, menyusun karier, sekaligus menggali potensi di industri yang tepat. Didirikan pada tahun 2017 oleh Alamanda Shantika bersama dengan 2 orang rekannya yaitu Seto Lareno dan Dita Aisyah, Binar Academy berada dibawah naungan PT Lentera Bangsa Benderang. Struktur organisasi yang ada pada Binar Academy ditunjukkan pada Gambar 2.2 berikut :
Gambar 2. 2 Struktur Organisasi Binar Academy
Alamanda Shantika menjabat sebagai Founder dan President Director of Binar Academy, sedangkan Seto Lareno menjabat sebagai Chief of Operations Officer dan Academy Research, dan Dita Aisyah menjabat sebagai Chief of Financial Officer dari Binar Academy. 2.2 Lingkup Pekerjaan Ada beberapa pihak yang terlibat secara langsung dalam pelaksanaan program MSIB Kampus Merdeka BackEnd JavaScript ini, diantaranya : 1. Program Manager Ialah seseorang yang bertanggung jawab dalam menggambarkan daftardaftar proyek yang diperlukan dalam mencapai tujuan suatu program. Tugas dari program manager diantaranya : a. Mengatur seluruh proses dalam pelaksanaan program, mulai dari seleksi mahasiswa, perekrutan, administrasi dengan pemerintah dan pihak kampus, proses belajar dan asesmen, hingga pemberian nilai dan sertifikat b. Pusat koordinasi dan komunikasi dari seluruh pihak c. Mensinkronisasi seluruh pihak, baik dari segi silabus pengajaran maupun timeline program d. Memastikan program berjalan dengan baik dan sejalan dengan standar yang ditetapkan Kementerian Pendidikan, Kebudayaan, Riset dan Teknologi Republik Indonesia 2. Academic Affairs & Operation (AAO) Ialah seseorang yang ditunjuk untuk memfasilitasi peserta dalam hal-hal yang berkaitan dengan pelaksanaan program. Tugas AAO diantaranya : a. Mempersiapkan dan melakukan sinkronisasi silabus yang terkait dengan spesialisasi program
b. Menyampaikan (penyampaian
bahan secara
ajar,
baik
dalam
langsung/daring)
bentuk
maupun
synchronous asynchronous
(memberikan materi atau referensi untuk dipelajari) c. Melakukan asesmen untuk mengukur capaian belajar dan proyek final d. Berkoordinasi dengan Program Manager dan Fasilitator 3. Fasilitator Ialah orang yang ditunjuk untuk menjalankan program, memberikan pelatihan dan bimbingan kepada peserta dalam pelaksanaan program. Tugas fasilitator/mentor diantaranya : a. Mendampingi proses belajar peserta dengan melakukan mentoring dengan jadwal yang sudah ditetapkan, baik secara berkelompok dan individu b. Memonitor progres belajar peserta dan menindaklanjuti apabila ada peserta yang tertinggal dalam proses belajar maupun nilai asesmen c. Membantu Program Manager dan Subject Matter Expert untuk melakukan pengecekan tugas/asesmen.
2.3 Deskripsi Pekerjaan Sebelum mengerjakan final project, kegiatan yang dilakukan oleh peserta program BackEnd JavaScript diantaranya : 1. Pemaparan materi oleh fasilitator Peserta akan dibekali dengan materi-materi yang berkaitan dengan final project
yang akan dilakukan
diakhir kegiatan.
Fasilitator
akan
menjelaskan materi-materi yang telah disediakan oleh pihak Binar Academy. 2. Diskusi materi dengan fasilitator
Peserta dipersilakan untuk menanyakan materi-materi yang masih belum dirasa jelas. Fasiliator membuka sesi tanya jawab baik didalam kelas maupun diluar kelas. Sehingga peserta dibebaskan untuk berdiskusi dengan fasilitator kapan pun peserta butuh. 3. Mengerjakan soal latihan Beberapa
kali
setelah
fasilitator
menjelaskan
materi,
fasilitator
memberikan tugas kepada peserta untuk mengerjakan latihan terkait dengan materi yang dijelaskannya. Terkadang fasiliator memberi waktu 2 jam untuk peserta mengerjakan latihan, namun tak jarang fasiliator memberi waktu satu hari untuk mengerjakan latihan tersebut. 4. Membahas soal latihan Latihan yang telah selesai dikerjakan, dibahas secara bersama-sama. Fasilitator terkadang meminta peserta dalam menjawab soal latihan, karena latihan kode program memiliki jawaban yang beragam, tergantung dengan pemahaman peserta. 5. Mengerjakan challenge binar Dalam 2 minggu sekali, peserta diberi tugas oleh Binar Academy. Tugas ini bersifat wajib, karena menjadi indikator penilaian dan pertimbangan apakah peserta bisa melanjutkan proses pembelajaran ke level berikutnya atau tidak. Tugas ini berkaitan dengan materi yang telah dijelaskan oleh fasilitator. 6. Mengerjakan final project Pada level platinum, peserta akan digabungkan ke dalam kelompok yang terdiri dari anggota FrontEnd dan anggota BackEnd. Kelompok ini akan diberi tugas untuk menyelesaikan final project yang telah ditentukan oleh Binar Academy. Final project ini merupakan implementasi dari seluruh materi yang telah dijelaskan fasilitator selama program MSIB Kampus Merdeka berlangsung.
Sebagai anggota program BackEnd JavaScript, penulis dan tim BEJS 2 bertugas untuk membuat rancangan database, merancang alur penggunaan website, membuat endpoint API yang dibutuhkan, melakukan testing endpoint API, membuat dokumentasi API, melakukan deploy API, dan segala hal yang berkaitan dengan BackEnd. 2.4 Jadwal Kerja Program MSIB Kampus Merdeka kelas BackEnd JavaScript Binar Academy memiliki jadwal kerja seperti yang ditunjukkan pada tabel 2.1 Tabel 2. 1 Jadwal Kerja BackEnd JavaScript
Lama Kegiatan
14 Februari 2022 s/d 22 Juli 2022
Banyak Pertemuan
5 kali dalam seminggu
Waktu Pelaksanaan
19.00 – 22.00 WIB
Metode Penyampaian
1) Penjelasan materi oleh fasilitator
Materi
2) Diskusi dua arah antara mentor dan peserta
Tipe Kegiatan
Daring (online) melalui zoom meeting
BAB III FINAL PROJECT
3.1 Deskripsi Project Final project yang diberikan oleh Binar Academy adalah membuat platform e-commerce brenchmark dari OLX. Dengan nama aplikasi SecondHand, peserta ditugaskan untuk membuat aplikasi berbasis web yang responsive dengan menerapkan pengetahuan yang telah dipelajari dari chapter 0 – 8. SecondHand merupakan tempat jual-beli barang secara online, khususnya barang bekas. Platform ini membuka dan menyediakan berbagai jenis kategori kebutuhan. User yang mendaftarkan diri pada aplikasi ini dapat berperan sebagai seller dan buyer dengan menggunakan 1 (satu) akun yang sama. Platform ini akan mempertemukan seller dan buyer untuk dapat melakukan negosiasi barang dan melakukan transaksi langsung di luar platform. User yang berperan sebagai seller dapat melakukan CRUD produk yang akan dijual di website SecondHand. Sedangkan user yang berperan sebagai buyer dapat melakukan pembelian terhadap produk yang tersedia dan melakukan penawaran terhadap harga yang sudah ditetapkan seller. Untuk BackEnd, output yang diharapkan dari final project ini adalah endpoint API, dokumentasi swagger, dan link repository kode program. 3.2 Pengerjaan Project
Dalam mengerjakan final project ini penulis melakukan kolaborasi antara kelas BackEnd dengan kelas FrontEnd. Posisi penulis pada final project ini adalah sebagai BackEnd. Sehingga penulis mempunyai tugas untuk membuat endpoint API untuk produk, membuat dokumentasi swagger, dan melakukan push kode program ke repository gitlab yang telah dibuat. 3.2.1
Stack untuk BackEnd web SecondHand Stack/kumpulan teknologi yang digunakan dalam pembuatan API website SeconHand ini diantaranya : a. Bahasa pemrograman yang digunakan adalah JavaScript. JavaScript adalah kumpulan skrip yang berfungsi untuk menambahkan interaksi antar halaman web [1]. Tidak hanya digunakan pada client-side saja, saat ini JavaScript banyak digunakan untuk meng-handle pada sisi server atau server-side dengan pengembangan aplikasi pada Node.js yang digunakan sebagai run time [2]. b. Runtime yang digunakan adalah Node.js. Node.js (Node) adalah platform pengembangan source terbuka untuk mengeksekusi sisi server kode pada JavaScript. Node berguna untuk mengembangkan aplikasi yang memerlukan koneksi terus-menerus dari browser ke server [3]. c. Framework yang digunakan adalah Express. Express.JS adalah suatu framework yang terdapat didalam Node.JS. Digunakan guna mempermudah dalam pembuatan aplikasi dengan berbasis Node.JS. Selain itu Express.JS juga merupakan framework yang sangat ringan, cepat dan cocok untuk membuat web aplikasi dan API [2]. d. Database
yang
digunakan
adalah
PostgreSQL.
PostgreSQL
merupakan basis data bersifat opensource disertai kemampuannya yang bagus dibanding basis data lainnya. PostgreSQL memiliki fitur untuk replikasi basis data [4].
e. ORM yang dipakai adalah Sequelize. Sequelize adalah ORM Node.js. Bisa digunakan dengan PostgreSQL, MySQL, MariaDB, SQLite, dan MSSQL [5]. f. Arsitektur aplikasi menggunakan MCR (Models, Controller, Route). MCR adalah sebuah pola arsitektur dalam membuat sebuah aplikasi dengan cara memisahkan kode menjadi tiga bagian, yaitu : 1. Model, bertugas untuk menyiapkan, mengatur, memanipulasi, dan mengorganisasikan data yang ada di database. 2. Controller, bertugas menghubungkan serta mengatur model dan route agar dapat saling terhubung. 3. Route, berfungsi sebagai penghubung beberapa controller dengan endpoint untuk berinteraksi dengan pengguna. 3.2.2
Rancangan Alur Kerja Web SecondHand User flow adalah representasi visual, baik secara tertulis maupun digital, mengenai alur atau cara yang dapat dilalui pengguna saat menggunakan sebuah aplikasi. Pada umumnya user flow digambarkan dengan visual diagram atau flow chart. Titik awal diagram dimulai saat pengguna masuk ke halaman pertama aplikasi, lalu berakhir saat pengguna telah selesai mencapai tujuannya, seperti berhasil membeli sebuah produk [6]. Pada gambar 3.1 akan diperlihatkan user flow untuk website SecondHand
Gambar 3. 1 User Flow Web SecondHand
User flow web SecondHand dapat diuraikan sebagai berikut : a. User login dan masuk ke home page
b. Jika user login sebagai seller, user dapat : 1) Menambahkan barang dan detail barang yang akan dijual disertai gambar dengan maksimal upload gambar sebanyak 3 gambar 2) Melakukan edit atau delete barang yang sudah ditambahkan 3) Mendapat notifikasi apabila ada barang yang ditawar 4) Melakukan update status transaksi c. Jika user login sebagai buyer, user dapat : 1) Melihat list barang yang sudah ditambahkan seller 2) Melihat list barang dengan fitur filter barang sesuai kategori 3) Melakukan pembelian barang 4) Melakukan penawaran terhadap harga barang dengan mengisi form penawaran 5) Mengirim form penawaran dengan syarat data profil buyer harus lengkap 3.2.3
Rancangan Minimum Viable Product (MVP) Minimum Viable Product (MVP) adalah bentuk minimal aplikasi yang dirilis ke publik. Strategi pengembangan produk ini memungkinkan tim untuk memvalidasi aplikasi dan mempelajari target yang ingin dicapai. Sehingga dapat mengetahui apa saja kebutuhan sistem yang dibutuhkan agar platform yang dibuat (dalam hal ini adalah Second Hand) dapat digunakan dengan fungsionalitas yang sesuai dengan kebutuhan. Berikut MVP dari website SecondHand : 1. Registrasi User, digunakan untuk membuat akun bagi user yang belum memiliki akun pada Second Hand. 2. Implementasi In App Notification (Fitur lonceng di dalam notifikasi), terdapat 2 notifikasi yang dibutuhkan pada web SecondHand. Yang pertama adalah notifikasi ketika seller mengupload barang dan yang kedua adalah notifikasi ketika buyer melakukan penawaran barang.
3. Profil User, digunakan untuk melengkapi data user yang akan mengguankan web SecondHand. 4. Histori Transaksi, digunakan untuk melihat transaksi yang telah dilakukan oleh user. 5. Fitur wajib untuk Buyer
Wishlist, digunakan untuk melakukan listing barang (Produk, deskripsi, gambar produk dan lain lain) dari user lain yang disukai buyer.
6. Fitur wajib untuk Seller
Seller Product List, digunakan untuk melakukan listing barang yang dijual oleh seller
Product Listing, digunakan untuk melakukan listing barang yang ditampilkan pada home page web SecondHand.
3.2.4
Requirement Minimum untuk BackEnd Kebutuhan minimal BackEnd dalam membuat web SecondHand ditunjukkan oleh Tabel 3.1 Tabel 3. 1 Kebutuhan Minimal BackEnd
Task Auth CRUD
Design Pattern / Architectural
Description Akun untuk user
User
Product (Sesuai fitur minimu)
Transaksi
Basic MCR, Monolith two layers (back end layer and front end layer)
Searching Filtering Role
Searching Pagination and Sorting
Buyer
Deployment
Seller
Heroku (Staging and Production / Main) Pada heroku dibuat dua branch yaitu Staging dan Production/Main
Output Deliverable
API yang bisa diconsume oleh Front End
3.2.5
Rancangan Entity Relation Diagram (ERD) Menurut Jogiyanto, Entity Relationship Diagram (ERD) adalah suatu komponenkomponen humpunan entitas dan himpunan relasi yang masingmasing dilengkapi dengan atribut yang mempresentasikan seluruh fakta dari dunia nyata yang dituju [7]. Pada Gambar 3.2 akan diperlihatkan ERD dari web SecondHand
Gambar 3. 2 ERD Web SecondHand
3.2.6
Rancangan API Web SecondHand Pengerjaan final project ini menggunakan metode Scrum dengan tiga Sprint. Metode Scrum merupakan metodologi yang termasuk dalam agile software development. Scrum dinilai dapat menghasilkan kualitas perangkat lunak yang baik sesuai dengan keinginan pengguna, dapat digunakan dalam proyek besar maupun kecil, dan mudah untuk mengadopsi perubahan. Sprint sendiri adalah serangkaian pekerjaan yang dilakukan untuk menyelesaikan suatu masalah khususnya penciptaan produk baru. 1. Sprint 1 (13 Juni – 24 Juni 2022) a. Melakukan pemilihan Scrum Master dan Product Owner
Scrum Master dipilih dari tim FrontEnd sedangkan Product Owner dipilih dari tim BackEnd. b. Pembuatan repository Repository adalah lokasi penyimpanan untuk perangkat lunak. Bertujuan untuk mempermudah tim BackEnd dalam berkolaborasi membuat API web SecondHand. Tim BackEnd menggunakan gitlab sebagai repository penyimpanan kode program. Pada Gambar 3.3 ditampilkan repository gitlab tim BackEnd
Gambar 3. 3 Repository Gitlab BackEnd
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
Gambar 3. 4 Database Web SecondHand
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
Gambar 3. 5 Testing API di Postman
c. Membuat dokumentasi API Dokumentasi API dibuat menggunakan swagger.js. Base URL dari dokumentasi API ini adalah localhost:3001/ dengan schema http. Untuk dokumentasi sendiri terdiri dari Auth, Profile, Products, Transaction (Buyer dan Seller), serta Notification. Pada Gambar 3.6 akan diperlihatkan dokumentasi API web SecondHand
Gambar 3. 6 Dokumentasi API Web SecondHand
3. Sprint 3 (11 Juli – 22 Juli 2022) a. Deployment Deployment adalah kegiatan yang bertujuan untuk membuat aplikasi bias di akses secara online. Dengan kata lain agar orang umum bisa mengakses website yang telah dibuat tersebut. Tim BackEnd
melakukan
deployment
API
web
SecondHand
menggunakan Heroku. Gambar 3.7 berikut menampilkan URL API yang sudah di deploy ke Heroku
Gambar 3. 7 Deployment API Web SecondHand
b. Integrasi dengan FrontEnd
Integrasi API adalah menghubungkan antara dua atau lebih aplikasi melalui API (Application Programming Interfaces) nya. Dalam
hal
ini,
tim
FrontEnd
menghubungkan/melakukan
sinkronisasi antara tampilan fitur web SecondHand yang telah mereka buat dengan API dari tim BackEnd. 3.3 Hasil Project Hasil dari pengerjaan final project MSIB Kampus Merdeka di Binar Academy ini adalah berupa website SecondHand yang sudah terintegrasi dengan API yang dibuat oleh tim BackEnd. Beriku adalah detail API web SecondHand : a. API Auth
Gambar 3. 8 Dokumentasi API Auth
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
Gambar 3. 10 Dokumentasi 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
Gambar 3. 11 Dokumentasi 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
Gambar 3. 12 Dokumentasi 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 SecondHand.
untuk
mengkases
dokumentasi
seluruh
API
web
BAB IV PENUTUP
4.1 Kesimpulan Kesimpulan yang dapat diambil setelah pelaksanaan program MSIB Kampus Merdeka di Binar Academy ini ialah : 1. Dengan adanya program MSIB Kampus Merdeka ini mahasiswa mendapat pengetahuan dan keterampilan baru serta lebih siap menghadapi dunia kerja 2. Program MSIB Kampus Merdeka ini membuat mahasiswa terbiasa mencari solusi dari setiap permasalahan yang ada, baik di dalam kelas maupun di saat pengerjaan project 3. Program MSIB Kampus Merdeka ini sangat membantu mahasiswa dalam meningkatkan kualitas diri karena mempelajari materi baru yang tidak ada di perkuliahan 4. Kemampuan softskill mahasiswa juga semakin terasah dengan pelaksanaan project secara berkelompok 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. [2] F. R., "Pengembangan Sistem Informasi Geografis Berbasis Node.JS untuk Pemetaan Mesin dan Tracking Engineering dengan Pemanfaatan Geolocation pada PT IBM Indonesia," J. Inform, vol. 11, no. 2, pp. 40-47, 2017. [3] T. H. Shah, "Node.js Challenges in Implementation," Glob. Journals Inc, vol. 17, no. 2, 2017. [4] A.D.Prabu, "Aplikasi Rekap Mengajar Berbasis Website Dengan Database PostgreSQL," Indonesian Journal on Networking and Security, vol. 8, no. 1, pp. 27-31, 2018. [5] H. F. R. Irfan Kurniawan, "REST API Menggunakan NodeJS pada Aplikasi Transaksi," Jurnal Ilmiah Teknologi Informasi, vol. 1, no. 4, p. 129, 2020. [6] C.
BROWNE,
"careerfoundry,"
5
August
2021.
[Online].
Available:
https://careerfoundry.com/en/blog/ux-design/what-are-user-flows/. [Accessed 29 July 2022]. [7] R. S. E. E. F. Y. &. S. R. N. Rohman, "RANCANG BANGUN WEB ELEARNING UNTUK PENGELOLAAN MATA PELAJARAN TIK PADA SMPT ADZKIA SUKABUMI," Jurnal Swabumi, vol. 6, no. 1, pp. 85-90, 2018.
BAB IV 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 Tanggal Senin,
14
Kegiatan
Februari -
2022 -
Perkenalan
Hasil dengan -
Paham definisi backend
peserta MSIB kelas BEJS -
Berhasil
2
installasi node.js
Memahami
melakukan
definisi
backend Selasa,
15
Februari -
2022 -
Memahami jenis path Belajar
struktur
data -
Mengetahui
struktur
JavaScript
data JavaScript
Belajar tipe data string, -
Mengetahui
number, boolean, dll
string, number, boolean,
tipe
data
dll Rabu,
16
Februari -
2022
Belajar
operan
dan -
operator -
Mengetahui operand an operator
Belajar logical operator
-
Mengetahui
logical
operator Kamis,
17
2022
Februari -
Belajar process.argv Belajar
method
JavaScript -
Melakukan
-
Mengetahui
method
JavaScript -
coding
Menyelesaikan
coding
kelompok
kelompok Jumat,
18
Februari -
Belajar ecmascript 6
-
Mengetahui ecmascript
2022
6 dan asynchronus -
Belajar asynchronous
2. Minggu ke-2 Tanggal Senin,
21
Kegiatan
Februari -
Hasil
Belajar tentang Git
-
2022
Berhasil
melakukan
installasi git -
Berhasil membuat akun di git
Selasa,
22
Februari -
2022
Belajar menggunakan git -
Berhasil
menggunakan
secara berkelompok
perintah git untuk clone, pull, add, commit, push
Rabu,
23
Februari -
Mengerjakan latihan
-
Menyelesaikan latihan
24
Februari -
Melanjutkan pengerjaan -
Menyelesaikan
latihan
yang belum selesai
2022 Kamis, 2022 Jumat,
25
Februari -
2022
Membahas
jawaban -
latihan
Membahas soal latihan
latihan soal bersama
3. Minggu ke-3 Tanggal Senin,
28
Kegiatan
Februari -
2022 -
Belajar
flowchart
Hasil dan -
Mengetahui penggunaan
pseudocode
flowchart
Belajar kondisional if-
pseudocode
else, switch-case
-
dan
Mengetahui penggunaan kondisional
Selasa, 1 Maret 2022
-
Mengerjakan latihan
-
Membuat latihan tentang
flowchart
serta
penggunaan
if-else,
switch-case Rabu, 2 Maret 2022
-
Belajar
perulangan -
(looping) -
Belajar
Mengetahui perulangan “for”
jenis-jenis -
looping
Mengetahui “while”
perulanga
dan
“do
..
while” Kamis, 3 Maret 2022
-
Belajar tentang sorting -
Mengetahui
bahwa
algortima
bubble algortima bekerja
Belajar tentang binary
dengan
search
membandingkan
Membahas soal latihan
elemen
cara 2 array.
Pengecekan array akan terus berlanjut sampai elemen terakhir -
Memahami
algoritma
merge
sorting.
Konsepnya array.
memecah
Merge
sort
menggunakan recursive, berfungsi
untuk
memecah.
Sedangkan
merge berfungsi untuk menggabungkan -
Memahami
quick
sorting
yang
bekerja
dengan
cara
memilih
satu
angka
didalam
array untuk dijadikan sebagai
pembanding.
Angka pembanding ini dapat diperoleh dengan berbagai
cara
seperti
mengambil
angka
pertama, angka terkhir, angka
tengah,
atau
angka random. Angka ini
nantinya
akan
dijadikan sebagai acuan, biasa
disebut
sebagai
pivot. Jumat, 4 Maret 2022
-
Melakukan review materi -
Review materi
4. Minggu ke-4 Tanggal Senin, 7 Maret 2022
Kegiatan -
Belajar penggunaan
Hasil tentang function,
Belajar
function
berfungsi sebagai 3 hal,
class, method -
Mengetahui yaitu
tentang
parameter(inputan),
inheritance (pewarisan)
procedure(proses), return
value/hasil
(keluaran dari function) -
Memahami Inheritance yang biasanya dipakai ketika
kita
ingin
membuat banyak kelas yang memiliki banyak kesamaan. class
Contoh
Cat
:
extends
Animal Selasa, 8 Maret 2022
-
Membahas soal latihan
Rabu, 9 Maret 2022
-
Melanjutkan pengerjaaan -
Mengerjakan challenge
challenge binar
binar
Melanjutkan pengerjaaan -
Mengerjakan challenge
challenge binar
binar
Melanjutkan pengerjaaan -
Mengerjakan challenge
challenge binar
binar
Kamis, 10 Maret 2022 Jumat, 11 Maret 2022
-
-
Membahas soal latihan
5. Minggu ke-5 Tanggal Senin, 14 Maret 2022
Kegiatan -
Belajar database
Hasil -
Mengetahui
tentang
database, yaitu tempat pengumpulan gudang
data
/
penyimpanan
data. Data yang kita gunakan mendaftar aplikasi oleh
untuk di
suatu
akan
dicatat
aplikasi
tersebut
dan disimpan di dalam database -
Satu database memiliki banyak tabel yang setiap
tabel
nya
memiliki
beberapa atribut (data yang akan disimpan) Selasa, 15 Maret 2022
-
Review materi database
-
Review materi database
Rabu, 16 Maret 2022
-
Belajar relasi database
-
Mengetahui
-
Belajar tentang SQL
database,
pada antar
tabel
memiliki relasi (one yo one, one to many, many to many). menggunakan SQL
sebagai
bahasa
pemrograman -
Mengetahui bahwa SQL adalah
bahasa
pemrograman
dalam
menggunakan database. Setiap data pada tabel database
sql
disebut
row, sedangkan column adalah atribut pada tabel Contoh DBMS SQL -> MySQL,
PostgreSQL,
MariaDB, dll Kamis, 17 Maret 2022
-
Belajar query language
-
Mengetahui
DDL
(perintah
untuk
mendefinisikan
suatu
struktur Create, Alter, Delete), DML(perintah memanipulasi
data
CRUD), DCL (perintah memberi
hak
(kemanan)
akses perintah
nya(Grant, Revoke)) Jumat, 18 Maret 2022
-
Belajar tentang perintah
-
join
Mengetahui Inner join hanya tabel
menampilkan yang
memiliki
hubungan di tabel lain. Jika data di tabel satu tidak
memiliki
hubungan dengan data di tabel 2, maka data tersebut
tidak
akan
ditampilkan -
Mengetahui akan
Left
join
menampilkan
semua data yang ada pada tabel kiri, ada atau tidak adanya relasi pada tabel kedua (kanan) -
Mengetahui Right join merupakan
kebalikan
dari left join. Hanya menampilkan data yang ada pada tabel kanan (kedua) -
Mengetahui Full outer join
menampilkan
semua data yang ada pada tabel satu dan tabel kedua walaupun tidak memiliki relasi 6. Minggu ke-6 Tanggal Senin, 21 Maret 2022
Kegiatan -
Hasil
Belajar menggunakan
-
node.js pada project
Membuat project node.js connect dengan database
database Selasa, 22 Maret 2022
-
Mengerjakan latihan
-
Membuat
ERD
dan
DDL Rabu, 23 Maret 2022
-
Mengerjakan latihan
Kamis, 24 Maret 2022
-
Mengerjakan
Jumat, 25 Maret 2022
-
-
Membuat DML
challenge -
Menyelesaikan
binar
challenge binar
Melanjutkan pengerjaan -
Menyelesaikan
challenge binar
challenge binar
7. Minggu ke-7 Tanggal Senin, 28 Maret 2022
Kegiatan -
Belajar node.js
Hasil -
Mengetahui
modul
node.js yaitu : Ada tiga jenis
module
node.js,
yaitu: Core module ialah modul
yang
sudah
tersedia
dan
tinggal
dipakai,
Third
Party
module adalah modul yang dibuat oleh orang lain, dan diakses dengan melakukan
installasi
package manager, Local module
ialah
modul
yang kita buat sendiri -
Membuat
.girignore
untuk node_modules Selasa, 29 Maret 2022
-
Belajar tentang express.js -
Mengetahui express.js
-
Belajar routing
Melakukan
-
installasi
express.js -
Mengetahui
routing
adalah alamat yang lebih spesifik dari request data Rabu, 30 Maret 2022
-
Mengerjakan latihan
Kamis, 31 Maret 2022
-
Belajar tentang restfull -
Mengetahui
API
Headers
Belajar http method
menambah
-
-
Mengerjakan latihan
(data
Request untuk informasi
pendukung)
ke
dalam database -
Mengetahui
Request
Data/Body ialah request yang
menyimpan
informasi utama -
Mengetahui method,
yaitu
http :
Get
untuk mendapatkan data
dari database, post untuk insert
data
baru
database,
ke
put/patch
untuk update data, dan delete untuk menghapus data -
Mengetahui REST ialah kumpulan
aturan
dan
API adalah kumpulan cara
yang
memungkinkan komunikasi antar server atau antar server dan client Jumat, 1 April 2022
-
Mengerjakan latihan
-
Mengerjakan latihan
8. Minggu ke-8 Tanggal Senin, 4 April 2022
Kegiatan -
Belajar ORM
-
Belajar installasi ORM
Hasil -
Mengetahui ORM yang digunakan
adalah
sequelize -
Berhasil
melakukan
installasi
ORM
(sequelize) Selasa, 5 April 2022
-
Melanjutkan pembahasan -
Mengetahui
ORM
perintah sequelize
Belajar
implementasi
perintah-
perintah sequelize Rabu, 6 April 2022
-
Mengerjakan latihan
-
Mengerjakan latihan
Kamis, 7 April 2022
-
Melanjutkan pengerjaan -
Mengerjakan latihan
latihan Jumat, 8 April 2022
-
Melakukan pembahasan -
Membahas latihan
soal latihan 9. Minggu ke-9 Tanggal Senin, 11 April 2022 Selasa, 12 April 2022
Kegiatan -
Hasil
Mengerjakan latihan dan -
Mengerjakan latihan dan
membahas soal latihan
membahas latihan
Belajar
Mengetahui Monolithic
konsep -
monolithic -
Belajar
konsep
microservice
adalah
jenis
yang
semua
aplikasi fitur
aplikasinya dibuat dalam satu sistem. Mudah di develop karena hanya satu sistem, mudah di deploy. -
Mengetahui Microservice memecah fitur fitur aplikasi ke beberapa
sistem.
Database biasanya juga di pecah. -
Monolithic satu database satu server
-
Microservice
dihubungkan oleh server tambahan yang disebut orchestrator.
Banyak
server banyak database dan
di
hubungkan
dengan orchestrator Rabu, 13 April 2022
-
Belajar dokumentasi API
-
Mengetahui dokumentasi
API
menggunakan postman -
Mengetahui dokumentasi menggunakan swagger
-
Berhasil
melakukan
installasi swagger Kamis, 14 April 2022
-
Mengerjakan latihan
-
Mengerjakan latihan
Jumat, 15 April 2022
-
Membahas soal latihan
-
Membahas soal latihan
10. Minggu ke-10 Tanggal Senin, 18 April 2022
Kegiatan -
Belajar tentang swagger
Hasil -
Melakukan
installasi
penggunaan
swagger
untuk dokumentasi API Selasa, 19 April 2022
-
Belajar mongodb
-
Mengetahui
Mongodb
adalah database nosql. Mongoose
salah
aplikasi
satu untuk
mengkoneksikan database
mongodb
dengan aplikasi kita -
Melakukan
praktik
penggunaan mogodb Rabu, 20 April 2022 Kamis, 21 April 2022 Jumat, 22 April 2022
-
Mengerjakan latihan dan -
Mengerjakan
membahas latihan
membahas latihan
Mengerjakan
Mengerjakan challenge
challenge -
dan
binar
binar
Melanjutkan pengerjaan -
Mengerjakan challenge
challenge binar
binar
11. Minggu ke-11 Tanggal Senin, 25 April 2022
Kegiatan
Hasil
-
Belajar konsep testing
-
Belajar cara setup jest
testing dilakukan untuk
dan supertest
memastikan
aplikasi
sudah
berjalan
-
Belajar
-
melakukan
testing
Mengetahui
bahwa
dapat
sesuai requirement dan mampu
menangani
berbagai kasus dalam berbagai situasi -
Mengetahui digunakan testing
jest untuk unit
yaitu
menguji
apakah fungsi atau class dalam code berjalan baik atau nggak. -
Mengetahui
supertest
digunakan
untuk
integration testing, yaitu menguji fungsi API Selasa, 26 April 2022
-
Melakukan latihan
-
Melakukan latihan
integration testing Rabu, 27 April 2022
-
Belajar
deployment, -
Mengetahui deployment
cloud
adalah
Belajar konsep cloud dan
memindahkan
server
program dari personal
Belajar
deployment
proses kode
computer ke computer
dengan Heroku
lain yang bisa diakses dan dilihat oleh banyak orang (privat -> public) -
Mengetahui cloud ialah computer
virtual
contohnya amazon (aws) -
Mengetahui
alur
pengembangan aplikasi, yaitu development ialah tahap
awal
ketika
aplikasi dibuat, staging ialah tahap melakukan test
aplikasi
digunakan,
sebelum dan
production tahap dimana aplikasi siag digunakan user Kamis, 28 April 2022
-
Belajar tentang docker
-
Mengetahui
docker
adakal
container
teknologi. Sebuah alat untuk membuat/memanage sebuah
kontainer
di
dalam komputer / server. -
Yang
diletakkan
di
dalam kontainer adalah kodingan
yang
sudah
dibuat. Kegunaan dari dipindahkannya kodingan
ke
dalam
kontainer adalah bisa di bawa
kemanapun,
kodingan dapat dibagi dengan pengguna lain dengan
environment
yang sama tanpa harus disetting terlebih dahulu. -
Docker
membantu
dalam membangun dan memanage
kontainer.
Kontainer
akan
tetap
menginstall OS, tetapi tetap
tidak
memakan
banyak space. Jumat, 29 April 2022
-
Melanjutkan pembahasan -
Docker
tentang docker
mekanisme
menyediakan untuk
menyimpan
data
di
dalam
computer.
Anonimus volume ialah tempat menyimpan data yang diatur oleh docker. Name
volume
dengan
sama
anonimus
volume dimana nama, penyimpanan data diatur oleh docker. Bind mount ialah
tempat
penyimpanan data yang bisa di atur sendiri 12. Minggu ke-12 Tanggal
Kegiatan
Hasil
Senin, 2 Mei 2022
-
Libur idul fitri
-
Libur idul fitri
Selasa, 3 Mei 2022
-
Libur idul fitri
-
Libur idul fitri
Rabu, 4 Mei 2022
-
Libur idul fitri
-
Libur idul fitri
Kamis, 5 Mei 2022
-
Libur idul fitri
-
Libur idul fitri
Jumat, 6 Mei 2022
-
Libur idul fitri
-
Libur idul fitri
13. Minggu ke-13 Tanggal Senin, 9 Mei 2022
Kegiatan
Hasil
-
Belajar mengenai CI/CD
-
Melakukan CI/CD
praktik
-
Mengetahui
CI/CD
(Continuous Integration and
Continuous Delivery/Continuous Deployment.) ialah tools buat otomasi deploy dari repository langsung ke server. Selasa, 10 Mei 2022
-
Melakukan latihan
-
Melakukan
latihan
CI/CD Rabu, 11 Mei 2022
-
Melakukan latihan
-
Melakukan
latihan
integration testing serta CI/CD Kamis, 12 Mei 2022 Jumat, 13 Mei 2022
-
Mengerjakan
challenge -
Mengerjakan challenge
binar
binar
Melanjutkan pengerjaan -
Melanjutkan pengerjaan
challenge binar
challenge binar
14. Minggu ke-14 Tanggal Senin, 16 Mei 2022
Kegiatan -
Belajar authentication
-
Belajar authorization
Hasil -
Mengetahui penggunaan authentication
dan
media handling untuk pengembangan fitur web -
Authentication memperbolehkan tertentu
hanya user untuk
mengakses API tertentu -
Authorization hal-hal
yang
adalah boleh
dilakukan user di dalam aplikasi
ketika
sudah
JWT
Strategy
adalah
salah
satu
tipe
login -
authentication. -
JWT atau JSON Web Token ialah token yang menggunakan sebagai
JSON
payloadnya.
Kode yang mengandung informasi tertentu -
Authentication
token
dapat dilakukan dengan 2
cara
yaitu
menggunakan JWT atau passport.authenticate Selasa, 17 Mei 2022
-
Mengerjakan latihan
-
Mengerjakan
latihan
auth
OAuth
dengan
google Rabu, 18 Mei 2022
-
Belajar google OAuth
-
OAuth adalah protokol otorisasi
akses
yang
ditentukan secara aman (jembatan
antar
aplikasi),
contoh:
menggunakan
google
untuk sign in ke aplikasi lain tanpa menggunakan
password Kamis, 19 Mei 2022
-
Belajar debugging dan -
Debugging
adalah
logging
proses menghapus bug di dalam kode program -
Sentry adalah layanan logging dan monitoring aplikasi,
untuk
menampilkan
error,
assign
untuk
memperbaiki error Jumat, 20 Mei 2022
-
Membahas topik tentang -
3 API yang dibutuhkan
cara
untuk
membuat
lupa
password saat login
membuat
password
saat
lupa login,
yaitu API kirim token ke email,
API
verifikasi
token dari user, dan API ubah password 15. Minggu ke-15 Tanggal Senin, 23 Mei 2022
Kegiatan -
Belajar
tentang
Hasil media -
Media handling adalah
handling
fitur untuk melakukan
Belajar tentang multer
upload
image,
video,
dan document -
Multer ialah
package
yang digunakan sebagai middleware dan akan digunakan
untuk
mengekstrak file data dan
menyimpan
gambar
pada
file local
aplikasi -
Menggunakan cloudinary
untuk
menyimpan file Selasa, 24 Mei 2022
-
Mengerjakan latihan
-
Mengerjakan
latihan
upload file foto/video Rabu, 25 Mei 2022
-
Membahas soal latihan
Kamis, 26 Mei 2022
-
Melanjutkan pembahasan -
Melanjutkan
soal
pembahasan soal
Jumat, 27 Mei 2022
-
Mengerjakan
-
challenge -
binar
Membahas soal latihan
Mengerjakan challenge binar
16. Minggu ke-16 Tanggal Senin, 30 Mei 2022
Kegiatan
Hasil
-
Belajar tentang mailer
-
Mailer
adalah
suatu
-
Belajar perbedaan SMPT
program
dan POP3
menerima dan mengirim
untuk
email -
SMPT dan POP3 adalah protocol
untuk
pengiriman
dan
penerimaan email -
Simple Mail Transfer Protocol
atau
SMTP
adalah suatu protokol
buat
berkomunikasi
sama
server
yang
tujuannya
buat
mengirimkan email dari lokal email ke server sebelum
akhirnya
dikirimkan
ke
server
email penerima -
POP
3 dipakai
buat
berkomunikasi email
sama
server
dan
mengunduh semua email ke email lokal (kayak Outlook,
Thunderbird,
Windows
Mail,
Mac
Mail, dan sebagainya) tanpa
menyimpan
salinannya di server Selasa, 31 Mei 2022
-
Mengerjakan latihan
-
Mengerjakan
latihan
penggunaan mailer Rabu, 1 Juni 2022
-
Belajar HTML dan CSS
-
Mengetahui
dasar
HTML dan CSS Kamis, 2 Juni 2022
-
Belajar
tentang -
websocket
WebSocket standar
adalah baru
buat
komunikasi realtime di Web dan aplikasi mobile -
WebSocket protokol
adalah yang
menyediakan
saluran
komunikasi full-duplex melalui
koneksi
TCP
tunggal. Jadi, client dan server
bisa
mengirim
dan menerima informasi dalam satu waktu Jumat, 3 Juni 2022
-
Membahas materi redis
-
Redis adalah semacam database
yang
menggunakan
RAM
sebagai
tempat
penyimpanan
dan
bersifat
sementara.
Biasanya
digunakan
sebagai cache, message broker,
dan
untuk
membuat antrian pada server 17. Minggu ke-17 Tanggal Senin, 6 Juni 2022
Kegiatan -
Hasil
Belajar tentang payment -
Payment Gateway ialah
gateway
media
transaksi
yang
disediakan oleh sebuah aplikasi memproses pembayaran
untuk transaksi bagi
pelanggan/pengguna -
Midtrans
adalah
payment gateway yang dokumentasinya lumayan lengkap Selasa, 7 Juni 2022
-
Membahas tentang redis -
Queue,
agar
server
untuk queue
bekerja optimal. Repeat, mengulang job
Rabu, 8 Juni 2022
-
Mengerjakan
challenge -
binar Kamis, 9 Juni 2022 Jumat, 10 Juni 2022
-
Mengerjakan challenge binar
Mengerjakan
challenge -
Mengerjakan challenge
binar
binar
Membahas final project -
Membahas final project
binar
binar
18. Minggu ke-18 Tanggal Senin, 13 Juni 2022
Kegiatan -
Hasil
Kelas gabungan dengan -
Perkenalan
FEJS 2
kelompok final project -
anggota
Memilih Scrum Master dan Product Owner
-
Mendengar
penjelasan
tentang flow diagram final project
Selasa, 14 Juni 2022
-
Diskusi final project
-
Melanjutkan
diskusi
final project Rabu, 15 Juni 2022 Kamis, 16 Juni 2022
-
Diskusi final project tim -
Melanjutkan
diskusi
BEJS 2
final project
Melakukan stand up final -
Melanjutkan
project
final project tim BEJS 2
diskusi
Diskusi final project tim BEJS 2
Jumat, 17 Juni 2022
-
Mengerjakan task yang -
Mengerjakan task
sudah dibagi
19. Minggu ke-19 Tanggal Senin, 20 Juni 2022
Selasa, 21 Juni 2022
Kegiatan -
Hasil
Kelas gabungan dengan -
Membuat API update
FEJS 2
product
-
Diskusi final project
-
Review task
-
Diskusi final project tim
endpoint getAllProduct
BEJS 2
(dashboard)
-
Rabu, 22 Juni 2022
-
Melakukan
diskusi -
endpoint
Menambah task untuk
Membuat enpoint Melanjutkan pembuatan endpoint getAllProduct (dashboard)
Kamis, 23 Juni 2022
-
Melanjutkan pembuatan -
Melanjutkan pembuatan
endpoint
endpoint getAllProduct
Diskusi final project tim -
Melakukan
perbaikin
Jumat, 24 Juni 2022
-
BEJS 2
endpoint delete product
Kelas gabungan dengan -
Sprint
FEJS 2
berkelompok
review
20. Minggu ke-20 Tanggal Senin, 27 Juni 2022 Selasa, 28 Juni 2022
Kegiatan -
Hasil
Kelas gabungan dengan -
Membuat
endpoint
FEJS 2
delete image product
Diskusi final project tim -
Melanjutkan pembuatan
BEJS 2
endpoint delete image product
Rabu, 29 Juni 2022
-
Mengerjakan
final -
project
Membuat
dokumentasi
swagger -
Melakukan
deploy
project ke Heroku Kamis, 30 Juni 2022 Jumat, 1 Juli 2022
-
Diskusi final project tim -
Diskusi final project tim
BEJS 2
BEJS 2
Diskusi final project tim -
Diskusi final project tim
BEJS 2
BEJS 2
21. Minggu ke-21 Tanggal Senin, 4 Juli 2022 Selasa, 5 Juli 2022
Kegiatan -
Hasil
Kelas gabungan dengan -
Melakukan
FEJS 2
API dengan FEJS 2
Menunggu
integrasi -
FEJS 2 Rabu, 6 Juli 2022
-
Menunggu
Menunggu
integrasi integrasi
FEJS 2 integrasi -
Menunggu
integrasi
FEJS 2 Kamis, 7 Juli 2022
-
FEJS 2
Menunggu
integrasi -
FEJS 2 Jumat, 8 Juli 2022
-
Menunggu
integrasi
FEJS 2
Menunggu
integrasi -
FEJS 2
Menunggu
integrasi
FEJS 2
22. Minggu ke-22 Tanggal Senin, 11 Juli 2022 Selasa, 12 Juli 2022 Rabu, 13 Juli 2022 Kamis, 14 Juli 2022 Jumat, 15 Juli 2022
Kegiatan -
Hasil
Kelas gabungan dengan -
Integrasi API Login dan
FEJS 2
Register
Menunggu
integrasi -
Menunggu
integrasi
lanjutan dari FEJS 2
lanjutan dari FEJS 2
Menunggu
Menunggu
integrasi -
integrasi
lanjutan dari FEJS 2
lanjutan dari FEJS 2
Menunggu
Menunggu
integrasi -
integrasi
lanjutan dari FEJS 2
lanjutan dari FEJS 2
Menunggu
Menunggu
integrasi -
lanjutan dari FEJS 2
integrasi
lanjutan dari FEJS 2
23. Minggu ke-23 Tanggal Senin, 18 Juli 2022
Kegiatan -
Hasil
Kelas gabungan dengan -
Menunggu
FEJS 2
lanjutan dari FEJS 2
Diskusi
integrasi
presentasi
kelompok Selasa, 19 Juli 2022
-
Menunggu
integrasi -
lanjutan dari FEJS 2
Menunggu
integrasi
lanjutan dari FEJS 2
Rabu, 20 Juli 2022
-
Kamis, 21 Juli 2022 Jumat, 22 Juli 2022
-
Menunggu
integrasi -
Menunggu
integrasi
lanjutan dari FEJS 2
lanjutan dari FEJS 2
Kelas BE dan bergabung -
Membahas
ke breakout room FE.
final project dengan FE.
Kelas gabungan dengan -
Menunggu integrasi FE
FEJS 2
serta
progress
membahas
presentasi final project.
BAB VIII LAMPIRAN C.
Link Dokumentasi API :
Sawagger : https://secondhandapi.herokuapp.com/v1/docs/
Link Deployement :
API Website SecondHand : https://secondhandapi.herokuapp.com
App Website SecondHand : https://secondhand-fe-ebon.vercel.app/
Link Repository :
Gitlab BackEnd : https://gitlab.com/febryanz/secondhand-app
GitHub FrontEnd : https://github.com/AkabaneErlangga/secondhand-fe