> 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-4-controller/4.4-penjelasan-struktur-method.md).

# 4.4 Penjelasan Struktur Method

## Penjelasan struktur method

Pada bab 4.2 dan 4.3, Anda sudah melihat isi `BukuController` dan route resource yang terhubung ke method bawaan Laravel.

Sekarang saatnya memahami struktur method itu sendiri.

Di Laravel, fungsi yang berada di dalam class disebut **method**.

Sebelum masuk ke logika CRUD yang lebih panjang, Anda perlu paham bagian dasar sebuah method.

### Contoh method di controller

Salah satu method bawaan pada resource controller adalah `index()`.

Contoh sederhananya seperti ini:

```php
public function index()
{
    return 'Ini adalah halaman daftar semua buku.';
}
```

Method ini sangat sederhana.

Namun, dari contoh pendek ini Anda bisa memahami struktur paling penting dalam controller.

### Mengisi method `index()`

Sekarang coba isi method `index()` di `BukuController`.

Gunakan urutan ini.

{% stepper %}
{% step %}

### Buka file `BukuController.php`

Buka folder:

```
app/Http/Controllers
```

Lalu buka file `BukuController.php`.
{% endstep %}

{% step %}

### Cari method `index()`

Di dalam file tersebut, cari bagian:

```php
public function index()
{
    //
}
```

{% endstep %}

{% step %}

### Ubah isi method

Ganti menjadi:

```php
class BukuController extends Controller
{
    public function index()
    {
        return 'Ini adalah halaman daftar semua buku perpustakaan yang dikelola oleh BukuController!';
    }
}
```

Simpan file setelah diubah.
{% endstep %}
{% endstepper %}

### Uji hasilnya di browser

Sebelum menguji, pastikan server Laravel sedang berjalan.

Gunakan salah satu cara berikut:

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

Lalu buka:

* `http://e-library.test/buku`
* atau `http://127.0.0.1:8000/buku`

Jika berhasil, browser akan menampilkan teks dari method `index()`.

### Membedah anatomi method

Sekarang lihat lagi struktur ini:

```php
public function index()
{
    return 'Ini adalah halaman daftar semua buku.';
}
```

Bagian pentingnya adalah:

* `public` — method bisa dipanggil dari luar class, termasuk oleh sistem route Laravel
* `function` — penanda bahwa ini adalah fungsi PHP
* `index` — nama method
* `()` — tempat parameter jika method menerima data
* `{ }` — area tempat Anda menulis logika
* `return` — mengirim hasil kembali ke browser

### Kenapa `return` penting

Dalam controller, `return` adalah bagian yang sangat penting.

Tanpa `return`, method berjalan tetapi tidak mengirim hasil yang jelas ke browser.

Nanti isi `return` bisa berupa:

* teks biasa
* view
* redirect
* response lain dari Laravel

Untuk tahap ini, teks biasa sudah cukup agar Anda memahami alurnya.

### Hubungan method dengan route

Method di controller tidak berjalan sendiri.

Method dipanggil lewat route.

Dalam bab sebelumnya, `Route::resource('buku', BukuController::class);` membuat route berikut:

```
GET /buku -> index()
```

Jadi saat Anda membuka `/buku`, Laravel memanggil method `index()`.

Lalu method itu mengirim hasil lewat `return`.

### Tentang parameter pada method

Tidak semua method selalu kosong seperti `index()`.

Beberapa method bisa menerima parameter.

Contohnya:

```php
public function show(string $id)
{
    return 'Detail buku dengan ID: ' . $id;
}
```

Di contoh ini, `$id` adalah data yang diterima method dari route.

Konsep ini akan sering dipakai saat menampilkan detail, edit, atau hapus data tertentu.

### Troubleshooting yang paling sering

Masalah yang paling sering muncul:

* **`Method App\Http\Controllers\BukuController::indeeex does not exist.`** — nama method salah ketik
* **browser menampilkan error setelah membuka `/buku`** — method `index()` dihapus, rusak, atau tidak valid
* **perubahan tidak muncul** — file belum disimpan
* **syntax error di controller** — ada kurung kurawal, titik koma, atau tanda kutip yang salah

{% hint style="warning" %}
Nama method harus konsisten. Jika route mengarah ke `index()`, maka method di controller juga harus bernama `index`, bukan variasi lain.
{% endhint %}

### Poin evaluasi bab 4.4

Pastikan Anda sudah memahami poin berikut:

* Saya paham bahwa fungsi di dalam class controller disebut method.
* Saya tahu arti bagian `public function index()`.
* Saya paham kurung biasa `()` dipakai untuk parameter.
* Saya paham kurung kurawal `{ }` adalah tempat logika method ditulis.
* Saya paham `return` dipakai untuk mengirim hasil ke browser.
* Saya bisa mengubah isi method `index()` di controller.
* Saya tahu error method tidak ditemukan biasanya berkaitan dengan salah ketik nama method.

Jika semuanya sudah jelas, lanjut ke [4.5 Mengatasi Error Class Not Found](/laravel/bab-4-controller/4.5-mengatasi-error-class-not-found.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-4-controller/4.4-penjelasan-struktur-method.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.
