Anda di halaman 1dari 45

LAPORAN AKHIR

MAGANG & STUDI INDEPENDEN BERSERTIFIKAT

Backend Engineering Ruangguru CAMP

PT Ruang Raya Indonesia

Diajukan untuk memenuhi persyaratan kelulusan

Program MSIB MBKM

oleh

Asraf

2001092024

JURUSAN TEKNOLOGI INFORMASI

PROGRAM STUDI D3 MANAJEMEN INFORMATIKA

POLITEKNIK NEGERI PADANG

2022
Lembar Pengesahan

Manajemen Informatika & Politeknik Negeri Padang

Backend Engineering Ruangguru CAMP

PT. Ruang Raya Indonesia

oleh

Asraf

2001092024

disetujui dan disahkan sebagai

Laporan Studi Independen Bersertifikat Kampus Merdeka

Padang, 31 Desember 2022

Pembimbing Studi Independen Manajemen Informatika & Politeknik Negeri Padang

Defni, S.Si., M.Kom

NIP: 19811207 200812 2 001

i
Lembar Pengesahan

Backend Engineering Ruangguru CAMP

PT. Ruang Raya Indonesia

oleh

Asraf

2001092024

disetujui dan disahkan sebagai

Laporan Studi Independen Bersertifikat Kampus Merdeka

Surabaya, 19 Desember 2022

Mentor

Gusti Zainokta Ginanto Bukian, S.Tr.Kom.

ii
Abstraksi

Program Magang dan Studi Independen Bersertifikat (MSIB) adalah bagian dari
kebijakan Merdeka Belajar oleh Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi
(Kemendikbudristek) yang memberikan seluruh mahasiswa kesempatan untuk mengasah
kemampuan sesuai bakat dan minat dengan terjun langsung ke dunia kerja sebagai langkah
persiapan karier. Program ini menawarkan pengalaman belajar diluar kampus yang dapat
diambil oleh para mahasiswa pada tingkat tertentu dengan maksud untuk memperkecil jarak
antara kebutuhan industri dengan hasil lulusan Universitas yang akan ada.

Ruangguru merupakan startup yang bergerak di bidang teknologi pendidikan, selain


menyediakan produk pembelajaran bagi pelajar, mahasiswa, dan umum, Ruangguru juga turut
menyelenggarakan program dan inisiatif yang mendukung pengembangan diri sebagai bentuk
dari komitmen tersebut. Salah satunya adalah Ruangguru CAMP (Career Acceleration
Bootcamp) 2022 yang mendukung para mahasiswa, khususnya untuk meningkatkan
kompetensi dan kemampuan agar siap menghadapi dunia kerja yang kompetitif.

Studi Independen Bersertifikat Backend Engineering ini diadakan untuk dapat


membangun komponen back-end website dan aplikasi berbasis website yang handal dengan
teknologi terbaru. Tanpa dukungan back-end yang baik, tampilan antarmuka (front-end/client
side) website yang menarik dan interaktif akan gagal diakses oleh pengguna. Komponen
backend yang buruk dapat membuat website berjalan lambat, error, hingga tidak dapat diakses.
Proses pembelajaran yang dilakukan adalah online learning. Program ini terdiri dari
pembelajaran dengan metode synchronous dan asynchronous, dengan final project di setiap
program yang didesain menggunakan project based-learning yang disesuaikan dengan case
yang ada di perusahaan.

Kata Kunci: Ruangguru, Backend Engineering

iii
KATA PENGANTAR

Dengan menyebut nama Tuhan Yang Maha Esa. Mari kita panjatkan puja dan puji
syukur atas kehadirat-Nya, yang telah melimpahkan rahmat dan berkat-Nya kepada saya,
sehingga dapat menyelesaikan laporan akhir studi independen bersertifikat dengan program
“Backend Engineering Ruangguru CAMP” yang diselenggarakan PT. Ruang Raya Indonesia.

Laporan akhir ini telah disusun dengan maksimal dan mendapatkan bantuan dari
berbagai pihak sehingga dapat memperlancar pembuatan laporan ini. Penulis mengucapkan
terima kasih dan penghargaan setinggi-tingginya atas segala dukungan, bimbingan,
penghargaan dan bantuan kepada penulis. Ucapan terimakasih penulis sampaikan kepada
berbagai pihak, terutama kepada :

1. Ronal Hadi,ST,M.Kom, selaku Kepala Jurusan Sistem Informasi Politeknik Negeri


Padang.
2. Roni Putra, S.Kom.,MT, selaku Ketua Program Studi Manajemen Informatika
Politeknik Negeri Padang
3. Defni, S.Si.,M.Kom, selaku Dosen Pembimbing Program Studi Independen yang telah
memberikan arahan dan waktunya kepada penulis selama kegiatan ini berlangsung
hingga selesai.
4. Muhamad Iman Usman, S.Sos., M.A., Ed.M., selaku pendiri dan COO Ruangguru
5. dan Adamas Belva Syah Devara, M.P.A., M.B.A., selaku pendiri dan CEO Ruangguru
6. Kak Gusti Zainokta, selaku mentor Backend Engineering house BE09 yang telah
memberikan banyak ilmu serta arahan terkait hal praktikal selama Program Studi
Independen ini.
Terlepas dari itu semua, saya menyadari sepenuhnya bahwa masih ada kekurangan,
baik dari segi susunan kalimat maupun tata bahasanya. Oleh karena itu, dengan tangan terbuka
saya menerima segala saran dan kritik dari pembaca agar dapat dilakukan perbaikan pada
laporan ini.

Padang, 16 Desember 2022


Penulis

Asraf

iv
DAFTAR ISI

Lembar Pengesahan .................................................................................................................... i


Manajemen Informatika & Politeknik Negeri Padang................................................................ i
Lembar Pengesahan ...................................................................................................................ii
Backend Engineering Ruangguru CAMP ..................................................................................ii
Abstraksi .................................................................................................................................. iii
KATA PENGANTAR .............................................................................................................. iv
DAFTAR ISI.............................................................................................................................. v
DAFTAR GAMBAR ...............................................................................................................vii
BAB I ......................................................................................................................................... 1
PENDAHULUAN ..................................................................................................................... 1
I.1 Latar belakang ............................................................................................................. 1
I.2 Lingkup ....................................................................................................................... 2
I.3 Tujuan.......................................................................................................................... 2
BAB II........................................................................................................................................ 4
Lingkungan Organisasi Ruangguru ........................................................................................... 4
II.1 Struktur Organisasi ...................................................................................................... 4
II.2 Lingkup Pekerjaan....................................................................................................... 4
II.3 Deskripsi Pekerjaan ..................................................................................................... 5
II.4 Jadwal Kerja ................................................................................................................ 7
BAB III ...................................................................................................................................... 9
Pengembangan Aplikasi Kasir Berbasis Web dengan Menggunakan Bahasa Go dan Basis
Data NoSQL............................................................................................................................... 9
BAB IV .................................................................................................................................... 17
Penutup .................................................................................................................................... 17
IV.1 Kesimpulan................................................................................................................ 17
IV.2 Saran .......................................................................................................................... 17
REFERENSI ............................................................................................................................ 19
Lampiran A .............................................................................................................................. 20
Terms of Reference .................................................................................................................. 20
Lampiran B .............................................................................................................................. 27
Log Activity ............................................................................................................................. 27
Lampiran C .............................................................................................................................. 30

v
Dokumen Teknik ..................................................................................................................... 30

vi
DAFTAR GAMBAR

Gambar 2. 1 Struktur Organisasi............................................................................................................. 4


Gambar 2. 2 Agenda Pembelajaran Backend Engineering ..................................................................... 8

Gambar 3. 1 Halaman Utama Aplikasi ................................................................................................... 9


Gambar 3. 2 Halaman Registrasi .......................................................................................................... 10
Gambar 3. 3 Tampilan Repositori Pengguna ........................................................................................ 11
Gambar 3. 4 Halaman Login ................................................................................................................. 12
Gambar 3. 5 Tampilan Repositori Session............................................................................................ 13
Gambar 3. 6 Daftar Produk Yang Tersedia........................................................................................... 14
Gambar 3. 7Proses Penambahan Produk oleh Pengguna ...................................................................... 14
Gambar 3. 8 Tampilan Keranjang Belanja............................................................................................ 15
Gambar 3. 9 Tampilan Repositori Keranjang Belanja .......................................................................... 16

vii
1

BAB I

PENDAHULUAN

I.1 Latar belakang

Untuk memperkuat komitmen Ruangguru dalam mewujudkan pemerataan pendidikan


ke seluruh Indonesia, Ruangguru berkolaborasi dengan Kampus Merdeka dalam mencetak
talenta-talenta digital dari Sabang sampai Merauke. Guna membekali dan menyiapkan para
pemuda dan pemudi negeri menjadi talenta digital, Ruangguru menyediakan proses
pembelajaran yang mendalam berdasarkan kurikulum yang berbasis kompetensi yang
diperlukan di dunia bisnis digital saat ini, serta mentor terbaik yang berpengalaman dalam
menangani proyek bisnis yang nyata.

Sebagai organisasi yang bergerak di dunia pendidikan, sejak awal, Ruangguru


dipercaya pentingnya investasi pada pengembangan sumber daya manusia. Ruangguru
mencoba menghidupkan nilai tersebut melalui berbagai program dan inisiatif yang dilakukan
(baik dalam operasi bisnis maupun kegiatan non-komersial organisasi), termasuk membuat
produk pembelajaran bagi para profesional di Indonesia dan termasuk bagi para mahasiswa.

Ruangguru berkomitmen untuk meningkatkan kualitas sumber daya manusia dan


menyiapkan mahasiswa agar siap untuk bersaing di dunia kerja. Melalui program Studi
Independen, Ruangguru menyediakan kesempatan bagi mahasiswa untuk meningkatkan
kompetensi melalui proses pembelajaran yang praktis dan mendalam. Mahasiswa akan dibekali
oleh pelatihan online berbasis kompetensi yang difasilitasi oleh Ruangguru agar menjembatani
pengetahuan pada industri kerja yang tidak termasuk dalam kurikulum pada perguruan tinggi.
Tidak hanya itu, Ruangguru juga memberikan akses gratis pada mahasiswa peserta Studi
Independen di Ruangguru untuk belajar dan memilih pelatihan yang dibutuhkan untuk
persiapan masuk di dunia era digital sesuai dengan aspirasi berkarir masing-masing individu.

Pada program Studi Independen Ruangguru bersama Kampus Merdeka, materi ajar
yang akan diberikan kepada mahasiswa akan disusun oleh tim ahli pengembangan konten dari
Ruangguru bersama para instruktur berpengalaman dan didukung oleh teknologi canggih untuk
mempermudah proses pembelajaran.
I.2 Lingkup

Backend memiliki peranan penting dalam mendorong inovasi yang disruptif. Tanpa
dukungan back-end yang baik, website yang sudah disusun cantik tentu saja akan tidak dapat
diakses. Oleh karena itu, peranan back-end sangatlah penting dalam membangun website yang
bisa diakses dengan lancar.

I.3 Tujuan

Tujuan pembelajaran adalah dapat membangun komponen Back-End website dan


aplikasi berbasis website yang handal dengan teknologi terbaru. Lulusan program ini dapat
bekerja di bidang pengembangan web, dan pengembangan perangkat lunak, dengan peran
khusus sebagai Backend Developer, Backend Engineer, dan Software Engineer

Target tingkat keterampilan:

1. Mampu mengembangkan software dengan mindset seorang software engineer


2. Mampu mengembangkan software dengan code editor Visual Studio Code
3. Mampu melakukan navigasi di terminal
4. Mampu memahami dan menjalankan basic terminal command
5. Mampu melakukan inisiasi dan mengiterasi sebuah projek dengan version control Git
6. Mampu melakukan command-command dasar pada Git seperti commit, push, pull,
merge, dsb
7. Mampu memanage projek yang dikembangkan di repository Github
8. Mampu melakukan merge request di Github
9. Mampu menjalankan sebuah server dan mengexpose server tersebut agar bisa dilihat
oleh public
10. Mengetahui apa itu port dan IP address
11. Mengetahui cara menstruktur sebuah dokumen HTML
12. Mengetahui apa itu meta tag dan penerapannya
13. Mampu membedakan antara beragam elemen HTML yang berbeda
14. Mengetahui apa itu CSS dan peranannya dalam memberikan styling ke dokumen
HTML
15. Mampu menseleksi elemen HTML mana yang akan diberikan styling
16. Mampu merelease website ke Internet
17. Mampu implementasi basic pemrograman Golang
18. Mampu menggunakan String Processing pada

2
19. Golang
20. Mampu melakukan debug menggunakan VSCode dan membuat error handling pada
Golang
21. Mampu menerapkan basic Data Structure dan Algorithm
22. Mampu membuat dan menjalankan Test Cases pada Golang
23. Mampu menggunakan I/O file pada Golang
24. Mampu membuat Aplikasi sederhana berbasis Terminal
25. Mampu memahami dan menerapkan basic Concurrency pada Golang
26. Mampu memahami dan mengenal Database System
27. Mampu memahami Basic Prinsip database
28. Mampu menggunakan PostgreSQL sesuai best practices (konsep SQL)
29. Mampu memahami konsep ORM (GORM)
30. Mampu menggunakan ORM untuk relational database (Postgres)
31. Mampu menggunakan NoSQL (MongoDB)
32. Mampu melakukan Transaction Management dan Concurrency Control
33. Mampu membuat aplikasi CRUD dengan golang yang terintegrasi dengan Postgers atau
MongoDB
34. Mampu membuat HTTP client-server (CRUD) dengan REST API pada Golang.
35. Mampu menggunakan 3rd Party API pada Golang.
36. Mampu membuat dokumentasi API.
37. Mampu membuat Authentication dan Authorization.
38. Mampu memahami dan menerapkan basic Design Patterns.
39. Mampu mamahami menerapkan Clean Architecture.
40. Mampu memahami basic mengenai IaaS, PaaS, SaaS
41. Mampu melakukan build dan deploy ke PaaS (e.g Heroku).
42. Mampu melakukan presentasi dengan efektif
43. Mampu berkomunikasi dengan baik dan efektif.
44. Memahami dasar pemahaman berpikir sebagai salah satu insting dasar manusia.
45. Mampu memahami dasar keterampilan berpikir sebagai salah satu pengembangan diri.

