Membuat grafik fluktuasi nilai tukar US Dollar terhadap Rupiah

This entry is part 6 of 7 in the series Visualisasi dengan matplotlib

Berikut adalah contoh kode program untuk menampilkan grafik fluktuasi nilai tukar mata uang US Dollar terhadap Rupiah dalam bahasa pemrograman python. Kode dimaksud menggunakan matplotlib untuk melakukan plotting dan requests library untuk mengambil data dari public API. Gambar yang tampil pada awal artikel merupakan bentuk akhir dari grafik yang dibuat oleh kode program dimaksud.

Pengambilan data dari public API

Untuk contoh yang lebih sederhana dan penjelasan yang lebih detail tentang penggunaan requests library untuk mengambil data dari public API, anda dapat membaca artikel https://koding.alza.web.id/mengakses-api-dengan-requests/ terlebih dahulu.

Kali ini, data diambil dari situs https://exchangeratesapi.io/. Pada situs tersebut tersedia beberapa endpoints, termasuk untuk melakukan query data historikal, yang akan digunakan pada artikel ini. Klik link https://api.exchangeratesapi.io/history?start_at=2019-01-01&end_at=2019-11-01&symbols=IDR&base=USD sebagai contoh request yang nanti akan digunakan di dalam kode.

Plotting data

Plotting data dilakukan menggunakan library matplotlib, sumbu x diisi dengan nilai tukar harian dengan menampilkan periode bulan sebagai interval pada gridlines. Sumbu y menampilkan nilai tukar USD terhadap IDR.

Datetime manipulation

Beberapa bagian dari kode memanfaatkan modul datetime pada standard library untuk konversi tanggal ke string dan sebaliknya. Baca dulu artikel https://koding.alza.web.id/menggunakan-modul-datetime/ dan https://koding.alza.web.id/konversi-string-ke-datetime-dan-sebaliknya/, jika diperlukan.

Kode akhir

Berikut adalah kode lengkap untuk menghasilkan grafik yang ditampilkan pada awal artikel.

import requests
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# https://api.exchangeratesapi.io/history?start_at=2018-01-01&end_at=2018-09-01&symbols=IDR&base=USD, cth query
api_url = 'https://api.exchangeratesapi.io/history?' # alamat API
mulai = '2019-01-01'
saat_ini = datetime.datetime.now() 
akhir = datetime.datetime.strftime(saat_ini,'%Y-%m-%d')
basis = 'USD' # Dolar Amerika Serikat
tujuan = 'IDR' # Rupiah
payload = {
  'start_at':mulai,
  'end_at':akhir,
  'base': basis,
  'symbols': tujuan 
  }
rslt = requests.get(api_url,payload) # mengirimkan request ke alamat API
nilai_tukar = [] # siapkan list untuk menyimpan nilai tukar
if rslt.status_code == requests.codes.ok : # server memberikan respon ok
  hasil = rslt.json() # konversi hasil dari format json ke dictionary
  rates = hasil['rates'] # ambil data historical nilai tukar   
  for date,rate in rates.items():
    tanggal = datetime.datetime.strptime(date,'%Y-%m-%d')
    rate =  rate[tujuan]
    nilai_tukar.append([tanggal,rate])  
  nilai_tukar.sort() # urutkan berdasarkan tanggal (elemen pertama)
else :
  print('Gagal mendapatkan respon yang diinginkan dari server')
if nilai_tukar: # cek apakah ada isinya
  nilai_tukar.sort() # urutkan berdasarkan tanggal (elemen pertama)
  tanggal,nilai_tukar = zip(*nilai_tukar) # pecah menjadi dua list
  fig,ax = plt.subplots()
  plt.title('Fluktuasi nilai USD terhadap IDR') 
  plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b-%Y'))
  plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=1))
  plt.plot(tanggal,nilai_tukar) # plot tanggal vs nilai tukar
  plt.grid()
  plt.gcf().autofmt_xdate() 
  plt.show()

Coba kode di atas pada repl.it

Lebih lanjut

Lihat artikel selanjutnya untuk fluktuasi kurs beberapa mata uang sekaligus terhadap US Dollar

Semoga bermanfaat,

Salam

Series Navigation<< Membuat animasi plot menggunakan matplotlibMembuat grafik fluktuasi nilai USD terhadap mata uang ASEAN >>

You may also like...

Berikan komentar