Back to blog
Frontend

Bug 0.1 + 0.2 = 0.30000000004: Kenapa Kalkulator JavaScript Bodoh?

Coba buka inspect element browser-mu, lalu ketik 0.1 + 0.2. Hasilnya bukan 0.3! Kalau kamu bikin aplikasi kasir tanpa tahu ini, perusahaanmu bisa bangkrut.

super admin·16 Juli 2026·2 min read
Bug 0.1 + 0.2 = 0.30000000004: Kenapa Kalkulator JavaScript Bodoh?
Article Content

Bayangin Kamu Bikin Aplikasi Kasir...

Bayangin Budi bikin aplikasi Point of Sales (Kasir) pakai JavaScript. Ada pelanggan beli permen seharga $0.1 dan kantong plastik seharga $0.2. Secara logika manusia, total tagihannya pasti $0.3, kan?

Tapi saat Budi nge-klik tombol bayar, layar aplikasinya malah nampilin tagihan sebesar: $0.30000000000000004. Pelanggan bingung, Budi panik. Kok bisa bahasa pemrograman secanggih JavaScript bodoh banget soal matematika anak SD?

Masalahnya: Komputer Cuma Paham Angka 0 dan 1 (Biner)

Komputer itu secara fisik tidak mengerti angka desimal (basis 10) seperti yang manusia pakai. Komputer hanya menggunakan saklar listrik nyala (1) dan mati (0) alias Sistem Biner (Basis 2).

Sama seperti manusia yang tidak bisa membagi angka 10 dengan 3 secara pas (hasilnya 3.33333... tanpa ujung), Sistem biner komputer juga tidak bisa membagi angka 0.1 secara pas! Angka 0.1 di otak komputer berubah menjadi pecahan biner berulang yang tidak ada ujungnya (0.0001100110011...). Karena memori RAM terbatas, komputer akhirnya "memotong" ujung angka itu secara paksa, sehingga menghasilkan ketidakakuratan (Rounding Error).

Nah, Di Sinilah Solusi 'Integer Math' Masuk!

Masalah Floating-Point Math ini terjadi di HAMPIR SEMUA bahasa pemrograman (Python, Java, C++). Untuk mencegah aplikasi keuanganmu bangkrut karena salah hitung sen, Senior Developer selalu memakai trik ini:

  • Jangan Pernah Menyimpan Uang dalam Desimal! Ubah semuanya ke bentuk bilangan bulat (Integer).
  • Jika harga aslinya $0.1, kalikan 100 dulu di latar belakang agar menjadi angka bulat 10 sen. Angka $0.2 dikali 100 menjadi 20 sen.
  • Tambahkan angka bulatnya: 10 + 20 = 30 sen. Komputer SANGAT JAGO menghitung angka bulat tanpa salah.
  • Saat mau ditampilkan ke layar pelanggan, baru dibagi 100 lagi: 30 / 100 = 0.3. Hasilnya sempurna!

Intinya: Aplikasi perbankan dan e-commerce raksasa tidak pernah menggunakan angka desimal di database mereka. Mereka selalu menyimpan nominal uang dalam bentuk satuan terkecil (sen/rupiah murni) untuk menghindari bencana matematis komputer!

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates