Notifikasi lokal dalam pengembangan seluler: esensi, jenis apa saja, dan cara kerjanya

Penulis: IT Sectr Diterbitkan: 2026-03-19 Waktu membaca: 8 mnt

Notifikasi lokal adalah pesan yang dikirim aplikasi kepada pengguna tanpa partisipasi server jarak jauh. Semua data diproses dan ditampilkan langsung di perangkat penerima. Mekanisme semacam itu cocok untuk pengingat, timer, dan alarm ketika aplikasi berada di latar belakang atau ditutup. Menurut Apple Developer Documentation, UNUserNotificationCenter menyediakan manajemen terpusat notifikasi lokal di iOS.

Poin Utama

  • Notifikasi lokal — pesan yang dijadwalkan dan dikirimkan oleh perangkat tanpa partisipasi server
  • Platform — Android menggunakan NotificationManager, iOS menggunakan UNUserNotificationCenter
  • Penjadwalan — notifikasi dapat ditunda berdasarkan waktu, geolokasi, atau kalender
  • Keterbatasan — notifikasi lokal tidak berfungsi antar perangkat dan memerlukan logika sinkronisasi terpisah
  • UX — notifikasi yang dikonfigurasi dengan benar meningkatkan keterlibatan dan mengembalikan pengguna ke aplikasi

Apa itu notifikasi lokal?

Notifikasi lokal adalah pesan pemicu yang dihasilkan dan ditampilkan oleh sistem operasi pada perangkat yang sama tempat aplikasi dipasang. Tidak seperti notifikasi push, notifikasi lokal tidak melalui server eksternal — seluruh logika penjadwalan dieksekusi di sisi klien.

Notifikasi semacam itu berfungsi terlepas dari status aplikasi: aktif, diminimalkan, atau ditutup sepenuhnya. Sistem operasi menangani pengiriman pada waktu yang ditentukan, dan pengembang hanya menentukan konten dan pemicu.

Sistem menjamin pengiriman notifikasi lokal bahkan tanpa jaringan. Ini adalah keunggulan utama dibandingkan notifikasi push yang memerlukan koneksi internet stabil dan server yang berfungsi.

Komponen utama permintaan

Setiap notifikasi lokal terdiri dari tiga bagian: konten (judul, teks, suara), pemicu (kondisi waktu atau geo), dan identifier permintaan. Identifier memungkinkan pembatalan atau pembaruan notifikasi sebelum pengirimannya.

Pengembang dapat mengatur hingga 64 notifikasi lokal untuk satu aplikasi di iOS dan jumlah tidak terbatas di Android. Perbedaan ini terkait dengan keterbatasan arsitektur sistem operasi.

Bagaimana cara kerja notifikasi lokal di iOS dan Android?

Kedua platform menyediakan API mereka sendiri untuk bekerja dengan notifikasi lokal. Di iOS elemen utamanya adalah UNUserNotificationCenter, di Android — NotificationManager. Meskipun antarmukanya berbeda, logikanya sama: aplikasi membuat permintaan, mendaftarkannya di sistem, dan OS mengirimkan notifikasi pada waktu yang ditentukan.

iOS menggunakan UNCalendarNotificationTrigger untuk acara kalender, UNTimeIntervalNotificationTrigger untuk interval, dan UNLocationNotificationTrigger untuk geolokasi. Android menawarkan AlarmManager, WorkManager, dan penjadwalan tepat melalui setExact.

Sejak Android 12 — SCHEDULE_EXACT_ALARM memerlukan izin khusus dari pengguna. Di iOS izin diminta satu kali melalui UNUserNotificationCenter.requestAuthorization, dan pengguna memilih tingkat akses: spanduk, suara, lencana.

Jenis notifikasi lokal

Notifikasi lokal diklasifikasikan berdasarkan jenis pemicu, bukan berdasarkan konten. Setiap jenis menentukan kapan dan dalam kondisi apa notifikasi akan ditampilkan kepada pengguna.

Perbandingan pemicu antar platform

Di iOS dan Android jenis pemicu diimplementasikan secara berbeda, meskipun klasifikasi logisnya sama. iOS menggunakan UNCalendarNotificationTrigger untuk tanggal, UNTimeIntervalNotificationTrigger untuk interval, dan UNLocationNotificationTrigger untuk geolokasi. Android menawarkan AlarmManager dengan setExact dan setRepeating, serta WorkManager untuk tugas tertunda.

Jenis pemicuDeskripsiContoh
Interval waktuNotifikasi setelah N detik sejak dijalankanTimer hitung mundur
Tanggal kalenderNotifikasi pada waktu dan tanggal tertentuPengingat pertemuan
GeolokasiNotifikasi saat masuk/keluar dari wilayahPengingat di dekat toko
Tanpa syaratPengiriman segera saat pemanggilan APINotifikasi unduhan

Di iOS juga tersedia UNNotificationAttachment — lampiran gambar, audio, atau video di badan notifikasi. Android mendukung templat kustom dengan tombol dan gambar besar melalui NotificationCompat.Style.

Pemilihan pemicu tergantung pada skenario: pengingat kalender paling baik bekerja melalui pemicu kalender, dan pengingat geo — melalui geolokasi. Pemicu interval cocok untuk acara reguler dengan periode tetap.

Perilaku pemicu di latar belakang

Di iOS notifikasi lokal dikirimkan oleh sistem bahkan saat aplikasi ditutup — UNUserNotificationCenter mengelola antrean secara mandiri. Di Android pengiriman tergantung pada mekanisme yang dipilih: AlarmManager aktif bahkan saat layar mati, sedangkan WorkManager mempertimbangkan penghematan daya.

Skenario penggunaan di aplikasi seluler

Notifikasi lokal menyelesaikan tugas di mana infrastruktur eksternal berlebihan atau tidak tersedia. Skenario utama: pengingat, timer, tips pembelajaran, dan tindakan tertunda.

  • Pengingat — aplikasi kalender membuat notifikasi lokal pada tanggal acara tertentu
  • Tips pembelajaran — sehari setelah instalasi, aplikasi menampilkan tip tentang layar
  • Timer — timer dapur aktif setelah waktu tertentu bahkan saat aplikasi ditutup
  • Kemajuan operasi — notifikasi tentang selesainya unduhan atau ekspor data

Penelitian Localytics menunjukkan bahwa aplikasi yang menggunakan pengingat lokal mempertahankan 35% lebih banyak pengguna di minggu pertama setelah instalasi. Ini menjadikan notifikasi lokal sebagai alat onboarding yang kuat.

Penting untuk tidak menyalahgunakan frekuensi — sistem sendiri mengelompokkan notifikasi dari satu aplikasi, dan pengguna dapat menonaktifkan semua notifikasi lokal jika mengganggu. Frekuensi optimal tidak lebih dari 2–3 notifikasi per hari untuk acara non-kritis.

Contoh penjadwalan di Android

Untuk menjadwalkan notifikasi lokal di Android gunakan NotificationManager bersama dengan AlarmManager. Sejak Android 8+ harus membuat saluran notifikasi terlebih dahulu, jika tidak notifikasi tidak akan ditampilkan.

kotlin
val channelId = "reminder_channel"
val notificationId = "task_reminder_42"

val channel = NotificationChannel(
    channelId,
    "Pengingat",
    NotificationManager.IMPORTANCE_HIGH
).apply {
    description = "Saluran untuk pengingat tugas"
}

val manager = getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)

val intent = Intent(this, ReminderReceiver::class.java).apply {
    putExtra("notification_id", notificationId)
    putExtra("channel_id", channelId)
}

val pendingIntent = PendingIntent.getBroadcast(
    this, notificationId.hashCode(),
    intent, PendingIntent.FLAG_UPDATE_CURRENT
)

val alarmManager = getSystemService(AlarmManager::class.java)
alarmManager.setExact(
    AlarmManager.RTC_WAKEUP,
    triggerTimeMillis,
    pendingIntent
)

Di Android 12+ periksa izin SCHEDULE_EXACT_ALARM sebelum memanggil setExact. Jika izin tidak diberikan — gunakan setWindow yang menjamin pengiriman dalam jendela waktu.

Pemrosesan di BroadcastReceiver

Saat AlarmManager aktif, sistem mengirimkan Intent siaran yang diterima oleh BroadcastReceiver. Di dalamnya harus membuat dan menampilkan notifikasi melalui NotificationManager. Pastikan PendingIntent menggunakan FLAG_UPDATE_CURRENT, jika tidak saat data berubah notifikasi lama akan terus menggunakan Intent usang.

Contoh penjadwalan di iOS

Di iOS notifikasi lokal dibuat melalui UNUserNotificationCenter menggunakan UNMutableNotificationContent dan salah satu pemicu. Sebelum penjadwalan harus meminta izin pengguna.

swift
import UserNotifications

let center = UNUserNotificationCenter.current()

center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    guard granted else { return }
}

let content = UNMutableNotificationContent()
content.title = "Pengingat tugas"
content.body = "Jangan lupa selesaikan laporan sebelum jam 18:00"
content.sound = .default
content.userInfo = ["task_id": "42"]

let trigger = UNTimeIntervalNotificationTrigger(
    timeInterval: 3600,
    repeats: false
)

let request = UNNotificationRequest(
    identifier: "task_reminder_42",
    content: content,
    trigger: trigger
)

center.add(request)

iOS mendukung hingga 64 permintaan notifikasi lokal secara bersamaan. Jika batas terlampaui — sistem menolak permintaan baru sampai permintaan aktif dikirimkan atau dibatalkan. Gunakan getPendingNotificationRequests untuk memeriksa antrean saat ini.

Pemrosesan respons delegasi

Ketika pengguna berinteraksi dengan notifikasi lokal iOS, metode userNotificationCenter:didReceive response delegasi UNUserNotificationCenterDelegate dipanggil. Dalam metode ini tersedia identifier permintaan, actionIdentifier (tombol mana yang ditekan), dan userInfo kustom. Ini memungkinkan membedakan pembukaan notifikasi sederhana dari penekanan tombol tindakan tertentu.

Praktik terbaik notifikasi lokal

Agar notifikasi lokal bermanfaat dan tidak mengganggu pengguna, patuhi beberapa aturan utama. Pertama: kendalikan frekuensi — tidak lebih dari 2–3 notifikasi per hari untuk acara non-kritis, jika tidak pengguna akan menonaktifkan semua notifikasi aplikasi.

Kedua: beri pengguna pilihan. Tambahkan di antarmuka kemampuan untuk menonaktifkan jenis notifikasi lokal tertentu. Di Android untuk ini gunakan NotificationChannel terpisah dengan importance rendah, di iOS — kategori terpisah di pengaturan aplikasi.

Ketiga: relevansi kontekstual — notifikasi harus muncul ketika pengguna membutuhkannya. Pemicu geo ideal untuk pengingat tugas di dekat rumah, pemicu kalender — untuk pertemuan, pemicu interval — untuk tindakan rutin seperti minum air atau peregangan. Jangan campur jenis tanpa perlu.

Keempat: uji di perangkat nyata. Simulator iOS tidak menyimulasikan semua skenario pengiriman notifikasi lokal, terutama di latar belakang. Di Android gunakan adb shell dumpsys notification untuk memeriksa antrean notifikasi terjadwal dan parameternya. Kelima: selalu berikan pengguna kemampuan untuk menonaktifkan notifikasi melalui antarmuka aplikasi — ini adalah persyaratan wajib UX dan App Store Review Guidelines.

Pertanyaan Umum

Apa perbedaan notifikasi lokal dengan push?

Notifikasi lokal dijadwalkan dan dikirimkan oleh perangkat tanpa partisipasi server. Notifikasi push memerlukan layanan eksternal (FCM, APNS) dan koneksi internet. Notifikasi lokal bekerja offline, push — hanya dengan akses jaringan.

Berapa banyak notifikasi lokal yang bisa dijadwalkan?

iOS membatasi hingga 64 permintaan terjadwal secara bersamaan. Android tidak memiliki batasan ketat, tetapi lebih dari 500 notifikasi dapat menurunkan kinerja sistem dan memengaruhi waktu pengiriman.

Bisakah notifikasi lokal dibatalkan setelah penjadwalan?

Ya, di iOS gunakan removePendingNotificationRequests dengan identifier permintaan. Di Android panggil NotificationManager.cancel atau batalkan PendingIntent melalui AlarmManager. Identifier unik wajib untuk pembatalan.

Apakah perlu izin pengguna untuk notifikasi lokal?

Di iOS izin wajib diminta melalui requestAuthorization. Di Android 13+ (Tiramisu) juga diperlukan izin POST_NOTIFICATIONS. Versi Android yang lebih lama tidak memerlukan izin eksplisit untuk notifikasi lokal.

Bagaimana cara menambahkan tombol ke notifikasi lokal?

Di iOS buat UNNotificationAction dan tambahkan ke UNNotificationCategory. Di Android gunakan NotificationCompat.Builder.addAction dengan PendingIntent untuk BroadcastReceiver. Setiap tombol memicu tindakan terpisah di aplikasi.

Ringkasan

  • Notifikasi lokal — pesan yang dijadwalkan dan dikirimkan oleh perangkat tanpa infrastruktur server
  • UNUserNotificationCenter — API utama untuk bekerja dengan notifikasi lokal di iOS
  • NotificationManager — API utama untuk bekerja dengan notifikasi lokal di Android
  • Jenis pemicu — interval waktu, tanggal kalender, geolokasi, dan pengiriman tanpa syarat
  • Batas — iOS membatasi hingga 64 permintaan terjadwal, Android tidak memiliki batasan ketat
  • Izin — di iOS dan Android 13+ diperlukan persetujuan eksplisit pengguna untuk menampilkan notifikasi
  • Offline — notifikasi lokal bekerja tanpa koneksi internet, membuatnya lebih andal daripada push

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga