VIBE KODING

Jangan Asal Prompt! Koding dengan AI Juga Ada Tutorial & Rules-nya

Panduan lengkap cara menggunakan AI untuk koding dengan benar. Pelajari rules, struktur prompt, dan tips agar hasil kode lebih akurat dan profesional.

Alif Bima PradanaAlif Bima Pradana
29 Januari 202515 min read
Jangan Asal Prompt! Koding dengan AI Juga Ada Tutorial & Rules-nya

Jangan Asal Prompt! Koding dengan AI Juga Ada Tutorial & Rules-nya

Halo, teman-teman developer! 👋 Pernah nggak sih kamu pakai AI buat bantu ngoding, tapi hasilnya malah ngaco? Atau mungkin kamu udah capek-capek nulis prompt panjang, tapi kode yang dihasilkan nggak sesuai ekspektasi? Tenang, kamu nggak sendirian! Di artikel ini, gue bakal share tutorial lengkap dan rules dasar yang wajib kamu tau sebelum mulai koding bareng AI. Karena ya... AI itu powerful banget, tapi kalau kita asal prompt tanpa strategi, hasilnya bisa bikin frustasi. Mari kita bahas dari awal! ---

🤔 Kenapa Harus Ada Rules Saat Koding dengan AI?

Banyak yang mikir, "Kan tinggal ketik apa yang mau dibuat, terus AI langsung ngerjain." Well, sayangnya nggak sesederhana itu, bro. AI itu ibarat asisten yang super pinter, tapi butuh instruksi yang jelas. Kalau kamu ngasih instruksi yang ambigu, hasilnya juga bakal ambigu. Berikut alasan kenapa kamu butuh rules:

1. Konsistensi Kode - Dengan rules yang jelas, kode yang dihasilkan akan konsisten dari awal sampai akhir project

2. Mengurangi Error - Prompt yang terstruktur mengurangi kemungkinan AI salah paham dengan maksud kamu

3. Efisiensi Waktu - Daripada bolak-balik revisi, mending sekali prompt langsung jadi

4. Maintainability - Kode yang dihasilkan lebih mudah di-maintain karena mengikuti pattern yang jelas

5. Scalability - Project bisa berkembang dengan baik karena fondasinya kuat dari awal

📚 Dasar-Dasar Prompt Engineering untuk Koding

Sebelum masuk ke contoh-contoh prompt, kamu harus tau dulu fundamental prompt engineering. Ini basic yang wajib dipahami:

1. Context is King 👑

Selalu berikan konteks yang cukup! AI nggak tau project kamu apa, stack-nya apa, atau style coding yang kamu prefer. Kasih tau semuanya di awal. ❌ Prompt Buruk:
Buatkan function untuk login
✅ Prompt Baik:
Saya sedang membuat aplikasi web e-commerce menggunakan:
- Frontend: Next.js 14 dengan TypeScript
- Backend: Node.js dengan Express
- Database: PostgreSQL dengan Prisma ORM
- Authentication: JWT

Buatkan function untuk handle login user dengan fitur:
1. Validasi email dan password
2. Check user di database
3. Generate JWT token jika valid
4. Return error message yang informatif jika gagal
5. Implement rate limiting untuk prevent brute force

Gunakan async/await dan proper error handling.


2. Be Specific, Not Vague


Semakin spesifik prompt kamu, semakin akurat hasilnya. Jangan takut prompt-nya panjang!
❌ Vague:
Buat form yang bagus

✅ Specific:
Buat form registrasi dengan kriteria:
- Fields: nama lengkap, email, password, konfirmasi password
- Validasi real-time saat user mengetik
- Password strength indicator
- Error message di bawah setiap field yang invalid
- Button submit disabled sampai semua valid
- Styling dengan Tailwind CSS, dark mode compatible
- Animasi smooth saat error muncul
- Responsive untuk mobile dan desktop

3. Tentukan Output Format


