> For the complete documentation index, see [llms.txt](https://learn.devlabss.my.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.devlabss.my.id/laravel/bab-2-mengenal-routing/2.5-mengatasi-error-404-not-found.md).

# 2.5 Mengatasi Error 404 Not Found

## Mengatasi error 404 Not Found

`404 Not Found` adalah error yang sangat sering muncul saat belajar routing.

Kabar baiknya, error ini biasanya jelas penyebabnya.

Dalam banyak kasus, URL yang dibuka memang belum cocok dengan route yang ada.

### Kapan 404 muncul

Error `404` muncul saat browser meminta alamat yang tidak ditemukan oleh Laravel.

Contoh:

* route belum pernah dibuat
* URL yang diketik salah
* parameter wajib tidak diisi

Jika Laravel tidak menemukan route yang cocok, Laravel akan menampilkan halaman `404 Not Found`.

### Contoh kasus paling sederhana

Misalnya Anda membuka:

```
http://e-library.test/rak-buku
```

Tetapi di `routes/web.php` belum ada route `/rak-buku`.

Akibatnya, Laravel menolak request itu dan menampilkan `404`.

### Sebelum mulai

Pastikan server proyek sedang berjalan:

* buka **Laragon** lalu klik **Start All**
* atau jalankan `php artisan serve` dari folder proyek

Jika server mati, masalahnya bukan `404`. Browser justru tidak akan bisa terhubung ke aplikasi.

### Memicu error 404 dengan sengaja

Sekarang coba buka URL yang belum terdaftar.

1. Buka browser.
2. Jika memakai Laragon, akses `http://e-library.test/rak-buku`.
3. Jika memakai `php artisan serve`, akses `http://127.0.0.1:8000/rak-buku`.

Jika route itu belum ada, Laravel menampilkan halaman `404 Not Found`.

Ini normal.

### Memperbaiki error 404

Sekarang daftarkan route yang belum ada tadi.

Tambahkan kode berikut di bagian bawah file `routes/web.php`:

```php
Route::get('/rak-buku', function () {
    return 'Selamat datang di halaman Rak Buku Perpustakaan!';
});
```

Lalu simpan file dengan `Ctrl + S`.

Setelah itu, kembali ke browser dan tekan `F5`.

Jika berhasil, halaman `404` hilang dan diganti dengan:

```
Selamat datang di halaman Rak Buku Perpustakaan!
```

### Kenapa route baru langsung menyelesaikan masalah

Laravel selalu mencocokkan request dengan daftar route yang ada.

Saat Anda membuka `/rak-buku`, Laravel mencari route yang cocok di `routes/web.php`.

Jika route belum ada, hasilnya `404`.

Jika route sudah ditambahkan dan method-nya sesuai, Laravel langsung menjalankan route itu.

### Penyebab 404 yang paling sering

Jika Anda merasa route sudah ditulis tetapi hasilnya masih `404`, cek tiga hal ini:

1. **File belum disimpan**\
   Tekan `Ctrl + S` lalu refresh browser.
2. **URL tidak sama persis**\
   Contoh: route memakai `/rak-buku`, tetapi browser membuka `/rakbuku`.
3. **Route ditulis di file yang salah**\
   Untuk halaman web biasa, route harus ditulis di `routes/web.php`.

### Bedanya 404 dengan server mati

Ini penting agar tidak tertukar:

* **404** berarti aplikasi Laravel aktif, tetapi route tidak ditemukan
* **server mati** berarti browser tidak bisa menjangkau aplikasi sama sekali

Jadi, kalau Anda melihat halaman `404`, itu tandanya Laravel sebenarnya sedang berjalan.

{% hint style="info" %}
Jika error berubah dari `404` menjadi teks hasil route, berarti masalahnya memang ada pada route yang belum terdaftar.
{% endhint %}

### Hubungannya dengan bab sebelumnya

Error `404` juga bisa muncul saat memakai route parameter.

Contohnya:

* route `/buku/{id}` akan gagal jika URL tidak sesuai pola
* route yang belum pernah dibuat akan gagal walau server aktif

Karena itu, saat debugging route, selalu cek:

* method request
* bentuk URL
* isi file `routes/web.php`

### Poin evaluasi bab 2.5

Pastikan Anda sudah memahami poin berikut:

* Saya paham `404 Not Found` berarti route tidak ditemukan.
* Saya berhasil memicu `404` dengan membuka URL yang belum terdaftar.
* Saya berhasil memperbaiki `404` dengan menambahkan route baru.
* Saya tahu route web biasa ditulis di `routes/web.php`.
* Saya tahu beda antara error `404` dan server yang tidak menyala.

Jika semua sudah jelas, lanjut ke [2.6 Checkpoint: Uji Pemahamanmu Sebelum Lanjut!](/laravel/bab-2-mengenal-routing/2.6-checkpoint-uji-pemahamanmu-sebelum-lanjut.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.devlabss.my.id/laravel/bab-2-mengenal-routing/2.5-mengatasi-error-404-not-found.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
