Tutorial Lengkap Aider: AI Pair Programming di Terminal

# Tutorial Lengkap Aider: AI Pair Programming di Terminal Aider adalah tool open-source yang memungkinkan Anda melakukan pair programming dengan Large Language Model (LLM) langsung dari terminal. Den...

By Ruby Abdullah · · tutorial
AiderAI CodingPair ProgrammingLLMDeveloper Tools

Tutorial Lengkap Aider: AI Pair Programming di Terminal

Aider adalah tool open-source yang memungkinkan Anda melakukan pair programming dengan Large Language Model (LLM) langsung dari terminal. Dengan Aider, Anda bisa mengedit kode di repository Git secara langsung melalui percakapan natural language, tanpa perlu copy-paste kode ke web interface. Tool ini mendukung berbagai model AI seperti GPT-4o, Claude, Gemini, dan model lokal melalui Ollama.

Mengapa Aider?

Dalam ekosistem AI coding assistant yang semakin ramai, Aider memiliki beberapa keunggulan yang membedakannya:

  • Git-native: Setiap perubahan otomatis di-commit ke Git dengan pesan commit yang deskriptif
  • Multi-file editing: Bisa mengedit banyak file sekaligus dalam satu percakapan
  • Repository map: Aider memahami struktur keseluruhan codebase Anda menggunakan tree-sitter
  • Model agnostic: Mendukung OpenAI, Anthropic, Google, dan model lokal
  • Terminal-first: Bekerja langsung di terminal tanpa perlu IDE khusus
  • Instalasi

    Menggunakan pip

    pip install aider-chat
    

    Menggunakan pipx (Direkomendasikan)

    pipx menginstal Aider dalam environment terisolasi sehingga tidak konflik dengan package Python lainnya:

    pipx install aider-chat
    

    Menggunakan Homebrew (macOS)

    brew install aider
    

    Verifikasi Instalasi

    aider --version
    

    Konfigurasi API Key

    Aider membutuhkan API key dari provider LLM yang ingin Anda gunakan. Berikut cara konfigurasinya:

    OpenAI

    export OPENAIAPIKEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
    

    Anthropic (Claude)

    export ANTHROPICAPIKEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx
    

    Google Gemini

    export GEMINIAPIKEY=xxxxxxxxxxxxxxxxxxxxxxxx
    

    Menggunakan File .env

    Anda juga bisa menyimpan API key di file .env pada root project:

    # .env
    

    OPENAIAPIKEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

    ANTHROPICAPIKEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx

    Aider akan otomatis membaca file .env saat dijalankan.

    Basic Usage

    Memulai Sesi Aider

    Navigasi ke repository Git Anda dan jalankan:

    cd /path/to/your/project
    

    aider

    Secara default, Aider akan menggunakan model terbaik yang tersedia berdasarkan API key yang dikonfigurasi.

    Menentukan Model

    # Menggunakan Claude Sonnet
    

    aider --model claude-sonnet-4-6

    Menggunakan GPT-4o

    aider --model gpt-4o

    Menggunakan model lokal via Ollama

    aider --model ollama/deepseek-coder-v2

    Menambahkan File ke Percakapan

    Saat memulai Aider, Anda bisa langsung menentukan file yang ingin diedit:

    aider src/main.py src/utils.py tests/testmain.py
    

    Atau tambahkan file dari dalam sesi menggunakan perintah /add:

    /add src/models.py
    

    Contoh Percakapan Sederhana

    $ aider app.py
    
    
    Tambahkan endpoint GET /health yang mengembalikan status "ok" dan timestamp saat ini

    app.py

    <<<<<<< SEARCH

    from flask import Flask

    app = Flask(name)

    =======

    from flask import Flask, jsonify

    from datetime import datetime

    app = Flask(name)

    @app.route('/health')

    def healthcheck():

    return jsonify({

    'status': 'ok',

    'timestamp': datetime.utcnow().isoformat()

    })

    >>>>>> REPLACE

    Commit: feat: add health check endpoint with status and timestamp

    Aider akan menunjukkan perubahan yang diusulkan dan langsung membuat commit jika Anda menyetujuinya.

    In-Chat Commands

    Aider memiliki banyak perintah yang bisa digunakan dalam sesi chat:

    Manajemen File

    /add        # Tambahkan file ke percakapan (bisa diedit)
    

    /read # Tambahkan file sebagai read-only (untuk konteks)

    /drop # Hapus file dari percakapan

    /ls # Tampilkan file yang sedang aktif

    Kontrol Git

    /commit           # Commit perubahan yang pending
    

    /undo # Undo commit terakhir yang dibuat Aider

    /diff # Tampilkan diff dari perubahan terakhir

    /git # Jalankan perintah git langsung

    /clear            # Bersihkan history chat
    

    /run # Jalankan shell command dan tampilkan output

    /test # Jalankan test dan minta Aider fix jika gagal

    Advanced Usage

    Multi-File Editing

    Salah satu kekuatan utama Aider adalah kemampuannya mengedit banyak file sekaligus. Ini sangat berguna untuk refactoring:

    aider src/models/user.py src/routes/auth.py src/services/userservice.py tests/testauth.py
    

    > Refactor user authentication: pindahkan logic validasi password dari route ke 
    
    userservice.py, tambahkan password hashing menggunakan bcrypt, dan update
    test-nya

    Aider akan menganalisis semua file yang ditambahkan dan membuat perubahan terkoordinasi di seluruh file yang relevan.

    Menggunakan Repository Map

    Aider secara otomatis membuat peta dari repository Anda menggunakan tree-sitter. Ini memungkinkan Aider memahami hubungan antar file meskipun tidak semua file ditambahkan ke percakapan:

    # Aider akan menganalisis seluruh repository untuk konteks
    

    aider --map-tokens 2048 src/main.py

    Parameter --map-tokens mengontrol seberapa banyak token yang digunakan untuk repository map. Nilai lebih tinggi memberikan konteks lebih banyak tetapi menggunakan lebih banyak token.

    Architect Mode

    Architect mode menggunakan dua model: satu untuk merencanakan perubahan (architect) dan satu lagi untuk mengeksekusi (editor):

    aider --architect --model claude-sonnet-4-6 --editor-model claude-haiku-4-5-20251001
    

    Ini berguna ketika Anda ingin model yang lebih powerful untuk merencanakan perubahan dan model yang lebih murah untuk mengimplementasikannya.

    Integrasi dengan Ollama (Model Lokal)

    Untuk menggunakan model lokal tanpa mengirim kode ke cloud:

    # Pastikan Ollama sudah terinstal dan model sudah di-download
    

    ollama pull deepseek-coder-v2

    Jalankan Aider dengan model Ollama

    aider --model ollama/deepseek-coder-v2

    Lint dan Test Integration

    Aider bisa menjalankan linter dan test secara otomatis setelah setiap perubahan:

    aider --lint-cmd "ruff check --fix" --auto-lint \
    

    --test-cmd "pytest tests/" --auto-test

    Jika lint atau test gagal, Aider akan otomatis mencoba memperbaiki masalahnya.

    Menggunakan .aider.conf.yml

    Untuk konfigurasi yang konsisten di setiap sesi, buat file .aider.conf.yml di root project:

    model: claude-sonnet-4-6
    

    auto-commits: true

    auto-lint: true

    lint-cmd: "ruff check --fix"

    auto-test: false

    test-cmd: "pytest tests/ -x"

    map-tokens: 2048

    Workflow Praktis

    1. Bug Fixing dengan Context

    # Tambahkan file yang bermasalah dan file test
    

    aider src/parser.py tests/testparser.py

    Ada bug di fungsi parsecsv: ketika ada kolom kosong di akhir baris,
    fungsi membuang kolom tersebut. Seharusnya kolom kosong tetap
    dipertahankan sebagai string kosong. Perbaiki bug ini dan tambahkan
    test case untuk skenario ini.

    2. Menambahkan Fitur Baru

    aider src/api/ src/models/ src/services/
    
    
    Tambahkan fitur pagination pada endpoint GET /api/users. Gunakan
    cursor-based pagination dengan parameter "cursor" dan "limit".
    Default limit 20, maksimal 100. Response harus include "nextcursor"
    dan "hasmore".

    3. Code Review dan Refactoring

    # Tambahkan file sebagai read-only untuk konteks
    

    aider --read src/legacymodule.py src/newmodule.py

    Review src/newmodule.py dan bandingkan dengan legacymodule.py.
    Pastikan semua edge case dari legacy module sudah ditangani di
    module baru.

    4. Menulis Documentation

    aider src/api/routes.py README.md
    
    
    Buat dokumentasi API di README.md berdasarkan semua endpoint yang
    ada di routes.py. Sertakan contoh request dan response untuk
    setiap endpoint.

    Tips dan Best Practices

    1. Mulai dengan Scope Kecil

    Jangan menambahkan terlalu banyak file sekaligus. Mulai dengan file yang benar-benar perlu diedit. Gunakan /read untuk file yang hanya perlu dijadikan konteks:

    /add src/targetfile.py
    

    /read src/referencefile.py

    2. Berikan Instruksi yang Spesifik

    Semakin spesifik instruksi Anda, semakin baik hasilnya:

    # Kurang baik
    
    Perbaiki fungsi login

    Lebih baik

    Di fungsi login() baris 45, tambahkan rate limiting: maksimal 5 percobaan
    per IP address dalam 15 menit. Gunakan Redis untuk menyimpan counter.
    Return HTTP 429 jika limit tercapai.

    3. Gunakan /undo untuk Iterasi

    Jika perubahan tidak sesuai harapan, gunakan /undo untuk kembali ke state sebelumnya dan coba instruksi yang berbeda:

    /undo
    
    Coba pendekatan lain: gunakan decorator @ratelimit(max=5, window=900)
    daripada inline logic

    4. Manfaatkan /run untuk Verifikasi

    Setelah Aider membuat perubahan, verifikasi hasilnya:

    /run python -m pytest tests/testauth.py -v
    

    /run python src/main.py --dry-run

    5. Konfigurasi Git Conventions

    Aider membuat commit otomatis. Anda bisa mengkustomisasi format commit message:

    aider --commit-prompt "Gunakan format conventional commits (feat:, fix:, refactor:, dll). Tulis dalam bahasa Inggris."
    

    6. Hemat Token dengan Read-Only Files

    File yang ditambahkan dengan /read menggunakan lebih sedikit token dibanding /add karena Aider tidak perlu memproses kemampuan edit untuk file tersebut:

    /read src/config.py        # Hanya untuk konteks
    

    /read src/constants.py # Hanya untuk konteks

    /add src/main.py # File yang akan diedit

    Perbandingan Edit Format

    Aider mendukung beberapa format edit yang bisa dipilih sesuai kebutuhan:

    | Format | Deskripsi | Cocok Untuk |

    |--------|-----------|-------------|

    | whole | Mengirim ulang seluruh file | File kecil, perubahan besar |

    | diff | Menggunakan unified diff | File besar, perubahan kecil |

    | diff-fenced | Diff dalam fenced code blocks | Default untuk banyak model |

    | udiff | Universal diff format | Model yang mendukung |

    Untuk mengubah format edit:

    aider --edit-format diff
    

    Menggunakan Aider dengan Docker

    Untuk environment yang terisolasi:

    docker run -it --rm \
    

    -v $(pwd):/app \

    -e OPENAIAPIKEY=$OPENAIAPI_KEY \

    paulgauthier/aider \

    --model gpt-4o

    Troubleshooting

    Model Tidak Merespons dengan Baik

    Jika model menghasilkan output yang kurang baik, coba:

  • Gunakan model yang lebih capable (claude-sonnet atau gpt-4o)
  • Kurangi jumlah file yang ditambahkan
  • Berikan instruksi yang lebih spesifik
  • Gunakan architect mode untuk task yang kompleks
  • Git Conflict

    Jika terjadi conflict saat Aider membuat commit:

    /git stash
    

    /clear

    Mulai percakapan baru dengan konteks yang lebih jelas

    Token Limit

    Jika percakapan terlalu panjang:

    /clear           # Reset history chat
    

    /tokens # Cek penggunaan token saat ini

    /drop # Hapus file yang tidak diperlukan

    Kesimpulan

    Aider adalah tool yang sangat powerful untuk AI-assisted coding langsung dari terminal. Keunggulan utamanya adalah integrasi native dengan Git, kemampuan multi-file editing, dan dukungan untuk berbagai model AI. Beberapa poin penting yang perlu diingat:

    • Selalu mulai dengan scope yang kecil dan spesifik
    • Manfaatkan /read untuk memberikan konteks tanpa menambah biaya token
    • Gunakan /undo secara liberal untuk iterasi
    • Konfigurasikan .aider.conf.yml untuk konsistensi di seluruh tim
    • Pertimbangkan architect mode untuk refactoring berskala besar

    Dengan pendekatan yang tepat, Aider bisa menjadi multiplier produktivitas yang signifikan dalam workflow development Anda. Tool ini bukan pengganti developer, melainkan partner yang mempercepat iterasi dan mengurangi boilerplate.

    Artikel Terkait

    Tutorial MergeKit: Menggabungkan Model LLM untuk Membuat Model AI Kustom

    Tutorial MergeKit: Menggabungkan Model LLM untuk Membuat Model AI Kustom Model bahasa besar (LLM) open-source terus berk...

    Tutorial bitsandbytes: Kuantisasi 4-bit dan 8-bit untuk Large Language Models

    Tutorial bitsandbytes: Kuantisasi 4-bit dan 8-bit untuk Large Language Models Menjalankan Large Language Model (LLM) sep...

    Tutorial Semantic Router: Routing Cerdas untuk Aplikasi LLM

    Tutorial Semantic Router: Routing Cerdas untuk Aplikasi LLM Semantic Router adalah library Python yang memungkinkan Anda...

    Tutorial Lengkap Unstructured: Preprocessing Dokumen untuk RAG dan Aplikasi LLM

    Tutorial Lengkap Unstructured: Preprocessing Dokumen untuk RAG dan Aplikasi LLM Dalam membangun aplikasi Retrieval-Augme...