Menu

Prompt Engineering: Apa Itu dan Cara Mempelajarinya

Prompt engineering adalah praktik menulis dan menguji instruksi yang kamu berikan ke model AI supaya model menghasilkan output yang kamu butuhkan. Panduan ini menjelaskan kenapa cara ini berhasil dan memetakan setiap teknik intinya.

Setiap prompt di bawah bisa diedit: ubah, lalu buka di ChatGPT, Claude, atau aplikasi AI lain.

Prompt engineering adalah praktik menulis, menguji, dan menyempurnakan instruksi yang kamu berikan ke model AI supaya model menghasilkan output yang kamu butuhkan secara konsisten. Ini mencakup apa yang kamu masukkan ke prompt (tugas, konteks, contoh, input) dan bagaimana kamu menyusunnya (urutan, format, pemisah). Istilahnya terdengar teknis, tapi sebagian besar isinya adalah menulis dengan cermat ditambah memeriksa hasilnya.

Halaman ini adalah daftar isi panduan prompt engineering dari Coddy. Halaman ini menjelaskan kenapa praktik ini berhasil, memetakan teknik-teknik inti ke halaman yang mengajarkannya, dan menunjukkan perbedaan antara prompt asal-asalan dan prompt yang dirancang.

Kenapa prompt engineering berhasil

Model bahasa menghasilkan teks dengan memprediksi apa yang muncul berikutnya, sepotong kecil demi sepotong, berdasarkan semua yang ada di depannya. Model tidak punya akses ke niatmu, proyekmu, atau chat-chat sebelumnya kecuali teks itu ada di inputnya. Jadi prompt bukanlah permintaan kepada pikiran yang sudah memahamimu; prompt adalah seluruh situasi yang direspons oleh model.

Itu punya akibat langsung. Setiap pertanyaan yang dibiarkan terbuka oleh prompt cenderung dijawab model dengan pilihan yang paling umum: bahasa yang paling umum, panjang yang paling umum, pembaca yang paling umum. Kadang pilihan umum itu memang yang kamu mau. Kalau tidak, solusinya adalah menutup pertanyaan itu di dalam prompt. Prompt yang bagus mempersempit kemungkinan balasan sampai sebagian besar yang tersisa memang berguna.

Ada dua fakta lagi yang membentuk keterampilan ini. Balasan diambil secara acak (sampling), jadi prompt yang sama bisa menghasilkan jawaban berbeda di percobaan yang berbeda; prompt hanya bisa disebut bagus kalau berhasil di sebagian besar percobaan, bukan sekali saja. Selain itu, model menganggap semua teks di prompt berpotensi bermakna, jadi email yang ditempel atau kalimat nyasar bisa terbaca sebagai instruksi kalau kamu tidak menandainya dengan jelas sebagai materi.

Prompt asal-asalan dan prompt yang dirancang

Kedua tab meminta hal yang sama: memilah ulasan pelanggan menjadi positif dan negatif. Bandingkan apa yang didapat masing-masing.

Ulasan-ulasan ini positif atau negatif? 1. Aplikasinya cepat tapi hari ini aku dua kali ter-logout. 2. Persis yang aku butuhkan untuk mencatat lariku. 3. Tim dukungan tidak pernah membalas email-ku.
Try it
Example replyReplies vary between models and runs.

Berikut rinciannya:

  1. Campuran. Pengguna suka kecepatannya tapi kesal karena ter-logout.
  2. Positif. Aplikasi ini memenuhi kebutuhannya untuk mencatat lari.
  3. Negatif. Pengguna kecewa karena tim dukungan tidak merespons.

Secara keseluruhan, masukannya campuran: satu ulasan positif, satu negatif, dan satu campuran.

Balasan untuk prompt asal-asalan adalah jawaban yang masuk akal untuk dibaca manusia, tapi tidak bisa dipakai oleh program: labelnya bercampur dengan penjelasan, muncul kategori ketiga yang tidak ditawarkan pertanyaannya, dan ada ringkasan tambahan di akhir. Prompt yang dirancang mendefinisikan setiap label, menetapkan bentuk output dengan contoh, dan membungkus ulasan dengan tag supaya tidak mudah tertukar dengan instruksi. Kalau dijalankan pada seribu ulasan, prompt ini memberikan output yang jauh lebih konsisten untuk diproses program, dan kalau kamu butuh jaminan, fitur structured output di API dan langkah validasi di kodemu menutup sisa celahnya.

Teknik-teknik inti

Setiap teknik di bawah menutup jenis celah yang berbeda antara apa yang kamu maksud dan apa yang diterima model. Kebanyakan prompt nyata menggabungkan beberapa teknik.

