(Aplikasi Books Store) - Part 3: Delete (Menghapus Buku) dan Tampilan Akhir

Admin
03 October 2025
Framework, Backend Development
5 menit baca
(Aplikasi Books Store) - Part 3: Delete (Menghapus Buku) dan Tampilan Akhir

Kita telah berhasil membuat fitur untuk menampilkan, menambah, dan mengedit data buku. Di bagian terakhir ini, kita akan melengkapi siklus CRUD dengan fitur Delete (menghapus) untuk menghapus data buku dari database. Selain itu, kita juga akan merapikan sedikit tampilan untuk memudahkan navigasi.

Langkah 1: Menghapus Data Buku (Delete)

Menghapus data adalah operasi yang harus dilakukan dengan hati-hati. Kita akan menggunakan method destroy di controller untuk menangani proses ini.

1.1 Membuat Method destroy di Controller

Buka app/Http/Controllers/BookController.php dan tambahkan method destroy.

PHP
// ...
class BookController extends Controller
{
    // ... semua method sebelumnya

    public function destroy(Book $book)
    {
        $book->delete();

        return redirect('/books')->with('success', 'Buku berhasil dihapus!');
    }
}

Sama seperti edit dan update, kita menggunakan Route Model Binding (Book $book) untuk secara otomatis menemukan buku yang akan dihapus. Perintah $book->delete() akan menghapus record dari database.

1.2 Menambahkan Route untuk Delete

Tambahkan route DELETE ke routes/web.php.

PHP
// ...
Route::get('/books/{book}/edit', [BookController::class, 'edit']);
Route::put('/books/{book}', [BookController::class, 'update']);
Route::delete('/books/{book}', [BookController::class, 'destroy']);

Perhatikan bahwa kita menggunakan method DELETE.

1.3 Menambahkan Tombol Hapus di View

Kita akan menambahkan tombol "Hapus" di halaman daftar buku (resources/views/books/index.blade.php). Karena form HTML tidak mendukung method DELETE, kita akan menggunakan form kecil yang disembunyikan.

HTML
<td>
    <a href="/books/{{ $book->id }}/edit">Edit</a>
    <form action="/books/{{ $book->id }}" method="POST" style="display:inline;">
        @csrf
        @method('DELETE')
        <button type="submit" onclick="return confirm('Apakah Anda yakin ingin menghapus buku ini?')" style="border:none; background:none; color:red; cursor:pointer;">Hapus</button>
    </form>
</td>

Klik tombol "Hapus" pada salah satu buku. Sebuah konfirmasi akan muncul. Jika Anda klik "OK", buku akan terhapus dari database dan halaman akan di-refresh.


Langkah 2: Menyempurnakan Tampilan & Navigasi

Agar aplikasi lebih mudah digunakan, mari kita tambahkan beberapa tautan navigasi dan pesan status.

2.1 Menambah Tautan "Tambah Buku"

Tambahkan tautan di index.blade.php yang mengarahkan ke halaman tambah buku.

HTML
<body>
    <h1>Daftar Buku</h1>
    <a href="/books/create">Tambah Buku Baru</a>
    </body>

2.2 Menampilkan Pesan Status (Success Messages)

Kita sudah menggunakan ->with('success', '...') di controller. Sekarang, kita bisa menampilkannya di view index.blade.php.

HTML
<body>
    <h1>Daftar Buku</h1>
    <a href="/books/create">Tambah Buku Baru</a>
    @if (session('success'))
        <div style="background-color: lightgreen; padding: 10px; margin-bottom: 10px;">
            {{ session('success') }}
        </div>
    @endif
    </body>

Pesan ini akan muncul setelah berhasil menambah, mengedit, atau menghapus buku.

Kesimpulan

Selamat! Anda telah berhasil membangun aplikasi Books Store sederhana dengan Laravel, lengkap dengan semua fitur CRUD:

Tutorial ini adalah fondasi yang kuat untuk proyek-proyek Laravel Anda selanjutnya. Anda bisa mengembangkan aplikasi ini lebih jauh dengan fitur-fitur seperti validasi yang lebih canggih, tampilan yang lebih menarik menggunakan CSS, pencarian, dan banyak lagi. Teruslah bereksplorasi!

Tag Artikel

Laravel PHP MySQL Books Store Web Dev CRUD Laravel Deploy web developer Web Development
Jamil Tech Solutions

Jamil Tech Solutions

Tim profesional di Jamil Tech Solutions dengan pengalaman lebih dari 5 tahun dalam pengembangan website dan solusi digital untuk UMKM. Passionate membantu bisnis kecil berkembang melalui teknologi.