Perangkingan

This commit is contained in:
Zakiaass 2024-03-16 21:07:28 +07:00
parent aea065ebfe
commit 1560b87cc0
4 changed files with 187 additions and 40 deletions

View File

@ -154,45 +154,6 @@ 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) public function nilaiAkhir(Request $request)
{ {
// Ambil data nilai utility dari session // 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')); 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() public function index()
{ {
// //

View File

@ -35,7 +35,7 @@
<div class="pd-20"> <div class="pd-20">
<h4 class="text-blue h4 mb-0">Perhitungan Nilai Akhir</h4> <h4 class="text-blue h4 mb-0">Perhitungan Nilai Akhir</h4>
</div> </div>
<form method="POST" action=""> <form method="POST" action="{{ route('perangkingan') }}">
@csrf @csrf
<div class="pb-10"> <div class="pb-10">
<div class="table-responsive"> <div class="table-responsive">

View File

@ -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 --}}
<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">Hasil Perangkingan</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>
<th>Nilai Akhir</th>
<th>Presentase Nilai</th>
<th>Rangking</th>
</tr>
</thead>
<tbody>
@forelse ($peringkat as $extracurricularId => $nilaiPersen)
@php
$extracuricullar = $extracuricullars->where('id', $extracurricularId)->first();
$nilaiAkhir = $totalNilaiAkhir[$extracurricularId];
$nilaiPersen = $totalNilaiAkhirPersen[$extracurricularId];
@endphp
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $extracuricullar->nama }}</td>
<td>{{ $nilaiAkhir }}</td>
<td>{{ $nilaiPersen }}%</td>
<td>{{ $loop->iteration }}</td>
</tr>
@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

@ -106,6 +106,7 @@
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::post('nilai-akhir', [PerhitunganController::class, 'nilaiAkhir'])->name('nilaiAkhir');
Route::post('perangkingan', [PerhitunganController::class, 'perangkingan'])->name('perangkingan');
// Route::resource('input-nilai', PenilaianController::class); // Route::resource('input-nilai', PenilaianController::class);