REST API: Ketika Komputer Belajar Berbicara Seperti Manusia

0
Fundamentals
Ditulis 10 June 2025 Baca ± 8 menit
REST API: Ketika Komputer Belajar Berbicara Seperti Manusia

Bayangkan kamu sedang duduk di sebuah warung kopi favorit, dengan secangkir cappuccino dan laptop di depanmu. Di sekelilingmu, orang-orang sedang ngobrol, membahas ide bisnis, atau sekadar mengejar deadline. Di meja kamu, kamu baru saja menerima permintaan dari klien: “Mas, bisa bantu saya bikin sistem yang bisa diakses dari mobile dan website, tapi datanya tetap sama?”

Dan saat itulah kamu tahu — saatnya kamu bicara soal REST API.

Tapi… tunggu dulu.

Sebelum kita bicara soal header, endpoint, atau status code, mari kita mulai dari cerita sederhana. Sebuah kisah tentang bagaimana komputer mulai belajar "berbicara" satu sama lain — dengan sopan, terstruktur, dan bisa dimengerti lintas platform.

Ketika Dunia Tidak Punya Bahasa Bersama

Bayangkan dunia sebelum REST API. Setiap aplikasi punya cara bicara sendiri-sendiri. Yang satu pakai format XML, yang lain hanya mau bicara dengan protokol SOAP, yang satu lagi malah perlu install plugin dulu. Ibaratnya kamu masuk ke pasar, dan setiap pedagang bicara dengan bahasa dan aturan dagang yang beda-beda. Capek, kan?

Waktu itu, pengembang aplikasi seperti petualang yang harus menyiapkan kamus, translator, dan kadang-kadang bahkan kamus isyarat untuk bisa berkomunikasi antar sistem.

Lalu, muncul sebuah filosofi yang mengubah segalanya yaitu: REST.

REST: Filosofi yang Sederhana tapi Mengubah Dunia

REST bukan framework. Bukan juga bahasa pemrograman. REST — singkatan dari Representational State Transfer — merupakan sebuah arsitektur gaya komunikasi yang diperkenalkan oleh Roy Fielding pada tahun 2000, tepatnya dalam disertasi doktoralnya di University of California, Irvine.

Ya, sebuah karya ilmiah yang awalnya mungkin hanya dibaca oleh para akademisi dan segelintir developer backend yang iseng buka repository referensi. Tapi dari situlah, muncul filosofi yang diam-diam mengubah wajah internet — tanpa gembar-gembor, tanpa branding heboh.

Roy Fielding sendiri bukan sosok sembarangan. Ia adalah salah satu arsitek utama dari protokol HTTP dan juga terlibat dalam pengembangan URI serta standar dasar arsitektur web. Maka ketika ia berbicara soal bagaimana sistem seharusnya berkomunikasi, dunia memang sebaiknya mendengarkan.

Dalam disertasinya, Roy menyampaikan sebuah ide yang pada saat itu terdengar “radikal”, tapi juga masuk akal:

“Daripada bikin protokol komunikasi yang aneh-aneh dan bikin developer pusing, kenapa kita nggak pakai saja prinsip-prinsip yang sudah ada di web?”

Prinsip-prinsip dasar itu sederhana tapi kuat:

  • Web punya URL untuk merepresentasikan sumber daya.
  • Web punya metode HTTP seperti GET, POST, PUT, dan DELETE untuk berinteraksi dengan sumber daya itu.
  • Dan yang paling penting: web itu stateless — artinya setiap permintaan dari client ke server harus berdiri sendiri, tanpa tergantung pada permintaan sebelumnya. Tidak ada kenangan. Tidak ada beban masa lalu. Server tidak menyimpan state, dan itu justru membuatnya kuat.

Bayangkan seperti ini:
Setiap kali kamu membuka halaman web atau mengakses API, kamu seperti sedang bertanya sesuatu kepada petugas informasi. Tapi kamu tidak bisa mengandalkan petugas itu mengingat pertanyaanmu sebelumnya. Jadi kamu harus selalu jelas: siapa kamu, apa yang kamu minta, dan ke mana tujuanmu — dalam satu permintaan yang utuh.

