PHP

Cara Membuat REST API dengan Laravel 13 untuk Pemula: Panduan Lengkap dengan Contoh

13 November 2026 Ditulis oleh Admin Artikel & Tutorial

REST API merupakan salah satu teknologi yang banyak digunakan dalam pengembangan aplikasi modern. Dengan REST API, sebuah aplikasi dapat saling bertukar data dengan aplikasi lain, meskipun dibangun menggunakan bahasa pemrograman atau platform yang berbeda.

Misalnya, aplikasi Android dapat mengambil data mahasiswa dari server, sementara aplikasi web menggunakan database yang sama untuk mengelola informasi tersebut.

Laravel 13 menyediakan berbagai fitur untuk membantu developer membangun REST API dengan lebih mudah dan terstruktur. Framework ini mendukung pengelolaan routing, controller, validasi data, hingga respons dalam format JSON.

Pada tutorial kali ini, kita akan belajar membuat REST API menggunakan Laravel 13 dan MySQL. Sebagai contoh, kita akan membangun REST API Data Mahasiswa yang memiliki fitur untuk menampilkan, menambahkan, mengubah, dan menghapus data.

Tutorial ini cocok untuk mahasiswa maupun web developer pemula yang ingin memahami dasar pengembangan backend menggunakan Laravel.

1. Apa Itu REST API?

REST API (Representational State Transfer Application Programming Interface) adalah pendekatan untuk membangun layanan yang memungkinkan aplikasi saling berkomunikasi melalui HTTP.

REST API umumnya menggunakan format JSON (JavaScript Object Notation) untuk mengirim dan menerima data.

Sebagai contoh, ketika aplikasi Android ingin menampilkan daftar mahasiswa, aplikasi tersebut dapat mengirimkan permintaan ke server melalui endpoint API. Server kemudian mengambil data dari database dan mengirimkannya kembali dalam bentuk JSON.

Berikut beberapa HTTP method yang sering digunakan dalam REST API:

Geser tabel
Method Fungsi
GET Mengambil data
POST Menambahkan data
PUT Memperbarui seluruh data
PATCH Memperbarui sebagian data
DELETE Menghapus data

Dengan pendekatan ini, satu backend Laravel dapat digunakan oleh berbagai aplikasi, seperti website, aplikasi Android, maupun frontend berbasis JavaScript.

2. Persiapan Membuat REST API Laravel 13

Sebelum mulai membuat proyek, pastikan beberapa perangkat lunak berikut sudah tersedia:

  • PHP minimal 8.3.
  • Composer untuk mengelola dependency PHP.
  • MySQL sebagai database.
  • Laravel 13.
  • Visual Studio Code atau editor kode lainnya.
  • Postman untuk menguji REST API.
  • Jika sebelumnya sudah mengikuti tutorial Laravel 13, sebagian besar kebutuhan tersebut mungkin sudah tersedia di komputer.

3. Membuat Proyek Laravel 13

Pertama, buka terminal atau Command Prompt, kemudian jalankan perintah berikut untuk membuat proyek Laravel 13:

composer create-project laravel/laravel api-mahasiswa "^13.0"

Setelah proses instalasi selesai, masuk ke direktori proyek:

cd api-mahasiswa

Kemudian jalankan server Laravel:

php artisan serve

Jika berhasil, aplikasi dapat diakses melalui alamat:

http://127.0.0.1:8000

4. Mengaktifkan API Routing Laravel

Pada instalasi Laravel 13, file routes/api.php belum tentu tersedia secara otomatis.

Untuk mengaktifkan API routing, jalankan perintah berikut:

php artisan install:api

Perintah tersebut akan membuat file routes/api.php dan memasang Laravel Sanctum untuk kebutuhan autentikasi API.

Installasi Larravel 13 API
img. Terminal Install Api

Pada tutorial ini, kita belum menggunakan autentikasi agar pembaca dapat memahami dasar REST API terlebih dahulu. Endpoint yang dibuat nantinya bersifat publik dan hanya digunakan untuk pembelajaran lokal.

