| import streamlit as st |
| import joblib |
| import pandas as pd |
|
|
| |
| stress_model = joblib.load('base_model_nurse_stress_15min.pkl') |
|
|
| |
| file_path = 'rekomendasi.xlsx' |
| recommendations_df = pd.read_excel(file_path) |
|
|
| |
| st.title("🏥NurstressAI") |
| st.subheader("Aplikasi Web Prediksi dan Penanganan Stres Perawat Berdasarkan Aspek Fisiologis dan Tipe Kepribadian Myers-Briggs (MBTI)") |
| st.markdown("Prediksi tingkat stres untuk perawat berdasarkan input **EDA**, **HR**, dan **TEMP**, serta dapatkan rekomendasi berdasarkan tipe kepribadian!") |
|
|
| |
| st.markdown("#### 🩺 Masukkan Parameter Input") |
| st.write("Isi nilai untuk **EDA**, **HR**, **TEMP**, dan pilih **Tipe Kepribadian** untuk memprediksi tingkat stres.") |
|
|
| |
| col1, col2, col3 = st.columns(3) |
|
|
| with col1: |
| eda = st.number_input("🖐️ EDA (Aktivitas Elektrodermal)", min_value=0.0, max_value=100.0, value=5.0) |
|
|
| with col2: |
| hr = st.number_input("❤️ HR (Denyut Jantung)", min_value=0, max_value=200, value=60) |
|
|
| with col3: |
| temp = st.number_input("🌡️ TEMP (Temperatur)", min_value=30.0, max_value=45.0, value=36.5) |
|
|
| |
| personality_types = recommendations_df['Tipe'].unique().tolist() |
| personality = st.selectbox("🧠 Pilih Tipe Kepribadian", options=personality_types) |
|
|
| |
| if st.button("🚑 Prediksi"): |
| |
| features = pd.DataFrame([[eda, hr, temp]], columns=['EDA', 'HR', 'TEMP']) |
|
|
| |
| stress_prediction = stress_model.predict(features)[0] |
|
|
| |
| stress_level_map = {0: "Tidak Stres", 1: "Stres Rendah", 2: "Stres Tinggi"} |
| stress_level = stress_level_map.get(stress_prediction, "Tidak Diketahui") |
|
|
| |
| recommendations = recommendations_df.loc[recommendations_df['Tipe'] == personality, 'Rekomendasi'].tolist() |
|
|
| |
| st.markdown("### 🧾 Hasil Prediksi") |
| st.write(f"Tingkat Stres yang Diprediksi: **{stress_level}**") |
|
|
| |
| st.markdown("### 🌟 Rekomendasi Manajemen Stres") |
| if recommendations: |
| st.write(f"Berdasarkan tipe kepribadian **{personality}**, disarankan:") |
| for rec in recommendations: |
| st.markdown(f"- {rec}") |
| else: |
| st.write("Tidak ada rekomendasi yang tersedia untuk tipe kepribadian ini.") |
|
|
| st.markdown("<div style='margin-bottom: 100px;'></div>", unsafe_allow_html=True) |
|
|
|
|