Antarmuka Pemrograman Aplikasi
Istilah API adalah akronim, dan singkatan dari "Application Programming Interface."
Pikirkan API seperti menu di restoran. Menu menyediakan daftar hidangan yang dapat Anda pesan, bersama dengan deskripsi setiap hidangan. Saat Anda menentukan item menu apa yang Anda inginkan, dapur restoran melakukan pekerjaan dan memberi Anda beberapa hidangan yang sudah jadi. Anda tidak tahu persis bagaimana restoran menyiapkan makanan itu, dan Anda tidak benar-benar perlu.
Demikian pula, sebuah daftar API sekelompok operasi yang dapat digunakan pengembang, bersama dengan deskripsi tentang apa yang mereka lakukan. Pengembang tidak perlu tahu bagaimana, misalnya, sistem operasi membangun dan menyajikan kotak dialog "Save As". Mereka hanya perlu tahu bahwa itu tersedia untuk digunakan di aplikasi mereka.
Ini bukan metafora yang sempurna, karena pengembang mungkin harus menyediakan data mereka sendiri ke API untuk mendapatkan hasilnya, jadi mungkin itu lebih seperti restoran mewah tempat Anda dapat menyediakan beberapa bahan Anda sendiri yang akan digunakan dapur.
Tetapi itu sangat akurat. API memungkinkan pengembang untuk menghemat waktu dengan memanfaatkan implementasi platform untuk melakukan pekerjaan terselubung. Ini membantu mengurangi jumlah pengembang kode yang perlu dibuat, dan juga membantu menciptakan lebih banyak konsistensi di seluruh aplikasi untuk platform yang sama. API dapat mengontrol akses ke sumber daya perangkat keras dan perangkat lunak.
API Membuat Hidup Lebih Mudah untuk Pengembang
Katakanlah Anda ingin mengembangkan aplikasi untuk iPhone. Sistem operasi iOS Apple menyediakan sejumlah besar API - seperti yang dilakukan setiap sistem operasi lainnya - untuk mempermudah Anda.
Jika Anda ingin menanamkan browser web untuk menampilkan satu atau lebih halaman web, misalnya, Anda tidak perlu memprogram browser web Anda sendiri dari awal hanya untuk aplikasi Anda. Anda menggunakan API WKWebView untuk menanamkan objek browser WebKit (Safari) di aplikasi Anda.
Jika Anda ingin mengambil foto atau video dari kamera iPhone, Anda tidak perlu menulis antarmuka kamera Anda sendiri. Anda menggunakan API kamera untuk menanamkan kamera bawaan iPhone di aplikasi Anda. Jika API tidak ada untuk menjadikan ini mudah, pengembang aplikasi harus membuat perangkat lunak kamera mereka sendiri dan menginterpretasikan masukan perangkat keras kamera. Namun para pengembang sistem operasi Apple telah melakukan semua kerja keras ini sehingga para pengembang hanya dapat menggunakan API kamera untuk menanamkan kamera, dan kemudian melanjutkan dengan membangun aplikasi mereka. Dan, ketika Apple meningkatkan API kamera, semua aplikasi yang mengandalkannya akan memanfaatkan peningkatan itu secara otomatis.
Ini berlaku untuk setiap platform. Misalnya, apakah Anda ingin membuat kotak dialog di Windows? Ada API untuk itu. Ingin mendukung autentikasi sidik jari di Android? Ada API untuk itu juga, jadi Anda tidak perlu menguji setiap sensor sidik jari produsen Android yang berbeda. Pengembang tidak harus menemukan kembali kemudi berulang kali.
API Kontrol Akses ke Sumber Daya
API juga digunakan untuk mengontrol akses ke perangkat keras dan fungsi perangkat lunak yang mungkin tidak memiliki izin untuk menggunakan aplikasi. Itulah sebabnya API sering memainkan peran besar dalam keamanan.
Misalnya, jika Anda pernah mengunjungi situs web dan melihat pesan di browser Anda bahwa situs web meminta untuk melihat lokasi akurat Anda, situs web tersebut mencoba menggunakan geolokasi API di browser web Anda. Peramban web mengekspos API seperti ini untuk mempermudah pengembang web mengakses lokasi Anda - mereka hanya dapat bertanya "di mana Anda?" Dan peramban melakukan kerja keras mengakses GPS atau jaringan Wi-Fi terdekat untuk menemukan lokasi fisik Anda.
Prinsip yang sama ini digunakan pada sistem operasi seluler modern seperti iOS dan Android, di mana aplikasi seluler memiliki izin yang dapat diberlakukan dengan mengontrol akses ke API. Misalnya, jika pengembang mencoba mengakses kamera melalui API kamera, Anda dapat menolak permintaan izin dan aplikasi tidak memiliki cara mengakses kamera perangkat Anda.
Sistem file yang menggunakan izin - seperti yang mereka lakukan di Windows, Mac, dan Linux - memiliki izin yang diberlakukan oleh API sistem file. Aplikasi umum tidak memiliki akses langsung ke hard disk fisik mentah. Sebagai gantinya, aplikasi harus mengakses file melalui API.
API Digunakan Untuk Komunikasi Antar Layanan
API digunakan untuk semua jenis alasan lain juga. Misalnya, jika Anda pernah melihat objek Google Maps yang disematkan di situs web, situs web itu menggunakan Google Maps API untuk menyematkan peta itu. Google mengekspos API seperti ini kepada pengembang web, yang kemudian dapat menggunakan API untuk memasang objek yang kompleks tepat di situs web mereka. Jika API seperti ini tidak ada, pengembang mungkin harus membuat peta mereka sendiri dan memberikan data peta mereka sendiri hanya untuk menempatkan peta interaktif kecil di situs web.
Dan, karena itu adalah API, Google dapat mengontrol akses ke Google Maps di situs web pihak ketiga, memastikan mereka menggunakannya secara konsisten daripada mencoba untuk menanamkan frame dengan sengaja yang menunjukkan situs web Google Maps, misalnya.
Ini berlaku untuk banyak layanan online yang berbeda. Ada API untuk meminta terjemahan teks dari Google Translate, atau menanamkan komentar Facebook atau tweet dari Twitter di situs web.
Standar OAuth juga mendefinisikan sejumlah API yang memungkinkan Anda masuk ke situs web dengan layanan lain - misalnya, menggunakan akun Facebook, Google, atau Twitter Anda untuk masuk ke situs web baru tanpa membuat akun pengguna baru hanya untuk situs itu. API adalah kontrak standar yang menentukan bagaimana pengembang berkomunikasi dengan layanan, dan jenis output yang diharapkan oleh pengembang untuk menerima kembali.
Jika Anda berhasil menyelesaikan ini, Anda akan memiliki gagasan yang lebih baik tentang apa itu API. Pada akhirnya, Anda tidak benar-benar perlu tahu apa itu API kecuali Anda adalah pengembang. Namun, jika Anda melihat platform atau layanan perangkat lunak telah menambahkan API baru untuk berbagai perangkat keras atau layanan, akan lebih mudah bagi pengembang untuk memanfaatkan fitur tersebut.