Category: AI

  • Memahami dan Memaksimalkan Claude Code

    Memahami dan Memaksimalkan Claude Code

    Saya pakai beberapa AI code assistant, Claude Code, Antigravity, dan sejenisnya, tapi tulisan ini fokus ke Claude Code dan jadi bahan pembelajaran untuk saya yang masih pemula dalam penggunaannya. Prinsip di bawah ini sebagian besar berlaku juga untuk tool lain, cuma cara implementasinya beda-beda.

    Dua masalah paling sering muncul waktu kerja pakai AI code agent:

    1. Token cepat habis, usage limit kena padahal kerjaan belum kelar.
    2. Hasil kerja melenceng dari rencana, jadi harus dikoreksi berkali-kali.

    Catatan ini disusun dari dokumentasi resmi Claude Code (code.claude.com/docs).

    1. Hemat Token dan Usage Limit

    Akar masalahnya satu: context window. Makin penuh context, makin banyak token diproses ulang tiap pesan, dan performa ikut turun karena instruksi lama mulai “terlupakan”. Jadi strategi hemat token intinya jaga context tetap kecil dan relevan.

    StrategiKenapa penting
    Rapikan CLAUDE.mdFile ini kebaca tiap sesi, jadi ikut nambah token di tiap request. Isi cuma hal yang Claude tidak bisa tebak sendiri: perintah build khusus, konvensi kode beda dari default, gotcha project. Kalau satu baris dihapus dan Claude tetap benar, hapus saja
    /clear antar taskPindah task tapi context lama masih menumpuk itu boros. /clear reset total
    /compact <instruksi>Kasih arahan spesifik, misal /compact fokus ke perubahan API dan hasil test, biar ringkasan yang tersimpan relevan
    Reference file pakai @Sebut file spesifik, misal @src/auth/session.ts, daripada suruh Claude eksplorasi satu folder penuh
    Delegasikan riset ke subagentSubagent jalan di context terpisah, yang balik ke context utama cuma rangkumannya
    Pilih model sesuai beban kerjaSonnet cukup untuk kerjaan harian dan lebih murah. Simpan Opus untuk keputusan arsitektur atau analisis kompleks. Ganti lewat /model
    Pantau lewat /context dan /usage/context kasih breakdown token per komponen. /usage kasih estimasi biaya sesi berjalan

    2. Supaya Claude Code Jalan Sesuai Rencana

    Bagian ini paling sering diabaikan. Langsung suruh coding tanpa eksplorasi dan rencana biasanya menghasilkan kode yang terlihat benar tapi menjawab masalah yang salah.

    Alur resmi yang direkomendasikan ada empat tahap:

    1. Explore: masuk plan mode, suruh Claude baca dan pahami kode relevan dulu tanpa mengubah apa pun.
    2. Plan: minta Claude buat rencana implementasi detail. Bisa diedit manual dulu sebelum lanjut.
    3. Implement: keluar plan mode, biarkan Claude coding sambil verifikasi ke rencana yang disepakati.
    4. Commit: minta Claude commit dengan pesan jelas.

    Plan mode ada overhead-nya, jadi skip saja untuk perubahan kecil yang sudah jelas seperti perbaiki typo atau rename variabel. Pakai kalau perubahan menyentuh banyak file, atau kalian sendiri belum yakin pendekatan yang tepat.

    Dua kebiasaan lain yang paling berpengaruh ke akurasi hasil:

    Kasih konteks spesifik, bukan instruksi umum.

    Kurang spesifikLebih spesifik
    “tambahin test buat foo.py”“tulis test untuk foo.py, cover kasus user sudah logout, jangan pakai mock”
    “perbaiki bug login”“login gagal setelah session timeout, cek flow auth di src/auth/ terutama token refresh, buat failing test dulu baru diperbaiki”

    Kasih Claude cara verifikasi sendiri, entah test suite, build, atau screenshot dibanding desain awal. Tanpa itu, satu-satunya sinyal “kelar” cuma kode yang terlihat masuk akal, belum tentu benar.

    Untuk fitur besar, minta Claude interview kalian dulu soal implementasi teknis, UX, dan edge case, sebelum nulis spek ke file terpisah. Sesi implementasi baru dimulai setelah spek matang, jadi context-nya bersih dan fokus.

    Kalau sudah dikoreksi dua kali untuk masalah yang sama, jangan koreksi ketiga kalinya di sesi yang sama. /clear saja dan tulis ulang prompt yang lebih spesifik.

    Untuk kerjaan tanpa pengawasan, tambahkan satu langkah review dari subagent terpisah yang mengecek diff terhadap rencana awal, bukan sekadar gaya penulisan kode.

    3. Lain-lain

    • Hooks: aturan yang wajib jalan tanpa kecuali, misal lint otomatis tiap habis edit file. Deterministik, beda dari CLAUDE.md yang sifatnya cuma anjuran.
    • Skills: workflow berulang, bikin SKILL.md di .claude/skills/ daripada jelasin ulang tiap sesi.
    • Rename dan resume session: kasih nama sesi jelas pakai /rename per workstream, lanjut pakai --resume atau --continue.
    • Non-interactive mode: untuk kerjaan berulang atau otomasi, pakai claude -p "prompt" di script, pre-commit hook, atau CI.
    • Checkpoint dan rewind: tiap prompt otomatis bikin checkpoint. Kalau salah arah, tekan Esc dua kali atau jalankan /rewind.

    Pola gagal yang paling sering terjadi:

    Pola gagalCara mengatasi
    Satu sesi dipakai banyak task tidak nyambung/clear tiap ganti task
    Koreksi berulang tanpa hasil membaik/clear setelah dua kali gagal, tulis ulang prompt
    CLAUDE.md kepanjangan sampai instruksi penting ketutup noisePangkas ruthless
    Percaya hasil tanpa verifikasiSelalu sediakan cara ngecek
    Eksplorasi tanpa scope jelasBatasi cakupan riset atau delegasikan ke subagent

    Penutup

    Intinya satu: context adalah resource terbatas, perlakukan seperti resource, bukan tempat sampah. Makin bersih dan terarah context yang dikasih ke Claude Code, makin hemat token, dan makin kecil kemungkinan hasilnya melenceng dari rencana.

    Referensi:

    • Best practices for Claude Code, Anthropic. https://code.claude.com/docs/en/best-practices
    • Manage costs effectively, Anthropic. https://code.claude.com/docs/en/costs
  • Bikin Daily To-Do Dashboard (TUI) Pakai Go dan Gemini CLI

    Bikin Daily To-Do Dashboard (TUI) Pakai Go dan Gemini CLI

    Latar belakang

    Sehari-hari kegiatan saya itu ada di terminal. SSH ke server, ngoprek infrastruktur, sampai belajar hal-hal baru semuanya saya lakukan dari command line. Tapi ada satu kebiasaan yang lama-lama terasa mengganggu: tiap kali mau tahu tugas berikutnya apa, saya harus keluar dulu dari terminal, buka browser, buka Notion atau catatan, baru balik lagi ngetik. Kelihatannya sepele, tapi pindah-pindah konteks seperti ini diam-diam memecah fokus.

    Dari situ muncul pikiran sederhana: kenapa daftar tugas harian saya nggak sekalian saya taruh di terminal saja, di tempat yang sama dengan saya kerja? Daripada bolak-balik ke Notion, mending semuanya ada di satu layar. Akhirnya saya coba bikin sendiri, dan jadilah project kecil ini: sebuah Daily To-Do Dashboard berbasis TUI.

    Apa itu TUI

    TUI itu singkatan dari Terminal User Interface. Bedanya dengan CLI biasa, kalau CLI umumnya sekali jalan langsung keluar output teks yang statis, TUI adalah aplikasi interaktif yang “hidup” di dalam terminal. Ada layout, navigasi pakai keyboard, warna, dan tampilan yang bisa berubah secara real-time, tapi semuanya tetap berjalan di emulator terminal tanpa perlu GUI.

    Kemungkinan besar kalian sudah sering pakai TUI tanpa sadar. Beberapa contoh yang biasa saya pakai sehari-hari: htop atau btop buat monitoring sistem, lazygit buat ngurus git, k9s buat Kubernetes, dan ncdu buat lihat pemakaian disk. Buat orang yang memang tinggal di terminal, TUI ini enak banget. Tangan nggak perlu lepas dari keyboard, aplikasinya ringan, dan yang paling penting tetap jalan walau cuma diakses lewat SSH ke server yang nggak punya tampilan desktop.

    Gemini CLI: alasan dan instalasi singkat

    Untuk membangun project ini saya pakai bantuan AI coding agent langsung dari terminal. Sebenarnya pilihan pertama saya adalah Claude Code, tapi Claude Code tidak tersedia di paket gratis. Untuk memakainya minimal harus langganan Pro atau pakai kredit API. Akun API baru memang dapat sedikit kredit gratis untuk coba-coba, tapi nggak cukup buat dipakai terus-menerus. Karena waktu itu saya cuma mau eksperimen dulu, saya cari opsi yang bisa gratis di awal, dan Gemini CLI jadi jawabannya.

    Gemini CLI adalah AI agent open-source dari Google yang jalan langsung di terminal dan punya free tier yang cukup untuk kebutuhan ngoprek harian. Cara installnya gampang. Prasyaratnya cuma Node.js (disarankan versi LTS, minimal Node 18). Setelah itu tinggal jalankan:

    npm install -g @google/gemini-cli

    Lalu untuk memulainya cukup ketik:

    gemini

    Kalau kalian cuma ingin mencoba tanpa install permanen, bisa langsung pakai npx:

    npx @google/gemini-cli

    Saat pertama kali dijalankan, kalian akan diminta autentikasi. Paling gampang login pakai akun Google untuk free tier, atau pakai API key kalau memang butuh.

    Satu catatan penting yang perlu diketahui. Per 18 Juni 2026, Google menghentikan layanan Gemini CLI untuk pengguna free tier, Google AI Pro, dan Ultra, lalu mengarahkan penggunanya ke tool baru bernama Antigravity CLI. Jadi kalau kalian membaca tulisan ini setelah tanggal tersebut dan memakai akun gratis, perintah gemini kemungkinan sudah tidak melayani request lagi. Saya sendiri membangun project ini selagi free tier-nya masih aktif. Buat yang baru mulai sekarang, silakan cek Antigravity CLI sebagai penerusnya, atau pertimbangkan opsi lain seperti Claude Code kalau sudah siap berlangganan.

    Struktur folder dan generate README

    Project ini ditulis pakai Go, dengan ekosistem Charm sebagai fondasinya. Bubble Tea dipakai sebagai kerangka TUI-nya, Lipgloss untuk styling seperti warna, border, dan layout, lalu Bubbles untuk komponen siap pakai seperti text input, progress bar, dan help. Untuk penyimpanan datanya saya pakai SQLite lewat go-sqlite3, jadi task tetap tersimpan walau aplikasinya ditutup. Database-nya disimpan di ~/.todo-dashboard/tasks.db.

    Struktur foldernya dibuat modular mengikuti pola Model-View-Update (MVU), pola khas Bubble Tea yang terinspirasi dari Elm:

    .
    ├── main.go              # entry point: siapkan path DB, lalu jalankan program
    ├── internal/
    │   ├── db/db.go         # layer SQLite: add, get, toggle, delete task
    │   ├── models/task.go   # struct Task dan tipe Priority
    │   └── tui/model.go     # logika Bubble Tea: Model, Update, View, keymap, style
    ├── go.mod
    ├── go.sum
    └── .gitignore

    Inti dari pola MVU ini begini. Semua state aplikasi, mulai dari daftar task, posisi kursor, sampai mode input, disimpan di dalam Model. Setiap kejadian, entah itu tombol ditekan atau timer detik yang berdetak untuk update jam, masuk ke fungsi Update yang bertugas mengubah state. Lalu View merender tampilan dari state terbaru tadi. Alurnya jadi rapi dan gampang ditebak. Logika seperti navigasi kursor (j/k), menandai selesai (space), menambah task baru (n), dan menghapus (x) semuanya ada di model.go.

    Nah, untuk README.md saya minta tolong Gemini CLI yang menyusun. Hasilnya cepat dan rapi sebagai titik awal. Sudah ada bagian fitur, tech stack, cara install, tabel keybinding, sampai struktur project. Tapi saya mau jujur, README hasil generate tetap perlu dibersihkan manual. Punya saya misalnya masih menyisakan placeholder seperti URL clone yang masih bertuliskan yourusername dan gambar preview placeholder yang belum saya ganti dengan screenshot asli. Jadi menurut saya AI agent ini bagus banget untuk draft awal dan biar ngebut, tapi review manusia tetap wajib supaya dokumentasinya benar-benar cocok dengan repo. Buat kalian yang mau coba langsung, repo aslinya bisa dijalankan seperti ini:

    git clone https://github.com/rafiharli/todo-tui-dashboard.git
    cd todo-tui-dashboard
    go mod tidy
    go run main.go

    Menambah Task (tekan n)

    Menambah deadline (opsional)

    Input tanggal tidak sesuai format

    Hal kecil yang mempermudah

    Buat saya, project ini memang kecil dan sederhana, tapi justru di situ nilainya. Dia menyelesaikan satu gangguan kecil yang sering saya alami, yaitu nggak perlu lagi pindah-pindah ke notes atau app lain cuma untuk lihat tugas berikutnya. Sekarang daftar tugas harian ada di tempat yang sama dengan saya kerja, yaitu di terminal, dan itu saja sudah cukup bikin alur kerja saya terasa lebih ringan. Kebetulan sambil bikin ini saya juga belajar dasar-dasar Go, cara kerja TUI dengan Bubble Tea, dan bagaimana memanfaatkan AI agent di terminal tanpa menyerahkan semuanya bulat-bulat ke AI.

    Hal-hal kecil seperti ini menurut saya sering diremehkan, padahal kalau diakumulasi setiap hari dampaknya nyata. Nggak harus bikin aplikasi besar atau fitur yang rumit. Kadang yang kita butuhkan cuma satu tool sederhana yang menghapus satu langkah ekstra dari rutinitas. Kalau kalian juga sering di terminal dan punya kebiasaan kecil yang berulang-ulang dan agak mengganggu, coba pikirkan apakah bisa dipermudah dengan tool kecil buatan sendiri. Nggak harus sempurna, yang penting bisa menghemat sedikit waktu dan tenaga kalian. Buat saya, hal kecil yang mempermudah seperti ini justru yang paling kepakai sehari-hari.

    Beginner Tips:

    • Gunakan plan mode, agent, dan skill sebelum mengimplementasikan project. Ini berlaku pada platform AI manapun (claude code/gemini cli/codex cli).