3
4

BAB II

Lingkungan Organisasi Ruangguru

II.1 Struktur Organisasi

Gambar 2. 1 Struktur Organisasi


Program Studi Independen berada di bawah divisi Business Operations dari Ruangguru.

II.2 Lingkup Pekerjaan

Peserta akan melakukan pembelajaran syncronus dan asyncronus dimana materi yang
diajarkan sesuai dengan lingkup dari divisi Business Operations antara lain:

1. General Competencies, mempelajari materi tambahan yang dapat mendukung


kemampuan peserta dalam mengikuti dan menerapkan program digital marketing yang
meliputi, Communication and Presentations SkilI, Project Management Tech,
Analytical & Strategic Thinking Skill.
2. Software Engineering, mempelajari proses pengembangan software dengan
menggunakan Code Editor Visual Studio Code, Terminal, version control, dan basic
networking.
3. Basic Frontend Web Development with HTML & CSS mempelajari penulisan HTML
dan penggunaan CSS dalam Web Development dasar
4. Dasar Pemrograman Back End, mempelajari dan mampu menulis pemrogramman dasar
menggunakan Go (Golang). Dan memahami basic Data structure dan Algorithm
termasuk test dasar yang biasa digunakan dalam Coding Interview
5. Database Management & Technology, mempelajari dan mampu membuat database
design yang efisien dengan Relational Database dan NoSQL
6. Web Application, mempelajari dan mampu melakukan pemrograman degan Go
(Golang) untuk membuat program aplikasi yang efisien dengan mengimplementasikan
REST API dan menerapkan Clean Architecture juga implementasi basic design Pattern

II.3 Deskripsi Pekerjaan

Adapun deskripsi dari pembelajaran yang telah dilaksanakan oleh peserta berdasarkan
tipe modul adalah sebagai berikut:

1. General Competencies
a. Mempelajari cara melakukan presentasi dengan efektif
b. Mempelajari berkomunikasi dengan baik dan efektif
c. Mempelajari dasar-dasar pengelolaan proyek
d. Mempelajari kemampuan memimpin suatu proyek
e. Mempelajari dasar pemahaman berpikir sebagai salah satu insting dasar manusia
f. Mempelajari dasar keterampilan berpikir sebagai salah satu pengembangan diri

2. Software Engineering
a. Mempelajari pengembangan software dengan mindset seorang software engineer
b. Mempelajari pengembangan software dengan code editor Visual Studio Code
c. Mempelajari navigasi di terminal
d. Mempelajari basic terminal command
e. Mempelajari inisiasi dan mengiterasi sebuah projek dengan version control Git
f. Mempelajari command-command dasar pada Git seperti commit, push, pull, merge,
dsb
g. Mempelajari management project yang dikembangkan di repository Github
h. Mempelajari merge request di Github
i. Mempelajari sebuah server dan mengexpose server tersebut agar bisa dilihat oleh
public
j. Mempelajari port dan IP address

5
3. Basic Frontend Web Development with HTML & CSS
a. Mempelajari cara menstruktur sebuah dokumen HTML
b. Mempelajari meta tag dan penerapannya
c. Mempelajari perbedaan antara beragam elemen HTML yang berbeda
d. Mempelajari CSS dan peranannya dalam memberikan styling ke dokumen HTML
e. Mempelajari seleksi elemen HTML mana yang akan diberikan styling
f. Mempelajari release website ke Internet

4. Dasar Pemrograman Back End


a. Mempelajari implementasi basic pemrograman Golang
b. Mempelajari penggunaan String Processing pada Golang
c. Mempelajari debug menggunakan VSCode dan membuat error handling pada
Golang
d. Mempelajari basic Data Structure dan Algorithm
e. Mempelajari dan menjalankan Test Cases pada Golang
f. Mempelajari I/O file pada Golang
g. Mempelajari Aplikasi sederhana berbasis Terminal
h. Mempelajari dan menerapkan basic Concurrency pada Golang

5. Database Management & Technology


a. Mempelajari dan mengenal Database System
b. Mempelajari Basic Prinsip database
c. Mempelajari PostgreSQL sesuai best practices (konsep SQL)
d. Mempelajari konsep ORM (GORM)
e. Mempelajari ORM untuk relational database (Postgres)
f. Mempelajari NoSQL (MongoDB)
g. Mempelajari Transaction Management dan Concurrency Control
h. Mempelajari aplikasi CRUD dengan golang yang terintegrasi dengan Postgers atau
MongoDB

6. Web Application
a. Mempelajari HTTP client-server (CRUD) dengan REST API pada Golang.

6
b. Mempelajari 3rd Party API pada Golang.
c. Mempelajari dokumentasi API.
d. Mempelajari Authentication dan Authorization.
e. Mempelajari dan menerapkan basic Design Patterns.
f. Mempelajari Clean Architecture.
g. Mempelajari basic mengenai IaaS, PaaS, SaaS
h. Mempelajari build dan deploy ke PaaS (e.g Heroku).

II.4 Jadwal Kerja

Sebelum proses pembelajaran dimulai di adakan kegiatan onboarding yaitu perkenalan


Ruangguru, perkenalan program Ruangguru CAMP, dan sesi perkenalan dengan teman dan
mentor.

Proses pembelajaran dimulai pada 24 Agustus dengan memberikan courses pertama


“General Competence “yaitu tentang proses pengembangan diri dari pemahaman cara berpikir
(Thingking Skills), meningkatkan disiplin (Project Management), hingga mengkomunikasikan
(Communication). Pembelajaran dilakukan secara mandiri oleh masing-masing peserta
program melalui beragam sumber yang disediakan oleh Ruangguru maupun sumber kredibel
lainnya. Berikut proses pembelajaran lainnya :

1. Sesi Mentoring
Yaitu Pendampingan mentor secara 1 on 5 dengan siswa melalui kelompok belajar
kecil. Pada saat mentoring mentor akan menjelaskan kepada para peserta tentang
courses yang sedang berlangsung. Para peserta akan ditanya satu per satu untuk
memastikan jika ada peserta yang tidak mengerti dengan courses yang telah
disampaikan oleh mentor. Pada sesi mentoring ini juga akan di adakan kuis tentang
courses yang dibahas.
2. Ruang Konsultasi
Peserta dapat konsultasi atau bertanya mengenai materi yang ada di dalam Ruangguru
CAMP kepada para mentor melalui discord. Pertanyaan ini dapat dilihat oleh peserta
lain dan jawaban dari pertanyaan itu juga bisa dilihat oleh peserta lainya.
3. Live QnA
Sesi tanya jawab melalui google meet yang di ikuti oleh seluruh peserta.

4. Inspirational Class

7
Webinar bagi seluruh peserta program dengan kesempatan untuk berbincang langsung
dengan leadership team Ruangguru, pelaku usaha, guest experts dari dalam dan luar
negeri dari berbagai bidang.
5. Townhall
Ruangguru mengadakan sesi pertemuan bersama peserta untuk mengupdate informasi
terbaru selama kegiatan.

Pada program Back End Engineering Ruangguru CAMP terdapat 6 courses yang
berlangsung dari tanggal 24 Agustus – 20 Desember 2022. Setiap courses terdapat beberapa
tugas yaitu pre-test, exercise, assignment, final project dan post-test. Setiap courses telah
ditentukan jadwal dimulai dan berakhirnya. Setiap perserta diharuskan menyelesaikan tugas-
tugas yang telah diberikan sebelum jadwal yang ditentukan berakhir, jika tidak nilai akan
dikurangi, yaitu point maksimal hanya 40.

Berikut jadwal materi selama mengikuti kegiatan Studi Independent di Ruangguru


sebagai Back End Engineering.

Gambar 2. 2 Agenda Pembelajaran Backend Engineering

8
9

BAB III

Pengembangan Aplikasi Kasir Berbasis Web dengan Menggunakan Bahasa Go dan


Basis Data NoSQL

III.1 Pendahuluan Proyek

Aplikasi berbasis web kasir merupakan implementasi sederhana dari pengembangan


aplikasi berbasis web menggunakan bahasa pemrograman Go dan sistem basis data NoSQL.
Pada aplikasi ini tipe basis data NoSQL yang digunakan adalah tipe JSON yang memiliki
konsep pasangan key-value. Pada tampilan web, digunakan HTML dan CSS dengan
menggunakan framework TailwindCSS.

III.2 API Users

Gambar 3. 1 Halaman Utama Aplikasi

Ketika program pertama kali dijalankan, tampilan pada Gambar 3.1 akan muncul yang
meminta pengguna untuk melakukan aksi registrasi atau masuk jika telah memiliki akun.
Tampilan ini pertama kali keluar karena di atur ketika route dari URL menuju / (root), maka
akan menampilkan template (view) dari file HTML yang bernama index.html.
III.2.1 Proses Registrasi Pengguna

Gambar 3. 2 Halaman Registrasi


Ketika tombol registrasi pada Gambar 3.1 ditekan, maka akan membawa pengguna ke
rute /page/register. Namun terdapat middleware yang harus dilalui yang bernama Get.
Middleware ini menyaring HTTP Request hanya ke jenis request GET. Jika dilakukan
request dengan metode lainnya, maka tampilan register.html tidak dapat ditampilkan.

Setelah pengguna memasukkan username dan password untuk registrasi, maka tombol
Submit pada Gambar 3.2 akan ditekan. Tombol ini akan membawa pengguna ke rute /user/reg
ster yang hanya menerima HTTP Request jenis POST. Terdapat method pada API yang
bernama Reg ster yang akan di hit ketika tombol Submit tersebut ditekan.