Kasih tau AI format output yang kamu mau. Ini penting banget!
Format output yang saya inginkan:
1. Jelaskan dulu approach yang akan digunakan
2. Berikan kode lengkap dengan komentar penjelasan
3. Sertakan contoh penggunaan
4. List potential edge cases dan cara handle-nya
5. Berikan tips optimasi jika ada

🎯 Rules Wajib Sebelum Mulai Koding dengan AI


Berikut adalah rules yang harus kamu terapkan setiap kali mau koding dengan AI:

Rule #1: Mulai dengan System Prompt


System prompt adalah instruksi awal yang menentukan "kepribadian" dan behavior AI. Ini sangat powerful!
System Prompt untuk Koding:

Kamu adalah senior full-stack developer dengan pengalaman 10+ tahun.
Expertise kamu meliputi: JavaScript, TypeScript, React, Vue, Node.js, Python.
Saat menulis kode, kamu selalu:
- Mengikuti best practices dan clean code principles
- Menambahkan komentar yang helpful
- Mempertimbangkan edge cases
- Mengutamakan security dan performance
- Menulis kode yang mudah ditest

Jika ada yang kurang jelas dari request user, tanyakan dulu sebelum mulai ngoding.
Jelaskan reasoning di balik setiap keputusan teknis yang kamu buat.


Rule #2: Definisikan Tech Stack di Awal


Tech Stack untuk project ini:
- Language: TypeScript strict mode
- Framework: Nuxt 3 dengan Composition API
- Styling: Tailwind CSS v3
- State Management: Pinia
- API: REST dengan $fetch
- Testing: Vitest + Vue Testing Library
- Linting: ESLint + Prettier

Semua kode harus mengikuti stack di atas.
Jangan gunakan teknologi atau library di luar yang disebutkan tanpa konfirmasi.


Rule #3: Tentukan Coding Standards


Coding Standards yang harus diikuti:
1. Gunakan camelCase untuk variable dan function
2. Gunakan PascalCase untuk component dan class
3. Maksimal 80 karakter per baris
4. Selalu gunakan async/await, hindari callback hell
5. Destructuring lebih diutamakan
6. Arrow function untuk function expression
7. Explicit return type untuk function TypeScript
8. Jangan gunakan 'any' type kecuali benar-benar terpaksa
9. Semua function harus ada JSDoc comment
10. Error handling wajib dengan try-catch

Rule #4: Security First


Security Requirements:
- Sanitize semua user input
- Gunakan parameterized query untuk database
- Validate data di frontend DAN backend
- Implement proper authentication check
- Jangan expose sensitive data di response
- Gunakan HTTPS untuk semua external request
- Implement CORS dengan benar
- Hash password dengan bcrypt minimum 12 rounds

Rule #5: Breakdown Complex Tasks


Jangan minta AI bikin seluruh aplikasi sekaligus. Pecah jadi task-task kecil!
Project: E-commerce App

Day 1: Setup & Basic Structure
- [x] Initialize Nuxt 3 project
- [x] Setup Tailwind CSS
- [x] Buat basic layout component

Day 2: Authentication
- [ ] Buat halaman login
- [ ] Buat halaman register
- [ ] Implement JWT authentication

Day 3: Product Features
- [ ] Buat halaman list products
- [ ] Buat halaman product detail
- [ ] Implement search dan filter

(dan seterusnya...)


💡 Contoh Prompt Lengkap untuk Berbagai Skenario


Sekarang mari kita lihat contoh-contoh prompt yang bisa langsung kamu pakai:

Contoh 1: Membuat Component React/Vue


Buatkan component Button yang reusable dengan kriteria:

Context:
- Project: Dashboard Admin untuk SaaS
- Framework: Vue 3 Composition API + TypeScript
- Styling: Tailwind CSS

Requirements:
1. Props:
- variant: 'primary' | 'secondary' | 'danger' | 'ghost'
- size: 'sm' | 'md' | 'lg'
- loading: boolean (tampilkan spinner)
- disabled: boolean
- icon: optional icon component
- iconPosition: 'left' | 'right'

2. Features:
- Hover dan active states yang smooth
- Focus ring untuk accessibility
- Loading state dengan spinner dan disabled interaction
- Ripple effect saat click

3. Accessibility:
- Proper ARIA attributes
- Keyboard navigation support
- Screen reader friendly

Output yang diharapkan:
- File component (.vue)
- Contoh penggunaan
- Unit test basic


Contoh 2: API Integration


Buatkan service layer untuk integrasi dengan REST API:

Context:
- Sudah ada backend API di https://api.example.com
- Menggunakan JWT untuk authentication
- Token disimpan di localStorage

Requirements:
1. Base API class dengan:
- Automatic token injection di header
- Response interceptor untuk handle 401 (auto logout)
- Error handling yang konsisten
- Request/Response logging di development

2. Service untuk User:
- getProfile()
- updateProfile(data)
- changePassword(oldPass, newPass)
- uploadAvatar(file)

3. Service untuk Products:
- getAll(filters, pagination)
- getById(id)
- create(data)
- update(id, data)
- delete(id)

4. Type definitions untuk semua response

Tolong struktur folder-nya juga ya:
/services
/api
- base.ts
- user.service.ts
- product.service.ts
/types
- user.types.ts
- product.types.ts


Contoh 3: Database Schema


Buatkan database schema untuk aplikasi blog:

Context:
- Database: PostgreSQL
- ORM: Prisma
- Fitur: Multi-author blog dengan categories dan tags

Requirements:
1. Tables yang dibutuhkan:
- User (author)
- Post
- Category
- Tag
- Comment
- PostTag (many-to-many)

2. Relationships:
- User bisa punya banyak Post
- Post punya satu Category
- Post bisa punya banyak Tag
- Post bisa punya banyak Comment
- Comment bisa nested (reply)

3. Fields yang umum:
- id (uuid)
- createdAt
- updatedAt
- soft delete (deletedAt)

4. Indexing:
- Suggest index yang diperlukan untuk query umum
- Explain reasoning-nya

Output:
- Prisma schema file lengkap
- Seed data untuk testing
- Query examples untuk operasi CRUD


Contoh 4: Debugging & Fixing


Tolong debug kode berikut:

[paste kode yang bermasalah]

Error yang muncul:
[paste error message lengkap]

Yang sudah saya coba:
1. [langkah yang sudah dicoba]
2. [langkah yang sudah dicoba]

Environment:
- Node.js v18
- npm v9
- OS: Windows 11

Tolong:
1. Jelaskan penyebab error-nya
2. Berikan solusi dengan kode yang sudah diperbaiki
3. Jelaskan kenapa solusi ini works
4. Kasih tips agar error serupa tidak terjadi lagi


Contoh 5: Code Review & Optimization


Tolong review kode berikut dan berikan saran improvement:

[paste kode]

Focus area:
1. Performance - ada yang bisa dioptimasi?
2. Security - ada vulnerability?
3. Readability - bisa lebih clean?
4. Best Practices - ada yang melanggar convention?
5. Edge Cases - ada yang belum di-handle?

Format review:
- Severity: Critical / Warning / Suggestion
- Line/Section: [reference ke bagian kode]
- Issue: [penjelasan masalah]
- Solution: [kode yang sudah diperbaiki]
- Explanation: [kenapa ini lebih baik]


🚀 Tips Advanced untuk Power Users


Udah paham basic-nya? Sekarang level up dengan tips advanced ini:

1. Iterative Refinement


Jangan expect hasil perfect di prompt pertama. Gunakan conversation untuk refine:
First prompt: Buat basic structure
Second prompt: Tambahkan error handling
Third prompt: Optimize performance
Fourth prompt: Add edge case handling
Fifth prompt: Polish dan finalize

2. Reference Existing Code


