From ad790ac178678e07b7941641834703e0a49863d9 Mon Sep 17 00:00:00 2001 From: Zakiaass <117088186+zakiaass@users.noreply.github.com> Date: Tue, 21 May 2024 12:50:19 +0700 Subject: [PATCH] push to git jtipolije --- MIF_E31210529 | 1 + .../Controllers/PerhitunganController.php | 92 +++++------------- public/DataUser/data-user.xlsx | Bin 8573 -> 8514 bytes resources/views/kriteria/kriteria.blade.php | 3 - .../views/subkriteria/subkriteria.blade.php | 3 - routes/web.php | 3 - 6 files changed, 24 insertions(+), 78 deletions(-) create mode 160000 MIF_E31210529 diff --git a/MIF_E31210529 b/MIF_E31210529 new file mode 160000 index 0000000..aca32a8 --- /dev/null +++ b/MIF_E31210529 @@ -0,0 +1 @@ +Subproject commit aca32a8501824847efc9e817814d99aafb18a911 diff --git a/app/Http/Controllers/PerhitunganController.php b/app/Http/Controllers/PerhitunganController.php index 1a4d47e..2b8eedf 100644 --- a/app/Http/Controllers/PerhitunganController.php +++ b/app/Http/Controllers/PerhitunganController.php @@ -7,12 +7,6 @@ use App\Models\SubCriteria; use App\Models\Extracuricullar; use App\Models\LogActivity; -use Carbon\Carbon; -use Illuminate\Support\Facades\Session; -use App\Models\ExtracuricullarSubKriteria; -use App\Http\Controllers\Auth; -use RealRashid\SweetAlert\Facades\Alert; -use Illuminate\Support\Facades\Validator; class PerhitunganController extends Controller { @@ -33,9 +27,8 @@ public function calculateBobotKriteria() $prioritas = $criteria->prioritas; $i = $prioritas - 1; // Karena indeks array dimulai dari 0, sedangkan prioritas dimulai dari 1 - // Iterasi untuk setiap nilai prioritas pada kriteria - for (; $i < $totalKriteria; $i++) { - // Hitung nilai SMARTER + // perulangan untuk setiap nilai prioritas pada kriteria + for ($i ; $i < $totalKriteria; $i++) { $sum += 1 / ($i + 1); } @@ -45,7 +38,7 @@ public function calculateBobotKriteria() $criteria->update(['bobot' => $bobot]); $criteria->save(); - } + } return redirect()->route('kriteria.index')->with('success', 'Bobot Kriteria Berhasil Dihitung dan Disimpan.'); } @@ -55,7 +48,6 @@ 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 = count($subcriterias); @@ -68,12 +60,10 @@ public function calculateBobotSubKriteria() $prioritas = $subcriteria->prioritas; $i = $prioritas - 1; - // Iterasi untuk setiap nilai prioritas pada kriteria - for (; $i < $totalSubKriteria; $i++) { - // Hitung nilai SMARTER + for ($i ; $i < $totalSubKriteria; $i++) { $sum += 1 / ($i + 1); } - // Hitung bobot kriteria menggunakan rumus SMARTER ROC + $bobot = $sum / $totalSubKriteria; $bobotSubKriteria[$subcriteria->nama] = $bobot; @@ -97,30 +87,22 @@ public function penilaian() public function transformasiNilai(Request $request) { - // Ambil data nilai dari subkriteria yang dipilih dari form penilaian $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(); @@ -129,75 +111,67 @@ public function transformasiNilai(Request $request) 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) { - // Jika penyebut bernilai nol - $nilaiUtility[$extracurricularId][$criteriaId] = 0; - } else { - // Perhitungan nilai utility - $utility = 1*(($bobot - $minBobot) / $denominator); - $nilaiUtility[$extracurricularId][$criteriaId] = $utility; - // $nilaiUtility[$extracurricularId][$criteriaId] = number_format($utility, 2, '.', ''); - } + // // rumus nilai utility + // $denominator = $maxBobot - $minBobot; + // if ($denominator == 0) { + // $nilaiUtility[$extracurricularId][$criteriaId] = 0; + // } else { + // $utility = 1*(($bobot - $minBobot) / $denominator); + // $nilaiUtility[$extracurricularId][$criteriaId] = $utility; + // // $nilaiUtility[$extracurricularId][$criteriaId] = number_format($utility, 2, '.', ''); + // } + + $utility = 1*(($bobot - $minBobot) / ($maxBobot - $minBobot)); + $nilaiUtility[$extracurricularId][$criteriaId] = $utility; } } 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 = []; $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] = $utility * $bobotKriteria; // $nilaiAkhir[$extracurricularId][$criteriaId] = number_format($utility * $bobotKriteria, 2, '.', ''); } else { - // Handle jika kriteria tidak ditemukan $nilaiAkhir[$extracurricularId][$criteriaId] = '0'; } } + $totalNilai = array_sum($nilaiAkhir[$extracurricularId]); $totalNilai = min($totalNilai, 100); $totalNilaiAkhir[$extracurricularId]= $totalNilai; // $totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', ''); } - // Membuat koleksi dari nilai akhir yang bersifat multidimenasi menjadi satu dimensi + // Membuat koleksi dari nilai akhir yang bersifat multidimensi menjadi satu dimensi $totalAkhir = collect($nilaiAkhir)->flatten()->sum(); - // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view $criterias = Criteria::all(); $extracuricullars = Extracuricullar::all(); @@ -206,60 +180,49 @@ public function nilaiAkhir(Request $request) public function perangkingan(Request $request) { - // Ambil data nilai utility dari session $nilaiUtility = session('nilaiUtility', []); $criterias = Criteria::all(); $extracuricullars = Extracuricullar::all(); - // Inisialisasi variabel untuk menyimpan nilai akhir $nilaiAkhir = []; $totalNilaiAkhir = []; $totalNilaiAkhirPersen = []; $peringkat = []; foreach ($nilaiUtility as $extracurricularId => $criteriaData) { - $totalNilai = 0; // Inisialisasi nilai total untuk setiap ekstrakurikuler + $totalNilai = 0; 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, '.', ''); - $nilaiAkhir[$extracurricularId][$criteriaId] =$utility * $bobotKriteria; + $nilaiAkhir[$extracurricularId][$criteriaId] = $utility * $bobotKriteria; - // Tambahkan nilai akhir ke total nilai untuk ekstrakurikuler saat ini $totalNilai += $utility * $bobotKriteria; } else { - // Handle jika kriteria tidak ditemukan $nilaiAkhir[$extracurricularId][$criteriaId] = '0'; } } - // Simpan total nilai akhir untuk setiap ekstrakurikuler // $totalNilaiAkhir[$extracurricularId] = number_format($totalNilai, 2, '.', ''); $totalNilaiAkhir[$extracurricularId]= $totalNilai; - // Hitung persentase total nilai akhir $totalPersen = ($totalNilai ) * 100; $totalNilaiAkhirPersen[$extracurricularId] = number_format($totalPersen, 0, '.', ''); - // Simpan peringkat $peringkat[$extracurricularId] = $totalPersen; } - // Urutkan peringkat arsort($peringkat); - // Tampilkan hasil perhitungan nilai akhir ke dalam view return view('perhitungan.perangkingan', compact('criterias', 'extracuricullars', 'nilaiAkhir', 'totalNilaiAkhir', 'totalNilaiAkhirPersen', 'peringkat')); } public function getRiwayatHasil(Request $request) { - // Ambil data riwayat hasil dengan pagination $logsQuery = LogActivity::query(); if (auth()->check() && auth()->user()->role !== 'admin') { @@ -277,10 +240,8 @@ public function getRiwayatHasil(Request $request) }); } - // Lakukan pagination dengan 10 item per halaman $logs = $logsQuery->paginate(10); - // Ambil data dari formulir atau perhitungan Anda $nilaiUtility = session('nilaiUtility', []); // Lakukan perhitungan perangkingan jika ada data @@ -308,15 +269,11 @@ public function getRiwayatHasil(Request $request) arsort($peringkat); - // Ambil id ekstrakurikuler dari peringkat pertama $extracurricularIds = array_keys($peringkat); $extracurricularId = reset($extracurricularIds); - // Periksa apakah id ekstrakurikuler valid if (isset($nilaiAkhir[$extracurricularId])) { $nilaiAkhir = $nilaiAkhir[$extracurricularId]; - - // Simpan ke database jika id ekstrakurikuler valid $userId = auth()->check() ? auth()->user()->id : 1; // Check apakah sudah ada log untuk ekskul peringkat pertama @@ -339,15 +296,12 @@ public function getRiwayatHasil(Request $request) } } - // Tampilkan view hasil perangkingan dan riwayat return view('perhitungan.riwayat-hasil', compact('logs', 'userId', 'extracurricularId', 'nilaiAkhir')); } else { - // Handle jika id ekstrakurikuler tidak valid return redirect()->back()->with('error', 'Ekstrakurikuler tidak valid'); } } - // Jika tidak ada data perhitungan, langsung tampilkan riwayat hasil return view('perhitungan.riwayat-hasil', compact('logs')); } diff --git a/public/DataUser/data-user.xlsx b/public/DataUser/data-user.xlsx index 5c5bb6b5ff9f2e0538e9e637adf3312de2a7c77e..5ee07faddd11f50eabcd5fc0b3ce7c75c45fd679 100644 GIT binary patch delta 1868 zcmV-S2ebJ7Lc&6@$_5EV?nnJ10{{TRlhXzz1e~U68a6_tj|Li<)lVPj8OD!#UKb@XI^smV?gTHBj(*j#A0jIPv95N2qt?^uzFRfIae3r@YX zL$7aCy{e6OEY%q}>DNn|xnGnmGhp2FdPe=yGsGhFfzY%e6vJbi<^v(;9i#f@1ZH(_ z6}8%pI_ojq(&l2V!wdos%`x&c#dR9noeANI5jb@9!U1-Fy#cb|l1^w`aXtY9cwqL> zwLVk2?m==4IFGyivD+DVwjblz_VK{A$K$}ayVJPS?cwQU){RZh%;z9nn==+)tn$87 z@1{goPzI&~>Tzh=cr&}5Tr?A#czlp}cr`VyYX{_T5g>~mS#Qe_A(`{ z-7zkXr1SbO!XyLcU?ZCgJfYJ6rIZYhtn>uy{}Xm|gf++Ivb8L7`W63wK0WM{rio8Y zH}_4)qe9{hH&qb_WlkTGY?4wo9<~1Ykg)ZCViNe`6%>d7sF6_8*mGg+s#!S4p%{t2 zUC;UJMnOSap#eX#`-gXt~n!s_7}%);qwp^sky@>oH-kXoeeV`+dXGXF^Hr4!>iHQw(YDfVjH3VjQxIkT*pxprTbk8pw(Q85*5}^ zJ?r>NvbGMm^m_oDvr+Di{_W3S5Lm^3^cVy|gbFk+Fb>+ZnyiL6`c7JZi34=4anc9E zBnk)#UN~hj+;`wl62V<_k5A#?TLtp2t8R6FZ1Tzvij#H6_gjTdMecvj(0SbG&?QI` zc2o`VES;t31uGlC(&&Vv}8!`E^;`y!Jy(>ieAyiRReOx5NO=dSZGQUFJW} zh$lc5zbQx98P^TV5z}b$g{w~hlaT`ylQ|&{vo;(%0|`a$NBtrL006?1dLK>!3zNwo zEgL-1rygAb005!{000;O000000000000000K9dn3MFG*1S0F$Eb(5GNARB)`J!!H4 z0089x000yK000000000000000DU;J6Ck2+De8iiR{~#3s4U-iiJ_6qxlT{%i2CNSeS5 delta 1946 zcmY+Fc{CJ?9>-@fLz6X9#uyVbmxjhr*0Ckac&-sbS+hhaOC{9J*b*|98Ilg=r?jhGbHA#2pot3R5vNRf#u}_aQb5=g>~1gWOnRUkY>=>suN$ zvN0!FpWpNJMU8Y;E?~V!kENllTD^fb^pG{9T8W4J89wA{^Y_lzZrrJYEi`^bA%|%W z!^rN66cr@#3isI&_&v#ZevGL2nGJ;XqrBdk2RXd9p1vuc9Rhxt93wB5P!serQL+53h+AJToW#QkCyZmj)bXouZsoO!BdaltxzjIi;(;d&60bB!K5c z>#ntC%RYOgbAB`Jc@t%DKxz1GaxnH_@uIm599_XqAg976i z!&EdnV~M)Z{{o#s9!58}*-!5XRC{{_=PF>hqMFsIK!r(k9E!Q1O>W=ozTJ0XQo zX(b(s-$=NabbDQ1Pg#JMD)}(}+W^$S3^{jW=mu%*C8UY$-St6%;u5*ZF54fisnwmW zY#0ua^LSo>>K}HUs!}>!E&?%9p3S`}vR2Ny*6mOb*I>dX35u`e0o|5AwPv+0A9a@6 zZTII?rp#2?ZpKkI(@A%(f?hV(rMfOz()mYUUA|sErU{L>_xWfv{gc7HmBGZXZ=cCG z-tvy+l48}#^^c|DF8OxtfGY#Y#<75Z{bjU30nUeq;%_#c?%wi2Od!SGZyRnIHR)2C zT8s-x{fgyg+EC!(DWm_FsR6 zw?^b6>-AcV!e-_^{Sgy0&0&szpTWIi@?Am|h$66a7a6io1zY0#09qDUhA9U-34+1O z06pO#0Kg1Fa~3^8K49ad1j1T8n|u)xIs1F^-P}lOKVJ-`0gi+ zIIC4d=S#KaY>OWr!gqZBpsuyMqj}ZH;S*R_-(}3yGIDzHauivYeZG!|F+~ya#!oJZ zIQ2a|g1Nk^>=ySXuft#fyw?cX%mEkbGHQHQ^kOd3ZO&{bl1Du{D=m&eey=zmi1(HV zFN$jae&@IvxhODPjC8%u-RXpP#NFhEb6U%ARg7y1^KMo8(BZKb+eY`ymz{MKuXz+J z%}X`#cs{>YM2b3YJpX>m+-nm<7;Bj)B}ePgldk;`FTrrri~3=ngNLhE0p>Zxk&W|z$3E_I%seWYOOh9UrFz}6XPtae*IYpB!}O=!DDG#yZYfEZPh_J2>{H@0>E!S~Cc_V$I4QKcDs% z+Ni~>{XE*<&(rCC@3lqhA@J+EF7O9qSVKZ5JHWldt7^Jo83JOMg=1WzY!NA%}gc21H?ochKf>g;%%3zy1h=tH7fb979>Q6MSL64 znLF}#(aQ@gpDag^rEBRxjP0YkjBzmx@UDGv6?ClTo@wZpayzxf`Wj^G?Jw<5l1!C) zg>YOtQc@v6y$4*Qq+Z-fHV+TDqlQn48OqPJsuFhoyb~}6f?>{90v|S{5bcNe0~y<&3|)lP?G=nVKVo zoE-_DywFXIoW`r@y?@6?K}Q!Eu*4R=pdO*0;qO(yC-$>WR^+Y0|FeH4iX $(document).ready(function() { - // Event listener for the button click $('#calculate-bobot').click(function() { - // Send AJAX request to trigger calculation $.ajax({ type: 'POST', url: '{{ route('kriteria.calculate') }}', @@ -271,7 +269,6 @@ class="badge btn-danger" data-toggle="modal" _token: '{{ csrf_token() }}' }, success: function(response) { - // Reload the page to show updated values location.reload(); }, error: function(xhr, status, error) { diff --git a/resources/views/subkriteria/subkriteria.blade.php b/resources/views/subkriteria/subkriteria.blade.php index 388a7d0..ab0b367 100644 --- a/resources/views/subkriteria/subkriteria.blade.php +++ b/resources/views/subkriteria/subkriteria.blade.php @@ -331,9 +331,7 @@ class="badge btn-danger" data-toggle="modal" @endforeach