Proyek 03 melatih dua meja yang bertukar perubahan lewat satu remote bersama — dan bekerja karena kedua kontributor dipercaya mendorong langsung. Asumsi itu runtuh begitu proyek tumbuh: kontributor datang dari luar tim, branch utama menjadi milik banyak orang, dan setiap perubahan perlu ditimbang orang lain sebelum mendarat. Proyek ini melatih gerbang penimbangnya secara utuh. Kita menjalankan satu siklus code review dengan dua peran — Siti Rahma sebagai kontributor, Budi Santoso sebagai reviewer — pada satu fitur nyata, seluruhnya di mesin lokal: dua repositori bare meniru sisi server platform, dua clone menjadi meja kedua peran, tanpa akun dan tanpa jaringan.

Apa yang Kita Bangun #

Panggungnya adalah proyek catatan milik Budi — repositori kecil berisi daftar catatan pribadi, dirintis dengan README.md, sebuah checklist review, dan kerangka fitur di src/feature.txt. Fitur yang diusulkan Siti: pencarian catatan. Siklusnya lengkap dari kursi kedua peran secara bergantian:

  • Siti menyiapkan fork (salinan sisi server), branch review/pencarian, dan tiga commit — kerangka, implementasi, hasil uji;
  • implementasi itu sengaja menyimpan satu kelemahan: fungsi cari menerima parameter kata_kunci tetapi mengabaikannya — lulus uji pribadi Siti, tetapi baru terlihat dari kursi reviewer;
  • Siti merapikan tiga commit menjadi dua commit bersih, menulis deskripsi pull request, lalu mendorong branch ke fork-nya;
  • Budi meninjau dengan checklist, menemukan kelemahan itu lewat git diff, dan memutuskan request changes;
  • Siti menindaklanjuti dengan satu commit fix:, Budi me-review ulang dan approve, lalu menggabungkan dengan merge --no-ff bergaya platform.

Isi akhir src/feature.txt yang kita tuju:

text
Fitur Pencarian Catatan
========================

## Data Catatan

- catatan 1: belajar Git setiap pagi
- catatan 2: resep rendang keluarga
- catatan 3: daftar belanja mingguan

## Fungsi Pencarian

cari(kata_kunci):
    cocok = catatan yang memuat kata_kunci
    kembalikan cocok

## Hasil Uji

cari("belanja") → catatan 3: daftar belanja mingguan
cari("rendang") → catatan 2: resep rendang keluarga
cari("git")     → catatan 1: belajar Git setiap pagi

Riwayat akhir di upstream memuat lima commit: satu rintisan milik Budi, dua commit fitur dan satu commit perbaikan milik Siti, semuanya dikurung satu gelembung merge berpesan Merge pull request #8 from siti/review/pencarian — bentuk yang persis dihasilkan tombol merge platform sungguhan.

Peta Empat Bagian #

BagianFokusBekal utamaPerkiraan waktu
Bagian 1: Membuat Fork dan Branchsimulasi fork tiga pihak, branch review/pencarian, tiga commit implementasiFork dan Upstream , git switch15 menit
Bagian 2: Menyiapkan Pull Requestfixup 3 commit menjadi 2, deskripsi PR, push ke fork, meja BudiInteractive Rebase , Menggabungkan Commit , Pull Request20 menit
Bagian 3: Melakukan Code Reviewmembaca diff, checklist review, temuan tertulis, request changesCode Review , Fork dan Pull Request20 menit
Bagian 4: Menindaklanjuti Feedbackcommit fix:, re-review, approve, merge --no-ff, menutup siklusConventional Commits , git merge25 menit

Total waktu pengerjaan sekitar 60–90 menit. Setiap bagian berdiri di atas keadaan akhir bagian sebelumnya — fork, branch, dan PR adalah satu cerita yang utuh — jadi kerjakan berurutan dari Bagian 1.

Prasyarat #

Materi berikut perlu dikuasai sebelum mulai; setiap konsep dipakai tanpa dijelaskan ulang di sini:

Alat yang dipakai adalah Git 2.23 ke atas; seluruh sesi diuji nyata pada Git 2.47.3. Tidak diperlukan akun platform apa pun — semua yang biasa terjadi di server GitHub/GitLab kita tiru dengan repositori bare lokal.

Struktur Proyek dan Transkrip #

Sandbox kita berisi empat repositori yang memainkan empat peran:

text
proyek-04/
├── upstream-catatan.git/   (bare — repository asal milik Budi)
├── fork-siti.git/          (bare — fork Siti, salinan sisi server)
├── siti/                   (clone kerja Siti: origin + upstream)
└── budi/                   (clone review Budi: origin + fork)

Berkas README.md, src/feature.txt, dan docs/review-checklist.md yang menyertai halaman proyek ini memuat kondisi akhir repository upstream — bandingkan isinya dengan hasil kerja kita setelah Bagian 4 selesai.

Sudut mana pun kita mulai, siklus review selalu bergerak satu arah: pekerjaan naik dari meja kontributor ke fork, diajukan ke upstream, ditimbang di meja reviewer, lalu menempuh jalan pulang sebagai feedback. Mari berdiri di kursi pertama: Bagian 1: Membuat Fork dan Branch .