Berkenalan dengan API : Application Programming Interface
Mari Bermain API

Pernahkan Anda mendengar istilah API? Mungkin saja belum, mungkin saja sudah pernah, mungkin saja sering, atau bahkan mungkin sudah sering menggunakan (atau bahkan-bahkan sering membuat). Terlepas dari itu semua, tahukan Anda apakah API itu? Dalam post ini, kita akan coba berdiskusi dan bertukar pikiran mengenai API dalam pengertian umum. Are you excited?

So let’s begin!

Dimulai dari … Wikipedia!

Dalam penggunaan umum, sebuah antarmuka, penghubung atau interface adalah sebuah titik, wilayah, atau permukaan di mana dua zat atau benda berbeda bertemu.

Dari pengertian tersebut dapat disimpulkan bahwa antarmuka dirancang sebagai jalur komunikasi antara dua buah benda yang berbeda, dalam konteks ini (API) berarti adalah aplikasi/sistem yang berbeda.

Analogi

Jika dianalogikan dalam kehidupan sehari-hari, kita dapat menemukan berbagai contoh antarmuka. Sebagai contoh socket elekrik (colokan) yang merupakan antarmuka dari sistem elektronik yang kita gunakan dengan sistem penyedia listrik.

Contoh lain misalnya seorang pelayan di sebuah restoran yang menghubungkan pelanggan dengan sistem pembuatan makanan di dapur.

Peran Interface

Satu hal yang dapat kita sorot disini adalah bagaimana peran antarmuka tersebut dari kedua sistem yang berbeda tersebut. Jika kita lihat, sistem atau perangkat elektronik yang kita gunakan hanya membutuhkan kabel untuk meminta aliran listrik tanpa perlu mengetahui bagaimana listrik tersebut dihasilkan (apakah bersumber dari batu bara, angin, dimanakah gardu listriknya, bagaimana distribusinya, dsb). Sumber listrik tersebut akan memberikan daya listrik sesuai dengan permintaan perangkat elektronik melalui colokan tersebut.

Sama halnya dengan seorang pelanggan dari suatu restoran, yang dibutuhkan hanyalah sebuah menu, kemudian menyampaikan pesanan melalui pelayan tanpa perlu mengetahui bagaimana pesanan tersebut dibuat (siapa yang memasak, bagaimana pengolahannya, apakah dimasak sendiri atau dibeli dari restoran lain, dsb). Pesanan yang telah dibuat kemudian akan diantarkan kembali oleh pelayan.

Do you agree with those analogies? Anyway, let’s try to summarise them ..

Summarising ...

Mari kita kerucutkan pemahaman kita mengenai API. Setelah melakukan sedikit brainstorming, kita coba untuk temukan beberapa kata kunci dari penjabaran di atas, yaitu:

  • adanya antarmuka (colokan, pelayan) -> dapat kita anggap sebagai interface
  • adanya konsumen (perangkat elektronik, pelanggan) -> dapat kita anggap sebagai client
  • adanya produsen/penyedia sumber daya (penyedia listrik, dapur/penyedia makanan) -> dapat kita anggap sebagai server
  • adanya permintaan dari konsumen -> dapat kita anggap sebagai request
  • produsen menyediakan layanan sesuai dengan permintaan konsumen -> dapat kita anggap sebagai response
  • konsumen tidak mengetahui detil pekerjaan produsen dan begitu pula sebaliknya

Dari konsep yang didapatkan dari. analogi-analogi tersebut kemudian dapat kita simpulkan bahwa dalam API terdapat 3 objek utama yaitu

  • client
  • server
  • interface (API itu sendiri)

Dan terdapat dua buah aktivitas utama yaitu

  • request (oleh client)
  • response (oleh server)

Memiliki sifat

  • detil aktivitas dari kedua belah pihak tidak relevan bagi antar kedua belah pihak tersebut

Wrapping Up

Jika kita teliti lebih lanjut, sebuah interface harus memiliki standar tertentu yang dapat dipahami dan disepakati baik itu oleh client maupun server.

Sebagai contoh, setiap perangkat elektronik apapun itu (TV, AC, mesin cuci, dsb) sepakat jika membutuhkan arus listrik (request), maka perangkat tersebut akan menyediakan kabel yang dapat tersambung dengan colokan, colokan pun dapat meneruskan listrik (response) yang diberikan oleh sumber. Jika kabel yang disediakan tidak sama, maka dipastikan perangkat tersebut tidak akan bisa mendapatkan listrik (response).

Sama halnya dengan pelanggan dari sebuah restoran, seorang pelanggan, siapapun itu (yang datang ke restoran, pemesanan melalui telepon, ojek online), akan memesan (request) berdasarkan menu yang disediakan oleh pelayan. Jika pesanan tersedia, maka pelayan akan meneruskan pesanan ke dapur dan setelah pesanan selesai dibuat, akan dikembalikan ke pelanggan (response). Jika pelanggan memesan sesuatu yang tidak terdapat dalam menu (off menu) kemungkinan besar adalah pelayan tidak memahami pesanan tersebut dan pesanan tidak dapat dilakukan (response).

Kesimpulannya, sebuah interface harus dirancang sedemikian rupa hingga dapat dipahami oleh kedua belah pihak. Dikutip dari wikipedia, API adalah:

a set of clearly defined methods of communication among various components. 
(Wikipedia, 2019)

Singkat, padat, dan jelas bukan?

Contoh Implementasi API: Web API

Dalam implementasinya, wujud dari API sangat beragam. Kita akan ambil satu contoh API, yaitu Web API. Sesuai dengan namanya, Web API (ada juga yang menyebutnya Web Services) adalah sebuah API yang dibangun di atas teknologi web.

Web API dapat dikonsumsi oleh berbagai macam aplikasi lain dengan menggunakan protokol standar HTTP, misal: aplikasi web, mobile, desktop, wearable dan lain sebagainya. Terlepas dari apapun teknologi yang digunakan, semua aplikasi tersebut dapat mengakses dan memanipulasi data dari server (jika memiliki izin tentunya) yang sama melalui API (dan tentunya dengan memenuhi standar-standar yang telah ditentukan oleh API tersebut).

Dengan memanfaatkan API, sebum server tidak perlu memikirkan siapa client yang meminta layanan dan bagaimana cara untuk melayani client yang spesifik tersebut (begitu pula sebaliknya, client pun tidak mau tahu apa yang dikerjakan oleh server asalkan mendapatkan layanan yang diminta). Server hanya perlu mematuhi aturan API dan begitu pula halnya dengan client. Akan sangat merepotkan jika harus melayani sejumlah client dengan teknologi yang berbeda-beda bukan?

Bayangkan jika tidak ada colokan dalam dunia kelistrikan, bayangkan jika dalam suatu restoran tidak terdapat menu .....

So that’s it! sampai disini dulu ...

We’ll meet again next time to discuss more about API, I mean the real API .... Why and when do we have to use them and of course, how to build them.

Thank you for reading, till next time!

never stop learning!

Image source:
http://www.forumsys.com/wp-content/uploads/APISM.png
https://cdn-images-1.medium.com/max/1200/1*P3FqQjU7Pg5DmQEudCimuw.png
https://image.slidesharecdn.com/howtodesigneffectiveapis-141026235855-conversion-gate02/95/effective-api-design-6-638.jpg?cb=1414368031

Written by gpamungkas on Apr 7 2019, 2:19 PM.
User
Projects
None
Subscribers
None