> 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-12-laravel-api-dasar/12.1-pengenalan-api-and-format-json.md).

# 12.1 Pengenalan API & Format JSON

## Pengenalan API dan format JSON

Selamat datang di bab terakhir.

Di BAB 12, Anda mulai melihat Laravel dari sisi yang berbeda.

Sebelumnya Anda membangun aplikasi web yang langsung menampilkan halaman Blade.

Sekarang Anda belajar cara Laravel mengirim **data mentah** untuk dipakai aplikasi lain.

### Target belajar BAB 12

Setelah menyelesaikan BAB 12, Anda diharapkan bisa:

* menjelaskan perbedaan route web dan route API
* membuat endpoint sederhana di `api.php`
* mengembalikan data dalam format JSON
* menguji endpoint dengan Postman
* membaca response API dasar

### Apa itu API

API adalah jembatan komunikasi antar aplikasi.

Dengan API, aplikasi tidak harus mengirim tampilan HTML.

Aplikasi cukup mengirim data.

Data itu lalu bisa dipakai oleh:

* aplikasi mobile
* frontend JavaScript
* aplikasi pihak ketiga

### Bedanya dengan halaman web biasa

Saat Anda membuka route web biasa, browser menerima halaman jadi.

Misalnya:

* ada layout
* ada navbar
* ada tabel
* ada tombol

Saat Anda membuka endpoint API, yang diterima biasanya hanya data.

Contohnya:

```json
[
  {
    "id": 1,
    "judul": "Laravel Dasar",
    "penulis": "Ahmad"
  }
]
```

Data seperti ini lebih mudah diproses oleh sistem lain.

### Kenapa API penting

API penting karena aplikasi modern sering dipisah antara backend dan frontend.

Contohnya:

* Laravel menangani data
* React atau Vue menampilkan tampilan
* aplikasi Android mengambil data yang sama

Kalau backend punya API, satu sumber data bisa dipakai banyak client.

### Format JSON

Format yang paling sering dipakai pada API adalah **JSON**.

JSON adalah format teks yang rapi dan mudah dibaca mesin.

Contoh objek JSON:

```json
{
  "id": 1,
  "judul": "Laravel Dasar",
  "stok": 4
}
```

Contoh array JSON:

```json
[
  {
    "id": 1,
    "judul": "Laravel Dasar"
  },
  {
    "id": 2,
    "judul": "Belajar PHP"
  }
]
```

### API pada proyek E-Library

Pada proyek ini, Anda bisa membayangkan API dipakai untuk:

* mengambil daftar buku
* melihat detail buku
* menampilkan data pada aplikasi mobile

Artinya, data buku yang selama ini tampil di Blade juga bisa dibuka lewat endpoint API.

### Gambaran alur sederhana

Pola kerjanya kurang lebih seperti ini:

```
client mengirim request -> Laravel memproses -> Laravel mengirim JSON -> client membaca data
```

Client di sini bisa berupa browser, Postman, atau aplikasi lain.

### Kenapa bab ini diletakkan di akhir

Sebelum belajar API, Anda perlu paham dulu:

* route
* controller
* model
* database
* validasi

Karena API sebenarnya tetap memakai fondasi yang sama.

Bedanya ada pada bentuk respons yang dikirim.

Bukan HTML, tetapi JSON.

{% hint style="info" %}
Kalau Anda sudah paham CRUD web di Laravel, masuk ke API biasanya terasa jauh lebih ringan. Konsep dasarnya tetap sama.
{% endhint %}

### Hal yang perlu Anda pegang sejak awal

Di BAB 12, fokus utamanya bukan tampilan.

Fokus utamanya adalah:

* endpoint
* data
* request
* response

Jadi jangan bingung kalau hasil endpoint API terlihat lebih sederhana.

Itu memang tujuan API.

### Output yang harus terlihat

Setelah menyelesaikan BAB 12, hasil minimal yang seharusnya sudah ada:

* endpoint API berhasil dibuat di `api.php`
* data buku tampil dalam format JSON
* endpoint bisa diuji dari Postman
* Anda bisa membedakan response HTML dan response JSON

### Poin evaluasi bab 12.1

Pastikan Anda sudah memahami hal berikut:

* Saya paham apa itu API.
* Saya paham kenapa API tidak mengirim Blade.
* Saya paham JSON adalah format data yang umum dipakai.
* Saya paham API bisa dipakai oleh banyak jenis client.

Jika sudah jelas, lanjut ke [12.2 Membuat Endpoint di api.php](/laravel/bab-12-laravel-api-dasar/12.2-membuat-endpoint-di-api.php.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-12-laravel-api-dasar/12.1-pengenalan-api-and-format-json.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.
