middleware('auth'); } public function index() { $alternatif = Alternatif::with('penilaian.crips')->get(); $kriteria = Kriteria::with('crips')->orderBy('nama_kriteria','ASC')->get(); $penilaian = Penilaian::with('crips','alternatif')->get(); if (count($penilaian) == 0) { return redirect(route('penilaian.index'))->with('empty','Data Kosong Silahkan Isi Terlbih Dahulu'); } //mencari min max normalisasi foreach ($kriteria as $key => $value) { foreach ($penilaian as $key_1 => $value_1) { if ($value->id == $value_1->crips->kriteria_id) { if ($value->attribut == 'Benefit') { $minMax[$value->id][] = $value_1->crips->bobot; }elseif ($value->attribut == 'Cost') { $minMax[$value->id][] = $value_1->crips->bobot; } } } } //Normalisasi foreach ($penilaian as $key_1 => $value_1) { foreach ($kriteria as $key => $value) { if ($value->id == $value_1->crips->kriteria_id) { if ($value->attribut == 'Benefit') { $normalisasi[$value_1->alternatif->nama_alternatif][$value->id] = $value_1->crips->bobot / max($minMax[$value->id]); }elseif ($value->attribut == 'Cost') { $normalisasi[$value_1->alternatif->nama_alternatif][$value->id] = min($minMax[$value->id]) / $value_1->crips->bobot; } } } } // Perangkingan foreach ($normalisasi as $key => $value) { foreach ($kriteria as $key_1 => $value_1) { $rank[$key][] = $value[$value_1->id] * $value_1->bobot; } } $ranking = $normalisasi; foreach ($normalisasi as $key => $value) { $ranking[$key][] = array_sum($rank[$key]); } // arsort($ranking); $sortedData = collect($ranking)->sortByDesc(function ($value) { return array_sum($value); })->toArray(); // dd($sortedData); return view('admin.perhitungan.index', compact('alternatif','kriteria','normalisasi','sortedData')); } public function downloadPDF() { setlocale(LC_ALL, 'IND'); $tanggal = Carbon::now()->formatLocalized('%A, %d %B %Y'); $alternatif = Alternatif::with('penilaian.crips')->get(); $kriteria = Kriteria::with('crips')->orderBy('nama_kriteria','ASC')->get(); $penilaian = Penilaian::with('crips','alternatif')->get(); if (count($penilaian) == 0) { return redirect(route('penilaian.index')); } //mencari min max normalisasi foreach ($kriteria as $key => $value) { foreach ($penilaian as $key_1 => $value_1) { if ($value->id == $value_1->crips->kriteria_id) { if ($value->attribut == 'Benefit') { $minMax[$value->id][] = $value_1->crips->bobot; }elseif ($value->attribut == 'Cost') { $minMax[$value->id][] = $value_1->crips->bobot; } } } } //Normalisasi foreach ($penilaian as $key_1 => $value_1) { foreach ($kriteria as $key => $value) { if ($value->id == $value_1->crips->kriteria_id) { if ($value->attribut == 'Benefit') { $normalisasi[$value_1->alternatif->nama_alternatif][$value->id] = $value_1->crips->bobot / max($minMax[$value->id]); }elseif ($value->attribut == 'Cost') { $normalisasi[$value_1->alternatif->nama_alternatif][$value->id] = min($minMax[$value->id]) / $value_1->crips->bobot; } } } } // Perangkingan foreach ($normalisasi as $key => $value) { foreach ($kriteria as $key_1 => $value_1) { $rank[$key][] = $value[$value_1->id] * $value_1->bobot; } } $ranking = $normalisasi; foreach ($normalisasi as $key => $value) { $ranking[$key][] = array_sum($rank[$key]); } // arsort($ranking); $sortedData = collect($ranking)->sortByDesc(function ($value) { return array_sum($value); })->toArray(); $pdf = PDF::loadView('admin.perhitungan.perhitungan-pdf',compact('alternatif','kriteria','normalisasi','sortedData','tanggal')); $pdf->setPaper('A3', 'potrait'); return $pdf->stream('perhitungan.pdf'); } }