Newer
Older
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
**Muhammad Navis Raditya Riayatsyah** - **2106717291** - **APAP-SP**
---
## Tutorial 1
### What I have learned today
Dari tutorial 1, Saya belajar mengenai inisialisasi proyek baru menggunakan framework Springboot. Selain itu, diperkenalkan juga tatacara menggunakan GitLab milik fasilkom secara mendasar.
### GitLab
1. [Note] Apa itu Issue Tracker? Apa saja masalah yang dapat diselesaikan dengan Issue Tracker?
Issue Tracker memungkinkan developer untuk melaporkan serta mengerjakan problem atau notice yang terjadi dan ingin diselesaikan dalam fase pengembangan. Pada Issue Tracker, kita juga dapat melakukan assign dari suatu permasalahan kepada developer lain yang akan menangani masalah terkait. Jenis masalah yang dapat diselesaikan dengan Issue Tracker dapat berupa apa saja dalam proyek yang sedang dikembangkan. Akan tetapi, Issue Tracker sendiri ...
2. [Note] Apa perbedaan dari git merge dan git merge --squash?
Sejujurnya tidak ada perbedaan yang Saya rasakan secara langsung ketike melakukan perintah `git merge` dengan `git merge --squash`, kesalahan Saya pada tutorial kali ini adalah Saya secara reflek melakukan git merge biasa dan bukan squash. Akan tetapi, dari apa yang Saya perhatikan pada repository teman Saya selama pengerjaan di kelas, Saya melihat bahwa `git merge --squash` merapihkan merge history dan mencatat merge yang sedang dilakukan menjadi sebuah langkah saja. Hal ini juga diperkuat ketika Saya membaca mengenai perbedaan `git merge` dan `git merge --squash` pada artikel berikut.
(https://www.lloydatkinson.net/posts/2022/should-you-squash-merge-or-merge-commit/)
3. [Note] Apa keunggulan menggunakan Version Control System seperti Git dalam pengembangan suatu aplikasi?
Penggunaan Version Control System seperti Git dalam mengembangkan suatu aplikasi bermanfaat bagi seluruh developer yang berhubungan secara langsung dengan proyeknya. Version Control memudahkan developer untuk melacak progres yang telah dilaksanakan serta siapa yang mengerjakan progres tersebut. Pada Version Control System juga kita sebegai developer dapat melakukan tindakan revert version untuk kembali secara sementara ke versi sebelum berlakunya sebuah tindakan pada branch yang sedang kita kerjakan. Selain itu, dengan menggunakan Version Control System membuat proses pengerjaan proyek pengembangan aplikasi menjadi lebih modular karena setiap anggota hanya perlu memperhatikan repository miliknya saja (kalau di gitlab, tanggung jawab akan suatu repository juga dapat diberikan melalui Issue Tracker).
### Spring
1. [Note] Apa itu library dan dependency?
Dalam artikel pada halaman CareerFoundry menjelaskan bahwa library merupakan sebuah prewritten code yang dapat digunakan oleh developer pada proyek lain untuk mempermudah dan mempercepat proses pengembangan. (https://careerfoundry.com/en/blog/web-development/programming-library-guide/#what-is-a-programming-library)
Sedangkan dependency, merupakan sebuah relasi/hubungan antar komponen software yang saling berketergantungan agar dapat berjalan dengan benar.
Dalam sebuah forum diskusi, ada seseorang yang menjabarkan library diibaratkan seperti `seseorang` sedangkan dependency merupakan `hubungan`. Definisi yang dapat menggambarkan korelasi antara library dan dependency bisa dikatakan seperti "I am a person. My niece is also a person. But to her, I'm a relative. You cannot simply be a relative by nature; you're always a relative of someone else." `person` dapat menjadi pengibaratan sebuah library dan hubungan antara `person` yang kemudian menjadi `dependency`-nya. (https://softwareengineering.stackexchange.com/questions/408739/what-is-the-difference-between-a-library-and-a-dependency)
2. [Note] Mengapa kita menggunakan Gradle? Apakah ada alternatif dari Gradle?
Gradle berfungsi sebagai build tools dimana Gradle dapat melakukan compile dan build banyak file Java dan Library yang dipakai selama proses pengembangan aplikasi sekaligus. Alternatif dari Gradle sebenarnya ada banyak, salah satunya seperti Apache Ant dan Apache Maven. Namun, pada kesempatan kali ini Gradle digunakan karena tutorial 1 menggunakan Groovy dan Kotlin sedangkan Maven dan Ant menggunakan XML.
(https://www.petanikode.com/java-gradle/)
3. [Note] Selain untuk pengembangan web, apa saja yang bisa dikembangkan dengan Spring framework?
Selain untuk pengembangan aplikasi web, Spring framework juga dapat digunakan untuk membuat enterprise app dan aplikasi terkait pengolahan data, termasuk Big Data.
(https://socs.binus.ac.id/2017/10/04/framework-spring-java/#:~:text=Dengan%20menggunakan%20Spring%20Framework%2C%20developer,dapa%20tberjalan%20pada%20JVM%20manapun)
4. [Note] Apa perbedaan dari @RequestParam dan @PathVariable? Kapan sebaiknya menggunakan @RequestParam atau @PathVariable?
`@RequestParam` nilai/kunci akan dimasukkan ke dalam string query secara encoded sedangkan `@PathVariable` akan mengambil nilai yang tertera dalam pola URI.
(https://www.baeldung.com/spring-requestparam-vs-pathvariable)
Penggunaan keduanya bersifat opsional dan tidak ada keharusan atau ketetapan kapan penggunaan masing-masing anotasi. Akan tetapi, @RequestParam lebih baik digunakan ketika ingin mengaplikasikan web tradisional dimana lebih banyak dikirimkan data parameter query. Sedangkan @PathVariable lebih cocok digunakan pada web yang menerapkan arsitektur REST karena menggunakan URL.
(https://stackoverflow.com/questions/13715811/requestparam-vs-pathvariable#:~:text=2)20%40RequestParam%20is%20more%20useful,services%20where%20URL%20contains%20values)
### What I did not understand
Masih belum terbiasa dengan GitLab karena lebih familiar menggunakan Github biasa. Selain itu, penggunaan Springboot juga masih sangat baru salah satunya karena dependency yang tersedia sangat beragam.