JavaScript memiliki 2 hasil operasi matematis yang 'bukan' berupa angka, yakni NaN dan Infinity. Di dalam tutorial JavaScript kali ini kita akan membahas tentang keduanya dan apa saja operasi yang menghasilkan kedua nilai ini. Kita akan membahas tentang Pengertian Hasil Operasi Matematis NaN dan Infinity di dalam JavaScript.
Pengertian NaN dan Infinity dalam JavaScript
NaN dan Infinity adalah dua hasil perhitungan matematis yang digunakan JavaScript untuk menampung nilai yang bukan angka.
Operasi matematika yang hasilnya 'tidak terdefinisi', tidak akan dianggap error di dalam JavaScript. Misalnya operasi pembagian sebuah angka dengan angka 0, atau hasil dari akar kuadrat nilai negatif. Di dalam JavaScript, operasi seperti ini diselesaikan dengan nilai NaN dan Infinity.
Perhitungan yang menghasilkan nilai Infinity
Hasil Infinity akan di dapat jika kita melakukan salah satu operasi di bawah ini:
- Jika sebuah angka melewati nilai maksimum angka yang bisa ditampung di dalam JavaScript (disebut juga dengan istilah: overflow).
- Jika sebuah angka lebih besar dari angka negatif yang bisa ditampung (negative overflow).
- Melakukan operasi aritmatika dengan infinity (misal: a=1 + infinity)
- Melakukan operasi pembagian dengan nilai 0 (division by zero)
Nilai Infinity di dalam JavaScript dibedakan menjadi 2, yakni infinity positif dan infinity negatif. Infinity positif di dapat jika angka yang dihasilkan lebih besar dari angka positif yang dapat ditampung. Infinity negatif di dapat jika angka yang dihasilkan lebih negatif dari angka negatif yang dapat ditampung (bukan nilai paling kecil).
Jika angka hasil operasi sangat kecil, atau disebut dengan underflow, JavaScript akan menampilkannya dengan angka 0.
Perhitungan yang menghasilkan nilai NaN
Nilai NaN (singkatan dari Not a Number) akan di dapat jika melakukan operasi dibawah ini:
- Pembagian 0 dengan 0
- Pembagian infinity dengan infinity
- Akar kuadrat dari nilai negatif
- Operasi aritmatika dengan nilai yang bukan angka (dan tidak bisa dikonversi menjadi angka).
Contoh Perhitungan NaN dan Infinity
Berikut adalah contoh program JavaScript yang akan menghasilkan nilai Infinity dan NaN:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Belajar JavaScript</title>  <script>   a = 5;   b = 7;   c = b / 0;   console.log(c); // Hasil: Infinity (division by zero)   d = 12 / 0;   console.log(d); // Hasil: Infinity (division by zero)   e = 1 + Math.pow(10,309);   console.log(e); // Hasil: Infinity (overflow)   f = -Math.pow(10,309) - 1;   console.log(f); // Hasil: -Infinity (negative infinity)   g = b + e;   console.log(g); // Hasil: Infinity (karena e dan b infinity)   h = 0/0;   console.log(h); // Hasil: NaN   i = Math.sqrt(-25);   console.log(i); // Hasil: NaN (akar kuadrat negatif)   j = c / d   console.log(j); // Hasil: NaN (c dan d sama-sama bernilai infinity)  </script> </head> <body> <h1>Belajar JavaScript</h1> <p> Saya sedang belajar pengertian NaN dan Infinity JavaScript di duniailkom.com </p> </div> </body> </html>
Di dalam contoh kode JavaScript diatas, saya melakukan beberapa perhitungan matematis yang akan menghasilkan nilai NaN dan Infinity. Untuk perhitungan variabel e dan i, saya menggunakan objek Math. Penjelasan tentang objek Math dan juga method-method lain yang ada pada tipe number di dalam JavaScript akan kita bahas pada tutorial lainnya: Mengenal Konstanta dan Method (fungsi) dari Objek Math.
Seperti yang telah dibahas pada tutorial Jenis dan Pengertian Tipe Data Dalam JavaScript bahwa JavaScript memiliki fungsi yang bisa digunakan untuk proses perhitungan atau untuk menampilkan tipe data, termasuk tipe data angka. Fungsi (atau lebih tepatnya method) untuk tipe data angka akan kita bahas pada tutorial berikutnya: Mengenal Method Objek Angka (Number) dalam JavaScipt.
Bisa ga kita melakukan kalkulasi dengan nilai infinity itu sendiri?
Ex : var c = infinity * 5
Kalau pertanyaannya apakah bisa atau tidak, jawabannya: bisa, dan hasilnya adalah infinity juga. Mungkin aldy bisa mencobanya sendiri agar lebih paham :)
Oke, terimakasih
bisa ga nilai infinity itu diganti dengan 0. ???
Maksudnya agar perhitungan yang menghasilkan infinity bisa di ganti dengan 0 ya?
untuk hal ini Candra bisa membuat alur logika IF, atau menggunakan struktur Try-Catch, yakni jika hasil sebuah perhitungan adalah infinity, maka ganti isi variabelnya dengan 0.
ohh iya kang,.. thanks ya. jadi pake IF(!isFinite(variable))
Math.pow(10,309) <ini apaan ya gan?
Itu untuk membuat pangkat gan, Math.pow(10,309) = 10 pangkat 309, hasilnya tentu sangat besar dan tidak tertampung lagi di variabel.
Pembahasannya ada di Tutorial JavaScript: Mengenal Method Objek Angka (Number) JavaScript
Aku suka banget sama DuniaIlkom.. Tetap terus maju & sukses yaa..