Rangkuman Kelas
Berikut adalah rangkuman yang bisa Anda gunakan untuk mengingat kembali apa yang telah dipelajari dalam kelas Belajar Git dengan GitHub:


Git dan Github
Pada materi Git dan GitHub Anda telah mempelajari bagaimana sejarah serta penggunaan Git dan GitHub. Berikut rangkuman dalam materi tersebut:

Pada materi Git kita mempelajari sejarah berdirinya platform Git, bagaimana Linus Torvalds bersama tim membangun platform tersebut pada tahun 2005. Git dibangun dengan tujuan agar dapat melakukan kolaborasi antar tim serta bagaimana proyek dapat dikontrol dengan baik. Untuk bisa berkolaborasi, bisa dengan membangun proyek menjadi open source atau pilihan lainnya menyetel kolaborasi dengan orang lain.

Kemudian, kita juga telah belajar bagaimana dapat memahami perintah dan istilah yang ada pada Git, seperti Git Repository, Git Branch, Git Fork, Git Clone, Git Commit, dan Git Push. 
Perintah	Fungsi
Git Repository	Media penyimpanan file proyek di dalam Git server.
Git Branch	Percabangan untuk versi baru dari proyek repository.
Git Fork	Penyalinan dari repository orang/organisasi lain, lalu menyimpannya di dalam repository Git sendiri.
Git Clone	Mengambil sebuah repository dan menyimpannya pada direktori lokal.
Git Commit	Cuplikan perubahan (snapshot) dari repository Anda pada waktu tertentu.
Git Push	Mengirim hasil dari perubahan file yang dilakukan ke dalam repository server.
Selanjutnya, pada materi GitHub kita telah mempelajari bagaimana menggunakan Platform Website GitHub. GitHub merupakan sebuah perusahaan layanan hosting repository Git berbasis Cloud. Dengan menggunakan GitHub, berkolaborasi antar anggota tim menjadi lebih mudah. GitHub adalah tools yang sangat populer karena mudah digunakan.

Terdapat menu utama pada saat mengakses halaman GitHub yaitu, Explore Repository, Sign up, dan Sign in. Selain itu, ada juga fitur-fitur pendukung pada GitHub seperti:
New Repository, digunakan membuat repository baru dengan jenis public & private.
Import Repository, digunakan untuk mengambil/menyalin file proyek dari vendor lain seperti Subversion atau Mercurial ke dalam repository baru pada GitHub. Proses impor dilakukan dengan menggunakan link URL.
Gist, digunakan untuk berbagi potongan kode, catatan, melakukan daftar, dan lainnya. Seperti halnya repositori, Anda dapat menyetel dan menyimpan Intisari Anda sebagai rahasia atau publik.
GitHub Organization, digunakan untuk berkolaborasi bersama pada suatu organisasi misalnya untuk bisnis dengan sejumlah kelebihan misalnya banyak proyek sekaligus. Pemilik dan administrator dapat mengelola hak akses anggota ke suatu data atau proyek dengan fitur keamanan dan administratif yang canggih.
GitHub Project, digunakan untuk mengatur dan memprioritaskan pekerjaan. Anda dapat membuat papan proyek (project board) untuk mengerjakan fitur tertentu, peta alur yang komprehensif (comprehensive roadmaps), atau bahkan merilis daftar periksa (release checklists). Dengan papan proyek, Anda memiliki fleksibilitas untuk membuat alur kerja khusus yang sesuai dengan kebutuhan Anda.

Selain itu, terdapat beberapa latihan yang telah kita lakukan dalam materi Git dan GitHub. Berikut di antaranya:
Latihan Membuat Akun GitHub
Berikut beberapa tahapan yang bisa Anda lakukan untuk membuat akun GitHub:
Mengakses alamat https://github.com/signup. 
Melengkapi data-data yang diperlukan. 
Melakukan verifikasi pendaftaran menggunakan kode unik yang dikirimkan GitHub melalui email. 
Menambahkan dan memverifikasi email cadangan untuk mengelola akun GitHub (opsional).

Latihan Mengeksplorasi Proyek GitHub
Berikut beberapa tahapan yang bisa Anda lakukan untuk mengeksplorasi proyek GitHub:
Melakukan pencarian proyek GitHub dengan menggunakan fitur Search. Pencarian proyek GitHub bertujuan untuk mendapatkan referensi repository saat mengerjakan proyek sendiri. 
Menganalisis hasil pencarian tersebut seperti, jumlah pengunjung yang memonitor (watch), memberikan bintang (star), dan menyalin proyek repository ke repository pribadi (fork).
Memberikan bintang hasil pencarian proyek repository agar dapat mengikuti perkembangannya. GitHub memiliki fitur stars (bintang) yang memudahkan Anda untuk menemukan repository atau topik yang Anda cari sebelumnya.
Melihat kontributor dan kolaborator dari sebuah proyek repository. Setiap proyek repository memiliki kolaborator dan kontributor.

