Penjelasan ringkas dan jelas dari isi paper arXiv:2402.10754 — “LLMDFA: Analyzing Dataflow in Code with Large Language Models”
Penulis: Chengpeng Wang, Wuqi Zhang, Zian Su, Xiangzhe Xu, Xiaoheng Xie, Xiangyu Zhang (2024)
Masalah yang Dibahas
Dataflow analysis adalah teknik penting dalam analisis kode yang digunakan untuk memahami bagaimana nilai variabel mengalir dalam program — misalnya untuk menemukan bug seperti divide-by-zero, XSS, atau injeksi perintah.
Namun, teknik tradisional:
- Memerlukan program yang bisa dikompilasi, dan
- Butuh banyak penyesuaian manual, sehingga sulit dipakai pada kode yang belum lengkap atau berubah-ubah dalam pengembangan nyata.
Solusi Utama: LLMDFA
Paper ini memperkenalkan LLMDFA, sebuah kerangka analisis dataflow tanpa perlu kompilasi dan dapat disesuaikan menggunakan Large Language Models (LLMs) seperti GPT.
Alih-alih mengandalkan compiler tradisional, LLMDFA menggunakan LLM untuk memahami dan mengekstrak informasi dari kode secara langsung, sehingga bisa digunakan pada kode yang:
- Belum kompilasi,
- Tidak lengkap,
- Atau berubah-ubah cepat dalam pengembangan.
Ide Inti & Arsitektur LLMDFA
LLMDFA memecah analisis dataflow menjadi 3 tahap penting:
1) Source/Sink Extraction
Mengidentifikasi titik awal (source) dan akhir (sink) dari aliran data yang ingin dianalisis (mis. variabel input pengguna dan lokasi penggunaan yang berisiko).
2) Dataflow Summarization
Menyimpulkan bagaimana sebuah nilai dari source mengalir ke sink dengan melihat dependensi antar variabel di dalam fungsi.
3) Path Feasibility Validation
Memastikan bahwa jalur data yang dianalisis benar-benar mungkin terjadi dalam eksekusi nyata (bukan hanya kemungkinan berdasarkan teks kode).
Mengatasi Hallucination dari LLM
Salah satu tantangan besar memakai LLM untuk analisis kode adalah hallucination — model memberi jawaban yang tampak benar tetapi salah secara semantik.
Paper ini mengatasi hal ini melalui strategi:
- Decompose problem → Pecah menjadi sub-tugas yang lebih kecil.
- Few-shot chain-of-thought prompting → LLM diberikan contoh langkah berpikir yang menjelaskan dataflow.
- Tool synthesis: LLM memproduksi kode otomatis yang memakai parser/SMT solver eksternal untuk mengekstrak fakta atau memeriksa path yang feasible.
Hasil Evaluasi
Dalam evaluasi pada berbagai set program (termasuk deteksi bug):
LLMDFA mencapai:
- Precision ~87.10%
- Recall ~80.77%
Ini mengungguli teknik klasik dan beberapa pendekatan berbasis LLM lain dalam skor F1.
Kelebihan Utama LLMDFA
✅ Tidak perlu kompilasi kode
✅ Bisa dipakai pada kode yang belum lengkap
✅ Customizable utk kebutuhan analisis tertentu
✅ Integrasi LLM + tools eksternal membuat hasil lebih dapat dipercaya
Intinya dalam 1 Kalimat
LLMDFA adalah kerangka analisis dataflow yang menggunakan LLM untuk memahami aliran data dalam kode tanpa kompilasi, dengan akurasi tinggi dan lebih fleksibel dibandingkan metode tradisional.
Sumber: https://arxiv.org/pdf/2402.10754

