09 — Pustaka Prompt Siap Pakai¶
Kumpulan prompt yang bisa langsung disalin dan disesuaikan. Ganti bagian dalam [kurung siku]. Diurutkan mengikuti alur kerja nyata: dari merencanakan sampai memelihara.
📌 Prinsip di balik semua prompt ini (baca sekali, lalu Anda bisa menulis sendiri): 1. Beri peran — "sebagai senior engineer" mengubah nada & kedalaman output. 2. Beri konteks — stack, versi, konvensi project, file terkait. 3. Beri constraint eksplisit — apa yang wajib & apa yang dilarang. 4. Minta format — struktur output yang Anda inginkan. 5. Minta AI menantang, bukan menyenangkan — "jangan langsung setuju", "sebutkan kelemahannya".
A. Perencanaan & Desain¶
A1 — Terjemahkan kebutuhan bisnis ke desain teknis
Saya punya kebutuhan bisnis berikut: [deskripsi dalam bahasa awam].
Sebagai senior backend engineer, terjemahkan ke desain teknis:
entitas data & relasinya (ERD Mermaid), daftar endpoint yang dibutuhkan,
dan aturan bisnis yang harus dijaga di level data. JANGAN tulis kode implementasi
dulu — saya ingin menyepakati desain lebih dulu. Tandai keputusan yang punya
trade-off dan jelaskan pilihanmu.
A2 — Minta AI menantang desain saya
Ini rencana desain saya: [desain/ERD/kontrak API].
Jangan langsung menyetujui. Berperan sebagai reviewer skeptis:
skenario nyata apa yang akan merusak desain ini? Edge case apa yang terlewat?
Di mana ini akan sulit di-scale atau di-maintain? Beri minimal 3 kelemahan konkret
beserta saran perbaikan.
A3 — Pilih pendekatan/teknologi
Untuk [kebutuhan], saya mempertimbangkan [opsi A] vs [opsi B].
Buat tabel perbandingan berdasarkan: kesesuaian dengan kebutuhan, kompleksitas,
performa, kemudahan maintenance, dan kematangan ekosistem. Beri rekomendasi
dengan alasan, DAN sebutkan kondisi di mana pilihan sebaliknya lebih baik.
B. Membangun Fitur¶
B1 — Endpoint API dari kontrak (template utama)
Konteks: project [framework + versi], database [X], mengikuti konvensi di [file/folder].
Implementasikan endpoint berikut, patuhi persis kontraknya:
[method + path + aturan + status code untuk tiap endpoint]
Wajib:
- Autentikasi [metode]; cek KEPEMILIKAN data, bukan hanya login
- Validasi input di server ([FormRequest/dsb.])
- Operasi multi-tabel dibungkus transaction
- Parameterized query; escape output
- Format response konsisten: [struktur], tanggal ISO 8601, uang [format]
- Status code sesuai kontrak, dengan pesan error informatif tapi tidak membocorkan internal
Dilarang: secret hardcoded, raw query tanpa parameter, endpoint di luar kontrak.
Sertakan: kode + contoh request/response + daftar edge case yang sudah ditangani.
B2 — Skema & migration
Buat migration [framework] untuk skema ini: [deskripsi/ERD].
Wajib: uang sebagai DECIMAL (bukan float); tanggal disimpan UTC;
semua FK + index-nya; constraint (NOT NULL, UNIQUE, CHECK) yang sesuai aturan bisnis;
timestamps; soft delete untuk [tabel]; salinan data historis untuk [tabel transaksi];
rollback lengkap. Jangan ubah migration lama — buat file baru bila perlu perubahan.
B3 — Operasi kritis (uang/stok/kuota)
Implementasikan [operasi] yang akan diakses banyak user bersamaan.
Ini kritis: [uang/stok] tidak boleh [minus/dobel/hilang].
Wajib: transaction (semua-atau-batal); pengurangan/penambahan secara ATOMIC
aman dari race condition (bukan baca-lalu-tulis terpisah); idempotency bila relevan.
Jelaskan mekanisme anti-race-condition yang kamu pilih dan kenapa.
Lalu tulis skrip untuk mengetesnya dengan request bersamaan.
B4 — Setup Docker
Buatkan Dockerfile [multi-stage bila perlu build] dan docker-compose.yml untuk
[stack + versi]. Wajib: data persisten di named volume; semua credential lewat .env
+ .env.example bernilai kosong; healthcheck tiap service + depends_on menunggu sehat;
versi image spesifik (bukan latest); jalankan sebagai user non-root; sertakan
.dockerignore (abaikan .env, .git, dependency folder). Tanpa secret hardcoded.
C. Review & Verifikasi (paling penting untuk kualitas)¶
C1 — Review menyeluruh
Review kode ini sebagai senior engineer yang skeptis. Cek terhadap daftar:
[tempel bagian relevan dari checklist bab 06].
Format tiap temuan: [severity: critical/high/medium/low] — [file:baris] —
[masalah] — [perbaikan konkret]. Untuk kategori yang bersih, nyatakan eksplisit
"tidak ada temuan". Jangan mengarang temuan hanya untuk mengisi daftar.
C2 — Review keamanan khusus
Review kode ini sebagai security engineer. Fokus & beri BUKTI (potongan kode)
untuk tiap temuan: SQL/command injection; XSS (termasuk innerHTML/
dangerouslySetInnerHTML/{!! !!}/v-html); IDOR & authorization tiap endpoint;
CSRF; mass assignment; secret hardcoded; validasi input; race condition pada
operasi uang/stok; konfigurasi berbahaya (debug mode, CORS *). Urutkan dari
paling kritis.
C3 — Hitung query (deteksi N+1)
Untuk endpoint [X] ini, telusuri dan sebutkan BERAPA query database yang
dijalankan untuk [N] baris hasil. Bila ada N+1 (query di dalam loop),
perbaiki dengan eager loading dan tunjukkan jumlah query sebelum vs sesudah.
C4 — Verifikasi package sebelum install
Sebelum saya install, verifikasi package `[nama]` di [npm/packagist/pypi]:
apakah benar-benar ada, apa repository resminya, kapan rilis terakhir,
seberapa banyak dipakai, dan apakah masih dirawat aktif. Bila ragu atau
tampak tidak ada, katakan — jangan berasumsi.
C5 — Cek operasi database berbahaya
Pindai kode/script ini khusus untuk: UPDATE atau DELETE tanpa WHERE;
operasi multi-tabel tanpa transaction; migration yang mengubah/menghapus
data production; query yang bisa mengunci tabel besar. Tandai tiap kemunculan
dengan lokasinya.
D. Debugging¶
D1 — Dari pesan error
Saya dapat error ini: [tempel error + stack trace lengkap].
Konteks: [apa yang sedang dilakukan, stack, perubahan terakhir].
Diagnosis kemungkinan penyebab dari yang paling mungkin, jelaskan CARA
memverifikasi tiap dugaan, lalu beri perbaikan. Jangan menebak satu solusi —
beri langkah diagnosis.
D2 — Container bermasalah
Container [nama] [gejala: restart terus / tidak bisa diakses / dst].
Output `docker logs [nama]` (100 baris terakhir): [tempel].
docker-compose.yml: [tempel]. Diagnosis penyebab & beri langkah perbaikan
berurutan.
D3 — Bug perilaku (bukan error)
Perilaku yang diharapkan: [X]. Yang terjadi: [Y].
Langkah reproduksi: [1,2,3]. Kode terkait: [tempel].
Bantu saya menemukan akar masalahnya. Ajukan pertanyaan bila butuh info
tambahan sebelum menyimpulkan.
D4 — Query lambat
Query ini butuh [durasi] pada tabel [ukuran] baris: [query].
Struktur tabel & index saat ini: [skema]. Analisis dengan pendekatan EXPLAIN:
kenapa lambat, index apa yang perlu ditambah (tulis CREATE INDEX-nya),
dan apakah query bisa ditulis ulang lebih efisien.
E. Memahami & Belajar¶
E1 — Jelaskan kode yang tidak saya pahami
Jelaskan kode ini baris per baris untuk orang yang paham konsep dasar tapi
bukan ahli [bahasa/framework]. Untuk tiap blok: apa fungsinya, kenapa ditulis
begini, dan apa yang terjadi bila dihapus/diubah. Tandai bagian yang rawan bug.
E2 — Bandingkan dua pendekatan di kode saya
Kode saya sekarang: [A]. AI menyarankan: [B].
Jelaskan perbedaan keduanya, kelebihan-kekurangan masing-masing dalam konteks
[situasi saya], dan kapan saya sebaiknya memakai yang mana.
E3 — "Kenapa begini?" (memahami keputusan)
Kenapa [pola/praktik] ini dianggap benar/penting? Beri: alasan mendasarnya,
contoh konkret masalah yang dicegahnya, dan kondisi di mana ia TIDAK berlaku.
F. Refactor & Pemeliharaan¶
F1 — Refactor aman
Refactor kode ini agar [lebih terbaca / mengikuti pola X / menghilangkan duplikasi]
TANPA mengubah perilaku. Jelaskan tiap perubahan. Bila ada perubahan yang berisiko
mengubah perilaku, tandai dan tanyakan dulu.
F2 — Tambah test
Tulis test untuk [fungsi/endpoint] ini. Cakup: happy path, edge case
([kosong/negatif/duplikat/batas]), dan kasus gagal (auth, validasi, tidak ditemukan).
Untuk endpoint, sertakan tes bahwa user tidak bisa mengakses data user lain.
F3 — Audit dependency
Tinjau daftar dependency ini [package.json/composer.json]: mana yang usang,
mana yang punya kerentanan diketahui, mana yang tampak tak terawat/berisiko,
dan mana yang bisa dihapus. Beri prioritas tindakan.
G. Anti-Pattern Prompt — Hindari Ini¶
| ❌ Prompt buruk | Kenapa buruk | ✅ Perbaikan |
|---|---|---|
| "buatkan fitur login" | Tanpa konteks, constraint, keamanan | Pakai template B1 |
| "kode ini error, fix" | Tanpa error/konteks; AI menebak | Pakai template D1 |
| "yang penting jalan" | Mengundang kode tak aman & rapuh | Sebutkan constraint kualitas & keamanan di depan |
| "apakah kode ini aman?" | Terlalu umum; jawaban "ya" tak berarti | Pakai C2 dengan daftar spesifik |
| menempel API key asli | Kebocoran secret | Ganti dengan <API_KEY> |
| "pakai library terbaik untuk X" | Mengundang halusinasi package | Minta 2-3 opsi + verifikasi (C4) |
H. Prompt Meta — Membuat AI Membantu Anda Membuat Prompt¶
Saat tidak yakin cara meminta:
Saya ingin AI membantu [tujuan] tapi tidak yakin cara memberi instruksi yang baik.
Bantu saya menyusun prompt: informasi apa yang perlu saya berikan, constraint apa
yang harus saya sebutkan, dan format output apa yang sebaiknya saya minta agar
hasilnya berkualitas dan aman?