Skip to main content

Siri Vibe Coding S02E01 (Part 2): OpenCode — Rancang Dulu, Baru Pecut

S02E01 (Part 2): OpenCode — Rancang Dulu, Baru Pecut

Ini sambungan LANGSUNG dari S02E01 Part 1 (Aider). Kalau belum baca tu, sila baca dulu — kita akan bina semula projek sama dalam artikel ni, supaya awak boleh bandingkan terus pengalaman dua tool.

😄 Nota jenaka: Kalau Aider tu "kawan yang terus buat kerja tanpa banyak cakap", OpenCode ni "kawan yang nak berbincang dulu sebelum mula" — dua-dua ada tempat masing-masing, macam dua jenis rakan kongsi projek kerja group semasa universiti dulu.


📑 Kandungan (Table of Content)


Kenapa OpenCode? Pros & Cons Mendalam

Berbeza sepenuhnya dari Aider (Part 1) — OpenCode agentic penuh, konsepnya dekat dengan Cline yang kita guna sejak S01E01.

Penjelasan
✅ Paling popular ~172,000 bintang GitHub — lebih dari Gemini CLI dan OpenAI Codex, coding agent open-source paling banyak bintang
✅ Agentic penuh Tunjuk rancangan dulu, awak approve, baru ia laksana berbilang langkah sendiri — sama falsafah dengan Cline
✅ Sokongan MCP Boleh sambung terus ke MCP MSSQL yang kita bina S01E01 — kelebihan besar berbanding Aider
✅ 75+ provider disokong Fleksibiliti model sangat luas
✅ Multi-session selari Boleh jalankan beberapa task serentak, ciri unik
❌ Lebih perlahan Loop rancang-laksana-semak lebih kompleks berbanding edit-terus Aider
❌ Lebih baharu ~1 tahun dalam pembangunan (walaupun update setiap hari) — kestabilan kurang teruji berbanding Aider punya 3 tahun
❌ Boleh rasa "overwhelming" Lebih banyak ciri/konsep untuk pemula faham serentak (pengalaman awak sendiri dulu!)

Kesimpulan

OpenCode sesuai untuk kerja kompleks yang perlukan MCP atau agent buat banyak keputusan sendiri. Kurang sesuai kalau awak nak sesuatu yang ringkas dan laju untuk edit terarah — untuk itu, Aider (Part 1) menang.


BAHAGIAN 1: Prasyarat

Sama macam Aider — pastikan asas terpasang. OpenCode tak perlukan Python (ia Node.js/TypeScript-based), tapi elok ada Node.js untuk sesetengah MCP server (macam MSSQL kita).

node --version

Kalau tiada:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install nodejs -y

🆘 Jika Tersekat (Bahagian 1)

Saya cuba pastikan Node.js terpasang di Ubuntu tapi [nyatakan masalah]. 
Tolong bantu diagnosa.

BAHAGIAN 2: Install OpenCode

Di AI Box (Ubuntu, bash) — Cara Rasmi

curl -fsSL https://opencode.ai/install | bash

Alternatif (kalau lebih selesa npm):

npm i -g opencode-ai

Verify:

opencode --version

Untuk Pembaca Windows

Script curl | bash khusus Linux/macOS. Untuk Windows, guna npm:

npm install -g opencode-ai

(Perlukan Node.js terpasang dulu — download dari nodejs.org kalau belum ada)

🆘 Jika Tersekat (Bahagian 2)

Saya cuba install OpenCode di [Ubuntu/Windows] tapi [nyatakan masalah]. 
Ni error sebenar: [paste]. Tolong bantu diagnosa.

BAHAGIAN 3: Konsep Asas — Falsafah "Plan-First Agentic"

Ini beza fundamental dari Aider:

  1. Awak beri arahan — OpenCode RANCANG dulu (tunjuk langkah-langkah yang ia akan buat)
  2. Awak semak rancangan tu, approve (atau minta ubah)
  3. Baru OpenCode laksana — boleh berbilang langkah, berbilang fail, secara berterusan
  4. Lepas siap, ia lapor balik apa yang telah dibuat

😄 Kalau Aider tu "kerja dulu, cerita kemudian", OpenCode tu "cerita rancangan dulu, kerja kemudian". Dua-dua ada penggemar — bergantung awak jenis "just do it" atau "let's plan this properly" punya orang.

🆘 Jika Tersekat (Bahagian 3)

