Significant Location Change — apa itu, pemicu dan mekanisme kerja

Penulis: IT Sectr Diterbitkan: 2026-03-28 Waktu membaca: 10 mnt

Significant Location Change (SLC) adalah layanan iOS untuk memantau perpindahan besar perangkat, yang memberi tahu aplikasi hanya saat terjadi perubahan signifikan pada koordinat geografis. Berbeda dengan pelacakan GPS real-time, SLC menggunakan menara seluler untuk menentukan lokasi, memastikan konsumsi daya minimal. Menurut dokumentasi Apple Developer, 2025, Significant Location Change memungkinkan aplikasi menerima pembaruan geolokasi tanpa kerja GPS terus-menerus, menghemat hingga 90% baterai dibandingkan dengan pelacakan terus-menerus.

Poin utama

  • SLC — pemantauan perubahan lokasi signifikan berdasarkan menara seluler
  • Konsumsi daya — hingga 90% penghematan baterai dibandingkan pelacakan GPS terus-menerus
  • Pemicu — pergantian menara seluler, melintasi batas klaster, pengaktifan GPS
  • Keterbatasan — jarak pembaruan minimum ~500 meter, akurasi hingga satu kilometer
  • iOS 13+ — izin Always dan batasan peluncuran latar belakang ditambahkan

Apa itu Significant Location Change

Significant Location Change (SLC) adalah layanan geolokasi iOS hemat energi yang tertanam dalam framework Core Location. Ini dirancang untuk aplikasi yang perlu melacak perpindahan besar pengguna tanpa menggunakan modul GPS secara terus-menerus. SLC aktif secara otomatis saat transisi antara menara seluler dan memberi tahu aplikasi melalui delegat CLLocationManagerDelegate dengan metode didUpdateLocations.

Berbeda dengan pelacakan level GPS (standar startUpdatingLocation), SLC tidak memerlukan aktivitas prosesor dan chip GPS yang terus-menerus. iOS menggunakan sinyal menara seluler untuk menentukan perkiraan lokasi dan menjalankan aplikasi hanya saat mendeteksi perbedaan koordinat yang signifikan. Ini memungkinkan aplikasi untuk “tidur” di antara pembaruan, mengonsumsi energi minimum.

SLC tersedia di semua perangkat dengan modul seluler sejak iOS 5. Di iPod Touch dan iPad Wi-Fi Only, layanan ini tidak tersedia karena untuk menentukan koordinat justru digunakan menara seluler. Core Location secara otomatis memutuskan peristiwa mana yang dianggap signifikan — pengembang tidak dapat mengonfigurasi sensitivitas SLC atau menentukan jarak minimum untuk pemicu.

Untuk aplikasi apa SLC cocok

SLC sangat cocok untuk aplikasi yang tidak memerlukan akurasi tinggi geolokasi: pelacak cuaca, layanan pengiriman, aplikasi pencarian objek terdekat, analitik tempat yang dikunjungi. SLC juga digunakan oleh sistem iOS untuk mengaktifkan geofencing dalam mode hemat daya. Aplikasi navigasi memerlukan pelacakan GPS yang lebih akurat.

Cara kerja Significant Location Change

Significant Location Change bekerja berdasarkan analisis identifikasi menara seluler (Cell ID) yang diterima perangkat saat terhubung ke jaringan. iOS memelihara basis data koordinat menara dan dapat menentukan perkiraan lokasi tanpa mengaktifkan GPS. Saat perangkat beralih ke menara baru, sistem membandingkan lokasi baru dan sebelumnya, dan jika perbedaannya signifikan, menjalankan aplikasi untuk memproses peristiwa.

Sistem menggunakan pendekatan klaster: ruang geografis dibagi menjadi klaster dengan radius tertentu. SLC menghasilkan peristiwa hanya saat melintasi batas klaster, bukan pada setiap perpindahan mikro di dalamnya. Ini mencegah panggilan longsor aplikasi saat bergerak dalam satu zona cakupan (misalnya, di gedung atau lingkungan). Akurasi SLC berkisar dari 500 meter hingga beberapa kilometer tergantung pada kepadatan menara seluler.

Saat iOS mendeteksi perubahan signifikan, ia membangunkan aplikasi dari status latar belakang (jika tidak berjalan) dan meneruskan peristiwa ke delegat Core Location. Aplikasi mendapatkan waktu singkat untuk pemrosesan (sekitar 10–30 detik waktu latar belakang) — dalam waktu ini harus memproses koordinat dan, jika perlu, merencanakan pembaruan yang lebih akurat melalui GPS.

Menjalankan aplikasi dari latar belakang

SLC memiliki hak istimewa untuk membangunkan aplikasi dari status Suspended atau Background. Jika aplikasi dimatikan oleh sistem karena kekurangan memori, SLC akan memulai ulang (relaunch) di latar belakang. Untuk ini, aplikasi harus berlangganan ke UIApplication.LaunchOptionsKey.location dalam metode didFinishLaunchingWithOptions. Setelah memproses peristiwa, sistem dapat kembali mengalihkan aplikasi ke status Suspended.

Pemicu Significant Location Change

Pemicu SLC ditentukan secara eksklusif oleh sistem iOS — pengembang tidak dapat memengaruhi secara programatis perubahan koordinat mana yang dianggap “signifikan”. Namun ada skenario terdokumentasi di mana SLC dijamin menghasilkan peristiwa. Memahami pemicu ini membantu pengembang merancang perilaku aplikasi yang benar.

Pergantian menara seluler

Cell tower change — pemicu utama SLC. Saat perangkat beralih antara menara seluler (saat bergerak di kota, jalan raya), sistem memeriksa apakah koordinat antara menara lama dan baru cukup berubah. Jika ya — peristiwa dihasilkan. Di lingkungan perkotaan dengan jaringan menara yang padat, SLC dapat aktif setiap 1–3 kilometer.

GPS diaktifkan oleh aplikasi lain

Jika aplikasi lain atau layanan sistem (misalnya, “Temukan iPhone”, navigasi) mengaktifkan modul GPS, SLC juga dapat menerima pembaruan koordinat yang akurat. Ini adalah efek samping: GPS menentukan lokasi tepat, dan iOS meneruskannya ke semua aplikasi yang berlangganan SLC. Namun, tidak dapat diandalkan pada pemicu ini — tidak dijamin.

Transisi antara jaringan Wi-Fi

Meskipun SLC tidak menggunakan Wi-Fi secara langsung, pergantian jaringan Wi-Fi dapat secara tidak langsung menyebabkan peristiwa jika perangkat menerima koordinat baru melalui Apple Location Service (lokasi berdasarkan basis data Wi-Fi). iOS melakukan hash koordinat titik akses Wi-Fi dan menggunakannya untuk mempertajam posisi di antara pergantian menara.

PemicuJaminanPenundaanAkurasi
Pergantian menara selulerTinggi1–30 dtk500 m – 3 km
GPS aplikasi lainRendahSaat itu jugaHingga 10 m
Pergantian Wi-FiSedangHingga 5 mnt100–500 m

SLC vs layanan geolokasi iOS lainnya

iOS menyediakan beberapa mekanisme untuk mendapatkan geolokasi, masing-masing dengan akurasi, konsumsi daya, dan skenario penggunaan sendiri. Significant Location Change menempati ceruk antara perkiraan kasar melalui menara dan pelacakan GPS yang akurat, menawarkan keseimbangan optimal untuk aplikasi yang tidak memerlukan akurasi tinggi real-time.

Standard Location Service

Standard Location Service (startUpdatingLocation()) menggunakan GPS, Wi-Fi, dan menara seluler untuk menentukan koordinat dengan akurasi maksimal. Akurasi hingga 10 meter, tetapi konsumsi daya tinggi — modul GPS aktif terus-menerus. Cocok untuk navigasi, pelacak kebugaran, aplikasi AR. SLC, sebaliknya, tidak menggunakan GPS terus-menerus dan memiliki akurasi 500 meter atau lebih rendah.

Region Monitoring (Geofencing)

Region Monitoring melacak masuk dan keluar dari zona geografis yang ditentukan. Berbeda dengan SLC, pengembang sendiri menentukan batas wilayah (radius dari 100 meter). Geofencing menggunakan SLC sebagai mekanisme bantu — sistem pertama menentukan perkiraan lokasi melalui SLC, kemudian mengaktifkan GPS untuk penentuan masuk/keluar yang tepat. Jumlah maksimum wilayah yang dilacak — 20.

Visit Monitoring

Visit Monitoring — layanan khusus iOS 8+ yang melacak kunjungan tempat (kedatangan dan kepergian). Ini menggunakan kombinasi SLC dan sinyal lain untuk menentukan kapan pengguna berhenti di suatu tempat dan kapan meninggalkannya. Visit Monitoring lebih hemat energi daripada SLC karena menghasilkan lebih sedikit peristiwa dan menggunakan pembelajaran mesin pada perangkat.

LayananAkurasiKonsumsi dayaLatar belakang
SLC500 m – 3 kmSangat rendahYa
GPS StandarHingga 10 mTinggiMemerlukan izin
GeofencingDari 100 mRendahYa
Visit MonitoringHingga 100 mSangat rendahYa

Konsumsi daya dan baterai

SLC adalah cara paling hemat energi untuk mendapatkan geolokasi di iOS, selain Visit Monitoring. Menurut Apple, SLC mengonsumsi sekitar 0,1–0,5% baterai per jam dalam skenario penggunaan tipikal, sedangkan pelacakan GPS terus-menerus dapat mengonsumsi 5–10% per jam. Penghematan dicapai karena modul GPS hanya diaktifkan untuk waktu singkat untuk memverifikasi koordinat pada setiap peristiwa.

iOS mengelola konsumsi daya SLC melalui optimalisasi baterai. Jika sistem melihat bahwa aplikasi terlalu sering memproses peristiwa SLC (misalnya, perangkat bergerak dengan kereta dan pergantian menara yang sering menghasilkan banyak peristiwa), iOS dapat untuk sementara mengurangi frekuensi notifikasi. Ini adalah mekanisme otomatis — pengembang tidak dapat mematikannya.

Dengan setiap rilis utama iOS, Apple memperketat kebijakan akses latar belakang ke geolokasi. Mulai iOS 13, dialog permintaan izin untuk penggunaan lokasi latar belakang berubah: pengguna harus secara eksplisit memilih “Always” (Selalu), bukan hanya “While Using” (Saat Menggunakan). Tanpa izin Always, SLC tidak akan berfungsi saat aplikasi berada di latar belakang atau dimatikan oleh sistem.

  • SLC — 0,1–0,5% baterai per jam; GPS — 5–10% per jam saat kerja terus-menerus
  • iOS 13+ — memerlukan izin Always eksplisit untuk SLC di latar belakang
  • Optimalisasi — iOS secara otomatis mengurangi frekuensi SLC saat gerakan aktif
  • Pemrosesan batch — beberapa peristiwa SLC dapat digabungkan menjadi satu notifikasi

Implementasi di Swift

Mari kita lihat implementasi lengkap Significant Location Change di Swift. Contoh ini mencakup konfigurasi CLLocationManager, permintaan izin Always, memulai pemantauan, penanganan peristiwa, dan dukungan mulai ulang aplikasi setelah dimatikan oleh sistem. Kode menggunakan Swift modern dengan async/await untuk pemrosesan koordinat dan tugas latar belakang melalui BGTaskScheduler.

swift
import CoreLocation
import UIKit

class LocationManager: NSObject, CLLocationManagerDelegate {

    private let manager = CLLocationManager()

    override init() {
        super.init()
        manager.delegate = self
        manager.pausesLocationUpdatesAutomatically = true
        manager.desiredAccuracy = kCLLocationAccuracyThreeKilometers
    }

    func requestAlwaysAuthorization() {
        manager.requestAlwaysAuthorization()
    }

    func startSignificantLocationUpdates() {
        manager.startMonitoringSignificantLocationChanges()
    }

    func locationManager(_ manager: CLLocationManager,
                           didUpdateLocations locations: [CLLocation]) {
        guard let location = locations.last else { return }
        Task.detached {
            await LocationProcessor.handleLocationUpdate(location)
        }
    }

    func locationManager(_ manager: CLLocationManager,
                           didFailWithError error: Error) {
        Logger.log("SLC error: \(error.localizedDescription)")
    }
}

Penanganan mulai ulang aplikasi

Jika aplikasi dimatikan oleh sistem, SLC secara otomatis akan memulai ulang saat peristiwa baru terjadi. Di AppDelegate harus ditambahkan pemeriksaan mulai melalui peristiwa lokasi dengan UIApplication.LaunchOptionsKey.location. Setelah mulai ulang, aplikasi harus menginisialisasi CLLocationManager dan memanggil startMonitoringSignificantLocationChanges() untuk melanjutkan pemantauan.

swift
class AppDelegate: NSObject, UIApplicationDelegate {

    private let manager = LocationManager()

    func application(_ application: UIApplication,
                           didFinishLaunchingWithOptions launchOptions:
                               [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        if launchOptions?.keys.contains(.location) == true {
            Logger.log("App relaunched by SLC event")
        }
        manager.requestAlwaysAuthorization()
        manager.startSignificantLocationUpdates()
        return true
    }
}

Praktik terbaik

Penggunaan Significant Location Change yang benar memerlukan keseimbangan antara fungsionalitas dan efisiensi energi. Apple secara ketat mengontrol akses latar belakang ke geolokasi, dan aplikasi yang menyalahgunakan SLC atau menggunakannya tanpa kebutuhan yang jelas berisiko ditolak saat publikasi di App Store.

Selalu jelaskan kebutuhan SLC

Di Info.plist harus ditambahkan string justifikasi: NSLocationAlwaysAndWhenInUseUsageDescription dan NSLocationWhenInUseUsageDescription. Deskripsi harus menjelaskan dengan jelas mengapa aplikasi memerlukan akses latar belakang ke geolokasi. App Review membaca string ini dan dapat menolak aplikasi jika justifikasi tidak cukup atau formulasi tidak jelas. Contoh: “Aplikasi ini menggunakan SLC untuk memperbarui prakiraan cuaca saat Anda bepergian.”

Proses hanya peristiwa yang diperlukan

Jangan menjalankan operasi mahal (lokasi GPS, permintaan jaringan) pada setiap peristiwa SLC. SLC dapat menghasilkan puluhan peristiwa per jam saat bergerak dengan transportasi. Gunakan debounding: simpan waktu pembaruan penuh terakhir dan lewati pemrosesan jika kurang dari 5–10 menit sejak pembaruan sebelumnya. Ini akan menghemat baterai dan lalu lintas jaringan.

Kombinasikan dengan BGTaskScheduler

Untuk pemrosesan jangka panjang setelah peristiwa SLC, gunakan BGTaskScheduler. Saat aplikasi menerima peristiwa SLC, aplikasi dapat menjadwalkan tugas latar belakang melalui BGProcessingTaskRequest atau BGAppRefreshTaskRequest. Ini memungkinkan menunda operasi intensif sumber daya (sinkronisasi dengan server, analisis rute) ke jendela eksekusi latar belakang terdekat, tanpa memblokir aliran utama respons SLC.

  • Info.plist — string justifikasi wajib untuk akses latar belakang ke geolokasi
  • Debounding — jangan proses peristiwa lebih sering dari 1 kali setiap 5–10 menit
  • BGTaskScheduler — jadwalkan tugas latar belakang setelah peristiwa SLC
  • Izin Always — minta hanya saat benar-benar diperlukan
  • pausesLocationUpdatesAutomatically — aktifkan untuk jeda GPS otomatis

Pertanyaan yang sering diajukan

Apa itu Significant Location Change di iOS?

Significant Location Change (SLC) adalah layanan iOS hemat energi untuk memantau perpindahan besar perangkat berdasarkan menara seluler. Mengonsumsi hingga 90% lebih sedikit energi daripada pelacakan GPS terus-menerus dan cocok untuk aplikasi yang tidak memerlukan akurasi tinggi geolokasi.

Seberapa akurat Significant Location Change?

Akurasi SLC berkisar dari 500 meter hingga 3 kilometer tergantung pada kepadatan menara seluler. Di lingkungan perkotaan akurasinya lebih tinggi (mendekati 500 m), di daerah pedesaan — lebih rendah (hingga beberapa kilometer). SLC tidak dirancang untuk penentuan koordinat yang tepat — ini adalah sumber daya untuk pemantauan perkiraan perpindahan.

Bagaimana mendapatkan izin Always untuk SLC?

Panggil CLLocationManager.requestAlwaysAuthorization() setelah menambahkan string NSLocationAlwaysAndWhenInUseUsageDescription di Info.plist. Mulai iOS 13, pengguna harus secara eksplisit memilih “Always” (Selalu) di dialog sistem. Tanpa izin ini, SLC tidak berfungsi di latar belakang.

Bisakah SLC memulai ulang aplikasi yang dimatikan?

Ya, SLC dapat memulai ulang aplikasi jika dimatikan oleh sistem karena kekurangan memori. Saat mulai, periksa UIApplication.LaunchOptionsKey.location dalam metode didFinishLaunchingWithOptions dan panggil startMonitoringSignificantLocationChanges() untuk melanjutkan pemantauan.

Apa perbedaan SLC dengan Standard Location Service?

SLC hanya menggunakan menara seluler dan tidak mengaktifkan GPS terus-menerus, memberikan penghematan baterai hingga 90%. Akurasi — dari 500 m hingga 3 km. Standard Location Service menggunakan GPS, Wi-Fi, dan menara, akurasi hingga 10 m, tetapi mengonsumsi lebih banyak energi. SLC cocok untuk pemantauan latar belakang, GPS — untuk navigasi.

Ringkasan

  • Significant Location Change — pemantauan hemat energi perpindahan besar di iOS
  • Mekanisme — penentuan lokasi berdasarkan menara seluler tanpa GPS terus-menerus
  • Akurasi — 500 m – 3 km tergantung kepadatan infrastruktur seluler
  • Pemicu — pergantian menara, pengaktifan GPS oleh aplikasi lain, pergantian Wi-Fi
  • Izin — iOS 13+ memerlukan Always untuk kerja SLC di latar belakang
  • Konsumsi daya — 0,1–0,5% per jam dibandingkan 5–10% untuk GPS terus-menerus
  • Praktik terbaik — debounding peristiwa, BGTaskScheduler untuk pemrosesan jangka panjang

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