@if(session('success'))
{{ session('success') }}
@endif
@if(session('error'))
{{ session('error') }}
@endif
Prediksi Kelulusan
Fuzzy K-NN AlgorithmMetode Input
@if(isset($manualPrediction) && isset($studentValues))
@php
// Ambil nilai rata-rata akademik (semester_1 sampai semester_6)
$akademik = collect(range(1,6))->map(function($i) use ($studentValues) {
return isset($studentValues['semester_'.$i]) ? floatval($studentValues['semester_'.$i]) : null;
})->filter()->avg();
// Ambil nilai non-akademik (kerapian, kerajinan, sikap) dan konversi ke 0, 0.5, 1
$nonAkademikMap = ['kurang baik' => 0, 'cukup baik' => 0.5, 'baik' => 1];
$kerapian = isset($studentValues['kerapian']) ? $nonAkademikMap[strtolower($studentValues['kerapian'])] ?? null : null;
$kerajinan = isset($studentValues['kerajinan']) ? $nonAkademikMap[strtolower($studentValues['kerajinan'])] ?? null : null;
$sikap = isset($studentValues['sikap']) ? $nonAkademikMap[strtolower($studentValues['sikap'])] ?? null : null;
$nonAkademik = collect([$kerapian, $kerajinan, $sikap])->filter(function($v){return $v!==null;})->avg();
@endphp
@php
$predictedClass = $manualPrediction['status'] ?? null;
$ratio = isset($manualPrediction['ratios']) ? collect($manualPrediction['ratios'])->firstWhere('class', $predictedClass) : null;
@endphp
@if($ratio)
@endif
@if(isset($manualPrediction['neighbors']) && count($manualPrediction['neighbors']) > 0)
@endif
@endif
Hasil Prediksi (Manual)
NISN
{{ $manualPrediction['nisn'] }}
Nama
{{ $manualPrediction['name'] }}
Status Prediksi
{{ ucwords($manualPrediction['status']) }}
Derajat Keanggotaan Fuzzy
μ = {{ number_format($ratio->weight_ratio, 3) }}
Data Tetangga Terdekat:
@endif
@if(isset($manualPrediction['ratios']) && count($manualPrediction['ratios']) > 0)
NISN | Nama | Status | Jarak | Bobot |
---|---|---|---|---|
{{ $neighbor['nisn'] }} | {{ $neighbor['nama'] }} | {{ ucwords($neighbor['true_status']) }} | {{ number_format($neighbor['distance'], 4) }} | {{ number_format($neighbor['weight'], 4) }} |
Kurva Derajat Keanggotaan Fuzzy
@if(isset($excelPredictions) && count($excelPredictions) > 0)
@endif
Hasil Prediksi Siswa (Batch Excel)
Total: {{ count($excelPredictions) }}
@foreach($excelPredictions as $pred)
@php
$predictedClass = $pred['status'] ?? null;
$ratio = isset($pred['ratios']) ? collect($pred['ratios'])->firstWhere('class', $predictedClass) : null;
@endphp
@if($ratio)
@endif
@if(isset($pred['neighbors']) && count($pred['neighbors']) > 0)
@endforeach
NISN: {{ $pred['nisn'] }}
Nama: {{ $pred['name'] }}
Status:
{{ ucwords($pred['status']) }}
Derajat Keanggotaan
μ = {{ number_format($ratio->weight_ratio, 3) }}
Data Tetangga Terdekat:
@endif
NISN | Nama | Status | Jarak | Bobot |
---|---|---|---|---|
{{ $neighbor['nisn'] }} | {{ $neighbor['nama'] }} | {{ ucwords($neighbor['true_status']) }} | {{ number_format($neighbor['distance'], 4) }} | {{ number_format($neighbor['weight'], 4) }} |