Saya tak faham beza plan-first OpenCode dengan git-first Aider. Tolong 
terangkan dengan contoh mudah.

BAHAGIAN 4: Tour Antara Muka TUI

Mula OpenCode:

opencode

Kali pertama, ia akan minta login/setup provider:

opencode auth login

Ikut arahan untuk pilih provider dan masukkan API key/endpoint.

💡 Tips & Trick: OpenCode default guna model percuma (GLM-4.7) tanpa perlu API key — boleh terus cuba tanpa setup apa-apa dulu untuk rasa antara muka TUI, baru setup provider pilihan awak (Ollama/FreeLLMAPI) di Bahagian 5.

🆘 Jika Tersekat (Bahagian 4)

Saya buka OpenCode tapi [nyatakan masalah: "auth login gagal", "TUI 
tak nampak betul"]. Tolong bantu diagnosa.

BAHAGIAN 5: Sambung ke AI Provider

Sama konsep macam Aider — Ollama local paling senang sebab OpenCode jalan terus di AI Box:

opencode auth login

Pilih "Ollama" dari senarai, masukkan endpoint: http://localhost:11434

Untuk FreeLLMAPI/Cloud, boleh set dalam config (~/.config/opencode/opencode.json):

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "freellmapi": {
      "baseURL": "http://localhost:11500/v1",
      "apiKey": "freellmapi-your-unified-key"
    }
  }
}

🆘 Jika Tersekat (Bahagian 5)

Saya cuba sambungkan OpenCode ke [Ollama/FreeLLMAPI] tapi [nyatakan 
masalah]. Tolong bantu diagnosa.

BAHAGIAN 6: MCP Integration — Sambung ke MSSQL Sedia Ada

Ini bahagian paling bernilai berbanding Aider — kita guna semula setup MCP MSSQL dari S01E01, tanpa perlu bina baru!

Edit/cipta ~/.config/opencode/opencode.json (atau opencode.json dalam folder projek):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mssql": {
      "type": "local",
      "command": ["ave-mcpserver-mssqlclient"],
      "enabled": true,
      "environment": {
        "MSSQL_CONNECTIONSTRING": "Server=localhost\\SQLEXPRESS;Database=NamaDatabaseAwak;Trusted_Connection=True;TrustServerCertificate=True;",
        "EnableExecuteQuery": "true",
        "EnableExecuteStoredProcedure": "true"
      }
    }
  }
}

Komen penerangan — perhatikan beza dari format Cline:

"command": ["ave-mcpserver-mssqlclient"]
    ← OpenCode perlukan ARRAY (dalam kurungan siku []), 
      BUKAN string tunggal macam format Cline sebelum ni
"environment" (bukan "env")
    ← nama field SEDIKIT berbeza dari Cline, tapi konsep sama

Verify:

opencode mcp list

📋 Expected Result: mssql patut tersenarai dengan status connected.

😄 Rasa "worth it" install OpenCode dah mula terasa kan? Semua kerja keras kita bina MCP di S01E01 sekarang boleh guna semula, bukan bina dari kosong.

🆘 Jika Tersekat (Bahagian 6)

Saya cuba sambungkan OpenCode ke MCP MSSQL saya tapi [nyatakan masalah]. 
Config saya: [paste opencode.json]. Tolong bantu diagnosa.

BAHAGIAN 7: Guna dengan tmux

Sama konsep macam Aider:

tmux new -s opencode-session
opencode

Ctrl+B, kemudian D untuk detach. Sambung balik:

tmux attach -t opencode-session

BAHAGIAN 8: PROJEK BERPERINGKAT — 4 Kalkulator (Ulangan)

Sekarang bina semula 4 projek sama dari Part 1 — tapi kali ni perhatikan cara OpenCode berbeza bila kerja.

mkdir kalkulator-harian-opencode && cd kalkulator-harian-opencode
opencode

8.A: Kalkulator Suhu

Buat fail suhu.html — kalkulator penukaran suhu 3-hala: Celsius, 
Fahrenheit, Kelvin. Auto-update serentak di mana-mana kotak ditaip. 
Single file HTML+CSS+JS.

Perhatikan: OpenCode akan tunjuk rancangan dulu (contoh: "1. Cipta fail suhu.html, 2. Tulis struktur HTML, 3. Tambah logik JS penukaran, 4. Test formula") — approve sebelum ia teruskan.

8.B: Kalkulator Tayar

