MIF_E31210049/resources/views/admin/app/content/hasil/index.blade.php

342 lines
20 KiB
PHP

@include('components.theme.pages.header')
<section>
<?php $ranks = []; ?>
<div class="row mb-4">
<!-- Tabel Normalisasi Bobot Kriteria -->
<div class="col-md-12 mb-3">
<div class="card shadow">
<div class="card-header">
<h6 class="text-primary m-0">Tabel Normalisasi Bobot Kriteria</h6>
</div>
<div class="card-body">
<table class="table table-striped table-bordered">
<thead>
<tr class="text-center">
<th>Kriteria</th>
<th>Bobot Kriteria</th>
<th>Normalisasi Bobot Kriteria</th>
</tr>
</thead>
<tbody class="text-center">
<?php
$total_bobot = 0;
// Hitung total bobot untuk normalisasi
foreach (\App\Models\Kriteria::all() as $bobot_kriteria) {
$total_bobot += $bobot_kriteria->bobot_kriteria;
}
// Lakukan normalisasi bobot kriteria
foreach (\App\Models\Kriteria::all() as $kriteria) {
$normalisasi_bobot = $kriteria->bobot_kriteria / $total_bobot;
?>
<tr>
<td>({{ $kriteria->id_kriteria }}) {{ $kriteria->nama_kriteria }}</td>
<td>{{ $kriteria->bobot_kriteria }}</td>
<td>{{ $normalisasi_bobot }}</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-12 mb-3">
<div class="card shadow">
<div class="card-header">
<h6 class="text-primary m-0">Tabel Penilaian Nasabah</h6>
</div>
<div class="card-body">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th rowspan="2" class="align-middle text-center">No</th>
<th rowspan="2" class="align-middle text-center">Nama Nasabah</th>
<th colspan="{{ \App\Models\Kriteria::count() }}" class="align-middle text-center">Nama
Kriteria</th>
</tr>
<tr>
@foreach (\App\Models\Kriteria::all() as $kri)
<td>({{ $kri->id_kriteria }}) {{ $kri->nama_kriteria }}</td>
@endforeach
</tr>
</thead>
<tbody class="text-center">
@php
$no = 1;
@endphp
@foreach (\App\Models\Alternatif::all() as $alt)
<tr>
<td>{{ $no++ }}</td>
<td>{{ $alt->nama_alternatif }}</td>
@foreach (\App\Models\Nilai::where('alternatif_kode', $alt->id_alternatif)->orderBy('kriteria_kode')->get() as $data_nilai)
<td>{{ $data_nilai->nilai_faktor }}</td>
@endforeach
</tr>
@endforeach
</tbody>
<tfoot class="text-center table-warning">
<tr>
<td colspan="2">Nilai Max</td>
@foreach (\App\Models\Kriteria::all() as $kri)
@php
$max_value = \App\Models\Nilai::where('kriteria_kode', $kri->id_kriteria)->max(
'nilai_faktor',
);
@endphp
<td>{{ $max_value }}</td>
@endforeach
</tr>
<tr>
<td colspan="2">Nilai Min</td>
@foreach (\App\Models\Kriteria::all() as $kri)
@php
$min_value = \App\Models\Nilai::where('kriteria_kode', $kri->id_kriteria)->min(
'nilai_faktor',
);
@endphp
<td>{{ $min_value }}</td>
@endforeach
</tr>
</tfoot>
</table>
</div>
</div>
</div>
<div class="col-md-12 mb-3">
<div class="card shadow">
<div class="card-header">
<h6 class="text-primary m-0">Tabel Perhitungan Utility</h6>
</div>
<div class="card-body">
<table class="table table-striped table-bordered">
<thead>
<tr class="">
<th rowspan="2" class="align-middle text-center">No</th>
<th rowspan="2" class="align-middle text-center">Alternatif</th>
<th colspan="{{ \App\Models\Kriteria::count() }}" class="align-middle text-center">
Kriteria</th>
</tr>
<tr class="">
@foreach (\App\Models\Kriteria::all() as $kri)
<td>({{ $kri->id_kriteria }}) {{ $kri->nama_kriteria }}</td>
@endforeach
</tr>
</thead>
<tbody>
@php
$no = 1;
@endphp
@foreach (\App\Models\Alternatif::all() as $alternatif)
<tr>
<td>{{ $no++ }}</td>
<td>{{ $alternatif->nama_alternatif }}</td>
@foreach (\App\Models\Nilai::where('alternatif_kode', $alternatif->id_alternatif)->orderBy('kriteria_kode')->get() as $data_nilai)
@foreach (\App\Models\Kriteria::where('id_kriteria', $data_nilai->kriteria_kode)->get() as $kriteria)
@if ($kriteria->kriteria_kategori == 'benefit')
@php
$nilai_Cmax = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->max('nilai_faktor');
$nilai_Cmin = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->min('nilai_faktor');
@endphp
<!-- proses nilai utiliti -->
@php
if ($nilai_Cmax - $nilai_Cmin == 0) {
$nilai_utiliti = 0;
} else {
$nilai_utiliti =
($data_nilai->nilai_faktor - $nilai_Cmin) /
($nilai_Cmax - $nilai_Cmin);
}
@endphp
<td>{{ $nilai_utiliti }}</td>
@elseif($kriteria->kriteria_kategori === 'cost')
@php
$nilai_Cmax = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->max('nilai_faktor');
$nilai_Cmin = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->min('nilai_faktor');
@endphp
<!-- proses nilai utiliti -->
@php
if ($nilai_Cmax - $nilai_Cmin == 0) {
$nilai_utiliti = 0;
} else {
$nilai_utiliti =
($nilai_Cmax - $data_nilai->nilai_faktor) /
($nilai_Cmax - $nilai_Cmin);
}
@endphp
<td>{{ $nilai_utiliti }}</td>
@endif
@endforeach
@endforeach
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-12 mb-3">
<div class="card shadow">
<div class="card-header">
<h6 class="text-primary m-0">Tabel Hasil Akhir</h6>
</div>
<div class="card-body">
<table class="table table-striped table-bordered">
<thead>
<tr class="">
<th rowspan="2" class="align-middle text-center">No</th>
<th rowspan="2" class="align-middle text-center">Alternatif</th>
<th colspan="{{ \App\Models\Kriteria::count() }}" class="align-middle text-center">
Kriteria</th>
<th rowspan="2" class="align-middle text-center">Nilai Akhir</th>
</tr>
<tr class="">
@foreach (\App\Models\Kriteria::all() as $kri)
<td>({{ $kri->id_kriteria }}) {{ $kri->nama_kriteria }}</td>
@endforeach
</tr>
</thead>
<tbody>
@php
$no = 1;
$total_bobot = 0;
foreach (\App\Models\Kriteria::all() as $bobot_kriteria) {
$total_bobot += $bobot_kriteria->bobot_kriteria;
}
@endphp
@foreach (\App\Models\Alternatif::all() as $alternatif)
@php
$hasil_preferensi = 0;
@endphp
<tr>
<td>{{ $no++ }}</td>
<td>{{ $alternatif->nama_alternatif }}</td>
@foreach (\App\Models\Nilai::where('alternatif_kode', $alternatif->id_alternatif)->orderBy('kriteria_kode')->get() as $data_nilai)
@foreach (\App\Models\Kriteria::where('id_kriteria', $data_nilai->kriteria_kode)->get() as $kriteria)
@if ($kriteria->kriteria_kategori == 'benefit')
@php
$nilai_Cmax = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->max('nilai_faktor');
$nilai_Cmin = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->min('nilai_faktor');
$normalisasiBobot = $kriteria->bobot_kriteria / $total_bobot;
@endphp
<!-- proses nilai utiliti -->
@php
if ($nilai_Cmax - $nilai_Cmin == 0) {
$nilai_utiliti = 0;
} else {
$nilai_utiliti =
($data_nilai->nilai_faktor - $nilai_Cmin) /
($nilai_Cmax - $nilai_Cmin);
$nilai_preferensi = $nilai_utiliti * $normalisasiBobot;
$hasil_preferensi = $hasil_preferensi + $nilai_preferensi;
}
@endphp
<td>{{ round($nilai_preferensi, 5) }}</td>
@elseif($kriteria->kriteria_kategori === 'cost')
@php
$nilai_Cmax = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->max('nilai_faktor');
$nilai_Cmin = \App\Models\Nilai::where(
'kriteria_kode',
$kriteria->id_kriteria,
)->min('nilai_faktor');
$normalisasiBobot = $kriteria->bobot_kriteria / $total_bobot;
@endphp
<!-- proses nilai utiliti -->
@php
if ($nilai_Cmax - $nilai_Cmin == 0) {
$nilai_utiliti = 0;
} else {
$nilai_utiliti =
($nilai_Cmax - $data_nilai->nilai_faktor) /
($nilai_Cmax - $nilai_Cmin);
$nilai_preferensi = $nilai_utiliti * $normalisasiBobot;
$hasil_preferensi = $hasil_preferensi + $nilai_preferensi;
}
@endphp
<td>{{ round($nilai_preferensi, 5) }}</td>
@endif
@endforeach
@endforeach
<td><?= round($hasil_preferensi, 5) ?></td>
<?php
//masukan nilai hasil-sum, nama-alternatif, kode-alternatif ke dalam variabel $ranks(baris 26)
$rank['hasil_preferensi'] = $hasil_preferensi;
$rank['alternatifNama'] = $alternatif->nama_alternatif;
$rank['alternatifKode'] = $alternatif->id_alternatif;
array_push($ranks, $rank);
?>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-12 mb-3">
<div class="card shadow">
<div class="card-header">
<h6 class="text-primary m-0">Tabel Ranking</h6>
</div>
<div class="card-body">
<table class="table table-striped table-bordered">
<thead>
<tr class="table-warning text-center">
<th>Ranking</th>
<th>Nasabah</th>
<th>Nilai SMART</th>
<th>Keputusan</th>
</tr>
</thead>
<tbody class="text-center">
<?php
$ranking = 1;
rsort($ranks);
foreach ($ranks as $r) {
?>
<tr>
<td class="text-center"><?= $ranking++ ?></td>
<td><?= '(' . $r['alternatifKode'] . ') ' . $r['alternatifNama'] ?></td>
<td><?= number_format($r['hasil_preferensi'], 2) ?></td>
@if ($r['hasil_preferensi'] >= 0.7)
<td class="bg-success text-white">Direkomendasikan</td>
@else
<td class="bg-danger text-white">Tidak Direkomendasikan</td>
@endif
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
@include('components.theme.pages.footer')