TeknikApa yang dilakukanPakai saat
Zero-shot promptingMemberikan instruksi tanpa contohTugasnya umum dan dijelaskan dengan jelas
Few-shot promptingMenunjukkan beberapa contoh input dan outputFormat atau penilaiannya lebih mudah ditunjukkan daripada dijelaskan
Chain-of-thought promptingMeminta penalaran sebelum jawabanMasalahnya punya beberapa langkah, seperti matematika atau logika
Role promptingMenentukan suara dan standar siapa yang dipakaiPembaca dan tingkat pemahamannya penting
Output terstrukturMenetapkan jawaban dalam JSON, tabel, atau templateHasilnya dibaca oleh program atau spreadsheet
Delimiter dan tag XMLMemisahkan instruksi dari materi yang ditempelPrompt berisi dokumen, kode, atau teks dari pengguna
Template promptMengubah prompt yang bagus menjadi prompt dengan bagian kosongKamu mengulang jenis permintaan yang sama
Prompt chainingMemecah pekerjaan menjadi langkah-langkah yang saling menyuplaiSatu prompt mencoba melakukan terlalu banyak hal
Self-consistencyMengambil beberapa jawaban lalu memilih suara terbanyakSatu jalur penalaran saja tidak bisa diandalkan
Tree of thoughtMenjelajahi dan menilai beberapa jalur penalaranMasalahnya butuh perencanaan atau pencarian
ReActBergantian antara penalaran dan pemanggilan toolModel harus mencari informasi atau mengambil tindakan
Meta promptingMeminta model menulis atau memperbaiki promptKamu buntu soal cara merumuskan prompt
Context engineeringMerancang semua yang dilihat model, bukan hanya instruksinyaKamu membangun aplikasi atau agen di sekitar model

Kalau kamu baru mulai, pelajari dulu bagian-bagian sebuah prompt di cara menulis prompt, lalu few-shot prompting dan output terstruktur. Ketiganya sudah mencakup sebagian besar masalah sehari-hari.

Prompt yang dibuat untuk program

Prompt yang ditulis ke dalam software dijalankan ribuan kali pada input yang belum pernah dilihat siapa pun, jadi isinya lebih rinci daripada pesan chat biasa. Prompt di bawah ini menulis pesan commit dari sebuah diff kode. Matikan beberapa bagiannya untuk melihat apa yang dicegah oleh masing-masing: tanpa contoh, gayanya melenceng, dan tanpa batasan, model bisa memakai tipe yang tidak dipakai timmu, seperti perf atau style.

