Konversi Angka Menjadi Kata di Laravel

Pelajari cara mudah konversi angka menjadi kata terbilang pada Laravel. Gunakan paket eksternal atau implementasikan sendiri untuk efisiensi maksimal.

Laravel, sebagai salah satu framework PHP yang paling populer, menyediakan berbagai fitur yang memudahkan pengembang dalam mengelola dan memanipulasi data.

Salah satu tugas umum yang sering dihadapi dalam pengembangan aplikasi adalah mengonversi angka menjadi kata terbilang, terutama saat bekerja dengan faktur, kwitansi, atau dokumen keuangan lainnya.

Dalam artikel ini, kita akan menjelaskan cara melakukan konversi angka menjadi kata terbilang pada Laravel.

1. Menggunakan Paket Eksternal

Salah satu cara paling efektif untuk menangani konversi angka menjadi kata terbilang adalah dengan menggunakan paket eksternal.

Laravel memiliki ekosistem yang kaya dengan berbagai paket yang dapat mempermudah tugas pengembangan.

Dalam kasus ini, kita akan menggunakan paket “terbilang” yang telah dikembangkan oleh komunitas Laravel.

2. Instalasi Paket Terbilang

Pertama-tama, buka terminal dan masuk ke direktori proyek Laravel Anda. Jalankan perintah berikut untuk menginstal paket terbilang:

composer require riskihajar/terbilang:^2.0

Composer akan mengunduh dan menginstal paket, serta mengatur autoloading secara otomatis.

3. Add Providers & Aliases

Dalam array $providers tambahkan penyedia layanan untuk paket ini.

Riskihajar\Terbilang\TerbilangServiceProvider::class,

Tambahkan facade paket ini ke array $aliases.

'Terbilang' => Riskihajar\Terbilang\Facades\Terbilang::class,

4. Publish Configuration (Optional)

Jika Anda ingin menyesuaikan konfigurasi, Anda dapat menjalankan perintah berikut untuk mempublikasikan file konfigurasi.

php artisan vendor:publish --provider="Riskihajar\Terbilang\TerbilangServiceProvider"

Ini adalah isi file konfigurasi yang dipublikasikan:

return [
    'output' => [
        'date' => '{DAY} {MONTH} {YEAR}',
        'time' => '{HOUR} {SEPARATOR} {MINUTE} {MINUTE_LABEL} {SECOND} {SECOND_LABEL}',
    ],

    'locale' => 'en',

    'distance' => [
        'type' => \Riskihajar\Terbilang\Enums\DistanceDate::Day,
        'template' => '{YEAR} {MONTH} {DAY} {HOUR} {MINUTE} {SECOND}',
        'hide_zero_value' => true,
        'separator' => ' ',
        'terbilang' => false,
        'show' => [
            'year' => true,
            'month' => true,
            'day' => true,
            'hour' => true,
            'minute' => true,
            'second' => true,
        ],
    ],
];

4. Implementasi dalam Kode Laravel

Setelah instalasi selesai, kita dapat menggunakannya dalam kode Laravel. Contoh sederhana untuk mengonversi angka menjadi kata terbilang adalah sebagai berikut:

Angka Menjadi Kata

Terbilang::make($number, $suffix, $prefix)

jika Anda menyetel lokal ke en

Config::set('terbilang.locale', 'en');
Terbilang::make(1000000); // one million

jika Anda mengatur lokal ke id

Config::set('terbilang.locale', 'id');
Terbilang::make(1000000); // satu juta

Prefix & Suffix

jika Anda menyetel lokal ke en

Terbilang::make(654321, ' dollars');
// six hundred and fifty-four thousand, three hundred and twenty-one dollars

jika Anda mengatur lokal ke id

Terbilang::make(123456, ' rupiah', 'senilai ');
// senilai seratus dua puluh tiga ribu, empat ratus lima puluh enam rupiah

Nomor ke Romawi

Terbilang::roman($number, $lowercase=false)

Terbilang::roman(1234); // MCCXXXIV

Konversi Angka Besar

Terbilang::short($number, $format)

Tersedia tangan pendek : kilo, million, billion, trillion

Nilai bawaan : million

jika Anda menyetel lokal ke en

Terbilang::short(1000000); // 1M

jika Anda menyetel lokal ke id

Terbilang::short(1000000); // 1jt

Datetime

Date Terbilang::date($date, $format='Y-m-d');

$date = date('Y-m-d'); // 2015-03-31
Terbilang::date($date);
// Result : tiga puluh satu maret dua ribu lima belas

Time Terbilang::time($date, $format='h:i:s');

$date = date('h:i:s'); //10:56:30
Terbilang::time($date);
// Result : sepuluh lewat lima puluh enam menit tiga puluh tiga detik

Date Time Terbilang::datetime($date, $format='Y-m-d h:i:s');

$date = date('Y-m-d h:i:s'); // 2015-03-31 10:58:27
Terbilang::datetime($date);
// Result : tiga puluh satu maret dua ribu lima belas pukul sepuluh lewat lima puluh delapan menit dua puluh tujuh detik

Menggunakan Carbon

jika menggunakan karbon, Anda dapat mengabaikan $format

$dt = Carbon\Carbon::now('Asia/Makassar');

$date = Terbilang::date($dt);
$time = Terbilang::time($dt);
$datetime = Terbilang::datetime($dt);

Distance Date

Anda dapat membedakan dua tanggal atau hanya satu tanggal dan secara otomatis dengan metode penggunaan tanggal saat ini Terbilang::distance($start, $end=null, $format=null)

Konfigurasi distance format

'distance' => [
     'type' => 'FULL',
     'format' => '{YEAR} {MONTH} {DAY} {HOUR} {MINUTE} {SECOND}',
     'hide_zero_value' => true,
     'separator' => ' ',
     'terbilang' => false,
     'show' => [
         'year' => true,
         'month' => true,
         'day' => true,
         'hour' => true,
         'minute' => true,
         'second' => true,
     ]
 ],

Contoh Distance

$date1 = date('Y-m-d', strtotime('2017-05-01')); // dateformat must Y-m-d H:i:s
$date2 = date('Y-m-d', strtotime('2017-06-15 09:30:15'));

// this method will diff $date1 with current datetime value for example current datetime : 2017-09-08 15:17:54
Terbilang::period($date1); // Result : 4 months 8 days 15 hours 17 minutes 54 seconds

Terbilang::period($date1, $date2); // Result : 1 months 15 days 9 hours 30 minutes 15 seconds

// if you set locale to id
Terbilang::period($date1, $date2); // Result : 1 bulan 15 hari 9 jam 30 menit 15 detik

// if you set config period.terbilang to true
Terbilang::period($date1, $date2); // Result : satu bulan lima belas hari sembilan jam tiga puluh menit lima belas detik

// if you set config period.type to DAY
Terbilang::period($date1, $date2); // Result : 45 hari

Dengan demikian, Anda dapat mengonversi angka menjadi kata terbilang dalam proyek Laravel Anda dengan cara yang sesuai dengan kebutuhan dan preferensi pengembangan Anda.

Dengan menggunakan paket eksternal atau mengimplementasikan sendiri, tugas ini dapat dilakukan dengan mudah dan efisien.

Sumber: riskihajar

Temukan kisah para pekerja penuh gairah dengan pendekatan tak konvensional, menggabungkan keanehan dan efisiensi dalam produktivitas mereka.

Anda mungkin juga menyukainya
Chat WhatsApp
WhatsApp