Bahan Pengajaran Vibe Coding

Vibe Coding Instructor Handbook

Panduan Lengkap Pengajaran AI-Assisted Development — 8 Fasa, 25 Bab, 100+ Halaman. Bahasa Melayu.

🏠 Halaman Utama
25
Bab
8
Fasa Kurikulum
6
Bahagian
100+
Halaman

Senarai Kandungan

Bahagian 1: Falsafah Vibe Coding
Bab 1

Apa Itu Vibe Coding?

Definisi, Sejarah, dan Falsafah di Sebalik Revolusi AI-Assisted Development

1.1 Definisi Penuh: Coding dengan Niat

Vibe Coding bukan sekadar "suruh AI tulis kod." Ia adalah pendekatan pembangunan perisian di mana manusia dan AI bekerjasama sebagai rakan kreatif. Manusia menyediakan hala tuju, konteks, dan pertimbangan — AI menyediakan kelajuan, ketepatan sintaks, dan alternatif reka bentuk.

Bayangkan anda seorang arkitek yang melukis pelan rumah. AI bukanlah tukang batu yang semata-mata mengikut arahan — ia adalah rakan jurubina yang boleh cadangkan material yang lebih baik, nampak kelemahan struktur, dan membantu anda mencuba 10 variasi dalam masa yang sama. Vibe Coding mengubah peranan manusia daripada "penulis kod" kepada "pengarang digital." Anda tidak perlu lagi mengingat setiap sintaks atau menghafal API documentation. Sebaliknya, anda fokus pada perkara yang lebih penting: apa yang anda mahu bina, kenapa, dan untuk siapa.

Prinsip Utama:

Vibe Coding = Niat Manusia + Intelligence AI + Iterasi Cepat. Bukan seorang programmer yang guna AI, tapi seorang kreator yang empowered by AI.

1.2 Evolusi: Dari Manual Coding ke Vibe Coding

EraCiri UtamaCabaran
1950s-1980s: Assembly & CMenulis kod terus dalam bahasa mesin/asmSetiap baris perlu ditulis manual, debugging sukar
1990s: Visual & RADVisual Basic, Delphi, drag-dropPengaturcaraan masih perlukan pemahaman sintaks mendalam
2000s: Stack OverflowCopy-paste dari forum, Google cari contohMasa hilang mencari jawapan, code quality tidak konsisten
2010s: GitHub CopilotAutocomplete kod, cadangan inlineTerhad kepada penyiapan baris, tidak faham konteks besar
2020s: Chat-Based AIChatGPT, Claude — boleh tulis kod dari descriptionOutput perlu disalin, konteks terhad
2024+: Agent-BasedClaude Code, Codex — AI agent dalam terminal/IDEPerlu kemahiran prompting, pemahaman output
2025+: Vibe CodingAI sebagai rakan, workflow terintegrasi, MCP ecosystemFokus pada reka bentuk dan niat, bukan sintaks

1.3 The Vibe Coding Manifesto

Manifesto ini adalah teras falsafah Vibe Coding. Setiap prinsip dibina berdasarkan pengalaman sebenar mengajar dan membangun dengan AI.

Prinsip 1: Prompt Adalah Kod Baharu

Keupayaan menulis prompt yang baik lebih berharga daripada keupayaan menulis sintaks. Dalam era Vibe Coding, bahasa yang anda gunakan untuk berkomunikasi dengan AI adalah bahasa pengaturcaraan yang paling penting. Seorang Vibe Coder yang mahir boleh menghasilkan aplikasi kompleks dengan 20 baris prompt yang tersusun baik, manakala seorang programmer tradisional mungkin mengambil 2000 baris kod untuk hasil yang sama.

Contoh: "Bina landing page untuk kedai kopi artisan dengan hero section, menu card grid, contact form, dan footer responsive. Guna warna hangat — coklat, krim, burnt orange. Mobile-first." Prompt ini menghasilkan 200+ baris HTML/CSS yang berfungsi sepenuhnya.

Prinsip 2: Iterasi Lebih Penting daripada Perfeksi

Jangan tunggu sehingga sempurna untuk mula. Ship cepat, refine kemudian. AI membolehkan kitaran iterasi yang sangat pantas — cuba, lihat hasil, ubah, cuba lagi. Dalam masa 10 minit, seorang Vibe Coder boleh melalui 5-10 iterasi design. Ini adalah kelajuan yang mustahil dicapai dengan coding tradisional.

Contoh: Mula dengan "Bina navbar simple" lalu "Tambah dropdown menu" lalu "Jadikan sticky" lalu "Tambah animasi" lalu "Tambah search bar." Setiap langkah mengambil 1-2 minit sahaja.

Prinsip 3: AI Sebagai Rakan, Bukan Alat

Jangan treat AI seperti mesin taip. Bercakaplah dengannya seperti rakan sekerja yang junior tapi sangat berbakat. Terangkan konteks, tanya pendapat, minta alternatif. Dialog, bukan arahan. Kolaborasi, bukan automasi.

Contoh: Daripada "Buat login form," cakap "Saya nak buat sistem login. Apa pendapat awak — better guna email + password atau magic link? Target users adalah pelajar universiti."

Prinsip 4: Faham Output, Bukan Syntax

Anda tidak perlu menulis setiap baris kod, tetapi anda WAJIB faham apa yang kod itu lakukan. Baca output AI dengan teliti. Faham logik, struktur, dan implikasi. Jika anda tidak faham apa yang AI tulis, minta explain. Keupayaan membaca dan menilai kod adalah lebih penting daripada menulisnya.

Contoh: Selepas AI hasilkan component, tanya diri: "Adakah ini secure? Efficient? Maintainable? Responsive?" Jika jawapan "tak tahu," minta AI explain bahagian yang tak difahami.

Prinsip 5: Ship Fast, Learn Faster

Setiap projek yang siap adalah satu pelajaran. Jangan simpan kod dalam folder draft yang tak pernah dikeluarkan. Ship ke production, dapatkan feedback, belajar dari realiti. AI membolehkan anda belajar dari pengalaman langsung — bukan dari tutorial.

Contoh: Pelajar boleh deploy portfolio mereka dalam masa 4 jam sesi pertama. Mereka belajar hosting, domain, DNS — topik yang biasanya diajar di minggu ke-10 kursus traditional.

1.4 Vibe Coder vs Traditional Coder

DimensiTraditional CoderVibe Coder
Skill UtamaMenulis sintaks, debugging manualPrompt engineering, membaca kod
Kelajuan PrototaipHari ke mingguMinit ke jam
Error RateBergantung pada pengalamanRendah (AI check syntax)
Learning Curve6-12 bulan untuk competentCuram awal, kemudian rata cepat
Kefahaman KodMendalam (tahu setiap baris)Konseptual (faham logik, tak hafal sintaks)
Kemudahan DebugManual, trace bertulisAI bantu diagnose dan fix
Kos MulaRendah (hanya laptop + editor)Sederhana (subscription AI tools)
Kesesuaian Non-ProgrammerSangat sukarSangat sesuai
Jenis ProjekEnterprise, infrastrukturWeb apps, prototaip, MVPs
Fokus Utama"Macam mana nak tulis kod ini?""Apa yang saya nak bina?"
Bab 2

Ekosistem Vibe Coding

Claude Code, Codex, GitHub Copilot, dan Rangkaian Tools Sokongan

2.1 Claude Code — Kerja Mendalam, Output Berkualiti

Claude Code adalah terminal-based AI agent oleh Anthropic. Ia berjalan dalam terminal, boleh membaca dan mengedit fail, menjalankan command, dan berinteraksi dengan pelbagai tools melalui MCP (Model Context Protocol).

Kelebihan Utama:

  • MCP Ecosystem: Akses ke 15+ plugin termasuk Exa (web search), Playwright (browser automation), Context7, GitHub, Figma, dan Microsoft Learn. Claude Code bukan sekadar code generator, tapi research assistant, testing tool, dan deployment platform dalam satu.
  • Skills System: Superpowers workflow seperti Brainstorming, Writing Plans, TDD, Systematic Debugging — ini mengajar disiplin pembangunan yang betul.
  • Research Depth: Boleh melakukan web search, baca dokumentasi, analisis repositori GitHub — semuanya dalam satu sesi.
  • Kualiti Output: Claude terkenal dengan kod yang bersih, well-documented, dan mengikut best practices.
  • Kontekstual: Boleh handle konteks yang besar — projek dengan banyak fail.

2.2 Codex — Cepat, Action-Oriented, Deployment

Codex oleh Cursor adalah AI agent yang diintegrasikan dalam IDE. Ia berfokus pada kelajuan dan tindakan — kurang research, lebih coding dan deployment.

Kelebihan Utama:

  • IDE Integration: Berfungsi terus dalam VS Code. Pelajar tak perlu switch antara terminal dan editor.
  • Action-Oriented: Codex lebih "berani" — ia akan buat perubahan, run command, deploy tanpa banyak soal. Sesuai untuk iterasi cepat.
  • Built-in Browser: Boleh preview hasil secara langsung. Tak perlu setup Playwright.
  • Built-in Deploy: Deployment sangat mudah — satu command dan app anda live.
  • Web Search: Carian web terbina dalam, tak perlu MCP setup.

2.3 GitHub Copilot — Rujukan Ringkas

GitHub Copilot adalah autocomplete AI untuk VS Code, JetBrains, dan editor lain. Ia berbeza kerana ia adalah assistant dalam editor, bukan agent autonomi.

  • Kelebihan: Integration sangat rapat dengan editor, cadangan inline pantas.
  • Kekurangan: Tidak boleh edit fail secara autonomi, tiada MCP/skills, terhad kepada completion baris/blok.
  • Peranan dalam pengajaran: Sesuai sebagai "tool tambahan" selepas pelajar mahir dengan Claude Code/Codex.

2.4 Comparison Matrix

KriteriaClaude CodeCodexGitHub Copilot
JenisTerminal AgentIDE AgentEditor Assistant
Pemasangannpm globalVS Code extensionVS Code extension
Learning CurveSederhanaRendahSangat Rendah
MCP Plugins15+TerhadTiada
Skills/WorkflowSuperpowers (lengkap)Built-in workflowsTiada
Kontekstual100K+ tokens50K+ tokensContext terhad
Web SearchExa MCPBuilt-inTiada
Browser TestingPlaywright MCPBuilt-in previewTiada
DeploymentCloudflare MCPBuilt-in deployTiada
Harga$20/bulan$20/bulan$10/bulan
Sokongan BahasaHTML, CSS, JS, TS, Python, dllHTML, CSS, JS, TS, Python, dllSemua bahasa popular
Best UntukResearch, komplex appsFast build, deployEveryday coding

2.5 Tools Sokongan

  • VS Code: Editor utama. Extension penting: Prettier, ESLint, Live Server, GitHub Copilot.
  • Git & GitHub: Version control asas. Pelajar perlu tahu git add, commit, push.
  • Node.js: Runtime JavaScript untuk development server. Wajib untuk Claude Code.
  • Supabase: Backend-as-a-Service — database postgres, authentication, storage, realtime.
  • Cloudflare: Deployment, DNS, Workers, dan security. Hosting percuma untuk static sites.

2.6 Decision Flowchart

NAK BUAT APA?
|||
Research / Design / Complex Logic?
-- Yes --> Claude Code + Brainstorming
Fast Prototype / Quick Deploy?
-- Yes --> Codex — dari prompt ke live
Need Database / Backend?
-- Yes --> Supabase + Claude Code
Deploy to Production?
-- Yes --> Cloudflare + Codex Deploy
Bab 3

Role Pengajar Vibe Coding

Dari Cikgu Coding ke Pembimbing AI — Transformasi Peranan Pengajar

3.1 Bukan Cikgu Coding Tradisional

Dalam Vibe Coding, peranan pengajar berubah secara fundamental. Anda bukan lagi "guru yang tahu segalanya" di hadapan kelas. Anda adalah pembimbing yang belajar bersama-sama pelajar. AI tools berubah setiap minggu — apa yang betul minggu lepas mungkin outdated minggu ini. Pelajar boleh access AI yang sama dengan anda — perbezaannya adalah pada bagaimana mereka gunakannya.

Mindset Shift:

Dari "Saya tahu segalanya, ajar awak" ke "Saya tahu cara belajar dengan AI, saya tunjuk cara." Pengajar Vibe Coding adalah meta-learner — seseorang yang mahir dalam proses pembelajaran itu sendiri.

3.2 Empat Role Pengajar Vibe Coding

Role 1: Fasilitator — Guide Discovery, Bukan Beri Jawapan

Tugas anda adalah untuk mencipta situasi di mana pelajar menemui jawapan sendiri. Tanya soalan panduan: "Apa yang awak expect kod ni buat? Kenapa?" Biarkan pelajar buat mistake dan belajar daripadanya. Rangka aktiviti yang membawa kepada discovery.

Role 2: Debugger — Jadikan Error sebagai Teaching Moment

Error bukan kegagalan — ia adalah peluang pembelajaran. Baca error message dengan kuat bersama pelajar. Tanya: "Apa kata error ni? Bahagian mana yang tak faham?" Guna AI untuk explain error dalam BM. Selepas fix, tanya: "Apa yang kita belajar dari error ni?"

Role 3: Motivator — Bina Keyakinan Pelajar Zero-Coding

Kebanyakan pelajar datang dengan perasaan "saya tak pandai coding." Strategi: Quick Win setiap sesi, celebrate small wins, normalise failure, dan show progress. "Dalam 30 minit, awak akan ada landing page sendiri."

Role 4: Role Model — Tunjuk Cara Profesional dengan AI

Pelajar belajar dari apa yang anda BUAT, bukan apa yang anda CAKAP. Sentiasa semak output AI sebelum guna, guna version control, tulis prompt yang jelas, dan akui bila AI bantu.

3.3 Apa Pengajar Perlu TAHU vs BUAT

DomainPerlu TAHUPerlu BUAT
AI ToolsClaude Code, Codex, MCP, SkillsInstall, setup, guna setiap tool
PromptingAnatomi prompt, teknik, patternsTulis dan refine prompt dalam demo
Web DevHTML, CSS, JS, responsive designBaca dan debug kod AI
BackendSupabase, database, auth, RLSSetup dan debug backend
DeploymentCloudflare, DNS, domainDeploy dan troubleshoot
DebuggingCommon errors, systematic approachDebug live dalam kelas
PedagogiAdult learning, scaffolding, motivationRancang sesi, adapt ikut pelajar

3.4 Etika Pengajaran AI

  • Ketelusan: Maklumkan bila kod dijana AI. Jangan biarkan pelajar fikir anda tulis segalanya manual.
  • Batasan AI: AI boleh salah (halusinasi), tak faham konteks perniagaan, tak tahu trend terkini tanpa search.
  • Bias AI: AI ada bias dari data latihan. Ajar pelajar sedar dan betulkan bias.
  • Plagiarisme vs Kolaborasi: Bincang perbezaan guna AI untuk belajar vs meniru tanpa faham.
  • Privasi: Jangan masukkan data sensitif dalam prompt. Ajar pelajar tentang data security.

3.5 Membina Keyakinan Pelajar

  • Mulakan dengan hasil, bukan teori. Mula dengan "mari kita buat landing page." Teori datang kemudian.
  • Guna analogi: "Prompt macam memberi arahan kepada pembantu peribadi yang sangat pandai."
  • Pairing dengan AI: "Anda adalah CEO — tentukan hala tuju. AI adalah pekerja — execute."
  • Normalize I Don't Know: Cakap "Saya tak tahu, mari kita tanya AI sama-sama."
  • Celebrate effort, bukan hasil: "Bagus! Awak cuba pendekatan berbeza."
  • Peer showcase: Pelajar lihat hasil rakan. "Kalau dia boleh, saya pun boleh."
Bahagian 2: Toolkit Pengajar
Bab 4

Setup & Persediaan Mengajar

Checklist Pra-Kelas, Persekitaran Demo, dan Backup Plan

4.1 Checklist Pra-Kelas Komprehensif

Gunakan checklist ini untuk memastikan semuanya sedia sebelum sesi:

Hardware

  • Laptop 16GB+ RAM, SSD
  • Monitor kedua untuk demo
  • Projector/screen sharing
  • Internet stabil (backup hotspot)
  • Microphone & camera

Software & Akaun

  • VS Code + extensions
  • Node.js v18+ (verified)
  • Claude Code installed
  • Codex extension installed
  • Git configured

Akaun

  • Claude AI (Pro)
  • GitHub (login verified)
  • Supabase (project sedia)
  • Cloudflare (domain)
  • OpenAI (untuk Codex)

Bahan Mengajar

  • Modul pelajar (PDF/HTML)
  • Slide pengajar
  • Demo scripts (pra-uji)
  • Backup exercises
  • Template files

4.2 Persekitaran Demo

  • Dual Monitor: Satu skrin coding, satu browser/slide.
  • Font Size: 20px+ untuk visibility.
  • Projector: 1080p, test brightness.
  • Live Share: VS Code Live Share atau Zoom.
  • Audio: Test mic, guna headphones.

4.3 Backup Plan (KRITIKAL)

Internet Down:

Hotspot telefon. Bahan offline: PDF modul, slide, video recorded.

Tool Error:

Claude Code error -> Codex. Semua AI down -> sesi teori.

Pelajar Stuck:

5 diagnostic questions. Pair dengan pelajar lain.

4.4 Pre-Class Communication

Assalamualaikum [NAMA], SEBELUM SESI VIBE CODING [SESI], SILA: 1. Install Node.js v18+ dari https://nodejs.org 2. Install VS Code dari https://code.visualstudio.com 3. npm install -g @anthropic-ai/claude-code 4. Cari "Codex" dalam VS Code extensions 5. Buat akaun: GitHub, Supabase, Cloudflare Jika masalah setup, datang 30 minit awal. Terima kasih! [PENGAJAR]
Bab 5

Integrasi Superpowers Workflow

Golden Workflow, TDD, Debugging, Verification, Subagents, Worktrees

5.1 Overview Superpowers

Superpowers adalah workflow skills dalam Claude Code yang mengajar disiplin pembangunan. Ia memaksa pelajar berfikir sebelum bertindak, mengajar disiplin testing, melatih debugging berstruktur, dan membangunkan tabiat QA automatik.

5.2 The Golden Workflow

1. Brainstorming
Teroka idea, faham konteks, tanya soalan, dapatkan reka bentuk yang diluluskan.
2. Writing Plans
Tukar reka bentuk ke pelan implementasi langkah demi langkah dengan kriteria selesai.
3. Executing Plans
Laksanakan dengan checkpoint berkala, adjust jika perlu.

Guna dalam pengajaran: Sebelum sesi, brainstorm pendekatan, hasilkan pelan, execute untuk jana bahan.

5.3 TDD untuk Pengajar

  • RED: Tulis objektif pembelajaran — apa pelajar boleh buat selepas sesi.
  • GREEN: Ajar content yang memenuhi objektif tersebut.
  • REFACTOR: Refine pendekatan berdasarkan feedback pelajar.

5.4 Systematic Debugging

  1. Simptom: Apa terjadi vs apa sepatutnya?
  2. Hipotesis: 2-3 kemungkinan penyebab.
  3. Bukti: Log, error, console output.
  4. Punca: Root cause sebenar.
  5. Fix: Baiki dan sahkan.

5.5 Verification Before Completion

JANGAN cakap siap tanpa bukti. Ajar: run test, semak output, screenshot hasil.

5.6 Subagent-Driven Development

Guna subagent untuk jana 4 fail modul dalam 5 minit. Seorang research, seorang tulis.

5.7 Git Worktrees

Asingkan bahan mengajar dari projek demo. Tak bercampur, tak conflict.

Bab 6

Rujukan Tools & Skills

MCP Wajib, Skills Utama, Plugin Reference, Demo, Troubleshooting

6.1 Lima MCP Servers WAJIB

1. Playwright — Automasi Browser

Navigate, click, type, screenshot. Ajar: "Suruh Claude buka Google, cari vibe coding, screenshot hasil."

browser_navigate browser_snapshot browser_take_screenshot

2. Exa Web Search

Carian web semantik. Ajar: "Tanya Claude berita AI terkini dari web."

web_search_exa web_fetch_exa

3. Context7

Docs library terkini. Ajar: "Cari cara betul guna React useEffect."

resolve-library-id query-docs

4. Microsoft Learn

Dokumentasi rasmi Microsoft. Ajar: "Cari tutorial Azure Functions."

microsoft_docs_search

5. GitHub

Urus repo dari terminal. Ajar: "Buat repo dan push projek pertama."

authenticate

6.2 Empat Skills WAJIB

  • Brainstorming: Sebelum coding, brainstorm dulu.
  • TDD: Tulis test sebelum kod.
  • Systematic Debugging: Debug dengan sistem.
  • Verification Before Completion: Jangan cakap siap tanpa bukti.

6.3 Plugin Reference sebagai Senjata Rahsia

plugin-reference.html adalah "menu restoran" Claude Code. Buka, cari tool, dan ajar pelajar.

6.4 Demo Techniques

  • Live Demo: Paling berkesan, sediakan script.
  • Recorded: Selamat, boleh edit. Guna OBS/Loom.
  • Hybrid: Live + recorded backup.

6.5 MCP Troubleshooting

MasalahFix
Tool not foundCheck claude.jsonc, restart
Auth errorRe-authenticate
TimeoutSplit task
Rate limitedTunggu 60s
Permission deniedAllow tool
Bahagian 3: Kurikulum 8 Fasa
Bab 7

Fasa 1: Pengenalan & Setup

Claude Code + Codex Install, First Commands, dan Persediaan Tools

7.1 Objektif Pengajaran

Selepas fasa ini, pelajar boleh:

  1. Memasang dan mengkonfigurasi Claude Code dan Codex pada laptop masing-masing.
  2. Menjalankan command pertama dalam Claude Code (terminal) dan Codex (VS Code).
  3. Memahami perbezaan asas antara Claude Code dan Codex.
  4. Navigasi terminal, faham file structure, dan memberi arahan asas kepada AI.

7.2 Hasil Pelajar

  • Claude Code dan Codex terpasang dan berfungsi
  • Berjaya run "Hello World" dalam kedua-dua tool
  • Faham konsep asas Vibe Coding

7.3 Rancangan Sesi (2 jam)

0:00 - 0:15
Pengenalan: Apa itu Vibe Coding? Kenapa penting?
0:15 - 0:45
Install Claude Code: npm install -g @anthropic-ai/claude-code. Test dengan "Hello World"
0:45 - 1:15
Install Codex: VS Code extension. Test dengan "Hello World"
1:15 - 1:45
Demo perbezaan: prompt sama dalam kedua-dua tool. Bincang bila guna yang mana.
1:45 - 2:00
Q&A, troubleshooting installation

7.4 Demo Script

# Demo 1: Claude Code # Buka terminal. Pastikan Node.js dah installed. node --version # Install Claude Code npm install -g @anthropic-ai/claude-code # Run Claude Code claude # Dalam Claude Code, taip: "Buat fail simple index.html dengan teks 'Hello Vibe Coding!'. Guna HTML5 standard." # Demo 2: Codex # Buka VS Code. Buka Codex (Ctrl+Shift+P > Codex: Start). # Dalam Codex prompt, taip: "Buat fail HTML dengan button yang warna biru. Bila klik, show alert 'Hello!'"

7.5 Talking Points

  • Vibe Coding adalah tentang niat dan arahan, bukan syntax.
  • Claude Code = research + quality. Codex = speed + action.
  • Error adalah normal. Baca error message, jangan panik.
  • AI boleh silap. Sentiasa semak output.
  • Prompt yang jelas = output yang baik.

7.6 Common Student Struggles

  • Node.js tak dikenali: Guna command prompt sebagai administrator, restart terminal.
  • npm install error: Check internet connection, firewall, proxy settings.
  • Claude Code tak respond: Check subscription status.
  • Codex tak muncul: Install dari VS Code extensions marketplace.

7.7 Tips & Tricks

  • Sediakan USB dengan Node.js installer untuk pelajar tanpa internet laju.
  • Guna command yang sama dalam Claude Code dan Codex untuk tunjuk perbezaan.
  • Ajar shortcut: Ctrl+C untuk cancel command, arrow up untuk repeat.
  • Buat group chat untuk pelajar tanya soalan.

7.8 Assessment Criteria

  • Pelajar boleh buka Claude Code dan taip prompt pertama.
  • Pelajar boleh buka Codex dan hasilkan kod.
  • Pelajar boleh explain beza Claude Code vs Codex dalam 1 ayat.

7.9 Bahan Rujukan

Lihat: modul/fasa-01-pengenalan/panduan-pengajar.html, modul/fasa-01-pengenalan/modul-pelajar.html, modul/setup/install-claude-code.html, modul/setup/install-codex.html

Bab 8

Fasa 2: Seni Prompting

Anatomi Prompt, 10 Latihan, dan Cheat Sheet Prompting

8.1 Objektif Pengajaran

  1. Memahami struktur prompt yang berkesan: Context + Instruction + Constraint.
  2. Dapat menulis prompt yang jelas dan spesifik untuk hasil yang konsisten.
  3. Menguasai 5 teknik prompting: Template, Chain, Role-Play, Few-Shot, Constraint.
  4. Membina perpustakaan prompt peribadi untuk rujukan masa depan.

8.2 Hasil Pelajar

  • Template prompt peribadi (minimum 5 template)
  • 10 hasil prompting lengkap
  • Cheatsheet prompting untuk rujukan

8.3 Rancangan Sesi (2.5 jam)

0:00 - 0:20
Anatomi prompt: Context + Instruction + Constraint. Contoh baik vs buruk.
0:20 - 1:00
5 latihan prompting: HTML page, CSS design, JS function, responsive layout, form.
1:00 - 1:30
Iterative prompting: refine output step by step. Tunjukkan 5 iterasi.
1:30 - 2:00
5 teknik prompting dengan contoh live.
2:00 - 2:30
Bina perpustakaan prompt. Share dengan class.

8.4 Demo Script: Iterative Prompting

# Iterasi 1 — Basic "Bina navigation bar untuk website." # Iterasi 2 — Tambah detail "Bina navigation bar horizontal dengan link: Home, About, Services, Contact. Warna biru gelap background, putih teks." # Iterasi 3 — Responsif "Sama macam atas, tapi jadikan responsive. Pada mobile, menu jadi hamburger (toggle)." # Iterasi 4 — Sticky + Animasi "Tambah position sticky di atas, dan smooth transition bila hover pada link." # Iterasi 5 — Brand + Active state "Tambah logo brand di kiri, dan active state untuk page semasa. Guna CSS Flexbox."

8.5 Talking Points

  • Prompt yang baik = konteks yang cukup + arahan jelas + constraint spesifik.
  • Lebih detail prompt, lebih tepat output. Tapi jangan terlalu panjang.
  • Guna Bahasa Melayu untuk konteks, English untuk technical terms.
  • Iterasi adalah kunci. Prompt pertama jarang sempurna.
  • Simpan prompt terbaik dalam perpustakaan peribadi.

8.6 Common Student Struggles

  • Prompt terlalu umum: Ajar tambah context. "Bina website" -> "Bina landing page untuk kedai kopi."
  • Output tak tepat: Ajar refine dengan feedback spesifik. "Tukar warna merah ke biru."
  • AI halusinasi: Ajar verify dengan web search atau Context7.
  • Terlalu panjang prompt: Ajar pecah kepada langkah kecil.

