Home Blog Series C C01
Series C: Prompt / Context / Harness / Loop Engineering · C01 AI & Agentic Systems 13 Oktober 2025 9 min read

System Prompt yang Benar-Benar Bekerja di Production

Anatomy system prompt yang efektif: persona, instruksi, constraint, dan format output — plus nuansa Bahasa Indonesia yang sering dilewatkan.

RM
Ryan Muliadi
Digital Systems Architect · Ryzen Digital Systems

System prompt yang paling sering dipakai developer pemula: "You are a helpful assistant." Ini seperti briefing karyawan baru dengan "be helpful." — tidak actionable, dan hasilnya tidak predictable.

System prompt yang baik adalah yang membuat output LLM menjadi lebih consistent, lebih sesuai use case, dan lebih mudah di-test. Ini anatomy-nya.

Anatomy System Prompt yang Efektif

Empat Komponen System Prompt
Persona (siapa LLM ini) + Konteks (situasi dan background) + Instruksi (apa yang harus dilakukan) + Constraint (apa yang tidak boleh dilakukan) + Format output.
Template · Anatomy System Prompt
## PERSONA
Anda adalah [nama/role yang spesifik] untuk [nama perusahaan/produk].
[Satu kalimat tentang expertise dan tone komunikasi.]

## KONTEKS
[Background yang perlu diketahui LLM tentang situasi, user, dan tujuan sistem.]

## TUGAS
Tugas utama Anda:
1. [Tugas spesifik 1]
2. [Tugas spesifik 2]
3. [Tugas spesifik 3]

## ATURAN (WAJIB DIIKUTI)
- [Constraint 1 — formulasikan positif: "selalu X" lebih baik dari "jangan tidak X"]
- [Constraint 2]
- Jika [kondisi edge case], maka [apa yang harus dilakukan].

## FORMAT OUTPUT
Selalu jawab dalam format berikut:
[Contoh format yang diinginkan — JSON, markdown, plain text, dll]

## CONTOH (FEW-SHOT)
User: [contoh input]
Assistant: [contoh output yang ideal]

Persona vs Instruksi — Bukan Hal yang Sama

Kesalahan umum: mengira "role" dan "instruction" itu sama. Sebenarnya:

AspekPersonaInstruksi
Apa ituSiapa LLM ini — karakter, expertise, toneApa yang harus LLM lakukan — step by step
Contoh"Anda adalah customer support specialist yang empati dan professional""Langkah 1: Konfirmasi masalah user. Langkah 2: Cek knowledge base..."
Pengaruh pada outputTone, cara bertutur, level formalityStruktur respons, urutan langkah, kelengkapan
Bisa diujiSulit diukur objektifBisa di-test dengan checklist

Nuansa Bahasa Indonesia dalam System Prompt

System prompt dalam Bahasa Indonesia untuk LLM yang dilatih mayoritas data Inggris punya quirk tersendiri. Beberapa yang saya pelajari dari trial and error:

01
Campur bahasa untuk output yang lebih natural
System prompt dalam bahasa Inggris, tapi instruksikan output dalam Bahasa Indonesia. LLM cenderung menghasilkan Bahasa Indonesia yang lebih natural jika "thinking" dilakukan dalam Inggris. Sebaliknya, system prompt full Indonesia kadang menghasilkan terjemahan kaku.
02
Spesifikasikan register bahasa
Bahasa Indonesia punya tingkatan formalitas yang berbeda: formal (untuk surat resmi), semi-formal (B2B), santai (consumer app), dan gaul (Gen-Z). Tanpa spesifikasi, LLM default ke formal yang kadang terasa kaku untuk chatbot consumer.
03
Hindari ambigu kata ganti
"Anda" vs "kamu" vs "Bapak/Ibu" punya nuansa yang sangat berbeda. Tentukan secara eksplisit: "Gunakan 'Bapak/Ibu' untuk user yang berusia di atas 40 tahun berdasarkan konteks percakapan. Gunakan 'Anda' untuk semua kasus lainnya."

Few-Shot Design — Kualitas, Bukan Kuantitas

Few-shot examples adalah cara paling efektif untuk menunjukkan output yang diinginkan. Tapi kualitas jauh lebih penting dari kuantitas — 3 contoh yang tepat lebih baik dari 10 contoh yang mediocre.

System Prompt · Few-shot untuk Triage Keluhan
You are a complaint triage system for PT JRP, a property management company.
Analyze incoming complaints and categorize them. Always respond in Bahasa Indonesia.

Output format (JSON only, no explanation):
{
  "category": "atap|dinding|listrik|plumbing|lainnya",
  "priority": "HIGH|MEDIUM|LOW",
  "needs_more_info": true|false,
  "response": "respons untuk customer dalam Bahasa Indonesia yang empati"
}

Priority rules:
- HIGH: keamanan terancam, tidak bisa tinggal, air bocor masif
- MEDIUM: mengganggu kenyamanan signifikan
- LOW: kosmetik, tidak mendesak

Examples:

User: "Atap kamar saya bocor sangat parah saat hujan, air masuk ke kasur"
Assistant: {"category":"atap","priority":"HIGH","needs_more_info":false,"response":"Bapak/Ibu, kami mohon maaf atas ketidaknyamanan ini. Tim teknisi kami akan segera menghubungi Bapak/Ibu dalam 2 jam untuk penanganan darurat."}

User: "Ada yang aneh di kamar saya"
Assistant: {"category":"lainnya","priority":"LOW","needs_more_info":true,"response":"Halo, terima kasih sudah menghubungi kami. Boleh Bapak/Ibu ceritakan lebih detail apa yang terasa aneh? Apakah ada gambar yang bisa dibagikan?"}

User: "Lampu mati semua, MCB sudah direset tapi tidak menyala"
Assistant: {"category":"listrik","priority":"HIGH","needs_more_info":false,"response":"Ini adalah situasi yang perlu penanganan segera. Tim elektrikal kami akan tiba dalam 3 jam. Sementara itu, mohon jangan mencoba memperbaiki panel listrik sendiri demi keselamatan."}

Cara Test System Prompt Sebelum Deploy

01
Buat edge case test set
Minimal 20 kasus: 10 kasus normal, 5 edge case (input ambigu, bahasa campuran, pertanyaan di luar scope), 5 adversarial (user mencoba bypass constraint atau meminta hal yang tidak seharusnya).
02
Test dengan model yang berbeda
Prompt yang bekerja di Claude belum tentu menghasilkan output yang sama di GPT-4o. Kalau plan-nya adalah bisa swap model di masa depan, test dari awal dengan dua model berbeda.
03
Ukur consistency, bukan hanya correctness
Jalankan test case yang sama 5–10 kali. Kalau output berbeda-beda signifikan untuk input yang sama, ada sesuatu dalam prompt yang perlu lebih spesifik. Consistency adalah tanda prompt yang mature.

System prompt yang baik adalah yang bisa dipahami oleh kolega Anda yang baru, bukan hanya oleh LLM. Kalau Anda sendiri tidak yakin apa yang dimaksud oleh kalimat tertentu, LLM juga tidak akan yakin.

Kesimpulan

System prompt yang efektif adalah combinasi dari persona yang jelas, instruksi yang spesifik dan terurut, constraint yang dirumuskan secara positif, dan few-shot examples yang berkualitas. Untuk konten Indonesia, tentukan register bahasa dan kata ganti secara eksplisit.