Memahami Chain-of-Thought (CoT) dalam Prompt Engineering
Pendahuluan
Pernahkah kamu meminta AI untuk menyelesaikan soal matematika atau masalah logika, tapi jawabannya malah salah tanpa penjelasan? Masalah ini sering terjadi ketika kita langsung meminta hasil akhir tanpa memberi ruang bagi model untuk “berpikir” secara bertahap.
Di sinilah Chain-of-Thought (CoT) hadir sebagai salah satu teknik paling efektif dalam prompt engineering. CoT memaksa model bahasa untuk mengurai proses berpikirnya secara eksplisit — langkah demi langkah — sebelum memberikan jawaban akhir. Hasilnya? Akurasi meningkat drastis, terutama untuk tugas-tugas yang membutuhkan penalaran multi-langkah.
Artikel ini membahas cara kerja CoT, kapan menggunakannya, dan bagaimana mengimplementasikannya dalam kode Python yang siap dijalankan.
Apa Itu Chain-of-Thought (CoT)?
Chain-of-Thought adalah teknik prompting di mana model bahasa diminta untuk menuliskan rantai pemikiran (reasoning steps) secara eksplisit sebelum menghasilkan jawaban akhir. Alih-alih langsung menjawab, model “berbicara sendiri” untuk memecah masalah kompleks menjadi bagian-bagian yang lebih kecil.
Teknik ini pertama kali dipopulerkan oleh penelitian Google Brain (2022) dan terbukti meningkatkan performa model secara signifikan pada tugas aritmatika, logika, dan penalaran umum.
Ada dua varian utama CoT:
| Tipe | Deskripsi | Kapan Digunakan |
|---|---|---|
| Zero-shot CoT | Cukup tambahkan frasa “berpikir langkah demi langkah” | Masalah umum, tidak perlu contoh |
| Few-shot CoT | Sertakan beberapa contoh dengan reasoning lengkap | Masalah spesifik domain, akurasi tinggi |
Cara Kerja Chain-of-Thought (CoT)
Tanpa CoT, model bahasa cenderung “melompat” ke jawaban menggunakan pola yang paling sering dilihat saat training — yang sering kali salah untuk soal multi-langkah.
Dengan CoT, model dipaksa mengaktifkan “mode pemikiran berurutan” dan melakukan analisis langkah demi langkah sebelum memberikan jawaban.
Bayangkan kamu melatih seorang asisten baru. Kalau kamu hanya bilang “hitung totalnya”, dia mungkin langsung menebak. Tapi kalau kamu bilang “tuliskan setiap langkah perhitunganmu”, asisten itu akan lebih teliti dan hasilnya jauh lebih akurat.
Implementasi Zero-shot CoT
Zero-shot CoT adalah cara paling sederhana: cukup tambahkan instruksi “berpikir langkah demi langkah” di akhir prompt. Tidak perlu memberikan contoh sama sekali.
Contoh Kode Python
import anthropic
client = anthropic.Anthropic()
def zero_shot_cot(pertanyaan: str) -> str:
"""Mengirim pertanyaan dengan teknik Zero-shot CoT."""
prompt = f"{pertanyaan}\n\nBerpikir langkah demi langkah:"
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": prompt}
]
)
return message.content[0].text
# Contoh penggunaan
pertanyaan = (
"Sebuah toko menjual 3 jenis kue. "
"Kue A harganya Rp15.000, kue B harganya Rp20.000, dan kue C harganya Rp25.000. "
"Budi membeli 2 kue A, 3 kue B, dan 1 kue C. "
"Berapa total yang harus Budi bayar?"
)
jawaban = zero_shot_cot(pertanyaan)
print("=== Zero-shot CoT ===")
print(jawaban)
Output yang diharapkan:
=== Zero-shot CoT ===
Mari kita hitung langkah demi langkah:
1. Harga 2 kue A: Rp15.000 × 2 = Rp30.000
2. Harga 3 kue B: Rp20.000 × 3 = Rp60.000
3. Harga 1 kue C: Rp25.000 × 1 = Rp25.000
Total = Rp30.000 + Rp60.000 + Rp25.000 = Rp115.000
Jadi, Budi harus membayar Rp115.000.
Implementasi Few-shot CoT
Few-shot CoT lebih kuat karena kamu memberikan beberapa contoh lengkap beserta reasoning-nya sebelum pertanyaan sebenarnya. Model akan mengikuti pola yang kamu tunjukkan, sehingga format dan kualitas penalaran menjadi lebih konsisten.
Contoh Kode Python
import anthropic
client = anthropic.Anthropic()
# Contoh-contoh (shots) dengan reasoning lengkap
CONTOH_FEW_SHOT = """
Contoh 1:
Q: Rina memiliki 24 permen. Ia membagikannya kepada 4 temannya secara merata,
lalu membeli 6 permen lagi. Berapa permen yang Rina miliki sekarang?
A: Mari berpikir langkah demi langkah.
- Rina membagikan 24 permen kepada 4 teman: 24 ÷ 4 = 6 permen per teman.
- Rina sudah memberikan semua permennya: sisa = 0 permen.
- Rina membeli 6 permen lagi: 0 + 6 = 6 permen.
Jawaban: Rina memiliki 6 permen.
Contoh 2:
Q: Sebuah kolam renang berisi 500 liter air. Setiap jam, 30 liter air menguap,
tetapi 10 liter air ditambahkan. Berapa liter air tersisa setelah 5 jam?
A: Mari berpikir langkah demi langkah.
- Perubahan air per jam: 10 - 30 = -20 liter (berkurang 20 liter per jam).
- Setelah 5 jam: 500 + (5 × -20) = 500 - 100 = 400 liter.
Jawaban: Tersisa 400 liter air setelah 5 jam.
"""
def few_shot_cot(pertanyaan: str) -> str:
"""Mengirim pertanyaan dengan teknik Few-shot CoT."""
prompt = (
f"{CONTOH_FEW_SHOT}\n"
f"Q: {pertanyaan}\n"
f"A: Mari berpikir langkah demi langkah."
)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": prompt}
]
)
return message.content[0].text
# Contoh penggunaan
pertanyaan = (
"Sebuah kendaraan bergerak dengan kecepatan 60 km/jam selama 2 jam, "
"lalu berhenti 30 menit, kemudian melanjutkan perjalanan 80 km/jam selama 1,5 jam. "
"Berapa total jarak yang ditempuh?"
)
jawaban = few_shot_cot(pertanyaan)
print("=== Few-shot CoT ===")
print(jawaban)
Output yang diharapkan:
=== Few-shot CoT ===
- Perjalanan pertama: 60 km/jam × 2 jam = 120 km.
- Saat berhenti: kendaraan diam, jarak tambahan = 0 km.
- Perjalanan kedua: 80 km/jam × 1,5 jam = 120 km.
- Total jarak: 120 + 0 + 120 = 240 km.
Jawaban: Total jarak yang ditempuh adalah 240 km.
Kapan Menggunakan Zero-shot vs Few-shot CoT?
| Situasi | Rekomendasi |
|---|---|
| Pertanyaan matematika atau logika umum | Zero-shot CoT |
| Domain spesifik (hukum, medis, keuangan) | Few-shot CoT |
| Prototyping cepat | Zero-shot CoT |
| Produksi dengan akurasi tinggi | Few-shot CoT |
| Format output harus konsisten | Few-shot CoT |
| Token konteks terbatas | Zero-shot CoT |
Seperti seorang dokter yang menjelaskan diagnosis — kalau pasiennya awam, penjelasan umum sudah cukup (zero-shot). Tapi kalau pasiennya sesama dokter spesialis, kamu perlu menunjukkan contoh kasus klinis terlebih dahulu (few-shot) agar penjelasannya relevan dan tepat sasaran.
Tips Praktis
- Gunakan instruksi eksplisit — Frasa seperti “jelaskan langkah-langkahmu”, “pikirkan step by step”, atau “uraikan proses berpikirmu” semuanya efektif.
- Buat contoh yang representatif — Pada few-shot CoT, pastikan contoh mencerminkan tipe soal yang akan diajukan dalam produksi.
- Jangan terlalu banyak contoh — 2–4 contoh sudah cukup. Terlalu banyak justru membebani konteks model.
- Validasi reasoning, bukan hanya jawaban — Periksa apakah langkah berpikirnya masuk akal, bukan hanya apakah hasil akhirnya benar.
Pertanyaan yang Sering Diajukan
Apakah Chain-of-Thought hanya efektif untuk soal matematika?
Tidak. CoT efektif untuk berbagai tugas yang membutuhkan penalaran multi-langkah, termasuk analisis logika, debugging kode, pengambilan keputusan bisnis, hingga perencanaan proyek. Intinya, CoT berguna setiap kali jawabannya bergantung pada serangkaian langkah yang berurutan dan tidak bisa dijawab secara instan.
Apakah Zero-shot CoT selalu lebih lemah dari Few-shot CoT?
Tidak selalu. Untuk pertanyaan umum atau ketika model sudah sangat familiar dengan domain tersebut, zero-shot CoT sering memberikan hasil yang setara. Few-shot CoT baru menunjukkan keunggulan signifikan ketika kamu membutuhkan format output yang konsisten atau bekerja di domain yang sangat spesifik dan teknis.
Berapa banyak contoh yang ideal untuk Few-shot CoT?
Penelitian menunjukkan bahwa 2–8 contoh sudah cukup untuk sebagian besar kasus. Mulailah dengan 2–3 contoh, lalu tambahkan jika akurasi masih kurang memuaskan. Terlalu banyak contoh bisa menghabiskan token konteks secara tidak efisien dan justru membingungkan model.
Apakah CoT meningkatkan biaya API?
Ya, sedikit. Karena CoT menghasilkan lebih banyak token (reasoning steps dituliskan secara eksplisit), penggunaan token meningkat dibandingkan prompt biasa. Namun, peningkatan akurasi yang didapat biasanya jauh lebih berharga daripada biaya tambahan tersebut, terutama untuk aplikasi yang membutuhkan keandalan tinggi.
Kesimpulan
Chain-of-Thought adalah teknik sederhana namun sangat ampuh untuk meningkatkan kualitas penalaran model bahasa. Dengan hanya menambahkan instruksi “berpikir langkah demi langkah” (zero-shot) atau memberikan contoh reasoning yang lengkap (few-shot), kamu bisa meningkatkan akurasi model secara drastis pada tugas-tugas kompleks.
Pilih zero-shot CoT untuk prototyping cepat dan pertanyaan umum, lalu beralih ke few-shot CoT saat membutuhkan konsistensi format dan akurasi tinggi di domain spesifik.