Compass di Smartphone — esensi, prinsip kerja dan penerapan

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

Compass (kompas) di smartphone adalah sensor digital berbasis magnetometer yang menentukan arah ke kutub magnet Bumi. Teknologi ini memungkinkan aplikasi navigasi, kartografi, dan realitas tertambah untuk menentukan orientasi perangkat di ruang angkasa secara akurat. Menurut data STMicroelectronics, 2025, MEMS-magnetometer modern memberikan akurasi penentuan arah hingga 1–2 derajat.

Poin Utama

  • Compass di smartphone — kompas digital berbasis MEMS-magnetometer yang mengukur medan magnet Bumi.
  • Magnetometer modern menggunakan efek Hall atau efek magnetoresistif untuk menentukan arah medan magnet.
  • Untuk kerja akurat kompas digital diperlukan kalibrasi — kompensasi medan magnet parasit dari speaker dan komponen lainnya.
  • Magnetometer di smartphone mengukur medan magnet pada tiga sumbu (X, Y, Z), yang memungkinkan penentuan arah dalam posisi perangkat apa pun.
  • Kompas digital digunakan dalam aplikasi navigasi, realitas tertambah, layanan geolokasi, dan program astronomi.

Apa itu kompas digital di smartphone?

Kompas digital (compass) di smartphone adalah sensor berbasis magnetometer yang mengukur kuat medan magnet Bumi dan menentukan azimuth (sudut relatif terhadap utara magnetik). Berbeda dengan kompas mekanik, kompas digital menggunakan sistem mikro-elektromekanis (MEMS) untuk merekam medan magnet. Magnetometer mengukur medan pada tiga sumbu, yang memungkinkan penentuan arah yang benar pada setiap kemiringan smartphone.

Bagaimana sensor dibuat

MEMS-magnetometer modern adalah microchip berukuran 2×2×1 mm, terintegrasi dalam bodi smartphone bersama dengan akselerometer dan giroskop (sebagai bagian dari IMU 9-sumbu). Sensor tidak hanya mengukur arah, tetapi juga intensitas medan magnet Bumi (25–65 µT tergantung garis lintang). Keberadaan benda logam dan medan magnet parasit dari speaker, motor getar, dan kamera menyebabkan distorsi, oleh karena itu untuk kerja akurat diperlukan koreksi perangkat lunak pada pembacaan.

Kompas digital pertama di ponsel muncul pada tahun 2009 dengan peluncuran iPhone 3GS — smartphone pertama dengan magnetometer built-in. Saat ini magnetometer dipasang di sebagian besar smartphone, termasuk model anggaran. Menurut Yole Group, pasar MEMS-magnetometer untuk perangkat seluler melebihi 1,5 miliar unit per tahun, yang menegaskan permintaan akan teknologi ini.

Prinsip kerja magnetometer

Dasar MEMS-magnetometer adalah elemen sensitif yang mengubah karakteristik listriknya di bawah pengaruh medan magnet eksternal. Di smartphone modern digunakan efek Hall atau efek magnetoresistif (AMR — Anisotropic Magneto-Resistance). Prinsipnya didasarkan pada kenyataan bahwa material pembawa arus mengubah resistansinya saat terkena medan magnet, dan dari perubahan tegangan dihitung vektor medan magnet.

Efek Hall dan AMR

Sensor berdasarkan efek Hall merekam perubahan tegangan di tepi pelat semikonduktor, yang timbul di bawah pengaruh gaya Lorentz pada muatan yang bergerak. Sensor magnetoresistif (AMR) menggunakan lapisan permalloy (NiFe), yang resistansinya tergantung pada arah medan magnet. Sensor AMR memberikan ukuran lebih kecil dan sensitivitas lebih tinggi dibandingkan sensor Hall, sehingga mendominasi di smartphone modern.

TipeSensitivitasKonsumsi DayaUkuran
HallSedangRendahSedang
AMRTinggiRendahKecil
GMRSangat TinggiSedangKecil

Data dari magnetometer digabungkan dengan pembacaan akselerometer untuk koreksi kemiringan dan penentuan arah utara di bidang horizontal. Algoritma fusi sensor (sensor fusion) menggunakan filter Madgwick atau filter Kalman untuk menggabungkan data magnetometer, giroskop, dan akselerometer. Ini memungkinkan memperoleh azimuth yang stabil dan akurat bahkan selama rotasi cepat dan guncangan perangkat.

Jenis magnetometer di perangkat seluler

Di industri seluler digunakan tiga jenis utama MEMS-magnetometer: berbasis efek Hall, magnetoresistif anisotropik (AMR) dan magnetoresistif raksasa (GMR). Magnetometer AMR paling luas di smartphone berkat kombinasi optimal sensitivitas, konsumsi daya, dan biaya. Produsen terkemuka — AKM (Asahi Kasei Microdevices), STMicroelectronics dan Bosch Sensortec.

Sensitivitas AMR-magnetometer smartphone tipikal adalah 0,3–1 µT dengan rentang dinamis ±1000 µT (±8 Gauss), cukup untuk pengukuran akurat medan Bumi (30–65 µT) dan kompensasi medan parasit. Frekuensi polling sensor bisa mencapai 100–200 Hz, tetapi sebagian besar aplikasi menggunakan 10–50 Hz untuk menghemat energi. Kompensasi otomatis suhu dan deformasi tegangan bodi diimplementasikan pada level driver sensor.

Kalibrasi kompas digital

Kalibrasi kompas adalah proses kompensasi medan magnet parasit yang dihasilkan oleh komponen smartphone: speaker, motor getar, kamera, dan baterai. Tanpa kalibrasi, pembacaan magnetometer dapat menyimpang dari arah nyata sebesar 10–30 derajat. Sistem kalibrasi menentukan matriks pergeseran (hard-iron bias) pada tiga sumbu dan menerapkannya untuk koreksi semua pengukuran berikutnya.

Algoritma dan metode kalibrasi

Metode standar kalibrasi kompas — menggambar angka delapan: pengguna memutar smartphone pada lintasan menyerupai angka 8. Selama gerakan, sensor merekam medan magnet di semua kemungkinan orientasi, dan algoritma mengumpulkan titik-titik serta mengaproksimasi bola dengan pusat bergeser relatif terhadap nol. Radius bola sesuai dengan besarnya medan magnet Bumi, dan pusat — dengan vektor pergeseran parasit. Setelah aproksimasi, sistem menghitung koefisien koreksi untuk setiap sumbu.

Algoritma kalibrasi modern dari Qualcomm dan MediaTek melakukan kalibrasi latar belakang berkelanjutan tanpa partisipasi pengguna. Mereka menganalisis perubahan medan magnet saat rotasi perangkat dan secara otomatis memperbarui parameter koreksi. Jika sensor mendeteksi medan parasit baru (misalnya saat memasang casing magnetik), sistem memulai kalibrasi ulang dalam 1–2 detik gerakan terus-menerus perangkat.

Penerapan kompas di aplikasi seluler

Kompas digital digunakan dalam berbagai aplikasi seluler. Penerapan utama — layanan navigasi dan pemetaan (Google Maps, Yandex.Maps, 2GIS) yang menentukan orientasi perangkat di peta untuk menampilkan arah gerakan pengguna dengan benar. Di aplikasi realitas tertambah (AR) kompas memastikan penempatan yang benar objek virtual relatif terhadap arah mata angin.

Di aplikasi astronomi (Star Walk, SkySafari) kompas bersama akselerometer menentukan arah yang dituju smartphone dan menampilkan area langit berbintang yang sesuai. Aplikasi memancing dan turistik menggunakan kompas untuk menandai titik minat di peta dengan referensi azimuth. Pelacakan kebugaran dengan GPS menggunakan pembacaan kompas untuk menentukan arah lari atau bersepeda, yang meningkatkan akurasi tampilan rute.

Penggunaan kompas melalui Android API

Untuk akses ke kompas digital di Android digunakan sensor TYPE_MAGNETIC_FIELD dari Sensor API. Pengembang mendaftarkan listener perubahan pembacaan magnetometer dan menerima array nilai kuat medan magnet pada tiga sumbu dalam mikroTesla. Untuk menentukan azimuth, data magnetometer digabungkan dengan data akselerometer melalui matriks rotasi sensor fusion.

kotlin
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager

class CompassManager(
    private val sensorManager: SensorManager
) : SensorEventListener {

    private val magnetometer = FloatArray(3)
    private val accelerometer = FloatArray(3)
    private val rotationMatrix = FloatArray(9)
    private val orientation = FloatArray(3)

    override fun onSensorChanged(event: SensorEvent) {
        if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
            event.values.copyInto(magnetometer)
        } else if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
            event.values.copyInto(accelerometer)
        }
        
        SensorManager.getRotationMatrix(
            rotationMatrix, null,
            accelerometer, magnetometer
        )
        SensorManager.getOrientation(rotationMatrix, orientation)
        
        val azimuth = Math.toDegrees(orientation[0].toDouble())
        // azimuth: 0 = utara, 90 = timur, 180 = selatan, 270 = barat
    }

    fun start() {
        sensorManager.registerListener(this,
            sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
            SensorManager.SENSOR_DELAY_UI)
        sensorManager.registerListener(this,
            sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
            SensorManager.SENSOR_DELAY_UI)
    }

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

Azimuth yang diperoleh melalui getOrientation diukur dalam radian dan dapat mengambil nilai dari -π hingga π, di mana 0 sesuai dengan utara magnetik. Untuk ditampilkan di layar, nilai dikonversi ke derajat (Math.toDegrees) dengan normalisasi ke rentang 0–360. Penting untuk mempertimbangkan deklinasi magnetik — sudut antara utara magnetik dan sejati (geografis), yang tergantung pada posisi geografis dan berubah seiring waktu. Google Maps secara otomatis mengoreksi deklinasi melalui GeomagneticField API.

Pertanyaan yang Sering Diajukan

Bagaimana cara kerja kompas digital di smartphone?

Kompas digital menggunakan MEMS-magnetometer — chip berukuran 2×2 mm yang mengukur medan magnet Bumi pada tiga sumbu. Data magnetometer digabungkan dengan pembacaan akselerometer untuk menentukan azimuth — sudut antara arah utara dan orientasi perangkat.

Mengapa kompas di ponsel menunjukkan tidak akurat?

Pembacaan kompas yang tidak akurat paling sering disebabkan oleh kurangnya kalibrasi, interferensi magnetik dari speaker atau motor getar, serta casing magnetik. Solusi — lakukan kalibrasi dengan gerakan angka delapan atau lepaskan aksesori magnetik. Pada kesalahan terus-menerus mungkin diperlukan pemeriksaan sensor.

Apakah kompas perlu kalibrasi dan bagaimana cara melakukannya?

Ya, kalibrasi kompas diperlukan untuk kompensasi medan magnet parasit di dalam smartphone. Di sebagian besar perangkat modern, kalibrasi dilakukan secara otomatis di latar belakang. Untuk kalibrasi manual, gambar angka delapan dengan smartphone di udara — sistem akan mengumpulkan data dari semua sudut dan mengoreksi pembacaan.

Bagaimana cara mengakses kompas di aplikasi Android?

Di Android akses ke kompas dilakukan melalui Sensor API dengan sensor TYPE_MAGNETIC_FIELD. Azimuth dihitung melalui SensorManager.getRotationMatrix() dan getOrientation(), yang menggabungkan data magnetometer dan akselerometer. Azimuth yang diperoleh dapat disesuaikan untuk ditampilkan di layar.

Model smartphone mana yang memiliki kompas paling akurat?

Kompas paling akurat dipasang di smartphone dengan sensor IMU rangkap tiga (magnetometer + giroskop + akselerometer) dan sistem kalibrasi aktif. Pemimpinnya adalah flagship Google Pixel, Samsung Galaxy S-series dan iPhone Pro — mereka menggunakan magnetometer AKM dan Bosch dengan sensitivitas 0,3 µT dan koreksi otomatis.

Ringkasan

  • Compass (kompas digital) di smartphone adalah MEMS-magnetometer yang mengukur medan magnet Bumi untuk menentukan azimuth dan orientasi perangkat.
  • Magnetometer modern menggunakan efek AMR (magnetoresistansi anisotropik), memberikan sensitivitas 0,3 µT dan ukuran kompak 2×2 mm.
  • Pembacaan kompas yang akurat memerlukan kalibrasi untuk kompensasi medan magnet dari speaker, motor getar, dan kamera smartphone.
  • Arah utara dihitung melalui sensor fusion — penggabungan data magnetometer dengan akselerometer dan giroskop untuk koreksi kemiringan.
  • Kompas digital diterapkan di navigasi, kartografi, realitas tertambah, astronomi, dan pelacakan kebugaran untuk menentukan orientasi dan arah gerakan.
  • Di Android akses ke kompas dilakukan melalui TYPE_MAGNETIC_FIELD dengan perhitungan azimuth melalui getRotationMatrix dan getOrientation.
  • Deklinasi magnetik (sudut antara utara magnetik dan geografis) dikoreksi secara otomatis di API navigasi Google dan Apple.

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