Package Name — apa itu, notasi domain terbalik dan persyaratan

Penulis: IT Sectr Diterbitkan: 2026-04-17 Waktu membaca: 8 mnt

Package Name — adalah pengidentifikasi unik aplikasi Android, yang didasarkan pada penulisan terbalik nama domain (reverse domain notation). Ini digunakan oleh sistem untuk membedakan aplikasi di perangkat pengguna, di Google Play untuk identifikasi produk, dan di layanan Firebase untuk mengikat semua konfigurasi proyek. Menurut Android Developer Documentation, Package Name tetap tidak berubah sepanjang siklus hidup aplikasi setelah publikasi.

Poin Utama

  • Package Name — pengidentifikasi global aplikasi Android dalam format reverse domain
  • Format menggunakan domain perusahaan dalam urutan terbalik: com.example.app
  • Keunikan diperiksa oleh Google Play saat publikasi — duplikat dilarang
  • Perubahan Package Name setelah publikasi tidak mungkin tanpa membuat aplikasi baru
  • Application ID di build.gradle sesuai dengan Package Name dan dikonfigurasi secara terpisah

Apa itu Package Name di Android

Package Name — adalah string unik yang digunakan Android untuk mengidentifikasi aplikasi di tingkat sistem operasi. Ini sesuai dengan bidang package di file AndroidManifest.xml dan bidang applicationId di file build.gradle modul aplikasi. Tanpa Package Name yang unik, instalasi aplikasi di perangkat pengguna tidak mungkin dilakukan.

Tujuan Package Name

Di perangkat, Package Name berfungsi sebagai kunci untuk mengelola aplikasi: sistem menyimpan data, pengaturan, dan cache setiap aplikasi di direktori /data/data/[packageName]. Dua aplikasi dengan pengidentifikasi yang sama tidak dapat hidup berdampingan — saat mencoba menginstal duplikat, sistem menyarankan untuk menghapus yang sudah ada.

Package Name dan Application ID

Di Android Gradle Plugin versi 0.11+ muncul pemisahan antara Package Name (di manifes) dan Application ID (di build.gradle). Application ID adalah pengidentifikasi sebenarnya dari aplikasi untuk sistem dan Google Play. Package Name di manifes digunakan untuk resolusi sumber daya dan pembuatan kelas R. Disarankan untuk menjaganya tetap sama demi kesederhanaan.

groovy
// build.gradle (Modul: app)
android {
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 24
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
}

Bidang applicationIdSuffix memungkinkan penambahan sufiks ke Application ID untuk konfigurasi kompilasi yang berbeda. Versi debug dapat memiliki pengidentifikasi com.example.app.debug, yang memungkinkan instalasinya di samping versi produksi untuk pengujian paralel.

Aturan penamaan Package Name

Google Play menetapkan aturan ketat untuk Package Name yang harus dipatuhi saat publikasi. Pengidentifikasi harus unik di skala seluruh toko, memenuhi persyaratan sintaksis, dan tidak melanggar kebijakan penggunaan merek dagang.

Persyaratan sintaksis

Package Name hanya boleh berisi huruf Latin (A-Z, a-z), angka (0-9), titik (.), dan karakter garis bawah (_). Panjang maksimum — 150 karakter. Setiap segmen di antara titik harus dimulai dengan huruf. Tanda hubung, spasi, dan karakter khusus dilarang oleh aturan Google Play.

PersyaratanNilaiContoh
Karakter yang diizinkanHuruf Latin, angka, titik, garis bawahcom.example.my_app
Panjang maksimum150 karaktercom.example.verylongappname
Awal segmenHanya hurufcom — bukan 3com
DilarangTanda hubung, spasi, sirilikcom.domain-saya — error
KeunikanGlobal di Google PlayDiperiksa saat pembuatan

Persyaratan keunikan

Keunikan Package Name — adalah persyaratan mutlak Google Play Store. Jika aplikasi lain sudah menggunakan pengidentifikasi yang dipilih, publikasi akan ditolak. Google tidak membebaskan pengidentifikasi aplikasi yang dihapus, oleh karena itu pemilihan Package Name pertama adalah keputusan kritis untuk setiap proyek pengembang.

Notasi domain terbalik dan konvensi

Notasi domain terbalik — adalah standar penamaan di mana nama domain perusahaan ditulis dalam urutan terbalik: com.example bukan example.com. Sistem semacam itu menjamin keunikan global pengidentifikasi, karena setiap nama domain pada dasarnya unik.

Prefiks standar

Pengembang biasanya menggunakan prefiks yang sesuai dengan TLD domain mereka: com untuk organisasi komersial, org untuk nirlaba, io untuk proyek teknologi, net untuk layanan jaringan dan solusi. Untuk proyek pribadi, penggunaan com.github.username atau com.email diperbolehkan.

  • com.company.app — format standar untuk aplikasi komersial
  • org.company.app — untuk proyek nirlaba dan open-source
  • io.company.app — populer di kalangan startup dan produk SaaS
  • com.github.username — untuk proyek pribadi di GitHub

Konvensi untuk proyek multi-platform

Untuk aplikasi yang dirilis di iOS dan Android, disarankan menggunakan pengidentifikasi yang sama di kedua platform. Ini menyederhanakan integrasi dengan Firebase, AppsFlyer, Adjust, dan sistem analitik lain yang terikat pada pengidentifikasi proyek. Misalnya, com.mycompany.myapp akan menjadi Bundle ID di iOS dan Package Name di Android.

Konfigurasi Package Name di proyek Android

Konfigurasi Package Name di proyek Android meliputi perubahan applicationId di build.gradle dan struktur direktori kode Java/Kotlin yang sesuai. Android Studio menyediakan alat untuk refactoring Package Name, tetapi untuk proyek kompleks disarankan migrasi bertahap.

Struktur direktori dan Package Name

kotlin
// Jalur file sesuai dengan Package Name
// com/example/myapp/MainActivity.kt

package com.example.myapp

import android.os.Bundle
import androidx.activity.ComponentActivity

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

Di Kotlin dan Java, Package Name di file sumber harus sesuai dengan struktur direktori. Saat mengubah Package Name di build.gradle, file harus dipindahkan ke direktori yang sesuai dan semua deklarasi package dan import harus diperbarui. Android Studio dapat melakukannya secara otomatis melalui Refactor -> Move, tetapi untuk proyek besar dengan puluhan file, disarankan untuk memeriksa hasil setelah refactoring.

Jika proyek menggunakan Data Binding, View Binding atau Hilt, perubahan Package Name juga akan memengaruhi kelas yang dihasilkan. Kelas Binding dibuat berdasarkan Package Name modul dan direktori layout. Setelah perubahan pengidentifikasi, proyek perlu dibangun ulang untuk memperbarui semua referensi yang dihasilkan. Disarankan untuk melakukan clean build setelah mengubah Package Name untuk menghilangkan kesalahan akibat referensi lama yang di-cache.

Di Gradle 7.0+ muncul dukungan untuk namespace di build.gradle, yang menggantikan package di AndroidManifest.xml untuk tujuan pembuatan kelas R dan sumber daya. Namun applicationId tetap menjadi pengidentifikasi sebenarnya dari aplikasi untuk sistem dan Google Play. Ini memungkinkan memiliki applicationId dan namespace yang berbeda, yang berguna untuk modul perpustakaan, di mana namespace tetap dan pengidentifikasi publik dapat berubah saat kompilasi.

Untuk proyek dengan arsitektur modular, perubahan Package Name satu modul dapat memengaruhi impor di modul lain. Jika modul data memiliki paket com.example.data dan modul domain menggunakan kelasnya, setelah perubahan pengidentifikasi perbarui impor di semua modul dependen. Plugin Gradle Android versi 8.0+ menyederhanakan proses ini dengan pembuatan namespace otomatis dari build.gradle.

Memeriksa Package Name melalui kode

Application ID saat ini dapat diperoleh melalui kelas BuildConfig: BuildConfig.APPLICATION_ID. Ini berguna untuk logika bersyarat dalam kode, pengikatan ke lingkungan, atau menampilkan pengidentifikasi di layar debug. BuildConfig dihasilkan secara otomatis berdasarkan build.gradle.

kotlin
// Mendapatkan Application ID saat runtime
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

println("Versi aplikasi: ${appInfo.versionName} (${appInfo.versionCode})")
println("Paket: $packageName")

Mengubah Package Name setelah publikasi

Mengubah Package Name setelah publikasi aplikasi di Google Play — adalah operasi yang berarti membuat produk yang sepenuhnya baru. Sistem tidak mengizinkan pembaruan aplikasi yang ada dengan Package Name yang berbeda, oleh karena itu keputusan untuk mengubah pengidentifikasi setara dengan memulai ulang proyek di toko.

Konsekuensi mengubah Package Name

Saat mengubah Package Name, hilang: semua peringkat dan ulasan, statistik instalasi, integrasi dengan Google Services (jika tidak dipindahkan), referensi ke proyek Firebase (memerlukan pembuatan google-services.json baru). Pengguna tidak akan menerima pembaruan otomatis — mereka akan melihat aplikasi baru di toko.

  • Peringkat dan ulasan — tetap di aplikasi lama, tidak dipindahkan
  • Statistik instalasi — diatur ulang untuk Package Name baru
  • Proyek Firebase — memerlukan konfigurasi google-services.json baru dan pengaturan ulang semua layanan
  • Pengguna — tidak menerima pembaruan otomatis, perlu diberi tahu secara terpisah

Kapan perubahan Package Name dibenarkan

Mengubah Package Name dapat dibenarkan saat rebranding perusahaan, memindahkan aplikasi ke akun pengembang lain, atau saat membuat versi terpisah untuk wilayah lain. Dalam kasus apa pun, sebelum perubahan disarankan untuk memberi tahu pengguna melalui aplikasi lama dan menyiapkan rencana migrasi dengan transfer data. Tanpa rencana migrasi, pengguna akan kehilangan akses ke konten yang dibeli, langganan, dan data aplikasi yang disimpan. Migrasi mencakup transfer basis data dan file melalui SharedPreferences atau Room.

Sebelum mengubah Package Name, pastikan pengidentifikasi baru unik dan sesuai dengan aturan penamaan. Buat aplikasi baru di Google Play dengan Package Name baru dan publikasikan sebagai produk terpisah. Di deskripsi aplikasi lama, tambahkan tautan ke aplikasi baru. Pertimbangkan penggunaan Google Play Custom Store Listing untuk mengarahkan pengguna.

Pertanyaan yang Sering Diajukan

Bisakah saya menggunakan tanda hubung atau garis bawah di Package Name?

Di Package Name, karakter garis bawah (_) diizinkan, tetapi tanda hubung (-) tidak. Garis bawah jarang digunakan, tetapi dapat diterima: com.example.my_app. Tanda hubung dilarang oleh aturan Google Play dan akan menyebabkan kesalahan saat publikasi. Disarankan untuk hanya menggunakan titik sebagai pemisah segmen.

Apa perbedaan Package Name dengan Application ID di build.gradle?

Package Name — adalah pengidentifikasi di AndroidManifest.xml, digunakan untuk resolusi sumber daya dan pembuatan kelas R. Application ID — bidang di build.gradle yang menentukan pengidentifikasi aplikasi untuk sistem dan Google Play Store. Disarankan untuk menjaganya tetap sama, tetapi perbedaan dapat diterima saat menggunakan applicationIdSuffix.

Bagaimana cara memilih Package Name yang tepat untuk proyek baru?

Gunakan notasi domain terbalik perusahaan atau nama pengguna Anda: com.domain.namaaplikasi. Pastikan pengidentifikasi unik di Google Play. Hindari kata-kata umum (todo, test, app) dan periksa apakah pengidentifikasi tidak digunakan oleh pengembang lain melalui pencarian di Google Play.

Bisakah saya mengubah Package Name sebelum publikasi di Google Play?

Ya, sebelum publikasi di Google Play, Package Name dapat diubah tanpa konsekuensi. Setelah perubahan, google-services.json perlu dibuat ulang, struktur direktori diperbarui, dan semua impor diperiksa. Android Studio menyediakan alat Refactor -> Move untuk mengotomatiskan proses.

Bagaimana Package Name terkait dengan tanda tangan aplikasi?

Package Name bersama dengan sertifikat tanda tangan membentuk ikatan unik yang mengidentifikasi aplikasi di Google Play. Bahkan jika dua aplikasi memiliki Package Name yang berbeda, mereka dapat ditandatangani dengan kunci yang sama. Mengubah sertifikat tanda tangan dimungkinkan melalui Key Rotation di Play Console tanpa kehilangan pengidentifikasi.

Kesimpulan

  • Package Name — pengidentifikasi unik aplikasi Android dalam format notasi domain terbalik
  • Aturan penamaan — huruf Latin, angka, titik, garis bawah; maksimum 150 karakter
  • Domain terbalik menjamin keunikan global: com.company.appname
  • Application ID di build.gradle sesuai dengan Package Name dan dapat memiliki sufiks kompilasi
  • Perubahan setelah publikasi tidak mungkin — aplikasi baru kehilangan peringkat dan ulasan
  • Android Studio menyediakan alat refactoring untuk perubahan aman sebelum publikasi
  • Rekomendasi — pilih pengidentifikasi yang bermakna sebelum publikasi, hindari nama umum dan yang sudah digunakan

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