Pedometer (penghitung langkah) dalam aplikasi seluler adalah mekanisme perangkat lunak-perangkat keras untuk menghitung langkah pengguna berdasarkan data akselerometer dan giroskop. Smartphone modern menggunakan algoritma pembelajaran mesin yang dikombinasikan dengan sensor untuk menentukan secara akurat aktivitas berjalan, berlari, dan jenis aktivitas fisik lainnya. Menurut data Apple HealthKit Documentation, 2025, akurasi penghitungan langkah pada perangkat modern mencapai 95–97% saat berjalan normal.
Poin Utama
Pedometer (penghitung langkah) dalam aplikasi seluler adalah fungsi yang menentukan jumlah langkah pengguna berdasarkan data yang berasal dari sensor gerak internal smartphone. Berbeda dengan pedometer mekanis di masa lalu, pedometer seluler menggunakan sensor mikro-elektro-mekanis (MEMS) dan algoritma pemrosesan sinyal digital untuk menghitung lokomosi secara akurat. Implementasi modern tidak hanya menghitung langkah, tetapi juga mengklasifikasikan aktivitas: berjalan, berlari, naik tangga.
Integrasi pedometer ke dalam perangkat seluler menjadi mungkin berkat kemunculan koprosesor gerak M7 di iPhone 5s pada tahun 2013, yang terus mengumpulkan data dari sensor dengan konsumsi daya minimal. Saat ini, semua smartphone modern memiliki dukungan perangkat keras untuk penghitungan langkah di tingkat hub sensor — chip khusus yang memproses data sensor inersia tanpa membangunkan prosesor utama.
Penghitungan langkah di smartphone didasarkan pada analisis sinyal akselerometer, yang mengukur percepatan perangkat pada tiga sumbu tegak lurus (X, Y, Z). Saat berjalan, setiap langkah menciptakan pola percepatan yang khas: pertama puncak ke atas saat mengangkat kaki, kemudian puncak ke bawah saat mendarat. Frekuensi langkah (kadensi) adalah 100–130 langkah/menit untuk berjalan dan 150–180 langkah/menit untuk berlari, dengan amplitudo percepatan 2–6 m/s².
Sinyal mentah dari akselerometer mengandung noise dan gangguan frekuensi tinggi, oleh karena itu tahap pertama pemrosesan adalah filter lolos-rendah (low-pass filter) dengan frekuensi potong 3–5 Hz. Setelah filtering, vektor percepatan dihitung: a = sqrt(x² + y² + z²), yang mengekstraksi percepatan terkait gerakan, terlepas dari orientasi perangkat. Kemudian algoritma mendeteksi maksimum lokal dalam sinyal — setiap maksimum sesuai dengan satu langkah.
Untuk mengurangi false positive (misalnya, saat terguncang di transportasi) diterapkan kriteria tambahan: amplitudo langkah minimum (biasanya >1,2 m/s²), interval minimum antar langkah (300–400 ms untuk berjalan) dan pemeriksaan periodisitas sinyal melalui autokorelasi. Jika interval waktu antar puncak tidak teratur, urutan tersebut ditandai sebagai gerakan acak dan tidak dihitung sebagai langkah.
Algoritma dasar deteksi langkah menggunakan metode deteksi ambang batas: sistem mencari saat-saat ketika sinyal akselerometer melebihi ambang batas yang ditentukan dan kemudian kembali ke tingkat diam. Setiap peristiwa semacam itu dianggap sebagai langkah potensial. Ada dua pendekatan: deteksi puncak (peak detection) dan zero-crossing. Deteksi puncak mencatat maksimum sinyal, sedangkan zero-crossing — saat sinyal melewati nilai rata-rata, yang lebih sedikit tergantung pada amplitudo langkah.
Algoritma penghitungan langkah modern menggunakan ambang batas adaptif yang secara otomatis menyesuaikan dengan gaya berjalan pengguna. Sistem menganalisis varians sinyal selama 2–3 detik terakhir dan menghitung ambang batas dinamis sebagai deviasi standar (RMS) dikalikan dengan koefisien. Ini memungkinkan penghitungan langkah yang benar baik saat berjalan lambat maupun berlari energetik tanpa kalibrasi silang antar jenis aktivitas.
Implementasi modern pedometer tidak hanya menggunakan deteksi puncak, tetapi juga pembelajaran mesin untuk klasifikasi pola gerakan. Model jaringan saraf dilatih pada ribuan jam rekaman gerakan nyata dari berbagai skenario: berjalan di permukaan datar, naik tangga, berlari, perjalanan dengan transportasi. Fitur input adalah deret waktu akselerometer dan giroskop, dan outputnya adalah probabilitas bahwa segmen sinyal saat ini sesuai dengan lokomosi manusia.
Menurut data penelitian Google Activity Recognition, model berdasarkan jaringan saraf konvolusional (CNN) mencapai akurasi pengenalan berjalan sebesar 98% pada set data uji. Di perangkat Apple, Core ML digunakan dengan model Activity Classification, yang dilatih pada data lebih dari 100 ribu relawan. Model yang dioptimalkan bekerja langsung di perangkat (inferensi pada perangkat), yang memastikan pemrosesan instan dan menjaga privasi pengguna.
import CoreMotion
class PedometerObserver {
private let pedometer = CMPedometer()
func startTracking() {
guard CMPedometer.isStepCountingAvailable() else { return }
pedometer.startUpdates(from: Date()) { data, error in
guard let data = data else { return }
let steps = data.numberOfSteps.intValue
let distance = data.distance?.doubleValue
let floorsAscended = data.floorsAscended?.intValue
// Memperbarui UI dengan jumlah langkah
DispatchQueue.main.async {
// self.stepsLabel.text = "\(steps) langkah"
}
}
}
func stopTracking() {
pedometer.stopUpdates()
}
}
Di iOS, untuk mengakses pedometer digunakan kelas CMPedometer dari framework Core Motion. CMPedometer tidak hanya menyediakan jumlah langkah, tetapi juga jarak tempuh, jumlah lantai (naik), kecepatan berjalan, dan waktu aktivitas. Data tersedia baik secara real-time (startUpdates) maupun untuk periode masa lalu (queryPedometerData). Koprosesor gerak (seri M) memproses data sensor di tingkat perangkat keras, yang mengurangi konsumsi daya hingga 80% dibandingkan dengan pemrosesan perangkat lunak.
Di Android, bekerja dengan pedometer dilakukan melalui dua sensor perangkat keras: TYPE_STEP_COUNTER (penghitung langkah kumulatif sejak boot) dan TYPE_STEP_DETECTOR (menghasilkan event untuk setiap langkah). TYPE_STEP_COUNTER tidak memerlukan kalibrasi dan tidak mengonsumsi daya prosesor — data diperbarui secara perangkat keras di tingkat hub sensor. Untuk mengakses statistik langkah harian, digunakan Google Fit API dengan catatan DataType.TYPE_STEP_COUNT_DELTA.
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
class StepCounter(
private val sensorManager: SensorManager
) : SensorEventListener {
private var totalSteps = 0
private var previousSteps = -1
fun startListening() {
val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
sensor?.let {
sensorManager.registerListener(this, it, SensorManager.SENSOR_DELAY_NORMAL)
}
}
override fun onSensorChanged(event: SensorEvent) {
if (previousSteps < 0) {
previousSteps = event.values[0].toInt()
}
val currentSteps = event.values[0].toInt()
totalSteps = currentSteps - previousSteps
}
fun getStepCount(): Int = totalSteps
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}
Akurasi pedometer tergantung pada beberapa faktor: lokasi smartphone (di tangan, saku, atau tas), jenis aktivitas (berjalan, berlari, naik tangga), dan kualitas sensor. Saat smartphone dibawa di saku celana, akurasi mencapai 93–97%, di tas atau ransel turun menjadi 70–85%. Gaya berjalan pengguna juga mempengaruhi akurasi: langkah pendek dengan amplitudo percepatan kecil memberikan lebih banyak kesalahan daripada berjalan teratur.
Keterbatasan utama pedometer seluler meliputi: ketidakmampuan menghitung langkah pada gerakan sangat lambat (<1,5 km/jam), false positive dari perjalanan dengan transportasi, penurunan akurasi saat berlari dengan kecepatan rendah (jogging), dan pengaruh gerakan tangan saat berbicara. Untuk meminimalkan kesalahan, aplikasi modern menggunakan kombinasi sensor (akselerometer + giroskop + barometer) dan pembelajaran mesin untuk memfilter artefak. Barometer, misalnya, membantu menentukan naik tangga dan perubahan ketinggian, mengecualikan langkah palsu di lift.
Pertanyaan yang Sering Diajukan
Pedometer di telepon menggunakan akselerometer yang mencatat percepatan di setiap langkah. Algoritma menganalisis puncak percepatan pada tiga sumbu, memfilter noise, dan menentukan jumlah langkah. Model modern juga menggunakan giroskop dan pembelajaran mesin untuk meningkatkan akurasi dan klasifikasi aktivitas.
Saat membawa smartphone di saku celana, akurasi mencapai 95–97% saat berjalan biasa. Di tas atau ransel, akurasi turun menjadi 70–85%. Gaya berjalan dan jenis permukaan juga mempengaruhi akurasi — medan tidak rata dapat menyebabkan kesalahan hingga 10–15%.
Ya, pedometer bekerja sepenuhnya mandiri tanpa koneksi internet. Semua perhitungan dilakukan di perangkat menggunakan sensor internal. Internet mungkin diperlukan hanya untuk sinkronisasi data dengan layanan cloud aplikasi kebugaran atau untuk menampilkan peta rute.
Aplikasi yang berbeda menggunakan algoritma yang berbeda dalam memproses data sensor, ambang batas deteksi langkah, dan metode filtering. Beberapa aplikasi menghitung langkah berdasarkan data akselerometer mentah, yang lain — melalui API sistem (TYPE_STEP_COUNTER), dan perbedaan penghitungan bisa mencapai 10–15%.
Di Android, untuk mengakses pedometer gunakan sensor TYPE_STEP_COUNTER melalui Sensor API — sensor ini memberikan jumlah langkah kumulatif sejak perangkat terakhir di-restart. Untuk mengakses langkah pada hari tertentu, integrasikan Google Fit API dengan tipe data TYPE_STEP_COUNT_DELTA.
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