Playbook Prompt Engineering untuk Programmer
(addyo.substack.com)- Asisten coding AI tidak bisa mengetahui niat proyek dengan sendirinya, sehingga kualitas hasil sangat bergantung pada seberapa baik developer memberikan konteks, tujuan, dan contoh
- Dalam debugging, alih-alih hanya melempar kode dan error, sebaiknya sertakan perilaku yang diharapkan, perilaku aktual, dan lingkungan eksekusi, lalu persempit cakupan masalah dengan pelacakan per baris atau contoh reproduksi minimal
- Untuk refactoring dan optimasi, jangan hanya meminta “dibuat lebih baik”, tetapi jelaskan dengan tegas kriteria keberhasilan seperti menghapus duplikasi, pemrosesan paralel, mempertahankan penanganan error, atau batasan versi
- Implementasi fitur baru lebih aman jika tidak diserahkan sekaligus, melainkan dibagi menjadi langkah-langkah kecil seperti perencanaan, kerangka, manajemen state, integrasi API, dan edge case untuk ditinjau lalu diperluas
- Pertanyaan yang ambigu, permintaan yang berlebihan, dump kode tanpa pertanyaan, dan referensi yang tidak jelas akan membuat hasil goyah; AI sebaiknya diperlakukan bukan sebagai generator sekali pakai, melainkan pair programmer interaktif yang iteratif
Prinsip dasar untuk menggunakan asisten coding AI dengan baik
- Asisten coding AI dapat membantu dari autocomplete fungsi, saran perbaikan bug, hingga pembuatan modul atau MVP, tetapi niat spesifik proyek bergantung pada informasi yang diberikan pengguna
- Prompt yang baik memperlakukan AI seperti “rekan kolaborasi yang memahami secara harfiah”, serta mengarahkan hasil dan format yang diinginkan dengan jelas
- Prinsip dasarnya sebagai berikut
- Berikan konteks yang kaya: sertakan bahasa, framework, library, fungsi atau potongan kode terkait, pesan error yang tepat, dan perilaku yang diharapkan
- Perjelas tujuan: alih-alih “kenapa ini tidak jalan?”, persempit pertanyaan seperti “mengapa fungsi JavaScript ini mengembalikan
undefinedalih-alih nilai yang diharapkan, dan bagaimana cara memperbaikinya” - Pecah tugas yang kompleks: jangan meminta fitur besar sekaligus; lakukan secara berurutan seperti membuat kerangka komponen React, menambahkan manajemen state, lalu mengintegrasikan pemanggilan API
- Berikan contoh input/output: contoh seperti input
[3,1,4]harus mengembalikan[1,3,4]membantu mengurangi ambiguitas kebutuhan - Tetapkan peran: memberi peran seperti “senior React developer”, “JavaScript performance expert”, atau “code reviewer” dapat menyesuaikan kedalaman dan gaya jawaban
- Iterasi dan revisi: jika jawaban pertama belum tepat, arahkan lewat permintaan lanjutan seperti menggunakan loop alih-alih rekursi, memperbaiki nama variabel, atau menambahkan komentar
- Jaga kejelasan kode: nama fungsi dan variabel yang bermakna, format yang konsisten, komentar, dan docstring membantu AI memahami maksud kode
Pola prompt untuk debugging
- Permintaan debugging sebaiknya memuat apa yang seharusnya dilakukan kode, apa yang sebenarnya salah, dan error apa yang muncul
- Prompt debugging yang baik biasanya mencakup informasi berikut
- bahasa yang digunakan dan lingkungan eksekusi
- kode yang bermasalah
- pesan error yang tepat atau output yang salah
- output yang diharapkan
- contoh input
- metode yang sudah dicoba
- Bug logika yang kompleks bisa ditangani dengan meminta AI melakukan pelacakan eksekusi per baris agar perubahan state dapat diikuti
- Contoh: “lacak bagaimana nilai
totalberubah di setiap langkah dalam fungsi ini, dan temukan di mana akumulasi menjadi salah”
- Contoh: “lacak bagaimana nilai
- Meski codebase besar, jika Anda bisa membuat potongan kode kecil yang mereproduksi bug, lebih baik sajikan itu sebagai contoh reproduksi minimal
- Jika jawaban pertama hanya sebagian berguna, lanjutkan dengan pertanyaan seperti “tunjukkan kode yang sudah diperbaiki” atau “jelaskan mengapa perubahan ini menyelesaikan masalah”
Contoh debugging: pertanyaan ambigu dan pertanyaan yang diperbaiki
- Kode contoh adalah fungsi Node.js/JavaScript
mapUsersById(users)yang bertujuan mengubah array pengguna menjadi objek berbasis ID - Bug-nya adalah `for (let i = 0; i
Belum ada komentar.