rioastamal / terbilang
Sebuah pustaka untuk menterjemahkan angka ke dalam bilangan Bahasa Indonesia
Installs: 1 767
Dependents: 0
Suggesters: 0
Security: 0
Stars: 46
Watchers: 3
Forks: 4
Open Issues: 1
Requires
- php: ^5.5|^7.0
- ext-bcmath: *
Requires (Dev)
- phpunit/phpunit: ^5.7|^6.0
This package is auto-updated.
Last update: 2024-10-24 23:27:32 UTC
README
Tentang
Terbilang merupakan sebuah pustaka sederhana untuk menterjemahkan angka kedalam bentuk bilangan dalam Bahasa Indonesia. Terbilang dapat menterjemahkan angka hingga satuan septiliun atau 1.0E+32 (32 nol). Terbilang menggunakan extension bcmath untuk memproses angka yang besar sehingga perhitungan dapat dilakukan melebihi maksimum PHP_INT_MAX
.
Berikut contoh singkat penggunaan Terbilang.
<?php use RioAstamal\AngkaTerbilang\Terbilang; echo Terbilang::create()->terbilang('5678'); // lima ribu enam ratus tujuh puluh delapan echo Terbilang::create()->terbilang('5000,000,000,000,000,000,000,000,000.0021'); // lima ribu septiliun koma nol nol dua satu
Kebutuhan
- PHP >= 5.5
- bcmath extension
Instalasi
Untuk instalasi Terbilang dapat digunakan composer atau melalui cara manual yaitu require
.
Composer
Pastikan composer
sudah terinstal pada sistem anda. Lalu jalankan perintah berikut untuk menginstal Terbilang.
$ composer require rioastamal/terbilang -vvv
Instalasi Manual
Clone project Terbilang dari Github.
$ git clone git@github.com:rioastamal/terbilang.git
$ cd terbilang
Pustaka Terbilang hanya terdiri dari sebuah file jadi cukup menggunakan require
pada file Terbilang.php dan Terbilang sudah siap digunakan.
<?php require '/path/ke/terbilang/src/Terbilang.php';
Instalasi bcmath
Extension bcmath secara default sudah terinstall dihampir semua sistem seperti pada MacOS X (via homebrew) dan Windows. Untuk mengeceknya jalankan perintah berikut pada terminal.
$ php -m|grep bcmath
bcmath
Jika bcmath muncul maka extension ini sudah terinstall di sistem. Jika belum terinstall gunakan perintah berikut untuk menginstall.
Instalasi pada Ubuntu:
$ sudo apt-get install php-bcmath
Contoh
Berikut beberapa contoh penggunaan pustaka Terbilang dan outputnya. Argumen yang diberikan pada method terbilang() harus berupa string angka. Untuk contoh lebih banyak anda dapat melihat pada file tests/TerbilangTest.php.
<?php use RioAstamal\AngkaTerbilang\Terbilang; $terbilang = new Terbilang(); $terbilang->terbilang('5'); // lima $terbilang->terbilang('15'); // lima belas $terbilang->terbilang('99'); // sembilan puluh sembilan $terbilang->terbilang('787654321'); // tujuh ratus delapan puluh tujuh juta enam ratus lima puluh empat ribu tiga ratus dua puluh satu $terbilang->terbilang('11000000001000222'); // sebelas ribu triliun satu juta dua ratus dua puluh dua $terbilang->terbilang('1,000,000,000,000,000,000,000,000.0001'); // satu septiliun koma nol nol nol satu
Terbilang juga mendukung penggunakan pemisah ribuan.
$terbilang->terbilang('3,900'); // tiga ribu sembilan ratus $terbilang->terbilang('1,011,000'); // satu juta sebelas ribu
Penggunaan desimal (pemisah titik) pada angka.
$terbilang->terbilang('0.005'); // nol koma nol nol lima $terbilang->terbilang('1,000,000.025'); // satu juta koma nol dua lima
Penggunaan desimal (pemisah koma) pada angka. Ini adalah penulisan yang lazim digunakan di Indonesia.
// Ubah pemisah desimal ke ',' $terbilang->pemisahDesimal = ','; $terbilang->terbilang('0,005'); // nol koma nol nol lima $terbilang->terbilang('1.000.000,025'); // satu juta koma nol dua lima
Shortcut t()
untuk method terbilang()
.
$terbilang->t('1,200,000'); // satu juta dua ratus
Unit Test
Untuk menjalankan unit test disarankan menggunakan phpunit yang berada pada vendor direktori. Ini adalah phpunit yang diinstall melalui composer.
$ ./vendor/bin/phpunit --debug
PHPUnit 6.5.8 by Sebastian Bergmann and contributors.
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testStaticInstance' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testStaticInstance' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangKurangDari12' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangKurangDari12' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangBelasan' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangBelasan' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangPuluhan' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangPuluhan' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangRatusan' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangRatusan' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangRibuan' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangRibuan' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangJutaan' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangJutaan' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangMilyaran' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangMilyaran' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangTriliunan' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangTriliunan' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangSeptiliun' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangSeptiliun' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangDenganKoma' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testTerbilangDenganKoma' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testAngkaKomaGanda' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testAngkaKomaGanda' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testPemisahRibuanDenganBeberapaPemisah' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testPemisahRibuanDenganBeberapaPemisah' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testPemisahDesimalBukanTitik' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testPemisahDesimalBukanTitik' ended
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testShortcutMethod' started
Test 'RioAstamal\AngkaTerbilang\Test\TerbilangTest::testShortcutMethod' ended
Time: 174 ms, Memory: 4.00MB
Penulis
Pustaka Terbilang ditulis oleh Rio Astamal rio@rioastamal.net
Lisensi
Pustaka ini menggunakan lisensi MIT http://opensource.org/licenses/MIT.
Alternatif
Terbilang menggunakan teknik bagi, modulus, dan rekursif. Terdapat beberapa pustaka sejenis dengan ini yang menggunakan teknik lain.