Pernah pesan Grab Food, transfer ke OVO, login app pake Google, atau ngeliat cuaca di HP? Behind the scene, semua itu jalan via API — cara aplikasi kamu "ngomong" sama aplikasi/server lain. Tanpa API, app kamu = pulau terisolasi: gak bisa pake data Google Maps, gak bisa kirim notif lewat Firebase, gak bisa proses pembayaran via Midtrans. API = bahasa universal yang bikin semua app bisa kerjasama.
💡 API economy. Stripe (
$95B valuation) jualan API doang. Twilio ($8B) sama. Stripe gak bikin app — mereka bikin API yang dipake jutaan app lain proses pembayaran. Skill bikin + design API yang bagus = highly valued di market.
Analogi Restoran
Bayangkan restoran. Kamu (client) → Pelayan (API) → Dapur (Server).
- Kamu memesan (request) melalui pelayan
- Dapur memproses pesanan
- Pelayan membawa makanan (response) ke kamu
Contoh API di Kehidupan Nyata
- Buka Google Maps di app Grab → API Google Maps
- Login dengan Google di website → API Google OAuth
- Cek cuaca di HP → API cuaca
- Transfer uang di mobile banking → API bank
Bagaimana API Bekerja di Web
Client (Browser/App) ──HTTP Request──> Server (API)
<──HTTP Response──
Anatomi Request
- Method — apa yang mau dilakukan (GET, POST, PUT, DELETE)
- URL — endpoint yang dituju (/api/users)
- Headers — info tambahan (auth token, content type)
- Body — data yang dikirim (untuk POST/PUT)
Anatomi Response
- Status Code — berhasil atau gagal (200, 404, 500)
- Headers — info tentang response
- Body — data yang dikembalikan (biasanya JSON)
🎭 Analogi sehari-hari
API = stop kontak listrik. Lo gak peduli listrik dari PLN diproduksi gimana (pembangkit, gardu induk, distribusi). Yang lo peduli: ada socket, lo colokin alat, alat hidup. API sama: backend internal complex, tapi ngasih kontrak yang jelas (endpoint + params + response format). Frontend dev tinggal "colok" sesuai spec.
⚠️ Jebakan yang sering ditemui
- API tanpa versioning (
/api/usersbukan/api/v1/users) = breaking change = client lama rusak - No rate limiting = abuse, DDoS, server crash. Wajib throttle
- Response inkonsisten — kadang
{user: {...}}, kadang{data: {...}}. Standardize format - Status code salah — return 200 dengan
{error: "..."}instead of 4xx. Pakai HTTP semantic - No documentation = developer lain pusing pake. Pakai OpenAPI/Swagger
TL;DR: API = cara aplikasi ngomong sama aplikasi/server lain via HTTP. Request (method+URL+headers+body) → Response (status+headers+body). Foundation web modern: Google Maps, OAuth, payment, weather — semua API-driven. API economy huge ($95B Stripe). Wajib: versioning, rate limit, consistent format, HTTP semantic, docs.