TutorialCara kerja algoritma HaversineGambar

Algoritma Haversine

adalah sebuah algoritma yang digunakan untuk menghitung jarak antara dua titik di permukaan bumi menggunakan garis lintang (latitude) dan garis bujur (longitude) sebagai variabel inputan. Algoritma ini penting dalam navigasi, karena memberikan jarak lingkaran besar antara dua titik pada permukaan bola (bumi).

Cara kerja algoritma Haversine dapat dijelaskan sebagai berikut :

  1. Pertama-tama, kita harus mengetahui nilai radius bumi (R), yang kira-kira adalah 6371 km.
  2. Selanjutnya, kita harus mengubah nilai latitude dan longitude dari kedua titik yang ingin kita hitung jaraknya menjadi radian. Radian adalah satuan sudut yang setara dengan 180 derajat dibagi dengan pi (π).
  3. Kemudian, kita harus menghitung selisih latitude (Δφ) dan selisih longitude (Δλ) antara kedua titik tersebut.
  4. Setelah itu, kita harus menghitung nilai a dengan rumus berikut:

a = sin²(Δφ/2) + cos(φ1) × cos(φ2) × sin²(Δλ/2) di mana φ1 dan φ2 adalah latitude dari titik pertama dan kedua dalam radian.

  1. Lalu, kita harus menghitung nilai c dengan rumus berikut:

c = 2 × atan2(√a, √(1-a)) di mana atan2 adalah fungsi matematika yang mengembalikan arctangent dari dua argumen.

  1. Terakhir, kita harus menghitung jarak (d) antara kedua titik dengan rumus berikut:

d = R × c di mana R adalah radius bumi dalam km. Berikut adalah contoh penerapan dalam bahasa pemrograman Python :

import math

def haversine(lat1, lon1, lat2, lon2):
  # Convert latitude and longitude to radians
  lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2])

  # Calculate the difference between the two coordinates
  dlat = lat2 - lat1
  dlon = lon2 - lon1

  # Apply the haversine formula
  a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
  c = 2 * math.asin(math.sqrt(a))

  # Calculate the radius of the Earth
  r = 6371 # radius of Earth in kilometers

  # Return the distance
  return c * r

Itulah cara kerja algoritma Haversine. Mudah-mudahan penjelasan kami bisa membantu kalian memahami konsepnya.

Daftar Pustaka :

  • https://elibrary.unikom.ac.id/id/eprint/2474/9/Bab%203.pdf
  • http://eprints.dinus.ac.id/15004/1/jurnal_14842.pdf
  • https://www.researchgate.net/publication/329748171_ANALISA_ALGORITMA_HAVERSINE_FORMULA_UNTUK_PENCARIAN_LOKASI_TERDEKAT_RUMAH_SAKIT_DAN_PUSKESMAS_PROVINSI_GORONTALO
  • https://books.google.com/books/about/Panduan_Lengkap_Algoritma_Haversine_Form.html?id=H3T9DwAAQBAJ

Dapatkan diskon 20%