From 1560b87cc0b4fc2c4d253981649a9a34e18fad5d Mon Sep 17 00:00:00 2001 From: Zakiaass <117088186+zakiaass@users.noreply.github.com> Date: Sat, 16 Mar 2024 21:07:28 +0700 Subject: [PATCH] Perangkingan --- .../Controllers/PerhitunganController.php | 136 +++++++++++++----- .../views/perhitungan/nilai-akhir.blade.php | 2 +- .../views/perhitungan/perangkingan.blade.php | 88 ++++++++++++ routes/web.php | 1 + 4 files changed, 187 insertions(+), 40 deletions(-) create mode 100644 resources/views/perhitungan/perangkingan.blade.php diff --git a/app/Http/Controllers/PerhitunganController.php b/app/Http/Controllers/PerhitunganController.php index e85f397..6c56bfe 100644 --- a/app/Http/Controllers/PerhitunganController.php +++ b/app/Http/Controllers/PerhitunganController.php @@ -154,45 +154,6 @@ 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 @@ -229,6 +190,103 @@ public function nilaiAkhir(Request $request) return view('perhitungan.nilai-akhir', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir')); } + public function perangkingan(Request $request) + { + // Ambil data nilai utility dari session + $nilaiUtility = session('nilaiUtility', []); + + $criterias = Criteria::all(); + $extracuricullars = Extracuricullar::all(); + + // Inisialisasi variabel untuk menyimpan nilai akhir + $nilaiAkhir = []; + $totalNilaiAkhir = []; + $totalNilaiAkhirPersen = []; + $peringkat = []; + + foreach ($nilaiUtility as $extracurricularId => $criteriaData) { + $totalNilai = 0; // Inisialisasi nilai total untuk setiap ekstrakurikuler + + 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 ke total nilai untuk ekstrakurikuler saat ini + $totalNilai += $utility * $bobotKriteria; + } else { + // Handle jika kriteria tidak ditemukan + $nilaiAkhir[$extracurricularId][$criteriaId] = '0'; + } + } + + // Simpan total nilai akhir untuk setiap ekstrakurikuler + $totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', ''); + + // Hitung persentase total nilai akhir + $totalPersen = ($totalNilai ) * 100; // di sini 100 adalah jumlah maksimum bobot + $totalNilaiAkhirPersen[$extracurricularId] = number_format($totalPersen, 2, '.', ''); + + // Simpan peringkat + $peringkat[$extracurricularId] = $totalPersen; + } + + // Urutkan peringkat + arsort($peringkat); + + // Tampilkan hasil perhitungan nilai akhir ke dalam view + return view('perhitungan.perangkingan', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir', 'totalNilaiAkhirPersen', 'peringkat')); + } + + + + // public function perangkingan(Request $request) + // { + // // Ambil data nilai utility dari session + // $nilaiUtility = session('nilaiUtility', []); + + // $criterias = Criteria::all(); + // $extracuricullars = Extracuricullar::all(); + + // // Inisialisasi variabel untuk menyimpan nilai akhir + // $nilaiAkhir = []; + // $totalNilaiAkhir = []; + // $totalNilaiAkhirPersen = []; // Tambahkan deklarasi variabel untuk menyimpan nilai akhir dalam persen + + // foreach ($nilaiUtility as $extracurricularId => $criteriaData) { + // $totalNilai = 0; // Inisialisasi nilai total untuk setiap ekstrakurikuler + + // 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 ke total nilai untuk ekstrakurikuler saat ini + // $totalNilai += $utility * $bobotKriteria; + // } else { + // // Handle jika kriteria tidak ditemukan + // $nilaiAkhir[$extracurricularId][$criteriaId] = '0'; + // } + // } + + // // Simpan total nilai akhir untuk setiap ekstrakurikuler + // $totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', ''); + + // // Hitung persentase total nilai akhir + // $totalPersen = ($totalNilai) * 100; + // $totalNilaiAkhirPersen[$extracurricularId] = $totalPersen; + // } + + // // Tampilkan hasil perhitungan nilai akhir ke dalam view + // return view('perhitungan.perangkingan', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir', 'totalNilaiAkhirPersen')); + // } + public function index() { // diff --git a/resources/views/perhitungan/nilai-akhir.blade.php b/resources/views/perhitungan/nilai-akhir.blade.php index 69a21c9..74572c0 100644 --- a/resources/views/perhitungan/nilai-akhir.blade.php +++ b/resources/views/perhitungan/nilai-akhir.blade.php @@ -35,7 +35,7 @@

Perhitungan Nilai Akhir

-
+ @csrf
diff --git a/resources/views/perhitungan/perangkingan.blade.php b/resources/views/perhitungan/perangkingan.blade.php new file mode 100644 index 0000000..e430198 --- /dev/null +++ b/resources/views/perhitungan/perangkingan.blade.php @@ -0,0 +1,88 @@ +@extends('layout.main') +@section('body') + @php + $menu = 'Data Perhitungan'; + $pageTitle = 'Hasil Perangkingan'; + @endphp + + @include('layout.navbar') + @include('layout.sidebar') + + {{-- Main Content --}} +
+
+
+ +
+
+

Hasil Perangkingan

+
+ + @csrf +
+
+ + + + + + + + + + + + @forelse ($peringkat as $extracurricularId => $nilaiPersen) + @php + $extracuricullar = $extracuricullars->where('id', $extracurricularId)->first(); + $nilaiAkhir = $totalNilaiAkhir[$extracurricularId]; + $nilaiPersen = $totalNilaiAkhirPersen[$extracurricularId]; + @endphp + + + + + + + + @empty + + + + @endforelse + +
NoEkstrakurikulerNilai AkhirPresentase NilaiRangking
{{ $loop->iteration }}{{ $extracuricullar->nama }}{{ $nilaiAkhir }}{{ $nilaiPersen }}%{{ $loop->iteration }}
Tidak ada data.
+ {{--
+
+ +
+
--}} +
+
+ +
+
+ +
+
+@endsection diff --git a/routes/web.php b/routes/web.php index 4cf4a69..0bc3d4d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -106,6 +106,7 @@ 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::post('perangkingan', [PerhitunganController::class, 'perangkingan'])->name('perangkingan'); // Route::resource('input-nilai', PenilaianController::class);