Laporan Praktikum 11
Laporan Praktikum

17 Juni 2025 ~ Oleh Surya Andika

Laporan Praktikum 11

API dan RESTful API

Tujuan Pembelajaran

  1. Memahami konsep dasar API dan manfaatnya
  2. Menjelaskan arsitektur RESTful API
  3. Mengimplementasikan API endpoints menggunakan Laravel
  4. Melakukan testing dan debugging API
  5. Menerapkan best practices dalam pengembangan API

API

API (Application Programming Interface) merupakan sekumpulan aturan dan protokol yang memungkinkan aplikasi berbeda platform untuk berkomunikasi dan saling terintegrasi.

Mengapa API Penting

API (Application Programming Interface) adalah media untuk komunikasi antara aplikasi yang berbeda. Dalam era digital saat ini, hampir semua aplikasi modern menggunakan API untuk:

  1. Integrasi dengan layanan pihak ketiga
  2. Memisahkan frontend dan backend
  3. Mendukung multiple platform (web, mobile, desktop)
  4. Memungkinkan microservices architecture

Konsep Dasar API

Agar lebih memahami konsep dasar API berikut analogi API pemesanan makanan pada restoran.

Alur API

Komponen Utama API(Request dan Response)

1. Request(Permintaan)
  • URL/Endpoint
  • HTTP Method
  • Headers
  • Body/Payload
2. Response(Respons)
  • Status Code
  • Headers
  • Body/Data

Berikut ini merupakan ilustrasi komponen utama API

Alur API

Jenis-Jenis API

  • Web API : Menggunakan protokol HTTP/HTTPS
  • REST API: Mengikuti arsitektur REST
  • GraphQL API: Query language untuk API
  • SOAP API: Protocol berbasis XML
  • Library API: Interface untuk library atau framework
  • Operating System API: Interface dengan sistem operasi
  • Database API: Interface untuk mengakses database

RESTful API

REST (Representational State Transfer) adalah arsitektur untuk merancang web services. REST bukan protokol atau standar, melainkan seperangkat prinsip desain.

Prinsip REST (Representational State Transfer)

  1. Client-Server Architecture

    Client dan server terpisah dan dapat berkembang secara independen.

  2. Stateless

    Setiap request harus berisi semua informasi yang diperlukan server untuk memproses request tersebut.

  3. Cacheable

    Response harus dapat di-cache untuk meningkatkan performa.

  4. Uniform Interface

    Interface yang konsisten antara client dan server.

  5. Layered System

    Arsitektur berlapis yang memungkinkan scalability.

  6. Code on Demand (Opsional)

    Server dapat mengirim kode executable ke client

Struktur URL REST

GET /api/users # Mendapatkan semua users
GET /api/users/1 # Mendapatkan user dengan ID 1
POST /api/users # Membuat user baru
PUT /api/users/1 # Update user dengan ID 1
DELETE /api/users/1 # Hapus user dengan ID 1

