diff --git a/app/Http/Controllers/SiswaController.php b/app/Http/Controllers/SiswaController.php index df7908b..63aa8f6 100644 --- a/app/Http/Controllers/SiswaController.php +++ b/app/Http/Controllers/SiswaController.php @@ -21,28 +21,31 @@ class SiswaController extends Controller public function store(Request $request) { - $request->validate([ - 'nama' => 'required', - 'kelas' => 'required', - 'umur' => 'required|integer', - 'absen' => 'required|integer', - ]); + $request->validate([ + 'nama' => 'required', + 'kelas' => 'required', + 'umur' => 'required|integer', + 'absen' => 'required|integer', + ]); - $siswaBaru = [ - 'nama' => $request->nama, - 'kelas' => $request->kelas, - 'umur' => $request->umur, - 'absen' => $request->absen, - ]; + $siswas = session('siswas', []); - $siswas = session('siswas', []); - $siswas[] = $siswaBaru; - session(['siswas' => $siswas]); + // Index mulai dari 1 + $index = count($siswas) + 1; - return redirect()->route('siswa.index')->with('success', 'Data berhasil ditambahkan!'); + $siswas[$index] = [ + 'nama' => $request->nama, + 'kelas' => $request->kelas, + 'umur' => $request->umur, + 'absen' => $request->absen, + ]; + + session(['siswas' => $siswas]); + + return redirect()->route('siswa.index')->with('success', 'Data berhasil ditambahkan!'); } - public function edit($id) + public function edit($id) { $siswas = session('siswas', []); if (!isset($siswas[$id])) return redirect()->route('siswa.index')->with('error', 'Data tidak ditemukan'); @@ -73,4 +76,34 @@ class SiswaController extends Controller return redirect()->route('siswa.index')->with('success', 'Data siswa berhasil diupdate!'); } + + public function show($id) + { + $siswa = [ + 1 => [ + 'nama' => 'syifa', + 'kelas' => 'XIII', + 'umur' => 19, + 'absen' => 34 + ], + 2 => [ + 'nama' => 'cipa', + 'kelas' => 'XIII SIJA A', + 'umur' => 18, + 'absen' => 35 + ] + ]; + + // Jika data tidak ditemukan, tampilkan halaman khusus + if (!isset($siswa[$id])) { + return view('siswa.notfound', ['id' => $id]); + } + + return view('siswa.detail', [ + 'id' => $id, + 'siswa' => $siswa[$id] + ]); } +} + + diff --git a/resources/views/siswa/datasiswa.blade.php b/resources/views/siswa/datasiswa.blade.php new file mode 100644 index 0000000..10b17e6 --- /dev/null +++ b/resources/views/siswa/datasiswa.blade.php @@ -0,0 +1,106 @@ + + + + Data Siswa + + + +
+

Data Siswa

+ + + + + + + + + + + + + @foreach ($siswa as $index => $item) + + + + + + + + + @endforeach + +
NoNamaKelasUmurAbsenAksi
{{ $index + 1 }}{{ $item->nama }}{{ $item->kelas }}{{ $item->umur }}{{ $item->absen }} + Edit +
+
+ + Tambah Data Siswa +
+ + diff --git a/resources/views/siswa/detail.blade.php b/resources/views/siswa/detail.blade.php new file mode 100644 index 0000000..aa2a0b6 --- /dev/null +++ b/resources/views/siswa/detail.blade.php @@ -0,0 +1,96 @@ + + + + Data Siswa + + + +
+

Data Siswa

+ + + + + + + + + + + + + + + + +
NoNamaKelasUmurAbsen
{{ $id }}{{ $siswa['nama'] }}{{ $siswa['kelas'] }}{{ $siswa['umur'] }}{{ $siswa['absen'] }}
+
+
+ + diff --git a/resources/views/siswa/notfound.blade.php b/resources/views/siswa/notfound.blade.php new file mode 100644 index 0000000..0433991 --- /dev/null +++ b/resources/views/siswa/notfound.blade.php @@ -0,0 +1,60 @@ + + + + Data Siswa Tidak Ditemukan + + + +
+

Data siswa dengan ID {{ $id }} tidak ditemukan

+
+ Kembali ke daftar siswa +
+ + diff --git a/routes/web.php b/routes/web.php index 7bdda0c..ce4db41 100644 --- a/routes/web.php +++ b/routes/web.php @@ -17,4 +17,7 @@ Route::get('/siswa/create', [SiswaController::class, 'create'])->name('siswa.cre Route::post('/siswa', [SiswaController::class, 'store'])->name('siswa.store'); Route::get('/siswa/{id}/edit', [SiswaController::class, 'edit'])->name('siswa.edit'); -Route::put('/siswa/{id}', [SiswaController::class, 'update'])->name('siswa.update'); \ No newline at end of file +Route::put('/siswa/{id}', [SiswaController::class, 'update'])->name('siswa.update'); + +Route::get('/datasiswa/{id}', [SiswaController::class, 'show']); +Route::get('/datasiswa/{id}', [SiswaController::class, 'show'])->name('siswa.show'); \ No newline at end of file