Untuk mengambil data harga emas (XAU/USD) secara langsung dari API Alpha Vantage dan memanipulasinya sesuai kebutuhan, Anda bisa menggunakan kode PHP. Berikut adalah contoh bagaimana Anda dapat melakukan ini:

  1. Ambil data harga emas dari Alpha Vantage API.
  2. Manipulasi data tersebut untuk mendapatkan harga tertinggi setiap hari.
  3. Simpan data tersebut dalam array dengan struktur yang diinginkan.

Pertama, pastikan Anda memiliki kunci API dari Alpha Vantage. Berikut adalah contoh kode untuk mencapai hal tersebut:

<?php
// API Key dari Alpha Vantage
$api_key = 'YOUR_API_KEY';

// URL untuk mengambil data harga emas (XAU/USD)
$url_gold = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=XAUSD&market=USD&apikey=' . $api_key;

// Mengambil data dari API
$response_gold = file_get_contents($url_gold);
$res_gold = json_decode($response_gold, true);

// Memastikan data diambil dengan benar
if (isset($res_gold['Time Series (Daily)'])) {
    $data1 = [];
    foreach ($res_gold['Time Series (Daily)'] as $date => $values) {
        $data1['rates'][$date] = [
            'metals' => [
                'gold' => $values['2. high']
            ]
        ];
    }
}

// URL untuk mengambil data harga perak (XAG/USD)
$url_silver = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=XAGUSD&market=USD&apikey=' . $api_key;

// Mengambil data dari API
$response_silver = file_get_contents($url_silver);
$res_silver = json_decode($response_silver, true);

// Memastikan data diambil dengan benar
if (isset($res_silver['Time Series (Daily)'])) {
    $data2 = [];
    foreach ($res_silver['Time Series (Daily)'] as $date => $values) {
        $data2['rates'][$date] = [
            'metals' => [
                'silver' => $values['2. high']
            ]
        ];
    }
}

// Menggabungkan data emas dan perak
$data = [];
foreach (array_merge(array_keys($data1['rates']), array_keys($data2['rates'])) as $date) {
    if (isset($data1['rates'][$date])) {
        $data[$date]['rates']['metals']['gold'] = $data1['rates'][$date]['metals']['gold'];
    }
    if (isset($data2['rates'][$date])) {
        $data[$date]['rates']['metals']['silver'] = $data2['rates'][$date]['metals']['silver'];
    }
}

// Menampilkan hasil
print_r($data);
?>

Penjelasan kode:

  1. Mengambil Data Emas:

    • URL API untuk mengambil data harga emas (XAU/USD) menggunakan function=TIME_SERIES_DAILY.
    • file_get_contents digunakan untuk mengambil data dari API.
    • json_decode digunakan untuk mengubah data JSON menjadi array PHP.
  2. Manipulasi Data Emas:

    • Memastikan data diambil dengan benar.
    • Menyimpan harga tertinggi emas setiap hari dalam array $data1.
  3. Mengambil Data Perak:

    • URL API untuk mengambil data harga perak (XAG/USD) menggunakan function=TIME_SERIES_DAILY.
    • Proses yang sama seperti pengambilan data emas.
  4. Manipulasi Data Perak:

    • Memastikan data diambil dengan benar.
    • Menyimpan harga tertinggi perak setiap hari dalam array $data2.
  5. Menggabungkan Data Emas dan Perak:

    • Membuat array kosong $data untuk menyimpan hasil gabungan.
    • Menggunakan array_merge dengan array_keys untuk mendapatkan daftar semua tanggal yang unik dari $data1 dan $data2.
    • Untuk setiap tanggal, memeriksa apakah data ada di $data1 dan $data2, lalu menambahkannya ke array $data.
  6. Menampilkan Hasil:

    • print_r digunakan untuk menampilkan hasil array gabungan.

Pastikan untuk mengganti YOUR_API_KEY dengan kunci API yang valid dari Alpha Vantage. Kode ini akan memberikan Anda array dengan harga tertinggi emas dan perak setiap hari.