From 08662080dfff6f76241bfded7ae5a3cd5e3f9183 Mon Sep 17 00:00:00 2001 From: yulianadewi18 Date: Sat, 3 Feb 2024 11:07:06 +0800 Subject: [PATCH] add kriteria --- .../Controllers/PerhitunganController.php | 29 +- .../views/pages/data_kriteria/form.blade.php | 7 +- .../views/pages/penilaian/form.blade.php | 122 ++++----- .../pages/proses_penilaian/index.blade.php | 249 +++++++++--------- 4 files changed, 216 insertions(+), 191 deletions(-) diff --git a/app/Http/Controllers/PerhitunganController.php b/app/Http/Controllers/PerhitunganController.php index f746c83..450e13b 100644 --- a/app/Http/Controllers/PerhitunganController.php +++ b/app/Http/Controllers/PerhitunganController.php @@ -9,8 +9,9 @@ use App\Models\Penilaian; class PerhitunganController extends Controller { - function index() { - $alternatif = Alternatif::with('penilaian.kriteria')->orderBy('kode_alternatif','ASC')->get(); + function index() + { + $alternatif = Alternatif::with('penilaian.kriteria')->orderBy('kode_alternatif', 'ASC')->get(); $kriteria = Kriteria::get(); $penilaian = Penilaian::with('subKriteria')->get(); // return response()->json($alternatif); @@ -21,7 +22,7 @@ class PerhitunganController extends Controller if ($vkriteria->id == $vpenilaian->id_kriteria) { if ($vkriteria->sifat == "benefit") { $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; - }elseif ($vkriteria->sifat == "cost") { + } elseif ($vkriteria->sifat == "cost") { $minMax[$vkriteria->id][] = $vpenilaian->subKriteria['bobot']; } } @@ -34,7 +35,7 @@ class PerhitunganController extends Controller if ($vkriteria->id == $vpenilaian->id_kriteria) { if ($vkriteria->sifat == "benefit") { //nilai sub_kriteria : nilai maksimal $normalisasi[$vpenilaian->alternatif->guru['nama_guru']][$vkriteria->id] = $vpenilaian->subKriteria['bobot'] / max($minMax[$vkriteria->id]); - }elseif ($vkriteria->sifat == "cost") { //nilai minimal : nilai sub_kriteria + } elseif ($vkriteria->sifat == "cost") { //nilai minimal : nilai sub_kriteria $normalisasi[$vpenilaian->alternatif->guru['nama_guru']][$vkriteria->id] = min($minMax[$vkriteria->id]) / $vpenilaian->subKriteria['bobot']; } } @@ -43,16 +44,26 @@ class PerhitunganController extends Controller // perangkingan foreach ($normalisasi as $key => $vnormalisasi) { - foreach ($kriteria as $key_1 => $vkriteria) { //hasil normalisasi x bobot_kriteria - $rank[$key][] = $vnormalisasi[$vkriteria->id] * $vkriteria->bobot_kriteria; + foreach ($kriteria as $key_1 => $vkriteria) { // hasil normalisasi x bobot_kriteria + // Check if the key exists in the $vnormalisasi array + if (isset($vnormalisasi[$vkriteria->id])) { + $rank[$key][] = $vnormalisasi[$vkriteria->id] * $vkriteria->bobot_kriteria; + } else { + // Handle the case when the key is not found (you can skip it or handle it accordingly) + // For example, you might want to assign a default value or log a message. + $rank[$key][] = 0; // Assign a default value + // or + // log_message('error', 'Key not found: ' . $vkriteria->id); + } } } - foreach ($normalisasi as $key => $value){ //total hasil perangkingan + + foreach ($normalisasi as $key => $value) { //total hasil perangkingan $rank[$key][] = array_sum($rank[$key]); } - asort($rank); //sortir $rank + // asort($rank); //sortir $rank // dd($minMax); - return view('pages.proses_penilaian.index', compact(['kriteria','alternatif','penilaian','minMax','normalisasi','rank'])); + return view('pages.proses_penilaian.index', compact(['kriteria', 'alternatif', 'penilaian', 'minMax', 'normalisasi', 'rank'])); } } diff --git a/resources/views/pages/data_kriteria/form.blade.php b/resources/views/pages/data_kriteria/form.blade.php index 22023b8..77d35fa 100644 --- a/resources/views/pages/data_kriteria/form.blade.php +++ b/resources/views/pages/data_kriteria/form.blade.php @@ -31,7 +31,7 @@ - +
@@ -42,7 +42,10 @@
- +
diff --git a/resources/views/pages/penilaian/form.blade.php b/resources/views/pages/penilaian/form.blade.php index 78e5e85..d268ec7 100644 --- a/resources/views/pages/penilaian/form.blade.php +++ b/resources/views/pages/penilaian/form.blade.php @@ -1,69 +1,69 @@ @extends('layout.master') @section('title', 'Tambah Klasifikasi') - + @section('content') -
-
- @csrf -
-
-
-
- - -
-
-
-
- - -
-
-
- -
- - - - - - @foreach ($kriteria as $item) - - - - - @endforeach -
KriteriaSub Kriteria
- - {{ $loop->iteration }}. {{ $item->nama_kriteria }} - - -
-
-
- -

*Bobot pada setiap Sub Kriteria

- @foreach ($subKriteria as $subs) -
- @endforeach +
+ + @csrf +
+
+
+
+ +
+
+
+ + +
+
+
+ +
+ + + + + + @foreach ($kriteria as $item) + + + + + @endforeach +
KriteriaSub Kriteria
+ + {{ $loop->iteration }}. {{ $item->nama_kriteria }} + + +
+
+
+ +

*Bobot pada setiap Sub Kriteria

+ @foreach ($subKriteria as $subs) +
+ @endforeach +
- - -
+
+ + +
@endsection \ No newline at end of file diff --git a/resources/views/pages/proses_penilaian/index.blade.php b/resources/views/pages/proses_penilaian/index.blade.php index 2176231..dfcb5f1 100644 --- a/resources/views/pages/proses_penilaian/index.blade.php +++ b/resources/views/pages/proses_penilaian/index.blade.php @@ -4,135 +4,146 @@ @push('css') @endpush - + @section('content') -
-
-

1. Data Masing Masing Guru Terhadap Kriteria

-
- - - - - - - - - @foreach ($kriteria as $item) - - @endforeach - - - {{-- +
+
+

1. Data Masing Masing Guru Terhadap Kriteria

+
+
Kode (Ai)KeteranganKode Kriteria
{{ $item->kode_kriteria }}
+ + + + + + + + @foreach ($kriteria as $item) + + @endforeach + + + {{-- @foreach ($alternatif as $alt) - - @foreach ($alt->penilaian as $nilai) - - kriteria->kode_kriteria]['min'] > $nilai->id_sub && $minMaxKriteria[$nilai->kriteria->kode_kriteria]['min'] = $nilai->id_sub; - $minMaxKriteria[$nilai->kriteria->kode_kriteria]['max'] < $nilai->id_sub && $minMaxKriteria[$nilai->kriteria->kode_kriteria]['max'] = $nilai->id_sub - ?> - @endforeach - + + @foreach ($alt->penilaian as $nilai) + + kriteria->kode_kriteria]['min'] > $nilai->id_sub && $minMaxKriteria[$nilai->kriteria->kode_kriteria]['min'] = $nilai->id_sub; + $minMaxKriteria[$nilai->kriteria->kode_kriteria]['max'] < $nilai->id_sub && $minMaxKriteria[$nilai->kriteria->kode_kriteria]['max'] = $nilai->id_sub + ?> + @endforeach + + @endforeach + + --}} + + @forelse ($alternatif as $alt => $valt) + @if(count($valt->penilaian) > 0) + + + + @foreach ($valt->penilaian as $nilai) + @endforeach - - --}} - - @forelse ($alternatif as $alt => $valt) - - - - @foreach ($valt->penilaian as $nilai) - - @endforeach - - @empty - - - - @endforelse - - - - - @foreach ($kriteria as $key => $vkriteria) - - @endforeach - - - - @foreach ($kriteria as $key => $vkriteria) - - @endforeach - - -
Kode (Ai)KeteranganKode Kriteria
{{ $item->kode_kriteria }}
{{ $alt->kode_alternatif }}{{ $alt->guru['nama_guru'] }}{{ $nilai->id_sub }}
{{ $alt->guru['nama_guru'] }}{{ $nilai->id_sub }}
{{ $valt->kode_alternatif }}{{ $valt->guru['nama_guru'] }}{{ $nilai->subKriteria['bobot'] }}
{{ $valt->kode_alternatif }}{{ $valt->guru['nama_guru'] }}{{ $nilai->subKriteria['bobot'] }}
Data Kosong
Nilai Maks{{ max($minMax[$vkriteria->id]) }}
Nilai Min{{ min($minMax[$vkriteria->id]) }}
-
- -

2. Menghitung Nilai Normalisasi

-
- - - - - - - - @foreach ($kriteria as $item) - - @endforeach - - - - @foreach ($normalisasi as $key => $value) - - - @foreach ($value as $key_1 => $value_1) - - @endforeach - + + @endif + @empty + + + + @endforelse + + + + + @foreach ($kriteria as $key => $vkriteria) + @if (isset($minMax[$vkriteria->id]) && is_array($minMax[$vkriteria->id])) + + @else + {{-- Or any default value --}} + @endif @endforeach - -
AlternatifKode Kriteria
{{ $item->kode_kriteria }}
{{ $key }}{{ number_format($value_1 ,2) }}
Data Kosong
Nilai Maks{{ max($minMax[$vkriteria->id]) }}0
-
- -

3. Perankingan

-
- - - - - @foreach ($kriteria as $item) - - @endforeach - - - - - - @foreach ($kriteria as $item) - - @endforeach - - - - @foreach ($rank as $key => $value) - - - @foreach ($value as $key_1 => $value_1) - - @endforeach - - + + + + @foreach ($kriteria as $key => $vkriteria) + @if (isset($minMax[$vkriteria->id]) && is_array($minMax[$vkriteria->id])) + + @else + {{-- Or any default value --}} + @endif @endforeach - -
Kode Kriteria{{ $item->kode_kriteria }}TotalRank
Bobot{{ $item->bobot_kriteria }}
{{ $key }}{{ number_format($value_1 ,2) }}{{ $loop->iteration }}
Nilai Min{{ min($minMax[$vkriteria->id]) }}0
-
+ + + + +
+ +

2. Menghitung Nilai Normalisasi

+
+ + + + + + + + @foreach ($kriteria as $item) + + @endforeach + + + + @foreach ($normalisasi as $key => $value) + + + @foreach ($value as $key_1 => $value_1) + + @endforeach + + @endforeach + +
AlternatifKode Kriteria
{{ $item->kode_kriteria }}
{{ $key }}{{ number_format($value_1 ,2) }}
+
+ +

3. Perankingan

+
+ + + + + @foreach ($kriteria as $item) + + @endforeach + + + + + + @foreach ($kriteria as $item) + + @endforeach + + + + @foreach ($rank as $key => $value) + + + @foreach ($value as $key_1 => $value_1) + + @endforeach + + + @endforeach + +
Kode Kriteria{{ $item->kode_kriteria }}Total
Bobot{{ $item->bobot_kriteria }}
{{ $key }}{{ number_format($value_1 ,2) }}
+
@endsection @push('js')