Main /
Haversine
import math
import webbrowser
def haversine(lat1, lon1, lat2, lon2):
lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2])
dlat = lat2 - lat1
dlon = lon2 - lon1
a = math.sin(dlat / 2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon / 2)**2
c = 2 * math.asin(math.sqrt(a))
R = 6371
return R * c
lat1, lon1 = -2.5916, 140.6689
lat2, lon2 = -8.4932, 140.3947
jarak = haversine(lat1, lon1, lat2, lon2)
print("Jarak garis lurus: {:.2f} km".format(jarak))
maps_link = "https://www.google.com/maps/dir/{},{}/{},{}".format(lat1, lon1, lat2, lon2)
print("\n\nMaps:", maps_link)
input("\nTekan Enter untuk membuka peta di browser...")
webbrowser.open(maps_link)
import math
def haversine(lat1, lon1, lat2, lon2):
R = 6371 # Radius Bumi dalam kilometer
lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2])
dlat = lat2 - lat1
dlon = lon2 - lon1
a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
c = 2 * math.asin(math.sqrt(a))
return R * c
# Koordinat
fakfak = (-2.88524, 132.2658)
yalimo = (-3.78528, 139.4466)
target = (-3.66093, 133.7745)
# Hitung jarak
jarak_fakfak = haversine(fakfak[0], fakfak[1], target[0], target[1])
jarak_yalimo = haversine(yalimo[0], yalimo[1], target[0], target[1])
print("Jarak Fakfak → Target: {:.2f} km".format(jarak_fakfak))
print("Jarak Yalimo → Target: {:.2f} km".format(jarak_yalimo))
# Perbandingan
lebih_dekat = "Fakfak" if jarak_fakfak < jarak_yalimo else "Yalimo"
print(">>> {} lebih dekat ke target.".format(lebih_dekat))