Tag Math Functions: 25+ Fungsi Matematika Wajib Kuasai untuk Logika Pemrograman yang Lebih Tajam
Pernah nggak sih kamu berhadapan dengan problem programming yang butuh perhitungan matematika? Mau itu kalkulasi diskon e-commerce, generate random password, atau hitung jarak antara dua titikâsemuanya butuh fungsi matematika! Tapi jangan khawatir, kamu nggak perlu jadi ahli matematika dulu untuk paham ini.
Math functions dalam pemrograman itu seperti kalkulator super canggih yang sudah built-in. Dari yang sederhana kayak pembulatan angka, sampai yang complex kayak trigonometri dan logaritma, semuanya sudah disediakan. Dan yang paling keren, syntax-nya hampir sama di berbagai bahasa pemrograman!
Di panduan komprehensif ini, kita akan explore dunia fungsi matematika pemrograman dari dasar sampai advanced. Siap-siap buat upgrade skill problem-solving-mu!
Dasar-Dasar Math Functions yang Wajib Dikuasai
1. Arithmetic Operations – Operasi Matematika Dasar
Ini adalah fondasi dari semua perhitungan:
// JavaScript Example
let a = 10, b = 3;
console.log(a + b); // Addition: 13
console.log(a - b); // Subtraction: 7
console.log(a * b); // Multiplication: 30
console.log(a / b); // Division: 3.333...
console.log(a % b); // Modulus (sisa bagi): 1
console.log(a ** b); // Exponentiation (pangkat): 1000
2. Math.abs() – Nilai Absolute
Mengembalikan nilai positif dari sebuah angka:
Math.abs(-5.7); // 5.7
Math.abs(10); // 10
Math.abs(0); // 0
Fungsi Pembulatan Angka (Rounding Functions)
3. Math.round() – Pembulatan ke Integer Terdekat
Math.round(4.3); // 4
Math.round(4.7); // 5
Math.round(4.5); // 5 (round half up)
4. Math.floor() – Pembulatan ke Bawah
Selalu bulatkan ke integer terdekat yang lebih kecil:
Math.floor(4.9); // 4
Math.floor(4.1); // 4
Math.floor(-4.1); // -5 (hati-hati dengan negatif!)
5. Math.ceil() – Pembulatan ke Atas
Selalu bulatkan ke integer terdekat yang lebih besar:
Math.ceil(4.1); // 5
Math.ceil(4.9); // 5
Math.ceil(-4.1); // -4
6. Math.trunc() – Hapus Bagian Desimal
Hapus bagian desimal tanpa melakukan pembulatan:
Math.trunc(4.9); // 4
Math.trunc(4.1); // 4
Math.trunc(-4.9); // -4
Fungsi Pangkat dan Akar (Power and Roots)
7. Math.pow() – Pemangkatan
Math.pow(2, 3); // 8 (2 pangkat 3)
Math.pow(4, 0.5); // 2 (akar kuadrat dari 4)
Math.pow(8, 1/3); // 2 (akar kubik dari 8)
8. Math.sqrt() – Akar Kuadrat
Math.sqrt(16); // 4
Math.sqrt(2); // 1.4142135623730951
Math.sqrt(-1); // NaN (Not a Number)
9. Math.cbrt() – Akar Kubik
Math.cbrt(8); // 2
Math.cbrt(27); // 3
Math.cbrt(-8); // -2 (bisa handle negatif)
10. Math.exp() – Exponensial
Fungsi eksponensial dengan basis e (Euler’s number):
Math.exp(1); // 2.718281828459045
Math.exp(0); // 1
Fungsi Logaritma (Logarithmic Functions)
11. Math.log() – Logaritma Natural
Logaritma dengan basis e:
Math.log(1); // 0
Math.log(Math.E); // 1
Math.log(10); // 2.302585092994046
12. Math.log10() – Logaritma Basis 10
Math.log10(1); // 0
Math.log10(10); // 1
Math.log10(100); // 2
13. Math.log2() – Logaritma Basis 2
Math.log2(1); // 0
Math.log2(2); // 1
Math.log2(8); // 3
Fungsi Trigonometri (Trigonometric Functions)
14. Math.sin(), Math.cos(), Math.tan()
Fungsi trigonometri dasar (dalam radians):
let angle = Math.PI / 6; // 30 derajat
Math.sin(angle); // 0.5
Math.cos(angle); // 0.8660254037844386
Math.tan(angle); // 0.5773502691896257
15. Konversi Derajat ke Radian
function toRadians(degrees) {
return degrees * (Math.PI / 180);
}
function toDegrees(radians) {
return radians * (180 / Math.PI);
}
16. Math.asin(), Math.acos(), Math.atan() – Inverse Trigonometri
Math.asin(0.5); // 0.5235987755982989 rad (30 derajat)
Math.acos(0.5); // 1.0471975511965976 rad (60 derajat)
Math.atan(1); // 0.7853981633974483 rad (45 derajat)
Fungsi Minimum dan Maximum
17. Math.min() – Mencari Nilai Terkecil
Math.min(2, 5, 1); // 1
Math.min(-1, -3, 2); // -3
18. Math.max() – Mencari Nilai Terbesar
Math.max(2, 5, 1); // 5
Math.max(-1, -3, 2); // 2
Fungsi Random dan Konstanta Matematika
19. Math.random() – Generate Angka Random
Menghasilkan angka random antara 0 (inclusive) dan 1 (exclusive):
Math.random(); // 0.123456789 (contoh)
20. Contoh Penggunaan Math.random() yang Praktis
// Random integer antara min dan max (inclusive)
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// Random number antara min dan max
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
21. Konstanta Matematika Penting
Math.PI; // 3.141592653589793
Math.E; // 2.718281828459045
Math.SQRT2; // 1.4142135623730951
Math.LN2; // 0.6931471805599453
Fungsi Matematika Lanjutan
22. Math.hypot() – Hipotenusa Segitiga
Menghitung panjang hipotenusa dari segitiga siku-siku:
Math.hypot(3, 4); // 5
Math.hypot(5, 12); // 13
23. Math.sign() – Tanda dari Angka
Mengembalikan tanda dari angka: 1 (positif), -1 (negatif), 0 (nol), NaN (bukan angka)
Math.sign(5); // 1
Math.sign(-5); // -1
Math.sign(0); // 0
Math.sign('abc'); // NaN
Tabel Referensi Cepat: Math Functions
Fungsi | Deskripsi | Contoh | Hasil |
---|---|---|---|
Math.abs(x) | Nilai absolute | Math.abs(-5.7) | 5.7 |
Math.round(x) | Pembulatan terdekat | Math.round(4.5) | 5 |
Math.floor(x) | Pembulatan ke bawah | Math.floor(4.9) | 4 |
Math.ceil(x) | Pembulatan ke atas | Math.ceil(4.1) | 5 |
Math.pow(x, y) | x pangkat y | Math.pow(2, 3) | 8 |
Math.sqrt(x) | Akar kuadrat | Math.sqrt(16) | 4 |
Math.random() | Angka random 0-1 | Math.random() | 0.123… |
Math.max(x, y, …) | Nilai terbesar | Math.max(1, 5, 3) | 5 |
Math.min(x, y, …) | Nilai terkecil | Math.min(1, 5, 3) | 1 |
Contoh Aplikasi Real-World
24. Kalkulator Diskon E-commerce
function calculateDiscount(originalPrice, discountPercent) {
let discountAmount = originalPrice * (discountPercent / 100);
let finalPrice = originalPrice - discountAmount;
// Bulatkan ke 2 decimal places
return Math.round(finalPrice * 100) / 100;
}
console.log(calculateDiscount(250000, 15)); // 212500
25. Generate Random Password
function generatePassword(length) {
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*';
let password = '';
for (let i = 0; i < length; i++) {
const randomIndex = Math.floor(Math.random() * chars.length);
password += chars[randomIndex];
}
return password;
}
console.log(generatePassword(12)); // "A3b#7kL9$mN2"
26. Hitung Jarak antara Dua Titik (2D)
function calculateDistance(x1, y1, x2, y2) {
const dx = x2 - x1;
const dy = y2 - y1;
return Math.sqrt(dx * dx + dy * dy);
}
console.log(calculateDistance(0, 0, 3, 4)); // 5
Best Practices dan Tips
Error Handling untuk Math Functions
function safeDivision(a, b) {
if (b === 0) {
throw new Error('Division by zero is not allowed');
}
return a / b;
}
function safeSquareRoot(x) {
if (x < 0) {
throw new Error('Cannot calculate square root of negative number');
}
return Math.sqrt(x);
}
Performance Considerations
- Cache hasil perhitungan yang sering digunakan
- Hindari perhitungan dalam loops jika bisa di-cache
- Gunakan integer math ketika mungkin (lebih cepat dari floating point)
Perbandingan antar Bahasa Pemrograman
Fungsi | JavaScript | Python | Java | PHP |
---|---|---|---|---|
Absolute | Math.abs() | abs() | Math.abs() | abs() |
Pembulatan | Math.round() | round() | Math.round() | round() |
Random | Math.random() | random.random() | Math.random() | rand() |
Pangkat | Math.pow() | pow() | Math.pow() | pow() |
Kesimpulan: Math Functions sebagai Superpower
Menguasai fungsi matematika dalam pemrograman itu seperti punya toolbox lengkap untuk menyelesaikan berbagai problem. Dari yang sederhana sampai complex, hampir semua problem programming punya elemen matematika di dalamnya.
Yang perlu diingat:
- Practice regularly – Semakin sering dipakai, semakin natural
- Understand the use cases – Ketahui kapan menggunakan fungsi yang tepat
- Combine functions – Fungsi matematika sering dipakai bersama-sama
- Read documentation – Setiap bahasa punya nuance tersendiri
Dengan menguasai math functions, kamu bukan cuma jadi programmer yang lebih baik, tapi juga problem solver yang lebih efektif. So, keep calculating and happy coding!