Bab 6: Chain of Thought (CoT)¶
"Mari kita pikirkan langkah demi langkah." — 7 kata yang bikin AI mendadak jago di matematika dan reasoning.
Selamat datang di Bagian 2 — Teknik Lanjutan. Sampai Bab 5, kita pelajari cara bertanya yang baik. Mulai Bab 6, kita pelajari cara mengarahkan cara berpikir AI.
Setelah Bab 6, kamu akan bisa:
- Memahami kenapa LLM gagal di reasoning task
- Pakai Chain of Thought (CoT) untuk problem matematika & logika
- Membedakan zero-shot CoT vs few-shot CoT
- Tahu kapan CoT membantu vs kapan tidak
6.1. Masalah: LLM Lemah di Reasoning¶
Tanya LLM math sederhana:
Roger punya 5 bola tenis. Dia beli 2 kaleng bola tenis,
masing-masing kaleng isi 3 bola. Berapa total bola tenis Roger sekarang?
LLM bisa salah — terutama model lebih kecil. Output kadang langsung "11" (benar) atau "13" (salah).
Kenapa? Ingat Bab 1 — LLM adalah prediktor kata. Saat kamu tanya math, dia tidak benar-benar "menghitung". Dia memprediksi kata yang paling probable muncul setelah pertanyaan itu di teks training.
Kalau di training data kebanyakan "5 + 6 = 11", dia jawab 11. Kalau ambigu, dia tebak.
6.2. Solusi: Force Step-by-Step Thinking¶
Trick simpel yang revolusioner: tambahkan kalimat "Mari kita pikirkan langkah demi langkah" ke prompt.
Roger punya 5 bola tenis. Dia beli 2 kaleng bola tenis,
masing-masing kaleng isi 3 bola. Berapa total bola tenis Roger sekarang?
Mari kita pikirkan langkah demi langkah.
Output sekarang:
Langkah 1: Roger awalnya punya 5 bola tenis.
Langkah 2: Dia beli 2 kaleng, masing-masing 3 bola.
Langkah 3: Total bola dari kaleng = 2 × 3 = 6 bola.
Langkah 4: Total bola sekarang = 5 + 6 = 11 bola.
Jawaban: 11 bola tenis.
Akurasi naik drastis — dari research, akurasi math problem bisa naik dari 18% jadi 79% dengan CoT (di model GPT-3 era 2022).
6.3. Kenapa CoT Bekerja?¶
flowchart TB
subgraph Direct["Tanpa CoT (langsung jawab)"]
D1["Pertanyaan kompleks"]
D2["🧠 LLM<br/>tebak jawaban<br/>langsung"]
D3["Output:<br/>angka, sering salah"]
D1 --> D2 --> D3
end
subgraph CoT_["Dengan CoT (think step-by-step)"]
C1["Pertanyaan kompleks"]
C2["🧠 LLM<br/>uraikan langkah"]
C3["Step 1: ...<br/>Step 2: ...<br/>Step 3: ..."]
C4["Output final:<br/>jawaban benar"]
C1 --> C2 --> C3 --> C4
end
style Direct fill:#141414,stroke:#ef4444,color:#a1a1a1
style CoT_ fill:#141414,stroke:#10b981,color:#a1a1a1
style D1 fill:#1a1a1a,stroke:#6e6e6e,color:#a1a1a1
style D2 fill:#1a1a1a,stroke:#6e6e6e,color:#a1a1a1
style D3 fill:#1a1a1a,stroke:#ef4444,color:#fafafa
style C1 fill:#1a1a1a,stroke:#6366f1,color:#fafafa
style C2 fill:#1a1a1a,stroke:#f59e0b,color:#fafafa
style C3 fill:#1a1a1a,stroke:#ec4899,color:#fafafa
style C4 fill:#1a1a1a,stroke:#10b981,color:#fafafa
Cara baca diagram
Diagram ini menjelaskan kenapa CoT bekerja dari sudut pandang mekanisme LLM.
Tanpa CoT (atas, merah):
LLM dapat pertanyaan, tebak jawaban langsung dari pola yang dia pelajari. Untuk pertanyaan yang mirip dengan banyak data training, ini OK. Tapi untuk problem unik atau kompleks, dia menebak — sering salah.
Dengan CoT (bawah, hijau):
LLM diminta uraikan proses berpikir step-by-step. Tiap step adalah text yang conditioning step berikutnya. Jadi:
- Step 1 dia tulis fakta yang jelas dari soal
- Step 2 dia tulis operasi yang jelas dari step 1
- Step 3 dia tulis kombinasi step 1+2
- ...sampai jawaban final
Insight kunci: tiap step adalah token tambahan yang LLM "lihat" sebelum dia generate token berikutnya. Lebih banyak konteks intermediate = lebih akurat token akhir.
Analogi manusia: kalau kamu disuruh hitung 847 × 23 di kepala langsung, kemungkinan salah. Tapi kalau kamu tulis di kertas step-by-step, akurasi jauh naik. CoT adalah versi LLM-nya.
Tidak semua task untung: untuk tanya fakta sederhana (ibu kota negara, dll), CoT cuma tambah token tanpa benefit. Reserve CoT untuk task yang benar-benar butuh reasoning.
6.4. Zero-Shot CoT¶
Cara paling simpel: tambahkan trigger phrase di akhir prompt.
Atau dalam bahasa Inggris (yang lebih reliable karena training data lebih banyak):
Variasi yang bekerja:
- "Mari kita uraikan langkah demi langkah."
- "Pikirkan dengan teliti dan jelaskan reasoning-mu."
- "Sebelum kasih jawaban, jelaskan logika di baliknya."
Eksperimen — phrase berbeda kasih hasil sedikit berbeda di model berbeda.
6.5. Few-Shot CoT — Lebih Kuat¶
Kombinasi few-shot + CoT = power tool.
Q: Tomi pinjam 5 buku dari perpustakaan. Setelah seminggu,
dia balikin 2 buku dan pinjam 3 lagi. Berapa buku yang dia pegang?
Reasoning:
- Awal: 5 buku
- Balikin 2: 5 - 2 = 3 buku
- Pinjam 3: 3 + 3 = 6 buku
Jawaban: 6 buku
Q: Sari beli 4 kotak donut, masing-masing 6 donut. Dia kasih ke 3 teman,
masing-masing 5 donut. Berapa donut yang sisa untuk Sari?
Reasoning:
- Total donut: 4 × 6 = 24 donut
- Diberi ke teman: 3 × 5 = 15 donut
- Sisa: 24 - 15 = 9 donut
Jawaban: 9 donut
Q: {{ pertanyaan_baru }}
Reasoning:
LLM ngikut pola reasoning yang ditunjukkan, lalu jawab pertanyaan baru dengan format yang sama.
6.6. Kapan Pakai CoT?¶
✓ Bagus untuk CoT¶
- Math problems (aritmatika, word problem)
- Logic puzzles
- Multi-step planning
- Code debugging ("ini kode salah, jelaskan kenapa")
- Strategic decisions ("opsi A vs B, mana lebih baik?")
- Causal reasoning ("kenapa X terjadi?")
✗ Tidak Perlu CoT¶
- Factual recall (ibu kota Indonesia, definisi)
- Translation
- Simple classification
- Style/tone tasks (penulisan kreatif)
- Yes/no questions dengan jawaban langsung
Untuk task tanpa reasoning, CoT cuma tambah token — output lebih panjang, tidak lebih akurat.
6.7. CoT untuk Decision-Making¶
CoT bagus untuk business decisions:
[KONTEKS]
Saya owner kafe di Jakarta. Lagi mau ekspansi ke kota lain.
3 opsi:
1. Bandung: traffic mahasiswa, kompetisi ketinggian
2. Surabaya: market besar, pricing customer beda
3. Yogya: budget rendah, market lebih kecil
Saya punya budget ekspansi Rp 500jt.
[TASK]
Mana opsi terbaik? Pikirkan langkah demi langkah:
1. Analisis pro-cons tiap kota
2. Faktor budget — mana yang fit
3. Risiko vs reward
4. Kesimpulan dengan rekomendasi
Output: analisis terstruktur dengan reasoning yang bisa kamu evaluate.
6.8. CoT + Self-Reflection¶
Trick advanced: minta CoT, lalu minta review reasoning sendiri.
[PERTANYAAN]
Pikirkan step-by-step. Setelah kasih jawaban, **review apakah ada step yang salah atau bisa diperbaiki**.
Output:
Reasoning:
Step 1: ...
Step 2: ...
Jawaban: X
Review: Setelah dipikir lagi, di step 2 saya tidak pertimbangkan [Y].
Jawaban yang lebih akurat: Z.
Jawaban final: Z
Self-correction ini tambahan akurasi tanpa kamu harus prompt ulang.
6.9. Common Mistakes¶
❌ Pakai CoT untuk Task Sederhana¶
Cuma boros token. Untuk fakta langsung, jawab langsung.
❌ Trigger Phrase di Awal, Bukan Akhir¶
Trigger phrase paling efektif di akhir prompt — jadi kalimat terakhir sebelum LLM generate output.
❌ Tidak Verifikasi Output¶
CoT tidak menjamin benar. Reasoning yang kelihatan logical bisa salah di salah satu step. Always verify untuk task kritis (math, financial, medical, legal).
❌ Pakai CoT tapi Tidak Baca Reasoning¶
CoT memperlihatkan kerja AI. Kalau kamu cuma baca jawaban final, kehilangan benefit utamanya: debugging logic.
6.10. Project: Reasoning Tutor¶
Bikin AI yang ngajarin matematika dengan CoT untuk siswa.
[ROLE]
Kamu adalah tutor matematika untuk siswa SMP yang sabar.
[PEDAGOGI]
Untuk setiap soal:
1. Pertama, **jelaskan apa yang ditanyakan** dengan kata sederhana
2. Identifikasi **informasi yang relevan** dari soal
3. Pilih **strategi/rumus** yang dipakai
4. Hitung **step-by-step**, tunjukkan setiap operasi
5. **Verifikasi** dengan estimasi atau cara alternatif
6. Kasih **jawaban final** dengan unit yang jelas
[FORMAT]
Pakai numbered list untuk tiap step.
Setiap step kasih 1 kalimat penjelasan.
[SOAL]
{{ soal_dari_siswa }}
Pakai untuk anak/adik yang lagi belajar matematika — AI menjelaskan dengan reasoning yang clear, bukan cuma kasih jawaban.
6.11. Latihan¶
6.1 — Math Problem¶
Tanya AI 5 word problem matematika SMP. Coba tanpa CoT, lalu dengan CoT. Bandingkan akurasi.
6.2 — Logic Puzzle¶
Cari logic puzzle online (Einstein's riddle, dll). Solve dengan CoT.
6.3 — Business Decision¶
Pakai pattern decision-making di section 6.7 untuk decision di hidup kamu (job offer, beli rumah/mobil, dll).
6.4 — Few-Shot CoT¶
Bikin prompt few-shot CoT untuk task spesifik di pekerjaan kamu (misalnya: prioritize bug list, evaluate vendor).
6.5 — Tantangan: CoT Verifikasi¶
Bikin prompt yang minta CoT + self-review + alternative reasoning. Test di problem yang punya jawaban known. Apakah self-review ngecek error dengan benar?
Trigger Phrase¶
- "Mari kita pikirkan langkah demi langkah."
- "Let's think step by step." (lebih reliable)
- "Pikirkan dengan teliti, jelaskan reasoning-mu."
Lokasi Trigger¶
Akhir prompt, sebagai kalimat terakhir sebelum output.
Kapan Pakai CoT¶
✓ Math, logic, multi-step ✓ Decision-making ✓ Code debugging ✓ Causal reasoning
Kapan Skip¶
✗ Factual recall ✗ Translation ✗ Simple classification ✗ Creative writing
Few-Shot CoT Pattern¶
Q: [contoh question]
Reasoning:
- step 1
- step 2
Jawaban: [hasil]
Q: [contoh question 2]
Reasoning:
- step 1
- step 2
Jawaban: [hasil]
Q: {{ baru }}
Reasoning:
Self-Review CoT¶
"Setelah jawab, review reasoning-mu — ada step yang salah?"