Sampul buku
Panduan Praktis · Edisi 2026

Kuasai Claude Code

Panduan Lengkap Agentic Coding di Terminal — dari instalasi pertama hingga alur kerja profesional bersama asisten yang benar-benar mengeksekusi.
Galih Prasetyo · 2026 · Bahasa Indonesia

KUASAI CLAUDE CODE

Pembuka

Kata Pengantar

Selama beberapa dekade, hubungan kita dengan komputer punya bentuk yang tetap: kita mengetik perintah atau kode, komputer menjalankannya persis huruf demi huruf. Kita yang berpikir, ia yang menuruti. Editor teks, autocomplete, bahkan penyaran kode generasi awal tidak mengubah pembagian peran itu — mereka mempercepat pengetikan, bukan menggantikan proses berpikir dan bertindak. Anda tetap sopir yang memegang setiap detail kemudi.

Claude Code menandai pergeseran itu. Ia bukan sekadar melengkapi baris kode yang sedang Anda tulis; ia membaca berkas Anda, memahami struktur proyek, menyusun rencana, mengedit banyak berkas sekaligus, menjalankan perintah di terminal, membaca hasilnya, dan memperbaiki dirinya sendiri bila ada yang gagal — semuanya dari dalam jendela terminal yang sudah Anda kenal. Peran Anda naik satu tingkat: dari pengetik menjadi pengarah. Anda menyatakan maksud, meninjau rencana, menyetujui atau menolak tindakan, dan menjaga mutu. Mesin mengurus mekanika.

Pergeseran ini menakjubkan sekaligus menuntut. Menakjubkan karena hal yang dulu memakan sore penuh — memindai puluhan berkas mencari sebuah bug, menulis serangkaian tes, melakukan refaktor yang membosankan — kini bisa selesai dalam menit. Menuntut karena alat yang bisa mengubah berkas dan menjalankan perintah adalah alat yang, bila disalahpahami, bisa menghapus pekerjaan Anda atau menjalankan sesuatu yang tak Anda inginkan. Karena itu buku ini menaruh porsi besar pada izin, mode, dan keamanan, bukan sekadar daftar fitur berkilau.

Buku ini ditulis untuk semua level. Bila Anda baru pertama kali mendengar istilah "agentic coding", bab-bab awal menuntun Anda dari nol: apa itu, cara memasang, sesi pertama. Bila Anda sudah memakainya sehari-hari, bab-bab tengah dan akhir menggali skills, subagents, hooks, MCP, dan alur kerja profesional yang jarang dibahas tuntas. Dan karena buku ini juga dirancang agar bisa dibaca oleh AI, ada satu bab khusus — "Cara Dibaca AI" — yang menjelaskan strukturnya bagi mesin yang mungkin ikut menelaahnya.

Catatan Akurasi

Claude Code berkembang cepat. Nama flag, versi, dan perincian perintah tertentu bisa berubah sewaktu-waktu. Sepanjang buku, hal semacam itu ditandai "verifikasi ke dokumentasi resmi Anthropic". Konsep dan cara kerja fungsional dijelaskan seakurat mungkin; untuk detail yang mudah usang, selalu rujuk dokumentasi resmi di docs.claude.com (sebelumnya docs.anthropic.com).

Selamat datang. Mari kita ubah cara Anda bekerja dengan kode.

Galih Prasetyo, 2026


Pembuka

Cara Membaca Buku Ini

Buku ini padat karena dirancang sebagai panduan sekaligus rujukan. Anda tidak wajib membacanya berurutan dari awal ke akhir, meski pemula sangat disarankan melakukannya untuk lima bab pertama.

Peta buku

Konvensi visual

Beberapa elemen berulang sepanjang buku:

Contoh anatomi sebuah screenshot terminal yang akan sering Anda jumpai:

contoh — anatomi
┌ Claude Code > apa yang kamu lakukan? Saya membaca berkas, menjelaskan rencana, lalu bertindak. Baris berwarna clay adalah prompt Anda. Titik biru menandai penggunaan tool (Read/Edit/Bash). Hijau = berhasil, merah = gagal atau baris yang dihapus.

Menandai tingkat

Setiap bab dapat dibaca berdiri sendiri, tetapi bila sebuah bab mengandalkan konsep dari bab lain, kami sebutkan secara eksplisit. Bila Anda hanya ingin cepat produktif, baca Bab 1, 2, 3, dan 5 lalu langsung ke Bab 10.


01
Bab Satu

Apa Itu Claude Code

Claude Code adalah alat baris perintah (command-line tool) buatan Anthropic yang menempatkan model Claude langsung di dalam terminal Anda, dengan kemampuan membaca dan menulis berkas serta menjalankan perintah di proyek Anda. Alih-alih menyalin-tempel kode bolak-balik antara editor dan sebuah kotak obrolan, Anda memberi Claude Code sebuah maksud — "perbaiki bug ini", "tambahkan endpoint", "refaktor modul ini" — dan ia mengerjakannya di tempat.

Kata kuncinya adalah agentic. Sebuah "agen" di sini berarti model yang tidak hanya menghasilkan teks jawaban, melainkan bertindak dalam sebuah lingkaran (loop): ia memutuskan langkah, memakai tool untuk melakukannya, mengamati hasilnya, lalu memutuskan langkah berikutnya — berulang sampai tugas selesai. Tool di sini nyata: membaca berkas, mengedit berkas, menjalankan shell, mencari di seluruh repositori, memanggil server eksternal. Itulah yang membedakannya dari sekadar chatbot yang pintar.

Agentic Coding: Loop, Bukan Balasan

Untuk memahami mengapa Claude Code terasa berbeda, bayangkan tiga generasi bantuan menulis kode:

GenerasiBentukPeran Anda
Autocomplete klasikMelengkapi kata/baris saat diketikMenulis hampir semuanya sendiri
Chat asisten (mis. jendela obrolan)Anda tanya, ia menjawab teks/kodeMenyalin-tempel, menjalankan, menguji sendiri
Agentic (Claude Code)Ia merencanakan, mengedit, menjalankan, mengujiMengarahkan, meninjau, menyetujui, menjaga mutu

Pada generasi ketiga, siklus "menyalin kode → tempel ke editor → jalankan → baca error → kembali bertanya" runtuh menjadi satu percakapan. Claude Code melihat error itu sendiri karena ia yang menjalankan perintahnya, dan ia bisa langsung mencoba perbaikan. Inilah "loop" yang membuatnya terasa seperti rekan kerja, bukan mesin jawab.

Perhatikan loop itu bekerja pada perbaikan bug nyata: Claude menjalankan tes, melihat kegagalan, membaca berkas, memperbaiki, lalu menjalankan tes lagi — tanpa Anda menjadi kurir di antara langkah-langkah itu.

claude — loop agentic bekerja
> tesnya gagal setelah aku ubah parser. perbaiki. Bash npm test2 gagal (amati) Read src/parser.js (pahami) Edit src/parser.js +4 -2 (bertindak) Bash npm testsemua hijau (amati lagi) Penyebab: token newline tak ditangani. Diperbaiki, tes hijau.
Maksud(prompt Anda) Rencana Pakai Tool Amati Hasil Selesai perlu langkah lagi
Gambar 1.1 — Loop agentic: maksud → rencana → pakai tool → amati → ulang hingga selesai.

Kenapa Claude Code Berbeda

Ada beberapa keputusan desain yang membuat Claude Code khas:

Ia hidup di terminal

Terminal bukan pilihan nostalgia. Terminal adalah tempat semua alat pengembang bertemu: git, npm, docker, pengujian, linter, skrip build. Dengan berdiam di terminal, Claude Code otomatis punya akses ke seluruh perkakas itu tanpa integrasi khusus. Ia bisa menjalankan git diff, npm test, atau docker compose up semudah Anda mengetiknya. Ia juga tidak terkurung pada satu editor — bekerja sama baik entah Anda pemakai VS Code, Neovim, JetBrains, atau tanpa editor sama sekali.

Ia memakai model frontier

Claude Code dijalankan oleh model keluarga Claude (Opus, Sonnet, Haiku), yang memang dirancang kuat untuk penalaran kode dan penggunaan tool. Anda bisa berganti model sesuai kebutuhan: model paling cerdas untuk tugas rumit, model lebih cepat/murah untuk tugas ringan.

Verifikasi

Nama dan ketersediaan model spesifik (mis. varian Opus/Sonnet/Haiku terbaru) berubah seiring rilis. Cek /model di dalam sesi atau dokumentasi resmi untuk daftar terkini.

Kendali tetap di tangan Anda

Secara bawaan, Claude Code meminta izin sebelum tindakan yang berdampak — mengedit berkas, menjalankan perintah shell. Anda melihat persis apa yang akan dilakukan dan menyetujuinya. Model perizinan ini (dibahas tuntas di Bab 6) adalah alasan alat sekuat ini tetap aman dipakai sehari-hari.

Ia pengganda, bukan pengganti

Penting menetapkan harapan sejak awal. Claude Code bukan mesin yang menggantikan keputusan Anda. Ia mempercepat mekanika — mengetik, mencari, menjalankan, mencoba lagi — sementara bagian yang benar-benar bernilai tetap milik Anda: menentukan apa yang layak dibangun, menilai apakah solusinya benar, dan menjaga agar sistem tetap sehat. Insinyur yang paling diuntungkan bukan yang menyerahkan penilaian, melainkan yang mengarahkan dengan penilaian yang tajam.

"Claude Code is intentionally low-level and unopinionated, providing close to raw model access without forcing specific workflows."

— Anthropic, Claude Code best practices (engineering blog)

Ia dapat dikomposisi

Karena berupa alat baris perintah, Claude Code bisa dipakai secara interaktif (Anda mengobrol dengannya) maupun secara headless di dalam skrip dan pipeline CI. Ia bisa menerima prompt lewat argumen, membaca dari pipe, dan mengeluarkan hasil yang bisa diproses program lain. Ini menjadikannya blok bangunan, bukan aplikasi tertutup.

Anatomi Sebuah Sesi

Ketika Anda mengetik claude di sebuah folder proyek dan menekan Enter, sebuah sesi interaktif dimulai. Sesi ini punya konteks: daftar berkas yang sudah dibaca, percakapan sejauh ini, dan memori proyek dari CLAUDE.md. Di dalam sesi, Anda mengetik maksud dalam bahasa biasa, menyisipkan berkas dengan @, menjalankan perintah cepat dengan /, atau menyelipkan perintah bash dengan !. Screenshot berikut menunjukkan pembukaan sesi yang khas.

~/proyek/toko-online — claude
╭──────────────────────────────────────────────╮ Selamat datang di Claude Code cwd: ~/proyek/toko-online model: Claude (lihat /model) ╰──────────────────────────────────────────────╯ Ketik maksud Anda, atau /help untuk daftar perintah. > jelaskan struktur proyek ini secara singkat Ini aplikasi Node.js dengan Express. Struktur inti: src/routes/ — definisi endpoint HTTP src/models/ — skema data (Prisma) src/services/ — logika bisnis tests/ — pengujian (Vitest) Mau saya mulai dari mana?

Perhatikan bahwa Claude Code menjawab bukan dari tebakan, melainkan setelah membaca berkas nyata di proyek. Kemampuan menavigasi kode inilah fondasi semua yang akan kita bahas. Di bab berikutnya kita pasang alatnya dan masuk ke sesi pertama Anda sendiri.

Satu hal yang perlu ditegaskan sejak awal: sesi Claude Code bukan kotak hitam. Setiap tool yang ia pakai — setiap pembacaan berkas, setiap edit, setiap perintah shell — tampil di layar dengan jelas, dan tindakan yang berdampak menunggu persetujuan Anda. Anda tak pernah kehilangan jejak apa yang sedang terjadi; transparansi inilah yang membuat alat sekuat ini tetap layak dipercaya untuk pekerjaan sehari-hari.


02
Bab Dua

Instalasi & Setup

Memasang Claude Code adalah urusan beberapa menit. Bagian ini menuntun Anda dari nol: memastikan sistem siap, memasang alatnya, masuk ke akun, dan menjalankan sesi pertama untuk memastikan semuanya bekerja.

Syarat Sistem

Claude Code berjalan di macOS, Linux, dan Windows. Kebutuhan intinya sederhana:

Verifikasi

Versi minimum Node.js dan platform yang didukung bisa berubah antar rilis. Sebelum memasang, periksa halaman "Set up Claude Code" di dokumentasi resmi untuk syarat terbaru.

Langkah Instalasi

Cara paling umum adalah melalui npm sebagai paket global:

npm install -g @anthropic-ai/claude-code

Setelah selesai, perintah claude tersedia di terminal Anda. Verifikasi dengan:

claude --version
claude --help

Selain npm, Anthropic juga menyediakan skrip pemasang natif (installer) untuk sebagian platform yang tidak mengharuskan Node terpasang lebih dulu. Cara ini berguna bila Anda tidak ingin mengelola instalasi Node global.

Verifikasi

Perintah persis untuk installer natif (mis. skrip curl untuk macOS/Linux atau pemasang untuk Windows) dan nama paket dapat berubah. Selalu salin perintah dari halaman instalasi resmi, jangan dari ingatan.

Kedua cara sama-sama sah; pilih sesuai kondisi Anda.

MetodeKelebihanPertimbangan
npm globalFamiliar bagi pengguna Node; mudah diperbarui via npmButuh Node terpasang & PATH benar
Installer natifTak perlu Node global; pembaruan terkelola sendiriPerintah pemasang berbeda per platform — salin dari dokumentasi resmi

Screenshot berikut menunjukkan proses pemasangan lewat npm dan pemeriksaan cepat sesudahnya.

bash — instalasi
$ npm install -g @anthropic-ai/claude-code added 1 package in 6s $ claude --version Claude Code (versi terpasang — lihat output nyata Anda) $ claude doctor Node.js terdeteksi koneksi ke API berhasil konfigurasi terbaca Lingkungan siap. Jalankan `claude` untuk memulai.

Perintah claude doctor (atau /doctor di dalam sesi) memeriksa kesehatan instalasi Anda dan sering menjadi langkah pertama saat menelusuri masalah.

Login & Akun

Jalankan claude untuk pertama kali, dan Anda akan diminta masuk. Ada dua jalur utama:

Perintah /login memulai proses masuk (biasanya membuka browser untuk otorisasi), dan /logout mengakhirinya. Setelah masuk, kredensial disimpan aman di mesin Anda sehingga Anda tidak perlu masuk setiap kali.

claude — login
$ claude Pilih metode masuk: Berlangganan Claude (Pro/Max) Anthropic Console (API — bayar per token) Membuka browser untuk otorisasi... Berhasil masuk sebagai anda@contoh.com Kredensial tersimpan. Selamat bekerja!

Untuk lingkungan tanpa interaksi (CI, container), setel kunci lewat variabel lingkungan alih-alih login interaktif:

bash — API key untuk otomasi
$ export ANTHROPIC_API_KEY="sk-ant-..." # dari secret manager $ claude -p "ringkas perubahan di git diff terakhir" 3 poin perubahan utama: - validasi input ditambahkan di endpoint auth - 6 tes baru, semua hijau - tidak ada dependensi baru
Tip

Untuk pemakaian di server CI atau otomasi tanpa interaksi, gunakan variabel lingkungan ANTHROPIC_API_KEY. Dengan begitu Claude Code memakai kunci itu tanpa proses login interaktif. Jangan pernah menaruh kunci API di dalam repositori — simpan di secret manager CI Anda.

Update, Konfigurasi Awal, & Uninstall

Bila Anda memasang lewat npm, memperbarui semudah:

npm update -g @anthropic-ai/claude-code

Claude Code juga dapat memberi tahu Anda saat versi baru tersedia. Untuk mencopot, gunakan npm uninstall -g @anthropic-ai/claude-code.

Beberapa penyiapan awal yang berguna:

Verifikasi

Daftar persis subperintah konfigurasi dan namanya bisa bergeser antar versi. Jalankan /help untuk melihat yang tersedia pada instalasi Anda.

Menelusuri masalah instalasi

Bila ada yang tak beres, langkah pertama hampir selalu claude doctor. Tabel berikut merangkum gejala umum dan arah perbaikannya.

GejalaKemungkinan penyebabArah perbaikan
claude: command not foundDirektori bin global npm tak ada di PATHTambahkan direktori bin global npm ke PATH, atau pakai installer natif
Gagal saat npm install -gIzin folder global npmPerbaiki prefix npm ke folder milik Anda; hindari sudo
Versi Node terlalu lamaNode di bawah minimum yang didukungPerbarui Node ke LTS terbaru (mis. via nvm)
Gagal login / koneksiProxy, firewall, atau jam sistemCek jaringan & jam; coba ulang /login; lihat claude doctor
Terasa lambat / kehabisan kuotaKonteks membengkak atau batas langganan/compact atau /clear; periksa /cost & kuota
Verifikasi

Pesan galat persis dan solusinya bergantung pada OS dan versi. Bila macet, jalankan claude doctor, baca pesannya, lalu cari di dokumentasi resmi atau kanal dukungan Anthropic. Gunakan juga /bug di dalam sesi untuk melaporkan masalah.

"The best way to learn Claude Code is to use it on your own codebase — start small, watch what it does, and grow your trust from there."

— Prinsip yang berulang dalam panduan resmi Anthropic

Dengan alat terpasang dan akun tersambung, Anda siap masuk ke sesi pertama yang sesungguhnya — bukan sekadar mengecek versi, melainkan meminta Claude Code melakukan pekerjaan nyata. Itu isi bab berikutnya.


03
Bab Tiga

Sesi Pertama & Alur Kerja

Mari lakukan sesuatu yang nyata. Di bab ini Anda akan menjalankan sesi pertama dari awal sampai akhir: memberi maksud, melihat rencana, menyetujui perubahan, menjalankan tes, dan mengakhiri sesi. Pola yang Anda pelajari di sini berlaku untuk hampir semua pekerjaan sesudahnya.

Alur Dasar: Prompt → Rencana → Edit → Jalankan

Buka terminal, masuk ke folder proyek Anda, lalu ketik claude. Di dalam sesi, alur kerja umumnya bergerak melalui empat fase yang sama:

  1. Prompt — Anda menyatakan maksud dalam bahasa biasa. Semakin jelas hasil yang diinginkan dan batasannya, semakin baik.
  2. Rencana — Claude Code menjelaskan apa yang akan dilakukannya: berkas mana yang disentuh, langkah apa yang diambil. Untuk tugas besar, Anda bisa memaksanya merencanakan dulu tanpa mengeksekusi (Plan Mode, Bab 6).
  3. Edit — Ia mengusulkan perubahan berkas sebagai diff. Anda meninjau dan menyetujui (atau menolak/mengoreksi).
  4. Jalankan — Ia menjalankan perintah (tes, build, linter), membaca hasilnya, dan memperbaiki bila perlu.
1 · Prompt 2 · Rencana 3 · Edit 4 · Jalankan
Gambar 3.1 — Empat fase; fase 4 dapat memicu revisi rencana bila ada yang gagal.

Contoh Sesi Nyata dari Awal ke Akhir

Misalkan proyek kita adalah aplikasi Express, dan kita ingin menambahkan validasi ke endpoint pendaftaran. Berikut sesi lengkapnya, ditampilkan sebagai rangkaian screenshot terminal.

Langkah 1 — memberi maksud. Kita sebutkan berkas dengan @ agar Claude langsung tahu titik masuknya.

~/proyek/toko — claude
> tambahkan validasi email & password minimal 8 karakter di @src/routes/auth.js, kembalikan 400 bila tidak valid Read src/routes/auth.js (48 baris) Read package.json — mencari pustaka validasi Saya lihat kamu belum punya pustaka validasi. Rencana saya: 1. Tambah pengecekan manual (tanpa dependensi baru) 2. Kembalikan 400 + pesan jelas bila gagal 3. Tambah tes di tests/auth.test.js Lanjut?

Langkah 2 — meninjau diff. Setelah kita setujui, Claude menampilkan perubahan sebagai diff dan meminta izin menulis.

Edit · src/routes/auth.js
Edit src/routes/auth.js 8 router.post('/register', async (req, res) => { 9 const { email, password } = req.body; + 10 if (!/^\S+@\S+\.\S+$/.test(email || '')) { + 11 return res.status(400).json({ error: 'Email tidak valid' }); + 12 } + 13 if (!password || password.length < 8) { + 14 return res.status(400).json({ error: 'Password minimal 8 karakter' }); + 15 } 16 const user = await createUser(email, password); ? Terapkan perubahan ini? ❯ Ya Ya, dan jangan tanya lagi utk Edit Tidak

Langkah 3 — menjalankan tes. Claude menulis tes, menjalankannya, membaca hasil, dan mengonfirmasi hijau.

Bash · npm test
Bash npm test -- auth RUN v1.6.0 ~/proyek/toko tests/auth.test.js (5 tes) 352ms tolak email tanpa @ tolak password < 8 karakter terima input valid → 201 Test Files 1 passed (1) Tests 5 passed (5) Selesai. Validasi ditambahkan, 3 tes baru, semua hijau.

Menyebut berkas dengan @ bukan sekadar kenyamanan — ia adalah cara Anda mengarahkan perhatian. Anda bisa menyebut satu berkas (@src/app.ts), sebuah folder (@src/routes/), atau beberapa sekaligus. Konteks yang Anda arahkan sendiri hampir selalu lebih tepat dan lebih murah daripada membiarkan Claude membaca banyak berkas untuk mencari titik masuknya.

Mengelola Konteks Sesi

Selama sesi berjalan, "konteks" (percakapan + berkas yang dibaca) makin panjang. Ada beberapa perintah untuk mengelolanya, yang akan kita dalami di Bab 5:

claude — /compact lalu /clear
> /compact meringkas 38 pesan → ringkasan padat (hemat ~60% token) Konteks diringkas; inti tugas dipertahankan. ...setelah tugas selesai, pindah ke pekerjaan lain: > /clear Konteks dikosongkan. Mulai bersih untuk tugas berikutnya.
Tip

Kebiasaan sehat: satu tugas = satu konteks. Setelah menuntaskan sebuah fitur, jalankan /clear sebelum pindah ke tugas lain. Konteks yang bersih membuat jawaban lebih fokus dan biaya lebih rendah.

Pintasan Keyboard yang Wajib Dikuasai

Kecepatan di terminal datang dari jari, bukan menu. Beberapa pintasan berikut cepat menjadi refleks. Sebagian bergantung pada terminal dan platform Anda; jalankan /terminal-setup bila kombinasi tertentu belum aktif.

PintasanFungsi
EscMenyela Claude di tengah tindakan
Esc EscMundur & menyunting pesan sebelumnya (rewind)
Shift+TabBerganti permission mode
Ctrl+CBatalkan input / hentikan
/ Menelusuri riwayat prompt
@Sisipkan berkas/folder ke konteks
/Buka menu slash command
!Jalankan perintah bash cepat
#Simpan sepotong memori ke CLAUDE.md
Verifikasi

Pintasan (terutama untuk baris baru multi-baris seperti Shift+Enter) bervariasi antar terminal dan berkembang antar versi. Konfirmasi lewat /help dan /terminal-setup.

Anda kini sudah melihat lingkaran penuh: maksud, rencana, edit, jalankan, selesai. Tetapi sesi yang benar-benar produktif butuh satu hal lagi — memori proyek yang menjelaskan konvensi dan konteks Anda kepada Claude. Itulah CLAUDE.md, bintang bab berikutnya.


04
Bab Empat

CLAUDE.md — Memori Proyek

Bayangkan seorang rekan baru yang sangat cakap tetapi belum tahu konvensi tim Anda: bagaimana Anda menamai berkas, framework apa yang dipakai, perintah apa untuk menjalankan tes, apa yang boleh dan tak boleh disentuh. Anda tidak ingin menjelaskan semua itu setiap pagi. CLAUDE.md adalah tempat Anda menuliskannya sekali, dan Claude Code membacanya otomatis setiap sesi.

Apa Itu CLAUDE.md

CLAUDE.md adalah berkas teks biasa (format Markdown) yang berisi memori proyek: petunjuk, konvensi, dan konteks yang ingin Anda sampaikan ke Claude Code untuk proyek ini. Saat sesi dimulai, isinya otomatis dimuat ke konteks sehingga Claude "mengingat" hal-hal itu tanpa Anda ulang-ulang.

Ini bukan berkas ajaib berformat khusus — ia hanya Markdown. Kekuatannya justru pada kesederhanaannya: Anda bisa menyuntingnya seperti dokumen apa pun, memasukkannya ke version control, dan meninjaunya bersama tim seperti kode lain.

Efeknya terlihat langsung. Dengan CLAUDE.md yang menyebut "pakai pnpm, bukan npm", Claude tak lagi menebak — ia memakai perintah yang benar sejak awal.

claude — konvensi CLAUDE.md dipatuhi
> tambahkan pustaka date-fns dan pakai di util tanggal (membaca CLAUDE.md: "Manajer paket: pnpm") Bash pnpm add date-fns — bukan npm, sesuai konvensi Edit src/utils/tanggal.ts +8 Ditambahkan dengan pnpm sesuai aturan proyek.

Perintah /init

Cara termudah membuat CLAUDE.md adalah membiarkan Claude Code menuliskannya untuk Anda. Di dalam sesi, jalankan /init. Claude akan memindai proyek — bahasa, framework, skrip di package.json, struktur folder — lalu menyusun draf CLAUDE.md yang menggambarkan proyek Anda.

claude — /init
> /init Read package.json Read tsconfig.json Glob src/**/*.ts (84 berkas) Write CLAUDE.md +38 Saya sudah menulis CLAUDE.md berisi: stack (TypeScript + React + Vite), perintah (dev/build/test/lint), struktur folder, dan konvensi yang saya temukan. Silakan tinjau dan sesuaikan bagian yang perlu.

Draf ini titik awal, bukan titik akhir. Bacalah dan sesuaikan: tambahkan hal yang hanya Anda dan tim tahu (misalnya "jangan pernah menyentuh folder legacy/", atau "selalu pakai pnpm, bukan npm").

Apa yang Sebaiknya Ditulis

CLAUDE.md yang baik singkat, konkret, dan bebas basa-basi. Beberapa isi yang paling berguna:

# CLAUDE.md

## Perintah
- Dev:   pnpm dev
- Tes:   pnpm test
- Lint:  pnpm lint --fix
- Build: pnpm build

## Stack
- TypeScript strict, React 18, Vite, Tailwind
- Manajer paket: pnpm (JANGAN pakai npm/yarn)

## Konvensi
- Komponen: PascalCase di src/components/
- Selalu tulis tes untuk logika baru (Vitest)
- Pesan commit: Conventional Commits (feat:, fix:, ...)

## Pantangan
- Jangan ubah apa pun di folder legacy/
- Jangan jalankan migrasi database tanpa diminta

Menambah memori di tengah kerja semudah mengetik #. Claude menawarkan menyimpannya ke CLAUDE.md, sehingga pelajaran dari satu sesi terbawa ke sesi berikutnya.

claude — tambah memori (#)
> # selalu jalankan `pnpm typecheck` sebelum menganggap selesai ? Simpan petunjuk ini ke memori? ❯ CLAUDE.md (proyek — dibagikan tim) CLAUDE.local.md (pribadi, tak di-commit) Disimpan ke CLAUDE.md di bagian ## Konvensi.
Tip

Selama bekerja, Anda bisa menambahkan memori dengan cepat memakai awalan # di prompt. Ketik # lalu petunjuknya, dan Claude Code menawarkan untuk menyimpannya ke CLAUDE.md. Cara ini menumbuhkan memori proyek secara organik dari kejadian nyata.

Hierarki Memori

CLAUDE.md tidak hanya satu. Ada beberapa lapis yang digabungkan, dari yang paling umum ke paling spesifik:

LapisanLokasi (umumnya)Untuk apa
Global pengguna~/.claude/CLAUDE.mdPreferensi pribadi yang berlaku di semua proyek Anda
ProyekCLAUDE.md di akar repoKonvensi tim, di-commit ke git, dibagikan ke semua
Lokal proyekCLAUDE.local.mdCatatan pribadi untuk proyek ini (tidak di-commit)
SubfolderCLAUDE.md di subdirektoriKonteks khusus untuk bagian tertentu monorepo

Anda juga dapat menyisipkan berkas lain memakai sintaks impor @path/ke/berkas.md di dalam CLAUDE.md, sehingga dokumen panjang bisa dipecah rapi. Perintah /memory membuka dan menyunting berkas memori yang aktif.

Global pengguna · ~/.claude/CLAUDE.md Proyek · CLAUDE.md (di-commit) Lokal proyek · CLAUDE.local.md (pribadi) Subfolder · CLAUDE.md (paling spesifik →) umum → spesifik
Gambar 4.1 — Lapisan memori digabung; yang lebih spesifik melengkapi (dan bila perlu menimpa) yang lebih umum.

Contoh CLAUDE.local.md untuk catatan pribadi yang tak ingin Anda bagikan ke tim:

# CLAUDE.local.md (masuk .gitignore)

- Database dev lokal saya: postgres://localhost:5433/toko
- Saya pakai iTerm + tema gelap; ringkas saja outputnya
- Fokus saya minggu ini: modul pembayaran
Verifikasi

Nama persis lapisan (mis. dukungan tingkat enterprise/organisasi) dan lokasi berkas dapat berbeda antar platform dan versi. Konfirmasikan lewat /memory dan dokumentasi "Manage Claude's memory".

"A well-tuned CLAUDE.md is one of the highest-leverage things you can do — it turns a generic assistant into one that knows your project."

— Rangkuman praktik dari komunitas & dokumentasi Claude Code

Dengan memori proyek terpasang, sesi Anda jadi jauh lebih tajam. Kini saatnya menguasai perbendaharaan perintah yang membuat Anda gesit di dalam sesi: slash commands.


05
Bab Lima

Slash Commands & Fitur

Di dalam sesi, mengetik garis miring / memunculkan menu perintah cepat — slash commands. Ini adalah tombol pintas Claude Code: mengosongkan konteks, meringkas percakapan, meninjau kode, mengatur agen, menyambung MCP, dan banyak lagi. Menguasai segelintir yang paling sering dipakai akan langsung melipatgandakan kecepatan Anda.

Slash Commands yang Paling Penting

Berikut perintah inti yang dipakai sehari-hari. Daftar lengkap selalu bisa Anda lihat dengan /help.

PerintahFungsi
/helpMenampilkan daftar perintah yang tersedia
/clearMengosongkan konteks percakapan; mulai bersih
/compactMeringkas percakapan panjang agar hemat token
/initMembuat/meperbarui CLAUDE.md untuk proyek
/reviewMeninjau kode / perubahan (mis. pull request)
/agentsMengelola subagents (buat, ubah, hapus)
/mcpMelihat & mengelola server MCP yang tersambung
/modelBerganti model (mis. Opus ↔ Sonnet)
/costMenampilkan pemakaian & perkiraan biaya sesi
/memoryMembuka & menyunting berkas memori (CLAUDE.md)
/permissionsMelihat & mengatur izin tool (allow/deny/ask)
/configMembuka pengaturan
/login · /logoutMasuk / keluar akun
/resumeMelanjutkan sesi sebelumnya
/doctorMemeriksa kesehatan instalasi
Verifikasi

Kumpulan slash command bertambah dan berubah antar rilis; sebagian di atas mungkin dinamai berbeda atau punya opsi baru. Selalu jalankan /help untuk daftar otoritatif pada versi Anda. Anda juga bisa membuat slash command kustom sendiri (lihat catatan di akhir bab).

Tampilan /help memberi Anda daftar hidup di instalasi Anda — selalu jadikan ia sumber kebenaran, bukan tabel di buku mana pun.

claude — /help
> /help Perintah tersedia: /clear kosongkan konteks /compact ringkas percakapan /init buat CLAUDE.md /review tinjau perubahan /agents kelola subagents /mcp kelola server MCP /model ganti model /cost pemakaian & biaya /permissions atur izin tool ... dan lainnya. Ketik / untuk melihat semua.

Selain slash command, ada beberapa awalan khusus yang berguna di baris prompt:

Penjelajah Slash Command & Fitur

Alih-alih menghafal tabel, pakai penjelajah interaktif di bawah. Klik sebuah fitur atau perintah di panel kiri untuk melihat penjelasan dan contohnya. Cocok untuk menjelajah tanpa urutan.

Penjelajah Slash Command & Fitur
Pilih item di kiri untuk melihat penjelasan & contoh.

Cheatsheet Klik-Salin

Perintah yang paling sering diketik, siap disalin ke clipboard dengan satu klik.

claudeMulai sesi interaktif di folder ini
claude -p "ringkas README.md"Mode sekali-jalan (headless) untuk skrip
claude --continueLanjutkan percakapan terakhir
npm install -g @anthropic-ai/claude-codePasang / perbarui via npm
/initBuat CLAUDE.md
/clearKosongkan konteks
/compactRingkas percakapan panjang
/reviewTinjau perubahan / PR
Verifikasi

Flag baris perintah seperti -p, --continue, dan --resume umum dipakai, tetapi opsi dan namanya bisa bertambah/berubah. Jalankan claude --help untuk daftar flag terkini di instalasi Anda.

Bila Anda perlu kembali ke pekerjaan kemarin, /resume (atau menjalankan claude --continue saat membuka terminal) memulihkan percakapan sebelumnya lengkap dengan konteksnya.

claude — /resume
> /resume Sesi terakhir: "fitur reset password" — 2 jam lalu · 41 pesan "perbaiki bug keranjang" — kemarin · 12 pesan Melanjutkan sesi "fitur reset password"...

Membuat slash command kustom

Anda bisa membuat perintah sendiri dengan menaruh berkas Markdown di .claude/commands/ (untuk proyek) atau ~/.claude/commands/ (global). Nama berkas menjadi nama perintah. Isi berkas adalah prompt yang akan dijalankan, dan Anda bisa menyisipkan argumen dengan penanda seperti $ARGUMENTS.

# .claude/commands/tulis-tes.md
Tulis pengujian unit menyeluruh untuk: $ARGUMENTS
Pakai framework tes yang sudah ada di proyek. Sertakan
kasus tepi (edge case) dan jalankan tesnya setelah ditulis.

Kini /tulis-tes src/utils/harga.ts menjalankan prompt itu dengan argumennya. Perintah kustom adalah cara ampuh mengabadikan alur kerja berulang tim Anda.

claude — slash command kustom
> /tulis-tes src/utils/harga.ts menjalankan prompt dari .claude/commands/tulis-tes.md Read src/utils/harga.ts Write src/utils/harga.test.ts +29 Bash npm test -- harga6 passed Tes ditulis mencakup kasus tepi & input tak valid; hijau.
Verifikasi

Lokasi folder, format frontmatter, dan penanda argumen (mis. $ARGUMENTS atau argumen bernomor) dapat berubah. Rujuk halaman "Slash commands" di dokumentasi resmi.


06
Bab Enam

Izin, Mode & Keamanan

Alat yang bisa mengubah berkas dan menjalankan perintah adalah alat yang perlu pagar. Bab ini menjelaskan sistem izin Claude Code — cara Anda mengendalikan persis apa yang boleh dilakukannya, kapan ia bertanya, dan kapan ia bertindak otomatis. Menguasai bab ini adalah selisih antara memakai Claude Code dengan tenang dan memakainya dengan waswas.

Permission Modes

Claude Code beroperasi dalam salah satu mode izin. Mode menentukan seberapa banyak ia bertanya sebelum bertindak. Anda berpindah mode dengan menekan Shift+Tab berulang, dan mode aktif tampil di bilah bawah.

ModePerilakuKapan dipakai
DefaultBertanya sebelum tindakan berdampak (edit berkas, perintah shell)Pemakaian harian; paling aman
Accept editsMenyetujui edit berkas otomatis, tetap bertanya untuk hal lainSaat Anda memercayai arahnya & ingin lebih cepat
Plan modeHanya membaca & merencanakan; tidak mengubah apa punMerancang pendekatan sebelum eksekusi
Bypass / skip permissionsTidak bertanya sama sekaliHanya di lingkungan terisolasi/sandbox; berisiko
Peringatan

Mode yang melewati semua izin (sering diaktifkan lewat flag seperti --dangerously-skip-permissions) mematikan semua pagar. Jangan pernah memakainya pada mesin dengan data penting atau akses produksi. Cadangkan untuk kontainer/sandbox sekali pakai, di mana kerusakan terburuk pun tak berarti.

claude — pindah mode (Shift+Tab)
[Shift+Tab] mode: default → tanya sebelum edit/bash [Shift+Tab] mode: accept edits → edit otomatis [Shift+Tab] mode: plan → hanya baca & rencana ╭─ mode aktif ──────────────────╮ ◆ plan mode — read-only ╰───────────────────────────────╯

Allow, Deny, & Ask per Tool

Di luar mode global, Anda bisa mengatur izin per jenis tool secara halus. Ada tiga sikap:

Aturan ini disimpan di settings.json (dibahas penuh di Bab 8) dan bisa dilihat/diubah lewat /permissions. Yang ampuh: aturan bisa spesifik. Anda dapat mengizinkan Bash(npm test) tetapi menolak Bash(rm -rf *), atau mengizinkan pembacaan berkas tetapi menolak penulisan ke direktori tertentu.

claude — /permissions
> /permissions Aturan aktif: allow Bash(npm test), Bash(npm run lint) allow Read(./src/**) deny Bash(rm -rf *), Write(./legacy/**) deny Read(./.env) [a] tambah allow [d] tambah deny [enter] tutup
// .claude/settings.json (contoh — verifikasi format terbaru)
{
  "permissions": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run lint)",
      "Read(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Read(./.env)",
      "Write(./legacy/**)"
    ]
  }
}

Saat sebuah tindakan butuh persetujuan, Claude menampilkan prompt izin dengan pilihan yang jelas. Screenshot berikut memperlihatkan bentuknya untuk sebuah perintah shell.

claude — prompt izin
Bash npx prisma migrate dev Menjalankan migrasi database di lingkungan dev. ╭─ Izinkan menjalankan perintah ini? ─────────╮ ❯ Ya, sekali ini Ya, & jangan tanya lagi utk perintah ini Tidak, jelaskan dulu apa yang terjadi ╰─────────────────────────────────────────────╯
Tip

Saat Claude meminta izin, sering ada opsi "Ya, dan jangan tanya lagi untuk tindakan seperti ini". Memilihnya menambahkan aturan allow otomatis. Cara ini membangun daftar izin Anda secara organik dari pekerjaan nyata, bukan dengan menebak di depan.

Peringatan

Menaruh rahasia (.env, kunci privat) dalam daftar deny baca adalah praktik higienis yang baik, tetapi bukan pengganti manajemen rahasia sungguhan. Anggap apa pun di dalam repo dapat terbaca kecuali Anda secara eksplisit melarangnya, dan jangan menaruh kredensial produksi di mesin pengembangan.

Plan Mode: Berpikir Sebelum Bertindak

Plan mode layak sorotan tersendiri. Dalam mode ini, Claude Code tidak mengubah apa pun — ia hanya membaca, menganalisis, dan menyusun rencana untuk Anda tinjau. Ini ideal untuk tugas besar atau berisiko: refaktor lintas modul, perubahan skema, migrasi. Anda menyetujui rencananya lebih dulu, baru keluar dari plan mode untuk mengeksekusi.

plan mode — rencana refaktor
◆ plan mode (read-only) > pisahkan modul billing jadi service terpisah Read src/billing.js (310 baris) Grep "billing" → 12 berkas memakainya Rencana (belum ada yang diubah): 1. Buat src/services/billing/ dgn index.js 2. Pindahkan 4 fungsi inti + tipe terkait 3. Perbarui 12 import di seluruh repo 4. Jalankan tes; perbaiki yang putus ? Setujui rencana & keluar plan mode untuk eksekusi?

Pola kerja yang sehat dengan plan mode adalah siklus dua langkah: rancang lalu jalankan. Anda masuk plan mode, mendorong Claude memikirkan pendekatan dan menyebut trade-off, lalu menyetujui rencana yang benar. Baru setelah itu Anda keluar dari plan mode agar eksekusi berjalan di atas fondasi yang sudah Anda setujui. Untuk perubahan yang menyentuh banyak berkas atau menyangkut data, langkah perencanaan ini kerap menghemat lebih banyak waktu daripada yang ia habiskan.

Prinsip Keamanan Praktis

Rangkuman kebiasaan aman yang membuat pemakaian Claude Code tetap tenang:

"Permissions are the steering wheel. The model proposes; you decide what actually runs."

— Filosofi keamanan Claude Code

Dengan pemahaman izin yang kokoh, Anda siap melepas fitur yang lebih kuat — mendelegasikan pekerjaan ke skills dan subagents — tanpa kehilangan kendali.


07
Bab Tujuh

Skills & Subagents

Sejauh ini Claude Code bekerja sebagai satu agen serba-bisa. Dua fitur mengubahnya menjadi tim: Skills memberinya keahlian khusus yang bisa dipanggil saat relevan, dan Subagents memungkinkannya mendelegasikan tugas ke pekerja terpisah yang berjalan dengan konteksnya sendiri — bahkan paralel.

Skills (SKILL.md)

Sebuah Skill adalah paket instruksi (dan opsional skrip/berkas pendukung) yang mengajari Claude cara melakukan sesuatu yang spesifik: membuat diagram dengan gaya tertentu, mengikuti prosedur rilis tim Anda, memformat laporan, dan seterusnya. Skill disimpan sebagai folder berisi berkas SKILL.md.

Inti Skill adalah frontmatter yang menjelaskan nama dan kapan ia dipakai. Claude membaca deskripsi itu dan memanggil skill secara otomatis ketika tugas Anda cocok — Anda tidak perlu menyebutnya eksplisit.

---
name: buat-changelog
description: Menyusun CHANGELOG dari commit sejak tag terakhir,
  mengikuti format Keep a Changelog. Pakai saat user minta
  "buat changelog", "rangkum rilis", atau menyiapkan release notes.
---

# Cara membuat changelog
1. Ambil commit sejak tag terbaru: `git log ..HEAD`
2. Kelompokkan ke Added / Changed / Fixed / Removed
3. Tulis ke CHANGELOG.md di bagian paling atas
4. Gunakan bahasa yang jelas untuk pengguna akhir

Struktur foldernya sederhana:

.claude/skills/
  buat-changelog/
    SKILL.md          # instruksi + frontmatter
    template.md       # (opsional) berkas pendukung
    scripts/format.js # (opsional) skrip yang bisa dijalankan

Karena deskripsinya menentukan kapan skill muncul, tulislah deskripsi yang kaya pemicu: sebutkan frasa yang mungkin dipakai pengguna. Skill yang deskripsinya kabur jarang terpanggil.

Skill juga bisa membungkus prosedur tim yang rumit. Contoh kedua: prosedur rilis yang harus diikuti persis, lengkap dengan langkah verifikasi.

---
name: prosedur-rilis
description: Menjalankan prosedur rilis resmi tim. Pakai saat
  user minta "rilis versi", "deploy", atau "siapkan release".
  Wajib mengikuti urutan langkah tanpa melompat.
---

# Prosedur rilis (WAJIB berurutan)
1. Pastikan branch = main & bersih (`git status`)
2. Jalankan seluruh tes + typecheck; berhenti bila merah
3. Naikkan versi (semver) di package.json
4. Perbarui CHANGELOG.md (Skill buat-changelog)
5. Buat tag `vX.Y.Z` & dorong
6. JANGAN deploy ke produksi tanpa konfirmasi manusia

Perhatikan langkah keenam: skill boleh — bahkan sebaiknya — menuliskan pagar keputusan yang mengharuskan persetujuan manusia. Skill bukan hanya soal otomatisasi, tetapi juga mengabadikan disiplin tim ke dalam bentuk yang selalu diikuti.

Verifikasi

Skills (Agent Skills) adalah kapabilitas yang berkembang aktif; lokasi folder, field frontmatter, dan mekanisme distribusinya (mis. plugin/marketplace) dapat berubah. Rujuk dokumentasi "Agent Skills" resmi untuk detail mutakhir.

claude — skill terpanggil otomatis
> tolong siapkan release notes untuk v2.1 ◆ Skill buat-changelog (cocok dgn deskripsi) Bash git log v2.0..HEAD --oneline Edit CHANGELOG.md +22 Changelog v2.1 tersusun: 3 Added, 5 Fixed, 1 Changed.
Kapan tidak pakai Skill

Jangan jadikan segalanya skill. Untuk permintaan sekali pakai, prompt biasa lebih cepat. Skill berharga ketika sebuah prosedur berulang, punya langkah yang harus konsisten, atau perlu dibagikan ke tim. Terlalu banyak skill dengan deskripsi tumpang tindih justru membingungkan — buat sedikit tapi tajam.

Subagents: Delegasi & Paralel

Subagent adalah agen anak yang dijalankan oleh agen utama untuk menangani sebuah tugas, lalu mengembalikan hanya kesimpulannya. Ini memberi dua manfaat besar:

Subagent didefinisikan mirip skill: berkas Markdown di .claude/agents/ dengan frontmatter yang menyebut nama, deskripsi (kapan dipakai), tool yang boleh dipakainya, dan opsional model. Anda mengelolanya lewat /agents.

---
name: penelusur-kode
description: Agen pencari read-only untuk sapuan luas di
  banyak berkas. Pakai saat perlu menemukan di mana sesuatu
  didefinisikan tanpa membebani konteks utama.
tools: Read, Grep, Glob
model: sonnet
---

Anda agen penelusur. Cari secara menyeluruh, laporkan
lokasi (path + baris) dan kesimpulan singkat. Jangan
mengubah berkas apa pun.
Agen Utama Subagent Atelusuri auth Subagent Btelusuri billing Subagent Ctelusuri API berjalan paralel →
Gambar 7.1 — Agen utama mendelegasikan tiga penelusuran independen ke subagent yang berjalan paralel; hanya kesimpulan yang kembali.

Berikut subagent bekerja: agen utama mendelegasikan penelusuran, subagent menjalankannya di konteks terpisah, dan hanya ringkasan yang kembali — konteks utama tetap bersih.

claude — delegasi ke subagent
> di mana logika perhitungan pajak tersebar? telusuri semua. ◆ Task → penelusur-kode (konteks terpisah) ● Grep "tax|pajak" · Read 9 berkas · ... subagent selesai — mengembalikan kesimpulan: Logika pajak ada di 3 tempat (idealnya disatukan): src/services/tax.js:14 — tarif dasar src/routes/checkout.js:88 — duplikat! src/utils/invoice.js:31 — pembulatan
Tip

Gunakan subagent untuk pekerjaan yang "banyak baca, sedikit simpul": menelusuri codebase, menyaring dokumentasi, audit terfokus. Untuk pekerjaan yang butuh mengingat seluruh percakapan Anda, tetap di agen utama — subagent mulai dengan konteks kosong.

Verifikasi

Field frontmatter subagent (mis. tools, model, isolasi) dan perilaku /agents berkembang. Konfirmasi ke dokumentasi "Subagents" resmi.

"Subagents let Claude stay focused: the messy exploration happens elsewhere, and only the answer comes back."

— Ringkasan pola kerja multi-agen Claude Code

Skills dan subagents memperluas apa yang Claude bisa lakukan. Bab berikutnya menambahkan kapan hal terjadi otomatis: hooks.


08
Bab Delapan

Hooks & settings.json

Skills dan subagents diputuskan oleh model. Hooks berbeda: ia dijalankan oleh harness Claude Code secara deterministik, apa pun keputusan model. Bila Anda ingin sesuatu terjadi setiap kali peristiwa tertentu muncul — memformat kode setiap sesudah edit, menjalankan linter sebelum commit, memblokir perintah berbahaya — itulah pekerjaan hook.

Konsep Hooks

Hook adalah perintah shell yang dijalankan otomatis pada titik-titik tertentu dalam siklus hidup sesi. Karena dijalankan oleh sistem (bukan model), hook adalah cara menegakkan aturan yang tidak boleh bergantung pada apakah model "ingat" untuk melakukannya. Beberapa titik peristiwa yang umum:

PeristiwaKapan berjalanContoh pemakaian
PreToolUseSebelum sebuah tool dijalankanBlokir perintah berbahaya; validasi argumen
PostToolUseSetelah sebuah tool selesaiFormat kode setelah Edit; jalankan linter
UserPromptSubmitSaat Anda mengirim promptTambahkan konteks; catat/audit
StopSaat Claude selesai meresponsNotifikasi; jalankan tes akhir
SessionStartSaat sesi dimulaiMuat konteks lingkungan
Verifikasi

Daftar lengkap nama peristiwa hook (mis. Notification, SubagentStop, PreCompact) dan skema masukan/keluarannya (JSON via stdin, kode keluar untuk memblokir) berkembang aktif. Rujuk halaman "Hooks" resmi untuk daftar dan format terbaru.

prompt Anda PreToolUseboleh memblokir tool jalan PostToolUseformat/lint
Gambar 8.1 — PreToolUse dapat memblokir sebelum tool jalan; PostToolUse berjalan setelahnya (mis. memformat berkas).

settings.json: Pusat Konfigurasi

Hooks, izin, variabel lingkungan, dan preferensi model semuanya tinggal di berkas settings.json. Sama seperti memori, ada beberapa lapis:

BerkasCakupanDi-commit?
~/.claude/settings.jsonPengguna (semua proyek)Tidak (mesin pribadi)
.claude/settings.jsonProyek (dibagikan tim)Ya
.claude/settings.local.jsonProyek (pribadi Anda)Tidak (masuk .gitignore)

Struktur umum sebuah settings.json:

{
  "model": "sonnet",
  "permissions": {
    "allow": ["Bash(npm test)", "Bash(npm run lint)"],
    "deny": ["Bash(rm -rf *)"]
  },
  "env": { "NODE_ENV": "development" },
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATHS\"" }
        ]
      }
    ]
  }
}
Verifikasi

Nama field (matcher, struktur array hooks, variabel lingkungan seperti $CLAUDE_FILE_PATHS) adalah area yang paling sering berubah. Perlakukan contoh di atas sebagai ilustrasi konsep; salin bentuk persisnya dari dokumentasi resmi sebelum dipakai.

Ketika lapisan berbeda menyebut hal yang sama, yang lebih spesifik menang: pengaturan lokal proyek mengalahkan pengaturan proyek, yang mengalahkan pengaturan pengguna. Ini memungkinkan tim menetapkan kebijakan bersama di .claude/settings.json sambil setiap anggota tetap bisa menyesuaikan preferensinya di berkas lokal tanpa mengganggu yang lain.

Tip

Commit .claude/settings.json agar seluruh tim mewarisi izin dan hook yang sama. Tambahkan .claude/settings.local.json ke .gitignore untuk preferensi pribadi. Dengan begitu kebijakan tim konsisten, tetapi tak ada yang merasa terkekang.

Contoh Hook: Format Otomatis Setelah Edit

Skenario paling populer: setiap kali Claude mengedit berkas, jalankan formatter agar kode selalu rapi tanpa Anda memintanya. Screenshot berikut menunjukkan hook PostToolUse yang aktif setelah sebuah Edit.

claude — hook PostToolUse
Edit src/utils/harga.ts +18 -2 ↳ hook PostToolUse (Edit|Write) $ npx prettier --write src/utils/harga.ts src/utils/harga.ts diformat (72ms) Berkas diedit dan otomatis diformat sesuai aturan Prettier.

Hook SessionStart juga sering dipakai untuk menyuntikkan konteks lingkungan begitu sesi dibuka — misalnya menuliskan cabang git aktif, status deploy terakhir, atau catatan "sedang di tengah migrasi" — sehingga Claude memulai dengan gambaran situasi terkini tanpa Anda menjelaskannya tiap kali.

Contoh lain yang berguna:

Screenshot berikut menunjukkan hook PreToolUse yang menolak sebuah perintah berbahaya sebelum ia sempat berjalan — persis jenis pagar deterministik yang tak boleh bergantung pada ingatan model.

claude — hook PreToolUse memblokir
Bash rm -rf ./data (diusulkan model) ↳ hook PreToolUse (Bash) $ guard.sh → memeriksa pola berbahaya... ✗ DITOLAK perintah cocok pola terlarang: rm -rf ! Tindakan dibatalkan oleh hook. Model diberi tahu & mencari jalan lain yang lebih aman.
Tip

Karena hook adalah kode yang Anda kendalikan penuh, ia adalah tempat menaruh kebijakan keras tim: "kode harus selalu terformat", "tak boleh ada commit ke main", "log semua tindakan". Hal-hal yang tak boleh bergantung pada kebijaksanaan model, letakkan di hook.

"Hooks turn 'please remember to do X' into 'X always happens'. That reliability is the whole point."

— Pola pemakaian hooks Claude Code

Hooks menyambungkan Claude ke perkakas lokal Anda. Bab berikutnya menyambungkannya ke dunia luar: MCP.


09
Bab Sembilan

MCP — Model Context Protocol

Claude Code hebat di dalam repositori Anda, tetapi pekerjaan nyata sering menjangkau ke luar: basis data, pelacak isu, dokumentasi, layanan cloud, sistem desain. MCP — Model Context Protocol — adalah standar terbuka yang menyambungkan Claude ke sumber data dan alat eksternal itu lewat "server" yang berbicara bahasa yang sama.

Konsep MCP

Bayangkan MCP seperti port USB untuk asisten AI. Alih-alih setiap alat butuh integrasi khusus, siapa pun bisa menulis server MCP yang mengekspos kemampuan (tools), data (resources), atau template prompt. Claude Code bertindak sebagai klien MCP yang bisa menyambung ke server-server itu dan memakai kemampuannya seolah tool bawaan.

Tiga hal yang bisa diekspos sebuah server MCP layak dibedakan: tools adalah aksi yang bisa dipanggil Claude (mis. menjalankan kueri, membuka isu); resources adalah data yang bisa dibaca (dokumen, baris tabel); dan prompts adalah templat siap pakai. Dalam praktik sehari-hari, tools adalah yang paling sering Anda rasakan — dan yang paling perlu diberi izin bijak karena bisa mengubah keadaan.

Karena MCP adalah standar terbuka, ekosistemnya luas: ada server untuk GitHub, basis data Postgres, Sentry, Puppeteer/browser, Google Drive, Slack, dan ratusan lainnya — dibuat oleh Anthropic maupun komunitas. Anda juga bisa menulis sendiri untuk sistem internal perusahaan Anda.

Claude Codeklien MCP Server: DBquery Postgres Server: GitHubisu & PR Server: Sentryerror log Server: Browserambil halaman
Gambar 9.1 — Claude Code sebagai klien MCP menyambung ke banyak server yang mengekspos data & alat eksternal.

Memasang & Memakai Server MCP

Server MCP ditambahkan lewat perintah claude mcp add. Secara garis besar ada dua kelompok transport:

Konfigurasi proyek biasanya disimpan di berkas .mcp.json di akar repo agar bisa dibagikan ke tim, sementara server pribadi bisa ditambahkan hanya untuk Anda.

# Menambahkan server MCP lokal (stdio) — contoh, verifikasi sintaks terbaru
claude mcp add nama-server -- npx -y @contoh/mcp-server

# Menambahkan server jarak jauh (HTTP/SSE)
claude mcp add --transport sse dokumen https://contoh.com/mcp

# Melihat daftar server & statusnya
claude mcp list

Proses menambahkan server dan memverifikasinya tampak seperti ini:

bash — claude mcp add
$ claude mcp add github -- npx -y @modelcontextprotocol/server-github server "github" ditambahkan (stdio) $ claude mcp list github stdio · siap sentry butuh token (SENTRY_AUTH_TOKEN) Nama paket server di atas ilustratif — verifikasi katalog resmi.

Di dalam sesi, /mcp menampilkan server yang tersambung, status koneksinya, dan tool yang mereka sediakan. Setelah tersambung, Anda memakainya secara alami — cukup minta dalam bahasa biasa, dan Claude memilih tool MCP yang tepat.

claude — /mcp & pemakaian
> /mcp github tersambung · 6 tool postgres tersambung · 3 tool > ada berapa isu terbuka berlabel "bug" di repo ini? github.search_issues state=open label=bug Ada 14 isu terbuka berlabel "bug". Tiga terlama: #210 crash saat upload >10MB (34 hari) #233 timezone salah di laporan (21 hari) #241 tombol simpan ganda (12 hari)
Peringatan

Server MCP menjalankan kode dan sering memegang kredensial (token GitHub, string koneksi DB). Pasang hanya server yang Anda percayai, tinjau perizinannya, dan ingat bahwa data yang dikembalikan server bisa mengandung instruksi menyesatkan (prompt injection). Server yang bisa menulis (mis. menghapus isu, mengubah DB) layak diberi izin ask, bukan allow otomatis.

Verifikasi

Sub-perintah claude mcp, jenis transport yang didukung, dan nama berkas konfigurasi (.mcp.json) dapat berubah. Rujuk dokumentasi "MCP" resmi dan katalog server terpercaya.

Menulis Server MCP Sendiri

Karena MCP adalah protokol terbuka, Anda bisa membungkus sistem internal perusahaan — API pesanan, basis pengetahuan, alat deploy — menjadi server MCP dan memberi Claude akses terkontrol ke sana. Pola umumnya:

Verifikasi

SDK, bahasa yang didukung, dan cara mendaftarkan server kustom berkembang. Rujuk situs Model Context Protocol resmi dan dokumentasi Anthropic untuk panduan membangun server terbaru.

"MCP is the connective tissue: it lets one assistant reach every tool and data source through a single, open protocol."

— Deskripsi peran MCP dalam ekosistem Claude

Kini Anda punya seluruh perkakas: memori, perintah, izin, skills, subagents, hooks, dan MCP. Saatnya menyatukannya dalam alur kerja nyata dari awal sampai pull request.


10
Bab Sepuluh

Alur Kerja Nyata

Teori sudah cukup. Bab ini menyusuri pekerjaan nyata dari ujung ke ujung: membangun fitur, memperbaiki bug, meninjau diff, melakukan refaktor, menulis tes, membuat commit, dan membuka pull request. Setiap tahap ditampilkan sebagai screenshot terminal agar Anda tahu persis rupanya.

Membangun Sebuah Fitur

Kunci membangun fitur dengan baik adalah merencanakan dulu, mengeksekusi kemudian. Untuk fitur non-trivial, mulai di plan mode: minta pendekatan, tinjau, baru izinkan eksekusi. Contoh: menambahkan fitur "lupa password".

claude — fitur baru (plan → eksekusi)
◆ plan mode > tambah fitur reset password lewat email Read src/routes/auth.js, src/services/mail.js Rencana: 1. Endpoint POST /auth/forgot → buat token, kirim email 2. Endpoint POST /auth/reset → verifikasi token, ganti pw 3. Tabel reset_tokens (migrasi) 4. Tes untuk kedua endpoint ? Setujui rencana? ❯ Ya, eksekusi Write migrations/003_reset_tokens.sql +11 Edit src/routes/auth.js +58 Edit src/services/mail.js +19 Bash npm test -- auth12 passed Fitur reset password selesai; migrasi + 2 endpoint + 6 tes hijau.

Memperbaiki Bug dari Laporan

Alur perbaikan bug yang efektif: berikan gejala, biarkan Claude mereproduksi, temukan akar masalah, perbaiki, lalu tulis tes regresi agar bug tak kembali.

claude — debug & tes regresi
> laporan: total keranjang salah saat ada diskon 100%. reproduksi & perbaiki, tambah tes regresi. Read src/services/cart.js Bash node -e "..." — reproduksi Terkonfirmasi: diskon 100% menghasilkan NaN. Akar: pembagian oleh subtotal 0 di baris 42. Edit src/services/cart.js +3 -1 - const rate = discount / subtotal; + const rate = subtotal === 0 ? 0 : discount / subtotal; Edit tests/cart.test.js +9 (tes regresi) Bash npm test -- cartsemua hijau

Meninjau Diff & Refaktor

Sebelum menyerahkan pekerjaan, mintalah Claude meninjau perubahannya sendiri secara kritis — atau tinjau perubahan orang lain. /review dan permintaan lugas "tinjau diff ini" sama-sama bekerja. Untuk refaktor, sebutkan tujuan (keterbacaan, performa, menghapus duplikasi) agar arahnya jelas.

claude — tinjau perubahan
> tinjau perubahan yang belum di-commit, cari bug & masalah keamanan Bash git diff Temuan: auth.js:60 — token reset tidak diberi kedaluwarsa mail.js:22 — alamat email tidak divalidasi ulang selebihnya baik; penanganan error konsisten Mau saya perbaiki dua temuan itu?

Meninjau pekerjaan orang lain sama mudahnya. Bila gh tersedia, Claude bisa menarik sebuah pull request dan menelaahnya berkas demi berkas.

claude — tinjau PR orang lain
> tinjau PR #251, fokus ke keamanan & kasus tepi Bash gh pr diff 251 Ringkasan: menambah unggah avatar. Temuan: tipe berkas tidak divalidasi (risiko unggah skrip) tak ada batas ukuran → potensi DoS memori penamaan & tes unit sudah baik Mau saya tulis komentar review-nya?

Menulis Tes

Claude Code kuat menulis tes karena ia bisa menjalankan tesnya sendiri dan memperbaiki yang gagal. Praktik terbaik: minta tes untuk perilaku spesifik, bukan "tes semuanya" yang kabur. Sertakan kasus tepi.

> tulis tes untuk src/utils/harga.ts:
  - pembulatan ke 2 desimal
  - diskon 0% dan 100%
  - input negatif harus melempar error
  jalankan tesnya dan pastikan hijau

Karena Claude menjalankan tesnya sendiri, ia menutup lingkaran: menulis, menjalankan, membaca kegagalan, memperbaiki, mengulang — sampai hijau tanpa Anda bolak-balik.

claude — tulis & jalankan tes
Write tests/harga.test.ts +34 Bash npm test -- harga 1 gagal: input negatif tidak melempar error Edit src/utils/harga.ts +2 (tambah guard) Bash npm test -- harga ✓ 7 passed (7) Semua tes hijau, termasuk kasus tepi negatif.

Refaktor yang aman

Refaktor paling aman ketika ada tes sebagai jaring. Minta Claude memastikan tes hijau sebelum dan sesudah, sehingga perilaku terbukti tak berubah.

claude — refaktor berpagar tes
> refaktor @src/services/order.js agar lebih terbaca, tanpa ubah perilaku. pastikan tes tetap hijau. Bash npm test -- orderbaseline: 15 passed Edit src/services/order.js +40 -63 — pisah fungsi 120 baris jadi 4 fungsi kecil — hapus 2 blok duplikat Bash npm test -- order15 passed (perilaku sama) Refaktor selesai; 23 baris lebih ringkas, tes identik.

Commit & Membuka Pull Request

Ketika pekerjaan siap, Claude Code bisa menyusun pesan commit yang baik dari diff dan — bila gh (GitHub CLI) tersedia — membuka pull request lengkap dengan judul dan deskripsi. Anda tetap yang menyetujui.

claude — commit & PR
> buat commit untuk perubahan ini lalu buka PR ke main Bash git status && git diff --stat Bash git checkout -b feat/reset-password Bash git add -A && git commit -m "feat(auth): reset password via email" [feat/reset-password 8a1c2d] 4 files changed, +91 -3 Bash gh pr create --title "..." --body "..." PR #248 dibuka: "feat(auth): reset password via email" https://github.com/tim/toko/pull/248
Tip

Biasakan bekerja di branch, bukan langsung di main. Minta Claude membuat branch sebelum mengubah banyak hal. Bila hasilnya tak memuaskan, Anda cukup membuang branch — main tetap bersih.

Verifikasi

Pembuatan PR bergantung pada gh yang terpasang dan terautentikasi. Perilaku commit bawaan (mis. penambahan baris atribusi ko-penulis pada pesan commit) dapat berubah dan bisa dikonfigurasi. Cek dokumentasi & pengaturan proyek Anda.

Studi Mini: Satu Isu, Satu Sore

Untuk menyatukan semuanya, bayangkan alur nyata dari sebuah isu di pelacak sampai PR yang siap ditinjau. Perhatikan bagaimana fitur-fitur dari bab-bab sebelumnya berpadu:

  1. Ambil konteks (MCP). "Ada isu #312 soal ekspor CSV yang rusak untuk data besar — baca detailnya." Claude menarik isu lewat server MCP GitHub.
  2. Rencanakan (plan mode). Anda beralih ke plan mode dan meminta pendekatan. Claude membaca kode ekspor, menemukan bahwa seluruh data dimuat ke memori sekaligus, dan mengusulkan streaming.
  3. Eksekusi berpagar (izin + hook). Anda setujui. Claude mengubah implementasi menjadi streaming; hook PostToolUse memformat berkas otomatis.
  4. Buktikan (tes). Ia menambah tes untuk dataset besar, menjalankannya, memastikan hijau, dan mengukur bahwa penggunaan memori kini datar.
  5. Kirim (git + gh). Ia membuat branch, commit dengan pesan yang jelas, dan membuka PR yang menautkan isu #312.
  6. Tinjau (Anda). Anda membaca diff akhir, puas, dan meminta rekan menyetujui. Sore yang biasanya habis, selesai dalam sepersekiannya.

Tidak ada langkah tunggal yang ajaib. Keajaibannya adalah semuanya terjadi dalam satu percakapan yang mengalir, dengan Anda memegang kemudi di setiap belokan penting.

Alur Non-Interaktif (Headless & CI)

Tidak semua pekerjaan interaktif. Claude Code bisa dipanggil sekali-jalan lewat flag -p (print), membaca dari pipe, dan mengeluarkan hasil yang bisa diproses program lain. Ini menjadikannya blok bangunan otomasi: menjalankan tugas terjadwal, memproses berkas massal, atau melengkapi langkah dalam pipeline CI.

# Sekali-jalan, hasil ke stdout
claude -p "ringkas perubahan di git diff terakhir jadi 3 poin"

# Dari pipe
git diff | claude -p "tinjau diff ini, sebut risiko keamanan"

# Dalam skrip (pakai ANTHROPIC_API_KEY di lingkungan CI)
claude -p "perbarui CHANGELOG.md untuk rilis $VERSION"
Peringatan

Di CI, godaan memakai mode bypass-izin besar. Lakukan hanya di lingkungan terisolasi tanpa akses produksi, dan batasi tool yang boleh dipakai lewat konfigurasi izin. Perlakukan keluaran model sebagai saran yang tetap perlu gerbang (mis. tinjauan manusia atau tes) sebelum di-merge.

Verifikasi

Flag headless (-p/--print), format keluaran (mis. JSON), dan opsi pembatasan tool berkembang. Jalankan claude --help dan rujuk panduan "headless / SDK" resmi sebelum menaruhnya di pipeline penting.

"The magic isn't any single step — it's that plan, edit, test, and ship happen in one continuous conversation."

— Refleksi alur kerja end-to-end Claude Code

11
Bab Sebelas

Prompt & Konteks yang Efektif

Kualitas keluaran Claude Code sangat ditentukan oleh kualitas masukan Anda. Kabar baiknya: menyusun prompt yang baik bukan seni gelap, melainkan segelintir kebiasaan yang bisa dipelajari. Bab ini merangkumnya, lalu memberi pustaka prompt siap-salin.

Prinsip Menyusun Prompt

Perbandingan berikut menunjukkan bagaimana prompt yang samar berubah menjadi tajam dengan menambahkan konteks, kriteria selesai, dan batasan.

Prompt lemahPrompt tajam
"perbaiki auth""di @src/routes/auth.js, token reset tak pernah kedaluwarsa. beri masa berlaku 1 jam & tolak token kedaluwarsa dengan 400. tambah tes."
"buat lebih cepat""endpoint /laporan lambat untuk >10k baris. profil penyebabnya, usulkan perbaikan, terapkan yang paling berdampak tanpa mengubah bentuk responsnya."
"tulis tes""tulis tes untuk @src/utils/harga.ts mencakup pembulatan, diskon 0% & 100%, dan input negatif (harus error). jalankan & pastikan hijau."
Tip

Untuk tugas yang butuh penalaran mendalam (arsitektur, debug rumit), dorong Claude berpikir lebih dulu: "pikirkan pendekatannya, jelaskan trade-off, baru mulai." Meminta rencana eksplisit sering menghasilkan solusi yang jauh lebih baik daripada langsung menyuruh menulis kode.

Pustaka Prompt Siap Salin

Templat berikut bisa Anda salin dan sesuaikan. Ganti bagian dalam kurung siku.

Onboarding proyekPahami struktur repo asing
Fitur (plan dulu)Rancang sebelum eksekusi
Debug sistematisReproduksi lalu perbaiki
Tulis tesCakup kasus tepi
Refaktor terarahPerbaiki tanpa ubah perilaku
Tinjau keamananAudit diff sebelum commit
Jelaskan kodePahami bagian rumit
Commit & PRRapikan lalu kirim

Resep Cepat Sehari-hari

Beberapa pola singkat yang sering menyelamatkan waktu. Masing-masing ditampilkan sebagai potongan sesi nyata.

Memahami repositori asing dalam semenit

claude — onboarding
> saya baru di repo ini. jelaskan arsitektur, alur data, dan cara menjalankan + menguji. sebut berkas kunci. Read README.md, package.json Glob src/** → 132 berkas Ini API GraphQL (Apollo) + worker antrian. Alur: resolvers/ → services/ → repositories/ → DB Jalankan: pnpm dev · Uji: pnpm test

Menjelaskan galat yang membingungkan

claude — jelaskan error
> !npm run build ✗ TS2345: Argument of type 'string | undefined'... > kenapa error ini & bagaimana memperbaikinya dgn benar? Read src/config.ts Env var mungkin undefined. Perbaikan benar: validasi saat boot & beri tipe pasti, bukan memaksa dengan `!`. Terapkan?

Menaikkan versi dependensi dengan aman

claude — upgrade paket
> naikkan zod ke versi mayor terbaru, perbaiki breaking changes, pastikan tes hijau Bash pnpm add zod@latest Bash pnpm test3 gagal (API berubah) Edit 5 berkas — sesuaikan pemakaian API baru Bash pnpm testsemua hijau
Tip

Simpan resep yang sering Anda pakai sebagai slash command kustom di .claude/commands/ (Bab 5). Sekali dibuat, seluruh tim bisa memanggilnya dengan satu perintah — alur kerja Anda menjadi aset yang bisa dibagikan.

"Treat Claude like a fast, literal, tireless colleague: be clear about the goal, give it the context it needs, and check its work."

— Ringkasan prinsip prompting yang efektif

Dengan prompt yang tajam, Anda mengambil hasil terbaik dari alat ini. Bab berikut menyeimbangkannya dengan realitas: tips lanjutan, batasan yang jujur, dan biaya.


12
Bab Dua Belas

Tips, Batasan & Biaya

Buku yang jujur menyebut batas, bukan hanya kilau. Bab ini merangkum kebiasaan yang membuat Anda lebih produktif, menyampaikan batasan Claude Code secara terus terang, dan menjelaskan bagaimana biaya bekerja agar tak ada kejutan di tagihan.

Tips Produktivitas

Batasan yang Perlu Diketahui

Claude Code kuat, tetapi bukan sihir. Menyadari batasnya membuat Anda memakainya dengan bijak.

Peringatan

Jangan pernah menganggap kode yang dihasilkan otomatis aman untuk produksi tanpa ditinjau. Perlakukan Claude Code seperti rekan junior yang sangat cepat: hasilnya bagus, tetapi mutu akhir adalah tanggung jawab Anda sebagai peninjau.

Bagaimana Biaya Bekerja

Ada dua model penagihan utama, seperti disinggung di Bab 2:

ModelCara bayarCocok untuk
Langganan Claude (Pro / Max)Biaya bulanan tetap; pemakaian dibatasi kuotaIndividu & pemakaian harian yang ingin biaya terprediksi
API (Anthropic Console)Bayar per token (input + output)Tim, otomasi, CI, pemakaian yang perlu penagihan terpisah

Pada model API, biaya bergerak seiring jumlah token yang diproses. Faktor terbesar adalah ukuran konteks: percakapan panjang dan banyak berkas yang dibaca berulang menaikkan token. Karena itu /clear, /compact, subagent (konteks terpisah), dan pemilihan model yang tepat bukan sekadar soal kerapian — semuanya menghemat uang.

Pantau pemakaian dengan /cost di dalam sesi. Ini menampilkan token dan perkiraan biaya sesi berjalan, membantu Anda menyadari kapan konteks membengkak.

claude — /cost
> /cost Sesi ini: token input : 128.4k token output : 22.1k perkiraan biaya: (tergantung model & tarif berlaku) Tip: /clear untuk mulai konteks bersih & menekan biaya.
Verifikasi

Harga per token, batas kuota langganan, dan tarif tiap model berubah dari waktu ke waktu. Untuk angka pasti, rujuk halaman harga resmi Anthropic dan output /cost pada sesi Anda. Buku ini sengaja tidak mencantumkan angka nominal agar tidak cepat usang.

Kapan /clear vs /compact vs subagent

Tiga alat mengelola konteks, dan memilih yang tepat menghemat token sekaligus menjaga fokus:

SituasiPakaiAlasan
Pindah ke tugas yang tak berkaitan/clearBuang seluruh konteks lama; mulai bersih & termurah
Masih tugas sama tapi percakapan sudah panjang/compactPertahankan inti, buang detail bertele-tele
Perlu menelusuri/membaca banyak berkasSubagentLedakan konteks terjadi di tempat lain; hanya hasil kembali
Tugas berat butuh model cerdas, sisanya ringan/modelBayar mahal hanya saat perlu

Menghemat tanpa mengorbankan hasil

claude — /model untuk hemat
> /model Pilih model: Opus — rencana & masalah rumit (termahal) Sonnet — eksekusi sehari-hari (seimbang) Haiku — tugas ringan & cepat (termurah) Nama model spesifik: verifikasi ke dokumentasi resmi.
Tip

Strategi model yang hemat sekaligus cerdas: mulai tugas rumit dengan model paling kuat untuk menyusun rencana yang benar, lalu turun ke model lebih cepat untuk eksekusi mekanis yang berulang. Rencana yang benar sejak awal jauh lebih murah daripada eksekusi cepat yang salah arah lalu harus diulang.


13
Bab Tiga Belas

Claude Code vs Alat Lain

Claude Code bukan satu-satunya pemain. Bab ini membandingkannya dengan alat populer lain secara jujur — bukan untuk menyatakan pemenang mutlak, melainkan membantu Anda memilih alat yang tepat untuk gaya kerja Anda. Alat terbaik adalah yang cocok dengan konteks Anda.

Lanskap Singkat

Alat bantu coding AI kira-kira jatuh ke tiga bentuk: ekstensi editor yang menyatu di IDE (mis. Cursor, Copilot), alat terminal agentic yang bekerja lewat CLI (Claude Code, dan padanan dari penyedia lain seperti Codex CLI), dan antarmuka chat/web. Ketiganya bisa saling melengkapi; banyak pengembang memakai lebih dari satu.

Perbedaan yang paling menentukan bukanlah "model siapa yang lebih pintar" — kualitas model berubah tiap beberapa bulan — melainkan bentuk alat dan seberapa cocok ia dengan cara Anda bekerja. Alat yang menyatu dengan terminal dan git akan terasa berbeda dari alat yang menyatu dengan editor, meski keduanya memakai model yang setara. Nilailah dari kecocokan alur, bukan hanya tolok ukur.

Tabel Perbandingan Jujur

AspekClaude CodeCodex (CLI OpenAI)Cursor
Bentuk utamaCLI terminal, agenticCLI terminal, agenticEditor (fork VS Code)
Tempat kerjaTerminal mana pun; agnostik editorTerminal; agnostik editorDi dalam IDE-nya sendiri
ModelKeluarga Claude (Opus/Sonnet/Haiku)Model OpenAI (mis. seri GPT)Multi-model (bisa pilih, termasuk Claude)
Kekuatan khasAgen terminal mendalam; skills, subagents, hooks, MCP; komposabilitasAgen terminal; integrasi ekosistem OpenAIPengalaman editor mulus; edit inline & autocomplete kuat
EkstensiSlash command kustom, skills, MCP, hooksKonfigurasi & MCP (bervariasi)Aturan proyek, ekstensi VS Code
Cocok untukAlur terminal, otomasi, kendali halusPengguna ekosistem OpenAIYang ingin semua di dalam satu editor visual
PenagihanLangganan Claude atau APILangganan/ API OpenAILangganan Cursor (+ opsi API)
Verifikasi

Ini lanskap yang bergerak sangat cepat. Fitur, model yang didukung, dan skema harga tiap alat berubah tiap beberapa bulan. Perlakukan tabel ini sebagai peta kasar per 2026, bukan spesifikasi mutakhir. Selalu cek situs resmi masing-masing sebelum memutuskan.

Kapan Claude Code Bersinar

Kapan Alat Lain Mungkin Lebih Pas

Memakainya Berdampingan

Ini bukan pilihan "salah satu". Banyak pengembang menjalankan editor visual untuk pengetikan sehari-hari dan penjelajahan cepat, lalu berpaling ke Claude Code di terminal untuk pekerjaan agentic yang lebih berat: refaktor lintas berkas, alur git penuh, otomasi, dan integrasi MCP. Keduanya berbagi hal yang sama pentingnya — kebiasaan meninjau kritis dan menjaga keamanan. Anggaplah setiap alat sebagai perkakas berbeda di kotak yang sama, bukan agama yang harus dipilih.

"Pilih alat yang menghilang ke dalam alur kerja Anda, bukan yang memaksa Anda pindah ke alur kerjanya."

— Prinsip pemilihan perkakas yang berumur panjang

Apa pun pilihan Anda, keterampilan inti — menyusun maksud yang jelas, meninjau kritis, menjaga keamanan — bersifat lintas alat. Itulah investasi yang tak akan usang.


14
Bab Empat Belas

Cara Dibaca AI

Buku ini punya dua jenis pembaca: manusia dan mesin. Bab ini ditujukan untuk yang kedua — sebuah asisten AI (termasuk Claude Code sendiri) yang mungkin diminta membaca, meringkas, atau menjawab pertanyaan berdasarkan dokumen ini. Bagian ini menjelaskan struktur dokumen dan cara mengekstrak isinya dengan tepat.

Ringkasan Terstruktur untuk Mesin

Dokumen ini adalah satu berkas HTML mandiri (self-contained) berbahasa Indonesia (lang="id") berjudul "Kuasai Claude Code — Panduan Lengkap Agentic Coding di Terminal", ditulis oleh Galih Prasetyo, tahun 2026. Isinya adalah panduan tentang Claude Code, alat baris perintah agentic coding buatan Anthropic.

Peta Anchor

Setiap bab dan sub-bab memiliki id yang stabil. Untuk menautkan atau merujuk bagian tertentu, gunakan anchor berikut (tidak lengkap, hanya bab utama):

BagianAnchor (id)
Apa Itu Claude Code#apa-itu-claude-code
Instalasi & Setup#instalasi-setup
Sesi Pertama & Alur#sesi-pertama
CLAUDE.md#claude-md
Slash Commands#slash-commands
Izin & Mode#izin-mode
Skills & Subagents#skills-subagents
Hooks & settings.json#hooks-settings
MCP#mcp
Alur Kerja Nyata#alur-nyata
Prompt & Konteks#prompt-konteks
Tips, Batasan, Biaya#tips-batasan-biaya
vs Alat Lain#vs-alat-lain
FAQ / Glosarium / Checklist#faq · #glosarium · #checklist

Petunjuk Ekstraksi yang Setia

Bila Anda sebuah AI yang meringkas atau menjawab dari dokumen ini, ikuti pedoman berikut agar setia pada maksud penulis:

  1. Hormati penanda verifikasi. Di mana pun teks menyebut "verifikasi ke dokumentasi resmi", jangan menyajikan detail terkait (flag, versi, harga, nama field) sebagai fakta pasti. Sampaikan sebagai "menurut buku ini, per 2026, dan mungkin berubah".
  2. Bedakan konsep dari perincian. Konsep fungsional (apa itu hook, apa itu MCP, cara kerja permission mode) relatif stabil dan boleh dinyatakan lugas. Perincian sintaks bisa usang.
  3. Jangan mengarang perintah. Buku ini sengaja menghindari mengarang flag/perintah yang tak pasti. Bila ditanya perintah persis yang tak ada di sini, arahkan pengguna ke claude --help, /help, atau dokumentasi resmi.
  4. Screenshot terminal bersifat ilustratif. Angka (token, waktu, jumlah tes) dalam mockup adalah contoh, bukan tolok ukur nyata.
  5. Sitasi kutipan. Blok kutipan diberi atribusi ringkas; perlakukan sebagai parafrase/rangkuman prinsip, bukan kutipan verbatim resmi kecuali dinyatakan demikian.
Untuk AI

Format yang berguna saat menjawab dari dokumen ini: mulai dengan definisi fungsional yang stabil, lalu beri contoh dari buku, dan tutup dengan pengingat memverifikasi detail spesifik ke dokumentasi resmi Anthropic bila pengguna butuh angka/sintaks pasti.

Dengan struktur ini, baik pembaca manusia maupun mesin bisa menavigasi dokumen secara andal. Kita tutup buku di bab terakhir.


15
Bab Lima Belas

Penutup, FAQ & Rujukan

Kita telah menempuh perjalanan dari "apa itu agentic coding" sampai membuka pull request lengkap dari terminal. Yang tersisa adalah menutup dengan rapi: sebuah renungan singkat, jawaban atas pertanyaan yang paling sering muncul, glosarium istilah, dan checklist yang bisa Anda tempel di dekat meja.

Inti buku ini sederhana: peran Anda naik dari pengetik menjadi pengarah. Claude Code bukan pengganti keahlian Anda — ia pengganda. Nilai Anda sebagai insinyur justru makin penting: menentukan apa yang benar untuk dibangun, meninjau dengan kritis, menjaga keamanan, dan mengambil keputusan yang tak bisa didelegasikan. Alat ini mengurus mekanika; penilaian tetap milik Anda. Mulailah kecil pada codebase Anda sendiri, tumbuhkan kepercayaan dari sana, dan biarkan kebiasaan baik — konteks bersih, git sebagai jaring, izin yang bijak — menjadi refleks.

Pertanyaan yang Sering Diajukan

1. Apakah Claude Code menggantikan pekerjaan programmer?

Tidak. Ia menggeser fokus dari mengetik ke mengarahkan dan meninjau. Keputusan desain, penilaian mutu, dan tanggung jawab tetap di tangan manusia. Yang menguasainya justru menjadi lebih produktif, bukan tergantikan.

2. Apakah kode saya dikirim ke server?

Ya, inferensi berjalan di server Anthropic, jadi potongan berkas yang relevan dikirim sebagai konteks. Tinjau kebijakan data resmi Anthropic terkait retensi dan pelatihan, dan jangan pakai pada kode yang kebijakan organisasi Anda melarang keluar. Untuk kebutuhan enterprise, tersedia opsi dengan jaminan data berbeda — verifikasi ke dokumentasi resmi.

3. Perlu langganan atau bisa bayar per pakai?

Keduanya. Anda bisa memakai langganan Claude (Pro/Max) untuk biaya tetap, atau API Console untuk bayar per token. Lihat Bab 12.

4. Apakah bekerja di Windows?

Ya — di Windows secara native maupun lewat WSL, selain macOS dan Linux. Cek syarat terbaru di dokumentasi.

5. Bagaimana mencegahnya menjalankan perintah berbahaya?

Tetap di default mode (ia bertanya sebelum bertindak), susun daftar deny di settings.json, dan pertimbangkan hook PreToolUse untuk memblokir pola berbahaya. Lihat Bab 6 dan 8.

6. Apa beda skill dan subagent?

Skill memberi keahlian/instruksi yang dipanggil saat relevan dalam konteks yang sama. Subagent adalah pekerja terpisah dengan konteksnya sendiri untuk mendelegasikan tugas (bisa paralel). Lihat Bab 7.

7. Apa beda hook dan skill?

Hook dijalankan sistem secara deterministik pada peristiwa tertentu (selalu terjadi). Skill dipanggil model saat dianggap relevan (bergantung keputusan model). Untuk aturan yang tak boleh gagal, pakai hook.

8. Apa itu MCP secara singkat?

Protokol terbuka yang menyambungkan Claude ke alat/data eksternal (basis data, GitHub, dsb.) lewat server standar. Lihat Bab 9.

9. Bagaimana menekan biaya?

/clear antar tugas, /compact saat panjang, pakai model ringan untuk tugas ringan, arahkan berkas relevan, dan delegasikan penelusuran besar ke subagent. Pantau dengan /cost.

10. Bisakah dipakai tanpa interaksi (di CI)?

Bisa. Claude Code punya mode headless (mis. lewat flag -p) dan bisa memakai ANTHROPIC_API_KEY. Cocok untuk pipeline. Verifikasi flag terbaru dengan claude --help.

11. Apakah harus memakai VS Code?

Tidak. Claude Code agnostik editor dan hidup di terminal. Ada integrasi IDE opsional, tetapi tak wajib.

12. Bagaimana kalau ia salah arah di tengah jalan?

Tekan Esc untuk menyela, lalu koreksi. Esc dua kali memungkinkan menyunting pesan sebelumnya dan mengulang dari titik itu.

13. Apakah CLAUDE.md wajib?

Tidak wajib, tetapi sangat dianjurkan. Ia salah satu hal berdaya ungkit tertinggi untuk membuat jawaban lebih relevan dengan proyek Anda.

14. Bagaimana memperbarui Claude Code?

Bila via npm: npm update -g @anthropic-ai/claude-code. Installer natif punya mekanisme pembaruannya sendiri.

15. Apakah aman untuk repositori kerja saya?

Aman bila Anda memakai izin dengan bijak, bekerja di branch dengan git sebagai jaring pengaman, dan meninjau perubahan. Hindari mode bypass-izin di mesin dengan data penting.

16. Bagaimana kalau saya tak percaya sebuah server MCP?

Jangan pasang. Server MCP menjalankan kode dan sering memegang kredensial. Pasang hanya yang tepercaya, dan beri izin ask untuk aksi yang bisa menulis/menghapus.

17. Bisakah beberapa orang memakai Claude Code di repo yang sama?

Bisa. Konvensi (CLAUDE.md), izin, dan hook di .claude/settings.json di-commit dan dibagikan; preferensi pribadi tinggal di berkas lokal yang tak di-commit. Setiap orang menjalankan sesinya sendiri di mesinnya.

18. Apakah Claude Code mengingat sesi kemarin?

Setiap sesi baru mulai bersih, tetapi memori proyek (CLAUDE.md) selalu dimuat, dan Anda bisa melanjutkan percakapan sebelumnya dengan --continue atau /resume. Untuk pengetahuan permanen, tuliskan ke CLAUDE.md, bukan mengandalkan ingatan sesi.

19. Bagaimana kalau hasil edit merusak sesuatu yang tak terlihat?

Andalkan tes dan git. Minta Claude menjalankan tes setelah perubahan, bekerja di branch, dan tinjau git diff. Bila ada yang rusak, git restore/kembalikan branch memulihkan keadaan.

20. Apakah saya masih perlu paham kode yang dihasilkan?

Sangat perlu. Anda adalah peninjau dan penanggung jawab akhir. Memahami keluaran membuat Anda bisa menangkap kesalahan halus, membuat keputusan arsitektur, dan tak bergantung buta. Alat ini mempercepat, bukan menggantikan pemahaman.

Glosarium

Checklist Memulai

Tempel di dekat meja Anda:

"Berhentilah sekadar mengetik kode. Mulailah mengarahkannya. Terminal Anda baru saja menjadi jauh lebih kuat."

— Galih Prasetyo

Satu nasihat penutup: jangan menunggu sampai merasa "cukup paham" untuk mulai. Cara tercepat menguasai Claude Code adalah memakainya pada masalah kecil yang nyata hari ini — sebuah bug sepele, sebuah tes yang belum ditulis, sebuah refaktor yang tertunda. Amati apa yang dilakukannya, koreksi bila keliru, dan biarkan kepercayaan tumbuh dari bukti, bukan dari janji. Buku ini adalah peta; medannya hanya bisa Anda kenali dengan berjalan.

Terima kasih telah membaca. Semoga buku ini menghemat banyak jam bagi Anda, dan mengubah cara Anda bekerja dengan kode menjadi lebih tenang, cepat, dan menyenangkan. Selamat mengarahkan.

Tentang Penulis
Galih Prasetyo

Seorang praktisi perangkat lunak yang gemar menerjemahkan alat baru menjadi bahasa yang bisa dipakai siapa saja. Ia percaya bahwa teknologi paling berharga bukan yang paling canggih, melainkan yang paling memberdayakan orang untuk berpikir lebih tinggi dan bekerja lebih tenang.

Buku ini lahir dari keyakinan sederhana: agentic coding akan mengubah cara kita membangun perangkat lunak, dan setiap orang berhak memahaminya tanpa perlu menebak-nebak. Ditulis dalam bahasa Indonesia agar pintu itu terbuka selebar mungkin.

↑ Ke Atas