VibeKoding / Level 1Level 1 / Pelajaran 5Lesson 5
VK

Bangun Prototipe Pertamamu ๐Ÿ—๏ธ Build Your First Prototype ๐Ÿ—๏ธ

โฑ๏ธ ~4 jam (cicil santai)~4 hours (spread it out) ๐ŸŽฏ Output: Aplikasi web multi-halamanOutput: Multi-page web app ๐Ÿ’ป Alat: AI IDE dari Pelajaran 3Tools: AI IDE from Lesson 3
Progres pelajaranmuYour lesson progress: 0%
Sudut Pandang UnikQuick Perspective

Di dunia nyata, arahan proyek sering kali berawal dari satu kalimat visi yang abstrak. Kunci keberhasilan seorang Product Engineer adalah kemampuannya membedah visi besar menjadi spesifikasi bertahap yang dieksekusi dengan terukur. ๐Ÿ‘ผ In production, project requirements often start from a single abstract vision. The hallmark of an effective Product Engineer is breaking that broad vision down into disciplined, iterative milestones. ๐Ÿ‘ผ

1. Kenapa Nggak Langsung Ngoding? ๐Ÿงฑ1. Why Not Just Start Coding? ๐Ÿงฑ

Ada jurang besar antara tahu "apa yang mau dibuat" dan tahu "cara membuatnya". Jembatan di atas jurang itu namanya: memperjelas kebutuhan (requirements). Kalau kamu langsung bilang ke AI "bikinin aplikasi kas kelas", hasilnya bakal umum dan membosankan. Tapi kalau kamu jelasin dulu fitur-fiturnya, hasilnya langsung on-point. ๐ŸŽฏ There's a huge gap between knowing "what to build" and knowing "how to build it". The bridge over that gap is called: clarifying requirements. If you just tell AI "make me a class treasury app", the result will be generic and boring. But if you first explain the features, the result is instantly on-point. ๐ŸŽฏ

๐Ÿ”จ Rumus 4 Langkah Pelajaran IniThis Lesson's 4-Step Formula

1. Perjelas kebutuhan โ€” dari samar jadi konkret ๐Ÿ“‹
2. Validasi satu halaman โ€” bikin halaman inti dulu ๐ŸŽฏ
3. Kembangkan multi-halaman โ€” tambah halaman lain ๐Ÿ“„
4. Poles & uji โ€” bikin enak dilihat & dipakai
1. Clarify needs โ€” from vague to concrete ๐Ÿ“‹
2. Validate one page โ€” build the core page first ๐ŸŽฏ
3. Expand to multi-page โ€” add the other pages ๐Ÿ“„
4. Polish & test โ€” make it look & feel great

2. Langkah 1: Ubah Kalimat Samarmu Jadi Daftar Fitur ๐Ÿ“‹2. Step 1: Turn Your Vague Sentence into a Feature List ๐Ÿ“‹

Ingat contoh Si Ming dari Pelajaran 4? Kalimat konsepnya: "Untuk bendahara kelas yang sering salah catat uang kas, aplikasi KasKu membantu mencatat pemasukan & pengeluaran otomatis di HP." Sekarang kita bongkar jadi fitur konkret: Remember Ming from Lesson 4? His concept sentence: "For class treasurers who keep mis-recording treasury money, the KasKu app helps log income & expenses automatically on the phone." Now we break it into concrete features:

๐Ÿ’ฌ PROMPT ANALISIS KEBUTUHAN๐Ÿ’ฌ REQUIREMENTS ANALYSIS PROMPT
Aku mau bikin aplikasi bernama KasKu untuk bendahara kelas.
Konsepnya: "Untuk bendahara kelas yang sering salah catat uang kas,
aplikasi ini membantu mencatat pemasukan & pengeluaran dengan mudah." Pengguna utamanya: pengguna umum / pemilik bisnis (non-teknis).
Situasi pakai: narik kas tiap Jumat, bayar jajan kegiatan kelas,
laporan ke wali kelas tiap bulan. Bantu aku:
1. Daftar fitur yang wajib ada (prioritas tinggi)
2. Daftar fitur pelengkap (prioritas rendah)
3. Saran halaman-halaman aplikasinya (misal: beranda, catatan, laporan)
4. Apa yang TIDAK perlu dibuat di versi pertamaI want to build an app called KasKu for class treasurers.
The concept: "For class treasurers who keep mis-recording treasury
money, this app helps log income & expenses easily." Main users: beginner students serving as treasurer (not programmers).
Usage situations: weekly collection on Fridays, paying for class events,
monthly report to the homeroom teacher. Help me:
1. Must-have features (high priority)
2. Nice-to-have features (low priority)
3. Suggested app pages (e.g. home, records, report)
4. What NOT to build in the first version

