Jalankan AI Coding Assistant Lokal dengan Ollama

by Marcus Chen
Jalankan AI Coding Assistant Lokal dengan Ollama

Masalah: AI coding assistant kamu bocor data dan bikin kantong jebol

Kamu lagi ngoding, stuck di suatu fungsi, terus nanya ke ChatGPT atau GitHub Copilot. Wajar. Tapi ada dua masalah yang sering diabaikan:

  1. Data kamu dikirim ke server mereka. Kalau kamu kerja di proyek klien atau startup yang punya IP sensitif, ini risiko nyata.
  2. Biayanya nggak predictable. API OpenAI bisa tiba-tiba mahal kalau usage-mu naik. Copilot $10/bulan per seat — lumayan kalau kamu solo indie hacker.

Solusinya: jalankan large language model (LLM) sendiri di laptop atau server lokal. Dengan Ollama, setup-nya lebih simpel dari yang kamu kira.

Artikel ini bakal kasih kamu setup end-to-end: Ollama + model coding + integrasi ke editor — semua jalan di mesin kamu sendiri, tanpa koneksi internet, tanpa biaya per-token.


Kenapa Ollama, Bukan LM Studio atau llama.cpp Langsung?

Ada beberapa opsi untuk jalankan LLM lokal:

  • llama.cpp — powerful tapi setup-nya manual banget, harus compile sendiri.
  • LM Studio — GUI bagus, tapi berat dan kurang cocok buat integrasi programatik.
  • Ollama — CLI-first, expose REST API otomatis di localhost:11434, model management pakai satu command. Cocok buat developer.

Ollama juga support model-model coding spesifik seperti deepseek-coder, codellama, dan qwen2.5-coder yang memang di-fine-tune buat nulis dan debug kode.


Setup Ollama di Linux/macOS

Install

Satu command, selesai:

curl -fsSL https://ollama.com/install.sh | sh

Kalau kamu di macOS, bisa juga pakai:

brew install ollama

Verifikasi:

ollama --version
# ollama version is 0.3.x

Pull model coding

Gue rekomendasikan mulai dari qwen2.5-coder:7b — ukurannya sekitar 4.7 GB, performa coding-nya solid, dan jalan lancar di laptop dengan RAM 16 GB:

ollama pull qwen2.5-coder:7b

Kalau RAM kamu 8 GB, pakai versi yang lebih kecil:

ollama pull qwen2.5-coder:1.5b

Mau lihat model apa yang sudah ter-install?

ollama list

Jalankan server

Ollama otomatis jalan sebagai background service setelah install. Tapi kalau perlu restart manual:

ollama serve

Server sekarang listen di http://localhost:11434.


Test via REST API

Sebelum integrasi ke editor, pastikan API-nya jalan dulu. Buka terminal baru:

curl http://localhost:11434/api/generate \
  -d '{
    "model": "qwen2.5-coder:7b",
    "prompt": "Write a Python function to flatten a nested list",
    "stream": false
  }'

Response-nya JSON, field response berisi output model:

{
  "model": "qwen2.5-coder:7b",
  "response": "def flatten(lst):\n    result = []\n    for item in lst:\n        if isinstance(item, list):\n            result.extend(flatten(item))\n        else:\n            result.append(item)\n    return result",
  "done": true
}

Kalau dapat response ini, setup kamu sudah beres.


Integrasi ke VS Code dengan Continue

Continue adalah extension VS Code open-source yang bisa connect ke Ollama. Ini pengganti Copilot yang jalan 100% lokal.

Install Continue

  1. Buka VS Code
  2. Extensions (Ctrl+Shift+X)
  3. Cari "Continue" → Install

Konfigurasi

Setelah install, Continue akan buat file config di ~/.continue/config.json. Edit file itu:

{
  "models": [
    {
      "title": "Qwen2.5 Coder 7B (Local)",
      "provider": "ollama",
      "model": "qwen2.5-coder:7b",
      "apiBase": "http://localhost:11434"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Autocomplete",
    "provider": "ollama",
    "model": "qwen2.5-coder:1.5b",
    "apiBase": "http://localhost:11434"
  },
  "allowAnonymousTelemetry": false
}

Perhatikan: gue pakai dua model berbeda. Model 7b untuk chat dan explain code (lebih pintar), model 1.5b untuk autocomplete inline (lebih cepat, latency rendah).

Cara pakainya

  • Chat: Ctrl+L buka sidebar Continue, tanya apa saja tentang kode kamu.
  • Inline edit: Select kode, tekan Ctrl+I, ketik instruksi (misalnya "add error handling").
  • Autocomplete: Tinggal ngetik, suggestion muncul otomatis seperti Copilot.

Buat Script Python Sendiri untuk Query Ollama

Kalau kamu mau integrate AI ke workflow atau tooling custom — misalnya script review kode otomatis sebelum commit — ini contoh minimal yang jalan:

import requests
import json
import sys

OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL = "qwen2.5-coder:7b"

def ask_ollama(prompt: str) -> str:
    payload = {
        "model": MODEL,
        "prompt": prompt,
        "stream": False
    }
    response = requests.post(OLLAMA_URL, json=payload, timeout=120)
    response.raise_for_status()
    return response.json()["response"]

def review_code(filepath: str) -> None:
    with open(filepath, "r") as f:
        code = f.read()

    prompt = f"""Review kode Python berikut. Identifikasi bug, masalah performa, 
dan pelanggaran best practice. Jawab dalam Bahasa Indonesia.

```python
{code}
```"""

    print(f"Reviewing {filepath}...\n")
    result = ask_ollama(prompt)
    print(result)

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python review.py <file.py>")
        sys.exit(1)
    review_code(sys.argv[1])

Jalankan:

python review.py mymodule.py

Kamu bisa hook script ini ke pre-commit dengan pre-commit framework supaya review jalan otomatis sebelum setiap commit.


Gotcha yang Gue Temuin

1. First token latency tinggi

Waktu pertama kali nanya setelah server baru start, response bisa lambat 5–15 detik karena model harus load ke memori. Request kedua dan seterusnya jauh lebih cepat. Ini normal — bukan bug.

2. RAM swap bikin laptop nge-freeze

Kalau RAM kamu pas-pasan dan kamu pull model yang terlalu besar, sistem bakal agresif pakai swap dan laptop bisa hang. Aturan praktis: ukuran model (dalam GB) harus muat di RAM fisik kamu dengan sisa minimal 4 GB buat OS dan editor. Laptop 16 GB RAM → maksimal model ~10 GB.

3. Ollama serve vs. systemd service

Di Linux, installer otomatis buat systemd service. Tapi kalau kamu jalankan ollama serve manual di terminal yang sama dengan project kamu, terus terminal itu ditutup, server mati. Cek status service:

systemctl status ollama

Kalau mati:

sudo systemctl start ollama
sudo systemctl enable ollama  # biar auto-start

4. Model context window terbatas

Model 7B biasanya punya context window 4K–8K token. Kalau kamu paste file kode yang panjang banget, model bisa "lupa" bagian awal. Solusinya: pecah pertanyaan kamu, atau pakai model yang support context lebih panjang seperti qwen2.5-coder:14b (butuh RAM lebih besar).

5. GPU acceleration di Linux

Kalau kamu punya GPU NVIDIA, Ollama otomatis detect dan pakai CUDA. Pastikan driver NVIDIA dan CUDA toolkit sudah ter-install. Cek apakah GPU dipakai:

ollama ps
# NAME                    ID              SIZE      PROCESSOR    UNTIL
# qwen2.5-coder:7b        ...             5.2 GB    100% GPU     ...

Kolom PROCESSOR harus 100% GPU, bukan 100% CPU. Kalau masih CPU, berarti CUDA belum kedetect.


Model Mana yang Cocok untuk Kamu?

Model Ukuran RAM Minimum Cocok untuk
qwen2.5-coder:1.5b ~1 GB 4 GB Autocomplete cepat
qwen2.5-coder:7b ~4.7 GB 8 GB Chat, explain, review
deepseek-coder:6.7b ~4.1 GB 8 GB Alternatif solid
codellama:13b ~8 GB 16 GB Task kompleks
qwen2.5-coder:14b ~9 GB 20 GB Context panjang

Untuk kebanyakan solo developer dengan laptop 16 GB, kombinasi qwen2.5-coder:7b (chat) + qwen2.5-coder:1.5b (autocomplete) adalah sweet spot terbaik.


Yang Gue Lakuin Sekarang

Setup ini sudah gue pakai sehari-hari selama dua bulan terakhir. Beberapa hal yang langsung gue rasain:

  • Zero latency network — response terasa lebih snappy dibanding nunggu API OpenAI dari Indonesia.
  • Privasi terjaga — kode klien nggak kemana-mana.
  • Biaya nol — setelah setup awal, tidak ada recurring cost.

Langkah lanjutan yang bisa kamu explore:

  1. Expose Ollama ke jaringan lokal supaya bisa diakses dari device lain (tambahkan OLLAMA_HOST=0.0.0.0 di environment variable service-nya).
  2. Integrasikan ke Neovim pakai plugin gen.nvim kalau kamu tim Neovim.
  3. Buat MCP server custom di atas Ollama API untuk workflow yang lebih kompleks.
  4. Coba model multimodal seperti llava kalau kamu perlu analisis screenshot atau diagram arsitektur.

Coba dulu setup dasarnya, pastikan curl ke API bisa jalan, baru integrasi ke editor. Jangan skip step verifikasi — this guide itu yang paling sering bikin orang stuck di tengah jalan.