diff --git a/app/Http/Controllers/PerhitunganController.php b/app/Http/Controllers/PerhitunganController.php index 6f745ca..69e1962 100644 --- a/app/Http/Controllers/PerhitunganController.php +++ b/app/Http/Controllers/PerhitunganController.php @@ -87,17 +87,6 @@ public function penilaian() public function transformasiNilai(Request $request) { - $validator = Validator::make($request->all(), [ - 'subcriteria.*.*' => 'required', - ], [ - 'subcriteria.*.*.required' => 'Semua dropdown pada kriteria harus diisi.', - 'subcriteria.*.*.exists' => 'Pilihan dropdown tidak valid.', - ]); - - if ($validator->fails()) { - return redirect()->back()->withErrors($validator)->withInput(); - } - // Ambil data nilai dari subkriteria yang dipilih dari form $subcriteriaData = $request->input('subcriteria'); @@ -117,6 +106,10 @@ public function transformasiNilai(Request $request) $transformedValues[$extracurricularId][$criteriaId] = $bobot; } } + + // Simpan data transformasi nilai ke dalam session + session(['transformedValues' => $transformedValues]); + // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view $criterias = Criteria::all(); $extracuricullars = Extracuricullar::all(); @@ -124,36 +117,42 @@ public function transformasiNilai(Request $request) return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues')); } - // public function transformasiNilai(Request $request) - // { - // // Ambil data nilai dari subkriteria yang dipilih dari form - // $subcriteriaData = $request->input('subcriteria'); + public function nilaiUtility(Request $request) + { + // Ambil data transformasi nilai dari session + $transformedValues = session('transformedValues', []); - // // Inisialisasi variabel untuk menyimpan nilai hasil transformasi - // $transformedValues = []; + // Inisialisasi variabel untuk menyimpan nilai utility + $nilaiUtility = []; - // // Lakukan transformasi nilai berdasarkan bobot subkriteria - // foreach ($subcriteriaData as $extracurricularId => $criteriaData) { - // foreach ($criteriaData as $criteriaId => $subcriteriaId) { - // // Ambil data sub-kriteria berdasarkan ID yang dipilih dari form - // $subcriteria = SubCriteria::findOrFail($subcriteriaId); + foreach ($transformedValues as $extracurricularId => $criteriaData) { + foreach ($criteriaData as $criteriaId => $bobot) { + // Temukan bobot terbesar dan terkecil dari subkriteria + $maxBobot = SubCriteria::where('criteria_id', $criteriaId)->max('bobot'); + $minBobot = SubCriteria::where('criteria_id', $criteriaId)->min('bobot'); - // // Ambil bobot dari subkriteria yang dipilih - // $bobot = $subcriteria->bobot; + // Periksa apakah penyebut bernilai nol + $denominator = $maxBobot - $minBobot; + if ($denominator == 0) { + // Tangani jika penyebut bernilai nol + $nilaiUtility[$extracurricularId][$criteriaId] = 0; // Atau nilai lainnya sesuai kebutuhan + } else { + // Lakukan perhitungan nilai utility + $utility = (($bobot - $minBobot) / $denominator); + $nilaiUtility[$extracurricularId][$criteriaId] = $utility; + } + } + } - // // Simpan hasil transformasi nilai ke dalam array - // $transformedValues[$extracurricularId][$criteriaId] = $bobot; - // } - // } + // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view + $criterias = Criteria::all(); + $extracuricullars = Extracuricullar::all(); - // // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view - // $criterias = Criteria::all(); - // $extracuricullars = Extracuricullar::all(); + // Tampilkan hasil perhitungan nilai utility ke dalam view + return view('perhitungan.nilai-utility', compact('criterias', 'extracuricullars', 'nilaiUtility')); + } - // return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues')); - // } - - public function index() + public function index() { // } diff --git a/app/Http/Controllers/TransformasiNilaiController.php b/app/Http/Controllers/TransformasiNilaiController.php deleted file mode 100644 index e3ba6ab..0000000 --- a/app/Http/Controllers/TransformasiNilaiController.php +++ /dev/null @@ -1,72 +0,0 @@ - - Penilaian + Perhitungan -
  • Nilai Akhir
  • Hasil Perangkingan
  • - + --}} diff --git a/resources/views/penilaian/input-nilai.blade.php b/resources/views/penilaian/input-nilai.blade.php index f41e85e..ba6d0d0 100644 --- a/resources/views/penilaian/input-nilai.blade.php +++ b/resources/views/penilaian/input-nilai.blade.php @@ -1,7 +1,7 @@ @extends('layout.main') @section('body') @php - $menu = 'Data Penilaian'; + $menu = 'Data Perhitungan'; $pageTitle = 'Data Input Penilaian'; @endphp diff --git a/resources/views/perhitungan/nilai-utility.blade.php b/resources/views/perhitungan/nilai-utility.blade.php new file mode 100644 index 0000000..5efce4e --- /dev/null +++ b/resources/views/perhitungan/nilai-utility.blade.php @@ -0,0 +1,87 @@ +@extends('layout.main') +@section('body') + @php + $menu = 'Data Perhitungan'; + $pageTitle = 'Perhitungan Nilai Utility'; + @endphp + + @include('layout.navbar') + @include('layout.sidebar') + + {{-- Main Content --}} +
    +
    +
    + +
    +
    +

    Perhitungan Nilai Utility

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

    Hasil Transformasi Nilai

    -
    + @csrf
    diff --git a/routes/web.php b/routes/web.php index 5768fe7..95477c5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -104,6 +104,7 @@ Route::post('/subkriteria/calculate', [PerhitunganController::class, 'calculateBobotSubKriteria'])->name('subkriteria.calculate'); 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::resource('input-nilai', PenilaianController::class);