Notification Channel — apa itu, apa saja jenisnya dan bagaimana cara kerjanya di Android

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

Notification Channel (saluran notifikasi) — adalah mekanisme Android yang diperkenalkan di versi 8.0 (API 26), yang mengelompokkan notifikasi berdasarkan kategori dan memberikan kontrol kepada pengguna atas perilakunya. Setiap saluran menentukan tingkat kepentingan, suara, getaran, dan tampilan visual untuk semua notifikasi yang dikirim melaluinya. Menurut Android Developers, NotificationChannel wajib untuk semua notifikasi di Android 8+ — tanpanya notifikasi tidak akan ditampilkan.

Poin Penting

  • Notification Channel — kategori notifikasi Android 8+ yang mengelola perilaku grup notifikasi
  • Kewajiban — di Android 8+ setiap notifikasi harus memiliki saluran, jika tidak maka tidak akan ditampilkan
  • Importance Level — tingkat kepentingan saluran (IMPORTANCE_HIGH, DEFAULT, LOW, MIN) menentukan cara penampilan
  • Kontrol pengguna — pengguna dapat menyesuaikan setiap saluran secara individual di pengaturan sistem
  • Grup saluran — NotificationChannelGroup menggabungkan saluran secara visual di antarmuka pengaturan

Apa itu Notification Channel?

Notification Channel — adalah wadah logis untuk notifikasi dengan tipe yang sama di Android 8+ (Oreo). Pengembang membuat saluran dengan ID unik, mengatur parameternya, lalu mengirim setiap notifikasi dengan menyebutkan saluran ini. Semua notifikasi dalam satu saluran mewarisi pengaturannya.

Sebelum Android 8, pengelolaan notifikasi bersifat biner: semua atau tidak sama sekali. Pengguna hanya dapat menonaktifkan semua notifikasi aplikasi sepenuhnya. Saluran memecahkan masalah ini: sekarang notifikasi iklan dapat dinonaktifkan sambil tetap mempertahankan pesan dari teman.

Setelah saluran dibuat, kepentingan (importance) dapat diubah oleh pengguna kapan saja melalui Pengaturan → Aplikasi → Notifikasi. Pengembang tidak dapat mengubah importance secara terprogram setelah saluran dibuat — ini adalah batasan keamanan Android.

Kewajiban saluran

Di Android 8+, setiap notifikasi harus dikirim melalui NotificationChannel. Jika aplikasi mencoba menampilkan notifikasi tanpa saluran — sistem akan mengabaikannya secara diam-diam. Pengecualian — notifikasi melalui NotificationCompat dengan saluran default yang dibuat secara otomatis oleh pustaka.

Bagaimana cara kerja saluran notifikasi di Android?

Saluran notifikasi ditentukan oleh serangkaian parameter yang diatur saat pembuatannya melalui kelas NotificationChannel. Parameter utama — tingkat kepentingan (importance level), yang menentukan bagaimana notifikasi berinteraksi dengan pengguna.

  • ID saluran — string unik (misalnya, “messages”), digunakan saat mengirim setiap notifikasi
  • Nama saluran — nama yang dapat dibaca, ditampilkan kepada pengguna di pengaturan
  • Deskripsi — penjelasan tentang tujuan saluran, ditampilkan di pengaturan di bawah nama
  • Importance — tingkat dari IMPORTANCE_NONE hingga IMPORTANCE_HIGH, menentukan cara penampilan
  • Suara dan getaran — dikonfigurasi secara terpisah untuk setiap saluran saat pembuatan

Setelah dibuat, saluran muncul di pengaturan notifikasi sistem. Pengguna dapat mengubah importance, menonaktifkan suara, getaran, atau memblokir saluran sepenuhnya. Semua perubahan berlaku segera untuk semua notifikasi berikutnya.

Parameter konfigurasi saluran

Saat membuat NotificationChannel, dapat dikonfigurasi: suara (kustom atau sistem), getaran (pola dan durasi), indikator cahaya (warna LED), lencana (setShowBadge), visibilitas di layar kunci (setLockscreenVisibility) dan mode Jangan Ganggu (setBypassDnd). Parameter ini ditetapkan saat pembuatan saluran dan hanya dapat diubah oleh pengguna di kemudian hari.

Importance Level: tabel perbandingan

Tingkat kepentingan (importance) — parameter utama saluran. Ini menentukan apakah notifikasi akan memutar suara, muncul di layar, atau hanya ditempatkan di bayangan. Kepentingan tidak boleh disamakan dengan prioritas — importance diatur oleh saluran, sedangkan prioritas (setPriority) diabaikan di Android 8+.

