Software Engineering

Code Review: Panduan Lengkap untuk Developer

GRATIS

Panduan lengkap code review untuk developer β€” best practices, tools, etika, dan cara melakukan review yang konstruktif untuk meningkatkan kualitas kode tim

1. Pengenalan: Apa Itu Code Review?

Code review adalah proses di mana seorang atau beberapa developer meninjau kode yang ditulis oleh developer lain sebelum kode tersebut di-merge ke codebase utama. Ini adalah salah satu praktik terpenting dalam software engineering modern.

Secara sederhana, code review bisa diibaratkan seperti proofreading pada tulisan. Sebelum sebuah artikel diterbitkan, ada editor yang memeriksa tata bahasa, struktur kalimat, dan konsistensi. Demikian pula dengan kode β€” sebelum masuk ke production, ada developer lain yang memeriksa kualitas, keamanan, dan konsistensinya.

Diagram: Workflow Code Review
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    WORKFLOW CODE REVIEW                         β”‚
β”‚                                                                β”‚
β”‚  Developer A         GitHub/GitLab        Developer B          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
β”‚  β”‚  Write   │───────▢│  Pull    │───────▢│  Review  β”‚         β”‚
β”‚  β”‚  Code    β”‚  Push   β”‚  Request β”‚ Notify β”‚  Code    β”‚         β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜         β”‚
β”‚       β–²                                       β”‚               β”‚
β”‚       β”‚                                       β–Ό               β”‚
β”‚       β”‚                                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
β”‚       β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚ Approve / β”‚        β”‚
β”‚       │◀─────────────│  Merge   │◀───────│ Request   β”‚        β”‚
β”‚       β”‚   Update      β”‚  to Main β”‚        β”‚ Changes   β”‚        β”‚
β”‚       β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
β”‚                                                                β”‚
β”‚  Proses iteratif sampai reviewer APPROVE                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Code review biasanya dilakukan melalui Pull Request (PR) di GitHub atau Merge Request (MR) di GitLab. Ketika seorang developer selesai mengerjakan fitur atau fix bug, mereka membuat PR yang berisi perubahan kode yang sudah dibuat. Developer lain (reviewer) kemudian memeriksa perubahan tersebut, memberikan feedback, dan akhirnya approve atau meminta perubahan.

Ada dua tipe utama code review:

Tipe Deskripsi Kapan Digunakan
Pre-merge ReviewReview sebelum kode di-merge ke main branchPaling umum, standar di sebagian besar perusahaan
Post-merge ReviewReview setelah kode masuk ke main branchDigunakan di beberapa startup yang mengutamakan kecepatan
Pair ReviewReview dilakukan bersama-sama secara real-timeUntuk perubahan besar atau kompleks
Tool-assisted ReviewDibantu oleh tool otomatis (linter, CI)Selalu β€” sebagai filter pertama sebelum review manusia

2. Mengapa Code Review Penting?

Code review bukan sekadar formalitas β€” ini adalah investasi yang memberikan dampak nyata pada kualitas software dan pertumbuhan tim. Berikut alasan utama mengapa code review sangat penting:

🎯 1. Meningkatkan Kualitas Kode

Code review membantu menemukan bug, edge cases, dan potensi masalah yang mungkin terlewat oleh penulis kode. Studi dari Microsoft Research menunjukkan bahwa code review bisa menangkap 60-90% defect sebelum kode sampai ke production.

🧠 2. Knowledge Sharing

Code review adalah cara terbaik untuk menyebarluaskan pengetahuan di tim. Developer yang mereview akan memahami bagian kode yang belum pernah mereka kerjakan, sementara developer yang di-review akan belajar best practices dari reviewer.

πŸ“ 3. Konsistensi Kode

Dengan code review, tim bisa memastikan bahwa kode yang ditulis oleh semua developer mengikuti standar dan konvensi yang sama β€” mulai dari naming convention, arsitektur, hingga pattern yang digunakan.

πŸ›‘οΈ 4. Keamanan (Security)

Reviewer bisa menemukan potensi security vulnerability seperti SQL injection, XSS, CSRF, atau hardcoded secret yang mungkin tidak disadari oleh penulis kode.

πŸ‘₯ 5. Mentorship & Pertumbuhan Tim

Code review adalah mekanisme mentorship yang sangat efektif. Senior developer bisa membimbing junior developer melalui feedback yang spesifik dan actionable. Junior developer juga bisa mereview kode senior β€” ini membantu mereka belajar dan memberikan perspektif baru.

Diagram: Manfaat Code Review
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  MANFAAT CODE REVIEW                            β”‚
β”‚                                                                β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  β”‚   KUALITAS   β”‚  β”‚  KNOWLEDGE   β”‚  β”‚  SECURITY    β”‚        β”‚
β”‚  β”‚    KODE      β”‚  β”‚   SHARING    β”‚  β”‚              β”‚        β”‚
β”‚  β”‚              β”‚  β”‚              β”‚  β”‚              β”‚        β”‚
β”‚  β”‚ Bug ↓ 60-90% β”‚  β”‚ Semua orang  β”‚  β”‚ Vulnerabilityβ”‚        β”‚
β”‚  β”‚ Tech debt ↓  β”‚  β”‚ paham semua  β”‚  β”‚ terdeteksi   β”‚        β”‚
β”‚  β”‚ Clean code ↑ β”‚  β”‚ bagian kode  β”‚  β”‚ lebih awal   β”‚        β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚         β”‚                 β”‚                 β”‚                 β”‚
β”‚         β–Ό                 β–Ό                 β–Ό                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚              SOFTWARE YANG LEBIH BAIK                    β”‚  β”‚
β”‚  β”‚         Tim yang lebih kuat & saling terhubung          β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
πŸ’‘ Angka Penting

Menurut riset "Best Kept Secrets of Peer Code Review" oleh SmartBear: ukuran PR yang ideal adalah 200-400 baris kode. Di atas 400 baris, kemampuan reviewer untuk menemukan defect menurun drastis. Jadi, buatlah PR yang kecil dan focused!

3. Best Practices Code Review

Berikut best practices yang harus diikuti baik oleh reviewer maupun penulis kode (author):

Untuk Penulis Kode (Author)

Praktik Penjelasan Tips
Buat PR kecilPR yang terlalu besar sulit di-review dengan baikMaksimal 200-400 baris per PR
Tulis deskripsi yang jelasJelaskan apa yang diubah dan MENGAPAGunakan template PR yang konsisten
Self-review duluPeriksa kode sendiri sebelum meminta reviewBaca diff di GitHub, cek console.log yang tertinggal
Pisahkan PRSatu PR = satu tujuan (feature/fix/refactor)Jangan campur refactor dengan fitur baru
Sertakan konteksTambahkan link ke issue, screenshot, atau video demoReviewer harus bisa memahami tanpa perlu bertanya
Commit message yang baikGunakan conventional commitsfeat:, fix:, refactor:, docs:, test:
CI harus hijauPastikan semua test pass sebelum request reviewSetup CI pipeline yang otomatis

Untuk Reviewer

Praktik Penjelasan Tips
Review dalam 24 jamJangan biarkan PR terlalu lama tanpa reviewBlokir 30 menit per hari untuk review
Fokus pada hal pentingPrioritaskan: benarkah logikanya? Ada bug?Jangan debat hal kosmetik β€” gunakan linter
Berikan feedback konstruktifJelaskan MENGAPA sesuatu perlu diubahGunakan "Bagaimana kalau..." bukan "Kamu salah"
Bedakan severityTandai komentar: blocking vs suggestion vs nitpickGunakan prefix: [blocking], [suggestion], [nit]
Beri pujianJika ada kode yang bagus, katakan!"Nice approach!" atau "Clean solution πŸ‘"
Ask questionsTanya daripada asumsi β€” bisa jadi ada alasan tertentu"Mengapa memilih approach ini?" bukan "Ini salah"
Review kode, bukan orangFokus pada kode, bukan kemampuan penulisnyaHindari: "Kamu selalu begini" β€” Ganti: "Kode ini bisa..."