Latihan Mengenal GitHub Dashboard
Berikut beberapa tahapan yang bisa Anda lakukan untuk mengenal GitHub Dashboard:
Melihat semua aktifitas yang dilakukan pada halaman GitHub dashboard, seperti mengikuti proyek repository, melakukan perubahan pada proyek GitHub, atau memberikan komentar/tanggapan di dalam repository. 
Melihat bagian toolbar pada halaman GitHub dashboard. Dalam toolbar terdapat beberapa menu seperti:
Pull request untuk melihat semua aktivitas mengenai pekerjaan yang telah selesai dan tersimpan di dalam GitHub. 
Issues untuk melihat semua tanggapan atau komentar mengenai permasalahan yang kita dapat saat menggunakan repository milik orang lain. 
Marketplace untuk mencari dan memasang fitur tools pendukung yang disediakan oleh GitHub. Tools dalam marketplace akan membantu Anda dalam mengoptimalkan penggunaan GitHub di dalam proyek. 
Explore untuk melihat berbagai informasi atau berita terkini mengenai repository, topik, dan trending di GitHub. 
Settings untuk melakukan perubahan profil seperti username, foto, serta informasi lainnya.

Setiap proyek repository memiliki kolaborator dan kontributor. Seorang kolaborator merupakan anggota tim yang memiliki akses dalam sebuah repositori proyek (project repository). Akses ini tentunya bermacam-macam ya, ada yang dibatasi pada pekerjaan-pekerjaan tertentu, ada pula yang dapat melakukan semua pekerjaan dalam sebuah repository.

Ketika Anda membuat sebuah repository menggunakan akun personal, maka secara otomatis akan menjadi seseorang owner repository dan memiliki akses penuh terhadap repository tersebut. Di sisi lain, ketika Anda mengundang orang lain menjadi kolaborator dalam repository tersebut, maka mereka akan dapat melakukan pull (read) dan push (write) pada repository tersebut.

Namun, jika Anda menggunakan akun organisasi, GitHub menyediakan 5 tingkatan level (role) yang berbeda untuk seorang kolaborator, yakni read, triage, write, maintain, dan admin.
Seorang kolaborator dengan tingkatan read, biasanya hanya memiliki akses untuk membuka repository. Level ini direkomendasikan untuk orang non-coding (tim lain) yang ingin melihat atau berdiskusi mengenai proyek repository.
Seorang kolaborator dengan tingkatan write, biasanya digunakan oleh seorang developer atau pengembang untuk membuka, melakukan clone, dan melakukan push pada repository tersebut. Ia juga dapat mengelola issues dan pull request yang masuk.
Seorang kolabolator dengan tingkatan triage, biasanya digunakan oleh maintainer yang hanya dapat mengeloa issues dan pull request yang ada masuk ke dalam repository.
Seorang kolaborator dengan tingkatan maintain, biasanya digunakan oleh seorang project manager yang dapat mengelola beberapa pengaturan dalam repository. Ia juga dapat melakukan berbagai hal seseorang dengan tingkatan read.
Seorang kolaborator dengan tingkatan admin, biasanya digunakan oleh seseorang yang butuh mengakses secara penuh kepada repository. Ia dapat melakukan berbagai hal, termasuk mengundang kolaborator lain untuk bergabung dalam repository.

Seorang kolaborator juga dapat berperan sebagai kontributor. Apa itu kontributor? Kontributor adalah siapa saja yang dapat melakukan commit atau menyimpan cuplikan perubahan ke dalam repository (git push). Akan tetapi, tidak semua kontributor dapat melakukan commit secara langsung. Ini disebabkan karena mereka tidak memiliki akses untuk melakukan push ke dalam repository tersebut (atau tidak berperan sebagai kolaborator). Sehingga mereka perlu melakukan pull request untuk melakukan commit pada repository orang lain.

Di dalam GitHub terdapat sistem notifikasi untuk memberikan pembaruan informasi kepada Anda. Secara umum, Anda akan otomatis berlangganan pemberitahuan bila Anda memiliki:
Fitur Watch pada repository atau tim yang Anda ikuti dalam keadaan aktif
Menerima tanggapan Pull request atau membuat issues.
Melakukan Pull request, issue, atau membuat percakapan diskusi bersama tim.
Berlangganan secara manual dengan mengeklik Watch atau Subscribe.
Saat teman atau orang lain melakukan @mentioned terhadap nama GitHub Anda.
Mengubah status, seperti dengan menutup masalah (issues) atau melakukan penggabungan pull request.
Anda menjadi anggota tim dan mendapatkan @mentioned oleh satu tim Anda.