8.7 Tips

  • Guna template: "Saya nak [objek]. Untuk [tujuan]. Guna [teknologi]. Constraint: [had]."
  • Role-play: "Awak adalah expert frontend developer. Bina component X."
  • Chain prompting: split complex task kepada sub-prompts.

8.8 Assessment

  • Pelajar boleh tulis prompt yang menghasilkan kod berfungsi.
  • Pelajar boleh refine prompt berdasarkan output.
  • Pelajar ada minimum 5 template prompt.

8.9 Bahan Rujukan

Lihat: modul/fasa-02-prompting/panduan-pengajar.html, modul/fasa-02-prompting/modul-pelajar.html, modul/fasa-02-prompting/latihan.html, modul/fasa-02-prompting/rujukan.html, modul/lampiran/prompt-library.html

Bab 9

Fasa 3: Landing Page Pertama

Idea ke Wireframe ke Code ke Preview — Projek Hands-On Pertama

9.1 Objektif Pengajaran

  1. Transformasi idea kepada landing page yang berfungsi sepenuhnya.
  2. Memahami struktur asas HTML dan CSS melalui AI-generated code.
  3. Menguasai Frontend Design Skill untuk hasilkan reka bentuk unik.
  4. Debug visual menggunakan browser developer tools.

9.2 Hasil Pelajar

  • Landing page 1 halaman, responsive (mobile + desktop)
  • Hero section, features grid, footer
  • Live preview di localhost

9.3 Rancangan Sesi (3 jam)

0:00 - 0:20
Brainstorm idea landing page. Pilih tema (kedai, portfolio, produk).
0:20 - 0:50
Prompt untuk hasilkan struktur HTML asas.
0:50 - 1:30
Design dengan Frontend Design Skill. Pilih warna, font, style.
1:30 - 2:00
Responsive design: mobile-first approach.
2:00 - 2:30
Debug visual dengan browser DevTools.
2:30 - 3:00
Showcase dan feedback.

9.4 Demo Script

# Step 1: Brainstorm "Brainstorm konsep untuk landing page kafe artisan. Cadangkan 3 theme berbeza." # Step 2: Generate HTML "Bina landing page untuk 'Kopi Kita' — kafe artisan di Kuala Lumpur. Hero: gambar latar kopi, tagline 'Rasa Kopi, Rasa Kita', CTA button. Features: 3 card — Kopi Pilihan, Suasana Nyaman, Wi-Fi Percuma. Footer: alamat, jam operasi, social media links. Guna warna hangat: coklat #4A3728, krim #FFF8F0, burnt orange #D35400." # Step 3: Refine dengan UI/UX Pro Max "Guna UI/UX Pro Max. Pilih gaya 'Warm Minimalist'. Pairing font: Playfair Display untuk heading, Inter untuk body." # Step 4: Responsif "Jadikan landing page ni mobile-first responsive. Pada mobile (<768px): stacking cards, smaller text, hamburger menu."

9.5 Talking Points

  • Design thinking: fikir tentang pengguna, bukan hanya tentang code.
  • Mobile-first adalah standard industri.
  • Warna dan font tentukan "rasa" website.
  • Browser DevTools untuk debug visual.

9.6 Struggles

  • Tak puas hati dengan design: Ajar beri feedback spesifik pada AI.
  • Responsif tak jalan: Guna Chrome DevTools, check media queries.
  • Image tak muat: Guna placeholder (via placeholder.com) atau CSS background-size.

9.7 Tips

  • Guna Frontend Design Skill atau UI/UX Pro Max untuk design yang unik.
  • Simpan beberapa versi design — boleh banding dan pilih.
  • Ajar inspect element untuk "copy" design yang digemari.

9.8 Assessment

  • Landing page responsive dengan hero, features, footer.
  • Code berfungsi tanpa error.
  • Pelajar boleh explain setiap section.

9.9 Bahan Rujukan

Lihat: modul/fasa-03-landing-page/panduan-pengajar.html, modul/fasa-03-landing-page/modul-pelajar.html, modul/fasa-03-landing-page/rujukan.html, modul/fasa-03-landing-page/latihan.html

Bab 10

Fasa 4: Tools & Skills

MCP Servers, Skills, Playwright, Exa, Context7, dan Productivity Workflow

10.1 Objektif Pengajaran

  1. Memahami konsep MCP (Model Context Protocol) dan cara ia memperluaskan keupayaan AI.
  2. Menguasai 5 MCP Server utama: Playwright, Exa, Context7, Microsoft Learn, GitHub.
  3. Menggunakan Skills untuk workflow yang teratur dan efisien.
  4. Membina workflow peribadi dengan kombinasi MCP + Skills.

10.2 Hasil Pelajar

  • Boleh guna 5+ MCP tools dengan yakin
  • Faham bila dan kenapa guna setiap tool
  • Workflow peribadi untuk projek akan datang

10.3 Rancangan Sesi (3 jam)

0:00 - 0:20
Apa itu MCP? Analogi: "plugin untuk Claude."
0:20 - 1:00
Demo Playwright: navigate, screenshot, click, fill form.
1:00 - 1:30
Demo Exa + Context7: research dan docs look-up.
1:30 - 2:00
Skills: Brainstorming, TDD, Debugging, Verification.
2:00 - 2:30
Plugin reference: "menu restoran" Claude Code.
2:30 - 3:00
Latihan praktikal: guna 3 MCP tools untuk selesaikan task.

10.4 Demo Script

# Demo Playwright "Guna Playwright. Navigate ke https://example.com. Ambil screenshot. Kemudian klik link 'More information.' Ambil snapshot struktur halaman." # Demo Exa "Cari berita terkini tentang AI di Malaysia. Guna web_search_exa. Ringkaskan top 3 berita." # Demo Context7 "Cari cara betul guna Next.js App Router. Guna resolve-library-id dulu, lepas tu query-docs." # Demo Skills "Guna Brainstorming skill. Saya nak bina app untuk追踪 task harian. Bantu saya brainstorm."

10.5 Talking Points

  • MCP adalah "superpowers" untuk Claude — ia membolehkan AI interact dengan dunia luar.
  • Playwright: browser automasi — test, scrape, screenshot.
  • Exa: web search — research terkini, fakta, harga, berita.
  • Context7: documentation — pastikan API yang guna adalah betul dan terkini.
  • Skills: workflow templatized — guna semula pola yang proven.

10.6 Struggles

  • Lupa tool name: Buka plugin-reference.html, cari.
  • MCP tak respond: Check internet, restart Claude Code.
  • Confused bila guna apa: Playwright = browser, Exa = web, Context7 = docs.

10.7 Tips

  • Print plugin-reference sebagai poster dinding kelas.
  • Buat "MCP of the day" — setiap sesi fokus satu MCP baru.
  • Ajar pelajar search dalam plugin-reference.

10.8 Assessment

  • Pelajar boleh guna Playwright untuk screenshot.
  • Pelajar boleh guna Exa untuk cari info terkini.
  • Pelajar boleh explain apa itu MCP dalam 2 ayat.

10.9 Bahan Rujukan

Lihat: modul/fasa-04-tools-skills/panduan-pengajar.html, modul/fasa-04-tools-skills/modul-pelajar.html, modul/fasa-04-tools-skills/latihan.html, modul/fasa-04-tools-skills/rujukan.html, plugin-reference.html

Bab 11

Fasa 5: Multi-Page Portfolio

Navigasi, Responsive, Form, Komponen, Animasi — Portfolio Peribadi

11.1 Objektif Pengajaran

  1. Membina portfolio multi-page (3-5 halaman) yang responsive dan profesional.
  2. Menguasai navigasi antara halaman, component reuse, dan form handling.
  3. Mengaplikasikan animasi CSS dan micro-interactions.
  4. Memahami organisasi fail untuk projek web.

11.2 Hasil Pelajar

  • Portfolio website 3-5 pages (Home, About, Projects, Contact)
  • Contact form dengan validation
  • Mobile-first responsive design
  • Navbar dan footer reusable

11.3 Rancangan Sesi (3.5 jam)

0:00 - 0:20
Perancangan portfolio: content, pages, struktur fail.
0:20 - 1:00
Generate struktur multi-page dengan AI. Organisasi fail.
1:00 - 1:45
Responsive navbar, footer, component system.
1:45 - 2:30
Contact form dengan validation. Animasi CSS.
2:30 - 3:00
Projects page: card grid, hover effects.
3:00 - 3:30
Polishing, testing responsive, showcase.

11.4 Demo Script

# Step 1: Plan structure "Bantu saya rancang struktur portfolio peribadi. Saya nak 4 pages: Home, About, Projects, Contact. Setiap page perlu navbar dan footer yang sama." # Step 2: Generate "Bina portfolio website 4 page. Guna HTML, CSS, JavaScript vanilla. Navbar sticky, footer dengan social links. Mobile-first responsive. Folder structure: /index.html, /about.html, /projects.html, /contact.html" # Step 3: Component system "Buat reusable component untuk project card. Card kena ada: gambar, title, description, tags, link. Guna CSS Grid untuk display cards." # Step 4: Contact form "Tambah contact form dengan validation. Fields: nama, email, message. Validation: email format betul, semua field wajib diisi. Show success message bila submit."