5. Membuat Database MySQL

Selanjutnya, buka phpMyAdmin dan buat database baru dengan nama:

CREATE DATABASE db_api_mahasiswa;
Contoh struktur tabel mahasiswas pada database db_api_mahasiswa
img. Contoh struktur tabel mahasiswas pada database db_api_mahasiswa 
 

Setelah database dibuat, buka file .env pada direktori utama proyek Laravel.

Sesuaikan konfigurasi database menjadi:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_api_mahasiswa
DB_USERNAME=root
DB_PASSWORD=

Sesuaikan username dan password dengan konfigurasi MySQL pada komputer masing-masing.

Dengan konfigurasi tersebut, Laravel akan menggunakan MySQL sebagai tempat penyimpanan data mahasiswa.

6. Membuat Model dan Migration Mahasiswa

Model digunakan untuk berinteraksi dengan database, sedangkan migration digunakan untuk mengatur struktur tabel.

Jalankan perintah berikut:

php artisan make:model Mahasiswa -m

Perintah tersebut akan membuat file model Mahasiswa.php dan file migration untuk tabel mahasiswa.

Buka file migration di folder database/migrations, kemudian sesuaikan fungsi up() menjadi:

public function up(): void
{
    Schema::create('mahasiswas', function (Blueprint $table) {
        $table->id();
        $table->string('nim')->unique();
        $table->string('nama');
        $table->string('prodi');
        $table->string('email')->nullable();
        $table->timestamps();
    });
}

Tabel tersebut memiliki beberapa kolom untuk menyimpan informasi mahasiswa, seperti NIM, nama, program studi, dan email.

Selanjutnya, jalankan migration:

php artisan migrate

Jika berhasil, tabel mahasiswas akan dibuat secara otomatis di database MySQL.

Mengatur Model Mahasiswa

Buka file app/Models/Mahasiswa.php, kemudian tambahkan properti $fillable:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Mahasiswa extends Model
{
    protected $fillable = [
        'nim',
        'nama',
        'prodi',
        'email'
    ];
}

Properti $fillable menentukan kolom yang diperbolehkan untuk diisi melalui proses mass assignment.

7. Membuat API Controller

Controller bertugas mengatur proses pengelolaan data yang diterima melalui request API.

Buat controller khusus API menggunakan perintah:

php artisan make:controller Api/MahasiswaController --api

Laravel akan membuat file:

app/Http/Controllers/Api/MahasiswaController.php

Selanjutnya, buka file tersebut dan tambahkan kode berikut:

<?php

namespace AppHttpControllersApi;

use AppHttpControllersController;
use AppModelsMahasiswa;
use IlluminateHttpRequest;

class MahasiswaController extends Controller
{
    // Menampilkan seluruh data mahasiswa
    public function index()
    {
        return response()->json([
            'message' => 'Data mahasiswa berhasil diambil',
            'data' => Mahasiswa::all()
        ], 200);
    }

    // Menyimpan data mahasiswa
    public function store(Request $request)
    {
        $validated = $request->validate([
            'nim' => 'required|unique:mahasiswas,nim',
            'nama' => 'required',
            'prodi' => 'required',
            'email' => 'nullable|email'
        ]);

        $mahasiswa = Mahasiswa::create($validated);

        return response()->json([
            'message' => 'Data mahasiswa berhasil ditambahkan',
            'data' => $mahasiswa
        ], 201);
    }

    // Menampilkan satu data mahasiswa
    public function show(Mahasiswa $mahasiswa)
    {
        return response()->json([
            'message' => 'Detail mahasiswa berhasil diambil',
            'data' => $mahasiswa
        ], 200);
    }

