tinggihilal.py

Download
# tinggihilal.py
from skyfield.api import load, wgs84

def hitung_tinggi_hilal():
    # Memuat data efemeris JPL
    eph = load('de421.bsp')
    bumi = eph['earth']
    bulan = eph['moon']

    # Set parameter observasi (Contoh: Semarang)
    # Latitude: 7°00'18" S, Longitude: 110°26'17" E
    lokasi = bumi + wgs84.latlon(-7.0051, 110.4381, elevation_m=4)

    ts = load.timescale()
    waktu_sekarang = ts.now()

    # Perhitungan Geosentrik Apparent (Altitude)
    astrometric = lokasi.at(waktu_sekarang).observe(bulan)
    apparent = astrometric.apparent()
    alt, az, distance = apparent.altaz()

    print("=== TINGGI HILAL (BULAN) ===")
    print(f"Waktu UTC : {waktu_sekarang.utc_datetime().strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"Lokasi    : Semarang (-7.0051°, 110.4381°)")
    print(f"Altitude  : {alt.degrees:.4f}°")

if __name__ == "__main__":
    hitung_tinggi_hilal()