Langkah-Langkah Praktikum

  1. Setup Project
  2. Buat Project Laravel baru atau bisa juga mengunakan project laravel yang sudah ada. Untuk membuat project laravel baru ketikkan kode berikut pada aplikasi CMD

    composer create-project laravel/laravel api-project Alur API
  3. Database dan Migration
  4. Migrasi database dengan menggunakan kode berikut:

    php artisan make:migration create_products_table

    Apabila sudah, lalu buat kode pada api-project/database/migration/****_**_**_******_create_product_table.php menjadi seperti ini

    Alur API

    lalu jalankan migration

    php artisan migrate
  5. Model
  6. Ketikkan pada terminal kode berikut ini

    php artisan make:model Product Alur API
  7. API Routes
  8. Karena membuat API pertama kali, jadi harus instalasi untuk API terlebih dahulu dengan menuliskan kode program berikut ini:

    php artisan install:api Alur API
  9. API Controller
  10. Membuat controller pada terminal dengan nama ProductController

    php artisan make:controller ProductController --api

    Lalu buatkan kode pada app/Http/Controllers/ProductController.php menjadi seperti ini:

    Alur API
  11. API Resources (Data Transformation)
  12. 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.

  13. Membuat Resource
  14. Gunakan kode berikut ini pada CMD yang digunakan

    php artisan make:resource ProductResource

    Lalu buat kode pada api-project/app/Http/Resource/ProductResource.php menjadi seperti ini

    Alur API
  15. Menggunakan Resource di Controller
  16. Cari file Controller yang telah dibuat dan ubah function_index() dan show() pada ProductController menjadi seperti ini:

    Alur API
  17. Validasi dan Error Handling
  18. Form Request Validation
  19. Masukkan kode berikan pada CMD yang digunakan

    php artisan make:request StoreProductRequest

    Lalu tambahkan kode program untuk menanggani Exception, buat folder baru dengan nama Exception dan buat file Handler didalamnya, pada app/Exceptions/Handler.php. silahkan masukkan kode program berikut ini :

    Alur API
  20. Mengakses API Products dengan Postman
  21. Untuk memastikan API yang telah dibuat berjalan dengan baik maka perlu dilakukan percobaan mengakses API tersebut, untuk testing menggunakan POSTMAN, silahkan download dan install POSTMAN pada computer dan lakukan testing API yang telah dibuat, sebelum melakukan testing silahkan tonton video tutorial cara penggunaan POSTMAN pada link berikut :

    Klik Disini atau Disini Alur API

    silahkan buka project laravel yang sudah dibuat tadi lalu masukkan kode ini pada terminalnya

    php artisan serve

    Setelah itu masuk ke aplikasi postman tadi, lalu untuk mengambil semua product nya gunakan url dan method berikut ini

    Method = GET

    URL = http://127.0.0.1:8000/api/products

    silahkan masukkan pada postman dan apabila sukses maka akan menghasilkan tampilan berikut ini

    Alur API

    Mengapa URL yang diperlukan adalah api/products bukan /products? Karena, route kita berada di api.php sehingga Laravel akan otomatis menggunakan prefix berdasarkan routes yang dibuat. Namun, jika kita masukkan API Routes tadi kedalam file web.php, maka prefix yang digunakan adalah 127.0.0.1:8000/products.

    Kemudian, kita akan mencoba untuk menambahkan product, caranya dengan menggunakan URL berikut di Postman :


    Method = GET
    URL = http://127.0.0.1:8000/api/products
    lalu pada body di method post tersebut, pilih raw dan masukkan kode berikut ini Alur API

    Jika kita ingin menerapkan handling untuk exception memasukkan data yang salah, tambahkan kode berikut di Controller/ProductController :

    Alur API

    untuk menguji nya, akan kita masukkan data yang salah, sebagai contohnya adalah sebagai berikut

    Alur API

    GET - Mengambil Product Berdasarkan ID

    Caranya dengan menggunakan url berikut di Postman:
    URL: http://localhost:8000/api/products/{id}

    Contoh: http://localhost:8000/api/products/1


    Method: GET
    Maka hasilnya akan terlihat seperti berikut ini: Alur API

    jika ingin menampilkan kode error yaitu kode 404 maka bisa dengan menambahkan ini pada function view di file ProductController.php

    Alur API

    GET - Update Product

    selanjutnya adalah melakukan update data gunakan, URL berikut di Postman
    URL: http://localhost:8000/api/products/{id}
    contohnya URL: http://localhost:8000/api/products/{1}
    Method: PUT

    Alur API

    DELETE - Hapus Product
    Selanjutnya apabila ingin melakukan delete data, maka bisa dengan menggunakan ini
    URL: http://localhost:8000/api/products/{id}
    contohnya: http://localhost:8000/api/products/1
    Method: DELETE
    maka tampilannya akan menjadi seperti ini

    Alur API

    Link Github: Klik Disini

© 2025 Surya Andika. All rights reserved.