Pesan commit dari diff
Fill in
Parts
Kamu menulis pesan commit git untuk tim yang mengikuti format Conventional Commits.
Tulis pesan commit untuk diff di bawah ini.
feat(cart): tambahkan pemilih jumlah ke item keranjang fix(api): kembalikan 404, bukan 500, jika id tidak dikenal
Baris pertama: tipe(scope): ringkasan, maksimal 60 karakter, dalam bentuk kalimat perintah. Lalu satu baris kosong dan maksimal tiga poin yang menjelaskan alasan perubahannya.
Pakai hanya tipe-tipe ini: feat, fix, refactor, docs, test, chore. Kalau diff-nya mencampur perubahan yang tidak berkaitan, katakan itu alih-alih menulis pesan.
function validatePassword(password) { - if (password.length > 8) { + if (password.length >= 8) { return null; } return 'Password must be at least 8 characters'; }
Try it
Example replyReplies vary between models and runs.
fix(auth): terima password yang panjangnya tepat 8 karakter

- Pengecekannya memakai > 8, jadi password 8 karakter ditolak
- Aturannya sekarang sesuai dengan pesan error, yang bilang "at least 8"

Cara belajar prompt engineering

Kamu mempelajarinya dengan menjalankan prompt dan mengamati baik-baik apa yang kembali. Rute yang praktis:

  1. Pelajari bagian-bagian prompt. Tugas, konteks, input, format, dan batasan. Kebanyakan kegagalan berasal dari salah satunya yang tidak ada.
  2. Pilih tugas nyata yang sering kamu ulang, seperti meringkas tiket, menjelaskan error, atau membuat draf email, lalu tulis prompt untuk tugas itu.
  3. Kumpulkan lima sampai sepuluh input uji, termasuk yang aneh: input kosong, input yang sangat panjang, input dalam bahasa lain.
  4. Ubah satu hal dalam satu waktu lalu jalankan ulang semua input. Kalau kamu mengubah tiga hal dan outputnya membaik, kamu tidak akan tahu perubahan mana yang membantu. Iterasi prompt membahas siklus ini secara rinci.
  5. Tambahkan teknik ketika ada kegagalan tertentu yang membutuhkannya. Contoh saat formatnya melenceng, penalaran langkah demi langkah saat jawaban multilangkah salah, delimiter saat teks yang ditempel bocor ke instruksi.

Penyedia model besar juga menerbitkan panduan prompting untuk model mereka sendiri, dan panduan itu layak dibaca, karena masing-masing menjelaskan apa yang paling cocok untuk keluarga model tersebut.

Apakah prompt engineering sebuah pekerjaan?

Beberapa perusahaan pernah membuka lowongan dengan jabatan "prompt engineer", terutama saat model chat pertama kali tersedia secara luas. Lebih sering, keterampilan ini menjadi bagian dari pekerjaan lain. Developer menulis prompt untuk fitur AI yang mereka bangun, tim dukungan menulisnya untuk asisten yang menjawab pelanggan, dan analis serta penulis memakainya setiap hari.

Di tim yang membangun produk AI, pekerjaannya makin luas. Memilih apa yang masuk ke input model (dokumen yang diambil, hasil tool, riwayat percakapan, memori) sama pentingnya dengan kata-kata instruksinya, dan pekerjaan yang lebih luas itu sering disebut context engineering. Mengukur apakah sebuah prompt berhasil pada banyak input, yang biasanya disebut evaluasi, adalah separuh lainnya.

Apa yang berubah dengan model yang lebih baru

Prompt engineering di masa awal mengandalkan trik: frasa ajaib, persona yang rumit, mengulang instruksi beberapa kali. Model saat ini jauh lebih patuh pada instruksi biasa, dan model reasoning sudah memikirkan masalahnya secara internal sebelum menjawab, jadi memintanya berpikir langkah demi langkah tidak lagi menambah sebanyak dulu.

Yang tidak berubah adalah bagian yang memang tidak pernah berupa trik. Model tetap tidak bisa mengetahui pembacamu, datamu, batasanmu, atau seperti apa hasil yang bagus kecuali kamu menyebutkannya. Spesifikasi yang jelas adalah keterampilan yang bertahan lama, dan itulah yang paling banyak dibahas di halaman-halaman panduan ini.

Pertanyaan yang sering diajukan

Apa itu prompt engineering dalam kata-kata sederhana?

Prompt engineering adalah menulis instruksi untuk model AI dengan cukup cermat sampai model memberikan jawaban yang kamu butuhkan, lalu menguji dan menyesuaikannya sampai model melakukannya secara konsisten. Ini mencakup apa yang kamu sampaikan ke model (tugas, konteks, dan contoh) dan bagaimana kamu menyusunnya (urutan, format, dan pemisah).

Bisakah belajar prompt engineering tanpa coding?

Bisa. Keterampilan intinya, yaitu menyatakan tugas dengan jelas, memberikan konteks, memberikan contoh, dan menentukan format output, semuanya bisa dipraktikkan di aplikasi chat. Coding baru berguna kalau kamu ingin menjalankan sebuah prompt berkali-kali, mengujinya dengan sekumpulan input, atau mengirim outputnya ke sebuah program.

Berapa lama waktu untuk belajar prompt engineering?

Dasar-dasarnya cukup satu sore: bagian-bagian prompt yang bagus dan beberapa teknik seperti contoh few-shot dan output terstruktur. Mendapatkan hasil yang konsisten untuk tugas nyata butuh waktu lebih lama, karena itu datang dari menguji prompt dengan banyak input dan memperbaiki kasus-kasus yang gagal.

Apakah prompt engineering pekerjaan sungguhan?

Beberapa perusahaan pernah membuka lowongan dengan jabatan seperti "prompt engineer", tapi lebih sering keterampilan ini menjadi bagian dari peran lain: developer yang membangun fitur AI, penulis, analis, dan tim dukungan pelanggan. Di tim yang membangun produk AI, pekerjaan ini beririsan dengan evaluasi dan dengan merancang semua yang dilihat model, yang sekarang sering disebut context engineering.

Apakah prompt engineering masih berguna untuk model AI yang lebih baru?

Model yang lebih baru butuh lebih sedikit trik. Model-model itu lebih patuh pada instruksi biasa, dan model reasoning menyelesaikan masalah tanpa perlu disuruh berpikir langkah demi langkah. Yang tetap berguna adalah bagian yang memang tidak pernah berupa trik: menyatakan tugas, memberi model fakta yang tidak mungkin diketahuinya, dan mendefinisikan seperti apa jawaban yang bagus.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai