import pandas as pd import streamlit as st def login(): st.title("🔑 Login Sistem") username = st.text_input("Username") password = st.text_input("Password", type="password") if st.button("Login"): if username == "admin" and password == "1234": st.session_state["login"] = True st.success("Login berhasil ✅") else: st.error("Username atau Password salah!") def dashboard(): st.title("📊 Dashboard Space Management - Sports & Health") # Data awal if "data" not in st.session_state: st.session_state["data"] = pd.DataFrame({ "ID": [1, 2, 3], "Nama File": ["Laporan_A.xlsx", "Proposal_B.docx", "Data_C.csv"], "Status": ["Menunggu", "Menunggu", "Menunggu"] }) # Sidebar menu st.sidebar.title("⚙️ Menu") if st.sidebar.button("🚪 Logout"): st.session_state["login"] = False st.experimental_rerun() # Upload file baru st.sidebar.header("📤 Upload File Baru") uploaded_file = st.sidebar.file_uploader("Upload Excel/CSV", type=["csv", "xlsx"]) if uploaded_file: try: if uploaded_file.name.endswith(".csv"): df_new = pd.read_csv(uploaded_file) else: df_new = pd.read_excel(uploaded_file) st.session_state["data"] = df_new st.success("File berhasil diupload dan ditampilkan!") except Exception as e: st.error(f"Gagal membaca file: {e}") # Tabel data st.subheader("📂 Master Data") st.dataframe(st.session_state["data"]) # Update status pilihan = st.selectbox("Pilih File untuk Approve/Tolak", st.session_state["data"]["Nama File"]) aksi = st.radio("Aksi", ["Setujui", "Tolak"]) if st.button("Update Status"): idx = st.session_state["data"].index[ st.session_state["data"]["Nama File"] == pilihan ][0] st.session_state["data"].at[idx, "Status"] = aksi st.success(f"File '{pilihan}' berhasil diupdate menjadi {aksi}") # Ringkasan data st.subheader("📊 Ringkasan") summary = st.session_state["data"]["Status"].value_counts() st.bar_chart(summary) # Download data st.sidebar.header("📥 Download Data") csv = st.session_state["data"].to_csv(index=False).encode("utf-8") st.sidebar.download_button( label="Download CSV", data=csv, file_name="master_data.csv", mime="text/csv" ) # --- Main --- if "login" not in st.session_state: st.session_state["login"] = False if st.session_state["login"]: dashboard() else: login()