11.5 Talking Points

  • Organisasi fail penting untuk projek besar. Pisahkan HTML, CSS, JS.
  • Komponen reusable = DRY (Don't Repeat Yourself).
  • Mobile-first: design untuk phone dulu, baru desktop.
  • Form validation penting untuk UX dan data quality.
  • Animasi CSS tambah "life" pada website.

11.6 Struggles

  • Kod jadi panjang: Ajar guna partials/components dan external CSS/JS.
  • Navigasi tak jalan: Check href path — relative paths.
  • Form tak submit: Check form action, JavaScript validation errors.
  • CSS bertindih: Guna class naming yang konsisten (BEM).

11.7 Tips

  • Guna template portfolio dari latihan.html.
  • Ajar pelajar "curate" portfolio mereka — pilih projek terbaik.
  • Guna animasi CSS secara sederhana — jangan berlebihan.

11.8 Assessment

  • Portfolio 3+ pages, semua page accessible dari navbar.
  • Responsive — check mobile, tablet, desktop.
  • Contact form berfungsi dengan validation.

11.9 Bahan Rujukan

Lihat: modul/fasa-05-portfolio/panduan-pengajar.html, modul/fasa-05-portfolio/modul-pelajar.html, modul/fasa-05-portfolio/rujukan.html, modul/fasa-05-portfolio/latihan.html

Bab 12

Fasa 6: Database & Backend dengan Supabase

CRUD, Auth, RLS, Storage — Backend Tanpa Server

12.1 Objektif Pengajaran

  1. Memahami konsep backend, database, dan API (untuk beginner).
  2. Setup projek Supabase dan connect ke frontend.
  3. CRUD operations: Create, Read, Update, Delete melalui Supabase.
  4. Authentication: login/signup dengan Supabase Auth.
  5. Row Level Security (RLS) untuk kawalan akses data.

12.2 Hasil Pelajar

  • Aplikasi dengan CRUD dan database di cloud
  • Sistem login/signup berfungsi
  • Data dilindungi dengan RLS

12.3 Rancangan Sesi (3.5 jam)

0:00 - 0:30
Konsep backend: database, API, client-server. Guna analogi restoran.
0:30 - 1:00
Setup Supabase: akaun, project baru, dapatkan API keys.
1:00 - 1:45
CRUD: bina todo list atau blog system.
1:45 - 2:30
Authentication: signup, login, logout, protected pages.
2:30 - 3:00
RLS: pastikan user hanya nampak data sendiri.
3:00 - 3:30
Storage: upload gambar/profile picture.

12.4 Demo Script

# Setup Supabase project "Bantu saya setup projek Supabase baru untuk todo app. Buat table 'todos' dengan columns: id, title, completed, created_at, user_id." # Generate connection code "Generate JavaScript code untuk sambung ke Supabase. Guna Supabase client library. .env untuk simpan SUPABASE_URL dan SUPABASE_ANON_KEY." # CRUD operations "Bina CRUD functions untuk table todos: - Create: insert new todo - Read: fetch all todos for current user - Update: toggle completed status - Delete: remove todo" # Authentication "Tambah login/signup pages. Guna Supabase Auth dengan email + password. Redirect ke dashboard selepas login. Protected route: jika tak login, redirect ke login page."

12.5 Talking Points

  • Database menyimpan data secara kekal. Tak hilang bila refresh.
  • API adalah "waiter" antara frontend dan database.
  • Auth penting untuk personalisasi dan keselamatan.
  • RLS: "user hanya nampak data dia sendiri."

12.6 Struggles

  • Connection error: Check .env, URL, anon key.
  • Data tak masuk: Check RLS policy, SQL query.
  • Auth tak jalan: Check Supabase Auth settings, redirect URLs.
  • CORS error: Guna Supabase client library, bukan fetch langsung.

12.7 Tips

  • Guna Supabase dashboard untuk tengok data secara visual.
  • Mulakan dengan table simple (2-3 columns) sebelum complex.
  • RLS default adalah "deny all" — perlu enable manually.

12.8 Assessment

  • CRUD berfungsi — data masuk, keluar, diupdate, dipadam.
  • Login/signup berfungsi — user boleh register dan login.
  • RLS aktif — user A tak nampak data user B.

12.9 Bahan Rujukan

Lihat: modul/fasa-06-supabase/panduan-pengajar.html, modul/fasa-06-supabase/modul-pelajar.html, modul/fasa-06-supabase/latihan.html, modul/fasa-06-supabase/rujukan.html

Bab 13

Fasa 7: Full Stack Dashboard

Dashboard Interaktif, Data Visualization, Search, Filter, Real-time Updates

13.1 Objektif Pengajaran

  1. Membina dashboard interaktif yang display data live dari Supabase.
  2. Menguasai data visualization dengan chart dan graf.
  3. Search dan filter dengan query parameters.
  4. Real-time updates dengan Supabase Realtime subscriptions.
  5. User roles dan permissions (admin vs user).

13.2 Hasil Pelajar

  • Dashboard app berfungsi penuh dengan data live
  • Chart/graf interaktif
  • Search + filter + pagination
  • Real-time updates

13.3 Rancangan Sesi (4 jam)

0:00 - 0:30
Seni bina full-stack: frontend -> Supabase -> database.
0:30 - 1:30
Dashboard layout: sidebar, stats cards, tables.
1:30 - 2:30
Chart integration: Chart.js, data dari Supabase.
2:30 - 3:00
Search dan filter functionality.
3:00 - 3:30
Real-time updates dengan Supabase Realtime.
3:30 - 4:00
Testing, debugging, showcase.

13.4 Demo Script

# Generate dashboard layout "Bina dashboard admin dengan layout berikut: - Left sidebar dengan menu: Dashboard, Users, Settings - Top bar dengan search, notification bell, user avatar - Main content area dengan stats cards (4 cards: Total Users, Revenue, Orders, Growth) - Responsive: sidebar collapse pada mobile Guna CSS Grid untuk layout." # Chart integration "Tambah chart di dashboard: - Line chart untuk revenue bulanan - Bar chart untuk users by month - Pie chart untuk order categories Guna Chart.js. Data dari Supabase table." # Search and filter "Tambah search bar untuk cari users. Filter by status: Active, Inactive, All. Pagination: 10 users per page. Query Supabase dengan ilike dan range." # Real-time "Guna Supabase Realtime subscriptions. Bila ada data baru dalam table, dashboard update automatik. Tunjuk notification badge bila ada perubahan."

13.5 Talking Points

  • Dashboard adalah "command centre" untuk aplikasi.
  • Visualisasi data membantu membuat keputusan lebih cepat.
  • Real-time updates memberikan pengalaman yang responsive.
  • Search dan filter adalah feature wajib untuk usability.
  • Performance optimization: pagination, indexing, caching.

13.6 Struggles

  • Chart tak muncul: Check data format, Chart.js version.
  • Real-time slow: Check subscription setup, network.
  • Search lambat: Add database index on search columns.
  • Dashboard layout broken: Debug CSS Grid/Flexbox.

13.7 Tips

  • Mulakan dengan layout static, lepas tu tambah data live.
  • Guna Chart.js — library paling mudah untuk beginner.
  • Realtime: subscribe kepada channel spesifik, bukan semua table.

13.8 Assessment

  • Dashboard display data dari Supabase dengan betul.
  • Chart menunjukkan data yang tepat.
  • Search dan filter berfungsi.
  • Real-time updates berfungsi.

13.9 Bahan Rujukan

Lihat: modul/fasa-07-dashboard/panduan-pengajar.html, modul/fasa-07-dashboard/modul-pelajar.html, modul/fasa-07-dashboard/rujukan.html, modul/fasa-07-dashboard/latihan.html

Bab 14

Fasa 8: Production & Deployment

Cloudflare, Codex Deploy, Domain, HTTPS, Go-Live

14.1 Objektif Pengajaran

  1. Deploy aplikasi ke internet menggunakan Cloudflare Pages dan Codex Deploy.
  2. Setup custom domain dengan HTTPS.
  3. Mengurus environment variables dan secrets.
  4. Monitoring dan debugging asas untuk production.
  5. Go-Live checklist dan next steps selepas kelas.

14.2 Hasil Pelajar

  • Aplikasi live di URL sebenar (https://nama.kodomain.com)
  • Portfolio siap untuk showcase
  • Faham process deployment

14.3 Rancangan Sesi (2.5 jam)

0:00 - 0:20
Konsep deployment: dari localhost ke internet.
0:20 - 1:00
Deploy ke Cloudflare Pages: connect GitHub, auto-deploy.
1:00 - 1:30
Setup custom domain: beli domain, set DNS, HTTPS.
1:30 - 2:00
Environment variables dan production secrets.
2:00 - 2:30
Go-Live checklist. Next steps: roadmap selepas kelas.

14.4 Demo Script

# Deploy ke Cloudflare Pages "Bantu saya deploy portfolio ke Cloudflare Pages. 1. Push code ke GitHub repository 2. Connect repo ke Cloudflare Pages 3. Build settings: framework = none (static), output = root 4. Deploy!" # Setup custom domain "Beli domain 'nama.com' dari Cloudflare Registrar. Setup DNS records: - A record @ -> Cloudflare IP - CNAME www -> nama.com Enable SSL/TLS (Full). Set page rule: redirect www -> apex." # Environment variables "Tambah SUPABASE_URL dan SUPABASE_ANON_KEY sebagai environment variables di Cloudflare Pages. Jangan simpan dalam code — guna process.env."

14.5 Talking Points

  • Deployment adalah process "ship" — dari development ke production.
  • Cloudflare Pages: hosting percuma, fast CDN, auto-HTTPS.
  • Custom domain = profesional. Domain murah (RM30-50/tahun).
  • Environment variables: jangan simpan secrets dalam code.
  • Production vs development: sentiasa test di production.

14.6 Struggles

  • Build fail: Check build settings, logs.
  • Domain tak指向: DNS propagation ambil masa (5 min - 24 jam).
  • HTTPS error: Check SSL setting di Cloudflare.
  • API keys tak jalan: Check environment variables.

14.7 Tips

  • Guna Cloudflare Pages untuk static sites, Workers untuk dynamic.
  • Domain murah: Cloudflare Registrar (harga kos).
  • Auto-deploy: push ke GitHub, Cloudflare deploy automatik.
  • Sentiasa test di production sejurus selepas deploy.

14.8 Assessment

  • Aplikasi live di URL awam.
  • HTTPS berfungsi (gembok hijau di browser).
  • Semua feature berfungsi di production.
  • Pelajar boleh explain process deployment.

14.9 Bahan Rujukan

Lihat: modul/fasa-08-deployment/panduan-pengajar.html, modul/fasa-08-deployment/modul-pelajar.html, modul/fasa-08-deployment/rujukan.html, modul/fasa-08-deployment/latihan.html

Modul Tambahan
Bab 14A

Modul Tambahan: GitHub & Version Control

Asas Git, GitHub, Branching, Pull Request, dan GitHub MCP untuk Vibe Coder

14A.1 Kenapa GitHub Penting untuk Vibe Coding?

Git dan GitHub adalah kemahiran yang bukan pilihan — ia adalah wajib. Dalam konteks Vibe Coding, AI akan membuat banyak perubahan pada kod anda dengan pantas. Tanpa version control, setiap perubahan adalah risiko. Dengan Git, anda mempunyai "jaring keselamatan" yang membolehkan anda mencuba apa sahaja tanpa takut kehilangan kerja.

GitHub pula adalah platform yang menghubungkan Vibe Coder dengan ekosistem yang lebih luas: deployment automatik (CI/CD), kolaborasi dengan rakan sepasukan, showcase portfolio, dan akses kepada komuniti open-source yang besar. Pelajar yang menguasai GitHub mempunyai kelebihan yang ketara dalam pasaran kerja.

14A.2 Topik Utama dalam Modul GitHub

TopikPeneranganMasa
git initMemulakan repository baru dalam folder projek10 min
git add & git commitStage perubahan dan simpan sebagai checkpoint20 min
git push & git pullSync repository tempatan dengan GitHub di cloud15 min
git cloneMenyalin repo dari GitHub ke komputer tempatan10 min
Branch & MergeBekerja pada feature berasingan tanpa ganggu main branch25 min
Pull Request (PR)Minta rakan sepasukan review kod sebelum merge20 min
GitHub IssuesTracking bugs, feature requests, dan task management15 min
GitHub MCPUrus repo terus dari Claude Code — buat repo, push, manage PR15 min

14A.3 Cara Mengajar Git kepada Beginner

Git adalah konsep yang abstrak bagi pelajar baru. Gunakan analogi-analogi ini untuk memudahkan pemahaman:

Analogi 1: Save Point dalam Game

"Git ibarat save point dalam game RPG. Sebelum lawan boss besar (buat perubahan besar), you save dulu. Kalau mati (kod rosak), you boleh load save point terakhir. git commit adalah save point. git checkout adalah load."

Analogi 2: Mesin Masa

"Git adalah mesin masa untuk kod anda. Boleh kembali ke masa lalu, lihat apa yang berlaku, dan kalau perlu, ubah sejarah. Git log adalah diari perjalanan masa. Git diff adalah apa yang berubah antara dua titik masa."

Analogi 3: Google Docs Version History

"Pernah guna 'Lihat sejarah' dalam Google Docs? Git melakukan perkara yang sama untuk kod — tetapi lebih power. Setiap perubahan direkodkan, boleh lihat siapa buat apa, dan boleh kembali ke versi lama bila-bila masa."

14A.4 Common Mistakes & Cara Handle

MistakeAkibatPenyelesaian
Lupa buat commit sebelum AI editTak boleh revert ke versi asalBiasakan git add . && git commit sebelum setiap prompt baru
Commit message tak bermaknaSusah tracking perubahan"fix" -> "Fix: responsive navbar pada mobile viewport"
Push ke branch salahKod bercampur atau overwriteCheck git branch sebelum push. Guna git status.
Conflict semasa mergeGit tak tahu versi mana nak simpanBaca conflict markers, decide satu versi, atau guna AI untuk resolve
Node_modules di-commitRepo jadi berat dan slowGuna .gitignore dari awal. Tambah node_modules/ dalam fail
Lupa push — kerja hilang bila laptop rosakData hanya di tempatanPush selepas setiap sesi. Buat habit harian.

14A.5 Session Plan Summary (2-3 jam)

0:00 - 0:20
Apa itu Version Control? Kenapa Git penting? Analogi save point & mesin masa.
0:20 - 0:50
Praktikal: git init, add, commit. Buat first commit dari projek sedia ada.
0:50 - 1:10
GitHub: buat repo, connect remote, push. SSH key setup.
1:10 - 1:40
Branch & Merge: buat branch feature, buat perubahan, merge balik.
1:40 - 2:10
Pull Request: buat PR, review, merge. Latihan berpasangan.
2:10 - 2:30
GitHub Issues & Project Management. GitHub MCP. Q&A.

14A.6 Bahan Rujukan

Lihat: modul/fasa-09-github/panduan-pengajar.html, modul/fasa-09-github/modul-pelajar.html, modul/fasa-09-github/git-cheatsheet.html

Bab 14B

Modul Tambahan: Deployment Platforms

Perbandingan 10 Platform Deployment untuk Vibe Coder

14B.1 Kenapa Perbandingan Deployment Penting?

Vibe Coder boleh menghasilkan aplikasi dengan pantas — tetapi aplikasi itu hanya berguna jika ia boleh diakses oleh orang lain. Deployment adalah jambatan antara "app di laptop saya" dan "app yang boleh guna seluruh dunia." Memilih platform deployment yang betul memberi impak besar kepada kos, performance, kemudahan, dan skalabiliti aplikasi.

Dalam modul ini, pelajar akan belajar membandingkan 10 platform deployment popular, memahami kekuatan dan kelemahan masing-masing, dan membuat keputusan yang tepat berdasarkan jenis projek yang mereka bina.

14B.2 10 Platform Deployment — Perbandingan Lengkap

PlatformJenis HostingTier PercumaKelebihan UtamaSesuai Untuk
Cloudflare PagesStatic & JAMstackYa (unlimited requests)CDN global, HTTPS auto, integration dengan Cloudflare WorkersStatic sites, portfolio, landing pages
NetlifyStatic & ServerlessYa (100GB bandwidth)Form handling, serverless functions, deploy previewsJamstack apps, forms, serverless functions
VercelFrontend CloudYa (100GB bandwidth)Next.js native, serverless functions, edge functionsNext.js apps, frontend frameworks
GitHub PagesStaticYa (unlimited)Integration terus dengan GitHub, percuma sepenuhnyaPersonal pages, documentation, portfolio ringkas
RailwayFull StackYa ($5 kredit percuma)Full-stack deployment, databases, monitoringFull-stack apps, database-dependent projects
RenderFull StackYa (terhad)Static, web services, cron jobs, PostgreSQLWeb services, APIs, background jobs
Fly.ioContainerYa (3 VMs percuma)Edge deployment, container-based, global regionsContainerised apps, global low-latency apps
SupabaseBackend PlatformYa (2 projects)Database, auth, storage, realtime — semua dalam satuApps perlukan backend lengkap tanpa setup server
AWS AmplifyFull StackYa (terhad)Integration penuh dengan AWS ecosystem, GraphQLEnterprise apps, AWS-heavy stack
Azure Static WebStatic & ServerlessYa (terhad)Integration dengan Azure Functions, Microsoft ecosystemEnterprise .NET/Azure apps

14B.3 Decision Guide — Platform untuk Projek Anda

JENIS PROJEK?
|||
Static Site / Portfolio?
--> Cloudflare Pages / GitHub Pages
Full-Stack App / Database?
--> Railway / Render / Fly.io
Next.js / Framework App?
--> Vercel / Netlify
Backend-heavy / Auth / DB?
--> Supabase + Cloudflare Pages
Enterprise / Azure Stack?
--> Azure Static Web / AWS Amplify

14B.4 Cara Mengajar Deployment kepada Beginner

Deployment adalah konsep yang sukar difahami oleh pelajar baru kerana ia melibatkan konsep abstrak seperti server, DNS, dan domain. Pendekatan pengajaran yang disyorkan:

  1. Mulakan dengan hasil: Tunjukkan URL live aplikasi yang berfungsi. "Inilah yang kita nak capai — app awak di internet."
  2. Analogi rumah: "Localhost adalah rumah anda — hanya anda boleh masuk. Deployment adalah pindah ke rumah baru di alamat awam — semua orang boleh datang."
  3. Mula dengan yang termudah: GitHub Pages atau Cloudflare Pages untuk static site adalah yang paling mudah. Tiada build step, tiada configuration rumit. Cukup push code ke repo dan deploy.
  4. Baru advanced: Selepas selesa dengan deployment static, baru ajar deployment full-stack dengan environment variables, database connection, dan serverless functions.
  5. Guna AI untuk troubleshoot: Jika deployment gagal, gunakan AI untuk diagnose error. "Deployment saya gagal dengan error [paste]. Tolong diagnose dan suggest fix."
Peringatan:

Jangan ajar semua 10 platform dalam satu sesi! Pilih 2-3 platform yang paling relevan dengan kurikulum anda. Biarkan pelajar explore platform lain secara sendiri menggunakan modul rujukan.

14B.5 Session Plan Summary (2-3 jam)

0:00 - 0:20
Konsep deployment: dari localhost ke internet. Analogi rumah & alamat.
0:20 - 1:00
Cloudflare Pages: daftar, connect GitHub, deploy static site. Live demo.
1:00 - 1:30
Platform kedua (Railway/Render): deploy full-stack app dengan database.
1:30 - 2:00
Custom domain: beli domain, setup DNS, HTTPS. Hands-on.
2:00 - 2:30
Environment variables, production secrets, monitoring asas.
2:30 - 3:00
Perbandingan platform: bila guna yang mana. Q&A, troubleshooting.

14B.6 Bahan Rujukan

Lihat: modul/fasa-10-deployment-platforms/panduan-pengajar.html, modul/fasa-10-deployment-platforms/modul-pelajar.html, modul/fasa-10-deployment-platforms/platform-comparison.html, modul/fasa-10-deployment-platforms/rujukan.html

Bahagian 4: Fasilitasi Masteri
Bab 15

Seni Demo Langsung

Persediaan, Struktur SEDAP, Demo Theatre, dan Recovery daripada Failure

15.1 Persediaan Demo — 10 Item Checklist

  • Test semua command dan prompt dalam environment yang sama dengan pelajar
  • Close aplikasi yang tidak perlu — elak gangguan semasa demo
  • Sediakan dua monitor: satu untuk coding, satu untuk browser/slide
  • Font size dibesarkan (20px+) supaya nampak di projector
  • Test audio dan screen sharing (jika online)
  • Sediakan backup: recorded video demo
  • Screenshot hasil akhir sebagai "bukti" apa yang akan dihasilkan
  • Reset projek demo ke keadaan "kosong" sebelum mula
  • Check internet connection — pastikan stabil
  • Breathe. Senyum. Anda dah bersedia.

15.2 Struktur S.E.D.A.P.

Framework 5 langkah untuk demo yang berkesan:

  1. S — Setup: Terangkan apa yang akan dibina. "Hari ni kita nak buat login form." Tunjukkan hasil akhir dulu — beri pelajar "visi."
  2. E — Explain: Terangkan pendekatan. "Kita akan guna Supabase Auth + HTML form. AI akan tulis code, kita semak."
  3. D — Demonstrate: Lakukan live. Taip prompt, tunjuk output, tunjuk preview. Jika ada error, tunjuk cara handle.
  4. A — Ask: Tanya soalan pemahaman. "Apa yang baru jadi? Kenapa code ni guna async/await? Cuba teka apa jadi lepas ni."
  5. P — Practice: Beri pelajar masa untuk cuba sendiri. "Sekarang giliran awak. Cuba hasilkan form yang sama."

15.3 Demo Theatre — Jadikan Demo Entertaining

Demo yang baik bukan sekadar tunjuk teknikal — ia adalah persembahan.

  • Storytelling: "Bayangkan kita nak bina app yang akan digunakan oleh 1000 orang." Buat cerita, bukan sekadar feature.
  • Humor: "Error ni famous — namanya 'The Classic Syntax Error.'" Jenaka teknikal ringan.
  • Suspense: "Jom kita tengok apa yang AI akan hasilkan... 3... 2... 1... Boom!"
  • Show, don't just tell: Daripada explain konsep "responsive," tunjuk website yang berubah bila resize.

15.4 Handling Demo Failures

Demo failure bukan penghujung dunia — ia peluang pembelajaran terbaik.

  1. Laugh it off: "Classic demo moment! Nasib baik kita guna AI, dia boleh fix." Tersenyum, jangan panik.
  2. Debug together: "Mari kita debug sama-sama. Error apa dia cakap?" Jadikan pengalaman pembelajaran.
  3. Pivot: "OK, approach ni tak jalan. Cuba approach lain." Tunjukkan flexibility.
  4. Backup plan: "Takpe, saya ada video demo yang saya rakam tadi." Mainkan video.
  5. Admit dan move on: "Saya tak tahu kenapa ni jadi. Mari kita cari jawatan sama-sama selepas kelas."
Golden Rule Demo:

Jika demo gagal, jangan pura-pura ia tak berlaku. Pelajar akan lebih respect jika anda handle kegagalan dengan grace daripada jika anda pretend everything is fine.

15.5 Recording Demo untuk Self-Paced Learners

  • Tools: OBS Studio (percuma, open-source), Loom (convenient), ScreenPal.
  • Teknik: Rakam dalam segmen pendek (5-10 minit setiap satu).
  • Voiceover: Explain apa yang berlaku, kenapa, dan apa yang akan jadi.
  • Edit: Potong bahagian yang "masa menunggu" atau error yang tak relevan.
  • Caption: Tambah subtitle BM untuk aksesibiliti.
Bab 16

Mengendalikan Pelbagai Tahap

Diagnostic, Extension untuk Pelajar Laju, Scaffolding untuk Pelajar Lambat

16.1 5-Minit Diagnostic

Pada awal sesi, tentukan tahap pelajar dengan 3 soalan mudah:

  1. "Pernah guna AI untuk tulis kod sebelum ni?"
  2. "Apa website paling kompleks yang pernah awak hasilkan?"
  3. "Dari 1-10, seberapa yakin awak nak coding sendiri?"

Berdasarkan jawapan, kategorikan pelajar:

  • Beginner (1-3): Tak pernah coding. Perlu bimbingan rapat.
  • Intermediate (4-6): Ada exposure, tapi tak yakin.
  • Advanced (7-10): Ada pengalaman coding, nak belajar AI.

16.2 Pelajar Laju: Extension Activities

Pelajar laju akan siap lebih awal. Sediakan extension tasks:

  • Deeper dives: "Sekarang cuba tambah dark mode toggle."
  • Peer mentoring: "Boleh tolong rakan sebelah yang stuck?"
  • Self-directed: "Pilih satu feature tambahan yang awak nak explore."
  • Code review: "Semak code pelajar lain dan bagi feedback."
  • Experiments: "Cuba prompt yang berbeza untuk hasil yang sama. Apa perbezaan?"

16.3 Pelajar Lambat: Scaffolding Techniques

  • Simplified tasks: Kurangkan scope. "Fokus pada hero section dulu, bukan whole page."
  • Step-by-step: Pecahkan kepada langkah lebih kecil. "Step 1: Buat button. Step 2: Tambah warna. Step 3: Buat fungsi."
  • Extra check-ins: Setiap 10 minit, tanya "Ada apa-apa yang stuck?"
  • Pair programming: Duduk sebelah dan bimbing secara langsung.
  • Recorded demo: Bagi video pendek yang boleh diikuti langkah demi langkah.

16.4 Pelajar STUCK: 10 Diagnostic Questions

Jangan beri jawapan — tanya soalan:

  1. "Apa yang awak cuba buat?"
  2. "Apa yang awak expect akan jadi?"
  3. "Apa yang sebenarnya jadi?"
  4. "Error apa yang keluar? Baca dengan kuat."
  5. "Apa langkah terakhir yang awak buat sebelum error?"
  6. "Adakah code ni pernah berfungsi sebelum ni?"
  7. "Apa perbezaan antara code awak dengan code dalam demo?"
  8. "Kalau awak terpaksa teka, apa yang salah?"
  9. "Apa kata AI bila awak tanya pasal error ni?"
  10. "Apa yang awak dah cuba untuk fix?"

16.5 Budaya Kelas Inklusif

  • "Semua orang sedang belajar." Tak ada soalan bodoh.
  • Celebrate mistakes: "Bestnya error ni! Kita boleh belajar banyak dari ni."
  • Diverse examples: Guna contoh yang relevan untuk semua latar belakang.
  • Safe space: "Kalau tak faham, angkat tangan. Confirm ada orang lain yang sama."
  • Multiple representation: Visual, audio, hands-on — cover semua learning styles.
Bab 17

Debugging Live dalam Kelas

Debugging Theatre, Systematic Protocol, Error Catalog, dan Bila Nak Libatkan AI

17.1 Debugging Theatre — Framework untuk Jadikan Bug Pengajaran

Debugging live adalah seni. Ia boleh jadi memalukan atau menjadi momen pembelajaran yang paling powerful. "Debugging Theatre" adalah pendekatan untuk menjadikan setiap bug sebagai persembahan pendidikan:

  1. Dramatisasi: "Oh! Nampak tak tu? Ada error! Jom kita siasat." Buat pelajar rasa excited, bukan takut.
  2. Think Aloud: Suarakan proses pemikiran. "OK, mula-mula aku baca error message. Dia cakap 'unexpected token.' Hmm, maybe ada comma tertinggal."
  3. Elimination: Tunjukkan proses elimination. "Cuba komen line 15. Masih error? OK, so error kat line 15."
  4. AHA Moment: "Nampak tak? Semicolon tertinggal! Kecil tapi power."
  5. Takeaway: "Apa yang kita belajar? Error messages adalah kawan kita. Baca dia."

17.2 Systematic Debugging Protocol untuk Demo Live

  1. Isolate: Cari bahagian mana yang bermasalah. Comment out code section by section.
  2. Diagnose: Guna error message, console.log, browser DevTools.
  3. Fix: Buat perubahan minimum yang diperlukan.
  4. Explain: Terangkan apa yang salah dan kenapa fix tu berkesan.
# Script debugging live "Error: 'Cannot read properties of null (reading addEventListener)' Jom debug: 1. Check element wujud tak — document.getElementById('myButton') 2. Oh! Element ID salah — button id='submitBtn' tapi code cari 'myButton'. 3. Fix: tukar ID dalam JavaScript. 4. Lesson: sentiasa check ID dan nama variable."

17.3 Common Errors Catalog (20 Error dengan Fix)

ErrorSebabFix
Cannot read property of nullElement tak wujudCheck ID, pastikan element ada sebelum JS run
Unexpected tokenSyntax error (comma/bracket tertinggal)Check baris yang disebut dalam error
X is not definedVariable tak diisytiharkanCheck spelling, scope variable
Failed to fetchAPI call gagalCheck URL, CORS, network
404 Not FoundFile/route tak wujudCheck path, file name
500 Internal ServerServer errorCheck server logs, database
Module not foundImport path salahCheck relative path, nama modul
Port already in usePort diduduki proses lainTukar port atau kill process
npm ERR! code E404Package tak wujudCheck spelling package name
TypeError: undefinedVariable undefinedCheck variable assignment
SyntaxError: unexpected EOFKod tak completeCheck curly braces, brackets
ReferenceError: not definedFunction/variable tak wujudCheck scope, import
NetworkErrorInternet connection issueCheck internet, VPN, proxy
CORS errorCross-origin request blockedAdd CORS headers atau proxy
Uncaught PromisePromise rejection tak handleAdd .catch() atau try/catch
Maximum call stackInfinite recursionCheck recursion base case
Invalid dateDate format salahCheck ISO format, timezone
ERR_CONNECTION_REFUSEDServer tak jalanStart server, check port
Mixed contentHTTP content dalam HTTPS pageGuna HTTPS untuk semua resource
ERR_CERT_AUTHORITY_INVALIDSSL certificate problemCheck SSL setup, guna Cloudflare

17.4 Bila Nak Debug Sendiri vs Minta AI Baiki

SituasiDebug SendiriMinta AI
Syntax error simpleYa — ajar pelajar baca errorBoleh — AI cepat betulkan
Logic errorYa — gunakan untuk pengajaranSelepas cuba sendiri
Complex bugTak perlu buang masaYa — AI labih efisien
Production issueHanya jika ada masaYa — cepatkan fix
Teaching momentYa — ini peluang pembelajaranGuna AI sebagai "assistant"

17.5 Ajar Pelajar Debug: "Jangan Panic, Baca Error Message"

Mantra untuk pelajar: "Error message adalah kawan, bukan lawan." Ajar langkah ini:

  1. Baca error message dengan kuat.
  2. Cari: apa jenis error, line berapa, file apa.
  3. Copy error ke AI: "Explain error ni dalam BM."
  4. Faham punca, jangan terus minta fix.
  5. Cuba fix sendiri dulu, baru minta AI betulkan.
Bab 18

Engagement & Motivasi

Quick Win, Gamifikasi, Show & Tell, Peer Learning, dan Humor

18.1 Quick Win Strategy

Setiap sesi mesti ada hasil yang boleh dilihat dalam 30 minit pertama. Ini adalah "Quick Win" — pencapaian kecil yang membina momentum dan keyakinan.

  • Sesi 1: "Hello World" dalam Claude Code dan Codex.
  • Sesi 2: Satu prompt yang menghasilkan kod berfungsi.
  • Sesi 3: Landing page dengan hero section.
  • Sesi 4: Screenshot pertama dengan Playwright.
  • Sesi 5: Portfolio page pertama siap.
  • Sesi 6: Data pertama masuk ke database.
  • Sesi 7: Chart pertama display.
  • Sesi 8: Aplikasi live di URL.
Psikologi Quick Win:

Otak kita melepaskan dopamine bila mencapai matlamat. Quick Win yang kerap = motivasi berterusan. Jangan biarkan pelajar menunggu terlalu lama untuk rasa "berjaya."

18.2 Gamifikasi Ringkas

  • Checkpoint: "Tahniah! Awak dah sampai Checkpoint 1. Lepas ni kita tambah CSS." Setiap checkpoint ada "stamp" digital.
  • Badge Informal: "Master of Prompting," "Debugging Ninja," "Deployment Guru." Badge boleh jadi sticker atau emoji dalam group chat.
  • Progress Visual: Guna progress bar atau "level" (Level 1: Setup, Level 2: Prompter, Level 3: Builder, dll).
  • Leaderboard: Optional — untuk kelas yang kompetitif. "Siapa paling banyak membantu rakan?"

18.3 Show & Tell — Setiap Akhir Fasa

Pada akhir setiap fasa, adakan sesi showcase 15 minit:

  • Setiap pelajar tunjuk hasil mereka (screen share atau demo).
  • Beri 2 minit untuk explain apa yang mereka buat.
  • Kelas bagi claps dan feedback positif.
  • Pengajar highlight pencapaian spesifik: "Wah, Nav tunjuk animasi smooth! Izza punya color scheme cantik!"

Show & Tell membina keyakinan, memberi inspirasi, dan mewujudkan komuniti.

18.4 Peer Learning

  • Pair Programming: Dua pelajar satu komputer. Satu "driver" (taip), satu "navigator" (beri arahan). Tukar setiap 15 minit.
  • Group Debugging: "Ada 3 orang stuck dengan error yang sama? Mari kita debug dalam group."
  • Code Review Bersama: Tunjuk code pelajar di projector. Minta kelas cari improvement.
  • WhatsApp Group: Untuk tanya soalan antara sesi. "Siapa boleh tolong jawab soalan ni?"

18.5 Humor & Storytelling dalam Pengajaran Teknikal

  • Analog lucu: "Database ibarat peti sejuk. Simpan data supaya tak basi. Tapi jangan simpan sampah."
  • Story: "Dulu, saya spend 3 hari debug satu masalah. Rupanya tertinggal comma. AI betulkan dalam 3 saat."
  • Personifikasi: "JavaScript ni macam kucing — kadang buat apa dia nak, bukan apa kita suruh."
  • Self-deprecating: "Error ni saya sendiri buat semasa prepare demo. Classic."
Bahagian 5: Tips & Tricks Ensiklopedia
Bab 19

Prompt Engineering Lanjutan

Power Words, 5 Prompt Patterns, Common Mistakes, dan Prompt Versioning

19.1 20 Power Words untuk Prompt (BM & English)

Power WordKesan pada AIContoh
"Bina"Menghasilkan kod dari awal"Bina landing page untuk startup"
"Tambah"Menambah feature pada kod sedia ada"Tambah dark mode toggle"
"Ubah"Modifikasi spesifik"Ubah warna background ke biru gelap"
"Jadikan"Transformasi elemen"Jadikan navbar sticky"
"Bandingkan"Analisis perbezaan"Bandingkan flexbox vs grid untuk layout ni"
"Terangkan"Minta explanation"Terangkan apa fungsi ni buat"
"Ringkaskan"Dapatkan intipati"Ringkaskan cara deployment dalam 3 langkah"
"Debug"Cari dan betulkan error"Debug kenapa form tak submit"
"Optimumkan"Improve performance"Optimumkan query database ni"
"Selamatkan"Security review"Selamatkan code ni dari SQL injection"
"Cipta"Generate creative output"Cipta 3 design konsep untuk dashboard"
"Uji"Test functionality"Uji button click handler ni"
"Tukar"Replace atau convert"Tukar warna merah ke hijau"
"Susun"Organize code"Susun semula CSS ikut komponen"
"Guna"Specify technology/library"Guna Chart.js untuk visualisasi data"
"Pastikan"Constraint/enforcement"Pastikan semua page responsive"
"Elakkan"Negative constraint"Elakkan guna any external libraries"
"Ikut"Follow standard/spesifikasi"Ikut accessibility best practices"
"Cadangkan"Get alternatives"Cadangkan 3 cara untuk setup auth"
"Integrasikan"Connect dengan service lain"Integrasikan form dengan Supabase"

19.2 5 Prompt Patterns dengan Contoh BM

Pattern 1: Template

Gunakan struktur tetap yang boleh diisi semula:

Template: "Saya nak [objek] untuk [tujuan/pengguna]. Guna [teknologi/stack]. Spesifikasi: - [feature 1] - [feature 2] - [feature 3] Constraint: [had/limitasi]." Contoh: "Saya nak landing page untuk kafe. Guna HTML, CSS, JavaScript. Spesifikasi: hero dengan gambar, menu card, contact form, footer responsive. Constraint: mobile-first, tiada framework, semua vanilla."

Pattern 2: Chain

Pecahkan task besar kepada langkah kecil yang berurutan:

Prompt 1: "Bina struktur HTML untuk dashboard admin. Layout: sidebar kiri, top bar, main content area." Prompt 2: "Tambah CSS untuk layout dashboard. Sidebar: 250px width, background gelap. Top bar: 60px height, putih, sticky. Main: sisa ruang, padding 24px." Prompt 3: "Tambah JavaScript untuk toggle sidebar. Bila klik hamburger button, sidebar collapse/expand. Guna transition smooth."

Pattern 3: Role-Play

Beri AI persona spesifik untuk hasil yang lebih fokus:

"Awak adalah expert frontend developer yang pakar dalam responsive design. Tolong review portfolio saya dan cadangkan 3 improvement untuk mobile responsiveness." "Awak adalah UI/UX designer yang pakar dalam accessibility. Review color scheme saya untuk color-blind users."

Pattern 4: Few-Shot

Beri contoh output yang diingini:

"Contoh format yang saya nak: --- Nama Projek: [nama] Tech Stack: [stack] Features: [features] --- Sekarang, guna format yang sama untuk 3 projek saya: 1. E-commerce website 2. Blog platform 3. Task management app"

Pattern 5: Constraint

Tetapkan had yang jelas untuk kawal output:

"Bina navigation bar tapi: - JANGAN guna JavaScript - MESTI responsive - GUNA CSS Flexbox sahaja - Tiada external libraries - Maksimum 50 baris CSS" "Tulis function untuk validate email tapi: - Regex minimum - Handle all edge cases (null, undefined, empty string, format salah) - Return object { valid: boolean, error: string } - Jangan guna library"

19.3 10 Common Prompt Mistakes & Fix

MistakeKenapa SalahCorrect Version
"Buat website"Terlalu umum, AI tak tahu arah"Buat landing page untuk kedai bunga dengan hero, product grid, contact"
"Tukar warna"Tak spesifik warna apa"Tukar background color ke #1a1a2e"
"Buat macam Google"AI tak boleh tengok Google"Buat homepage minimal dengan logo tengah, search bar, 2 buttons"
"Fix error"Tak bagi error message"Fix error: TypeError: Cannot read property 'map' of undefined"
"Buat cantik"Cantik subjektif"Guna color scheme biru-putih, font sans-serif, card dengan shadow"
"Tambah semua"Terlalu banyak dalam satu prompt"Tambah search bar dulu. Lepas tu kita tambah filter."
"Guna API"API apa? Endpoint mana?"Guna REST API di https://api.example.com/users, method GET"
"Buat secure"Secure tu luas"Tambah input validation, sanitize output, guna parameterized queries"
"Buat responsive"Responsive macam mana?"Mobile-first: stack on mobile, grid on desktop. Breakpoint: 768px."
"Sambung database"Database apa? Connection details?"Sambung ke Supabase project: URL=xxx, anon key=yyy, table=users"

19.4 Prompt untuk Pengajar — Jana Bahan Mengajar

"Jana 5 latihan praktikal untuk Fasa 3 (Landing Page). Setiap latihan kena ada: objektif, langkah, dan criteria completion. Guna Bahasa Melayu. Untuk pelajar zero coding experience." "Bina slide outline untuk sesi 2 jam tentang CSS Flexbox. Termasuk: definisi, contoh kod, latihan hands-on, dan Q&A. Target audience: beginner yang dah tahu HTML basic." "Generate 10 soalan quiz untuk Fasa 6 (Supabase). Soalan format: multiple choice dan true/false. Tahap kesukaran: mudah-sederhana."

19.5 Prompt Versioning System

Cara simpan dan iterate prompt terbaik:

Folder Structure: /prompts /landing-page v01-basic.txt v02-with-features.txt v03-responsive.txt /dashboard v01-layout.txt v02-charts.txt v03-realtime.txt Format setiap fail: --- # TITLE: Landing Page Basic # DATE: 2026-05-19 # TAGS: html, css, landing, beginner # BEST FOR: First session PROMPT: [Bina landing page untuk...] NOTES: - Version ni sesuai untuk pelajar pertama kali - Hasilkan 200+ baris kod - Next: tambah responsive design ---
Bab 20

Tool-Specific Power Tips

Claude Code, Codex, MCP Power Combos, Supabase

20.1 Claude Code — 10 Power User Tips

  1. Guna /help dalam Claude Code untuk senarai semua command yang ada.
  2. Ctrl+C untuk cancel operasi semasa. Tak perlu tunggu.
  3. Arrow Up untuk repeat prompt lepas. Edit sikit-sikit.
  4. Guna "multiline mode" dalam prompt — Enter untuk newline, Shift+Enter untuk submit.
  5. Simpan prompt kegemaran dalam fail .txt. Guna `cat file.txt | claude` untuk load.
  6. Guna -p flag untuk pipe input: `echo "bina landing page" | claude -p`.
  7. Guna MCP search dalam prompt: "cari [topic] guna Exa" untuk web search.
  8. Guna Skills dengan nama tepat: invoke Skill 'superpowers:brainstorming'.
  9. Set project context dengan CLAUDE.md — letak instructions dalam root projek.
  10. Guna subagent untuk parallel tasks: "Guna subagent untuk research sambil tulis kod."

20.2 Codex — 10 Power User Tips

  1. Guna Codex inline di VS Code — highlight code, tekan Ctrl+I untuk edit.
  2. Guna @codex dalam chat untuk mention file spesifik.
  3. Built-in browser — guna untuk preview tanpa setup localhost.
  4. Codex Deploy — satu klik deploy ke production. Guna untuk fast shipping.
  5. Guna codex.json untuk konfigurasi project-wide instructions.
  6. Keyboard shortcuts: Ctrl+Enter untuk submit, Ctrl+` untuk toggle terminal.
  7. Guna "Quick Fix" — Codex suggest fix untuk error yang dikesan.
  8. Split editor untuk tengah code asal dan Codex output side-by-side.
  9. Guna command palette (Ctrl+Shift+P) > "Codex:" untuk semua commands.
  10. Version history — Codex simpan history perubahan. Boleh revert.

20.3 MCP Power Combos

Playwright + Exa = Web Research Automasi

Guna Exa untuk cari artikel, guna Playwright untuk buka dan screenshot. "Cari berita AI terkini dengan Exa, buka top 3 artikel dengan Playwright, dan screenshot untuk report."

Context7 + Microsoft Learn = Documentation Mastery

Guna Context7 untuk library docs umum, Microsoft Learn untuk docs rasmi Azure/.NET. "Cara setup Azure Functions: Context7 untuk code example, Microsoft Learn untuk configuration guide."

Supabase + GitHub = Full Stack Pipeline

Guna GitHub MCP untuk buat repo, Supabase MCP untuk setup database. "Buat repo baru, connect ke Supabase project, generate schema, semua dalam satu sesi."

20.4 Supabase: Query Patterns, RLS Templates, Common Pitfalls

# RLS Template: User can only see own data CREATE POLICY "Users can only see own data" ON todos FOR SELECT USING (auth.uid() = user_id); # RLS Template: Admin can see all CREATE POLICY "Admins can see all" ON todos FOR SELECT USING (auth.jwt() ->> 'role' = 'admin'); # Common Pitfall: lupa enable RLS # Fix: ALTER TABLE todos ENABLE ROW LEVEL SECURITY;
Common Supabase Pitfall:

Paling ramai terlupa: RLS mesti di-enable secara explicit. Default adalah "allow all" — sangat tidak selamat! Selepas create table, terus ALTER TABLE ... ENABLE ROW LEVEL SECURITY.

Bab 21

Time-Saving Workflows

Template System, Subagents, Parallel Agents, Automation Scripts

21.1 Template System: Prompt Sekali, Guna Banyak Kali

Bina template library untuk prompt yang selalu digunakan:

# Template: Generate Component "Bina [component] untuk [project]. Guna [stack]. Mesti: [requirements 1], [requirements 2]. Style: [design spec]. Responsif: yes/no." # Template: Debug Error "Debug error ni: Error: [paste error] Context: [apa code buat] Sudah cuba: [apa dah try] Tolong: [diagnose/fix/explain]" # Template: Code Review "Review kod ni untuk: 1. Security vulnerabilities 2. Performance issues 3. Best practices 4. Code quality 5. Suggestions [kod]"

21.2 Subagent untuk Persediaan Mengajar

Guna subagent untuk jana bahan mengajar dengan pantas:

# Satu prompt, 4 fail modul dalam 5 minit "Guna subagent: Subagent 1: Research topik terbaru tentang [subject] Subagent 2: Tulis panduan pengajar untuk sesi [fasa] Subagent 3: Tulis modul pelajar dengan latihan Subagent 4: Tulis slide outline Kumpul hasil dan integrate."

21.3 Parallel Agents untuk Multitasking

Guna parallel agents untuk tugas yang tak bergantung:

# Parallel tasks untuk prepare bootcamp "Hantar 3 agent serentak: Agent A: Cari 5 artikel terkini tentang AI coding tools Agent B: Jana 10 latihan prompting untuk beginner Agent C: Bina template projek dashboard starter Semua bebas, tak perlu tunggu satu sama lain."

21.4 Automation Scripts untuk Tugas Berulang

#!/bin/bash # Script: setup-vibe-session.sh # Guna: Untuk prepare environment sebelum setiap sesi echo "=== Vibe Coding Session Setup ===" # Check Node.js node --version || { echo "Node.js tak ada. Sila install."; exit 1; } # Check Claude Code which claude || { echo "Claude Code tak ada. Install: npm install -g @anthropic-ai/claude-code"; } # Check Codex code --list-extensions | grep -i codex || { echo "Codex tak ada. Install dari VS Code extensions."; } # Create project folder mkdir -p "sesi-$(date +%Y-%m-%d)" cd "sesi-$(date +%Y-%m-%d)" # Init git git init echo "# Vibe Coding Session $(date +%Y-%m-%d)" > README.md git add . git commit -m "Init session" echo "=== Setup selesai! Selamat mengajar! ==="
Bab 21.5

Golden Rules Vibe Coding — Amalan Wajib

7 Peraturan Emas yang Wajib Dipatuhi Setiap Vibe Coder

21.5.1 Sentiasa Minta AI Buat Documentation

Dokumentasi adalah perkara pertama yang akan dilupakan oleh Vibe Coder baru. Rasa nak coding laju-laju, dokumentasi boleh buat kemudian. Ini adalah perangkap! Dokumentasi yang baik adalah asas kepada projek yang mampan. Tanpa dokumentasi, projek anda akan menjadi "legacy code" yang menakutkan dalam masa 3 minggu.

Kenapa Wajib? AI boleh generate kod dengan pantas, tetapi tanpa dokumentasi, hanya AI yang sama boleh faham kod tersebut. Apabila anda atau AI lain perlu mengubah suai kod 3 bulan kemudian, dokumentasi adalah penyelamat. Dokumentasi juga memaksa AI untuk menulis kod yang lebih bersih dan teratur — kerana ia tahu strukturnya perlu dijelaskan.

Contoh Prompt:

# Prompt Documentation "Selepas generate kod ni, tambah comment penuh untuk: 1. Setiap function — apa dia buat, parameter, return value 2. Setiap class — purpose, properties, methods 3. Setiap file — apa kandungan file ni 4. README — cara setup, run, deploy Guna JSDoc format untuk JavaScript." # Lebih baik: "Bina function untuk validate email. Lepas tu: 1. Tambah JSDoc documentation penuh 2. Tulis README untuk app ni 3. Tulis CODE_COMMENTS.md yang explain logic flow Semua dalam Bahasa Melayu untuk non-technical stakeholders."

Tip Praktikal: Buat peraturan: "Satu prompt coding, satu prompt documentation." Setiap kali AI hasilkan kod, prompt seterusnya mesti untuk dokumentasi. Disiplin ini akan menjimatkan berjam-jam masa dimasa hadapan.

21.5.2 Guna Prompt Helper Pattern — Two-AI Pattern

Prompt Helper Pattern adalah teknik menggunakan dua "peranan" AI secara serentak: satu AI bertindak sebagai "helper" yang menulis prompt terbaik untuk AI yang satu lagi. Teknik ini amat berguna apabila anda kurang pasti cara yang paling efektif untuk meminta sesuatu daripada AI, atau apabila tugasan itu rumit dan memerlukan prompt yang tersusun rapi.

Bila Nak Guna? Apabila tugasan cukup kompleks sehingga anda perlu memikirkan strukturnya dengan teliti. Contohnya: membina sistem authentication penuh, mereka bentuk database schema dengan RLS, atau menulis dokumentasi API yang komprehensif. Daripada terus menulis prompt terus terang, anda minta AI pertama membantu menstrukturkan prompt yang sempurna untuk AI kedua.

Langkah-Langkah:

  1. Terangkan tugasan secara ringkas kepada AI Helper
  2. Minta AI Helper sediakan prompt lengkap (dengan konteks, arahan, constraint, contoh output)
  3. Semak dan luluskan prompt yang dihasilkan
  4. Guna prompt tersebut dengan AI (sama ada AI yang sama atau AI berbeza)
  5. Ulang langkah 1-4 untuk setiap subtask

Contoh Prompt:

# Prompt Helper Pattern Prompt 1 (kepada Helper): "Saya nak bina sistem authentication untuk portfolio website. Guna Supabase Auth, email + password. Ada signup, login, logout, protected pages, reset password. Tolong tuliskan prompt yang lengkap untuk AI coding. Prompt kena ada: konteks penuh, langkah spesifik, code structure, dan constraint." Hasil: AI Helper akan hasilkan prompt yang tersusun seperti: "Bina sistem authentication penuh untuk portfolio website menggunakan Supabase Auth (email + password). Termasuk: halaman signup dengan validation, halaman login dengan error handling, logout button, protected routes (redirect ke login jika belum auth), dan halaman reset password. Guna JavaScript vanilla dengan Supabase client library. Mobile-first responsive. JANGAN guna framework. Letak semua auth logic dalam /auth/ folder." Prompt 2: Guna prompt di atas dengan AI coding.

Tip Praktikal: Anda boleh gunakan AI yang sama untuk kedua-dua peranan (helper dan coder) — bezakan dengan konteks. "Sekarang awak adalah Prompt Helper. Bantu saya reka prompt untuk..." Kemudian: "Sekarang awak adalah AI Coder. Guna prompt yang awak sendiri hasilkan tadi." Teknik ini berkesan kerana AI dapat menstrukturkan pemikirannya dengan lebih baik.

21.5.3 Fikir Dulu Sebelum Prompt

Kesilapan paling mahal dalam Vibe Coding adalah menulis prompt tanpa berfikir. Setiap prompt yang dihantar menggunakan token, mengambil masa, dan menghasilkan output yang perlu dinilai. Prompt yang tidak difikirkan dengan baik menghasilkan output yang perlu dibuang — membazir masa, token, dan tenaga mental.

5 Soalan Wajib Sebelum Setiap Prompt:

  1. Apa yang saya nak AI hasilkan? — Nyatakan dengan jelas. Bukan "buat website" tapi "buat landing page untuk kedai kopi dengan hero, menu grid, dan contact form."
  2. Kenapa saya nak benda ni? — Konteks membantu AI hasilkan output yang lebih relevan. "Untuk pelajar universiti yang pertama kali belajar coding."
  3. Apa constraint yang perlu saya tetapkan? — Teknologi, masa, saiz, gaya. "Guna vanilla HTML/CSS/JS sahaja. Tiada framework. Mobile-first."
  4. Apa yang akan jadi selepas ni? — Fikirkan langkah seterusnya. Output sekarang perlu serasi dengan langkah akan datang. "Nanti saya nak integrate dengan Supabase, jadi pastikan kod boleh di-extend."
  5. Bagaimana saya nak nilai output? — Tetapkan kriteria kejayaan. "Output dikira berjaya kalau: (1) responsive, (2) loading bawah 3 saat, (3) lulus lighthouse audit."

Tip Praktikal: Sebelum hantar prompt, tanya diri sendiri: "Kalau saya dapat output yang tepat sekarang, adakah saya akan puas hati?" Jika jawapannya "tidak," prompt masih perlu diperbaiki. Luangkan 30 saat tambahan untuk refine prompt — ia akan menjimatkan 5 minit iterasi.

21.5.4 Jangan Terima Output Bulat-Bulat

AI bukan infallible. Ia boleh halusinasi, menghasilkan kod yang insecure, menggunakan library yang usang, atau buat assumption yang salah. Setiap output AI WAJIB disemak sebelum digunakan. Ini bukan soal kepercayaan — ini soal disiplin profesional. Vibe Coder yang matang tahu bila untuk trust AI dan bila untuk question.

Disiplin Review:

  • Faham sebelum guna: Baca setiap baris kod yang AI hasilkan. Jika tak faham, minta AI explain. Jangan guna kod yang anda tak faham.
  • Test dalam isolasi: Sebelum integrate, test kod baru dalam environment yang selamat. Gunakan console.log atau playground.
  • Check untuk security: Cari common vulnerabilities — SQL injection, XSS, hardcoded credentials, missing input validation.
  • Verify dengan documentation: Jika AI guna API/library, verify cara guna dengan Context7 atau documentation rasmi.
  • Peer review: Jika ada rakan Vibe Coder lain, minta mereka review kod penting.
# Review Prompt Template "Review kod ni untuk: 1. Security vulnerabilities — SQL injection, XSS, hardcoded secrets 2. Performance issues — N+1 queries, memory leaks, blocking operations 3. Best practices — error handling, input validation, code organization 4. Compatibility — adakah code ni serasi dengan [stack sedia ada]? 5. Suggestions — apa yang boleh diimprove? [paste code]" # Jangan guna kod buta-buta # Minta AI jelaskan bahagian yang tak difahami "Explain function ni baris demi baris dalam BM. Saya nak faham setiap apa yang kod ni buat."

Tip Praktikal: Guna peraturan "3 Baca": Baca sekali untuk faham aliran, baca dua kali untuk check logic, baca tiga kali untuk check security. Jika ada keraguan, jangan guna. Minta AI tulis semula dengan pendekatan berbeza.

21.5.5 Iterate, Jangan Perfeksi

Vibe Coding adalah tentang kelajuan — tetapi kelajuan bukan bererti terburu-buru. Maksudnya adalah jangan terperangkap dalam kitaran perfectionism yang tidak berkesudahan. Ramai Vibe Coder baru menghabiskan 3 jam untuk menyempurnakan button colour, sedangkan mereka sepatutnya sudah mempunyai aplikasi yang berfungsi dalam masa tersebut. Prinsip "ship fast, refine later" adalah teras kepada produktiviti Vibe Coding.

Mengapa Iterasi Lebih Baik daripada Perfeksi:

  • Dapatkan feedback lebih awal: Pengguna sebenar memberi maklum balas yang lebih bernilai daripada tekaan anda. Ship versi awal, dapatkan data sebenar, refine berdasarkan realiti — bukan berdasarkan andaian.
  • Momentum psikologi: Setiap iterasi yang siap memberi dopamine rush. Produk yang "cukup baik" yang sudah siap lebih bernilai daripada produk "sempurna" yang masih dalam development.
  • AI menjadi lebih baik dengan konteks: Apabila AI sudah mempunyai konteks projek (melalui iterasi sebelumnya), outputnya menjadi lebih tepat dan relevan. Iterasi pertama mungkin mengambil 10 prompt, tetapi iterasi kelima mungkin hanya perlukan 2 prompt.
# Iterasi 1: "Bina todo app dengan HTML/CSS/JS. # Boleh tambah dan delete item. Guna warna biru." # Masa: 5 minit. Hasil: Berfungsi, tapi basic. # Iterasi 2: "Tambah local storage untuk simpan data. # Bila refresh, data tak hilang." # Masa: 3 minit. Hasil: Data kekal. # Iterasi 3: "Tambah kategori: Personal, Work, Shopping. # Color-code setiap kategori." # Masa: 4 minit. Hasil: Lebih teratur. # Iterasi 4: "Tambah search bar untuk cari todo. # Filter semasa menaip." # Masa: 3 minit. Hasil: Lebih power. # Total: 15 minit untuk aplikasi yang cukup feature-rich. # Bandingkan dengan 3 jam untuk perfectionist yang masih stuck dengan button color.

Tip Praktikal: Guna teknik "5 Iterasi Rule" — hadkan diri kepada maksimum 5 iterasi untuk satu feature. Selepas 5 iterasi, apa pun hasilnya, move on ke feature seterusnya. Anda boleh kembali kemudian jika perlu. Ini mengelakkan analysis paralysis.

21.5.6 Deploy Awal — Deploy Selepas Versi Pertama Berfungsi

Deployment bukanlah langkah terakhir dalam proses pembangunan — ia adalah langkah kedua. Sebaik sahaja aplikasi versi pertama anda berfungsi di localhost, deploy segera ke production. Biarpun aplikasi itu masih mentah, belum ada branding, atau hanya mempunyai satu halaman — deployment awal memberi banyak kelebihan yang tidak boleh digantikan.

Kenapa Deploy Awal Penting:

  • Ujian persekitaran sebenar: Aplikasi mungkin berfungsi di localhost tetapi gagal di production. Lebih awal anda tahu, lebih cepat anda betulkan. Isu seperti CORS, environment variables, dan build settings hanya boleh dikesan di production.
  • Kongsi progress dengan stakeholder: Bos, client, atau rakan sepasukan boleh melihat progress sebenar — bukan screenshot atau video. URL lebih mudah dikongsi daripada localhost:3000.
  • Bina keyakinan: Kali pertama aplikasi anda live di internet adalah satu pencapaian besar. Ia memberi motivasi untuk terus maju. Pelajar yang deploy awal menunjukkan kadar completion yang jauh lebih tinggi.
  • Domain dan DNS mengambil masa: DNS propagation boleh mengambil masa 24 jam. Deploy awal memberi masa untuk DNS settle sebelum aplikasi siap sepenuhnya.
# Deploy Awal Workflow 1. Bina minimum viable version (1 page pun cukup) 2. Push ke GitHub: git add . && git commit -m "v1" && git push 3. Deploy ke Cloudflare Pages / Codex Deploy 4. Test di URL production 5. Kongsi URL dengan mentor/rakan 6. Iterasi berdasarkan feedback # Contoh prompt untuk deploy cepat: "Deploy portfolio saya ke Cloudflare Pages. Repo dah ada di github.com/username/portfolio. Guna static site, output folder: root."

Tip Praktikal: Gunakan peribahasa digital: "Deploy awal, deploy kerap." Setiap kali anda menambah feature yang berfungsi, deploy semula. Deployment bukan event sekali seumur hidup — ia adalah ritual berulang. Dengan Cloudflare Pages dan Codex Deploy, setiap deploy mengambil masa kurang 2 minit. Tiada alasan untuk tidak deploy.

21.5.7 Satu Projek, Satu Repo — GitHub Discipline

Git adalah lifeline projek Vibe Coding. AI boleh generate kod, mengubah suai, dan memadam fail — tanpa Git, setiap perubahan adalah permanen dan tidak boleh ditarik balik. Bayangkan AI secara tidak sengaja memadam folder penting anda, atau menulis semula kod yang mengambil masa 3 hari untuk dibina. Dengan Git, perkara ini hanyalah "git checkout -- ." atau "git revert."

Disiplin Git yang Wajib:

  • Satu projek, satu repo: Jangan campur aduk berbilang projek dalam satu repository. Setiap projek Vibe Coding — walau sekecil mana pun — mesti ada repo sendiri. Ini memudahkan deployment, kolaborasi, dan tracking.
  • Commit selepas setiap perubahan berfungsi: Bukan "satu commit sehari." Setiap kali AI berjaya menambah feature atau membaiki bug, buat commit. Ini memberi anda checkpoint yang banyak dan memudahkan backtracking.
  • Guna .gitignore: Jangan commit node_modules, .env, atau fail persendirian. AI mungkin secara automatik create fail yang tak sepatutnya di-commit.
  • Tulis commit message yang bermakna: "fix" tidak membantu. "Tambah login form dengan validation Supabase" lebih berguna untuk tracking.
  • Push ke GitHub: Repo di local tidak bermakna tanpa backup di cloud. Push selepas setiap sesi coding. GitHub juga memudahkan deployment (CI/CD).
# Git Workflow untuk Vibe Coding # Setup awal git init git add . git commit -m "v1: Landing page basic dengan hero dan features" # Selepas AI tambah feature git add . git commit -m "v2: Tambah contact form dengan validation" # Selepas AI fix bug git add . git commit -m "v3: Fix responsive issue — navbar overlap pada mobile" # Push ke GitHub git remote add origin https://github.com/username/project.git git branch -M main git push -u origin main # Kalau AI rosakkan kod — revert! git revert HEAD --no-edit # Atau git checkout -- .

Tip Praktikal: Buat habit: sebelum mula sesi coding dengan AI, guna git status untuk tahu keadaan semasa. Selepas sesi, buat commit. Jika AI mula bertanya tentang perubahan yang tak dijangka, anda tahu ada yang tak kena. Git adalah "undo button" anda — gunakannya dengan kerap.

Bahagian 6: Lampiran
Bab 22

Appendiks & Rujukan

Glosari, Quick Reference Cards, Error Catalog, Prompt Templates, Sijil

22.1 Glosari — 50+ Istilah Vibe Coding

IstilahEnglishDefinisi Ringkas
AI AgentAI AgentAI yang boleh bertindak autonomi — baca fail, run command, buat keputusan
APIAPIAntara muka untuk dua aplikasi berkomunikasi
AuthAuthenticationPengesahan identiti pengguna (login/signup)
BackendBackendBahagian server/pangkalan data aplikasi
BrainstormingBrainstormingProses meneroka idea sebelum implementasi
CDNCDNRangkaian server untuk hantar content cepat
CLICLICommand Line Interface — kawal komputer melalui teks
CodexCodexAI coding agent dalam VS Code
CRUDCRUDCreate, Read, Update, Delete — operasi asas data
CSSCSSBahasa untuk style dan layout website
DashboardDashboardAntara muka yang paparkan data dan kawalan
DatabaseDatabaseTempat simpan data secara kekal dan berstruktur
DebuggingDebuggingProses mencari dan membetulkan error dalam kod
DeployDeployProses meletakkan aplikasi di server untuk akses awam
DNSDNSSistem yang menukar domain (google.com) ke IP address
DomainDomainAlamat website (contoh: namasaya.com)
Environment VariableEnvironment VariableNilai konfigurasi yang disimpan di luar kod
ExaExaMCP untuk carian web dan pembacaan laman
FasaPhasePeringkat dalam kurikulum pembelajaran
FrontendFrontendBahagian yang dilihat dan diinteraksi oleh pengguna
GitGitSistem version control untuk tracking perubahan kod
HalusinasiHallucinationBila AI hasilkan maklumat yang nampak betul tapi sebenarnya salah
HTMLHTMLBahasa struktur untuk content website
HTTPSHTTPSProtokol selamat untuk hantar data antara browser dan server
IDEIDEIntegrated Development Environment — editor kod dengan tools
IterasiIterationKitaran ulang untuk memperbaiki hasil
JSONJSONFormat data ringan untuk pertukaran maklumat
Landing PageLanding PageHalaman utama yang pertama dilihat pengunjung
MCPMCPModel Context Protocol — standard untuk sambung AI ke tools luar
Mobile-FirstMobile-FirstDesign untuk telefon dulu, kemudian desktop
MVPMVPMinimum Viable Product — versi minima yang berfungsi
Node.jsNode.jsRuntime JavaScript untuk server dan tools
PlaywrightPlaywrightMCP untuk automasi browser (klik, screenshot, test)
PortfolioPortfolioWebsite peribadi yang showcase projek dan kemahiran
PromptPromptArahan atau soalan yang diberikan kepada AI
ResponsiveResponsiveWebsite yang menyesuaikan diri dengan saiz skrin
RLSRow Level SecurityPerlindungan data peringkat baris dalam database
RoutingRoutingSistem navigasi antara halaman dalam aplikasi
SkillSkillWorkflow terdokumentasi untuk tugasan spesifik
StackStackGabungan teknologi yang digunakan dalam projek
SubagentSubagentAI agent yang berjalan secara selari untuk tugas tertentu
SupabaseSupabasePlatform backend (database, auth, storage, realtime)
TDDTDDTest-Driven Development — tulis ujian sebelum kod
TerminalTerminalAntara muka teks untuk berinteraksi dengan komputer
ValidationValidationSemakan data untuk pastikan format betul dan selamat
Vibe CodingVibe CodingPendekatan pembangunan di mana AI adalah rakan kreatif
VS CodeVS CodeEditor kod popular oleh Microsoft
Web SearchWeb SearchMencari maklumat di internet melalui AI
WorkflowWorkflowUrutan langkah untuk menyelesaikan tugasan
WorktreeWorktreeCawangan git yang diasingkan dari workspace utama

22.2 Quick Reference Cards — 8 Kad Ringkasan

Kad 1: Fasa 1 — Setup & Pengenalan

Commands: npm install -g @anthropic-ai/claude-code | node --version | code --version
Checklist: Node.js, VS Code, Claude Code, Codex, Git, GitHub, Supabase, Cloudflare
First Prompt: "Buat fail index.html dengan teks Hello Vibe Coding"

Kad 2: Fasa 2 — Seni Prompting

Formula Prompt: Konteks + Arahan + Constraint
5 Teknik: Template, Chain, Role-Play, Few-Shot, Constraint
Ingat: Iterasi adalah kunci. Prompt pertama jarang sempurna.

Kad 3: Fasa 3 — Landing Page

Struktur: Hero > Features > Footer
Design: Guna frontend-design skill, pilih warna dan font
Responsif: Mobile-first, media queries pada 768px

Kad 4: Fasa 4 — Tools & Skills

5 MCP Utama: Playwright, Exa, Context7, Microsoft Learn, GitHub
4 Skills Wajib: Brainstorming, TDD, Debugging, Verification
Plugin Reference: "Menu restoran" Claude Code

Kad 5: Fasa 5 — Portfolio

Pages: Home, About, Projects, Contact
Komponen: Navbar, Footer, Card, Form
Ingat: DRY (Don't Repeat Yourself) — guna reusable components

Kad 6: Fasa 6 — Supabase

CRUD: Create (INSERT), Read (SELECT), Update (UPDATE), Delete (DELETE)
Auth: Signup, Login, Logout, Protected Routes
RLS: Enable RLS lepas create table! Default adalah "allow all"

Kad 7: Fasa 7 — Dashboard

Layout: Sidebar + Top Bar + Content Area
Charts: Chart.js — line, bar, pie
Realtime: Supabase Realtime subscriptions

Kad 8: Fasa 8 — Deployment

Hosting: Cloudflare Pages (static), Workers (dynamic)
Domain: Cloudflare Registrar (harga kos)
Env Vars: Jangan simpan secrets dalam kod! Guna process.env

22.3 Error Message Catalog — 20 Common Errors

ErrorMaksudLangkah Fix
Cannot read property of nullElement HTML tak wujudSemak ID element, pastikan HTML ada
Unexpected tokenRalat sintaks JSCek baris dalam error, cari comma/bracket tertinggal
X is not definedVariable tak wujudSemak ejaan, scope variable
Failed to fetchGagal ambil data dari APISemak URL, CORS, sambungan internet
404 Not FoundHalaman/api tak wujudSemak path dan nama fail
500 Internal ServerRalat serverSemak server logs, database
Module not foundImport path salahSemak relative path, nama modul
Port already in usePort digunakanTukar port atau kill process
npm ERR! code E404Package tak wujudSemak ejaan nama package
TypeError: undefinedVariable tak diisiSemak assignment variable
SyntaxError: unexpected EOFKod tak lengkapSemak curly braces dan brackets
CORS errorPermintaan rentas asal disekatSetup CORS headers atau guna proxy
Uncaught PromisePromise gagal tanpa .catch()Tambah .catch() atau try/catch
Maximum call stackRekursi tak berhentiSemak base case recursion
Invalid dateFormat tarikh salahGuna ISO format (YYYY-MM-DD)
ERR_CONNECTION_REFUSEDServer tak aktifStart server, semak port
Mixed contentHTTP dalam page HTTPSTukar semua resource ke HTTPS
ERR_CERT_AUTHORITY_INVALIDSijil SSL bermasalahSemak setup SSL, guna Cloudflare
ERR_INTERNET_DISCONNECTEDTiada internetSemak sambungan internet/WiFi
Script errorRalat JavaScript umumBuka Console di DevTools untuk details

22.4 10 Prompt Templates Terbaik — Copy-Paste Ready

# Template 1: Landing Page "Bina landing page untuk [produk/perkhidmatan]. Guna warna [palet], font [font], gaya [minimal/moden/kreatif]. Mesti responsive, mobile-first." # Template 2: Component "Bina [component] — [description]. Styling: [warna, saiz, efek]. Interaksi: [click, hover, animasi]. Guna [stack]." # Template 3: Form "Bina form dengan field: [fields]. Validation: [rules]. Submit: [POST ke endpoint / show message]. Style: [design spec]." # Template 4: Dashboard "Bina dashboard dengan: - Stats cards: [4 cards] - Chart: [jenis chart] untuk [data] - Table: [columns] dengan search dan pagination" # Template 5: API Endpoint "Buat API endpoint [method] /[path]. Accept: [parameters]. Return: [response format]. Auth: [required/optional]." # Template 6: Database Query "Tulis SQL query untuk: Table: [table name] Columns: [columns] Condition: [filter] Sort: [order]" # Template 7: Debug "Debug error: Error: [paste error] Code context: [paste relevant code] Sudah cuba: [steps taken] Tolong diagnose dan suggest fix." # Template 8: Code Review "Review kod ni untuk security, performance, dan best practices: [paste code] List: isu, severity, dan cadangan fix." # Template 9: Learn Concept "Terangkan [concept] dalam Bahasa Melayu. Guna analogi mudah. Beri contoh kod. Target: beginner yang tak ada pengalaman coding." # Template 10: Generate Exercise "Bina [N] latihan untuk [topic]. Setiap latihan ada: - Objektif - Langkah - Output diharap - Tips Tahap: [beginner/intermediate/advanced]"

22.5 Resource Links

SumberURLKegunaan
Claude Code Docsdocs.anthropic.comDokumentasi rasmi Claude Code
Codex Docscodex.so/docsPanduan penggunaan Codex
Supabase Docssupabase.com/docsDatabase, Auth, Storage, Realtime
Cloudflare Docsdevelopers.cloudflare.comPages, Workers, DNS, CDN
MDN Web Docsdeveloper.mozilla.orgRujukan HTML, CSS, JavaScript
Node.jsnodejs.orgDownload dan dokumentasi
VS Codecode.visualstudio.comDownload dan extensions
GitHubgithub.comHosting repo dan kolaborasi
Exaexa.aiAPI carian web untuk AI
Playwrightplaywright.devAutomasi browser

22.6 Sijil Template

Template sijil tamat kelas Vibe Coding. Boleh guna dan edit mengikut keperluan:

======================================== SIJIL TAMAT VIBE CODING ======================================== Dengan ini disahkan bahawa [NAMA PELAJAR] telah berjaya menamatkan kursus VIBE CODING: AI-ASSISTED DEVELOPMENT [8 Fasa — 20+ Jam — Projek Portfolio] Tarikh: [TARIKH TAMAT] Penganjur: [NAMA ORGANISASI] ======================================== "Dari Zero ke Live di Internet" ======================================== Kemahiran yang dicapai: - Prompt Engineering & AI Collaboration - Landing Page & Portfolio Development - Full Stack dengan Database & Auth - Deployment ke Production (Cloudflare) [TANDATANGAN PENGAJAR] [NAMA PENGAJAR] ========================================