$criteria) { $sum = 0; // Iterasi untuk setiap nilai prioritas pada kriteria for ($i = $key; $i < $totalKriteria; $i++) { // Hitung nilai SMARTER $sum += 1 / ($i + 1); } // Hitung bobot kriteria menggunakan rumus SMARTER ROC $bobot = $sum / $totalKriteria; $bobotKriteria[$criteria->nama] = $bobot; $criteria->update(['bobot' => $bobot]); $criteria->save(); } return redirect()->route('kriteria.index')->with('success', 'Bobot Kriteria Berhasil Dihitung dan Disimpan.'); } public function calculateBobotSubKriteria() { $criterias = Criteria::all(); foreach ($criterias as $criteria) { // Ambil semua sub-kriteria untuk kriteria ini $subcriterias = SubCriteria::where('criteria_id', $criteria->id)->get(); $totalSubKriteria = $subcriterias->count(); $bobotSubKriteria = []; // Hitung bobot untuk setiap sub-kriteria foreach ($subcriterias as $key => $subcriteria) { $sum = 0; // Iterasi untuk setiap nilai prioritas pada kriteria for ($i = $key; $i < $totalSubKriteria; $i++) { // Hitung nilai SMARTER $sum += 1 / ($i + 1); } // Hitung bobot kriteria menggunakan rumus SMARTER ROC $bobot = $sum / $totalSubKriteria; $bobotSubKriteria[$subcriteria->nama] = $bobot; $subcriteria->update(['bobot' => $bobot]); $subcriteria->save(); } } return redirect()->route('subkriteria.index')->with('success', 'Bobot Sub Kriteria Berhasil Dihitung dan Disimpan.'); } public function penilaian() { $criterias = Criteria::all(); $extracuricullars = Extracuricullar ::all(); $subcriterias = Subcriteria::all(); return view('penilaian.input-nilai', compact('criterias','extracuricullars','subcriterias')); } public function transformasiNilai(Request $request) { // Ambil data nilai dari subkriteria yang dipilih dari form $subcriteriaData = $request->input('subcriteria'); // Inisialisasi variabel untuk menyimpan nilai hasil transformasi $transformedValues = []; // 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); // Ambil bobot dari subkriteria yang dipilih $bobot = $subcriteria->bobot; // Simpan hasil transformasi nilai ke dalam array $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(); return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues')); } public function nilaiUtility(Request $request) { // Ambil data transformasi nilai dari session $transformedValues = session('transformedValues', []); // Inisialisasi variabel untuk menyimpan nilai utility $nilaiUtility = []; 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'); // 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] = number_format($utility, 2, '.', ''); } } } session(['nilaiUtility' => $nilaiUtility]); // 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')); } // 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() { // } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { // } /** * Display the specified resource. */ public function show(string $id) { // } /** * Show the form for editing the specified resource. */ public function edit(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // } /** * Remove the specified resource from storage. */ public function destroy(string $id) { // } }