237 lines
11 KiB
PHP
237 lines
11 KiB
PHP
@extends('layoutuser.app')
|
|
@section('content')
|
|
|
|
<div style="background: linear-gradient(to bottom, #e3f2fd, #bbdefb); min-height: 100vh; padding-top: 5rem; padding-bottom: 5rem;">
|
|
<div class="container">
|
|
<div class="text-center mb-5">
|
|
<p class="d-inline-block border rounded-pill bg-primary text-light py-1 px-4">Detail History</p>
|
|
<h1 class="text-dark mb-4">Detail Simulasi AHP</h1>
|
|
<p class="text-dark mb-4 pb-2">
|
|
Detail lengkap perhitungan simulasi AHP
|
|
</p>
|
|
</div>
|
|
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-12">
|
|
<!-- Informasi Simulasi -->
|
|
<div class="card shadow-sm mb-4">
|
|
<div class="card-header bg-white">
|
|
<h5 class="mb-0">Informasi Simulasi</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<table class="table table-sm">
|
|
<tr>
|
|
<td><strong>Judul</strong></td>
|
|
<td>{{ $simulasi->judul }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Tanggal</strong></td>
|
|
<td>{{ $simulasi->created_at->format('d/m/Y H:i:s') }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Jumlah Makanan</strong></td>
|
|
<td>{{ count($simulasi->pilihan_makanan_ids) }} makanan</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h6 class="mb-3">Makanan yang Dipilih:</h6>
|
|
<ul class="list-unstyled">
|
|
@foreach($makanans as $makanan)
|
|
<li><i class="fas fa-check-circle text-success me-2"></i>{{ $makanan->nama }}</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Hasil Ranking -->
|
|
<div class="card shadow-sm mb-4">
|
|
<div class="card-header bg-white">
|
|
<h5 class="mb-0">Hasil Ranking Makanan</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>Ranking</th>
|
|
<th>Nama Makanan</th>
|
|
<th>Skor Akhir</th>
|
|
<th>Detail Nutrisi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@php
|
|
$rank = 1;
|
|
$makananMap = $makanans->keyBy('id');
|
|
@endphp
|
|
@foreach($simulasi->hasil_rangking as $makananId => $skor)
|
|
@php
|
|
$makanan = $makananMap[$makananId] ?? null;
|
|
@endphp
|
|
@if($makanan)
|
|
<tr>
|
|
<td>{{ $rank++ }}</td>
|
|
<td>{{ $makanan->nama }}</td>
|
|
<td>{{ number_format($skor, 4) }}</td>
|
|
<td>
|
|
<button type="button" class="btn btn-link btn-sm p-0"
|
|
onclick="showDetailMakanan({{ json_encode($makanan) }})">
|
|
<i class="fas fa-info-circle"></i> Lihat Detail
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
@endif
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Matriks Perbandingan Berpasangan -->
|
|
<div class="card shadow-sm mb-4">
|
|
<div class="card-header bg-white">
|
|
<h5 class="mb-0">Matriks Perbandingan Berpasangan</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th>Makanan 1</th>
|
|
<th>Makanan 2</th>
|
|
<th>Nilai Perbandingan</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($pairwise as $pair)
|
|
@php
|
|
$makanan1 = $makananMap[$pair->makanan_1_id] ?? null;
|
|
$makanan2 = $makananMap[$pair->makanan_2_id] ?? null;
|
|
@endphp
|
|
@if($makanan1 && $makanan2)
|
|
<tr>
|
|
<td>{{ $makanan1->nama }}</td>
|
|
<td>{{ $makanan2->nama }}</td>
|
|
<td>{{ number_format($pair->nilai, 4) }}</td>
|
|
</tr>
|
|
@endif
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Hasil Normalisasi -->
|
|
<div class="card shadow-sm mb-4">
|
|
<div class="card-header bg-white">
|
|
<h5 class="mb-0">Hasil Normalisasi dan Bobot Akhir</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th>Makanan</th>
|
|
<th>Nilai Normalisasi</th>
|
|
<th>Bobot Akhir</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($normalisasi as $norm)
|
|
@php
|
|
$makanan = $makananMap[$norm->makanan_id] ?? null;
|
|
@endphp
|
|
@if($makanan)
|
|
<tr>
|
|
<td>{{ $makanan->nama }}</td>
|
|
<td>{{ number_format($norm->nilai_normalisasi, 4) }}</td>
|
|
<td>{{ number_format($norm->bobot_akhir, 4) }}</td>
|
|
</tr>
|
|
@endif
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Tombol Kembali -->
|
|
<div class="text-center">
|
|
<a href="{{ route('user.simulasi.history') }}" class="btn btn-secondary me-2">
|
|
<i class="fas fa-arrow-left me-2"></i>Kembali ke History
|
|
</a>
|
|
<a href="{{ route('user.simulasi.index') }}" class="btn btn-primary">
|
|
<i class="fas fa-plus me-2"></i>Simulasi Baru
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modal Detail Makanan -->
|
|
<div class="modal fade" id="modalDetailMakanan" tabindex="-1">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Detail Makanan</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<img id="makananImage" src="" class="img-fluid rounded" alt="Gambar Makanan">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h6 class="mb-3">Informasi Nutrisi</h6>
|
|
<table class="table table-sm">
|
|
<tr>
|
|
<td>Energi</td>
|
|
<td id="makananEnergi">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Protein</td>
|
|
<td id="makananProtein">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Lemak</td>
|
|
<td id="makananLemak">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Karbohidrat</td>
|
|
<td id="makananKarbohidrat">-</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Natrium</td>
|
|
<td id="makananNatrium">-</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@push('scripts')
|
|
<script>
|
|
function showDetailMakanan(makanan) {
|
|
$('#makananImage').attr('src', makanan.gambar || '/images/no-image.jpg');
|
|
$('#makananEnergi').text(makanan.energi + ' kkal');
|
|
$('#makananProtein').text(makanan.protein + ' g');
|
|
$('#makananLemak').text(makanan.lemak + ' g');
|
|
$('#makananKarbohidrat').text(makanan.karbohidrat + ' g');
|
|
$('#makananNatrium').text(makanan.natrium + ' mg');
|
|
$('#modalDetailMakanan').modal('show');
|
|
}
|
|
</script>
|
|
@endpush
|
|
|
|
@endsection
|