Pull Request (PR) “ adalah mekanisme kerja sama di Git yang memungkinkan pengembang memberi tahu tim bahwa perubahan siap digabungkan ke cabang utama. PR mencakup diskusi kode, pemeriksaan CI/CD otomatis, dan proses code review. Menurut GitHub Docs, 2026, setiap bulan lebih dari 150 juta Pull Request dibuat di platform ini.
Poin utama
Pull Request (PR) — adalah permintaan formal untuk memasukkan perubahan dari satu cabang ke cabang lain dalam sistem kontrol versi terdistribusi. PR adalah elemen utama pengembangan kolaboratif di platform GitHub, GitLab, dan Bitbucket, menggabungkan diskusi kode, pengujian otomatis, dan proses persetujuan perubahan.
Nama “Pull Request” mencerminkan esensi operasi: pengembang meminta (request) pemilik repositori untuk “menarik” (pull) perubahannya. Istilah ini diperkenalkan oleh GitHub pada tahun 2008 — sebelumnya mekanisme serupa ada dalam bentuk patch dan merge request (istilah GitLab). Saat ini PR adalah standar de facto untuk kerja tim dengan Git.
Menurut GitHub Octoverse, 2025, 89% proyek open-source memerlukan pembuatan PR untuk melakukan perubahan. Dalam pengembangan perusahaan, angka ini mencapai 95%. PR telah menjadi tidak hanya alat teknis, tetapi bagian dari budaya pengembangan: melalui PR terjadi transfer pengetahuan, deteksi bug, dan koordinasi keputusan arsitektur.
PR tipikal terdiri dari judul, deskripsi, daftar file yang diubah (diff), komentar peninjau, dan status pemeriksaan CI. Setiap PR terikat pada cabang sumber dan target tertentu, dan setelah digabungkan dapat dihapus secara otomatis.
Membuat PR dimulai dengan mempublikasikan cabang fitur ke repositori jarak jauh. Setelah push, pengembang membuka PR melalui antarmuka platform atau melalui CLI (gh, glab). Mari kita lihat prosesnya dengan contoh GitHub.
Langkah pertama — push cabang fitur ke repositori jarak jauh dan buat Pull Request melalui antarmuka web atau baris perintah.
# Buat dan push cabang fitur
git checkout -b feature/biometric-auth
git add src/auth/
git commit -m "feat: add biometric authentication"
git push -u origin feature/biometric-auth
# Buat PR melalui GitHub CLI
gh pr create --title "feat: add biometric authentication" \
--body "Implements fingerprint and face recognition login.
Closes #142" \
--base develop
Setelah PR dibuat, GitHub secara otomatis menjalankan pipeline CI (GitHub Actions), memeriksa adanya konflik dengan cabang target, dan mengundang peninjau. Templat deskripsi PR dapat dikonfigurasi melalui .github/PULL_REQUEST_TEMPLATE.md agar semua PR berisi bagian wajib: tujuan, perubahan, pengujian, tugas terkait.
Deskripsi PR yang berkualitas mencakup: tautan ke tugas (issue/ticket), deskripsi singkat perubahan, instruksi pengujian, dan daftar perubahan terkait. Label (bug, feature, refactoring) membantu mengkategorikan PR, dan assignee serta reviewer ditetapkan secara otomatis melalui CODEOWNERS.
# Tetapkan peninjau melalui CODEOWNERS (file di root repositori)
# Contoh .github/CODEOWNERS:
# src/auth/ @team-auth @senior-dev
# src/api/ @team-backend
# *.kt @kotlin-team
# Buat PR dengan penetapan peninjau melalui gh cli
gh pr create --reviewer "team-auth" --label "feature"
CODEOWNERS — mekanisme standar GitHub/GitLab untuk penetapan reviewer secara otomatis berdasarkan file yang diubah. Misalnya, perubahan apa pun di direktori src/auth/ secara otomatis menetapkan team-auth dan senior-dev sebagai reviewer. Ini mempercepat proses dan memastikan orang yang tepat melihat PR.
Setelah menerima komentar peninjau, pengembang melakukan perbaikan di cabang fitur yang sama dan melakukan push commit baru — PR diperbarui secara otomatis. Penting untuk tidak menulis ulang riwayat (rebase) di cabang fitur yang sudah dipublikasikan jika PR sudah terbuka, karena ini akan merusak tautan ke commit tertentu di komentar.
# Lakukan perubahan sesuai komentar peninjau
git checkout feature/biometric-auth
# perbaiki kode
git commit -m "fix: handle biometric timeout per review"
git push
# PR akan diperbarui secara otomatis
# Setelah disetujui — gabungkan PR melalui antarmuka GitHub
Code review — elemen utama Pull Request. Peninjau memeriksa perubahan dari segi kebenaran, gaya kode, keamanan, dan kesesuaian arsitektur. Review berkualitas tidak hanya mencegah bug, tetapi juga menyebarkan pengetahuan tentang basis kode di dalam tim.
Google Engineering Practices (2025) merekomendasikan prinsip code review berikut: peninjau harus memahami konteks perubahan, memberikan rekomendasi spesifik daripada komentar umum, memisahkan komentar teknis dan gaya. Waktu review tidak boleh melebihi 24 jam sejak PR dibuat.
Untuk pengembangan aplikasi mobile, code review mencakup pemeriksaan spesifik: kompatibilitas dengan targetSdk, kebenaran penanganan lifecycle (Android) / view lifecycle (iOS), tidak adanya kebocoran memori (LeakCanary, Instruments), dukungan tema gelap dan lokalisasi. Pemeriksaan ini dapat diotomatisasi melalui linter dan Detekt/ktlint.
Platform PR mendukung tiga jenis komentar: umum (untuk seluruh PR), baris (untuk baris kode tertentu), dan saran (suggestions dengan kode pengganti). Saran memungkinkan penerapan perubahan dengan satu klik, yang mempercepat proses dan mengurangi jumlah iterasi.
Setelah semua komentar diselesaikan dan pemeriksaan CI lulus, peninjau mengirim persetujuan (Approved). PR dapat digabungkan. GitHub dan GitLab mendukung aturan perlindungan cabang (branch protection rules): jumlah persetujuan wajib, pemeriksaan CI wajib, larangan push ke main tanpa PR. Untuk proyek mobile, branch protection juga mencakup pemeriksaan build: PR tidak dapat digabungkan jika aplikasi tidak terbangun (gradle build failed / xcodebuild failed).
Konflik merge di Pull Request adalah situasi normal dalam kerja tim yang aktif. Platform menawarkan penyelesaian konflik melalui antarmuka web (untuk konflik sederhana) atau merekomendasikan penyelesaian lokal. GitHub Actions secara otomatis memeriksa kemampuan penggabungan setiap push ke cabang fitur dan menandai PR sebagai conflict jika penggabungan tidak memungkinkan.
Pull Request yang efektif mempercepat code review dan mengurangi jumlah bug. Penelitian SmartBear (2025) menunjukkan bahwa PR hingga 200 baris kode menerima 2 kali lebih banyak komentar bermakna daripada PR dengan lebih dari 1000 baris, dan waktu review berkurang 3 kali lipat.
Praktik tambahan: jangan buat PR Jumat malam (tidak ada yang akan review hingga Senin), minta review dari 1-2 orang (lebih banyak memperlambat proses tanpa meningkatkan kualitas), gunakan squash merge untuk mengompresi riwayat sebelum penggabungan. Untuk proyek mobile, disarankan juga menambahkan tautan ke build pengujian (Firebase App Distribution / TestFlight) di deskripsi PR agar peninjau dapat memeriksa perubahan di aplikasi yang berfungsi.
Platform utama untuk bekerja dengan Pull Request adalah GitHub, GitLab, dan Bitbucket. Meskipun konsepnya sama, masing-masing memiliki fitur yang perlu dipertimbangkan saat memilih alat untuk tim.
| Karakteristik | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| Nama | Pull Request | Merge Request | Pull Request |
| CI/CD | GitHub Actions | GitLab CI/CD | Bitbucket Pipelines |
| Code owners | CODEOWNERS | CODEOWNERS | CODEOWNERS |
| Auto-merge | Ya | Ya | Ya |
| Squash merge | Ya | Ya | Ya |
| Keistimewaan | Komunitas terbesar | Self-hosted + CI/CD | Integrasi Jira |
GitHub — platform paling populer dengan komunitas terbesar, Actions untuk CI/CD dan ekosistem aplikasi yang luas (GitHub Marketplace). GitLab menonjol dengan CI/CD bawaan dan kemungkinan penerapan self-hosted penuh. Bitbucket terintegrasi erat dengan Jira dan ekosistem Atlassian, populer di lingkungan perusahaan.
Untuk pengembangan aplikasi mobile, pilihan platform sering ditentukan oleh kemampuan CI/CD: GitHub Actions mendukung runner macOS untuk membangun iOS, GitLab memiliki runner bawaan untuk iOS/Android, Bitbucket terintegrasi baik dengan Firebase Test Lab. Terlepas dari platform, proses PR tetap sama: cabang → review → CI → merge.
Pertanyaan yang Sering Diajukan
Hanya namanya. GitHub menggunakan istilah Pull Request, GitLab menggunakan Merge Request (MR). Fungsionalitasnya identik: permintaan penggabungan perubahan dengan diskusi, review, dan pemeriksaan CI. Bitbucket, seperti GitHub, menggunakan Pull Request.
Optimal — 1-2. Satu peninjau memeriksa logika dan arsitektur, yang kedua — keamanan atau area spesifik (UI, basis data). Lebih banyak peninjau memperlambat proses tanpa peningkatan kualitas yang signifikan.
Secara teknis ya, jika aturan perlindungan cabang tidak memerlukan persetujuan. Namun ini praktik yang buruk: bahkan pengembang berpengalaman pun melewatkan bug. Pengecualian — hotfix dengan post-review, perubahan sepele (kesalahan ketik, versi dependensi).
Selesaikan konflik melalui merge atau rebase. GitHub dan GitLab menawarkan antarmuka web untuk menyelesaikan konflik sederhana. Untuk konflik kompleks — jalankan git merge target-branch secara lokal, selesaikan konflik, dan push perubahan.
Ya, ini praktik terbaik. GitHub dan GitLab menawarkan penghapusan cabang otomatis setelah merge. Penghapusan mencegah kekacauan daftar cabang dan memastikan pengembang tidak secara tidak sengaja bekerja di cabang yang sudah digabungkan.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga