Web Push API: Notifikasi Browser
Mengirim push notification ke browser user — tanpa perlu install aplikasi
Tujuan Pembelajaran
- Memahami cara kerja Web Push API, Service Workers, dan VAPID
- Mampu mengimplementasikan push notification subscription dan delivery
- Mampu menangani permission flow dan unsubscription
Analogi
Web Push = Notifikasi Aplikasi, Tapi di Browser:
Mirip notifikasi HP:
Aplikasi minta izin → kamu allow → dapat notifikasi walau aplikasi tidak dibuka
Web Push:
Website minta izin → kamu allow → dapat notifikasi walau browser tidak dibuka
Komponen:
- Service Worker = 'Asisten' yang jalan di background, terima push walau tab ditutup
- Push Service = Server browser (Mozilla/Google) yang menjembatani server-mu ke browser
- VAPID Keys = Identitas server-mu (supaya push service tahu siapa yang kirim)
Web Push seperti notifikasi HP di browser — Service Worker sebagai asisten background, browser push service sebagai jembatan.
Penjelasan Konsep
Web Push API memungkinkan aplikasi web mengirim notifikasi ke user — bahkan saat browser tidak dibuka. Ini adalah channel real-time paling powerful untuk aplikasi web.
Komponen: (1) Service Worker — JavaScript yang berjalan di background, terpisah dari halaman web. Menerima push event, menampilkan notifikasi. (2) Push Service — infrastruktur browser (Mozilla autopush, Google FCM) yang menghubungkan server dengan browser. (3) VAPID (Voluntary Application Server Identification) — public-private key pair untuk identifikasi server.
Flow: (1) Subscribe — user klik tombol Allow. Browser generate subscription object (endpoint + keys). Web app kirim subscription ke server untuk disimpan. (2) Send — server kirim push message ke Push Service dengan subscription endpoint + VAPID signature. (3) Deliver — Push Service mencari browser user, mengirimkan push event. (4) Display — Service Worker menangkap push event, memanggil self.registration.showNotification().
Permission UX: (1) Jangan langsung minta izin saat user pertama kali buka halaman (annoying, hampir pasti ditolak). (2) Tampilkan soft ask dulu — jelaskan value notifikasi. (3) Minta izin setelah user melakukan aksi yang relevan (order, subscribe). (4) Handle: granted (allow), denied (block — user harus manual enable di browser settings), default (belum memilih).
Rate limiting: Jangan spam notifikasi. Web Push harus relevant dan timely — kalau tidak, user akan block.
Inti yang Perlu Dipahami
Bagian ini berfokus pada memahami cara kerja Web Push API, Service Workers, dan VAPID., mampu mengimplementasikan push notification subscription dan delivery., dan mampu menangani permission flow dan unsubscription. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.
Saat membaca Web Push API, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.
Cara Membayangkannya
Web Push seperti notifikasi HP di browser — Service Worker sebagai asisten background, browser push service sebagai jembatan. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.
Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.
Konteks dalam Perjalanan Belajar
Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.
Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.
Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.
Prompt AI
Implementasi Web Push notification: subscribe flow dengan soft ask, save subscription ke database, kirim push via web-push library, dan service worker untuk menampilkan notifikasi.
Pertanyaan Reflektif
Apakah aplikasi-mu pakai Web Push? Atau kamu bergantung pada email yang sering tidak dibaca? Web Push punya open rate jauh lebih tinggi dari email.