Mekanisme di mana satu sistem otomatis 'ngetuk pintu' sistem lain via HTTP request saat ada event yang terjadi. Kayak notifikasi push, tapi antar sistem, bukan ke smartphone kamu.

Apa itu Webhook?

Webhook adalah cara satu sistem memberi tahu sistem lain bahwa ada sesuatu yang terjadi, secara otomatis lewat HTTP request. Waktu event terjadi di sistem pengirim, dia langsung kirim data ke URL yang udah kamu tentukan sebelumnya tanpa kamu perlu minta duluan.

Analogi paling gampang: kamu pesan makanan online, terus minta notifikasi SMS kalau pesanan udah di-pick up kurir. Kamu nggak perlu terus-terusan nanya status ke aplikasi, karena sistem mereka yang bakal kabarin kamu otomatis. Nah, webhook itu kayak mekanisme "kabarin otomatis" tapi antar sistem atau aplikasi, bukan ke HP kamu.

Webhook vs Polling

Cara lain untuk tahu kalau ada event adalah polling: sistem kamu terus-terusan nanya ke sistem lain, "ada yang baru gak? ada yang baru gak?" setiap beberapa detik. Ini boros resource dan lambat.

AspekPollingWebhook
Cara kerjaSistem kamu yang terus nanyaSistem lain yang kasih tahu kamu
LatencyTergantung interval pollingHampir real-time
ResourceBoros, banyak request sia-siaEfisien, request cuma saat ada event
KompleksitasSederhanaPerlu URL endpoint yang bisa di-hit
Kontrol timingKamu yang pegangSistem pengirim yang tentukan

Cara Kerjanya

Alurnya simpel banget:

  1. Kamu daftarkan URL endpoint di sistem pengirim (misalnya Midtrans, Xendit, GitHub)
  2. Kamu bikin endpoint di server kamu yang bisa nerima HTTP POST request
  3. Waktu event terjadi di sistem pengirim, mereka kirim data ke URL kamu
  4. Server kamu proses data tersebut dan balas dengan response 200

Contoh Nyata di Indonesia

Xendit (payment gateway Indonesia) pakai webhook untuk kabarin backend kamu kalau pembayaran berhasil. Kamu nggak perlu terus-terusan cek status invoice ke Xendit, karena Xendit yang bakal kirim request ke endpoint kamu waktu ada update status pembayaran.

GitHub juga pakai webhook untuk trigger CI/CD pipeline waktu ada push ke repository. Setiap kali developer push code, GitHub kirim webhook ke Jenkins atau GitHub Actions secara otomatis.

Keamanan Webhook

Karena webhook adalah HTTP request yang datang dari luar, kamu perlu validasi bahwa request itu beneran dari sumber yang legitimate dan bukan penyerang yang nyamar. Biasanya dilakukan lewat signature verification menggunakan HMAC atau secret token yang dikirim di header request.

Satu hal lagi: karena pengiriman webhook bisa gagal (server kamu lagi down, timeout, dll), sistem yang baik punya retry mechanism. Ini berarti endpoint kamu harus idempoten supaya event yang dikirim ulang nggak bikin duplikat data.

Lanjut Latihan

Udah paham Webhook? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →