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