Workflow plan → code → test → review — Vibe Coding dan Security: Dari Prompt ke Aplikasi Aman

MATERI 4 DARI 28

Workflow plan → code → test → review

Gunakan siklus kecil agar hasil AI dapat diaudit, diuji, dan dibatalkan dengan mudah.

Tujuan pembelajaran

  • Memecah pekerjaan menjadi vertical slice.
  • Meminta rencana sebelum kode.
  • Memverifikasi hasil lewat test dan diff.

Konsep utama

Vertical slice

Selesaikan satu perilaku end-to-end, bukan mengubah semua layer sekaligus.

Feedback loop

Test yang cepat memberi sinyal apakah perubahan benar atau merusak perilaku lain.

Alur kerja teknis

  1. Tulis tujuan dan acceptance criteria.
  2. Buat perubahan kecil yang dapat ditinjau.
  3. Jalankan test dan baca diff sebelum menerima hasil AI.

Contoh implementasi

Siklus kerja kecil

git checkout -b feature/validasi-profil
# tulis test yang gagal
php tests/profile_validation_test.php
# implementasi minimal, lalu ulangi
php tests/profile_validation_test.php
git diff --check
git diff --stat

Aspek keamanan

  • Buat backup/migration plan sebelum perubahan data.
  • Jangan membundel refactor besar dengan fitur baru.
  • Pastikan perintah destructive memerlukan scope dan konfirmasi yang jelas.

Kesalahan umum

  • Menerima kode AI tanpa membaca diff dan memahami alur data.
  • Menguji hanya happy path dan mengabaikan input salah atau batas nilai.
  • Menyimpan secret, token, atau data nyata di prompt dan source code.

Pengujian dan verifikasi

  1. Jalankan contoh dengan input normal.
  2. Ulangi dengan input kosong, tipe salah, dan nilai batas.
  3. Pastikan error tidak membocorkan secret atau detail internal.

Latihan

  1. Modifikasi contoh dengan satu kebutuhan baru dan tulis acceptance criteria-nya.
  2. Tambahkan satu negative test lalu jelaskan risiko yang dicegah.

Checklist

  • Tujuan dan batas pekerjaan jelas.
  • Input divalidasi di server.
  • Secret tidak berada di source/prompt.
  • Test lulus dan diff sudah dibaca.

Rangkuman

Gunakan siklus kecil agar hasil AI dapat diaudit, diuji, dan dibatalkan dengan mudah.