From 72099a5b242d0fa3d7003ddce864c1d897789620 Mon Sep 17 00:00:00 2001
From: Hilmi Al-Biruni <hilmi.albiruni@ui.ac.id>
Date: Thu, 3 Nov 2022 11:34:44 +0700
Subject: [PATCH] Update README.md

---
 README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 56 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index f0a918b..b7b739d 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,59 @@
 # Tutorial APAP
 ## Authors
 * **Hilmi Al Biruni** - *2006463843* - *APAP-B*
+---
+## Tutorial 6
+### Pertanyaan 1: Perhatikan apa yang terjadi pada file index.html pada branch feat/tutorial-6-advancedgit-1. Apa yang terjadi setelah git cherry-pick dilakukan? Apakah kita bisa melakukan cherrypick tanpa harus melakukan commit?
+#### File index.html dipull dari branch tut6-for-cherrypick sehingga index.html ada pada branch feat/tutorial-6-advancedgit-1. Git cherry pick mencari commit-id yang akan mengambil file dari branch tertentu. Dalam melakukan hal itu, perlu dilakuka commit agar dapat terdefinisi commit-id
 
+### Pertanyaan 2: Conflict ini terjadi karena pada branch feat/tutorial-6-advancedgit-1 sudah ada kode dengan baris yang sama di index.html dengan branch tut6-for-merge sehingga akan menimbulkan collisons jika dilakukan merging.
 
+### Pertanyaan 3: Apa yang terjadi pada log history setelah melakukan rebase (branch rebase-1 dan rebase-2)? Sertakan screenshot log history anda pada kedua branch tersebut!
+
+#### Log histori pada rebase-1 terdapat juga pada log histori rebase-2.
+
+#### Pada branch rebase-1 
+![](2022-10-13-20-28-19.png)
+
+#### Maka akan terdapat juga pada branch rebase-2
+![](2022-10-13-20-27-53.png)
+
+### Pertanyaan 4: Jelaskan perbedaan dari "rebase –continue", "rebase –skip", dan "rebase –abort"!
+
+#### Pada "rebase --continue" akan melaksanakan rebase suatu pada perintah jika konflik sudah disolve. Lalu, pada "rebase --skip" akan mengabaikan bagian yang terkena konflik. Kemudian, pada "rebase --abort" akan membatalkan proses rebase.
+
+### Pertanyaan 5: Jelaskan perbedaan git rebase dan git merge!
+
+#### Pada git rebase melakukan penggabungan urutan commit pada suatu branch ke urutan commit pada branch yang dituju. Sebagai contoh, kita mengerjakan kode pada branch B dan melakukan commit disana. Kita dapat memindahkan urutan commit branch B ke urutan branch A tanpa mengubah kode pada branch A. Hal ini digunakan jikalau saat mengerjakan branch A kita membutuhkan sesuatu pada branch B, maka kita tinggal melakukan pull commit-id pada branch A yang terdapat juga di branch B.
+### Berbeda dengan git merge yang melakukan merge kode dari branch B dengan branch A sehingga kode/file pada branch A akan berubah
+
+### Pertanyaan 6: Pada tahap ini apakah yang terjadi pada direktori git-stash?
+
+#### Pada git-stash akan tersimpan didalam local repository Git dan harus melakukan git stash pop untuk mengakses direktori
+
+### Pertanyaan 7: Apa yang terjadi pada file abc.txt setelah melakukan git reset --hard? Bagaimana kondisi lognya? Apa perbedaan git reset dengan git revert?
+
+#### git reset akan mereset file abc.txt ke versi sebelumnya, yang berisi string "this is first line from abc file". Kondisi lognya pun akan hilang.
+#### Lalu, perbedaan git reset dengan git revert adalah git reset dapat mengembalikan ke versi direktori tertentu. Sedangkan git revert hanya dapat mengembalikan ke versi direktori sebelumnya. Jadi, secara teknis, git reset dapat mengembalikan versi direktori sesuai yang kita mau.
+---
+## Tutorial 5
+
+### 1. Apa itu Postman? Apa kegunaannya?
+
+#### Postman adalah sebuah developent tool API yang digunakan untuk build, modify, dan test API. Penggunaan Postman dapat digunakan untuk mendesign, mock, debug, tes, dokumentasi, monitor, dan juga menerbitkan API. Postman memiliki fungsi REST Client yang dapat digunakan untuk menguji REST API.
+
+### 2. Jelaskan fungsi dari anotasi @JsonIgnoreProperties dan @JsonProperty
+
+#### @JsonIgnoreProperties digunnakan untuk memberikan spesifikasi list atribut dari sebuah class yang diabaikan saat menjalankan serialization dan deserialozation JSON. Jika #### @JsonIgnoreProperties tidak disertakan, nantinya akan menyebabkan error saat menjalankan serialization dan deserialization saat Java Object tidak memiliki field yang ada pada JSON.
+
+### 3. Apa kegunaan atribut WebClient?
+
+#### Kegunaan dari Webclient adalah untuk menghubungkan personal komputer ke jaringan internet yang meminta informasi. Dalam mengakses webserver diperlukan sebuah WebClient untuk menggunakan aplikasi yaitu WebBrowser.
+
+### 4. Apa itu ResponseEntity dan BindingResult? Apa kegunaannya?
+
+#### ResponseEntity merupakan representasi keluruhan HTTP Response dari status code, header, dan body. Dengan demikian, dapat digunakan untuk mengkonfigurasi secara lengkap HTTP response. BindingResult adalah sebuah objek spring yang akan menyimpan hasil validasi, binding, dan error dari model objek yang divalidasikan. Penggunaan BindingResult diletakkan setelah parameter objek divalidasi.
+---
 ## Tutorial 4
 ### Jelaskan perbedaan th:include dan th:replace!
 
