Web service adalah layanan perangkat lunak yang memungkinkan dua aplikasi bertukar data lewat jaringan tanpa campur tangan manusia. Satu aplikasi mengirim permintaan dengan format yang disepakati, misalnya "berapa ongkos kirim dari Yogyakarta ke Bandung untuk paket 2 kg", lalu aplikasi lain mengolahnya dan membalas dengan data terstruktur yang bisa langsung dipakai. Yang bertukar data adalah program, bukan orang, sehingga balasannya berupa data, bukan halaman untuk dibaca.
Anda hampir pasti sudah memakai web service setiap hari tanpa menyadarinya: saat toko online menampilkan ongkir otomatis, saat peta muncul di halaman kontak, atau saat pembayaran dikonfirmasi tanpa Anda mengirim bukti transfer. Artikel ini menjelaskan pengertiannya, cara kerjanya langkah demi langkah, beda web service dengan API dan web server, dua gaya utama (SOAP dan REST), contohnya di website usaha, dan hal yang perlu diperiksa sebelum memakainya.
Pengertian web service menurut W3C dan dalam praktik
Definisi formal yang sering dikutip datang dari W3C, lembaga standar web, dalam Web Services Glossary yang terbit tahun 2004. W3C mendefinisikan web service sebagai sistem perangkat lunak yang dirancang untuk mendukung interaksi antarmesin yang saling bisa dioperasikan melalui jaringan. Definisi itu juga menyebut antarmuka yang dijelaskan dalam format yang bisa dibaca mesin (WSDL) dan pesan SOAP yang biasanya dikirim lewat HTTP dengan format XML.
Definisi W3C itu lahir di masa ketika SOAP adalah cara utama membangun web service. Wikipedia mencatat bahwa sejak itu penekanannya bergeser ke komunikasi berbasis REST yang lebih sederhana, dan API RESTful tidak membutuhkan protokol berbasis XML seperti SOAP dan WSDL. Karena itu, dalam percakapan sehari-hari para pengembang sekarang, "web service" biasanya berarti layanan apa pun yang bisa dipanggil program lain lewat HTTP, dengan data dalam JSON atau XML.
Tiga ciri yang membedakan web service dari halaman web biasa:
- Penggunanya program, bukan manusia. Balasannya dirancang untuk diolah kode, bukan dibaca di layar.
- Formatnya disepakati di depan. Kedua pihak tahu bentuk permintaan dan balasan, biasanya tertulis di dokumentasi.
- Tidak bergantung bahasa pemrograman. Website yang dibuat dengan PHP bisa memakai layanan yang dibuat dengan Java atau Python, selama keduanya berbicara lewat protokol web yang sama.
Cara kerja web service langkah demi langkah
Cara kerjanya mengikuti pola permintaan dan balasan yang sama dengan cara browser membuka halaman. MDN menjelaskan HTTP sebagai protokol klien-server: permintaan dimulai oleh penerima (klien), lalu server membalas. Bedanya, pada web service kliennya adalah program, dan isi balasannya adalah data.
- Klien menyusun permintaan. Website toko Anda, misalnya, menyiapkan alamat layanan (endpoint), metode HTTP (misalnya GET untuk mengambil data), dan parameter seperti kota asal, kota tujuan, dan berat.
- Permintaan dikirim lewat jaringan dengan HTTPS, biasanya disertai kunci akses supaya layanan tahu siapa yang meminta.
- Layanan memeriksa dan mengolah. Kunci dicek, parameter divalidasi, lalu layanan mengambil data dari basis datanya atau menghitungnya.
- Layanan mengirim balasan berisi kode status (misalnya 200 bila berhasil) dan data terstruktur, misalnya daftar kurir beserta tarif dan perkiraan waktu kirim.
- Klien memakai datanya. Website menampilkan pilihan ongkir di halaman checkout, tanpa ada orang yang mengetik ulang angka itu.
Seluruh putaran itu biasanya selesai dalam hitungan detik atau kurang. Tetapi karena website Anda menunggu balasan dari pihak lain, kecepatan dan ketersediaan layanan itu ikut menentukan kecepatan halaman Anda. Ini salah satu alasan halaman checkout yang memanggil banyak layanan bisa terasa lambat. Cara mengukur kecepatan halaman kami jelaskan di cara cek kecepatan website.
Web service, API, dan web server: bedanya di mana
Tiga istilah ini sering dipakai bergantian, padahal cakupannya berbeda. Menurut MDN, API adalah sekumpulan fitur dan aturan di dalam sebuah program yang memungkinkan program lain berinteraksi dengannya, sebagai kebalikan dari antarmuka untuk pengguna manusia. Web service adalah API yang diakses lewat jaringan dengan protokol web. Web server adalah perangkat lunak yang menerima permintaan HTTP dan mengirim balasan, dan web service biasanya berjalan di atasnya.
Tabel ini lebih lebar dari layar. Geser ke samping untuk melihat seluruh kolom.
| Istilah | Apa itu | Siapa penggunanya | Contoh |
|---|---|---|---|
| API | Aturan dan fitur agar sebuah program bisa dipakai program lain | Program lain, di perangkat yang sama atau lewat jaringan | Fungsi bawaan browser untuk mengambil lokasi, pustaka di dalam aplikasi |
| Web service | API yang diakses lewat jaringan memakai protokol web seperti HTTP | Program di mesin lain | Layanan cek ongkir, layanan konfirmasi pembayaran |
| Web server | Perangkat lunak dan mesin yang melayani permintaan HTTP | Browser dan program lain | Server yang mengirim halaman website Anda ke pengunjung |
| Halaman web | Dokumen HTML untuk ditampilkan di browser | Manusia | Halaman beranda, halaman produk |
Singkatnya: semua web service adalah API, tetapi tidak semua API adalah web service. Dan web server bisa mengirim halaman untuk manusia sekaligus menjalankan web service untuk program. Penjelasan lebih lengkap tentang peran web server, termasuk perangkat lunak yang paling banyak dipakai, ada di artikel web server adalah. Hubungannya dengan hosting dan domain kami jelaskan di apa itu hosting dan domain.
Dua gaya utama: SOAP dan REST
Dalam sejarah web service, ada dua gaya yang paling sering dibandingkan. Keduanya masih dipakai, dan pilihan di antaranya biasanya sudah ditentukan oleh layanan yang ingin Anda sambungkan, bukan oleh Anda.
SOAP adalah protokol pesan berbasis XML. Menurut Wikipedia, SOAP bermula dari XML-RPC pada Juni 1998, dan versi terbarunya, SOAP 1.2, diterbitkan W3C pada 27 April 2007. Pesan SOAP punya struktur yang ketat, dan layanannya biasanya dijelaskan dengan dokumen WSDL yang bisa dibaca mesin. Gaya ini masih banyak ditemui di sistem perusahaan besar, perbankan, dan sistem lama yang harus tetap tersambung.
REST adalah gaya arsitektur, bukan protokol. MDN menjelaskan REST sebagai sekumpulan batasan desain yang menghasilkan sistem terdistribusi yang efisien, andal, dan mudah diperluas, dengan sumber daya yang dipindahkan lewat interaksi klien-server yang terstandar. MDN juga mencatat bahwa HTTP API secara umum sering disebut RESTful walaupun belum tentu mematuhi semua batasan REST. REST memakai metode HTTP biasa: GET untuk mengambil, POST untuk membuat, PUT atau PATCH untuk mengubah, dan DELETE untuk menghapus.
Tabel ini lebih lebar dari layar. Geser ke samping untuk melihat seluruh kolom.
| Aspek | SOAP | REST |
|---|---|---|
| Jenis | Protokol pesan | Gaya arsitektur |
| Format data | XML | Paling sering JSON, bisa juga XML atau format lain |
| Deskripsi layanan | Biasanya dokumen WSDL | Biasanya dokumentasi tertulis, kadang spesifikasi seperti OpenAPI |
| Cara memanggil | Pesan dengan amplop dan aturan yang ketat | Metode HTTP biasa (GET, POST, PUT, DELETE) ke alamat sumber daya |
| Sering ditemui di | Sistem perusahaan dan sistem lama | Layanan web modern dan aplikasi ponsel |
Selain dua gaya itu, ada pendekatan lain seperti GraphQL (klien meminta tepat data yang dibutuhkan dalam satu permintaan) dan gRPC (dipakai untuk komunikasi cepat antarlayanan di sisi server). Untuk website usaha, hampir semua layanan yang akan Anda sambungkan memakai gaya REST dengan data JSON.
JSON dan XML: bahasa yang dipakai web service
Balasan web service harus bisa diolah program, jadi datanya dikirim dalam format terstruktur. Dua format yang paling umum adalah JSON dan XML.
MDN menjelaskan JSON (JavaScript Object Notation) sebagai format berbasis teks yang standar untuk mewakili data terstruktur berdasarkan sintaks objek JavaScript, dan umum dipakai untuk mengirim data dalam aplikasi web, misalnya dari server ke klien agar ditampilkan di halaman. Contoh balasan layanan ongkir dalam JSON (contoh, bukan dari layanan nyata) kira-kira berisi daftar kurir, dan tiap kurir punya nama layanan, tarif, dan perkiraan hari kirim. Bentuknya ringkas dan mudah dibaca manusia maupun program.
XML lebih panjang karena setiap nilai dibungkus tag pembuka dan penutup, tetapi punya aturan validasi yang kuat. Itu sebabnya XML tetap dipakai di SOAP dan di pertukaran dokumen yang formatnya harus sangat ketat. Bagi pemilik website, pilihan format hampir selalu mengikuti layanan yang disambungkan, jadi yang penting adalah memastikan pembuat website Anda terbiasa dengan format yang dipakai layanan itu.
Contoh web service di website usaha
Berikut contoh web service yang paling sering kami temui di website usaha kecil dan menengah. Di semua contoh, website Anda berperan sebagai klien yang meminta data atau fungsi ke layanan pihak lain.
- Cek ongkos kirim otomatis. Toko online mengirim kota asal, tujuan, dan berat ke layanan ongkir, lalu menampilkan pilihan kurir dan tarifnya di halaman checkout.
- Gerbang pembayaran. Website membuat tagihan lewat layanan pembayaran, lalu layanan itu memberi kabar balik (sering disebut webhook) ketika pembeli sudah membayar, sehingga status pesanan berubah sendiri.
- Peta dan lokasi. Halaman kontak menampilkan peta dan rute dari layanan peta, tanpa Anda menggambar peta sendiri.
- Formulir ke email atau spreadsheet. Isian formulir dikirim ke layanan formulir yang meneruskannya ke email atau tabel.
- Login dengan akun lain. Pengunjung masuk memakai akun yang sudah mereka punya, dan website menerima konfirmasi identitasnya lewat layanan penyedia akun.
- Sinkron stok. Website dan aplikasi kasir membaca stok dari sumber yang sama, sehingga barang yang habis di toko fisik ikut habis di website.
Fitur-fitur di atas yang membedakan toko online sungguhan dari katalog biasa. Langkah membangunnya kami tulis di cara membuat toko online, dan cakupan yang kami kerjakan ada di jasa pembuatan website toko online. Kalau Anda masih menimbang antara WordPress dengan plugin atau website custom untuk kebutuhan penyambungan seperti ini, perbandingannya ada di WordPress atau website custom.
Kapan usaha Anda perlu membuat web service sendiri
Sebagian besar website usaha hanya memakai web service pihak lain. Membuat web service sendiri baru masuk akal ketika ada data yang harus dipakai lebih dari satu aplikasi, atau ketika mitra perlu mengakses data Anda secara otomatis. Tanda-tandanya:
- Anda punya website dan aplikasi ponsel yang harus menampilkan data yang sama.
- Reseller atau mitra ingin mengambil daftar produk dan stok Anda secara otomatis.
- Tim internal memakai beberapa aplikasi yang saling mengetik ulang data, misalnya pesanan dari website disalin manual ke aplikasi gudang.
- Anda ingin menampilkan data dari sistem lama di website baru tanpa memindahkan sistemnya.
Kebutuhan seperti ini termasuk pekerjaan aplikasi web, bukan website company profile. Di tempat kami, pekerjaan semacam ini dimulai dengan Sprint Spesifikasi selama 5 hari kerja seharga Rp1.900.000 untuk memetakan alur, fitur, dan wireframe utama, lalu harga tetap ditulis di SPK. Biaya sprint dipotong penuh dari harga proyek bila lanjut. Rinciannya ada di jasa pembuatan aplikasi web, dan gambaran tahap wireframe-nya di contoh wireframe website. Siapa yang mengerjakan bagian mana dalam tim kami jelaskan di web developer adalah.
Yang perlu dicek sebelum memakai web service pihak ketiga
Menyambungkan website ke layanan lain itu mudah. Yang sering terlupa adalah apa yang terjadi setelahnya, ketika layanan itu berubah harga, berganti versi, atau sedang gangguan. Sebelum memakai layanan pihak ketiga, periksa hal-hal berikut:
- Dokumentasi resmi. Pastikan ada dokumentasi yang jelas, contoh permintaan, dan daftar kode kesalahan. Layanan tanpa dokumentasi akan menyulitkan saat ada masalah.
- Batas dan biaya. Baca batas jumlah permintaan per menit atau per hari, dan biaya saat melewatinya. Fitur yang gratis di awal bisa menjadi tagihan bulanan saat pengunjung bertambah.
- Kunci akses. Kunci atau token harus disimpan di server, tidak ditulis di kode yang bisa dilihat pengunjung. Pastikan akun layanan atas nama usaha Anda, bukan atas nama pembuat website.
- Rencana saat gangguan. Tentukan apa yang tampil bila layanan tidak membalas, misalnya pesan "ongkir akan dikonfirmasi lewat WhatsApp", supaya pembeli tidak terjebak di halaman kosong.
- Data pribadi. Catat data pelanggan apa saja yang dikirim ke pihak lain, dan pastikan hanya yang benar-benar diperlukan.
- Perubahan versi. Layanan kadang mematikan versi lama. Pastikan ada yang memantau pengumuman penyedia dan memperbarui sambungannya.
Poin keenam adalah alasan website yang tersambung ke banyak layanan butuh perawatan rutin, bukan hanya dibuat lalu ditinggal. Pola perawatan yang kami sarankan ada di jasa maintenance website. Kalau Anda sedang menyiapkan website pertama, urutan dasarnya dari domain sampai tayang ada di cara bikin website.
Kesimpulan
Web service adalah jembatan yang membuat aplikasi bisa saling bertukar data lewat jaringan: satu pihak meminta, pihak lain membalas dengan data terstruktur. Definisi awalnya dari W3C lekat dengan SOAP dan XML, sedangkan sebagian besar layanan modern memakai gaya REST dengan data JSON. Bagi website usaha, web service hadir sebagai ongkir otomatis, pembayaran, peta, formulir, dan sinkron stok, yang semuanya menghemat pekerjaan ketik ulang.
Manfaatnya datang bersama tanggung jawab: setiap layanan yang disambungkan adalah pihak lain yang harus tetap berjalan, punya batas dan biaya, dan menerima sebagian data Anda. Periksa hal-hal itu sebelum menyambungkan, bukan setelah fitur bermasalah.
Kalau Anda butuh website yang tersambung ke layanan lain, misalnya ongkir, pembayaran, atau stok kasir, ceritakan kebutuhannya lewat WhatsApp kami (membuka WhatsApp di tab baru). Kami balas dengan cara penyambungan yang masuk akal, paket yang cocok, dan perkiraan waktu. Daftar paket lengkap ada di harga pembuatan website.
Sumber
- W3C, Web Services Glossary (tab baru) (W3C Working Group Note, 11 Februari 2004), untuk definisi formal web service, WSDL, dan SOAP.
- Wikipedia, Web service (tab baru), untuk pergeseran ke Web API berbasis REST yang tidak membutuhkan SOAP dan WSDL.
- Wikipedia, SOAP (tab baru), untuk asal-usul SOAP dari XML-RPC (Juni 1998) dan SOAP 1.2 (27 April 2007).
- MDN, REST (tab baru), untuk pengertian REST dan catatan bahwa HTTP API sering disebut RESTful walau belum tentu mematuhi semua batasannya.
- MDN, API (tab baru), untuk pengertian API.
- MDN, Overview of HTTP (tab baru), untuk model klien-server HTTP.
- MDN, Working with JSON (tab baru), untuk pengertian JSON.