Setiap notifikasi yang masuk akan terlihat pada Inbox Notifications. Anda dapat menghentikan notifikasi dengan cara melakukan Unsubscribe pada menu Manage Notification.

Selain mendapatkan notifikasi masuk langsung di dalam GitHub Dashboard, Anda juga akan mendapatkan notifikasi melalui email yang Anda gunakan sebagai akun GitHub. Pengaturan notifikasi email dapat dilakukan pada menu Setting Notifications. 


Dasar Git
Berikut beberapa poin yang telah kita pelajari dalam materi dasar Git:

Dengan Git, pekerjaan menjadi lebih praktis. Kita dapat melacak perubahan pada berkas yang ada dalam di repository atau direktori kerja. Selain itu, kita juga dapat mengelola versi rilis dari sebuah proyek dalam repository.

Penggunaan Git memerlukan adanya repository, yaitu wadah atau tempat penyimpanan proyek di mana setiap berkas yang ada di dalamnya dapat dilacak jika terjadi perubahan. Berdasarkan jenisnya, repository terbagi menjadi 2, yaitu local repository dan remote repository.
Local repository merupakan tempat penyimpanan lokal yang berada di komputer kita. Local repository dapat kita ubah-ubah (hapus, modifikasi, dan tambah) sesuai dengan keinginan kita, sebelum akhirnya nanti di-push/diimplementasikan ke remote repository.
Remote Repository merupakan tempat penyimpanan berkas-berkas pekerjaan atau kenangan yang kita miliki di dalam server. Anda bisa menggunakan berbagai layanan penyimpanan berbasis cloud yang sangat populer seperti GitHub, Gitlab, dan BitBucket. Selain itu, jika Anda memiliki server sendiri, Anda juga dapat menginstal Git ke dalam server. Dengan menggunakan Remote Repository, orang lain dapat mengakses repository yang kita simpan dengan mudah.

Pada latihan belajar dasar Git kita belajar menggunakan remote repository dari salah satu penyedia layanan cloud yaitu GitHub. Dalam belajar dan memahami semua konsep dasar dari Git, kita juga telah melakukan latihan dengan mempraktikkan bagaimana membuat repository di GitHub, di mana saat membuat repository terdapat pengaturan visibilitas yang terdiri dari 2 yaitu private dan public.
Private repository merupakan repository yang bersifat tertutup/pribadi dan hanya akun–akun yang telah diberikan akses saja yang bisa melihatnya.
Public repository merupakan repository yang bersifat terbuka dan semua orang dapat melihat dan menggunakan projek yang ada di repository tersebut.

Ketika membuat repositoryada beberapa inisialisasi yang bisa kita lakukan, yaitu:
Add a README file atau penambahan README File pada repository baru. Ketika repository telah dibuat, GitHub secara otomatis membuatkan file Readme ke dalam repository. 
Add .gitignore atau penambahan berkas .gitignore pada repository. Ketika repository telah terbuat, file .gitignore akan tercipta sesuai dengan pilihan template.gitignore yang dipilih.
Choose a license atau penambahan berkas license pada repository. Ketika membuat repository, Anda bisa memilih lisensi untuk repository tersebut sehingga proyek yang ada di dalamnya dapat digunakan secara bebas oleh orang lain.

Selain itu, kita juga telah belajar tentang bagaimana alur kerja dari Git demi menyelesaikan pekerjaan secara konsisten dan produktif. Kita juga telah belajar tentang bagaimana memanfaatkan Git secara efektif di mana menggunakan Git memungkinkan kita untuk bekerja dengan tim secara paralel. Memahami alur kerja Git juga dapat mempermudah dalam proses pengerjaan proyek yang melibatkan tim, terlebih lagi jika skala proyek yang dikerjakan itu besar.

Lalu, kita juga telah belajar dan memahami konsep perintah dasar dari Git seperti Commit, Checkout, Reset, dan Revert beserta fungsinya yang bisa di lihat pada tabel berikut.
Perintah	Fungsi
Git Commit

Menyimpan hasil perubahan setiap file yang ada di dalam direktori kerja, baik itu file yang baru saja ditambahkan maupun perubahan pada file. Kemudian kita dapat menyisipkan pesan commit agar memudahkan dalam memahami riwayat perubahan. [Baca lebih lengkap tentang perintah Git Commit]

Git Checkout

Melakukan perpindahan dari commit satu ke commit yang dituju. Namun hanya bersifat sementara. Git Checkout juga dapat digunakan untuk berpindah dari satu cabang kerja (branch) ke cabang kerja lainnya. 

Git Reset

Mengembalikan keadaan suatu commit ke dalam keadaan sebelum terjadi perubahan sesuai dengan commit yang dituju. Namun, git reset akan menghapus beberapa riwayat commit sesudahnya. 

Git Revert

Mengembalikan keadaan suatu berkas sebelum terjadi suatu perubahan sesuai dengan tujuan commit yang dituju. Git Revert tidak akan menghilangkan riwayat commit sesudahnya. 

Kemudian kita juga membuat file readme yang berekstensi Markdown(md) untuk memberikan informasi tentang tujuan atau isi dalam repository. Biasanya berkas readme berupa file pertama yang akan dilihat oleh pengunjung repository Anda.

Ketika membuat berkas readme ada beberapa format penulisan markdown yang dirangkum pada tabel berikut.
Format	Simbol
Heading

# atau ==

Subheading

--

Italic (Cetak miring)

*

List

-

Lalu kita juga telah belajar mempraktekkan bagaimana cara membuat release file atau versi rilis untuk sebuah berkas tertentu di mana kita belajar dengan cara menggunakan fitur manajemen versi yang ada di web GitHub. Dari hasil versi rilis yang kita telah buat juga dapat diubah sewaktu waktu ataupun dihapus jika diperlukan.

Kita belajar menuliskan tag version yang baik dan benar yaitu diawali dengan menggunakan huruf v kecil untuk singkatan versi lalu diikuti tanda titik(.) dan angka versi. Jika memiliki versi yang lebih dari satu angka dapat dipisah menggunakan tanda titik(.) atau jika ada penggunaan versi nama seperti beta atau alpha bisa dipisahkan dengan tanda hubung(-). [Dapat dipelajari lebih lanjut di sini]. Berikut contoh – contoh penulisan tagversionyang baik dan benar.
V.1.0
V.1.0.0
V.3.1-alpha
V.4.2-beta


Studi Kasus Pengalaman Belajar
Berikut beberapa poin yang telah kita pelajari dalam materi Studi Kasus Pengalaman Belajar:

Untuk membuat repository baru di GitHub, Anda dapat melakukannya dengan cara menekan item tambah/plus (+) pada bagian kanan atas dan pilih New Repository.
202107132001208234699b10ebd038d9f8be90dda70514.jpeg
Terdapat beberapa kolom yang bisa Anda isi pada halaman pembuatan repository GitHub.
202107132007268dc2dc2298711e3c6f1b0f37ab1e3671.jpeg
Keterangan:
Owner : Digunakan untuk menentukan siapa pemilik repository yang akan dibuat.
Repository name : Digunakan untuk menentukan nama dari repository yang akan dibuat.
Description : Digunakan untuk memberikan penjelasan mengenai repository yang dibuat.
Public / Private : Digunakan untuk menentukan apakah repository bersifat private atau public. Jika ditetapkan sebagai public, orang lain dapat mengaksesnya. Sedangkan jika private, orang lain yang tidak memiliki akses tidak akan bisa mengakses repository tersebut.
Initialize this repository : Digunakan untuk menambahkan beberapa item yang ada sewaktu repository dibuat, seperti berkas readme, berkas .gitignore, dan lisensi.

Repository dalam GitHub mampu menyimpan berbagai jenis berkas, tetapi tak semua dapat ditampilkan dalam mode preview. Contoh berkas yang sering digunakan adalah berkas README.md karena dapat diinisialisasi sewaktu pembuatan repository.

Git Commit dapat digunakan untuk menyimpan perubahan yang dilakukan, seperti penambahan berkas atau perubahan pada isi berkas. Contohnya ketika Anda menambahkan progress belajar dalam studi kasus.

Untuk melakukan Commit di GitHub, cukup dengan melakukan beberapa hal berikut:
Melakukan perubahan.
Menuliskan pesan perubahan / commit message.
Menuliskan deskripsi perubahan / commit description.
Memilih lokasi commit, apakah langsung melanjutkan dalam cabang / branch saat ini (main) atau menggunakan cabang / branch baru.
Menekan tombol “Commit Change” untuk mengeksekusi commit.

Berkas readme dalam studi kasus menggunakan bahasa Markdown. Markdown merupakan bahasa markah (markup language) ringan yang dapat digunakan untuk menambahkan format pada dokumen teks biasa [1]. Saat ini Markdown menjadi salah satu bahasa markup yang cukup populer.

Sedangkan bahasa markah (markup language) merupakan sistem modern untuk memberikan keterangan pada dokumen dengan sintaksis yang dapat dibedakan dari kontennya. Biasanya ia menggunakan tag atau tanda tertentu untuk mendefinisikan elemen dalam dokumen, dikenal dari istilah "marking up" (memberikan penanda).

