Cara Gampang Bikin Konversi Mata Uang Otomatis dengan PHP.. Haloo semua nya, kali ini aku mau share lagi pengalaman ku didalam dunia pemrograman..
Jadi kebetulan kemarin aku diminta untuk membuat fitur exchange rate / kurs mata uang pada salah satu modul di sistem kantor ku..
Fitur exchange rate ini harus bersifat realtime mengikuti mata uang dunia saat ini, jadi ketika hari ini nilai dollar terhadap rupiah adalah 1:15000, maka di sistem juga akan tertulis seperti itu..
Konversi Mata Uang Otomatis Dengan PHP Realtime
Untuk bisa mendapatkan nilai kurs mata uang secara realtime, kita bisa memanfaatkan salah satu penyedia API Exchange Rate yang diberikan secara gratis oleh ExchangeRateHost..
Fitur-fitur yang ada pada exchange rate host
Untuk fitur-fitur yang ada pada exchange rate host juga lumayan lengkap yaa,
- kita bisa ngecek kurs mata uang terakhir secara update..
- bisa melakukan konversi mata uang antara 2 nilai, misal IDR to USD..
- Dapat mengecek kurs mata uang tertentu pada tahun atau tanggal tertentu..
- Dapat melihat histori perubahan nilai kurs nya..
Persiapan Memulai Konversi Mata Uang
Sekarang kita akan mulai untuk melakukan konversi mata uang nya..
Hal-hal yang perlu dipersiapkan
Postman
Ada beberapa hal yang perlu kalian persiapkan, yaitu yang pertama adalah instalasi Postman..
Postman ini digunakan untuk men-testing setiap endpoint API nya sebelum kita terapkan kedalam bahasa pemrograman PHP..
Kalian bisa download Postman Disini..
Get Kurs Valuta Asing
Hal pertama yang akan kita coba yaitu kita akan mendapatkan nilai kurs valuta asing secara realtime..
Berdasarkan dokumentasi resmi nya, nilai ini akan diupdate dengan nilai yang terbaru pada setiap hari nya..
Kita hanya perlu menembakkan ke endpoint berikut pada postman nya:
https://api.exchangerate.host/latest
Method yang digunakan yaitu “GET”.. Silahkan kalian coba seperti pada gambar berikut:
Kalian bisa cek hasil response diatas, terdapat property object dengan nama “base”: “EUR”, ini artinya kurs mata uang tersebut berdasarkan mata uang Euro..
Kemudian dibawah nya terdapat property object rates yang berisi list mata uang beserta nilai nya.. Nilai mata uang tersebut adalah hasil konversi dari mata uang euro..
Memfilter hasil kurs ke IDR saja
Biar lebih mudah dibaca kita coba tarik yang IDR saja dengan menambahkan parameter get symbols pada request nya.. Seperti contoh berikut:
Kalian perhatikan gambar diatas, kalau kita hanya ingin menampilkan hasil konversi nya kedalam IDR saja, maka kita perlu menambahkan parameter symbols pada request nya, dan isi dengan symbol mata uang nya, kalau mau ke rupiah berarti kita isi dengan IDR..
Menambahkan hasil kurs ke 2 atau lebih mata uang
Kita juga bisa menambahkan symbol mata uang lain dengan memisahkan nya dengan koma, contoh nya seperti pada gambar berikut:
Contoh diatas kita ingin menampilkan hasil konversi nya kedalam 2 mata uang, yaitu IDR dan MYR, maka pada inputan parameter nya, kita inputkan 2 symbol mata uang tersebut dengan memisahkan nya dengan koma(,)..
Hasil response diatas artinya adalah dalam 1 euro = 15186 rupiah, atau 1 euro = 4.5 Ringgit Malaysia..
Mengganti Base Rate nya dari Euro menjadi USD
Kita juga bisa mengganti base konversi nya dari euro menjadi nilai mata uang yang lain, misalkan kita ingin merubah base konversi nya dari euro menjadi USD, maka kita perlu menambahkan parameter baru dengan nama base pada request nya..
Contoh nya seperti pada gambar berikut:
Diatas kita menambahkan sebuah request parameter baru dengan nama key nya yaitu base, dan value nya kita isi dengan USD..
Maka pada hasil response nya, untuk base konversi nya berdasarkan nilai USD..
Pada contoh diatas, 1 USD = 14868 Rupiah, atau 1 USD = 4.4 Ringgit Malaysia..
Integrasi kedalam Bahasa PHP dengan cURL
Sebelumnya kita sudah berhasil testing2 get kurs valuta asing menggunakan postman, nah sekarang akan kita terapkan kedalam bahasa pemgrograman PHP, bagaimana caranya?
Gampang banget, kita bisa menggunakan PHP – cURL, untuk contoh kode nya adalah seperti berikut:
.... public function getKursValutaAsing($symbols, $base) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.exchangerate.host/latest?symbols=' . $symbols . '&base=' . $base, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); $data = json_decode($response, true); return $data; } ....
Pada contoh diatas kita membuat sebuah method dengan nama getKursValutaAsing..
Pada method tersebut memiliki 2 parameter, yaitu symbols dan base.. symbols kalian isi dengan nilai mata uang yang ingin dicari hasil kurs nya, dan base adalah nilai sumber dari kurs valuta asing nya..
Jika method tersebut dipanggil, maka contoh response nya adalah seperti berikut:
Konversi diantara 2 mata uang
Sebelumnya kita sudah berhasil get kurs nilai mata uang dari mata uang tertentu ke beberapa mata uang..
Sekarang kita akan coba membandingkan atau melakukan konversi diantara 2 mata uang..
Cara nya kita perlu menembakkan ke endpoint berikut:
https://api.exchangerate.host/convert
Hanya saja nanti kita perlu menambahkan beberapa parameter saat request nya..
Beberapa parameter yang perlu ditambahkan yaitu:
- from : digunakan untuk menentukan sumber mata uang yang ingin di konversikan
- to : nilai mata uang hasil dari konversi nya
- amount : nominal yang ingin dikonversikan
Jadi kalau misalkan kita ingin mengkonversi 10 USD menjadi IDR, maka from nya kita isi dengan USD, to nya kita isi dengan IDR, dan amount nya diisi dengan 10..
Untuk lebih jelas nya silahkan kalian lihat contoh berikut:
Kalau kalian coba menggunakan postman, maka seharusnya hasilnya sama seperti diatas..
Di response nya akan ada banyak property object, tapi jika kalian ingin mengambil hasil dari nilai konversi nya, bisa diambil dari property object result..
Property object result memberikan nilai 148585, ini artinya 10 USD sama dengan 148585 IDR..
Mengintegrasikan kedalam bahasa PHP
Kalo di konversikan kedalam bahasa PHP, maka hasilnya menjadi seperti berikut:
Baca Juga: Cara Kirim Notifikasi Whatsapp Pada Laravel Dengan Wablas Whatsapp Gateway
.... public function exchangeRate($from, $to, $amount) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.exchangerate.host/convert?from=' . $from . '&to=' . $to . '&amount=' . $amount, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); return json_decode($response, true); } ....
Jadi diatas kita membuat sebuah method dengan nama exchangeRate, yang mana pada method tersebut memiliki 3 parameter, yaitu from, to dan amount..
Jadi ketika nanti kalian memanggil method tersebut, maka perlu mem-passing 3 parameter tersebut..
Historical Rates – Melihat kurs mata uang di masa lalu
Kalau kalian ingin melihat perbandingan nilai mata uang di masa lalu, misalkan di tahun kemarin, atau 5 tahun yang lalu, kalian bisa menggunakan fitur historical rates..
Kalian perlu menembakkan nya ke endpoint berikut:
https://api.exchangerate.host/{tanggal}
Jadi kalo kita menggunakan endpoint ini, ada tambahan 1 path parameter untuk menuliskan tanggal nya, tanggal yang ditulis yaitu dengan format : yyyy-mm-dd..
Biar lebih mudah langsung kita praktekan aja seperti pada gambar berikut:
Pada gambar diatas, kita ingin mengetahui perbandingan nilai antara Rupiah terhadap USD pada tanggal 17 agustus 2005..
Ternyata pada tanggal tersebut, 1 USD = 9887 Rupiah..
Kalian juga bisa memilih tanggal yang lain, tinggal tentukan aja nilai nya pada path parameter nya..
Integrasi historical rates kedalam bahasa PHP
Untuk kodingan PHP nya seperti berikut:
.... public function historicalRates($date, $base, $symbols) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.exchangerate.host/' . $date . '?base=' . $base . '&symbols=' . $symbols, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); $data = json_decode($response, true); return $data; } ....
Pada method diatas kita membuat 3 parameter, yaitu tanggal, base, dan symbols yang wajib kalian passing ketika memanggil method tersebut..
Time Series
Keren nya lagi, kita juga bisa melihat time series / histori perubahan pada mata uang tertentu berdasarkan periode tanggal nya..
Misalkan kita ingin melihat histori perubahan IDR terhadap USD dari tanggal 2022-01-01 sampai dengan 2022-01-05..
Maka bentuk request nya adalah seperti berikut:
Endpoint request:
https://api.exchangerate.host/timeseries
Pada request diatas kita membawa 4 parameter, yaitu:
- start_date : Untuk menentukan tanggal awal kurs nya (yyyy-mm-dd)..
- end_date : Untuk menentukan tanggal akhir kurs nya (yyyy-mm-dd)..
- symbols : Untuk memilih nilai mata uang apa saja yang ingin dilihat histori nya, jika lebih dari 1, pisah dengan koma (,)..
- base : Base konversi nya..
Maka untuk hasil response nya bisa kita lihat seperti pada gambar diatas..
Konversi Time Series kedalam bahasa PHP
Untuk integrasi kedalam bahasa PHP nya, seperti biasa kita akan menggunakan PHP cURL seperti pada contoh berikut:
.... public function timeSeries($start_date, $end_date, $symbols, $base) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.exchangerate.host/timeseries?start_date=' . $start_date . '&end_date=' . $end_date . '&symbols=' . $symbols . '&base=' . $base, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $response = curl_exec($curl); curl_close($curl); $data = json_decode($response, true); return $data; } ....
Diatas kita membuat sebuah method PHP dengan nama timeSeries, yang mana pada method tersebut kita mempassing 4 buah parameter..
Gimana, mudah kan???
Support Us
Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid
Terima kasih..