net/publication/339662253
CITATIONS READS
0 1,595
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Faisal Al Isfahani on 03 March 2020.
Web 3.0
Web 3.0 juga sering disebut semantic web. Istilah semantic web sendiri
merupakan pengembangan web dimana konten web ditampilkan tidak hanya
dalam format bahasa manusia, tetapi juga dalam format yang dapat dibaca dan
digunakan oleh mesin. Maksudnya adalah misalkan kita sering menggunakan
Youtube dan sering menonton video yang berkaitan dengan masak. Saat kita
membuka Youtube, secara langsung video yang ditawarkan youtube pada halaman
home adalah video yang berkaitan dengan masak-memasak. Hal ini bisa terjadi
karena sistem youtube dapat membaca kebiasaan yang kita lakukan pada aplikasi
youtube itu sendiri, sehingga sistem youtube akan mencarikan konten yang sesuai
dengan kebiasaaan kita dan menyajikannya.
Perbedaan yang paling mencolok dari web 1.0, web 2.0, dan web 3.0
adalah kesan yang dirasakan pengguna. Pada web 1.0, pengguna seakan hanya
menjadi konsumen dari web. Sangat minim interaksi terjadi antara web dan
penggunanya. Pada generasi keduanya, pengguna sudah bisa mengalami
pengalaman ‘share’. Munculnya sosial media, interaksi beberapa orang melalui
messenger, dan lain-lain. Pada web 3.0, kesan yang ingin dirasakan pengguna
adalah sesuatu yang ‘live’. Web 3.0 seakan menghadirkan, atau dapat dibilang
menggantikan dunia pengguna yang sesungguhnya. Dapat dilihat semakin tinggi
intensitas pengguna internet zaman sekarang. Ini adalah dampak dari real-time
yang dihadirkan oleh web 3.0. Web 3.0 juga menghadirkan segala aspek yang ada
di sekeliling kita menjadi hanya dalam genggaman. Kita mulai mendengar istilah
‘one-touch living’, karena semua yang kita butuhkan dapat dipenuhi oleh gadget
yang kita miliki [7].
API == RESTFUL
Ini bukan masalah tentang hasil pencarian Google atau Wikipedia, tetapi
mencerminkan gaya hidup developer saat ini, ketika kita berbicara api maka itu
sama dengan restful api.
Bagi para developer yang keren saat ini, adakah di antara kalian yang
masih ingat dengan software api ? Kalau memang lupa tidak masalah, karena
memang manusia itu tempatnya salah dan lupa, jadi saya coba bantu copaskan
dari Wikipedia tadi :
Bagi programmer, menurut saya, hanya akan dua hal yang akan mereka
develop / buat :
1. Aplikasi utuh (bisa web, bisa cli, bisa mobile app, bisa desktop, dll)
2. Library (atau wrapper mungkin)
Rata-rata programmer jaman sekarang sudah lupa dengan definisi software
api itu sendiri. Entah mereka lupa, entah ga paham, atau entah ga peduli, yang
penting kerennn aja biar laku nanti kalau diundang sebagai speaker techtalk.
Dan bagi saya inilah awal mula derita programmer saat ini. Banyak sekali
aplikasi web/mobile/desktop base saat ini yang 100% mengandalkan arsitektur
restful api, dimana dari masing-masing client (web/mobile/desktop) berhubungan
dengan aplikasi di server untuk melakukan :
• CRUD terhadap resource object
• Queue object
• dll
Dan dilihat dari kebutuhan bisnisnya lagi, rata-rata dua aktivitas di atas ini
akan memiliki side effect yang bermacam-macam bentuknya. Dan puncak dari
semua ini adalah, yang terjadi saat ini adalah rata-rata programmer (khususnya
backend) menyediakan endpoint api berdasarkan:
• Request dari developer lainnya
• UI Design
Bukan berdasarkan core bisnis! Coba bayangkan kalau sistem api kita
menyediakan endpoint api berdasarkan UI design / request dari developer lain ?
Yang terjadi sistem kita akan ancur berantakan bin ruwet bin ribet bin remuk!
Otomatis yang terjadi adalah penumpukan endpoint dalam jumlah yang banyak
dan akan bertambah banyak seiring keperluan fitur. Oklah, ada versioning, yang
jadi masalah adalah antara V1 dan V2 ternyata sama saja caranya (cara
managenya), jadi ya tidak berguna.
Karena kita sendiri sudah lupa dengan apa itu software api terjadilah
seperti yang saya tulis barusan di atas.
• Client (consumer)
Client itu bisa siapa saja, bisa apa saja. Ketika client membutuhkan sebuah
aktivitas dari aplikasi lain, maka yang perlu dilakukan adalah client
mengkonsumsi API yang disediakan oleh Provider, dan Provider seharusnya
membuat api sesuai dengan core bisnis utama mereka sendiri.
...
Contoh kasus adalah, misal di aplikasi yang ingin kita buat, kita
membutuhkan payment gateway , apa yang perlu kita lakukan :
• Cari & pilih provider payment gateway
• Cek api doc dari payment gateway yang kita pilih
Dan di kasus ini, misal kita pilih Stripe. Stripe sudah menyediakan api doc
agar ketika ada consumer mereka ingin menggunakan service dari Stripe secara
programmatically, pihak consumer sudah tidak perlu repot-repot lagi, cukup
konsumsi saja api mereka. Simpel!
Pertanyaannya adalah, ketika di aplikasi kita ada komponen UI dimana
membutuhkan informasi dari pembayaran dan kebetulan tidak disediakan oleh
Stripe, apakah kita sebagai Client (consumer) bisa menelpon Stripe dan kemudian
minta (request) api baru ? Atau malah api lama minta dirubah? Mungkin ?
Atau mungkin bagi kita, response data dari Stripe tidak cocok, apakah
mungkin bagi kita untuk menghubungi Stripe dan kemudian minta untuk dirubah?
Ada yang merasa kalau ada sesuatu yang hilang ? Ya ada, yaitu core business nya!
Engineer sudah tidak peduli lagi dengan :
• Core business
• Business value
• Business flow
Bagi saya contoh api development yang bagus itu adalah seperti Google
yang menyediakan Google API Client Library. Dari homepage mereka :
Google APIs give you programmatic access to Google Maps, Google Drive,
YouTube, and many other Google products. To make coding against these APIs
easier, Google provides client libraries that can reduce the amount of code you
need to write and make your code more robust.
programmatic access to Google Maps, Google Drive, YouTube, and many other
Google products.
Dari contoh di atas, Google API Client Library , kita bisa melihat, kalau
Google API Client didesain (bukan design UI lho ya) dan dimanage dengan cukup
rapi, dan elegan. Tidak hanya asal develop by request.
Daftar Pustaka