Pada API tersebut, dilakukan parsing dari form HTML pada register.html untuk
mendapatkan username dan password yang dimasukkan oleh pengguna baru. Kemudian
method Reg ster ini akan memanggil method AddUser yang akan memeriksa apakah username
sudah ada di dalam basis data dalam kasus ini adalah basis data NoSQL jenis JSON.

Setelah pengguna berhasil melakukan registrasi, maka pada basis data NoSQLyang bertipe
JSON akan ditambahkan seperti gambar berikut:

10
Gambar 3. 3 Tampilan Repositori Pengguna

Dapat dilihat pada gambar tersebut terdapat sebuah array dari JSON yang memiliki
keys password dan username. Ketika pengguna melakukan registrasi, maka pada array JSON
tersebut akan ditambahkan data baru (append) dengan username dan password yang
dimasukkan oleh pengguna tersebut.

11
III.2.2 Proses Masuk Pengguna

Gambar 3. 4 Halaman Login


Pengguna masuk dengan cara memasukkan username dan password yang telah
diregistrasi pada tahap sebelumnya. Proses ini mirip dengan proses registrasi. Ketika pengguna
menekan tombol Submit setelah memasukkan username dan password-nya, maka middleware
akan memeriksa jenis HTTP Request yang diberikan. Pada proses masuk pengguna metode
yang diizinkan adalah POST.

Jika middleware mengizinkan maka akan lanjut ke method Log n. Pada method ini
kembali dilakukan parsing form untuk mendapatkan masukkan dari pengguna. Berbeda dengan
proses registrasi, proses masuk akan memeriksa dalam basis data jika pengguna dengan
username tertentu sudah ada. Kemudian dilakukan pencocokan dengan password berdasarkan
username tersebut.

Jika username dan password tersebut cocok, maka akan dibuat cookie pada browser
untuk session-based authentication yang akan kadaluwarsa setelah 5 jam. Cookie ini
menyatakan bahwa pengguna telah masuk dan sesi pengguna ini hanya dapat digunakan
sebelum 5 jam setelah masuk (atau sebelum keluar secara langsung oleh pengguna) dan akan
muncul view dari dashboard.

Adapun tampilan dari repositori session setelah pengguna berhasil melakukan login adalah
sebagai berikut:

12
Gambar 3. 5 Tampilan Repositori Session

Dapat dilihat pada gambar tersebut terdapat sebuah array dari JSON yang memiliki
keys token, username, dan exp ry. Ketika pengguna melakukan login, maka sesi dari login
tersebut akan disimpan dalam repositori dengan token unik yang dihasilkan secara otomatis.

Key username menyimpan nama pengguna yang melakukan login sementara key exp
ry mengatur lama waktunya sesi berakhir. Pada contoh ini sesi akan berakhir 5 jam setelah
login. Sebenarnya browser juga menyimpan data tersebut dalam bentuk cookie, jika dalam
waktu 5 jam setelah login pengguna ingin menggunakan aplikasi kembali, maka akan
dilakukan cek waktu berakhir pada repositori berdasarkan token sehingga pengguna tidak perlu
memasukkan username dan password kembali.

III.3 API Products

Ketika pengguna sudah berhasil masuk dan username serta cookie berhasil disimpan
dalam browser, maka pengguna selanjutnya akan dibawa ke tampilan dashboard. Pada tampilan
dashboard, akan dikeluarkan produk-produk yang tersedia berdasarkan data yang ada pada
basis data.

13
Gambar 3. 6 Daftar Produk Yang Tersedia
Produk-produk tersebut dapat ditampilkan dengan memanggil repository produk. Pada
repository tersebut, terdapat method Readflroducts yang akan mengeluarkan semua detail
produk dari basis data. Bersamaan dengan tampilan dashboard.html, data dari produk-produk
ini diteruskan (execute) dengan menggunakan template sehingga detail produk tersebut akan
muncul di tampilan dashboard.

III.4 API Carts

III.4.1 Proses Penambahan Produk ke Keranjang

Gambar 3. 7Proses Penambahan Produk oleh Pengguna

14
Pengguna dapat menambahkan produk ke kerajangnya dengan menekan checkbox dan
memilih jumlah produk yang ingin di tambahkan ke dalam kerajangnya. Tiap checkbox,
berdasarkan eksekusi template dari dashboard.html memiliki nilai ID dari produk itu sendiri.
Jumlah item merupakan banyaknya produk dalam ID yang sama yang akan ditambahkan ke
dalam keranjang.

Proses penambahan produk ke keranjang sampai penekanan tombol Add to Cart pada
dasarnya merupakan proses form dengan metode POST yang hasilnya perlu dilakukan parsing.
Ketika tombol tersebut ditekan, maka akan memanggil API AddCart yang melakukan parsing
form produk dan menambahkannya ke keranjang serta menghitung jumlah harganya.

