Data Master (Peserta Didik)

bismillah aman semua
This commit is contained in:
ghozahimma65 2025-11-12 16:12:58 +07:00
parent 34788caf83
commit ae2368c8f8
9 changed files with 281 additions and 207 deletions

View File

@ -13,63 +13,74 @@ class SiswaController extends Controller
{
public function index()
{
$siswa = Siswa::with(['kelas','wali'])->paginate(10);
return view('admin.siswa.index', compact('siswa'));
$siswas = Siswa::with(['waliMurid', 'kelas'])->orderBy('created_at', 'desc')->get();
return view('admin.siswa.index', compact('siswas'));
}
public function create()
{
$kelas = Kelas::all();
$wali = WaliMurid::all();
return view('admin.siswa.create', compact('kelas','wali'));
$wali_murids = WaliMurid::all();
return view('admin.siswa.create', compact('kelas', 'wali_murids'));
}
public function store(Request $request)
{
$validated = $request->validate([
'nama' => 'required|string|max:100',
'nis' => 'required|string|max:50|unique:siswa,nis',
'tanggal_lahir' => 'required|date',
'kelas_id' => 'required|exists:kelas,id',
'wali_id' => 'required|exists:wali_murid,id',
'foto' => 'nullable|image|max:2048'
'nama' => 'required|string|max:255',
'tempat_lahir' => 'nullable|string|max:255',
'tanggal_lahir' => 'nullable|date',
'alamat' => 'nullable|string',
'kelas_id' => 'nullable|exists:kelas,id',
'wali_id' => 'nullable|exists:wali_murids,id',
'keterangan' => 'nullable|string',
'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
]);
if ($request->hasFile('foto')) {
$validated['foto'] = $request->file('foto')->store('siswa','public');
$validated['foto'] = $request->file('foto')->store('fotosiswa', 'public');
}
Siswa::create($validated);
return redirect()->route('siswa.index')->with('success','Siswa berhasil ditambahkan');
return redirect()->route('siswa.index')->with('success', 'Data peserta didik berhasil ditambahkan.');
}
public function edit(Siswa $siswa)
{
$kelas = Kelas::all();
$wali = WaliMurid::all();
return view('admin.siswa.edit', compact('siswa','kelas','wali'));
$wali_murids = WaliMurid::all();
return view('admin.siswa.edit', compact('siswa', 'kelas', 'wali_murids'));
}
public function update(Request $request, Siswa $siswa)
{
$validated = $request->validate([
'nama' => 'required|string|max:100',
'nis' => 'required|string|max:50|unique:siswa,nis,'.$siswa->id,
'tanggal_lahir' => 'required|date',
'kelas_id' => 'required|exists:kelas,id',
'wali_id' => 'required|exists:wali_murid,id',
'foto' => 'nullable|image|max:2048'
$request->validate([
'nama' => 'required|string|max:255',
'tempat_lahir' => 'nullable|string|max:100',
'tanggal_lahir' => 'nullable|date',
'kelas_id' => 'nullable|exists:kelas,id',
'wali_id' => 'nullable|exists:wali_murids,id',
'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
]);
// simpan foto baru kalau diupload
if ($request->hasFile('foto')) {
if ($siswa->foto && Storage::disk('public')->exists($siswa->foto)) {
Storage::disk('public')->delete($siswa->foto);
}
$validated['foto'] = $request->file('foto')->store('siswa','public');
$fotoPath = $request->file('foto')->store('foto_siswa', 'public');
$siswa->foto = $fotoPath;
}
$siswa->update($validated);
return redirect()->route('siswa.index')->with('success','Siswa berhasil diupdate');
// update data siswa
$siswa->update([
'nama' => $request->nama,
'tempat_lahir' => $request->tempat_lahir,
'tanggal_lahir' => $request->tanggal_lahir,
'kelas_id' => $request->kelas_id,
'wali_id' => $request->wali_id,
]);
return redirect()->route('siswa.index')->with('success', 'Data siswa berhasil diperbarui.');
}
public function destroy(Siswa $siswa)

View File

@ -9,8 +9,9 @@ class Kelas extends Model
protected $table = 'kelas';
protected $fillable = ['nama_kelas','umur_group'];
public function siswa()
public function siswas()
{
return $this->hasMany(Siswa::class);
return $this->hasMany(Siswa::class, 'kelas_id');
}
}

View File

@ -6,12 +6,12 @@
class Siswa extends Model
{
use HasFactory;
protected $fillable = [
'nama',
'nis',
'tempat_lahir',
'tanggal_lahir',
'alamat',
'keterangan',
'kelas_id',
'wali_id',
'foto',
@ -22,7 +22,7 @@ public function kelas()
return $this->belongsTo(Kelas::class);
}
public function wali()
public function waliMurid()
{
return $this->belongsTo(WaliMurid::class, 'wali_id');
}

View File

@ -17,4 +17,10 @@ class WaliMurid extends Model
'no_hp',
'alamat',
];
}
// Tambahin relasi ke siswa
public function siswas()
{
return $this->hasMany(Siswa::class, 'wali_id');
}
}

