Prediksi Fase Bulan via API Astronomi: dari Fotografi sampai Jadwal Ibadah
Hitung fase bulan, penerangan, dan jadwal bulan purnama berikutnya lewat REST API. Cocok untuk aplikasi fotografi, agrikultur, dan keagamaan.
Butuh tahu kapan bulan purnama berikutnya, seberapa terang bulan malam ini, atau kapan fase baru dimulai? Kebanyakan developer menyelesaikannya dengan menyalin tabel fase bulan dari internet, lalu datanya basi setahun kemudian. Padahal fase bulan bisa dihitung, bukan dihafal.
API Astronomi dari API Indonesia menghitung fase bulan langsung dari rumus publik NOAA/USNO: penerangan (illumination), nama fase dalam Bahasa Indonesia, usia bulan, hingga daftar fase besar berikutnya hingga 12 fase ke depan. Karena murni komputasi lokal tanpa sumber data eksternal, ini aman untuk penggunaan komersial.
Endpoint yang Dipakai
Base URL: https://use.apiindonesia.id/api/v1/astronomi
| Method | Endpoint | Keterangan |
|---|---|---|
| GET | /moon |
Fase bulan untuk satu tanggal (penerangan, nama fase, usia, jarak) |
| GET | /moon/next |
Fase besar berikutnya (baru, kuartil, purnama) hingga 12 fase |
| GET | /twilight |
Batas senja sipil, nautika, dan astronomi |
| GET | /sun |
Terbit, terbenam, panjang hari |
Contoh Request dan Response
Cek fase bulan untuk tanggal tertentu:
curl "https://use.apiindonesia.id/api/v1/astronomi/moon?tanggal=2026-09-15" \
-H "x-api-key: aip_li...x"
Response:
{
"data": {
"date": "2026-09-15",
"illumination": 0.87,
"phaseName": "Bulan Sabit Terang",
"age": 11.2,
"visiblePercent": 87,
"trend": "waxing"
},
"meta": { "source": "Computed (NOAA/USNO)" }
}
Untuk perencanaan jangka panjang, ambil daftar fase besar berikutnya:
curl "https://use.apiindonesia.id/api/v1/astronomi/moon/next?tanggal=2026-09-01&count=6" \
-H "x-api-key: aip_li...x"
import requests
def upcoming_full_moons(api_key: str, count: int = 6):
r = requests.get(
"https://use.apiindonesia.id/api/v1/astronomi/moon/next",
params={"count": count},
headers={"x-api-key": api_key},
)
r.raise_for_status()
return [p for p in r.json()["data"] if p["phase"] == "full"]
for p in upcoming_full_moons("aip_live_xxx"):
print(p["date"], p["name"])
Tiga Use Case yang Paling Sering Ditanyakan
1. Fotografi landscape
Pemotret milky way butuh malam gelap tanpa bulan, sementara pemotret landscape golden hour butuh jadwal terbit/terbenam yang akurat. Kombinasi /moon dan /twilight memberi semua angkanya. Golden hour kira-kira satu jam setelah civil dawn dan satu jam sebelum civil dusk.
async function photoConditions(lat, lon, date) {
const base = "https://use.apiindonesia.id/api/v1/astronomi";
const headers = { "x-api-key": process.env.API_INDONESIA_KEY };
const [moon, twilight, sun] = await Promise.all([
fetch(`${base}/moon?tanggal=${date}`, { headers }).then((r) => r.json()),
fetch(`${base}/twilight?lat=${lat}&lon=${lon}&tanggal=${date}&tz=%2B07:00`, { headers }).then((r) => r.json()),
fetch(`${base}/sun?lat=${lat}&lon=${lon}&tanggal=${date}&tz=%2B07:00`, { headers }).then((r) => r.json()),
]);
return {
illumination: moon.data.illumination,
darkEnoughForMilkyWay: moon.data.illumination < 0.2,
civilDawn: twilight.data.civilDawn,
goldenHourPagi: `${sun.data.sunrise} sampai ${twilight.data.civilDawn ? "setelahnya" : ""}`,
sunset: sun.data.sunset,
civilDusk: twilight.data.civilDusk,
};
}
2. Agrikultur
Sebagian petani masih menjadwalkan tanam dan panen berdasarkan fase bulan. Apa pun pandangan Anda soal tradisinya, fitur kalender tanam di aplikasi tani bisa menampilkan fase bulan sebagai informasi, bukan asumsi. Endpoint /moon/next cukup dipanggil sekali sebulan untuk mengisi kalender seluruh tahun.
3. Ibadah dan keagamaan
Penentuan awal bulan kamariah (seperti Ramadan, Syawal, dan Dzulhijjah) berkaitan erat dengan posisi dan usia bulan. Aplikasi keagamaan bisa menampilkan usia dan penerangan bulan sebagai konteks informatif, sementara keputusan resmi tetap mengikuti hisab/ruiyat yang berlaku. Untuk konversi tanggal Masehi ke Hijriah berbasis Kalender Hijriah Indonesia (MABIMS), gunakan produk API Hijriah.
Catatan Teknis
- Auth pakai header
x-api-key, sama seperti produk API Indonesia lainnya. - Hasil dihitung dari rumus NOAA/USNO, aksen plus-minus 2 menit itu normal untuk waktu terbit/terbenam.
- Field
illuminationbernilai 0 sampai 1, jadi kalikan 100 untuk persen penerangan di UI. - Endpoint
/moon/nextmendukung parametercountmaksimal 12.
Mulai Sekarang
Pelajari detail parameter di halaman produk API Astronomi, dapatkan API key gratis di dashboard.apiindonesia.id/register, dan baca referensi lengkap di docs.apiindonesia.id.
