
Objek Math dalam JavaScript adalah kumpulan konstanta dan metode bawaan yang membantu kalian melakukan operasi matematika—dari pembulatan angka, mencari nilai maksimum/minimum, hingga menghasilkan angka acak—secara cepat dan konsisten di semua browser.
Halo teman-teman, semoga ngodingnya lancar hari ini! Pada artikel ini analiswinter.com akan membahas cara kerja objek Math, contoh penggunaannya, serta tips yang sering dipakai di proyek nyata agar kode kalian rapi dan mudah dirawat.
Objek Math Dalam JavaScript
Objek Math bersifat statis: kalian tidak membuat instance baru dengan new Math(). Semua fitur dipanggil langsung lewat Math.namaMetode() atau Math.NAMA_KONSTANTA. Beberapa konstanta populer antara lain Math.PI (≈3.14159) dan Math.E (bilangan Euler). Karena sifatnya deterministik, Math membantu menjaga hasil perhitungan tetap konsisten di berbagai environment.
Metode Pembulatan & Nilai Absolut
Metode pembulatan yang paling sering dipakai:
Math.round(3.5); // 4 -> ke terdekat
Math.floor(3.9); // 3 -> ke bawah
Math.ceil(3.1); // 4 -> ke atas
Math.trunc(-3.9); // -3 -> buang pecahan
Math.abs(-42); // 42 -> nilai absolut
Tips: pilih metode sesuai kebutuhan logika bisnis. Misalnya, harga diskon bisa pakai Math.floor untuk menghindari pembulatan naik yang bikin total terasa “membengkak”.
Nilai Minimum, Maksimum, Pangkat, Akar
Untuk membandingkan angka, Math.min dan Math.max sangat praktis:
Math.min(7, 3, 9); // 3
Math.max(7, 3, 9); // 9
Math.pow(2, 5); // 32 (setara 2 ** 5)
Math.sqrt(81); // 9
Kalau data berupa array, gunakan spread:
const angka = [4, 8, 2, 10];
const terbesar = Math.max(...angka); // 10
Angka Acak Yang Berguna
Math.random() menghasilkan angka 0 ≤ x < 1. Kalian bisa membentuk rentang sendiri:
// Integer inklusif antara min dan max
function randInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
randInt(1, 6); // seolah-olah dadu
Untuk sampling item acak dari array:
const hadiah = ["stiker", "mug", "tshirt"];
const item = hadiah[randInt(0, hadiah.length - 1)];
Tabel Ringkas Metode Math
| Metode/Konstanta | Kegunaan Singkat | Contoh |
|---|---|---|
Math.PI | Nilai π | 2 * Math.PI * r |
Math.abs(x) | Nilai absolut | Math.abs(-10) → 10 |
Math.round(x) | Pembulatan terdekat | Math.round(2.6) → 3 |
Math.floor(x) | Pembulatan ke bawah | Math.floor(2.6) → 2 |
Math.ceil(x) | Pembulatan ke atas | Math.ceil(2.1) → 3 |
Math.trunc(x) | Buang pecahan | Math.trunc(2.9) → 2 |
Math.min(...v) | Nilai minimum | Math.min(3,9,1) → 1 |
Math.max(...v) | Nilai maksimum | Math.max(3,9,1) → 9 |
Math.pow(a,b) | Pangkat | Math.pow(2,3) → 8 |
Math.sqrt(x) | Akar kuadrat | Math.sqrt(16) → 4 |
Math.random() | Angka acak [0,1) | Math.random() |
Praktik Terbaik
Gunakan Number.isNaN() untuk validasi perhitungan yang berpotensi menghasilkan NaN. Untuk pembulatan uang, pertimbangkan teknik “pembulatan bankir” atau kalikan dulu ke integer (misal ke sen) sebelum operasi, lalu bagi kembali, agar stabil terhadap floating point. Selain itu, dokumentasikan asumsi (misal presisi dua desimal) agar tim kalian mudah memahami logika angka di kode.
FAQ — Objek Math Dalam JavaScript
1) Apa itu objek Math? Haruskah dibuat instance?
Objek Math adalah kumpulan metode dan konstanta matematika bawaan JavaScript. Sifatnya statis, jadi kalian tidak membuat instance: cukup panggil Math.metode() atau pakai Math.KONSTANTA.
2) Bedanya Math.round, Math.floor, Math.ceil, dan Math.trunc?
round(x): ke terdekat (0.5 dibulatkan menjauh dari 0).floor(x): ke bawah (menuju −∞).ceil(x): ke atas (menuju +∞).trunc(x): buang pecahan (menuju 0).
Contoh cepat:
const x = -3.9;
[Math.round(x), Math.floor(x), Math.ceil(x), Math.trunc(x)]
// → [-4, -4, -3, -3]
3) Bagaimana cara mencari nilai minimum/maksimum dari array?
Untuk array kecil/menengah:
const angka = [4, 8, 2, 10];
const min = Math.min(...angka);
const max = Math.max(...angka);
Untuk array sangat besar (agar aman dari “Maximum call stack size exceeded”), gunakan iterasi:
let min = Infinity, max = -Infinity;
for (const v of angka) { if (v < min) min = v; if (v > max) max = v; }
4) Bagaimana menghasilkan integer acak inklusif dalam rentang [min, max]?
function randInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
Catatan: Math.random() bukan untuk kriptografi. Untuk kebutuhan keamanan, gunakan crypto.getRandomValues.
5) Kenapa 0.1 + 0.2 tidak persis 0.3? Bagaimana mengatasinya?
Karena representasi floating point biner, hasilnya ~0.30000000000000004. Gunakan teknik pembulatan:
function roundTo(n, d = 2) {
const f = Math.pow(10, d);
return Math.round((n + Number.EPSILON) * f) / f;
}
roundTo(0.1 + 0.2, 2); // → 0.3
Untuk uang, sering kali dikalikan ke sen (×100), dibulatkan, lalu dibagi kembali.
6) Kapan pakai pustaka eksternal (mis. decimal.js) dibanding Math?
Gunakan Math untuk operasi umum: pembulatan, komparasi, akar/pangkat, trigonometrik dasar, dan angka acak sederhana. Pertimbangkan pustaka angka presisi-tinggi (mis. decimal.js, big.js) saat kalian butuh:
- Presisi desimal ketat (akuntansi, finansial).
- Operasi ilmiah/ statistik kompleks.
- Pengendalian pembulatan (banker’s rounding, mode setengah ke genap, dsb).
Bonus: untuk tampilan angka yang ramah pengguna, gunakan
Intl.NumberFormat(hanya memformat tampilan, bukan menghitung).
Kesimpulan
Objek Math dalam JavaScript menyediakan toolbox matematis yang lengkap, cepat, dan konsisten: mulai pembulatan, komparasi, pangkat/akar, hingga angka acak. Dengan memilih metode yang tepat, logika numerik di aplikasi kalian jadi lebih akurat dan mudah dipelihara. Sekian artikel dari analiswinter.com, semoga membantu kalian menulis kode yang lebih rapi dan mantap!