File size: 3,513 Bytes
1308d52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import gradio as gr
from transformers import pipeline

# 1. Load pre-trained model sentiment AI dari Hugging Face
# Model ini sudah dilatih untuk memahami bahasa Indonesia
sentiment_model = pipeline("sentiment-analysis", model="w11wo/indonesian-roberta-base-sentiment-classifier")

# 2. Fungsi Utama Mesin Data-Driven DSS
def dss_evaluasi(opini, lokasi):
    # AI menganalisis sentimen dari teks opini
    hasil = sentiment_model(opini)[0]
    label = hasil['label']
    skor = hasil['score']

    # Logika Pengambilan Keputusan (DSS) berdasarkan Sentimen dan Demografi
    rekomendasi = ""
    if label in ["negative", "NEGATIVE", "Negative"]:
        sentimen_teks = "Negatif 📉 (Keresahan Ekonomi)"
        if lokasi == "Masyarakat Desa":
            rekomendasi = "Prioritas Kebijakan: Segera alokasikan Bantuan Langsung Tunai (BLT) & subsidi pupuk/bibit untuk menjaga daya beli petani."
        elif lokasi == "Masyarakat Kabupaten":
            rekomendasi = "Prioritas Kebijakan: Lakukan pemantauan ketat harga bahan pokok di pasar tradisional & berikan stimulus untuk UMKM lokal."
        else: # Kota
            rekomendasi = "Prioritas Kebijakan: Gelar operasi pasar murah untuk menekan inflasi pangan & kaji ulang tarif transportasi publik."
            
    elif label in ["positive", "POSITIVE", "Positive"]:
        sentimen_teks = "Positif 📈 (Optimisme)"
        rekomendasi = "Kondisi Stabil: Lanjutkan program edukasi literasi keuangan dan dorong kampanye cinta produk dalam negeri (UMKM)."
        
    else:
        sentimen_teks = "Netral ➖"
        rekomendasi = "Pantau Berkala: Lakukan sosialisasi kebijakan moneter secara transparan agar masyarakat terhindar dari panic buying."

    # Format output untuk Dashboard
    output_text = f"🗣️ Opini Masyarakat: \"{opini}\"\n📍 Pemetaan Demografi: {lokasi}\n\n"
    output_text += f"📊 Hasil Evaluasi Model AI:\n- Sentimen Dominan: {sentimen_teks}\n- Akurasi/Keyakinan AI: {skor:.2f}\n\n"
    output_text += f"💡 Rekomendasi DSS untuk Pemangku Kepentingan:\n{rekomendasi}"
    
    return output_text

# 3. Membuat Antarmuka (UI) Dashboard Mockup dengan Gradio
with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", neutral_hue="slate")) as dashboard:
    gr.Markdown("# 📉 Intelligence Data-Driven DSS")
    gr.Markdown("### Evaluasi Sentimen Pelemahan Rupiah terhadap USD (Regional)")
    gr.Markdown("Sistem ini menggunakan model *Artificial Intelligence* (Indonesian RoBERTa) untuk mengekstrak opini masyarakat dan merumuskan intervensi kebijakan publik yang tepat sasaran.")

    with gr.Row():
        with gr.Column(scale=1):
            gr.Markdown("### 📥 Input Data Analitik")
            opini_input = gr.Textbox(lines=4, label="Masukkan Opini / Keluhan Warga", placeholder="Contoh: Harga sembako makin mahal sejak dolar tembus 16 ribu, kami di kampung makin susah...")
            lokasi_input = gr.Dropdown(choices=["Masyarakat Desa", "Masyarakat Kabupaten", "Masyarakat Kota"], label="Pilih Tingkat Demografi Wilayah", value="Masyarakat Desa")
            submit_btn = gr.Button("Eksekusi Analisis DSS", variant="primary")

        with gr.Column(scale=1):
            gr.Markdown("### 📤 Output Rekomendasi Keputusan")
            output_hasil = gr.Textbox(lines=10, label="Dashboard Hasil Intelijensi")

    submit_btn.click(fn=dss_evaluasi, inputs=[opini_input, lokasi_input], outputs=output_hasil)

# Menjalankan aplikasi
dashboard.launch()