From aea065ebfe3bba3e1cbbcabb58a7b89ffca6ad99 Mon Sep 17 00:00:00 2001 From: Zakiaass <117088186+zakiaass@users.noreply.github.com> Date: Sat, 16 Mar 2024 18:14:10 +0700 Subject: [PATCH] Nilai Akhir --- .../Controllers/PerhitunganController.php | 79 +++++++++++++++- .../views/perhitungan/nilai-akhir.blade.php | 89 +++++++++++++++++++ .../views/perhitungan/nilai-utility.blade.php | 3 +- routes/web.php | 1 + 4 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 resources/views/perhitungan/nilai-akhir.blade.php diff --git a/app/Http/Controllers/PerhitunganController.php b/app/Http/Controllers/PerhitunganController.php index 69e1962..e85f397 100644 --- a/app/Http/Controllers/PerhitunganController.php +++ b/app/Http/Controllers/PerhitunganController.php @@ -139,11 +139,13 @@ public function nilaiUtility(Request $request) } else { // Lakukan perhitungan nilai utility $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 $criterias = Criteria::all(); $extracuricullars = Extracuricullar::all(); @@ -152,6 +154,81 @@ public function nilaiUtility(Request $request) 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() { // diff --git a/resources/views/perhitungan/nilai-akhir.blade.php b/resources/views/perhitungan/nilai-akhir.blade.php new file mode 100644 index 0000000..69a21c9 --- /dev/null +++ b/resources/views/perhitungan/nilai-akhir.blade.php @@ -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 --}} +
+
+
+ +
+
+

Perhitungan Nilai Akhir

+
+
+ @csrf +
+
+ + + + + + @foreach ($criterias as $criteria) + + @endforeach + + + + + @forelse ($extracuricullars as $extracuricullar) + + + + @foreach ($criterias as $criteria) + + @endforeach + + @empty + + + + @endforelse + +
NoEkstrakurikuler{{ $criteria->nama }}Nilai Akhir
{{ $loop->iteration }}{{ $extracuricullar->nama }} + @php + $akhir = $nilaiAkhir[$extracuricullar->id][$criteria->id] ?? null; + @endphp + {{ $akhir }} + {{ $totalNilaiAkhir[$extracuricullar->id] }}
Tidak ada data.
+
+
+ +
+
+
+
+
+
+
+ +
+
+@endsection diff --git a/resources/views/perhitungan/nilai-utility.blade.php b/resources/views/perhitungan/nilai-utility.blade.php index 5efce4e..e285328 100644 --- a/resources/views/perhitungan/nilai-utility.blade.php +++ b/resources/views/perhitungan/nilai-utility.blade.php @@ -35,7 +35,7 @@

Perhitungan Nilai Utility

-
+ @csrf
@@ -62,6 +62,7 @@ {{ $utility }} @endforeach + @empty Tidak ada data. diff --git a/routes/web.php b/routes/web.php index 95477c5..4cf4a69 100644 --- a/routes/web.php +++ b/routes/web.php @@ -105,6 +105,7 @@ Route::get('input-nilai', [PerhitunganController::class, 'penilaian'])->name(('penilaian.input-nilai')); Route::post('transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('transformasiNilai'); Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility'); + Route::post('nilai-akhir', [PerhitunganController::class, 'nilaiAkhir'])->name('nilaiAkhir'); // Route::resource('input-nilai', PenilaianController::class);