Tutorial Number JavaScript dan Konversi Data

Created at by Aris Munandar

Dalam JavaScript, tipe data Number adalah salah satu konsep paling fundamental yang harus dipahami sejak awal, karena hampir semua program — mulai dari kalkulasi harga, perhitungan diskon, logika kondisi, hingga manipulasi data backend — pasti berhubungan dengan angka. Pada bagian pertama ini, kita akan membahas seluruh dasar Number JavaScript secara jelas, santai, dan mudah dipahami untuk pemula.

Baca juga: Tutorial String JavaScript Lengkap

Pengertian Number JavaScript

Number JavaScript adalah tipe data yang digunakan untuk merepresentasikan angka, baik itu bilangan bulat (integer) maupun bilangan desimal (float). Tidak seperti bahasa pemrograman lain yang membedakan tipe integer dan float, JavaScript hanya memiliki satu tipe angka: number.

Contohnya:

let umur = 25;          // integer
let harga = 19.99;      // floatCode language: JavaScript (javascript)

Keduanya tetap dianggap sebagai Number.

Kenapa Number Penting dalam Pemrograman?

Mengapa harus belajar Number dari awal?

Karena hampir semua logika program terkait:

  • Menghitung jumlah barang
  • Mengatur skor permainan
  • Menentukan diskon harga
  • Perhitungan timer / waktu
  • Validasi usia
  • Pengolahan statistik

Jika salah memahami cara kerja Number, hasil perhitungan bisa jadi kacau.

Contohnya:

console.log(0.1 + 0.2);Code language: CSS (css)

Output:

0.30000000000000004Code language: CSS (css)

Jadi, penting untuk memahami bagaimana JavaScript menangani angka.

Cara Menggunakan Number JavaScript

Cara menggunakan Number sangat sederhana. Kamu bisa menyimpannya dalam variabel menggunakan let, const, atau var.

let a = 10;
let b = 2.5;
let total = a + b;

console.log(total);Code language: JavaScript (javascript)

Output:

12.5Code language: CSS (css)

Kita bisa melakukan operasi matematika seperti penjumlahan, pengurangan, perkalian, pembagian, dan modulus.

Tipe Number di JavaScript

JavaScript memiliki beberapa bentuk nilai Number:

Integer (bilangan bulat)

let angka = 100;Code language: JavaScript (javascript)

Float (bilangan desimal)

let harga = 19.99;Code language: JavaScript (javascript)

NaN (Not a Number)

Digunakan ketika JavaScript gagal mengonversi nilai menjadi angka.

let x = Number("halo");
console.log(x); // NaNCode language: JavaScript (javascript)

Infinity

Nilai ketika angka melebihi batas maksimum Number JS.

console.log(5 / 0); // InfinityCode language: JavaScript (javascript)

-Infinity

Kebalikannya Infinity:

console.log(-5 / 0); // -InfinityCode language: JavaScript (javascript)

Sifat Unik Number di JavaScript — Floating Point

JavaScript menggunakan standar IEEE 754 untuk menyimpan angka dalam bentuk floating point.

Ini menyebabkan hasil perhitungan desimal menjadi tidak akurat:

console.log(0.1 + 0.2);Code language: CSS (css)

Output:

0.30000000000000004Code language: CSS (css)

Cara mengatasinya (nanti dibahas lebih detail):

let hasil = (0.1 + 0.2).toFixed(2);
console.log(hasil); // "0.30"Code language: JavaScript (javascript)

Cara Cek Tipe Data Number JavaScript

Untuk memeriksa apakah sebuah variabel bertipe Number, kita menggunakan typeof.

let angka = 123;
console.log(typeof angka); // "number"Code language: JavaScript (javascript)

Output:

"number"Code language: JSON / JSON with Comments (json)

Namun untuk mengecek apakah suatu nilai valid (bukan NaN), kita bisa pakai:

Number.isNaN()
Number.isFinite()Code language: JavaScript (javascript)

Contoh:

console.log(Number.isNaN(123)); // false
console.log(Number.isNaN(NaN)); // trueCode language: JavaScript (javascript)

Contoh Penggunaan Dasar Number JavaScript

Berikut contoh kecil penggunaan Number dalam program sederhana:

let harga = 15000;
let jumlah = 3;

let total = harga * jumlah;

console.log("Total bayar:", total);Code language: JavaScript (javascript)

Output:

"Total bayar: 45000"Code language: JSON / JSON with Comments (json)

Contoh lain dengan kalkulasi:

let diskon = 0.1; // 10%
let hargaAwal = 20000;

let hargaAkhir = hargaAwal - (hargaAwal * diskon);

console.log(hargaAkhir);Code language: JavaScript (javascript)

Output:

18000

Konversi Data (Convert Number JavaScript)

Konversi data adalah bagian yang sangat penting dalam JavaScript karena hampir semua aplikasi membutuhkan proses mengubah nilai dari satu tipe ke tipe lainnya terutama stringnumber dan numberstring. Pada bagian ini, kita akan belajar seluruh teknik konversi data yang paling sering digunakan, lengkap dengan contoh dan penjelasan mendalam.

1. Konversi String ke Number JavaScript

Kenapa perlu mengonversi string ke number?

Karena data dari:

  • input form HTML
  • API / database
  • hasil pembacaan file
  • value dari DOM

…biasanya berbentuk string, bukan angka.

Contoh masalah umum:

let a = "10";
let b = "5";

console.log(a + b);Code language: JavaScript (javascript)

Output:

105 // bukan penjumlahan, tapi penggabungan string!Code language: JSON / JSON with Comments (json)

Untuk mendapatkan hasil numerik, kita harus mengonversinya menjadi number.

2. parseInt() JavaScript

parseInt() digunakan untuk mengubah string menjadi bilangan bulat (integer).

Cara kerja:

  • Mengambil angka dari awal string
  • Mengabaikan karakter setelahnya
  • Mengembalikan integer

Contoh dasar:

let angka = parseInt("42");
console.log(angka); // 42Code language: JavaScript (javascript)

Contoh dengan teks:

console.log(parseInt("42px")); // 42Code language: JavaScript (javascript)

Contoh gagal:

console.log(parseInt("abc42")); // NaN (karena tidak ada angka di awal)Code language: JavaScript (javascript)

3. parseFloat() JavaScript

Digunakan untuk mengubah string menjadi bilangan desimal (float).

Contoh:

let x = parseFloat("3.14");
console.log(x); // 3.14Code language: JavaScript (javascript)

Contoh dengan teks:

console.log(parseFloat("3.14em")); // 3.14Code language: JavaScript (javascript)

Contoh gagal:

console.log(parseFloat("abc3.14")); // NaN (karena tidak ada angka di awal)Code language: JavaScript (javascript)

4. Number() vs parseInt() vs parseFloat()

Ketiganya sering digunakan, tetapi memiliki perbedaan penting.

FungsiHasilCocok untuk
Number()Konversi langsung → validasi ketatnilai harus angka murni
parseInt()Mengambil integer dari awal stringangka yang bercampur teks
parseFloat()Mengambil float dari awal stringnilai desimal bercampur teks

Contoh perbandingan:

Number("42");        // 42
Number("42px");      // NaN

parseInt("42px");    // 42
parseFloat("42.5em");// 42.5Code language: JavaScript (javascript)

Kapan pakai apa?

SituasiGunakan
Ingin angka pasti dan ketatNumber()
Mengambil angka depan sajaparseInt()
Angka desimal bercampur teksparseFloat()

5. Konversi Angka ke String — number.toString()

Kadang kita perlu mengubah angka menjadi string.

Misalnya saat:

  • menampilkan ke UI
  • membuat format teks
  • menyimpan ke database
  • menggabungkan dengan string lain

Contoh penggunaan:

let angka = 123;

let teks = angka.toString();
console.log(teks);       // "123"
console.log(typeof teks);// "string"Code language: JavaScript (javascript)

Bisa juga menggunakan String():

let hasil = String(99);
console.log(hasil); // "99"Code language: JavaScript (javascript)

6. Number.parseInt() dan Number.parseFloat()

Ini adalah versi modern dari parseInt() dan parseFloat().

Bentuk ES6:

Number.parseInt()
Number.parseFloat()Code language: JavaScript (javascript)

Contoh:

console.log(Number.parseInt("50px"));   // 50
console.log(Number.parseFloat("7.25kg"));// 7.25Code language: JavaScript (javascript)

Bedanya?

  • Tidak ada perbedaan fungsi
  • Hanya perbedaan penempatan namespace
  • Disarankan pada project modern (lebih eksplisit)

7. Menangani NaN & isNaN() JavaScript

NaN (Not a Number) muncul ketika konversi gagal.

Contoh:

let x = Number("halo");
console.log(x); // NaNCode language: JavaScript (javascript)

Mengecek NaN yang benar:

Gunakan:

Number.isNaN()Code language: JavaScript (javascript)

Contoh:

console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("abc")); // falseCode language: JavaScript (javascript)

Perbedaan penting:

isNaN() biasa kurang akurat.

console.log(isNaN("abc")); // true (padahal string)Code language: JavaScript (javascript)

Karena itu, yang direkomendasikan:

  • Number.isNaN()
  • Number.isFinite()

8. Panduan Lengkap Konversi Data JavaScript

Berikut rangkuman lengkap:

Konversi string → number

Number("100");       
parseInt("100px");
parseFloat("3.14em");Code language: JavaScript (javascript)

Konversi number → string

(123).toString();
String(123);Code language: JavaScript (javascript)

Validasi angka

Number.isInteger()
Number.isNaN()
Number.isFinite()Code language: JavaScript (javascript)

Contoh penggunaan praktis

Misalnya kita ingin mengambil input angka dari form:

let qty = document.getElementById("qty").value; // string

qty = Number(qty); // konversi wajib

let total = qty * 5000;

console.log(total);Code language: JavaScript (javascript)

Jika tidak dikonversi, hasilnya bisa salah.

Contoh Kasus Konversi Data Lengkap

Misal kita memiliki data harga dalam bentuk string:

let harga = "15000";
let jumlah = "3";

let total = Number(harga) * Number(jumlah);

console.log("Total bayar:", total);Code language: JavaScript (javascript)

Output:

Total bayar: 45000

Atau mengambil angka dari teks campuran:

let ukuran = "42cm";

let angka = parseInt(ukuran);

console.log(angka); // 42Code language: JavaScript (javascript)

Method Number JavaScript yang Sering Dipakai

Di bagian ini kita bahas method dan utilitas Number yang paling sering dipakai sehari-hari:

Number.isInteger(), Number.isNaN(), Number.isFinite(), toFixed(), dan toPrecision().

Setiap fungsi dijelaskan beserta contoh dan langkah-langkah praktis (step-by-step) agar mudah diikuti.

Semua contoh kode pakai indentasi 4 tab sesuai permintaan.

1. Number.isInteger(value) — cek apakah bilangan bulat

Mengembalikan true jika value bertipe number dan adalah integer (tidak ada fractional part).

Mengembalikan false untuk NaN, Infinity, non-number (mis. string), atau angka desimal.

Contoh & penjelasan:

console.log(Number.isInteger(10));      // true
console.log(Number.isInteger(10.0));    // true (10.0 adalah integer secara nilai)
console.log(Number.isInteger(10.5));    // false
console.log(Number.isInteger(NaN));     // false
console.log(Number.isInteger("10"));    // false (bukan number)Code language: JavaScript (javascript)

Kapan dipakai (step-by-step)

  • Ambil input pengguna (mis. kuantitas barang).
  • Konversi ke number: const qty = Number(input);
  • Cek integer: if (!Number.isInteger(qty)) { error… }
  • Proses hanya jika integer valid.

2. Number.isNaN(value) — pengecekan NaN yang benar

  • NaN = Not a Number (hasil operasi/konversi gagal).
  • Gunakan Number.isNaN() untuk memeriksa nilai NaN secara andal.
  • Jangan pakai isNaN() global jika ingin akurasi tipe (global isNaN melakukan coercion).

Perbedaan singkat

  • isNaN("abc") → true (karena “abc” dipaksa jadi number yang menghasilkan NaN)
  • Number.isNaN("abc") → false (karena “abc” bukan number, jadi bukan NaN)

Contoh:

console.log(isNaN("abc"));            // true  (global isNaN memaksa konversi)
console.log(Number.isNaN("abc"));     // false (bukan number)
console.log(Number.isNaN(NaN));       // true
console.log(Number.isNaN(123));       // falseCode language: JavaScript (javascript)

Step-by-step untuk validasi konversi:

  • Konversi string ke number: const n = Number(str);
  • Cek Number.isNaN(n) → jika true → tampilkan error input tidak valid.
  • Jika false → lanjut proses.

3. Number.isFinite(value) — cek finite number (bukan Infinity/NaN)

  • Mengembalikan true jika value adalah number dan finite (bukan NaN, Infinity, atau -Infinity).
  • Perhatikan: Number.isFinite("15") → false karena tipe bukan number.

Contoh:

console.log(Number.isFinite(100));           // true
console.log(Number.isFinite(Infinity));      // false
console.log(Number.isFinite(NaN));           // false
console.log(Number.isFinite("100"));         // false (tipe bukan number)Code language: JavaScript (javascript)

Penggunaan praktis

Gunakan saat menerima hasil operasi numerik untuk memastikan hasil bermakna (mis. tidak membagi 0 menghasilkan Infinity).

4. toFixed(digits) — format angka desimal (jumlah digit di belakang koma)

  • Method milik instance Number: num.toFixed(2) → mengembalikan string yang berisi angka dengan 2 desimal.
  • Berguna untuk menampilkan harga, persen, atau pembulatan tampilan.

Hal penting:

  • toFixed() melakukan pembulatan sesuai aturan matematika.

Hasilnya adalah string, bukan number — jika perlu perhitungan lagi, konversi kembali.

Contoh:

const a = 2.34567;
console.log(a.toFixed(2)); // "2.35"
console.log(a.toFixed(0)); // "2"Code language: JavaScript (javascript)

Step-by-step format harga:

  • Hitung total: let total = price * qty;
  • Format untuk tampil: const tampil = total.toFixed(2);
  • Tampilkan Rp ${tampil} (ingat tampil string).

Jika perlu number lagi:

const roundedString = (0.1 + 0.2).toFixed(2); // "0.30"
const roundedNumber = Number(roundedString);   // 0.3Code language: JavaScript (javascript)

5. toPrecision(n) — jumlah angka signifikan (significant digits)

Mengembalikan string yang menampilkan angka dengan n significant digits.

Berguna jika butuh presentasi berdasarkan presisi ilmiah/angka signifikan.

Contoh:

const x = 123.456;
console.log(x.toPrecision(2)); // "1.2e+2" (2 significant digits)
console.log(x.toPrecision(4)); // "123.5"Code language: JavaScript (javascript)

Perbedaan toFixed vs toPrecision:

  • toFixed(2) → tetap dua digit di belakang koma.
  • toPrecision(2) → dua digit significant secara keseluruhan, bisa menghasilkan notasi ilmiah.

6. Contoh Lengkap — Beberapa skenario step-by-step

Validasi input jumlah pembelian (harus integer & finite):

function validateQty(input) {
    const qty = Number(input);
    if (Number.isNaN(qty) || !Number.isFinite(qty)) {
            return { valid: false, reason: "Bukan angka valid" };
    }
        if (!Number.isInteger(qty) || qty <= 0) {
                return { valid: false, reason: "Harus bilangan bulat positif" };
        }
        return { valid: true, qty };
}

console.log(validateQty("3"));    // { valid: true, qty: 3 }
console.log(validateQty("2.5"));  // { valid: false, reason: "Harus bilangan bulat positif" }
console.log(validateQty("abc"));  // { valid: false, reason: "Bukan angka valid" }Code language: JavaScript (javascript)

Format harga & pastikan pembulatan aman:

function formatCurrency(value) {
        if (Number.isNaN(Number(value))) return "Rp 0.00";
        // pastikan finite
        if (!Number.isFinite(Number(value))) return "Rp 0.00";
        const num = Number(value);
        // tampilkan 2 desimal, hasil toFixed string
        return "Rp " + num.toFixed(2);
}

console.log(formatCurrency(15000));        // "Rp 15000.00"
console.log(formatCurrency(1234.567));     // "Rp 1234.57"Code language: JavaScript (javascript)

7. Menangani floating point dan pembulatan manual

Floating point kadang bikin hasil seperti 0.30000000000000004.

const sum = 0.1 + 0.2;
console.log(sum);                 // 0.30000000000000004
console.log(Number(sum.toFixed(2))); // 0.3 (lebih aman untuk perhitungan)Code language: JavaScript (javascript)

8. Tips & Trik Praktis

  • Gunakan Number.isNaN() untuk cek kegagalan konversi, bukan isNaN() global.
  • Gunakan Number.isFinite() untuk pastikan hasil bukan Infinity.
  • Gunakan Number.isInteger() bila membutuhkan integer (qty, jumlah item).
  • Ingat toFixed() mengembalikan string → konversi jika perlu operasi matematika lagi.
  • Untuk presisi tampilan gunakan toFixed() atau toPrecision() sesuai kebutuhan, bukan untuk logika perhitungan sensitif (use decimal libraries kalau perlu akurasi finansial tinggi).

Ringkasan singkat:

  • Number.isInteger(x) → apakah x integer?
  • Number.isNaN(x) → apakah x NaN? (tepat)
  • Number.isFinite(x) → apakah x finite number?
  • num.toFixed(d) → format desimal (string) dengan d tempat desimal
  • num.toPrecision(n) → n significant digits (string)

Pembulatan dan Operasi Math di JavaScript

Pada bagian ini kita fokus pada fungsi-fungsi Math yang paling sering digunakan ketika bekerja dengan number JavaScript, terutama untuk kasus seperti pembulatan angka, pengolahan desimal, hingga pembuatan angka acak untuk aplikasi sederhana.

1. Math.round(x) — Pembulatan Standar (Normal Rounding)

Math.round(x) akan membulatkan angka ke nilai integer terdekat:

  • Desimal ≥ 0.5 → dibulatkan ke atas
  • Desimal < 0.5 → dibulatkan ke bawah

Contoh:

console.log(Math.round(4.2));   // 4
console.log(Math.round(4.5));   // 5
console.log(Math.round(4.7));   // 5
console.log(Math.round(-4.5));  // -4Code language: JavaScript (javascript)

Kapan digunakan?

  • Memperbaiki hasil floating point (0.1 + 0.2)
  • Pembulatan standar untuk laporan atau tampilan

2. Math.floor(x) — Pembulatan ke Bawah (Always Down)

Math.floor(x) akan membulatkan angka ke integer terendah.

Contoh:

console.log(Math.floor(4.9));   // 4
console.log(Math.floor(4.1));   // 4
console.log(Math.floor(-4.1));  // -5Code language: JavaScript (javascript)

Kapan digunakan?

  • Ketika setengah angka tidak boleh dinaikkan
  • Membuat index array dari angka desimal
  • Membuat random number dalam rentang tertentu (dipakai bersama Math.random())

3. Math.ceil(x) — Pembulatan ke Atas (Always Up)

Math.ceil(x) membulatkan angka ke integer tertinggi.

Contoh:

console.log(Math.ceil(4.1));   // 5
console.log(Math.ceil(4.9));   // 5
console.log(Math.ceil(-4.1));  // -4Code language: JavaScript (javascript)

Kapan digunakan?

  • Ketika hasil desimal harus dibulatkan ke atas
  • Saat menghitung jumlah halaman (paging / pagination)
  • Ketika membuat perhitungan kapasitas (totalItem / perPage)

4. Pembulatan Desimal Manual

JavaScript hanya menyediakan pembulatan untuk angka integer, jadi untuk membulatkan angka desimal, kita perlu trik sedikit.

Misalnya ingin membulatkan 2.34567 → 2.35 (dua desimal).

Pembulatan desimal menggunakan toFixed()

const num = 2.34567;
const result = Number(num.toFixed(2));
console.log(result); // 2.35Code language: JavaScript (javascript)

Pembulatan desimal manual menggunakan Math.round()

function roundDecimal(value, decimals) {
    const multiplier = Math.pow(10, decimals);  
    return Math.round(value * multiplier) / multiplier;
}

console.log(roundDecimal(2.3456, 2)); // 2.35Code language: JavaScript (javascript)

Floor versi desimal

function floorDecimal(value, decimals) {
    const multiplier = Math.pow(10, decimals);
    return Math.floor(value * multiplier) / multiplier;
}

console.log(floorDecimal(2.789, 2)); // 2.78Code language: JavaScript (javascript)

Ceil versi desimal

function ceilDecimal(value, decimals) {
    const multiplier = Math.pow(10, decimals);
    return Math.ceil(value * multiplier) / multiplier;
}

console.log(ceilDecimal(2.781, 2)); // 2.79Code language: JavaScript (javascript)

5. Random Number Sederhana dengan Math.random()

Math.random() menghasilkan angka 0 hingga <1 (tidak termasuk 1). Biasanya dipakai untuk:

  • Membuat angka acak untuk game
  • ID random sederhana
  • Pilihan warna acak
  • Simulasi probabilitas

Random 0–1 (default)

console.log(Math.random());  // contoh: 0.47281723Code language: JavaScript (javascript)

Random integer 0–9

const random = Math.floor(Math.random() * 10);
console.log(random);Code language: JavaScript (javascript)

Random integer dalam rentang tertentu

function randomInRange(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(randomInRange(5, 15)); // contoh: 9Code language: JavaScript (javascript)

Rangkuman Fungsi Pembulatan dan Random Number

FungsiKeterangan
Math.round()Pembulatan standar
Math.floor()Pembulatan ke bawah
Math.ceil()Pembulatan ke atas
toFixed()Formatting desimal string
Trik desimalMenggunakan faktor pengali (×10ⁿ)
Math.random()Angka acak 0–1
Random rangeMath.floor(Math.random() * (max-min+1)) + min

Kesimpulan

Number adalah salah satu tipe data paling penting dalam JavaScript karena hampir semua aplikasi web membutuhkan perhitungan, validasi angka, formatting, hingga konversi data. Dalam artikel panjang ini, kita telah mempelajari:

  • Dasar-dasar number JavaScript (integer, float, NaN, Infinity).
  • Cara menggunakan number dengan benar serta masalah floating point.
  • Teknik konversi data menggunakan parseInt(), parseFloat(), Number(), hingga toString().
  • Cara menangani error angka seperti NaN dan Infinity.
  • Method penting seperti Number.isInteger(), Number.isNaN(), toFixed(), dan toPrecision().
  • Fungsi pembulatan Math.round(), Math.floor(), Math.ceil(), serta trik pembulatan desimal.
  • Studi kasus penerapan number untuk harga, diskon, dan angka acak.

Dengan memahami seluruh materi ini, kamu sudah memiliki fondasi kuat untuk bekerja dengan number dalam JavaScript, baik untuk aplikasi sederhana maupun sistem yang lebih kompleks seperti e-commerce, kalkulator, dan dashboard analitik.

2 JavaScript Menengah

3 JavaScript Lanjutan

4 JavaScript Mahir

5 JavaScript Ahli

Comments

Congrats, you have the opportunity to be the first commenter on this article. Have questions or suggestions? Please leave a comment to start discussion.

Leave comment

Alamat email Anda tidak akan dipublikasikan. Required fields are marked *