    // Memperbarui data mahasiswa
    public function update(Request $request, Mahasiswa $mahasiswa)
    {
        $validated = $request->validate([
            'nim' => 'required|unique:mahasiswas,nim,' . $mahasiswa->id,
            'nama' => 'required',
            'prodi' => 'required',
            'email' => 'nullable|email'
        ]);

        $mahasiswa->update($validated);

        return response()->json([
            'message' => 'Data mahasiswa berhasil diperbarui',
            'data' => $mahasiswa
        ], 200);
    }

    // Menghapus data mahasiswa
    public function destroy(Mahasiswa $mahasiswa)
    {
        $mahasiswa->delete();

        return response()->json([
            'message' => 'Data mahasiswa berhasil dihapus'
        ], 200);
    }
}

Pada controller tersebut terdapat lima method utama:

  • index() untuk mengambil seluruh data mahasiswa.
  • store() untuk menambahkan data baru.
  • show() untuk mengambil detail mahasiswa.
  • update() untuk memperbarui data.
  • destroy() untuk menghapus data.

Laravel juga menyediakan validasi input agar data yang diterima sesuai dengan aturan yang ditentukan.

8. Mengatur API Routes

Setelah controller selesai dibuat, langkah selanjutnya adalah mengatur endpoint API.

Buka file:

routes/api.php

Tambahkan kode berikut:

<?php

use IlluminateSupportFacadesRoute;
use AppHttpControllersApiMahasiswaController;

Route::apiResource('mahasiswa', MahasiswaController::class);

Dengan menggunakan Route::apiResource(), Laravel akan membuat beberapa endpoint secara otomatis untuk kebutuhan CRUD API.

Berikut daftar endpoint yang dihasilkan:

Geser tabel
Method Endpoint Fungsi
GET /api/mahasiswa Mengambil semua data
POST /api/mahasiswa Menambahkan data
GET /api/mahasiswa/{mahasiswa} Mengambil detail
PUT/PATCH /api/mahasiswa/{mahasiswa} Memperbarui data
DELETE /api/mahasiswa/{mahasiswa} Menghapus data

Perlu diperhatikan bahwa Laravel otomatis menambahkan prefix /api pada route yang didefinisikan di routes/api.php.

Untuk memeriksa daftar route, jalankan:

php artisan route:list --path=api

Jika seluruh konfigurasi benar, endpoint API mahasiswa akan muncul pada daftar tersebut.

9. Menguji REST API Menggunakan Postman

Setelah seluruh bagian selesai dibuat, kita dapat mulai menguji API menggunakan Postman.

Pastikan server Laravel masih berjalan melalui perintah:

php artisan serve

Kemudian buka aplikasi Postman dan gunakan alamat dasar:

http://127.0.0.1:8000/api/mahasiswa

Untuk request yang mengirimkan data, gunakan header:

Accept: application/json
Content-Type: application/json

Berikut beberapa pengujian yang dapat dilakukan.

A. Mengambil Seluruh Data Mahasiswa (GET)

Pilih method GET, kemudian masukkan endpoint:

http://127.0.0.1:8000/api/mahasiswa

Klik Send.

Jika berhasil, server akan mengembalikan respons JSON seperti berikut:

{
    "message": "Data mahasiswa berhasil diambil",
    "data": [
        {
            "id": 1,
            "nim": "2301001",
            "nama": "Andi Saputra",
            "prodi": "Informatika",
            "email": "andi@example.com"
        }
    ]
}

B. Menambahkan Data Mahasiswa (POST)

Pilih method POST dengan endpoint:

http://127.0.0.1:8000/api/mahasiswa

Buka tab Body, pilih raw, kemudian pilih JSON.

Masukkan data berikut:

{
    "nim": "2301002",
    "nama": "Siti Rahma",
    "prodi": "Sistem Informasi",
    "email": "siti@example.com"
}

Klik Send.

Jika berhasil, API akan memberikan respons dengan status HTTP 201 Created.

C. Mengambil Detail Mahasiswa (GET)

Untuk mengambil satu data mahasiswa, gunakan endpoint:

http://127.0.0.1:8000/api/mahasiswa/1

Ganti angka 1 dengan ID mahasiswa yang ingin ditampilkan.

D. Memperbarui Data Mahasiswa (PUT)

Pilih method PUT dan masukkan endpoint:

http://127.0.0.1:8000/api/mahasiswa/1

Pada bagian Body, masukkan data yang ingin diperbarui:

{
    "nim": "2301001",
    "nama": "Andi Saputra",
    "prodi": "Teknik Informatika",
    "email": "andi@example.com"
}

Klik Send untuk mengirim perubahan ke server.

E. Menghapus Data Mahasiswa (DELETE)

Untuk menghapus data, pilih method DELETE dan gunakan endpoint:

http://127.0.0.1:8000/api/mahasiswa/1

Jika berhasil, server akan memberikan pesan bahwa data mahasiswa telah dihapus.

Dengan lima pengujian tersebut, kita sudah mencoba seluruh operasi CRUD melalui REST API.

10. Mengenal Status Code pada REST API

Dalam pengembangan REST API, server menggunakan HTTP status code untuk memberikan informasi mengenai hasil pemrosesan request.

Beberapa status code yang sering digunakan adalah:

Geser tabel
Status Code Keterangan
200 Request berhasil
201 Data berhasil dibuat
204 Request berhasil tanpa isi respons
400 Request tidak valid
401 Belum terautentikasi
403 Tidak memiliki izin
404 Data atau endpoint tidak ditemukan
422 Validasi data gagal
500 Terjadi kesalahan pada server

Contohnya, ketika pengguna mengirim data mahasiswa dengan NIM yang sudah terdaftar, Laravel akan mengembalikan status 422 Unprocessable Content beserta informasi kesalahan validasi, selama request mengharapkan respons JSON.

Memahami status code akan membantu developer ketika melakukan debugging maupun mengintegrasikan API dengan aplikasi lain.

11. Menghubungkan REST API dengan Aplikasi Lain

Salah satu kelebihan REST API adalah kemampuannya untuk digunakan oleh berbagai platform.

API Data Mahasiswa yang telah dibuat dapat dikembangkan untuk beberapa kebutuhan, seperti:

  • Aplikasi Android: Menampilkan data mahasiswa melalui aplikasi mobile.
  • Frontend JavaScript: Mengambil data untuk ditampilkan menggunakan React, Vue, atau framework frontend lainnya.
  • Aplikasi web: Menggunakan Laravel sebagai backend dan teknologi frontend terpisah.
  • Sistem informasi: Mengintegrasikan data dari beberapa aplikasi yang berbeda.

Dengan demikian, developer tidak harus membuat ulang seluruh proses pengelolaan data untuk setiap platform. Backend dapat menyediakan API yang digunakan bersama.

Kesimpulan

Laravel 13 menyediakan berbagai fasilitas untuk membangun REST API dengan struktur yang terorganisasi. Melalui tutorial ini, kita telah mempelajari cara mengaktifkan API routing, membuat model dan migration, membangun controller, mengatur endpoint, serta menguji API menggunakan Postman.

Contoh REST API Data Mahasiswa juga menunjukkan bagaimana Laravel dapat digunakan untuk menyediakan layanan pengelolaan data yang bisa diakses oleh berbagai aplikasi.

Tutorial ini masih merupakan dasar pengembangan REST API. Untuk kebutuhan aplikasi yang digunakan secara nyata, developer perlu menambahkan autentikasi, otorisasi, pembatasan akses, dan pengamanan endpoint.

Bagi mahasiswa maupun web developer pemula, memahami REST API merupakan salah satu keterampilan penting dalam pengembangan aplikasi modern, khususnya ketika membangun sistem yang melibatkan website, aplikasi mobile, dan layanan backend.

Referensi dokumentasi resmi:

Butuh Bantuan Skripsi atau Pembuatan Software?

Tim Anindyadev siap membantu bimbingan skripsi IT, pembuatan aplikasi kustom, dan implementasi metode algoritma.

Konsultasi Sekarang
Butuh Bantuan? Chat Kami