Cara mudah memformat angka menjadi string dengan ejaan

Fungsi untuk memformat angka php dan javascript

Dalam membangun sebuah program tentunya kita membutuhkan banyak sekali fungsi untuk mengelolah data yang tersimpan. Kebiasaan kita dalam mengelolah data biasanya tidak jauh-jauh dari sistem cRUD ( Create Input Delete ) dan operasi matematika seperti penjumlahan, pengurangan, serta perkalian.

Dalam sebuah manajemen keuangan, sistem data di tampilkan dalam bentuk angka. Jika jumlah angka sudah terlalu banyak, pasti kita akan mengalami kesulitan membaca angka tersebut. Oleh sebab itu di butuhkan sebuah fungsi khusus untuk memformat angka menjadi string dengan kalimat ejaan sesuai jumlah nol nya.

Misalnya, dalam sebuah nilai angka mengandung tiga digit bilangan misal 1000. Terus kita ingin menampilkan angka tersebut menjadi string ejaan contoh 1 ribu. Dengan demikian pekerjaan akan menjadi lebih kompleks, waktu yang di butuhkan untuk memahami angka lebih riingkas.

Selain itu dengan menggunakan string ini akan lebih menghemat space. Kalau pada kalkulator jika terdapat banyak nol biasanya kalkulator akan menghasilkan nilai E. Namun pada sebuah aplikasi yang di buat, bayangkann saja jika space yang di sediakan untuk menempatkan nilai angka hanya sedikit?

Jika jumlah digit bilangan angka sangat banyak, pastinya membutuhkan lebih banyak area lagi agar angka tersebut bisa muat. Sementara itu alternatif lainya dengan mengecilkan ukuran font agar angka bisa muat. Tapi cara ini cukup ribet, karena kita tidak pernah tahu berapa ukuran suatu elemen.

Maka dari itu fungsi di bawah ini mungkin akan membantu anda. Dengan fungsi ini, sebuah nomor atau digit bisa di format menjadi sebuah string. Di bawah ini saya tuliskan dua jenis fungsi, pertama dalam bentuk javascript kedua dalam bentuk php.

Silakan di ambil jika membutuhkan, gunakan bagian mana yang perlu saja.

// JavaScript
function formatNumber(num) {
  if (num >= 1000000000) {
    return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + ' milyar';
  }
  if (num >= 1000000) {
    return (num / 1000000).toFixed(1).replace(/\.0$/, '') + ' juta';
  }
  if (num >= 1000) {
    return (num / 1000).toFixed(1).replace(/\.0$/, '') + ' ribu';
  }
  if (num >= 1000000000) {
    return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + ' triliun';
  }
  return num;
}

console.log(formatNumber(1000000)); // "1 juta"
console.log(formatNumber(10000000)); // "10 juta"
console.log(formatNumber(10000)); // "10 ribu"
console.log(formatNumber(100)); // "100"
console.log(formatNumber(1000000000000)); // "1 triliun"

// PHP
function formatNumber($num) {
  if ($num >= 1000000000) {
    return number_format($num / 1000000000, 1, '.', '') . ' milyar';
  }
  if ($num >= 1000000) {
    return number_format($num / 1000000, 1, '.', '') . ' juta';
  }
  if ($num >= 1000) {
    return number_format($num / 1000, 1, '.', '') . ' ribu';
  }
  if ($num >= 1000000000) {
    return number_format($num / 1000000000, 1, '.', '') . ' triliun';
  }
  return $num;
}

echo formatNumber(1000000); // "1 juta"
echo formatNumber(10000000); // "10 juta"
echo formatNumber(10000); // "10 ribu"
echo formatNumber(100); // "100"
echo formatNumber(1000000000000); // "1 triliun"


Prinsip kerja dari statemen kode di atas adalah dengan mengecek apakah nilai yang dimasukkan lebih besar atau sama dengan batas angka tertentu, kemudian mengembalikan string dengan ejaan "milyar", "juta", "ribu", atau "triliun" sesuai dengan kondisi yang terpenuhi, atau mengembalikan nilainya sendiri jika tidak memenuhi kriteria tersebut.

Pada kode JavaScript, statemen if digunakan untuk mengecek kondisi, dan fungsi toFixed() digunakan untuk mengubah angka menjadi string dengan jumlah desimal yang ditentukan. Fungsi replace() kemudian digunakan untuk menghapus karakter "0" pada bagian desimal jika tidak diperlukan. Pada kode PHP, fungsi number_format() digunakan untuk mengubah angka menjadi string dengan jumlah desimal yang ditentukan dan menggunakan pemisah desimal yang ditentukan.

Contoh kode di atas menggunakan sistem ejaan Indonesia, jadi hasilnya mungkin berbeda dengan sistem ejaan yang digunakan di negara lain. Jika Anda ingin menggunakan sistem ejaan yang berbeda, Anda dapat mengubah ejaan yang digunakan pada kode di atas sesuai kebutuhan.

RyanID
RyanID Saya aslinya tertarik pada teknologi elekronika, tapi karena kurang di dukung ortu, akhirnya pindah ke coding. Saat ini bekerja sebagai fullstack dev di Netzku.com