TingkatKonstantaPerilakuSuara
HIGHIMPORTANCE_HIGH (4)Menampilkan banner heads-up, muncul di panelYa
DEFAULTIMPORTANCE_DEFAULT (3)Muncul di panel, tanpa heads-upYa
LOWIMPORTANCE_LOW (2)Muncul di panel tanpa suaraTidak
MINIMPORTANCE_MIN (1)Hanya di bayangan, tanpa suara dan getaranTidak
NONEIMPORTANCE_NONE (0)Tidak ditampilkan sama sekaliTidak

Untuk sebagian besar skenario pengguna, gunakan IMPORTANCE_DEFAULT (3) — notifikasi akan muncul di panel dengan suara, tetapi tanpa banner pop-up. Gunakan IMPORTANCE_HIGH hanya untuk peristiwa penting: panggilan masuk, pesan dari lawan bicara, pengingat dengan timer.

Membuat saluran di kode Android

Saluran dibuat sekali — saat aplikasi dimulai atau saat penggunaan pertama. Praktik terbaik adalah membuat semua saluran saat aplikasi dimulai, di metode Application.onCreate. Pembuatan ulang saluran yang sudah ada aman — Android mengabaikan panggilan jika saluran sudah ada.

kotlin
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        createNotificationChannels()
    }

    private fun createNotificationChannels() {
        val messagesChannel = NotificationChannel(
            CHANNEL_MESSAGES,
            "Pesan",
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Notifikasi pesan baru"
            enableVibration = true
            setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
        }

        val promoChannel = NotificationChannel(
            CHANNEL_PROMO,
            "Promo dan berita",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "Notifikasi pemasaran dan penawaran khusus"
            setShowBadge(false)
        }

        val manager = getSystemService(NotificationManager::class.java)
        manager.createNotificationChannel(messagesChannel)
        manager.createNotificationChannel(promoChannel)
    }

    companion object {
        const val CHANNEL_MESSAGES = "messages"
        const val CHANNEL_PROMO = "promo"
    }
}

Saat mengirim notifikasi, tentukan ID saluran melalui setChannelId (untuk NotificationCompat) atau di konstruktor Notification.Builder. Jika saluran dengan ID yang ditentukan tidak ada — notifikasi tidak akan ditampilkan, tetapi tidak akan terjadi kesalahan.

Mengelola dan mengedit saluran

Android menyediakan beberapa API untuk pengelolaan saluran secara terprogram: mendapatkan daftar, menghapus, dan memeriksa pengaturan saat ini. Penghapusan saluran menyebabkan semua notifikasinya dihapus dari riwayat oleh sistem.

kotlin
val manager =
    getSystemService(NotificationManager::class.java)

// Dapatkan daftar semua saluran
val channels = manager.getNotificationChannels()
channels.forEach { channel ->
    Log.d("Saluran", "${channel.id}: ${channel.importance}")
}

// Ketahui importance saat ini (pengguna mungkin telah mengubahnya)
val channel = manager.getNotificationChannel(CHANNEL_MESSAGES)
if (channel.importance == NotificationManager.IMPORTANCE_NONE) {
    // Pengguna menonaktifkan saluran
    suggestEnablingChannel()
}

// Hapus saluran
manager.deleteNotificationChannel(CHANNEL_PROMO)

Setelah saluran dibuat, pengembang tidak dapat mengubah importance secara terprogram — ini adalah batasan Android untuk melindungi pengguna dari penyalahgunaan. Jika perlu mengubah kepentingan saluran, buat saluran baru dengan ID lain dan migrasikan notifikasi.

Migrasi saat mengubah importance

Jika diperlukan untuk mengubah kepentingan saluran yang sudah ada, buat saluran baru dengan ID berbeda (misalnya, “messages_v2”) dan mulailah mengirim notifikasi ke sana. Saluran lama dapat dihapus melalui deleteNotificationChannel — semua notifikasinya akan dihapus dari riwayat. Beri tahu pengguna tentang migrasi melalui antarmuka aplikasi agar ia tidak kehilangan pengaturan.

Grup saluran (NotificationChannelGroup)

NotificationChannelGroup menggabungkan beberapa saluran menjadi satu grup visual di antarmuka pengaturan Android. Grup membantu pengguna menavigasi saat aplikasi menggunakan 5+ saluran: misalnya, “Sosial”, “Sistem”, “Pemasaran”.

Grup dibuat melalui createNotificationChannelGroup dan diteruskan ke saluran saat pembuatannya melalui metode setGroup. Penghapusan grup juga menghapus semua salurannya. Setiap saluran hanya dapat menjadi milik satu grup.

Dalam praktiknya, grup saluran disarankan untuk aplikasi dengan lebih dari 3 saluran. Mereka menyederhanakan navigasi di pengaturan dan mengurangi kemungkinan pengguna menonaktifkan semua notifikasi sekaligus tanpa memahami daftar saluran.

Contoh pembuatan grup saluran

