54 lines
1.4 KiB
PHP
54 lines
1.4 KiB
PHP
<?php
|
|
|
|
// app/Http/Controllers/HomeController.php
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Siswa;
|
|
use App\Models\Kategori;
|
|
|
|
class HomeController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
// Ambil data siswa dan kategori
|
|
$siswa = Siswa::all();
|
|
$kategori = Kategori::all();
|
|
|
|
// Hitung hasil FMCDM
|
|
$hasilSiswa = [];
|
|
foreach ($siswa as $s) {
|
|
$nilaiA = $this->hitungFmcdm($s, 0);
|
|
$nilaiB = $this->hitungFmcdm($s, 0.5);
|
|
$nilaiC = $this->hitungFmcdm($s, 1);
|
|
|
|
$hasilSiswa[] = (object) [
|
|
'nisn' => $s->nisn,
|
|
'nama' => $s->nama,
|
|
'kelas' => $s->kelas,
|
|
'fmcdm_a' => $nilaiA,
|
|
'fmcdm_b' => $nilaiB,
|
|
'fmcdm_c' => $nilaiC,
|
|
'ranking' => 0
|
|
];
|
|
}
|
|
|
|
usort($hasilSiswa, function ($a, $b) {
|
|
return $b->fmcdm_b <=> $a->fmcdm_b;
|
|
});
|
|
|
|
foreach ($hasilSiswa as $index => $s) {
|
|
$s->ranking = $index + 1;
|
|
}
|
|
|
|
// Kirim data ke view
|
|
return view('welcome', compact('siswa', 'kategori', 'hasilSiswa'));
|
|
}
|
|
|
|
private function hitungFmcdm($siswa, $alpha)
|
|
{
|
|
// Implementasi logika perhitungan FMCDM
|
|
return rand(0, 100) / 100; // Contoh nilai acak
|
|
}
|
|
}
|