← Blog
Artikel

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 illumination bernilai 0 sampai 1, jadi kalikan 100 untuk persen penerangan di UI.
  • Endpoint /moon/next mendukung parameter count maksimal 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.

Mulai Sekarang

Mulai Integrasi
Hari Ini

Daftar gratis, ambil API key, dan langsung call endpoint pertama Anda — tanpa kartu kredit, tanpa proses approval yang ribet.

Visualisasi gelombang titik