Prinsip Review yang Baik

πŸ’‘ Prinsip Utama
  • Be kind: Selalu sopan dan hormati penulis kode
  • Be specific: Tunjukkan baris kode yang dimaksud, berikan contoh alternatif
  • Be humble: Mungkin kamu yang salah β€” terbuka untuk diskusi
  • Be timely: Jangan tunda review β€” developer lain menunggu
  • Be educational: Jelaskan alasan di balik setiap saran

4. Tools Code Review

Berbagai tools dapat membantu mempercepat dan meningkatkan kualitas code review:

Platform Code Review

Platform Fitur Utama Best For Harga
GitHub Pull RequestsInline comments, review threads, suggested changesOpen source & startupGratis - $21/user/bulan
GitLab Merge RequestsInline comments, approval rules, diff viewEnterprise, self-hostedGratis - $99/user/bulan
Bitbucket PRsInline comments, Jira integrationTim yang pakai JiraGratis - $6/user/bulan
GerritGranular review per-commit, voting systemLarge-scale projectsGratis (open source)
PhabricatorReview workflow yang fleksibelCustom workflowGratis (open source)

Automated Tools (Linting & Analysis)

Tool Fungsi Bahasa
ESLintJavaScript/TypeScript lintingJS/TS
PrettierCode formatting otomatisMulti-bahasa
SonarQubeStatic analysis, code smells, security issuesMulti-bahasa
Codecov / CoverallsCode coverage trackingMulti-bahasa
Dependabot / RenovateDependency updates & security alertsMulti-bahasa
GitHub ActionsCI/CD pipeline untuk automate checksMulti-bahasa
ReviewBot / PullRequestAI-assisted code reviewMulti-bahasa
Husky + lint-stagedPre-commit hooks untuk auto-lint sebelum pushJS/TS

AI-Powered Code Review

Tahun 2026, AI-powered code review semakin populer. Tools berikut bisa membantu mengotomatiskan sebagian proses review:

AI Tool Kemampuan Keterbatasan
GitHub CopilotSuggest code changes, explain codeTidak bisa memahami konteks bisnis
CodeRabbitAutomated PR review, summaries, suggestionsPerlu validasi manusia
Amazon CodeGuruPerformance & security recommendationsHanya untuk Java dan Python
Sonar AIAI-enhanced static analysisFalse positive masih ada
⚠️ AI Bukan Pengganti Reviewer

AI bisa membantu menemukan bug teknis dan pola yang berulang, tapi tidak bisa menggantikan manusia untuk memahami konteks bisnis, arsitektur sistem, dan kebutuhan pengguna. Gunakan AI sebagai pelengkap, bukan pengganti code review oleh manusia.

5. Etika & Komunikasi dalam Review

Code review melibatkan interaksi antar manusia, sehingga etika dan komunikasi sangat penting. Review yang dilakukan dengan buruk bisa merusak morale tim dan memicu konflik.

βœ… Do's (Yang Harus Dilakukan)

Praktik Contoh
Gunakan kata yang membangun"Bagaimana kalau kita tambahkan error handling di sini?"
Jelaskan alasan"Kita bisa pakai Map karena lookup-nya O(1), lebih cepat dari Array.find()"
Berikan alternatif"Bisa juga dengan cara X β€” lebih mudah dibaca"
Tandai tingkat kepentingan"[blocking] Ini menyebabkan crash" vs "[nit] Spasi di sini"
Apuji kode yang bagus"Clean abstractions! Suka cara kamu handle edge case ini"
Tanya, jangan asumsi"Apakah ada alasan memilih pendekatan ini?"
Gunakan emoji untuk toneπŸ‘ = approve, πŸ”§ = suggestion, ❓ = question

❌ Don'ts (Yang Harus Dihindari)

Kesalahan Mengapa Berbahaya Alternatif yang Baik
"Ini salah"Menyerang pribadi, defensif"Ini bisa menyebabkan X. Bagaimana kalau..."
"Siapa yang nulis begini?"Merendahkan, mempermalukanKomentar di kode tanpa menyebut orang
Review dengan marah/emosiFeedback emosional tidak produktifTunda review jika sedang mood buruk
Bikin 50+ komentar sekaligusOverwhelming, terasa seperti seranganFokus pada 5-10 hal terpenting
Bikin aturan baru di reviewStandar harus disepakati tim, bukan individuBahas di retro, bukan di PR review
Mengabaikan PR selama berhari-hariMemblokir developer lainBlokir waktu review harian
LGTM tanpa benar-benar bacaTidak ada nilainya, bahayaTidak sempat? Bilang "Will review tomorrow"

Contoh Review yang Baik vs Buruk

Diagram: Review Style Comparison
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              CONTOH REVIEW BURUK vs BAIK                        β”‚
β”‚                                                                β”‚
β”‚  ❌ REVIEW BURUK:                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ "Kenapa pakai var? Harusnya pakai const. Ini basic banget"β”‚ β”‚
β”‚  β”‚ "Ini bisa crash kalau data null"                         β”‚  β”‚
β”‚  β”‚ "Rewrite aja"                                            β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                β”‚
β”‚  βœ… REVIEW BAIK:                                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ "[nit] Kita bisa ganti 'var' dengan 'const' di sini     β”‚  β”‚
β”‚  β”‚  karena nilainya tidak berubah setelah assignment"       β”‚  β”‚
β”‚  β”‚                                                          β”‚  β”‚
β”‚  β”‚ "[blocking] Kalau 'data' null, ini akan crash.           β”‚  β”‚
β”‚  β”‚  Bagaimana kalau tambahkan guard clause:                 β”‚  β”‚
β”‚  β”‚  if (!data) return defaultValue;"                        β”‚  β”‚
β”‚  β”‚                                                          β”‚  β”‚
β”‚  β”‚ "[suggestion] Overall approach-nya bagus! Mungkin bisa   β”‚  β”‚
β”‚  β”‚  dipertimbangkan untuk extract ke helper function agar   β”‚  β”‚
β”‚  β”‚  bisa di-reuse di module lain?"                          β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                β”‚
β”‚  Perbedaan BESAR dalam dampak, tapi informasi yang SAMA        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

6. Workflow Code Review yang Efektif

Berikut workflow code review yang terstruktur dan bisa diterapkan di tim mana pun:

Langkah 1: Persiapan dari Author

Langkah 2: Proses Review

Langkah 3: Diskusi & Iterasi

Langkah 4: Merge

Diagram: Timeline Code Review
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                TIMELINE CODE REVIEW IDEAL                       β”‚
β”‚                                                                β”‚
β”‚  Day 0                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                  β”‚
β”‚  β”‚ Author:  β”‚ Self-review + push + open PR                     β”‚
β”‚  β”‚ Write    β”‚ + description yang jelas                          β”‚
β”‚  β”‚ Code     β”‚                                                    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                  β”‚
β”‚                                                                β”‚
β”‚  Day 0-1                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                  β”‚
β”‚  β”‚ Reviewer:β”‚ Baca PR description                              β”‚
β”‚  β”‚ Review   β”‚ Review kode + test                               β”‚
β”‚  β”‚          β”‚ Berikan komentar + approve/changes               β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                  β”‚
β”‚                                                                β”‚
β”‚  Day 1-2                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                  β”‚
β”‚  β”‚ Author:  β”‚ Respon komentar                                  β”‚
β”‚  β”‚ Update   β”‚ Fix issues + push                                β”‚
β”‚  β”‚          β”‚ Re-request review                                 β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                  β”‚
β”‚                                                                β”‚
β”‚  Day 2                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                  β”‚
β”‚  β”‚ Reviewer:β”‚ Cek fix + APPROVE                                β”‚
β”‚  β”‚ Approve  β”‚                                                    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                  β”‚
β”‚                                                                β”‚
β”‚  Day 2                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                  β”‚
β”‚  β”‚ Author:  β”‚ MERGE to main                                    β”‚
β”‚  β”‚ Merge    β”‚ Delete branch                                      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                  β”‚
β”‚                                                                β”‚
β”‚  Total: 1-2 hari untuk PR yang wajar (200-400 baris)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

