background icons
background icons 2
Mengenal Rumus Haversine dalam Pemrograman
Fitri Hy Fitri Hy
Tutorial 16-09-2024

Mengenal Rumus Haversine dalam Pemrograman

Rumus Haversine adalah salah satu metode yang digunakan untuk menghitung jarak antara dua titik di permukaan bumi berdasarkan koordinat lintang dan bujur. Rumus ini sangat berguna dalam berbagai aplikasi yang melibatkan lokasi geografis, seperti aplikasi pemetaan, navigasi, dan sistem lokasi berbasis GPS.

Secara umum, rumus Haversine memperhitungkan kelengkungan bumi sehingga dapat memberikan estimasi jarak yang lebih akurat dibandingkan dengan metode penghitungan jarak linier sederhana. Rumus ini mengasumsikan bahwa bumi adalah sebuah bola (meskipun bentuknya sedikit elips), sehingga hasilnya cukup mendekati dalam kebanyakan kasus.
Rumus Haversine

Berikut adalah rumus Haversine yang digunakan untuk menghitung jarak antara dua titik (A dan B) dengan koordinat lintang dan bujur:

rumus haversine

Implementasi Haversine dalam PHP

Berikut adalah contoh implementasi rumus Haversine dalam bahasa pemrograman PHP:

<?php
function haversine($lat1, $lon1, $lat2, $lon2) {
    $earth_radius = 6371; // Radius bumi dalam kilometer

    // Konversi derajat ke radian
    $lat1 = deg2rad($lat1);
    $lon1 = deg2rad($lon1);
    $lat2 = deg2rad($lat2);
    $lon2 = deg2rad($lon2);

    // Selisih lintang dan bujur
    $dlat = $lat2 - $lat1;
    $dlon = $lon2 - $lon1;

    // Rumus Haversine
    $a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlon / 2) * sin($dlon / 2);
    $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

    // Hitung jarak
    $distance = $earth_radius * $c;
    return $distance;
}

// Contoh penggunaan
$lat1 = -6.200000; // Lintang Jakarta
$lon1 = 106.816666; // Bujur Jakarta
$lat2 = -7.250445; // Lintang Surabaya
$lon2 = 112.768845; // Bujur Surabaya

$jarak = haversine($lat1, $lon1, $lat2, $lon2);
echo "Jarak antara Jakarta dan Surabaya adalah " . $jarak . " kilometer.";
?>

Implementasi Haversine dalam JavaScript

Berikut adalah contoh implementasi rumus Haversine dalam bahasa pemrograman JavaScript:

function haversine(lat1, lon1, lat2, lon2) {
    const earthRadius = 6371; // Radius bumi dalam kilometer

    // Konversi derajat ke radian
    const toRad = (value) => (value * Math.PI) / 180;

    const dLat = toRad(lat2 - lat1);
    const dLon = toRad(lon2 - lon1);

    const a =
        Math.sin(dLat / 2) * Math.sin(dLat / 2) +
        Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
        Math.sin(dLon / 2) * Math.sin(dLon / 2);

    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

    const distance = earthRadius * c;
    return distance;
}

// Contoh penggunaan
const lat1 = -6.200000; // Lintang Jakarta
const lon1 = 106.816666; // Bujur Jakarta
const lat2 = -7.250445; // Lintang Surabaya
const lon2 = 112.768845; // Bujur Surabaya

const jarak = haversine(lat1, lon1, lat2, lon2);
console.log(`Jarak antara Jakarta dan Surabaya adalah ${jarak} kilometer.`);

Kesimpulan

Rumus Haversine sangat bermanfaat dalam berbagai aplikasi yang membutuhkan perhitungan jarak geografis, terutama untuk aplikasi berbasis peta dan GPS. Dengan implementasi sederhana dalam bahasa pemrograman seperti PHP dan JavaScript, kita dapat menghitung jarak antara dua titik di permukaan bumi dengan akurasi yang cukup baik.