Edit & Delete Data
Edit & Delete Data menggunakan Facade DB di Laravel berfokus pada bagaimana kita mengelola pembaruan dan penghapusan data database secara langsung melalui Query Builder (use Illuminate\Support\Facades\DB;) tanpa bergantung pada model Eloquent. Saat mengimplementasikan fitur Edit Data, alur kerja dibagi menjadi dua tahap, yaitu mengambil data spesifik berdasarkan pengenal unik menggunakan DB::table('nama_tabel')->where('id', $id)->first() untuk ditampilkan ke dalam form edit Blade, kemudian mengeksekusi perubahan tersebut menggunakan method update() yang dipadukan dengan data kiriman form ($request->all()) berdasarkan kondisi clause where agar data yang diperbarui benar-benar presisi. Sementara itu, fitur Delete Data memiliki skema kodingan yang jauh lebih ringkas namun membutuhkan tingkat ketelitian yang tinggi, di mana proses penghapusan record dilakukan dengan memanggil fungsi DB::table('nama_tabel')->where('id', $id)->delete(). Penggunaan clause where pada proses hapus ini bersifat wajib dan sangat krusial karena jika terlewat, Laravel akan mengosongkan seluruh isi tabel database tanpa ampun, yang mana setelah proses update maupun delete sukses dieksekusi, Controller akan menutupnya dengan perintah redirect kembali ke halaman utama sambil membawa pesan status sukses (with('success', '...')) sebagai sinyal konfirmasi bagi pengguna.
STUDI KASUS 1 : penjelasan tentang isi dari fungsi function update() dan destroy() pada SiswaController
Tugas ini mencakup implementasi konsep dasar hingga manipulasi database pada framework Laravel, yang diawali dengan penerapan arsitektur clean code melalui pemindahan tiga route berbeda menuju satu gerbang logika terpusat pada method index di SiswaController. Selain penataan rute, tugas ini juga mendokumentasikan skema migrasi data database secara bertahap lewat phpMyAdmin, yang meliputi pembuatan tabel t_kelas, penambahan field baru seperti lokasi_ruangan dan nama_walkel, modifikasi panjang karakter tipe data, hingga mengubah nama field menjadi nama_wali_kelas. Seluruh rangkaian studi kasus ini ditutup dengan penyusunan logika bisnis manipulasi data menggunakan Facade DB di Controller untuk menjalankan fungsi pembaruan data pada method update() melalui tahap validasi, serta penghapusan data secara permanen berdasarkan ID spesifik pada method destroy(), lengkap dengan penyediaan feedback berupa pesan sukses bagi pengguna.
Update():
Fungsi ini bertugas untuk menjalankan proses validasi pada setiap inputan yang diterima dari form, lalu mencari record data yang sesuai di tabel kelas berdasarkan ID-nya agar sistem bisa melakukan pembaruan data lama menjadi data terbaru di dalam database. Fungsi ini akan memproses permintaan perubahan data dengan cara memvalidasi input terlebih dahulu, kemudian secara otomatis memperbarui kolom-kolom pada tabel kelas sesuai dengan ID yang ditargetkan agar informasi di database tetap akurat. Tujuan utama dari fungsi ini adalah untuk memastikan bahwa data yang dikirimkan pengguna sudah benar melalui tahap validasi, sebelum akhirnya sistem mengeksekusi perintah update pada baris data spesifik di tabel kelas sesuai parameter ID yang dikirimkan.
Destroy:
Fungsi ini berfungsi untuk menghapus record data secara permanen dari tabel kelas dengan memanfaatkan parameter ID sebagai acuan pencarian data, yang mana setelah proses hapus selesai, sistem akan mengembalikan pengguna ke halaman utama. Cara kerja fungsi ini adalah dengan mengidentifikasi ID data yang ingin dihapus dari tabel kelas, kemudian menjalankan perintah delete pada database dan memberikan notifikasi sukses atau gagal kepada pengguna melalui pesan flash. Melalui fungsi ini, sistem dapat menghapus data tertentu secara spesifik berdasarkan ID-nya, sehingga data yang tidak lagi diperlukan dalam tabel kelas bisa dihilangkan secara permanen sekaligus memberikan umpan balik berupa status penghapusan data.
STUDI KASUS 2 : Implementasikan Edit dan Delete untuk tabel t_kelas
Code Edit() & Update() t_kelas di Controller:
<<<public function edit(Request $request, $id)
{
$siswa = DB::table('t_kelas')->find($id);
return view('siswa.form', compact('siswa'));
}
public function update(Request $request, $id)
{
$request->validate([
'nama_kelas' => 'required',
'jurusan' => 'required',
'lokasi_ruangan' => 'required',
'nama_wali_kelas' => 'required',
]);
$input = $request->all();
unset($input['_token']);
unset($input['_method']);
$status = DB::table('t_kelas')->where('id', $id)->update($input);
if ($status) {
return redirect('/siswa')->with('success', 'Data berhasil diubah');
} else {
return redirect('/siswa/edit/' . $id)->with('error', 'Data gagal
diubah');
}
}
Code Edit t_kelas di Views:
<<<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Form Siswa</title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
background: linear-gradient(135deg, #5b7fff, #3c8ce7);
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
form {
background-color: #ffffff;
padding: 25px 35px;
border-radius: 12px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
width: 420px;
}
h1 {
text-align: center;
color: #3c8ce7;
margin-bottom: 20px;
}
input[type="text"],
select {
width: 100%;
padding: 8px;
margin: 5px 0 15px;
border: 1px solid #ccc;
border-radius: 5px;
outline: none;
transition: 0.3s;
}
input[type="text"]:focus,
select:focus {
border-color: #3c8ce7;
}
input[type="radio"] {
margin-right: 5px;
}
label {
font-weight: bold;
color: #333;
}
input[type="submit"] {
background-color: #3c8ce7;
color: #fff;
border: none;
padding: 10px;
width: 100%;
border-radius: 6px;
cursor: pointer;
font-weight: bold;
transition: background-color 0.3s;
}
input[type="submit"]:hover {
background-color: #2b6ad1;
}
</style>
</head>
<body>
<form action="{{ url('siswa/' . $siswa->id) }}" method="POST">
@csrf
@method('PATCH')
<h1>Form Siswa</h1>
<label>Nama Kelas</label>
<input type="text" name="nama_kelas" placeholder="Contoh: XI RPL
1" required value="{{ old('nama_kelas')}}">
<label>Jurusan</label>
<input type="text" name="jurusan" placeholder="Contoh: Rekayasa
Perangkat Lunak" required value="{{ old('jurusan') }}">
<label>Lokasi Ruangan</label>
<input type="text" name="lokasi_ruangan" placeholder="Contoh:
Ruang 201" required value="{{ old('lokasi_ruangan') }}">
<label>Nama Wali Kelas</label>
<input type="text" name="nama_wali_kelas" placeholder="Contoh: Ibu
Rani" required value="{{ old('nama_wali_kelas') }}">
<button type="submit">Simpan</button>
</form>
</body>
</html>
Tampilan Percobaan Edit t_kelas :
Tampilan awal:
Tampilan pengisian data Edit:
Dari pengujian Edit t_kelas bisa dilihat bahwa data dengan no 1 yaitu xi rpl 1 berhasil diedit dengan lokasi ruangan beserta nama wali kelasnya seperti output berikut:
Tampilan setelah di Edit:
Code Destroy() t_kelas di Controller:
<<<public function destroy($id)
{
$status = DB::table('t_kelas')->where('id', $id)->delete();
if ($status) {
return redirect('/siswa')->with('success', 'Data berhasil dihapus');
} else {
return redirect('/siswa')->with('error', 'Data gagal dihapus');
}
}
Code button Delete t_kelas di Views:
<<<<td>
<form action="{{ url('/siswa', $row->id ) }}" method="POST">
@method('DELETE')
@csrf
<button type="submit">Delete</button>
</form>
</td>
Tampilan Percobaan Delete t_kelas :
Tampilan awal:
Dari pengujian Delete t_kelas bisa dilihat bahwa data dengan no 12 yaitu xi rpl 4 berhasil di hapus dengan output dibawah ini: