Tutorial Python Currency | Cara Convert Mata Uang Asing Menggunakan Python

Cara Convert Mata Uang Asing Menggunakan Python

Pada tutorial kali ini kita akan mencoba mempelajari tentang bagaimana cara convert mata uang asing dengan menggunakan CurrencyConverter.

CurrencyConverter adalah sebuah package / paket yang dimiliki oleh python berdasarkan (European Central Bank) yang dapat kita gunakan untuk mengetahui nilai mata uang asing dengan mata uang yang kita miliki (Rupiah).

Sebelum kita memulainya lebih lanjut, pastikan jika kita telah memiliki Virtual Environment dan berada di dalamnya.

Untuk langkah-langkahnya mari kita coba satu persatu command yang dimiliki CurrencyConverter dengan perintah di bawah ini:

Installation

$ pip install CurrencyConverter

Command Line

Sekarang mari kita jalankan langsung via terminal / cmd dengan perintah di bawah ini:

$ currency_converter 1 USD --to IDR
1.000 USD = 14079.003 IDR on 2019-01-10

Pada terminal di atas, kita coba mengonversikan nilai 100 USD (US Dollar) ke dalam sebuah nilai IDR (Indonesian Rupiah).

Dan nilai dari 1 USD ($ 1.00) adalah setara Rp. 14.000,- lebih.

Menggunakan Python API

Kegunaan API pada CurrencyConverter adalah untuk mendapatkan last availabe rate / nilai saat ini.

Selanjutnya kita akan mencoba menggunakan API yang dimiliki oleh CurrencyConverter seperti contoh di bawah ini:

>>> from currency_converter import CurrencyConverter
>>> cc = CurrencyConverter()

>>> cc
<currency_converter.currency_converter.CurrencyConverter object at 0x7ffb140d8a90>

>>> type(cc)
<class 'currency_converter.currency_converter.CurrencyConverter'>

Pada teriminal di atas kita membuat object untuk mendefinisikan CurrencyConverter yang kita miliki kedalam sebuah variable yang bernama cc dan mencoba mengetahui function / type yang dimiliki oleh cc tersebut menggunakan type(cc).

Selanjutnya mari kita coba untuk mengkonversikan mata uang melalui python shell tersebut dengan command seperti berikut:

>>> cc.convert(1, 'USD', 'IDR')
14079.003034243606
>>> # abaikan nilai dibelakang . (003034243606)            

>>> cc.convert(1, 'EUR', 'IDR')
16240.13

Pada shell di atas, kita mendapatkan nilai berdasarkan last availabe rate atau nilai sekarang ini.

Kita juga dapat melakukan pengecekan nilai dari mata uang tersebut pada tanggal yang ditentukan.

Contoh:

>>> from datetime import date
>>> cc.convert(1, 'USD', 'IDR', date=date(2010, 6, 28))
9030.391441769998

Pada table di atas kita ingin melakukan pencarian nilai 1 USD pada tahun 2010, bulan Juni, tanggal 28. See? rupiah ternyata turun sangat jauh guys!.

Fallbacks dan Error

Apabila kita ingin memeriksa nilai dari beberapa negara lain pada tahun sebelum-sebelumnya mungkin sebagian akan muncul error seperti di bawah ini:

>>> cc.convert(100, 'BGN', date=date(2010, 11, 21))
Traceback (most recent call last):
currency_converter.currency_converter.RateNotFoundError: BGN has no rate for 2010-11-21

Untuk mengatasi bug / error tersebut kita bisa menggunakan perintah seperti di bawah ini:

>>> ccv = CurrencyConverter(fallback_on_missing_rate=True)
>>> ccv.convert(100, 'BGN', date=date(2010, 11, 21))
51.12997238981491

Mungkin kita akan mengalami error seperti di bawah ini saat ingin melihat nilai mata uang pada tahun atau tanggal tertentu yang lebih tua.

Contoh:

>>> cc.convert(200, 'IDR', 'EUR', date=date(1960, 2, 10))
Traceback (most recent call last):
currency_converter.currency_converter.RateNotFoundError: 1960-02-10 not in IDR bounds 2005-04-01/2019-01-10

Untuk mengatasinya kita bisa menggunakan command berikut:

>>> ccv = CurrencyConverter(fallback_on_wrong_date=True)
>>> ccv.convert(200, 'IDR', 'EUR', date=date(1960, 2, 10))
0.016297036302463215

Pada error di atas, CurrencyConverter tidak dapat menemukan tanggal yang kita minta, oleh karena itu kita mencoba menggunakan perintah fallback_on_wrong_date=True untuk memaksanya mencari nilai mata uang pada tanggal tersebut.

Mengecek Currency Status Pada CurrencyConverter

Kita dapat mengecek status atau mata uang mana sajakah yang bisa kita convert menggunakan CurrencyConverter tersebut dengan menggunakan command seperti di bawah ini:

>>> cc.currencies
{'MXN', 'CHF', 'ROL', 'SEK', 'MTL', 'SGD', 'INR', 'HRK', 'LVL', 'CAD', 'HKD', 'THB', 'BGN', 'RON', 'LTL', 'ILS', 'HUF', 'CYP', 'ISK', 'USD', 'SIT', 'TRL', 'JPY', 'PHP', 'KRW', 'NOK', 'CNY', 'BRL', 'PLN', 'GBP', 'MYR', 'NZD', 'DKK', 'ZAR', 'IDR', 'AUD', 'EUR', 'TRY', 'EEK', 'SKK', 'RUB', 'CZK'}

karena type data pada table di atas adalah dict() kita dapat melihat detail currencies yang akan kita convert dengan metode:

>>> 'IDR' in cc.currencies
True

>>> 'ABC' in cc.currencies
False

>>> cc.convert(200, 'ABC')
Traceback (most recent call last):
ValueError: ABC is not a supported currency
>>> # ValueError akan muncul apabila data tidak ada / NotExist
  • Apabila kita ingin mendapatkan hasil yang lebih akurat bisa menggunakan metode seperti:
>>> # load package dari hasil import yang kemungkinan sudah kurang update
>>> cc = CurrencyConverter()

>>> # load full history dari ECB
>>> cc = CurrencyConverter('http://www.ecb.int/stats/eurofxref/eurofxref-hist.zip')

>>> # load hanya dari rates yang terakhir kali update
>>> cc = CurrencyConverter('http://www.ecb.europa.eu/stats/eurofxref/eurofxref.zip')

>>> # load dari file yang sudah kita download
>>> cc = CurrencyConverter('./path/ke/folder/currency/nama-file.csv')

Untuk download source file currency Converter bisa klik link berikut ini:

Apabila ada hal yang kurang jelas atau keliru mohon untuk tinggalkan komentar di bawah.

And that’s it!, thank’s for reading guys 👋 😁.


Tags: #python, #CurrencyConverter, #Blog