View File

@ -5,30 +5,52 @@
<h1 class="text-xl font-semibold text-gray-700 mb-4">✏️ Edit Guru</h1>
<form action="{{ route('guru.update', $guru->id) }}" method="POST">
@csrf
@method('PUT')
<div class="mb-4">
<label class="block text-gray-700">Nama</label>
<input type="text" name="nama_guru" value="{{ $guru->nama_guru }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300" required>
</div>
<div class="mb-4">
<label class="block text-gray-700">Bidang</label>
<input type="text" name="bidang" value="{{ $guru->bidang }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300">
</div>
<div class="mb-4">
<label class="block text-gray-700">No HP</label>
<input type="text" name="no_hp" value="{{ $guru->no_hp }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300">
</div>
<div class="mb-4">
<label class="block text-gray-700">Email</label>
<input type="email" name="email" value="{{ $guru->email }}" class="w-full border rounded px-3 py-2 focus:ring focus:ring-green-300">
</div>
<button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">Perbarui</button>
</form>
@csrf
@method('PUT')
<!-- Nama -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">Nama</label>
<input type="text" name="nama"
value="{{ old('nama', $guru->name) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<!-- Bidang -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">Bidang</label>
<input type="text" name="bidang"
value="{{ old('bidang', $guru->bidang) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<!-- No HP -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">No HP</label>
<input type="text" name="no_hp"
value="{{ old('no_hp', $guru->no_hp) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<!-- Email -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">Email</label>
<input type="email" name="email"
value="{{ old('email', $guru->email) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<!-- Tombol -->
<div class="flex justify-end mt-6 gap-3">
<a href="{{ route('guru.index') }}"
class="bg-gray-500 text-white px-5 py-2 rounded hover:bg-gray-600 transition">
Batal
</a>
<button type="submit"
class="bg-green-600 text-white px-5 py-2 rounded hover:bg-green-700 transition">
Perbarui
</button>
</div>
</form>
</div>
@endsection

View File

