Nilai Akhir

This commit is contained in:
Zakiaass 2024-03-16 18:14:10 +07:00
parent 417f376921
commit aea065ebfe
4 changed files with 170 additions and 2 deletions

View File

@ -139,11 +139,13 @@ public function nilaiUtility(Request $request)
} else { } else {
// Lakukan perhitungan nilai utility // Lakukan perhitungan nilai utility
$utility = (($bobot - $minBobot) / $denominator); $utility = (($bobot - $minBobot) / $denominator);
$nilaiUtility[$extracurricularId][$criteriaId] = $utility; $nilaiUtility[$extracurricularId][$criteriaId] = number_format($utility, 2, '.', '');
} }
} }
} }
session(['nilaiUtility' => $nilaiUtility]);
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
$criterias = Criteria::all(); $criterias = Criteria::all();
$extracuricullars = Extracuricullar::all(); $extracuricullars = Extracuricullar::all();
@ -152,6 +154,81 @@ public function nilaiUtility(Request $request)
return view('perhitungan.nilai-utility', compact('criterias', 'extracuricullars', 'nilaiUtility')); return view('perhitungan.nilai-utility', compact('criterias', 'extracuricullars', 'nilaiUtility'));
} }
// public function nilaiAkhir(Request $request)
// {
// // Ambil data nilai utility dari session
// $nilaiUtility = session('nilaiUtility', []);
// // Inisialisasi variabel untuk menyimpan nilai akhir
// $nilaiAkhir = [];
// foreach ($nilaiUtility as $extracurricularId => $criteriaData) {
// $totalNilaiAkhir = 0; // Inisialisasi total nilai akhir untuk ekstrakurikuler saat ini
// foreach ($criteriaData as $criteriaId => $utility) {
// // Temukan bobot kriteria
// $criteria = Criteria::find($criteriaId);
// if ($criteria) {
// // Lakukan perhitungan nilai akhir
// $bobotKriteria = $criteria->bobot;
// $nilaiAkhir[$extracurricularId][$criteriaId] = number_format($utility * $bobotKriteria, 2, '.', '');
// // Tambahkan nilai akhir kriteria ke total
// $totalNilaiAkhir += $nilaiAkhir[$extracurricularId][$criteriaId];
// } else {
// // Handle jika kriteria tidak ditemukan
// $nilaiAkhir[$extracurricularId][$criteriaId] = '0';
// }
// }
// // Simpan total nilai akhir untuk ekstrakurikuler saat ini
// $nilaiAkhir[$extracurricularId]['total'] = number_format($totalNilaiAkhir, 2, '.', '');
// }
// // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
// $criterias = Criteria::all();
// $extracuricullars = Extracuricullar::all();
// // Tampilkan hasil perhitungan nilai akhir ke dalam view
// return view('perhitungan.nilai-akhir', compact('criterias', 'extracuricullars', 'nilaiAkhir'));
// }
public function nilaiAkhir(Request $request)
{
// Ambil data nilai utility dari session
$nilaiUtility = session('nilaiUtility', []);
// Inisialisasi variabel untuk menyimpan nilai akhir
$nilaiAkhir = [];
$totalNilaiAkhir = [];
foreach ($nilaiUtility as $extracurricularId => $criteriaData) {
foreach ($criteriaData as $criteriaId => $utility) {
// Temukan bobot kriteria
$criteria = Criteria::find($criteriaId);
if ($criteria) {
// Lakukan perhitungan nilai akhir
$bobotKriteria = $criteria->bobot;
$nilaiAkhir[$extracurricularId][$criteriaId] = number_format($utility * $bobotKriteria, 2, '.', '');
} else {
// Handle jika kriteria tidak ditemukan
$nilaiAkhir[$extracurricularId][$criteriaId] = '0';
}
}
$totalNilai = array_sum($nilaiAkhir[$extracurricularId]);
$totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', '');
}
$totalAkhir = collect($nilaiAkhir)->flatten()->sum();
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
$criterias = Criteria::all();
$extracuricullars = Extracuricullar::all();
// Tampilkan hasil perhitungan nilai akhir ke dalam view
return view('perhitungan.nilai-akhir', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir'));
}
public function index() public function index()
{ {
// //

View File

@ -0,0 +1,89 @@
@extends('layout.main')
@section('body')
@php
$menu = 'Data Perhitungan';
$pageTitle = 'Perhitungan Nilai Akhir';
@endphp
@include('layout.navbar')
@include('layout.sidebar')
{{-- Main Content --}}
<div class="main-container">
<div class="pd-ltr-20 xs-pd-20-10">
<div class="min-height-200px">
<div class="page-header">
<div class="row">
<div class="col-md-6 col-sm-12">
<div class="title">
<h4>{{ $menu }}</h4>
</div>
<nav aria-label="breadcrumb" role="navigation">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ route('penilaian.input-nilai') }}">Input Penilaian</a></li>
@if (isset($pageTitle))
<li class="breadcrumb-item active" aria-current="page">{{ $pageTitle }}</li>
@else
<li class="breadcrumb-item active" aria-current="page"></li>
@endif
</ol>
</nav>
</div>
</div>
</div>
<div class="card-box mb-30">
<div class="pd-20">
<h4 class="text-blue h4 mb-0">Perhitungan Nilai Akhir</h4>
</div>
<form method="POST" action="">
@csrf
<div class="pb-10">
<div class="table-responsive">
<table class="data-table table stripe hover nowrap">
<thead>
<tr>
<th>No</th>
<th>Ekstrakurikuler</th>
@foreach ($criterias as $criteria)
<th>{{ $criteria->nama }}</th>
@endforeach
<th>Nilai Akhir</th>
</tr>
</thead>
<tbody>
@forelse ($extracuricullars as $extracuricullar)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $extracuricullar->nama }}</td>
@foreach ($criterias as $criteria)
<td>
@php
$akhir = $nilaiAkhir[$extracuricullar->id][$criteria->id] ?? null;
@endphp
{{ $akhir }}
</td>
@endforeach
<td>{{ $totalNilaiAkhir[$extracuricullar->id] }}</td>
@empty
<tr>
<td colspan="5" class="text-center">Tidak ada data.</td>
</tr>
@endforelse
</tbody>
</table>
<div class="col-sm-12">
<div class="input-group mb-3 mx-auto">
<button type="submit" class="btn btn-primary btn-lg btn-block">Hasil Perangkingan</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="footer-wrap pd-20 mb-20 card-box">
<strong>Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER</strong>
</div>
</div>
</div>
@endsection

View File

@ -35,7 +35,7 @@
<div class="pd-20"> <div class="pd-20">
<h4 class="text-blue h4 mb-0">Perhitungan Nilai Utility</h4> <h4 class="text-blue h4 mb-0">Perhitungan Nilai Utility</h4>
</div> </div>
<form method="POST" action=""> <form method="POST" action="{{ route('nilaiAkhir') }}">
@csrf @csrf
<div class="pb-10"> <div class="pb-10">
<div class="table-responsive"> <div class="table-responsive">
@ -62,6 +62,7 @@
{{ $utility }} {{ $utility }}
</td> </td>
@endforeach @endforeach
<td></td>
@empty @empty
<tr> <tr>
<td colspan="5" class="text-center">Tidak ada data.</td> <td colspan="5" class="text-center">Tidak ada data.</td>

View File

@ -105,6 +105,7 @@
Route::get('input-nilai', [PerhitunganController::class, 'penilaian'])->name(('penilaian.input-nilai')); Route::get('input-nilai', [PerhitunganController::class, 'penilaian'])->name(('penilaian.input-nilai'));
Route::post('transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('transformasiNilai'); Route::post('transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('transformasiNilai');
Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility'); Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility');
Route::post('nilai-akhir', [PerhitunganController::class, 'nilaiAkhir'])->name('nilaiAkhir');
// Route::resource('input-nilai', PenilaianController::class); // Route::resource('input-nilai', PenilaianController::class);