-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
137 lines (98 loc) · 5.28 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import streamlit as st
import pandas as pd
from PIL import Image
import pickle
im = Image.open('assets/images.png')
st.set_page_config(page_title="MBIT",page_icon = im)
st.image('./assets/images.png')
st.write("""
# Sistem Pakar dalam Menentukan Minat Bakat Mahasiswa Informatika
""")
st.write("""
## The Creator
""")
### Menampilkan creator yang membuat web ini
col1, col2, col3 = st.columns(3)
with col1:
st.write("""
### Abdul Hafidh
""")
st.image('./assets/Abdul_H.jpeg')
with col2:
st.write("""
### Yoan Rifqi Candra
""")
st.image('./assets/Yoan.jpeg')
with col3:
st.write("""
### Haris Daffa
""")
st.image("./assets/Haris.jpeg")
### Menampilkan foto creator
# use model to predict new data (new survey) from user input (web) and return the result (class)
st.write("""
## Silahkan isi form berikut ini untuk mengetahui minat bakat anda di bidang informatika
- Apakah kamu tertarik dengan matematika?
- Apakah kamu tertarik dengan bidang keilmuan statistika?
- Apakah kamu suka melihat data-data yang sangat banyak?
- Apakah kamu suka dalam hal menerawang sesuatu?
- Apakah kamu suka merancang atau mendesain sesuatu?
- Apakah kamu suka membikin aplikasi mobile?
- Apakah kamu tertarik dalam hal membikin game?
- Apakah kamu tertarik dalam hal bikin web?
- Apakah kamu tertarik dalam hal hacking seperti yang ada dalam film?
- Apakah kamu tertarik dalam hal membobol situs web seperti bjorka?
- Apakah kamu suka dalam hal pemetaan?
- Apakah kamu suka membajak komputer orang?
- Apakah kamu pernah membayangkan diri kamu itu sebagai seorang cyber security?
- Apakah kamu suka dalam mengolah suatu citra/gambar?
- Apakah kamu suka menjelajah suatu wilayah dengan tujuan untuk meneliti suatu wilayah?
""")
# get user input from web
soal1 = st.selectbox('Apakah kamu tertarik dengan matematika?', ('Tidak Setuju', 'Setuju'))
soal2 = st.selectbox('Apakah kamu tertarik dengan bidang keilmuan statistika?', ('Tidak Setuju', 'Setuju'))
soal3 = st.selectbox('Apakah kamu suka melihat data-data yang sangat banyak?', ('Tidak Setuju', 'Setuju'))
soal4 = st.selectbox('Apakah kamu suka dalam hal menerawang sesuatu?', ('Tidak Setuju', 'Setuju'))
soal5 = st.selectbox('Apakah kamu suka merancang atau mendesain sesuatu?', ('Tidak Setuju', 'Setuju'))
soal6 = st.selectbox('Apakah kamu suka membikin aplikasi mobile?', ('Tidak Setuju', 'Setuju'))
soal7 = st.selectbox('Apakah kamu tertarik dalam hal membikin game?', ('Tidak Setuju', 'Setuju'))
soal8 = st.selectbox('Apakah kamu tertarik dalam hal bikin web?', ('Tidak Setuju', 'Setuju'))
soal9 = st.selectbox('Apakah kamu tertarik dalam hal hacking seperti yang ada dalam film?', ('Tidak Setuju', 'Setuju'))
soal10 = st.selectbox('Apakah kamu tertarik dalam hal membobol situs web seperti bjorka?', ('Tidak Setuju', 'Setuju'))
soal11 = st.selectbox('Apakah kamu suka dalam hal pemetaan?', ('Tidak Setuju', 'Setuju'))
soal12 = st.selectbox('Apakah kamu suka membajak komputer orang?', ('Tidak Setuju', 'Setuju'))
soal13 = st.selectbox('Apakah kamu pernah membayangkan diri kamu itu sebagai seorang cyber security?', ('Tidak Setuju', 'Setuju'))
soal14 = st.selectbox('Apakah kamu suka dalam mengolah suatu citra/gambar?', ('Tidak Setuju', 'Setuju'))
soal15 = st.selectbox('Apakah kamu suka menjelajah suatu wilayah dengan tujuan untuk meneliti suatu wilayah ?', ('Tidak Setuju', 'Setuju'))
reveal = st.button('Tampilkan Hasil')
# create new data from user input and convert value to float
new_data = {
# If value = "Setuju" then convert to 0.0, else convert to 1.0
'soal1': 0.0 if soal1 == 'Setuju' else 1.0,
'soal2': 0.0 if soal2 == 'Setuju' else 1.0,
'soal3': 0.0 if soal3 == 'Setuju' else 1.0,
'soal4': 0.0 if soal4 == 'Setuju' else 1.0,
'soal5': 0.0 if soal5 == 'Setuju' else 1.0,
'soal6': 0.0 if soal6 == 'Setuju' else 1.0,
'soal7': 0.0 if soal7 == 'Setuju' else 1.0,
'soal8': 0.0 if soal8 == 'Setuju' else 1.0,
'soal9': 0.0 if soal9 == 'Setuju' else 1.0,
'soal10': 0.0 if soal10 == 'Setuju' else 1.0,
'soal11': 0.0 if soal11 == 'Setuju' else 1.0,
'soal12': 0.0 if soal12 == 'Setuju' else 1.0,
'soal13': 0.0 if soal13 == 'Setuju' else 1.0,
'soal14': 0.0 if soal14 == 'Setuju' else 1.0,
'soal15': 0.0 if soal15 == 'Setuju' else 1.0,
}
# create new dataframe from new data
new_df = pd.DataFrame(new_data, index=[0])
# load model
model = pickle.load(open('models/RF_model.pkl', 'rb'))
# predict new data with button but if all value is 0.0 then show error
if reveal:
# check if soal1 until soal15 is 0.0
if new_df['soal1'].values[0] == 1.0 and new_df['soal2'].values[0] == 1.0 and new_df['soal3'].values[0] == 1.0 and new_df['soal4'].values[0] == 1.0 and new_df['soal5'].values[0] == 1.0 and new_df['soal6'].values[0] == 1.0 and new_df['soal7'].values[0] == 1.0 and new_df['soal8'].values[0] == 1.0 and new_df['soal9'].values[0] == 1.0 and new_df['soal10'].values[0] == 1.0 and new_df['soal11'].values[0] == 1.0 and new_df['soal12'].values[0] == 1.0 and new_df['soal13'].values[0] == 1.0 and new_df['soal14'].values[0] == 1.0 and new_df['soal15'].values[0] == 1.0:
st.write('Mohon pilih jawaban terlebih dahulu')
else:
prediction = model.predict(new_df)
st.write('Kamu cocok di bidang: ', prediction[0])