Skip to content

Dipantry/rupiah

Repository files navigation

All-in-one Indonesian Rupiah library

Latest Version Packagist Version PHP Version MIT Licensed
run-tests StyleCI

Package Laravel atau Lumen untuk mengkonversi kurs rupiah dengan nilai tukar negara asing berdasarkan data dari Bank Indonesia. Package ini akan membantu Anda untuk mengambil informasi dari API Bank Indonesia. Selain itu, package ini mampu mengambil data bank terbaru berdasarkan website Flip.id.

Fitur

Konversi

  • Mengkonversi nilai tukar rupiah terhadap mata uang asing
  • Mengkonversi nilai tukar mata uang asing terhadap rupiah
  • Mendapatkan data nilai tukar rupiah saat ini

Bank

  • Mengambil data terbaru menggunakan command dan disimpan ke dalam database

Lainnya

  • Mengubah angka rupiah menjadi tulisan Bahasa Indonesia

Instalasi

composer require dipantry/rupiah

Petunjuk Penggunaan

Lumen

Dalam file bootstrap/app.php, uncomment baris berikut

$app->withFacades();
$app->withEloquent();

dan daftarkan service provider dan alias/facade dengan menambahkan kode berikut

$app->register(Dipantry\Rupiah\ServiceProvider::class);

// class_aliases
class_alias(Dipantry\Rupiah\Facade::class, 'Rupiah');

Laravel

Dalam file config/app.php, masukkan baris berikut pada bagian providers

'providers' => [
    ...
    Dipantry\Rupiah\ServiceProvider::class,
],

dan tambahkan baris berikut pada bagian aliases

'aliases' => [
    'Rajaongkir' => Dipantry\Rupiah\Facade::class,
],

Konfigurasi

php artisan vendor:publish --provider="Dipantry\Rupiah\ServiceProvider"

File konfigurasi terletak pada config/rupiah.php

return [
    'table_prefix' => 'Untuk migrasi dan seeding data',
    'timeout' => 'Waktu timeout untuk setiap pemanggilan API',
    'max_retry' => 'Jumlah perulangan yang dilakukan jika terjadi error',
]

Jalankan migrasi

php artisan migrate

Jalankan seeder untuk mengisi data bank

php artisan rupiah:bank

Data Bank

Pengambilan data bank dapat menggunakan command rupiah:bank dan mengakses database dapat menggunakan model Bank yang telah disediakan.

use Dipantry\Rupiah\Models\Bank;

Bank::all();

Data Kurs

Inisiasi Rupiah

\Rupiah::of(10000);

\Rupiah::of(10000)->getValue();
// 10000

Class Rupiah menerima parameter float sebagai value untuk diproses selanjutnya

Nilai Tukar Rupiah

Terdapat 3 macam function untuk mendapatkan nilai tukar

  • exchangeRate() untuk mendapatkan nilai tukar rupiah terhadap mata uang asing pada hari ini atau waktu yang ditentukan sendiri (Tidak bisa digunakan saat bank tutup). Menerima parameter code currency dan tanggal.
use Dipantry\Rupiah\Enums\CurrencyCode;

\Rupiah::exchangeRate('USD');
// Mendapatkan nilai tukar rupiah terhadap USD pada hari ini
// ['buy' => 14000, 'sell' => 14200]

\Rupiah::exchangeRate('USD', '2021-01-01');
// Mendapatkan nilai tukar rupiah terhadap USD pada tanggal 1 Januari 2021
// ['buy' => 14000, 'sell' => 14200]

// atau

\Rupiah::exchangeRate(CurrencyCode::USD);
  • buy() untuk mengubah nilai rupiah menjadi mata uang asing. Menerima parameter code currency. Method ini langsung mengembalikan nilai perkalian dengan value yang telah diinisiasi.
use Dipantry\Rupiah\Enums\CurrencyCode;

$rupiah = \Rupiah::of(10000);
$rupiah->buy(CurrencyCode::USD);
// 0.71
  • sell() untuk mengubah mata uang asing menjadi nilai rupiah. Menerima parameter code currency. Method ini langsung mengembalikan nilai perkalian dengan value yang telah diinisiasi.
use Dipantry\Rupiah\Enums\CurrencyCode;

$rupiah = \Rupiah::of(10000);
$rupiah->sell(CurrencyCode::USD);
// 14200

Terbilang

Method ini mengubah angka menjadi tulisan Bahasa Indonesia. Method ini langsung mengembalikan nilai string.

\Rupiah::of(10000)->toWords();
// Sepuluh Ribu Rupiah

Currency Code

Package ini menyediakan model CurrencyCode yang berisi kode mata uang asing yang dapat digunakan untuk mempermudah penggunaan.
Disarankan untuk menggunakan model ini untuk menghindari kesalahan penulisan kode mata uang asing.

Exception

  • HttpRequestException
    Exception ini didapat apabila terjadi error saat melakukan request ke API Bank Indonesia.
  • InvalidCurrencyCodeException
    Exception ini didapat apabila kode mata uang asing yang dimasukkan tidak valid.

Testing

Jalankan testing dengan menjalankan perintah berikut ini

vendor/bin/phpunit