@ -1,54 +1,68 @@
@extends('layouts.app')
@section('content')
<div class="max-w-xl mx-auto bg-white shadow-md rounded-lg p-6">
<h1 class="text-xl font-semibold mb-4 text-gray-700"> Tambah Peserta Didik</h1>
<div class="bg-white shadow-md rounded-lg p-6 max-w-2xl mx-auto">
<h1 class="text-xl font-semibold text-gray-700 mb-4"> Tambah Peserta Didik</h1>
<form action="{{ route('siswa.store') }}" method="POST" enctype="multipart/form-data" class="space-y-4">
<form action="{{ route('siswa.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div>
<label class="block text-sm font-medium text-gray-600">Nama</label>
<input type="text" name="nama" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
<div class="mb-4">
<label class="block text-gray-600 font-medium mb-2">Nama Anak</label>
<input type="text" name="nama" class="w-full border border-gray-300 rounded p-2" required>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">NIS</label>
<input type="text" name="nis" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-gray-600 font-medium mb-2">Tempat Lahir</label>
<input type="text" name="tempat_lahir" class="w-full border border-gray-300 rounded p-2">
</div>
<div>
<label class="block text-gray-600 font-medium mb-2">Tanggal Lahir</label>
<input type="date" name="tanggal_lahir" class="w-full border border-gray-300 rounded p-2">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Tanggal Lahir</label>
<input type="date" name="tanggal_lahir" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
<div class="mt-4">
<label class="block text-gray-600 font-medium mb-2">Alamat</label>
<textarea name="alamat" class="w-full border border-gray-300 rounded p-2" rows="3"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Kelas</label>
<select name="kelas_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
<option value="">-- Pilih Kelas --</option>
@foreach($kelas as $k)
<option value="{{ $k->id }}">{{ $k->nama }}</option>
@endforeach
</select>
<div class="grid grid-cols-2 gap-4 mt-4">
<div>
<label class="block text-gray-600 font-medium mb-2">Kelas</label>
<select name="kelas_id" class="w-full border border-gray-300 rounded p-2">
<option value="">-- Pilih Kelas --</option>
@foreach ($kelas as $k)
<option value="{{ $k->id }}">{{ $k->nama_kelas }}</option>
@endforeach
</select>
</div>
<div>
<label class="block text-gray-600 font-medium mb-2">Wali Murid</label>
<select name="wali_id" class="w-full border border-gray-300 rounded p-2">
<option value="">-- Pilih Wali Murid --</option>
@foreach ($wali_murids as $wali)
<option value="{{ $wali->id }}">{{ $wali->nama_wali }}</option>
@endforeach
</select>
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Wali Murid</label>
<select name="wali_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
<option value="">-- Pilih Wali Murid --</option>
@foreach($wali as $w)
<option value="{{ $w->id }}">{{ $w->nama }}</option>
@endforeach
</select>
<div class="mt-4">
<label class="block text-gray-600 font-medium mb-2">Keterangan</label>
<input type="text" name="keterangan" class="w-full border border-gray-300 rounded p-2">
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Foto</label>
<input type="file" name="foto" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400">
<div class="mt-4">
<label class="block text-gray-600 font-medium mb-2">Foto</label>
<input type="file" name="foto" class="w-full border border-gray-300 rounded p-2">
</div>
<div class="flex justify-end gap-2">
<a href="{{ route('siswa.index') }}" class="bg-gray-300 px-4 py-2 rounded hover:bg-gray-400">Batal</a>
<div class="flex justify-end mt-6">
<a href="{{ route('siswa.index') }}" class="bg-gray-400 text-white px-4 py-2 rounded hover:bg-gray-500 mr-2">Batal</a>
<button type="submit" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">Simpan</button>
</div>
</form>

View File

