Pola Perintah Header-Isi-Footer
Gunakan struktur perintah yang konsisten dan dapat diperluas untuk perintah kompleks dengan banyak tugas.
Pola Perintah Header-Isi-Footer adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.
Perintah sebagai Dokumen
Dokumen panjang — laporan, artikel, surel — menggunakan struktur Header/Body/Footer karena mudah dinavigasi secara kognitif. Pembaca tahu apa yang diharapkan di setiap bagian.
Prinsip yang sama berlaku untuk perintah. Ketika perintah berkembang melampaui beberapa kalimat, struktur Header/Body/Footer membuatnya mudah dipindai, dipelihara, dan konsisten.
Pola ini berfungsi di berbagai model dan dapat digunakan mulai dari perintah sederhana hingga yang sangat kompleks.
Bagian Header
Header menjawab dua pertanyaan: Siapa Anda? dan Apa tugasnya?
Bagian ini menetapkan identitas model (persona atau peran) dan menyatakan tujuan utama perintah. Semua hal lainnya dibangun di atas dasar ini.
Header yang kuat bersifat ringkas — biasanya 2–4 kalimat. Header tidak memuat contoh, batasan, atau aturan keluaran.
header = '''
<header>
You are an expert technical writer specializing in API documentation.
Your task is to write clear, developer-friendly documentation
for the API endpoint described in the body of this prompt.
</header>
'''
print(header)Bagian Body
Body berisi konten atau konteks yang diperlukan model untuk menjalankan tugas. Inilah zona data utama:
- Dokumen sumber yang akan diproses
- Riwayat percakapan
- Data terstruktur (cuplikan JSON, CSV)
- Bahan referensi
- Masukan aktual dari pengguna
Body adalah bagian terbesar dan paling sering disisipkan secara dinamis saat runtime.
def build_body(endpoint_spec):
return f'''
<body>
<endpoint_specification>
{endpoint_spec}
</endpoint_specification>
</body>
'''
spec = 'POST /api/v2/users\nRequest body: {email: string, role: admin|user}\nReturns: {id: string, created_at: ISO8601}'
print(build_body(spec))Bagian Footer
Footer berisi instruksi format dan skema keluaran. Bagian ini ditempatkan terakhir karena:
- Model membaca dari atas ke bawah dan menerapkan aturan format pada hal yang baru saja diproses
- Instruksi format yang dekat dengan bagian akhir lebih kecil kemungkinannya untuk diabaikan
- Footer sering dapat digunakan kembali di berbagai perintah dengan jenis keluaran yang sama
Footer harus eksplisit: Kembalikan objek JSON dengan bidang-bidang ini, bukan formatlah dengan rapi.
footer = '''
<footer>
Format your response as a JSON object with these fields:
{
"endpoint": "string",
"summary": "string (one sentence)",
"parameters": [{"name": "string", "type": "string", "required": true|false, "description": "string"}],
"response_example": "string (JSON)",
"error_codes": [{"code": "number", "meaning": "string"}]
}
Do not include any text outside the JSON object.
</footer>
'''
print(footer)Menyusun Pola Lengkap
Menggabungkan Header, Body, dan Footer menjadi fungsi perintah yang lengkap dan dapat digunakan kembali:
def build_api_doc_prompt(endpoint_spec):
header = '<header>\nYou are an expert technical writer. Document the API endpoint in the body.\n</header>'
body = f'<body>\n<endpoint>\n{endpoint_spec}\n</endpoint>\n</body>'
footer = '<footer>\nReturn JSON: {"summary": str, "parameters": [...], "response_example": str}\nNo text outside JSON.\n</footer>'
return '\n\n'.join([header, body, footer])
spec = 'GET /api/products/:id\nReturns product details by ID'
print(build_api_doc_prompt(spec))Mengapa Urutan Ini Berfungsi
Urutan Header/Body/Footer mencerminkan cara model memproses konteks:
- Header terlebih dahulu — menetapkan identitas dan tujuan, mempersiapkan model untuk hal-hal berikutnya
- Body berikutnya — model kini memproses konten melalui sudut pandang peran dan tugas yang telah ditetapkan
- Footer terakhir — instruksi format muncul tepat sebelum model menghasilkan responsnya, sehingga pengaruhnya terhadap struktur keluaran menjadi maksimal
Menempatkan instruksi format di header (bagian pertama) menyebabkan sebagian instruksi tersebut terlupakan ketika model menulis responsnya.
Menskalakan ke Prompt Kompleks
Pola Header/Body/Footer dapat diskalakan secara alami ketika prompt menjadi kompleks:
def build_complex_prompt(persona, task, context_docs, constraints, output_schema):
header = f'<header>\n{persona}\nTask: {task}\n</header>'
docs = '\n'.join(f'<document id="{i+1}">\n{d}\n</document>' for i, d in enumerate(context_docs))
body = f'<body>\n{docs}\n</body>'
constraint_list = '\n'.join(f'- {c}' for c in constraints)
footer = f'<footer>\n<constraints>\n{constraint_list}\n</constraints>\n<output_schema>\n{output_schema}\n</output_schema>\n</footer>'
return '\n\n'.join([header, body, footer])Menggunakan Kembali Templat Footer
Karena footer menentukan struktur output, bagian ini paling mudah digunakan kembali. Templat footer yang umum:
FOOTER_JSON = '<footer>\nReturn a valid JSON object. No text outside JSON. No markdown code fences.\n</footer>'
FOOTER_MARKDOWN = '<footer>\nFormat your response as markdown.\nUse ## for section headers.\nUse bullet points for lists.\nMaximum 500 words.\n</footer>'
FOOTER_STRUCTURED = '<footer>\nRespond using this exact structure:\n1. Summary (1 sentence)\n2. Key Findings (bullet list)\n3. Recommendation (1 paragraph)\n</footer>'
print('Footer templates ready for reuse.')Menyisipkan Konten Dinamis ke dalam Body
Body adalah bagian yang paling sering dibuat secara dinamis saat runtime. Praktik terbaik untuk penyisipan body dinamis:
- Selalu bungkus konten yang disisipkan dalam tag XML bernama
- Bersihkan input pengguna sebelum penyisipan untuk mencegah injeksi prompt
- Potong dokumen yang sangat panjang dan catat pemotongan tersebut di dalam body
- Beri label yang jelas pada setiap bagian yang disisipkan (dokumen_1, kueri_pengguna, riwayat_obrolan)
def safe_inject(user_content, max_chars=3000):
safe = user_content.replace('<', '<').replace('>', '>')
if len(safe) > max_chars:
safe = safe[:max_chars] + '... [TRUNCATED]'
return f'<user_input>\n{safe}\n</user_input>'
raw = 'User provided text here. Could be very long.'
print(safe_inject(raw))Struktur yang Konsisten di Seluruh Basis Kode
Kekuatan sebenarnya dari Header/Body/Footer terlihat ketika seluruh aplikasi Anda menggunakan pola yang sama secara konsisten. Manfaatnya:
- Anggota tim baru dapat langsung memahami prompt apa pun
- Peninjauan prompt dalam peninjauan kode menjadi lebih mudah — peninjau tahu persis di mana harus melihat
- Pengujian otomatis dapat memvalidasi setiap bagian secara terpisah
- Migrasi prompt antarmodel berlangsung mudah — hanya konten yang berubah, bukan strukturnya
Kesalahan Umum dalam Header/Body/Footer
Kesalahan yang mengurangi efektivitas pola ini:
- Instruksi format di header — terlalu jauh dari pembuatan respons; model hanya mengikutinya sebagian
- Deskripsi tugas tersembunyi di dalam body — model dapat menganggapnya sebagai data yang harus diproses, bukan arahan
- Batasan tersebar di beberapa bagian — sulit diaudit dan dapat menimbulkan kontradiksi
- Tidak ada footer — struktur output menjadi tidak dapat diprediksi ketika kompleksitas prompt meningkat
Pemeriksaan Cepat
Di mana instruksi format output harus ditempatkan dalam pola Header/Body/Footer, dan mengapa?
Header/Body/Footer — Inti Pembelajaran
Pola Header/Body/Footer membawa disiplin struktur dokumen ke rekayasa prompt:
- Header: Siapa Anda + tugasnya — menetapkan kerangka untuk semua hal berikutnya
- Body: Konten dan konteks — disisipkan secara dinamis dan dibungkus dalam tag XML semantik
- Footer: Instruksi format dan skema output — ditempatkan di bagian akhir agar pengaruhnya terhadap struktur output maksimal
- Pola ini dapat diskalakan secara alami dari prompt sederhana hingga prompt yang sangat kompleks
- Templat footer dapat digunakan kembali pada prompt dengan jenis output yang sama
- Konsistensi di seluruh basis kode membuat prompt mudah ditinjau, diuji, dan dipelihara
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Perintah Header-Isi-Footer” gratis?
Ya — teks lengkap “Pola Perintah Header-Isi-Footer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pola Perintah Header-Isi-Footer”?
Gunakan struktur perintah yang konsisten dan dapat diperluas untuk perintah kompleks dengan banyak tugas. Kamu berlatih AI Prompt Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Prompt Engineering?
Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pola Perintah Header-Isi-Footer” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Prompt Engineering ini?
Ya. Setiap pelajaran AI Prompt Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menggunakan Tag XML sebagai Pembatas
- Bagian-Bagian Perintah Modular
- Pola Perintah Header-Isi-Footer
- Praktik Terbaik Pengorganisasian Perintah