Fungsi Angka & Aritmatika: ROUND, CEIL, FLOOR, MOD
Menghitung di dalam query: operator aritmatika, pembulatan dengan ROUND (termasuk ke ribuan), CEIL, FLOOR, ABS, MOD, dan memahami hasil pembagian di MySQL.
Aritmatika dasar
| Operator | Contoh | Hasil |
|---|---|---|
+ - * | 7 * 3 | 21 |
/ (bagi) | 10 / 4 | 2.5 (selalu desimal) |
DIV (bagi bulat) | 10 DIV 4 | 2 |
% atau MOD (sisa bagi) | 10 % 4 | 2 |
Berbeda dari banyak bahasa pemrograman, 10 / 4 di MySQL menghasilkan 2.5, bukan 2. Mau hasil bulat? Pakai DIV. Dan jangan khawatir: pembagian dengan nol menghasilkan NULL, bukan membuat server crash.
Fungsi pembulatan
| Fungsi | Contoh | Hasil | Arti |
|---|---|---|---|
ROUND(x) | ROUND(2.5) | 3 | bulatkan ke bilangan bulat terdekat |
ROUND(x, n) | ROUND(3.14159, 2) | 3.14 | n digit di belakang koma |
ROUND(x, -n) | ROUND(14500, -3) | 15000 | digit negatif = bulatkan ke puluhan/ratusan/ribuan |
CEIL(x) / CEILING | CEIL(2.1) | 3 | selalu ke atas |
FLOOR(x) | FLOOR(2.9) | 2 | selalu ke bawah |
TRUNCATE(x, n) | TRUNCATE(2.789, 2) | 2.78 | dipotong, tanpa pembulatan |
Fungsi angka lain
| Fungsi | Contoh | Hasil |
|---|---|---|
ABS(x) | ABS(-15) | 15 |
POW(x, y) | POW(2, 10) | 1024 |
SQRT(x) | SQRT(81) | 9 |
MOD(x, y) | MOD(17, 5) | 2 |
GREATEST(a,b,c) / LEAST | GREATEST(3, 9, 5) | 9 |
RAND() | ORDER BY RAND() LIMIT 1 | baris acak |
Contoh bisnis: diskon dan pajak
-- harga setelah diskon 20%
SELECT nama, harga, harga * 0.8 AS harga_diskon FROM produk;
-- PPN 11% dibulatkan ke rupiah terdekat
SELECT nama, ROUND(harga * 1.11) AS harga_plus_ppn FROM produk;
-- stok dalam lusin (12 buah) beserta sisanya
SELECT nama, FLOOR(stok / 12) AS lusin, stok % 12 AS sisa FROM produk;
-- genap atau ganjil? (sisa bagi 2)
SELECT id, IF(id % 2 = 0, 'genap', 'ganjil') FROM produk;
Trik kasir: pembulatan ke kelipatan 500 rupiah: ROUND(harga / 500) * 500. Dibagi 500, dibulatkan, lalu dikali 500 lagi.