BAB 04
Estimasi Waktu: 35-45 menit Prasyarat: 01-ai-assisted-coding.md
Materi ini membahas penggunaan AI untuk code review dan refactoring. AI bisa menjadi βreviewer pertamaβ yang cepat sebelum code masuk ke human review, dan bisa membantu mengidentifikasi kode yang perlu di-refactor beserta strategi perbaikannya.
Setelah mempelajari materi ini, kamu akan mampu:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CODE REVIEW PROCESS DENGAN AI β
β β
β Developer writes code β
β β β
β βΌ β
β AI REVIEW (cepat, comprehensive) β
β - Security issues β
β - Best practices β
β - Potential bugs β
β - Performance β
β β β
β βΌ β
β Developer fixes AI findings β
β β β
β βΌ β
β HUMAN REVIEW (context, design, business logic) β
β - Architecture decisions β
β - Business logic correctness β
β - Team conventions β
β β β
β βΌ β
β MERGE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Review kode berikut secara menyeluruh:
```[bahasa]
[paste kode]
Review dari aspek berikut:
BUGS & CORRECTNESS
SECURITY
PERFORMANCE
MAINTAINABILITY
BEST PRACTICES
Untuk setiap issue:
### Template: Security-Focused Review
Review kode ini SECARA KHUSUS untuk security vulnerabilities:
[kode]
Framework: [misal: Express.js, Django, Spring Boot]
Periksa OWASP Top 10:
Untuk setiap vulnerability yang ditemukan:
### Template: Performance Review
Analisis performa kode berikut:
[kode]
Context:
Analisis:
Berikan:
---
## 3. Refactoring dengan AI
### Kapan Perlu Refactoring?
TANDA KODE PERLU REFACTORING: βββ Fungsi terlalu panjang (> 20-30 baris) βββ Duplikasi kode (copy-paste di banyak tempat) βββ Nama yang tidak deskriptif βββ Komentar yang menjelaskan WHAT, bukan WHY βββ Nested conditionals yang dalam (> 3 level) βββ God class/function (melakukan terlalu banyak hal) βββ Magic numbers tanpa konstanta βββ Tight coupling antar komponen
### Template: Refactoring Request
Refactor kode berikut untuk meningkatkan readability dan maintainability:
[kode asli]
Tujuan refactoring:
Constraints:
Berikan:
### Template: Design Pattern Application
Kode berikut menggunakan pendekatan prosedural yang sulit di-maintain:
[kode]
Identifikasi design pattern yang cocok dan refactor:
---
## 4. Teknik Refactoring dengan AI
### Teknik 1: Step-by-Step Refactoring
Jangan minta AI refactor semua sekaligus. Lakukan bertahap:
Prompt 1: βIdentifikasi 3 masalah terbesar di kode ini dan urutkan berdasarkan dampak.β
Prompt 2: βRefactor masalah pertama saja. Jelaskan perubahan dan pastikan behavior tidak berubah.β
Prompt 3: βSekarang refactor masalah kedua. Pastikan tidak mengganggu perbaikan pertama.β
dst.
### Teknik 2: Comparison Review
βSaya ingin membandingkan dua pendekatan untuk masalah yang sama:
Pendekatan A:
[kode A]
Pendekatan B:
[kode B]
Bandingkan dari:
Rekomendasikan mana yang lebih baik dan mengapa.β
### Teknik 3: Legacy Code Modernization
Kode berikut adalah legacy code yang perlu di-modernisasi:
[kode lama]
Target: [misal: migrasi dari JavaScript ke TypeScript, atau dari callback ke async/await, atau dari class component ke hooks]
Rencanakan migrasi:
---
## 5. Keterbatasan AI dalam Code Review
### AI Tidak Bisa:
- Memahami business context penuh
- Menilai apakah kode memenuhi requirement bisnis
- Memahami konvensi tim yang tidak tertulis
- Menjalankan kode dan melihat performa nyata
- Memahami dependencies di seluruh codebase
- Menilai UX impact dari perubahan kode
### Best Practice: AI + Human Review
AI REVIEW: HUMAN REVIEW:
AI cepat tapi superficial Human lambat tapi contextual β β ββββββββββββ COMPLEMENTARY ββββββββββββββ
---
## Latihan (~15 menit)
### Pilihan A: Review Kode Sendiri
Ambil kode yang pernah kamu tulis dan gunakan template Comprehensive Review. Evaluasi temuan AI - ada yang valid? Ada yang terlewat?
### Pilihan B: Refactoring Challenge
Cari kode yang perlu di-refactor (bisa dari internet atau projectmu). Gunakan AI untuk merencanakan dan mengeksekusi refactoring bertahap.
### Pilihan C: Security Audit
Ambil kode yang menangani user input dan gunakan template Security-Focused Review. Implement perbaikan yang direkomendasikan.
---
## Poin-Poin Utama
1. **AI adalah reviewer pertama** yang cepat dan comprehensive, bukan pengganti human review
2. **Review dari banyak aspek**: bugs, security, performance, maintainability, best practices
3. **Refactoring bertahap** lebih aman daripada big-bang refactor
4. **Selalu pastikan behavior tidak berubah** setelah refactoring
5. **Security review** sangat penting - AI bisa menemukan vulnerabilities yang terlewat
6. **AI + Human review** adalah kombinasi terbaik - masing-masing melengkapi kekurangan
7. **Kamu tetap bertanggung jawab** atas kode yang di-commit
---
## Informasi Materi
- **Lisensi:** CC BY-NC-SA 4.0