Berikut adalah beberapa format Markdown yang digunakan dalam studi kasus:
Heading
Dalam bahasa markdown, tanda pagar digunakan untuk membangun sebuah heading. Semakin banyak jumlah tanda pagar (#), maka semakin besar level heading-nya. Ketika semakin besar level heading-nya, maka teks akan menjadi lebih kecil.

Line Breaks
Anda bisa membuat baris baru dalam bahasa markdown menggunakan dua spasi atau lebih. Selain itu, Anda juga bisa menggunakan tanda atau tag <br> alias break.

Unordered List
Tanda bintang dalam bahasa markdown akan berubah menjadi daftar atau list yang tidak berurutan. Selain tanda bintang, tanda hubung (-) dan tanda tambah (+) juga akan diartikan sebagai daftar yang tidak berurutan atau unordered list.

Bold
Anda juga dapat memberikan penebalan pada teks. Anda cukup mengutip teks tersebut menggunakan dua tanda bintang (**) di awal dan di akhir. Dengan begitu, teks tersebut akan menjadi lebih tebal atau biasa disebut dengan bold.

Silakan buka tautan Markdown Guide Basic Syntax untuk melihat format lainnya.

Anda dapat melihat history perubahan (commit history) dengan mudah di GitHub. Caranya cukup ke halaman repository, kemudian menentukan branch mana yang akan dipilih, dan pilih bagian icon jam dengan teks History.

Pada halaman detail commit, Anda juga dapat melihat berbagai perubahan yang telah dilakukan baik penambahan, pengubahan, atau pengurangan.

Dengan bantuan release dari GitHub, kita dapat memublikasikan sesuatu sehingga orang lain dapat menemukannya dengan mudah. Caranya pergi ke halaman repository, kemudian fokus pada bagian kanan di sub Release. Lalu, silakan klik create a new release untuk memublikasikan project repository Anda.


Git Branches
Berikut beberapa point dalam materi Git Branch:

Branch bisa disebut juga percabangan. Kita dapat meminimalisir kesalahan dalam server atau aplikasi yang berjalan sehingga mempermudah developer untuk melakukan bug fixing, hingga pembuatan fitur baru di dalam repository.

Berikut adalah alasan dari penggunaan Git Branch:
Tanpa git branch pekerjaan akan menjadi rumit. Ketika fitur yang telah selesai masih menjadi satu dengan fitur lain dan kemudian dijalankan, maka akan terdapat banyak bug atau kesalahan karena ada pekerjaan yang tumpang tindih.
Penambahan branch baru dapat meminimalisir kesalahan pada aplikasi utama.
Git branch juga berfungsi untuk mempermudah dalam berkolaborasi dalam tim. Selain itu, membuat pekerjaan menjadi lebih teratur karena setiap pekerjaan tidak saling tumpang tindih.

Ketika pembuatan branch baru, kita memerlukan source (sumber) untuk pengembangan aplikasi, sehingga kita perlu mengambil sumbernya berdasarkan branch utama yang biasa disebut main/master.

Selain itu kita juga telah belajar bagaimana melakukan perpindahan branch atau bisa disebut juga git checkout pada GitHub. Perintah ini berfungsi untuk membuka commit tertentu secara sementara serta membuka branch. Ketika berpindah dari branch satu ke branch lainnya, history commit dari branch tersebut akan menyesuaikan.

Kemudian kita mempelajari merge, yang berarti penggabungan dua branch menjadi satu. Anda dapat menggunakan git merge untuk menggabungkan setiap branch yang dengan commit yang berbeda-beda menjadi satu kesatuan baru di dalam branch. Selain itu, git merge juga dapat digunakan sebagai penggabungan setiap fitur yang telah dikerjakan. Ketika salah satu branch tidak ada kesalahan, Anda dapat melakukan pull request untuk menggabungkannya ke branch utama.

Ketika melakukan penggabungan dua branch atau merge, kita harus teliti. Sebab, jika kita melakukan kesalahan, bisa saja kita menghapus branch secara tidak sengaja. Akibatnya kita perlu melakukan pembuatan ulang branch. Oleh karena itu, perlu kehati-hatian yang lebih pada saat melakukan merge agar branch yang telah dibuat tidak terhapus. Selain itu, ketika tidak teliti juga dapat mengakibatkan conflict atau terjadinya kesalahan. Conflict terjadi karena Anda tidak memeriksa secara seksama branch utama dan sumber branch sebelum melakukan merge.

Ketika terjadi conflict, Anda tidak perlu khawatir. Biasanya akan ada indikator ketika terjadi conflict, yakni tulisan "this branch has conflict that must be resolved". Kemudian Anda akan disuguhkan code yang menjadi penyebab conflict tersebut. Anda dapat melihat batasannya conflict dengan simbol = (sama dengan). Anda dapat mempertahankan kode/data dari ke dua branch. Setelah merasa yakin dengan kode/data yang ditulis, Anda dapat mengeklik bagian mark as resolved. Kemudian indikator conflict akan hilang. Saatnya untuk menggabungkan kedua branch dengan merge.


Kolaborasi dengan Tim
Kolaborasi adalah proses dua orang atau lebih, entitas atau organisasi yang bekerja sama untuk menyelesaikan tugas atau mencapai suatu tujuan. Sebagian besar kolaborasi membutuhkan kepemimpinan, meskipun bentuk kepemimpinan dapat bersifat sosial dalam kelompok yang terdesentralisasi dan egaliter (sederajat).

Fitur kolaborasi ini dapat Anda temukan pada GitHub dengan menambahkan akun lainnya (kolaborator) ke dalam repository yang tersimpan.

Di dalam GitHub sendiri terdapat dua cara kolaborasi bersama tim yang sering digunakan:
Repository Organisasi : Pemilik organisasi dapat menambahkan kolaborator dengan tingkat izin yang berbeda untuk berbagai repository.

Repository Pribadi : Pemilik repository dapat menambahkan kolaborator dengan akses read & write untuk satu repository.

Fork adalah proses menyalin proyek repository orang lain ke repository pribadi. Fork bertindak sebagai jembatan antara repositori asli (original repository) dan repositori salinan (fork repository). Anda dapat menawarkan perubahan yang dilakukan pada repositori salinan ke repositori asli untuk membantu membuat proyek orang lain lebih baik dengan melakukan pull request.

Squash bertujuan untuk membuat riwayat commit yang lebih ramping dalam repository. Pada dasarnya setiap commit akan membantu untuk melihat setiap perubahan yang telah dilakukan, tetapi tak semua commit selalu menjadi hal yang penting untuk disimpan dalam riwayat Git. Contohnya ketika melakukan beberapa perubahan pada formating (perubahan spasi, titik, koma). Jika Anda menggabungkan beberapa commit ini menjadi satu commit, perubahan yang dilakukan menjadi terlihat lebih jelas terlihat, serta menjadi lebih fokus pada tujuan dari commit tersebut.

Untuk melakukan squashing dalam GitHub, Anda dapat menggunakan Squash & Merge sewaktu melakukan pull request.

Network graph dalam GitHub digunakan untuk melihat berbagai alur dari riwayat commit sebuah repository.

Network Graph dalam GitHub hanya tersedia secara gratis untuk repository publik dengan akun pribadi dan akun organisasi. Sedangkan untuk repository private dapat digunakan secara berbayar melalui GitHub Pro, GitHub Team, GitHub Enterprise Cloud, dan GitHub Enterprise Server. Untuk informasi lebih lanjut, lihat " Tentang grafik repositori " dan " Produk GitHub ."

Network graph semua commit yang dilakukan akan terlihat dalam bentuk jalur history. History ini terdiri dari kumpulan titik/dot yang mewakili commit dan pull request yang telah dilakukan.

Code reviews bertujuan untuk mengomentari perubahan, menyetujui perubahan, atau meminta perubahan lebih lanjut sebelum pull request digabungkan.

Berikut beberapa aspek yang dapat digunakan sebagai acuan dalam melakukan ulasan kode/code reviews:
Kode dirancang dengan baik.
Fungsionalitasnya dapat berjalan dengan baik.
Setiap perubahan yang dilakukan masuk akal dan terlihat bagus.
Kodenya tidak lebih kompleks dari yang seharusnya.
Developer mengimplementasikan hal-hal yang diperlukan saat ini saja. Bukan menyediakan kode untuk masa depan, tetapi tidak digunakan saat ini.
Kode memiliki unit test (pengujian unit) yang sesuai.
Pengujian dirancang dengan baik.
Pengembang menggunakan nama yang jelas untuk segala penamaan.
Komentar yang ditambahkan jelas dan bermanfaat. Selain itu komentar ditujukan untuk menjelaskan kode apa yang ditulis beserta alasannya.
Kode telah didokumentasikan dengan tepat.
Kode ditulis sesuai dengan panduan (style guideline) yang telah disepakati.

Code review dilakukan ketika anggota tim/kontributor melakukan perubahan dan melakukan pull request.

Selain mempelajari teori pada modul ini terdapat latihan-latihan yang telah dilakukan diantaranya yaitu;
Latihan Berkolaborasi dengan Tim: Mengajarkan bagaimana menambahkan anggota tim di dalam repository agar dapat saling berkolaborasi. Melakukan verifikasi email setelah pengelola repository mengundang sebagai kolaborator atau salah satu anggota tim kolaborasi. Kemudian melakukan melakukan perubahan dengan membuat branch baru dan menggabungkannya ke branch utama menggunakan pull request dan merge.

Latihan Berkolaborasi pada Public Repository: Mengajarkan bagaimana menyalin repository orang/organisasi lain dan kemudian menyimpannya ke dalam repository pribadi. Lalu melakukan perubahan pada repository salinan dan dilanjutkan dengan melakukan pull request agar perubahan yang dilakukan dapat diimplementasikan ke dalam repositori asli (original repository).

Latihan Revert : Mengajarkan bagaimana mengembalikan perubahan/commit yang telah dilakukan. Salah satu keuntungan menggunakan Git revert, yakni mampu menargetkan commit pada titik yang diinginkan dalam riwayat commit.

Latihan Squashing Changes : Mengajarkan bagaimana menggabungkan atau merekap beberapa commit menjadi satu. Kemudian menggunakan fitur Squash and Merge untuk mengirim rekap commit tersebut ke dalam branch utama (base branch). Serta melihat jalur history commit dan pull request yang telah dilakukan melalui fitur Network graph.

Latihan Code Review : Mengajarkan bagaimana menggunakan fitur code review dalam GitHub, seperti memberikan ulasan kode pada permintaan pull request dari anggota tim (kontributor). Serta mengirim hasil reviews yang telah dilakukan dengan memberikan status pesan reviews seperti:
Comment : memberikan umpan balik secara langsung tanpa menyetujui perubahan atau meminta perubahan tambahan.
Approve : mengirimkan umpan balik dan menyetujui penggabungan perubahan yang diusulkan dalam pull request.  
Request changes : mengirimkan umpan balik perbaikan yang harus ditangani sebelum pull request dapat di-merge.


Studi Kasus Kolaborasi dengan Tim
GitHub memungkinkan kita mengembangkan project atau aplikasi dengan banyak orang dalam waktu yang bersamaan.

Ketika Anda memiliki akses untuk melakukan perubahan dalam sebuah repository, Anda tidak perlu melakukan forking atau penyalinan repository orang/organisasi lain ke repository pribadi. Sehingga cukup membuat branch baru untuk menampung perubahan yang akan dilakukan, kemudian lakukan Pull Request pada branch tujuan.

Lalu jika Anda tidak memiliki akses pada repository orang/organisasi lain, maka dapat mengikuti langkah-langkah berikut:
Sebagai seorang kontributor, Anda perlu melakukan forking atau menyalin repository tersebut.
Melakukan perubahan pada hasil salinan repository (forked repository) dan menyimpannya menggunakan commit.
Melakukan pull request / meminta izin kepada kolaborator untuk mengimplementasikan perubahan dilakukan.
Sebagai seorang kolaborator, mereka akan memastikan perubahan yang Anda lakukan sesuai dengan seharusnya. Jika tidak, mereka bisa memberi saran baik melalui forum diskusi atau langsung pada baris kode. Proses ini dinamakan code review.
Jika perubahan sudah sesuai, kolaborator akan menyetujui (approve) pull request yang telah Anda lakukan. Sehingga perubahan yang dilakukan sudah ada dalam repository utama.

Dengan melakukan PR, kita dapat meninjau terlebih dahulu apakah kode yang akan diimplementasikan sudah sesuai atau belum. Sehingga kita bisa menghindari terjadinya bug atau masalah. Selain itu, Anda juga bisa berdiskusi dengan rekan tim atau orang lain dalam PR tersebut.

Terdapat beberapa kolom yang bisa Anda isi pada halaman pembutan pull-request dalam GitHub.
20210713201248e6ded735f86203b95fc95f2f968e7fce.jpeg
Berikut keterangannya:
Message Merge : Digunakan untuk memberikan pesan singkat mengenai PR yang dilakukan.
Description Commit : Digunakan untuk memberikan informasi yang lebih detail mengenai PR yang dilakukan.
Reviewer : Digunakan untuk meminta lain untuk mereviu perubahan yang telah dilakukan.
Assigness : Digunakan untuk menginformasikan siapa yang memberikan tugas untuk melakukan PR.
Label : Digunakan untuk memberikan kategori pada sebuah PR, contohnya pembetulan suatu masalah (bug), penambahan fitur (enchantment), penambahan dokumentasi (documentation), atau yang lainnya.

Ketika berkolaborasi, kita bisa mengubah satu file yang sama dengan orang lain. Namun, sebelum melakukan PR Anda perlu memastikan kembali apa yang diubah tidak menimbulkan conflict. Conflict terjadi biasa ketika Anda menggabungkan branch satu ke branch lainnya terdapat masalah dalam satu baris yang sama pada suatu file.

Jika terjadi conflict, Anda perlu memilih bagian mana yang dipertahankan. Anda dapat memilih apakah mempertahankan teks/kode yang ada dalam PR terbaru, atau menggunakan teks/kode dalam repository utama.

GitHub sebagai Portofolio
Secara umum, portofolio merupakan kumpulan dokumen dan tulisan yang disusun secara rapi dan menarik. Artinya, portofolio ini berupa laporan lengkap dari suatu dokumen dan hasil karya dari aktivitas seseorang yang telah dilakukan.

Tujuan dari portofolio adalah untuk mendokumentasikan perkembangan suatu proses dalam mencapai tujuan yang telah dicapai.

CV berbeda dengan Portofolio.

CV atau curriculum vitae merupakan gambaran tertulis tentang pengalaman seseorang beserta kualifikasi lain untuk mendapatkan kesempatan kerja, sedangkan portofolio biasanya digunakan untuk membuktikan apa yang telah ditulis dalam CV.

Contohnya, dalam CV Anda menuliskan mempunyai kemampuan untuk membangun aplikasi Android. Kemampuan tersebut dibuktikan dengan portofolio, bisa dalam bentuk url aplikasi, gambar aplikasinya, atau mungkin source code jika bersifat open source.

Portofolio itu penting bagi seorang developer.

Portofolio memudahkan perekrut dalam menentukan apakah kualifikasi calon pekerja sesuai dengan jenis pekerjaan yang ditawarkan. Selain itu, ada beberapa perusahaan yang lebih mempertimbangkan daftar pencapaian daripada tingkat pendidikan seseorang.

GitHub merupakan salah satu platform atau media yang dapat digunakan untuk membangun portofolio dari seorang developer.

Berikut beberapa alasan mengapa GitHub dapat digunakan sebagai media atau platform untuk membangun portofolio:
Mudah untuk Merancangnya
GitHub mendukung Anda untuk membuat berbagai berkas dengan ekstensi apa pun, salah satunya adalah Markdown. Dengan markdown, Anda dapat membangun portofolio seciamik mungkin.

Portabilitas
Melalui GitHub, Anda dapat membuat dan menampilkan portofolio kapan dan di mana saja. Anda dapat menggunakan laptop kantor, komputer pribadi, bahkan melalui handphone Anda. Bahkan portofolio tersebut dapat dengan mudah diakses oleh orang lain. Anda cukup mengirimkan alamat GitHub-nya saja, dan orang lain dapat melihat informasinya dengan mudah. Bayangkan jika Anda menggunakan berkas pdf atau word, maka akan membutuhkan tenaga lebih untuk mengunggah dan mengunduhnya. Berikut contoh dari alamat yang bisa Anda dapatkan pada halaman profile GitHub Anda.
20210721100907862c200b0b7f951b9f9197bd91e19efc.jpeg

Berkolaborasi dengan Orang Lain
Cara terbaik untuk membuat portofolio adalah dengan meminta saran kepada teman atau rekan Anda. Oleh karena itu, ketika teman atau orang lain ingin memberikan feedback, mereka dapat melakukan pull-request dan issue pada portofolio Anda. Dengan begitu, Anda dapat melihat perubahan yang telah dilakukan dan dapat memahami dengan lebih mudah.
202107011721208172a12b1c3bbb7c1c2fb2ba113243fb.jpeg

Lebih Sedikit Biaya Manajemen
Membangun portofolio menggunakan GitHub tidak akan memakan banyak biaya dan tenaga. Sebab, Anda dapat mengelola berkas tersebut cukup dalam satu berkas. Semua history perubahan juga terlihat dengan mudah.
202107211023039ec11920126b71e31198d5ab4eecb385.png

Semua perubahan akan tersimpan dengan rapi. Mulai dari pembuatan hingga memublikasikannya ke publik.

Ketika Anda membuat repository dengan nama akun GitHub, berkas readme-nya secara otomatis akan tampil di halaman profil Anda.

Ketika membangun portofolio menggunakan GitHub, maka Anda dapat membagikan portofolio cukup menggunakan tautan akun GitHub.

Anda dapat menggunakan fitur preview untuk memastikan apa yang Anda tulis ke dalam berkas readme sesuai dengan ekspektasi.

Anda dapat meniru, mengamati, dan memodifikasi referensi portofolio yang dibangun dengan GitHub agar portofolio menjadi lebih menarik. Namun, ada baiknya tidak terpaku pada satu referensi saja.

Melalui Markdown (.md), Anda bisa membangun portofolio semenarik mungkin.


Daftar Referensi
Silakan kunjungi beberapa tauatan berikut untuk mempelajari berbagai hal lain seputar materi git degan GitHub:

Panduan Git
Mengelola Notifikasi GitHub
Git Commit
Git Checkout
Git Reset
Git Revert
Add a README file
About READMEs
Create .gitignore Files
Create Licensing a repository
Semantic Versioning 2.0.0
Managing Releases in A Repository
Creating a Pull Request
Merging a Pull Request
Gitflow Workflow
About Commits
How to Collaborate on GitHub
Setting Permissions for Adding Outside Collaborators
Forking
