Masalah: Copilot Mahal, Data Kamu Kemana?
Kamu lagi ngoding di proyek freelance, atau mungkin startup kecil yang datanya sensitif. Terus kamu sadar bahwa setiap baris kode yang kamu ketik di editor dikirim ke server GitHub/OpenAI buat di-process. Belum lagi biaya $10/bulan untuk Copilot — lumayan kalau kamu solo engineer dengan budget terbatas.
Ada alternatif yang gue pakai sekarang: Ollama + model code LLM yang jalan 100% di mesin lokal kamu. Nggak ada data keluar, nggak ada subscription, dan surprisingly — cukup capable buat pekerjaan sehari-hari.
Artikel ini bakal ngajarin kamu setup AI code assistant lokal dari nol: install Ollama, pilih model yang tepat, integrasikan ke VS Code, dan bikin script Python sederhana buat query langsung dari terminal.
Kenapa Ollama?
Ada beberapa tool buat jalanin LLM lokal (LM Studio, llama.cpp, GPT4All), tapi Ollama punya keunggulan yang bikin gue pilih dia:
- CLI yang bersih — satu command buat pull dan run model
- REST API built-in — langsung bisa di-hit dari script atau editor plugin
- Model library yang gede — dari Llama 3 sampai CodeGemma, semua ada
- Cross-platform — macOS, Linux, Windows (via WSL)
Satu catatan penting: performa sangat bergantung pada RAM dan GPU kamu. Buat laptop dengan 8GB RAM, pilih model 7B atau di bawahnya. Kalau kamu punya 16GB+, model 13B masih nyaman.
Install Ollama
macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
Setelah install, verifikasi:
ollama --version
# ollama version 0.3.x
Windows
Download installer dari ollama.com atau pakai WSL2 dan jalankan command Linux di atas.
Ollama otomatis jalan sebagai background service di port 11434. Kamu bisa cek dengan:
curl http://localhost:11434
# Ollama is running
Pilih Model: Mana yang Cocok Buat Coding?
Ini yang biasanya bikin bingung. Gue udah coba beberapa, ini ringkasannya:
| Model | Size | RAM Minimum | Cocok Buat |
|---|---|---|---|
codegemma:2b |
~1.6GB | 4GB | Autocomplete cepat, low-end laptop |
codegemma:7b |
~5GB | 8GB | General coding, explain code |
deepseek-coder:6.7b |
~4GB | 8GB | Multi-language, cukup akurat |
llama3.1:8b |
~5GB | 8GB | Chat + coding, paling balanced |
codellama:13b |
~8GB | 16GB | Lebih akurat, butuh RAM lebih |
Buat mayoritas developer dengan laptop 8–16GB, gue rekomendasikan mulai dari deepseek-coder:6.7b — hasilnya solid dan nggak terlalu rakus memori.
# Pull model (download sekali, ~4GB)
ollama pull deepseek-coder:6.7b
# Test langsung dari CLI
ollama run deepseek-coder:6.7b
Setelah prompt muncul, coba ketik:
>>> Write a Python function to validate an Indonesian phone number
Kamu bakal lihat model langsung generate kode. Tekan Ctrl+D atau ketik /bye buat keluar.
Integrasikan ke VS Code dengan Continue
Nah ini bagian yang bikin setup ini mirip Copilot. Continue adalah extension VS Code open-source yang bisa connect ke Ollama.
Install Continue
- Buka VS Code
- Cari extension
Continue(by Continue.dev) - Install
Konfigurasi Continue ke Ollama
Setelah install, Continue bakal buat file config di ~/.continue/config.json. Edit file itu:
{
"models": [
{
"title": "DeepSeek Coder Local",
"provider": "ollama",
"model": "deepseek-coder:6.7b",
"apiBase": "http://localhost:11434"
}
],
"tabAutocompleteModel": {
"title": "CodeGemma Autocomplete",
"provider": "ollama",
"model": "codegemma:2b",
"apiBase": "http://localhost:11434"
},
"allowAnonymousTelemetry": false
}
Perhatikan gue pakai dua model berbeda:
deepseek-coder:6.7bbuat chat (explain, refactor, generate)codegemma:2bbuat tab autocomplete — lebih kecil supaya response cepat
Pull model kedua kalau belum:
ollama pull codegemma:2b
Sekarang di VS Code kamu bisa:
Ctrl+I— inline edit / generate kode di cursorCtrl+L— buka chat sidebar, tanya apa aja soal kodenya- Tab — autocomplete seperti Copilot
Script Python: Query Ollama dari Terminal
Kadang kamu nggak mau buka VS Code — cuma mau tanya cepat dari terminal, atau integrate ke workflow script kamu. Ollama punya REST API yang simpel.
Endpoint dasar
# Generate (non-streaming)
curl http://localhost:11434/api/generate \
-H 'Content-Type: application/json' \
-d '{
"model": "deepseek-coder:6.7b",
"prompt": "Write a bash script to backup a PostgreSQL database",
"stream": false
}'
Script Python yang lebih proper
Bikin file ask_ai.py:
import sys
import json
import httpx
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL = "deepseek-coder:6.7b"
def ask(prompt: str, stream: bool = True) -> str:
payload = {
"model": MODEL,
"prompt": prompt,
"stream": stream,
}
if not stream:
response = httpx.post(OLLAMA_URL, json=payload, timeout=120)
response.raise_for_status()
return response.json()["response"]
# Streaming mode — print token by token
full_response = []
with httpx.stream("POST", OLLAMA_URL, json=payload, timeout=120) as r:
for line in r.iter_lines():
if line:
chunk = json.loads(line)
token = chunk.get("response", "")
print(token, end="", flush=True)
full_response.append(token)
print() # newline at end
return "".join(full_response)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python ask_ai.py \"your question here\"")
sys.exit(1)
prompt = " ".join(sys.argv[1:])
ask(prompt, stream=True)
Install dependency:
pip install httpx
Cara pakai:
python ask_ai.py "Explain what this SQL query does: SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '7 days'"
python ask_ai.py "Write a FastAPI endpoint that accepts a file upload and saves it to /tmp"
Kamu bisa jadiin ini alias di shell kamu:
# Tambah ke ~/.bashrc atau ~/.zshrc
alias ai='python ~/scripts/ask_ai.py'
# Setelah source, tinggal:
ai "how do I reverse a linked list in Python"
Gotcha yang Gue Temuin
1. Model pertama kali lambat banget
Wajar — Ollama perlu load model ke memori. Response pertama bisa 10–30 detik. Setelah itu jauh lebih cepat karena model udah di-cache. Kalau kamu mau model selalu "warm", jalankan Ollama dengan env var:
OLLAMA_KEEP_ALIVE=1h ollama serve
2. Ollama service crash setelah sleep
Di Linux, kadang service-nya mati setelah laptop di-suspend. Tambah ke startup:
sudo systemctl enable ollama
sudo systemctl start ollama
Di macOS, Ollama app biasanya auto-restart, tapi kalau nggak, jalankan manual:
ollama serve &
3. Continue extension nggak detect Ollama
Pastikan apiBase di config.json tepat http://localhost:11434 tanpa trailing slash. Gue sempat stuck 20 menit gara-gara nulis http://localhost:11434/ (ada slash di akhir).
4. Model halusinasi untuk library-library baru
Model lokal training data-nya ada cutoff-nya. Kalau kamu tanya soal library yang rilis setelah cutoff (misal fitur baru FastAPI atau Next.js terbaru), hasilnya bisa salah. Selalu verifikasi ke dokumentasi resmi.
5. RAM swap bikin laptop lemot
Kalau RAM kamu pas-pasan dan model terlalu besar, OS bakal swap ke disk — dan itu lambat banget. Monitor dengan:
# Linux
free -h
watch -n 2 'free -h'
# macOS
memory_pressure
Kalau swap udah tinggi, turun ke model yang lebih kecil.
Langkah Lanjutan
Setup dasar ini udah cukup buat ngoding sehari-hari. Tapi kalau kamu mau lebih jauh:
Buat context-aware assistant dari codebase kamu
Continue punya fitur @codebase yang index seluruh repo kamu dan bikin model bisa jawab pertanyaan spesifik tentang kode kamu sendiri. Ini lebih powerful dari sekadar autocomplete.
Expose Ollama ke jaringan lokal Kalau kamu punya desktop powerful di rumah dan laptop lemot, kamu bisa jalanin Ollama di desktop dan hit dari laptop:
# Di mesin server (desktop kamu)
OLLAMA_HOST=0.0.0.0 ollama serve
# Di config.json Continue di laptop
"apiBase": "http://192.168.1.100:11434"
Integrasikan ke Neovim
Kalau kamu Neovim user, ada plugin gen.nvim yang bisa query Ollama langsung dari buffer. Setup-nya mirip tapi butuh Lua config.
Yang gue lakuin sekarang: setup ini udah jalan di MacBook Pro M2 16GB gue selama 3 bulan. Gue pakai deepseek-coder:6.7b buat explain dan refactor, codegemma:2b buat autocomplete. Hasilnya? Nggak sesempurna Copilot buat beberapa kasus edge, tapi buat 80% pekerjaan sehari-hari — nulis boilerplate, debug error, generate test case — this guide ini lebih dari cukup. Dan yang paling penting: data proyek klien gue nggak kemana-mana.