Laporan Akhir MSIB - Kampus Merdeka [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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