blog /

Tips Pemrograman: Awas Problem Perhitungan Pecahan JavaScript

Tips Pemrograman: Awas Problem Perhitungan Pecahan JavaScript
Pada artikel tips pemrograman kali ini kami akan share problem "bugs" tersembunyi yang mungkin tidak banyak diketahui pada perhitungan pecahan di bahasa pemrograman JavaScript.

Kami akan coba share juga solusinya. Terutama jika pembaca adalah seorang software programmer atau pengembang aplikasi web. Sebaiknya ketahui problem masalah ini.

Sekilas Tentang JavaScript

Untuk pembaca awam yang belum tahu. JavaScript itu apa? Seberapa penting? Kami akan sekilas jelaskan berikut ini.

Hampir semua web browser modern seperti FireFox, Internet Explorer, Chrome, Opera mendukung JavaScript. Sebetulnya masih ada satu lagi scripting language di web browser yang cukup terkenal: VBScript. Namun VBScript punya keterbatasan hanya bisa dijalankan di browser Internet Explorer.

Dengan keterbatasan ini tidaklah heran jika JavaScript menjadi pilihan utama para pengembang aplikasi web. Sebagian besar website di dunia menggunakan JavaScript!

Problem Perhitungan Pecahan JavaScript

Berikut contoh penjumlahan pecahan sederhana. Jika kita hitung dengan kalkulator ataupun Microsoft Excel:

339491.55 + 678983.1

Hasilnya:

1018474.65

Sekarang kita coba hitung dengan JavaScript. Berikut contoh programnya:

<script type='text/javascript'>

var a = 339491.55;

var b = 678983.1;

alert(a + b);

</script>

Seharusnya hasilnya sama dengan perhitungan manual diatas tadi. Namun jika kita jalankan:

tips pemrograman: problem javascript

Hasilnya beda!

Jika kita membangun aplikasi yang butuh perhitungan presisi tinggi. Atau kita lakukan perhitungan yang lebih kompleks lagi. Contohnya perhitungan di software akuntansi atau sistem keuangan. Maka kesalahannya akan sangat terlihat. Jika sudah problem seperti ini. Biasanya programmer pembuat aplikasi yang pertama kali disalahkan, padahal ini murni 100% kesalahan "bugs" bahasa pemrograman :)

Kok Bisa Problem?

Penjelasan teknis yang sangat panjang bisa kita temukan di article What Every Computer Scientist Should Know About Float-Point Arithmetic.

Jawaban singkatnya: "Komputer Memang Punya Batasan!"
 
 
Solusinya

Untuk hasil perhitungan pecahan yang lebih presisi di JavaScript, tidak ada pilihan kita harus gunakan bantuan modul/library. Salah satu diantaranya bisa menggunakan library big.js. Kita bisa download source programnya (open source) dari:

https://github.com/MikeMcl/big.js/

Beberapa fungsi dasar matematika yang umum digunakan (selengkapnya lihat di dokumentasi):

  • Pejumlahan : plus()
  • Pengurangan : minus()
  • Perkalian : times()
  • Pembagian : div()

Kita coba perbaiki masalah diatas. Berikut contoh program JavaScript dengan menggunakan library big.js:

<script type='text/javascript' src='big.js'></script>

<script type='text/javascript'>

var a = Big(339491.55);

var b = Big(678983.1);

alert(a.plus(b));

</script>

Dan jika kita jalankan:

tips pemrograman: problem javascript

Hasilnya benar!
 
 
Penutup

Cukup banyak software programmer dan pengembang aplikasi web yang belum tahu adanya masalah "bugs" ini. Jika artikel ini berguna, jangan lupa untuk di share agar dapat diketahui secara luas dan semoga bisa membantu rekan-rekan programmer lainnya.

Article ini bebas boleh di copy untuk ditampilkan di blog dan website lain. Namun harap cantumkan link sumbernya (website kami).
Lihat juga artikel lainnya:
Tips Pemrograman: Perhitungan Pecahan PHP Juga Bermasalah
Pembuatan Sistem, Integrasi WebService Untuk Tokopedia
Buat Software Lebih Mudah, Produktif Dengan Monitor Tambahan?
comments powered by Disqus