Bahasa
English English Vietnamese (Tiếng Việt) Vietnamese (Tiếng Việt) Chinese (简体中文) Chinese (简体中文) Portuguese (Brazil) (Português do Brasil) Portuguese (Brazil) (Português do Brasil) Spanish (Español) Spanish (Español) Indonesian (Bahasa Indonesia) Indonesian (Bahasa Indonesia)
Tentang alat ini Kalkulator Lakukan perhitungan cepat dengan mode standar dan ilmiah. Mendukung input keyboard, riwayat perhitungan, dan dapat digunakan di semua perangkat. Buka
2026-05-21 23:25:00 5 menit baca

Mengapa kalkulator menampilkan 0,1 + 0,2 = 0,30000000000000004

Ketik 0,1 + 0,2 dan harapkan hasilnya 0,3 — tetapi kalkulator menampilkan 0,30000000000000004. Inilah alasan biner spesifik yang membuat hasil ini mengejutkan hampir semua orang.

Ketik 0.1 + 0.2 pada kalkulator di atas dan Anda akan melihat 0.30000000000000004 alih-alih angka rapi 0.3 yang Anda harapkan. Kalkulator ini tidak rusak — ia menampilkan hasil tepat dari sebuah operasi aritmetika biner tertentu. Memahami masalah tersebut hanya butuh kurang dari lima menit dan akan mengubah cara Anda membaca setiap hasil desimal dari kalkulator digital mana pun.

Mengapa 0,1 tidak dapat disimpan secara tepat dalam biner

Setiap angka di dalam komputer disimpan dalam format biner — basis 2, hanya menggunakan digit 0 dan 1. Pecahan yang terlihat sederhana dalam desimal (basis 10) seringkali menjadi pecahan berulang tak terhingga dalam biner, persis seperti 1 ÷ 3 = 0,3333… yang berulang selamanya dalam desimal.

Angka desimal 0,1 adalah salah satu pecahan seperti itu. Dalam biner, nilainya adalah 0.0001100110011001100110011… — sebuah pola yang berulang tanpa henti. Komputer yang menggunakan standar IEEE 754 double-precision (format yang digunakan oleh JavaScript, dan karenanya oleh setiap kalkulator berbasis browser) menyimpan angka dalam tepat 64 bit. 64 bit tersebut tidak dapat menampung deretan digit tak terhingga, sehingga nilainya dibulatkan ke angka terdekat yang dapat direpresentasikan. Hasil pembulatannya bukan tepat 0,1; melainkan:

0.1000000000000000055511151231257827021181583404541015625

Hal yang sama terjadi pada 0,2. Representasi binernya juga merupakan pecahan berulang tak terhingga, dan setelah dibulatkan menjadi:

0.200000000000000011102230246251565404236316680908203125

Apa yang terjadi ketika kedua nilai yang telah dibulatkan tersebut dijumlahkan

Ketika kalkulator menjumlahkan dua representasi yang tidak presisi tersebut, kesalahan-kesalahan kecil itu tidak saling menghapus — melainkan saling bertambah. Penjumlahan menghasilkan:

0.3000000000000000444089209850062616169452667236328125

Angka tersebut, setelah dibulatkan ke float 64-bit terdekat, menjadi 0.30000000000000004. Angka tambahan 4 pada posisi desimal ke-tujuh belas bukan merupakan kesalahan pembulatan oleh kalkulator — melainkan hasil matematis yang benar dari penjumlahan dua aproksimasi biner yang tidak presisi sesuai dengan standar IEEE 754. Setiap perangkat, bahasa pemrograman, dan browser yang mengikuti standar yang sama menghasilkan jawaban yang sama.

Diagram yang menunjukkan bagaimana 0,1 dan 0,2 disimpan sebagai pecahan biner berulang dan penjumlahannya menghasilkan 0,30000000000000004

Mengapa kalkulator ini menampilkan 0,30000000000000004 dan bukan angka yang lebih bersih

Kalkulator di atas menggunakan new Function() milik JavaScript untuk mengevaluasi ekspresi Anda, yang berarti ia bergantung langsung pada aritmetika floating-point 64-bit bawaan mesin JavaScript. Tidak ada lapisan pembulatan tersembunyi yang merapikan output.

Secara internal, kode tersebut memang membulatkan hasil ke 10 tempat desimal untuk sebagian besar angka — Math.round(result * 1e10) / 1e10 — tetapi 0.30000000000000004 sudah memiliki digit tak terduga pertamanya pada posisi desimal ke-tujuh belas, jauh melampaui ambang pembulatan tersebut. Sehingga hasil floating-point yang sebenarnya lolos tanpa perubahan.

Beberapa kalkulator menyembunyikan hal ini dengan membulatkan secara agresif ke 12 atau 13 angka signifikan sebelum ditampilkan. Pendekatan tersebut menghasilkan tampilan 0.3 yang lebih ramah, tetapi menyembunyikan presisi yang mungkin benar-benar dibutuhkan dalam perhitungan ilmiah atau keuangan. Pertimbangannya nyata: semakin banyak pembulatan tampilan berarti semakin sedikit output yang mengejutkan, tetapi juga semakin sedikit digit yang terlihat.

Apakah ini memengaruhi setiap perhitungan desimal?

Tidak — dan itulah nuansa kuncinya. Apakah suatu kesalahan muncul atau tidak bergantung pada apakah hasilnya dapat direpresentasikan secara tepat dalam biner 64-bit. Beberapa penjumlahan kebetulan dibulatkan dengan sempurna:

  • 0,1 + 0,4 = 0,5 — 0,5 dapat direpresentasikan secara tepat dalam biner (0.1 dalam basis 2), sehingga kesalahan-kesalahan saling menghapus dan jawaban bersih pun muncul.
  • 0,25 + 0,25 = 0,5 — alasan yang sama: kedua nilai merupakan pangkat 2 yang tepat.
  • 0,1 + 0,2 = 0,30000000000000004 — baik 0,1 maupun 0,2 tidak dapat direpresentasikan secara tepat, dan kesalahan gabungannya cukup besar untuk bertahan dari pembulatan tampilan.

Polanya bukan "kalkulator salah tentang desimal." Lebih tepatnya: kalkulator tepat dalam hal pecahan biner, dan sebagian besar desimal sehari-hari bukanlah pecahan biner.

Apa yang harus dilakukan ketika presisi menjadi penting

  • Untuk aritmetika sehari-hari — kesalahannya berada di posisi desimal ke-enam belas atau ke-tujuh belas dan sama sekali tidak relevan untuk belanja, memasak, atau penganggaran.
  • Untuk perhitungan keuangan — gunakan satuan sen penuh daripada pecahan dolar jika memungkinkan, atau gunakan perangkat lunak akuntansi khusus yang menerapkan aritmetika fixed-point.
  • Untuk rekayasa atau sains — perhatikan batas presisi (sekitar 15–17 digit signifikan untuk IEEE 754 double precision) dan tentukan apakah hal itu berpengaruh pada toleransi pengukuran Anda.
  • Untuk mengonfirmasi kecurigaan — kurangi nilai yang diharapkan: 0.1 + 0.2 - 0.3 pada kalkulator di atas menghasilkan kira-kira 5.55e-17, ukuran sebenarnya dari kesalahan tersebut.
Coba sendiri: masukkan 0.1 + 0.2 - 0.3 pada kalkulator di atas. Hasilnya bukan nol — melainkan sekitar 5.55e-17, selisih tepat antara aproksimasi yang tersimpan dan nilai sebenarnya. Angka kecil itulah yang diwakili oleh angka tambahan 4 dalam 0,30000000000000004.
Tidak menemukan? Buat alat sendiri dengan AI
Mulai ketik untuk mencari...
Mencari...
Tidak ada hasil yang ditemukan
Coba gunakan kata kunci yang berbeda