A. Pendahuluan
API, atau Application Programming Interface, merupakan seperangkat aturan dan protokol yang berfungsi sebagai jembatan untuk dua perangkat lunak agar bisa saling bertukar data dan menjalankan fungsi tanpa harus memahami detail internal masing‑masing sistem. Misalnya, ketika sebuah aplikasi cuaca mengambil informasi dari server badan meteorologi, ia menggunakan API untuk meminta data tertentu dan menerima tanggapan dalam format yang sudah disepakati, seperti JSON atau XML . Dengan cara ini, pengembang bisa memanfaatkan layanan eksternal—seperti pembayaran online, integrasi peta, atau autentikasi pihak ketiga—tanpa perlu membangun sistem tersebut dari awal, yang tentu saja mempercepat proses pengembangan dan meningkatkan efisiensi.
Agar bisa tergambar bagaimana konsep API, coba lihat gambar berikut:

Pertama, klien (misalnya aplikasi atau antarmuka pengguna) mengirimkan permintaan (request) ke API—ini seperti memesan nasi goreng di restoran. API menerima request tersebut, lalu memeriksa dan memverifikasi data (validasi), memastikan pesanan sudah lengkap dan benar sebelum diteruskan ke dapur (server). Setelah validasi, API “mewakili” klien dan meneruskan request ke server untuk diproses.
Kemudian, server (bagian backend) menangani pesanan tersebut—mengolah data atau berinteraksi dengan basis data—sama seperti koki menyiapkan nasi goreng. Setelah proses selesai, server mengirimkan hasil atau data (response) kembali ke API. Akhirnya, API menerima response tersebut, mungkin menyesuaikan format atau menambahkan informasi tambahan, lalu menyampaikan hasil akhirnya ke klien. Dengan cara ini, klien bisa mendapatkan data atau hasil aksi tanpa tahu bagaimana server memprosesnya secara detail—semuanya diurus secara transparan oleh API sebagai “pelayan”.
RESTful API adalh turunan dari API yang dirancang mengikuti prinsip arsitektur REST (Representational State Transfer), sebuah gaya pengembangan web yang diperkenalkan oleh Roy Fielding. RESTful API beroperasi melalui protokol HTTP dengan menggunakan metode yang jelas seperti GET untuk mengambil data, POST untuk menambahkan data, PUT atau PATCH untuk memperbarui, dan DELETE untuk menghapus data. Masing-masing “resource” (sumber daya) diidentifikasi dengan URL unik (URI) dan data umumnya dikirim dalam format JSON atau XML, sehingga memudahkan pemahaman dan interoperabilitas antar sistem. Ciri utama RESTful API adalah sifatnya yang stateless, artinya setiap permintaan yang dikirimkan harus mencakup seluruh informasi yang diperlukan tanpa bergantung pada sesi sebelumnya, sehingga server tidak menyimpan konteks antara permintaan.
B. Langkah-Langkah
Pertama, buatlah sebuah project laravel menggunakan laravel installer atau menggunakan composer. Pada tutorial ini kita membuat project baru sebagai contoh (bukan menggunakan project yang ada).
Buatlah sebuah migration dengan menggunakan kode berikut:

Lalu, isi migrasi dengan query berikut:

Setelah dimasukkan seperti gambar, kemudian lakukan migrasi ke database dengan command terminal berikut:

Lalu, buatlah sebuah model dengan command berikut:

Isi model barang dengan kode berikut:

Selanjutnya adalah membuat API Route agar terhubung dengan controller. Pertama, gunakan command terminal berikut:

Jika berhasil, akan muncul seperti berikut:

Lalu, tambahkan dengan kode berikut di routes/api.php

Kedua, membuat sebuah controller yang terhubung ke api. Caranya dengan comman berikut:

Setelah itu, masukkan kode berikut di BarangControler.php




Selanjutnya, kita akan membuat API Resource. Fitur yang memungkinkan untuk mentransformasi model data atau collection menjadi format JSON yang konsisten dan mudah dikustomisasi untuk API response. API Resource berfungsi sebagai layer transformasi antara model Eloquent dan JSON response yang dikirim ke client sehingga dapat digunakan untuk Mengontrol format output JSON, Menyembunyikan field sensitive, Menambahkan field computed dan Membuat response yang konsisten.
Ketik kode berikut di terminal:

Lalu, masukkan kode berikut di barangResource

Untuk menggunakan resource yang telah dibuat di controller, ubah function index() dan show() di ProductController seperti berikut:


Lalu, buatlah folder Requests di app/Http, lalu masukkan kode berikut di file app/Http/Requests/StoreBarangRequest.php


Lalu, buat file di Exceptions/Handler.php, kemudian tambahkan kode berikut di app/Exceptions/Handler.php untuk menangani Exception:


Kemudian, kita akses API yang telah kita rancang. Pertama, download POSTMAN di link: https://www.postman.com/downloads/ Setelah di install, akan seperti ini:

Buka web server di laravel dengan cara ketik command di terminal seperti berikut:

Setelah itu, di aplikasi POSTMAN:
1. Mengambil semua product
URL: http://127.0.0.1:8000/api/barang
Method: GET
Hasilnya akan seperti berikut:

2. Menambahkan Barang
URL: http://127.0.0.1:8000/api/barang
Method: POST
Body JSON:
{
"nama_barang": "Barang 1",
"deskripsi": "Lengkap",
"stock": 50
}
Hasil:

Jika kita memasukkan data yang salah atau nama kolom salah, maka akan seperti berikut:

Jika ingin mendapkan exception handling tersebut, masukkan kode berikut di store() controller


3. Mengambil data berdasarkan ID
URL: http://127.0.0.1:8000/api/barang/1
Method: GET
Hasilnya akan seperti berikut:

Jika ingin menampilkan 404 error saat mengambil data yang salah, tambahkan kode berikut di show() controller:

Maka jika kita mencari ID yang tidak ada dalam database, akan seperti berikut:

4. Update Data
URL: http://localhost:8000/api/products/1
Method: PUT
Masukkan data contoh seperti berikut:
{
"nama_barang": "Barang 1",
"desk": "Barang Habis",
"stock": 0
}
Hasilnya akan seperti berikut:

5. Delete Data
URL: http://localhost:8000/api/products/1
Method: DELETE
Hasilnya adalah seperti berikut:

Link Github: https://github.com/Rezaseptian2311533008/api-reza