Cek Bilangan Terbatas atau Enggak dengan isFinite() di JavaScript

Cek Bilangan Terbatas atau Enggak dengan isFinite() di JavaScript
Photo by Ivan Slade / Unsplash

Ketika kita bekerja dengan angka di JavaScript, ada kalanya kita perlu mengecek apakah suatu nilai adalah bilangan terbatas atau tidak. Di sinilah isFinite() jadi penyelamat!

isFinite() digunakan untuk memeriksa apakah suatu nilai adalah bilangan finite (terbatas), alias bukan Infinity, -Infinity, atau NaN. Dengan menggunakan isFinite(), kita bisa menghindari error dalam perhitungan yang melibatkan angka besar atau operasi tak valid.

Yuk, kita bahas gimana cara pakai isFinite() dan kenapa metode ini penting!

Apa Itu isFinite()?

isFinite() adalah fungsi bawaan JavaScript yang digunakan untuk memeriksa apakah suatu nilai adalah bilangan terbatas.

Sintaks Dasar

isFinite(nilai);

Return Value:

  • true → Jika nilai bukan Infinity, -Infinity, atau NaN.
  • false → Jika nilai adalah Infinity, -Infinity, atau NaN.

Contoh Penggunaan isFinite()

1. Mengecek Angka Normal

Jika angka adalah bilangan biasa (finite), maka hasilnya true.

console.log(isFinite(100));  // true
console.log(isFinite(-50));  // true
console.log(isFinite(3.14)); // true
console.log(isFinite(0));    // true

Semua angka ini adalah bilangan finite, jadi isFinite() mengembalikan true.

2. Mengecek Infinity dan -Infinity

console.log(isFinite(Infinity));  // false
console.log(isFinite(-Infinity)); // false

Karena Infinity dan -Infinity adalah bilangan tak terbatas, isFinite() mengembalikan false.

3. Mengecek NaN

NaN (Not-a-Number) juga dianggap bukan bilangan finite.

console.log(isFinite(NaN)); // false

Karena NaN bukan bilangan yang valid, isFinite() mengembalikan false.

4. Mengecek Hasil Perhitungan yang Tidak Valid

Kadang operasi matematika bisa menghasilkan Infinity atau NaN. Misalnya:

console.log(isFinite(1 / 0));  // false (karena hasilnya Infinity)
console.log(isFinite(0 / 0));  // false (karena hasilnya NaN)
console.log(isFinite(100 / 5)); // true (karena hasilnya 20, angka finite)

Hasil pembagian valid (100 / 5) dianggap finite, tapi pembagian oleh nol menghasilkan Infinity atau NaN, sehingga dianggap bukan finite.

Bedanya isFinite() dan Number.isFinite()

Ada dua versi fungsi yang bisa dipakai:

  1. isFinite() → Secara otomatis mengonversi tipe data sebelum melakukan pengecekan.
  2. Number.isFinite()Tidak mengonversi tipe data dan hanya mengembalikan true jika input benar-benar number.

Perbandingan isFinite() vs Number.isFinite()

console.log(isFinite("100"));      // true (karena dikonversi ke angka)
console.log(Number.isFinite("100"));// false (karena string tidak dianggap angka)

console.log(isFinite(true));       // true (karena `true` = 1)
console.log(Number.isFinite(true));// false (karena `true` bukan number)

Gunakan Number.isFinite() jika ingin pengecekan yang lebih ketat terhadap tipe data.

Studi Kasus Penggunaan isFinite()

1. Validasi Input Pengguna

Misalnya kita membuat fungsi yang hanya menerima angka finite sebagai input.

function validasiInput(n) {
  if (isFinite(n)) {
    console.log(`${n} adalah bilangan terbatas.`);
  } else {
    console.log(`${n} bukan bilangan yang valid.`);
  }
}

validasiInput(50);         // 50 adalah bilangan terbatas.
validasiInput(Infinity);   // Infinity bukan bilangan yang valid.
validasiInput("abc");      // abc bukan bilangan yang valid.

Membantu mencegah error akibat input tidak valid.

2. Mencegah Error dalam Perhitungan

Misalnya kita membuat fungsi untuk membagi dua angka, tapi harus memastikan hasilnya bukan Infinity.

function amanDibagi(a, b) {
  let hasil = a / b;
  return isFinite(hasil) ? hasil : "Hasil tidak valid!";
}

console.log(amanDibagi(10, 2));  // 5
console.log(amanDibagi(10, 0));  // Hasil tidak valid!

Menghindari pembagian oleh nol yang menghasilkan Infinity.

3. Cek Data dalam Array

Misalnya kita punya array angka dan mau mencari angka yang finite saja.

let data = [100, Infinity, 50, NaN, -200];

let angkaValid = data.filter(num => isFinite(num));

console.log(angkaValid);

Output:

[100, 50, -200]

Kita bisa menyaring angka valid dan membuang Infinity serta NaN.

Kesimpulan

  • isFinite() digunakan buat mengecek apakah suatu nilai adalah bilangan finite (terbatas).
  • Mengembalikan true untuk angka biasa, dan false untuk Infinity, -Infinity, atau NaN.
  • Bisa dipakai untuk validasi input angka, menghindari error perhitungan, dan memfilter angka valid dalam array.
  • Gunakan Number.isFinite() jika ingin validasi yang lebih ketat tanpa konversi tipe data.

Jadi, kalau kamu butuh cek apakah suatu angka valid dan terbatas, pakai isFinite() biar lebih aman!