III.4.2 Tampilan Kerajang Setelah Penambahan Produk

Gambar 3. 8 Tampilan Keranjang Belanja

Pada gambar tersebut dapat dilihat setelah menambahkan produk ke keranjang belanja,
maka produk-produk tersebut akan muncul dalam keranjang belanja pengguna beserta total
harga tiap produk dalam satu ID dan total keseluruhan harga produk dalam keranjang.
Tampilan daftar keranjang belanja tersebut didapatkan dari penggunaan repository carts.

Ketika pengguna pertama kali masuk, maka akan diperiksa keranjang belanjanya
berdasarkan username pada basis data keranjang belanja. Ketika tidak ada keranjang belanja
dengan username pengguna, maka keranjang belanja tidak akan dikeluarkan. Ketika terdapat

15
kerajang belanja dengan username pengguna tersebut, maka nama- nama produk yang ada
dalam keranjang belanja pengguna akan dikeluarkan.

Pada repositori keranjang belanja juga disimpan data kerajang belanja dari pengguna sekarang
seperti pada gambar berikut:

Gambar 3. 9 Tampilan Repositori Keranjang Belanja

Pada gambar tersebut dapat dilihat terdapat array dari JSON yang memiliki key name
bertipe data string, cart bertipe data array berisi produk-produk yang ditambahkan ke
keranjang. Key ini memiliki key di dalamnya, yaitu d, name, pr ce, quant ty, dan total. Key
terakhir di repositori keranjang belanja adalah total_pr ce. Pada repositori tersebut ditunjukkan
implementasi dari array JSON dua dimensi.

16
17

BAB IV

Penutup

IV.1 Kesimpulan

1. Pembuatan aplikasi berbasis web dengan menggunakan bahasa Go dan basis data
NoSQL menggunakan beberapa macam packages yang tersedia dalam bahasa Go.
2. Pada pembuatan aplikasi, digunakan packages HTTP. Packages ini menyediakan
implementasi untuk klien dan server HTTP.
3. Pada pembuatan aplikasi, digunakan packages Template dan framework CSS yaitu
TailwindCSS. Packages ini menyediakan implementasi untuk eksekusi file HTML
menjadi viewport pada web browser dan menerapkan logika pemrograman pada model.
4. Pada pembuatan aplikasi, terdapat implementasi dari sebuah middleware. Middleware
dapat menyaring jenis HTTP Request hingga melakukan authentication pengguna
untuk menyimpan session data dalam cookie.
5. Pada pembuatan aplikasi, digunakan basis data tanpa tabel atau NoSQL dengan
pemanfaatan file jenis JSON.
6. Pada pembuatan aplikasi, proses I/O data menggunakan implementasi packages OS dan
JSON untuk membaca file JSON yang tersimpan dalam server dan melakukan encoding
serta decoding JSON menjadi objek dalam Go.

IV.2 Saran

Adapun saran penulis untuk Program Magang & Studi Independen Bersertifikat,
diantaranya:

1. Saran untuk ruangguru, sebaiknya ruangguru memberikan materi tentang pembelajaran


lebih luas dan tidak terlalu ringkas. Pada video pembelajaran sebaiknya para mentor
menjelaskan dengan detail dan tidak terlalu terburu-buru, serta suara yang jelas. Pada
saat mentoring sebaiknya mentor menjelaskan materi dahulu setelah itu baru masuk ke
permasalahan yang dihadapi oleh peserta.
2. Saran untuk Mahasiswa, sebaiknya mahasiswa lebih bisa berdiskusi dengan mentor
tentang permasalahan yang dihadapi agar tidak tertinggal sesuai dengan jadwal yang
telah ditentukan. Para mahasiswa yang memiliki pengetahuan yang lebih luas
diharapkan bisa menjadi tempat bertanya dan diskusi para mahasiswa yang memiliki
permasalahan tentang tugas sehingga mahasiswa yang belum memahami materi juga
bisa terbantu untuk menyelesaikan permasalahannya tanpa harus menunggu waktu
mentoring.

18
19

REFERENSI

[1] Kemendikbud. 2020. Buku Panduan Merdeka Belajar – Kampus Merdeka. Jakarta:
Direktorat Jendral Pendidikan Tinggi Kemdikbud RI.

[2] Program Booklet. 2022. Ruangguru Camp (Career Acceleration Bootcamp).


Jakarta: PT.Ruang Raya Indonesia
20

Lampiran A

Terms of Reference
21
22
23
24
25
26
27

Lampiran B

Log Activity

Pada Bagian ini berisi log activity dengan format sebagai berikut:

Minggu/Tgl Kegiatan Hasil


Onboarding Nasional dalam kegitan Pisah Memahami kegiatan studi

1. Sambut peserta MSIB bacth 2 dan 3 independet

Sudah bisa mengakses LMS dan Mendapatkan informasi


mengerjakan pre-test, menyimak serta terkait Studi Independent
memahami topic Thinking Skills, meeting Frontend Engineering di
2. pertama mentor, serta mengikuti ruang Ruangguru serta memahami
konsultasi menjelaskan terkait teknis Work materi thinking skill
Assigment dan hal lainnya
Mengikuti live class, menyimak materi, Memahami materi serta
membuat Work Assigment dan Final mengerti bagaimana
3.
Project. membuat PPT melalui Work
Assigment yang diberikan
Mengikuti kegiatan Live class dan kelas Paham menggunakan code
mentoring, Mengerjakan Post Test General editor seperti VS Code
Competent, Masuk ke materi baru yaitu
4. tentang software engineering[FE]
Mempelajari materi software enginer, Dapat menggunakan Git,
mengerjakan tugas, mentoring, serta live memahami algoritma dan bisa
class membuat flowgorithm serta
pseudocode program
sederhana, memahami
5.
tentang network
Mengikuti kelas mentoring, memasuki Bisa membuat CV web
materi HTML & CSS, ikut Inpiration Class menggunakan HTML tanpa
6.
RG, mengikuti mentoring dan styling
mengerjakan assigment 1
Mengikuti kelas mentoring, mengerjakan Membuat CV web
dan mengumpulkan assignment 2, menggunakan HTML, dan

7. assignment 3, dan assignmen 4 CSS serta framework


Tailwind CSS sebagai
styling.

Mengikuti kelas mentoring, Mampu mendeploy Web


menyelesaikan dan mengumpulkan final HTML ke Netlify

8. projet menggunakan Git, dan paham


sintak dasar dari
javascript.
Memasuki materi baru tentang “Dasar Memahami materi tentang
Pemograman Backend”, mempelajari Basic Golang dan selesai

9. materi “Basic Golang”, mengikuti mengerjakan exercise dan


mentoring sesi 1 assignment sesi 1

Mngerjakan Exercise & Assignment Sesi 2 Dapat menyelesaikan


10. Exercise & Assignment Sesi
2

MengerjkanExercise & Assignment Sesi 3, Dapat menyelesaikan


11. mempelajari materi Golang i/o dan Exercise & Assignment Sesi
mengikuti mentoring sesi 2 3 dan memahami materi
golang i/o
Mengerjakan Exercise & Assignment Sesi 4 Dapat menyelesaikan
Exercise & Assignment Sesi

12. 4

Mempelajari concurrency mengerjakan Dapat memahami materi


13. Assignment Sesi 5 dan mengikuti mentoring concurrency menyelesaikan
sesi 3 Assignment Sesi 5

28
Membuat Final Project materi Dasar Dapat menyelesaikan Final
14. Pemograman Backend dan mengerjakan project dan mengerjakan post
post test test materi Dasar Pemograman
Backend
Memasuki materi baru Database Dapat memahami materi baru
management & technology, mempelajari Database management &
materi database system, data model, basic technology, mempelajari
principle, dan SQL serta mengerjakan materi database system, data
15.
Exercise & assignment sesi 1 model, basic principle, dan
SQL serta menyelesaikan
Exercise & assignment sesi 1
Mempelajari ORM_GORM dan NoSQL, Dapat memahami materi
serta mengerjakan exercise & assignment ORM_GORM dan NoSQL,

16. sesi 2 , final project dan post test serta menyelesaikan exercise
& assignment sesi 2 , final
project dan post test
Memasuki materi web application, Menyelesaikan pre-test, dan
mengerjakan pre-test, dan mempelajari Rest mempelajari Rest API dan

17. API dan Postman Postman

Mempelajari Clean Architecture dan PaaS Dapat memahami materi


serta mengerjakan assignment Clean Architecture dan PaaS

18. serta mengerjakan assignment

Mengerjakan Final Project dan Post Test Telah menyelesaikan Final


19. Project dan Post Test

29
30

Lampiran C

Dokumen Teknik

Berikut merupakan dokumen hasil dari proses pembelajaran yang dilaksanakan sampai
pada akhir program Studi Independen serta sertifikat dari kelas yang telah diselesaikan.

C.1 Final Project

1. Halaman Utama Aplikasi

2. Halaman Registrasi
3. Tampilan Repositori Pengguna

4. Halaman Login

31
5. Tampilan Repositori Session

6. Daftar Produk Yang Tersedia

32
7. Proses Penambahan Produk oleh Pengguna

8. Tampilan Keranjang Belanja

33
9. Tampilan Repositori Keranjang Belanja

C.2 Certificate

1. General Competence

34
2. Software Engineering

3. Front End Web Development with HTML & CSS

35
4. Dasar Pemograman Backend

5. Database Management & Technology

36
6. Web Application

37

Anda mungkin juga menyukai