Buat fail tayar.html — kalkulator PSI ke Bar dan sebaliknya. 
1 Bar = 14.5038 PSI. Design mudah untuk telefon.

8.C: Kalkulator Gula Darah

Buat fail gula-darah.html — konversi mg/dL ke mmol/L (÷18.0182) dan 
sebaliknya. WAJIB ada disclaimer "rujukan sahaja, bukan nasihat 
perubatan" di atas page.

8.D: Kalkulator Matawang

Buat fail matawang.html — konversi MYR ke USD/SGD/IDR. Kadar tetap: 
1 MYR = 0.21 USD, 0.29 SGD, 3400 IDR. Nota "kadar contoh sahaja".

📋 Expected Result (semua 4): Sama hasil fungsional macam Aider — kalkulator berfungsi, auto-update, disclaimer ada untuk 8.C. Beza hanya pada proses (rancangan ditunjuk dulu), bukan hasil akhir.

🆘 Jika Tersekat (Bahagian 8)

Saya buat projek [8.A/8.B/8.C/8.D] dengan OpenCode tapi [nyatakan 
masalah]. Tolong bantu betulkan.

BAHAGIAN 9: Perbandingan Pengalaman — Aider vs OpenCode

Sekarang kita dah bina kedua-dua set, ini perbandingan sebenar (bukan teori):

Aspek Aider (Part 1) OpenCode (Part 2)
Langkah sebelum edit Tiada — terus edit Tunjuk rancangan, perlu approve
Bilangan "interaksi" untuk 1 kalkulator Biasanya 1-2 (arahan → siap) Biasanya 2-3 (arahan → semak plan → approve → siap)
Git history Automatik, setiap edit = 1 commit deskriptif Tiada automatik (perlu awak git add/commit manual, melainkan diminta)
Sesuai untuk MCP (database) ❌ Tidak boleh ✅ Boleh terus
"Rasa" guna Laju, terus-terang Lebih "berbual", terasa macam ada "perbincangan"
Sesuai untuk pemula faham AI agentic Konsep ringkas, senang faham Lebih dekat dengan Cline (kalau dah biasa VSCode)

Kesimpulan Praktikal

Nak edit CEPAT, terkawal, sejarah git bersih automatik  → Aider
Nak agent buat kerja KOMPLEKS, perlukan MCP/database     → OpenCode
Projek kalkulator ringkas macam kita hari ni              → DUA-DUA setanding

😄 Tiada "pemenang mutlak" di sini — macam bandingkan skru berkepala pipih vs Phillips. Dua-dua "betul", cuma untuk kerja berbeza.

🆘 Jika Tersekat (Bahagian 9)

Saya dah cuba dua-dua Aider dan OpenCode, tapi masih keliru mana nak 
guna untuk projek: [terangkan projek]. Tolong bantu saya putuskan.

BAHAGIAN 10: Multi-Session/Parallel Agents (Intermediate)

Ciri unik OpenCode — jalankan beberapa task serentak dalam session berasingan:

opencode session new --name "kalkulator-suhu"
opencode session new --name "kalkulator-tayar"

Setiap session bebas, boleh tukar antara satu sama lain tanpa "campur konteks".

🆘 Jika Tersekat (Bahagian 10)

Saya cuba guna multi-session OpenCode tapi [nyatakan masalah]. Tolong 
bantu diagnosa.

BAHAGIAN 11: Shareable Session Links (Intermediate)

OpenCode boleh jana link untuk kongsi sesi (berguna untuk minta bantuan/tunjuk kerja):

opencode session share

BAHAGIAN 12: Custom Instructions File (Intermediate)

Setara .clinerules/CONVENTIONS.md — OpenCode guna field instructions dalam config:

{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["CONVENTIONS.md", "docs/*.md"]
}

🆘 Jika Tersekat (Bahagian 12)

Saya dah setup instructions file OpenCode tapi ia nampak tak diikuti. 
Tolong bantu diagnosa.

BAHAGIAN 13: Had Sebenar OpenCode

Jujur — bila JANGAN guna OpenCode:

  • Nak kerja super laju, terkawal, tanpa banyak "perbincangan" — Aider lebih sesuai
  • Bimbang isu kestabilan (projek lebih baharu berbanding Aider) — untuk kerja kritikal, test teliti dulu
  • Nak sesuatu yang paling ringkas untuk mula belajar TUI — Aider konsep lebih senang faham dulu

🆘 Jika Tersekat (Bahagian 13)

Saya tak pasti OpenCode sesuai untuk projek saya: [terangkan]. Tolong 
nasihatkan OpenCode atau Aider yang lebih sesuai.

BAHAGIAN 14: Bacaan Lanjut

  1. Dokumentasi Rasmi OpenCode — https://opencode.ai/docs
  2. OpenCode Config Guide — https://open-code.ai/en/docs/config
  3. r/ChatGPTCoding (Reddit) — perbandingan komuniti
  4. Rujuk balik S02E01 Part 1 (Aider) untuk perbandingan langsung

Penutup

Tahniah — awak sekarang faham dua falsafah TUI berlawanan (git-first Aider vs plan-first OpenCode), dan bina 4 kalkulator yang sama guna dua-dua untuk lihat beza sebenar. Ini pengalaman yang jarang ditunjuk penuh dalam tutorial lain — kebanyakan hanya tunjuk satu tool, bukan perbandingan langsung macam kita buat.

😄 Dari "OpenCode nampak susah" ke "faham beza dia dengan Aider dan bila nak guna yang mana" — ini kemajuan besar. Season 2 baru je bermula!

Nantikan S02E02 — kita masuk ke "Rahsia Maharaja", cuba orchestration sebenar!


Artikel ini sebahagian dari Season 2, siri "Vibe Coding". Semua arahan diuji di Ubuntu Linux (AI Box) dengan nota tambahan untuk Windows.

Comments

Popular posts from this blog

Siri Vibe Coding S01E01: Panduan Lengkap: VSCode + Cline: Cinta Pandang Pertama (Zero to Hero) Rev.#2

Panduan ini ditulis untuk sesiapa yang baru nak mula "vibe coding" — iaitu menulis kod dengan bantuan AI agent yang boleh terus edit fail, jalankan command, dan sambung ke database. Tak perlu pengalaman VSCode sebelum ni. Ikut je step demi step. 📸 Nota pasal screenshot dalam panduan ni : Setiap bahagian penting ada penanda 📸 [AMBIL SCREENSHOT DI SINI] — ambil gambar skrin awak SENDIRI di titik tu semasa ikut langkah, dan sisipkan dalam blog post awak. Ini lebih baik dari guna gambar orang lain — versi UI awak akan tepat sama dengan apa pembaca nampak di skrin mereka, dan awak elak isu hak cipta guna gambar orang lain. 😄 Amaran kecil : Panduan ni panjang — bukan sebab saya "tak reti" ringkaskan, tapi sebab vibe coding ni ada BANYAK moving parts (editor, AI, database, semua kena "kenal" antara satu sama lain). Saya selit sikit jenaka sepanjang jalan supaya mata tak "freeze" macam program yang hang. Kalau jenaka tak sampai, skip terus ke ara...

Siri Vibe Coding S01E03: FreeLLMAPI: 16 Otak, 1 Pintu Rev. #2

Ini artikel KETIGA dalam siri Vibe Coding saya. Kalau belum baca Artikel 1 (VSCode + Cline + MCP + MSSQL) dan Artikel 2 (Local AI Ollama), sila baca dulu. Dalam artikel ni, kita tambah SATU lagi "otak" untuk Cline — kali ni bukan local, tapi gabungan pelbagai AI cloud percuma dalam satu tempat. 😄 Nota jenaka : Macam artikel-artikel lepas, saya selit jenaka sikit-sikit. Kalau tak kena selera, skip terus ke arahan teknikal. Yang penting duit awak selamat (percuma je pun), bukan lawak saya kena. 📑 Kandungan (Table of Content) Kenapa Perlu FreeLLMAPI? Bahagian 1: Prasyarat — Install Docker Desktop Bahagian 2: Install FreeLLMAPI (Guna Port 11500) Bahagian 3: Urus Akaun Provider — Contoh Lengkap dengan Groq Bahagian 4: Guna FreeLLMAPI Secara Standalone Bahagian 5: Sambungkan ke Open WebUI Bahagian 6: Sambungkan ke Jan.ai Bahagian 7: Sambungkan ke VSCode + Cline Bahagian 8: Ujian Bahagian 9: Bacaan Lanjut Penutup Kenapa Perlu FreeLLMAPI? Dalam Artikel 2, kita setup l...

AI Tools 12 For Marketing

 AI Tools 12 For Marketing