hrd / app.py
Karrura's picture
Update app.py
b349b66 verified
Raw
History Blame Contribute Delete
3.7 kB
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()