AI bakal kasih daftar fitur yang rapi. Tugasmu: pilih maksimal 5 fitur inti untuk versi pertama. Lebih dari itu = resep utama buat gagal total dan nggak selesai-selesai. ๐Ÿฒ๐Ÿ’ฅ Percayalah, bahkan programmer profesional sering terjebak bikin terlalu banyak fitur (disebut feature creep โ€” fitur yang merayap kayak zombie ๐ŸงŸ). AI will give you a clean feature list. Your job: pick at most 5 core features for version one. More than that = the main recipe for failure and never finishing. ๐Ÿฒ๐Ÿ’ฅ Trust us, even professional programmers often fall into building too many features (called feature creep โ€” features creeping in like zombies ๐ŸงŸ).

3. Langkah 2: Satu Halaman Dulu Aja ๐ŸŽฏ3. Step 2: One Page First ๐ŸŽฏ

Jangan minta 5 halaman sekaligus! Mulai dari halaman paling penting (biasanya halaman utama yang melakukan aksi inti). Untuk KasKu: halaman catat pemasukan/pengeluaran. Don't ask for 5 pages at once! Start with the most important page (usually the home page doing the core action). For KasKu: the record income/expense page.

๐Ÿ’ฌ PROMPT HALAMAN PERTAMA๐Ÿ’ฌ FIRST PAGE PROMPT
Buatkan halaman web "Catat Transaksi" untuk aplikasi KasKu:
- Form input: jenis (masuk/keluar), jumlah uang, keterangan, tanggal
- Tombol "Catat" yang menambahkan transaksi ke daftar di bawahnya
- Daftar transaksi terbaru (5 terakhir) dengan warna beda untuk pemasukan (hijau) dan pengeluaran (merah)
- Saldo total di bagian atas, besar dan jelas
- Data tersimpan di localStorage browser (jelaskan cara kerjanya)
- Desain mobile-first, tombol besar-besar, warna ceria
- Semua teks dalam Bahasa IndonesiaBuild the "Record Transaction" web page for the KasKu app:
- Input form: type (income/expense), amount, note, date
- A "Record" button that adds the transaction to the list below
- A list of the latest 5 transactions with different colors for income (green) and expense (red)
- Total balance at the top, big and clear
- Data saved in the browser's localStorage (explain how it works)
- Mobile-first design, big buttons, cheerful colors
- All text in English

Jalankan, tes semua tombolnya, perbaiki yang aneh. Jangan lanjut sebelum halaman ini jalan! Fondasi yang rapuh = rumah yang roboh. ๐Ÿš๏ธ Run it, test every button, fix what's off. Don't move on until this page works! A shaky foundation = a collapsed house. ๐Ÿš๏ธ

4. Langkah 3: Kembangin Jadi Multi-Halaman ๐Ÿ“„๐Ÿ“„4. Step 3: Expand to Multi-Page ๐Ÿ“„๐Ÿ“„

Setelah halaman inti jalan, minta AI menambahkan halaman lain satu per satu (ingat: satu permintaan besar = satu bencana; satu permintaan kecil = satu kemenangan ๐Ÿ†): Once the core page works, ask AI to add other pages one at a time (remember: one huge request = one disaster; one small request = one win ๐Ÿ†):

  1. Halaman Riwayat: "Tambahkan halaman riwayat yang menampilkan semua transaksi, bisa difilter per bulan." ๐Ÿ“…History page: "Add a history page showing all transactions, filterable by month." ๐Ÿ“…
  2. Halaman Laporan: "Tambahkan halaman laporan bulanan dengan ringkasan total masuk, total keluar, dan grafik batang sederhana." ๐Ÿ“ŠReport page: "Add a monthly report page with total income, total expense, and a simple bar chart." ๐Ÿ“Š
  3. Menu Navigasi: "Buat menu bawah (bottom navigation) dengan 3 tombol untuk pindah antar halaman, kayak aplikasi HP." ๐Ÿ“ฑNavigation menu: "Create a bottom navigation with 3 buttons to switch pages, like a phone app." ๐Ÿ“ฑ
๐Ÿง  Prinsip Arsitektur ModularThe Modular Architecture Principle

Perhatikan: kamu baru aja belajar arsitektur aplikasi tanpa sadar! Halaman-halaman = bagian-bagian aplikasi. localStorage = tempat nyimpen data (versi mini dari database!). Grafik = visualisasi data (pelajaran matematika terpakai juga ternyata ๐Ÿ“ˆ๐Ÿ˜„). Di Level 2, kita bakal bikin versi "dewasa"-nya dengan database sungguhan. Notice: you just learned app architecture without realizing it! Pages = app sections. localStorage = where data lives (a mini version of a database!). Charts = data visualization (math class pays off after all ๐Ÿ“ˆ๐Ÿ˜„). In Level 2, we'll build the "grown-up" version with a real database.

5. Langkah 4: Poles Sampai Kinclong 5. Step 4: Polish Until It Shines

Prototipe yang udah jalan tapi jelek itu kayak kue enak yang penyok โ€” rasanya oke tapi orang males nyoba. ๐ŸŽ‚ Waktu poles: A working but ugly prototype is like a delicious but squished cake โ€” tastes fine but nobody wants to try it. ๐ŸŽ‚ Time to polish:

6. Misi Rahasiamu ๐Ÿ•ต๏ธ6. Your Secret Mission ๐Ÿ•ต๏ธ

๐ŸŽฏ MISI LEVEL 1-E: Prototipe ImpianmuMISSION LEVEL 1-E: Your Dream Prototype

Bangun prototipe dari ide pemenangmu sendiri di Pelajaran 4 (boleh juga pakai contoh KasKu kalau butuh panduan). Target akhir pelajaran ini: Build a prototype from your own winning idea in Lesson 4 (you may use the KasKu example if you need guidance). End-of-lesson target:

  1. โœ… Daftar fitur tertulis (maks 5 fitur inti)โœ… Written feature list (max 5 core features)
  2. โœ… Minimal 3 halaman yang jalan dan bisa diklik-klikโœ… At least 3 working, clickable pages
  3. โœ… Data tersimpan (localStorage cukup!)โœ… Data persists (localStorage is enough!)
  4. โœ… Udah dites minimal 1 orang lainโœ… Tested by at least 1 other person

Kalau mentok di tengah jalan, itu bagian dari pelajaran. Balik ke loop: tanya AI โ†’ coba โ†’ lapor hasil. Kamu udah punya senjatanya. โš”๏ธ If you get stuck midway, that's part of the lesson. Back to the loop: ask AI โ†’ try โ†’ report the result. You already have the weapon. โš”๏ธ

7. Uji Pemahaman ๐Ÿงช7. Knowledge Check ๐Ÿงช

โ“ Kenapa versi pertama harus maksimal 5 fitur inti?โ“ Why max 5 core features in version one?โ–ถ
Karena produk kecil yang selesai & jalan jauh lebih berharga daripada produk besar yang nggak pernah kelar. Fitur bisa ditambah belakangan setelah ada feedback pengguna nyata. Prinsipnya: selesaikan dulu, sempurnakan kemudian. ๐Ÿ Because a small, finished, working product is worth far more than a big one that never ships. Features can be added later after real user feedback. The principle: finish first, perfect later. ๐Ÿ
โ“ Apa itu localStorage dan kenapa kita pakai itu dulu?โ“ What is localStorage and why use it first?โ–ถ
localStorage = gudang kecil di browser tempat data web-mu disimpan, dan nggak hilang walau browser ditutup. Cocok buat prototipe karena: gratis, tanpa server, tanpa daftar apa pun. Kekurangannya: data cuma ada di satu perangkat. Versi dewasanya (database sungguhan) kita belajar di Level 2. ๐Ÿ—„๏ธ localStorage = a tiny storage room in the browser where your web data is kept, surviving even when the browser closes. Great for prototypes: free, no server, no signup. Downside: data lives on one device only. The grown-up version (a real database) comes in Level 2. ๐Ÿ—„๏ธ
โ“ Kenapa harus ngetes ke orang lain tanpa dibantu?โ“ Why test with other people without helping them?โ–ถ
Karena kamu nggak bisa jadi pengguna produkmu sendiri โ€” kamu udah terlalu paham cara kerjanya. Kebingungan pengguna baru itu jujur dan berharga. Kalau kamu bantu, kamu nutupi kelemahan desainmu sendiri. Malu sebentar, produk bagus selamanya. ๐Ÿ˜…โžก๏ธ๐Ÿ† Because you can't be your own user โ€” you already know how it works too well. New users' confusion is honest and valuable. If you help them, you're hiding your design's weaknesses. Short-term awkwardness, long-term quality. ๐Ÿ˜…โžก๏ธ๐Ÿ†
๐Ÿ’ก Jokes PenutupClosing Joke

Prototipe itu kayak mie instan sebelum dikasih bumbu: bentuknya udah bener, tinggal disempurnakan. ๐Ÿœ

Dan kamu baru aja masak mie pertamamu sendiri. Di pelajaran berikutnya, kita kasih bumbu rahasianya: kekuatan AI di dalam produkmu, lalu kita sajikan ke dunia. ๐ŸŒ
A prototype is like instant noodles before the seasoning: the shape is right, just needs perfecting. ๐Ÿœ

And you just cooked your first batch yourself. Next lesson, we add the secret seasoning: AI powers inside your product, then we serve it to the world. ๐ŸŒ