Grup dibuat melalui createNotificationChannelGroup dengan ID unik dan nama. Kemudian setiap saluran dikaitkan ke grup melalui metode setGroup. Di pengaturan sistem, grup ditampilkan sebagai bagian dengan judul, di bawahnya terdapat semua saluran grup ini. Jika grup dihapus, semua salurannya juga secara otomatis dihapus oleh sistem tanpa kemungkinan pemulihan.

Pola desain saluran

Desain saluran notifikasi yang tepat secara langsung memengaruhi pengalaman pengguna dan retensi. Pola utama — tiga tingkat kepentingan: saluran kritis (IMPORTANCE_HIGH) untuk pesan dan panggilan, standar (IMPORTANCE_DEFAULT) untuk notifikasi umum, dan sunyi (IMPORTANCE_LOW) untuk pemasaran dan berita. Gradasi seperti ini memberikan pilihan yang jelas kepada pengguna tanpa membebani.

Pola kedua — saluran berdasarkan modul fungsional. Setiap modul besar aplikasi (obrolan, pesanan, umpan, pemasaran) mendapatkan salurannya sendiri. Jika modul lebih dari 5, gabungkan dalam NotificationChannelGroup. Di pengaturan sistem, grup ditampilkan sebagai bagian dengan elemen yang dapat disembunyikan — ini menyederhanakan navigasi.

Pola ketiga — saluran untuk pengembang. Buat saluran terpisah dengan IMPORTANCE_MIN untuk notifikasi debugging dan layanan. Pengguna tidak akan melihatnya di panel, tetapi pengembang dapat menganalisis log melalui adb. Di produksi, saluran ini dapat dihapus atau disembunyikan dari antarmuka melalui Intent di pengaturan.

Pola keempat — umpan balik tentang saluran. Tunjukkan kepada pengguna di antarmuka saluran mana yang aktif dan apa importance saat ini. Di Android 8+, status saluran dapat diperoleh melalui getNotificationChannel dan menawarkan pengguna untuk mengubah pengaturan jika saluran dinonaktifkan. Ini sangat penting untuk fungsi kritis aplikasi.

Pertanyaan yang Sering Diajukan

Apa yang terjadi jika tidak membuat saluran di Android 8+?

Notifikasi tidak akan ditampilkan baik di panel maupun di bayangan. Sistem secara diam-diam akan mengabaikan panggilan notify(). Pengecualian: saat menggunakan NotificationCompat, pustaka membuat saluran default, tetapi importance-nya selalu DEFAULT. Disarankan untuk selalu membuat saluran sendiri.

Bisakah saluran diubah setelah dibuat?

Nama, deskripsi, dan suara saluran dapat diubah. Importance tidak dapat diubah — keputusan ini dilindungi oleh sistem dari pengembang. Jika perlu meningkatkan kepentingan — buat saluran baru dengan ID lain dan gunakan untuk notifikasi baru. Pengguna dapat mengubah importance kapan saja.

Bagaimana cara memeriksa apakah pengguna menonaktifkan saluran?

Gunakan getNotificationChannel dan periksa importance: jika nilainya IMPORTANCE_NONE, saluran dinonaktifkan. Anda juga dapat membuka pengaturan sistem saluran melalui Intent: Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS dengan parameter app_package dan channel_id.

Berapa banyak saluran yang dapat dibuat dalam satu aplikasi?

Tidak ada batasan — Android tidak menetapkan batas jumlah saluran. Namun, disarankan untuk tidak membuat lebih dari 5–10 saluran agar tidak membebani pengguna dengan pilihan. Minimum optimal adalah 2–3 saluran: notifikasi kritis, biasa, dan pemasaran.

Apakah saluran berfungsi di Android 7 dan yang lebih lama?

Di Android 7.1 (API 25) dan yang lebih lama saluran tidak didukung. Kelas NotificationChannel hanya tersedia sejak API 26. Untuk kompatibilitas mundur, gunakan NotificationCompat dan bungkus pembuatan saluran dalam kondisi if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O).

Kesimpulan

  • Notification Channel — mekanisme pengelompokan notifikasi Android 8+, wajib untuk ditampilkan
  • Importance — tingkat dari NONE hingga HIGH, menentukan suara, heads-up, dan visibilitas di panel
  • Pengelolaan — pengguna dapat mengubah importance dan suara saluran kapan saja
  • Pembuatan — saluran dibuat melalui NotificationManager.createNotificationChannel sekali
  • Ketidakberubahan importance — pengembang tidak dapat meningkatkan kepentingan setelah saluran dibuat
  • Grup — NotificationChannelGroup menggabungkan saluran untuk navigasi yang mudah di pengaturan
  • Kompatibilitas — di Android 7- gunakan NotificationCompat dengan pemeriksaan versi SDK

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