Cek Bilangan Terbatas atau Enggak dengan isFinite() di JavaScript
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 bukanInfinity
,-Infinity
, atauNaN
.false
→ Jika nilai adalahInfinity
,-Infinity
, atauNaN
.
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:
isFinite()
→ Secara otomatis mengonversi tipe data sebelum melakukan pengecekan.Number.isFinite()
→ Tidak mengonversi tipe data dan hanya mengembalikantrue
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, danfalse
untukInfinity
,-Infinity
, atauNaN
. - 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!