iBeacon — adalah protokol kepemilikan Apple untuk beacon Bluetooth Low Energy yang memungkinkan perangkat iOS menentukan lokasi mereka di dalam ruangan dengan presisi sentimeter. Dasar protokolnya adalah penyiaran paket BLE dengan pengidentifikasi unik yang berisi UUID, Major, dan Minor. Menurut Apple iBeacon Design Guidelines (2025), teknologi ini digunakan dalam navigasi pusat perbelanjaan, museum, bandara, dan stadion, mendukung deteksi pasif tanpa pemasangan perangkat secara aktif.
Poin Penting
iBeacon — adalah teknologi penentuan posisi di dalam ruangan yang dikembangkan oleh Apple dan diperkenalkan di WWDC 2013. Tidak seperti GPS yang tidak berfungsi di dalam gedung, iBeacon menggunakan beacon Bluetooth Low Energy — perangkat kecil bertenaga baterai yang mentransmisikan paket identifikasi tetap. Perangkat iOS dan Android menerima paket ini dan menghitung perkiraan jarak ke beacon berdasarkan tingkat sinyal (RSSI).
Protokol iBeacon menjadi standar massal pertama beacon BLE, diluncurkan oleh Apple pada tahun 2013 di iOS 7. Awalnya teknologi ini digunakan di ritel: toko Apple Store menerapkan iBeacon untuk memberi tahu pelanggan tentang diskon saat memasuki zona tertentu. Pada tahun 2025, infrastruktur iBeacon mencakup jutaan beacon yang terpasang di seluruh dunia, meskipun protokol alternatif telah muncul — Eddystone dari Google dan AltBeacon dengan sumber terbuka.
iBeacon digunakan dalam lima skenario utama: navigasi dalam ruangan (pusat perbelanjaan, bandara, museum), notifikasi kontekstual (diskon saat memasuki toko), otomatisasi proses kerja (tanda kehadiran), logistik dan manajemen gudang, serta pemandu wisata dengan pemutaran konten otomatis saat mendekati objek. Menurut ABI Research (2025), pasar beacon BLE diperkirakan mencapai 3,2 miliar perangkat yang beroperasi.
Paket iBeacon — adalah Advertising PDU (Protocol Data Unit) yang ditransmisikan di saluran iklan BLE pada frekuensi 2402, 2426, dan 2480 MHz. Format paket ditetapkan secara ketat dan terdiri dari empat bidang: prefiks Apple iBeacon (0x4C000215), UUID 16-byte, nilai Major 2-byte dan Minor 2-byte, serta TX Power 1-byte untuk kalibrasi jarak. Ukuran total data adalah 30 byte, yang muat dalam satu BLE Advertising PDU.
| Bidang | Ukuran | Deskripsi |
|---|---|---|
| Prefiks Apple | 9 byte | Company ID (0x004C) + iBeacon type (0x0215) |
| UUID | 16 byte | Pengidentifikasi unik organisasi atau aplikasi |
| Major | 2 byte | Pengidentifikasi zona (0-65535), mis. nomor toko |
| Minor | 2 byte | Pengidentifikasi titik (0-65535), mis. nomor rak |
| TX Power | 1 byte | Kekuatan sinyal kalibrasi pada jarak 1 meter (dBm) |
Pengidentifikasi iBeacon membentuk hierarki tiga tingkat. UUID ditetapkan ke organisasi (misalnya, jaringan toko), Major — ke toko atau lantai tertentu, Minor — ke titik tertentu dalam zona (area kasir, departemen barang). Hierarki ini memungkinkan aplikasi merespons secara fleksibel terhadap berbagai tingkat konteks: saat memasuki toko (UUID + Major) aplikasi dapat memuat peta lantai, dan saat mendekati departemen tertentu (Minor) menampilkan informasi produk.
Bidang TX Power — adalah nilai referensi tingkat sinyal (RSSI) pada jarak 1 meter dari beacon. Setelah menerima paket, perangkat mencatat RSSI aktual dan menghitung jarak dengan rumus: distance = 10^((TX_Power - RSSI) / (10 * n)), di mana n adalah koefisien redaman lingkungan (biasanya 2-4). Kalibrasi TX Power yang benar sangat penting untuk akurasi penentuan posisi: kesalahan 1 dBm menghasilkan penyimpangan hingga 30% pada jarak 5 meter.
iOS menentukan tiga zona kedekatan berdasarkan jarak yang dihitung ke beacon: Immediate (kurang dari 0,5 meter), Near (0,5 hingga 3 meter) dan Far (3 hingga 30-50 meter tergantung kondisi). Jarak tepat tidak dilaporkan — hanya kategorinya. Ini disengaja: RSSI rentan terhadap interferensi, pantulan sinyal, dan pengaruh tubuh manusia, sehingga kategori memberikan penentuan lokasi yang lebih stabil.
Immediate — zona kontak langsung, saat perangkat berada beberapa sentimeter dari beacon. Digunakan untuk skenario yang membutuhkan presisi maksimal: pembayaran melalui terminal, membuka kunci digital, verifikasi di pos pemeriksaan. Di zona Immediate, RSSI biasanya berkisar antara -30 hingga -60 dBm.
Zona Near — zona kerja utama iBeacon, mencakup jarak 0,5 hingga 3 meter. Digunakan untuk navigasi dalam ruangan — misalnya, saat mendekati etalase barang, aplikasi menampilkan informasi terperinci. Di zona Near, RSSI berkisar antara -60 hingga -80 dBm pada kalibrasi TX Power = -59 dBm.
Far — zona deteksi maksimum sinyal beacon. Digunakan untuk memantau masuknya wilayah (misalnya, masuk ke pusat perbelanjaan). Pada jarak Far, RSSI biasanya lebih lemah dari -80 dBm, dan akurasi penentuan jarak menurun secara signifikan. Untuk pemantauan masuk, API sistem region monitoring digunakan, bukan penentuan zona yang tepat.
Wilayah iBeacon — adalah area virtual yang ditentukan oleh UUID (dan opsional Major + Minor). iOS memungkinkan pemantauan hingga 20 wilayah secara bersamaan dengan CLLocationManager. Saat memasuki wilayah, sistem membangunkan aplikasi bahkan di latar belakang atau keadaan mati dan mengirim pemberitahuan melalui delegasi locationManager:didEnterRegion. Saat meninggalkan wilayah, locationManager:didExitRegion dipanggil.
import CoreLocation
let locationManager = CLLocationManager()
let region = CLBeaconRegion(
uuid: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!,
identifier: "myBeaconRegion"
)
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: region)
Untuk menentukan zona (Immediate, Near, Far) digunakan ranging — pemindaian beacon secara real-time. Tidak seperti monitoring, ranging hanya berfungsi dalam mode aktif aplikasi dan memerlukan izin akses lokasi. Metode locationManager:didRangeBeacons:inRegion mengembalikan array CLBeacon dengan bidang proximity (CLProximity.immediate, .near, .far, .unknown), accuracy (jarak terkalibrasi dalam meter) dan rssi.
func locationManager(
_ manager: CLLocationManager,
didRangeBeacons beacons: [CLBeacon],
in region: CLBeaconRegion
) {
for beacon in beacons {
switch beacon.proximity {
case .immediate:
print("Kedekatan langsung")
case .near:
print("Kedekatan dekat")
case .far:
print("Kedekatan jauh")
default:
print("Kedekatan tidak diketahui")
}
}
}
Android tidak memiliki dukungan bawaan untuk iBeacon, karena protokol ini adalah solusi kepemilikan Apple. Namun, dengan pustaka pihak ketiga seperti AltBeacon dari Radius Networks (sekarang bagian dari organisasi Open Beacon), pengembang dapat mengintegrasikan iBeacon ke dalam aplikasi Android. Pustaka AltBeacon mengimplementasikan pemindaian paket BLE, penguraian format iBeacon, dan emulasi ranging serta monitoring wilayah, mirip dengan API iOS.
val beaconManager = BeaconManager.getInstanceForApplication(context)
beaconManager.beaconParsers.add(
BeaconParser().setBeaconLayout(
"m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
)
)
beaconManager.backgroundBetweenScanPeriod = 5000
beaconManager.foregroundScanPeriod = 1100
beaconManager.bind(this)
Format penguraian iBeacon di pustaka AltBeacon ditentukan oleh string layout: “m:2-3=0215” — pemeriksaan dua byte penanda iBeacon, “i:4-19” — UUID 16-byte, “i:20-21” — Major, “i:22-23” — Minor, “p:24-24” — TX Power. Format yang sama didukung untuk Eddystone dan protokol lainnya, menjadikan AltBeacon pustaka universal untuk bekerja dengan beacon BLE di Android.
Di Android, bekerja dengan iBeacon memiliki tiga keterbatasan utama: pemindaian latar belakang dibatasi oleh produsen (Xiaomi, Huawei, Samsung sering mematikan proses latar belakang), akurasi RSSI lebih rendah daripada iOS karena perbedaan tumpukan BLE, dan untuk pemindaian diperlukan izin ACCESS_FINE_LOCATION mulai Android 6.0 dan BLUETOOTH_SCAN mulai Android 12.
Eddystone — protokol beacon BLE terbuka dari Google, diperkenalkan pada tahun 2015. Tidak seperti iBeacon, Eddystone mendukung empat jenis paket: Eddystone-UID (pengidentifikasi tetap), Eddystone-URL (transmisi URL untuk Physical Web), Eddystone-TLM (telemetri beacon — tingkat baterai, suhu) dan Eddystone-EID (pengidentifikasi terenkripsi untuk perlindungan terhadap kloning). Meskipun Google menghentikan pengembangan Physical Web pada tahun 2022, protokol Eddystone terus digunakan dalam solusi perusahaan.
| Parameter | iBeacon | Eddystone |
|---|---|---|
| Pemilik | Apple | Google (terbuka) |
| Jenis paket | 1 (UID) | 4 (UID, URL, TLM, EID) |
| Data | UUID+Major+Minor | ID/URL + telemetri |
| Dukungan native iOS | Ya (CoreLocation) | Tidak (melalui CoreBluetooth) |
| Physical Web | Tidak | Ya (Eddystone-URL) |
| Keamanan | Tanpa enkripsi | EID dengan rotasi kunci |
Pilihan antara iBeacon dan Eddystone tergantung pada platform target dan skenario penggunaan. iBeacon lebih disukai untuk aplikasi iOS berkat integrasi native dengan CoreLocation dan monitoring wilayah di latar belakang. Eddystone lebih cocok untuk proyek berorientasi Android dan skenario Physical Web, di mana beacon mentransmisikan URL tanpa menginstal aplikasi. Untuk proyek lintas platform, AltBeacon sering digunakan, yang mendukung kedua protokol.
Saat mengimplementasikan iBeacon, pengembang menghadapi serangkaian keterbatasan yang harus dipertimbangkan pada tahap desain arsitektur. Tidak mempertimbangkan faktor-faktor ini dengan benar menyebabkan navigasi tidak stabil, pemicu palsu, dan pengosongan baterai beacon lebih cepat dari yang diperkirakan.
Tingkat sinyal RSSI mengalami fluktuasi signifikan karena pantulan dari dinding, struktur logam, keberadaan orang, dan perangkat nirkabel lain di pita 2,4 GHz. Di dalam ruangan, penyebaran RSSI untuk satu beacon bisa mencapai 10-15 dBm per menit, membuat perhitungan jarak tidak akurat tanpa menggunakan filter (penghalusan rata-rata bergerak, filter Kalman).
iOS mendukung pemantauan tidak lebih dari 20 wilayah secara bersamaan untuk satu aplikasi. Untuk proyek yang membutuhkan cakupan area yang luas (bandara, stadion), ini tidak cukup. Solusinya — peralihan wilayah dinamis: saat memasuki satu wilayah, wilayah tetangga diaktifkan dan yang jauh dinonaktifkan.
Keterlambatan antara memasuki wilayah dan menerima pemberitahuan bisa berkisar dari 1 hingga 30 detik tergantung kondisi. iOS memindai beacon secara periodik untuk menghemat baterai, jadi reaksi instan tidak diharapkan. Untuk skenario yang kritis waktu (membuka pintu saat mendekat), disarankan menggunakan Immediate ranging, tetapi ini hanya berfungsi dalam mode aktif aplikasi.
Pertanyaan yang Sering Diajukan
iBeacon — adalah protokol Apple untuk beacon Bluetooth Low Energy yang memungkinkan perangkat iOS dan Android menentukan lokasi mereka di dalam ruangan dengan presisi sentimeter berdasarkan analisis tingkat sinyal (RSSI) dari paket BLE yang diterima.
Bluetooth — adalah protokol komunikasi nirkabel umum untuk transmisi data antar perangkat yang memerlukan pemasangan. iBeacon — protokol khusus di atas BLE, dirancang khusus untuk menyiarkan pengidentifikasi tanpa membuat koneksi. Beacon iBeacon tidak mengirimkan data — mereka hanya memberi tahu keberadaan mereka.
iBeacon bekerja dalam mode Advertising — beacon terus menerus mentransmisikan paket siaran BLE dengan informasi ID. Perangkat menerima paket tetapi tidak terhubung ke beacon. Ini menghemat baterai beacon (hingga 2-3 tahun beroperasi dari satu CR2032) dan mendeteksi beacon secara pasif tanpa pemindaian aktif.
Tidak, iBeacon tidak dirancang untuk menemukan perangkat. Beacon iBeacon adalah pemancar stasioner, dan iPhone bertindak sebagai penerima. iPhone tidak mentransmisikan sinyal iBeacon (kecuali fungsi Find My yang menggunakan protokol lain berbasis BLE). Untuk menemukan telepon, teknologi lain digunakan (jaringan Find My, UWB).
Jangkauan iBeacon tergantung pada pengaturan beacon dan kondisi lingkungan. Jangkauan tipikal: Immediate — hingga 0,5 m, Near — hingga 3 m, Far — hingga 30-50 m. Dengan beacon penguat sinyal dan di ruang terbuka, jangkauan bisa mencapai 70 m, tetapi akurasi penentuan jarak pada jarak tersebut minimal.
Kesimpulan
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.
Baca juga