7. Checklist Code Review

Gunakan checklist berikut saat melakukan code review untuk memastikan semua aspek penting diperiksa:

πŸ“‹ Kategori: Correctness (Kebenaran)

# Item Cara Periksa
1Logika sesuai dengan requirement?Baca PR description + issue/ ticket
2Edge cases ditangani?null, undefined, empty array, zero, negative
3Error handling memadai?try-catch, error boundary, fallback UI
4Tidak ada bug yang terlihat?Trace alur logika secara manual
5Test yang relevan ada dan pass?Cek CI/CD, review test file

πŸ“‹ Kategori: Code Quality (Kualitas Kode)

# Item Indikator
6Kode mudah dibaca?Nama variabel/fungsi deskriptif, tidak terlalu nested
7Tidak ada duplikasi?DRY principle β€” extract ke fungsi/helper
8Fungsi/component cukup kecil?Satu fungsi = satu tanggung jawab (SRP)
9Konsisten dengan kodebase yang ada?Pattern, naming, struktur folder
10Tidak ada dead code atau console.log?Cek comment, unused variable

πŸ“‹ Kategori: Security (Keamanan)

# Item Risiko
11Tidak ada hardcoded secret/API key?Data breach
12Input validation ada?Injection attack
13Output di-escape/sanitize?XSS vulnerability
14Auth/authorization benar?Akses tidak sah
15Tidak ada sensitive data di log?Data leakage

πŸ“‹ Kategori: Performance (Performa)

# Item Solusi
16Tidak ada N+1 query?Batch fetching, eager loading
17Tidak ada unnecessary re-render?React.memo, useMemo, useCallback
18Asset di-optimize?Image compression, lazy loading
19Bundle size wajar?Cek import, tree shaking
20Tidak ada memory leak?Cleanup useEffect, close connection
πŸ’‘ Custom Checklist

Setiap tim sebaiknya memiliki checklist sendiri yang disesuaikan dengan kebutuhan proyek. Tambahkan item spesifik seperti "migrasi database sudah dibuat?" atau "feature flag sudah ditambahkan?". Simpan checklist di repo (sebagai file markdown) agar semua orang bisa mengaksesnya.

8. Quiz: Uji Pemahamanmu!

Setelah membaca panduan code review, jawablah 5 pertanyaan berikut:

Pertanyaan 1: Berapa ukuran PR yang ideal untuk code review?

a) 10-50 baris saja
b) 200-400 baris kode
c) 1000+ baris agar efisien
d) Tidak ada batasan ukuran PR

Pertanyaan 2: Apa yang HARUS dilakukan reviewer dalam waktu 24 jam?

a) Merge semua PR yang masuk
b) Memberikan review pada PR yang assigned
c) Menulis 50 komentar di PR
d) Approve semua PR tanpa membaca

Pertanyaan 3: Apa prefix yang tepat untuk menandai komentar blocking?

a) [URGENT]
b) [blocking]
c) [must-fix]
d) [important]

Pertanyaan 4: Apa yang BUKAN termasuk best practice bagi penulis kode (author)?

a) Self-review sebelum minta review
b) Membuat PR kecil dan focused
c) Mengirim PR dengan 2000+ baris kode sekaligus
d) Menulis deskripsi PR yang jelas

Pertanyaan 5: Mengapa "LGTM" tanpa membaca kode sangat berbahaya?

a) Karena melanggar kebijakan perusahaan
b) Karena tidak memberikan jaminan kualitas dan bug bisa lolos ke production
c) Karena LGTM bukan bahasa yang benar
d) Karena tidak ada masalah jika CI pass
πŸ” Zoom
100%
🎨 Tema