Ini contoh component yang sudah ada di project saya:
[paste existing component]

Buatkan component baru yang mirip pattern-nya tapi untuk [use case baru].
Pastikan konsisten dengan style yang sudah ada.


3. Ask for Alternatives


Untuk task [X], berikan 3 approach berbeda:
1. Approach paling simple/straightforward
2. Approach paling performant
3. Approach paling scalable

Untuk setiap approach, jelaskan:
- Pros dan cons
- Kapan sebaiknya digunakan
- Complexity (baik time maupun space)


4. Learn While You Code


Setelah menulis kode, jelaskan:
1. Konsep-konsep yang digunakan
2. Kenapa memilih approach ini
3. Trade-offs yang ada
4. Resources untuk belajar lebih lanjut

Saya ingin mengerti, bukan hanya copy-paste.


⚠️ Common Mistakes yang Harus Dihindari


1. Over-reliance pada AI


AI itu tool, bukan replacement untuk skill kamu. Tetap belajar fundamental!

2. Copy-Paste Tanpa Review


SELALU review kode yang dihasilkan AI sebelum commit. AI bisa aja salah atau menghasilkan kode yang tidak optimal.

3. Prompt Terlalu Singkat


❌ "Buat login page"
✅ [Prompt detail seperti contoh di atas]

4. Tidak Memberikan Feedback


Kalau hasil nggak sesuai, kasih feedback spesifik:
Hasil sebelumnya:
- Button style kurang match dengan design system
- Missing loading state
- Error handling belum ada

Tolong perbaiki dengan:
[instruksi spesifik]


5. Mengabaikan Security


Jangan pernah share:
  • API keys
  • Passwords
  • Sensitive business logic
  • Production database credentials

📋 Checklist Sebelum Submit Prompt


Gunakan checklist ini sebelum submit prompt kamu:
  • [ ] Sudah jelasin context project?
  • [ ] Tech stack sudah disebutkan?
  • [ ] Requirements sudah spesifik?
  • [ ] Output format sudah ditentukan?
  • [ ] Tidak ada info sensitif yang bocor?
  • [ ] Task sudah cukup granular (tidak terlalu besar)?
  • [ ] Sudah mention coding standards yang diinginkan?

🎁 Template Prompt yang Bisa Langsung Dipakai


Copy template ini dan customize sesuai kebutuhan:
=== PROJECT CONTEXT ===
Project: [nama project]
Type: [web app / mobile / API / dll]
Stage: [new / existing - link repo jika ada]

=== TECH STACK ===
- Language: [...]
- Framework: [...]
- Database: [...]
- Other tools: [...]

=== CURRENT TASK ===
[Deskripsi task yang jelas]

=== REQUIREMENTS ===
1. [requirement 1]
2. [requirement 2]
3. [requirement 3]

=== CONSTRAINTS ===
- [batasan yang harus diikuti]
- [hal yang harus dihindari]

=== EXPECTED OUTPUT ===
- [format output yang diinginkan]
- [file/struktur yang diharapkan]

=== ADDITIONAL NOTES ===
[Info tambahan yang relevan]


🏁 Kesimpulan


Koding dengan AI itu game changer, tapi butuh skill tersendiri untuk memanfaatkannya dengan maksimal. Ingat key takeaways dari artikel ini:
1. Context is everything - Selalu berikan informasi yang cukup
2. Be specific - Detail prompt = hasil yang akurat
3. Use rules & standards - Konsistensi adalah kunci
4. Iterate & refine - Jarang perfect di percobaan pertama
5. Always review - AI itu asisten, bukan oracle
6. Keep learning - Fundamental tetap penting
Semoga artikel ini membantu kamu jadi lebih produktif dalam koding dengan AI. Kalau ada pertanyaan atau mau share pengalaman, feel free to reach out!
Happy coding! 🚀

Tags

#AI #VIBE KODING #Tutorial #Prompt Engineering #Tips & Tricks