Membuat grafik fluktuasi nilai tukar US Dollar terhadap Rupiah
- Visualisasi diagram venn dua himpunan dengan matplotlib
- Visualisasi diagram venn tiga himpunan dengan matplotlib
- Menggambar gelombang trigonometri dengan matplotlib dan numpy
- Membuat histogram dengan matplotlib
- Membuat animasi plot menggunakan matplotlib
- Membuat grafik fluktuasi nilai tukar US Dollar terhadap Rupiah
- Membuat grafik fluktuasi nilai USD terhadap mata uang ASEAN
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