@ -1,68 +1,73 @@
@extends('layouts.app')
@section('content')
<div class="max-w-xl mx-auto bg-white shadow-md rounded-lg p-6">
<h1 class="text-xl font-semibold mb-4 text-gray-700">✏️ Edit Peserta Didik</h1>
<div class="bg-white shadow-md rounded-lg p-6 max-w-2xl mx-auto">
<h1 class="text-xl font-semibold text-gray-700 mb-4">✏️ Edit Data Peserta Didik</h1>
<form action="{{ route('siswa.update', $siswa->id) }}" method="POST" enctype="multipart/form-data" class="space-y-4">
@csrf
@method('PUT')
<div>
<label class="block text-sm font-medium text-gray-600">Nama</label>
<input type="text" name="nama" value="{{ old('nama', $siswa->nama) }}"
class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">NIS</label>
<input type="text" name="nis" value="{{ old('nis', $siswa->nis) }}"
class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Tanggal Lahir</label>
<input type="date" name="tanggal_lahir" value="{{ old('tanggal_lahir', $siswa->tanggal_lahir) }}"
class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Kelas</label>
<select name="kelas_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
@foreach($kelas as $k)
<option value="{{ $k->id }}" {{ $siswa->kelas_id == $k->id ? 'selected' : '' }}>
{{ $k->nama }}
</option>
@endforeach
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Wali Murid</label>
<select name="wali_id" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400" required>
@foreach($wali as $w)
<option value="{{ $w->id }}" {{ $siswa->wali_id == $w->id ? 'selected' : '' }}>
{{ $w->nama }}
</option>
@endforeach
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-600">Foto</label>
@if($siswa->foto)
<div class="mb-2">
<img src="{{ asset('storage/'.$siswa->foto) }}" class="w-24 h-24 rounded object-cover">
<form action="{{ route('siswa.update', $siswa->id) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<div class="mb-4">
<label class="block text-gray-700 font-medium">Nama Anak</label>
<input type="text" name="nama" value="{{ old('nama', $siswa->nama) }}"
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
</div>
<div class="mb-4">
<label class="block text-gray-700 font-medium">Tempat Lahir</label>
<input type="text" name="tempat_lahir" value="{{ old('tempat_lahir', $siswa->tempat_lahir) }}"
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
</div>
<div class="mb-4">
<label class="block text-gray-700 font-medium">Tanggal Lahir</label>
<input type="date" name="tanggal_lahir" value="{{ old('tanggal_lahir', $siswa->tanggal_lahir) }}"
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
</div>
<div class="mb-4">
<label class="block text-gray-700 font-medium">Alamat</label>
<textarea name="alamat" rows="2"
class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">{{ old('alamat', $siswa->alamat) }}</textarea>
</div>
<div class="grid grid-cols-2 gap-4 mb-4">
<div>
<label class="block text-gray-700 font-medium">Kelas</label>
<select name="kelas_id" class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
@foreach($kelas as $k)
<option value="{{ $k->id }}" {{ $k->id == $siswa->kelas_id ? 'selected' : '' }}>
{{ $k->nama_kelas }}
</option>
@endforeach
</select>
</div>
@endif
<input type="file" name="foto" class="w-full border rounded px-3 py-2 focus:ring-2 focus:ring-green-400">
<p class="text-xs text-gray-500 mt-1">Kosongkan jika tidak ingin mengubah foto</p>
</div>
<div class="flex justify-end gap-2">
<a href="{{ route('siswa.index') }}" class="bg-gray-300 px-4 py-2 rounded hover:bg-gray-400">Batal</a>
<button type="submit" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">Update</button>
</div>
</form>
<div>
<label class="block text-gray-700 font-medium">Wali Murid</label>
<select name="wali_id" class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
@foreach($wali_murids as $wali)
<option value="{{ $wali->id }}" {{ $wali->id == $siswa->wali_id ? 'selected' : '' }}>
{{ $wali->nama_wali }}
</option>
@endforeach
</select>
</div>
</div>
<div class="mb-4">
<label class="block text-gray-700 font-medium">Foto</label>
<input type="file" name="foto" class="w-full border rounded px-3 py-2 focus:outline-none focus:ring focus:border-green-500">
@if ($siswa->foto)
<img src="{{ asset('storage/' . $siswa->foto) }}" alt="Foto {{ $siswa->nama }}" class="mt-2 w-20 h-20 object-cover rounded">
@endif
</div>
<div class="flex justify-end space-x-2">
<a href="{{ route('siswa.index') }}" class="bg-gray-500 text-white px-4 py-2 rounded hover:bg-gray-600">Batal</a>
<button type="submit" class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700">Perbarui</button>
</div>
</form>
</div>
@endsection

View File

