Pertemuan Pertemuan 22

GitHub Projects & Quiz 2.5

Pertemuan 22 / 32
Intermediate Modul 2.5 60 menit
Pertemuan 22

GitHub Projects & Quiz 2.5

Tujuan Pembelajaran

  • Memahami GitHub Projects untuk manajemen tugas
  • Mengenal GitHub Milestones untuk target release
  • Mengevaluasi pemahaman modul 2.5 melalui quiz

Materi Inti

A. GitHub Projects

GitHub Projects adalah fitur manajemen proyek bawaan GitHub yang terintegrasi langsung dengan issues dan pull requests. Kamu bisa mengelola tugas dalam bentuk kanban board atau tabel.

Fitur utama GitHub Projects:

FiturFungsi
Board viewTampilan kanban (Todo, In Progress, Done)
Table viewTampilan spreadsheet dengan kolom custom
Custom fieldsTambah field seperti priority, sprint, size
AutomasiOtomatis pindahkan item berdasarkan event
Filter & GroupFilter dan kelompokkan berdasarkan label, assignee, dll

Cara membuat GitHub Project:

  1. Buka tab Projects di profil GitHub atau repository
  2. Klik “New project”
  3. Pilih template: Board, Table, atau Roadmap
  4. Tambahkan kolom sesuai workflow tim (contoh: Backlog, Todo, In Progress, Review, Done)
  5. Tambahkan issues dan PR ke project

Menghubungkan Issues ke Project:

  • Buka issue dan pilih project di sidebar kanan
  • Atau drag-and-drop issue ke project board
  • Issue otomatis berpindah kolom saat PR yang terkait di-merge (jika automasi aktif)

B. GitHub Milestones

Milestones mengelompokkan issues dan PR ke target release tertentu. Ini membantu melacak progress menuju versi atau deadline tertentu.

Cara menggunakan Milestones:

  1. Buka tab Issues di repository
  2. Klik Milestones lalu “New milestone”
  3. Isi nama (contoh: “v1.0.0 Release”), deskripsi, dan due date
  4. Assign issues ke milestone tersebut

Contoh struktur milestone:

Milestone: v1.0.0 Release (Due: 31 Maret 2025)
  - [x] Issue #1: Setup project structure
  - [x] Issue #2: Halaman login
  - [ ] Issue #3: Halaman dashboard
  - [ ] Issue #4: API integration
  Progress: 50% (2/4 issues closed)

C. Labels untuk Organisasi

Labels membantu mengkategorikan issues dan PR:

LabelWarnaFungsi
bugMerahLaporan bug
enhancementBiruFitur baru
documentationHijauDokumentasi
good first issueUnguCocok untuk pemula
priority: highOranyePrioritas tinggi
status: in progressKuningSedang dikerjakan

Demonstrasi Live

Membuat Project Board

  1. Buka repository di GitHub
  2. Klik tab Projects lalu “Link a project” atau buat baru
  3. Pilih template Board
  4. Buat kolom: Backlog, Todo, In Progress, Review, Done
  5. Tambahkan beberapa issues

Membuat Issues dan Milestone

# Buat issues menggunakan GitHub CLI (gh)
gh issue create --title "Setup halaman utama" --body "Buat file index.html dengan layout dasar" --label "enhancement"
gh issue create --title "Perbaiki navigasi" --body "Menu tidak responsif di mobile" --label "bug"
gh issue create --title "Tambah halaman about" --body "Halaman tentang tim dan produk" --label "enhancement"

# Buat milestone
gh api repos/:owner/:repo/milestones --method POST -f title="v1.0.0" -f description="Release pertama"

# Assign issue ke milestone (nomor milestone = 1)
gh issue edit 1 --milestone "v1.0.0"
gh issue edit 2 --milestone "v1.0.0"
gh issue edit 3 --milestone "v1.0.0"

Latihan Interaktif

Latihan: Buat Project Board Lengkap

Langkah 1: Buat repository baru atau gunakan yang sudah ada

Langkah 2: Buat minimal 5 issues:

gh issue create --title "Setup project structure" --label "enhancement"
gh issue create --title "Buat halaman login" --label "enhancement"
gh issue create --title "Fix bug responsive header" --label "bug"
gh issue create --title "Tambah dokumentasi API" --label "documentation"
gh issue create --title "Implementasi dark mode" --label "enhancement"

Langkah 3: Buat GitHub Project dengan Board view:

  • Kolom: Backlog, Todo, In Progress, Done
  • Pindahkan issues ke kolom yang sesuai

Langkah 4: Buat Milestone “v1.0.0” dan assign beberapa issues

Langkah 5: Kerjakan satu issue:

# Ambil issue dan buat branch
git switch -c feature/login-page

echo "<form><input type='email'><input type='password'><button>Login</button></form>" > login.html
git add . && git commit -m "feat: tambah halaman login

Closes #2"
git push origin feature/login-page

Buat PR dan perhatikan issue otomatis tertutup saat PR di-merge.


Preview Level 3: Advanced

Selamat, kamu sudah menyelesaikan Level 2 (Intermediate)! Di Level 3, kamu akan belajar:

  • Rebase vs Merge: Kapan menggunakan masing-masing
  • Interactive Rebase: Merapikan history commit
  • Reflog & Recovery: Menyelamatkan commit yang “hilang”
  • Cherry-pick & Bisect: Teknik advanced untuk debugging
  • Git Hooks & Submodules: Otomatisasi dan modul external
  • Resolusi Konflik Kompleks: Menangani merge conflict multi-file

Quiz Modul 2.5

Quiz ini menguji pemahaman tentang remote lanjutan, fork synchronization, dan GitHub Projects.

Passing grade: 70% (minimal 6 dari 8 benar)

Topik yang Diuji

NoTopikJumlah Soal
1Remote & Upstream2 soal
2Fork Synchronization2 soal
3Remote Tracking2 soal
4GitHub Projects & Milestones2 soal

Materi yang Perlu Dikuasai

Remote & Upstream:

  • upstream merujuk pada remote repository asli yang di-fork
  • git remote add upstream <url> untuk menambahkan remote upstream
  • origin menunjuk ke fork kamu, upstream menunjuk ke repo asli

Fork Synchronization:

  • Workflow: git fetch upstream lalu git merge upstream/main lalu git push
  • Jangan hapus fork dan fork ulang untuk sync (cara yang salah)
  • git pull --rebase membuat history linear tanpa merge commit

Remote Tracking:

  • origin/main menunjukkan posisi terakhir yang diketahui dari branch main di remote
  • Saat push ditolak karena non-fast-forward, pull dulu baru push
  • git fetch --all mengupdate semua remote tracking branches

GitHub Projects & Milestones:

  • GitHub Projects untuk mengelola tugas dalam kanban board
  • Milestones mengelompokkan issues/PR ke target release tertentu
  • Closes #N di PR otomatis menutup issue saat merge

Tugas Mandiri

  1. Buat project board di salah satu repository GitHub kamu
  2. Buat minimal 3 issues dengan label yang sesuai
  3. Buat milestone dan assign issues ke milestone tersebut
  4. Kerjakan 1 issue: buat branch, commit, push, PR, dan merge
  5. Verifikasi bahwa issue otomatis tertutup saat PR di-merge dengan Closes #N

Quiz: Review Modul 2.5

Jawab 8 pertanyaan berikut untuk menguji pemahaman kamu.

Soal 1 dari 8

"upstream" dalam konteks fork biasanya merujuk pada...