validate([ 'nilai' => 'required|array', ]); $kriterias = Kriteria::all(); $nilai = []; foreach ($kriterias as $baris) { foreach ($kriterias as $kolom) { if ($baris->id != $kolom->id) { PerbandinganKriteria::where([ ['kriteria_id_1', $baris->id], ['kriteria_id_2', $kolom->id] ])->delete(); } } } foreach ($kriterias as $baris) { foreach ($kriterias as $kolom) { if ($baris->id == $kolom->id) { $nilai[$baris->id][$kolom->id] = 1; } elseif (isset($request->nilai[$baris->id][$kolom->id])) { $val = floatval($request->nilai[$baris->id][$kolom->id]); $nilai[$baris->id][$kolom->id] = $val; $nilai[$kolom->id][$baris->id] = 1 / $val; PerbandinganKriteria::updateOrCreate( [ 'kriteria_id_1' => $baris->id, 'kriteria_id_2' => $kolom->id ], [ 'nilai' => $val ] ); } } } Session::put('matriks', $nilai); return redirect()->route('perbandingan'); } public function simpanPerbandingan() { $matriks = Session::get('matriks'); if (!$matriks) { return redirect()->route('perbandingan')->with('error', 'Belum ada data untuk disimpan.'); } Session::put('matriks_perbandingan', $matriks); return redirect()->route('hasil.normalisasi')->with('success', 'Data berhasil disimpan!'); } public function hasilNormalisasi() { $kriterias = Kriteria::all(); $matriks = Session::get('matriks_perbandingan'); if (!$matriks) { return redirect()->route('perbandingan')->with('error', 'Data perbandingan belum tersedia.'); } $jumlahKolom = []; foreach ($kriterias as $kriteria) { $id = $kriteria->id; $jumlahKolom[$id] = 0; foreach ($matriks as $baris) { $jumlahKolom[$id] += $baris[$id]; } } $normalisasi = []; foreach ($kriterias as $baris) { $row = []; foreach ($kriterias as $kolom) { $row[] = $matriks[$baris->id][$kolom->id] / $jumlahKolom[$kolom->id]; } $normalisasi[] = $row; } $bobot = []; foreach ($normalisasi as $baris) { $bobot[] = array_sum($baris) / count($baris); } foreach ($bobot as $index => $value) { BobotKriteria::updateOrCreate( ['kriteria_id' => $kriterias[$index]->id], ['bobot' => $value] ); } Session::put('bobot_kriteria', $bobot); return view('admin.proses.normalisasi', [ 'kriterias' => $kriterias, 'normalisasi' => $normalisasi, 'bobot' => $bobot ]); } }