@ -14,49 +14,46 @@ class="bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700 transition">
<thead>
<tr class="bg-green-600 text-white text-left">
<th class="p-2">#</th>
<th class="p-2">Nama</th>
<th class="p-2">NIS</th>
<th class="p-2">Nama Anak</th>
<th class="p-2">Tempat, Tgl Lahir</th>
<th class="p-2">Alamat</th>
<th class="p-2">Kelas</th>
<th class="p-2">Wali Murid</th>
<th class="p-2">Keterangan</th>
<th class="p-2">Foto</th>
<th class="p-2">Aksi</th>
</tr>
</thead>
<tbody>
@forelse ($siswa as $i => $item)
<tr class="border-b hover:bg-gray-50">
<td class="p-2">{{ $i+1 }}</td>
<td class="p-2">{{ $item->nama }}</td>
<td class="p-2">{{ $item->nis }}</td>
<td class="p-2">{{ $item->kelas->nama ?? '-' }}</td>
<td class="p-2">{{ $item->wali->nama ?? '-' }}</td>
<td class="p-2">
@if($item->foto)
<img src="{{ asset('storage/'.$item->foto) }}"
class="w-12 h-12 rounded object-cover">
@else
<span class="text-gray-400">-</span>
@endif
</td>
<td class="p-2 flex gap-2">
<a href="{{ route('siswa.edit', $item->id) }}"
class="bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600">
Edit
</a>
<form action="{{ route('siswa.destroy', $item->id) }}" method="POST" onsubmit="return confirm('Yakin ingin menghapus?')">
@csrf
@method('DELETE')
<button type="submit"
class="bg-red-500 text-white px-3 py-1 rounded hover:bg-red-600">
Hapus
</button>
</form>
</td>
</tr>
@forelse ($siswas as $siswa)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $siswa->nama }}</td>
<td>{{ $siswa->tempat_lahir }}, {{ $siswa->tanggal_lahir }}</td>
<td>{{ $siswa->alamat }}</td>
<td>{{ $siswa->kelas->nama_kelas ?? '-' }}</td>
<td>{{ $siswa->waliMurid->nama_wali ?? '-' }}</td>
<td>{{ $siswa->keterangan ?? '-' }}</td>
<td>
@if ($siswa->foto)
<img src="{{ asset('storage/' . $siswa->foto) }}" alt="{{ $siswa->nama }}" width="50">
@else
-
@endif
</td>
<td>
<a href="{{ route('siswa.edit', $siswa->id) }}" class="text-blue-600 hover:underline">Edit</a>
<form action="{{ route('siswa.destroy', $siswa->id) }}" method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit" class="text-red-600 hover:underline">Hapus</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="7" class="text-center text-gray-500 p-4">Belum ada data siswa</td>
</tr>
<tr>
<td colspan="10" class="text-center text-gray-500 p-4">Belum ada data siswa</td>
</tr>
@endforelse
</tbody>
</table>

View File

@ -1,36 +1,54 @@
@extends('layouts.app')
@section('content')
<div class="bg-white shadow-md rounded-lg p-6">
<h2 class="text-xl font-semibold mb-4">Edit Data Wali Murid</h2>
<div class="bg-white shadow-md rounded-lg p-6 max-w-xl mx-auto">
<h1 class="text-xl font-semibold text-gray-700 mb-4">✏️ Edit Data Wali Murid</h1>
<form action="{{ route('wali-murid.update', $wali_murid->id) }}" method="POST" class="space-y-4">
<form action="{{ route('wali-murid.update', $wali_murid->id) }}" method="POST">
@csrf
@method('PUT')
<div>
<!-- Nama Wali -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">Nama Wali</label>
<input type="text" name="nama_wali" class="w-full border rounded p-2" value="{{ $wali_murid->nama_wali }}" required>
<input type="text" name="nama_wali"
value="{{ old('nama_wali', $wali_murid->nama_wali) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<div>
<!-- Email -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">Email</label>
<input type="email" name="email" class="w-full border rounded p-2" value="{{ $wali_murid->email }}">
<input type="email" name="email"
value="{{ old('email', $wali_murid->email) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<div>
<!-- No HP -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">No HP</label>
<input type="text" name="no_hp" class="w-full border rounded p-2" value="{{ $wali_murid->no_hp }}">
<input type="text" name="no_hp"
value="{{ old('no_hp', $wali_murid->no_hp) }}"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">
</div>
<div>
<!-- Alamat -->
<div class="mb-4">
<label class="block text-gray-700 font-medium">Alamat</label>
<textarea name="alamat" rows="3" class="w-full border rounded p-2">{{ $wali_murid->alamat }}</textarea>
<textarea name="alamat" rows="3"
class="w-full border-gray-300 rounded-lg p-2 focus:ring-green-500 focus:border-green-500">{{ old('alamat', $wali_murid->alamat) }}</textarea>
</div>
<div class="flex justify-end gap-2">
<a href="{{ route('wali-murid.index') }}" class="px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600">Batal</a>
<button type="submit" class="px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700">Update</button>
<!-- Tombol -->
<div class="flex justify-end mt-6 gap-3">
<a href="{{ route('wali-murid.index') }}"
class="bg-gray-500 text-white px-5 py-2 rounded hover:bg-gray-600 transition">
Batal
</a>
<button type="submit"
class="bg-green-600 text-white px-5 py-2 rounded hover:bg-green-700 transition">
Perbarui
</button>
</div>
</form>
</div>