Tips & Tricks (Diperbarui: 3/6/2026)

Optimasi Token Claude Code: turunkan biaya dengan /usage tanpa menurunkan kualitas

Kurangi token Claude Code dengan /usage, CLAUDE.md, hooks, subagent, input terarah, dan OpenTelemetry.

Optimasi Token Claude Code: turunkan biaya dengan /usage tanpa menurunkan kualitas

Optimasi token di Claude Code bukan sekadar menghemat biaya. Saat context terlalu besar, respons menjadi lebih lambat, asumsi lama ikut masuk ke task baru, dan Claude membaca ulang log, diff, serta keputusan yang sudah tidak relevan. Target yang lebih tepat adalah menjaga kualitas kerja dengan context yang lebih kecil dan lebih bersih.

Per Juni 2026, titik masuk praktisnya adalah /usage. Referensi command resmi menjelaskan /usage sebagai command untuk melihat session cost, plan usage limits, dan activity stats. /cost dan /stats ada sebagai alias, tetapi untuk artikel dan kebiasaan tim, /usage lebih jelas. Di plan Pro, Max, Team, dan Enterprise, layar ini juga bisa mengatribusikan usage ke skills, subagents, plugins, dan MCP servers.

Panduan ini memakai empat lapisan: observasi, kurangi context dasar, pisahkan pekerjaan yang berisik, lalu ukur workflow tim yang berulang. Hook adalah script atau endpoint yang berjalan pada event lifecycle Claude Code. Subagent adalah context terpisah untuk task yang sempit. Harness adalah kerangka kerja yang membuat kerja agent aman dan bisa diulang.

flowchart LR
  A["Observasi: /usage dan /context"] --> B["Kurangi: CLAUDE.md dan input terarah"]
  B --> C["Pisahkan: hooks / skills / subagents"]
  C --> D["Ukur: OpenTelemetry dan aturan tim"]

Mulai dari /usage

Tidak perlu menjalankan /usage setelah setiap prompt. Gunakan saat sesi terasa lambat, setelah output tool yang besar, sebelum handoff, atau setelah workflow yang akan diulang. Pasangkan dengan /context untuk melihat apakah biaya berasal dari task sekarang, history lama, memory file, atau tool context.

Bagian billing perlu dipisahkan dari diagnosis kerja. Session cost di /usage adalah estimasi lokal dari jumlah token. Pengguna API harus memastikan tagihan resmi di Claude Console. Untuk pengguna subscription, angka dollar di session tidak boleh dibaca sebagai tagihan langsung; plan usage bar dan activity attribution lebih berguna untuk batas harian.

# Jalankan di dalam Claude Code
/usage
/context

# Saat percakapan panjang tetapi pekerjaan harus lanjut
/compact Preserve changed files, failing tests, decisions, and unresolved questions.

# Saat pindah ke task yang tidak berkaitan
/clear

/compact merangkum state penting agar pekerjaan bisa lanjut. /clear memulai context baru. Clear terlalu awal membuat keputusan hilang; tidak pernah clear membuat task baru membayar context lama.

Jaga memory yang selalu dimuat tetap pendek

Token tidak hanya datang dari prompt terakhir. Conversation history, CLAUDE.md, auto memory, log, output tool, MCP server, dan catatan investigasi juga ikut dihitung. Pisahkan informasi menjadi tiga kelompok.

JenisTempat terbaikContoh
Selalu diperlukanCLAUDE.md pendekBuild, test, batasan keras
Diperlukan untuk task iniPercakapan dan /compactFile berubah, test gagal, keputusan terbuka
Bisa dibuang setelah dilihatOutput command terfilterLog panjang, generated diff, hasil search luas

Dokumentasi memory resmi menjelaskan bahwa CLAUDE.md dimuat sebagai context. Makin panjang file, makin besar biaya tetap setiap sesi. Import bisa membantu merapikan struktur, tetapi tidak menghemat token jika semua konten tetap dimuat saat startup.

# CLAUDE.md

## Project commands
- Build: npm run build
- Test: npm run test
- Type check: npm run typecheck