@@ -39,7 +90,8 @@
 #### Referensi : https://javabydeveloper.com/lombok-allargsconstructor-examples/ https://projectlombok.org/api/lombok/NoArgsConstructor.html
 
 ### Pertanyaan 2: Pada class CourseDb, terdapat method findByCodeUsingQuery dan findByCode, apakah perbedaan kedua method tersebut? Jelaskan juga kegunaan @Query pada method findByCodeUsingQuery! 
-Pada findByCode tidak menggunakan @Query sedangkan pada findByCodeUsingQuery menggunakan @Query. @Query digunakan untuk mengimplementasikan command MySQL pada interface dan menghubungkannya ke database sehingga akan menjadi @Query("SELECT.....") lalu diikuti dengan  findByCodeUsingQuery
+
+#### Pada findByCode tidak menggunakan @Query sedangkan pada findByCodeUsingQuery menggunakan @Query. @Query digunakan untuk mengimplementasikan command MySQL pada interface dan menghubungkannya ke database sehingga akan menjadi @Query("SELECT.....") lalu diikuti dengan  findByCodeUsingQuery
 
 ### Pertanyaan 3: Jelaskan perbedaan kegunaan dari anotasi @JoinTable dan @JoinColumn
 #### @JoinTable menyimpan id dari kedua entity ke tabel yang terpisah. Penggunaan @JoinTable ketika kita ingin mengatur hubungan antara entity dengan table lain.
@@ -62,7 +114,7 @@ Pada @JoinColumn di atribut Course, name berguna untuk menyatakan nama dari fore
 
 
 
-
+---
 ## Tutorial 2
 ### Pertanyaan 1: Cobalah untuk menambahkan sebuah Course dengan mengakses link berikut: http://localhost:8080/course/add?code=APAP&nameCourse=APAP%20Tutorial2&description=2020%20Fasilkom&jumlahSks=3 Apa yang terjadi? Jelaskan mengapa hal tersebut dapat terjadi?
 Jika link tersebut diakses akan memunculkan Whitelabel Error Page Service Error 500. Hal ini dikarenakan sudah ada perintah return "add-course" pada controller. Controller merupakan file yang berfungsi untuk melakukan mapping dari request yang diinput, kemudian akan diminta untuk memanggil template html yang akan direturn. Sedangkan html "add-course" belum dibuat, sehingga hal ini akan menyebabkan error.
@@ -81,7 +133,7 @@ Akan bertambah course lain
 
 https://drive.google.com/file/d/1NGZj0VJENBv4pRQjVcsHjZRmML3h7E9O/view?usp=sharing
 
-
+---
 ## Tutorial 1
 ### What I have learned today
 Pada tutorial ini, saya mempelajari tentang cara mengoperasikan Git secara lebih advance. Sebelumnya, saya pernah melakukan hal berikut saat mengerjakan TK Basdat oleh teman saya dari Ilmu Komputer. Lalu, saya juga baru memahami secara dasar tentang Java Springboot. 
@@ -105,6 +157,7 @@ framework?
 #### @RequestParam digunakan untuk membaca data formulir HTML yang disediakan oleh pengguna dan mengikatnya ke parameter permintaan.
 #### @Pathvariable: Anotasi ini digunakan untuk menangani variabel template dalam pemetaan URI permintaan, dan menggunakannya sebagai parameter metode
 #### @RequestParam digunakan jika anotasi parameter belum ditentukan, @Pathvariable digunakan jika parameter sudah ada
+---
 ### What I did not understand
 (tuliskan apa saja yang kurang Anda mengerti, Anda dapat men-_check_ apabila Anda
 sudah mengerti dikemudian hari, dan tambahkan tulisan yang membuat Anda mengerti)
-- 
GitLab