import streamlit as st import pickle def main(): st.title('Prediksi Promosi Karyawan') with st.form(key='myform', clear_on_submit=False): nama_karyawan = st.text_input( "Nama Karyawan", max_chars = 50, placeholder = "Masukkan nama lengkap karyawan") age = st.number_input( "Umur", min_value = 17, max_value = 100, step = 1, placeholder = "25") departement = st.selectbox( "Departemen", ("-", "Sales & Marketing", "Operations", "Technology", "Analytics", "R&D", "Procurement", "Finance", "HR", "Legal"), placeholder="Choose an option") # region = st.text_input( # "Negara", # max_chars = 50, # placeholder = "Indonesia") education = st.selectbox( "Pendidikan", ("-", "Bachelor's", "Below Secondary", "Master's & above"), placeholder="Choose an option") jenis_kelamin = st.radio( "Jenis Kelamin", ["Laki-laki", "Perempuan"]) # recruitment_channel = st.selectbox( # "Recruitment Channel", # ("-", "rec_1", "rec_2", "..."), # placeholder="Choose an option") no_of_trainings = st.number_input( "Jumlah Pelatihan Yang Pernah Diikuti", min_value = 0, max_value = 100, step = 1, placeholder = "2") previous_year_rating = st.number_input( "Rating Tahun Lalu (1-5)", min_value = 1, max_value = 5, step = 1, placeholder = "1 - 5") length_of_service = st.number_input( "Lama Bekerja (Tahun)", min_value = 0.0, max_value = 100.0, step = 0.1, placeholder = "2") KPIs_met = st.toggle("KPI > 80% ?") awards_won = st.toggle("Pernah mendapat award?") avg_training_score = st.number_input( "Rata-rata Skor Pelatihan (0-100)", min_value = 0, max_value = 100, step = 1, placeholder = "") submitted = st.form_submit_button(label="Cek Hasil Prediksi") #Mulai Memanggil Model with open('best_model_chi2.pkl', 'rb') as f: model = pickle.load(f) # if st.button('Cek Hasil Prediksi'): if submitted: if KPIs_met: kpi_met = 1 else: kpi_met = 0 if awards_won: award_won = 1 else: award_won = 0 prediction = model.predict([[previous_year_rating, kpi_met, award_won, avg_training_score]]) if prediction[0] == 1: st.balloons() st.success("Hasil Prediksi {} DISARANKAN untuk promosi".format(nama_karyawan)) else: st.snow() st.error("Hasil Prediksi {} BELUM DISARANKAN untuk promosi!".format(nama_karyawan)) # st.success(f'Hasil Prediksi Promosi: {prediction[0]}') # def tes(): # st.warning("Warning text") # if nama_karyawan and age and departement and region and education and jenis_kelamin and recruitment_channel and no_of_trainings and awards_won and avg_training_score and length_of_service and previous_year_rating and KPIs_met: # if submit: # st.success("Hello {}, wait till your data processed".format(nama_karyawan)) # else: # st.warning("Please fill in all fields before submitting!") if __name__ == '__main__': main()