Commit Pertama

This commit is contained in:
ninikyuniarsih 2026-05-24 13:17:19 +07:00
commit 68338dc58c
40 changed files with 10006 additions and 0 deletions

17
.gitignore vendored Normal file
View File

@ -0,0 +1,17 @@
# Build files
dist/
build/
# Python cache
__pycache__/
*.pyc
# Virtual environment
venv/
env/
# VS Code
.vscode/
# PyInstaller
*.spec

60
DEPLOY_EXE.md Normal file
View File

@ -0,0 +1,60 @@
# Deploy ke EXE (Windows)
## 1) Prasyarat
- Python 3.9+ terpasang
- PostgreSQL aktif dan database `db_klasifikasi` tersedia
- Dependensi bisa di-install via internet (minimal saat build pertama)
## 2) Build EXE
Dari root project, jalankan:
```bat
build_exe.bat
```
Script akan otomatis:
- install/update dependency dari `requirements.txt`
- install `pyinstaller`
- build aplikasi menjadi EXE
- menyertakan folder `data`, `models`, dan `img`
## 3) Hasil Build
Output ada di:
```text
dist/jurusify/
```
File utama yang dijalankan:
```text
dist/jurusify/jurusify.exe
```
## 4) Catatan penting
- Aplikasi ini memakai PostgreSQL (`db/database.py`).
- Saat dipindah ke komputer lain, pastikan:
- PostgreSQL terinstall
- database, user, password sesuai konfigurasi di `db/database.py`
- port/host database bisa diakses
## 5) Build ulang
Jika ada perubahan kode, jalankan lagi `build_exe.bat`.
## 6) Paket yang dibagikan ke user
Untuk user akhir, kirimkan:
1. Folder aplikasi EXE:
- `dist/jurusify/`
2. File setup database:
- `setup_db.bat`
- `db/schema.sql`
3. Panduan user:
- `USER_INSTALL.md`
Dengan ini user cukup:
1. Install PostgreSQL
2. Jalankan `setup_db.bat`
3. Jalankan `jurusify.exe`

0
README.md Normal file
View File

36
USER_INSTALL.md Normal file
View File

@ -0,0 +1,36 @@
# Panduan User (PostgreSQL + EXE)
## Yang harus diberikan ke user
1. Folder hasil build EXE:
- `dist/jurusify/`
2. File setup database:
- `setup_db.bat`
- `db/schema.sql`
## Langkah instalasi di komputer user
1. Install PostgreSQL (versi 13+ disarankan).
2. Buka Command Prompt sebagai user biasa.
3. Masuk ke folder aplikasi, lalu jalankan:
```bat
setup_db.bat
```
Catatan:
- Jika user PostgreSQL bukan `postgres`, jalankan:
```bat
setup_db.bat nama_user_postgres
```
4. Setelah database selesai dibuat, jalankan:
```text
dist/jurusify/jurusify.exe
```
## Penting
- Pastikan service PostgreSQL dalam keadaan running.
- Kredensial koneksi database aplikasi ada di `db/database.py`.
- Jika host/user/password berbeda, sesuaikan dulu `DB_CONFIG` di `db/database.py`, lalu build ulang EXE.

97
build_exe.bat Normal file
View File

@ -0,0 +1,97 @@
@echo off
setlocal
cd /d "%~dp0"
echo ================================================
echo Build EXE - Sistem Klasifikasi Jurusan Siswa
echo ================================================
python --version >nul 2>&1
if errorlevel 1 (
echo [ERROR] Python tidak ditemukan di PATH.
pause
exit /b 1
)
python -m pip install --upgrade pip
if errorlevel 1 (
echo [ERROR] Gagal update pip.
pause
exit /b 1
)
python -m pip install -r requirements.txt
if errorlevel 1 (
echo [ERROR] Gagal install dependency dari requirements.txt.
pause
exit /b 1
)
python -m pip install pyinstaller
if errorlevel 1 (
echo [ERROR] Gagal install pyinstaller.
pause
exit /b 1
)
echo Menutup proses jurusify.exe jika masih berjalan...
taskkill /F /IM jurusify.exe >nul 2>&1
echo Menyiapkan ikon logo_sekolah.ico...
python convert_logo.py
if not exist "img\logo_sekolah.png" (
echo [ERROR] Ikon wajib tidak ditemukan: img\logo_sekolah.png
echo [ERROR] Build dibatalkan agar EXE tidak memakai ikon default.
pause
exit /b 1
)
if exist build (
rmdir /s /q build
if exist build (
echo [ERROR] Folder build tidak bisa dihapus. Tutup aplikasi/Explorer yang sedang membuka file build lalu coba lagi.
pause
exit /b 1
)
)
if exist dist (
rmdir /s /q dist
if exist dist (
echo [ERROR] Folder dist tidak bisa dihapus. Pastikan jurusify.exe sudah ditutup lalu coba lagi.
pause
exit /b 1
)
)
if exist "SistemKlasifikasiJurusan.spec" del /q "SistemKlasifikasiJurusan.spec"
if exist "jurusify.spec" del /q "jurusify.spec"
pyinstaller ^
--noconfirm ^
--clean ^
--windowed ^
--name "jurusify" ^
--icon "%CD%\img\logo_sekolah.png" ^
--add-data "data;data" ^
--add-data "models;models" ^
--add-data "img;img" ^
main.py
if errorlevel 1 (
echo [ERROR] Build gagal.
pause
exit /b 1
)
echo.
echo [OK] Build selesai.
echo Hasil ada di: dist\jurusify\
echo Jalankan: dist\jurusify\jurusify.exe
echo.
echo [PENTING] Jangan jalankan file EXE dari folder build\
echo [PENTING] Jalankan EXE hanya dari folder dist\jurusify\
echo.
pause

197
build_run.log Normal file
View File

@ -0,0 +1,197 @@
================================================
Build EXE - Sistem Klasifikasi Jurusan Siswa
================================================
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
Requirement already satisfied: pip in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (26.0.1)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
Requirement already satisfied: PyQt5==5.15.10 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 1)) (5.15.10)
Requirement already satisfied: pandas==2.1.4 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 2)) (2.1.4)
Requirement already satisfied: numpy==1.24.3 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 3)) (1.24.3)
Requirement already satisfied: scikit-learn==1.3.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 4)) (1.3.2)
Requirement already satisfied: matplotlib==3.7.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 5)) (3.7.2)
Requirement already satisfied: seaborn==0.12.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 6)) (0.12.2)
Requirement already satisfied: psycopg2-binary==2.9.9 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 7)) (2.9.9)
Requirement already satisfied: joblib==1.3.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 8)) (1.3.2)
Requirement already satisfied: xlsxwriter==3.1.9 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 9)) (3.1.9)
Requirement already satisfied: openpyxl==3.1.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 10)) (3.1.2)
Requirement already satisfied: Pillow==10.4.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from -r requirements.txt (line 11)) (10.4.0)
Requirement already satisfied: PyQt5-sip<13,>=12.13 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from PyQt5==5.15.10->-r requirements.txt (line 1)) (12.17.2)
Requirement already satisfied: PyQt5-Qt5>=5.15.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from PyQt5==5.15.10->-r requirements.txt (line 1)) (5.15.2)
Requirement already satisfied: python-dateutil>=2.8.2 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pandas==2.1.4->-r requirements.txt (line 2)) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pandas==2.1.4->-r requirements.txt (line 2)) (2025.2)
Requirement already satisfied: tzdata>=2022.1 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pandas==2.1.4->-r requirements.txt (line 2)) (2025.3)
Requirement already satisfied: scipy>=1.5.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from scikit-learn==1.3.2->-r requirements.txt (line 4)) (1.15.3)
Requirement already satisfied: threadpoolctl>=2.0.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from scikit-learn==1.3.2->-r requirements.txt (line 4)) (3.6.0)
Requirement already satisfied: contourpy>=1.0.1 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from matplotlib==3.7.2->-r requirements.txt (line 5)) (1.3.2)
Requirement already satisfied: cycler>=0.10 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from matplotlib==3.7.2->-r requirements.txt (line 5)) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from matplotlib==3.7.2->-r requirements.txt (line 5)) (4.61.1)
Requirement already satisfied: kiwisolver>=1.0.1 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from matplotlib==3.7.2->-r requirements.txt (line 5)) (1.4.9)
Requirement already satisfied: packaging>=20.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from matplotlib==3.7.2->-r requirements.txt (line 5)) (25.0)
Requirement already satisfied: pyparsing<3.1,>=2.3.1 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from matplotlib==3.7.2->-r requirements.txt (line 5)) (3.0.9)
Requirement already satisfied: et-xmlfile in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from openpyxl==3.1.2->-r requirements.txt (line 10)) (2.0.0)
Requirement already satisfied: six>=1.5 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from python-dateutil>=2.8.2->pandas==2.1.4->-r requirements.txt (line 2)) (1.17.0)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
Requirement already satisfied: pyinstaller in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (6.19.0)
Requirement already satisfied: altgraph in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pyinstaller) (0.17.5)
Requirement already satisfied: packaging>=22.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pyinstaller) (25.0)
Requirement already satisfied: pefile>=2022.5.30 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pyinstaller) (2024.8.26)
Requirement already satisfied: pyinstaller-hooks-contrib>=2026.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pyinstaller) (2026.4)
Requirement already satisfied: pywin32-ctypes>=0.2.1 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pyinstaller) (0.2.3)
Requirement already satisfied: setuptools>=42.0.0 in C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages (from pyinstaller) (65.5.0)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
WARNING: Ignoring invalid distribution ~cikit-learn (C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages)
Menutup proses jurusify.exe jika masih berjalan...
Menyiapkan ikon logo_sekolah.ico...
[OK] Berhasil convert: img\logo_sekolah.png -> img\logo_sekolah.ico
234 INFO: PyInstaller: 6.19.0, contrib hooks: 2026.4
234 INFO: Python: 3.11.9
253 INFO: Platform: Windows-10-10.0.26200-SP0
253 INFO: Python environment: C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311
253 INFO: wrote D:\klasifikasi_jurusan_siswa\jurusify.spec
257 INFO: Removing temporary files and cleaning cache in C:\Users\Ninik Yuniarsih\AppData\Local\pyinstaller
257 INFO: Module search paths (PYTHONPATH):
['C:\\Users\\Ninik '
'Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\pyinstaller.exe',
'C:\\Users\\Ninik '
'Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip',
'C:\\Users\\Ninik '
'Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\DLLs',
'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib',
'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311',
'C:\\Users\\Ninik '
'Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages',
'D:\\klasifikasi_jurusan_siswa']
663 INFO: Appending 'datas' from .spec
663 INFO: checking Analysis
663 INFO: Building Analysis because Analysis-00.toc is non existent
663 INFO: Looking for Python shared library...
663 INFO: Using Python shared library: C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\python311.dll
663 INFO: Running Analysis Analysis-00.toc
663 INFO: Target bytecode optimization level: 0
663 INFO: Initializing module dependency graph...
663 INFO: Initializing module graph hook caches...
746 INFO: Analyzing modules for base_library.zip ...
1530 INFO: Processing standard module hook 'hook-encodings.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
1946 INFO: Processing standard module hook 'hook-heapq.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
3230 INFO: Processing standard module hook 'hook-pickle.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
4742 INFO: Caching module dependency graph...
4787 INFO: Analyzing D:\klasifikasi_jurusan_siswa\main.py
4792 INFO: Processing standard module hook 'hook-PyQt5.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
5661 INFO: Processing standard module hook 'hook-PyQt5.QtWidgets.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
8879 INFO: Processing standard module hook 'hook-PyQt5.QtCore.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
11833 INFO: Processing standard module hook 'hook-PyQt5.QtGui.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
28945 INFO: Processing standard module hook 'hook-psycopg2.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
29060 INFO: Processing standard module hook 'hook-platform.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
29095 INFO: Processing standard module hook 'hook-pandas.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
31211 INFO: Processing standard module hook 'hook-sysconfig.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
31228 INFO: Processing standard module hook 'hook-numpy.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
31811 INFO: Processing standard module hook 'hook-difflib.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
31978 INFO: Processing standard module hook 'hook-multiprocessing.util.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
32161 INFO: Processing standard module hook 'hook-xml.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
32415 INFO: Processing standard module hook 'hook-_ctypes.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
34542 INFO: Processing standard module hook 'hook-pytz.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
35042 INFO: Processing standard module hook 'hook-scipy.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
35659 INFO: Processing standard module hook 'hook-scipy.linalg.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
35778 INFO: Processing standard module hook 'hook-scipy.special._ufuncs.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
35944 INFO: Processing standard module hook 'hook-scipy.special._ellip_harm_2.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
36311 INFO: Processing standard module hook 'hook-scipy.spatial._ckdtree.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
36323 INFO: Processing pre-safe-import-module hook 'hook-typing_extensions.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module'
36325 INFO: SetuptoolsInfo: initializing cached setuptools info...
37127 INFO: Processing standard module hook 'hook-matplotlib.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
37594 INFO: Processing pre-safe-import-module hook 'hook-packaging.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module'
37677 INFO: Processing pre-safe-import-module hook 'hook-gi.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module'
37760 INFO: Processing standard module hook 'hook-PIL.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
37910 INFO: Processing standard module hook 'hook-PIL.Image.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
38649 INFO: Processing standard module hook 'hook-PIL.ImageFilter.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
39508 INFO: Processing standard module hook 'hook-matplotlib.pyplot.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
40008 INFO: Processing standard module hook 'hook-matplotlib.backend_bases.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
40744 INFO: Processing standard module hook 'hook-dateutil.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
40810 INFO: Processing pre-safe-import-module hook 'hook-six.moves.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module'
41911 INFO: Processing standard module hook 'hook-matplotlib.backends.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
42193 INFO: Processing pre-safe-import-module hook 'hook-importlib_resources.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_safe_import_module'
43455 INFO: Processing standard module hook 'hook-scipy.sparse.csgraph.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
43811 INFO: Processing standard module hook 'hook-scipy.spatial.transform.rotation.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
44801 INFO: Processing standard module hook 'hook-scipy.stats._stats.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
46970 INFO: Processing standard module hook 'hook-pandas.io.formats.style.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
49431 INFO: Processing standard module hook 'hook-pandas.plotting.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
50104 INFO: Processing standard module hook 'hook-openpyxl.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
50501 INFO: Processing standard module hook 'hook-xml.etree.cElementTree.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
52187 INFO: Processing standard module hook 'hook-sqlite3.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
52450 INFO: Processing standard module hook 'hook-pandas.io.clipboard.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
52835 INFO: Processing standard module hook 'hook-xml.dom.domreg.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
53398 INFO: Processing standard module hook 'hook-sklearn.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
54244 INFO: Processing standard module hook 'hook-sklearn.utils.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
55049 INFO: Processing standard module hook 'hook-sklearn.metrics.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
57735 INFO: Processing standard module hook 'hook-sklearn.metrics.cluster.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
57927 INFO: Processing standard module hook 'hook-sklearn.cluster.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
57987 INFO: Processing standard module hook 'hook-sklearn.metrics.pairwise.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
58380 INFO: Processing standard module hook 'hook-sklearn.neighbors.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
58455 INFO: Processing standard module hook 'hook-sklearn.linear_model.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
59578 INFO: Processing pre-safe-import-module hook 'hook-win32com.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\pre_safe_import_module'
60305 INFO: Processing standard module hook 'hook-matplotlib.backends.backend_qtagg.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
60325 INFO: Processing standard module hook 'hook-matplotlib.backends.qt_compat.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
60327 INFO: hook-matplotlib.backends.qt_compat: selected 'PyQt5' as Qt bindings because hook for 'PyQt5' has been run before.
60394 INFO: Processing module hooks (post-graph stage)...
60395 WARNING: Hidden import "mx.DateTime" not found!
60397 INFO: Processing standard module hook 'hook-sklearn.tree.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\_pyinstaller_hooks_contrib\\stdhooks'
60444 INFO: Processing standard module hook 'hook-matplotlib.backends.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
60445 INFO: Matplotlib backend selection method: automatic discovery of used backends
60905 INFO: Trying determine the default backend as first importable candidate from the list: ['QtAgg', 'Qt5Agg', 'Gtk4Agg', 'Gtk3Agg', 'TkAgg', 'WxAgg']
61555 INFO: Selected matplotlib backends: ['QtAgg']
61998 INFO: Processing standard module hook 'hook-PIL.SpiderImagePlugin.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
62071 WARNING: Hidden import "scipy.special._cdflib" not found!
62090 INFO: Performing binary vs. data reclassification (1072 entries)
62631 INFO: Looking for ctypes DLLs
62820 INFO: Analyzing run-time hooks ...
62834 INFO: Including run-time hook 'pyi_rth_inspect.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks'
62834 INFO: Including run-time hook 'pyi_rth_pkgutil.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks'
62834 INFO: Including run-time hook 'pyi_rth_multiprocessing.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks'
62842 INFO: Including run-time hook 'pyi_rth_pyqt5.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks'
62842 INFO: Processing pre-find-module-path hook 'hook-_pyi_rth_utils.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\pre_find_module_path'
62842 INFO: Processing standard module hook 'hook-_pyi_rth_utils.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks'
62850 INFO: Including run-time hook 'pyi_rth_mplconfig.py' from 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyInstaller\\hooks\\rthooks'
62898 INFO: Creating base_library.zip...
62930 INFO: Looking for dynamic libraries
C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages\PyInstaller\building\build_main.py:227: UserWarning: The numpy.array_api submodule is still experimental. See NEP 47.
__import__(package)
65679 INFO: Extra DLL search directories (AddDllDirectory): ['C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyQt5\\Qt5\\bin', 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pandas.libs', 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\numpy\\.libs', 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\scipy.libs', 'C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\matplotlib.libs']
65679 INFO: Extra DLL search directories (PATH): ['C:\\Users\\Ninik Yuniarsih\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\PyQt5\\Qt5\\bin']
68486 INFO: Warnings written to D:\klasifikasi_jurusan_siswa\build\jurusify\warn-jurusify.txt
68648 INFO: Graph cross-reference written to D:\klasifikasi_jurusan_siswa\build\jurusify\xref-jurusify.html
68736 INFO: checking PYZ
68736 INFO: Building PYZ because PYZ-00.toc is non existent
68736 INFO: Building PYZ (ZlibArchive) D:\klasifikasi_jurusan_siswa\build\jurusify\PYZ-00.pyz
70311 INFO: Building PYZ (ZlibArchive) D:\klasifikasi_jurusan_siswa\build\jurusify\PYZ-00.pyz completed successfully.
70346 INFO: checking PKG
70346 INFO: Building PKG because PKG-00.toc is non existent
70346 INFO: Building PKG (CArchive) jurusify.pkg
70378 INFO: Building PKG (CArchive) jurusify.pkg completed successfully.
70378 INFO: Bootloader C:\Users\Ninik Yuniarsih\AppData\Local\Programs\Python\Python311\Lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\runw.exe
70378 INFO: checking EXE
70378 INFO: Building EXE because EXE-00.toc is non existent
70378 INFO: Building EXE from EXE-00.toc
70378 INFO: Copying bootloader EXE to D:\klasifikasi_jurusan_siswa\build\jurusify\jurusify.exe
70637 INFO: Copying icon to EXE
70699 INFO: Copying 0 resources to EXE
70699 INFO: Embedding manifest in EXE
70731 INFO: Appending PKG archive to EXE
70932 INFO: Fixing EXE headers
72100 INFO: Building EXE from EXE-00.toc completed successfully.
72115 INFO: checking COLLECT
72115 INFO: Building COLLECT because COLLECT-00.toc is non existent
72115 INFO: Building COLLECT COLLECT-00.toc
74874 INFO: Building COLLECT COLLECT-00.toc completed successfully.
74902 INFO: Build complete! The results are available in: D:\klasifikasi_jurusan_siswa\dist
[OK] Build selesai.
Hasil ada di: dist\jurusify\
Jalankan: dist\jurusify\jurusify.exe
[PENTING] Jangan jalankan file EXE dari folder build\
[PENTING] Jalankan EXE hanya dari folder dist\jurusify\
Press any key to continue . . .

76
config.py Normal file
View File

@ -0,0 +1,76 @@
# Konfigurasi untuk Sistem Klasifikasi Jurusan
import os
import sys
def _resource_base_dir():
"""Direktori dasar untuk sumber daya read-only yang dibundel."""
if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
return sys._MEIPASS
return os.path.dirname(os.path.abspath(__file__))
def _writable_base_dir():
"""Direktori dasar untuk file runtime yang dapat ditulis (mis. model terlatih)."""
if getattr(sys, 'frozen', False):
return os.path.dirname(sys.executable)
return os.path.dirname(os.path.abspath(__file__))
RESOURCE_BASE_DIR = _resource_base_dir()
WRITABLE_BASE_DIR = _writable_base_dir()
def get_resource_path(relative_path):
return os.path.join(RESOURCE_BASE_DIR, relative_path)
def get_writable_path(relative_path):
return os.path.join(WRITABLE_BASE_DIR, relative_path)
def get_app_icon_path():
"""Tentukan path ikon terbaik untuk aplikasi/jendela jika tersedia."""
candidates = [
get_resource_path(os.path.join('img', 'logo_sekolah.ico')),
get_writable_path(os.path.join('img', 'logo_sekolah.ico')),
get_resource_path(os.path.join('img', 'Logo_skripsi.ico')),
get_writable_path(os.path.join('img', 'Logo_skripsi.ico')),
get_writable_path(os.path.join('img', 'logo_sekolah.png')),
get_resource_path(os.path.join('img', 'logo_sekolah.png')),
get_writable_path(os.path.join('img', 'Logo_skripsi.png')),
get_resource_path(os.path.join('img', 'Logo_skripsi.png')),
get_writable_path(os.path.join('img', 'logo_sma.ico')),
get_resource_path(os.path.join('img', 'logo_sma.ico')),
get_writable_path(os.path.join('img', 'logo_sma.png')),
get_resource_path(os.path.join('img', 'logo_sma.png')),
]
for path in candidates:
if os.path.exists(path):
return path
return ''
# Konfigurasi dataset
TRAIN_DATASET_PATH = get_resource_path(os.path.join('data', 'dataset_smakom_final_train.csv'))
TEST_DATASET_PATH = get_resource_path(os.path.join('data', 'dataset_smakom_final_test.csv'))
DATASET_PATH = TRAIN_DATASET_PATH
# Path model: dapat ditulis untuk retraining, sebagai fallback saat pertama kali dimuat
MODEL_PATH = get_writable_path(os.path.join('models', 'trained_model.pkl'))
BUNDLED_MODEL_PATH = get_resource_path(os.path.join('models', 'trained_model.pkl'))
# Konfigurasi pelatihan
TEST_SIZE = 0.2 # 20% untuk testing, 80% untuk training (300 data: 240 training, 60 testing)
RANDOM_STATE = 42 # nomor acak tetap agar hasil random sama
# Konfigurasi KNN
DEFAULT_K_NEIGHBORS = 27
KNN_WEIGHTS = 'distance'
KNN_METRIC = 'euclidean'
OPTIMIZE_K = True
K_RANGE = range(3, 52, 2) # Kandidat k untuk GridSearchCV pada data ini: 3,5,7,...,51
# Konfigurasi basis data (sudah ada di db/database.py)
# Konfigurasi performa
CROSS_VALIDATION_FOLDS = 5

87
convert_logo.py Normal file
View File

@ -0,0 +1,87 @@
"""Convert logo_sekolah.png ke logo_sekolah.ico multi-size untuk PyInstaller."""
import os
import numpy as np
from PIL import Image, ImageEnhance, ImageFilter
def _trim_content(image, tolerance=18):
"""Crop area kosong/warna latar agar simbol utama lebih dominan saat jadi ikon kecil."""
rgba = image.convert("RGBA")
arr = np.array(rgba)
alpha = arr[:, :, 3]
rgb = arr[:, :, :3].astype(np.int16)
corners = np.array([
rgb[0, 0],
rgb[0, -1],
rgb[-1, 0],
rgb[-1, -1],
], dtype=np.int16)
bg = np.median(corners, axis=0)
dist = np.max(np.abs(rgb - bg), axis=2)
mask = (alpha > 10) & (dist > tolerance)
if not np.any(mask):
mask = alpha > 10
if not np.any(mask):
return rgba
ys, xs = np.where(mask)
left, right = int(xs.min()), int(xs.max()) + 1
top, bottom = int(ys.min()), int(ys.max()) + 1
return rgba.crop((left, top, right, bottom))
def _prepare_square_icon(image):
"""Trim margin lalu pasang ke canvas persegi tanpa mengubah warna/detail logo asli."""
image = _trim_content(image)
image = image.convert("RGBA")
# Penajaman ringan agar tetap asli namun lebih jelas di ukuran kecil.
alpha = image.split()[-1]
rgb = image.convert("RGB")
rgb = rgb.filter(ImageFilter.UnsharpMask(radius=1.2, percent=115, threshold=2))
rgb = ImageEnhance.Contrast(rgb).enhance(1.06)
image = rgb.convert("RGBA")
image.putalpha(alpha)
canvas_size = 1024
canvas = Image.new("RGBA", (canvas_size, canvas_size), (0, 0, 0, 0))
max_dim = int(canvas_size * 0.985)
image.thumbnail((max_dim, max_dim), Image.Resampling.LANCZOS)
x = (canvas_size - image.width) // 2
y = (canvas_size - image.height) // 2
canvas.paste(image, (x, y), image)
return canvas
def main():
img_dir = "img"
png_file = os.path.join(img_dir, "logo_sekolah.png")
ico_file = os.path.join(img_dir, "logo_sekolah.ico")
if not os.path.exists(png_file):
print(f"[INFO] File tidak ditemukan: {png_file}. Konversi dilewati.")
return 0
try:
img = Image.open(png_file)
square_img = _prepare_square_icon(img)
sizes = [
(16, 16), (20, 20), (24, 24), (32, 32), (40, 40),
(48, 48), (64, 64), (72, 72), (96, 96), (128, 128), (256, 256),
]
square_img.save(ico_file, format="ICO", sizes=sizes)
print(f"[OK] Berhasil convert: {png_file} -> {ico_file}")
return 0
except Exception as exc:
print(f"[ERROR] Gagal convert logo: {exc}")
return 1
if __name__ == "__main__":
raise SystemExit(main())

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

121
data/dataset_dummy.csv Normal file
View File

@ -0,0 +1,121 @@
nama_siswa,nilai_informatika,nilai_fisika,nilai_kimia,nilai_biologi,nilai_big_lanjut,nilai_ekonomi,nilai_mat_lanjut,nilai_sej_lanjut,nilai_sosiologi,nilai_geografi,paket_jurusan
Siswa_1,85,79,99,97,90,69,84,70,96,72,2
Siswa_2,82,84,88,93,69,94,99,72,99,66,1
Siswa_3,72,77,87,88,97,79,88,88,64,92,2
Siswa_4,83,84,94,74,87,84,62,69,75,79,2
Siswa_5,63,65,84,89,93,77,97,63,100,97,6
Siswa_6,71,64,70,82,89,93,87,66,97,96,6
Siswa_7,89,83,90,82,87,77,81,77,61,74,2
Siswa_8,93,87,96,63,78,92,89,98,77,77,4
Siswa_9,70,68,71,73,90,72,89,100,80,93,4
Siswa_10,85,62,73,81,92,80,93,98,96,84,5
Siswa_11,96,66,67,71,92,99,77,61,91,77,3
Siswa_12,64,98,85,95,60,63,70,79,85,76,1
Siswa_13,71,88,61,73,71,97,69,91,68,84,4
Siswa_14,90,75,81,80,90,64,61,100,65,81,2
Siswa_15,85,64,93,82,86,61,87,75,70,71,2
Siswa_16,80,96,81,98,80,70,75,63,79,97,1
Siswa_17,74,74,88,71,73,68,72,76,78,61,1
Siswa_18,72,95,71,95,80,67,71,98,66,98,1
Siswa_19,91,64,88,83,76,71,74,98,60,61,2
Siswa_20,91,83,63,60,76,87,100,99,80,68,4
Siswa_21,78,96,96,89,78,64,76,75,99,73,1
Siswa_22,90,85,78,83,78,62,85,64,99,60,1
Siswa_23,66,79,80,77,77,68,94,77,77,68,3
Siswa_24,86,98,68,77,94,93,86,71,70,87,3
Siswa_25,81,96,100,94,85,76,75,63,74,70,1
Siswa_26,92,92,66,66,91,84,91,68,69,69,3
Siswa_27,92,62,87,87,97,63,66,87,79,100,2
Siswa_28,74,89,85,74,71,92,61,80,79,69,5
Siswa_29,83,99,92,98,66,62,62,64,82,94,1
Siswa_30,77,78,63,91,81,64,92,78,93,93,6
Siswa_31,67,86,62,96,65,99,93,87,89,98,6
Siswa_32,70,75,94,64,62,71,90,99,66,66,4
Siswa_33,89,86,68,92,66,68,67,91,65,87,1
Siswa_34,65,97,72,70,76,95,83,65,70,66,3
Siswa_35,71,78,89,60,99,69,72,61,100,61,2
Siswa_36,88,97,79,75,85,85,94,78,63,86,3
Siswa_37,92,92,97,87,95,61,83,79,74,73,2
Siswa_38,98,84,83,85,94,60,60,74,67,86,2
Siswa_39,80,84,84,74,81,63,65,77,62,73,1
Siswa_40,98,100,98,97,62,91,91,93,80,72,1
Siswa_41,100,78,77,83,88,84,84,97,65,71,4
Siswa_42,72,85,85,63,99,93,67,72,98,86,6
Siswa_43,81,99,86,74,89,70,81,60,60,66,1
Siswa_44,83,68,82,76,93,83,99,78,100,72,3
Siswa_45,70,86,99,62,71,94,66,64,83,60,1
Siswa_46,74,75,73,89,91,87,74,79,93,63,5
Siswa_47,71,80,72,88,92,87,63,98,92,80,5
Siswa_48,61,90,65,90,89,83,95,85,66,93,3
Siswa_49,84,95,72,88,93,86,71,86,72,98,6
Siswa_50,92,85,61,100,67,66,79,64,79,73,1
Siswa_51,89,85,89,91,86,98,68,88,72,94,2
Siswa_52,70,95,72,100,92,95,67,97,100,81,5
Siswa_53,81,85,62,72,74,80,98,98,67,87,4
Siswa_54,88,61,84,82,68,68,63,97,78,95,5
Siswa_55,88,63,79,73,62,60,80,100,84,83,5
Siswa_56,78,84,62,94,76,90,68,63,74,66,1
Siswa_57,67,67,64,77,99,67,68,82,80,97,6
Siswa_58,86,61,96,95,95,64,77,61,96,93,2
Siswa_59,97,64,77,98,79,85,73,83,85,83,2
Siswa_60,97,99,64,64,78,71,85,74,64,63,3
Siswa_61,83,65,76,83,95,91,66,99,91,69,5
Siswa_62,63,61,87,76,100,89,87,64,61,85,3
Siswa_63,71,77,81,87,78,78,82,66,60,97,2
Siswa_64,84,86,67,77,82,64,70,93,97,93,5
Siswa_65,94,72,73,97,94,63,90,60,88,66,2
Siswa_66,83,65,84,94,100,62,79,95,100,76,2
Siswa_67,67,95,100,67,75,62,87,89,83,72,1
Siswa_68,84,67,62,95,87,98,95,83,88,77,3
Siswa_69,94,99,99,70,67,83,94,63,85,72,1
Siswa_70,93,100,86,72,91,88,100,82,86,92,3
Siswa_71,79,80,85,90,64,62,87,60,92,81,1
Siswa_72,83,70,90,88,85,67,98,63,74,67,2
Siswa_73,98,60,98,60,89,75,71,66,76,98,6
Siswa_74,83,66,70,87,67,65,94,94,89,69,4
Siswa_75,63,90,60,96,89,74,67,66,86,98,6
Siswa_76,98,72,85,70,75,75,81,97,87,89,5
Siswa_77,69,88,100,98,71,76,70,97,67,94,1
Siswa_78,84,71,85,82,80,91,62,64,76,82,6
Siswa_79,60,88,84,77,69,73,79,74,60,71,1
Siswa_80,79,85,62,100,63,91,66,85,65,93,6
Siswa_81,100,80,82,63,70,69,65,84,88,66,5
Siswa_82,84,72,91,91,99,63,76,82,81,94,2
Siswa_83,77,76,67,84,83,69,73,76,65,95,2
Siswa_84,64,61,86,62,70,66,68,64,72,78,2
Siswa_85,86,65,72,66,82,72,86,78,66,96,3
Siswa_86,64,68,78,91,75,98,97,85,83,93,4
Siswa_87,89,63,64,76,91,82,97,67,88,94,3
Siswa_88,79,89,62,74,100,80,68,97,99,80,5
Siswa_89,96,70,91,92,86,94,91,68,76,85,3
Siswa_90,64,76,70,99,95,83,81,64,90,65,2
Siswa_91,72,78,83,85,71,70,90,81,100,91,6
Siswa_92,68,73,65,72,80,73,80,71,73,88,6
Siswa_93,74,100,74,98,88,74,99,93,89,83,1
Siswa_94,69,96,67,92,95,86,93,85,76,98,3
Siswa_95,67,68,60,87,98,95,90,95,65,76,3
Siswa_96,73,90,93,93,66,78,73,78,75,90,1
Siswa_97,74,91,76,62,100,83,80,90,60,68,3
Siswa_98,80,62,61,78,63,74,79,68,71,81,6
Siswa_99,77,83,68,97,71,75,66,92,78,83,1
Siswa_100,64,74,82,63,78,89,93,65,82,70,3
Siswa_101,87,95,63,81,62,62,92,82,69,79,1
Siswa_102,86,91,68,66,96,86,71,67,66,66,3
Siswa_103,71,64,78,72,88,78,85,73,73,96,3
Siswa_104,98,78,60,99,86,80,72,66,90,87,6
Siswa_105,86,84,82,74,79,74,67,99,67,74,1
Siswa_106,66,90,81,81,88,62,97,97,78,80,4
Siswa_107,86,99,62,85,60,90,66,94,68,81,5
Siswa_108,92,86,92,74,97,68,63,62,65,81,2
Siswa_109,83,93,91,83,60,70,73,87,99,74,1
Siswa_110,87,67,66,67,80,65,76,77,100,70,5
Siswa_111,98,76,91,77,72,89,87,74,93,89,6
Siswa_112,60,79,87,96,82,85,63,93,84,60,2
Siswa_113,92,74,89,85,79,68,82,64,97,64,2
Siswa_114,60,85,63,73,63,91,95,82,68,68,4
Siswa_115,69,83,65,86,89,86,81,78,68,67,3
Siswa_116,82,70,66,65,80,61,86,83,74,66,4
Siswa_117,82,79,92,63,65,68,96,63,85,76,1
Siswa_118,86,94,96,96,90,66,95,71,78,66,1
Siswa_119,81,82,85,61,98,82,90,83,95,75,3
Siswa_120,68,62,84,63,96,91,66,70,65,97,3
1 nama_siswa nilai_informatika nilai_fisika nilai_kimia nilai_biologi nilai_big_lanjut nilai_ekonomi nilai_mat_lanjut nilai_sej_lanjut nilai_sosiologi nilai_geografi paket_jurusan
2 Siswa_1 85 79 99 97 90 69 84 70 96 72 2
3 Siswa_2 82 84 88 93 69 94 99 72 99 66 1
4 Siswa_3 72 77 87 88 97 79 88 88 64 92 2
5 Siswa_4 83 84 94 74 87 84 62 69 75 79 2
6 Siswa_5 63 65 84 89 93 77 97 63 100 97 6
7 Siswa_6 71 64 70 82 89 93 87 66 97 96 6
8 Siswa_7 89 83 90 82 87 77 81 77 61 74 2
9 Siswa_8 93 87 96 63 78 92 89 98 77 77 4
10 Siswa_9 70 68 71 73 90 72 89 100 80 93 4
11 Siswa_10 85 62 73 81 92 80 93 98 96 84 5
12 Siswa_11 96 66 67 71 92 99 77 61 91 77 3
13 Siswa_12 64 98 85 95 60 63 70 79 85 76 1
14 Siswa_13 71 88 61 73 71 97 69 91 68 84 4
15 Siswa_14 90 75 81 80 90 64 61 100 65 81 2
16 Siswa_15 85 64 93 82 86 61 87 75 70 71 2
17 Siswa_16 80 96 81 98 80 70 75 63 79 97 1
18 Siswa_17 74 74 88 71 73 68 72 76 78 61 1
19 Siswa_18 72 95 71 95 80 67 71 98 66 98 1
20 Siswa_19 91 64 88 83 76 71 74 98 60 61 2
21 Siswa_20 91 83 63 60 76 87 100 99 80 68 4
22 Siswa_21 78 96 96 89 78 64 76 75 99 73 1
23 Siswa_22 90 85 78 83 78 62 85 64 99 60 1
24 Siswa_23 66 79 80 77 77 68 94 77 77 68 3
25 Siswa_24 86 98 68 77 94 93 86 71 70 87 3
26 Siswa_25 81 96 100 94 85 76 75 63 74 70 1
27 Siswa_26 92 92 66 66 91 84 91 68 69 69 3
28 Siswa_27 92 62 87 87 97 63 66 87 79 100 2
29 Siswa_28 74 89 85 74 71 92 61 80 79 69 5
30 Siswa_29 83 99 92 98 66 62 62 64 82 94 1
31 Siswa_30 77 78 63 91 81 64 92 78 93 93 6
32 Siswa_31 67 86 62 96 65 99 93 87 89 98 6
33 Siswa_32 70 75 94 64 62 71 90 99 66 66 4
34 Siswa_33 89 86 68 92 66 68 67 91 65 87 1
35 Siswa_34 65 97 72 70 76 95 83 65 70 66 3
36 Siswa_35 71 78 89 60 99 69 72 61 100 61 2
37 Siswa_36 88 97 79 75 85 85 94 78 63 86 3
38 Siswa_37 92 92 97 87 95 61 83 79 74 73 2
39 Siswa_38 98 84 83 85 94 60 60 74 67 86 2
40 Siswa_39 80 84 84 74 81 63 65 77 62 73 1
41 Siswa_40 98 100 98 97 62 91 91 93 80 72 1
42 Siswa_41 100 78 77 83 88 84 84 97 65 71 4
43 Siswa_42 72 85 85 63 99 93 67 72 98 86 6
44 Siswa_43 81 99 86 74 89 70 81 60 60 66 1
45 Siswa_44 83 68 82 76 93 83 99 78 100 72 3
46 Siswa_45 70 86 99 62 71 94 66 64 83 60 1
47 Siswa_46 74 75 73 89 91 87 74 79 93 63 5
48 Siswa_47 71 80 72 88 92 87 63 98 92 80 5
49 Siswa_48 61 90 65 90 89 83 95 85 66 93 3
50 Siswa_49 84 95 72 88 93 86 71 86 72 98 6
51 Siswa_50 92 85 61 100 67 66 79 64 79 73 1
52 Siswa_51 89 85 89 91 86 98 68 88 72 94 2
53 Siswa_52 70 95 72 100 92 95 67 97 100 81 5
54 Siswa_53 81 85 62 72 74 80 98 98 67 87 4
55 Siswa_54 88 61 84 82 68 68 63 97 78 95 5
56 Siswa_55 88 63 79 73 62 60 80 100 84 83 5
57 Siswa_56 78 84 62 94 76 90 68 63 74 66 1
58 Siswa_57 67 67 64 77 99 67 68 82 80 97 6
59 Siswa_58 86 61 96 95 95 64 77 61 96 93 2
60 Siswa_59 97 64 77 98 79 85 73 83 85 83 2
61 Siswa_60 97 99 64 64 78 71 85 74 64 63 3
62 Siswa_61 83 65 76 83 95 91 66 99 91 69 5
63 Siswa_62 63 61 87 76 100 89 87 64 61 85 3
64 Siswa_63 71 77 81 87 78 78 82 66 60 97 2
65 Siswa_64 84 86 67 77 82 64 70 93 97 93 5
66 Siswa_65 94 72 73 97 94 63 90 60 88 66 2
67 Siswa_66 83 65 84 94 100 62 79 95 100 76 2
68 Siswa_67 67 95 100 67 75 62 87 89 83 72 1
69 Siswa_68 84 67 62 95 87 98 95 83 88 77 3
70 Siswa_69 94 99 99 70 67 83 94 63 85 72 1
71 Siswa_70 93 100 86 72 91 88 100 82 86 92 3
72 Siswa_71 79 80 85 90 64 62 87 60 92 81 1
73 Siswa_72 83 70 90 88 85 67 98 63 74 67 2
74 Siswa_73 98 60 98 60 89 75 71 66 76 98 6
75 Siswa_74 83 66 70 87 67 65 94 94 89 69 4
76 Siswa_75 63 90 60 96 89 74 67 66 86 98 6
77 Siswa_76 98 72 85 70 75 75 81 97 87 89 5
78 Siswa_77 69 88 100 98 71 76 70 97 67 94 1
79 Siswa_78 84 71 85 82 80 91 62 64 76 82 6
80 Siswa_79 60 88 84 77 69 73 79 74 60 71 1
81 Siswa_80 79 85 62 100 63 91 66 85 65 93 6
82 Siswa_81 100 80 82 63 70 69 65 84 88 66 5
83 Siswa_82 84 72 91 91 99 63 76 82 81 94 2
84 Siswa_83 77 76 67 84 83 69 73 76 65 95 2
85 Siswa_84 64 61 86 62 70 66 68 64 72 78 2
86 Siswa_85 86 65 72 66 82 72 86 78 66 96 3
87 Siswa_86 64 68 78 91 75 98 97 85 83 93 4
88 Siswa_87 89 63 64 76 91 82 97 67 88 94 3
89 Siswa_88 79 89 62 74 100 80 68 97 99 80 5
90 Siswa_89 96 70 91 92 86 94 91 68 76 85 3
91 Siswa_90 64 76 70 99 95 83 81 64 90 65 2
92 Siswa_91 72 78 83 85 71 70 90 81 100 91 6
93 Siswa_92 68 73 65 72 80 73 80 71 73 88 6
94 Siswa_93 74 100 74 98 88 74 99 93 89 83 1
95 Siswa_94 69 96 67 92 95 86 93 85 76 98 3
96 Siswa_95 67 68 60 87 98 95 90 95 65 76 3
97 Siswa_96 73 90 93 93 66 78 73 78 75 90 1
98 Siswa_97 74 91 76 62 100 83 80 90 60 68 3
99 Siswa_98 80 62 61 78 63 74 79 68 71 81 6
100 Siswa_99 77 83 68 97 71 75 66 92 78 83 1
101 Siswa_100 64 74 82 63 78 89 93 65 82 70 3
102 Siswa_101 87 95 63 81 62 62 92 82 69 79 1
103 Siswa_102 86 91 68 66 96 86 71 67 66 66 3
104 Siswa_103 71 64 78 72 88 78 85 73 73 96 3
105 Siswa_104 98 78 60 99 86 80 72 66 90 87 6
106 Siswa_105 86 84 82 74 79 74 67 99 67 74 1
107 Siswa_106 66 90 81 81 88 62 97 97 78 80 4
108 Siswa_107 86 99 62 85 60 90 66 94 68 81 5
109 Siswa_108 92 86 92 74 97 68 63 62 65 81 2
110 Siswa_109 83 93 91 83 60 70 73 87 99 74 1
111 Siswa_110 87 67 66 67 80 65 76 77 100 70 5
112 Siswa_111 98 76 91 77 72 89 87 74 93 89 6
113 Siswa_112 60 79 87 96 82 85 63 93 84 60 2
114 Siswa_113 92 74 89 85 79 68 82 64 97 64 2
115 Siswa_114 60 85 63 73 63 91 95 82 68 68 4
116 Siswa_115 69 83 65 86 89 86 81 78 68 67 3
117 Siswa_116 82 70 66 65 80 61 86 83 74 66 4
118 Siswa_117 82 79 92 63 65 68 96 63 85 76 1
119 Siswa_118 86 94 96 96 90 66 95 71 78 66 1
120 Siswa_119 81 82 85 61 98 82 90 83 95 75 3
121 Siswa_120 68 62 84 63 96 91 66 70 65 97 3

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

121
data/dataset_siswa.csv Normal file
View File

@ -0,0 +1,121 @@
nama_siswa,nilai_informatika,nilai_fisika,nilai_kimia,nilai_biologi,nilai_big_lanjut,nilai_ekonomi,nilai_mat_lanjut,nilai_sej_lanjut,nilai_sosiologi,nilai_geografi,paket_jurusan
Siswa_1,67,69,62,89,100,68,62,99,93,82,5
Siswa_2,60,85,88,92,60,88,93,80,65,65,1
Siswa_3,74,62,74,75,78,95,66,88,99,72,5
Siswa_4,72,80,100,82,78,97,79,78,67,96,1
Siswa_5,91,81,92,99,89,64,85,66,60,82,2
Siswa_6,62,95,76,93,100,72,71,82,87,87,2
Siswa_7,73,89,83,61,65,82,88,78,94,64,5
Siswa_8,82,72,68,100,80,82,65,79,66,91,2
Siswa_9,71,77,76,79,96,67,74,73,70,97,2
Siswa_10,73,77,62,63,80,98,95,61,89,81,3
Siswa_11,74,76,72,95,94,94,89,62,82,60,3
Siswa_12,77,99,68,86,86,64,96,69,63,90,1
Siswa_13,96,67,71,76,77,75,76,92,69,81,4
Siswa_14,74,83,90,84,79,68,77,79,92,70,1
Siswa_15,96,86,91,100,65,86,79,93,86,65,1
Siswa_16,96,83,83,63,91,74,60,95,61,61,2
Siswa_17,87,93,62,75,76,62,87,100,60,64,4
Siswa_18,67,60,61,82,88,71,82,91,85,74,5
Siswa_19,98,95,78,62,80,74,94,85,97,82,5
Siswa_20,74,94,64,89,99,95,67,70,100,73,6
Siswa_21,96,76,77,63,84,77,61,82,64,64,2
Siswa_22,77,85,84,78,87,73,80,83,71,70,2
Siswa_23,83,72,69,85,60,70,66,80,70,93,6
Siswa_24,65,92,88,61,90,100,77,65,84,91,6
Siswa_25,92,70,61,97,61,66,71,60,95,74,6
Siswa_26,72,73,85,60,79,93,84,98,79,92,4
Siswa_27,75,69,79,95,72,81,96,62,73,91,3
Siswa_28,80,73,81,100,77,87,71,78,64,62,2
Siswa_29,87,97,92,68,90,100,94,86,61,77,3
Siswa_30,90,73,82,73,95,68,82,64,60,90,2
Siswa_31,67,73,83,64,60,100,88,75,63,89,4
Siswa_32,99,82,77,85,84,68,63,84,65,60,2
Siswa_33,88,93,94,86,70,74,66,98,66,80,1
Siswa_34,90,76,67,98,85,96,74,68,94,100,6
Siswa_35,77,86,68,80,67,98,96,85,64,72,4
Siswa_36,99,86,95,85,73,60,63,69,96,71,1
Siswa_37,69,62,68,77,76,93,68,75,91,93,6
Siswa_38,86,96,96,69,88,68,60,99,100,72,5
Siswa_39,85,90,72,69,85,62,79,64,76,64,1
Siswa_40,90,85,86,81,66,89,64,85,94,64,5
Siswa_41,89,77,82,72,94,96,93,88,100,63,5
Siswa_42,100,73,93,91,69,71,67,62,68,98,1
Siswa_43,90,64,71,85,88,95,93,90,63,69,4
Siswa_44,94,62,91,85,77,78,90,91,74,66,4
Siswa_45,94,76,78,80,78,99,93,60,73,67,3
Siswa_46,78,93,61,100,77,86,96,71,78,78,3
Siswa_47,77,69,79,99,63,65,63,64,76,71,1
Siswa_48,98,78,75,88,76,86,76,98,75,78,4
Siswa_49,72,85,96,89,81,91,95,95,60,68,4
Siswa_50,81,67,80,67,79,96,67,100,81,64,5
Siswa_51,68,97,89,87,63,96,92,92,85,83,4
Siswa_52,71,66,72,89,80,64,67,74,80,75,2
Siswa_53,61,73,91,91,73,74,94,65,67,65,1
Siswa_54,93,66,97,60,85,99,61,61,78,93,6
Siswa_55,63,81,87,94,73,79,98,74,83,76,1
Siswa_56,90,90,82,74,77,76,93,70,69,72,1
Siswa_57,69,100,79,63,62,65,100,67,84,61,1
Siswa_58,89,65,66,88,60,69,82,85,90,83,5
Siswa_59,60,81,75,98,72,97,88,78,100,98,6
Siswa_60,78,69,72,95,80,63,92,80,66,82,2
Siswa_61,64,68,77,89,64,60,73,88,83,100,6
Siswa_62,97,73,79,64,87,73,75,63,88,93,6
Siswa_63,74,92,77,81,68,81,71,92,92,80,5
Siswa_64,77,93,81,61,64,68,94,72,100,74,6
Siswa_65,89,94,94,80,83,89,68,98,76,96,1
Siswa_66,92,81,64,73,90,86,62,84,89,75,5
Siswa_67,93,93,64,64,97,97,82,65,89,97,6
Siswa_68,94,82,67,73,63,62,69,78,87,63,5
Siswa_69,86,90,64,93,81,78,81,98,97,93,5
Siswa_70,79,72,88,61,74,60,94,78,86,97,6
Siswa_71,99,66,90,96,80,78,84,74,77,67,2
Siswa_72,96,78,68,95,100,63,100,87,96,95,2
Siswa_73,89,97,60,100,81,91,64,62,89,65,1
Siswa_74,77,88,99,73,64,83,94,69,69,68,1
Siswa_75,88,83,72,66,61,76,84,63,100,94,6
Siswa_76,73,69,64,77,93,87,65,72,69,68,3
Siswa_77,89,67,69,92,69,88,60,74,62,82,6
Siswa_78,88,97,92,60,88,60,80,95,100,83,5
Siswa_79,74,92,81,64,75,94,83,80,64,65,4
Siswa_80,81,74,84,92,91,98,75,91,73,75,2
Siswa_81,100,89,100,98,83,76,78,81,90,80,1
Siswa_82,94,81,96,81,80,90,99,79,82,61,3
Siswa_83,96,66,94,98,94,79,90,99,68,100,2
Siswa_84,61,64,80,67,71,91,95,98,78,100,4
Siswa_85,97,93,63,60,67,94,91,87,82,94,4
Siswa_86,72,79,77,69,63,99,78,95,89,96,6
Siswa_87,65,87,76,88,65,64,88,91,76,62,1
Siswa_88,90,75,69,81,77,66,77,61,73,99,6
Siswa_89,79,80,68,63,98,80,94,77,67,67,3
Siswa_90,87,100,82,82,81,74,67,80,74,75,1
Siswa_91,70,66,99,97,84,79,69,64,62,82,2
Siswa_92,100,93,90,90,67,68,82,81,97,90,1
Siswa_93,68,93,68,60,71,63,93,69,69,78,3
Siswa_94,82,99,89,63,60,74,67,97,82,98,6
Siswa_95,74,82,96,79,93,86,78,69,62,62,2
Siswa_96,92,99,99,78,68,98,87,74,77,81,1
Siswa_97,75,82,99,82,88,85,85,79,88,91,2
Siswa_98,68,90,86,98,63,65,68,78,74,83,1
Siswa_99,83,96,60,83,64,85,79,76,76,90,6
Siswa_100,75,74,70,78,70,68,71,72,72,77,1
Siswa_101,91,67,95,89,94,66,92,71,78,75,2
Siswa_102,66,64,64,92,78,79,88,70,79,88,6
Siswa_103,68,68,60,80,88,64,73,74,66,80,2
Siswa_104,98,60,78,60,95,97,80,81,60,84,3
Siswa_105,65,86,66,75,74,63,95,91,60,66,4
Siswa_106,100,88,87,90,78,70,83,86,91,90,1
Siswa_107,61,67,64,66,83,77,89,84,88,71,4
Siswa_108,85,93,65,83,64,97,86,97,95,96,5
Siswa_109,70,79,68,62,75,68,98,67,65,84,3
Siswa_110,95,68,91,79,62,81,77,67,96,62,5
Siswa_111,74,85,68,81,97,78,76,65,90,86,6
Siswa_112,65,98,87,65,86,87,84,98,66,88,4
Siswa_113,96,78,91,82,98,71,85,70,92,92,2
Siswa_114,60,89,60,83,62,83,89,82,61,97,4
Siswa_115,83,70,60,99,82,61,78,95,66,96,2
Siswa_116,78,69,70,72,63,98,92,70,64,83,4
Siswa_117,100,100,87,95,97,83,95,75,99,84,1
Siswa_118,78,62,80,84,84,85,64,98,65,81,2
Siswa_119,67,68,82,97,73,98,86,67,93,70,6
Siswa_120,90,92,99,84,70,90,80,62,98,61,1
1 nama_siswa nilai_informatika nilai_fisika nilai_kimia nilai_biologi nilai_big_lanjut nilai_ekonomi nilai_mat_lanjut nilai_sej_lanjut nilai_sosiologi nilai_geografi paket_jurusan
2 Siswa_1 67 69 62 89 100 68 62 99 93 82 5
3 Siswa_2 60 85 88 92 60 88 93 80 65 65 1
4 Siswa_3 74 62 74 75 78 95 66 88 99 72 5
5 Siswa_4 72 80 100 82 78 97 79 78 67 96 1
6 Siswa_5 91 81 92 99 89 64 85 66 60 82 2
7 Siswa_6 62 95 76 93 100 72 71 82 87 87 2
8 Siswa_7 73 89 83 61 65 82 88 78 94 64 5
9 Siswa_8 82 72 68 100 80 82 65 79 66 91 2
10 Siswa_9 71 77 76 79 96 67 74 73 70 97 2
11 Siswa_10 73 77 62 63 80 98 95 61 89 81 3
12 Siswa_11 74 76 72 95 94 94 89 62 82 60 3
13 Siswa_12 77 99 68 86 86 64 96 69 63 90 1
14 Siswa_13 96 67 71 76 77 75 76 92 69 81 4
15 Siswa_14 74 83 90 84 79 68 77 79 92 70 1
16 Siswa_15 96 86 91 100 65 86 79 93 86 65 1
17 Siswa_16 96 83 83 63 91 74 60 95 61 61 2
18 Siswa_17 87 93 62 75 76 62 87 100 60 64 4
19 Siswa_18 67 60 61 82 88 71 82 91 85 74 5
20 Siswa_19 98 95 78 62 80 74 94 85 97 82 5
21 Siswa_20 74 94 64 89 99 95 67 70 100 73 6
22 Siswa_21 96 76 77 63 84 77 61 82 64 64 2
23 Siswa_22 77 85 84 78 87 73 80 83 71 70 2
24 Siswa_23 83 72 69 85 60 70 66 80 70 93 6
25 Siswa_24 65 92 88 61 90 100 77 65 84 91 6
26 Siswa_25 92 70 61 97 61 66 71 60 95 74 6
27 Siswa_26 72 73 85 60 79 93 84 98 79 92 4
28 Siswa_27 75 69 79 95 72 81 96 62 73 91 3
29 Siswa_28 80 73 81 100 77 87 71 78 64 62 2
30 Siswa_29 87 97 92 68 90 100 94 86 61 77 3
31 Siswa_30 90 73 82 73 95 68 82 64 60 90 2
32 Siswa_31 67 73 83 64 60 100 88 75 63 89 4
33 Siswa_32 99 82 77 85 84 68 63 84 65 60 2
34 Siswa_33 88 93 94 86 70 74 66 98 66 80 1
35 Siswa_34 90 76 67 98 85 96 74 68 94 100 6
36 Siswa_35 77 86 68 80 67 98 96 85 64 72 4
37 Siswa_36 99 86 95 85 73 60 63 69 96 71 1
38 Siswa_37 69 62 68 77 76 93 68 75 91 93 6
39 Siswa_38 86 96 96 69 88 68 60 99 100 72 5
40 Siswa_39 85 90 72 69 85 62 79 64 76 64 1
41 Siswa_40 90 85 86 81 66 89 64 85 94 64 5
42 Siswa_41 89 77 82 72 94 96 93 88 100 63 5
43 Siswa_42 100 73 93 91 69 71 67 62 68 98 1
44 Siswa_43 90 64 71 85 88 95 93 90 63 69 4
45 Siswa_44 94 62 91 85 77 78 90 91 74 66 4
46 Siswa_45 94 76 78 80 78 99 93 60 73 67 3
47 Siswa_46 78 93 61 100 77 86 96 71 78 78 3
48 Siswa_47 77 69 79 99 63 65 63 64 76 71 1
49 Siswa_48 98 78 75 88 76 86 76 98 75 78 4
50 Siswa_49 72 85 96 89 81 91 95 95 60 68 4
51 Siswa_50 81 67 80 67 79 96 67 100 81 64 5
52 Siswa_51 68 97 89 87 63 96 92 92 85 83 4
53 Siswa_52 71 66 72 89 80 64 67 74 80 75 2
54 Siswa_53 61 73 91 91 73 74 94 65 67 65 1
55 Siswa_54 93 66 97 60 85 99 61 61 78 93 6
56 Siswa_55 63 81 87 94 73 79 98 74 83 76 1
57 Siswa_56 90 90 82 74 77 76 93 70 69 72 1
58 Siswa_57 69 100 79 63 62 65 100 67 84 61 1
59 Siswa_58 89 65 66 88 60 69 82 85 90 83 5
60 Siswa_59 60 81 75 98 72 97 88 78 100 98 6
61 Siswa_60 78 69 72 95 80 63 92 80 66 82 2
62 Siswa_61 64 68 77 89 64 60 73 88 83 100 6
63 Siswa_62 97 73 79 64 87 73 75 63 88 93 6
64 Siswa_63 74 92 77 81 68 81 71 92 92 80 5
65 Siswa_64 77 93 81 61 64 68 94 72 100 74 6
66 Siswa_65 89 94 94 80 83 89 68 98 76 96 1
67 Siswa_66 92 81 64 73 90 86 62 84 89 75 5
68 Siswa_67 93 93 64 64 97 97 82 65 89 97 6
69 Siswa_68 94 82 67 73 63 62 69 78 87 63 5
70 Siswa_69 86 90 64 93 81 78 81 98 97 93 5
71 Siswa_70 79 72 88 61 74 60 94 78 86 97 6
72 Siswa_71 99 66 90 96 80 78 84 74 77 67 2
73 Siswa_72 96 78 68 95 100 63 100 87 96 95 2
74 Siswa_73 89 97 60 100 81 91 64 62 89 65 1
75 Siswa_74 77 88 99 73 64 83 94 69 69 68 1
76 Siswa_75 88 83 72 66 61 76 84 63 100 94 6
77 Siswa_76 73 69 64 77 93 87 65 72 69 68 3
78 Siswa_77 89 67 69 92 69 88 60 74 62 82 6
79 Siswa_78 88 97 92 60 88 60 80 95 100 83 5
80 Siswa_79 74 92 81 64 75 94 83 80 64 65 4
81 Siswa_80 81 74 84 92 91 98 75 91 73 75 2
82 Siswa_81 100 89 100 98 83 76 78 81 90 80 1
83 Siswa_82 94 81 96 81 80 90 99 79 82 61 3
84 Siswa_83 96 66 94 98 94 79 90 99 68 100 2
85 Siswa_84 61 64 80 67 71 91 95 98 78 100 4
86 Siswa_85 97 93 63 60 67 94 91 87 82 94 4
87 Siswa_86 72 79 77 69 63 99 78 95 89 96 6
88 Siswa_87 65 87 76 88 65 64 88 91 76 62 1
89 Siswa_88 90 75 69 81 77 66 77 61 73 99 6
90 Siswa_89 79 80 68 63 98 80 94 77 67 67 3
91 Siswa_90 87 100 82 82 81 74 67 80 74 75 1
92 Siswa_91 70 66 99 97 84 79 69 64 62 82 2
93 Siswa_92 100 93 90 90 67 68 82 81 97 90 1
94 Siswa_93 68 93 68 60 71 63 93 69 69 78 3
95 Siswa_94 82 99 89 63 60 74 67 97 82 98 6
96 Siswa_95 74 82 96 79 93 86 78 69 62 62 2
97 Siswa_96 92 99 99 78 68 98 87 74 77 81 1
98 Siswa_97 75 82 99 82 88 85 85 79 88 91 2
99 Siswa_98 68 90 86 98 63 65 68 78 74 83 1
100 Siswa_99 83 96 60 83 64 85 79 76 76 90 6
101 Siswa_100 75 74 70 78 70 68 71 72 72 77 1
102 Siswa_101 91 67 95 89 94 66 92 71 78 75 2
103 Siswa_102 66 64 64 92 78 79 88 70 79 88 6
104 Siswa_103 68 68 60 80 88 64 73 74 66 80 2
105 Siswa_104 98 60 78 60 95 97 80 81 60 84 3
106 Siswa_105 65 86 66 75 74 63 95 91 60 66 4
107 Siswa_106 100 88 87 90 78 70 83 86 91 90 1
108 Siswa_107 61 67 64 66 83 77 89 84 88 71 4
109 Siswa_108 85 93 65 83 64 97 86 97 95 96 5
110 Siswa_109 70 79 68 62 75 68 98 67 65 84 3
111 Siswa_110 95 68 91 79 62 81 77 67 96 62 5
112 Siswa_111 74 85 68 81 97 78 76 65 90 86 6
113 Siswa_112 65 98 87 65 86 87 84 98 66 88 4
114 Siswa_113 96 78 91 82 98 71 85 70 92 92 2
115 Siswa_114 60 89 60 83 62 83 89 82 61 97 4
116 Siswa_115 83 70 60 99 82 61 78 95 66 96 2
117 Siswa_116 78 69 70 72 63 98 92 70 64 83 4
118 Siswa_117 100 100 87 95 97 83 95 75 99 84 1
119 Siswa_118 78 62 80 84 84 85 64 98 65 81 2
120 Siswa_119 67 68 82 97 73 98 86 67 93 70 6
121 Siswa_120 90 92 99 84 70 90 80 62 98 61 1

301
data/dataset_smakom.csv Normal file
View File

@ -0,0 +1,301 @@
nama_siswa,nilai_informatika,nilai_fisika,nilai_kimia,nilai_biologi,nilai_big_lanjut,nilai_ekonomi,nilai_mat_lanjut,nilai_sej_lanjut,nilai_sosiologi,nilai_geografi,paket_jurusan
Ahmad_Adib_Almuiz,80.5,76.0,75.5,72.5,78.5,83.0,71.5,79.0,78.5,79.5,4
Amin_Ridho_Sholikin,83.5,82.5,81.5,78.5,81.0,82.5,82.0,86.5,81.5,86.0,1
Arik_Wisnu_Pramuditiya,86.0,81.0,82.0,81.0,82.5,83.0,81.5,86.0,82.5,89.0,1
Brian_Agung_Pamungkas,90.0,82.5,83.0,84.5,85.0,88.0,85.5,89.5,84.0,90.0,1
Chesylya_Adinnata_Maylani,79.5,76.0,79.5,79.5,81.0,81.0,75.5,82.0,80.5,83.5,4
Dewi_Marisah_Manggar_Retno,89.0,80.5,78.5,81.5,81.0,83.0,84.0,85.5,83.0,85.5,3
Dwi_Andika,81.0,76.5,76.5,78.0,81.0,83.5,73.5,78.5,78.5,79.0,4
Dyah_Ayu_Pratiwi,74.5,76.5,77.5,76.5,80.5,78.5,73.5,77.0,80.0,79.5,1
Ermita_Trisya_Sari,81.0,83.0,81.5,82.0,83.0,87.5,86.5,87.5,80.0,89.0,4
Fika_Nur_Rohmah,82.0,78.0,78.0,79.0,80.5,83.0,79.0,79.0,80.5,80.5,4
Fino_Andreyan_Pratama,84.0,79.0,79.0,80.0,80.0,81.5,75.0,81.5,80.5,81.5,3
Fitri_Yulita_Sari,88.5,79.5,78.0,82.5,82.5,84.5,78.0,84.5,82.0,85.0,4
Frisa_Agiel_Kirania,81.0,78.0,78.0,78.0,80.5,83.0,78.0,79.0,80.0,80.5,4
Handoko_Dimas_Wahyu_Nugroho,79.0,76.0,78.5,77.0,82.5,80.5,74.5,78.5,75.5,78.5,4
Keyla_Chantika_Devy_Julieta,76.5,79.5,80.0,74.5,80.5,81.0,76.0,80.0,79.5,82.0,5
Latifatul_Isma,83.0,82.0,77.0,80.5,81.0,85.0,86.5,86.0,79.0,86.5,4
M._Faris_Ardiyanto,75.0,76.0,76.0,76.0,78.5,84.5,73.5,77.5,77.5,76.0,4
Meriyas_Eka_Anjani,85.5,77.0,78.0,81.0,83.0,81.0,74.0,82.5,83.0,85.5,6
Mitzy_Aurora_Azzahra,85.0,79.0,80.0,80.0,83.0,83.5,80.5,84.0,81.0,84.5,3
Moch._Galih_Nur_Hidayatullah,77.0,77.0,77.0,77.0,80.5,78.5,74.0,78.0,79.5,78.5,4
Mohammad_Trio_Subekti,77.5,76.5,76.5,76.0,79.5,82.0,73.0,77.5,79.5,78.0,4
Muhamad_Rangga_Aji_Pratama,86.0,77.5,77.5,79.5,83.5,86.0,74.5,83.0,82.5,81.0,4
Nidda'ul_Fijriah,82.5,78.5,78.5,79.5,80.0,79.5,74.0,82.5,82.5,86.0,3
Novita_Eka_Ramandani,78.5,78.0,78.0,79.5,82.0,82.5,79.0,80.0,81.0,84.0,4
Putri_Rahayu_Ningsih,79.5,79.5,79.5,79.5,84.0,80.0,79.5,80.0,80.0,85.5,2
Quennata_Gladis_Bilbina,86.0,78.5,78.0,80.5,82.5,86.0,79.5,79.5,82.0,81.5,3
Rizki_Andi_Pratama,85.5,79.5,80.5,81.0,81.5,83.0,84.5,86.0,82.0,86.0,1
Rizqi_Pangestu_Arsyadipura,84.5,84.0,81.5,82.0,81.0,79.5,83.5,88.0,81.5,87.0,1
Rohmatul_Fitria_Dewi,87.5,78.0,78.0,83.0,81.0,84.5,80.5,80.5,82.0,81.5,3
Satrio_Damar_Anggono,77.5,78.5,77.0,76.5,80.5,80.0,73.5,83.5,80.0,85.5,1
Shofiyyatul_El_Husna,87.5,78.5,79.0,80.5,79.0,77.5,82.0,83.5,81.5,83.5,1
Tegar_Krido_Wibowo,79.5,77.0,79.5,77.5,80.0,77.5,77.0,78.5,79.5,80.0,1
Tegar_Reka_Wijaya,82.0,79.5,79.5,81.0,82.5,83.5,81.5,84.0,82.0,86.5,1
Vania_Ika_Melinda,80.5,79.5,79.5,80.5,81.0,80.5,82.0,84.0,79.0,83.5,2
Zaraya_Jelita_Putri_Ardina,84.0,82.5,81.5,81.5,81.0,83.5,82.0,84.0,81.0,86.0,1
Ahmad_Maulana_Rizky_Aditya_Wijaya,85.5,78.5,77.5,79.5,83.0,79.5,74.0,82.0,80.5,84.0,4
Alhasby_Bachtiar,79.5,79.5,78.5,81.5,80.0,79.5,76.0,84.0,81.5,85.0,2
Aprilia_Martalita_Wibowo,78.5,77.0,78.0,80.0,80.5,81.5,78.5,85.0,78.0,84.5,4
Arshinta_Marthalie_Gunawan,77.0,77.0,79.0,80.5,80.0,79.5,80.0,78.5,79.0,80.0,1
Atadea_Lie_Intan_Karina,86.5,80.5,78.0,81.0,81.0,78.0,76.5,84.0,77.5,81.0,3
Azzahra_Dewi_Natria,83.5,79.5,80.0,82.5,82.5,84.5,81.5,89.0,81.5,86.5,4
Bagus_Rohman_Maulana,81.5,82.5,80.5,79.5,80.0,81.5,81.5,83.5,81.5,86.0,6
Binti_Yisha_Zahra_Futri,85.0,83.0,78.5,83.5,82.5,81.0,85.5,88.5,82.0,90.0,1
Chalista_Ayunda_Sukmaningtyas,84.0,79.0,78.0,82.5,80.5,81.5,82.0,87.0,78.5,85.0,2
Clara_Balqis_Putri_Febrianti,82.0,83.0,82.5,84.5,85.0,84.5,84.5,88.5,82.5,88.5,2
Davin_Yudha_Pratama,82.5,78.0,78.5,81.5,83.0,81.0,73.5,84.0,79.5,82.5,3
Dian_Noviyanti,87.5,77.5,79.0,79.5,79.5,85.5,77.5,81.0,81.0,83.5,6
Dwi_Kevfri_Kenata,81.0,80.5,82.0,80.5,82.5,81.5,78.5,84.5,82.5,86.0,1
Fahril_Rahmad_Tri_Setyawan,79.5,77.0,78.0,77.0,80.0,86.0,77.5,81.0,79.5,81.0,4
Firstian_Vidya_Permana,79.5,77.5,79.0,78.0,80.5,83.0,77.5,78.0,78.5,78.5,4
Galang_Aldiyansah_Putra,82.5,78.5,77.0,77.5,78.5,82.0,73.5,83.0,78.5,81.0,4
Ghania_Hardiyanti,86.0,83.5,82.5,82.5,83.0,85.5,86.5,87.5,82.0,87.0,1
Hamida_Ulviana_Dewi,79.5,79.5,78.5,81.0,79.5,85.5,75.0,83.0,77.5,83.0,6
Hengky_Prasetyo,85.0,77.0,77.0,75.5,80.5,80.0,73.5,79.0,76.5,78.5,4
Kellvi_Tiaska_Putri,78.0,77.5,77.5,79.5,80.0,83.0,76.5,81.0,80.5,80.5,4
Kurniawan_Dyo_Tri_Warsono,75.0,76.5,77.0,74.5,79.5,80.0,74.5,79.5,78.5,76.5,4
Mochamad_Ardiansyah_Saputra,85.5,77.0,77.0,78.5,79.0,83.0,73.5,77.5,81.0,80.5,4
Mochammad_Yuda_Aditia,87.0,76.5,76.0,80.0,81.0,81.0,73.5,78.5,81.5,81.0,3
Mohammad_Raihan_Nur_Fajri,81.0,77.0,76.0,80.0,81.0,82.5,73.5,81.0,80.5,81.0,4
Muhammad_Tegar_Prayuda,81.5,78.5,77.0,80.5,82.0,80.0,76.5,82.5,80.5,85.5,1
Muhammad_Zainal_Asrofi,78.0,76.5,78.0,80.0,80.0,81.0,74.5,79.5,78.5,78.0,4
Nur_Aleeya_Afrina_Suwandi,83.5,79.5,80.5,83.5,83.0,84.0,84.0,89.0,81.5,87.0,4
Prima_Dyah_Novanda,85.0,80.5,81.5,81.0,83.0,82.0,83.5,86.5,77.5,85.5,3
Rika_Nur_Fauziah,80.5,79.5,79.5,81.0,83.5,85.0,80.5,81.0,79.5,85.5,2
Satryo_Gito_Pratomo,87.0,79.5,81.5,82.0,81.5,83.0,84.5,90.0,82.5,89.0,2
Septian_Daniarti_Fitri_Astutik,79.0,78.5,78.0,81.0,83.0,82.0,76.0,84.0,77.0,82.5,3
Suci_Rahayu_Saputri,81.5,78.0,77.0,80.0,80.5,80.0,75.5,77.5,79.5,80.0,4
Sujiati_Fitrianingsih,83.5,77.5,78.0,79.5,80.0,83.0,76.5,84.0,80.5,80.5,6
Tata_Agata_Afga_Pratama,81.5,78.0,77.5,74.5,80.5,78.5,75.0,78.5,81.0,79.5,4
Yahya_Handika_Aditia,87.0,78.0,78.0,75.5,81.0,82.0,74.0,79.0,80.5,80.5,4
Yulia_Nur_Lismarita,80.5,77.5,78.0,80.5,81.0,80.0,80.5,83.0,77.5,83.0,4
Aditya_Rizky_Romadhon,81.0,77.5,76.5,79.5,80.0,81.0,76.5,82.0,80.5,80.5,2
Aisyah_Fidinna_Rahmatika,83.5,76.5,77.5,80.5,81.0,86.5,79.0,82.5,83.0,80.5,5
Aldo_Widodo,81.5,76.5,77.0,75.0,77.5,76.5,71.5,77.0,76.0,77.0,5
Alvino_Surya_Pratama,78.0,77.5,77.5,75.5,78.0,80.0,80.0,81.5,82.5,80.5,4
Alvinza_Brian_Saputra,76.5,76.5,76.5,74.5,79.0,77.5,71.5,75.0,77.5,76.5,4
Dhimas_Pandu_Wijaya,88.0,77.5,77.5,80.0,76.0,81.5,72.0,81.0,83.0,82.0,1
Fauziah_Elsa_Putri_Purnomo,81.0,82.5,84.0,82.5,83.0,87.0,85.5,85.0,82.0,88.5,1
Feisal_Wisnu_Raditya,78.0,77.0,77.5,75.0,78.5,81.0,74.5,79.0,78.5,79.5,4
Fitriani_Nurul_Norhayati,79.0,77.5,80.0,77.0,80.5,82.0,76.5,79.0,76.5,82.5,6
Fivi_Widyo_Wati,79.5,79.5,80.0,78.5,80.5,79.0,83.0,84.0,79.0,84.5,1
Gloria_Fransisca,81.0,79.0,80.5,80.5,83.0,80.5,79.5,84.5,80.0,85.0,3
Herlin_Faradila_Stifiana,78.5,78.5,79.0,80.0,81.5,81.0,80.5,83.0,80.0,82.5,1
Karisma_Hardiyati_P._R.,80.5,79.5,78.0,78.5,80.5,81.0,78.0,78.5,79.5,79.5,4
Kirana_Putri_Agustina,81.0,79.0,79.0,79.0,81.0,81.0,79.0,83.5,80.5,83.5,3
Lala_Putri_Meilita,77.5,78.0,78.5,79.0,82.0,84.5,81.5,82.5,80.0,85.5,6
M.fahcri_Affan_Ramadhani,80.5,80.5,80.0,77.0,82.5,86.0,74.0,84.5,80.5,82.5,1
Mey_Lika_Hanaya_Putri,87.0,78.0,80.0,81.0,82.5,86.5,82.0,84.5,83.0,84.5,6
Moch.afga_Afreza_Alfiansyah,81.0,79.5,80.5,80.0,83.0,85.0,79.5,86.0,81.0,85.0,4
Mochammad_Fahri_Nur_Rizky,82.5,79.5,83.0,81.5,80.5,82.5,85.5,86.0,82.0,87.0,1
Muhammad_Asril_Daffa_Saputra,77.5,77.5,78.0,78.5,80.5,81.5,72.0,78.0,79.5,79.5,4
Nadya_Anandiva_Silvyani,81.0,82.5,81.0,81.0,81.5,85.5,80.0,87.5,82.5,85.5,6
Nendra_Nur_Febrian,82.5,77.5,77.5,78.0,79.0,79.0,72.0,76.5,80.5,83.0,4
Putri_Adelia_Sari,81.0,77.5,78.0,80.0,80.5,84.5,80.0,85.5,82.5,82.0,4
Ramadhani_Silfi_Damaiyanti,80.0,77.5,78.0,78.5,80.5,86.5,78.0,82.0,81.5,81.0,5
Rangga_Galuh_Octa_Pradana,79.0,77.0,78.0,77.5,80.0,80.0,72.5,81.0,81.5,79.5,2
Rehan_Septa_Adi_Ramadhani,83.5,78.0,78.0,79.0,82.0,86.5,75.5,82.0,80.5,80.5,3
Salsa_Laurintiya,81.0,78.5,79.0,78.0,81.0,78.5,77.0,82.0,79.0,80.5,5
Salva_Andika,81.0,79.0,79.0,78.0,80.5,84.0,79.5,84.5,81.5,80.5,5
Sandy_Dwi_Meilano,81.5,82.5,81.0,80.5,81.0,83.5,83.0,85.5,82.0,87.5,1
Sera_Natalia,80.0,77.5,79.5,80.5,82.5,81.5,80.5,81.0,80.0,84.0,1
Tasya_Dwi_Oktavia,77.5,77.5,78.0,80.5,82.5,82.5,79.5,79.0,81.5,82.0,5
Varisha_Anastasya,86.5,80.5,81.5,81.5,80.5,85.0,84.0,85.5,82.5,87.0,1
Vrananda_Ricky_Saputra,77.5,77.0,79.0,78.0,80.5,78.5,72.0,79.0,81.5,78.5,4
Widya_Dwi_Astuti,79.5,77.5,79.0,80.5,80.5,81.5,76.0,79.0,80.5,80.5,5
Agha_Hisyam_Al-haliim,78.5,78.0,77.5,77.5,80.5,78.0,77.5,80.0,75.5,82.0,1
Ahmad_Rofi`an_Saputra,84.5,80.5,79.0,81.0,82.5,79.0,78.5,80.0,80.0,82.0,1
Aldo_Dwi_Julianto,83.5,81.0,79.0,77.5,80.5,79.5,81.0,81.0,80.5,85.0,6
Alvi_Sani,77.0,78.0,78.0,74.0,80.5,77.5,77.5,76.5,76.5,76.0,5
Aprilia_Wahyuning_Agustin,80.0,77.5,78.5,80.5,82.0,78.0,78.5,82.0,79.5,81.0,3
Arfian_Setya_Yusinda,77.5,78.0,78.5,78.5,82.5,79.5,77.5,81.0,77.5,81.0,4
Arga_Wahyu_Prasetyo,79.5,79.5,79.0,80.5,83.0,80.0,78.5,82.5,78.5,82.0,6
Athaya_Angel_Widodo,81.5,79.5,80.0,83.0,85.0,81.0,79.5,85.0,80.5,85.5,3
Bambang_Dwi_Sri_Hatmoko,83.0,77.5,78.0,79.5,81.0,79.5,77.5,80.5,80.5,79.5,4
Bilqiz_Namsya_Prasesta,80.0,77.5,78.0,79.0,81.0,77.5,77.5,80.5,76.5,80.0,5
Bunga_Damir_Kalolong_Sulai_Manan,79.5,81.0,82.0,79.5,82.5,81.0,78.5,81.5,78.5,83.5,1
Chalisha_Alqathrunnada_Winsputri,86.5,77.5,79.0,81.0,82.0,82.5,80.5,85.0,78.5,86.5,5
Decha_Navita_Sari,78.0,77.5,78.0,80.0,80.5,79.0,77.5,81.0,79.5,83.5,6
Dina_Aulia_Salsabila_Putri,83.5,79.5,78.5,79.0,81.0,80.0,77.5,84.0,81.0,84.0,2
Dyah_Vivianti,83.0,81.0,79.5,79.5,82.5,84.0,79.5,85.5,80.0,87.5,2
Endang_Rahayu_Ningsih,83.5,78.0,79.5,80.0,82.5,82.5,78.5,84.5,79.5,85.0,5
Hildan_Tri_Agustino,77.0,77.5,78.0,77.0,79.5,80.5,77.5,78.0,76.0,79.5,5
Juliani_Wati,76.5,77.5,78.0,77.0,80.0,78.5,77.5,79.0,77.0,79.5,5
Kaiyla_Fera_Ayu_Moza,87.0,78.5,78.5,84.0,85.0,87.5,78.5,85.0,79.5,86.5,5
Mexel_Farel_Erlangga,77.0,76.0,78.0,72.5,79.0,78.0,77.5,75.5,77.0,76.0,4
Muhamad_Fauzan_Saputra,76.5,78.0,78.0,80.0,83.0,78.0,77.5,80.0,74.5,80.5,4
Muhammad_Rangga_Saputra,76.0,78.5,78.0,78.5,80.5,81.0,78.5,78.0,79.5,78.5,4
Muhammad_Rizky_Putra_Aditya,81.0,80.5,77.5,78.5,80.5,81.0,77.5,79.5,73.0,80.5,2
Nayaka_Sutomo,82.5,84.0,84.0,80.5,84.5,82.5,83.5,87.5,80.0,86.0,1
Naysilla_Dwi_Anggraini,88.0,78.0,78.0,80.0,81.5,79.5,79.5,83.5,81.0,84.5,3
Nimas_Yayank_Putri_Prabowo,80.5,78.5,78.0,75.0,83.0,77.0,77.5,84.5,79.5,85.0,2
Puja_Micky_Harianto,80.0,78.5,78.5,81.5,81.0,81.0,77.5,82.0,79.5,84.0,4
Reva_Aidilla_Melani,85.0,84.0,83.0,83.5,82.0,81.5,82.5,88.5,80.5,88.5,2
Rivaldi_Desta_Akbar_Pratama,79.5,80.5,79.0,79.0,80.5,85.0,78.5,80.0,79.5,83.0,4
Roszhiana_Ramadhani,77.5,77.5,78.0,79.5,83.0,78.0,80.0,79.0,79.0,79.5,5
Santy_Nurahma_Agustya_Rani_Putri,78.0,78.0,78.0,78.5,83.0,77.5,77.5,78.0,76.5,80.5,4
Sindy_Aulia_Lestari,78.0,78.0,78.0,78.5,81.0,76.5,77.0,80.0,78.5,80.5,4
Singgih_Ferdy_Ananda,87.5,79.5,82.5,79.0,84.5,83.5,81.5,89.0,81.5,89.5,1
Susan_Amiliya_Khoirunisa,81.5,79.5,79.0,82.0,84.0,79.5,79.5,84.0,79.5,87.5,4
Trisa_Adelia_Parera,83.5,78.0,78.5,79.5,82.5,84.0,77.5,84.0,80.5,84.0,5
Yohan_Arinugraha,86.5,83.5,83.5,84.0,85.0,81.0,81.0,90.0,84.0,90.0,1
Ana_Ainus_Sifa,81.0,77.5,79.0,76.0,80.0,81.5,78.5,82.0,79.0,80.5,6
Andini_Rahmawati,78.5,79.5,79.0,75.5,81.0,83.0,79.5,83.0,77.0,82.0,6
Angga_Jalu_Arizona,78.5,76.0,76.0,75.0,78.5,77.0,77.0,78.5,74.0,79.0,4
Anggun_Kartika_Okta_Novita,81.5,76.5,78.0,76.0,80.5,83.5,78.5,84.0,79.5,85.0,6
Aprian_Mahardika,82.0,79.5,78.0,75.5,79.0,79.5,78.5,78.5,79.5,79.5,1
Arga_Reyhandika_Pratama,85.5,77.5,80.0,82.0,85.0,77.5,81.5,85.5,83.0,83.5,2
Awwalun_Firdausi,82.5,84.0,84.0,82.0,81.5,86.0,82.0,89.0,83.0,89.0,6
Della_Dwi_Pratiwi,80.0,78.5,79.0,80.0,79.5,80.0,78.5,81.0,77.0,82.0,4
Dhafa_Brillyan_Gustafianto,77.0,76.5,77.0,75.5,78.5,81.0,77.0,79.0,78.5,81.0,4
Dinda_Windy_Oktaviona,84.0,79.5,81.0,81.5,81.5,83.5,80.5,88.0,83.5,86.0,2
Erlang_Danendra_Ari_Putra,84.5,76.5,78.0,78.0,78.5,82.5,77.0,79.0,79.5,79.0,1
Gabriel_Desja_Alexsyata,79.0,76.5,77.0,75.0,79.0,79.5,77.5,77.5,77.0,79.5,4
Ghea_Anzani_Siswanto,83.5,78.5,78.0,82.0,80.5,81.5,79.5,80.5,81.0,84.0,2
Hera_Junia_Purnamasari,80.0,82.0,79.5,77.0,80.0,87.5,78.0,86.0,81.5,86.5,2
Isna_Maulidiyah,83.5,76.5,77.5,77.0,78.5,80.5,77.5,80.0,74.5,79.5,5
Johan_Satrio_Wicaksono,82.5,77.5,78.0,76.0,78.0,81.0,77.5,78.5,81.5,79.5,5
Juliana_Wita,80.0,76.5,78.0,76.0,78.5,77.0,78.5,78.0,76.5,80.5,1
Lucky_Fabrio_Saputra,81.0,84.0,80.5,78.0,79.5,81.0,80.0,82.0,79.5,84.0,1
Lukman_Khakim_Noah,80.5,76.5,78.0,75.5,78.5,80.0,77.0,79.0,78.5,76.0,4
Meirakha_Fernanda_Siswardhani,82.5,77.5,80.0,81.0,79.5,83.5,79.0,83.0,80.0,82.0,1
Mohamad_Rifa'i_Wijayanto,80.5,77.5,78.0,75.5,78.5,81.5,78.5,78.5,79.0,79.5,6
Mohammad_Iqbal_Hafidh_Amiruddin,82.5,76.5,78.0,75.5,78.5,80.5,77.5,77.5,76.0,81.0,4
Muhammad_Nur_Rahman_Sya'abibah,85.5,76.5,78.0,81.0,78.5,82.5,77.0,82.0,79.0,78.5,6
Nashwa_Mentari_Yuwana_Putri,83.5,81.5,81.5,83.5,82.0,85.5,83.0,86.0,82.0,85.5,6
Nezza_Maura_Putri_Agung,83.5,79.5,81.0,75.5,79.5,78.5,80.0,81.0,79.0,83.0,2
Revinda_Wisca_Natalie,86.0,81.5,81.0,85.0,80.5,87.0,80.0,85.5,82.5,85.5,3
Sahal_Ahmad,82.0,84.0,82.5,80.0,79.0,80.0,80.0,81.0,82.0,84.5,4
Salfa_Aulia_Putri,81.0,76.5,77.0,82.0,80.5,81.5,77.5,79.0,79.5,79.5,6
Selly_Novtiana_Waty,84.0,76.5,77.5,75.0,79.0,79.5,77.5,79.5,79.5,81.0,1
Septia_Ayu_Muliasih,77.5,76.5,77.5,74.5,79.5,80.5,77.5,77.0,76.0,79.5,5
Shafa_Ayunda_Putri,85.5,76.5,80.0,80.0,80.5,80.5,79.5,82.0,81.5,83.0,4
Shifa_Khayyuna_Qisthi,85.5,78.5,79.5,82.0,81.5,81.0,78.5,84.0,82.0,84.5,3
Siti_Apriliani_Khairunnisa,80.5,80.5,79.5,78.0,80.5,84.0,79.5,82.0,80.5,82.0,4
Siti_Aulia_Nur_Latifah,79.0,82.5,84.0,81.0,84.5,82.0,82.0,87.5,82.5,89.0,2
Tio_Ainun_Romadhoni,81.5,76.5,76.5,79.0,78.5,81.5,77.0,80.0,79.5,80.0,4
Yuma_Erlangga,79.5,76.0,76.0,77.0,77.5,76.5,77.0,76.5,74.5,79.0,4
Abid_Fadlih_Hafiyyah_Faza,85.0,78.0,78.0,78.0,79.5,80.0,78.0,79.0,81.5,81.5,4
Adinda_Dhea_Ochtavyana,86.0,81.5,80.5,81.0,81.0,82.5,80.0,85.0,81.0,83.5,3
Ahmad_Risky_Maskur,84.5,77.0,77.0,79.0,79.5,80.0,77.5,79.0,80.0,81.5,4
Ahmad_Rizal_Hanafi,86.5,80.5,80.5,79.0,78.5,81.0,80.5,81.0,79.5,82.0,3
Ahmad_Rizky_Wijaya,79.0,80.5,81.0,80.0,83.5,79.0,81.0,85.5,81.0,85.0,1
Alfiani_Mayasari,86.0,78.5,79.0,82.0,80.0,85.0,78.5,85.5,82.0,85.5,2
Ardan_Pradipta,76.5,79.5,78.0,75.5,82.0,81.0,78.0,81.5,80.0,82.0,4
Arya_Erlangga_Tino_Putra,80.0,77.0,77.5,80.5,79.0,81.0,78.0,82.5,79.5,80.5,4
Azka_Febita_Zalfianty,84.5,82.5,83.5,85.0,81.5,81.0,82.5,89.0,82.0,89.0,1
Bunga_Alikasari,81.0,79.5,80.5,81.0,84.5,81.0,79.5,89.0,83.0,89.0,2
Cantika_Oktavia_Nurfitri_Mardiani,79.0,78.5,79.0,81.0,81.0,86.0,78.5,85.0,82.5,85.0,3
Chiko_Bonanza_Cavan_Putra,80.0,78.5,77.5,77.0,79.5,78.5,78.0,79.0,79.0,80.0,1
Dhea_Ayu_Permatasari,81.5,82.0,79.0,81.0,82.0,88.5,78.5,87.0,82.0,86.5,1
Galang_Aldi_Ananta_Putra,83.5,80.5,79.5,77.0,79.0,86.5,78.5,85.5,79.5,85.5,3
Jefana_Dwi_Jayanti,81.5,84.5,84.0,85.0,85.0,90.5,84.0,90.0,81.5,90.0,1
Jhovani_Vina_Maharani,84.5,79.5,78.0,83.0,79.0,83.5,78.0,80.0,79.0,80.5,2
Keiza_Olivia_Witari,83.5,83.0,83.0,83.0,83.0,80.5,82.5,88.5,83.0,87.0,1
Kevin_Arfian_Vidyanata,80.5,77.0,77.5,75.0,78.5,81.5,78.0,80.0,77.0,79.5,4
M._Alfin_Nur_Rahmad,80.0,84.0,78.5,85.0,78.5,83.0,79.5,86.0,81.5,81.0,1
Marsha_Syifa'_Setiawati,80.5,77.5,79.0,75.5,79.5,81.5,78.5,82.0,77.5,82.0,6
Mochammad_Rifky_Febri_Nur_Rohman,76.5,77.0,77.5,72.5,78.5,77.5,78.0,78.0,78.5,77.0,4
Mohamad_Rizal_Permana_Putra,82.0,77.0,78.0,74.0,79.0,79.0,78.0,83.0,78.5,81.5,4
Muhammad_Gara_Imam_Arifin,81.5,78.5,79.0,83.5,79.0,81.0,78.0,86.0,81.0,83.5,2
Muhammad_Khafid_Nuriyanto,89.5,80.5,81.0,81.5,78.5,82.5,81.5,86.0,81.0,87.5,2
Muhammad_Zennuri,79.5,77.0,79.0,74.5,78.5,83.5,78.5,77.5,78.0,78.0,4
Rahma_Goespiaputri_Ramadhani,84.5,77.0,78.0,81.5,80.0,82.5,80.0,84.0,80.0,83.5,3
Rayhan_Aditya,81.5,80.5,81.0,81.5,80.0,81.5,80.5,88.0,81.0,88.0,2
Rehan_Dwi_Ferdiansyah,76.5,77.0,78.0,73.0,79.0,81.0,78.0,76.5,79.0,77.0,4
Rima_Dwi_Oktavia,79.5,77.5,78.0,76.0,80.0,79.5,78.0,80.0,80.0,81.0,4
Riska_Adelia_Dulrahman,80.5,73.0,71.5,71.5,77.0,79.5,77.5,71.0,77.0,72.5,4
Syakela_Arifah_Azzahra,83.0,77.0,79.0,77.5,79.5,85.0,78.5,80.0,79.0,80.0,5
Titin_Karunia_Putri,83.0,79.5,78.0,81.0,82.5,85.0,79.0,85.0,81.5,85.0,2
Vandi_Aulia_Kadhafi,83.5,77.0,79.0,76.0,79.5,79.5,78.5,79.5,78.0,79.0,4
Yuli_Evita_Wati,83.0,77.5,79.5,80.0,80.5,86.0,79.5,84.5,81.0,83.5,3
Zulia_Ulifatul_Mahmadah,81.5,78.5,79.0,75.0,79.5,81.0,78.5,81.0,80.0,82.0,6
Ameliya_Putri_Mentari,86.0,76.5,78.5,79.0,82.5,89.0,79.5,86.0,78.0,84.5,4
Andika_Bayu_Abriansyah,81.0,72.5,77.5,75.0,79.0,81.0,77.5,78.5,78.5,81.5,4
Azmi_Halim,84.5,74.5,80.0,81.0,85.0,81.5,79.5,83.0,79.5,83.5,1
Bambang_Adi_Pramana,83.5,74.5,79.0,78.5,81.0,82.0,79.5,78.5,79.5,79.0,3
Bryan_Maulana_Wibiantoro,86.0,77.0,82.5,79.0,84.5,84.5,81.0,86.5,80.5,86.5,1
Dharisman_Bagus_Prastowo,84.0,75.0,79.0,81.5,82.0,82.0,78.5,84.5,82.0,82.5,3
Ella_Syahra_Agustin,82.0,74.0,80.0,76.5,83.0,82.5,79.5,83.5,81.5,81.5,3
Febian_Dwi_Andika,82.0,74.5,78.0,74.5,80.0,81.0,77.5,78.5,79.0,78.5,4
Hawa_Aurelia_Firdaus,81.0,75.5,78.0,80.0,83.0,83.5,77.5,85.0,79.5,82.5,1
Indri_Julia_Dwi_Dianitami,81.0,76.5,80.0,77.0,81.0,83.0,79.5,83.5,82.5,86.0,1
Kusuma_Faridatulliya,85.5,75.0,80.0,78.0,83.0,84.5,78.5,81.0,81.5,84.0,6
Laudia_Vera_Agustin,81.0,75.0,78.5,81.0,83.5,81.5,79.5,83.5,81.0,87.0,3
M.deno_Bayu_Putra_Hardiansah,80.0,75.0,78.0,76.0,81.0,83.0,78.5,83.0,78.5,80.0,4
Moch._Febri_Nur_Hidayatullah,78.5,74.0,77.5,72.0,80.0,81.0,77.5,78.0,77.0,76.0,5
Mochamat_Agil_Desulton,81.5,74.0,77.5,77.0,81.0,81.0,78.5,79.0,78.0,78.5,5
Moh._Rendi_Saputra,81.0,73.5,78.0,75.5,81.0,81.5,77.5,80.0,79.0,80.0,4
Mohamad_Bagus_Hermawan,78.0,73.5,77.0,74.0,80.0,81.0,77.5,73.5,79.0,79.0,4
Muchamad_Jaohar_Firdaus,82.5,74.5,77.0,81.0,82.0,82.0,78.0,79.5,79.5,81.0,3
Muhamad_Rif'an_Mauludi,88.0,75.5,78.5,82.0,81.5,84.0,77.5,81.0,81.5,82.0,3
Muhammad_Safi',82.0,77.0,78.0,79.0,80.0,81.5,77.5,79.5,81.5,79.5,4
Rendi_Prastyo_Aditama,79.5,73.5,77.5,74.5,81.0,78.0,77.5,77.5,79.0,79.0,5
Renno_Ilham_Revaldo,85.5,73.5,77.5,79.0,81.0,82.5,77.5,83.5,79.5,82.0,2
Risma_Indira_Fernanda,89.0,77.0,78.5,83.5,83.0,84.0,81.5,84.5,76.5,85.5,3
Safina_Ismafatul_Roida,78.5,73.5,79.0,80.0,82.0,80.5,79.0,84.0,80.0,81.0,4
Silvia_Novitasari,88.5,77.0,78.0,77.0,82.0,81.0,77.5,83.0,82.5,81.5,3
Sonya_Aulia_Dewi,84.5,75.5,82.5,79.0,82.0,82.0,82.0,83.0,81.0,85.0,1
Talita_Bella_Safira,84.0,75.5,80.0,78.0,82.0,82.5,79.5,79.5,80.5,81.5,1
Thalyta_Chelse_Olivia_Leovanny,86.5,74.5,80.0,80.0,84.0,82.0,79.5,84.5,83.0,83.5,3
Ulfa_Kusuma_Dewi,84.5,75.0,78.5,78.0,82.0,81.0,77.5,80.0,81.5,82.0,6
Wahyu_Subastyan,79.5,73.5,79.0,74.0,80.0,81.5,78.5,74.0,76.0,78.5,4
Yanuarycha_Putri_Rifda,82.0,73.5,79.0,77.0,81.5,80.0,78.5,80.5,82.0,82.5,4
Zulfatul_Ilmi_Sa'adah,80.0,73.5,79.5,77.0,84.5,84.0,79.5,82.0,81.5,82.0,4
Abel_Senja_Agma_Subroto,82.0,77.0,80.0,79.0,80.5,86.0,79.5,83.0,81.5,85.5,2
Ahmad_Fauzan_Maulana_Ibrahim,82.0,76.0,78.0,77.0,84.0,82.5,77.5,80.5,81.5,82.5,4
Amin_Ridho_Shobirin,80.5,76.0,82.5,76.0,82.5,84.5,79.5,81.5,80.0,83.0,5
Andika_Nugrahatama,81.5,72.5,79.0,76.0,79.5,82.0,78.5,82.5,78.5,82.0,4
Aprilliana_Cahaya_Puspita,82.5,72.5,78.5,79.0,79.5,83.0,77.5,79.0,80.5,83.0,6
Aulia_Dwi_Suci_Cahyani,82.5,72.5,79.0,80.0,83.0,83.0,78.5,81.0,80.5,82.0,1
Bilqis_Syafiah_Ahmad,82.0,77.5,79.0,79.0,82.5,86.0,79.0,84.5,82.0,86.5,5
Danendra_Zahran_Qurunul_Bahri,79.0,72.5,76.5,72.0,83.5,77.5,77.5,81.5,78.0,77.5,4
Dania_Ismatul_Maula,82.5,77.0,80.5,80.0,84.5,84.0,81.0,86.0,81.0,85.0,1
Diva_Maulidiya,81.0,77.5,79.0,74.0,81.0,85.0,78.5,80.0,78.0,84.0,6
Gufroni_Ahmadin_Naja,80.5,74.0,78.0,72.5,80.5,81.5,77.5,80.0,78.0,80.5,4
Handy_Miftakhul_Ullum,82.0,77.5,78.5,82.0,82.0,86.0,78.5,88.5,82.5,85.5,2
Kharizma_Putri_Prilia,82.5,79.0,82.0,80.0,81.5,85.0,82.0,83.5,82.5,88.0,1
Laela_Indriani,80.0,72.5,78.5,72.0,79.5,77.0,78.5,75.5,77.0,77.0,4
M._Zeka_Azfar_Pahlawan,82.5,71.0,79.5,78.0,85.0,84.0,79.0,79.0,81.0,80.0,3
Maysa_Purwadinata,81.0,72.5,79.5,76.0,81.5,81.5,79.5,79.5,80.5,80.0,1
Medina_Putri_Febiani,81.0,77.5,79.5,81.0,84.5,84.5,79.0,85.0,82.5,83.5,4
Moh._Raditya_Haria_Nugraha,81.0,72.5,77.5,78.0,82.5,83.5,77.5,84.0,79.0,83.5,1
Mohammad_Reno_Zainul_Pratama,81.5,72.5,77.5,75.0,79.0,84.0,77.5,73.5,81.5,81.0,4
Muhamad_Kafil_Lubawi,81.5,72.5,79.0,76.5,80.5,84.0,78.5,80.5,79.5,82.5,4
Nafatria_Kirana,80.0,72.5,78.5,73.5,79.0,78.0,78.5,77.5,74.5,76.5,4
Nanang_Mariyanto,79.5,73.5,77.5,79.0,79.0,82.0,77.5,80.0,80.0,78.5,6
Quinnsha_Launada_Wibowo,82.0,77.0,79.0,78.0,82.0,83.5,79.0,84.0,79.0,82.0,1
Rahardyan_Felix_Kurniawan_(kr),81.5,77.0,81.0,80.0,83.0,87.0,78.5,85.5,80.0,85.0,1
Rangga_Risqi_Bintang_S.,82.0,76.0,79.0,79.0,80.5,85.0,78.5,82.0,80.0,85.0,1
Saputra_Seftian_Rahmatdhani,80.5,76.0,79.0,76.5,82.5,87.0,79.5,84.5,81.0,88.0,6
Siti_Dian_Rahmadani,79.5,72.5,78.5,74.5,79.5,83.0,78.5,75.0,77.5,82.0,5
Surya_Mahadika,81.5,76.0,79.0,76.5,80.5,83.5,79.0,84.5,80.0,85.5,1
Tribuana_Reza_Fanani,82.0,76.0,80.0,80.0,80.5,82.5,79.0,84.5,76.0,82.5,2
Triyah_Bhuana,81.5,77.0,80.0,76.0,79.5,82.0,77.5,83.0,79.0,80.5,4
Viasya_Aqnia_Zela,82.0,77.0,79.5,78.0,83.5,83.5,79.5,86.0,79.5,83.0,1
Wahyu_Febrianti,83.0,77.0,80.5,83.5,84.5,88.5,79.5,86.5,83.5,89.5,4
Wildan_Yongga_Jodyatmika,82.5,72.5,78.5,78.0,79.0,81.5,77.5,77.0,82.0,81.0,1
Wisnu_Tirta_Kusuma,81.5,73.5,78.5,79.0,79.5,81.0,77.5,80.0,80.5,81.0,4
Zaneta_Ayu_Nur_Harsya,82.5,72.5,79.0,78.0,82.0,80.5,78.5,80.5,81.5,84.5,5
Ahmad_Dodik_Pratama,79.5,73.5,79.5,78.0,83.0,86.0,80.0,79.0,79.0,85.5,1
Ahmad_Pramuja,81.5,76.5,79.0,83.5,84.0,84.0,80.5,84.0,79.5,84.5,3
Aprita_Nur_Aini,79.5,77.0,78.5,78.0,84.5,85.5,82.0,85.0,80.5,83.0,6
Ardian_Rama_Budi_Kusuma,78.5,73.5,78.0,79.0,82.0,84.0,78.5,78.5,76.0,79.5,5
Arrasha_Raditya_Andani,81.0,75.0,80.5,78.0,82.5,85.5,82.0,81.5,81.5,84.0,2
Bayu_Ananta_Julian_Wicaksono,79.5,74.0,78.5,79.0,84.0,80.5,78.5,76.5,71.5,75.5,5
Cahya_Sasadara,80.5,75.0,78.0,78.0,82.5,85.5,82.5,82.5,72.5,81.5,5
Dimas_Ragil_Saputra,80.0,73.5,77.5,74.5,79.0,79.5,80.5,75.5,75.0,77.0,4
Dwi_Ka_Fauzian_Maulana_Ikhsan,80.5,75.0,77.5,77.0,79.5,83.5,81.5,79.5,80.5,81.0,4
Dwi_Nurida_Syifa,80.0,75.0,82.0,74.5,82.5,86.0,80.0,76.0,82.5,87.5,1
Fibriana_Fira_Rahmawati,80.5,77.0,78.5,77.0,83.0,85.5,81.0,84.5,81.5,83.0,6
Helsabrina_Faj'ri_Mahmuna,80.5,76.5,79.0,78.0,80.5,85.0,82.0,82.0,82.0,82.0,4
Hesnanda_Azeema_Naswa_Krisnasekha,79.5,77.0,78.5,79.0,84.5,87.5,84.0,86.5,80.5,85.5,6
Irma_Rahayu,80.5,77.5,80.5,76.0,82.5,86.0,78.5,86.0,82.0,84.5,1
Jimi_Pranata,79.5,74.0,77.5,75.5,79.5,80.0,82.0,76.5,72.5,81.0,1
Kevin_Saputra,79.5,74.0,76.5,78.0,80.5,82.0,79.5,82.5,78.5,83.0,5
Keylla_Aulia_Renata,80.0,77.5,81.0,76.5,83.5,85.5,81.0,86.0,83.0,85.5,2
Lia_Puspitasari,79.5,75.5,78.0,77.0,79.5,83.5,81.0,82.0,79.0,84.0,6
Luna_Aurelia_Romadhona_Putri,80.5,76.5,81.0,83.5,84.0,89.0,81.0,84.5,82.0,88.0,1
Moch._Rangga_Ardiyansah,81.0,76.5,78.5,79.0,82.5,86.0,85.0,86.5,80.5,84.0,1
Moh._Krisna_Hendra_Gunawan,80.5,75.5,78.0,74.5,82.5,80.5,82.5,75.5,75.5,79.5,4
1 nama_siswa nilai_informatika nilai_fisika nilai_kimia nilai_biologi nilai_big_lanjut nilai_ekonomi nilai_mat_lanjut nilai_sej_lanjut nilai_sosiologi nilai_geografi paket_jurusan
2 Ahmad_Adib_Almuiz 80.5 76.0 75.5 72.5 78.5 83.0 71.5 79.0 78.5 79.5 4
3 Amin_Ridho_Sholikin 83.5 82.5 81.5 78.5 81.0 82.5 82.0 86.5 81.5 86.0 1
4 Arik_Wisnu_Pramuditiya 86.0 81.0 82.0 81.0 82.5 83.0 81.5 86.0 82.5 89.0 1
5 Brian_Agung_Pamungkas 90.0 82.5 83.0 84.5 85.0 88.0 85.5 89.5 84.0 90.0 1
6 Chesylya_Adinnata_Maylani 79.5 76.0 79.5 79.5 81.0 81.0 75.5 82.0 80.5 83.5 4
7 Dewi_Marisah_Manggar_Retno 89.0 80.5 78.5 81.5 81.0 83.0 84.0 85.5 83.0 85.5 3
8 Dwi_Andika 81.0 76.5 76.5 78.0 81.0 83.5 73.5 78.5 78.5 79.0 4
9 Dyah_Ayu_Pratiwi 74.5 76.5 77.5 76.5 80.5 78.5 73.5 77.0 80.0 79.5 1
10 Ermita_Trisya_Sari 81.0 83.0 81.5 82.0 83.0 87.5 86.5 87.5 80.0 89.0 4
11 Fika_Nur_Rohmah 82.0 78.0 78.0 79.0 80.5 83.0 79.0 79.0 80.5 80.5 4
12 Fino_Andreyan_Pratama 84.0 79.0 79.0 80.0 80.0 81.5 75.0 81.5 80.5 81.5 3
13 Fitri_Yulita_Sari 88.5 79.5 78.0 82.5 82.5 84.5 78.0 84.5 82.0 85.0 4
14 Frisa_Agiel_Kirania 81.0 78.0 78.0 78.0 80.5 83.0 78.0 79.0 80.0 80.5 4
15 Handoko_Dimas_Wahyu_Nugroho 79.0 76.0 78.5 77.0 82.5 80.5 74.5 78.5 75.5 78.5 4
16 Keyla_Chantika_Devy_Julieta 76.5 79.5 80.0 74.5 80.5 81.0 76.0 80.0 79.5 82.0 5
17 Latifatul_Isma 83.0 82.0 77.0 80.5 81.0 85.0 86.5 86.0 79.0 86.5 4
18 M._Faris_Ardiyanto 75.0 76.0 76.0 76.0 78.5 84.5 73.5 77.5 77.5 76.0 4
19 Meriyas_Eka_Anjani 85.5 77.0 78.0 81.0 83.0 81.0 74.0 82.5 83.0 85.5 6
20 Mitzy_Aurora_Azzahra 85.0 79.0 80.0 80.0 83.0 83.5 80.5 84.0 81.0 84.5 3
21 Moch._Galih_Nur_Hidayatullah 77.0 77.0 77.0 77.0 80.5 78.5 74.0 78.0 79.5 78.5 4
22 Mohammad_Trio_Subekti 77.5 76.5 76.5 76.0 79.5 82.0 73.0 77.5 79.5 78.0 4
23 Muhamad_Rangga_Aji_Pratama 86.0 77.5 77.5 79.5 83.5 86.0 74.5 83.0 82.5 81.0 4
24 Nidda'ul_Fijriah 82.5 78.5 78.5 79.5 80.0 79.5 74.0 82.5 82.5 86.0 3
25 Novita_Eka_Ramandani 78.5 78.0 78.0 79.5 82.0 82.5 79.0 80.0 81.0 84.0 4
26 Putri_Rahayu_Ningsih 79.5 79.5 79.5 79.5 84.0 80.0 79.5 80.0 80.0 85.5 2
27 Quennata_Gladis_Bilbina 86.0 78.5 78.0 80.5 82.5 86.0 79.5 79.5 82.0 81.5 3
28 Rizki_Andi_Pratama 85.5 79.5 80.5 81.0 81.5 83.0 84.5 86.0 82.0 86.0 1
29 Rizqi_Pangestu_Arsyadipura 84.5 84.0 81.5 82.0 81.0 79.5 83.5 88.0 81.5 87.0 1
30 Rohmatul_Fitria_Dewi 87.5 78.0 78.0 83.0 81.0 84.5 80.5 80.5 82.0 81.5 3
31 Satrio_Damar_Anggono 77.5 78.5 77.0 76.5 80.5 80.0 73.5 83.5 80.0 85.5 1
32 Shofiyyatul_El_Husna 87.5 78.5 79.0 80.5 79.0 77.5 82.0 83.5 81.5 83.5 1
33 Tegar_Krido_Wibowo 79.5 77.0 79.5 77.5 80.0 77.5 77.0 78.5 79.5 80.0 1
34 Tegar_Reka_Wijaya 82.0 79.5 79.5 81.0 82.5 83.5 81.5 84.0 82.0 86.5 1
35 Vania_Ika_Melinda 80.5 79.5 79.5 80.5 81.0 80.5 82.0 84.0 79.0 83.5 2
36 Zaraya_Jelita_Putri_Ardina 84.0 82.5 81.5 81.5 81.0 83.5 82.0 84.0 81.0 86.0 1
37 Ahmad_Maulana_Rizky_Aditya_Wijaya 85.5 78.5 77.5 79.5 83.0 79.5 74.0 82.0 80.5 84.0 4
38 Alhasby_Bachtiar 79.5 79.5 78.5 81.5 80.0 79.5 76.0 84.0 81.5 85.0 2
39 Aprilia_Martalita_Wibowo 78.5 77.0 78.0 80.0 80.5 81.5 78.5 85.0 78.0 84.5 4
40 Arshinta_Marthalie_Gunawan 77.0 77.0 79.0 80.5 80.0 79.5 80.0 78.5 79.0 80.0 1
41 Atadea_Lie_Intan_Karina 86.5 80.5 78.0 81.0 81.0 78.0 76.5 84.0 77.5 81.0 3
42 Azzahra_Dewi_Natria 83.5 79.5 80.0 82.5 82.5 84.5 81.5 89.0 81.5 86.5 4
43 Bagus_Rohman_Maulana 81.5 82.5 80.5 79.5 80.0 81.5 81.5 83.5 81.5 86.0 6
44 Binti_Yisha_Zahra_Futri 85.0 83.0 78.5 83.5 82.5 81.0 85.5 88.5 82.0 90.0 1
45 Chalista_Ayunda_Sukmaningtyas 84.0 79.0 78.0 82.5 80.5 81.5 82.0 87.0 78.5 85.0 2
46 Clara_Balqis_Putri_Febrianti 82.0 83.0 82.5 84.5 85.0 84.5 84.5 88.5 82.5 88.5 2
47 Davin_Yudha_Pratama 82.5 78.0 78.5 81.5 83.0 81.0 73.5 84.0 79.5 82.5 3
48 Dian_Noviyanti 87.5 77.5 79.0 79.5 79.5 85.5 77.5 81.0 81.0 83.5 6
49 Dwi_Kevfri_Kenata 81.0 80.5 82.0 80.5 82.5 81.5 78.5 84.5 82.5 86.0 1
50 Fahril_Rahmad_Tri_Setyawan 79.5 77.0 78.0 77.0 80.0 86.0 77.5 81.0 79.5 81.0 4
51 Firstian_Vidya_Permana 79.5 77.5 79.0 78.0 80.5 83.0 77.5 78.0 78.5 78.5 4
52 Galang_Aldiyansah_Putra 82.5 78.5 77.0 77.5 78.5 82.0 73.5 83.0 78.5 81.0 4
53 Ghania_Hardiyanti 86.0 83.5 82.5 82.5 83.0 85.5 86.5 87.5 82.0 87.0 1
54 Hamida_Ulviana_Dewi 79.5 79.5 78.5 81.0 79.5 85.5 75.0 83.0 77.5 83.0 6
55 Hengky_Prasetyo 85.0 77.0 77.0 75.5 80.5 80.0 73.5 79.0 76.5 78.5 4
56 Kellvi_Tiaska_Putri 78.0 77.5 77.5 79.5 80.0 83.0 76.5 81.0 80.5 80.5 4
57 Kurniawan_Dyo_Tri_Warsono 75.0 76.5 77.0 74.5 79.5 80.0 74.5 79.5 78.5 76.5 4
58 Mochamad_Ardiansyah_Saputra 85.5 77.0 77.0 78.5 79.0 83.0 73.5 77.5 81.0 80.5 4
59 Mochammad_Yuda_Aditia 87.0 76.5 76.0 80.0 81.0 81.0 73.5 78.5 81.5 81.0 3
60 Mohammad_Raihan_Nur_Fajri 81.0 77.0 76.0 80.0 81.0 82.5 73.5 81.0 80.5 81.0 4
61 Muhammad_Tegar_Prayuda 81.5 78.5 77.0 80.5 82.0 80.0 76.5 82.5 80.5 85.5 1
62 Muhammad_Zainal_Asrofi 78.0 76.5 78.0 80.0 80.0 81.0 74.5 79.5 78.5 78.0 4
63 Nur_Aleeya_Afrina_Suwandi 83.5 79.5 80.5 83.5 83.0 84.0 84.0 89.0 81.5 87.0 4
64 Prima_Dyah_Novanda 85.0 80.5 81.5 81.0 83.0 82.0 83.5 86.5 77.5 85.5 3
65 Rika_Nur_Fauziah 80.5 79.5 79.5 81.0 83.5 85.0 80.5 81.0 79.5 85.5 2
66 Satryo_Gito_Pratomo 87.0 79.5 81.5 82.0 81.5 83.0 84.5 90.0 82.5 89.0 2
67 Septian_Daniarti_Fitri_Astutik 79.0 78.5 78.0 81.0 83.0 82.0 76.0 84.0 77.0 82.5 3
68 Suci_Rahayu_Saputri 81.5 78.0 77.0 80.0 80.5 80.0 75.5 77.5 79.5 80.0 4
69 Sujiati_Fitrianingsih 83.5 77.5 78.0 79.5 80.0 83.0 76.5 84.0 80.5 80.5 6
70 Tata_Agata_Afga_Pratama 81.5 78.0 77.5 74.5 80.5 78.5 75.0 78.5 81.0 79.5 4
71 Yahya_Handika_Aditia 87.0 78.0 78.0 75.5 81.0 82.0 74.0 79.0 80.5 80.5 4
72 Yulia_Nur_Lismarita 80.5 77.5 78.0 80.5 81.0 80.0 80.5 83.0 77.5 83.0 4
73 Aditya_Rizky_Romadhon 81.0 77.5 76.5 79.5 80.0 81.0 76.5 82.0 80.5 80.5 2
74 Aisyah_Fidinna_Rahmatika 83.5 76.5 77.5 80.5 81.0 86.5 79.0 82.5 83.0 80.5 5
75 Aldo_Widodo 81.5 76.5 77.0 75.0 77.5 76.5 71.5 77.0 76.0 77.0 5
76 Alvino_Surya_Pratama 78.0 77.5 77.5 75.5 78.0 80.0 80.0 81.5 82.5 80.5 4
77 Alvinza_Brian_Saputra 76.5 76.5 76.5 74.5 79.0 77.5 71.5 75.0 77.5 76.5 4
78 Dhimas_Pandu_Wijaya 88.0 77.5 77.5 80.0 76.0 81.5 72.0 81.0 83.0 82.0 1
79 Fauziah_Elsa_Putri_Purnomo 81.0 82.5 84.0 82.5 83.0 87.0 85.5 85.0 82.0 88.5 1
80 Feisal_Wisnu_Raditya 78.0 77.0 77.5 75.0 78.5 81.0 74.5 79.0 78.5 79.5 4
81 Fitriani_Nurul_Norhayati 79.0 77.5 80.0 77.0 80.5 82.0 76.5 79.0 76.5 82.5 6
82 Fivi_Widyo_Wati 79.5 79.5 80.0 78.5 80.5 79.0 83.0 84.0 79.0 84.5 1
83 Gloria_Fransisca 81.0 79.0 80.5 80.5 83.0 80.5 79.5 84.5 80.0 85.0 3
84 Herlin_Faradila_Stifiana 78.5 78.5 79.0 80.0 81.5 81.0 80.5 83.0 80.0 82.5 1
85 Karisma_Hardiyati_P._R. 80.5 79.5 78.0 78.5 80.5 81.0 78.0 78.5 79.5 79.5 4
86 Kirana_Putri_Agustina 81.0 79.0 79.0 79.0 81.0 81.0 79.0 83.5 80.5 83.5 3
87 Lala_Putri_Meilita 77.5 78.0 78.5 79.0 82.0 84.5 81.5 82.5 80.0 85.5 6
88 M.fahcri_Affan_Ramadhani 80.5 80.5 80.0 77.0 82.5 86.0 74.0 84.5 80.5 82.5 1
89 Mey_Lika_Hanaya_Putri 87.0 78.0 80.0 81.0 82.5 86.5 82.0 84.5 83.0 84.5 6
90 Moch.afga_Afreza_Alfiansyah 81.0 79.5 80.5 80.0 83.0 85.0 79.5 86.0 81.0 85.0 4
91 Mochammad_Fahri_Nur_Rizky 82.5 79.5 83.0 81.5 80.5 82.5 85.5 86.0 82.0 87.0 1
92 Muhammad_Asril_Daffa_Saputra 77.5 77.5 78.0 78.5 80.5 81.5 72.0 78.0 79.5 79.5 4
93 Nadya_Anandiva_Silvyani 81.0 82.5 81.0 81.0 81.5 85.5 80.0 87.5 82.5 85.5 6
94 Nendra_Nur_Febrian 82.5 77.5 77.5 78.0 79.0 79.0 72.0 76.5 80.5 83.0 4
95 Putri_Adelia_Sari 81.0 77.5 78.0 80.0 80.5 84.5 80.0 85.5 82.5 82.0 4
96 Ramadhani_Silfi_Damaiyanti 80.0 77.5 78.0 78.5 80.5 86.5 78.0 82.0 81.5 81.0 5
97 Rangga_Galuh_Octa_Pradana 79.0 77.0 78.0 77.5 80.0 80.0 72.5 81.0 81.5 79.5 2
98 Rehan_Septa_Adi_Ramadhani 83.5 78.0 78.0 79.0 82.0 86.5 75.5 82.0 80.5 80.5 3
99 Salsa_Laurintiya 81.0 78.5 79.0 78.0 81.0 78.5 77.0 82.0 79.0 80.5 5
100 Salva_Andika 81.0 79.0 79.0 78.0 80.5 84.0 79.5 84.5 81.5 80.5 5
101 Sandy_Dwi_Meilano 81.5 82.5 81.0 80.5 81.0 83.5 83.0 85.5 82.0 87.5 1
102 Sera_Natalia 80.0 77.5 79.5 80.5 82.5 81.5 80.5 81.0 80.0 84.0 1
103 Tasya_Dwi_Oktavia 77.5 77.5 78.0 80.5 82.5 82.5 79.5 79.0 81.5 82.0 5
104 Varisha_Anastasya 86.5 80.5 81.5 81.5 80.5 85.0 84.0 85.5 82.5 87.0 1
105 Vrananda_Ricky_Saputra 77.5 77.0 79.0 78.0 80.5 78.5 72.0 79.0 81.5 78.5 4
106 Widya_Dwi_Astuti 79.5 77.5 79.0 80.5 80.5 81.5 76.0 79.0 80.5 80.5 5
107 Agha_Hisyam_Al-haliim 78.5 78.0 77.5 77.5 80.5 78.0 77.5 80.0 75.5 82.0 1
108 Ahmad_Rofi`an_Saputra 84.5 80.5 79.0 81.0 82.5 79.0 78.5 80.0 80.0 82.0 1
109 Aldo_Dwi_Julianto 83.5 81.0 79.0 77.5 80.5 79.5 81.0 81.0 80.5 85.0 6
110 Alvi_Sani 77.0 78.0 78.0 74.0 80.5 77.5 77.5 76.5 76.5 76.0 5
111 Aprilia_Wahyuning_Agustin 80.0 77.5 78.5 80.5 82.0 78.0 78.5 82.0 79.5 81.0 3
112 Arfian_Setya_Yusinda 77.5 78.0 78.5 78.5 82.5 79.5 77.5 81.0 77.5 81.0 4
113 Arga_Wahyu_Prasetyo 79.5 79.5 79.0 80.5 83.0 80.0 78.5 82.5 78.5 82.0 6
114 Athaya_Angel_Widodo 81.5 79.5 80.0 83.0 85.0 81.0 79.5 85.0 80.5 85.5 3
115 Bambang_Dwi_Sri_Hatmoko 83.0 77.5 78.0 79.5 81.0 79.5 77.5 80.5 80.5 79.5 4
116 Bilqiz_Namsya_Prasesta 80.0 77.5 78.0 79.0 81.0 77.5 77.5 80.5 76.5 80.0 5
117 Bunga_Damir_Kalolong_Sulai_Manan 79.5 81.0 82.0 79.5 82.5 81.0 78.5 81.5 78.5 83.5 1
118 Chalisha_Alqathrunnada_Winsputri 86.5 77.5 79.0 81.0 82.0 82.5 80.5 85.0 78.5 86.5 5
119 Decha_Navita_Sari 78.0 77.5 78.0 80.0 80.5 79.0 77.5 81.0 79.5 83.5 6
120 Dina_Aulia_Salsabila_Putri 83.5 79.5 78.5 79.0 81.0 80.0 77.5 84.0 81.0 84.0 2
121 Dyah_Vivianti 83.0 81.0 79.5 79.5 82.5 84.0 79.5 85.5 80.0 87.5 2
122 Endang_Rahayu_Ningsih 83.5 78.0 79.5 80.0 82.5 82.5 78.5 84.5 79.5 85.0 5
123 Hildan_Tri_Agustino 77.0 77.5 78.0 77.0 79.5 80.5 77.5 78.0 76.0 79.5 5
124 Juliani_Wati 76.5 77.5 78.0 77.0 80.0 78.5 77.5 79.0 77.0 79.5 5
125 Kaiyla_Fera_Ayu_Moza 87.0 78.5 78.5 84.0 85.0 87.5 78.5 85.0 79.5 86.5 5
126 Mexel_Farel_Erlangga 77.0 76.0 78.0 72.5 79.0 78.0 77.5 75.5 77.0 76.0 4
127 Muhamad_Fauzan_Saputra 76.5 78.0 78.0 80.0 83.0 78.0 77.5 80.0 74.5 80.5 4
128 Muhammad_Rangga_Saputra 76.0 78.5 78.0 78.5 80.5 81.0 78.5 78.0 79.5 78.5 4
129 Muhammad_Rizky_Putra_Aditya 81.0 80.5 77.5 78.5 80.5 81.0 77.5 79.5 73.0 80.5 2
130 Nayaka_Sutomo 82.5 84.0 84.0 80.5 84.5 82.5 83.5 87.5 80.0 86.0 1
131 Naysilla_Dwi_Anggraini 88.0 78.0 78.0 80.0 81.5 79.5 79.5 83.5 81.0 84.5 3
132 Nimas_Yayank_Putri_Prabowo 80.5 78.5 78.0 75.0 83.0 77.0 77.5 84.5 79.5 85.0 2
133 Puja_Micky_Harianto 80.0 78.5 78.5 81.5 81.0 81.0 77.5 82.0 79.5 84.0 4
134 Reva_Aidilla_Melani 85.0 84.0 83.0 83.5 82.0 81.5 82.5 88.5 80.5 88.5 2
135 Rivaldi_Desta_Akbar_Pratama 79.5 80.5 79.0 79.0 80.5 85.0 78.5 80.0 79.5 83.0 4
136 Roszhiana_Ramadhani 77.5 77.5 78.0 79.5 83.0 78.0 80.0 79.0 79.0 79.5 5
137 Santy_Nurahma_Agustya_Rani_Putri 78.0 78.0 78.0 78.5 83.0 77.5 77.5 78.0 76.5 80.5 4
138 Sindy_Aulia_Lestari 78.0 78.0 78.0 78.5 81.0 76.5 77.0 80.0 78.5 80.5 4
139 Singgih_Ferdy_Ananda 87.5 79.5 82.5 79.0 84.5 83.5 81.5 89.0 81.5 89.5 1
140 Susan_Amiliya_Khoirunisa 81.5 79.5 79.0 82.0 84.0 79.5 79.5 84.0 79.5 87.5 4
141 Trisa_Adelia_Parera 83.5 78.0 78.5 79.5 82.5 84.0 77.5 84.0 80.5 84.0 5
142 Yohan_Arinugraha 86.5 83.5 83.5 84.0 85.0 81.0 81.0 90.0 84.0 90.0 1
143 Ana_Ainus_Sifa 81.0 77.5 79.0 76.0 80.0 81.5 78.5 82.0 79.0 80.5 6
144 Andini_Rahmawati 78.5 79.5 79.0 75.5 81.0 83.0 79.5 83.0 77.0 82.0 6
145 Angga_Jalu_Arizona 78.5 76.0 76.0 75.0 78.5 77.0 77.0 78.5 74.0 79.0 4
146 Anggun_Kartika_Okta_Novita 81.5 76.5 78.0 76.0 80.5 83.5 78.5 84.0 79.5 85.0 6
147 Aprian_Mahardika 82.0 79.5 78.0 75.5 79.0 79.5 78.5 78.5 79.5 79.5 1
148 Arga_Reyhandika_Pratama 85.5 77.5 80.0 82.0 85.0 77.5 81.5 85.5 83.0 83.5 2
149 Awwalun_Firdausi 82.5 84.0 84.0 82.0 81.5 86.0 82.0 89.0 83.0 89.0 6
150 Della_Dwi_Pratiwi 80.0 78.5 79.0 80.0 79.5 80.0 78.5 81.0 77.0 82.0 4
151 Dhafa_Brillyan_Gustafianto 77.0 76.5 77.0 75.5 78.5 81.0 77.0 79.0 78.5 81.0 4
152 Dinda_Windy_Oktaviona 84.0 79.5 81.0 81.5 81.5 83.5 80.5 88.0 83.5 86.0 2
153 Erlang_Danendra_Ari_Putra 84.5 76.5 78.0 78.0 78.5 82.5 77.0 79.0 79.5 79.0 1
154 Gabriel_Desja_Alexsyata 79.0 76.5 77.0 75.0 79.0 79.5 77.5 77.5 77.0 79.5 4
155 Ghea_Anzani_Siswanto 83.5 78.5 78.0 82.0 80.5 81.5 79.5 80.5 81.0 84.0 2
156 Hera_Junia_Purnamasari 80.0 82.0 79.5 77.0 80.0 87.5 78.0 86.0 81.5 86.5 2
157 Isna_Maulidiyah 83.5 76.5 77.5 77.0 78.5 80.5 77.5 80.0 74.5 79.5 5
158 Johan_Satrio_Wicaksono 82.5 77.5 78.0 76.0 78.0 81.0 77.5 78.5 81.5 79.5 5
159 Juliana_Wita 80.0 76.5 78.0 76.0 78.5 77.0 78.5 78.0 76.5 80.5 1
160 Lucky_Fabrio_Saputra 81.0 84.0 80.5 78.0 79.5 81.0 80.0 82.0 79.5 84.0 1
161 Lukman_Khakim_Noah 80.5 76.5 78.0 75.5 78.5 80.0 77.0 79.0 78.5 76.0 4
162 Meirakha_Fernanda_Siswardhani 82.5 77.5 80.0 81.0 79.5 83.5 79.0 83.0 80.0 82.0 1
163 Mohamad_Rifa'i_Wijayanto 80.5 77.5 78.0 75.5 78.5 81.5 78.5 78.5 79.0 79.5 6
164 Mohammad_Iqbal_Hafidh_Amiruddin 82.5 76.5 78.0 75.5 78.5 80.5 77.5 77.5 76.0 81.0 4
165 Muhammad_Nur_Rahman_Sya'abibah 85.5 76.5 78.0 81.0 78.5 82.5 77.0 82.0 79.0 78.5 6
166 Nashwa_Mentari_Yuwana_Putri 83.5 81.5 81.5 83.5 82.0 85.5 83.0 86.0 82.0 85.5 6
167 Nezza_Maura_Putri_Agung 83.5 79.5 81.0 75.5 79.5 78.5 80.0 81.0 79.0 83.0 2
168 Revinda_Wisca_Natalie 86.0 81.5 81.0 85.0 80.5 87.0 80.0 85.5 82.5 85.5 3
169 Sahal_Ahmad 82.0 84.0 82.5 80.0 79.0 80.0 80.0 81.0 82.0 84.5 4
170 Salfa_Aulia_Putri 81.0 76.5 77.0 82.0 80.5 81.5 77.5 79.0 79.5 79.5 6
171 Selly_Novtiana_Waty 84.0 76.5 77.5 75.0 79.0 79.5 77.5 79.5 79.5 81.0 1
172 Septia_Ayu_Muliasih 77.5 76.5 77.5 74.5 79.5 80.5 77.5 77.0 76.0 79.5 5
173 Shafa_Ayunda_Putri 85.5 76.5 80.0 80.0 80.5 80.5 79.5 82.0 81.5 83.0 4
174 Shifa_Khayyuna_Qisthi 85.5 78.5 79.5 82.0 81.5 81.0 78.5 84.0 82.0 84.5 3
175 Siti_Apriliani_Khairunnisa 80.5 80.5 79.5 78.0 80.5 84.0 79.5 82.0 80.5 82.0 4
176 Siti_Aulia_Nur_Latifah 79.0 82.5 84.0 81.0 84.5 82.0 82.0 87.5 82.5 89.0 2
177 Tio_Ainun_Romadhoni 81.5 76.5 76.5 79.0 78.5 81.5 77.0 80.0 79.5 80.0 4
178 Yuma_Erlangga 79.5 76.0 76.0 77.0 77.5 76.5 77.0 76.5 74.5 79.0 4
179 Abid_Fadlih_Hafiyyah_Faza 85.0 78.0 78.0 78.0 79.5 80.0 78.0 79.0 81.5 81.5 4
180 Adinda_Dhea_Ochtavyana 86.0 81.5 80.5 81.0 81.0 82.5 80.0 85.0 81.0 83.5 3
181 Ahmad_Risky_Maskur 84.5 77.0 77.0 79.0 79.5 80.0 77.5 79.0 80.0 81.5 4
182 Ahmad_Rizal_Hanafi 86.5 80.5 80.5 79.0 78.5 81.0 80.5 81.0 79.5 82.0 3
183 Ahmad_Rizky_Wijaya 79.0 80.5 81.0 80.0 83.5 79.0 81.0 85.5 81.0 85.0 1
184 Alfiani_Mayasari 86.0 78.5 79.0 82.0 80.0 85.0 78.5 85.5 82.0 85.5 2
185 Ardan_Pradipta 76.5 79.5 78.0 75.5 82.0 81.0 78.0 81.5 80.0 82.0 4
186 Arya_Erlangga_Tino_Putra 80.0 77.0 77.5 80.5 79.0 81.0 78.0 82.5 79.5 80.5 4
187 Azka_Febita_Zalfianty 84.5 82.5 83.5 85.0 81.5 81.0 82.5 89.0 82.0 89.0 1
188 Bunga_Alikasari 81.0 79.5 80.5 81.0 84.5 81.0 79.5 89.0 83.0 89.0 2
189 Cantika_Oktavia_Nurfitri_Mardiani 79.0 78.5 79.0 81.0 81.0 86.0 78.5 85.0 82.5 85.0 3
190 Chiko_Bonanza_Cavan_Putra 80.0 78.5 77.5 77.0 79.5 78.5 78.0 79.0 79.0 80.0 1
191 Dhea_Ayu_Permatasari 81.5 82.0 79.0 81.0 82.0 88.5 78.5 87.0 82.0 86.5 1
192 Galang_Aldi_Ananta_Putra 83.5 80.5 79.5 77.0 79.0 86.5 78.5 85.5 79.5 85.5 3
193 Jefana_Dwi_Jayanti 81.5 84.5 84.0 85.0 85.0 90.5 84.0 90.0 81.5 90.0 1
194 Jhovani_Vina_Maharani 84.5 79.5 78.0 83.0 79.0 83.5 78.0 80.0 79.0 80.5 2
195 Keiza_Olivia_Witari 83.5 83.0 83.0 83.0 83.0 80.5 82.5 88.5 83.0 87.0 1
196 Kevin_Arfian_Vidyanata 80.5 77.0 77.5 75.0 78.5 81.5 78.0 80.0 77.0 79.5 4
197 M._Alfin_Nur_Rahmad 80.0 84.0 78.5 85.0 78.5 83.0 79.5 86.0 81.5 81.0 1
198 Marsha_Syifa'_Setiawati 80.5 77.5 79.0 75.5 79.5 81.5 78.5 82.0 77.5 82.0 6
199 Mochammad_Rifky_Febri_Nur_Rohman 76.5 77.0 77.5 72.5 78.5 77.5 78.0 78.0 78.5 77.0 4
200 Mohamad_Rizal_Permana_Putra 82.0 77.0 78.0 74.0 79.0 79.0 78.0 83.0 78.5 81.5 4
201 Muhammad_Gara_Imam_Arifin 81.5 78.5 79.0 83.5 79.0 81.0 78.0 86.0 81.0 83.5 2
202 Muhammad_Khafid_Nuriyanto 89.5 80.5 81.0 81.5 78.5 82.5 81.5 86.0 81.0 87.5 2
203 Muhammad_Zennuri 79.5 77.0 79.0 74.5 78.5 83.5 78.5 77.5 78.0 78.0 4
204 Rahma_Goespiaputri_Ramadhani 84.5 77.0 78.0 81.5 80.0 82.5 80.0 84.0 80.0 83.5 3
205 Rayhan_Aditya 81.5 80.5 81.0 81.5 80.0 81.5 80.5 88.0 81.0 88.0 2
206 Rehan_Dwi_Ferdiansyah 76.5 77.0 78.0 73.0 79.0 81.0 78.0 76.5 79.0 77.0 4
207 Rima_Dwi_Oktavia 79.5 77.5 78.0 76.0 80.0 79.5 78.0 80.0 80.0 81.0 4
208 Riska_Adelia_Dulrahman 80.5 73.0 71.5 71.5 77.0 79.5 77.5 71.0 77.0 72.5 4
209 Syakela_Arifah_Azzahra 83.0 77.0 79.0 77.5 79.5 85.0 78.5 80.0 79.0 80.0 5
210 Titin_Karunia_Putri 83.0 79.5 78.0 81.0 82.5 85.0 79.0 85.0 81.5 85.0 2
211 Vandi_Aulia_Kadhafi 83.5 77.0 79.0 76.0 79.5 79.5 78.5 79.5 78.0 79.0 4
212 Yuli_Evita_Wati 83.0 77.5 79.5 80.0 80.5 86.0 79.5 84.5 81.0 83.5 3
213 Zulia_Ulifatul_Mahmadah 81.5 78.5 79.0 75.0 79.5 81.0 78.5 81.0 80.0 82.0 6
214 Ameliya_Putri_Mentari 86.0 76.5 78.5 79.0 82.5 89.0 79.5 86.0 78.0 84.5 4
215 Andika_Bayu_Abriansyah 81.0 72.5 77.5 75.0 79.0 81.0 77.5 78.5 78.5 81.5 4
216 Azmi_Halim 84.5 74.5 80.0 81.0 85.0 81.5 79.5 83.0 79.5 83.5 1
217 Bambang_Adi_Pramana 83.5 74.5 79.0 78.5 81.0 82.0 79.5 78.5 79.5 79.0 3
218 Bryan_Maulana_Wibiantoro 86.0 77.0 82.5 79.0 84.5 84.5 81.0 86.5 80.5 86.5 1
219 Dharisman_Bagus_Prastowo 84.0 75.0 79.0 81.5 82.0 82.0 78.5 84.5 82.0 82.5 3
220 Ella_Syahra_Agustin 82.0 74.0 80.0 76.5 83.0 82.5 79.5 83.5 81.5 81.5 3
221 Febian_Dwi_Andika 82.0 74.5 78.0 74.5 80.0 81.0 77.5 78.5 79.0 78.5 4
222 Hawa_Aurelia_Firdaus 81.0 75.5 78.0 80.0 83.0 83.5 77.5 85.0 79.5 82.5 1
223 Indri_Julia_Dwi_Dianitami 81.0 76.5 80.0 77.0 81.0 83.0 79.5 83.5 82.5 86.0 1
224 Kusuma_Faridatulliya 85.5 75.0 80.0 78.0 83.0 84.5 78.5 81.0 81.5 84.0 6
225 Laudia_Vera_Agustin 81.0 75.0 78.5 81.0 83.5 81.5 79.5 83.5 81.0 87.0 3
226 M.deno_Bayu_Putra_Hardiansah 80.0 75.0 78.0 76.0 81.0 83.0 78.5 83.0 78.5 80.0 4
227 Moch._Febri_Nur_Hidayatullah 78.5 74.0 77.5 72.0 80.0 81.0 77.5 78.0 77.0 76.0 5
228 Mochamat_Agil_Desulton 81.5 74.0 77.5 77.0 81.0 81.0 78.5 79.0 78.0 78.5 5
229 Moh._Rendi_Saputra 81.0 73.5 78.0 75.5 81.0 81.5 77.5 80.0 79.0 80.0 4
230 Mohamad_Bagus_Hermawan 78.0 73.5 77.0 74.0 80.0 81.0 77.5 73.5 79.0 79.0 4
231 Muchamad_Jaohar_Firdaus 82.5 74.5 77.0 81.0 82.0 82.0 78.0 79.5 79.5 81.0 3
232 Muhamad_Rif'an_Mauludi 88.0 75.5 78.5 82.0 81.5 84.0 77.5 81.0 81.5 82.0 3
233 Muhammad_Safi' 82.0 77.0 78.0 79.0 80.0 81.5 77.5 79.5 81.5 79.5 4
234 Rendi_Prastyo_Aditama 79.5 73.5 77.5 74.5 81.0 78.0 77.5 77.5 79.0 79.0 5
235 Renno_Ilham_Revaldo 85.5 73.5 77.5 79.0 81.0 82.5 77.5 83.5 79.5 82.0 2
236 Risma_Indira_Fernanda 89.0 77.0 78.5 83.5 83.0 84.0 81.5 84.5 76.5 85.5 3
237 Safina_Ismafatul_Roida 78.5 73.5 79.0 80.0 82.0 80.5 79.0 84.0 80.0 81.0 4
238 Silvia_Novitasari 88.5 77.0 78.0 77.0 82.0 81.0 77.5 83.0 82.5 81.5 3
239 Sonya_Aulia_Dewi 84.5 75.5 82.5 79.0 82.0 82.0 82.0 83.0 81.0 85.0 1
240 Talita_Bella_Safira 84.0 75.5 80.0 78.0 82.0 82.5 79.5 79.5 80.5 81.5 1
241 Thalyta_Chelse_Olivia_Leovanny 86.5 74.5 80.0 80.0 84.0 82.0 79.5 84.5 83.0 83.5 3
242 Ulfa_Kusuma_Dewi 84.5 75.0 78.5 78.0 82.0 81.0 77.5 80.0 81.5 82.0 6
243 Wahyu_Subastyan 79.5 73.5 79.0 74.0 80.0 81.5 78.5 74.0 76.0 78.5 4
244 Yanuarycha_Putri_Rifda 82.0 73.5 79.0 77.0 81.5 80.0 78.5 80.5 82.0 82.5 4
245 Zulfatul_Ilmi_Sa'adah 80.0 73.5 79.5 77.0 84.5 84.0 79.5 82.0 81.5 82.0 4
246 Abel_Senja_Agma_Subroto 82.0 77.0 80.0 79.0 80.5 86.0 79.5 83.0 81.5 85.5 2
247 Ahmad_Fauzan_Maulana_Ibrahim 82.0 76.0 78.0 77.0 84.0 82.5 77.5 80.5 81.5 82.5 4
248 Amin_Ridho_Shobirin 80.5 76.0 82.5 76.0 82.5 84.5 79.5 81.5 80.0 83.0 5
249 Andika_Nugrahatama 81.5 72.5 79.0 76.0 79.5 82.0 78.5 82.5 78.5 82.0 4
250 Aprilliana_Cahaya_Puspita 82.5 72.5 78.5 79.0 79.5 83.0 77.5 79.0 80.5 83.0 6
251 Aulia_Dwi_Suci_Cahyani 82.5 72.5 79.0 80.0 83.0 83.0 78.5 81.0 80.5 82.0 1
252 Bilqis_Syafiah_Ahmad 82.0 77.5 79.0 79.0 82.5 86.0 79.0 84.5 82.0 86.5 5
253 Danendra_Zahran_Qurunul_Bahri 79.0 72.5 76.5 72.0 83.5 77.5 77.5 81.5 78.0 77.5 4
254 Dania_Ismatul_Maula 82.5 77.0 80.5 80.0 84.5 84.0 81.0 86.0 81.0 85.0 1
255 Diva_Maulidiya 81.0 77.5 79.0 74.0 81.0 85.0 78.5 80.0 78.0 84.0 6
256 Gufroni_Ahmadin_Naja 80.5 74.0 78.0 72.5 80.5 81.5 77.5 80.0 78.0 80.5 4
257 Handy_Miftakhul_Ullum 82.0 77.5 78.5 82.0 82.0 86.0 78.5 88.5 82.5 85.5 2
258 Kharizma_Putri_Prilia 82.5 79.0 82.0 80.0 81.5 85.0 82.0 83.5 82.5 88.0 1
259 Laela_Indriani 80.0 72.5 78.5 72.0 79.5 77.0 78.5 75.5 77.0 77.0 4
260 M._Zeka_Azfar_Pahlawan 82.5 71.0 79.5 78.0 85.0 84.0 79.0 79.0 81.0 80.0 3
261 Maysa_Purwadinata 81.0 72.5 79.5 76.0 81.5 81.5 79.5 79.5 80.5 80.0 1
262 Medina_Putri_Febiani 81.0 77.5 79.5 81.0 84.5 84.5 79.0 85.0 82.5 83.5 4
263 Moh._Raditya_Haria_Nugraha 81.0 72.5 77.5 78.0 82.5 83.5 77.5 84.0 79.0 83.5 1
264 Mohammad_Reno_Zainul_Pratama 81.5 72.5 77.5 75.0 79.0 84.0 77.5 73.5 81.5 81.0 4
265 Muhamad_Kafil_Lubawi 81.5 72.5 79.0 76.5 80.5 84.0 78.5 80.5 79.5 82.5 4
266 Nafatria_Kirana 80.0 72.5 78.5 73.5 79.0 78.0 78.5 77.5 74.5 76.5 4
267 Nanang_Mariyanto 79.5 73.5 77.5 79.0 79.0 82.0 77.5 80.0 80.0 78.5 6
268 Quinnsha_Launada_Wibowo 82.0 77.0 79.0 78.0 82.0 83.5 79.0 84.0 79.0 82.0 1
269 Rahardyan_Felix_Kurniawan_(kr) 81.5 77.0 81.0 80.0 83.0 87.0 78.5 85.5 80.0 85.0 1
270 Rangga_Risqi_Bintang_S. 82.0 76.0 79.0 79.0 80.5 85.0 78.5 82.0 80.0 85.0 1
271 Saputra_Seftian_Rahmatdhani 80.5 76.0 79.0 76.5 82.5 87.0 79.5 84.5 81.0 88.0 6
272 Siti_Dian_Rahmadani 79.5 72.5 78.5 74.5 79.5 83.0 78.5 75.0 77.5 82.0 5
273 Surya_Mahadika 81.5 76.0 79.0 76.5 80.5 83.5 79.0 84.5 80.0 85.5 1
274 Tribuana_Reza_Fanani 82.0 76.0 80.0 80.0 80.5 82.5 79.0 84.5 76.0 82.5 2
275 Triyah_Bhuana 81.5 77.0 80.0 76.0 79.5 82.0 77.5 83.0 79.0 80.5 4
276 Viasya_Aqnia_Zela 82.0 77.0 79.5 78.0 83.5 83.5 79.5 86.0 79.5 83.0 1
277 Wahyu_Febrianti 83.0 77.0 80.5 83.5 84.5 88.5 79.5 86.5 83.5 89.5 4
278 Wildan_Yongga_Jodyatmika 82.5 72.5 78.5 78.0 79.0 81.5 77.5 77.0 82.0 81.0 1
279 Wisnu_Tirta_Kusuma 81.5 73.5 78.5 79.0 79.5 81.0 77.5 80.0 80.5 81.0 4
280 Zaneta_Ayu_Nur_Harsya 82.5 72.5 79.0 78.0 82.0 80.5 78.5 80.5 81.5 84.5 5
281 Ahmad_Dodik_Pratama 79.5 73.5 79.5 78.0 83.0 86.0 80.0 79.0 79.0 85.5 1
282 Ahmad_Pramuja 81.5 76.5 79.0 83.5 84.0 84.0 80.5 84.0 79.5 84.5 3
283 Aprita_Nur_Aini 79.5 77.0 78.5 78.0 84.5 85.5 82.0 85.0 80.5 83.0 6
284 Ardian_Rama_Budi_Kusuma 78.5 73.5 78.0 79.0 82.0 84.0 78.5 78.5 76.0 79.5 5
285 Arrasha_Raditya_Andani 81.0 75.0 80.5 78.0 82.5 85.5 82.0 81.5 81.5 84.0 2
286 Bayu_Ananta_Julian_Wicaksono 79.5 74.0 78.5 79.0 84.0 80.5 78.5 76.5 71.5 75.5 5
287 Cahya_Sasadara 80.5 75.0 78.0 78.0 82.5 85.5 82.5 82.5 72.5 81.5 5
288 Dimas_Ragil_Saputra 80.0 73.5 77.5 74.5 79.0 79.5 80.5 75.5 75.0 77.0 4
289 Dwi_Ka_Fauzian_Maulana_Ikhsan 80.5 75.0 77.5 77.0 79.5 83.5 81.5 79.5 80.5 81.0 4
290 Dwi_Nurida_Syifa 80.0 75.0 82.0 74.5 82.5 86.0 80.0 76.0 82.5 87.5 1
291 Fibriana_Fira_Rahmawati 80.5 77.0 78.5 77.0 83.0 85.5 81.0 84.5 81.5 83.0 6
292 Helsabrina_Faj'ri_Mahmuna 80.5 76.5 79.0 78.0 80.5 85.0 82.0 82.0 82.0 82.0 4
293 Hesnanda_Azeema_Naswa_Krisnasekha 79.5 77.0 78.5 79.0 84.5 87.5 84.0 86.5 80.5 85.5 6
294 Irma_Rahayu 80.5 77.5 80.5 76.0 82.5 86.0 78.5 86.0 82.0 84.5 1
295 Jimi_Pranata 79.5 74.0 77.5 75.5 79.5 80.0 82.0 76.5 72.5 81.0 1
296 Kevin_Saputra 79.5 74.0 76.5 78.0 80.5 82.0 79.5 82.5 78.5 83.0 5
297 Keylla_Aulia_Renata 80.0 77.5 81.0 76.5 83.5 85.5 81.0 86.0 83.0 85.5 2
298 Lia_Puspitasari 79.5 75.5 78.0 77.0 79.5 83.5 81.0 82.0 79.0 84.0 6
299 Luna_Aurelia_Romadhona_Putri 80.5 76.5 81.0 83.5 84.0 89.0 81.0 84.5 82.0 88.0 1
300 Moch._Rangga_Ardiyansah 81.0 76.5 78.5 79.0 82.5 86.0 85.0 86.5 80.5 84.0 1
301 Moh._Krisna_Hendra_Gunawan 80.5 75.5 78.0 74.5 82.5 80.5 82.5 75.5 75.5 79.5 4

View File

@ -0,0 +1,301 @@
nama_siswa,nilai_informatika,nilai_fisika,nilai_kimia,nilai_biologi,nilai_big_lanjut,nilai_ekonomi,nilai_mat_lanjut,nilai_sej_lanjut,nilai_sosiologi,nilai_geografi,paket_jurusan
Ahmad_Adib_Almuiz,80.5,76.0,75.5,72.5,78.5,83.0,71.5,79.0,78.5,79.5,1
Amin_Ridho_Sholikin,83.5,82.5,81.5,78.5,81.0,82.5,82.0,86.5,81.5,86.0,6
Arik_Wisnu_Pramuditiya,86.0,81.0,82.0,81.0,82.5,83.0,81.5,86.0,82.5,89.0,6
Brian_Agung_Pamungkas,90.0,82.5,83.0,84.5,85.0,88.0,85.5,89.5,84.0,90.0,6
Chesylya_Adinnata_Maylani,79.5,76.0,79.5,79.5,81.0,81.0,75.5,82.0,80.5,83.5,3
Dewi_Marisah_Manggar_Retno,89.0,80.5,78.5,81.5,81.0,83.0,84.0,85.5,83.0,85.5,6
Dwi_Andika,81.0,76.5,76.5,78.0,81.0,83.5,73.5,78.5,78.5,79.0,2
Dyah_Ayu_Pratiwi,74.5,76.5,77.5,76.5,80.5,78.5,73.5,77.0,80.0,79.5,1
Ermita_Trisya_Sari,81.0,83.0,81.5,82.0,83.0,87.5,86.5,87.5,80.0,89.0,6
Fika_Nur_Rohmah,82.0,78.0,78.0,79.0,80.5,83.0,79.0,79.0,80.5,80.5,3
Fino_Andreyan_Pratama,84.0,79.0,79.0,80.0,80.0,81.5,75.0,81.5,80.5,81.5,4
Fitri_Yulita_Sari,88.5,79.5,78.0,82.5,82.5,84.5,78.0,84.5,82.0,85.0,6
Frisa_Agiel_Kirania,81.0,78.0,78.0,78.0,80.5,83.0,78.0,79.0,80.0,80.5,3
Handoko_Dimas_Wahyu_Nugroho,79.0,76.0,78.5,77.0,82.5,80.5,74.5,78.5,75.5,78.5,1
Keyla_Chantika_Devy_Julieta,76.5,79.5,80.0,74.5,80.5,81.0,76.0,80.0,79.5,82.0,2
Latifatul_Isma,83.0,82.0,77.0,80.5,81.0,85.0,86.5,86.0,79.0,86.5,6
M._Faris_Ardiyanto,75.0,76.0,76.0,76.0,78.5,84.5,73.5,77.5,77.5,76.0,1
Meriyas_Eka_Anjani,85.5,77.0,78.0,81.0,83.0,81.0,74.0,82.5,83.0,85.5,5
Mitzy_Aurora_Azzahra,85.0,79.0,80.0,80.0,83.0,83.5,80.5,84.0,81.0,84.5,5
Moch._Galih_Nur_Hidayatullah,77.0,77.0,77.0,77.0,80.5,78.5,74.0,78.0,79.5,78.5,1
Mohammad_Trio_Subekti,77.5,76.5,76.5,76.0,79.5,82.0,73.0,77.5,79.5,78.0,1
Muhamad_Rangga_Aji_Pratama,86.0,77.5,77.5,79.5,83.5,86.0,74.5,83.0,82.5,81.0,5
Nidda'ul_Fijriah,82.5,78.5,78.5,79.5,80.0,79.5,74.0,82.5,82.5,86.0,4
Novita_Eka_Ramandani,78.5,78.0,78.0,79.5,82.0,82.5,79.0,80.0,81.0,84.0,4
Putri_Rahayu_Ningsih,79.5,79.5,79.5,79.5,84.0,80.0,79.5,80.0,80.0,85.5,4
Quennata_Gladis_Bilbina,86.0,78.5,78.0,80.5,82.5,86.0,79.5,79.5,82.0,81.5,5
Rizki_Andi_Pratama,85.5,79.5,80.5,81.0,81.5,83.0,84.5,86.0,82.0,86.0,6
Rizqi_Pangestu_Arsyadipura,84.5,84.0,81.5,82.0,81.0,79.5,83.5,88.0,81.5,87.0,6
Rohmatul_Fitria_Dewi,87.5,78.0,78.0,83.0,81.0,84.5,80.5,80.5,82.0,81.5,5
Satrio_Damar_Anggono,77.5,78.5,77.0,76.5,80.5,80.0,73.5,83.5,80.0,85.5,2
Shofiyyatul_El_Husna,87.5,78.5,79.0,80.5,79.0,77.5,82.0,83.5,81.5,83.5,4
Tegar_Krido_Wibowo,79.5,77.0,79.5,77.5,80.0,77.5,77.0,78.5,79.5,80.0,2
Tegar_Reka_Wijaya,82.0,79.5,79.5,81.0,82.5,83.5,81.5,84.0,82.0,86.5,6
Vania_Ika_Melinda,80.5,79.5,79.5,80.5,81.0,80.5,82.0,84.0,79.0,83.5,5
Zaraya_Jelita_Putri_Ardina,84.0,82.5,81.5,81.5,81.0,83.5,82.0,84.0,81.0,86.0,6
Ahmad_Maulana_Rizky_Aditya_Wijaya,85.5,78.5,77.5,79.5,83.0,79.5,74.0,82.0,80.5,84.0,3
Alhasby_Bachtiar,79.5,79.5,78.5,81.5,80.0,79.5,76.0,84.0,81.5,85.0,4
Aprilia_Martalita_Wibowo,78.5,77.0,78.0,80.0,80.5,81.5,78.5,85.0,78.0,84.5,4
Arshinta_Marthalie_Gunawan,77.0,77.0,79.0,80.5,80.0,79.5,80.0,78.5,79.0,80.0,3
Atadea_Lie_Intan_Karina,86.5,80.5,78.0,81.0,81.0,78.0,76.5,84.0,77.5,81.0,4
Azzahra_Dewi_Natria,83.5,79.5,80.0,82.5,82.5,84.5,81.5,89.0,81.5,86.5,6
Bagus_Rohman_Maulana,81.5,82.5,80.5,79.5,80.0,81.5,81.5,83.5,81.5,86.0,5
Binti_Yisha_Zahra_Futri,85.0,83.0,78.5,83.5,82.5,81.0,85.5,88.5,82.0,90.0,6
Chalista_Ayunda_Sukmaningtyas,84.0,79.0,78.0,82.5,80.5,81.5,82.0,87.0,78.5,85.0,5
Clara_Balqis_Putri_Febrianti,82.0,83.0,82.5,84.5,85.0,84.5,84.5,88.5,82.5,88.5,6
Davin_Yudha_Pratama,82.5,78.0,78.5,81.5,83.0,81.0,73.5,84.0,79.5,82.5,4
Dian_Noviyanti,87.5,77.5,79.0,79.5,79.5,85.5,77.5,81.0,81.0,83.5,4
Dwi_Kevfri_Kenata,81.0,80.5,82.0,80.5,82.5,81.5,78.5,84.5,82.5,86.0,5
Fahril_Rahmad_Tri_Setyawan,79.5,77.0,78.0,77.0,80.0,86.0,77.5,81.0,79.5,81.0,3
Firstian_Vidya_Permana,79.5,77.5,79.0,78.0,80.5,83.0,77.5,78.0,78.5,78.5,2
Galang_Aldiyansah_Putra,82.5,78.5,77.0,77.5,78.5,82.0,73.5,83.0,78.5,81.0,2
Ghania_Hardiyanti,86.0,83.5,82.5,82.5,83.0,85.5,86.5,87.5,82.0,87.0,6
Hamida_Ulviana_Dewi,79.5,79.5,78.5,81.0,79.5,85.5,75.0,83.0,77.5,83.0,4
Hengky_Prasetyo,85.0,77.0,77.0,75.5,80.5,80.0,73.5,79.0,76.5,78.5,1
Kellvi_Tiaska_Putri,78.0,77.5,77.5,79.5,80.0,83.0,76.5,81.0,80.5,80.5,3
Kurniawan_Dyo_Tri_Warsono,75.0,76.5,77.0,74.5,79.5,80.0,74.5,79.5,78.5,76.5,1
Mochamad_Ardiansyah_Saputra,85.5,77.0,77.0,78.5,79.0,83.0,73.5,77.5,81.0,80.5,2
Mochammad_Yuda_Aditia,87.0,76.5,76.0,80.0,81.0,81.0,73.5,78.5,81.5,81.0,3
Mohammad_Raihan_Nur_Fajri,81.0,77.0,76.0,80.0,81.0,82.5,73.5,81.0,80.5,81.0,3
Muhammad_Tegar_Prayuda,81.5,78.5,77.0,80.5,82.0,80.0,76.5,82.5,80.5,85.5,4
Muhammad_Zainal_Asrofi,78.0,76.5,78.0,80.0,80.0,81.0,74.5,79.5,78.5,78.0,2
Nur_Aleeya_Afrina_Suwandi,83.5,79.5,80.5,83.5,83.0,84.0,84.0,89.0,81.5,87.0,6
Prima_Dyah_Novanda,85.0,80.5,81.5,81.0,83.0,82.0,83.5,86.5,77.5,85.5,6
Rika_Nur_Fauziah,80.5,79.5,79.5,81.0,83.5,85.0,80.5,81.0,79.5,85.5,5
Satryo_Gito_Pratomo,87.0,79.5,81.5,82.0,81.5,83.0,84.5,90.0,82.5,89.0,6
Septian_Daniarti_Fitri_Astutik,79.0,78.5,78.0,81.0,83.0,82.0,76.0,84.0,77.0,82.5,4
Suci_Rahayu_Saputri,81.5,78.0,77.0,80.0,80.5,80.0,75.5,77.5,79.5,80.0,2
Sujiati_Fitrianingsih,83.5,77.5,78.0,79.5,80.0,83.0,76.5,84.0,80.5,80.5,4
Tata_Agata_Afga_Pratama,81.5,78.0,77.5,74.5,80.5,78.5,75.0,78.5,81.0,79.5,1
Yahya_Handika_Aditia,87.0,78.0,78.0,75.5,81.0,82.0,74.0,79.0,80.5,80.5,2
Yulia_Nur_Lismarita,80.5,77.5,78.0,80.5,81.0,80.0,80.5,83.0,77.5,83.0,3
Aditya_Rizky_Romadhon,81.0,77.5,76.5,79.5,80.0,81.0,76.5,82.0,80.5,80.5,3
Aisyah_Fidinna_Rahmatika,83.5,76.5,77.5,80.5,81.0,86.5,79.0,82.5,83.0,80.5,5
Aldo_Widodo,81.5,76.5,77.0,75.0,77.5,76.5,71.5,77.0,76.0,77.0,1
Alvino_Surya_Pratama,78.0,77.5,77.5,75.5,78.0,80.0,80.0,81.5,82.5,80.5,2
Alvinza_Brian_Saputra,76.5,76.5,76.5,74.5,79.0,77.5,71.5,75.0,77.5,76.5,1
Dhimas_Pandu_Wijaya,88.0,77.5,77.5,80.0,76.0,81.5,72.0,81.0,83.0,82.0,3
Fauziah_Elsa_Putri_Purnomo,81.0,82.5,84.0,82.5,83.0,87.0,85.5,85.0,82.0,88.5,6
Feisal_Wisnu_Raditya,78.0,77.0,77.5,75.0,78.5,81.0,74.5,79.0,78.5,79.5,1
Fitriani_Nurul_Norhayati,79.0,77.5,80.0,77.0,80.5,82.0,76.5,79.0,76.5,82.5,2
Fivi_Widyo_Wati,79.5,79.5,80.0,78.5,80.5,79.0,83.0,84.0,79.0,84.5,4
Gloria_Fransisca,81.0,79.0,80.5,80.5,83.0,80.5,79.5,84.5,80.0,85.0,5
Herlin_Faradila_Stifiana,78.5,78.5,79.0,80.0,81.5,81.0,80.5,83.0,80.0,82.5,4
Karisma_Hardiyati_P._R.,80.5,79.5,78.0,78.5,80.5,81.0,78.0,78.5,79.5,79.5,3
Kirana_Putri_Agustina,81.0,79.0,79.0,79.0,81.0,81.0,79.0,83.5,80.5,83.5,4
Lala_Putri_Meilita,77.5,78.0,78.5,79.0,82.0,84.5,81.5,82.5,80.0,85.5,4
M.fahcri_Affan_Ramadhani,80.5,80.5,80.0,77.0,82.5,86.0,74.0,84.5,80.5,82.5,4
Mey_Lika_Hanaya_Putri,87.0,78.0,80.0,81.0,82.5,86.5,82.0,84.5,83.0,84.5,6
Moch.afga_Afreza_Alfiansyah,81.0,79.5,80.5,80.0,83.0,85.0,79.5,86.0,81.0,85.0,5
Mochammad_Fahri_Nur_Rizky,82.5,79.5,83.0,81.5,80.5,82.5,85.5,86.0,82.0,87.0,6
Muhammad_Asril_Daffa_Saputra,77.5,77.5,78.0,78.5,80.5,81.5,72.0,78.0,79.5,79.5,2
Nadya_Anandiva_Silvyani,81.0,82.5,81.0,81.0,81.5,85.5,80.0,87.5,82.5,85.5,6
Nendra_Nur_Febrian,82.5,77.5,77.5,78.0,79.0,79.0,72.0,76.5,80.5,83.0,2
Putri_Adelia_Sari,81.0,77.5,78.0,80.0,80.5,84.5,80.0,85.5,82.5,82.0,5
Ramadhani_Silfi_Damaiyanti,80.0,77.5,78.0,78.5,80.5,86.5,78.0,82.0,81.5,81.0,4
Rangga_Galuh_Octa_Pradana,79.0,77.0,78.0,77.5,80.0,80.0,72.5,81.0,81.5,79.5,2
Rehan_Septa_Adi_Ramadhani,83.5,78.0,78.0,79.0,82.0,86.5,75.5,82.0,80.5,80.5,4
Salsa_Laurintiya,81.0,78.5,79.0,78.0,81.0,78.5,77.0,82.0,79.0,80.5,3
Salva_Andika,81.0,79.0,79.0,78.0,80.5,84.0,79.5,84.5,81.5,80.5,4
Sandy_Dwi_Meilano,81.5,82.5,81.0,80.5,81.0,83.5,83.0,85.5,82.0,87.5,6
Sera_Natalia,80.0,77.5,79.5,80.5,82.5,81.5,80.5,81.0,80.0,84.0,4
Tasya_Dwi_Oktavia,77.5,77.5,78.0,80.5,82.5,82.5,79.5,79.0,81.5,82.0,4
Varisha_Anastasya,86.5,80.5,81.5,81.5,80.5,85.0,84.0,85.5,82.5,87.0,6
Vrananda_Ricky_Saputra,77.5,77.0,79.0,78.0,80.5,78.5,72.0,79.0,81.5,78.5,2
Widya_Dwi_Astuti,79.5,77.5,79.0,80.5,80.5,81.5,76.0,79.0,80.5,80.5,3
Agha_Hisyam_Al-haliim,78.5,78.0,77.5,77.5,80.5,78.0,77.5,80.0,75.5,82.0,2
Ahmad_Rofi`an_Saputra,84.5,80.5,79.0,81.0,82.5,79.0,78.5,80.0,80.0,82.0,4
Aldo_Dwi_Julianto,83.5,81.0,79.0,77.5,80.5,79.5,81.0,81.0,80.5,85.0,4
Alvi_Sani,77.0,78.0,78.0,74.0,80.5,77.5,77.5,76.5,76.5,76.0,1
Aprilia_Wahyuning_Agustin,80.0,77.5,78.5,80.5,82.0,78.0,78.5,82.0,79.5,81.0,3
Arfian_Setya_Yusinda,77.5,78.0,78.5,78.5,82.5,79.5,77.5,81.0,77.5,81.0,2
Arga_Wahyu_Prasetyo,79.5,79.5,79.0,80.5,83.0,80.0,78.5,82.5,78.5,82.0,4
Athaya_Angel_Widodo,81.5,79.5,80.0,83.0,85.0,81.0,79.5,85.0,80.5,85.5,6
Bambang_Dwi_Sri_Hatmoko,83.0,77.5,78.0,79.5,81.0,79.5,77.5,80.5,80.5,79.5,3
Bilqiz_Namsya_Prasesta,80.0,77.5,78.0,79.0,81.0,77.5,77.5,80.5,76.5,80.0,2
Bunga_Damir_Kalolong_Sulai_Manan,79.5,81.0,82.0,79.5,82.5,81.0,78.5,81.5,78.5,83.5,4
Chalisha_Alqathrunnada_Winsputri,86.5,77.5,79.0,81.0,82.0,82.5,80.5,85.0,78.5,86.5,5
Decha_Navita_Sari,78.0,77.5,78.0,80.0,80.5,79.0,77.5,81.0,79.5,83.5,3
Dina_Aulia_Salsabila_Putri,83.5,79.5,78.5,79.0,81.0,80.0,77.5,84.0,81.0,84.0,4
Dyah_Vivianti,83.0,81.0,79.5,79.5,82.5,84.0,79.5,85.5,80.0,87.5,5
Endang_Rahayu_Ningsih,83.5,78.0,79.5,80.0,82.5,82.5,78.5,84.5,79.5,85.0,5
Hildan_Tri_Agustino,77.0,77.5,78.0,77.0,79.5,80.5,77.5,78.0,76.0,79.5,1
Juliani_Wati,76.5,77.5,78.0,77.0,80.0,78.5,77.5,79.0,77.0,79.5,1
Kaiyla_Fera_Ayu_Moza,87.0,78.5,78.5,84.0,85.0,87.5,78.5,85.0,79.5,86.5,6
Mexel_Farel_Erlangga,77.0,76.0,78.0,72.5,79.0,78.0,77.5,75.5,77.0,76.0,1
Muhamad_Fauzan_Saputra,76.5,78.0,78.0,80.0,83.0,78.0,77.5,80.0,74.5,80.5,2
Muhammad_Rangga_Saputra,76.0,78.5,78.0,78.5,80.5,81.0,78.5,78.0,79.5,78.5,2
Muhammad_Rizky_Putra_Aditya,81.0,80.5,77.5,78.5,80.5,81.0,77.5,79.5,73.0,80.5,2
Nayaka_Sutomo,82.5,84.0,84.0,80.5,84.5,82.5,83.5,87.5,80.0,86.0,6
Naysilla_Dwi_Anggraini,88.0,78.0,78.0,80.0,81.5,79.5,79.5,83.5,81.0,84.5,4
Nimas_Yayank_Putri_Prabowo,80.5,78.5,78.0,75.0,83.0,77.0,77.5,84.5,79.5,85.0,2
Puja_Micky_Harianto,80.0,78.5,78.5,81.5,81.0,81.0,77.5,82.0,79.5,84.0,4
Reva_Aidilla_Melani,85.0,84.0,83.0,83.5,82.0,81.5,82.5,88.5,80.5,88.5,6
Rivaldi_Desta_Akbar_Pratama,79.5,80.5,79.0,79.0,80.5,85.0,78.5,80.0,79.5,83.0,4
Roszhiana_Ramadhani,77.5,77.5,78.0,79.5,83.0,78.0,80.0,79.0,79.0,79.5,2
Santy_Nurahma_Agustya_Rani_Putri,78.0,78.0,78.0,78.5,83.0,77.5,77.5,78.0,76.5,80.5,2
Sindy_Aulia_Lestari,78.0,78.0,78.0,78.5,81.0,76.5,77.0,80.0,78.5,80.5,2
Singgih_Ferdy_Ananda,87.5,79.5,82.5,79.0,84.5,83.5,81.5,89.0,81.5,89.5,6
Susan_Amiliya_Khoirunisa,81.5,79.5,79.0,82.0,84.0,79.5,79.5,84.0,79.5,87.5,5
Trisa_Adelia_Parera,83.5,78.0,78.5,79.5,82.5,84.0,77.5,84.0,80.5,84.0,5
Yohan_Arinugraha,86.5,83.5,83.5,84.0,85.0,81.0,81.0,90.0,84.0,90.0,6
Ana_Ainus_Sifa,81.0,77.5,79.0,76.0,80.0,81.5,78.5,82.0,79.0,80.5,2
Andini_Rahmawati,78.5,79.5,79.0,75.5,81.0,83.0,79.5,83.0,77.0,82.0,3
Angga_Jalu_Arizona,78.5,76.0,76.0,75.0,78.5,77.0,77.0,78.5,74.0,79.0,1
Anggun_Kartika_Okta_Novita,81.5,76.5,78.0,76.0,80.5,83.5,78.5,84.0,79.5,85.0,3
Aprian_Mahardika,82.0,79.5,78.0,75.5,79.0,79.5,78.5,78.5,79.5,79.5,2
Arga_Reyhandika_Pratama,85.5,77.5,80.0,82.0,85.0,77.5,81.5,85.5,83.0,83.5,5
Awwalun_Firdausi,82.5,84.0,84.0,82.0,81.5,86.0,82.0,89.0,83.0,89.0,6
Della_Dwi_Pratiwi,80.0,78.5,79.0,80.0,79.5,80.0,78.5,81.0,77.0,82.0,3
Dhafa_Brillyan_Gustafianto,77.0,76.5,77.0,75.5,78.5,81.0,77.0,79.0,78.5,81.0,1
Dinda_Windy_Oktaviona,84.0,79.5,81.0,81.5,81.5,83.5,80.5,88.0,83.5,86.0,6
Erlang_Danendra_Ari_Putra,84.5,76.5,78.0,78.0,78.5,82.5,77.0,79.0,79.5,79.0,2
Gabriel_Desja_Alexsyata,79.0,76.5,77.0,75.0,79.0,79.5,77.5,77.5,77.0,79.5,1
Ghea_Anzani_Siswanto,83.5,78.5,78.0,82.0,80.5,81.5,79.5,80.5,81.0,84.0,4
Hera_Junia_Purnamasari,80.0,82.0,79.5,77.0,80.0,87.5,78.0,86.0,81.5,86.5,5
Isna_Maulidiyah,83.5,76.5,77.5,77.0,78.5,80.5,77.5,80.0,74.5,79.5,1
Johan_Satrio_Wicaksono,82.5,77.5,78.0,76.0,78.0,81.0,77.5,78.5,81.5,79.5,2
Juliana_Wita,80.0,76.5,78.0,76.0,78.5,77.0,78.5,78.0,76.5,80.5,1
Lucky_Fabrio_Saputra,81.0,84.0,80.5,78.0,79.5,81.0,80.0,82.0,79.5,84.0,4
Lukman_Khakim_Noah,80.5,76.5,78.0,75.5,78.5,80.0,77.0,79.0,78.5,76.0,1
Meirakha_Fernanda_Siswardhani,82.5,77.5,80.0,81.0,79.5,83.5,79.0,83.0,80.0,82.0,4
Mohamad_Rifa'i_Wijayanto,80.5,77.5,78.0,75.5,78.5,81.5,78.5,78.5,79.0,79.5,1
Mohammad_Iqbal_Hafidh_Amiruddin,82.5,76.5,78.0,75.5,78.5,80.5,77.5,77.5,76.0,81.0,1
Muhammad_Nur_Rahman_Sya'abibah,85.5,76.5,78.0,81.0,78.5,82.5,77.0,82.0,79.0,78.5,3
Nashwa_Mentari_Yuwana_Putri,83.5,81.5,81.5,83.5,82.0,85.5,83.0,86.0,82.0,85.5,6
Nezza_Maura_Putri_Agung,83.5,79.5,81.0,75.5,79.5,78.5,80.0,81.0,79.0,83.0,3
Revinda_Wisca_Natalie,86.0,81.5,81.0,85.0,80.5,87.0,80.0,85.5,82.5,85.5,6
Sahal_Ahmad,82.0,84.0,82.5,80.0,79.0,80.0,80.0,81.0,82.0,84.5,5
Salfa_Aulia_Putri,81.0,76.5,77.0,82.0,80.5,81.5,77.5,79.0,79.5,79.5,3
Selly_Novtiana_Waty,84.0,76.5,77.5,75.0,79.0,79.5,77.5,79.5,79.5,81.0,1
Septia_Ayu_Muliasih,77.5,76.5,77.5,74.5,79.5,80.5,77.5,77.0,76.0,79.5,1
Shafa_Ayunda_Putri,85.5,76.5,80.0,80.0,80.5,80.5,79.5,82.0,81.5,83.0,4
Shifa_Khayyuna_Qisthi,85.5,78.5,79.5,82.0,81.5,81.0,78.5,84.0,82.0,84.5,5
Siti_Apriliani_Khairunnisa,80.5,80.5,79.5,78.0,80.5,84.0,79.5,82.0,80.5,82.0,4
Siti_Aulia_Nur_Latifah,79.0,82.5,84.0,81.0,84.5,82.0,82.0,87.5,82.5,89.0,6
Tio_Ainun_Romadhoni,81.5,76.5,76.5,79.0,78.5,81.5,77.0,80.0,79.5,80.0,2
Yuma_Erlangga,79.5,76.0,76.0,77.0,77.5,76.5,77.0,76.5,74.5,79.0,1
Abid_Fadlih_Hafiyyah_Faza,85.0,78.0,78.0,78.0,79.5,80.0,78.0,79.0,81.5,81.5,3
Adinda_Dhea_Ochtavyana,86.0,81.5,80.5,81.0,81.0,82.5,80.0,85.0,81.0,83.5,5
Ahmad_Risky_Maskur,84.5,77.0,77.0,79.0,79.5,80.0,77.5,79.0,80.0,81.5,2
Ahmad_Rizal_Hanafi,86.5,80.5,80.5,79.0,78.5,81.0,80.5,81.0,79.5,82.0,4
Ahmad_Rizky_Wijaya,79.0,80.5,81.0,80.0,83.5,79.0,81.0,85.5,81.0,85.0,5
Alfiani_Mayasari,86.0,78.5,79.0,82.0,80.0,85.0,78.5,85.5,82.0,85.5,6
Ardan_Pradipta,76.5,79.5,78.0,75.5,82.0,81.0,78.0,81.5,80.0,82.0,2
Arya_Erlangga_Tino_Putra,80.0,77.0,77.5,80.5,79.0,81.0,78.0,82.5,79.5,80.5,3
Azka_Febita_Zalfianty,84.5,82.5,83.5,85.0,81.5,81.0,82.5,89.0,82.0,89.0,6
Bunga_Alikasari,81.0,79.5,80.5,81.0,84.5,81.0,79.5,89.0,83.0,89.0,6
Cantika_Oktavia_Nurfitri_Mardiani,79.0,78.5,79.0,81.0,81.0,86.0,78.5,85.0,82.5,85.0,5
Chiko_Bonanza_Cavan_Putra,80.0,78.5,77.5,77.0,79.5,78.5,78.0,79.0,79.0,80.0,2
Dhea_Ayu_Permatasari,81.5,82.0,79.0,81.0,82.0,88.5,78.5,87.0,82.0,86.5,6
Galang_Aldi_Ananta_Putra,83.5,80.5,79.5,77.0,79.0,86.5,78.5,85.5,79.5,85.5,5
Jefana_Dwi_Jayanti,81.5,84.5,84.0,85.0,85.0,90.5,84.0,90.0,81.5,90.0,6
Jhovani_Vina_Maharani,84.5,79.5,78.0,83.0,79.0,83.5,78.0,80.0,79.0,80.5,4
Keiza_Olivia_Witari,83.5,83.0,83.0,83.0,83.0,80.5,82.5,88.5,83.0,87.0,6
Kevin_Arfian_Vidyanata,80.5,77.0,77.5,75.0,78.5,81.5,78.0,80.0,77.0,79.5,1
M._Alfin_Nur_Rahmad,80.0,84.0,78.5,85.0,78.5,83.0,79.5,86.0,81.5,81.0,6
Marsha_Syifa'_Setiawati,80.5,77.5,79.0,75.5,79.5,81.5,78.5,82.0,77.5,82.0,2
Mochammad_Rifky_Febri_Nur_Rohman,76.5,77.0,77.5,72.5,78.5,77.5,78.0,78.0,78.5,77.0,1
Mohamad_Rizal_Permana_Putra,82.0,77.0,78.0,74.0,79.0,79.0,78.0,83.0,78.5,81.5,1
Muhammad_Gara_Imam_Arifin,81.5,78.5,79.0,83.5,79.0,81.0,78.0,86.0,81.0,83.5,5
Muhammad_Khafid_Nuriyanto,89.5,80.5,81.0,81.5,78.5,82.5,81.5,86.0,81.0,87.5,6
Muhammad_Zennuri,79.5,77.0,79.0,74.5,78.5,83.5,78.5,77.5,78.0,78.0,1
Rahma_Goespiaputri_Ramadhani,84.5,77.0,78.0,81.5,80.0,82.5,80.0,84.0,80.0,83.5,5
Rayhan_Aditya,81.5,80.5,81.0,81.5,80.0,81.5,80.5,88.0,81.0,88.0,6
Rehan_Dwi_Ferdiansyah,76.5,77.0,78.0,73.0,79.0,81.0,78.0,76.5,79.0,77.0,1
Rima_Dwi_Oktavia,79.5,77.5,78.0,76.0,80.0,79.5,78.0,80.0,80.0,81.0,2
Riska_Adelia_Dulrahman,80.5,73.0,71.5,71.5,77.0,79.5,77.5,71.0,77.0,72.5,1
Syakela_Arifah_Azzahra,83.0,77.0,79.0,77.5,79.5,85.0,78.5,80.0,79.0,80.0,3
Titin_Karunia_Putri,83.0,79.5,78.0,81.0,82.5,85.0,79.0,85.0,81.5,85.0,5
Vandi_Aulia_Kadhafi,83.5,77.0,79.0,76.0,79.5,79.5,78.5,79.5,78.0,79.0,2
Yuli_Evita_Wati,83.0,77.5,79.5,80.0,80.5,86.0,79.5,84.5,81.0,83.5,5
Zulia_Ulifatul_Mahmadah,81.5,78.5,79.0,75.0,79.5,81.0,78.5,81.0,80.0,82.0,2
Ameliya_Putri_Mentari,86.0,76.5,78.5,79.0,82.5,89.0,79.5,86.0,78.0,84.5,5
Andika_Bayu_Abriansyah,81.0,72.5,77.5,75.0,79.0,81.0,77.5,78.5,78.5,81.5,1
Azmi_Halim,84.5,74.5,80.0,81.0,85.0,81.5,79.5,83.0,79.5,83.5,5
Bambang_Adi_Pramana,83.5,74.5,79.0,78.5,81.0,82.0,79.5,78.5,79.5,79.0,3
Bryan_Maulana_Wibiantoro,86.0,77.0,82.5,79.0,84.5,84.5,81.0,86.5,80.5,86.5,6
Dharisman_Bagus_Prastowo,84.0,75.0,79.0,81.5,82.0,82.0,78.5,84.5,82.0,82.5,5
Ella_Syahra_Agustin,82.0,74.0,80.0,76.5,83.0,82.5,79.5,83.5,81.5,81.5,3
Febian_Dwi_Andika,82.0,74.5,78.0,74.5,80.0,81.0,77.5,78.5,79.0,78.5,1
Hawa_Aurelia_Firdaus,81.0,75.5,78.0,80.0,83.0,83.5,77.5,85.0,79.5,82.5,4
Indri_Julia_Dwi_Dianitami,81.0,76.5,80.0,77.0,81.0,83.0,79.5,83.5,82.5,86.0,4
Kusuma_Faridatulliya,85.5,75.0,80.0,78.0,83.0,84.5,78.5,81.0,81.5,84.0,4
Laudia_Vera_Agustin,81.0,75.0,78.5,81.0,83.5,81.5,79.5,83.5,81.0,87.0,5
M.deno_Bayu_Putra_Hardiansah,80.0,75.0,78.0,76.0,81.0,83.0,78.5,83.0,78.5,80.0,2
Moch._Febri_Nur_Hidayatullah,78.5,74.0,77.5,72.0,80.0,81.0,77.5,78.0,77.0,76.0,1
Mochamat_Agil_Desulton,81.5,74.0,77.5,77.0,81.0,81.0,78.5,79.0,78.0,78.5,2
Moh._Rendi_Saputra,81.0,73.5,78.0,75.5,81.0,81.5,77.5,80.0,79.0,80.0,1
Mohamad_Bagus_Hermawan,78.0,73.5,77.0,74.0,80.0,81.0,77.5,73.5,79.0,79.0,1
Muchamad_Jaohar_Firdaus,82.5,74.5,77.0,81.0,82.0,82.0,78.0,79.5,79.5,81.0,3
Muhamad_Rif'an_Mauludi,88.0,75.5,78.5,82.0,81.5,84.0,77.5,81.0,81.5,82.0,5
Muhammad_Safi',82.0,77.0,78.0,79.0,80.0,81.5,77.5,79.5,81.5,79.5,3
Rendi_Prastyo_Aditama,79.5,73.5,77.5,74.5,81.0,78.0,77.5,77.5,79.0,79.0,1
Renno_Ilham_Revaldo,85.5,73.5,77.5,79.0,81.0,82.5,77.5,83.5,79.5,82.0,3
Risma_Indira_Fernanda,89.0,77.0,78.5,83.5,83.0,84.0,81.5,84.5,76.5,85.5,6
Safina_Ismafatul_Roida,78.5,73.5,79.0,80.0,82.0,80.5,79.0,84.0,80.0,81.0,3
Silvia_Novitasari,88.5,77.0,78.0,77.0,82.0,81.0,77.5,83.0,82.5,81.5,3
Sonya_Aulia_Dewi,84.5,75.5,82.5,79.0,82.0,82.0,82.0,83.0,81.0,85.0,5
Talita_Bella_Safira,84.0,75.5,80.0,78.0,82.0,82.5,79.5,79.5,80.5,81.5,3
Thalyta_Chelse_Olivia_Leovanny,86.5,74.5,80.0,80.0,84.0,82.0,79.5,84.5,83.0,83.5,5
Ulfa_Kusuma_Dewi,84.5,75.0,78.5,78.0,82.0,81.0,77.5,80.0,81.5,82.0,3
Wahyu_Subastyan,79.5,73.5,79.0,74.0,80.0,81.5,78.5,74.0,76.0,78.5,1
Yanuarycha_Putri_Rifda,82.0,73.5,79.0,77.0,81.5,80.0,78.5,80.5,82.0,82.5,3
Zulfatul_Ilmi_Sa'adah,80.0,73.5,79.5,77.0,84.5,84.0,79.5,82.0,81.5,82.0,3
Abel_Senja_Agma_Subroto,82.0,77.0,80.0,79.0,80.5,86.0,79.5,83.0,81.5,85.5,5
Ahmad_Fauzan_Maulana_Ibrahim,82.0,76.0,78.0,77.0,84.0,82.5,77.5,80.5,81.5,82.5,3
Amin_Ridho_Shobirin,80.5,76.0,82.5,76.0,82.5,84.5,79.5,81.5,80.0,83.0,4
Andika_Nugrahatama,81.5,72.5,79.0,76.0,79.5,82.0,78.5,82.5,78.5,82.0,2
Aprilliana_Cahaya_Puspita,82.5,72.5,78.5,79.0,79.5,83.0,77.5,79.0,80.5,83.0,3
Aulia_Dwi_Suci_Cahyani,82.5,72.5,79.0,80.0,83.0,83.0,78.5,81.0,80.5,82.0,3
Bilqis_Syafiah_Ahmad,82.0,77.5,79.0,79.0,82.5,86.0,79.0,84.5,82.0,86.5,5
Danendra_Zahran_Qurunul_Bahri,79.0,72.5,76.5,72.0,83.5,77.5,77.5,81.5,78.0,77.5,1
Dania_Ismatul_Maula,82.5,77.0,80.5,80.0,84.5,84.0,81.0,86.0,81.0,85.0,5
Diva_Maulidiya,81.0,77.5,79.0,74.0,81.0,85.0,78.5,80.0,78.0,84.0,2
Gufroni_Ahmadin_Naja,80.5,74.0,78.0,72.5,80.5,81.5,77.5,80.0,78.0,80.5,1
Handy_Miftakhul_Ullum,82.0,77.5,78.5,82.0,82.0,86.0,78.5,88.5,82.5,85.5,6
Kharizma_Putri_Prilia,82.5,79.0,82.0,80.0,81.5,85.0,82.0,83.5,82.5,88.0,6
Laela_Indriani,80.0,72.5,78.5,72.0,79.5,77.0,78.5,75.5,77.0,77.0,1
M._Zeka_Azfar_Pahlawan,82.5,71.0,79.5,78.0,85.0,84.0,79.0,79.0,81.0,80.0,3
Maysa_Purwadinata,81.0,72.5,79.5,76.0,81.5,81.5,79.5,79.5,80.5,80.0,2
Medina_Putri_Febiani,81.0,77.5,79.5,81.0,84.5,84.5,79.0,85.0,82.5,83.5,5
Moh._Raditya_Haria_Nugraha,81.0,72.5,77.5,78.0,82.5,83.5,77.5,84.0,79.0,83.5,3
Mohammad_Reno_Zainul_Pratama,81.5,72.5,77.5,75.0,79.0,84.0,77.5,73.5,81.5,81.0,1
Muhamad_Kafil_Lubawi,81.5,72.5,79.0,76.5,80.5,84.0,78.5,80.5,79.5,82.5,2
Nafatria_Kirana,80.0,72.5,78.5,73.5,79.0,78.0,78.5,77.5,74.5,76.5,1
Nanang_Mariyanto,79.5,73.5,77.5,79.0,79.0,82.0,77.5,80.0,80.0,78.5,2
Quinnsha_Launada_Wibowo,82.0,77.0,79.0,78.0,82.0,83.5,79.0,84.0,79.0,82.0,4
Rahardyan_Felix_Kurniawan_(kr),81.5,77.0,81.0,80.0,83.0,87.0,78.5,85.5,80.0,85.0,5
Rangga_Risqi_Bintang_S.,82.0,76.0,79.0,79.0,80.5,85.0,78.5,82.0,80.0,85.0,4
Saputra_Seftian_Rahmatdhani,80.5,76.0,79.0,76.5,82.5,87.0,79.5,84.5,81.0,88.0,5
Siti_Dian_Rahmadani,79.5,72.5,78.5,74.5,79.5,83.0,78.5,75.0,77.5,82.0,1
Surya_Mahadika,81.5,76.0,79.0,76.5,80.5,83.5,79.0,84.5,80.0,85.5,3
Tribuana_Reza_Fanani,82.0,76.0,80.0,80.0,80.5,82.5,79.0,84.5,76.0,82.5,4
Triyah_Bhuana,81.5,77.0,80.0,76.0,79.5,82.0,77.5,83.0,79.0,80.5,3
Viasya_Aqnia_Zela,82.0,77.0,79.5,78.0,83.5,83.5,79.5,86.0,79.5,83.0,4
Wahyu_Febrianti,83.0,77.0,80.5,83.5,84.5,88.5,79.5,86.5,83.5,89.5,6
Wildan_Yongga_Jodyatmika,82.5,72.5,78.5,78.0,79.0,81.5,77.5,77.0,82.0,81.0,2
Wisnu_Tirta_Kusuma,81.5,73.5,78.5,79.0,79.5,81.0,77.5,80.0,80.5,81.0,2
Zaneta_Ayu_Nur_Harsya,82.5,72.5,79.0,78.0,82.0,80.5,78.5,80.5,81.5,84.5,3
Ahmad_Dodik_Pratama,79.5,73.5,79.5,78.0,83.0,86.0,80.0,79.0,79.0,85.5,3
Ahmad_Pramuja,81.5,76.5,79.0,83.5,84.0,84.0,80.5,84.0,79.5,84.5,5
Aprita_Nur_Aini,79.5,77.0,78.5,78.0,84.5,85.5,82.0,85.0,80.5,83.0,5
Ardian_Rama_Budi_Kusuma,78.5,73.5,78.0,79.0,82.0,84.0,78.5,78.5,76.0,79.5,2
Arrasha_Raditya_Andani,81.0,75.0,80.5,78.0,82.5,85.5,82.0,81.5,81.5,84.0,4
Bayu_Ananta_Julian_Wicaksono,79.5,74.0,78.5,79.0,84.0,80.5,78.5,76.5,71.5,75.5,1
Cahya_Sasadara,80.5,75.0,78.0,78.0,82.5,85.5,82.5,82.5,72.5,81.5,3
Dimas_Ragil_Saputra,80.0,73.5,77.5,74.5,79.0,79.5,80.5,75.5,75.0,77.0,1
Dwi_Ka_Fauzian_Maulana_Ikhsan,80.5,75.0,77.5,77.0,79.5,83.5,81.5,79.5,80.5,81.0,2
Dwi_Nurida_Syifa,80.0,75.0,82.0,74.5,82.5,86.0,80.0,76.0,82.5,87.5,3
Fibriana_Fira_Rahmawati,80.5,77.0,78.5,77.0,83.0,85.5,81.0,84.5,81.5,83.0,4
Helsabrina_Faj'ri_Mahmuna,80.5,76.5,79.0,78.0,80.5,85.0,82.0,82.0,82.0,82.0,4
Hesnanda_Azeema_Naswa_Krisnasekha,79.5,77.0,78.5,79.0,84.5,87.5,84.0,86.5,80.5,85.5,5
Irma_Rahayu,80.5,77.5,80.5,76.0,82.5,86.0,78.5,86.0,82.0,84.5,5
Jimi_Pranata,79.5,74.0,77.5,75.5,79.5,80.0,82.0,76.5,72.5,81.0,1
Kevin_Saputra,79.5,74.0,76.5,78.0,80.5,82.0,79.5,82.5,78.5,83.0,2
Keylla_Aulia_Renata,80.0,77.5,81.0,76.5,83.5,85.5,81.0,86.0,83.0,85.5,5
Lia_Puspitasari,79.5,75.5,78.0,77.0,79.5,83.5,81.0,82.0,79.0,84.0,3
Luna_Aurelia_Romadhona_Putri,80.5,76.5,81.0,83.5,84.0,89.0,81.0,84.5,82.0,88.0,6
Moch._Rangga_Ardiyansah,81.0,76.5,78.5,79.0,82.5,86.0,85.0,86.5,80.5,84.0,5
Moh._Krisna_Hendra_Gunawan,80.5,75.5,78.0,74.5,82.5,80.5,82.5,75.5,75.5,79.5,1
1 nama_siswa nilai_informatika nilai_fisika nilai_kimia nilai_biologi nilai_big_lanjut nilai_ekonomi nilai_mat_lanjut nilai_sej_lanjut nilai_sosiologi nilai_geografi paket_jurusan
2 Ahmad_Adib_Almuiz 80.5 76.0 75.5 72.5 78.5 83.0 71.5 79.0 78.5 79.5 1
3 Amin_Ridho_Sholikin 83.5 82.5 81.5 78.5 81.0 82.5 82.0 86.5 81.5 86.0 6
4 Arik_Wisnu_Pramuditiya 86.0 81.0 82.0 81.0 82.5 83.0 81.5 86.0 82.5 89.0 6
5 Brian_Agung_Pamungkas 90.0 82.5 83.0 84.5 85.0 88.0 85.5 89.5 84.0 90.0 6
6 Chesylya_Adinnata_Maylani 79.5 76.0 79.5 79.5 81.0 81.0 75.5 82.0 80.5 83.5 3
7 Dewi_Marisah_Manggar_Retno 89.0 80.5 78.5 81.5 81.0 83.0 84.0 85.5 83.0 85.5 6
8 Dwi_Andika 81.0 76.5 76.5 78.0 81.0 83.5 73.5 78.5 78.5 79.0 2
9 Dyah_Ayu_Pratiwi 74.5 76.5 77.5 76.5 80.5 78.5 73.5 77.0 80.0 79.5 1
10 Ermita_Trisya_Sari 81.0 83.0 81.5 82.0 83.0 87.5 86.5 87.5 80.0 89.0 6
11 Fika_Nur_Rohmah 82.0 78.0 78.0 79.0 80.5 83.0 79.0 79.0 80.5 80.5 3
12 Fino_Andreyan_Pratama 84.0 79.0 79.0 80.0 80.0 81.5 75.0 81.5 80.5 81.5 4
13 Fitri_Yulita_Sari 88.5 79.5 78.0 82.5 82.5 84.5 78.0 84.5 82.0 85.0 6
14 Frisa_Agiel_Kirania 81.0 78.0 78.0 78.0 80.5 83.0 78.0 79.0 80.0 80.5 3
15 Handoko_Dimas_Wahyu_Nugroho 79.0 76.0 78.5 77.0 82.5 80.5 74.5 78.5 75.5 78.5 1
16 Keyla_Chantika_Devy_Julieta 76.5 79.5 80.0 74.5 80.5 81.0 76.0 80.0 79.5 82.0 2
17 Latifatul_Isma 83.0 82.0 77.0 80.5 81.0 85.0 86.5 86.0 79.0 86.5 6
18 M._Faris_Ardiyanto 75.0 76.0 76.0 76.0 78.5 84.5 73.5 77.5 77.5 76.0 1
19 Meriyas_Eka_Anjani 85.5 77.0 78.0 81.0 83.0 81.0 74.0 82.5 83.0 85.5 5
20 Mitzy_Aurora_Azzahra 85.0 79.0 80.0 80.0 83.0 83.5 80.5 84.0 81.0 84.5 5
21 Moch._Galih_Nur_Hidayatullah 77.0 77.0 77.0 77.0 80.5 78.5 74.0 78.0 79.5 78.5 1
22 Mohammad_Trio_Subekti 77.5 76.5 76.5 76.0 79.5 82.0 73.0 77.5 79.5 78.0 1
23 Muhamad_Rangga_Aji_Pratama 86.0 77.5 77.5 79.5 83.5 86.0 74.5 83.0 82.5 81.0 5
24 Nidda'ul_Fijriah 82.5 78.5 78.5 79.5 80.0 79.5 74.0 82.5 82.5 86.0 4
25 Novita_Eka_Ramandani 78.5 78.0 78.0 79.5 82.0 82.5 79.0 80.0 81.0 84.0 4
26 Putri_Rahayu_Ningsih 79.5 79.5 79.5 79.5 84.0 80.0 79.5 80.0 80.0 85.5 4
27 Quennata_Gladis_Bilbina 86.0 78.5 78.0 80.5 82.5 86.0 79.5 79.5 82.0 81.5 5
28 Rizki_Andi_Pratama 85.5 79.5 80.5 81.0 81.5 83.0 84.5 86.0 82.0 86.0 6
29 Rizqi_Pangestu_Arsyadipura 84.5 84.0 81.5 82.0 81.0 79.5 83.5 88.0 81.5 87.0 6
30 Rohmatul_Fitria_Dewi 87.5 78.0 78.0 83.0 81.0 84.5 80.5 80.5 82.0 81.5 5
31 Satrio_Damar_Anggono 77.5 78.5 77.0 76.5 80.5 80.0 73.5 83.5 80.0 85.5 2
32 Shofiyyatul_El_Husna 87.5 78.5 79.0 80.5 79.0 77.5 82.0 83.5 81.5 83.5 4
33 Tegar_Krido_Wibowo 79.5 77.0 79.5 77.5 80.0 77.5 77.0 78.5 79.5 80.0 2
34 Tegar_Reka_Wijaya 82.0 79.5 79.5 81.0 82.5 83.5 81.5 84.0 82.0 86.5 6
35 Vania_Ika_Melinda 80.5 79.5 79.5 80.5 81.0 80.5 82.0 84.0 79.0 83.5 5
36 Zaraya_Jelita_Putri_Ardina 84.0 82.5 81.5 81.5 81.0 83.5 82.0 84.0 81.0 86.0 6
37 Ahmad_Maulana_Rizky_Aditya_Wijaya 85.5 78.5 77.5 79.5 83.0 79.5 74.0 82.0 80.5 84.0 3
38 Alhasby_Bachtiar 79.5 79.5 78.5 81.5 80.0 79.5 76.0 84.0 81.5 85.0 4
39 Aprilia_Martalita_Wibowo 78.5 77.0 78.0 80.0 80.5 81.5 78.5 85.0 78.0 84.5 4
40 Arshinta_Marthalie_Gunawan 77.0 77.0 79.0 80.5 80.0 79.5 80.0 78.5 79.0 80.0 3
41 Atadea_Lie_Intan_Karina 86.5 80.5 78.0 81.0 81.0 78.0 76.5 84.0 77.5 81.0 4
42 Azzahra_Dewi_Natria 83.5 79.5 80.0 82.5 82.5 84.5 81.5 89.0 81.5 86.5 6
43 Bagus_Rohman_Maulana 81.5 82.5 80.5 79.5 80.0 81.5 81.5 83.5 81.5 86.0 5
44 Binti_Yisha_Zahra_Futri 85.0 83.0 78.5 83.5 82.5 81.0 85.5 88.5 82.0 90.0 6
45 Chalista_Ayunda_Sukmaningtyas 84.0 79.0 78.0 82.5 80.5 81.5 82.0 87.0 78.5 85.0 5
46 Clara_Balqis_Putri_Febrianti 82.0 83.0 82.5 84.5 85.0 84.5 84.5 88.5 82.5 88.5 6
47 Davin_Yudha_Pratama 82.5 78.0 78.5 81.5 83.0 81.0 73.5 84.0 79.5 82.5 4
48 Dian_Noviyanti 87.5 77.5 79.0 79.5 79.5 85.5 77.5 81.0 81.0 83.5 4
49 Dwi_Kevfri_Kenata 81.0 80.5 82.0 80.5 82.5 81.5 78.5 84.5 82.5 86.0 5
50 Fahril_Rahmad_Tri_Setyawan 79.5 77.0 78.0 77.0 80.0 86.0 77.5 81.0 79.5 81.0 3
51 Firstian_Vidya_Permana 79.5 77.5 79.0 78.0 80.5 83.0 77.5 78.0 78.5 78.5 2
52 Galang_Aldiyansah_Putra 82.5 78.5 77.0 77.5 78.5 82.0 73.5 83.0 78.5 81.0 2
53 Ghania_Hardiyanti 86.0 83.5 82.5 82.5 83.0 85.5 86.5 87.5 82.0 87.0 6
54 Hamida_Ulviana_Dewi 79.5 79.5 78.5 81.0 79.5 85.5 75.0 83.0 77.5 83.0 4
55 Hengky_Prasetyo 85.0 77.0 77.0 75.5 80.5 80.0 73.5 79.0 76.5 78.5 1
56 Kellvi_Tiaska_Putri 78.0 77.5 77.5 79.5 80.0 83.0 76.5 81.0 80.5 80.5 3
57 Kurniawan_Dyo_Tri_Warsono 75.0 76.5 77.0 74.5 79.5 80.0 74.5 79.5 78.5 76.5 1
58 Mochamad_Ardiansyah_Saputra 85.5 77.0 77.0 78.5 79.0 83.0 73.5 77.5 81.0 80.5 2
59 Mochammad_Yuda_Aditia 87.0 76.5 76.0 80.0 81.0 81.0 73.5 78.5 81.5 81.0 3
60 Mohammad_Raihan_Nur_Fajri 81.0 77.0 76.0 80.0 81.0 82.5 73.5 81.0 80.5 81.0 3
61 Muhammad_Tegar_Prayuda 81.5 78.5 77.0 80.5 82.0 80.0 76.5 82.5 80.5 85.5 4
62 Muhammad_Zainal_Asrofi 78.0 76.5 78.0 80.0 80.0 81.0 74.5 79.5 78.5 78.0 2
63 Nur_Aleeya_Afrina_Suwandi 83.5 79.5 80.5 83.5 83.0 84.0 84.0 89.0 81.5 87.0 6
64 Prima_Dyah_Novanda 85.0 80.5 81.5 81.0 83.0 82.0 83.5 86.5 77.5 85.5 6
65 Rika_Nur_Fauziah 80.5 79.5 79.5 81.0 83.5 85.0 80.5 81.0 79.5 85.5 5
66 Satryo_Gito_Pratomo 87.0 79.5 81.5 82.0 81.5 83.0 84.5 90.0 82.5 89.0 6
67 Septian_Daniarti_Fitri_Astutik 79.0 78.5 78.0 81.0 83.0 82.0 76.0 84.0 77.0 82.5 4
68 Suci_Rahayu_Saputri 81.5 78.0 77.0 80.0 80.5 80.0 75.5 77.5 79.5 80.0 2
69 Sujiati_Fitrianingsih 83.5 77.5 78.0 79.5 80.0 83.0 76.5 84.0 80.5 80.5 4
70 Tata_Agata_Afga_Pratama 81.5 78.0 77.5 74.5 80.5 78.5 75.0 78.5 81.0 79.5 1
71 Yahya_Handika_Aditia 87.0 78.0 78.0 75.5 81.0 82.0 74.0 79.0 80.5 80.5 2
72 Yulia_Nur_Lismarita 80.5 77.5 78.0 80.5 81.0 80.0 80.5 83.0 77.5 83.0 3
73 Aditya_Rizky_Romadhon 81.0 77.5 76.5 79.5 80.0 81.0 76.5 82.0 80.5 80.5 3
74 Aisyah_Fidinna_Rahmatika 83.5 76.5 77.5 80.5 81.0 86.5 79.0 82.5 83.0 80.5 5
75 Aldo_Widodo 81.5 76.5 77.0 75.0 77.5 76.5 71.5 77.0 76.0 77.0 1
76 Alvino_Surya_Pratama 78.0 77.5 77.5 75.5 78.0 80.0 80.0 81.5 82.5 80.5 2
77 Alvinza_Brian_Saputra 76.5 76.5 76.5 74.5 79.0 77.5 71.5 75.0 77.5 76.5 1
78 Dhimas_Pandu_Wijaya 88.0 77.5 77.5 80.0 76.0 81.5 72.0 81.0 83.0 82.0 3
79 Fauziah_Elsa_Putri_Purnomo 81.0 82.5 84.0 82.5 83.0 87.0 85.5 85.0 82.0 88.5 6
80 Feisal_Wisnu_Raditya 78.0 77.0 77.5 75.0 78.5 81.0 74.5 79.0 78.5 79.5 1
81 Fitriani_Nurul_Norhayati 79.0 77.5 80.0 77.0 80.5 82.0 76.5 79.0 76.5 82.5 2
82 Fivi_Widyo_Wati 79.5 79.5 80.0 78.5 80.5 79.0 83.0 84.0 79.0 84.5 4
83 Gloria_Fransisca 81.0 79.0 80.5 80.5 83.0 80.5 79.5 84.5 80.0 85.0 5
84 Herlin_Faradila_Stifiana 78.5 78.5 79.0 80.0 81.5 81.0 80.5 83.0 80.0 82.5 4
85 Karisma_Hardiyati_P._R. 80.5 79.5 78.0 78.5 80.5 81.0 78.0 78.5 79.5 79.5 3
86 Kirana_Putri_Agustina 81.0 79.0 79.0 79.0 81.0 81.0 79.0 83.5 80.5 83.5 4
87 Lala_Putri_Meilita 77.5 78.0 78.5 79.0 82.0 84.5 81.5 82.5 80.0 85.5 4
88 M.fahcri_Affan_Ramadhani 80.5 80.5 80.0 77.0 82.5 86.0 74.0 84.5 80.5 82.5 4
89 Mey_Lika_Hanaya_Putri 87.0 78.0 80.0 81.0 82.5 86.5 82.0 84.5 83.0 84.5 6
90 Moch.afga_Afreza_Alfiansyah 81.0 79.5 80.5 80.0 83.0 85.0 79.5 86.0 81.0 85.0 5
91 Mochammad_Fahri_Nur_Rizky 82.5 79.5 83.0 81.5 80.5 82.5 85.5 86.0 82.0 87.0 6
92 Muhammad_Asril_Daffa_Saputra 77.5 77.5 78.0 78.5 80.5 81.5 72.0 78.0 79.5 79.5 2
93 Nadya_Anandiva_Silvyani 81.0 82.5 81.0 81.0 81.5 85.5 80.0 87.5 82.5 85.5 6
94 Nendra_Nur_Febrian 82.5 77.5 77.5 78.0 79.0 79.0 72.0 76.5 80.5 83.0 2
95 Putri_Adelia_Sari 81.0 77.5 78.0 80.0 80.5 84.5 80.0 85.5 82.5 82.0 5
96 Ramadhani_Silfi_Damaiyanti 80.0 77.5 78.0 78.5 80.5 86.5 78.0 82.0 81.5 81.0 4
97 Rangga_Galuh_Octa_Pradana 79.0 77.0 78.0 77.5 80.0 80.0 72.5 81.0 81.5 79.5 2
98 Rehan_Septa_Adi_Ramadhani 83.5 78.0 78.0 79.0 82.0 86.5 75.5 82.0 80.5 80.5 4
99 Salsa_Laurintiya 81.0 78.5 79.0 78.0 81.0 78.5 77.0 82.0 79.0 80.5 3
100 Salva_Andika 81.0 79.0 79.0 78.0 80.5 84.0 79.5 84.5 81.5 80.5 4
101 Sandy_Dwi_Meilano 81.5 82.5 81.0 80.5 81.0 83.5 83.0 85.5 82.0 87.5 6
102 Sera_Natalia 80.0 77.5 79.5 80.5 82.5 81.5 80.5 81.0 80.0 84.0 4
103 Tasya_Dwi_Oktavia 77.5 77.5 78.0 80.5 82.5 82.5 79.5 79.0 81.5 82.0 4
104 Varisha_Anastasya 86.5 80.5 81.5 81.5 80.5 85.0 84.0 85.5 82.5 87.0 6
105 Vrananda_Ricky_Saputra 77.5 77.0 79.0 78.0 80.5 78.5 72.0 79.0 81.5 78.5 2
106 Widya_Dwi_Astuti 79.5 77.5 79.0 80.5 80.5 81.5 76.0 79.0 80.5 80.5 3
107 Agha_Hisyam_Al-haliim 78.5 78.0 77.5 77.5 80.5 78.0 77.5 80.0 75.5 82.0 2
108 Ahmad_Rofi`an_Saputra 84.5 80.5 79.0 81.0 82.5 79.0 78.5 80.0 80.0 82.0 4
109 Aldo_Dwi_Julianto 83.5 81.0 79.0 77.5 80.5 79.5 81.0 81.0 80.5 85.0 4
110 Alvi_Sani 77.0 78.0 78.0 74.0 80.5 77.5 77.5 76.5 76.5 76.0 1
111 Aprilia_Wahyuning_Agustin 80.0 77.5 78.5 80.5 82.0 78.0 78.5 82.0 79.5 81.0 3
112 Arfian_Setya_Yusinda 77.5 78.0 78.5 78.5 82.5 79.5 77.5 81.0 77.5 81.0 2
113 Arga_Wahyu_Prasetyo 79.5 79.5 79.0 80.5 83.0 80.0 78.5 82.5 78.5 82.0 4
114 Athaya_Angel_Widodo 81.5 79.5 80.0 83.0 85.0 81.0 79.5 85.0 80.5 85.5 6
115 Bambang_Dwi_Sri_Hatmoko 83.0 77.5 78.0 79.5 81.0 79.5 77.5 80.5 80.5 79.5 3
116 Bilqiz_Namsya_Prasesta 80.0 77.5 78.0 79.0 81.0 77.5 77.5 80.5 76.5 80.0 2
117 Bunga_Damir_Kalolong_Sulai_Manan 79.5 81.0 82.0 79.5 82.5 81.0 78.5 81.5 78.5 83.5 4
118 Chalisha_Alqathrunnada_Winsputri 86.5 77.5 79.0 81.0 82.0 82.5 80.5 85.0 78.5 86.5 5
119 Decha_Navita_Sari 78.0 77.5 78.0 80.0 80.5 79.0 77.5 81.0 79.5 83.5 3
120 Dina_Aulia_Salsabila_Putri 83.5 79.5 78.5 79.0 81.0 80.0 77.5 84.0 81.0 84.0 4
121 Dyah_Vivianti 83.0 81.0 79.5 79.5 82.5 84.0 79.5 85.5 80.0 87.5 5
122 Endang_Rahayu_Ningsih 83.5 78.0 79.5 80.0 82.5 82.5 78.5 84.5 79.5 85.0 5
123 Hildan_Tri_Agustino 77.0 77.5 78.0 77.0 79.5 80.5 77.5 78.0 76.0 79.5 1
124 Juliani_Wati 76.5 77.5 78.0 77.0 80.0 78.5 77.5 79.0 77.0 79.5 1
125 Kaiyla_Fera_Ayu_Moza 87.0 78.5 78.5 84.0 85.0 87.5 78.5 85.0 79.5 86.5 6
126 Mexel_Farel_Erlangga 77.0 76.0 78.0 72.5 79.0 78.0 77.5 75.5 77.0 76.0 1
127 Muhamad_Fauzan_Saputra 76.5 78.0 78.0 80.0 83.0 78.0 77.5 80.0 74.5 80.5 2
128 Muhammad_Rangga_Saputra 76.0 78.5 78.0 78.5 80.5 81.0 78.5 78.0 79.5 78.5 2
129 Muhammad_Rizky_Putra_Aditya 81.0 80.5 77.5 78.5 80.5 81.0 77.5 79.5 73.0 80.5 2
130 Nayaka_Sutomo 82.5 84.0 84.0 80.5 84.5 82.5 83.5 87.5 80.0 86.0 6
131 Naysilla_Dwi_Anggraini 88.0 78.0 78.0 80.0 81.5 79.5 79.5 83.5 81.0 84.5 4
132 Nimas_Yayank_Putri_Prabowo 80.5 78.5 78.0 75.0 83.0 77.0 77.5 84.5 79.5 85.0 2
133 Puja_Micky_Harianto 80.0 78.5 78.5 81.5 81.0 81.0 77.5 82.0 79.5 84.0 4
134 Reva_Aidilla_Melani 85.0 84.0 83.0 83.5 82.0 81.5 82.5 88.5 80.5 88.5 6
135 Rivaldi_Desta_Akbar_Pratama 79.5 80.5 79.0 79.0 80.5 85.0 78.5 80.0 79.5 83.0 4
136 Roszhiana_Ramadhani 77.5 77.5 78.0 79.5 83.0 78.0 80.0 79.0 79.0 79.5 2
137 Santy_Nurahma_Agustya_Rani_Putri 78.0 78.0 78.0 78.5 83.0 77.5 77.5 78.0 76.5 80.5 2
138 Sindy_Aulia_Lestari 78.0 78.0 78.0 78.5 81.0 76.5 77.0 80.0 78.5 80.5 2
139 Singgih_Ferdy_Ananda 87.5 79.5 82.5 79.0 84.5 83.5 81.5 89.0 81.5 89.5 6
140 Susan_Amiliya_Khoirunisa 81.5 79.5 79.0 82.0 84.0 79.5 79.5 84.0 79.5 87.5 5
141 Trisa_Adelia_Parera 83.5 78.0 78.5 79.5 82.5 84.0 77.5 84.0 80.5 84.0 5
142 Yohan_Arinugraha 86.5 83.5 83.5 84.0 85.0 81.0 81.0 90.0 84.0 90.0 6
143 Ana_Ainus_Sifa 81.0 77.5 79.0 76.0 80.0 81.5 78.5 82.0 79.0 80.5 2
144 Andini_Rahmawati 78.5 79.5 79.0 75.5 81.0 83.0 79.5 83.0 77.0 82.0 3
145 Angga_Jalu_Arizona 78.5 76.0 76.0 75.0 78.5 77.0 77.0 78.5 74.0 79.0 1
146 Anggun_Kartika_Okta_Novita 81.5 76.5 78.0 76.0 80.5 83.5 78.5 84.0 79.5 85.0 3
147 Aprian_Mahardika 82.0 79.5 78.0 75.5 79.0 79.5 78.5 78.5 79.5 79.5 2
148 Arga_Reyhandika_Pratama 85.5 77.5 80.0 82.0 85.0 77.5 81.5 85.5 83.0 83.5 5
149 Awwalun_Firdausi 82.5 84.0 84.0 82.0 81.5 86.0 82.0 89.0 83.0 89.0 6
150 Della_Dwi_Pratiwi 80.0 78.5 79.0 80.0 79.5 80.0 78.5 81.0 77.0 82.0 3
151 Dhafa_Brillyan_Gustafianto 77.0 76.5 77.0 75.5 78.5 81.0 77.0 79.0 78.5 81.0 1
152 Dinda_Windy_Oktaviona 84.0 79.5 81.0 81.5 81.5 83.5 80.5 88.0 83.5 86.0 6
153 Erlang_Danendra_Ari_Putra 84.5 76.5 78.0 78.0 78.5 82.5 77.0 79.0 79.5 79.0 2
154 Gabriel_Desja_Alexsyata 79.0 76.5 77.0 75.0 79.0 79.5 77.5 77.5 77.0 79.5 1
155 Ghea_Anzani_Siswanto 83.5 78.5 78.0 82.0 80.5 81.5 79.5 80.5 81.0 84.0 4
156 Hera_Junia_Purnamasari 80.0 82.0 79.5 77.0 80.0 87.5 78.0 86.0 81.5 86.5 5
157 Isna_Maulidiyah 83.5 76.5 77.5 77.0 78.5 80.5 77.5 80.0 74.5 79.5 1
158 Johan_Satrio_Wicaksono 82.5 77.5 78.0 76.0 78.0 81.0 77.5 78.5 81.5 79.5 2
159 Juliana_Wita 80.0 76.5 78.0 76.0 78.5 77.0 78.5 78.0 76.5 80.5 1
160 Lucky_Fabrio_Saputra 81.0 84.0 80.5 78.0 79.5 81.0 80.0 82.0 79.5 84.0 4
161 Lukman_Khakim_Noah 80.5 76.5 78.0 75.5 78.5 80.0 77.0 79.0 78.5 76.0 1
162 Meirakha_Fernanda_Siswardhani 82.5 77.5 80.0 81.0 79.5 83.5 79.0 83.0 80.0 82.0 4
163 Mohamad_Rifa'i_Wijayanto 80.5 77.5 78.0 75.5 78.5 81.5 78.5 78.5 79.0 79.5 1
164 Mohammad_Iqbal_Hafidh_Amiruddin 82.5 76.5 78.0 75.5 78.5 80.5 77.5 77.5 76.0 81.0 1
165 Muhammad_Nur_Rahman_Sya'abibah 85.5 76.5 78.0 81.0 78.5 82.5 77.0 82.0 79.0 78.5 3
166 Nashwa_Mentari_Yuwana_Putri 83.5 81.5 81.5 83.5 82.0 85.5 83.0 86.0 82.0 85.5 6
167 Nezza_Maura_Putri_Agung 83.5 79.5 81.0 75.5 79.5 78.5 80.0 81.0 79.0 83.0 3
168 Revinda_Wisca_Natalie 86.0 81.5 81.0 85.0 80.5 87.0 80.0 85.5 82.5 85.5 6
169 Sahal_Ahmad 82.0 84.0 82.5 80.0 79.0 80.0 80.0 81.0 82.0 84.5 5
170 Salfa_Aulia_Putri 81.0 76.5 77.0 82.0 80.5 81.5 77.5 79.0 79.5 79.5 3
171 Selly_Novtiana_Waty 84.0 76.5 77.5 75.0 79.0 79.5 77.5 79.5 79.5 81.0 1
172 Septia_Ayu_Muliasih 77.5 76.5 77.5 74.5 79.5 80.5 77.5 77.0 76.0 79.5 1
173 Shafa_Ayunda_Putri 85.5 76.5 80.0 80.0 80.5 80.5 79.5 82.0 81.5 83.0 4
174 Shifa_Khayyuna_Qisthi 85.5 78.5 79.5 82.0 81.5 81.0 78.5 84.0 82.0 84.5 5
175 Siti_Apriliani_Khairunnisa 80.5 80.5 79.5 78.0 80.5 84.0 79.5 82.0 80.5 82.0 4
176 Siti_Aulia_Nur_Latifah 79.0 82.5 84.0 81.0 84.5 82.0 82.0 87.5 82.5 89.0 6
177 Tio_Ainun_Romadhoni 81.5 76.5 76.5 79.0 78.5 81.5 77.0 80.0 79.5 80.0 2
178 Yuma_Erlangga 79.5 76.0 76.0 77.0 77.5 76.5 77.0 76.5 74.5 79.0 1
179 Abid_Fadlih_Hafiyyah_Faza 85.0 78.0 78.0 78.0 79.5 80.0 78.0 79.0 81.5 81.5 3
180 Adinda_Dhea_Ochtavyana 86.0 81.5 80.5 81.0 81.0 82.5 80.0 85.0 81.0 83.5 5
181 Ahmad_Risky_Maskur 84.5 77.0 77.0 79.0 79.5 80.0 77.5 79.0 80.0 81.5 2
182 Ahmad_Rizal_Hanafi 86.5 80.5 80.5 79.0 78.5 81.0 80.5 81.0 79.5 82.0 4
183 Ahmad_Rizky_Wijaya 79.0 80.5 81.0 80.0 83.5 79.0 81.0 85.5 81.0 85.0 5
184 Alfiani_Mayasari 86.0 78.5 79.0 82.0 80.0 85.0 78.5 85.5 82.0 85.5 6
185 Ardan_Pradipta 76.5 79.5 78.0 75.5 82.0 81.0 78.0 81.5 80.0 82.0 2
186 Arya_Erlangga_Tino_Putra 80.0 77.0 77.5 80.5 79.0 81.0 78.0 82.5 79.5 80.5 3
187 Azka_Febita_Zalfianty 84.5 82.5 83.5 85.0 81.5 81.0 82.5 89.0 82.0 89.0 6
188 Bunga_Alikasari 81.0 79.5 80.5 81.0 84.5 81.0 79.5 89.0 83.0 89.0 6
189 Cantika_Oktavia_Nurfitri_Mardiani 79.0 78.5 79.0 81.0 81.0 86.0 78.5 85.0 82.5 85.0 5
190 Chiko_Bonanza_Cavan_Putra 80.0 78.5 77.5 77.0 79.5 78.5 78.0 79.0 79.0 80.0 2
191 Dhea_Ayu_Permatasari 81.5 82.0 79.0 81.0 82.0 88.5 78.5 87.0 82.0 86.5 6
192 Galang_Aldi_Ananta_Putra 83.5 80.5 79.5 77.0 79.0 86.5 78.5 85.5 79.5 85.5 5
193 Jefana_Dwi_Jayanti 81.5 84.5 84.0 85.0 85.0 90.5 84.0 90.0 81.5 90.0 6
194 Jhovani_Vina_Maharani 84.5 79.5 78.0 83.0 79.0 83.5 78.0 80.0 79.0 80.5 4
195 Keiza_Olivia_Witari 83.5 83.0 83.0 83.0 83.0 80.5 82.5 88.5 83.0 87.0 6
196 Kevin_Arfian_Vidyanata 80.5 77.0 77.5 75.0 78.5 81.5 78.0 80.0 77.0 79.5 1
197 M._Alfin_Nur_Rahmad 80.0 84.0 78.5 85.0 78.5 83.0 79.5 86.0 81.5 81.0 6
198 Marsha_Syifa'_Setiawati 80.5 77.5 79.0 75.5 79.5 81.5 78.5 82.0 77.5 82.0 2
199 Mochammad_Rifky_Febri_Nur_Rohman 76.5 77.0 77.5 72.5 78.5 77.5 78.0 78.0 78.5 77.0 1
200 Mohamad_Rizal_Permana_Putra 82.0 77.0 78.0 74.0 79.0 79.0 78.0 83.0 78.5 81.5 1
201 Muhammad_Gara_Imam_Arifin 81.5 78.5 79.0 83.5 79.0 81.0 78.0 86.0 81.0 83.5 5
202 Muhammad_Khafid_Nuriyanto 89.5 80.5 81.0 81.5 78.5 82.5 81.5 86.0 81.0 87.5 6
203 Muhammad_Zennuri 79.5 77.0 79.0 74.5 78.5 83.5 78.5 77.5 78.0 78.0 1
204 Rahma_Goespiaputri_Ramadhani 84.5 77.0 78.0 81.5 80.0 82.5 80.0 84.0 80.0 83.5 5
205 Rayhan_Aditya 81.5 80.5 81.0 81.5 80.0 81.5 80.5 88.0 81.0 88.0 6
206 Rehan_Dwi_Ferdiansyah 76.5 77.0 78.0 73.0 79.0 81.0 78.0 76.5 79.0 77.0 1
207 Rima_Dwi_Oktavia 79.5 77.5 78.0 76.0 80.0 79.5 78.0 80.0 80.0 81.0 2
208 Riska_Adelia_Dulrahman 80.5 73.0 71.5 71.5 77.0 79.5 77.5 71.0 77.0 72.5 1
209 Syakela_Arifah_Azzahra 83.0 77.0 79.0 77.5 79.5 85.0 78.5 80.0 79.0 80.0 3
210 Titin_Karunia_Putri 83.0 79.5 78.0 81.0 82.5 85.0 79.0 85.0 81.5 85.0 5
211 Vandi_Aulia_Kadhafi 83.5 77.0 79.0 76.0 79.5 79.5 78.5 79.5 78.0 79.0 2
212 Yuli_Evita_Wati 83.0 77.5 79.5 80.0 80.5 86.0 79.5 84.5 81.0 83.5 5
213 Zulia_Ulifatul_Mahmadah 81.5 78.5 79.0 75.0 79.5 81.0 78.5 81.0 80.0 82.0 2
214 Ameliya_Putri_Mentari 86.0 76.5 78.5 79.0 82.5 89.0 79.5 86.0 78.0 84.5 5
215 Andika_Bayu_Abriansyah 81.0 72.5 77.5 75.0 79.0 81.0 77.5 78.5 78.5 81.5 1
216 Azmi_Halim 84.5 74.5 80.0 81.0 85.0 81.5 79.5 83.0 79.5 83.5 5
217 Bambang_Adi_Pramana 83.5 74.5 79.0 78.5 81.0 82.0 79.5 78.5 79.5 79.0 3
218 Bryan_Maulana_Wibiantoro 86.0 77.0 82.5 79.0 84.5 84.5 81.0 86.5 80.5 86.5 6
219 Dharisman_Bagus_Prastowo 84.0 75.0 79.0 81.5 82.0 82.0 78.5 84.5 82.0 82.5 5
220 Ella_Syahra_Agustin 82.0 74.0 80.0 76.5 83.0 82.5 79.5 83.5 81.5 81.5 3
221 Febian_Dwi_Andika 82.0 74.5 78.0 74.5 80.0 81.0 77.5 78.5 79.0 78.5 1
222 Hawa_Aurelia_Firdaus 81.0 75.5 78.0 80.0 83.0 83.5 77.5 85.0 79.5 82.5 4
223 Indri_Julia_Dwi_Dianitami 81.0 76.5 80.0 77.0 81.0 83.0 79.5 83.5 82.5 86.0 4
224 Kusuma_Faridatulliya 85.5 75.0 80.0 78.0 83.0 84.5 78.5 81.0 81.5 84.0 4
225 Laudia_Vera_Agustin 81.0 75.0 78.5 81.0 83.5 81.5 79.5 83.5 81.0 87.0 5
226 M.deno_Bayu_Putra_Hardiansah 80.0 75.0 78.0 76.0 81.0 83.0 78.5 83.0 78.5 80.0 2
227 Moch._Febri_Nur_Hidayatullah 78.5 74.0 77.5 72.0 80.0 81.0 77.5 78.0 77.0 76.0 1
228 Mochamat_Agil_Desulton 81.5 74.0 77.5 77.0 81.0 81.0 78.5 79.0 78.0 78.5 2
229 Moh._Rendi_Saputra 81.0 73.5 78.0 75.5 81.0 81.5 77.5 80.0 79.0 80.0 1
230 Mohamad_Bagus_Hermawan 78.0 73.5 77.0 74.0 80.0 81.0 77.5 73.5 79.0 79.0 1
231 Muchamad_Jaohar_Firdaus 82.5 74.5 77.0 81.0 82.0 82.0 78.0 79.5 79.5 81.0 3
232 Muhamad_Rif'an_Mauludi 88.0 75.5 78.5 82.0 81.5 84.0 77.5 81.0 81.5 82.0 5
233 Muhammad_Safi' 82.0 77.0 78.0 79.0 80.0 81.5 77.5 79.5 81.5 79.5 3
234 Rendi_Prastyo_Aditama 79.5 73.5 77.5 74.5 81.0 78.0 77.5 77.5 79.0 79.0 1
235 Renno_Ilham_Revaldo 85.5 73.5 77.5 79.0 81.0 82.5 77.5 83.5 79.5 82.0 3
236 Risma_Indira_Fernanda 89.0 77.0 78.5 83.5 83.0 84.0 81.5 84.5 76.5 85.5 6
237 Safina_Ismafatul_Roida 78.5 73.5 79.0 80.0 82.0 80.5 79.0 84.0 80.0 81.0 3
238 Silvia_Novitasari 88.5 77.0 78.0 77.0 82.0 81.0 77.5 83.0 82.5 81.5 3
239 Sonya_Aulia_Dewi 84.5 75.5 82.5 79.0 82.0 82.0 82.0 83.0 81.0 85.0 5
240 Talita_Bella_Safira 84.0 75.5 80.0 78.0 82.0 82.5 79.5 79.5 80.5 81.5 3
241 Thalyta_Chelse_Olivia_Leovanny 86.5 74.5 80.0 80.0 84.0 82.0 79.5 84.5 83.0 83.5 5
242 Ulfa_Kusuma_Dewi 84.5 75.0 78.5 78.0 82.0 81.0 77.5 80.0 81.5 82.0 3
243 Wahyu_Subastyan 79.5 73.5 79.0 74.0 80.0 81.5 78.5 74.0 76.0 78.5 1
244 Yanuarycha_Putri_Rifda 82.0 73.5 79.0 77.0 81.5 80.0 78.5 80.5 82.0 82.5 3
245 Zulfatul_Ilmi_Sa'adah 80.0 73.5 79.5 77.0 84.5 84.0 79.5 82.0 81.5 82.0 3
246 Abel_Senja_Agma_Subroto 82.0 77.0 80.0 79.0 80.5 86.0 79.5 83.0 81.5 85.5 5
247 Ahmad_Fauzan_Maulana_Ibrahim 82.0 76.0 78.0 77.0 84.0 82.5 77.5 80.5 81.5 82.5 3
248 Amin_Ridho_Shobirin 80.5 76.0 82.5 76.0 82.5 84.5 79.5 81.5 80.0 83.0 4
249 Andika_Nugrahatama 81.5 72.5 79.0 76.0 79.5 82.0 78.5 82.5 78.5 82.0 2
250 Aprilliana_Cahaya_Puspita 82.5 72.5 78.5 79.0 79.5 83.0 77.5 79.0 80.5 83.0 3
251 Aulia_Dwi_Suci_Cahyani 82.5 72.5 79.0 80.0 83.0 83.0 78.5 81.0 80.5 82.0 3
252 Bilqis_Syafiah_Ahmad 82.0 77.5 79.0 79.0 82.5 86.0 79.0 84.5 82.0 86.5 5
253 Danendra_Zahran_Qurunul_Bahri 79.0 72.5 76.5 72.0 83.5 77.5 77.5 81.5 78.0 77.5 1
254 Dania_Ismatul_Maula 82.5 77.0 80.5 80.0 84.5 84.0 81.0 86.0 81.0 85.0 5
255 Diva_Maulidiya 81.0 77.5 79.0 74.0 81.0 85.0 78.5 80.0 78.0 84.0 2
256 Gufroni_Ahmadin_Naja 80.5 74.0 78.0 72.5 80.5 81.5 77.5 80.0 78.0 80.5 1
257 Handy_Miftakhul_Ullum 82.0 77.5 78.5 82.0 82.0 86.0 78.5 88.5 82.5 85.5 6
258 Kharizma_Putri_Prilia 82.5 79.0 82.0 80.0 81.5 85.0 82.0 83.5 82.5 88.0 6
259 Laela_Indriani 80.0 72.5 78.5 72.0 79.5 77.0 78.5 75.5 77.0 77.0 1
260 M._Zeka_Azfar_Pahlawan 82.5 71.0 79.5 78.0 85.0 84.0 79.0 79.0 81.0 80.0 3
261 Maysa_Purwadinata 81.0 72.5 79.5 76.0 81.5 81.5 79.5 79.5 80.5 80.0 2
262 Medina_Putri_Febiani 81.0 77.5 79.5 81.0 84.5 84.5 79.0 85.0 82.5 83.5 5
263 Moh._Raditya_Haria_Nugraha 81.0 72.5 77.5 78.0 82.5 83.5 77.5 84.0 79.0 83.5 3
264 Mohammad_Reno_Zainul_Pratama 81.5 72.5 77.5 75.0 79.0 84.0 77.5 73.5 81.5 81.0 1
265 Muhamad_Kafil_Lubawi 81.5 72.5 79.0 76.5 80.5 84.0 78.5 80.5 79.5 82.5 2
266 Nafatria_Kirana 80.0 72.5 78.5 73.5 79.0 78.0 78.5 77.5 74.5 76.5 1
267 Nanang_Mariyanto 79.5 73.5 77.5 79.0 79.0 82.0 77.5 80.0 80.0 78.5 2
268 Quinnsha_Launada_Wibowo 82.0 77.0 79.0 78.0 82.0 83.5 79.0 84.0 79.0 82.0 4
269 Rahardyan_Felix_Kurniawan_(kr) 81.5 77.0 81.0 80.0 83.0 87.0 78.5 85.5 80.0 85.0 5
270 Rangga_Risqi_Bintang_S. 82.0 76.0 79.0 79.0 80.5 85.0 78.5 82.0 80.0 85.0 4
271 Saputra_Seftian_Rahmatdhani 80.5 76.0 79.0 76.5 82.5 87.0 79.5 84.5 81.0 88.0 5
272 Siti_Dian_Rahmadani 79.5 72.5 78.5 74.5 79.5 83.0 78.5 75.0 77.5 82.0 1
273 Surya_Mahadika 81.5 76.0 79.0 76.5 80.5 83.5 79.0 84.5 80.0 85.5 3
274 Tribuana_Reza_Fanani 82.0 76.0 80.0 80.0 80.5 82.5 79.0 84.5 76.0 82.5 4
275 Triyah_Bhuana 81.5 77.0 80.0 76.0 79.5 82.0 77.5 83.0 79.0 80.5 3
276 Viasya_Aqnia_Zela 82.0 77.0 79.5 78.0 83.5 83.5 79.5 86.0 79.5 83.0 4
277 Wahyu_Febrianti 83.0 77.0 80.5 83.5 84.5 88.5 79.5 86.5 83.5 89.5 6
278 Wildan_Yongga_Jodyatmika 82.5 72.5 78.5 78.0 79.0 81.5 77.5 77.0 82.0 81.0 2
279 Wisnu_Tirta_Kusuma 81.5 73.5 78.5 79.0 79.5 81.0 77.5 80.0 80.5 81.0 2
280 Zaneta_Ayu_Nur_Harsya 82.5 72.5 79.0 78.0 82.0 80.5 78.5 80.5 81.5 84.5 3
281 Ahmad_Dodik_Pratama 79.5 73.5 79.5 78.0 83.0 86.0 80.0 79.0 79.0 85.5 3
282 Ahmad_Pramuja 81.5 76.5 79.0 83.5 84.0 84.0 80.5 84.0 79.5 84.5 5
283 Aprita_Nur_Aini 79.5 77.0 78.5 78.0 84.5 85.5 82.0 85.0 80.5 83.0 5
284 Ardian_Rama_Budi_Kusuma 78.5 73.5 78.0 79.0 82.0 84.0 78.5 78.5 76.0 79.5 2
285 Arrasha_Raditya_Andani 81.0 75.0 80.5 78.0 82.5 85.5 82.0 81.5 81.5 84.0 4
286 Bayu_Ananta_Julian_Wicaksono 79.5 74.0 78.5 79.0 84.0 80.5 78.5 76.5 71.5 75.5 1
287 Cahya_Sasadara 80.5 75.0 78.0 78.0 82.5 85.5 82.5 82.5 72.5 81.5 3
288 Dimas_Ragil_Saputra 80.0 73.5 77.5 74.5 79.0 79.5 80.5 75.5 75.0 77.0 1
289 Dwi_Ka_Fauzian_Maulana_Ikhsan 80.5 75.0 77.5 77.0 79.5 83.5 81.5 79.5 80.5 81.0 2
290 Dwi_Nurida_Syifa 80.0 75.0 82.0 74.5 82.5 86.0 80.0 76.0 82.5 87.5 3
291 Fibriana_Fira_Rahmawati 80.5 77.0 78.5 77.0 83.0 85.5 81.0 84.5 81.5 83.0 4
292 Helsabrina_Faj'ri_Mahmuna 80.5 76.5 79.0 78.0 80.5 85.0 82.0 82.0 82.0 82.0 4
293 Hesnanda_Azeema_Naswa_Krisnasekha 79.5 77.0 78.5 79.0 84.5 87.5 84.0 86.5 80.5 85.5 5
294 Irma_Rahayu 80.5 77.5 80.5 76.0 82.5 86.0 78.5 86.0 82.0 84.5 5
295 Jimi_Pranata 79.5 74.0 77.5 75.5 79.5 80.0 82.0 76.5 72.5 81.0 1
296 Kevin_Saputra 79.5 74.0 76.5 78.0 80.5 82.0 79.5 82.5 78.5 83.0 2
297 Keylla_Aulia_Renata 80.0 77.5 81.0 76.5 83.5 85.5 81.0 86.0 83.0 85.5 5
298 Lia_Puspitasari 79.5 75.5 78.0 77.0 79.5 83.5 81.0 82.0 79.0 84.0 3
299 Luna_Aurelia_Romadhona_Putri 80.5 76.5 81.0 83.5 84.0 89.0 81.0 84.5 82.0 88.0 6
300 Moch._Rangga_Ardiyansah 81.0 76.5 78.5 79.0 82.5 86.0 85.0 86.5 80.5 84.0 5
301 Moh._Krisna_Hendra_Gunawan 80.5 75.5 78.0 74.5 82.5 80.5 82.5 75.5 75.5 79.5 1

View File

@ -0,0 +1,61 @@
nama_siswa,nilai_informatika,nilai_fisika,nilai_kimia,nilai_biologi,nilai_big_lanjut,nilai_ekonomi,nilai_mat_lanjut,nilai_sej_lanjut,nilai_sosiologi,nilai_geografi,paket_jurusan
Ahmad_Fauzan_Maulana_Ibrahim,82.0,76.0,78.0,77.0,84.0,82.5,77.5,80.5,81.5,82.5,3
Alvinza_Brian_Saputra,76.5,76.5,76.5,74.5,79.0,77.5,71.5,75.0,77.5,76.5,1
Ameliya_Putri_Mentari,86.0,76.5,78.5,79.0,82.5,89.0,79.5,86.0,78.0,84.5,5
Amin_Ridho_Shobirin,80.5,76.0,82.5,76.0,82.5,84.5,79.5,81.5,80.0,83.0,4
Amin_Ridho_Sholikin,83.5,82.5,81.5,78.5,81.0,82.5,82.0,86.5,81.5,86.0,6
Aprian_Mahardika,82.0,79.5,78.0,75.5,79.0,79.5,78.5,78.5,79.5,79.5,2
Aprilia_Martalita_Wibowo,78.5,77.0,78.0,80.0,80.5,81.5,78.5,85.0,78.0,84.5,4
Aprita_Nur_Aini,79.5,77.0,78.5,78.0,84.5,85.5,82.0,85.0,80.5,83.0,5
Arshinta_Marthalie_Gunawan,77.0,77.0,79.0,80.5,80.0,79.5,80.0,78.5,79.0,80.0,3
Athaya_Angel_Widodo,81.5,79.5,80.0,83.0,85.0,81.0,79.5,85.0,80.5,85.5,6
Aulia_Dwi_Suci_Cahyani,82.5,72.5,79.0,80.0,83.0,83.0,78.5,81.0,80.5,82.0,3
Bambang_Adi_Pramana,83.5,74.5,79.0,78.5,81.0,82.0,79.5,78.5,79.5,79.0,3
Bambang_Dwi_Sri_Hatmoko,83.0,77.5,78.0,79.5,81.0,79.5,77.5,80.5,80.5,79.5,3
Bunga_Damir_Kalolong_Sulai_Manan,79.5,81.0,82.0,79.5,82.5,81.0,78.5,81.5,78.5,83.5,4
Cahya_Sasadara,80.5,75.0,78.0,78.0,82.5,85.5,82.5,82.5,72.5,81.5,3
Dhea_Ayu_Permatasari,81.5,82.0,79.0,81.0,82.0,88.5,78.5,87.0,82.0,86.5,6
Dina_Aulia_Salsabila_Putri,83.5,79.5,78.5,79.0,81.0,80.0,77.5,84.0,81.0,84.0,4
Endang_Rahayu_Ningsih,83.5,78.0,79.5,80.0,82.5,82.5,78.5,84.5,79.5,85.0,5
Fivi_Widyo_Wati,79.5,79.5,80.0,78.5,80.5,79.0,83.0,84.0,79.0,84.5,4
Gabriel_Desja_Alexsyata,79.0,76.5,77.0,75.0,79.0,79.5,77.5,77.5,77.0,79.5,1
Irma_Rahayu,80.5,77.5,80.5,76.0,82.5,86.0,78.5,86.0,82.0,84.5,5
Jefana_Dwi_Jayanti,81.5,84.5,84.0,85.0,85.0,90.5,84.0,90.0,81.5,90.0,6
Juliana_Wita,80.0,76.5,78.0,76.0,78.5,77.0,78.5,78.0,76.5,80.5,1
Juliani_Wati,76.5,77.5,78.0,77.0,80.0,78.5,77.5,79.0,77.0,79.5,1
Keiza_Olivia_Witari,83.5,83.0,83.0,83.0,83.0,80.5,82.5,88.5,83.0,87.0,6
Keyla_Chantika_Devy_Julieta,76.5,79.5,80.0,74.5,80.5,81.0,76.0,80.0,79.5,82.0,2
Kharizma_Putri_Prilia,82.5,79.0,82.0,80.0,81.5,85.0,82.0,83.5,82.5,88.0,6
Kurniawan_Dyo_Tri_Warsono,75.0,76.5,77.0,74.5,79.5,80.0,74.5,79.5,78.5,76.5,1
Laela_Indriani,80.0,72.5,78.5,72.0,79.5,77.0,78.5,75.5,77.0,77.0,1
M._Zeka_Azfar_Pahlawan,82.5,71.0,79.5,78.0,85.0,84.0,79.0,79.0,81.0,80.0,3
Marsha_Syifa'_Setiawati,80.5,77.5,79.0,75.5,79.5,81.5,78.5,82.0,77.5,82.0,2
Mitzy_Aurora_Azzahra,85.0,79.0,80.0,80.0,83.0,83.5,80.5,84.0,81.0,84.5,5
Moch._Rangga_Ardiyansah,81.0,76.5,78.5,79.0,82.5,86.0,85.0,86.5,80.5,84.0,5
Mochamad_Ardiansyah_Saputra,85.5,77.0,77.0,78.5,79.0,83.0,73.5,77.5,81.0,80.5,2
Mochammad_Rifky_Febri_Nur_Rohman,76.5,77.0,77.5,72.5,78.5,77.5,78.0,78.0,78.5,77.0,1
Mochammad_Yuda_Aditia,87.0,76.5,76.0,80.0,81.0,81.0,73.5,78.5,81.5,81.0,3
Moh._Krisna_Hendra_Gunawan,80.5,75.5,78.0,74.5,82.5,80.5,82.5,75.5,75.5,79.5,1
Mohamad_Rifa'i_Wijayanto,80.5,77.5,78.0,75.5,78.5,81.5,78.5,78.5,79.0,79.5,1
Muhamad_Fauzan_Saputra,76.5,78.0,78.0,80.0,83.0,78.0,77.5,80.0,74.5,80.5,2
Muhamad_Kafil_Lubawi,81.5,72.5,79.0,76.5,80.5,84.0,78.5,80.5,79.5,82.5,2
Muhamad_Rangga_Aji_Pratama,86.0,77.5,77.5,79.5,83.5,86.0,74.5,83.0,82.5,81.0,5
Muhammad_Gara_Imam_Arifin,81.5,78.5,79.0,83.5,79.0,81.0,78.0,86.0,81.0,83.5,5
Muhammad_Zainal_Asrofi,78.0,76.5,78.0,80.0,80.0,81.0,74.5,79.5,78.5,78.0,2
Nashwa_Mentari_Yuwana_Putri,83.5,81.5,81.5,83.5,82.0,85.5,83.0,86.0,82.0,85.5,6
Nendra_Nur_Febrian,82.5,77.5,77.5,78.0,79.0,79.0,72.0,76.5,80.5,83.0,2
Nidda'ul_Fijriah,82.5,78.5,78.5,79.5,80.0,79.5,74.0,82.5,82.5,86.0,4
Rendi_Prastyo_Aditama,79.5,73.5,77.5,74.5,81.0,78.0,77.5,77.5,79.0,79.0,1
Reva_Aidilla_Melani,85.0,84.0,83.0,83.5,82.0,81.5,82.5,88.5,80.5,88.5,6
Rivaldi_Desta_Akbar_Pratama,79.5,80.5,79.0,79.0,80.5,85.0,78.5,80.0,79.5,83.0,4
Safina_Ismafatul_Roida,78.5,73.5,79.0,80.0,82.0,80.5,79.0,84.0,80.0,81.0,3
Salva_Andika,81.0,79.0,79.0,78.0,80.5,84.0,79.5,84.5,81.5,80.5,4
Satryo_Gito_Pratomo,87.0,79.5,81.5,82.0,81.5,83.0,84.5,90.0,82.5,89.0,6
Septian_Daniarti_Fitri_Astutik,79.0,78.5,78.0,81.0,83.0,82.0,76.0,84.0,77.0,82.5,4
Shafa_Ayunda_Putri,85.5,76.5,80.0,80.0,80.5,80.5,79.5,82.0,81.5,83.0,4
Shifa_Khayyuna_Qisthi,85.5,78.5,79.5,82.0,81.5,81.0,78.5,84.0,82.0,84.5,5
Sindy_Aulia_Lestari,78.0,78.0,78.0,78.5,81.0,76.5,77.0,80.0,78.5,80.5,2
Sonya_Aulia_Dewi,84.5,75.5,82.5,79.0,82.0,82.0,82.0,83.0,81.0,85.0,5
Suci_Rahayu_Saputri,81.5,78.0,77.0,80.0,80.5,80.0,75.5,77.5,79.5,80.0,2
Talita_Bella_Safira,84.0,75.5,80.0,78.0,82.0,82.5,79.5,79.5,80.5,81.5,3
Zaraya_Jelita_Putri_Ardina,84.0,82.5,81.5,81.5,81.0,83.5,82.0,84.0,81.0,86.0,6
1 nama_siswa nilai_informatika nilai_fisika nilai_kimia nilai_biologi nilai_big_lanjut nilai_ekonomi nilai_mat_lanjut nilai_sej_lanjut nilai_sosiologi nilai_geografi paket_jurusan
2 Ahmad_Fauzan_Maulana_Ibrahim 82.0 76.0 78.0 77.0 84.0 82.5 77.5 80.5 81.5 82.5 3
3 Alvinza_Brian_Saputra 76.5 76.5 76.5 74.5 79.0 77.5 71.5 75.0 77.5 76.5 1
4 Ameliya_Putri_Mentari 86.0 76.5 78.5 79.0 82.5 89.0 79.5 86.0 78.0 84.5 5
5 Amin_Ridho_Shobirin 80.5 76.0 82.5 76.0 82.5 84.5 79.5 81.5 80.0 83.0 4
6 Amin_Ridho_Sholikin 83.5 82.5 81.5 78.5 81.0 82.5 82.0 86.5 81.5 86.0 6
7 Aprian_Mahardika 82.0 79.5 78.0 75.5 79.0 79.5 78.5 78.5 79.5 79.5 2
8 Aprilia_Martalita_Wibowo 78.5 77.0 78.0 80.0 80.5 81.5 78.5 85.0 78.0 84.5 4
9 Aprita_Nur_Aini 79.5 77.0 78.5 78.0 84.5 85.5 82.0 85.0 80.5 83.0 5
10 Arshinta_Marthalie_Gunawan 77.0 77.0 79.0 80.5 80.0 79.5 80.0 78.5 79.0 80.0 3
11 Athaya_Angel_Widodo 81.5 79.5 80.0 83.0 85.0 81.0 79.5 85.0 80.5 85.5 6
12 Aulia_Dwi_Suci_Cahyani 82.5 72.5 79.0 80.0 83.0 83.0 78.5 81.0 80.5 82.0 3
13 Bambang_Adi_Pramana 83.5 74.5 79.0 78.5 81.0 82.0 79.5 78.5 79.5 79.0 3
14 Bambang_Dwi_Sri_Hatmoko 83.0 77.5 78.0 79.5 81.0 79.5 77.5 80.5 80.5 79.5 3
15 Bunga_Damir_Kalolong_Sulai_Manan 79.5 81.0 82.0 79.5 82.5 81.0 78.5 81.5 78.5 83.5 4
16 Cahya_Sasadara 80.5 75.0 78.0 78.0 82.5 85.5 82.5 82.5 72.5 81.5 3
17 Dhea_Ayu_Permatasari 81.5 82.0 79.0 81.0 82.0 88.5 78.5 87.0 82.0 86.5 6
18 Dina_Aulia_Salsabila_Putri 83.5 79.5 78.5 79.0 81.0 80.0 77.5 84.0 81.0 84.0 4
19 Endang_Rahayu_Ningsih 83.5 78.0 79.5 80.0 82.5 82.5 78.5 84.5 79.5 85.0 5
20 Fivi_Widyo_Wati 79.5 79.5 80.0 78.5 80.5 79.0 83.0 84.0 79.0 84.5 4
21 Gabriel_Desja_Alexsyata 79.0 76.5 77.0 75.0 79.0 79.5 77.5 77.5 77.0 79.5 1
22 Irma_Rahayu 80.5 77.5 80.5 76.0 82.5 86.0 78.5 86.0 82.0 84.5 5
23 Jefana_Dwi_Jayanti 81.5 84.5 84.0 85.0 85.0 90.5 84.0 90.0 81.5 90.0 6
24 Juliana_Wita 80.0 76.5 78.0 76.0 78.5 77.0 78.5 78.0 76.5 80.5 1
25 Juliani_Wati 76.5 77.5 78.0 77.0 80.0 78.5 77.5 79.0 77.0 79.5 1
26 Keiza_Olivia_Witari 83.5 83.0 83.0 83.0 83.0 80.5 82.5 88.5 83.0 87.0 6
27 Keyla_Chantika_Devy_Julieta 76.5 79.5 80.0 74.5 80.5 81.0 76.0 80.0 79.5 82.0 2
28 Kharizma_Putri_Prilia 82.5 79.0 82.0 80.0 81.5 85.0 82.0 83.5 82.5 88.0 6
29 Kurniawan_Dyo_Tri_Warsono 75.0 76.5 77.0 74.5 79.5 80.0 74.5 79.5 78.5 76.5 1
30 Laela_Indriani 80.0 72.5 78.5 72.0 79.5 77.0 78.5 75.5 77.0 77.0 1
31 M._Zeka_Azfar_Pahlawan 82.5 71.0 79.5 78.0 85.0 84.0 79.0 79.0 81.0 80.0 3
32 Marsha_Syifa'_Setiawati 80.5 77.5 79.0 75.5 79.5 81.5 78.5 82.0 77.5 82.0 2
33 Mitzy_Aurora_Azzahra 85.0 79.0 80.0 80.0 83.0 83.5 80.5 84.0 81.0 84.5 5
34 Moch._Rangga_Ardiyansah 81.0 76.5 78.5 79.0 82.5 86.0 85.0 86.5 80.5 84.0 5
35 Mochamad_Ardiansyah_Saputra 85.5 77.0 77.0 78.5 79.0 83.0 73.5 77.5 81.0 80.5 2
36 Mochammad_Rifky_Febri_Nur_Rohman 76.5 77.0 77.5 72.5 78.5 77.5 78.0 78.0 78.5 77.0 1
37 Mochammad_Yuda_Aditia 87.0 76.5 76.0 80.0 81.0 81.0 73.5 78.5 81.5 81.0 3
38 Moh._Krisna_Hendra_Gunawan 80.5 75.5 78.0 74.5 82.5 80.5 82.5 75.5 75.5 79.5 1
39 Mohamad_Rifa'i_Wijayanto 80.5 77.5 78.0 75.5 78.5 81.5 78.5 78.5 79.0 79.5 1
40 Muhamad_Fauzan_Saputra 76.5 78.0 78.0 80.0 83.0 78.0 77.5 80.0 74.5 80.5 2
41 Muhamad_Kafil_Lubawi 81.5 72.5 79.0 76.5 80.5 84.0 78.5 80.5 79.5 82.5 2
42 Muhamad_Rangga_Aji_Pratama 86.0 77.5 77.5 79.5 83.5 86.0 74.5 83.0 82.5 81.0 5
43 Muhammad_Gara_Imam_Arifin 81.5 78.5 79.0 83.5 79.0 81.0 78.0 86.0 81.0 83.5 5
44 Muhammad_Zainal_Asrofi 78.0 76.5 78.0 80.0 80.0 81.0 74.5 79.5 78.5 78.0 2
45 Nashwa_Mentari_Yuwana_Putri 83.5 81.5 81.5 83.5 82.0 85.5 83.0 86.0 82.0 85.5 6
46 Nendra_Nur_Febrian 82.5 77.5 77.5 78.0 79.0 79.0 72.0 76.5 80.5 83.0 2
47 Nidda'ul_Fijriah 82.5 78.5 78.5 79.5 80.0 79.5 74.0 82.5 82.5 86.0 4
48 Rendi_Prastyo_Aditama 79.5 73.5 77.5 74.5 81.0 78.0 77.5 77.5 79.0 79.0 1
49 Reva_Aidilla_Melani 85.0 84.0 83.0 83.5 82.0 81.5 82.5 88.5 80.5 88.5 6
50 Rivaldi_Desta_Akbar_Pratama 79.5 80.5 79.0 79.0 80.5 85.0 78.5 80.0 79.5 83.0 4
51 Safina_Ismafatul_Roida 78.5 73.5 79.0 80.0 82.0 80.5 79.0 84.0 80.0 81.0 3
52 Salva_Andika 81.0 79.0 79.0 78.0 80.5 84.0 79.5 84.5 81.5 80.5 4
53 Satryo_Gito_Pratomo 87.0 79.5 81.5 82.0 81.5 83.0 84.5 90.0 82.5 89.0 6
54 Septian_Daniarti_Fitri_Astutik 79.0 78.5 78.0 81.0 83.0 82.0 76.0 84.0 77.0 82.5 4
55 Shafa_Ayunda_Putri 85.5 76.5 80.0 80.0 80.5 80.5 79.5 82.0 81.5 83.0 4
56 Shifa_Khayyuna_Qisthi 85.5 78.5 79.5 82.0 81.5 81.0 78.5 84.0 82.0 84.5 5
57 Sindy_Aulia_Lestari 78.0 78.0 78.0 78.5 81.0 76.5 77.0 80.0 78.5 80.5 2
58 Sonya_Aulia_Dewi 84.5 75.5 82.5 79.0 82.0 82.0 82.0 83.0 81.0 85.0 5
59 Suci_Rahayu_Saputri 81.5 78.0 77.0 80.0 80.5 80.0 75.5 77.5 79.5 80.0 2
60 Talita_Bella_Safira 84.0 75.5 80.0 78.0 82.0 82.5 79.5 79.5 80.5 81.5 3
61 Zaraya_Jelita_Putri_Ardina 84.0 82.5 81.5 81.5 81.0 83.5 82.0 84.0 81.0 86.0 6

View File

@ -0,0 +1,241 @@
nama_siswa,nilai_informatika,nilai_fisika,nilai_kimia,nilai_biologi,nilai_big_lanjut,nilai_ekonomi,nilai_mat_lanjut,nilai_sej_lanjut,nilai_sosiologi,nilai_geografi,paket_jurusan
Abel_Senja_Agma_Subroto,82.0,77.0,80.0,79.0,80.5,86.0,79.5,83.0,81.5,85.5,5
Abid_Fadlih_Hafiyyah_Faza,85.0,78.0,78.0,78.0,79.5,80.0,78.0,79.0,81.5,81.5,3
Adinda_Dhea_Ochtavyana,86.0,81.5,80.5,81.0,81.0,82.5,80.0,85.0,81.0,83.5,5
Aditya_Rizky_Romadhon,81.0,77.5,76.5,79.5,80.0,81.0,76.5,82.0,80.5,80.5,3
Agha_Hisyam_Al-haliim,78.5,78.0,77.5,77.5,80.5,78.0,77.5,80.0,75.5,82.0,2
Ahmad_Adib_Almuiz,80.5,76.0,75.5,72.5,78.5,83.0,71.5,79.0,78.5,79.5,1
Ahmad_Dodik_Pratama,79.5,73.5,79.5,78.0,83.0,86.0,80.0,79.0,79.0,85.5,3
Ahmad_Maulana_Rizky_Aditya_Wijaya,85.5,78.5,77.5,79.5,83.0,79.5,74.0,82.0,80.5,84.0,3
Ahmad_Pramuja,81.5,76.5,79.0,83.5,84.0,84.0,80.5,84.0,79.5,84.5,5
Ahmad_Risky_Maskur,84.5,77.0,77.0,79.0,79.5,80.0,77.5,79.0,80.0,81.5,2
Ahmad_Rizal_Hanafi,86.5,80.5,80.5,79.0,78.5,81.0,80.5,81.0,79.5,82.0,4
Ahmad_Rizky_Wijaya,79.0,80.5,81.0,80.0,83.5,79.0,81.0,85.5,81.0,85.0,5
Ahmad_Rofi`an_Saputra,84.5,80.5,79.0,81.0,82.5,79.0,78.5,80.0,80.0,82.0,4
Aisyah_Fidinna_Rahmatika,83.5,76.5,77.5,80.5,81.0,86.5,79.0,82.5,83.0,80.5,5
Aldo_Dwi_Julianto,83.5,81.0,79.0,77.5,80.5,79.5,81.0,81.0,80.5,85.0,4
Aldo_Widodo,81.5,76.5,77.0,75.0,77.5,76.5,71.5,77.0,76.0,77.0,1
Alfiani_Mayasari,86.0,78.5,79.0,82.0,80.0,85.0,78.5,85.5,82.0,85.5,6
Alhasby_Bachtiar,79.5,79.5,78.5,81.5,80.0,79.5,76.0,84.0,81.5,85.0,4
Alvi_Sani,77.0,78.0,78.0,74.0,80.5,77.5,77.5,76.5,76.5,76.0,1
Alvino_Surya_Pratama,78.0,77.5,77.5,75.5,78.0,80.0,80.0,81.5,82.5,80.5,2
Ana_Ainus_Sifa,81.0,77.5,79.0,76.0,80.0,81.5,78.5,82.0,79.0,80.5,2
Andika_Bayu_Abriansyah,81.0,72.5,77.5,75.0,79.0,81.0,77.5,78.5,78.5,81.5,1
Andika_Nugrahatama,81.5,72.5,79.0,76.0,79.5,82.0,78.5,82.5,78.5,82.0,2
Andini_Rahmawati,78.5,79.5,79.0,75.5,81.0,83.0,79.5,83.0,77.0,82.0,3
Angga_Jalu_Arizona,78.5,76.0,76.0,75.0,78.5,77.0,77.0,78.5,74.0,79.0,1
Anggun_Kartika_Okta_Novita,81.5,76.5,78.0,76.0,80.5,83.5,78.5,84.0,79.5,85.0,3
Aprilia_Wahyuning_Agustin,80.0,77.5,78.5,80.5,82.0,78.0,78.5,82.0,79.5,81.0,3
Aprilliana_Cahaya_Puspita,82.5,72.5,78.5,79.0,79.5,83.0,77.5,79.0,80.5,83.0,3
Ardan_Pradipta,76.5,79.5,78.0,75.5,82.0,81.0,78.0,81.5,80.0,82.0,2
Ardian_Rama_Budi_Kusuma,78.5,73.5,78.0,79.0,82.0,84.0,78.5,78.5,76.0,79.5,2
Arfian_Setya_Yusinda,77.5,78.0,78.5,78.5,82.5,79.5,77.5,81.0,77.5,81.0,2
Arga_Reyhandika_Pratama,85.5,77.5,80.0,82.0,85.0,77.5,81.5,85.5,83.0,83.5,5
Arga_Wahyu_Prasetyo,79.5,79.5,79.0,80.5,83.0,80.0,78.5,82.5,78.5,82.0,4
Arik_Wisnu_Pramuditiya,86.0,81.0,82.0,81.0,82.5,83.0,81.5,86.0,82.5,89.0,6
Arrasha_Raditya_Andani,81.0,75.0,80.5,78.0,82.5,85.5,82.0,81.5,81.5,84.0,4
Arya_Erlangga_Tino_Putra,80.0,77.0,77.5,80.5,79.0,81.0,78.0,82.5,79.5,80.5,3
Atadea_Lie_Intan_Karina,86.5,80.5,78.0,81.0,81.0,78.0,76.5,84.0,77.5,81.0,4
Awwalun_Firdausi,82.5,84.0,84.0,82.0,81.5,86.0,82.0,89.0,83.0,89.0,6
Azka_Febita_Zalfianty,84.5,82.5,83.5,85.0,81.5,81.0,82.5,89.0,82.0,89.0,6
Azmi_Halim,84.5,74.5,80.0,81.0,85.0,81.5,79.5,83.0,79.5,83.5,5
Azzahra_Dewi_Natria,83.5,79.5,80.0,82.5,82.5,84.5,81.5,89.0,81.5,86.5,6
Bagus_Rohman_Maulana,81.5,82.5,80.5,79.5,80.0,81.5,81.5,83.5,81.5,86.0,5
Bayu_Ananta_Julian_Wicaksono,79.5,74.0,78.5,79.0,84.0,80.5,78.5,76.5,71.5,75.5,1
Bilqis_Syafiah_Ahmad,82.0,77.5,79.0,79.0,82.5,86.0,79.0,84.5,82.0,86.5,5
Bilqiz_Namsya_Prasesta,80.0,77.5,78.0,79.0,81.0,77.5,77.5,80.5,76.5,80.0,2
Binti_Yisha_Zahra_Futri,85.0,83.0,78.5,83.5,82.5,81.0,85.5,88.5,82.0,90.0,6
Brian_Agung_Pamungkas,90.0,82.5,83.0,84.5,85.0,88.0,85.5,89.5,84.0,90.0,6
Bryan_Maulana_Wibiantoro,86.0,77.0,82.5,79.0,84.5,84.5,81.0,86.5,80.5,86.5,6
Bunga_Alikasari,81.0,79.5,80.5,81.0,84.5,81.0,79.5,89.0,83.0,89.0,6
Cantika_Oktavia_Nurfitri_Mardiani,79.0,78.5,79.0,81.0,81.0,86.0,78.5,85.0,82.5,85.0,5
Chalisha_Alqathrunnada_Winsputri,86.5,77.5,79.0,81.0,82.0,82.5,80.5,85.0,78.5,86.5,5
Chalista_Ayunda_Sukmaningtyas,84.0,79.0,78.0,82.5,80.5,81.5,82.0,87.0,78.5,85.0,5
Chesylya_Adinnata_Maylani,79.5,76.0,79.5,79.5,81.0,81.0,75.5,82.0,80.5,83.5,3
Chiko_Bonanza_Cavan_Putra,80.0,78.5,77.5,77.0,79.5,78.5,78.0,79.0,79.0,80.0,2
Clara_Balqis_Putri_Febrianti,82.0,83.0,82.5,84.5,85.0,84.5,84.5,88.5,82.5,88.5,6
Danendra_Zahran_Qurunul_Bahri,79.0,72.5,76.5,72.0,83.5,77.5,77.5,81.5,78.0,77.5,1
Dania_Ismatul_Maula,82.5,77.0,80.5,80.0,84.5,84.0,81.0,86.0,81.0,85.0,5
Davin_Yudha_Pratama,82.5,78.0,78.5,81.5,83.0,81.0,73.5,84.0,79.5,82.5,4
Decha_Navita_Sari,78.0,77.5,78.0,80.0,80.5,79.0,77.5,81.0,79.5,83.5,3
Della_Dwi_Pratiwi,80.0,78.5,79.0,80.0,79.5,80.0,78.5,81.0,77.0,82.0,3
Dewi_Marisah_Manggar_Retno,89.0,80.5,78.5,81.5,81.0,83.0,84.0,85.5,83.0,85.5,6
Dhafa_Brillyan_Gustafianto,77.0,76.5,77.0,75.5,78.5,81.0,77.0,79.0,78.5,81.0,1
Dharisman_Bagus_Prastowo,84.0,75.0,79.0,81.5,82.0,82.0,78.5,84.5,82.0,82.5,5
Dhimas_Pandu_Wijaya,88.0,77.5,77.5,80.0,76.0,81.5,72.0,81.0,83.0,82.0,3
Dian_Noviyanti,87.5,77.5,79.0,79.5,79.5,85.5,77.5,81.0,81.0,83.5,4
Dimas_Ragil_Saputra,80.0,73.5,77.5,74.5,79.0,79.5,80.5,75.5,75.0,77.0,1
Dinda_Windy_Oktaviona,84.0,79.5,81.0,81.5,81.5,83.5,80.5,88.0,83.5,86.0,6
Diva_Maulidiya,81.0,77.5,79.0,74.0,81.0,85.0,78.5,80.0,78.0,84.0,2
Dwi_Andika,81.0,76.5,76.5,78.0,81.0,83.5,73.5,78.5,78.5,79.0,2
Dwi_Ka_Fauzian_Maulana_Ikhsan,80.5,75.0,77.5,77.0,79.5,83.5,81.5,79.5,80.5,81.0,2
Dwi_Kevfri_Kenata,81.0,80.5,82.0,80.5,82.5,81.5,78.5,84.5,82.5,86.0,5
Dwi_Nurida_Syifa,80.0,75.0,82.0,74.5,82.5,86.0,80.0,76.0,82.5,87.5,3
Dyah_Ayu_Pratiwi,74.5,76.5,77.5,76.5,80.5,78.5,73.5,77.0,80.0,79.5,1
Dyah_Vivianti,83.0,81.0,79.5,79.5,82.5,84.0,79.5,85.5,80.0,87.5,5
Ella_Syahra_Agustin,82.0,74.0,80.0,76.5,83.0,82.5,79.5,83.5,81.5,81.5,3
Erlang_Danendra_Ari_Putra,84.5,76.5,78.0,78.0,78.5,82.5,77.0,79.0,79.5,79.0,2
Ermita_Trisya_Sari,81.0,83.0,81.5,82.0,83.0,87.5,86.5,87.5,80.0,89.0,6
Fahril_Rahmad_Tri_Setyawan,79.5,77.0,78.0,77.0,80.0,86.0,77.5,81.0,79.5,81.0,3
Fauziah_Elsa_Putri_Purnomo,81.0,82.5,84.0,82.5,83.0,87.0,85.5,85.0,82.0,88.5,6
Febian_Dwi_Andika,82.0,74.5,78.0,74.5,80.0,81.0,77.5,78.5,79.0,78.5,1
Feisal_Wisnu_Raditya,78.0,77.0,77.5,75.0,78.5,81.0,74.5,79.0,78.5,79.5,1
Fibriana_Fira_Rahmawati,80.5,77.0,78.5,77.0,83.0,85.5,81.0,84.5,81.5,83.0,4
Fika_Nur_Rohmah,82.0,78.0,78.0,79.0,80.5,83.0,79.0,79.0,80.5,80.5,3
Fino_Andreyan_Pratama,84.0,79.0,79.0,80.0,80.0,81.5,75.0,81.5,80.5,81.5,4
Firstian_Vidya_Permana,79.5,77.5,79.0,78.0,80.5,83.0,77.5,78.0,78.5,78.5,2
Fitri_Yulita_Sari,88.5,79.5,78.0,82.5,82.5,84.5,78.0,84.5,82.0,85.0,6
Fitriani_Nurul_Norhayati,79.0,77.5,80.0,77.0,80.5,82.0,76.5,79.0,76.5,82.5,2
Frisa_Agiel_Kirania,81.0,78.0,78.0,78.0,80.5,83.0,78.0,79.0,80.0,80.5,3
Galang_Aldi_Ananta_Putra,83.5,80.5,79.5,77.0,79.0,86.5,78.5,85.5,79.5,85.5,5
Galang_Aldiyansah_Putra,82.5,78.5,77.0,77.5,78.5,82.0,73.5,83.0,78.5,81.0,2
Ghania_Hardiyanti,86.0,83.5,82.5,82.5,83.0,85.5,86.5,87.5,82.0,87.0,6
Ghea_Anzani_Siswanto,83.5,78.5,78.0,82.0,80.5,81.5,79.5,80.5,81.0,84.0,4
Gloria_Fransisca,81.0,79.0,80.5,80.5,83.0,80.5,79.5,84.5,80.0,85.0,5
Gufroni_Ahmadin_Naja,80.5,74.0,78.0,72.5,80.5,81.5,77.5,80.0,78.0,80.5,1
Hamida_Ulviana_Dewi,79.5,79.5,78.5,81.0,79.5,85.5,75.0,83.0,77.5,83.0,4
Handoko_Dimas_Wahyu_Nugroho,79.0,76.0,78.5,77.0,82.5,80.5,74.5,78.5,75.5,78.5,1
Handy_Miftakhul_Ullum,82.0,77.5,78.5,82.0,82.0,86.0,78.5,88.5,82.5,85.5,6
Hawa_Aurelia_Firdaus,81.0,75.5,78.0,80.0,83.0,83.5,77.5,85.0,79.5,82.5,4
Helsabrina_Faj'ri_Mahmuna,80.5,76.5,79.0,78.0,80.5,85.0,82.0,82.0,82.0,82.0,4
Hengky_Prasetyo,85.0,77.0,77.0,75.5,80.5,80.0,73.5,79.0,76.5,78.5,1
Hera_Junia_Purnamasari,80.0,82.0,79.5,77.0,80.0,87.5,78.0,86.0,81.5,86.5,5
Herlin_Faradila_Stifiana,78.5,78.5,79.0,80.0,81.5,81.0,80.5,83.0,80.0,82.5,4
Hesnanda_Azeema_Naswa_Krisnasekha,79.5,77.0,78.5,79.0,84.5,87.5,84.0,86.5,80.5,85.5,5
Hildan_Tri_Agustino,77.0,77.5,78.0,77.0,79.5,80.5,77.5,78.0,76.0,79.5,1
Indri_Julia_Dwi_Dianitami,81.0,76.5,80.0,77.0,81.0,83.0,79.5,83.5,82.5,86.0,4
Isna_Maulidiyah,83.5,76.5,77.5,77.0,78.5,80.5,77.5,80.0,74.5,79.5,1
Jhovani_Vina_Maharani,84.5,79.5,78.0,83.0,79.0,83.5,78.0,80.0,79.0,80.5,4
Jimi_Pranata,79.5,74.0,77.5,75.5,79.5,80.0,82.0,76.5,72.5,81.0,1
Johan_Satrio_Wicaksono,82.5,77.5,78.0,76.0,78.0,81.0,77.5,78.5,81.5,79.5,2
Kaiyla_Fera_Ayu_Moza,87.0,78.5,78.5,84.0,85.0,87.5,78.5,85.0,79.5,86.5,6
Karisma_Hardiyati_P._R.,80.5,79.5,78.0,78.5,80.5,81.0,78.0,78.5,79.5,79.5,3
Kellvi_Tiaska_Putri,78.0,77.5,77.5,79.5,80.0,83.0,76.5,81.0,80.5,80.5,3
Kevin_Arfian_Vidyanata,80.5,77.0,77.5,75.0,78.5,81.5,78.0,80.0,77.0,79.5,1
Kevin_Saputra,79.5,74.0,76.5,78.0,80.5,82.0,79.5,82.5,78.5,83.0,2
Keylla_Aulia_Renata,80.0,77.5,81.0,76.5,83.5,85.5,81.0,86.0,83.0,85.5,5
Kirana_Putri_Agustina,81.0,79.0,79.0,79.0,81.0,81.0,79.0,83.5,80.5,83.5,4
Kusuma_Faridatulliya,85.5,75.0,80.0,78.0,83.0,84.5,78.5,81.0,81.5,84.0,4
Lala_Putri_Meilita,77.5,78.0,78.5,79.0,82.0,84.5,81.5,82.5,80.0,85.5,4
Latifatul_Isma,83.0,82.0,77.0,80.5,81.0,85.0,86.5,86.0,79.0,86.5,6
Laudia_Vera_Agustin,81.0,75.0,78.5,81.0,83.5,81.5,79.5,83.5,81.0,87.0,5
Lia_Puspitasari,79.5,75.5,78.0,77.0,79.5,83.5,81.0,82.0,79.0,84.0,3
Lucky_Fabrio_Saputra,81.0,84.0,80.5,78.0,79.5,81.0,80.0,82.0,79.5,84.0,4
Lukman_Khakim_Noah,80.5,76.5,78.0,75.5,78.5,80.0,77.0,79.0,78.5,76.0,1
Luna_Aurelia_Romadhona_Putri,80.5,76.5,81.0,83.5,84.0,89.0,81.0,84.5,82.0,88.0,6
M._Alfin_Nur_Rahmad,80.0,84.0,78.5,85.0,78.5,83.0,79.5,86.0,81.5,81.0,6
M._Faris_Ardiyanto,75.0,76.0,76.0,76.0,78.5,84.5,73.5,77.5,77.5,76.0,1
M.deno_Bayu_Putra_Hardiansah,80.0,75.0,78.0,76.0,81.0,83.0,78.5,83.0,78.5,80.0,2
M.fahcri_Affan_Ramadhani,80.5,80.5,80.0,77.0,82.5,86.0,74.0,84.5,80.5,82.5,4
Maysa_Purwadinata,81.0,72.5,79.5,76.0,81.5,81.5,79.5,79.5,80.5,80.0,2
Medina_Putri_Febiani,81.0,77.5,79.5,81.0,84.5,84.5,79.0,85.0,82.5,83.5,5
Meirakha_Fernanda_Siswardhani,82.5,77.5,80.0,81.0,79.5,83.5,79.0,83.0,80.0,82.0,4
Meriyas_Eka_Anjani,85.5,77.0,78.0,81.0,83.0,81.0,74.0,82.5,83.0,85.5,5
Mexel_Farel_Erlangga,77.0,76.0,78.0,72.5,79.0,78.0,77.5,75.5,77.0,76.0,1
Mey_Lika_Hanaya_Putri,87.0,78.0,80.0,81.0,82.5,86.5,82.0,84.5,83.0,84.5,6
Moch._Febri_Nur_Hidayatullah,78.5,74.0,77.5,72.0,80.0,81.0,77.5,78.0,77.0,76.0,1
Moch._Galih_Nur_Hidayatullah,77.0,77.0,77.0,77.0,80.5,78.5,74.0,78.0,79.5,78.5,1
Moch.afga_Afreza_Alfiansyah,81.0,79.5,80.5,80.0,83.0,85.0,79.5,86.0,81.0,85.0,5
Mochamat_Agil_Desulton,81.5,74.0,77.5,77.0,81.0,81.0,78.5,79.0,78.0,78.5,2
Mochammad_Fahri_Nur_Rizky,82.5,79.5,83.0,81.5,80.5,82.5,85.5,86.0,82.0,87.0,6
Moh._Raditya_Haria_Nugraha,81.0,72.5,77.5,78.0,82.5,83.5,77.5,84.0,79.0,83.5,3
Moh._Rendi_Saputra,81.0,73.5,78.0,75.5,81.0,81.5,77.5,80.0,79.0,80.0,1
Mohamad_Bagus_Hermawan,78.0,73.5,77.0,74.0,80.0,81.0,77.5,73.5,79.0,79.0,1
Mohamad_Rizal_Permana_Putra,82.0,77.0,78.0,74.0,79.0,79.0,78.0,83.0,78.5,81.5,1
Mohammad_Iqbal_Hafidh_Amiruddin,82.5,76.5,78.0,75.5,78.5,80.5,77.5,77.5,76.0,81.0,1
Mohammad_Raihan_Nur_Fajri,81.0,77.0,76.0,80.0,81.0,82.5,73.5,81.0,80.5,81.0,3
Mohammad_Reno_Zainul_Pratama,81.5,72.5,77.5,75.0,79.0,84.0,77.5,73.5,81.5,81.0,1
Mohammad_Trio_Subekti,77.5,76.5,76.5,76.0,79.5,82.0,73.0,77.5,79.5,78.0,1
Muchamad_Jaohar_Firdaus,82.5,74.5,77.0,81.0,82.0,82.0,78.0,79.5,79.5,81.0,3
Muhamad_Rif'an_Mauludi,88.0,75.5,78.5,82.0,81.5,84.0,77.5,81.0,81.5,82.0,5
Muhammad_Asril_Daffa_Saputra,77.5,77.5,78.0,78.5,80.5,81.5,72.0,78.0,79.5,79.5,2
Muhammad_Khafid_Nuriyanto,89.5,80.5,81.0,81.5,78.5,82.5,81.5,86.0,81.0,87.5,6
Muhammad_Nur_Rahman_Sya'abibah,85.5,76.5,78.0,81.0,78.5,82.5,77.0,82.0,79.0,78.5,3
Muhammad_Rangga_Saputra,76.0,78.5,78.0,78.5,80.5,81.0,78.5,78.0,79.5,78.5,2
Muhammad_Rizky_Putra_Aditya,81.0,80.5,77.5,78.5,80.5,81.0,77.5,79.5,73.0,80.5,2
Muhammad_Safi',82.0,77.0,78.0,79.0,80.0,81.5,77.5,79.5,81.5,79.5,3
Muhammad_Tegar_Prayuda,81.5,78.5,77.0,80.5,82.0,80.0,76.5,82.5,80.5,85.5,4
Muhammad_Zennuri,79.5,77.0,79.0,74.5,78.5,83.5,78.5,77.5,78.0,78.0,1
Nadya_Anandiva_Silvyani,81.0,82.5,81.0,81.0,81.5,85.5,80.0,87.5,82.5,85.5,6
Nafatria_Kirana,80.0,72.5,78.5,73.5,79.0,78.0,78.5,77.5,74.5,76.5,1
Nanang_Mariyanto,79.5,73.5,77.5,79.0,79.0,82.0,77.5,80.0,80.0,78.5,2
Nayaka_Sutomo,82.5,84.0,84.0,80.5,84.5,82.5,83.5,87.5,80.0,86.0,6
Naysilla_Dwi_Anggraini,88.0,78.0,78.0,80.0,81.5,79.5,79.5,83.5,81.0,84.5,4
Nezza_Maura_Putri_Agung,83.5,79.5,81.0,75.5,79.5,78.5,80.0,81.0,79.0,83.0,3
Nimas_Yayank_Putri_Prabowo,80.5,78.5,78.0,75.0,83.0,77.0,77.5,84.5,79.5,85.0,2
Novita_Eka_Ramandani,78.5,78.0,78.0,79.5,82.0,82.5,79.0,80.0,81.0,84.0,4
Nur_Aleeya_Afrina_Suwandi,83.5,79.5,80.5,83.5,83.0,84.0,84.0,89.0,81.5,87.0,6
Prima_Dyah_Novanda,85.0,80.5,81.5,81.0,83.0,82.0,83.5,86.5,77.5,85.5,6
Puja_Micky_Harianto,80.0,78.5,78.5,81.5,81.0,81.0,77.5,82.0,79.5,84.0,4
Putri_Adelia_Sari,81.0,77.5,78.0,80.0,80.5,84.5,80.0,85.5,82.5,82.0,5
Putri_Rahayu_Ningsih,79.5,79.5,79.5,79.5,84.0,80.0,79.5,80.0,80.0,85.5,4
Quennata_Gladis_Bilbina,86.0,78.5,78.0,80.5,82.5,86.0,79.5,79.5,82.0,81.5,5
Quinnsha_Launada_Wibowo,82.0,77.0,79.0,78.0,82.0,83.5,79.0,84.0,79.0,82.0,4
Rahardyan_Felix_Kurniawan_(kr),81.5,77.0,81.0,80.0,83.0,87.0,78.5,85.5,80.0,85.0,5
Rahma_Goespiaputri_Ramadhani,84.5,77.0,78.0,81.5,80.0,82.5,80.0,84.0,80.0,83.5,5
Ramadhani_Silfi_Damaiyanti,80.0,77.5,78.0,78.5,80.5,86.5,78.0,82.0,81.5,81.0,4
Rangga_Galuh_Octa_Pradana,79.0,77.0,78.0,77.5,80.0,80.0,72.5,81.0,81.5,79.5,2
Rangga_Risqi_Bintang_S.,82.0,76.0,79.0,79.0,80.5,85.0,78.5,82.0,80.0,85.0,4
Rayhan_Aditya,81.5,80.5,81.0,81.5,80.0,81.5,80.5,88.0,81.0,88.0,6
Rehan_Dwi_Ferdiansyah,76.5,77.0,78.0,73.0,79.0,81.0,78.0,76.5,79.0,77.0,1
Rehan_Septa_Adi_Ramadhani,83.5,78.0,78.0,79.0,82.0,86.5,75.5,82.0,80.5,80.5,4
Renno_Ilham_Revaldo,85.5,73.5,77.5,79.0,81.0,82.5,77.5,83.5,79.5,82.0,3
Revinda_Wisca_Natalie,86.0,81.5,81.0,85.0,80.5,87.0,80.0,85.5,82.5,85.5,6
Rika_Nur_Fauziah,80.5,79.5,79.5,81.0,83.5,85.0,80.5,81.0,79.5,85.5,5
Rima_Dwi_Oktavia,79.5,77.5,78.0,76.0,80.0,79.5,78.0,80.0,80.0,81.0,2
Riska_Adelia_Dulrahman,80.5,73.0,71.5,71.5,77.0,79.5,77.5,71.0,77.0,72.5,1
Risma_Indira_Fernanda,89.0,77.0,78.5,83.5,83.0,84.0,81.5,84.5,76.5,85.5,6
Rizki_Andi_Pratama,85.5,79.5,80.5,81.0,81.5,83.0,84.5,86.0,82.0,86.0,6
Rizqi_Pangestu_Arsyadipura,84.5,84.0,81.5,82.0,81.0,79.5,83.5,88.0,81.5,87.0,6
Rohmatul_Fitria_Dewi,87.5,78.0,78.0,83.0,81.0,84.5,80.5,80.5,82.0,81.5,5
Roszhiana_Ramadhani,77.5,77.5,78.0,79.5,83.0,78.0,80.0,79.0,79.0,79.5,2
Sahal_Ahmad,82.0,84.0,82.5,80.0,79.0,80.0,80.0,81.0,82.0,84.5,5
Salfa_Aulia_Putri,81.0,76.5,77.0,82.0,80.5,81.5,77.5,79.0,79.5,79.5,3
Salsa_Laurintiya,81.0,78.5,79.0,78.0,81.0,78.5,77.0,82.0,79.0,80.5,3
Sandy_Dwi_Meilano,81.5,82.5,81.0,80.5,81.0,83.5,83.0,85.5,82.0,87.5,6
Santy_Nurahma_Agustya_Rani_Putri,78.0,78.0,78.0,78.5,83.0,77.5,77.5,78.0,76.5,80.5,2
Saputra_Seftian_Rahmatdhani,80.5,76.0,79.0,76.5,82.5,87.0,79.5,84.5,81.0,88.0,5
Satrio_Damar_Anggono,77.5,78.5,77.0,76.5,80.5,80.0,73.5,83.5,80.0,85.5,2
Selly_Novtiana_Waty,84.0,76.5,77.5,75.0,79.0,79.5,77.5,79.5,79.5,81.0,1
Septia_Ayu_Muliasih,77.5,76.5,77.5,74.5,79.5,80.5,77.5,77.0,76.0,79.5,1
Sera_Natalia,80.0,77.5,79.5,80.5,82.5,81.5,80.5,81.0,80.0,84.0,4
Shofiyyatul_El_Husna,87.5,78.5,79.0,80.5,79.0,77.5,82.0,83.5,81.5,83.5,4
Silvia_Novitasari,88.5,77.0,78.0,77.0,82.0,81.0,77.5,83.0,82.5,81.5,3
Singgih_Ferdy_Ananda,87.5,79.5,82.5,79.0,84.5,83.5,81.5,89.0,81.5,89.5,6
Siti_Apriliani_Khairunnisa,80.5,80.5,79.5,78.0,80.5,84.0,79.5,82.0,80.5,82.0,4
Siti_Aulia_Nur_Latifah,79.0,82.5,84.0,81.0,84.5,82.0,82.0,87.5,82.5,89.0,6
Siti_Dian_Rahmadani,79.5,72.5,78.5,74.5,79.5,83.0,78.5,75.0,77.5,82.0,1
Sujiati_Fitrianingsih,83.5,77.5,78.0,79.5,80.0,83.0,76.5,84.0,80.5,80.5,4
Surya_Mahadika,81.5,76.0,79.0,76.5,80.5,83.5,79.0,84.5,80.0,85.5,3
Susan_Amiliya_Khoirunisa,81.5,79.5,79.0,82.0,84.0,79.5,79.5,84.0,79.5,87.5,5
Syakela_Arifah_Azzahra,83.0,77.0,79.0,77.5,79.5,85.0,78.5,80.0,79.0,80.0,3
Tasya_Dwi_Oktavia,77.5,77.5,78.0,80.5,82.5,82.5,79.5,79.0,81.5,82.0,4
Tata_Agata_Afga_Pratama,81.5,78.0,77.5,74.5,80.5,78.5,75.0,78.5,81.0,79.5,1
Tegar_Krido_Wibowo,79.5,77.0,79.5,77.5,80.0,77.5,77.0,78.5,79.5,80.0,2
Tegar_Reka_Wijaya,82.0,79.5,79.5,81.0,82.5,83.5,81.5,84.0,82.0,86.5,6
Thalyta_Chelse_Olivia_Leovanny,86.5,74.5,80.0,80.0,84.0,82.0,79.5,84.5,83.0,83.5,5
Tio_Ainun_Romadhoni,81.5,76.5,76.5,79.0,78.5,81.5,77.0,80.0,79.5,80.0,2
Titin_Karunia_Putri,83.0,79.5,78.0,81.0,82.5,85.0,79.0,85.0,81.5,85.0,5
Tribuana_Reza_Fanani,82.0,76.0,80.0,80.0,80.5,82.5,79.0,84.5,76.0,82.5,4
Trisa_Adelia_Parera,83.5,78.0,78.5,79.5,82.5,84.0,77.5,84.0,80.5,84.0,5
Triyah_Bhuana,81.5,77.0,80.0,76.0,79.5,82.0,77.5,83.0,79.0,80.5,3
Ulfa_Kusuma_Dewi,84.5,75.0,78.5,78.0,82.0,81.0,77.5,80.0,81.5,82.0,3
Vandi_Aulia_Kadhafi,83.5,77.0,79.0,76.0,79.5,79.5,78.5,79.5,78.0,79.0,2
Vania_Ika_Melinda,80.5,79.5,79.5,80.5,81.0,80.5,82.0,84.0,79.0,83.5,5
Varisha_Anastasya,86.5,80.5,81.5,81.5,80.5,85.0,84.0,85.5,82.5,87.0,6
Viasya_Aqnia_Zela,82.0,77.0,79.5,78.0,83.5,83.5,79.5,86.0,79.5,83.0,4
Vrananda_Ricky_Saputra,77.5,77.0,79.0,78.0,80.5,78.5,72.0,79.0,81.5,78.5,2
Wahyu_Febrianti,83.0,77.0,80.5,83.5,84.5,88.5,79.5,86.5,83.5,89.5,6
Wahyu_Subastyan,79.5,73.5,79.0,74.0,80.0,81.5,78.5,74.0,76.0,78.5,1
Widya_Dwi_Astuti,79.5,77.5,79.0,80.5,80.5,81.5,76.0,79.0,80.5,80.5,3
Wildan_Yongga_Jodyatmika,82.5,72.5,78.5,78.0,79.0,81.5,77.5,77.0,82.0,81.0,2
Wisnu_Tirta_Kusuma,81.5,73.5,78.5,79.0,79.5,81.0,77.5,80.0,80.5,81.0,2
Yahya_Handika_Aditia,87.0,78.0,78.0,75.5,81.0,82.0,74.0,79.0,80.5,80.5,2
Yanuarycha_Putri_Rifda,82.0,73.5,79.0,77.0,81.5,80.0,78.5,80.5,82.0,82.5,3
Yohan_Arinugraha,86.5,83.5,83.5,84.0,85.0,81.0,81.0,90.0,84.0,90.0,6
Yuli_Evita_Wati,83.0,77.5,79.5,80.0,80.5,86.0,79.5,84.5,81.0,83.5,5
Yulia_Nur_Lismarita,80.5,77.5,78.0,80.5,81.0,80.0,80.5,83.0,77.5,83.0,3
Yuma_Erlangga,79.5,76.0,76.0,77.0,77.5,76.5,77.0,76.5,74.5,79.0,1
Zaneta_Ayu_Nur_Harsya,82.5,72.5,79.0,78.0,82.0,80.5,78.5,80.5,81.5,84.5,3
Zulfatul_Ilmi_Sa'adah,80.0,73.5,79.5,77.0,84.5,84.0,79.5,82.0,81.5,82.0,3
Zulia_Ulifatul_Mahmadah,81.5,78.5,79.0,75.0,79.5,81.0,78.5,81.0,80.0,82.0,2
1 nama_siswa nilai_informatika nilai_fisika nilai_kimia nilai_biologi nilai_big_lanjut nilai_ekonomi nilai_mat_lanjut nilai_sej_lanjut nilai_sosiologi nilai_geografi paket_jurusan
2 Abel_Senja_Agma_Subroto 82.0 77.0 80.0 79.0 80.5 86.0 79.5 83.0 81.5 85.5 5
3 Abid_Fadlih_Hafiyyah_Faza 85.0 78.0 78.0 78.0 79.5 80.0 78.0 79.0 81.5 81.5 3
4 Adinda_Dhea_Ochtavyana 86.0 81.5 80.5 81.0 81.0 82.5 80.0 85.0 81.0 83.5 5
5 Aditya_Rizky_Romadhon 81.0 77.5 76.5 79.5 80.0 81.0 76.5 82.0 80.5 80.5 3
6 Agha_Hisyam_Al-haliim 78.5 78.0 77.5 77.5 80.5 78.0 77.5 80.0 75.5 82.0 2
7 Ahmad_Adib_Almuiz 80.5 76.0 75.5 72.5 78.5 83.0 71.5 79.0 78.5 79.5 1
8 Ahmad_Dodik_Pratama 79.5 73.5 79.5 78.0 83.0 86.0 80.0 79.0 79.0 85.5 3
9 Ahmad_Maulana_Rizky_Aditya_Wijaya 85.5 78.5 77.5 79.5 83.0 79.5 74.0 82.0 80.5 84.0 3
10 Ahmad_Pramuja 81.5 76.5 79.0 83.5 84.0 84.0 80.5 84.0 79.5 84.5 5
11 Ahmad_Risky_Maskur 84.5 77.0 77.0 79.0 79.5 80.0 77.5 79.0 80.0 81.5 2
12 Ahmad_Rizal_Hanafi 86.5 80.5 80.5 79.0 78.5 81.0 80.5 81.0 79.5 82.0 4
13 Ahmad_Rizky_Wijaya 79.0 80.5 81.0 80.0 83.5 79.0 81.0 85.5 81.0 85.0 5
14 Ahmad_Rofi`an_Saputra 84.5 80.5 79.0 81.0 82.5 79.0 78.5 80.0 80.0 82.0 4
15 Aisyah_Fidinna_Rahmatika 83.5 76.5 77.5 80.5 81.0 86.5 79.0 82.5 83.0 80.5 5
16 Aldo_Dwi_Julianto 83.5 81.0 79.0 77.5 80.5 79.5 81.0 81.0 80.5 85.0 4
17 Aldo_Widodo 81.5 76.5 77.0 75.0 77.5 76.5 71.5 77.0 76.0 77.0 1
18 Alfiani_Mayasari 86.0 78.5 79.0 82.0 80.0 85.0 78.5 85.5 82.0 85.5 6
19 Alhasby_Bachtiar 79.5 79.5 78.5 81.5 80.0 79.5 76.0 84.0 81.5 85.0 4
20 Alvi_Sani 77.0 78.0 78.0 74.0 80.5 77.5 77.5 76.5 76.5 76.0 1
21 Alvino_Surya_Pratama 78.0 77.5 77.5 75.5 78.0 80.0 80.0 81.5 82.5 80.5 2
22 Ana_Ainus_Sifa 81.0 77.5 79.0 76.0 80.0 81.5 78.5 82.0 79.0 80.5 2
23 Andika_Bayu_Abriansyah 81.0 72.5 77.5 75.0 79.0 81.0 77.5 78.5 78.5 81.5 1
24 Andika_Nugrahatama 81.5 72.5 79.0 76.0 79.5 82.0 78.5 82.5 78.5 82.0 2
25 Andini_Rahmawati 78.5 79.5 79.0 75.5 81.0 83.0 79.5 83.0 77.0 82.0 3
26 Angga_Jalu_Arizona 78.5 76.0 76.0 75.0 78.5 77.0 77.0 78.5 74.0 79.0 1
27 Anggun_Kartika_Okta_Novita 81.5 76.5 78.0 76.0 80.5 83.5 78.5 84.0 79.5 85.0 3
28 Aprilia_Wahyuning_Agustin 80.0 77.5 78.5 80.5 82.0 78.0 78.5 82.0 79.5 81.0 3
29 Aprilliana_Cahaya_Puspita 82.5 72.5 78.5 79.0 79.5 83.0 77.5 79.0 80.5 83.0 3
30 Ardan_Pradipta 76.5 79.5 78.0 75.5 82.0 81.0 78.0 81.5 80.0 82.0 2
31 Ardian_Rama_Budi_Kusuma 78.5 73.5 78.0 79.0 82.0 84.0 78.5 78.5 76.0 79.5 2
32 Arfian_Setya_Yusinda 77.5 78.0 78.5 78.5 82.5 79.5 77.5 81.0 77.5 81.0 2
33 Arga_Reyhandika_Pratama 85.5 77.5 80.0 82.0 85.0 77.5 81.5 85.5 83.0 83.5 5
34 Arga_Wahyu_Prasetyo 79.5 79.5 79.0 80.5 83.0 80.0 78.5 82.5 78.5 82.0 4
35 Arik_Wisnu_Pramuditiya 86.0 81.0 82.0 81.0 82.5 83.0 81.5 86.0 82.5 89.0 6
36 Arrasha_Raditya_Andani 81.0 75.0 80.5 78.0 82.5 85.5 82.0 81.5 81.5 84.0 4
37 Arya_Erlangga_Tino_Putra 80.0 77.0 77.5 80.5 79.0 81.0 78.0 82.5 79.5 80.5 3
38 Atadea_Lie_Intan_Karina 86.5 80.5 78.0 81.0 81.0 78.0 76.5 84.0 77.5 81.0 4
39 Awwalun_Firdausi 82.5 84.0 84.0 82.0 81.5 86.0 82.0 89.0 83.0 89.0 6
40 Azka_Febita_Zalfianty 84.5 82.5 83.5 85.0 81.5 81.0 82.5 89.0 82.0 89.0 6
41 Azmi_Halim 84.5 74.5 80.0 81.0 85.0 81.5 79.5 83.0 79.5 83.5 5
42 Azzahra_Dewi_Natria 83.5 79.5 80.0 82.5 82.5 84.5 81.5 89.0 81.5 86.5 6
43 Bagus_Rohman_Maulana 81.5 82.5 80.5 79.5 80.0 81.5 81.5 83.5 81.5 86.0 5
44 Bayu_Ananta_Julian_Wicaksono 79.5 74.0 78.5 79.0 84.0 80.5 78.5 76.5 71.5 75.5 1
45 Bilqis_Syafiah_Ahmad 82.0 77.5 79.0 79.0 82.5 86.0 79.0 84.5 82.0 86.5 5
46 Bilqiz_Namsya_Prasesta 80.0 77.5 78.0 79.0 81.0 77.5 77.5 80.5 76.5 80.0 2
47 Binti_Yisha_Zahra_Futri 85.0 83.0 78.5 83.5 82.5 81.0 85.5 88.5 82.0 90.0 6
48 Brian_Agung_Pamungkas 90.0 82.5 83.0 84.5 85.0 88.0 85.5 89.5 84.0 90.0 6
49 Bryan_Maulana_Wibiantoro 86.0 77.0 82.5 79.0 84.5 84.5 81.0 86.5 80.5 86.5 6
50 Bunga_Alikasari 81.0 79.5 80.5 81.0 84.5 81.0 79.5 89.0 83.0 89.0 6
51 Cantika_Oktavia_Nurfitri_Mardiani 79.0 78.5 79.0 81.0 81.0 86.0 78.5 85.0 82.5 85.0 5
52 Chalisha_Alqathrunnada_Winsputri 86.5 77.5 79.0 81.0 82.0 82.5 80.5 85.0 78.5 86.5 5
53 Chalista_Ayunda_Sukmaningtyas 84.0 79.0 78.0 82.5 80.5 81.5 82.0 87.0 78.5 85.0 5
54 Chesylya_Adinnata_Maylani 79.5 76.0 79.5 79.5 81.0 81.0 75.5 82.0 80.5 83.5 3
55 Chiko_Bonanza_Cavan_Putra 80.0 78.5 77.5 77.0 79.5 78.5 78.0 79.0 79.0 80.0 2
56 Clara_Balqis_Putri_Febrianti 82.0 83.0 82.5 84.5 85.0 84.5 84.5 88.5 82.5 88.5 6
57 Danendra_Zahran_Qurunul_Bahri 79.0 72.5 76.5 72.0 83.5 77.5 77.5 81.5 78.0 77.5 1
58 Dania_Ismatul_Maula 82.5 77.0 80.5 80.0 84.5 84.0 81.0 86.0 81.0 85.0 5
59 Davin_Yudha_Pratama 82.5 78.0 78.5 81.5 83.0 81.0 73.5 84.0 79.5 82.5 4
60 Decha_Navita_Sari 78.0 77.5 78.0 80.0 80.5 79.0 77.5 81.0 79.5 83.5 3
61 Della_Dwi_Pratiwi 80.0 78.5 79.0 80.0 79.5 80.0 78.5 81.0 77.0 82.0 3
62 Dewi_Marisah_Manggar_Retno 89.0 80.5 78.5 81.5 81.0 83.0 84.0 85.5 83.0 85.5 6
63 Dhafa_Brillyan_Gustafianto 77.0 76.5 77.0 75.5 78.5 81.0 77.0 79.0 78.5 81.0 1
64 Dharisman_Bagus_Prastowo 84.0 75.0 79.0 81.5 82.0 82.0 78.5 84.5 82.0 82.5 5
65 Dhimas_Pandu_Wijaya 88.0 77.5 77.5 80.0 76.0 81.5 72.0 81.0 83.0 82.0 3
66 Dian_Noviyanti 87.5 77.5 79.0 79.5 79.5 85.5 77.5 81.0 81.0 83.5 4
67 Dimas_Ragil_Saputra 80.0 73.5 77.5 74.5 79.0 79.5 80.5 75.5 75.0 77.0 1
68 Dinda_Windy_Oktaviona 84.0 79.5 81.0 81.5 81.5 83.5 80.5 88.0 83.5 86.0 6
69 Diva_Maulidiya 81.0 77.5 79.0 74.0 81.0 85.0 78.5 80.0 78.0 84.0 2
70 Dwi_Andika 81.0 76.5 76.5 78.0 81.0 83.5 73.5 78.5 78.5 79.0 2
71 Dwi_Ka_Fauzian_Maulana_Ikhsan 80.5 75.0 77.5 77.0 79.5 83.5 81.5 79.5 80.5 81.0 2
72 Dwi_Kevfri_Kenata 81.0 80.5 82.0 80.5 82.5 81.5 78.5 84.5 82.5 86.0 5
73 Dwi_Nurida_Syifa 80.0 75.0 82.0 74.5 82.5 86.0 80.0 76.0 82.5 87.5 3
74 Dyah_Ayu_Pratiwi 74.5 76.5 77.5 76.5 80.5 78.5 73.5 77.0 80.0 79.5 1
75 Dyah_Vivianti 83.0 81.0 79.5 79.5 82.5 84.0 79.5 85.5 80.0 87.5 5
76 Ella_Syahra_Agustin 82.0 74.0 80.0 76.5 83.0 82.5 79.5 83.5 81.5 81.5 3
77 Erlang_Danendra_Ari_Putra 84.5 76.5 78.0 78.0 78.5 82.5 77.0 79.0 79.5 79.0 2
78 Ermita_Trisya_Sari 81.0 83.0 81.5 82.0 83.0 87.5 86.5 87.5 80.0 89.0 6
79 Fahril_Rahmad_Tri_Setyawan 79.5 77.0 78.0 77.0 80.0 86.0 77.5 81.0 79.5 81.0 3
80 Fauziah_Elsa_Putri_Purnomo 81.0 82.5 84.0 82.5 83.0 87.0 85.5 85.0 82.0 88.5 6
81 Febian_Dwi_Andika 82.0 74.5 78.0 74.5 80.0 81.0 77.5 78.5 79.0 78.5 1
82 Feisal_Wisnu_Raditya 78.0 77.0 77.5 75.0 78.5 81.0 74.5 79.0 78.5 79.5 1
83 Fibriana_Fira_Rahmawati 80.5 77.0 78.5 77.0 83.0 85.5 81.0 84.5 81.5 83.0 4
84 Fika_Nur_Rohmah 82.0 78.0 78.0 79.0 80.5 83.0 79.0 79.0 80.5 80.5 3
85 Fino_Andreyan_Pratama 84.0 79.0 79.0 80.0 80.0 81.5 75.0 81.5 80.5 81.5 4
86 Firstian_Vidya_Permana 79.5 77.5 79.0 78.0 80.5 83.0 77.5 78.0 78.5 78.5 2
87 Fitri_Yulita_Sari 88.5 79.5 78.0 82.5 82.5 84.5 78.0 84.5 82.0 85.0 6
88 Fitriani_Nurul_Norhayati 79.0 77.5 80.0 77.0 80.5 82.0 76.5 79.0 76.5 82.5 2
89 Frisa_Agiel_Kirania 81.0 78.0 78.0 78.0 80.5 83.0 78.0 79.0 80.0 80.5 3
90 Galang_Aldi_Ananta_Putra 83.5 80.5 79.5 77.0 79.0 86.5 78.5 85.5 79.5 85.5 5
91 Galang_Aldiyansah_Putra 82.5 78.5 77.0 77.5 78.5 82.0 73.5 83.0 78.5 81.0 2
92 Ghania_Hardiyanti 86.0 83.5 82.5 82.5 83.0 85.5 86.5 87.5 82.0 87.0 6
93 Ghea_Anzani_Siswanto 83.5 78.5 78.0 82.0 80.5 81.5 79.5 80.5 81.0 84.0 4
94 Gloria_Fransisca 81.0 79.0 80.5 80.5 83.0 80.5 79.5 84.5 80.0 85.0 5
95 Gufroni_Ahmadin_Naja 80.5 74.0 78.0 72.5 80.5 81.5 77.5 80.0 78.0 80.5 1
96 Hamida_Ulviana_Dewi 79.5 79.5 78.5 81.0 79.5 85.5 75.0 83.0 77.5 83.0 4
97 Handoko_Dimas_Wahyu_Nugroho 79.0 76.0 78.5 77.0 82.5 80.5 74.5 78.5 75.5 78.5 1
98 Handy_Miftakhul_Ullum 82.0 77.5 78.5 82.0 82.0 86.0 78.5 88.5 82.5 85.5 6
99 Hawa_Aurelia_Firdaus 81.0 75.5 78.0 80.0 83.0 83.5 77.5 85.0 79.5 82.5 4
100 Helsabrina_Faj'ri_Mahmuna 80.5 76.5 79.0 78.0 80.5 85.0 82.0 82.0 82.0 82.0 4
101 Hengky_Prasetyo 85.0 77.0 77.0 75.5 80.5 80.0 73.5 79.0 76.5 78.5 1
102 Hera_Junia_Purnamasari 80.0 82.0 79.5 77.0 80.0 87.5 78.0 86.0 81.5 86.5 5
103 Herlin_Faradila_Stifiana 78.5 78.5 79.0 80.0 81.5 81.0 80.5 83.0 80.0 82.5 4
104 Hesnanda_Azeema_Naswa_Krisnasekha 79.5 77.0 78.5 79.0 84.5 87.5 84.0 86.5 80.5 85.5 5
105 Hildan_Tri_Agustino 77.0 77.5 78.0 77.0 79.5 80.5 77.5 78.0 76.0 79.5 1
106 Indri_Julia_Dwi_Dianitami 81.0 76.5 80.0 77.0 81.0 83.0 79.5 83.5 82.5 86.0 4
107 Isna_Maulidiyah 83.5 76.5 77.5 77.0 78.5 80.5 77.5 80.0 74.5 79.5 1
108 Jhovani_Vina_Maharani 84.5 79.5 78.0 83.0 79.0 83.5 78.0 80.0 79.0 80.5 4
109 Jimi_Pranata 79.5 74.0 77.5 75.5 79.5 80.0 82.0 76.5 72.5 81.0 1
110 Johan_Satrio_Wicaksono 82.5 77.5 78.0 76.0 78.0 81.0 77.5 78.5 81.5 79.5 2
111 Kaiyla_Fera_Ayu_Moza 87.0 78.5 78.5 84.0 85.0 87.5 78.5 85.0 79.5 86.5 6
112 Karisma_Hardiyati_P._R. 80.5 79.5 78.0 78.5 80.5 81.0 78.0 78.5 79.5 79.5 3
113 Kellvi_Tiaska_Putri 78.0 77.5 77.5 79.5 80.0 83.0 76.5 81.0 80.5 80.5 3
114 Kevin_Arfian_Vidyanata 80.5 77.0 77.5 75.0 78.5 81.5 78.0 80.0 77.0 79.5 1
115 Kevin_Saputra 79.5 74.0 76.5 78.0 80.5 82.0 79.5 82.5 78.5 83.0 2
116 Keylla_Aulia_Renata 80.0 77.5 81.0 76.5 83.5 85.5 81.0 86.0 83.0 85.5 5
117 Kirana_Putri_Agustina 81.0 79.0 79.0 79.0 81.0 81.0 79.0 83.5 80.5 83.5 4
118 Kusuma_Faridatulliya 85.5 75.0 80.0 78.0 83.0 84.5 78.5 81.0 81.5 84.0 4
119 Lala_Putri_Meilita 77.5 78.0 78.5 79.0 82.0 84.5 81.5 82.5 80.0 85.5 4
120 Latifatul_Isma 83.0 82.0 77.0 80.5 81.0 85.0 86.5 86.0 79.0 86.5 6
121 Laudia_Vera_Agustin 81.0 75.0 78.5 81.0 83.5 81.5 79.5 83.5 81.0 87.0 5
122 Lia_Puspitasari 79.5 75.5 78.0 77.0 79.5 83.5 81.0 82.0 79.0 84.0 3
123 Lucky_Fabrio_Saputra 81.0 84.0 80.5 78.0 79.5 81.0 80.0 82.0 79.5 84.0 4
124 Lukman_Khakim_Noah 80.5 76.5 78.0 75.5 78.5 80.0 77.0 79.0 78.5 76.0 1
125 Luna_Aurelia_Romadhona_Putri 80.5 76.5 81.0 83.5 84.0 89.0 81.0 84.5 82.0 88.0 6
126 M._Alfin_Nur_Rahmad 80.0 84.0 78.5 85.0 78.5 83.0 79.5 86.0 81.5 81.0 6
127 M._Faris_Ardiyanto 75.0 76.0 76.0 76.0 78.5 84.5 73.5 77.5 77.5 76.0 1
128 M.deno_Bayu_Putra_Hardiansah 80.0 75.0 78.0 76.0 81.0 83.0 78.5 83.0 78.5 80.0 2
129 M.fahcri_Affan_Ramadhani 80.5 80.5 80.0 77.0 82.5 86.0 74.0 84.5 80.5 82.5 4
130 Maysa_Purwadinata 81.0 72.5 79.5 76.0 81.5 81.5 79.5 79.5 80.5 80.0 2
131 Medina_Putri_Febiani 81.0 77.5 79.5 81.0 84.5 84.5 79.0 85.0 82.5 83.5 5
132 Meirakha_Fernanda_Siswardhani 82.5 77.5 80.0 81.0 79.5 83.5 79.0 83.0 80.0 82.0 4
133 Meriyas_Eka_Anjani 85.5 77.0 78.0 81.0 83.0 81.0 74.0 82.5 83.0 85.5 5
134 Mexel_Farel_Erlangga 77.0 76.0 78.0 72.5 79.0 78.0 77.5 75.5 77.0 76.0 1
135 Mey_Lika_Hanaya_Putri 87.0 78.0 80.0 81.0 82.5 86.5 82.0 84.5 83.0 84.5 6
136 Moch._Febri_Nur_Hidayatullah 78.5 74.0 77.5 72.0 80.0 81.0 77.5 78.0 77.0 76.0 1
137 Moch._Galih_Nur_Hidayatullah 77.0 77.0 77.0 77.0 80.5 78.5 74.0 78.0 79.5 78.5 1
138 Moch.afga_Afreza_Alfiansyah 81.0 79.5 80.5 80.0 83.0 85.0 79.5 86.0 81.0 85.0 5
139 Mochamat_Agil_Desulton 81.5 74.0 77.5 77.0 81.0 81.0 78.5 79.0 78.0 78.5 2
140 Mochammad_Fahri_Nur_Rizky 82.5 79.5 83.0 81.5 80.5 82.5 85.5 86.0 82.0 87.0 6
141 Moh._Raditya_Haria_Nugraha 81.0 72.5 77.5 78.0 82.5 83.5 77.5 84.0 79.0 83.5 3
142 Moh._Rendi_Saputra 81.0 73.5 78.0 75.5 81.0 81.5 77.5 80.0 79.0 80.0 1
143 Mohamad_Bagus_Hermawan 78.0 73.5 77.0 74.0 80.0 81.0 77.5 73.5 79.0 79.0 1
144 Mohamad_Rizal_Permana_Putra 82.0 77.0 78.0 74.0 79.0 79.0 78.0 83.0 78.5 81.5 1
145 Mohammad_Iqbal_Hafidh_Amiruddin 82.5 76.5 78.0 75.5 78.5 80.5 77.5 77.5 76.0 81.0 1
146 Mohammad_Raihan_Nur_Fajri 81.0 77.0 76.0 80.0 81.0 82.5 73.5 81.0 80.5 81.0 3
147 Mohammad_Reno_Zainul_Pratama 81.5 72.5 77.5 75.0 79.0 84.0 77.5 73.5 81.5 81.0 1
148 Mohammad_Trio_Subekti 77.5 76.5 76.5 76.0 79.5 82.0 73.0 77.5 79.5 78.0 1
149 Muchamad_Jaohar_Firdaus 82.5 74.5 77.0 81.0 82.0 82.0 78.0 79.5 79.5 81.0 3
150 Muhamad_Rif'an_Mauludi 88.0 75.5 78.5 82.0 81.5 84.0 77.5 81.0 81.5 82.0 5
151 Muhammad_Asril_Daffa_Saputra 77.5 77.5 78.0 78.5 80.5 81.5 72.0 78.0 79.5 79.5 2
152 Muhammad_Khafid_Nuriyanto 89.5 80.5 81.0 81.5 78.5 82.5 81.5 86.0 81.0 87.5 6
153 Muhammad_Nur_Rahman_Sya'abibah 85.5 76.5 78.0 81.0 78.5 82.5 77.0 82.0 79.0 78.5 3
154 Muhammad_Rangga_Saputra 76.0 78.5 78.0 78.5 80.5 81.0 78.5 78.0 79.5 78.5 2
155 Muhammad_Rizky_Putra_Aditya 81.0 80.5 77.5 78.5 80.5 81.0 77.5 79.5 73.0 80.5 2
156 Muhammad_Safi' 82.0 77.0 78.0 79.0 80.0 81.5 77.5 79.5 81.5 79.5 3
157 Muhammad_Tegar_Prayuda 81.5 78.5 77.0 80.5 82.0 80.0 76.5 82.5 80.5 85.5 4
158 Muhammad_Zennuri 79.5 77.0 79.0 74.5 78.5 83.5 78.5 77.5 78.0 78.0 1
159 Nadya_Anandiva_Silvyani 81.0 82.5 81.0 81.0 81.5 85.5 80.0 87.5 82.5 85.5 6
160 Nafatria_Kirana 80.0 72.5 78.5 73.5 79.0 78.0 78.5 77.5 74.5 76.5 1
161 Nanang_Mariyanto 79.5 73.5 77.5 79.0 79.0 82.0 77.5 80.0 80.0 78.5 2
162 Nayaka_Sutomo 82.5 84.0 84.0 80.5 84.5 82.5 83.5 87.5 80.0 86.0 6
163 Naysilla_Dwi_Anggraini 88.0 78.0 78.0 80.0 81.5 79.5 79.5 83.5 81.0 84.5 4
164 Nezza_Maura_Putri_Agung 83.5 79.5 81.0 75.5 79.5 78.5 80.0 81.0 79.0 83.0 3
165 Nimas_Yayank_Putri_Prabowo 80.5 78.5 78.0 75.0 83.0 77.0 77.5 84.5 79.5 85.0 2
166 Novita_Eka_Ramandani 78.5 78.0 78.0 79.5 82.0 82.5 79.0 80.0 81.0 84.0 4
167 Nur_Aleeya_Afrina_Suwandi 83.5 79.5 80.5 83.5 83.0 84.0 84.0 89.0 81.5 87.0 6
168 Prima_Dyah_Novanda 85.0 80.5 81.5 81.0 83.0 82.0 83.5 86.5 77.5 85.5 6
169 Puja_Micky_Harianto 80.0 78.5 78.5 81.5 81.0 81.0 77.5 82.0 79.5 84.0 4
170 Putri_Adelia_Sari 81.0 77.5 78.0 80.0 80.5 84.5 80.0 85.5 82.5 82.0 5
171 Putri_Rahayu_Ningsih 79.5 79.5 79.5 79.5 84.0 80.0 79.5 80.0 80.0 85.5 4
172 Quennata_Gladis_Bilbina 86.0 78.5 78.0 80.5 82.5 86.0 79.5 79.5 82.0 81.5 5
173 Quinnsha_Launada_Wibowo 82.0 77.0 79.0 78.0 82.0 83.5 79.0 84.0 79.0 82.0 4
174 Rahardyan_Felix_Kurniawan_(kr) 81.5 77.0 81.0 80.0 83.0 87.0 78.5 85.5 80.0 85.0 5
175 Rahma_Goespiaputri_Ramadhani 84.5 77.0 78.0 81.5 80.0 82.5 80.0 84.0 80.0 83.5 5
176 Ramadhani_Silfi_Damaiyanti 80.0 77.5 78.0 78.5 80.5 86.5 78.0 82.0 81.5 81.0 4
177 Rangga_Galuh_Octa_Pradana 79.0 77.0 78.0 77.5 80.0 80.0 72.5 81.0 81.5 79.5 2
178 Rangga_Risqi_Bintang_S. 82.0 76.0 79.0 79.0 80.5 85.0 78.5 82.0 80.0 85.0 4
179 Rayhan_Aditya 81.5 80.5 81.0 81.5 80.0 81.5 80.5 88.0 81.0 88.0 6
180 Rehan_Dwi_Ferdiansyah 76.5 77.0 78.0 73.0 79.0 81.0 78.0 76.5 79.0 77.0 1
181 Rehan_Septa_Adi_Ramadhani 83.5 78.0 78.0 79.0 82.0 86.5 75.5 82.0 80.5 80.5 4
182 Renno_Ilham_Revaldo 85.5 73.5 77.5 79.0 81.0 82.5 77.5 83.5 79.5 82.0 3
183 Revinda_Wisca_Natalie 86.0 81.5 81.0 85.0 80.5 87.0 80.0 85.5 82.5 85.5 6
184 Rika_Nur_Fauziah 80.5 79.5 79.5 81.0 83.5 85.0 80.5 81.0 79.5 85.5 5
185 Rima_Dwi_Oktavia 79.5 77.5 78.0 76.0 80.0 79.5 78.0 80.0 80.0 81.0 2
186 Riska_Adelia_Dulrahman 80.5 73.0 71.5 71.5 77.0 79.5 77.5 71.0 77.0 72.5 1
187 Risma_Indira_Fernanda 89.0 77.0 78.5 83.5 83.0 84.0 81.5 84.5 76.5 85.5 6
188 Rizki_Andi_Pratama 85.5 79.5 80.5 81.0 81.5 83.0 84.5 86.0 82.0 86.0 6
189 Rizqi_Pangestu_Arsyadipura 84.5 84.0 81.5 82.0 81.0 79.5 83.5 88.0 81.5 87.0 6
190 Rohmatul_Fitria_Dewi 87.5 78.0 78.0 83.0 81.0 84.5 80.5 80.5 82.0 81.5 5
191 Roszhiana_Ramadhani 77.5 77.5 78.0 79.5 83.0 78.0 80.0 79.0 79.0 79.5 2
192 Sahal_Ahmad 82.0 84.0 82.5 80.0 79.0 80.0 80.0 81.0 82.0 84.5 5
193 Salfa_Aulia_Putri 81.0 76.5 77.0 82.0 80.5 81.5 77.5 79.0 79.5 79.5 3
194 Salsa_Laurintiya 81.0 78.5 79.0 78.0 81.0 78.5 77.0 82.0 79.0 80.5 3
195 Sandy_Dwi_Meilano 81.5 82.5 81.0 80.5 81.0 83.5 83.0 85.5 82.0 87.5 6
196 Santy_Nurahma_Agustya_Rani_Putri 78.0 78.0 78.0 78.5 83.0 77.5 77.5 78.0 76.5 80.5 2
197 Saputra_Seftian_Rahmatdhani 80.5 76.0 79.0 76.5 82.5 87.0 79.5 84.5 81.0 88.0 5
198 Satrio_Damar_Anggono 77.5 78.5 77.0 76.5 80.5 80.0 73.5 83.5 80.0 85.5 2
199 Selly_Novtiana_Waty 84.0 76.5 77.5 75.0 79.0 79.5 77.5 79.5 79.5 81.0 1
200 Septia_Ayu_Muliasih 77.5 76.5 77.5 74.5 79.5 80.5 77.5 77.0 76.0 79.5 1
201 Sera_Natalia 80.0 77.5 79.5 80.5 82.5 81.5 80.5 81.0 80.0 84.0 4
202 Shofiyyatul_El_Husna 87.5 78.5 79.0 80.5 79.0 77.5 82.0 83.5 81.5 83.5 4
203 Silvia_Novitasari 88.5 77.0 78.0 77.0 82.0 81.0 77.5 83.0 82.5 81.5 3
204 Singgih_Ferdy_Ananda 87.5 79.5 82.5 79.0 84.5 83.5 81.5 89.0 81.5 89.5 6
205 Siti_Apriliani_Khairunnisa 80.5 80.5 79.5 78.0 80.5 84.0 79.5 82.0 80.5 82.0 4
206 Siti_Aulia_Nur_Latifah 79.0 82.5 84.0 81.0 84.5 82.0 82.0 87.5 82.5 89.0 6
207 Siti_Dian_Rahmadani 79.5 72.5 78.5 74.5 79.5 83.0 78.5 75.0 77.5 82.0 1
208 Sujiati_Fitrianingsih 83.5 77.5 78.0 79.5 80.0 83.0 76.5 84.0 80.5 80.5 4
209 Surya_Mahadika 81.5 76.0 79.0 76.5 80.5 83.5 79.0 84.5 80.0 85.5 3
210 Susan_Amiliya_Khoirunisa 81.5 79.5 79.0 82.0 84.0 79.5 79.5 84.0 79.5 87.5 5
211 Syakela_Arifah_Azzahra 83.0 77.0 79.0 77.5 79.5 85.0 78.5 80.0 79.0 80.0 3
212 Tasya_Dwi_Oktavia 77.5 77.5 78.0 80.5 82.5 82.5 79.5 79.0 81.5 82.0 4
213 Tata_Agata_Afga_Pratama 81.5 78.0 77.5 74.5 80.5 78.5 75.0 78.5 81.0 79.5 1
214 Tegar_Krido_Wibowo 79.5 77.0 79.5 77.5 80.0 77.5 77.0 78.5 79.5 80.0 2
215 Tegar_Reka_Wijaya 82.0 79.5 79.5 81.0 82.5 83.5 81.5 84.0 82.0 86.5 6
216 Thalyta_Chelse_Olivia_Leovanny 86.5 74.5 80.0 80.0 84.0 82.0 79.5 84.5 83.0 83.5 5
217 Tio_Ainun_Romadhoni 81.5 76.5 76.5 79.0 78.5 81.5 77.0 80.0 79.5 80.0 2
218 Titin_Karunia_Putri 83.0 79.5 78.0 81.0 82.5 85.0 79.0 85.0 81.5 85.0 5
219 Tribuana_Reza_Fanani 82.0 76.0 80.0 80.0 80.5 82.5 79.0 84.5 76.0 82.5 4
220 Trisa_Adelia_Parera 83.5 78.0 78.5 79.5 82.5 84.0 77.5 84.0 80.5 84.0 5
221 Triyah_Bhuana 81.5 77.0 80.0 76.0 79.5 82.0 77.5 83.0 79.0 80.5 3
222 Ulfa_Kusuma_Dewi 84.5 75.0 78.5 78.0 82.0 81.0 77.5 80.0 81.5 82.0 3
223 Vandi_Aulia_Kadhafi 83.5 77.0 79.0 76.0 79.5 79.5 78.5 79.5 78.0 79.0 2
224 Vania_Ika_Melinda 80.5 79.5 79.5 80.5 81.0 80.5 82.0 84.0 79.0 83.5 5
225 Varisha_Anastasya 86.5 80.5 81.5 81.5 80.5 85.0 84.0 85.5 82.5 87.0 6
226 Viasya_Aqnia_Zela 82.0 77.0 79.5 78.0 83.5 83.5 79.5 86.0 79.5 83.0 4
227 Vrananda_Ricky_Saputra 77.5 77.0 79.0 78.0 80.5 78.5 72.0 79.0 81.5 78.5 2
228 Wahyu_Febrianti 83.0 77.0 80.5 83.5 84.5 88.5 79.5 86.5 83.5 89.5 6
229 Wahyu_Subastyan 79.5 73.5 79.0 74.0 80.0 81.5 78.5 74.0 76.0 78.5 1
230 Widya_Dwi_Astuti 79.5 77.5 79.0 80.5 80.5 81.5 76.0 79.0 80.5 80.5 3
231 Wildan_Yongga_Jodyatmika 82.5 72.5 78.5 78.0 79.0 81.5 77.5 77.0 82.0 81.0 2
232 Wisnu_Tirta_Kusuma 81.5 73.5 78.5 79.0 79.5 81.0 77.5 80.0 80.5 81.0 2
233 Yahya_Handika_Aditia 87.0 78.0 78.0 75.5 81.0 82.0 74.0 79.0 80.5 80.5 2
234 Yanuarycha_Putri_Rifda 82.0 73.5 79.0 77.0 81.5 80.0 78.5 80.5 82.0 82.5 3
235 Yohan_Arinugraha 86.5 83.5 83.5 84.0 85.0 81.0 81.0 90.0 84.0 90.0 6
236 Yuli_Evita_Wati 83.0 77.5 79.5 80.0 80.5 86.0 79.5 84.5 81.0 83.5 5
237 Yulia_Nur_Lismarita 80.5 77.5 78.0 80.5 81.0 80.0 80.5 83.0 77.5 83.0 3
238 Yuma_Erlangga 79.5 76.0 76.0 77.0 77.5 76.5 77.0 76.5 74.5 79.0 1
239 Zaneta_Ayu_Nur_Harsya 82.5 72.5 79.0 78.0 82.0 80.5 78.5 80.5 81.5 84.5 3
240 Zulfatul_Ilmi_Sa'adah 80.0 73.5 79.5 77.0 84.5 84.0 79.5 82.0 81.5 82.0 3
241 Zulia_Ulifatul_Mahmadah 81.5 78.5 79.0 75.0 79.5 81.0 78.5 81.0 80.0 82.0 2

0
data/paket_info.json Normal file
View File

View File

@ -0,0 +1,309 @@
{
"added": [
"Alfa Beta",
"Park sunghoon",
"Park Jongseong Enha",
"Ninik yuniarsih",
"Ahmad Adib Almuiz",
"Amin Ridho Sholikin",
"Arik Wisnu Pramuditiya",
"Brian Agung Pamungkas",
"Chesylya Adinnata Maylani",
"Dewi Marisah Manggar Retno",
"Dwi Andika",
"Dyah Ayu Pratiwi",
"Ermita Trisya Sari",
"Fika Nur Rohmah",
"Fino Andreyan Pratama",
"Fitri Yulita Sari",
"Frisa Agiel Kirania",
"Handoko Dimas Wahyu Nugroho",
"Keyla Chantika Devy Julieta",
"Latifatul Isma",
"M. Faris Ardiyanto",
"Meriyas Eka Anjani",
"Mitzy Aurora Azzahra",
"Moch. Galih Nur Hidayatullah",
"Mohammad Trio Subekti",
"Muhamad Rangga Aji Pratama",
"Nidda'ul Fijriah",
"Novita Eka Ramandani",
"Putri Rahayu Ningsih",
"Quennata Gladis Bilbina",
"Rizki Andi Pratama",
"Rizqi Pangestu Arsyadipura",
"Rohmatul Fitria Dewi",
"Satrio Damar Anggono",
"Shofiyyatul El Husna",
"Tegar Krido Wibowo",
"Tegar Reka Wijaya",
"Vania Ika Melinda",
"Zaraya Jelita Putri Ardina",
"Ahmad Maulana Rizky Aditya Wijaya",
"Alhasby Bachtiar",
"Aprilia Martalita Wibowo",
"Arshinta Marthalie Gunawan",
"Atadea Lie Intan Karina",
"Azzahra Dewi Natria",
"Bagus Rohman Maulana",
"Binti Yisha Zahra Futri",
"Chalista Ayunda Sukmaningtyas",
"Clara Balqis Putri Febrianti",
"Davin Yudha Pratama",
"Dian Noviyanti",
"Dwi Kevfri Kenata",
"Fahril Rahmad Tri Setyawan",
"Firstian Vidya Permana",
"Galang Aldiyansah Putra",
"Ghania Hardiyanti",
"Hamida Ulviana Dewi",
"Hengky Prasetyo",
"Kellvi Tiaska Putri",
"Kurniawan Dyo Tri Warsono",
"Mochamad Ardiansyah Saputra",
"Mochammad Yuda Aditia",
"Mohammad Raihan Nur Fajri",
"Muhammad Tegar Prayuda",
"Muhammad Zainal Asrofi",
"Nur Aleeya Afrina Suwandi",
"Prima Dyah Novanda",
"Rika Nur Fauziah",
"Satryo Gito Pratomo",
"Septian Daniarti Fitri Astutik",
"Suci Rahayu Saputri",
"Sujiati Fitrianingsih",
"Tata Agata Afga Pratama",
"Yahya Handika Aditia",
"Yulia Nur Lismarita",
"Aditya Rizky Romadhon",
"Aisyah Fidinna Rahmatika",
"Aldo Widodo",
"Alvino Surya Pratama",
"Alvinza Brian Saputra",
"Dhimas Pandu Wijaya",
"Fauziah Elsa Putri Purnomo",
"Feisal Wisnu Raditya",
"Fitriani Nurul Norhayati",
"Fivi Widyo Wati",
"Gloria Fransisca",
"Herlin Faradila Stifiana",
"Karisma Hardiyati P. R.",
"Kirana Putri Agustina",
"Lala Putri Meilita",
"M.fahcri Affan Ramadhani",
"Mey Lika Hanaya Putri",
"Moch.afga Afreza Alfiansyah",
"Mochammad Fahri Nur Rizky",
"Muhammad Asril Daffa Saputra",
"Nadya Anandiva Silvyani",
"Nendra Nur Febrian",
"Putri Adelia Sari",
"Ramadhani Silfi Damaiyanti",
"Rangga Galuh Octa Pradana",
"Rehan Septa Adi Ramadhani",
"Salsa Laurintiya",
"Salva Andika",
"Sandy Dwi Meilano",
"Sera Natalia",
"Tasya Dwi Oktavia",
"Varisha Anastasya",
"Vrananda Ricky Saputra",
"Widya Dwi Astuti",
"Agha Hisyam Al-haliim",
"Ahmad Rofi`an Saputra",
"Aldo Dwi Julianto",
"Alvi Sani",
"Aprilia Wahyuning Agustin",
"Arfian Setya Yusinda",
"Arga Wahyu Prasetyo",
"Athaya Angel Widodo",
"Bambang Dwi Sri Hatmoko",
"Bilqiz Namsya Prasesta",
"Bunga Damir Kalolong Sulai Manan",
"Chalisha Alqathrunnada Winsputri",
"Decha Navita Sari",
"Dina Aulia Salsabila Putri",
"Dyah Vivianti",
"Endang Rahayu Ningsih",
"Hildan Tri Agustino",
"Juliani Wati",
"Kaiyla Fera Ayu Moza",
"Mexel Farel Erlangga",
"Muhamad Fauzan Saputra",
"Muhammad Rangga Saputra",
"Muhammad Rizky Putra Aditya",
"Nayaka Sutomo",
"Naysilla Dwi Anggraini",
"Nimas Yayank Putri Prabowo",
"Puja Micky Harianto",
"Reva Aidilla Melani",
"Rivaldi Desta Akbar Pratama",
"Roszhiana Ramadhani",
"Santy Nurahma Agustya Rani Putri",
"Sindy Aulia Lestari",
"Singgih Ferdy Ananda",
"Susan Amiliya Khoirunisa",
"Trisa Adelia Parera",
"Yohan Arinugraha",
"Ana Ainus Sifa",
"Andini Rahmawati",
"Angga Jalu Arizona",
"Anggun Kartika Okta Novita",
"Aprian Mahardika",
"Arga Reyhandika Pratama",
"Awwalun Firdausi",
"Della Dwi Pratiwi",
"Dhafa Brillyan Gustafianto",
"Dinda Windy Oktaviona",
"Erlang Danendra Ari Putra",
"Gabriel Desja Alexsyata",
"Ghea Anzani Siswanto",
"Hera Junia Purnamasari",
"Isna Maulidiyah",
"Johan Satrio Wicaksono",
"Juliana Wita",
"Lucky Fabrio Saputra",
"Lukman Khakim Noah",
"Meirakha Fernanda Siswardhani",
"Mohamad Rifa'i Wijayanto",
"Mohammad Iqbal Hafidh Amiruddin",
"Muhammad Nur Rahman Sya'abibah",
"Nashwa Mentari Yuwana Putri",
"Nezza Maura Putri Agung",
"Revinda Wisca Natalie",
"Sahal Ahmad",
"Salfa Aulia Putri",
"Selly Novtiana Waty",
"Septia Ayu Muliasih",
"Shafa Ayunda Putri",
"Shifa Khayyuna Qisthi",
"Siti Apriliani Khairunnisa",
"Siti Aulia Nur Latifah",
"Tio Ainun Romadhoni",
"Yuma Erlangga",
"Abid Fadlih Hafiyyah Faza",
"Adinda Dhea Ochtavyana",
"Ahmad Risky Maskur",
"Ahmad Rizal Hanafi",
"Ahmad Rizky Wijaya",
"Alfiani Mayasari",
"Ardan Pradipta",
"Arya Erlangga Tino Putra",
"Azka Febita Zalfianty",
"Bunga Alikasari",
"Cantika Oktavia Nurfitri Mardiani",
"Chiko Bonanza Cavan Putra",
"Dhea Ayu Permatasari",
"Galang Aldi Ananta Putra",
"Jefana Dwi Jayanti",
"Jhovani Vina Maharani",
"Keiza Olivia Witari",
"Kevin Arfian Vidyanata",
"M. Alfin Nur Rahmad",
"Marsha Syifa' Setiawati",
"Mochammad Rifky Febri Nur Rohman",
"Mohamad Rizal Permana Putra",
"Muhammad Gara Imam Arifin",
"Muhammad Khafid Nuriyanto",
"Muhammad Zennuri",
"Rahma Goespiaputri Ramadhani",
"Rayhan Aditya",
"Rehan Dwi Ferdiansyah",
"Rima Dwi Oktavia",
"Riska Adelia Dulrahman",
"Syakela Arifah Azzahra",
"Titin Karunia Putri",
"Vandi Aulia Kadhafi",
"Yuli Evita Wati",
"Zulia Ulifatul Mahmadah",
"Ameliya Putri Mentari",
"Andika Bayu Abriansyah",
"Azmi Halim",
"Bambang Adi Pramana",
"Bryan Maulana Wibiantoro",
"Dharisman Bagus Prastowo",
"Ella Syahra Agustin",
"Febian Dwi Andika",
"Hawa Aurelia Firdaus",
"Indri Julia Dwi Dianitami",
"Kusuma Faridatulliya",
"Laudia Vera Agustin",
"M.deno Bayu Putra Hardiansah",
"Moch. Febri Nur Hidayatullah",
"Mochamat Agil Desulton",
"Moh. Rendi Saputra",
"Mohamad Bagus Hermawan",
"Muchamad Jaohar Firdaus",
"Muhamad Rif'an Mauludi",
"Muhammad Safi'",
"Rendi Prastyo Aditama",
"Renno Ilham Revaldo",
"Risma Indira Fernanda",
"Safina Ismafatul Roida",
"Silvia Novitasari",
"Sonya Aulia Dewi",
"Talita Bella Safira",
"Thalyta Chelse Olivia Leovanny",
"Ulfa Kusuma Dewi",
"Wahyu Subastyan",
"Yanuarycha Putri Rifda",
"Zulfatul Ilmi Sa'adah",
"Abel Senja Agma Subroto",
"Ahmad Fauzan Maulana Ibrahim",
"Amin Ridho Shobirin",
"Andika Nugrahatama",
"Aprilliana Cahaya Puspita",
"Aulia Dwi Suci Cahyani",
"Bilqis Syafiah Ahmad",
"Danendra Zahran Qurunul Bahri",
"Dania Ismatul Maula",
"Diva Maulidiya",
"Gufroni Ahmadin Naja",
"Handy Miftakhul Ullum",
"Kharizma Putri Prilia",
"Laela Indriani",
"M. Zeka Azfar Pahlawan",
"Maysa Purwadinata",
"Medina Putri Febiani",
"Moh. Raditya Haria Nugraha",
"Mohammad Reno Zainul Pratama",
"Muhamad Kafil Lubawi",
"Nafatria Kirana",
"Nanang Mariyanto",
"Quinnsha Launada Wibowo",
"Rahardyan Felix Kurniawan (kr)",
"Rangga Risqi Bintang S.",
"Saputra Seftian Rahmatdhani",
"Siti Dian Rahmadani",
"Surya Mahadika",
"Tribuana Reza Fanani",
"Triyah Bhuana",
"Viasya Aqnia Zela",
"Wahyu Febrianti",
"Wildan Yongga Jodyatmika",
"Wisnu Tirta Kusuma",
"Zaneta Ayu Nur Harsya",
"Ahmad Dodik Pratama",
"Ahmad Pramuja",
"Aprita Nur Aini",
"Ardian Rama Budi Kusuma",
"Arrasha Raditya Andani",
"Bayu Ananta Julian Wicaksono",
"Cahya Sasadara",
"Dimas Ragil Saputra",
"Dwi Ka Fauzian Maulana Ikhsan",
"Dwi Nurida Syifa",
"Fibriana Fira Rahmawati",
"Helsabrina Faj'ri Mahmuna",
"Hesnanda Azeema Naswa Krisnasekha",
"Irma Rahayu",
"Jimi Pranata",
"Kevin Saputra",
"Keylla Aulia Renata",
"Lia Puspitasari",
"Luna Aurelia Romadhona Putri",
"Moch. Rangga Ardiyansah",
"Moh. Krisna Hendra Gunawan"
],
"deleted": []
}

303
db/database.py Normal file
View File

@ -0,0 +1,303 @@
import hashlib
def hash_password(password):
"""Hash password dengan SHA-256."""
return hashlib.sha256(password.encode('utf-8')).hexdigest()
def register_admin(username, password):
"""
Tambah admin baru ke tabel admin. Password akan di-hash.
Akan melempar Exception jika username sudah ada.
"""
password_hash = hash_password(password)
with get_connection() as conn:
cur = conn.cursor()
cur.execute("INSERT INTO admin (username, password_hash) VALUES (%s, %s)", (username, password_hash))
conn.commit()
def verify_admin_login(username, password):
"""
Verifikasi login admin. Return True jika username & password cocok, else False.
"""
password_hash = hash_password(password)
with get_connection() as conn:
cur = conn.cursor()
cur.execute("SELECT id FROM admin WHERE username = %s AND password_hash = %s", (username, password_hash))
result = cur.fetchone()
return result is not None
def verify_admin_login_detail(username, password):
"""
Verifikasi login admin dengan status detail.
Return salah satu dari:
- 'success'
- 'username_not_found'
- 'wrong_password'
- 'wrong_username_and_password'
"""
input_password_hash = hash_password(password)
with get_connection() as conn:
cur = conn.cursor()
cur.execute("SELECT password_hash FROM admin WHERE username = %s", (username,))
result = cur.fetchone()
if result is None:
cur.execute("SELECT id FROM admin WHERE password_hash = %s", (input_password_hash,))
password_match = cur.fetchone()
if password_match is not None:
return 'username_not_found'
return 'wrong_username_and_password'
stored_hash = result[0]
if stored_hash != input_password_hash:
return 'wrong_password'
return 'success'
import psycopg2
from contextlib import contextmanager
DB_CONFIG = {
'host': 'localhost',
'database': 'db_klasifikasi',
'user': 'postgres',
'password': 'admin'
}
@contextmanager
def get_connection():
"""
Context manager untuk koneksi database PostgreSQL.
Otomatis menutup koneksi setelah digunakan.
Akan melempar Exception jika gagal koneksi.
"""
conn = None
try:
conn = psycopg2.connect(**DB_CONFIG)
yield conn
except psycopg2.Error as e:
raise Exception(f"Gagal koneksi database: {e}")
finally:
if conn:
conn.close()
def test_connection():
"""Cek koneksi ke database, return True jika sukses, False jika gagal."""
try:
with get_connection() as conn:
cur = conn.cursor()
cur.execute("SELECT 1")
return True
except Exception:
return False
# untuk simpan hasil prediksi
def simpan_hasil_prediksi(nama, nilai_dict, paket_prediksi):
with get_connection() as conn:
cur = conn.cursor()
sql = """
INSERT INTO hasil_prediksi (
nama_siswa,
nilai_informatika_sem1, nilai_informatika_sem2, nilai_informatika,
nilai_fisika_sem1, nilai_fisika_sem2, nilai_fisika,
nilai_kimia_sem1, nilai_kimia_sem2, nilai_kimia,
nilai_biologi_sem1, nilai_biologi_sem2, nilai_biologi,
nilai_big_lanjut_sem1, nilai_big_lanjut_sem2, nilai_big_lanjut,
nilai_ekonomi_sem1, nilai_ekonomi_sem2, nilai_ekonomi,
nilai_mat_lanjut_sem1, nilai_mat_lanjut_sem2, nilai_mat_lanjut,
nilai_sej_lanjut_sem1, nilai_sej_lanjut_sem2, nilai_sej_lanjut,
nilai_sosiologi_sem1, nilai_sosiologi_sem2, nilai_sosiologi,
nilai_geografi_sem1, nilai_geografi_sem2, nilai_geografi,
paket_prediksi
) VALUES (
%s,
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s
)
"""
values = (
str(nama),
# Informatika
float(nilai_dict.get('nilai_informatika_sem1', 0)),
float(nilai_dict.get('nilai_informatika_sem2', 0)),
float(nilai_dict.get('nilai_informatika', 0)),
# Fisika
float(nilai_dict.get('nilai_fisika_sem1', 0)),
float(nilai_dict.get('nilai_fisika_sem2', 0)),
float(nilai_dict.get('nilai_fisika', 0)),
# Kimia
float(nilai_dict.get('nilai_kimia_sem1', 0)),
float(nilai_dict.get('nilai_kimia_sem2', 0)),
float(nilai_dict.get('nilai_kimia', 0)),
# Biologi
float(nilai_dict.get('nilai_biologi_sem1', 0)),
float(nilai_dict.get('nilai_biologi_sem2', 0)),
float(nilai_dict.get('nilai_biologi', 0)),
# BIG Lanjut
float(nilai_dict.get('nilai_big_lanjut_sem1', 0)),
float(nilai_dict.get('nilai_big_lanjut_sem2', 0)),
float(nilai_dict.get('nilai_big_lanjut', 0)),
# Ekonomi
float(nilai_dict.get('nilai_ekonomi_sem1', 0)),
float(nilai_dict.get('nilai_ekonomi_sem2', 0)),
float(nilai_dict.get('nilai_ekonomi', 0)),
# MAT Lanjut
float(nilai_dict.get('nilai_mat_lanjut_sem1', 0)),
float(nilai_dict.get('nilai_mat_lanjut_sem2', 0)),
float(nilai_dict.get('nilai_mat_lanjut', 0)),
# SEJ Lanjut
float(nilai_dict.get('nilai_sej_lanjut_sem1', 0)),
float(nilai_dict.get('nilai_sej_lanjut_sem2', 0)),
float(nilai_dict.get('nilai_sej_lanjut', 0)),
# Sosiologi
float(nilai_dict.get('nilai_sosiologi_sem1', 0)),
float(nilai_dict.get('nilai_sosiologi_sem2', 0)),
float(nilai_dict.get('nilai_sosiologi', 0)),
# Geografi
float(nilai_dict.get('nilai_geografi_sem1', 0)),
float(nilai_dict.get('nilai_geografi_sem2', 0)),
float(nilai_dict.get('nilai_geografi', 0)),
int(paket_prediksi)
)
cur.execute(sql, values)
conn.commit() #membuat data masuk ke database
def ambil_semua_hasil_prediksi():
"""
Ambil semua data hasil prediksi dari tabel hasil_prediksi.
Return: list of dict.
"""
with get_connection() as conn:
cur = conn.cursor()
sql = "SELECT * FROM hasil_prediksi ORDER BY id DESC"
cur.execute(sql)
columns = [desc[0] for desc in cur.description]
rows = cur.fetchall()
return [dict(zip(columns, row)) for row in rows]
#untuk update hasil prediksi di database berdasarkan id.
def update_hasil_prediksi(id, nama, nilai_dict, paket_prediksi):
with get_connection() as conn:
cur = conn.cursor()
sql = """
UPDATE hasil_prediksi SET
nama_siswa = %s,
nilai_informatika_sem1 = %s, nilai_informatika_sem2 = %s, nilai_informatika = %s,
nilai_fisika_sem1 = %s, nilai_fisika_sem2 = %s, nilai_fisika = %s,
nilai_kimia_sem1 = %s, nilai_kimia_sem2 = %s, nilai_kimia = %s,
nilai_biologi_sem1 = %s, nilai_biologi_sem2 = %s, nilai_biologi = %s,
nilai_big_lanjut_sem1 = %s, nilai_big_lanjut_sem2 = %s, nilai_big_lanjut = %s,
nilai_ekonomi_sem1 = %s, nilai_ekonomi_sem2 = %s, nilai_ekonomi = %s,
nilai_mat_lanjut_sem1 = %s, nilai_mat_lanjut_sem2 = %s, nilai_mat_lanjut = %s,
nilai_sej_lanjut_sem1 = %s, nilai_sej_lanjut_sem2 = %s, nilai_sej_lanjut = %s,
nilai_sosiologi_sem1 = %s, nilai_sosiologi_sem2 = %s, nilai_sosiologi = %s,
nilai_geografi_sem1 = %s, nilai_geografi_sem2 = %s, nilai_geografi = %s,
paket_prediksi = %s
WHERE id = %s
"""
values = (
str(nama),
# Informatika
float(nilai_dict.get('nilai_informatika_sem1', 0)),
float(nilai_dict.get('nilai_informatika_sem2', 0)),
float(nilai_dict.get('nilai_informatika', 0)),
# Fisika
float(nilai_dict.get('nilai_fisika_sem1', 0)),
float(nilai_dict.get('nilai_fisika_sem2', 0)),
float(nilai_dict.get('nilai_fisika', 0)),
# Kimia
float(nilai_dict.get('nilai_kimia_sem1', 0)),
float(nilai_dict.get('nilai_kimia_sem2', 0)),
float(nilai_dict.get('nilai_kimia', 0)),
# Biologi
float(nilai_dict.get('nilai_biologi_sem1', 0)),
float(nilai_dict.get('nilai_biologi_sem2', 0)),
float(nilai_dict.get('nilai_biologi', 0)),
# BIG Lanjut
float(nilai_dict.get('nilai_big_lanjut_sem1', 0)),
float(nilai_dict.get('nilai_big_lanjut_sem2', 0)),
float(nilai_dict.get('nilai_big_lanjut', 0)),
# Ekonomi
float(nilai_dict.get('nilai_ekonomi_sem1', 0)),
float(nilai_dict.get('nilai_ekonomi_sem2', 0)),
float(nilai_dict.get('nilai_ekonomi', 0)),
# MAT Lanjut
float(nilai_dict.get('nilai_mat_lanjut_sem1', 0)),
float(nilai_dict.get('nilai_mat_lanjut_sem2', 0)),
float(nilai_dict.get('nilai_mat_lanjut', 0)),
# SEJ Lanjut
float(nilai_dict.get('nilai_sej_lanjut_sem1', 0)),
float(nilai_dict.get('nilai_sej_lanjut_sem2', 0)),
float(nilai_dict.get('nilai_sej_lanjut', 0)),
# Sosiologi
float(nilai_dict.get('nilai_sosiologi_sem1', 0)),
float(nilai_dict.get('nilai_sosiologi_sem2', 0)),
float(nilai_dict.get('nilai_sosiologi', 0)),
# Geografi
float(nilai_dict.get('nilai_geografi_sem1', 0)),
float(nilai_dict.get('nilai_geografi_sem2', 0)),
float(nilai_dict.get('nilai_geografi', 0)),
int(paket_prediksi),
int(id)
)
cur.execute(sql, values)
conn.commit()
def hapus_hasil_prediksi(id):
"""
Hapus data hasil prediksi berdasarkan id.
Akan melempar Exception jika data tidak ditemukan.
"""
with get_connection() as conn:
cur = conn.cursor()
sql = "DELETE FROM hasil_prediksi WHERE id = %s"
cur.execute(sql, (int(id),))
if cur.rowcount == 0:
raise Exception(f"Data dengan ID {id} tidak ditemukan")
conn.commit()
def backup_database(backup_path):
"""
Backup seluruh data hasil_prediksi ke file CSV.
Return True jika sukses, False jika gagal.
"""
try:
data = ambil_semua_hasil_prediksi()
import pandas as pd
df = pd.DataFrame(data)
df.to_csv(backup_path, index=False)
return True
except Exception:
return False
def get_statistics():
"""
Ambil statistik ringkas dari tabel hasil_prediksi.
Return dict statistik atau None jika gagal.
"""
try:
with get_connection() as conn:
cur = conn.cursor()
cur.execute("SELECT COUNT(*) FROM hasil_prediksi")
total_siswa = cur.fetchone()[0]
cur.execute("""
SELECT paket_prediksi, COUNT(*) as jumlah
FROM hasil_prediksi
GROUP BY paket_prediksi
ORDER BY paket_prediksi
""")
distribusi_paket = cur.fetchall()
cur.execute("""
SELECT
AVG(nilai_informatika), AVG(nilai_fisika), AVG(nilai_kimia), AVG(nilai_biologi),
AVG(nilai_big_lanjut), AVG(nilai_ekonomi), AVG(nilai_mat_lanjut), AVG(nilai_sej_lanjut),
AVG(nilai_sosiologi), AVG(nilai_geografi)
FROM hasil_prediksi
""")
avg_nilai = cur.fetchone()
return {
'total_siswa': total_siswa,
'distribusi_paket': distribusi_paket,
'rata_rata_nilai': avg_nilai
}
except Exception:
return None

59
db/schema.sql Normal file
View File

@ -0,0 +1,59 @@
-- Schema database untuk Sistem Klasifikasi Jurusan Siswa
-- Jalankan file ini di database: db_klasifikasi
CREATE TABLE IF NOT EXISTS admin (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password_hash VARCHAR(64) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS hasil_prediksi (
id SERIAL PRIMARY KEY,
nama_siswa VARCHAR(100) NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Informatika
nilai_informatika_sem1 DOUBLE PRECISION,
nilai_informatika_sem2 DOUBLE PRECISION,
nilai_informatika DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Fisika
nilai_fisika_sem1 DOUBLE PRECISION,
nilai_fisika_sem2 DOUBLE PRECISION,
nilai_fisika DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Kimia
nilai_kimia_sem1 DOUBLE PRECISION,
nilai_kimia_sem2 DOUBLE PRECISION,
nilai_kimia DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Biologi
nilai_biologi_sem1 DOUBLE PRECISION,
nilai_biologi_sem2 DOUBLE PRECISION,
nilai_biologi DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk BIG Lanjut
nilai_big_lanjut_sem1 DOUBLE PRECISION,
nilai_big_lanjut_sem2 DOUBLE PRECISION,
nilai_big_lanjut DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Ekonomi
nilai_ekonomi_sem1 DOUBLE PRECISION,
nilai_ekonomi_sem2 DOUBLE PRECISION,
nilai_ekonomi DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk MAT Lanjut
nilai_mat_lanjut_sem1 DOUBLE PRECISION,
nilai_mat_lanjut_sem2 DOUBLE PRECISION,
nilai_mat_lanjut DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk SEJ Lanjut
nilai_sej_lanjut_sem1 DOUBLE PRECISION,
nilai_sej_lanjut_sem2 DOUBLE PRECISION,
nilai_sej_lanjut DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Sosiologi
nilai_sosiologi_sem1 DOUBLE PRECISION,
nilai_sosiologi_sem2 DOUBLE PRECISION,
nilai_sosiologi DOUBLE PRECISION NOT NULL,
-- Kolom Semester 1, 2, dan Rata-rata untuk Geografi
nilai_geografi_sem1 DOUBLE PRECISION,
nilai_geografi_sem2 DOUBLE PRECISION,
nilai_geografi DOUBLE PRECISION NOT NULL,
paket_prediksi INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_hasil_prediksi_nama ON hasil_prediksi (nama_siswa);
CREATE INDEX IF NOT EXISTS idx_hasil_prediksi_paket ON hasil_prediksi (paket_prediksi);

1366
gui/custom_notifications.py Normal file

File diff suppressed because it is too large Load Diff

309
gui/login_dialog.py Normal file
View File

@ -0,0 +1,309 @@
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox, QApplication, QSizePolicy
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
import os
from db.database import verify_admin_login_detail
from gui.register_dialog import RegisterDialog
from gui.custom_notifications import CustomNotificationDialog
import config
class LoginDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle('Login')
# Ensure this dialog is a real top-level window so taskbar uses app icon.
self.setWindowFlags((self.windowFlags() | Qt.Window) & ~Qt.WindowContextHelpButtonHint | Qt.WindowMinimizeButtonHint)
icon_path = config.get_app_icon_path()
if icon_path:
self.setWindowIcon(QIcon(icon_path))
self._apply_responsive_size(600, 420)
if icon_path:
self.setWindowIcon(QIcon(icon_path))
# Set background color
self.setStyleSheet("QDialog { background-color: #fafafa; }")
# Main layout
layout = QVBoxLayout()
layout.setContentsMargins(40, 40, 40, 40)
layout.setSpacing(5)
# Title
title = QLabel('Sistem Klasifikasi Jurusan')
title.setStyleSheet("font-size: 28px; font-weight: bold; color: #1a202c; margin-bottom: 5px; margin-top: 0px; font-family: 'Segoe UI', Arial, sans-serif;")
title.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
title.setWordWrap(True)
layout.addWidget(title)
subtitle = QLabel('Login ke akun Anda')
subtitle.setStyleSheet("font-size: 18px; color: #4a5568; margin-bottom: 30px; font-family: 'Segoe UI', Arial, sans-serif;")
subtitle.setAlignment(Qt.AlignCenter)
layout.addWidget(subtitle)
# Username
self.label_user = QLabel('Username')
self.label_user.setStyleSheet("font-size: 18px; color: #2d3748; font-weight: bold; margin-bottom: 0px; font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.label_user)
self.input_user = QLineEdit()
self.input_user.setFixedHeight(64)
self.input_user.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.input_user.setPlaceholderText('Masukkan username')
self.input_user.setStyleSheet("font-size: 20px; padding: 0px 12px; margin-bottom: 20px; color: #2d3748; background-color: white; border: 1px solid #e2e8f0; border-radius: 6px; font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.input_user)
# Password
self.label_pass = QLabel('Password')
self.label_pass.setStyleSheet("font-size: 18px; color: #2d3748; font-weight: bold; margin-bottom: 0px; font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.label_pass)
# Password container with toggle button
password_container = QHBoxLayout()
password_container.setSpacing(0)
password_container.setContentsMargins(0, 0, 0, 0)
self.input_pass = QLineEdit()
self.input_pass.setFixedHeight(74)
self.input_pass.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.input_pass.setMinimumWidth(0)
self.input_pass.setPlaceholderText('Masukkan password')
self.input_pass.setEchoMode(QLineEdit.Password)
self.input_pass.setStyleSheet("font-size: 20px; padding: 0px 12px; color: #2d3748; background-color: white; border: 1px solid #e2e8f0; border-top-left-radius: 6px; border-bottom-left-radius: 6px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-right: none; font-family: 'Segoe UI', Arial, sans-serif;")
self.btn_toggle_pass = QPushButton('👁')
self.btn_toggle_pass.setFixedSize(74, 74)
self.btn_toggle_pass.setStyleSheet("""
QPushButton {
font-size: 18px;
border: 1px solid #e2e8f0;
border-left: none;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
background-color: white;
color: #718096;
font-family: 'Segoe UI', Arial, sans-serif;
}
QPushButton:hover {
background-color: #f7fafc;
color: #4a5568;
}
QPushButton:pressed {
background-color: #edf2f7;
}
""")
self.btn_toggle_pass.setCursor(Qt.PointingHandCursor)
self.btn_toggle_pass.clicked.connect(self.toggle_password_visibility)
self.password_visible = False
password_container.addWidget(self.input_pass)
password_container.addWidget(self.btn_toggle_pass)
password_container.setStretch(0, 1)
from PyQt5.QtWidgets import QWidget
self.password_widget = QWidget()
self.password_widget.setLayout(password_container)
self.password_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.password_widget.setMinimumWidth(0)
self.password_widget.setMaximumWidth(16777215)
self.password_widget.setStyleSheet("margin-bottom: 30px;")
layout.addWidget(self.password_widget)
# Login button
self.btn_login = QPushButton('Login')
self.btn_login.setFixedHeight(60)
self.btn_login.setCursor(Qt.PointingHandCursor)
self.btn_login.setStyleSheet("""
QPushButton {
font-size: 18px;
font-weight: bold;
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #667eea, stop:1 #764ba2);
color: white;
border: none;
border-radius: 6px;
margin-bottom: 20px;
font-family: 'Segoe UI', Arial, sans-serif;
}
QPushButton:hover {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #5568d3, stop:1 #6a3b91);
}
QPushButton:pressed {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #4a5abc, stop:1 #5a3080);
}
""")
self.btn_login.clicked.connect(self.handle_login)
layout.addWidget(self.btn_login)
# Register link container
register_container = QHBoxLayout()
register_container.setContentsMargins(0, 0, 0, 0)
register_container.setSpacing(5)
register_container.addStretch() # Center the content
# Normal text part
self.label_register_text = QLabel('Belum punya akun?')
self.label_register_text.setStyleSheet("""
QLabel {
font-size: 16px;
color: #4a5568;
background-color: transparent;
font-family: 'Segoe UI', Arial, sans-serif;
}
""")
register_container.addWidget(self.label_register_text)
# Clickable register link
self.btn_register = QPushButton('Register disini')
self.btn_register.setFixedHeight(36)
self.btn_register.setStyleSheet("""
QPushButton {
font-size: 16px;
font-weight: bold;
color: #667eea;
background-color: transparent;
border: none;
text-decoration: underline;
font-family: 'Segoe UI', Arial, sans-serif;
}
QPushButton:hover {
color: #764ba2;
}
""")
self.btn_register.clicked.connect(self.show_register_dialog) # Menghubungkan tombol Register dengan dialog registrasi
self.btn_register.setCursor(Qt.PointingHandCursor)
register_container.addWidget(self.btn_register)
register_container.addStretch() # Center the content
register_widget = QWidget()
register_widget.setLayout(register_container)
layout.addWidget(register_widget)
# Enter key triggers login
self.input_user.returnPressed.connect(self.handle_login)
self.input_pass.returnPressed.connect(self.handle_login)
self.setLayout(layout)
self.login_success = False
self.username = None
self._went_to_register = False
self.should_show_register = False # Flag untuk menunjukkan bahwa user ingin ke halaman register
self._sync_password_row_width()
self._native_icon_applied = False
def _apply_native_windows_icon(self):
"""Set native HWND icons to avoid default taskbar icon on first window show."""
if os.name != 'nt':
return
icon_path = config.get_app_icon_path()
if not icon_path or not os.path.exists(icon_path):
return
try:
import ctypes
WM_SETICON = 0x0080
ICON_SMALL = 0
ICON_BIG = 1
IMAGE_ICON = 1
LR_LOADFROMFILE = 0x0010
LR_DEFAULTSIZE = 0x0040
hicon = ctypes.windll.user32.LoadImageW(
None,
icon_path,
IMAGE_ICON,
0,
0,
LR_LOADFROMFILE | LR_DEFAULTSIZE,
)
if hicon:
hwnd = int(self.winId())
ctypes.windll.user32.SendMessageW(hwnd, WM_SETICON, ICON_SMALL, hicon)
ctypes.windll.user32.SendMessageW(hwnd, WM_SETICON, ICON_BIG, hicon)
except Exception:
pass
def showEvent(self, event):
super().showEvent(event)
if not self._native_icon_applied:
self._apply_native_windows_icon()
self._native_icon_applied = True
def _apply_responsive_size(self, base_width, base_height):
"""Apply fixed size that adapts for smaller screens."""
screen = QApplication.primaryScreen()
if not screen:
self.setFixedSize(base_width, base_height)
return
available = screen.availableGeometry()
width = min(base_width, max(520, int(available.width() * 0.90)))
height = min(base_height, max(380, int(available.height() * 0.85)))
self.setFixedSize(width, height)
def _sync_password_row_width(self):
"""Keep password row width exactly aligned with username input."""
if hasattr(self, 'input_user') and hasattr(self, 'password_widget'):
self.password_widget.setFixedWidth(self.input_user.width())
def resizeEvent(self, event):
super().resizeEvent(event)
self._sync_password_row_width()
#sembunyikan/tampilkan password
def toggle_password_visibility(self):
"""Toggle password visibility"""
if self.password_visible:
self.input_pass.setEchoMode(QLineEdit.Password)
self.password_visible = False
else:
self.input_pass.setEchoMode(QLineEdit.Normal)
self.password_visible = True
#proses ambil data input
def handle_login(self):
username = self.input_user.text().strip()
password = self.input_pass.text()
if not username or not password:
CustomNotificationDialog.show_warning(self, 'Warning!', 'Username dan password harus diisi!', 'OK', compact=True)
return
login_status = verify_admin_login_detail(username, password)
if login_status == 'success':
self.login_success = True
self.username = username
CustomNotificationDialog.show_success(self, 'Login Berhasil!', f'Selamat datang, {username}!', 'Lanjutkan', compact=True)
self.accept()
elif login_status == 'username_not_found':
CustomNotificationDialog.show_error(self, 'Login Gagal!', 'Username tidak terdaftar!', 'Coba Lagi', compact=True)
self.input_user.setFocus()
elif login_status == 'wrong_password':
CustomNotificationDialog.show_error(self, 'Login Gagal!', 'Password yang dimasukkan salah!', 'Coba Lagi', compact=True)
self.input_pass.setFocus()
elif login_status == 'wrong_username_and_password':
CustomNotificationDialog.show_error(self, 'Login Gagal!', 'Username dan password salah!', 'Coba Lagi', compact=True)
self.input_user.setFocus()
else:
CustomNotificationDialog.show_error(self, 'Login Gagal!', 'Terjadi kesalahan saat proses login.', 'Coba Lagi', compact=True)
self.input_user.setFocus()
def clear_form(self):
"""Clear all input fields in the login form"""
self.input_user.clear()
self.input_pass.clear()
# Reset password visibility
if self.password_visible:
self.input_pass.setEchoMode(QLineEdit.Password)
self.password_visible = False
self.btn_toggle_pass.setText('👁')
# Set focus to username field
self.input_user.setFocus()
def show_register_dialog(self):
"""Tutup login dialog dan set flag untuk menampilkan register dialog"""
self.should_show_register = True
self.reject()

4507
gui/main_window.py Normal file

File diff suppressed because it is too large Load Diff

392
gui/register_dialog.py Normal file
View File

@ -0,0 +1,392 @@
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox, QWidget, QApplication
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
import os
from db.database import register_admin
from gui.custom_notifications import CustomNotificationDialog
import config
class RegisterDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle('Register')
# Ensure this dialog is a real top-level window so taskbar uses app icon.
self.setWindowFlags((self.windowFlags() | Qt.Window) & ~Qt.WindowContextHelpButtonHint | Qt.WindowMinimizeButtonHint)
icon_path = config.get_app_icon_path()
if icon_path:
self.setWindowIcon(QIcon(icon_path))
self._apply_responsive_size(600, 500)
if icon_path:
self.setWindowIcon(QIcon(icon_path))
# Set background color
self.setStyleSheet("QDialog { background-color: #fafafa; }")
# Main layout
layout = QVBoxLayout()
layout.setContentsMargins(40, 40, 40, 40)
layout.setSpacing(5)
# Title
title = QLabel('Sistem Klasifikasi Jurusan')
title.setStyleSheet("font-size: 28px; font-weight: bold; color: #1a202c; margin-bottom: 5px; margin-top: 0px;font-family: 'Segoe UI', Arial, sans-serif;")
title.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
title.setWordWrap(True)
layout.addWidget(title)
subtitle = QLabel('Registrasi Akun Baru')
subtitle.setStyleSheet("font-size: 18px; color: #4a5568; margin-bottom: 30px;font-family: 'Segoe UI', Arial, sans-serif;")
subtitle.setAlignment(Qt.AlignCenter)
layout.addWidget(subtitle)
# Username
self.label_user = QLabel('Username')
self.label_user.setStyleSheet("font-size: 18px; color: #2d3748; font-weight: bold; margin-bottom: 0px;font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.label_user)
self.input_user = QLineEdit()
self.input_user.setFixedHeight(64)
from PyQt5.QtWidgets import QSizePolicy
self.input_user.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
#self.input_user.setFixedWidth(520)
self.input_user.setPlaceholderText('Masukkan username')
self.input_user.setStyleSheet("font-size: 20px; padding: 0px 12px; margin-bottom: 20px; color: #2d3748; background-color: white; border: 1px solid #e2e8f0; border-radius: 6px;font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.input_user)
# Password
self.label_pass = QLabel('Password')
self.label_pass.setStyleSheet("font-size: 18px; color: #2d3748; font-weight: bold; margin-bottom: 0px;font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.label_pass)
# Password container with toggle button
password_container = QHBoxLayout()
password_container.setSpacing(0)
password_container.setContentsMargins(0, 0, 0, 0)
self.input_pass = QLineEdit()
self.input_pass.setFixedHeight(64)
from PyQt5.QtWidgets import QSizePolicy
self.input_pass.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
#self.input_pass.setFixedWidth(465)
self.input_pass.setPlaceholderText('Masukkan password')
self.input_pass.setEchoMode(QLineEdit.Password)
self.input_pass.setStyleSheet("font-size: 20px; padding: 0px 12px; color: #2d3748; background-color: white; border: 1px solid #e2e8f0; border-top-left-radius: 6px; border-bottom-left-radius: 6px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-right: none;font-family: 'Segoe UI', Arial, sans-serif;")
self.input_pass.setMinimumWidth(0)
self.btn_toggle_pass = QPushButton('👁')
self.btn_toggle_pass.setFixedSize(64, 64)
self.btn_toggle_pass.setStyleSheet("""
QPushButton {
font-size: 18px;
border: 1px solid #e2e8f0;
border-left: none;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
background-color: white;
color: #718096;
margin-left: -8px;
}
QPushButton:hover {
background-color: #f7fafc;
color: #4a5568;
}
QPushButton:pressed {
background-color: #edf2f7;
}
""")
self.btn_toggle_pass.setCursor(Qt.PointingHandCursor)
self.btn_toggle_pass.clicked.connect(self.toggle_password_visibility)
self.password_visible = False
password_container.addWidget(self.input_pass)
password_container.addWidget(self.btn_toggle_pass)
password_container.setStretch(0, 1)
password_widget = QWidget()
password_widget.setLayout(password_container)
password_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
password_widget.setStyleSheet("margin-bottom: 20px;")
layout.addWidget(password_widget)
# Confirm Password
self.label_confirm = QLabel('Konfirmasi Password')
self.label_confirm.setStyleSheet("font-size: 18px; color: #2d3748; font-weight: bold; margin-bottom: 0px;font-family: 'Segoe UI', Arial, sans-serif;")
layout.addWidget(self.label_confirm)
# Confirm password container with toggle button
confirm_container = QHBoxLayout()
confirm_container.setSpacing(0)
confirm_container.setContentsMargins(0, 0, 0, 0)
self.input_confirm = QLineEdit()
self.input_confirm.setFixedHeight(74)
self.input_confirm.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
#self.input_confirm.setFixedWidth(465)
self.input_confirm.setPlaceholderText('Masukkan password kembali')
self.input_confirm.setEchoMode(QLineEdit.Password)
self.input_confirm.setStyleSheet("font-size: 20px; padding: 0px 12px; color: #2d3748; background-color: white; border: 1px solid #e2e8f0; border-top-left-radius: 6px; border-bottom-left-radius: 6px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-right: none;font-family: 'Segoe UI', Arial, sans-serif;")
self.input_confirm.setMinimumWidth(0)
self.btn_toggle_confirm = QPushButton('👁')
self.btn_toggle_confirm.setFixedSize(74, 74)
self.btn_toggle_confirm.setStyleSheet("""
QPushButton {
font-size: 18px;
border: 1px solid #e2e8f0;
border-left: none;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
background-color: white;
color: #718096;
margin-left: 0px;
}
QPushButton:hover {
background-color: #f7fafc;
color: #4a5568;
}
QPushButton:pressed {
background-color: #edf2f7;
}
""")
self.btn_toggle_confirm.setCursor(Qt.PointingHandCursor)
self.btn_toggle_confirm.clicked.connect(self.toggle_confirm_visibility)
self.confirm_visible = False
confirm_container.addWidget(self.input_confirm)
confirm_container.addWidget(self.btn_toggle_confirm)
confirm_container.setStretch(0, 1)
self.confirm_widget = QWidget()
self.confirm_widget.setLayout(confirm_container)
self.confirm_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.confirm_widget.setMinimumWidth(0)
self.confirm_widget.setMaximumWidth(16777215)
self.confirm_widget.setStyleSheet("margin-bottom: 30px;")
layout.addWidget(self.confirm_widget)
# Register button
self.btn_register = QPushButton('Register')
self.btn_register.setFixedHeight(60)
self.btn_register.setCursor(Qt.PointingHandCursor)
self.btn_register.setStyleSheet("""
QPushButton {
font-size: 18px;
font-weight: bold;
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #667eea, stop:1 #764ba2);
color: white;
border: none;
border-radius: 6px;
margin-bottom: 20px;
font-family: 'Segoe UI', Arial, sans-serif;
}
QPushButton:hover {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #5568d3, stop:1 #6a3b91);
}
QPushButton:pressed {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #4a5abc, stop:1 #5a3080);
}
""")
self.btn_register.clicked.connect(self.handle_register)
layout.addWidget(self.btn_register)
# Back to login link container
login_container = QHBoxLayout()
login_container.setContentsMargins(0, 0, 0, 0)
login_container.setSpacing(5)
login_container.addStretch() # Center the content
# Normal text part
self.label_login_text = QLabel('Sudah punya akun?')
self.label_login_text.setStyleSheet("""
QLabel {
font-size: 16px;
color: #4a5568;
background-color: transparent;
font-family: 'Segoe UI', Arial, sans-serif;
}
""")
login_container.addWidget(self.label_login_text)
# Clickable login link
self.btn_back = QPushButton('Login disini')
self.btn_back.setFixedHeight(36)
self.btn_back.setStyleSheet("""
QPushButton {
font-size: 16px;
font-weight: bold;
color: #667eea;
background-color: transparent;
border: none;
text-decoration: underline;
font-family: 'Segoe UI', Arial, sans-serif;
}
QPushButton:hover {
color: #764ba2;
}
""")
self.btn_back.clicked.connect(self.back_to_login)
self.btn_back.setCursor(Qt.PointingHandCursor)
login_container.addWidget(self.btn_back)
login_container.addStretch() # Center the content
login_widget = QWidget()
login_widget.setLayout(login_container)
layout.addWidget(login_widget)
# Enter key triggers register
self.input_user.returnPressed.connect(self.handle_register)
self.input_pass.returnPressed.connect(self.handle_register)
self.input_confirm.returnPressed.connect(self.handle_register)
self.setLayout(layout)
self.register_success = False
self.back_to_login_clicked = False
self.should_show_login = False # Flag untuk menunjukkan bahwa user ingin kembali ke halaman login
self._sync_confirm_row_width()
self._native_icon_applied = False
def _apply_native_windows_icon(self):
"""Set native HWND icons to avoid default taskbar icon on first window show."""
if os.name != 'nt':
return
icon_path = config.get_app_icon_path()
if not icon_path or not os.path.exists(icon_path):
return
try:
import ctypes
WM_SETICON = 0x0080
ICON_SMALL = 0
ICON_BIG = 1
IMAGE_ICON = 1
LR_LOADFROMFILE = 0x0010
LR_DEFAULTSIZE = 0x0040
hicon = ctypes.windll.user32.LoadImageW(
None,
icon_path,
IMAGE_ICON,
0,
0,
LR_LOADFROMFILE | LR_DEFAULTSIZE,
)
if hicon:
hwnd = int(self.winId())
ctypes.windll.user32.SendMessageW(hwnd, WM_SETICON, ICON_SMALL, hicon)
ctypes.windll.user32.SendMessageW(hwnd, WM_SETICON, ICON_BIG, hicon)
except Exception:
pass
def showEvent(self, event):
super().showEvent(event)
if not self._native_icon_applied:
self._apply_native_windows_icon()
self._native_icon_applied = True
# Clear form setiap kali dialog ditampilkan
self.clear_form()
def clear_form(self):
"""Clear all input fields in the register form"""
self.input_user.clear()
self.input_pass.clear()
self.input_confirm.clear()
# Reset password visibility
if self.password_visible:
self.input_pass.setEchoMode(QLineEdit.Password)
self.password_visible = False
if self.confirm_visible:
self.input_confirm.setEchoMode(QLineEdit.Password)
self.confirm_visible = False
self.btn_toggle_pass.setText('👁')
self.btn_toggle_confirm.setText('👁')
# Set focus to username field
self.input_user.setFocus()
def _apply_responsive_size(self, base_width, base_height):
"""Apply fixed size that adapts for smaller screens."""
screen = QApplication.primaryScreen()
if not screen:
self.setFixedSize(base_width, base_height)
return
available = screen.availableGeometry()
width = min(base_width, max(540, int(available.width() * 0.92)))
height = min(base_height, max(430, int(available.height() * 0.90)))
self.setFixedSize(width, height)
def _sync_confirm_row_width(self):
"""Keep confirm-password row width exactly aligned with username input."""
if hasattr(self, 'input_user') and hasattr(self, 'confirm_widget'):
self.confirm_widget.setFixedWidth(self.input_user.width())
def resizeEvent(self, event):
super().resizeEvent(event)
self._sync_confirm_row_width()
def toggle_password_visibility(self):
"""Toggle password visibility"""
if self.password_visible:
self.input_pass.setEchoMode(QLineEdit.Password)
self.password_visible = False
else:
self.input_pass.setEchoMode(QLineEdit.Normal)
self.password_visible = True
def toggle_confirm_visibility(self):
"""Toggle confirm password visibility"""
if self.confirm_visible:
self.input_confirm.setEchoMode(QLineEdit.Password)
self.confirm_visible = False
else:
self.input_confirm.setEchoMode(QLineEdit.Normal)
self.confirm_visible = True
#proses ambil data input
def handle_register(self):
username = self.input_user.text().strip()
password = self.input_pass.text()
confirm_password = self.input_confirm.text()
# Validasi input
if not username or not password or not confirm_password:
CustomNotificationDialog.show_warning(self, 'Warning!', 'Semua field harus diisi!', 'OK', compact=True)
return
if len(username) < 3:
CustomNotificationDialog.show_warning(self, 'Warning!', 'Username minimal 3 karakter!', 'OK', compact=True)
return
if len(password) < 6:
CustomNotificationDialog.show_warning(self, 'Warning!', 'Password minimal 6 karakter!', 'OK', compact=True)
return
if password != confirm_password:
CustomNotificationDialog.show_warning(self, 'Warning!', 'Password dan konfirmasi password tidak cocok!', 'OK', compact=True)
return
# Coba register
try:
register_admin(username, password)
self.register_success = True
CustomNotificationDialog.show_success(self, 'Registrasi Berhasil!', f'Akun {username} berhasil dibuat!\nSilakan login untuk melanjutkan.', 'OK', compact=True)
self.accept()
except Exception as e:
error_msg = str(e)
if 'duplicate' in error_msg.lower() or 'unique' in error_msg.lower():
CustomNotificationDialog.show_error(self, 'Error!', 'Username sudah digunakan!\nPilih username lain.', 'Coba Lagi', compact=True)
else:
CustomNotificationDialog.show_error(self, 'Error!', f'Gagal mendaftar:\n{error_msg}', 'Coba Lagi', compact=True)
def back_to_login(self):
"""Tutup register dialog dan set flag untuk menampilkan login dialog"""
self.should_show_login = True
self.reject()

BIN
img/Logo_skripsi.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
img/Logo_skripsi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
img/logo_sekolah.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
img/logo_sekolah.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
img/logo_sma.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

69
main.py Normal file
View File

@ -0,0 +1,69 @@
import sys
import os
from PyQt5.QtWidgets import QApplication
from gui.main_window import MainWindow
from gui.login_dialog import LoginDialog
from gui.register_dialog import RegisterDialog
def main():
# Create necessary directories
os.makedirs('data', exist_ok=True)
os.makedirs('models', exist_ok=True)
app = QApplication(sys.argv)
# Show login and main window with logout loop support
def show_next_window():
# Tampilkan login dialog terlebih dahulu
show_login = True
while True:
if show_login:
login_dialog = LoginDialog()
result = login_dialog.exec_()
# Cek apakah user ingin ke halaman register
if login_dialog.should_show_register:
show_login = False # Tampilkan register dialog next
continue
# Cek apakah login berhasil
if result == LoginDialog.Accepted and login_dialog.login_success:
# Create and show main window
window = MainWindow(login_dialog.username or "Admin")
# Connect logout signal to show login again
window.logout_signal.connect(show_next_window)
window.show()
break
else:
# Login canceled, quit application
app.quit()
break
else:
# Tampilkan register dialog
register_dialog = RegisterDialog()
result = register_dialog.exec_()
# Cek apakah user ingin kembali ke login
if register_dialog.should_show_login:
show_login = True # Kembali ke login
continue
# Cek apakah register berhasil
if result == RegisterDialog.Accepted and register_dialog.register_success:
# Setelah register berhasil, kembali ke login
show_login = True
continue
else:
# Register canceled, quit application
app.quit()
break
# Start the application by showing login dialog
show_next_window()
sys.exit(app.exec_())
if __name__ == '__main__':
main()

104
models/data_processor.py Normal file
View File

@ -0,0 +1,104 @@
import pandas as pd
import json
class DataProcessor:
def __init__(self):
self.paket_info = {
1: {
'nama': 'Paket Informatika-Fisika-Kimia-Biologi',
'mapel': ['Informatika', 'Fisika', 'Kimia', 'Biologi'],
'kelas_tersedia': 2,
'kapasitas_per_kelas': 36,
'jumlah_siswa': 50
},
2: {
'nama': 'Paket Informatika-BIG Lanjut-Kimia-Biologi',
'mapel': ['Informatika', 'BIG Lanjut', 'Kimia', 'Biologi'],
'kelas_tersedia': 1,
'kapasitas_per_kelas': 36,
'jumlah_siswa': 50
},
3: {
'nama': 'Paket Informatika-Ekonomi-BIG Lanjut-MAT Lanjut',
'mapel': ['Informatika', 'Ekonomi', 'BIG Lanjut', 'MAT Lanjut'],
'kelas_tersedia': 1,
'kapasitas_per_kelas': 36,
'jumlah_siswa': 50
},
4: {
'nama': 'Paket Informatika-Ekonomi-MAT Lanjut-SEJ Lanjut',
'mapel': ['Informatika', 'Ekonomi', 'MAT Lanjut', 'SEJ Lanjut'],
'kelas_tersedia': 3,
'kapasitas_per_kelas': 36,
'jumlah_siswa': 50
},
5: {
'nama': 'Paket Informatika-Ekonomi-Sosiologi-SEJ Lanjut',
'mapel': ['Informatika', 'Ekonomi', 'Sosiologi', 'SEJ Lanjut'],
'kelas_tersedia': 1,
'kapasitas_per_kelas': 36,
'jumlah_siswa': 50
},
6: {
'nama': 'Paket Informatika-Ekonomi-Sosiologi-Geografi',
'mapel': ['Informatika', 'Ekonomi', 'Sosiologi', 'Geografi'],
'kelas_tersedia': 1,
'kapasitas_per_kelas': 36,
'jumlah_siswa': 50
}
}
def create_sample_dataset(self, output_path, num_samples=500):
"""Membuat dataset contoh untuk training"""
import random
data = []
for i in range(num_samples):
# Generate random grades (60-100)
nilai = {
'nama_siswa': f'Siswa_{i+1}',
'nilai_informatika': random.randint(60, 100),
'nilai_fisika': random.randint(60, 100),
'nilai_kimia': random.randint(60, 100),
'nilai_biologi': random.randint(60, 100),
'nilai_big_lanjut': random.randint(60, 100),
'nilai_ekonomi': random.randint(60, 100),
'nilai_mat_lanjut': random.randint(60, 100),
'nilai_sej_lanjut': random.randint(60, 100),
'nilai_sosiologi': random.randint(60, 100),
'nilai_geografi': random.randint(60, 100)
}
# Logic untuk menentukan paket berdasarkan nilai tertinggi
paket = self._determine_best_paket(nilai)
nilai['paket_jurusan'] = paket
data.append(nilai)
df = pd.DataFrame(data)
df.to_csv(output_path, index=False)
return df
def _determine_best_paket(self, nilai):
"""Logika sederhana untuk menentukan paket terbaik"""
scores = {}
# Hitung skor untuk setiap paket berdasarkan mata pelajaran yang relevan
scores[1] = (nilai['nilai_informatika'] + nilai['nilai_fisika'] + nilai['nilai_kimia'] + nilai['nilai_biologi']) / 4
scores[2] = (nilai['nilai_informatika'] + nilai['nilai_big_lanjut'] + nilai['nilai_kimia'] + nilai['nilai_biologi']) / 4
scores[3] = (nilai['nilai_informatika'] + nilai['nilai_ekonomi'] + nilai['nilai_big_lanjut'] + nilai['nilai_mat_lanjut']) / 4
scores[4] = (nilai['nilai_informatika'] + nilai['nilai_ekonomi'] + nilai['nilai_mat_lanjut'] + nilai['nilai_sej_lanjut']) / 4
scores[5] = (nilai['nilai_informatika'] + nilai['nilai_ekonomi'] + nilai['nilai_sosiologi'] + nilai['nilai_sej_lanjut']) / 4
scores[6] = (nilai['nilai_informatika'] + nilai['nilai_ekonomi'] + nilai['nilai_sosiologi'] + nilai['nilai_geografi']) / 4
return max(scores, key=scores.get)
def get_paket_info(self, paket_num):
"""Mendapatkan informasi paket"""
return self.paket_info.get(paket_num, {})
def save_paket_info(self, path):
"""Simpan informasi paket ke file JSON"""
with open(path, 'w') as f:
json.dump(self.paket_info, f, indent=2)

445
models/knn_classifier.py Normal file
View File

@ -0,0 +1,445 @@
import pandas as pd
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import joblib
import os
from datetime import datetime
import config
#inisialisasi KNN
class JurusanKNNClassifier:
def __init__(self, n_neighbors=None, weights=None, metric=None):
if n_neighbors is None:
#menetapkan parameter KNN default dari config jika tidak diberikan saat inisialisasi
n_neighbors = config.DEFAULT_K_NEIGHBORS
if weights is None:
weights = getattr(config, 'KNN_WEIGHTS', 'uniform')
#semua tetangga punya bobot yang sama saat voting
if metric is None:
metric = getattr(config, 'KNN_METRIC', 'minkowski')
#cara hitung jarak antar data
self.knn = KNeighborsClassifier(n_neighbors=n_neighbors, weights=weights, metric=metric)
#membuat scaler untuk normalisasi data
self.scaler = StandardScaler()
#menandai model belum dilatih
self.is_trained = False
self.feature_columns = []
self.training_accuracy = 0.0
self.model_last_trained = None
def check_model_exists(self, model_path):
"""Check if trained model exists"""
return os.path.exists(model_path)
def _get_expected_knn_params(self):
"""Get current expected KNN params from config."""
return {
'n_neighbors': config.DEFAULT_K_NEIGHBORS,
'weights': getattr(config, 'KNN_WEIGHTS', 'uniform'),
'metric': getattr(config, 'KNN_METRIC', 'minkowski')
}
def _saved_model_matches_config(self, model_data):
"""Check whether saved model KNN params match current config."""
knn = model_data.get('knn') if isinstance(model_data, dict) else None
if knn is None:
return False
expected = self._get_expected_knn_params()
return (
getattr(knn, 'n_neighbors', None) == expected['n_neighbors'] and
getattr(knn, 'weights', None) == expected['weights'] and
getattr(knn, 'metric', None) == expected['metric']
)
def needs_retraining(self, data_path, model_path):
"""Check if model needs retraining based on data freshness"""
if not self.check_model_exists(model_path):
return True
# Retrain when saved model parameters differ from current configuration.
try:
model_data = joblib.load(model_path)
if not self._saved_model_matches_config(model_data):
return True
except Exception:
return True
# Check if data file is newer than model file
if os.path.exists(data_path):
data_modified = os.path.getmtime(data_path)
model_modified = os.path.getmtime(model_path)
return data_modified > model_modified
return False
def auto_train_if_needed(self, data_path, model_path=None, test_data_path=None):
"""Automatically train model if needed"""
if model_path is None:
model_path = config.MODEL_PATH
try:
if self.needs_retraining(data_path, model_path):
# print("Training model...")
accuracy, report = self.train(data_path, test_data_path=test_data_path)
self.save_model(model_path)
# print(f"Model trained with accuracy: {accuracy:.4f}")
return True, accuracy, report
else:
# print("Loading existing model...")
self.load_model(model_path)
return False, self.training_accuracy, None
except Exception as e:
# print(f"Error in auto training: {str(e)}")
return False, 0.0, None
#siapkan data fitur dan label untuk training
def prepare_data(self, data_path):
#Membaca dataset dari file CSV.
self.df = pd.read_csv(data_path)
# kolom fitur (nilai mata pelajaran)
self.feature_columns = ['nilai_informatika', 'nilai_fisika', 'nilai_kimia', 'nilai_biologi',
'nilai_big_lanjut', 'nilai_ekonomi', 'nilai_mat_lanjut', 'nilai_sej_lanjut',
'nilai_sosiologi', 'nilai_geografi']
#data nilai mata pelajaran yang digunakan untuk prediksi
X = self.df[self.feature_columns]
y = self.df['paket_jurusan']
#label paket jurusan
return X, y
#untuk melatih model KNN dengan opsi optimasi hyperparameter, cv std
def _print_testing_report(self, y_test, y_pred, labels, accuracy=None, cv_scores=None):
cm = confusion_matrix(y_test, y_pred, labels=labels)
print("\n" + "=" * 80)
print("DETAIL HASIL TESTING")
print("=" * 80)
# Model and evaluation context
print("\n0) Konfigurasi Evaluasi")
print(f"Model KNN : k={self.knn.n_neighbors}, weights={self.knn.weights}, metric={self.knn.metric}")
print(f"Cross Validation : {config.CROSS_VALIDATION_FOLDS}-fold")
if accuracy is not None:
print(f"Test Accuracy : {accuracy:.4f} ({accuracy * 100:.2f}%)")
if cv_scores is not None and len(cv_scores) > 0:
cv_mean = float(np.mean(cv_scores))
cv_std = float(np.std(cv_scores))
print(f"CV Mean Accuracy : {cv_mean:.4f} ({cv_mean * 100:.2f}%)")
print(f"CV Std Dev : {cv_std:.4f}")
# 1) Confusion matrix table
cm_df = pd.DataFrame(
cm,
index=[f"Actual {label}" for label in labels],
columns=[f"Pred {label}" for label in labels]
)
print("\n1) Confusion Matrix")
print(cm_df.to_string())
# 1b) Normalized confusion matrix (% per actual class)
cm_row_sum = cm.sum(axis=1, keepdims=True)
cm_row_sum[cm_row_sum == 0] = 1
cm_norm = (cm / cm_row_sum) * 100.0
cm_norm_df = pd.DataFrame(
cm_norm,
index=[f"Actual {label}" for label in labels],
columns=[f"Pred {label}" for label in labels]
)
print("\n1b) Confusion Matrix Normalized (%)")
print(cm_norm_df.to_string(float_format=lambda x: f"{x:.2f}"))
# 2) TP, FN, FP, TN table per class (one-vs-rest)
tf_table = []
total = int(cm.sum())
for idx, label in enumerate(labels):
tp = int(cm[idx, idx])
fn = int(cm[idx, :].sum() - tp)
fp = int(cm[:, idx].sum() - tp)
tn = int(total - tp - fn - fp)
tf_table.append({
'kelas': label,
'TP': tp,
'FN': fn,
'FP': fp,
'TN': tn
})
tf_df = pd.DataFrame(tf_table)
print("\n2) Tabel TP/FN/FP/TN per Kelas")
print(tf_df.to_string(index=False))
# 3) Actual vs predicted for all test rows
result_df = pd.DataFrame({
'no_data_test': np.arange(1, len(y_test) + 1),
'nilai_sebenarnya': np.array(y_test),
'nilai_prediksi': np.array(y_pred)
})
def row_status(actual, pred):
return "BENAR" if actual == pred else "SALAH"
def row_confusion_status(actual, pred):
if actual == pred:
return "TP (kelas aktual), TN"
return f"FN (kelas {actual}), FP (kelas {pred})"
result_df['status'] = [
row_status(actual, pred)
for actual, pred in zip(result_df['nilai_sebenarnya'], result_df['nilai_prediksi'])
]
result_df['status_tpfnfp_tn'] = [
row_confusion_status(actual, pred)
for actual, pred in zip(result_df['nilai_sebenarnya'], result_df['nilai_prediksi'])
]
print(f"\n3) Nilai Sebenarnya vs Nilai Prediksi ({len(result_df)} data test)")
print(result_df.to_string(index=False))
# 4) Classification metrics
report_dict = classification_report(
y_test,
y_pred,
labels=labels,
output_dict=True,
zero_division=0
)
metrics_rows = []
for label in labels:
key = str(label)
metrics_rows.append({
'kelas': label,
'precision': report_dict[key]['precision'],
'recall': report_dict[key]['recall'],
'f1-score': report_dict[key]['f1-score'],
'support': int(report_dict[key]['support'])
})
metrics_rows.append({
'kelas': 'accuracy',
'precision': np.nan,
'recall': np.nan,
'f1-score': report_dict['accuracy'],
'support': int(sum(report_dict[str(label)]['support'] for label in labels))
})
metrics_rows.append({
'kelas': 'macro avg',
'precision': report_dict['macro avg']['precision'],
'recall': report_dict['macro avg']['recall'],
'f1-score': report_dict['macro avg']['f1-score'],
'support': int(report_dict['macro avg']['support'])
})
metrics_rows.append({
'kelas': 'weighted avg',
'precision': report_dict['weighted avg']['precision'],
'recall': report_dict['weighted avg']['recall'],
'f1-score': report_dict['weighted avg']['f1-score'],
'support': int(report_dict['weighted avg']['support'])
})
metrics_df = pd.DataFrame(metrics_rows)
print("\n4) Precision, Recall, F1-Score, Support, Accuracy, Macro Avg, Weighted Avg")
print(metrics_df.to_string(index=False, float_format=lambda x: f"{x:.4f}" if pd.notna(x) else ""))
print("=" * 80 + "\n")
#training model knn
def train(self, data_path, optimize_k=None, test_data_path=None):
"""Melatih model KNN dengan opsi optimasi hyperparameter"""
if optimize_k is None:
optimize_k = config.OPTIMIZE_K
X, y = self.prepare_data(data_path)
# gunakan test_data_path jika diberikan dan valid, jika tidak lakukan split train/test seperti biasa
if test_data_path and os.path.exists(test_data_path):
X_train, y_train = X, y
X_test, y_test = self.prepare_data(test_data_path)
else:
# Split train/test
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=config.TEST_SIZE, random_state=config.RANDOM_STATE, stratify=y
)
# Normalisasi data
X_train_scaled = self.scaler.fit_transform(X_train)
X_test_scaled = self.scaler.transform(X_test)
# Optimasi hyperparameter k jika diaktifkan
if optimize_k:
best_k = self.find_optimal_k(X_train_scaled, y_train)
self.knn = KNeighborsClassifier(
n_neighbors=best_k,
weights=self.knn.weights,
metric=self.knn.metric
)
print(f"Optimal k value found: {best_k}")
# Training
self.knn.fit(X_train_scaled, y_train)
# Evaluasi, menguji pada data test untuk menghitung akurasi
y_pred = self.knn.predict(X_test_scaled)
y_pred_proba = self.knn.predict_proba(X_test_scaled)
accuracy = accuracy_score(y_test, y_pred)
labels = sorted(set(np.array(y_test)).union(set(np.array(y_pred))))
# Cross-validation score
cv_scores = cross_val_score(
self.knn,
X_train_scaled,
y_train,
cv=config.CROSS_VALIDATION_FOLDS
)
print(f"Cross-validation scores: {cv_scores}")
print(f"Average CV score: {cv_scores.mean():.4f} (+/- {cv_scores.std() * 2:.4f})")
self.is_trained = True
self.training_accuracy = accuracy
self.model_last_trained = datetime.now()
self.cv_scores = cv_scores
self.cv_mean = float(cv_scores.mean())
self.cv_std = float(cv_scores.std())
# Store test data for performance evaluation
self.X_test = X_test
self.y_test = y_test
self.y_pred = y_pred
self.y_pred_proba = y_pred_proba
self.confusion_matrix = confusion_matrix(y_test, y_pred, labels=labels)
self._print_testing_report(y_test, y_pred, labels, accuracy=accuracy, cv_scores=cv_scores)
return accuracy, classification_report(y_test, y_pred, zero_division=0)
#mencari nilai k terbaik dengan GridSearchCV
def find_optimal_k(self, X_train, y_train, k_range=None):
"""Find optimal k using GridSearchCV (uses config.K_RANGE by default)."""
if k_range is None:
k_range = list(config.K_RANGE)
else:
k_range = list(k_range)
param_grid = {'n_neighbors': k_range}
knn_temp = KNeighborsClassifier(weights=self.knn.weights, metric=self.knn.metric)
grid = GridSearchCV(
knn_temp,
param_grid,
cv=config.CROSS_VALIDATION_FOLDS,
scoring='accuracy',
n_jobs=-1,
refit=True
)
grid.fit(X_train, y_train)
best_k = int(grid.best_params_['n_neighbors'])
# store grid object for inspection or display in UI
self.grid_search_results = grid
return best_k
#untuk mendapatkan hasil evaluasi model yang sudah dilatih, termasuk akurasi, classification report, confusion matrix, dan waktu pelatihan terakhir
def evaluate_model(self):
if not self.is_trained:
return None
return {
'accuracy': accuracy_score(self.y_test, self.y_pred),
'classification_report': classification_report(self.y_test, self.y_pred, output_dict=True, zero_division=0),
'confusion_matrix': self.confusion_matrix,
'training_time': self.model_last_trained
}
#prediksi paket jurusan untuk siswa baru
def predict(self, nilai_siswa):
if not self.is_trained:
raise ValueError("Model belum dilatih!")
# Konversi input ke DataFrame
input_df = pd.DataFrame([nilai_siswa], columns=self.feature_columns)
# Data siswa di normalisasi dengan scaler yang sama seperti saat training
input_scaled = self.scaler.transform(input_df)
# Prediksi
prediction = self.knn.predict(input_scaled)[0]
probabilities = self.knn.predict_proba(input_scaled)[0]
# untuk menampilkan semua prediksi dengan probabilitasnya, urutkan berdasarkan probabilitas tertinggi
all_indices = np.argsort(probabilities)[::-1]
all_pakets = [self.knn.classes_[i] for i in all_indices]
all_probs = [probabilities[i] for i in all_indices]
# untuk menampilkan 3 prediksi teratas dengan probabilitasnya
top_3_pakets = []
top_3_probs = []
# Tambahkan prediksi utama terlebih dahulu
main_prediction_index = np.where(self.knn.classes_ == prediction)[0][0]
top_3_pakets.append(prediction)
top_3_probs.append(probabilities[main_prediction_index])
# Tambahkan prediksi lain berdasarkan probabilitas tertinggi, kecuali yang sudah menjadi prediksi utama
for paket, prob in zip(all_pakets, all_probs):
if paket != prediction and len(top_3_pakets) < 3:
top_3_pakets.append(paket)
top_3_probs.append(prob)
return prediction, list(zip(top_3_pakets, top_3_probs))
def save_model(self, path):
"""Simpan model dengan informasi tambahan"""
os.makedirs(os.path.dirname(path), exist_ok=True)
model_data = {
'knn': self.knn,
'scaler': self.scaler,
'feature_columns': self.feature_columns,
'is_trained': self.is_trained,
'training_accuracy': self.training_accuracy,
'model_last_trained': self.model_last_trained,
'n_neighbors': self.knn.n_neighbors if self.is_trained else 5
}
# Save evaluation results if available
if hasattr(self, 'X_test') and hasattr(self, 'y_test'):
model_data.update({
'X_test': self.X_test,
'y_test': self.y_test,
'y_pred': self.y_pred,
'confusion_matrix': self.confusion_matrix
})
joblib.dump(model_data, path)
def load_model(self, path):
"""Load model dengan informasi tambahan"""
model_data = joblib.load(path)
if not self._saved_model_matches_config(model_data):
expected = self._get_expected_knn_params()
saved_knn = model_data.get('knn') if isinstance(model_data, dict) else None
saved_params = {
'n_neighbors': getattr(saved_knn, 'n_neighbors', None),
'weights': getattr(saved_knn, 'weights', None),
'metric': getattr(saved_knn, 'metric', None)
}
raise ValueError(
f"Saved model configuration {saved_params} does not match current config {expected}."
)
self.knn = model_data['knn']
self.scaler = model_data['scaler']
self.feature_columns = model_data['feature_columns']
self.is_trained = model_data['is_trained']
self.training_accuracy = model_data.get('training_accuracy', 0.0)
self.model_last_trained = model_data.get('model_last_trained', None)
# Load evaluation results if available
if 'X_test' in model_data:
self.X_test = model_data['X_test']
self.y_test = model_data['y_test']
self.y_pred = model_data['y_pred']
self.confusion_matrix = model_data['confusion_matrix']

BIN
models/knn_model.pkl Normal file

Binary file not shown.

BIN
models/trained_model.pkl Normal file

Binary file not shown.

View File

@ -0,0 +1,283 @@
import pandas as pd
import numpy as np
import random
from collections import Counter
def rebalance_smakom_without_duplication():
"""
Rebalance dataset_smakom tanpa duplikasi
- Mengambil siswa dari paket berlebih untuk melengkapi paket yang kurang
- Mempertahankan urutan data seperti dataset asli
- Label disesuaikan berdasarkan redistribusi
"""
# Muat dataset asli
df_original = pd.read_csv('data/dataset_smakom.csv')
print("=== REBALANCE DATASET SMAKOM (TANPA DUPLIKASI) ===")
print(f"Dataset asli: {len(df_original)} siswa")
original_dist = df_original['paket_jurusan'].value_counts().sort_index()
print("Distribusi asli:")
surplus_students = [] # Siswa dari paket berlebih
deficit_pakets = [] # Paket yang kekurangan
for paket in sorted(original_dist.index):
count = original_dist[paket]
if count > 50:
surplus = count - 50
print(f" Paket {paket}: {count} siswa (SURPLUS: {surplus})")
elif count < 50:
deficit = 50 - count
deficit_pakets.append((paket, deficit, count))
print(f" Paket {paket}: {count} siswa (KURANG: {deficit})")
else:
print(f" Paket {paket}: {count} siswa (SEIMBANG)")
print(f"\nPaket yang kekurangan: {[p[0] for p in deficit_pakets]}")
# Atur seed untuk reproducibility
np.random.seed(42)
random.seed(42)
# Kumpulkan siswa surplus dari paket berlebih
available_students = []
for paket in [1, 4]: # Paket yang berlebih (67 dan 100 siswa)
paket_students = df_original[df_original['paket_jurusan'] == paket].copy()
if paket == 1: # 67 siswa, ambil 17 untuk redistribusi
selected = paket_students.sample(n=50, random_state=42) # Siswa yang tetap di paket 1
surplus = paket_students.drop(selected.index) # 17 siswa untuk redistribusi
elif paket == 4: # 100 siswa, ambil 50 untuk redistribusi
selected = paket_students.sample(n=50, random_state=42) # Siswa yang tetap di paket 4
surplus = paket_students.drop(selected.index) # 50 siswa untuk redistribusi
available_students.extend(surplus.to_dict('records'))
print(f"Siswa tersedia untuk redistribusi: {len(available_students)}")
# Hitung kebutuhan redistribusi
total_needed = sum([deficit for _, deficit, _ in deficit_pakets])
print(f"Total kebutuhan: {total_needed} siswa")
if len(available_students) >= total_needed:
print("✅ Cukup siswa untuk redistribusi tanpa duplikasi")
else:
print("❌ Tidak cukup siswa, akan perlu duplikasi")
return None
# Buat dataset baru
df_rebalanced = df_original.copy()
# Redistribute siswa
used_students = 0
for target_paket, needed, current_count in deficit_pakets:
print(f"\nMelengkapi Paket {target_paket}: {current_count} → 50 (+{needed})")
# Ambil siswa yang dibutuhkan
students_to_add = available_students[used_students:used_students + needed]
used_students += needed
# Perbarui label paket untuk siswa yang dipindah
for student in students_to_add:
# Cari siswa di dataframe dan perbarui label
mask = (df_rebalanced['nama_siswa'] == student['nama_siswa'])
if mask.any():
old_paket = df_rebalanced.loc[mask, 'paket_jurusan'].iloc[0]
df_rebalanced.loc[mask, 'paket_jurusan'] = target_paket
print(f" - {student['nama_siswa'][:25]:25} | {old_paket}{target_paket}")
# Validasi distribusi final
final_dist = df_rebalanced['paket_jurusan'].value_counts().sort_index()
print(f"\n=== DISTRIBUSI FINAL ===")
for paket in sorted(final_dist.index):
print(f" Paket {paket}: {final_dist[paket]} siswa")
# Normalisasi nilai berdasarkan label baru
df_normalized = normalize_values_by_new_labels(df_rebalanced)
return df_normalized
def normalize_values_by_new_labels(df):
"""
Normalisasi nilai berdasarkan label paket yang sudah direbalance
"""
print(f"\n=== NORMALISASI NILAI BERDASARKAN LABEL BARU ===")
# Definisi mata pelajaran utama per paket
paket_subjects = {
1: ['nilai_informatika', 'nilai_fisika', 'nilai_kimia', 'nilai_biologi'], # MIPA
2: ['nilai_informatika', 'nilai_big_lanjut', 'nilai_kimia', 'nilai_biologi'], # MIPA + BIG
3: ['nilai_informatika', 'nilai_ekonomi', 'nilai_big_lanjut', 'nilai_mat_lanjut'], # Teknik/Ekonomi
4: ['nilai_informatika', 'nilai_ekonomi', 'nilai_mat_lanjut', 'nilai_sej_lanjut'], # Ekonomi/Sosial
5: ['nilai_informatika', 'nilai_ekonomi', 'nilai_sosiologi', 'nilai_sej_lanjut'], # Sosial/Ekonomi
6: ['nilai_informatika', 'nilai_ekonomi', 'nilai_sosiologi', 'nilai_geografi'] # Sosial/Geografi
}
all_subjects = ['nilai_informatika', 'nilai_fisika', 'nilai_kimia', 'nilai_biologi',
'nilai_big_lanjut', 'nilai_ekonomi', 'nilai_mat_lanjut', 'nilai_sej_lanjut',
'nilai_sosiologi', 'nilai_geografi']
df_result = df.copy()
# Track perubahan untuk siswa yang dipindah paket
redistribution_log = []
for paket in range(1, 7):
mask = df_result['paket_jurusan'] == paket
students_count = mask.sum()
target_subjects = paket_subjects[paket]
non_target_subjects = [s for s in all_subjects if s not in target_subjects]
print(f"Paket {paket} ({students_count} siswa):")
print(f" - Mata pelajaran utama: {[s.replace('nilai_', '') for s in target_subjects]}")
# Normalisasi mata pelajaran UTAMA: tinggi (85-98)
for subject in target_subjects:
if subject == 'nilai_informatika':
# Informatika prioritas utama
new_values = np.random.normal(92, 3, size=students_count)
new_values = np.clip(new_values, 85, 98)
else:
# Mata pelajaran utama lainnya
new_values = np.random.normal(89, 4, size=students_count)
new_values = np.clip(new_values, 85, 98)
df_result.loc[mask, subject] = np.round(new_values, 1)
# Normalisasi mata pelajaran NON-UTAMA: rendah (70-82)
for subject in non_target_subjects:
new_values = np.random.normal(76, 3, size=students_count)
new_values = np.clip(new_values, 70, 82)
df_result.loc[mask, subject] = np.round(new_values, 1)
return df_result
def sort_by_preference(df, sort_by='original'):
"""
Urutkan dataset berdasarkan preferensi
- 'original': urutan sama seperti dataset_smakom asli
- 'label': diurutkan berdasarkan paket_jurusan kemudian nama
"""
if sort_by == 'label':
print("Mengurutkan berdasarkan label paket...")
df_sorted = df.sort_values(['paket_jurusan', 'nama_siswa']).reset_index(drop=True)
else: # 'original'
print("Mempertahankan urutan asli dari dataset_smakom...")
# Muat urutan asli
df_original = pd.read_csv('data/dataset_smakom.csv')
# Buat pemetaan urutan berdasarkan nama siswa
name_order = {name: idx for idx, name in enumerate(df_original['nama_siswa'])}
# Tetapkan urutan untuk pengurutan
df['sort_order'] = df['nama_siswa'].map(name_order)
# Urutkan berdasarkan urutan asli
df_sorted = df.sort_values('sort_order').drop('sort_order', axis=1).reset_index(drop=True)
return df_sorted
def validate_rebalanced_dataset(df):
"""Validasi dataset yang sudah direbalance"""
print(f"\n=== VALIDASI DATASET REBALANCED ===")
# Distribusi
dist = df['paket_jurusan'].value_counts().sort_index()
print("Distribusi final:")
for paket in sorted(dist.index):
print(f" Paket {paket}: {dist[paket]} siswa")
# Gap nilai
paket_subjects = {
1: ['nilai_informatika', 'nilai_fisika', 'nilai_kimia', 'nilai_biologi'],
2: ['nilai_informatika', 'nilai_big_lanjut', 'nilai_kimia', 'nilai_biologi'],
3: ['nilai_informatika', 'nilai_ekonomi', 'nilai_big_lanjut', 'nilai_mat_lanjut'],
4: ['nilai_informatika', 'nilai_ekonomi', 'nilai_mat_lanjut', 'nilai_sej_lanjut'],
5: ['nilai_informatika', 'nilai_ekonomi', 'nilai_sosiologi', 'nilai_sej_lanjut'],
6: ['nilai_informatika', 'nilai_ekonomi', 'nilai_sosiologi', 'nilai_geografi']
}
all_subjects = ['nilai_informatika', 'nilai_fisika', 'nilai_kimia', 'nilai_biologi',
'nilai_big_lanjut', 'nilai_ekonomi', 'nilai_mat_lanjut', 'nilai_sej_lanjut',
'nilai_sosiologi', 'nilai_geografi']
print("\nGap nilai (Target vs Non-Target):")
for paket in range(1, 7):
data_paket = df[df['paket_jurusan'] == paket]
target_subjects = paket_subjects[paket]
non_target_subjects = [s for s in all_subjects if s not in target_subjects]
avg_target = data_paket[target_subjects].mean().mean()
avg_non_target = data_paket[non_target_subjects].mean().mean()
gap = avg_target - avg_non_target
print(f" Paket {paket}: Target={avg_target:.1f}, Non-target={avg_non_target:.1f}, Gap={gap:.1f}")
def test_knn_accuracy(dataset_path):
"""Test akurasi KNN"""
print(f"\n=== TEST AKURASI KNN ===")
try:
from models.knn_classifier import JurusanKNNClassifier
classifier = JurusanKNNClassifier()
accuracy, report = classifier.train(dataset_path, optimize_k=True)
print(f"Akurasi KNN: {accuracy:.4f} ({accuracy*100:.2f}%)")
return accuracy
except Exception as e:
print(f"Error: {str(e)}")
return 0.0
if __name__ == "__main__":
# Rebalance tanpa duplikasi
df_rebalanced = rebalance_smakom_without_duplication()
if df_rebalanced is not None:
# Pilih urutan data
print(f"\n=== PENGATURAN URUTAN DATA ===")
sort_preference = 'original' # atau 'label'
df_final = sort_by_preference(df_rebalanced, sort_by=sort_preference)
# Validasi
validate_rebalanced_dataset(df_final)
# Simpan dataset
output_path = 'data/dataset_smakom_final.csv'
df_final.to_csv(output_path, index=False)
print(f"\nDataset tersimpan di: {output_path}")
# Test akurasi
new_accuracy = test_knn_accuracy(output_path)
# Bandingkan dengan dataset lainnya
print(f"\n=== PERBANDINGAN AKURASI ===")
try:
smakom_accuracy = test_knn_accuracy('data/dataset_smakom.csv')
siswa_accuracy = test_knn_accuracy('data/dataset_siswa.csv')
print(f"Dataset SMAKOM asli : {smakom_accuracy:.4f} ({smakom_accuracy*100:.2f}%)")
print(f"Dataset siswa sebelumnya : {siswa_accuracy:.4f} ({siswa_accuracy*100:.2f}%)")
print(f"Dataset SMAKOM final : {new_accuracy:.4f} ({new_accuracy*100:.2f}%)")
improvement = (new_accuracy - smakom_accuracy) * 100
print(f"\nPeningkatan dari SMAKOM : +{improvement:.2f} pp")
except Exception as e:
print(f"Error saat membandingkan: {str(e)}")
print(f"\n=== RINGKASAN ===")
print("✅ Tidak ada duplikasi siswa")
print("✅ Semua siswa dari dataset_smakom asli")
print("✅ Distribusi seimbang 50 per paket")
print("✅ Urutan data sesuai dataset asli")
print("✅ Label disesuaikan untuk keseimbangan")
print(f"✅ Akurasi KNN: {new_accuracy:.1%}")
else:
print("❌ Gagal melakukan rebalancing tanpa duplikasi")

10
requirements.txt Normal file
View File

@ -0,0 +1,10 @@
PyQt5==5.15.10
pandas==2.1.4
numpy==1.24.3
scikit-learn==1.3.2
matplotlib==3.7.2
seaborn==0.12.2
psycopg2-binary==2.9.9
joblib==1.3.2
xlsxwriter==3.1.9
openpyxl==3.1.2

View File

@ -0,0 +1,83 @@
#!/usr/bin/env python3
"""Plot class distribution before and after undersampling.
Usage: python scripts/plot_dataset_distribution.py
"""
import os
import sys
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
def safe_read_csv(path):
if not os.path.exists(path):
print(f"File not found: {path}")
sys.exit(1)
return pd.read_csv(path)
def plot_distribution_scatter(before_df, after_df, label_col='paket_jurusan'):
# Select numeric feature columns (exclude name and label)
numeric_cols = [c for c in before_df.columns if c.startswith('nilai_')]
# Prepare data for PCA: combine both datasets to get consistent projection
combined = pd.concat([before_df[numeric_cols], after_df[numeric_cols]], ignore_index=True)
scaler = StandardScaler()
combined_scaled = scaler.fit_transform(combined.values)
pca = PCA(n_components=2)
combined_2d = pca.fit_transform(combined_scaled)
before_2d = combined_2d[: len(before_df)]
after_2d = combined_2d[len(before_df) :]
# plotting
fig, axes = plt.subplots(1, 2, figsize=(14, 6), sharex=True, sharey=True)
def draw_scatter(ax, points, labels, title):
classes = sorted(labels.unique())
cmap = plt.get_cmap('tab10')
for i, cls in enumerate(classes):
mask = labels == cls
ax.scatter(points[mask, 0], points[mask, 1], s=40, alpha=0.8,
color=cmap(i % 10), label=f'Kelas {cls}')
ax.set_title(title)
ax.set_xlabel('PCA 1')
ax.set_ylabel('PCA 2')
ax.legend(loc='best', fontsize='small')
draw_scatter(axes[0], before_2d, before_df[label_col], 'Sebelum Under-sampling')
draw_scatter(axes[1], after_2d, after_df[label_col], 'Sesudah Under-sampling')
fig.suptitle('Sebaran Titik Data (2D PCA) — Sebelum vs Sesudah Under-sampling')
fig.tight_layout(rect=[0, 0.03, 1, 0.95])
out_dir = os.path.join(os.path.dirname(__file__), '..', 'data')
os.makedirs(out_dir, exist_ok=True)
out_path = os.path.join(out_dir, 'dataset_scatter_comparison.png')
fig.savefig(out_path, dpi=150)
print(f"Saved scatter comparison plot to: {out_path}")
plt.show()
def main():
repo_root = os.path.dirname(os.path.dirname(__file__))
data_dir = os.path.join(repo_root, 'data')
before_path = os.path.join(data_dir, 'dataset_smakom.csv')
after_path = os.path.join(data_dir, 'dataset_smakom_final.csv')
before_df = safe_read_csv(before_path)
after_df = safe_read_csv(after_path)
if 'paket_jurusan' not in before_df.columns or 'paket_jurusan' not in after_df.columns:
print('Expected column "paket_jurusan" not found in one of the files.')
sys.exit(1)
plot_distribution_scatter(before_df, after_df, label_col='paket_jurusan')
if __name__ == '__main__':
main()

51
setup_db.bat Normal file
View File

@ -0,0 +1,51 @@
@echo off
setlocal
cd /d "%~dp0"
set "DB_NAME=db_klasifikasi"
set "DB_USER=postgres"
if not "%~1"=="" set "DB_USER=%~1"
echo ================================================
echo Setup Database PostgreSQL
echo Database : %DB_NAME%
echo User : %DB_USER%
echo ================================================
where psql >nul 2>&1
if errorlevel 1 (
echo [ERROR] psql tidak ditemukan di PATH.
echo Install PostgreSQL dulu dan pastikan psql bisa dipanggil dari CMD.
pause
exit /b 1
)
for /f %%i in ('psql -U %DB_USER% -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname='"'"'%DB_NAME%'"'"'"') do set DB_EXISTS=%%i
if "%DB_EXISTS%"=="1" (
echo [INFO] Database %DB_NAME% sudah ada.
) else (
echo [INFO] Membuat database %DB_NAME%...
psql -U %DB_USER% -d postgres -c "CREATE DATABASE %DB_NAME%;"
if errorlevel 1 (
echo [ERROR] Gagal membuat database.
pause
exit /b 1
)
)
echo [INFO] Menjalankan schema: db\schema.sql ...
psql -U %DB_USER% -d %DB_NAME% -f "db\schema.sql"
if errorlevel 1 (
echo [ERROR] Gagal menjalankan schema SQL.
pause
exit /b 1
)
echo.
echo [OK] Database siap.
echo Selanjutnya jalankan aplikasi EXE.
echo.
pause

0
utils/helpers.py Normal file
View File