pluck('kode_kriteria'); return view('pages.dataKriteria', compact('datakriterias')); } public function showKriteria() { return view('pages.tKriteria'); } public function tampile() { return view('pages.editkriteria'); } public function create() { return view('pages.dataKriteria'); } public function store(Request $request) { $validatedData = $request->validate([ 'kodekriteria' => 'required', 'namakriteria' => 'required', ]); $datakriterias = new datakriteria; $datakriterias->kode_kriteria = $validatedData['kodekriteria']; $datakriterias->nama_kriteria = $validatedData['namakriteria']; $datakriterias->save(); return redirect('/datakriteria')->with('success', 'Data kriteria berhasil disimpan.'); } public function edit($id) { $datakriterias = datakriteria::find($id); return view('pages.editkriteria', compact('datakriterias')); } public function hapus($id) { $datakriterias = datakriteria::find($id); if ($datakriterias) { $datakriterias->delete(); return redirect()->back()->with('success', 'Data berhasil dihapus.'); } else { return redirect()->back()->with('error', ' Data gagal dihapus'); } } public function update(Request $request, $id) { $datakriterias = datakriteria::find($id); $datakriterias->kode_kriteria = $request->input('kodekriteria'); $datakriterias->nama_kriteria = $request->input('namakriteria'); $datakriterias->save(); // Redirect kembali ke daftar kriteria atau tampilkan pesan sukses return redirect()->route('datakriteria')->with('success', 'Kriteria berhasil diperbarui.'); } public function cetak() { $judul = 'Laporan Data Kriteria'; $datakriterias = DataKriteria::all(); return view('pages.print', compact('judul', 'datakriterias')); } public function storen(Request $request) { $request->validate([ 'kriteria1' => 'required', 'nilai_bobot' => 'required', 'kriteria2' => 'required', ]); $datakriterias = [ 'kriteria1' => $request->kriteria1, 'kriteria2' => $request->kriteria2, ]; $perbandinganK = perbandingank::where($datakriterias)->first(); if ($perbandinganK) { $perbandinganK->update([ 'nilai_bobot' => $request->nilai_bobot, ]); } else { perbandingank::create($datakriterias + ['nilai_bobot' => $request->nilai_bobot]); } return redirect()->back()->with('success', 'Data berhasil disimpan')->with('tabel-kriteria', true); } public function calculateNormalization() { $datakriterias = datakriteria::all(); $columnTotals = []; $nilaiBobotMatrix = []; $priorities = []; // Hitung nilai bobot dan total per kolom foreach ($datakriterias as $row) { $rowTotal = 0; foreach ($datakriterias as $column) { if ($row->kode_kriteria === $column->kode_kriteria) { $nilai_bobot = 1; // Isi otomatis dengan nilai 1 jika xkriteria dan ykriteria sama } else { $nilai_bobot = perbandingank::where('kriteria1', $row->kode_kriteria) ->where('kriteria2', $column->kode_kriteria) ->value('nilai_bobot'); if (!$nilai_bobot) { $nilai_bobot = perbandingank::where('kriteria1', $column->kode_kriteria) ->where('kriteria2', $row->kode_kriteria) ->value('nilai_bobot'); if (!$nilai_bobot) { $nilai_bobot = 0; // Set nilai_bobot menjadi 0 jika tidak ada data yang ditemukan } else { $nilai_bobot = 1 / floatval($nilai_bobot); // Menghitung nilai kebalikan setelah mengubah ke tipe float } } } $rowTotal += floatval($nilai_bobot); $columnTotals[$column->id] = isset($columnTotals[$column->id]) ? $columnTotals[$column->id] + floatval($nilai_bobot) : floatval($nilai_bobot); $nilaiBobotMatrix[$row->id][$column->id] = floatval($nilai_bobot); } } // Hitung nilai normalisasi dan prioritas foreach ($datakriterias as $rowIndex => $row) { $rowSum = 0; foreach ($datakriterias as $columnIndex => $column) { $normalizedValue = 0; if (isset($columnTotals[$column->id]) && $columnTotals[$column->id] != 0) { $normalizedValue = $nilaiBobotMatrix[$row->id][$column->id] / $columnTotals[$column->id]; } $rowSum += $normalizedValue; } $priority = $rowSum / count($datakriterias); $priorities[$row->id] = $priority; // Simpan nilai prioritas ke database $kriteria = datakriteria::find($row->id); $kriteria->priority = $priority; $kriteria->save(); } foreach ($datakriterias as $rowIndex => $row) { // Hitung prioritas $priority = $rowSum / count($datakriterias); // Simpan hasil prioritas ke database prioritaskriteria::create([ 'kriteria_id' => $row->id, // Sesuaikan dengan kolom yang sesuai di database 'nilai_prioritas' => $priority, // Jika ada kolom lain yang perlu disimpan, tambahkan di sini ]); } // Hitung Lambda Max $lambdaMax = array_sum(array_map(function ($priority, $columnId) use ($columnTotals) { return $priority * $columnTotals[$columnId]; }, $priorities, array_keys($priorities))); // Hitung CI dan CR $CI = ($lambdaMax - count($datakriterias)) / (count($datakriterias) - 1); $RI = 1.12; // Nilai Random Index untuk jumlah kriteria tertentu, sesuaikan dengan tabel RI $CR = $CI / $RI; // Kirim data ke view return view('pages.dataKriteria', compact('datakriterias', 'columnTotals', 'nilaiBobotMatrix', 'priorities', 'lambdaMax', 'CI', 'CR')); } }