sisrek
To upload files, please first save the app
import streamlit as st
import pandas as pd
import numpy as np
st.title('Sistem Rekrutmen')
# Initialize session state
if 'candidates' not in st.session_state:
st.session_state.candidates = pd.DataFrame({
'Nama': [],
'Email': [],
'Posisi': [],
'Pengalaman': [],
'Status': []
})
# Side bar for adding new candidates
with st.sidebar:
st.header('Tambah Kandidat Baru')
nama = st.text_input('Nama')
email = st.text_input('Email')
posisi = st.selectbox('Posisi', ['Software Engineer', 'Data Scientist', 'Product Manager', 'UI/UX Designer'])
pengalaman = st.number_input('Pengalaman (tahun)', min_value=0, max_value=50)
if st.button('Tambah Kandidat'):
new_candidate = pd.DataFrame({
'Nama': [nama],
'Email': [email],
'Posisi': [posisi],
'Pengalaman': [pengalaman],
'Status': ['Dalam Review']
})
st.session_state.candidates = pd.concat([st.session_state.candidates, new_candidate], ignore_index=True)
st.success('Kandidat berhasil ditambahkan!')
# Main content
st.header('Daftar Kandidat')
# Filter by position
filter_position = st.multiselect('Filter berdasarkan posisi:',
options=['Semua'] + list(st.session_state.candidates['Posisi'].unique()),
default='Semua')
filtered_df = st.session_state.candidates
if filter_position and 'Semua' not in filter_position:
filtered_df = filtered_df[filtered_df['Posisi'].isin(filter_position)]
# Display candidates
if not filtered_df.empty:
for idx, row in filtered_df.iterrows():
with st.expander(f"{row['Nama']} - {row['Posisi']}"):
col1, col2, col3 = st.columns(3)
with col1:
st.write(f"Email: {row['Email']}")
with col2:
st.write(f"Pengalaman: {row['Pengalaman']} tahun")
with col3:
status = st.selectbox('Status',
['Dalam Review', 'Interview', 'Diterima', 'Ditolak'],
index=['Dalam Review', 'Interview', 'Diterima', 'Ditolak'].index(row['Status']),
key=f'status_{idx}')
if status != row['Status']:
st.session_state.candidates.at[idx, 'Status'] = status
st.rerun()
else:
st.info('Belum ada kandidat yang terdaftar.')
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?