menengahmathnumberMenengah3 mnt baca

Math: Fungsi Matematika

Object Math untuk pembulatan, pangkat, akar, dan trik penting: angka acak dengan Math.random.

Kalkulator bawaan

Math adalah object bawaan berisi fungsi dan konstanta matematika. Tidak perlu new, langsung pakai Math.namaFungsi().

Fungsi yang sering dipakai

javascript
console.log(Math.round(4.6));  // 5, bulat terdekat
console.log(Math.floor(4.9));  // 4, ke bawah
console.log(Math.ceil(4.1));   // 5, ke atas
console.log(Math.abs(-7));     // 7, nilai mutlak
console.log(Math.pow(2, 10));  // 1024, pangkat (atau 2 ** 10)
console.log(Math.sqrt(16));    // 4, akar kuadrat
console.log(Math.max(3, 9, 1)); // 9
console.log(Math.min(3, 9, 1)); // 1
console.log(Math.PI);          // 3.14159...

Math.max dan Math.min menerima banyak argumen, atau gabungkan dengan spread untuk array: Math.max(...angka).

Angka acak dengan Math.random

Math.random() menghasilkan desimal acak dari 0 (inklusif) sampai 1 (eksklusif). Untuk rentang tertentu, pakai rumus:

javascript
// acak 0 sampai 1 (desimal)
console.log(Math.random());

// acak 1 sampai 10 (bulat)
let dadu = Math.floor(Math.random() * 10) + 1;
console.log(dadu);

// rumus umum: Math.floor(Math.random() * (max - min + 1)) + min
function acak(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(acak(50, 100));

Logikanya: random() * 10 menghasilkan 0 sampai 9.99, floor membulatkan ke bawah jadi 0-9, tambah 1 jadi 1-10.

Contoh: acak pilihan

javascript
let pilihan = ["gunting", "batu", "kertas"];
let komputer = pilihan[Math.floor(Math.random() * pilihan.length)];
console.log("Komputer memilih: " + komputer);

Pola ini dipakai di game sederhana, shuffle, dan sampling data.

Catatan teknis: Math.random() tidak aman untuk kriptografi (token, password). Untuk kebutuhan keamanan, pakai crypto.getRandomValues(). Math.random cukup untuk game dan keperluan non-keamanan.

Studi kasus: game tebak angka

Gabungkan Math.random dengan loop untuk game sederhana:

javascript
let target = Math.floor(Math.random() * 100) + 1;
let tebakan = [50, 75, 60, 67, 63]; // simulasi tebakan pemain
let percobaan = 0;

for (let t of tebakan) {
  percobaan++;
  if (t === target) {
    console.log("Benar! " + target + " dalam " + percobaan + "x coba");
    break;
  }
  console.log(t + " terlalu " + (t < target ? "kecil" : "besar"));
}

Game ini melatih banyak konsep sekaligus: random, loop, break, ternary, dan perbandingan. Coba kembangkan sendiri: batasi 7 percobaan, beri skor berdasarkan sisa percobaan, atau buat versi yang membaca input dari prompt().

Kesimpulan

Hafalkan rumus angka acak bulat karena ia muncul terus di latihan dan game. Sisanya, ingat bahwa Math punya fungsi untuk hampir semua kebutuhan matematika dasar.