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()