Service Api's


package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

const (
	API_KEY  = "YOUR API"
	ENDPOINT = "https://senpai-bot.store/bmkg"
)

type Response struct {
	Code   int    `json:"code"`
	Result Result `json:"result"`
}

type Result struct {
	Gempa []Gempa `json:"gempa"`
}

type Gempa struct {
	Wilayah   string `json:"wilayah"`
	Waktu     string `json:"waktu"`
	Magnitude string `json:"magnitude"`
	Kedalaman string `json:"kedalaman"`
	Koordinat string `json:"koordinat"`
	Potensi   string `json:"potensi"`
}

func main() {
	url := fmt.Sprintf("%s?apikey=%s", ENDPOINT, API_KEY)

	resp, err := http.Get(url)
	if err != nil {
		fmt.Printf("Gagal request: %v\n", err)
		return
	}
	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("Gagal membaca response body")
		return
	}

	var res Response
	if err := json.Unmarshal(body, &res); err != nil {
		fmt.Println("Gagal parsing JSON")
		return
	}

	if res.Code != 200 {
		fmt.Printf("API error code: %d\n", res.Code)
		return
	}

	if len(res.Result.Gempa) == 0 {
		fmt.Println("Tidak ada data gempa ditemukan.")
		return
	}

	fmt.Println("Informasi Gempa BMKG Terbaru:\n")
	for i, gempa := range res.Result.Gempa {
		fmt.Printf("Gempa #%d\n", i+1)
		fmt.Println("Wilayah   :", gempa.Wilayah)
		fmt.Println("Waktu     :", gempa.Waktu)
		fmt.Println("Magnitudo :", gempa.Magnitude)
		fmt.Println("Kedalaman :", gempa.Kedalaman)
		fmt.Println("Koordinat :", gempa.Koordinat)
		fmt.Println("Potensi   :", gempa.Potensi)
		fmt.Println()
	}
}