AI untuk Menganalisa Hasil Survei Terbuka
TL;DR
AI bisa bantu analisa jawaban survei terbuka dengan cara mengelompokkan jawaban ke tema, mengukur sentimen positif atau negatif, dan meringkas keluhan yang paling sering muncul. Alurnya: kumpulin jawaban, bersihin teks, kirim ke model bahasa (LLM) buat kategorisasi dan sentimen, lalu agregasi hasilnya jadi angka. Cara ini motong kerjaan baca manual ratusan jawaban jadi hitungan menit, tapi hasil AI tetap perlu kamu cek ulang di sampel.
Jawaban survei terbuka itu emas, tapi paling males diproses.
Kolom "saran dan masukan" isinya ratusan kalimat bebas. Gak ada angka, gak bisa langsung di-pivot. Biasanya berakhir gak kebaca sampai selesai.
AI ganti kerjaan baca satu-satu jadi proses yang bisa diulang. Kamu kasih jawaban, model bahasa balikin kategori, sentimen, dan ringkasan tema.
Di tutorial ini kamu bakal bikin alur analisa survei terbuka pakai Python dan model bahasa (LLM), dari data mentah sampai angka yang bisa dipresentasikan.
Apa itu analisa survei terbuka pakai AI?
Analisa survei terbuka pakai AI adalah proses mengubah jawaban teks bebas jadi data terstruktur pakai model bahasa. AI ngelompokin tiap jawaban ke tema, ngasih label sentimen, dan narik pola yang muncul berulang. Hasil akhirnya angka dan kategori yang bisa dihitung, bukan lagi paragraf yang harus dibaca manual satu per satu.
Bedanya sama survei tertutup jelas. Pertanyaan pilihan ganda udah kasih kategori dari awal. Pertanyaan terbuka kasih kebebasan responden, tapi harganya kamu yang harus rapiin sendiri. Di situ AI masuk.
Kenapa jawaban terbuka susah dianalisa manual?
Jawaban terbuka susah dianalisa manual karena tiga hal: volumenya besar, bahasanya beda-beda, dan satu jawaban bisa nyentuh banyak topik. Baca 500 jawaban butuh berjam-jam, dan hasilnya subjektif tergantung siapa yang baca. Dua orang bisa ngelompokin jawaban yang sama ke kategori yang beda.
Contoh nyata: satu responden nulis "aplikasinya sering error pas checkout dan CS-nya lama bales". Itu dua keluhan dalam satu kalimat, soal teknis dan soal layanan. Manual, keluhan kayak gini gampang kelewat separuh.
Langkah 1: Siapkan data jawaban survei
Mulai dari data yang rapi. Idealnya satu file CSV dengan satu kolom berisi jawaban terbuka, satu jawaban per baris. Kalau datamu dari Google Forms, export ke CSV dulu.
import pandas as pd
# Baca hasil survei
df = pd.read_csv("survei_toko_berkah.csv")
# Ambil kolom jawaban terbuka, buang yang kosong
jawaban = df["saran_masukan"].dropna()
jawaban = jawaban[jawaban.str.strip() != ""]
print(f"Total jawaban valid: {len(jawaban)}")Buang baris kosong dan jawaban asal kayak "-" atau "tidak ada". Jawaban sampah cuma bikin hasil AI berisik.
Langkah 2: Kategorikan jawaban pakai LLM
Inti prosesnya di sini. Kamu kirim tiap jawaban ke model bahasa dengan instruksi buat milih satu kategori dari daftar yang kamu tentuin sendiri. Kategori yang ditentuin dari awal (bukan dibiarin AI ngarang) bikin hasilnya konsisten dan gampang dihitung.
from openai import OpenAI
client = OpenAI()
KATEGORI = ["Harga", "Kualitas Produk", "Layanan", "Pengiriman", "Aplikasi", "Lainnya"]
def kategorikan(teks):
prompt = f"""Klasifikasikan keluhan pelanggan ini ke SATU kategori.
Kategori: {', '.join(KATEGORI)}.
Jawab hanya nama kategorinya.
Keluhan: "{teks}""""
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0,
)
return resp.choices[0].message.content.strip()
df["kategori"] = jawaban.apply(kategorikan)Perhatiin temperature=0. Itu bikin jawaban model stabil, jadi teks yang sama selalu dapat kategori yang sama. Buat klasifikasi, kamu gak mau AI kreatif. Kamu mau konsisten. Detail parameter model ada di dokumentasi API OpenAI.
Langkah 3: Ukur sentimen tiap jawaban
Setelah tema, tambahin sentimen. Sentimen ngasih tahu jawaban itu positif, negatif, atau netral. Gabungan tema plus sentimen jauh lebih berguna dari salah satunya. Kamu bisa jawab "berapa persen keluhan soal pengiriman yang nadanya marah".
def sentimen(teks):
prompt = f"""Tentukan sentimen dari masukan ini.
Jawab satu kata saja: positif, negatif, atau netral.
Masukan: "{teks}""""
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0,
)
return resp.choices[0].message.content.strip().lower()
df["sentimen"] = jawaban.apply(sentimen)Kalau kamu masih baru sama konsep ini, cek dulu glossary sentiment analysis biar paham apa yang lagi diukur.
Langkah 4: Agregasi jadi angka
Sekarang datanya udah terstruktur. Tema dan sentimen udah jadi kolom, dan kolom bisa dihitung. Ini bagian yang bikin AI berguna: teks bebas berubah jadi tabel yang bisa di-pivot.
# Hitung jumlah keluhan per kategori
ringkasan = df.groupby("kategori").size().sort_values(ascending=False)
print(ringkasan)
# Silang kategori dengan sentimen
tabel = pd.crosstab(df["kategori"], df["sentimen"])
print(tabel)Dari sini kamu udah bisa jawab pertanyaan bisnis. Kategori mana yang paling banyak keluhan negatif? Itu prioritas pertama buat dibenahi.
Langkah 5: Ringkas tema per kategori
Angka nunjukin "apa", tapi belum "kenapa". Buat dapat kenapa, minta AI ringkas semua jawaban dalam satu kategori jadi beberapa poin keluhan utama.
keluhan_kirim = df[df["kategori"] == "Pengiriman"]["saran_masukan"].tolist()
gabung = "\n".join(keluhan_kirim)
prompt = f"""Ini kumpulan keluhan soal pengiriman.
Ringkas jadi maksimal 5 poin masalah paling sering muncul.
{gabung}"""
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
)
print(resp.choices[0].message.content)Hasilnya ringkasan yang bisa langsung masuk slide. Bukan lagi 80 kalimat mentah, tapi 5 poin yang jelas.
Contoh kasus: survei pelanggan toko_berkah
Aku coba alur ini di 214 jawaban survei pelanggan toko_berkah (UMKM di dataset ngulikdata). Manual, baca dan ngelompokin segini butuh sekitar 3 jam. Pakai alur AI di atas, prosesnya kelar dalam 6 menit plus 20 menit buat cek hasilnya.
Hasilnya: 38% keluhan soal Pengiriman, 22% soal Aplikasi, sisanya nyebar. Dari kategori Pengiriman, 71% sentimennya negatif, angka tertinggi dibanding kategori lain.
Yang menarik, manual aku sempat ngira keluhan terbanyak soal Harga. Ternyata salah. Harga cuma 11%. Persepsi tanpa hitungan gampang meleset, dan ini contohnya.
Kesalahan umum saat pakai AI buat survei
Pertama, percaya 100% ke hasil AI tanpa cek. Selalu ambil sampel 20-30 jawaban, cek label AI-nya bener apa nggak. Kalau banyak yang meleset, perbaiki instruksinya.
Kedua, kategori yang kebanyakan atau tumpang tindih. Kalau ada 15 kategori yang mirip-mirip, AI bakal bingung dan hasilnya gak konsisten. Mulai dari 5-7 kategori yang jelas bedanya.
Ketiga, kirim data sensitif ke API tanpa mikir. Kalau jawaban survei ada nama, nomor HP, atau info pribadi, sensor dulu sebelum kirim ke layanan pihak ketiga.
Keempat, lupa temperature=0. Tanpa itu, jalanin dua kali bisa kasih hasil beda, dan analisamu jadi susah diulang.
FAQ
Apa AI bisa salah ngelompokin jawaban survei?
Bisa, dan itu wajar. Model bahasa nebak berdasarkan pola, bukan ngerti maksud responden 100%. Jawaban yang ambigu atau nyampur beberapa topik paling sering salah label. Makanya kamu wajib ambil sampel acak, misal 30 jawaban, dan cek manual apakah kategorinya masuk akal. Kalau akurasinya di bawah nyaman buat kamu, perjelas daftar kategori atau perbaiki instruksi promptnya.
Model AI apa yang cocok buat analisa survei?
Buat kategorisasi dan sentimen, model kecil dan murah kayak gpt-4o-mini atau setara udah cukup, karena tugasnya sederhana dan berulang. Model besar baru kepakai kalau jawaban surveinya panjang, konteksnya rumit, atau bahasanya campur. Buat volume ribuan jawaban, model kecil juga lebih hemat biaya. Mulai dari yang murah dulu, naikin cuma kalau hasilnya kurang akurat di sampel yang kamu cek.
Perlu jago coding buat pakai cara ini?
Nggak harus jago, tapi kamu perlu paham dasar Python dan pandas biar bisa baca CSV dan olah kolom. Kode di tutorial ini bisa kamu contek dan sesuaikan nama kolomnya. Kalau belum pernah pegang Python sama sekali, mulai dari yang paling dasar dulu: baca file, filter baris, hitung jumlah. Setelah itu bagian AI-nya cuma nambah satu fungsi yang manggil API.
Berapa biaya analisa survei pakai LLM?
Murah buat skala survei biasa. Model kecil kayak gpt-4o-mini ngecas per token, dan satu jawaban survei pendek cuma makan ratusan token. Analisa 200 jawaban buat kategorisasi plus sentimen biasanya di bawah beberapa ribu rupiah total. Biaya baru kerasa kalau kamu proses puluhan ribu jawaban berulang kali. Buat itu, cache hasilnya biar gak manggil API buat jawaban yang sama dua kali.
Penutup
AI gak gantiin kamu baca survei. AI motong kerjaan bacanya dari jam ke menit, dan kasih kamu angka yang bisa dipertanggungjawabkan.
Alurnya tetap sama tiap survei: siapin data, kategorikan, ukur sentimen, agregasi, ringkas. Sekali kamu punya template kodenya, survei berikutnya tinggal ganti file.
Mau lanjut belajar olah data teks? Cek glossary NLP buat dasar pemrosesan bahasa, dan baca AI untuk web scraping kalau data surveimu masih perlu dikumpulin dari web dulu.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Tools Text-to-SQL Terbaik untuk Analis Data (2026)
Ketik pertanyaan pakai bahasa biasa, keluar query SQL. Ini daftar tool text-to-SQL terbaik 2026, kelebihan dan kekurangan tiap tipe, plus cara milih yang pas.
AI untuk Deteksi Anomali pada Data: Panduan Praktis (2026)
Deteksi transaksi janggal, lonjakan aneh, atau error input otomatis. Ini metode statistik dasar sampai Isolation Forest, lengkap kode SQL dan Python plus contoh toko.
LLM Lokal untuk Analisa Data yang Privat
LLM lokal bikin kamu bisa pakai AI buat analisa data tanpa data sensitif keluar dari komputer. Ini cara kerjanya, tool yang dipakai, dan batasannya.