## Fast navigation
- API code: src/api/
- UI components: src/components/
- Tests: tests/

## Avoid by default
- Do not scan node_modules/, dist/, coverage/, or generated clients.
- Do not paste full logs. Ask for the failing command and relevant lines.

## Compact instructions
When compacting, preserve changed files, failing tests, decisions, credentials policy, and next actions.

Checklist review yang panjang, aturan terjemahan, runbook migrasi, atau release playbook lebih cocok menjadi skill atau dokumen terpisah. Skill dimuat saat dibutuhkan; CLAUDE.md masuk ke context sejak awal sesi.

Filter input sebelum dibaca Claude

Pemborosan paling umum adalah menempel seluruh log atau seluruh diff. Claude butuh bukti, bukan dump. Simpan artefak penuh di disk, lalu kirim dulu baris yang bisa memengaruhi keputusan berikutnya.

# Jangan kirim seluruh production log: ambil request ID dan error sekitar
tail -n 800 logs/app.log | grep -E -n -C 4 "request_id=abc123|ERROR|WARN"

# Lihat ukuran PR sebelum membaca diff penuh
git diff --stat
git diff -- src/auth.ts tests/auth.test.ts

# Simpan output test penuh, kirim area failure ke Claude
npm test 2>&1 | tee test.log
grep -E -n -C 6 "FAIL|ERROR|Error|failed|Assertion" test.log | head -160

Ini bukan menyembunyikan informasi. Ini hanya menentukan potongan pertama yang dibaca Claude. Jika belum cukup, tambahkan file lain atau baris log berikutnya.

Gunakan hooks dengan hati-hati

Jika filter yang sama sering dipakai, jadikan hook. Hook tidak boleh menyembunyikan kegagalan dan tidak sebaiknya menyetujui command berisiko secara diam-diam. Mulai dengan ask, cek command yang ditulis ulang, lalu uji lokal.

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/filter-test-output.sh"
          }
        ]
      }
    ]
  }
}
#!/usr/bin/env bash
set -euo pipefail

input=$(cat)
cmd=$(echo "$input" | jq -r '.tool_input.command // ""')

case "$cmd" in
  npm\ test*|pnpm\ test*|pytest*|go\ test*)
    filtered="$cmd 2>&1 | grep -E -n -C 6 '(FAIL|ERROR|Error|failed|Assertion)' | head -160"
    jq -n --arg command "$filtered" '{
      hookSpecificOutput: {
        hookEventName: "PreToolUse",
        permissionDecision: "ask",
        permissionDecisionReason: "Run test command with filtered output",
        updatedInput: { command: $command }
      }
    }'
    ;;
  *)
    echo '{}'
    ;;
esac

Contoh ini membutuhkan jq. Untuk tim, simpan juga log penuh dan pertahankan exit code asli. Hook hanya berguna jika mengurangi noise tanpa mengurangi bukti.

Pisahkan pekerjaan yang verbose

Subagent berguna saat prosesnya panjang tetapi main session hanya perlu kesimpulan pendek: cek dokumentasi resmi dan kembalikan fakta yang berubah, periksa sepuluh file locale dan kembalikan blocker, atau jalankan test gagal dan ringkas stack trace pertama yang bisa ditindaklanjuti.

Jangan membuat subagent hanya karena bisa. Setiap subagent punya context, memory, tools, dan biaya sendiri. Tujuannya menjaga main decision context tetap bersih, bukan memparalelkan task yang masih kabur. Skill juga begitu: keluarkan playbook panjang yang jarang dipakai dari CLAUDE.md.

Monitor usage tim

Untuk satu developer, /usage dan /context biasanya cukup. Untuk workflow tim, OpenTelemetry mengubah cost, token count, model, duration, dan tool activity menjadi data bersama. Mulai dengan console exporter sebelum menyambungkan collector atau dashboard.

export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console
export OTEL_LOGS_EXPORTER=console
export OTEL_METRIC_EXPORT_INTERVAL=10000
export OTEL_LOGS_EXPORT_INTERVAL=5000

claude

Ukur kualitas bersama usage. Jika token turun 30% tetapi correction round dan review defect naik, prosesnya memburuk.

Use case praktis

Investigasi log

Kirim request ID, error terbaru, timestamp, expected behavior, dan beberapa baris sekitar. Mulai kecil, lalu perluas hanya jika bukti kurang.

Code review

Berikan git diff --stat, changed files, test output, dan fokus review. PR besar sebaiknya dibagi menjadi security, performance, dan compatibility pass.

Publishing multibahasa

Simpan keputusan artikel canonical di main session. Translation, link, description length, dan CTA check bisa berjalan di context terpisah.

Hari training

Saat workshop, concurrent usage lebih tinggi. Aturan seperti “baca lima file dulu”, “maksimal 160 baris failure”, dan “jelaskan alasan memperluas scope” membuat biaya dan ritme kelas stabil.

Pitfall yang perlu dihindari

  • Hanya menulis /cost. Gunakan /usage, lalu jelaskan /cost dan /stats sebagai alias.
  • Memotong bukti. Reproduction, expected output, failing command, dan decision harus tetap ada.
  • Menjadikan CLAUDE.md buku catatan operasional. Workflow jarang lebih cocok sebagai skill.
  • Mengaktifkan terlalu banyak MCP. Cek /mcp dan gunakan CLI jika cukup.
  • Menyembunyikan failure lewat hook. Simpan log penuh dan tampilkan potongan terfilter.
  • Menganggap subagent selalu lebih murah. Ia mengisolasi noise, tetapi punya context sendiri.

Script handoff kecil

Script Node.js tanpa dependency ini membuat brief pendek dari changed files, ukuran diff, dan baris failure test.

#!/usr/bin/env node
import { execFileSync } from "node:child_process";
import { existsSync, readFileSync } from "node:fs";

function git(args) {
  return execFileSync("git", args, { encoding: "utf8" }).trim();
}

const testLogPath = process.argv[2];
const changedFiles = git(["diff", "--name-only"])
  .split(/\r?\n/)
  .filter(Boolean);
const diffStat = git(["diff", "--stat"]);
const testLog = testLogPath && existsSync(testLogPath)
  ? readFileSync(testLogPath, "utf8")
  : "";
const failures = testLog
  .split(/\r?\n/)
  .filter((line) => /(FAIL|ERROR|Error|failed|Assertion)/.test(line))
  .slice(0, 80);

console.log("# Claude handoff brief\n");
console.log("## Changed files");
console.log(changedFiles.length ? changedFiles.map((file) => `- ${file}`).join("\n") : "- None");
console.log("\n## Diff stat");
console.log(diffStat || "No diff");
console.log("\n## Test failures");
console.log(failures.length ? failures.map((line) => `- ${line}`).join("\n") : "- No matching failure lines");
node scripts/claude-brief.mjs test.log > claude-brief.md

Dokumentasi resmi yang dicek

Baca juga optimasi kecepatan, panduan permission, dan panduan harness engineering.

Hasil yang dicoba

Dalam rewrite ini, saya memakai artikel Jepang sebagai canonical, mengecek dokumentasi resmi, lalu memperbarui sepuluh locale. Perbaikan paling terasa adalah memisahkan permanent memory, task state, dan disposable logs. Brief pendek berisi changed files, failure lines, dan verification status memberi jawaban lebih stabil daripada menempel seluruh output test.

Untuk prompt dan material setup yang bisa dipakai ulang, mulai dari ClaudeCodeLab products. Untuk rollout tim, permission, review policy, telemetry, dan training, gunakan Claude Code training and consultation.

#claude-code #token-optimization #cost-reduction #usage #efficiency
Gratis

PDF gratis: cheatsheet Claude Code

Masukkan email dan unduh satu halaman berisi command, kebiasaan review, dan workflow aman.

Kami menjaga datamu dan tidak mengirim spam.

Masa

Tentang penulis

Masa

Engineer yang berfokus pada workflow Claude Code praktis dan adopsi tim.