Konsep Dasar API (Application Programming Interface)

Konsep Dasar API (Application Programming Interface)

API (Application Programming Interface) adalah jembatan komunikasi antar aplikasi.

Analoginya, misal di sistem Bandara & Check-in Counter.

  • Kamu check-in dan ingin info penerbangan. ( Kamu = client )
  • Kamu tidak bisa langsung akses sistem internal maskapai. ( sistem = server )
  • Tapi kamu bisa request lewat petugas check-in (API).
  • Petugas akan akses sistem internal dan memberitahu detail kamu.

Kamu tidak perlu tahu bagaimana sistem di belakang bekerja, kamu hanya perlu tahu caranya minta informasi.

Implementasi API ini biasanya digunakan untuk menghubungkan 2 / lebih aplikasi berbeda. Antar aplikasi tidak perlu menggunakan bahasa yang sama, yang penting harus sepakat soal format & endpoint dan berkomunikasi lewat API.

Contohnya, Aplikasi Frontend di install menggunakan bahasa NextJS dan di domain frontend.dev sedangkan backendnya ( API ) di install menggunakan bahasa Go di domainapi.dev dan server yang berbeda. Mereka tetap bisa berhubungan melalui API melalui HTTP request/response.

Contoh lainnya misal saya memiliki aplikasi jual beli online, saya membutuhkan informasi tentang pengiriman barang. Karena saya tidak punya akses untuk mengambil data langsung di JNE (misal), tapi saya membutuhkan data tersebut. Kita bisa meminta data ke API JNE dengan format & endpoint yang sesuai sehingga bisa mendapatkan data tersebut. Sehingga tidak ada masalah walau aplikasinya berbeda selama ada komunikasi di API.

Jenis API bisa dibagi berdasarkan:
Cara akses & protokol komunikasi (REST, SOAP, GraphQL, Webhook)
Target penggunaannya (Public, Private, Partner/Internal)

  1. REST API (Representational State Transfer) – Format komunikasi standar menggunakan HTTP (GET, POST, PUT, DELETE) Data umumnya dalam JSON. Resource-oriented → contoh: /users/1, /products/123
    Kelebihan: Simpel dan ringan, Mudah digunakan dan dipahami. Contoh :
    GET /api/products/123 → { "id": 123, "name": "Keyboard" }
  2. SOAP API (Simple Object Access Protocol) – Protokol yang lebih formal dan kaku. Mengunakan XML sebagai format data. Kelebihan: Built-in security (WS-Security), Mendukung transaksi kompleks. Biasanya digunakan di sistem perbankan, enterprise, atau pemerintah.
  3. GraphQL API – Query language untuk API yang memungkinkan client memilih data yang diinginkan. Hanya menggunakan satu endpoint (/graphql).
    Kelebihan: Tidak overfetch/underfetch data, sangat fleksibel.
    Biasanya digunakan pada aplikasi kompleks, terutama mobile apps atau frontend-heavy
  4. Webhooks – Mekanisme event-driven, di mana server mengirimkan data secara otomatis ke URL client saat event tertentu terjadi. Webhook jadi andalan untuk notifikasi real-time.
    Kelebihan: Real-time, tidak perlu polling berkala.
    Biasanya digunakan dalam sistem pembayaran, notifikasi, atau integrasi pihak ketiga (misalnya: Midtrans → callback ke backend setelah pembayaran). Disisi penerima informasi menyediaakan API callback yang akan di panggil oleh partner dengan ketentuan API yang sudah disepakati.

Berdasarkan target penggunaannya :

  1. Public API – API yang terbuka untuk umum, bisa diakses oleh siapa saja. Dokumentasinya biasanya tersedia secara publik.
    Kelebihan: Cocok untuk integrasi dengan developer luar atau komunitas.
    Biasanya digunakan oleh platform besar seperti Google Maps, Twitter, atau OpenWeather.
  2. Private API – API yang hanya digunakan secara internal oleh sistem atau tim dalam satu organisasi. Tidak terbuka untuk umum.
    Kelebihan: Lebih aman karena hanya digunakan oleh pihak internal.
    Biasanya digunakan untuk komunikasi antar microservices atau antara frontend & backend internal.
  3. Partner API – API yang diberikan khusus untuk partner bisnis terverifikasi, biasanya melalui izin resmi.
    Kelebihan: Aman dan dapat dikontrol aksesnya secara ketat.
    Biasanya digunakan dalam kolaborasi antar perusahaan, seperti fintech dengan bank, atau e-commerce dengan penyedia logistik.

REST adalah standar industri modern, hampir semua frontend/backend dev pasti pakai. Tapi penggunaan SOAP memang jarang, karena dia lebih banyak dipakai di enterprise besar, bukan di startup atau perusahaan tech modern. GraphQL juga jarang ditemui karena lebih populer di produk dengan frontend yang kompleks dan data dinamis—misalnya startup yang heavily frontend-driven (misalnya e-commerce, SaaS dashboard). Contoh produk yang pakai: Shopify API, GitHub API (mereka pindah dari REST ke GraphQL), Netflix, Facebook.