MIF_E31230302/resources/views/c45/hasil.blade.php

173 lines
11 KiB
PHP

@extends('layouts.admin')
@section('title', 'Hasil Rekomendasi C4.5')
@section('content')
<div class="container-fluid px-3">
<!-- Header & Tombol Kembali -->
<div class="d-flex align-items-center justify-content-between my-3">
<div>
<h1 class="h4 mb-0 text-gray-800 font-weight-bold">
<i class="fa-solid fa-square-poll-vertical text-primary me-2"></i>Hasil Rekomendasi C4.5
</h1>
<p class="text-muted small mb-0">Hasil analisis kriteria siswa berdasarkan algoritma C4.5 Decision Tree.</p>
</div>
<div>
<a href="{{ route('c45.create') }}" class="btn btn-primary btn-sm rounded-pill px-3 shadow-sm me-2">
<i class="fas fa-plus me-1"></i> Cek Rekomendasi Lagi
</a>
<a href="{{ route('c45.index') }}" class="btn btn-outline-secondary btn-sm rounded-pill px-3 shadow-sm">
<i class="fas fa-arrow-left me-1"></i> Kembali ke Menu
</a>
</div>
</div>
@php
// Mengambil data dari session atau $data jika dipass dari controller
$dataTesting = session('hasil_prediksi') ?? $dataTesting ?? null;
$rulePath = session('rulePath') ?? $rulePath ?? [];
$hasilJurusan = session('hasilJurusan') ?? (is_object($dataTesting) ? ($dataTesting->hasil_rekomendasi ?? '') : '');
@endphp
@if($dataTesting)
<div id="section-hasil-prediksi" class="mb-4">
<div class="card shadow-sm border-0 rounded-3">
<div class="card-header py-3 bg-white border-bottom d-flex align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary small">
<i class="fas fa-square-poll-vertical me-1"></i> Output Klasifikasi C4.5
</h6>
@if(!empty(is_object($dataTesting) ? $dataTesting->nama : ($dataTesting['nama'] ?? '')))
<span class="badge bg-light text-dark border font-weight-normal px-3 py-1.5 rounded-pill">
<i class="fas fa-user text-muted me-1"></i> {{ is_object($dataTesting) ? $dataTesting->nama : $dataTesting['nama'] }}
</span>
@endif
</div>
<div class="card-body p-4">
<!-- Highlight Jurusan Hasil Rekomendasi -->
<div class="p-4 bg-primary bg-opacity-10 text-primary border border-primary border-opacity-25 rounded-3 text-center my-2 shadow-sm">
<span class="small text-uppercase tracking-wider font-weight-bold text-muted">Program Studi Rekomendasi Utama:</span>
<h2 class="display-6 font-weight-bold text-primary mb-0 mt-2">
{{ $hasilJurusan }}
</h2>
</div>
<!-- Layout 2 Kolom: Kiri Detail Input, Kanan Jalur Keputusan -->
<div class="row mt-4">
<!-- Sisi Kiri: Rincian Input & Pemetaan -->
<div class="col-lg-7 border-end pr-lg-4">
<h6 class="font-weight-bold text-primary mb-3 small">
<i class="fas fa-list-check me-1"></i> Rincian Input & Hasil Preprocessing:
</h6>
<ul class="list-group list-group-flush rounded-3 border mb-3">
<!-- Nilai Rapor -->
<li class="list-group-item d-flex justify-content-between align-items-center py-2.5">
<div>
<small class="text-muted d-block">Nilai Rapor (Raw)</small>
<strong class="text-dark">{{ is_object($dataTesting) ? ($dataTesting->nilai_raw ?? $dataTesting->nilai) : ($dataTesting['nilai_raw'] ?? $dataTesting['nilai'] ?? '-') }}</strong>
</div>
<div class="text-end">
<small class="text-muted d-block">Kategori C4.5</small>
<span class="badge bg-info text-dark px-2.5 py-1.5 fs-6">{{ is_object($dataTesting) ? $dataTesting->nilai : ($dataTesting['nilai'] ?? '-') }}</span>
</div>
</li>
<!-- Mata Pelajaran Favorit (DITAMBAHKAN) -->
<li class="list-group-item d-flex justify-content-between align-items-center py-2.5">
<div style="max-width: 60%;">
<small class="text-muted d-block">Mata Pelajaran Favorit</small>
<span class="fst-italic text-dark">"{{ is_object($dataTesting) ? ($dataTesting->mapel_favorit_raw ?? $dataTesting->mapel_favorit) : ($dataTesting['mapel_favorit_raw'] ?? $dataTesting['mapel_favorit'] ?? '-') }}"</span>
</div>
<div class="text-end">
<small class="text-muted d-block">Pemetaan</small>
<span class="badge bg-warning text-dark px-2.5 py-1.5 fs-6">{{ is_object($dataTesting) ? $dataTesting->mapel_favorit : ($dataTesting['mapel_favorit'] ?? '-') }}</span>
</div>
</li>
<!-- Preferensi Studi -->
<li class="list-group-item d-flex justify-content-between align-items-center py-2.5">
<div style="max-width: 60%;">
<small class="text-muted d-block">Preferensi Studi</small>
<span class="fst-italic text-dark">"{{ is_object($dataTesting) ? ($dataTesting->preferensi_studi_raw ?? $dataTesting->preferensi_studi) : ($dataTesting['preferensi_studi_raw'] ?? $dataTesting['preferensi_studi'] ?? '-') }}"</span>
</div>
<div class="text-end">
<small class="text-muted d-block">Pemetaan</small>
<span class="badge bg-secondary px-2.5 py-1.5 fs-6">{{ is_object($dataTesting) ? $dataTesting->preferensi_studi : ($dataTesting['preferensi_studi'] ?? '-') }}</span>
</div>
</li>
<!-- Cita-Cita / Karier -->
<li class="list-group-item d-flex justify-content-between align-items-center py-2.5">
<div style="max-width: 60%;">
<small class="text-muted d-block">Cita-Cita / Karier</small>
<span class="fst-italic text-dark">"{{ is_object($dataTesting) ? ($dataTesting->cita_cita_raw ?? $dataTesting->cita_cita) : ($dataTesting['cita_cita_raw'] ?? $dataTesting['cita_cita'] ?? '-') }}"</span>
</div>
<div class="text-end">
<small class="text-muted d-block">Pemetaan</small>
<span class="badge bg-success px-2.5 py-1.5 fs-6">{{ is_object($dataTesting) ? $dataTesting->cita_cita : ($dataTesting['cita_cita'] ?? '-') }}</span>
</div>
</li>
<!-- Minat Spesifik -->
<li class="list-group-item d-flex justify-content-between align-items-center py-2.5">
<div style="max-width: 60%;">
<small class="text-muted d-block">Minat Spesifik</small>
<span class="fst-italic text-dark">"{{ is_object($dataTesting) ? ($dataTesting->minat_raw ?? $dataTesting->minat) : ($dataTesting['minat_raw'] ?? $dataTesting['minat'] ?? '-') }}"</span>
</div>
<div class="text-end">
<small class="text-muted d-block">Pemetaan</small>
<span class="badge bg-primary px-2.5 py-1.5 fs-6">{{ is_object($dataTesting) ? $dataTesting->minat : ($dataTesting['minat'] ?? '-') }}</span>
</div>
</li>
</ul>
</div>
<!-- Sisi Kanan: Jalur Keputusan (Rules) -->
<div class="col-lg-5 pl-lg-4 mt-3 mt-lg-0">
<div class="p-3 bg-light rounded border">
<h6 class="font-weight-bold text-dark small mb-2">
<i class="fas fa-sitemap text-info me-1"></i> Jalur Keputusan (Rules)
</h6>
<p class="small text-muted mb-3">
Berikut langkah inferensi yang dilalui kriteria siswa pada *Decision Tree*:
</p>
@if(!empty($rulePath))
<ul class="list-unstyled mb-2">
@foreach($rulePath as $step)
<li class="mb-2">
<span class="badge bg-white text-secondary border px-3 py-2 fs-6 shadow-sm w-100 text-start text-wrap">
<i class="fas fa-angle-right text-primary me-2"></i>{{ $step }}
</span>
</li>
@endforeach
</ul>
<hr class="my-2">
<small class="text-secondary d-block mt-2">
<i class="fas fa-circle-check text-success me-1"></i> Kesimpulan Akhir: <strong class="text-success">{{ $hasilJurusan }}</strong>
</small>
@else
<small class="text-muted d-block italic">Jalur rule tidak tersedia.</small>
@endif
</div>
</div>
</div>
</div>
<!-- Tombol Aksi Bawah -->
<div class="card-footer bg-light py-2 px-4 d-flex justify-content-end gap-2 no-print">
<button type="button" class="btn btn-primary btn-sm rounded-pill font-weight-bold px-4 shadow-sm" onclick="window.print()">
<i class="fa-solid fa-print me-1"></i> Cetak Laporan (PDF)
</button>
</div>
</div>
</div>
@else
<div class="alert alert-warning text-center">
Data hasil rekomendasi tidak ditemukan. Silakan <a href="{{ route('c45.create') }}">input data kembali</a>.
</div>
@endif
</div>
@endsection