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?<br/>
Yang terjadi setelah **git cherry-pick** dilakukan adalah menghilangkan file index.html pada branch `feat/tutorial-6-advancedgit-1`. Hal tersebut bisa terjadi karena *commit* belum dilakukan setelah menjalankan command **git cherry-pick**. Oleh karena itu, kita perlu melakukan *commit* terlebih dahulu setelah menjalankan command **git cherry-pick**.
2. Oops! terjadi conflict nih. Yap, conflict ini terjadi karena … <br/>
Isi yang ada pada file *index.html* berbeda pada branch `feat/tutorial-6-advancedgit-1` dan branch `tut6-for-merge`.
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!<br/>
Yang terjadi pada log history setelah melakukan rebase antara branch `rebase-1` dan branch `rebase-2` adalah log dari branch `rebase-1` hanya memiliki pesan commit **"add a.txt"**. Sedangkan pada branch `rebase-2` akan memiliki pesan commit dari log branch `rebase-1` dan pesan commit dari log miliknya sendiri. Berikut adalah hasil screenshot dari isi log pada branch `rebase-2` saya:<br/>

4. Jelaskan perbedaan dari "rebase –continue", "rebase –skip", dan "rebase –abort"!<br/>
***rebase-continue** adalah command yang digunakan untuk melakukan proses rebase setelah menyelesaikan konflik dari proses rebase yang sebelumnya.
***rebase-skip** adalah command yang digunakan untuk melakukan ulang proses rebase dengan men-skip patch yang sedang dijalankan.
***rebase-abort** adalah command yang digunakan untuk menggagalkan proses rebase dan meletakkan ulang HEAD ke cabang asli.
5. Jelaskan perbedaan git rebase dan git merge<br/>
***git-rebase** adalah command yang digunakan untuk menyatukan 2 branch dengan hanya mengambil pesan commit dari branch yang lain tanpa harus membuat pesan commit yang baru.
***git-merge** adalah command yang digunakan untuk menyatukan 2 pesan commit atau lebih menjadi sebuah pesan commit yang baru.
Perbedaan antara kedua command tersebut adalah **git-rebase** akan membuat log commit yang ada lebih mudah dibaca namun akan lebih sulit untuk membenarkan code yang ada ketika terjadi konflik saat menggabungkan antara 2 branch. **git-merge** adalah kebalikannya dari hal tersebut.
6. Pada tahap ini apakah yang terjadi pada direktori git-stash?<br/>
Yang terjadi pada direktori git-stash adalah kita akan menghilangkan code yang telah dibuat sebelumnya. Istilahnya, direktori git-stash akan kita *"cut"* dan nantinya akan kita *"paste"* ke dalam branch yang lain.
7. Apa yang terjadi pada file abc.txt setelah melakukan git reset --hard? Bagaimana kondisi lognya? Apa perbedaan git reset dengan git revert?<br/>
Yang akan terjadi pada file abc.txt setelah melakukan git reset --hard adalah string **"this is second line from abc file"** akan menghilang. Kondisi dari lognya adalah pesan commit untuk **"update abc file 2"** akan menghilang.
***git-reset** adalah command yang digunakan untuk
***git-revert** adalah command yang digunakan untuk
## Tutorial 5
### Pertanyaan
1. Apa itu Postman? Apa kegunaannya?<br/>
**Postman** merupakan aplikasi yang akan digunakan sebagai REST CLIENT untuk uji coba dari REST API. Kegunaan dari Postman adalah:<br/>
* Menguji API yang sudah dibuat oleh para *developer*.
* Menyediakan fitur **Sharing Collectionn API**, **Testing API**, **Monitoring API**, dan lainnya.
2. Jelaskan fungsi dari anotasi @JsonIgnoreProperties dan @JsonProperty.<br/>
***@JsonIgnoreProperties** berfungsi untuk tidak memperhatikan *property* yang ditentukan dalam serialisasi dan deserialisasi JSON, terutama properti logis.
***@JsonProperty** berfungsi sebagai sebuah *method* pengambil objek *non-static*
3. Apa kegunaan atribut WebClient?<br/>
**WebClient** digunakan untuk restserviceimpl yang nantinya akan digunakan ketika mengirim dan menerima data dari URI.
4. Apa itu ResponseEntity dan BindingResult? Apa kegunaannya?<br/>
***ResponseEntity** merupakan perwakilan dari HTTP response. **ResponseEntity** memperbolehkan kita menambahkan sebuah header dan juga kode status.
***BindingResult** berfungsi untuk menyimpan hasil validasi, pengikatan, dan berisi kesalahan yang mungkin terjadi. **BindingResult** harus ada tepat setelah objek model divalidasi.