Lewati ke isi

09 — Pustaka Prompt Siap Pakai

← Proyek Capstone | Index


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?


← Proyek Capstone | Index