Notification Permission: apa itu, jenis notifikasi dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-05-22 Waktu membaca: 8 mnt

Notification Permission — ini adalah izin yang diperlukan aplikasi untuk mengirim notifikasi push dan notifikasi lokal kepada pengguna. Mulai dari Android 13 dan iOS 12, aplikasi wajib meminta izin ini saat runtime melalui dialog sistem. Menurut Android Developers, 2024, tanpa persetujuan eksplisit pengguna, aplikasi tidak dapat menampilkan notifikasi pada perangkat dengan Android 13 dan yang lebih baru.

Poin utama

  • Notification Permission — izin runtime untuk mengirim notifikasi, wajib di Android 13+ dan iOS 12+.
  • Android 13 memperkenalkan izin POST_NOTIFICATIONS, yang harus diminta saat runtime melalui Activity Result API.
  • iOS menggunakan UNUserNotificationCenter.requestAuthorization untuk meminta akses ke notifikasi lokal dan push.
  • Penolakan izin menyebabkan aplikasi tidak dapat menampilkan notifikasi lokal maupun push.
  • Permintaan ulang tidak mungkin dilakukan setelah penolakan pertama — Anda harus mengarahkan pengguna ke pengaturan sistem.

Apa itu Notification Permission?

Notification Permission — ini adalah izin sistem yang mengatur kemampuan aplikasi untuk mengirim notifikasi kepada pengguna. Hingga Android 13, semua aplikasi dapat menampilkan notifikasi tanpa diminta — cukup dengan mendeklarasikan izin di manifes. Namun dengan meningkatnya spam dan notifikasi yang mengganggu, Google memberlakukan permintaan runtime wajib, mirip dengan iOS.

Di iOS, izin notifikasi sudah wajib sejak iOS 8, dan mulai iOS 12 muncul notifikasi sementara (provisional) — notifikasi senyap yang dikirimkan tanpa suara dan ditampilkan di Pusat Notifikasi tanpa permintaan eksplisit. Notifikasi sementara memungkinkan pengembang untuk menunjukkan nilai notifikasi kepada pengguna sebelum meminta izin penuh.

Menurut Localytics (2024), 61% pengguna iOS dan 55% pengguna Android menyetujui penerimaan notifikasi push setelah diminta. Tingkat konversi persetujuan secara langsung tergantung pada konteks permintaan: aplikasi yang meminta izin setelah interaksi berharga pertama mendapatkan 40% lebih banyak persetujuan daripada yang meminta saat peluncuran pertama.

Evolusi izin notifikasi

Evolusi izin notifikasi menunjukkan bagaimana platform secara bertahap membatasi akses aplikasi ke saluran komunikasi ini. Memahami evolusi ini membantu pengembang menangani berbagai versi sistem operasi dengan benar.

Android: dari akses bebas ke kontrol ketat

Hingga Android 13 (2022), aplikasi apa pun dapat menampilkan notifikasi tanpa persetujuan pengguna. Android 8.0 (2017) memperkenalkan saluran notifikasi, Android 12 (2021) menambahkan pemblokiran otomatis notifikasi yang mengganggu, dan akhirnya Android 13 mewajibkan permintaan POST_NOTIFICATIONS saat runtime. Untuk aplikasi dengan targetSdkVersion di bawah 33, sistem secara otomatis memberikan izin, tetapi Google Play memerlukan pembaruan targetSdkVersion ke 33+ sejak Agustus 2023.

iOS: penguatan kontrol bertahap

iOS 8 (2014) memperkenalkan permintaan izin wajib melalui UIUserNotificationSettings. iOS 10 (2016) menghadirkan UNUserNotificationCenter dengan dukungan notifikasi kaya. iOS 12 (2018) menambahkan notifikasi sementara dan notifikasi yang dikelompokkan. iOS 15 (2021) memperkenalkan Focus Mode yang dapat memblokir notifikasi terlepas dari izin aplikasi. App Tracking Transparency (iOS 14.5) tidak terkait dengan notifikasi tetapi juga mempengaruhi budaya permintaan izin secara umum.

Status saat ini

Saat ini kedua platform memerlukan permintaan Notification Permission saat runtime. Pengembang tidak dapat lagi mengandalkan pengaktifan otomatis notifikasi. Pengguna memiliki kontrol penuh atas aplikasi mana yang dapat memberi tahu mereka. Saluran notifikasi di Android dan kategori notifikasi di iOS memungkinkan pengguna untuk menyesuaikan jenis notifikasi yang diterima secara tepat.

Notification Permission di Android

Notification Permission di Android dilakukan melalui izin POST_NOTIFICATIONS yang dideklarasikan di manifes, dengan permintaan runtime untuk Android 13+.

Deklarasi di manifes

Untuk Android 13+ Anda harus mendeklarasikan izin POST_NOTIFICATIONS di AndroidManifest.xml. Untuk kompatibilitas mundur dengan Android 12 dan yang lebih rendah, izin diberikan secara otomatis oleh sistem — tidak diperlukan tindakan tambahan.

xml
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

Permintaan runtime di Kotlin

Permintaan izin POST_NOTIFICATIONS dilakukan melalui Activity Result API. Penting untuk memeriksa versi SDK: di Android 12 dan yang lebih rendah, permintaan tidak diperlukan, izin dianggap diberikan secara otomatis.

kotlin
private val notificationPermissionLauncher =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        createNotificationChannel()
        showPushNotification()
    } else {
        logPermissionDenied()
    }
}

fun requestNotificationAccess() {
    if (Build.version.SDK_INT <= Build.VERSION_CODES.S_V2) {
        // Android 12 dan lebih rendah — izin diberikan secara otomatis
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Membuat saluran notifikasi

Di Android 8.0+, aplikasi harus membuat saluran notifikasi melalui NotificationChannel sebelum mengirim notifikasi pertama. Saluran memiliki kepentingan (importance) dari IMPORTANCE_NONE hingga IMPORTANCE_HIGH, yang menentukan apakah notifikasi akan ditampilkan dengan suara dan sebagai banner. Jika pengguna menonaktifkan notifikasi untuk aplikasi, saluran baru tidak akan berpengaruh sampai diaktifkan kembali di pengaturan. Disarankan untuk membuat saluran terpisah untuk berbagai jenis notifikasi: pesan, iklan, peristiwa sistem.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Pesan",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Notifikasi tentang pesan baru"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

Notification Permission di iOS

Notification Permission di iOS diminta melalui UNUserNotificationCenter. Apple merekomendasikan pendekatan dua langkah: pertama minta notifikasi sementara, kemudian setelah menunjukkan nilai, izin penuh.

Permintaan di Swift dengan opsi sementara

Notifikasi sementara adalah notifikasi senyap yang masuk ke Pusat Notifikasi tanpa suara dan banner. Mereka tidak memerlukan persetujuan eksplisit pengguna dan memungkinkan aplikasi untuk menunjukkan nilai notifikasi sebelum permintaan penuh. Setelah menerima beberapa notifikasi sementara, pengguna dapat mengaktifkan notifikasi penuh melalui menu di notifikasi itu sendiri.

swift
import UserNotifications

func requestNotificationPermission() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
        if let error = error {
            print("Notification error: \(error.localizedDescription)")
            return
        }
        if granted {
            registerForRemoteNotifications()
        } else {
            handleDeniedPermission()
        }
    }
}

func requestProvisionalOnly() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.provisional, .alert, .badge, .sound]) { granted, error in
        // Provisional — pengguna tidak melihat dialog
        // Notifikasi datang tanpa suara di Pusat Notifikasi
        registerForRemoteNotifications()
    }
}

Memeriksa status dan pengaturan sistem

Status Notification Permission saat ini di iOS dapat diperoleh melalui UNUserNotificationCenter.current().getNotificationSettings. Status .authorized, .denied, .provisional, atau .notDetermined memungkinkan aplikasi memilih perilaku yang tepat. Setelah penolakan pertama, dialog sistem tidak ditampilkan lagi — Anda harus mengarahkan pengguna ke Pengaturan melalui UIApplication.openSettingsURLString. Apple juga merekomendasikan penanganan status .ephemeral (iOS 17+), yang menyediakan notifikasi sementara untuk skenario tertentu.

Praktik terbaik meminta notifikasi

Praktik terbaik meminta Notification Permission bertujuan untuk meningkatkan tingkat konversi persetujuan dan mengurangi pengguna yang pergi. Permintaan yang salah tidak hanya dapat menghilangkan kemampuan aplikasi untuk mengirim notifikasi, tetapi juga menyebabkan penghapusan aplikasi.

Jangan meminta saat peluncuran pertama

Anti-pola yang paling umum — meminta Notification Permission saat peluncuran pertama aplikasi. Pengguna belum memahami nilai aplikasi dan kemungkinan besar akan menolak. Momen optimal — setelah pengguna melakukan tindakan target pertama: melakukan pemesanan, mengirim pesan, berlangganan pembaruan. Permintaan pasca-nilai meningkatkan tingkat konversi persetujuan hingga 65-75%.

