6 6
7> Panduan langkah demi langkah untuk menjelajahi basis kode, memperbaiki bug, refactoring, pengujian, dan tugas sehari-hari lainnya dengan Claude Code.7> Panduan langkah demi langkah untuk menjelajahi basis kode, memperbaiki bug, refactoring, pengujian, dan tugas sehari-hari lainnya dengan Claude Code.
8 8
9Halaman ini mencakup alur kerja praktis untuk pengembangan sehari-hari: menjelajahi kode yang tidak familiar, debugging, refactoring, menulis tes, membuat PR, dan mengelola sesi. Setiap bagian mencakup contoh prompt yang dapat Anda sesuaikan dengan proyek Anda sendiri. Untuk pola dan tips tingkat yang lebih tinggi, lihat [Best practices](/id/best-practices).9Halaman ini mengumpulkan resep singkat untuk pengembangan sehari-hari. Untuk panduan tingkat yang lebih tinggi tentang prompting dan manajemen konteks, lihat [Best practices](/id/best-practices).
10 10
11## Pahami basis kode baru11Halaman ini mencakup:
12 12
13### Dapatkan gambaran umum basis kode dengan cepat13* [Resep prompt](#prompt-recipes) untuk menjelajahi kode, memperbaiki bug, refactoring, pengujian, PR, dan dokumentasi
14* [Lanjutkan percakapan sebelumnya](#resume-previous-conversations) sehingga tugas dapat berlangsung selama beberapa sesi
15* [Jalankan sesi paralel dengan worktrees](#run-parallel-sessions-with-worktrees) sehingga edit bersamaan tidak bertabrakan
16* [Rencanakan sebelum mengedit](#plan-before-editing) untuk meninjau perubahan sebelum menyentuh disk
17* [Delegasikan penelitian ke subagents](#delegate-research-to-subagents) untuk menjaga konteks utama Anda tetap bersih
18* [Pipe Claude ke dalam skrip](#pipe-claude-into-scripts) untuk CI dan pemrosesan batch
19
20## Resep prompt
21
22Ini adalah pola prompt untuk tugas sehari-hari seperti menjelajahi kode yang tidak familiar, debugging, refactoring, menulis tes, dan membuat PR. Masing-masing bekerja di permukaan Claude Code apa pun; sesuaikan wording dengan proyek Anda.
23
24### Pahami basis kode baru
25
26#### Dapatkan gambaran umum basis kode dengan cepat
14 27
15Misalkan Anda baru saja bergabung dengan proyek baru dan perlu memahami strukturnya dengan cepat.28Misalkan Anda baru saja bergabung dengan proyek baru dan perlu memahami strukturnya dengan cepat.
16 29
56 * Minta glosarium istilah khusus proyek69 * Minta glosarium istilah khusus proyek
57</Tip>70</Tip>
58 71
59### Temukan kode yang relevan72#### Temukan kode yang relevan
60 73
61Misalkan Anda perlu menemukan kode yang terkait dengan fitur atau fungsionalitas tertentu.74Misalkan Anda perlu menemukan kode yang terkait dengan fitur atau fungsionalitas tertentu.
62 75
90 103
91***104***
92 105
93## Perbaiki bug secara efisien106### Perbaiki bug secara efisien
94 107
95Misalkan Anda telah mengalami pesan kesalahan dan perlu menemukan dan memperbaiki sumbernya.108Misalkan Anda telah mengalami pesan kesalahan dan perlu menemukan dan memperbaiki sumbernya.
96 109
124 137
125***138***
126 139
127## Refactor kode140### Refactor kode
128 141
129Misalkan Anda perlu memperbarui kode lama untuk menggunakan pola dan praktik modern.142Misalkan Anda perlu memperbarui kode lama untuk menggunakan pola dan praktik modern.
130 143
164 177
165***178***
166 179
167## Gunakan subagents khusus180### Bekerja dengan tes
168
169Misalkan Anda ingin menggunakan subagents AI khusus untuk menangani tugas spesifik dengan lebih efektif.
170
171<Steps>
172 <Step title="Lihat subagents yang tersedia">
173 ```text theme={null}
174 /agents
175 ```
176
177 Ini menampilkan semua subagents yang tersedia dan memungkinkan Anda membuat yang baru.
178 </Step>
179
180 <Step title="Gunakan subagents secara otomatis">
181 Claude Code secara otomatis mendelegasikan tugas yang sesuai ke subagents khusus:
182
183 ```text theme={null}
184 review my recent code changes for security issues
185 ```
186
187 ```text theme={null}
188 run all tests and fix any failures
189 ```
190 </Step>
191
192 <Step title="Secara eksplisit minta subagents spesifik">
193 ```text theme={null}
194 use the code-reviewer subagent to check the auth module
195 ```
196
197 ```text theme={null}
198 have the debugger subagent investigate why users can't log in
199 ```
200 </Step>
201
202 <Step title="Buat subagents kustom untuk alur kerja Anda">
203 ```text theme={null}
204 /agents
205 ```
206
207 Kemudian pilih "Create New subagent" dan ikuti prompt untuk menentukan:
208
209 * Pengenal unik yang menggambarkan tujuan subagent (misalnya, `code-reviewer`, `api-designer`).
210 * Kapan Claude harus menggunakan agen ini
211 * Alat mana yang dapat diaksesnya
212 * Prompt sistem yang menggambarkan peran dan perilaku agen
213 </Step>
214</Steps>
215
216<Tip>
217 Tips:
218
219 * Buat subagents khusus proyek di `.claude/agents/` untuk berbagi tim
220 * Gunakan bidang `description` deskriptif untuk mengaktifkan delegasi otomatis
221 * Batasi akses alat ke apa yang benar-benar dibutuhkan setiap subagent
222 * Periksa [dokumentasi subagents](/id/sub-agents) untuk contoh terperinci
223</Tip>
224
225***
226
227## Gunakan Plan Mode untuk analisis kode yang aman
228
229Plan Mode menginstruksikan Claude untuk membuat rencana dengan menganalisis basis kode dengan operasi read-only, sempurna untuk menjelajahi basis kode, merencanakan perubahan kompleks, atau meninjau kode dengan aman. Dalam Plan Mode, Claude menggunakan [`AskUserQuestion`](/id/tools-reference) untuk mengumpulkan persyaratan dan memperjelas tujuan Anda sebelum mengusulkan rencana.
230
231### Kapan menggunakan Plan Mode
232
233* **Implementasi multi-langkah**: Ketika fitur Anda memerlukan pengeditan ke banyak file
234* **Eksplorasi kode**: Ketika Anda ingin meneliti basis kode secara menyeluruh sebelum mengubah apa pun
235* **Pengembangan interaktif**: Ketika Anda ingin mengulangi arah dengan Claude
236
237### Cara menggunakan Plan Mode
238
239**Aktifkan Plan Mode selama sesi**
240
241Anda dapat beralih ke Plan Mode selama sesi menggunakan **Shift+Tab** untuk bersiklus melalui mode izin.
242
243Jika Anda berada dalam Normal Mode, **Shift+Tab** pertama kali beralih ke Auto-Accept Mode, ditunjukkan oleh `⏵⏵ accept edits on` di bagian bawah terminal. **Shift+Tab** berikutnya akan beralih ke Plan Mode, ditunjukkan oleh `⏸ plan mode on`.
244
245**Mulai sesi baru dalam Plan Mode**
246
247Untuk memulai sesi baru dalam Plan Mode, gunakan flag `--permission-mode plan`:
248
249```bash theme={null}
250claude --permission-mode plan
251```
252
253**Jalankan kueri "headless" dalam Plan Mode**
254
255Anda juga dapat menjalankan kueri dalam Plan Mode secara langsung dengan `-p` (yaitu, dalam ["headless mode"](/id/headless)):
256
257```bash theme={null}
258claude --permission-mode plan -p "Analyze the authentication system and suggest improvements"
259```
260
261### Contoh: Merencanakan refactor kompleks
262
263```bash theme={null}
264claude --permission-mode plan
265```
266
267```text theme={null}
268I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.
269```
270
271Claude menganalisis implementasi saat ini dan membuat rencana komprehensif. Perbaiki dengan tindak lanjut:
272
273```text theme={null}
274What about backward compatibility?
275```
276
277```text theme={null}
278How should we handle database migration?
279```
280
281<Tip>Tekan `Ctrl+G` untuk membuka rencana di editor teks default Anda, di mana Anda dapat mengeditnya secara langsung sebelum Claude melanjutkan.</Tip>
282
283Ketika Anda menerima rencana, Claude secara otomatis memberi nama sesi dari konten rencana. Nama muncul di bilah prompt dan di pemilih sesi. Jika Anda telah menetapkan nama dengan `--name` atau `/rename`, menerima rencana tidak akan menimpanya.
284
285### Konfigurasikan Plan Mode sebagai default
286
287```json theme={null}
288// .claude/settings.json
289{
290 "permissions": {
291 "defaultMode": "plan"
292 }
293}
294```
295
296Lihat [dokumentasi settings](/id/settings#available-settings) untuk opsi konfigurasi lainnya.
297
298***
299
300## Bekerja dengan tes
301 181
302Misalkan Anda perlu menambahkan tes untuk kode yang tidak tercakup.182Misalkan Anda perlu menambahkan tes untuk kode yang tidak tercakup.
303 183
333 213
334***214***
335 215
336## Buat pull request216### Buat pull request
337 217
338Anda dapat membuat pull request dengan meminta Claude secara langsung ("create a pr for my changes"), atau memandu Claude melaluinya langkah demi langkah:218Anda dapat membuat pull request dengan meminta Claude secara langsung ("create a pr for my changes"), atau memandu Claude melaluinya langkah demi langkah:
339 219
357 </Step>237 </Step>
358</Steps>238</Steps>
359 239
360Ketika Anda membuat PR menggunakan `gh pr create`, sesi secara otomatis ditautkan ke PR tersebut. Anda dapat melanjutkannya nanti dengan `claude --from-pr <number>`.240Ketika Anda membuat PR menggunakan `gh pr create`, sesi secara otomatis ditautkan ke PR tersebut. Untuk kembali ke sana nanti, jalankan `claude --from-pr <number>` atau tempel URL PR ke dalam [pemilih `/resume`](/id/sessions#use-the-session-picker).
361 241
362<Tip>242<Tip>
363 Tinjau PR yang dihasilkan Claude sebelum mengirimkan dan minta Claude untuk menyoroti risiko atau pertimbangan potensial.243 Tinjau PR yang dihasilkan Claude sebelum mengirimkan dan minta Claude untuk menyoroti risiko atau pertimbangan potensial.
364</Tip>244</Tip>
365 245
366## Tangani dokumentasi246### Tangani dokumentasi
367 247
368Misalkan Anda perlu menambah atau memperbarui dokumentasi untuk kode Anda.248Misalkan Anda perlu menambah atau memperbarui dokumentasi untuk kode Anda.
369 249
403 283
404***284***
405 285
406## Bekerja dalam catatan dan folder non-kode286### Bekerja dalam catatan dan folder non-kode
407 287
408Claude Code bekerja di direktori apa pun. Jalankan di dalam vault catatan, folder dokumentasi, atau koleksi file markdown apa pun untuk mencari, mengedit, dan mengatur ulang konten dengan cara yang sama seperti Anda melakukan kode.288Claude Code bekerja di direktori apa pun. Jalankan di dalam vault catatan, folder dokumentasi, atau koleksi file markdown apa pun untuk mencari, mengedit, dan mengatur ulang konten dengan cara yang sama seperti Anda melakukan kode.
409 289
411 291
412***292***
413 293
414## Bekerja dengan gambar294### Bekerja dengan gambar
415 295
416Misalkan Anda perlu bekerja dengan gambar dalam basis kode Anda, dan Anda ingin bantuan Claude menganalisis konten gambar.296Misalkan Anda perlu bekerja dengan gambar dalam basis kode Anda, dan Anda ingin bantuan Claude menganalisis konten gambar.
417 297
471 351
472***352***
473 353
474## File dan direktori referensi354### File dan direktori referensi
475 355
476Gunakan @ untuk dengan cepat menyertakan file atau direktori tanpa menunggu Claude membacanya.356Gunakan @ untuk dengan cepat menyertakan file atau direktori tanpa menunggu Claude membacanya.
477 357
512 392
513***393***
514 394
515## Gunakan extended thinking (thinking mode)395### Jalankan Claude pada jadwal
516
517[Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) diaktifkan secara default, memberikan Claude ruang untuk bernalar melalui masalah kompleks langkah demi langkah sebelum merespons. Penalaran ini terlihat dalam verbose mode, yang dapat Anda aktifkan dengan `Ctrl+O`. Selama extended thinking, spinner menampilkan petunjuk kemajuan inline seperti "still thinking" dan "almost done thinking" untuk menunjukkan bahwa Claude sedang bekerja secara aktif.
518
519Selain itu, [model yang mendukung effort](/id/model-config#adjust-effort-level) menggunakan adaptive reasoning: alih-alih anggaran token thinking yang tetap, model secara dinamis memutuskan apakah dan berapa banyak untuk berpikir berdasarkan pengaturan effort level Anda dan tugas yang dihadapi. Adaptive reasoning memungkinkan Claude merespons lebih cepat untuk prompt rutin dan menyisihkan pemikiran yang lebih dalam untuk langkah-langkah yang mendapat manfaat darinya.
520
521Extended thinking sangat berharga untuk keputusan arsitektur kompleks, bug menantang, perencanaan implementasi multi-langkah, dan mengevaluasi trade-off antara pendekatan yang berbeda.
522
523<Note>
524 Frasa seperti "think", "think hard", dan "think more" ditafsirkan sebagai instruksi prompt reguler dan tidak mengalokasikan token thinking.
525</Note>
526
527### Konfigurasikan thinking mode
528
529Thinking diaktifkan secara default, tetapi Anda dapat menyesuaikan atau menonaktifkannya.
530
531| Scope | Cara mengkonfigurasi | Detail |
532| --------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
533| **Effort level** | Jalankan `/effort`, sesuaikan di `/model`, atau atur [`CLAUDE_CODE_EFFORT_LEVEL`](/id/env-vars) | Kontrol kedalaman thinking pada [model yang didukung](/id/model-config#adjust-effort-level) |
534| **Kata kunci `ultrathink`** | Sertakan "ultrathink" di mana saja dalam prompt Anda | Menambahkan instruksi in-context yang memberi tahu model untuk bernalar lebih banyak pada giliran itu. Tidak mengubah effort level itu sendiri; lihat [Adjust effort level](/id/model-config#adjust-effort-level) untuk itu |
535| **Pintasan toggle** | Tekan `Option+T` (macOS) atau `Alt+T` (Windows/Linux) | Toggle thinking on/off untuk sesi saat ini (semua model). Mungkin memerlukan [konfigurasi terminal](/id/terminal-config) untuk mengaktifkan pintasan tombol Option |
536| **Default global** | Gunakan `/config` untuk toggle thinking mode | Menetapkan default Anda di semua proyek (semua model).<br />Disimpan sebagai `alwaysThinkingEnabled` di `~/.claude/settings.json` |
537| **Batasi anggaran token** | Atur variabel lingkungan [`MAX_THINKING_TOKENS`](/id/env-vars) | Batasi anggaran thinking ke jumlah token tertentu. Pada model dengan adaptive reasoning, hanya `0` berlaku kecuali adaptive reasoning dinonaktifkan. Contoh: `export MAX_THINKING_TOKENS=10000` |
538
539Untuk melihat proses thinking Claude, tekan `Ctrl+O` untuk toggle verbose mode dan lihat penalaran internal ditampilkan sebagai teks italic abu-abu.
540
541### Cara extended thinking bekerja
542
543Extended thinking mengontrol berapa banyak penalaran internal yang dilakukan Claude sebelum merespons. Lebih banyak thinking memberikan lebih banyak ruang untuk menjelajahi solusi, menganalisis kasus tepi, dan memperbaiki kesalahan sendiri.
544
545Pada [model yang mendukung effort](/id/model-config#adjust-effort-level), thinking menggunakan adaptive reasoning: model secara dinamis mengalokasikan token thinking berdasarkan effort level yang Anda pilih. Ini adalah cara yang direkomendasikan untuk menyesuaikan trade-off antara kecepatan dan kedalaman penalaran. Jika Anda ingin Claude berpikir lebih atau kurang sering daripada yang akan dihasilkan effort level Anda, Anda juga dapat mengatakan demikian secara langsung dalam prompt Anda atau di `CLAUDE.md`.
546
547Dengan model yang lebih lama, thinking menggunakan anggaran token tetap yang diambil dari alokasi output Anda. Anggaran bervariasi menurut model; lihat [`MAX_THINKING_TOKENS`](/id/env-vars) untuk batas per-model. Anda dapat membatasinya dengan variabel lingkungan itu, atau menonaktifkan thinking sepenuhnya melalui `/config` atau toggle `Option+T`/`Alt+T`.
548
549Pada model dengan adaptive reasoning, `MAX_THINKING_TOKENS` hanya berlaku ketika diatur ke `0` untuk menonaktifkan thinking, atau ketika `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` mengembalikan model ke anggaran tetap. `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` berlaku untuk Opus 4.6 dan Sonnet 4.6 saja. Opus 4.7 selalu menggunakan adaptive reasoning dan tidak mendukung anggaran thinking tetap. Lihat [variabel lingkungan](/id/env-vars).
550
551<Warning>
552 Anda dikenakan biaya untuk semua token thinking yang digunakan bahkan ketika ringkasan thinking dihilangkan. Dalam mode interaktif, thinking muncul sebagai stub yang diruntuhkan secara default. Atur `showThinkingSummaries: true` di `settings.json` untuk menampilkan ringkasan lengkap.
553</Warning>
554
555***
556
557## Lanjutkan percakapan sebelumnya
558
559Saat memulai Claude Code, Anda dapat melanjutkan sesi sebelumnya:
560
561* `claude --continue` melanjutkan percakapan terbaru di direktori saat ini
562* `claude --resume` membuka pemilih percakapan atau melanjutkan berdasarkan nama
563* `claude --from-pr 123` melanjutkan sesi yang ditautkan ke pull request tertentu
564
565Dari dalam sesi aktif, gunakan `/resume` untuk beralih ke percakapan berbeda.
566
567Ketika sesi yang dipilih sudah lama dan cukup besar sehingga membacanya kembali akan mengonsumsi bagian substansial dari batas penggunaan Anda, `--resume`, `--continue`, dan `/resume` menawarkan untuk melanjutkan dari ringkasan alih-alih memuat transkrip lengkap. Prompt ini tidak tersedia di Amazon Bedrock, Google Cloud Vertex AI, atau Microsoft Foundry.
568
569Sesi disimpan per direktori proyek. Secara default, pemilih `/resume` menampilkan sesi interaktif dari worktree saat ini, dengan pintasan keyboard untuk memperluas daftar ke worktrees lain atau proyek, mencari, melihat pratinjau, dan mengganti nama. Lihat [Gunakan pemilih sesi](#use-the-session-picker) di bawah untuk referensi pintasan lengkap.
570
571Ketika Anda memilih sesi dari worktree lain dari repositori yang sama, Claude Code melanjutkannya secara langsung tanpa memerlukan Anda untuk beralih direktori terlebih dahulu. Memilih sesi dari proyek yang tidak terkait menyalin perintah `cd` dan resume ke clipboard Anda sebagai gantinya.
572
573Melanjutkan berdasarkan nama menyelesaikan di seluruh repositori saat ini dan worktrees-nya. Baik `claude --resume <name>` dan `/resume <name>` mencari kecocokan yang tepat dan melanjutkannya secara langsung, bahkan jika sesi berada di worktree yang berbeda.
574
575Ketika nama ambigu, `claude --resume <name>` membuka pemilih dengan nama yang sudah diisi sebagai istilah pencarian. `/resume <name>` dari dalam sesi melaporkan kesalahan sebagai gantinya, jadi jalankan `/resume` tanpa argumen untuk membuka pemilih dan pilih.
576
577Sesi yang dibuat oleh `claude -p` atau invokasi SDK tidak muncul di pemilih, tetapi Anda masih dapat melanjutkan satu dengan meneruskan ID sesinya langsung ke `claude --resume <session-id>`.
578
579### Beri nama sesi Anda
580
581Berikan sesi nama deskriptif untuk menemukannya nanti. Ini adalah praktik terbaik saat mengerjakan beberapa tugas atau fitur.
582
583<Steps>
584 <Step title="Beri nama sesi">
585 Beri nama sesi saat startup dengan `-n`:
586
587 ```bash theme={null}
588 claude -n auth-refactor
589 ```
590
591 Atau gunakan `/rename` selama sesi, yang juga menampilkan nama di bilah prompt:
592
593 ```text theme={null}
594 /rename auth-refactor
595 ```
596
597 Anda juga dapat mengganti nama sesi apa pun dari pemilih: jalankan `/resume`, navigasi ke sesi, dan tekan `Ctrl+R`.
598 </Step>
599
600 <Step title="Lanjutkan berdasarkan nama nanti">
601 Dari baris perintah:
602
603 ```bash theme={null}
604 claude --resume auth-refactor
605 ```
606
607 Atau dari dalam sesi aktif:
608
609 ```text theme={null}
610 /resume auth-refactor
611 ```
612 </Step>
613</Steps>
614
615### Gunakan pemilih sesi
616
617Perintah `/resume` (atau `claude --resume` tanpa argumen) membuka pemilih sesi interaktif dengan fitur-fitur ini:
618
619**Pintasan keyboard dalam pemilih:**
620
621| Pintasan | Tindakan |
622| :---------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |
623| `↑` / `↓` | Navigasi antar sesi |
624| `→` / `←` | Perluas atau tutup sesi yang dikelompokkan |
625| `Enter` | Pilih dan lanjutkan sesi yang disorot |
626| `Space` | Lihat pratinjau konten sesi. `Ctrl+V` juga bekerja di terminal yang tidak menangkapnya sebagai paste |
627| `Ctrl+R` | Ganti nama sesi yang disorot |
628| `/` atau karakter yang dapat dicetak lainnya selain `Space` | Masuk mode pencarian dan filter sesi |
629| `Ctrl+A` | Tampilkan sesi dari semua proyek di mesin ini. Tekan lagi untuk mengembalikan repositori saat ini |
630| `Ctrl+W` | Tampilkan sesi dari semua worktrees dari repositori saat ini. Tekan lagi untuk mengembalikan worktree saat ini. Hanya ditampilkan di repositori multi-worktree |
631| `Ctrl+B` | Filter ke sesi dari cabang git saat ini Anda. Tekan lagi untuk menampilkan sesi dari semua cabang |
632| `Esc` | Keluar dari pemilih atau mode pencarian |
633
634**Organisasi sesi:**
635
636Pemilih menampilkan sesi dengan metadata yang membantu:
637
638* Nama sesi jika diatur, jika tidak ringkasan percakapan atau prompt pengguna pertama
639* Waktu yang telah berlalu sejak aktivitas terakhir
640* Jumlah pesan
641* Cabang Git (jika berlaku)
642* Jalur proyek, ditampilkan setelah memperluas ke semua proyek dengan `Ctrl+A`
643
644Sesi yang di-fork (dibuat dengan `/branch`, `/rewind`, atau `--fork-session`) dikelompokkan bersama di bawah sesi root mereka, memudahkan menemukan percakapan terkait.
645
646<Tip>
647 Tips:
648
649 * **Beri nama sesi lebih awal**: Gunakan `/rename` saat memulai pekerjaan pada tugas yang berbeda—jauh lebih mudah menemukan "payment-integration" daripada "explain this function" nanti
650 * Gunakan `--continue` untuk akses cepat ke percakapan terbaru Anda di direktori saat ini
651 * Gunakan `--resume session-name` ketika Anda tahu sesi mana yang Anda butuhkan
652 * Gunakan `--resume` (tanpa nama) ketika Anda perlu menjelajahi dan memilih
653 * Untuk skrip, gunakan `claude --continue --print "prompt"` untuk melanjutkan dalam mode non-interaktif
654 * Tekan `Space` dalam pemilih untuk melihat pratinjau sesi sebelum melanjutkannya
655 * Percakapan yang dilanjutkan dimulai dengan model dan konfigurasi yang sama dengan yang asli
656
657 Cara kerjanya:
658
659 1. **Penyimpanan Percakapan**: Semua percakapan secara otomatis disimpan secara lokal dengan riwayat pesan lengkap mereka
660 2. **Deserialisasi Pesan**: Saat melanjutkan, seluruh riwayat pesan dipulihkan untuk mempertahankan konteks
661 3. **Status Alat**: Penggunaan alat dan hasil dari percakapan sebelumnya dipertahankan
662 4. **Pemulihan Konteks**: Percakapan dilanjutkan dengan semua konteks sebelumnya utuh
663</Tip>
664
665***
666
667## Jalankan sesi Claude Code paralel dengan Git worktrees
668
669Saat mengerjakan beberapa tugas sekaligus, Anda memerlukan setiap sesi Claude untuk memiliki salinannya sendiri dari basis kode sehingga perubahan tidak bertabrakan. Git worktrees menyelesaikan ini dengan membuat direktori kerja terpisah yang masing-masing memiliki file dan cabang mereka sendiri, sambil berbagi riwayat repositori dan koneksi remote yang sama. Ini berarti Anda dapat memiliki Claude bekerja pada fitur di satu worktree sambil memperbaiki bug di worktree lain, tanpa sesi mana pun mengganggu yang lain.
670
671Gunakan flag `--worktree` (`-w`) untuk membuat worktree terisolasi dan memulai Claude di dalamnya. Nilai yang Anda berikan menjadi nama direktori worktree dan nama cabang:
672
673```bash theme={null}
674# Mulai Claude dalam worktree bernama "feature-auth"
675# Membuat .claude/worktrees/feature-auth/ dengan cabang baru
676claude --worktree feature-auth
677
678# Mulai sesi lain dalam worktree terpisah
679claude --worktree bugfix-123
680```
681
682Jika Anda menghilangkan nama, Claude secara otomatis menghasilkan nama acak:
683
684```bash theme={null}
685# Auto-generates a name like "bright-running-fox"
686claude --worktree
687```
688
689Worktrees dibuat di `<repo>/.claude/worktrees/<name>` dan bercabang dari cabang remote default, yang merupakan tempat `origin/HEAD` menunjuk. Cabang worktree dinamai `worktree-<name>`.
690
691Cabang dasar tidak dapat dikonfigurasi melalui flag atau pengaturan Claude Code. `origin/HEAD` adalah referensi yang disimpan di direktori `.git` lokal Anda yang Git atur sekali saat Anda mengkloning. Jika cabang default repositori berubah nanti di GitHub atau GitLab, `origin/HEAD` lokal Anda terus menunjuk ke yang lama, dan worktrees akan bercabang dari sana. Untuk menyinkronkan ulang referensi lokal Anda dengan apa pun yang dianggap remote sebagai default saat ini:
692
693```bash theme={null}
694git remote set-head origin -a
695```
696
697Ini adalah perintah Git standar yang hanya memperbarui direktori `.git` lokal Anda. Tidak ada yang berubah di server remote. Jika Anda ingin worktrees bercabang dari cabang tertentu daripada default remote, atur secara eksplisit dengan `git remote set-head origin your-branch-name`.
698
699Untuk kontrol penuh atas cara worktrees dibuat, termasuk memilih base yang berbeda per invokasi, konfigurasikan hook [WorktreeCreate](/id/hooks#worktreecreate). Hook menggantikan logika `git worktree` default Claude Code sepenuhnya, jadi Anda dapat mengambil dan bercabang dari ref apa pun yang Anda butuhkan.
700
701Anda juga dapat meminta Claude untuk "work in a worktree" atau "start a worktree" selama sesi, dan itu akan membuat satu secara otomatis.
702
703### Worktrees subagent
704
705Subagents juga dapat menggunakan isolasi worktree untuk bekerja secara paralel tanpa konflik. Minta Claude untuk "use worktrees for your agents" atau konfigurasikan di [custom subagent](/id/sub-agents#supported-frontmatter-fields) dengan menambahkan `isolation: worktree` ke frontmatter agen. Setiap subagent mendapatkan worktree-nya sendiri yang secara otomatis dibersihkan ketika subagent selesai tanpa perubahan.
706
707### Pembersihan worktree
708
709Ketika Anda keluar dari sesi worktree, Claude menangani pembersihan berdasarkan apakah Anda membuat perubahan:
710
711* **Tidak ada perubahan**: worktree dan cabangnya dihapus secara otomatis
712* **Perubahan atau commit ada**: Claude meminta Anda untuk menyimpan atau menghapus worktree. Menyimpan mempertahankan direktori dan cabang sehingga Anda dapat kembali nanti. Menghapus menghapus direktori worktree dan cabangnya, membuang semua perubahan yang tidak dilakukan dan commit
713
714Worktrees subagent yang ditinggalkan oleh crash atau run paralel yang terputus dihapus secara otomatis saat startup setelah mereka lebih lama dari pengaturan [`cleanupPeriodDays`](/id/settings#available-settings) Anda, asalkan mereka tidak memiliki perubahan yang tidak dilakukan, tidak ada file yang tidak dilacak, dan tidak ada commit yang tidak didorong. Worktrees yang Anda buat dengan `--worktree` tidak pernah dihapus oleh sweep ini.
715
716Untuk membersihkan worktrees di luar sesi Claude, gunakan [manajemen worktree manual](#manage-worktrees-manually).
717
718<Tip>
719 Tambahkan `.claude/worktrees/` ke `.gitignore` Anda untuk mencegah konten worktree muncul sebagai file yang tidak dilacak dalam repositori utama Anda.
720</Tip>
721
722### Salin file yang diabaikan git ke worktrees
723
724Git worktrees adalah checkout segar, jadi mereka tidak menyertakan file yang tidak dilacak seperti `.env` atau `.env.local` dari repositori utama Anda. Untuk secara otomatis menyalin file ini ketika Claude membuat worktree, tambahkan file `.worktreeinclude` ke root proyek Anda.
725
726File menggunakan sintaks `.gitignore` untuk mencantumkan file mana yang akan disalin. Hanya file yang cocok dengan pola dan juga diabaikan yang disalin, jadi file yang dilacak tidak pernah diduplikasi.
727
728```text .worktreeinclude theme={null}
729.env
730.env.local
731config/secrets.json
732```
733
734Ini berlaku untuk worktrees yang dibuat dengan `--worktree`, worktrees subagent, dan sesi paralel di [aplikasi desktop](/id/desktop#work-in-parallel-with-sessions).
735
736### Kelola worktrees secara manual
737
738Untuk kontrol lebih besar atas lokasi worktree dan konfigurasi cabang, buat worktrees dengan Git secara langsung. Ini berguna ketika Anda perlu checkout cabang yang ada tertentu atau menempatkan worktree di luar repositori.
739
740```bash theme={null}
741# Buat worktree dengan cabang baru
742git worktree add ../project-feature-a -b feature-a
743
744# Buat worktree dengan cabang yang ada
745git worktree add ../project-bugfix bugfix-123
746
747# Mulai Claude dalam worktree
748cd ../project-feature-a && claude
749
750# Bersihkan saat selesai
751git worktree list
752git worktree remove ../project-feature-a
753```
754
755Pelajari lebih lanjut di [dokumentasi Git worktree resmi](https://git-scm.com/docs/git-worktree).
756
757<Tip>
758 Ingat untuk menginisialisasi lingkungan pengembangan Anda di setiap worktree baru sesuai dengan setup proyek Anda. Tergantung pada stack Anda, ini mungkin termasuk menjalankan instalasi dependensi (`npm install`, `yarn`), menyiapkan lingkungan virtual, atau mengikuti proses setup standar proyek Anda.
759</Tip>
760
761### Kontrol versi non-git
762
763Isolasi worktree bekerja dengan git secara default. Untuk sistem kontrol versi lain seperti SVN, Perforce, atau Mercurial, konfigurasikan [hook WorktreeCreate dan WorktreeRemove](/id/hooks#worktreecreate) untuk menyediakan logika pembuatan dan pembersihan worktree kustom. Ketika dikonfigurasi, hook ini menggantikan perilaku git default saat Anda menggunakan `--worktree`, jadi [`.worktreeinclude`](#copy-gitignored-files-to-worktrees) tidak diproses. Salin file konfigurasi lokal apa pun di dalam skrip hook Anda sebagai gantinya.
764
765Untuk koordinasi otomatis sesi paralel dengan tugas bersama dan pesan, lihat [agent teams](/id/agent-teams).
766
767***
768
769## Dapatkan notifikasi ketika Claude membutuhkan perhatian Anda
770
771Ketika Anda memulai tugas yang berjalan lama dan beralih ke jendela lain, Anda dapat menyiapkan notifikasi desktop sehingga Anda tahu ketika Claude selesai atau membutuhkan input Anda. Ini menggunakan event hook `Notification` [](/id/hooks-guide#get-notified-when-claude-needs-input), yang diaktifkan setiap kali Claude menunggu izin, idle dan siap untuk prompt baru, atau menyelesaikan autentikasi.
772
773<Steps>
774 <Step title="Tambahkan hook ke pengaturan Anda">
775 Buka `~/.claude/settings.json` dan tambahkan hook `Notification` yang memanggil perintah notifikasi asli platform Anda:
776
777 <Tabs>
778 <Tab title="macOS">
779 ```json theme={null}
780 {
781 "hooks": {
782 "Notification": [
783 {
784 "matcher": "",
785 "hooks": [
786 {
787 "type": "command",
788 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
789 }
790 ]
791 }
792 ]
793 }
794 }
795 ```
796 </Tab>
797
798 <Tab title="Linux">
799 ```json theme={null}
800 {
801 "hooks": {
802 "Notification": [
803 {
804 "matcher": "",
805 "hooks": [
806 {
807 "type": "command",
808 "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"
809 }
810 ]
811 }
812 ]
813 }
814 }
815 ```
816 </Tab>
817
818 <Tab title="Windows">
819 ```json theme={null}
820 {
821 "hooks": {
822 "Notification": [
823 {
824 "matcher": "",
825 "hooks": [
826 {
827 "type": "command",
828 "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
829 }
830 ]
831 }
832 ]
833 }
834 }
835 ```
836 </Tab>
837 </Tabs>
838
839 Jika file pengaturan Anda sudah memiliki kunci `hooks`, gabungkan entri `Notification` ke dalamnya daripada menimpa. Anda juga dapat meminta Claude untuk menulis hook untuk Anda dengan menggambarkan apa yang Anda inginkan di CLI.
840 </Step>
841
842 <Step title="Secara opsional sempit matcher">
843 Secara default hook diaktifkan pada semua jenis notifikasi. Untuk diaktifkan hanya untuk event tertentu, atur bidang `matcher` ke salah satu nilai ini:
844
845 | Matcher | Diaktifkan ketika |
846 | :--------------------- | :------------------------------------------------------- |
847 | `permission_prompt` | Claude membutuhkan Anda untuk menyetujui penggunaan alat |
848 | `idle_prompt` | Claude selesai dan menunggu prompt berikutnya Anda |
849 | `auth_success` | Autentikasi selesai |
850 | `elicitation_dialog` | Server MCP membuka formulir elicitation |
851 | `elicitation_complete` | Formulir elicitation MCP dikirimkan atau ditutup |
852 | `elicitation_response` | Respons elicitation MCP dikirim kembali ke server |
853 </Step>
854
855 <Step title="Verifikasi hook">
856 Ketik `/hooks` dan pilih `Notification` untuk mengkonfirmasi hook muncul. Memilihnya menampilkan perintah yang akan dijalankan. Untuk mengujinya end-to-end, minta Claude untuk menjalankan perintah yang memerlukan izin dan beralih dari terminal, atau minta Claude untuk memicu notifikasi secara langsung.
857 </Step>
858</Steps>
859
860Untuk skema event lengkap dan jenis notifikasi, lihat [referensi Notification](/id/hooks#notification).
861
862***
863
864## Gunakan Claude sebagai utilitas gaya unix
865
866### Tambahkan Claude ke proses verifikasi Anda
867
868Misalkan Anda ingin menggunakan Claude Code sebagai linter atau code reviewer.
869
870**Tambahkan Claude ke skrip build Anda:**
871
872```json theme={null}
873// package.json
874{
875 ...
876 "scripts": {
877 ...
878 "lint:claude": "claude -p 'you are a linter. please look at the changes vs. main and report any issues related to typos. report the filename and line number on one line, and a description of the issue on the second line. do not return any other text.'"
879 }
880}
881```
882
883<Tip>
884 Tips:
885
886 * Gunakan Claude untuk code review otomatis dalam pipeline CI/CD Anda
887 * Sesuaikan prompt untuk memeriksa masalah spesifik yang relevan dengan proyek Anda
888 * Pertimbangkan membuat beberapa skrip untuk jenis verifikasi yang berbeda
889</Tip>
890
891### Pipe in, pipe out
892
893Misalkan Anda ingin pipe data ke Claude, dan dapatkan kembali data dalam format terstruktur.
894
895**Pipe data melalui Claude:**
896
897```bash theme={null}
898cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt
899```
900
901<Tip>
902 Tips:
903
904 * Gunakan pipe untuk mengintegrasikan Claude ke dalam skrip shell yang ada
905 * Gabungkan dengan alat Unix lain untuk alur kerja yang kuat
906 * Pertimbangkan menggunakan `--output-format` untuk output terstruktur
907</Tip>
908
909### Kontrol format output
910
911Misalkan Anda memerlukan output Claude dalam format tertentu, terutama saat mengintegrasikan Claude Code ke dalam skrip atau alat lain.
912
913<Steps>
914 <Step title="Gunakan format teks (default)">
915 ```bash theme={null}
916 cat data.txt | claude -p 'summarize this data' --output-format text > summary.txt
917 ```
918
919 Ini menampilkan hanya respons teks biasa Claude (perilaku default).
920 </Step>
921
922 <Step title="Gunakan format JSON">
923 ```bash theme={null}
924 cat code.py | claude -p 'analyze this code for bugs' --output-format json > analysis.json
925 ```
926
927 Ini menampilkan array JSON pesan dengan metadata termasuk biaya dan durasi.
928 </Step>
929
930 <Step title="Gunakan format streaming JSON">
931 ```bash theme={null}
932 cat log.txt | claude -p 'parse this log file for errors' --output-format stream-json
933 ```
934
935 Ini menampilkan serangkaian objek JSON secara real-time saat Claude memproses permintaan. Setiap pesan adalah objek JSON yang valid, tetapi seluruh output bukan JSON yang valid jika digabungkan.
936 </Step>
937</Steps>
938
939<Tip>
940 Tips:
941
942 * Gunakan `--output-format text` untuk integrasi sederhana di mana Anda hanya memerlukan respons Claude
943 * Gunakan `--output-format json` ketika Anda memerlukan log percakapan lengkap
944 * Gunakan `--output-format stream-json` untuk output real-time dari setiap giliran percakapan
945</Tip>
946
947***
948
949## Jalankan Claude pada jadwal
950 396
951Misalkan Anda ingin Claude menangani tugas secara otomatis secara berulang, seperti meninjau PR terbuka setiap pagi, mengaudit dependensi mingguan, atau memeriksa kegagalan CI semalam.397Misalkan Anda ingin Claude menangani tugas secara otomatis secara berulang, seperti meninjau PR terbuka setiap pagi, mengaudit dependensi mingguan, atau memeriksa kegagalan CI semalam.
952 398
965 411
966***412***
967 413
968## Tanyakan Claude tentang kemampuannya414### Tanyakan Claude tentang kemampuannya
969 415
970Claude memiliki akses bawaan ke dokumentasinya dan dapat menjawab pertanyaan tentang fitur dan keterbatasannya sendiri.416Claude memiliki akses bawaan ke dokumentasinya dan dapat menjawab pertanyaan tentang fitur dan keterbatasannya sendiri.
971 417
972### Contoh pertanyaan418#### Contoh pertanyaan
973 419
974```text theme={null}420```text theme={null}
975can Claude Code create pull requests?421can Claude Code create pull requests?
1009 455
1010***456***
1011 457
458## Lanjutkan percakapan sebelumnya
459
460Ketika tugas berlangsung selama beberapa sesi, ambil alih dari tempat Anda berhenti daripada menjelaskan ulang konteks. Claude Code menyimpan setiap percakapan secara lokal.
461
462```bash theme={null}
463claude --continue
464```
465
466Ini melanjutkan sesi terbaru di direktori saat ini; jika belum ada, itu mencetak `No conversation found to continue` dan keluar. Gunakan `claude --resume` untuk memilih dari daftar, atau `/resume` dari dalam sesi yang berjalan. Lihat [Kelola sesi](/id/sessions) untuk penamaan, branching, dan referensi pemilih lengkap.
467
468## Jalankan sesi paralel dengan worktrees
469
470Bekerja pada fitur di satu terminal sementara Claude memperbaiki bug di terminal lain, tanpa edit bertabrakan. Setiap worktree adalah checkout terpisah di cabangnya sendiri.
471
472```bash theme={null}
473claude --worktree feature-auth
474```
475
476Jalankan perintah yang sama dengan nama berbeda di terminal kedua untuk memulai sesi paralel terisolasi. Lihat [Worktrees](/id/worktrees) untuk pembersihan, `.worktreeinclude`, dan dukungan VCS non-git. Untuk memantau sesi paralel dari satu layar daripada terminal terpisah, lihat [background agents](/id/agent-view).
477
478## Rencanakan sebelum mengedit
479
480Untuk perubahan yang ingin Anda tinjau sebelum menyentuh disk, beralih ke plan mode. Claude membaca file dan mengusulkan rencana tetapi tidak membuat edit sampai Anda menyetujui.
481
482```bash theme={null}
483claude --permission-mode plan
484```
485
486Anda juga dapat menekan `Shift+Tab` di tengah sesi untuk beralih ke plan mode. Lihat [Plan mode](/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk alur persetujuan dan mengedit rencana di editor teks Anda.
487
488## Delegasikan penelitian ke subagents
489
490Menjelajahi basis kode besar mengisi konteks Anda dengan pembacaan file. Delegasikan eksplorasi sehingga hanya temuan yang kembali.
491
492```text theme={null}
493use a subagent to investigate how our auth system handles token refresh
494```
495
496Subagent membaca file dalam jendela konteksnya sendiri dan melaporkan ringkasan. Lihat [Subagents](/id/sub-agents) untuk mendefinisikan agen kustom dengan alat dan prompt mereka sendiri.
497
498## Pipe Claude ke dalam skrip
499
500Jalankan Claude secara non-interaktif untuk CI, pre-commit hooks, atau pemrosesan batch. Stdin dan stdout bekerja seperti alat Unix apa pun.
501
502```bash theme={null}
503git log --oneline -20 | claude -p "summarize these recent commits"
504```
505
506Lihat [Non-interactive mode](/id/headless) untuk format output, flag izin, dan pola fan-out.
507
1012## Langkah berikutnya508## Langkah berikutnya
1013 509
1014<CardGroup cols={2}>510<CardGroup cols={2}>
1016 Pola untuk mendapatkan hasil maksimal dari Claude Code512 Pola untuk mendapatkan hasil maksimal dari Claude Code
1017 </Card>513 </Card>
1018 514
1019 <Card title="Cara Claude Code bekerja" icon="gear" href="/id/how-claude-code-works">515 <Card title="Kelola sesi" icon="rotate-left" href="/id/sessions">
1020 Pahami loop agentic dan manajemen konteks516 Lanjutkan, beri nama, dan cabang percakapan
1021 </Card>517 </Card>
1022 518
1023 <Card title="Perluas Claude Code" icon="puzzle-piece" href="/id/features-overview">519 <Card title="Worktrees" icon="code-branch" href="/id/worktrees">
1024 Tambahkan skills, hooks, MCP, subagents, dan plugins520 Jalankan sesi paralel terisolasi
1025 </Card>521 </Card>
1026 522
1027 <Card title="Implementasi referensi" icon="code" href="https://github.com/anthropics/claude-code/tree/main/.devcontainer">523 <Card title="Perluas Claude Code" icon="puzzle-piece" href="/id/features-overview">
1028 Clone implementasi referensi container pengembangan kami524 Tambahkan skills, hooks, MCP, subagents, dan plugins
1029 </Card>525 </Card>
1030</CardGroup>526</CardGroup>