Kamu lagi nulis kode, butuh autocomplete yang ngerti konteks, tapi nggak mau bayar $10/bulan ke GitHub Copilot atau khawatir kode proprietary kamu dikirim ke server Microsoft. Masalah ini nyata — banyak developer di perusahaan dengan NDA ketat atau yang sekadar mau hemat budget nggak punya pilihan yang bagus.
Sampai Ollama ada.
Ollama adalah tool yang bikin kamu bisa jalankan LLM (Large Language Model) langsung di mesin sendiri. Kombinasikan dengan plugin editor yang tepat, kamu bisa punya AI coding assistant yang jalan 100% offline, nggak kirim data ke mana-mana, dan — yang paling penting buat indie hacker — gratis.
Artikel ini akan setup Ollama dari nol, pilih model yang cocok buat coding, integrasikan ke VS Code, dan kasih tahu gotcha yang gue temuin waktu pertama kali setup.
Kenapa Ollama, Bukan yang Lain?
Ada beberapa alternatif: LM Studio, Jan, llama.cpp langsung. Tapi Ollama punya keunggulan spesifik buat developer:
- API-compatible dengan OpenAI — endpoint-nya mirip, jadi banyak tool yang udah support OpenAI bisa langsung pointing ke Ollama.
- CLI yang bersih —
ollama run codellamadan langsung jalan. - Model library — tinggal
ollama pull, nggak perlu download GGUF manual dan config sendiri. - Background service — jalan sebagai daemon, siap dipanggil kapan aja.
Kalau kamu udah familiar sama Docker, anggap aja Ollama itu kayak Docker tapi buat LLM.
Install Ollama
Linux (paling gampang)
curl -fsSL https://ollama.com/install.sh | sh
Script ini install Ollama sebagai systemd service. Setelah selesai, service langsung running.
# Cek status
systemctl status ollama
# Output yang diharapkan:
# ● ollama.service - Ollama Service
# Loaded: loaded (/etc/systemd/system/ollama.service)
# Active: active (running)
macOS
Download dari ollama.com atau pakai Homebrew:
brew install ollama
ollama serve &
Windows
Ada installer .exe-nya. Tapi kalau kamu pakai WSL2, lebih recommended install di Linux side supaya GPU passthrough lebih stabil.
Pilih Model yang Tepat Buat Coding
Ini bagian yang paling sering bikin orang salah pilih. Bukan berarti model terbesar = terbaik. Yang penting adalah fit antara ukuran model dan RAM/VRAM kamu.
Patokan kasar:
| Model | VRAM/RAM yang dibutuhkan | Cocok untuk |
|---|---|---|
codellama:7b |
~4 GB | Laptop biasa, CPU-only |
codellama:13b |
~8 GB | Laptop gaming, GPU entry |
deepseek-coder:6.7b |
~4 GB | Alternatif ringan, bagus buat Python/JS |
qwen2.5-coder:7b |
~5 GB | State-of-the-art buat ukurannya |
codellama:34b |
~20 GB | Workstation dengan GPU dedicated |
Rekomendasi gue buat yang baru mulai: qwen2.5-coder:7b. Model ini dari Alibaba, surprisingly bagus buat ukurannya, dan ngerti konteks kode lebih baik dari CodeLlama 7B di benchmark coding.
# Pull model
ollama pull qwen2.5-coder:7b
# Test langsung dari CLI
ollama run qwen2.5-coder:7b
>>> Tulis fungsi Python untuk validasi email
Model akan di-download sekali (~4.7 GB), setelah itu jalan lokal.
Expose API Ollama
Ollama secara default jalan di http://localhost:11434. Kamu bisa test dengan curl:
curl http://localhost:11434/api/generate \
-d '{
"model": "qwen2.5-coder:7b",
"prompt": "Tulis fungsi Go untuk reverse string",
"stream": false
}'
Response-nya JSON dengan field response berisi output model.
Endpoint /v1/chat/completions juga tersedia dan compatible dengan OpenAI SDK:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder:7b",
"messages": [
{"role": "user", "content": "Explain this Go code: fmt.Println(\"hello\")"}
]
}'
Ini penting karena berarti kamu bisa pakai OpenAI Python SDK pointing ke Ollama:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # string apapun, nggak divalidasi
)
response = client.chat.completions.create(
model="qwen2.5-coder:7b",
messages=[
{
"role": "system",
"content": "Kamu adalah senior backend engineer. Jawab dalam Bahasa Indonesia."
},
{
"role": "user",
"content": "Apa perbedaan antara goroutine dan thread OS?"
}
]
)
print(response.choices[0].message.content)
Integrasi ke VS Code dengan Continue
Ini bagian yang bikin setup ini benar-benar berguna sehari-hari. Continue adalah extension VS Code (dan JetBrains) open-source yang bisa connect ke Ollama.
# Install dari VS Code marketplace
# Cari: "Continue - Codestral, Claude, and more"
# Publisher: Continue
Setelah install, buka config Continue (~/.continue/config.json) dan edit:
{
"models": [
{
"title": "Qwen2.5 Coder Local",
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"apiBase": "http://localhost:11434"
}
],
"tabAutocompleteModel": {
"title": "Autocomplete",
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"apiBase": "http://localhost:11434"
},
"allowAnonymousTelemetry": false
}
Setelah save, kamu bisa:
- Chat dengan AI di sidebar (
Ctrl+L) — tanya tentang kode yang sedang dibuka - Inline edit (
Ctrl+I) — highlight kode, minta refactor atau explain - Tab autocomplete — mirip Copilot, tapi jalan lokal
Gotcha #1: Tab autocomplete dengan model 7B di CPU-only laptop bakal terasa lambat (~3-8 detik per suggestion). Kalau ini mengganggu, matikan autocomplete dan pakai chat mode aja — lebih sabar, tapi tetap berguna.
// Di config.json, disable autocomplete kalau terlalu lambat:
{
"tabAutocompleteOptions": {
"disable": true
}
}
Buat Script Helper untuk Workflow Coding
Selain dari editor, gue sering pakai Ollama langsung dari terminal untuk task-task spesifik. Ini script bash yang gue taruh di ~/bin/ai:
#!/bin/bash
# ~/bin/ai — quick AI query dari terminal
# Usage: ai "jelaskan error ini" atau cat error.log | ai "apa penyebabnya?"
MODEL="qwen2.5-coder:7b"
PROMPT="$*"
# Kalau ada stdin (pipe), gabungkan dengan prompt
if [ ! -t 0 ]; then
STDIN=$(cat)
PROMPT="$PROMPT\n\nKonteks:\n$STDIN"
fi
if [ -z "$PROMPT" ]; then
echo "Usage: ai <pertanyaan>"
echo " cat file.py | ai <pertanyaan tentang file>"
exit 1
fi
curl -s http://localhost:11434/api/generate \
-d "$(jq -n \
--arg model "$MODEL" \
--arg prompt "$PROMPT" \
'{model: $model, prompt: $prompt, stream: false}')" \
| jq -r '.response'
chmod +x ~/bin/ai
# Contoh penggunaan:
ai "apa bedanya slice dan array di Go?"
# Pipe error log:
cat server.log | ai "kenapa ada panic di sini?"
# Review kode:
cat main.go | ai "ada security issue di kode ini?"
Gotcha #2: Script ini butuh jq terinstall. Di Ubuntu: sudo apt install jq. Di macOS: brew install jq.
Ollama di Server Remote (Opsional)
Kalau kamu punya VPS atau homelab dengan GPU yang lebih kenceng, kamu bisa jalankan Ollama di sana dan akses dari laptop.
# Di server, expose ke semua interface:
OLLAMA_HOST=0.0.0.0 ollama serve
# Atau set di systemd service:
sudo systemctl edit ollama
Tambahkan:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Dari laptop, akses via SSH tunnel supaya nggak expose port ke internet:
# Di laptop, buka tunnel:
ssh -L 11434:localhost:11434 user@your-server-ip -N &
# Sekarang localhost:11434 di laptop = Ollama di server
# Config Continue atau script kamu tetap sama
Gotcha #3: Kalau Ollama di-expose tanpa authentication ke internet publik, siapapun bisa pakai LLM kamu. Selalu pakai SSH tunnel atau firewall rule yang ketat. Ollama belum punya built-in auth.
Benchmarking Sederhana
Sebelum commit pakai model tertentu, gue biasanya test dulu dengan prompt yang relevan sama kerjaan gue:
# Test kecepatan dan kualitas
time ollama run qwen2.5-coder:7b \
"Tulis REST API handler di Go untuk endpoint POST /users yang validasi JSON body dengan field name (string, required) dan email (string, valid email format). Sertakan error handling."
Ukur waktu response dan lihat kualitas kode yang dihasilkan. Kalau terlalu lambat, coba model yang lebih kecil (deepseek-coder:1.3b buat yang RAM-nya mepet).
Yang Gue Lakuin Sekarang
Setup yang gue pakai sehari-hari:
- Ollama jalan sebagai systemd service di laptop (AMD Ryzen 7, 16GB RAM, tanpa GPU dedicated)
- Model:
qwen2.5-coder:7buntuk chat,deepseek-coder:1.3buntuk autocomplete (lebih ringan) - Continue di VS Code untuk chat dan inline edit — autocomplete gue matikan karena terlalu lambat di CPU
- Script
aidi terminal untuk quick query tanpa buka editor
Hasilnya? Gue punya AI coding assistant yang nggak pernah minta subscription, nggak pernah kirim kode gue ke mana-mana, dan tetap jalan waktu internet mati.
Langkah lanjutan yang worth dicoba:
- Coba
ollama createuntuk bikin custom model dengan system prompt spesifik (misalnya, AI yang selalu jawab dalam Bahasa Indonesia dan paham codebase kamu) - Integrasikan Ollama ke CI pipeline lokal untuk automated code review
- Explore
ollama show --modelfileuntuk lihat dan modifikasi konfigurasi model
Kalau kamu stuck di bagian mana pun — terutama soal VRAM vs RAM tradeoff atau this guide untuk config Continue — drop di kolom komentar.