Skip to main content
Apa Itu Distance Matrix? Waktu Tempuh, API, dan Routing
Guides

Apa Itu Distance Matrix? Waktu Tempuh, API, dan Routing

Distance matrix adalah grid waktu tempuh dan jarak antara banyak titik asal dan tujuan. Pelajari cara kerja distance matrix API, di mana ia dipakai di production

Brent van der Heiden6 min read
#distance matrix#distance matrix api#travel time#routing#fleet dispatch#maps api

Distance matrix adalah grid waktu tempuh dan jarak antara banyak titik asal dan banyak tujuan. Ia adalah struktur data di balik setiap ranking "toko terdekat", setiap keputusan dispatch pengiriman, dan setiap solver route optimisation. Kapan pun sebuah aplikasi harus memilih kandidat terbaik dari banyak pilihan berdasarkan drive time, sebuah distance matrix yang bekerja di belakang layar.

Panduan ini menjelaskan apa sebenarnya distance matrix, bagaimana waktu tempuh berbeda dari jarak garis lurus, di mana matrix muncul dalam sistem production, dan jebakan apa saja yang menggigit tim ketika input set bertumbuh melampaui beberapa titik.

Apa Itu Distance Matrix Sebenarnya

Dalam bentuk paling sederhana, distance matrix adalah tabel dua dimensi. Baris adalah origin, kolom adalah destination, dan setiap sel menyimpan dua angka: distance dan duration. Dengan N origin dan M destination, matrix punya N kali M sel. Sebuah request dengan 25 driver dan 25 job menghasilkan 625 sel dalam satu panggilan.

Nilai dalam sel-sel itu berasal dari routing engine yang berjalan di atas graph jaringan jalan nyata. Ia memilih jalur tercepat dari setiap origin ke setiap destination, menjumlahkan biaya segmen, dan mengembalikan total. Itu fundamental berbeda dari kalkulasi haversine, yang menggambar garis lurus antara dua koordinat dan mengabaikan bahwa bangunan, sungai, dan jalan satu arah itu eksis.

Pasangan koordinat memberi tahu di mana dua titik berada. Distance matrix memberi tahu apa biaya nyata untuk berpindah di antara keduanya.

Distance vs Duration

Tiga angka berbeda sering disebut "distance", dan membingungkan ketiganya adalah bug paling umum dalam kode routing.

Haversine distance adalah great-circle distance antara dua pasangan latitude dan longitude. Ia cepat dihitung, tidak membutuhkan network call, dan salah untuk task apa pun yang melibatkan mengemudi. Haversine distance 2 km bisa jadi drive 7 km begitu Anda memperhitungkan sungai yang tidak bisa Anda lewati.

Road-network distance adalah panjang jalur yang sebenarnya bisa dilewati. Ia memperhitungkan jalan satu arah, pembatasan belok, dan topologi road graph. Inilah yang dikembalikan distance matrix API di field distance.

Duration with traffic adalah waktu yang akan dibutuhkan perjalanan, mempertimbangkan kondisi lalu lintas saat ini atau prediksi. Segmen jalan tol 12 km adalah enam menit pada pukul 02:00 dan dua puluh lima menit pada pukul 17:30. Sistem production yang peduli pada ETA meminta duration yang traffic-aware dan melewatkan departure time sehingga routing engine bisa memodelkan kemacetan dengan benar.

Untuk ranking dan dispatch, duration hampir selalu menang dari distance. Seorang driver tidak peduli bahwa job yang lebih dekat berjarak 800 meter lebih jauh jika itu bisa memangkas empat menit dari drive.

Di Mana Distance Matrix Muncul

Distance matrix diam-diam berjalan di balik sebagian besar fitur logistik dan location-aware.

  • Penugasan driver pengiriman: setiap order yang menunggu dicocokkan dengan setiap driver yang tersedia. Dispatcher memilih sel dengan duration terendah yang menghormati kapasitas vehicle dan batasan shift
  • Fleet dispatching dan rebalancing: platform ride-hailing dan last-mile menghitung matrix antara vehicle dan demand zone setiap beberapa detik untuk menjaga mobil tetap dekat dengan rider
  • Ranking store dan venue locator: alih-alih mengembalikan lima toko terdekat berdasarkan haversine, locator menghitung matrix kecil dari lokasi user ke kandidat dan merangking berdasarkan drive time
  • Kalkulasi ETA di skala besar: marketplace dengan banyak order simultan mem-batch ETA ke dalam matrix call alih-alih menembakkan ribuan single-route request
  • VRP solver: vehicle routing problem solver (OR-Tools, jsprit, optimiser komersial) memerlukan cost matrix penuh sebagai input. Kualitas solusi routing dibatasi oleh kualitas matrix yang Anda berikan
  • Pemilihan lokasi dan perencanaan teritori: analis menghitung matrix antara lokasi kandidat dan klaster pelanggan untuk memilih gudang yang meminimalkan total drive time

Dalam semua kasus tersebut, matrix adalah primitive komputasi bulk. Ia adalah yang memungkinkan sebuah sistem untuk memikirkan "yang terbaik dari banyak" tanpa harus membayar biaya N kali M panggilan routing individual.

Jebakan di Production

Distance matrix mudah pada hari pertama dan menjadi sulit dengan cepat.

Asimetri adalah default. Jaringan jalan nyata punya jalan satu arah, jalan terbagi, dan biaya belok yang asimetris. Sel pada (A, B) jarang sama dengan sel pada (B, A). Memperlakukan matrix sebagai simetris untuk menghemat memori adalah salah satu penyebab klasik wrong-way routing dalam sistem dispatch.

Biaya N kali M. Matrix 100 kali 100 adalah 10.000 sel. Matrix 500 kali 500 adalah 250.000 sel. Biaya dan latency tumbuh secara kuadratik. Sebagian besar sistem production mem-batch matrix menjadi chunk (50 kali 50 atau 100 kali 100), memparalelkan request, dan mencache hasil yang tidak sering berubah, seperti matrix antara sekumpulan gudang tetap dan sekumpulan toko tetap.

Variansi waktu dalam sehari. Matrix yang dihitung pada 03:00 tidak valid pada 17:00. Jika logika dispatch Anda bergantung pada lalu lintas, minta matrix yang traffic-aware pada saat decision time atau pre-compute sekumpulan kecil matrix per time-bucket (peak pagi, off-peak, peak sore) dan pilih yang tepat.

Batching dan rate limit. Distance matrix API dikenakan biaya per element, bukan per request, dan sebagian besar provider membatasi ukuran satu panggilan. Rencanakan chunking dan back-pressure dari hari pertama, jangan tunggu sampai menemukannya saat skala bertumbuh.

Kualitas koordinat masuk, garbage keluar. Sebuah matrix hanya sebagus koordinat yang memberinya makan. Geocode yang mendarat di sisi yang salah dari jalan terbagi akan menghasilkan duration yang sangat keliru. Validasi koordinat input sebelum masuk ke matrix request.

Distance Matrix di MapAtlas

MapAtlas Distance Matrix API menghitung matrix N kali M penuh berisi waktu tempuh dan jarak di atas jaringan jalan nyata Eropa dan global. Ia mendukung profil mobil, truk, sepeda, dan pejalan kaki, menerima request yang traffic-aware dengan departure time, dan dibangun untuk ukuran batch yang dibutuhkan workload dispatch dan optimisation nyata.

Untuk workload yang lebih jauh dari sekadar ranking, Distance Matrix API berpasangan secara alami dengan Optimize Route API, yang mengambil sebuah matrix dan sekumpulan stop lalu mengembalikan rute terurut yang meminimalkan total drive time, serta dengan Isochrone API untuk filter "semua yang dapat dijangkau dalam X menit" yang menyusutkan candidate set sebelum panggilan matrix.

Distance matrix tidaklah glamor. Ia hanya grid berisi angka. Tetapi itulah grid angka yang mengubah "cari yang terbaik dari banyak" dari mimpi buruk routing N kali M menjadi satu request bulk, dan mendapatkan satu data ini dengan benar adalah yang membedakan produk logistik nyata dari demo dengan lima pin di peta.

Pertanyaan yang Sering Diajukan

Apa itu distance matrix?

Distance matrix adalah grid N kali M berisi waktu tempuh dan jarak antara sekumpulan titik asal dan sekumpulan tujuan. Setiap sel menjawab satu pertanyaan: berapa lama waktu yang dibutuhkan dari origin i ke destination j, dan seberapa jauh. Distance matrix API modern menghitung nilai-nilai ini di atas jaringan jalan nyata, bukan jarak garis lurus, sehingga hasilnya memperhitungkan jalan satu arah, pembatasan belok, dan geometri yang routable.

Apa beda distance dan duration?

Distance adalah seberapa jauh Anda berjalan di sepanjang jaringan jalan dalam meter atau kilometer. Duration adalah berapa lama waktunya, dalam detik, dengan memperhitungkan batas kecepatan, lalu lintas, dan kelas jalan. Keduanya tidak dapat dipertukarkan. Dua rute bisa punya distance yang sama tetapi duration yang sangat berbeda, dan sebagian besar use case production (ETA, dispatch, ranking) peduli pada duration. Distance matrix API yang baik mengembalikan keduanya untuk setiap sel.

Kapan saya pakai distance matrix daripada single route?

Pakai distance matrix kapan pun Anda perlu membandingkan banyak kandidat: merangking lima toko terdekat dari lima puluh, menugaskan pengiriman ke driver paling dekat dari dua puluh, atau memberi makan vehicle routing problem solver. Memanggil endpoint routing tunggal sebanyak N kali M kali itu lambat dan mahal. Endpoint matrix mengembalikan data yang sama dalam satu request, dioptimalkan untuk komputasi bulk.

Apakah distance matrix simetris?

Hampir tidak pernah di jaringan jalan nyata. Drive dari A ke B jarang sama dengan B ke A karena jalan satu arah, jalan terbagi, pembatasan belok, dan lalu lintas yang asimetris. Distance matrix API production mengembalikan grid N kali M penuh, bukan setengah segitiga. Jika Anda menciutkan matrix untuk menghemat memori, Anda akan merutekan driver di sisi jalan yang salah.

Merasa ini berguna? Bagikan.

Tentang penulis

Brent van der Heiden

Ditulis oleh

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. He writes about geospatial infrastructure, AI search visibility, and how location data powers the products people rely on every day.

Lihat semua artikel
Kembali ke blog