Gunakan layar pra-izin

Sebelum dialog sistem, tampilkan layar Anda sendiri dengan contoh notifikasi yang akan diterima pengguna. Tunjukkan mockup notifikasi masa depan dengan teks dan ikon. Jika pengguna melihat bahwa notifikasi akan berguna dan tidak mengganggu, mereka lebih mungkin untuk menyetujui. Contoh notifikasi di layar pendahuluan adalah teknik efektif yang meningkatkan konversi sebesar 35-50%.

Gunakan notifikasi sementara di iOS

Permintaan proaktif Notifikasi Sementara di iOS memungkinkan pengiriman notifikasi tanpa persetujuan eksplisit pengguna. Jika pengguna melihat nilai dalam notifikasi ini, mereka dapat mengaktifkan notifikasi penuh melalui menu konteks notifikasi. Apple merekomendasikan pendekatan ini untuk aplikasi berita, cuaca, dan layanan lain di mana notifikasi bersifat informatif, bukan transaksional. Menurut Apple WWDC 2024, pendekatan ini meningkatkan tingkat konversi persetujuan penuh sebesar 20-30%.

Pertanyaan yang sering diajukan

Apa yang harus dilakukan jika pengguna menolak Notification Permission?

Setelah penolakan, dialog sistem tidak ditampilkan lagi. Satu-satunya cara untuk mengaktifkan notifikasi adalah dengan mengarahkan pengguna ke pengaturan sistem melalui Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) di Android atau UIApplication.openSettingsURLString di iOS. Tampilkan layar dengan petunjuk dan tombol navigasi.

Bagaimana cara kerja Notification Permission di Android 12 dan yang lebih rendah?

Di Android 12 dan yang lebih rendah, Notification Permission tidak diperlukan — semua aplikasi dapat mengirim notifikasi tanpa diminta. Namun pengguna dapat menonaktifkan notifikasi kapan saja melalui pengaturan sistem. Mulai Android 13, permintaan runtime wajib untuk targetSdkVersion 33+.

Apa itu saluran notifikasi di Android?

NotificationChannel — adalah kategori notifikasi yang diperkenalkan di Android 8.0. Setiap saluran memiliki nama, deskripsi, kepentingan (importance), dan grup. Pengguna dapat menonaktifkan saluran individual tanpa menonaktifkan semua notifikasi aplikasi. Misalnya, saluran „Pesan baru” dan saluran „Buletin iklan” dapat dikonfigurasi secara berbeda.

Bisakah saya mengirim notifikasi tanpa Notification Permission?

Di Android 13+ tanpa POST_NOTIFICATIONS, setiap panggilan NotificationManager.notify akan diabaikan oleh sistem. Di iOS tanpa izin UNUserNotificationCenter, notifikasi tidak dikirimkan. Pengecualian: Provisional di iOS (tanpa suara, hanya di Pusat Notifikasi) dan Android 12- (izin tidak diperlukan).

Bagaimana cara memeriksa apakah notifikasi diaktifkan untuk aplikasi?

Di Android gunakan NotificationManagerCompat.areNotificationsEnabled(). Di iOS panggil UNUserNotificationCenter.current().getNotificationSettings dan periksa properti authorizationStatus. Untuk Android, periksa juga kepentingan saluran: NotificationChannel.getImportance() tidak boleh IMPORTANCE_NONE.

Ringkasan

  • Notification Permission — izin runtime wajib untuk mengirim notifikasi di Android 13+ dan iOS 12+.
  • Android 13 memperkenalkan POST_NOTIFICATIONS dengan permintaan runtime, untuk Android 12 dan yang lebih rendah izin otomatis.
  • iOS menggunakan UNUserNotificationCenter dengan dukungan notifikasi sementara untuk pengiriman senyap tanpa persetujuan.
  • Permintaan pasca-nilai — permintaan setelah tindakan berharga pertama pengguna meningkatkan tingkat konversi persetujuan hingga 75%.
  • Layar pra-izin dengan contoh notifikasi meningkatkan konversi sebesar 35-50% menurut penelitian industri.
  • Notifikasi sementara di iOS memungkinkan demonstrasi nilai notifikasi sebelum meminta izin penuh.
  • Saluran notifikasi di Android memberikan kontrol granular kepada pengguna atas jenis notifikasi yang diterima.

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