Angka dan matematika
Dalam JavaScript 0.1 + 0.2 menghasilkan 0.30000000000000004, dan 17 % 5 menghasilkan 2. Keduanya masuk akal begitu kamu tahu cara angka disimpan dan apa arti %.
Operator aritmetika
Sebagian besar pekerjaan komputer pada dasarnya adalah aritmetika, dan JavaScript menuliskannya hampir sama seperti di kertas. Simbol yang melakukan pekerjaan itu disebut operator. Lima di antaranya sudah kamu kenal, dan dua lagi masih baru:
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
| + | tambah | 7 + 2 | 9 |
| - | kurang | 7 - 2 | 5 |
| * | kali | 7 * 2 | 14 |
| / | bagi | 7 / 2 | 3.5 |
| % | sisa bagi | 7 % 2 | 1 |
| ** | pangkat | 7 ** 2 | 49 |
Perkalian memakai tanda bintang, karena huruf x akan tertukar dengan variabel bernama x. Pembagian selalu memberi jawaban yang tepat, termasuk desimalnya: 7 / 2 adalah 3.5, bukan 3. Operator sisa bagi % membagi lalu hanya menyimpan sisanya. 17 % 5 adalah 2, karena 5 masuk ke 17 sebanyak tiga kali (15) dengan sisa 2. Kedengarannya seperti keanehan kecil, tetapi ini salah satu operator yang paling sering dipakai dalam pemrograman. Sebuah bilangan genap tepat ketika n % 2 bernilai 0, dan minutes % 60 memberi sisa menit setelah jam-jam penuh diambil.
Urutan operasi
JavaScript mengikuti urutan yang sama dengan matematika di sekolah. Pangkat lebih dulu, lalu perkalian, pembagian, dan sisa bagi, lalu penjumlahan dan pengurangan. Operator yang setingkat dikerjakan dari kiri ke kanan, kecuali ** yang dikerjakan dari kanan ke kiri. Tanda kurung mengalahkan semuanya, jadi kalau ragu, tambahkan saja; tanda kurung tidak merugikan apa pun dan membuat maksudmu jelas bagi pembaca berikutnya.
console.log(2 + 3 * 4); // 14
console.log((2 + 3) * 4); // 20
console.log(20 - 6 / 2); // 17
console.log(2 ** 3 * 5); // 40Jalan pintas untuk memperbarui variabel
Memperbarui variabel dengan nilainya sendiri begitu sering dilakukan sehingga ada bentuk singkatnya. x += 5 berarti x = x + 5, dan ada juga bentuk yang serupa -=, *=, dan /=. Menambah atau mengurangi tepat satu punya bentuk yang lebih singkat lagi: x++ menambahkan 1 dan x-- mengurangi 1. Kamu akan sering sekali melihat ++ di dalam perulangan.
let coins = 10;
coins += 5; // 15
coins *= 2; // 30
coins--; // 29
console.log(coins); // 29Alat bantu Math
JavaScript punya objek bawaan bernama Math yang berisi alat-alat angka siap pakai. Math.round(2.5) membulatkan ke bilangan bulat terdekat (3), Math.floor(2.9) selalu membulatkan ke bawah (2), dan Math.ceil(2.1) selalu membulatkan ke atas (3). Math.max(4, 9, 2) memberi nilai terbesar dan Math.min nilai terkecil. Math.sqrt(81) adalah akar kuadrat, yaitu 9, dan Math.PI adalah bilangan π, sekitar 3.14159. Math.floor dan % adalah pasangan yang serasi: untuk 135 menit, Math.floor(135 / 60) adalah 2 jam dan 135 % 60 adalah 15 menit.
Mengapa 0.1 + 0.2 tidak tepat 0.3
JavaScript menyimpan setiap angka dalam bentuk biner dengan jumlah memori yang tetap, mengikuti format presisi ganda IEEE 754 yang ditetapkan standar ECMAScript. Beberapa desimal biasa, seperti 0.1, tidak bisa ditulis dengan tepat dalam biner, sama seperti 1/3 tidak bisa ditulis dengan tepat dalam desimal. Galat pembulatan yang sangat kecil itu biasanya tersembunyi, tetapi kadang terlihat: 0.1 + 0.2 mencetak 0.30000000000000004. Ini bukan bug di kodemu. Saat menampilkan uang atau hasil pengukuran kepada orang, bulatkan hasilnya, misalnya dengan (0.1 + 0.2).toFixed(2), yang menghasilkan string "0.30". Bilangan bulat sampai sekitar sembilan ribu juta juta disimpan dengan tepat, jadi perhitungan cacah tidak pernah terpengaruh.
Contoh soal
Contoh 1. Rata-rata 80, 90, dan 85 adalah (80 + 90 + 85) / 3. Tanpa tanda kurung, 80 + 90 + 85 / 3 hanya membagi 85 dan menghasilkan sekitar 198.3. Contoh 2. Apakah 2024 kelipatan 4? 2024 % 4 adalah 0, jadi ya. Contoh 3. Membagi 50 permen kepada 6 anak: Math.floor(50 / 6) adalah 8 per anak dan 50 % 6 adalah sisa 2.
| operator | Simbol yang mengolah nilai: + - * / % ** |
| % | Sisa pembagian: 17 % 5 adalah 2 |
| ** | Pangkat: 2 ** 3 adalah 8 |
| += | x += 5 berarti x = x + 5 |
| ++ | Menambahkan tepat 1 ke sebuah variabel |
| Math.floor | Membulatkan ke bawah menjadi bilangan bulat |
| Math.round | Membulatkan ke bilangan bulat terdekat |
| toFixed(2) | Memformat angka dengan 2 tempat desimal, sebagai string |
- Apa yang dicetak kode ini?
console.log(2 + 3 * 4); - Apa yang dicetak kode ini?
console.log((2 + 3) * 4); - Apa yang dicetak kode ini?
console.log(17 % 5); - Apa yang dicetak kode ini?
console.log(9 / 2); - Apa yang dicetak kode ini?
console.log(2 ** 5); - Apa yang dicetak kode ini?
let x = 10; x += 4; x *= 2; console.log(x); - Apa yang dicetak kode ini?
let n = 5; n++; n++; n--; console.log(n); - Apa yang dicetak kode ini?
console.log(Math.floor(7.9), Math.ceil(7.1));- 8 8
- 7 8
- 7 7
- Apa yang dicetak kode ini?
console.log(Math.max(3, 11, 6) - Math.min(3, 11, 6)); - Apa yang dicetak kode ini?
console.log(10 - 4 - 3); - Ekspresi mana yang bernilai true untuk setiap bilangan genap n?
n % 2 === 0n / 2 === 0n % 2 === 1
- Apa yang dicetak kode ini?
console.log((0.1 + 0.2).toFixed(2));
- + - * / bekerja seperti dalam matematika; / mempertahankan desimal.
- % memberi sisa bagi; n % 2 === 0 berarti n genap.
- ** adalah pangkat. Tanda kurung lebih dulu, lalu **, lalu * / %, lalu + -.
- x += 5 dan x++ adalah bentuk singkat untuk memperbarui x.
- Math.floor, Math.round, Math.ceil, Math.max, Math.min, dan Math.PI.
- Desimal bisa membawa galat pembulatan yang sangat kecil; pakai toFixed untuk menampilkannya.
Sumber kursus ini (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Diperiksa: 2026-10-17