REST membingkai semua ini ke dalam sebuah filosofi komunikasi antara sistem. REST tidak memaksakan format data tertentu, tapi membimbing kita untuk membuat API yang mudah digunakan, dapat diprediksi, dan efisien. REST mengubah pendekatan kita dari membuat protokol khusus menjadi menggunakan prinsip web yang sudah ada dan terbukti tahan banting.

REST API pun lahir dari ide ini — sebagai jembatan komunikasi antar sistem yang rapi, terstandarisasi, dan mudah dipahami oleh siapa pun yang sudah akrab dengan dunia web.

Dan kini, dua dekade setelah itu, REST bukan lagi sekadar konsep dalam disertasi. Ia telah menjadi bahasa penghubung bagi jutaan aplikasi: dari marketplace, sistem kasir, game online, hingga smart fridge di rumahmu. Semua bisa saling bicara — dengan REST sebagai jembatanya.

Kisah Kasir, Gudang, dan REST API

Bayangkan kamu punya dua sistem: aplikasi kasir dan aplikasi gudang.

Si kasir ingin tahu, “Stok barang dengan kode BRG001 masih ada berapa, ya?”

Tanpa REST API, mungkin kasir harus minta file Excel via email, atau tanya lewat WhatsApp ke admin gudang.

Tapi dengan REST API, si kasir cukup mengirim permintaan HTTP ke alamat:

GET /api/products/BRG001
Dan gudang (melalui servernya) akan membalas:
{
  "product_code":"BRG001",
  "name":"Minyak Goreng 2L",
  "stock":27
}

Mudah. Rapi. Terstruktur. Kasir tidak perlu tahu sistem database gudang, cukup tahu endpoint dan format balasannya.

Itulah kekuatan REST API.

Manusia dan Mesin Saling Memahami

REST API membuat komunikasi antar sistem jadi seperti komunikasi antar manusia. Ada tata krama, ada pertanyaan, dan ada jawaban yang bisa dimengerti.

  • Kalau kamu ingin melihat data, kamu gunakan GET
  • Kalau kamu ingin menambahkan data baru, kamu gunakan POST
  • Kalau kamu ingin mengubah data, kamu gunakan PUT atau PATCH
  • Dan kalau kamu ingin menghapus data, kamu gunakan DELETE

Keren, kan? Mirip seperti kamu ngobrol dengan temanmu:

  • “Eh, boleh lihat daftar buku di perpustakaan?” → GET /books
  • “Saya mau tambah buku baru nih.” → POST /books
  • “Buku ini ternyata salah tahun terbitnya, saya koreksi ya.” → PUT /books/45
  • “Yang ini mau saya hapus aja.” → DELETE /books/45

Komunikasi itu menjadi natural, meski tetap dilakukan antara mesin.

Stateless: Prinsip yang Mengajarkan Kita Move On

Salah satu prinsip utama REST adalah stateless. Artinya, server tidak menyimpan informasi tentang state permintaan sebelumnya. Setiap permintaan harus bisa berdiri sendiri.

Ini seperti kamu ke warung makan dan setiap kali pesan makanan, kamu harus menyebutkan nama, pesanan, dan meja kamu — meskipun kamu baru saja pesan minuman 5 menit lalu. Mungkin terasa sedikit ribet, tapi justru itu membuat sistem lebih scalable.

Karena server tidak perlu mengingat apa-apa, maka server bisa bebas menangani permintaan dari siapa saja, dari mana saja, dan dalam jumlah berapa pun. Ia tak terbebani oleh sejarah.

Desain REST API: Ketika Arsitektur Bertemu Empati

REST API bukan cuma soal teknis, tapi juga soal desain.

Bayangkan kamu mendesain API untuk toko buku online.

Endpoint kamu bisa seperti ini:

GET /books
GET /books/123
POST /books
PUT /books/123
DELETE /books/123

Tapi jika kamu ingin mendesain lebih dalam, kamu mulai berpikir seperti pengguna. Bagaimana jika pengguna ingin melihat daftar buku berdasarkan genre? Atau penulis?

Maka kamu mulai menyediakan:

GET /books?genre=fantasy
GET /authors/42/books

Desain API bukan cuma tentang CRUD. Tapi tentang bagaimana membuat sistem kamu mudah digunakan dan intuitif untuk developer lain. Sama seperti UI/UX di frontend, REST API punya UX tersendiri untuk para developer.

Versioning: Karena API Juga Bisa Berubah Pikiran

Waktu berjalan. Fitur bertambah. Format data berubah.

Tapi kamu tidak bisa seenaknya mengubah format balasan dari API yang sudah digunakan oleh banyak client. Maka lahirlah konsep versioning.

Dengan versioning, kamu bisa memiliki:

GET /api/v1/products
GET /api/v2/products

Setiap versi bisa berkembang sesuai kebutuhannya. Dan para pengguna API bisa memilih kapan mereka ingin migrasi ke versi baru.

Security: Supaya Tidak Semua Orang Bisa Mengintip

REST API yang bisa diakses semua orang itu seperti rumah yang pintunya selalu terbuka. Bisa bahaya.

Karena itu, REST API biasanya diamankan dengan:

  • API Key: semacam token rahasia yang dikirim di setiap permintaan.
  • OAuth: sistem otorisasi yang lebih kompleks dan cocok untuk aplikasi besar.
  • JWT (JSON Web Token): token yang menyimpan informasi user dan hak akses, dikirim di setiap permintaan.

Mengamankan REST API bukan pilihan — itu keharusan.

REST API vs Realita: Tidak Semua Hal Harus REST

REST API bukan palu emas. Ada kalanya REST tidak cocok.

Misalnya ketika kamu butuh real-time data — REST tidak ideal karena berbasis request-response. Atau ketika kamu ingin menghindari terlalu banyak permintaan kecil-kecil, kamu mungkin lebih cocok dengan GraphQL yang bisa query banyak data sekaligus.

Tapi untuk kebanyakan kasus — terutama CRUD dan komunikasi standar antar sistem — REST masih jadi pilihan favorit.

REST API dan Kamu

Kamu mungkin sedang membangun toko online. Atau aplikasi kasir. Atau sistem absen digital. REST API akan menjadi fondasi bagaimana frontend, mobile app, atau pihak ketiga berbicara dengan server kamu.

Dan saat kamu berhasil mendesain REST API yang elegan, efisien, dan mudah digunakan, kamu bukan cuma menulis kode. Kamu sedang membangun bahasa baru — bahasa yang memungkinkan mesin-mesin saling memahami dan bekerja sama.

Penutup: Tentang Rasa dan Struktur

REST API itu seperti jalan raya. Lurus, teratur, punya rambu. Kamu bisa ke mana saja, asal tahu alamatnya (URL), cara menyapa (HTTP Method), dan tahu apa yang kamu mau.

Dan seperti jalan raya yang baik, REST API bukan tentang kecepatan semata, tapi tentang pengalaman — tentang bagaimana pengguna merasa nyaman saat melewati jalur yang kamu bangun. Tidak bingung, tidak tersesat, dan tidak perlu bertanya-tanya setiap kali ingin menuju satu tempat.

Jadi, saat kamu membangun API berikutnya, bayangkanlah dirimu bukan hanya sebagai programmer, tapi sebagai arsitek lalu lintas digital. Kamu merancang jalur yang akan dilalui oleh aplikasi, mobile app, bahkan sistem dari pihak ketiga.

Buatlah jalur itu terang, mudah dilewati, aman dari penyusup, dan ramah bagi siapa pun yang lewat — baik junior developer, senior engineer, atau pengguna otomasi yang hanya ingin mengambil data.

REST API adalah seni.
Dan seperti arsitek yang hebat, kamu bukan hanya membangun fungsi —
kamu sedang menciptakan pengalaman.

Diperbarui pada 14 June 2025