
# Rekayasa Prompt untuk Respons Kuesioner Keamanan yang Dihasilkan AI dengan Andal

## Pendahuluan  

Kuesioner keamanan menjadi hambatan bagi banyak perusahaan SaaS. Satu penilaian vendor dapat melibatkan puluhan pertanyaan terperinci tentang perlindungan data, respons insiden, kontrol akses, dan lain‑lain. Pembuatan jawaban secara manual memakan waktu, rawan kesalahan, dan sering menyebabkan upaya duplikasi lintas tim.  

Model bahasa besar (LLM) seperti GPT‑4, Claude, atau Llama 2 memiliki kemampuan menulis jawaban naratif berkualitas tinggi dalam hitungan detik. Namun, memanfaatkan kekuatan tersebut secara langsung pada kuesioner jarang menghasilkan hasil yang dapat diandalkan. Output mentah dapat menyimpang dari bahasa kebijakan, melewatkan klausul penting, atau menghasilkan bukti yang tidak ada.  

**Rekayasa prompt**—praktik disiplin dalam menyusun teks yang membimbing LLM—menjembatani kesenjangan antara kemampuan generatif mentah dan standar kepatuhan ketat yang diperlukan tim keamanan. Dalam artikel ini kami memecah kerangka kerja rekayasa prompt yang dapat diulang, yang mengubah LLM menjadi asisten tepercaya untuk otomatisasi kuesioner keamanan.  

Kami akan membahas:

* Cara menanamkan pengetahuan kebijakan langsung ke dalam prompt  
* Teknik mengontrol nada, panjang, dan struktur  
* Loop verifikasi otomatis yang menangkap inkonsistensi sebelum sampai ke auditor  
* Pola integrasi untuk platform seperti Procurize, termasuk diagram alur kerja Mermaid  

Pada akhir panduan, praktisi akan memiliki toolbox konkret yang dapat langsung diterapkan untuk mengurangi waktu penyelesaian kuesioner sebesar 50 % – 70 % sambil meningkatkan akurasi jawaban.

---

## 1. Memahami Lanskap Prompt  

### 1.1 Jenis Prompt  

| Jenis Prompt | Tujuan | Contoh |
|--------------|--------|--------|
| **Prompt Kontekstual** | Menyediakan LLM dengan kutipan kebijakan, standar, dan definisi yang relevan | “Berikut cuplikan dari kebijakan kami tentang enkripsi data saat istirahat [ SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) …” |
| **Prompt Instruksional** | Menyatakan secara tepat bagaimana jawaban harus diformat | “Tuliskan respons dalam tiga paragraf pendek, masing‑masing dimulai dengan heading tebal.” |
| **Prompt Pembatas** | Menetapkan batas keras seperti jumlah kata atau istilah terlarang | “Jangan melebihi 250 kata dan hindari penggunaan kata ‘mungkin’.” |
| **Prompt Verifikasi** | Menghasilkan daftar periksa yang harus dipenuhi jawaban | “Setelah menulis jawaban, daftarkan bagian kebijakan yang belum dirujuk.” |

Pipeline jawaban kuesioner yang kuat biasanya menggabungkan beberapa jenis prompt ini dalam satu permintaan atau menggunakan pendekatan multi‑langkah (prompt–respons–re‑prompt).

### 1.2 Mengapa Prompt Satu‑Shot Gagal  

Prompt satu‑shot naïf seperti *“Jawablah pertanyaan keamanan berikut”* sering menghasilkan:

* **Penghilangan** – referensi kebijakan penting tidak disertakan.  
* **Halusinasi** – model menciptakan kontrol yang tidak ada.  
* **Bahasa tidak konsisten** – respons memakai frasa informal yang bentrok dengan nada kepatuhan perusahaan.  

Rekayasa prompt mengurangi risiko tersebut dengan memberi LLM informasi tepat yang dibutuhkan dan meminta model melakukan audit diri atas outputnya.

---

## 2. Membangun Kerangka Kerja Rekayasa Prompt  

Berikut kerangka kerja langkah‑demi‑langkah yang dapat dijadikan fungsi yang dapat dipakai kembali di platform kepatuhan mana pun.

### 2.1 Langkah 1 – Ambil Fragmen Kebijakan yang Relevan  

Gunakan basis pengetahuan yang dapat dicari (vector store, graph DB, atau indeks kata kunci sederhana) untuk menarik bagian kebijakan yang paling relevan.  
*Contoh kueri*: “enkripsi saat istirahat” + “[ISO 27001](https://www.iso.org/standard/27001)” atau “SOC 2 CC6.1”.

Hasilnya bisa berupa:

```
Policy Fragment A:
“All production data must be encrypted at rest using AES‑256 or an equivalent algorithm. Encryption keys are rotated every 90 days and stored in a hardware security module (HSM).”
```

### 2.2 Langkah 2 – Susun Template Prompt  

Template yang menggabungkan semua jenis prompt:

```
[CONTEXT] 
{Policy Fragments}

[INSTRUCTION] 
You are a compliance specialist drafting an answer for a security questionnaire. The target audience is a senior security auditor. Follow these rules:
- Use the exact language from the policy fragments where applicable.
- Structure the answer with a short intro, a detailed body, and a concise conclusion.
- Cite each policy fragment with a reference tag (e.g., [Fragment A]).

[QUESTION] 
{Security Question Text}

[CONSTRAINT] 
- Maximum 250 words.
- Do not introduce any controls not mentioned in the fragments.
- End with a statement confirming that evidence can be provided on request.

[VERIFICATION] 
After answering, list any policy fragments that were not used and any new terminology introduced.
```

### 2.3 Langkah 3 – Kirim ke LLM  

Serahkan prompt yang telah dirakit ke LLM pilihan melalui API‑nya. Untuk reproduktifitas, tetapkan temperature = 0.2 (randomen rendah) dan max_tokens sesuai batas kata.

### 2.4 Langkah 4 – Parse dan Verifikasi Respons  

LLM mengembalikan dua bagian: **jawaban** dan **daftar periksa verifikasi**. Skrip otomatis memeriksa:

* Semua tag fragmen yang dibutuhkan hadir.  
* Tidak ada nama kontrol baru muncul (bandingkan dengan whitelist).  
* Jumlah kata mematuhi batas.

Jika ada aturan yang gagal, skrip memicu **re‑prompt** dengan umpan balik verifikasi:

```
[FEEDBACK]
You missed referencing Fragment B and introduced the term “dynamic key rotation” which is not part of our policy. Please revise accordingly.
```

### 2.5 Langkah 5 – Lampirkan Tautan Bukti  

Setelah verifikasi berhasil, sistem secara otomatis menambahkan tautan ke bukti pendukung (misalnya log rotasi kunci, sertifikat HSM). Output akhir disimpan di evidence hub Procurize dan dapat dilihat reviewer.

---

## 3. Diagram Alur Kerja Dunia Nyata  

Diagram Mermaid berikut memvisualisasikan alur end‑to‑end di dalam platform SaaS kepatuhan tipikal.

```mermaid
graph TD
    A["Pengguna memilih kuesioner"] --> B["Sistem mengambil fragmen kebijakan yang relevan"]
    B --> C["Prompt Builder menyusun prompt multi‑bagian"]
    C --> D["LLM menghasilkan jawaban + daftar periksa verifikasi"]
    D --> E["Validator otomatis mengurai daftar periksa"]
    E -->|Lulus| F["Jawaban disimpan, tautan bukti dilampirkan"]
    E -->|Gagal| G["Re‑prompt dengan umpan balik"]
    G --> C
    F --> H["Reviewer melihat jawaban di dashboard Procurize"]
    H --> I["Audit selesai, respons diekspor"]
```

Semua label node berada dalam tanda kutip ganda sebagaimana diperlukan.

---

## 4. Teknik Prompt Tingkat Lanjut  

### 4.1 Demonstrasi Few‑Shot  

Menyediakan satu atau dua pasangan **contoh tanya‑jawab** dalam prompt dapat meningkatkan konsistensi secara dramatis. Contoh:

```
Contoh 1:
T: Bagaimana Anda melindungi data dalam transit?
J: Semua data dalam transit dienkripsi menggunakan TLS 1.2 atau lebih tinggi, dengan cipher forward‑secrecy. [Fragment C]

Contoh 2:
T: Jelaskan proses respons insiden Anda.
J: Rencana IR kami mengikuti kerangka kerja [NIST CSF](https://www.nist.gov/cyberframework) (NIST 800‑61), mencakup jendela eskalasi 24 jam, dan ditinjau dua kali setahun. [Fragment D]
```

LLM kini memiliki gaya konkret untuk ditiru.

### 4.2 Chain‑of‑Thought Prompting  

Dorong model berpikir langkah‑demi‑langkah sebelum menjawab:

```
Think about which policy fragments apply, list them, then craft the answer.
```

Ini mengurangi halusinasi dan menghasilkan jejak alasan yang dapat dicatat.

### 4.3 Retrieval‑Augmented Generation (RAG)  

Alih‑alih mengambil fragmen sebelum prompt, biarkan LLM melakukan kueri ke vector store selama proses generasi. Pendekatan ini cocok ketika korpus kebijakan sangat besar dan terus berubah.

---

## 5. Integrasi dengan Procurize  

Procurize sudah menyediakan:

* **Repository kebijakan** (terpusat, version‑controlled)  
* **Tracker kuesioner** (tugas, komentar, jejak audit)  
* **Evidence hub** (penyimpanan file, auto‑linking)  

Menyematkan pipeline rekayasa prompt melibatkan tiga panggilan API utama:

1. `GET /policies/search` – mengambil fragmen berdasarkan kata kunci yang diekstrak dari pertanyaan kuesioner.  
2. `POST /llm/generate` – mengirim prompt yang dirakit dan menerima jawaban + verifikasi.  
3. `POST /questionnaire/{id}/answer` – mengirimkan jawaban terverifikasi, melampirkan URL bukti, dan menandai tugas selesai.

Contoh wrapper Node.js ringkas:

```javascript
async function answerQuestion(questionId) {
  const q = await api.getQuestion(questionId);
  const fragments = await api.searchPolicies(q.keywords);
  const prompt = buildPrompt(q.text, fragments);
  const { answer, verification } = await api.llmGenerate(prompt);
  if (verify(verification)) {
    await api.submitAnswer(questionId, answer, fragments.evidenceLinks);
  } else {
    const revisedPrompt = addFeedback(prompt, verification);
    // recursion atau loop sampai lolos
  }
}
```

Jika dihubungkan ke UI Procurize, analis keamanan dapat mengklik *“Auto‑Generate Answer”* dan menyaksikan progres bar bergerak melalui langkah‑langkah yang didefinisikan dalam diagram Mermaid.

---

## 6. Mengukur Keberhasilan  

| Metrik | Baseline | Target setelah Rekayasa Prompt |
|--------|----------|--------------------------------|
| Rata‑rata waktu pembuatan jawaban | 45 menit | ≤ 15 menit |
| Tingkat koreksi oleh manusia | 22 % | ≤ 5 % |
| Kepatuhan referensi kebijakan (tag digunakan) | 78 % | ≥ 98 % |
| Skor kepuasan auditor | 3.2/5 | ≥ 4.5/5 |

Kumpulkan KPI ini melalui dasbor analitik Procurize. Pemantauan berkelanjutan memungkinkan penyetelan template prompt dan pemilihan fragmen kebijakan.

---

## 7. Perangkap dan Cara Menghindarinya  

| Perangkap | Gejala | Solusi |
|-----------|--------|--------|
| Membebani prompt dengan fragmen tidak relevan | Jawaban melenceng, latensi LLM meningkat | Terapkan ambang relevansi (misalnya cosine similarity > 0.78) sebelum menyertakan |
| Mengabaikan suhu model | Kadang output kreatif namun tidak akurat | Tetapkan suhu ke nilai rendah (0.1‑0.2) untuk beban kerja kepatuhan |
| Tidak mem‑versi fragmen kebijakan | Jawaban merujuk pada klausul usang | Simpan fragmen dengan ID versi dan terapkan kebijakan “latest‑only” kecuali versi historis diminta secara eksplisit |
| Mengandalkan satu kali verifikasi | Melewatkan kasus pinggiran | Jalankan pemeriksaan mesin aturan sekunder (misalnya regex untuk istilah terlarang) setelah pass LLM |

---

## 8. Arah Masa Depan  

* **Optimasi Prompt Dinamis** – gunakan reinforcement learning untuk menyesuaikan wording prompt secara otomatis berdasarkan histori tingkat keberhasilan.  
* **Ensemble Multi‑LLM** – kueri beberapa model secara paralel dan pilih jawaban dengan skor verifikasi tertinggi.  
* **Lapisan Explainable AI** – tambahkan bagian “mengapa jawaban ini” yang menyebutkan nomor kalimat kebijakan secara tepat, membuat audit sepenuhnya dapat ditelusuri.  

Kemajuan ini akan menggerakkan otomatisasi dari *“draft cepat”* menjadi *“siap audit tanpa sentuhan manusia.”*

---

## Kesimpulan  

Rekayasa prompt bukan trik sekali pakai; ia merupakan disiplin sistematis yang mengubah LLM yang kuat menjadi asisten kepatuhan yang dapat diandalkan. Dengan:

1. Mengambil fragmen kebijakan yang tepat,  
2. Menyusun prompt multi‑bagian yang menggabungkan konteks, instruksi, pembatas, dan verifikasi,  
3. Mengotomatiskan loop umpan balik yang memaksa model melakukan audit diri, dan  
4. Mengintegrasikan seluruh pipeline ke dalam platform seperti Procurize,

organisasi dapat memangkas waktu penyelesaian kuesioner, mengurangi kesalahan manual, dan mempertahankan jejak audit ketat yang diminta regulator dan pelanggan.  

Mulailah dengan pilot pada kuesioner berisiko rendah, catat perbaikan KPI, dan iterasikan template prompt. Dalam beberapa minggu, Anda akan melihat tingkat akurasi setara dengan senior compliance engineer—hanya dengan sebagian usaha.  

---  

## Lihat Juga  

- Praktik terbaik Rekayasa Prompt untuk LLM  
- Retrieval‑Augmented Generation: pola desain dan perangkap  
- Tren otomasi kepatuhan dan proyeksi 2025  
- Gambaran umum API Procurize dan panduan integrasi