Menggunakan Fungsi Matematik
Dalam tulisan ini kita akan membahas tentang penggunaan fungsi-fungsi SQL yang mendukung bilangan matematik. Fungsi-fungsi tersebut dapat digunakan untuk memformat data berbentuk integer atau numerik.
ROUND
Fungsi ROUND digunakan untuk membulatkan bilangan desimal menjadi satu nilai di atasnya ataupun nilai di bawahnya. Hal ini dapat dilakukan sesuai dengan kondisi nilai desimal yang ada di belakangnya. Jika nilai desimal (nilai di belakang koma) lebih kecil dari 5, maka bilangan akan dibulatkan ke bawah. Sedangkan jika nilai desimalnya lebih dari 5, maka bilangan akan dibulatkan satu angka di atasnya.
mysql> SELECT ROUND(2.45), ROUND(2.50), ROUND(2.51), ROUND(2.56); +-------------+-------------+-------------+-------------+ | ROUND(2.45) | ROUND(2.50) | ROUND(2.51) | ROUND(2.56) +-------------+-------------+-------------+-------------+ | 2 | 2 | 3 | 3 +-------------+-------------+-------------+-------------+ 1 row in set (0.00 sec) mysql> SELECT ROUND(2.250, 1), ROUND(2.251, 1), ROUND(2.259, 1); +-----------------+-----------------+-----------------+ | ROUND(2.250, 1) | ROUND(2.251, 1) | ROUND(2.259, 1) | +-----------------+-----------------+-----------------+ | 2.2 | 2.3 | 2.3 | +-----------------+-----------------+-----------------+ 1 row in set (0.00 sec) mysql> SELECT ROUND(2.250, 2), ROUND(2.251, 2), ROUND(2.259, 2); +-----------------+-----------------+-----------------+ | ROUND(2.250, 2) | ROUND(2.251, 2) | ROUND(2.259, 2) | +-----------------+-----------------+-----------------+ | 2.25 | 2.25 | 2.26 | +-----------------+-----------------+-----------------+ 1 row in set (0.00 sec) mysql> SELECT ROUND(2.250, 0), ROUND(2.251, 0), ROUND(2.259, 0); +-----------------+-----------------+-----------------+ | ROUND(2.250, 0) | ROUND(2.251, 0) | ROUND(2.259, 0) | +-----------------+-----------------+-----------------+ | 2 | 2 | 2 | +-----------------+-----------------+-----------------+ 1 row in set (0.00 sec)
CEILING
Fungsi CEILING dapat digunakan untuk membulatkan suatu bilangan desimal menjadi satu nilai di atasnya. Nama alias dari fungsi di atas adalah CEIL. Dengan menggunakan fungsi CEILING, semua nilai desimal baik di bawah nilai 5 atau di atas 5 akan tetap dibulatkan satu nilai di atasnya.
mysql> SELECT CEILING(2.23), CEILING(2.55), CEILING(2.90); +---------------+---------------+---------------+ | CEILING(2.23) | CEILING(2.55) | CEILING(2.90) | +---------------+---------------+---------------+ | 3 | 3 | 3 | +---------------+---------------+---------------+ 1 row in set (0.00 sec)
Begitu juga dengan bilangan negatif desimal, pembulatan juga akan tetap dilakukan ke dalam satu nilai di atasnya.
mysql> SELECT CEILING(-2.23), CEILING(-2.55), CEILING(-2.90); +----------------+----------------+----------------+ | CEILING(-2.23) | CEILING(-2.55) | CEILING(-2.90) | +----------------+----------------+----------------+ | -2 | -2 | -2 | +----------------+----------------+----------------+ 1 row in set (0.01 sec)</pre> mysql> SELECT CEIL(-1.10), CEIL(-1.99); +-------------+-------------+ | CEIL(-1.10) | CEIL(-1.99) | +-------------+-------------+ | -1 | -1 | +-------------+-------------+ 1 row in set (0.00 sec)
FLOOR
Berbeda dengan fungsi sebelumnya, fungsi FLOOR digunakan untuk membulatkan suatu bilangan desimal menjadi satu nilai di bawahnya. Dengan menggunakan fungsi ini, semua nilai desimal baik di bawah nilai 5 atau di atas 5 akan tetap dibulatkan satu nilai di bawahnya. Dengan arti lain, fungsi ini akan membuang nilai desimal, sehingga hasilnya adalah nilai asli dari suatu bilangan. Untuk lebih mudah memahaminya, ikutilah contoh praktik di bawah.
mysql> SELECT FLOOR(2.01), FLOOR(2.45), FLOOR(2.95); +-------------+-------------+-------------+ | FLOOR(2.01) | FLOOR(2.45) | FLOOR(2.95) | +-------------+-------------+-------------+ | 2 | 2 | 2 | +-------------+-------------+-------------+ 1 row in set (0.00 sec)
Jika bilangan desimalnya berbentuk negatif, maka nilainya akan diturunkan menjadi satu nilai yang lebih kecil. Misalnya, jika ada nilai -2, maka akan diturunkan menjadi -3.
mysql> SELECT FLOOR(-2.01), FLOOR(-2.45), FLOOR(-2.95); +--------------+--------------+--------------+ | FLOOR(-2.01) | FLOOR(-2.45) | FLOOR(-2.95) | +--------------+--------------+--------------+ | -3 | -3 | -3 | +--------------+--------------+--------------+ 1 row in set (0.00 sec)
ABS
Fungsi ABS digunakan untuk mendapatkan nilai absolut (nilai positif) dari suatu bilangan. Jika kita memiliki nilai negatif, maka nilai yang dihasilkan akan menjadi bilangan positif. Misalnya:
mysql> SELECT ABS(3), ABS(-3), ABS(-3.34); +--------+---------+------------+ | ABS(3) | ABS(-3) | ABS(-3.34) | +--------+---------+------------+ | 3 | 3 | 3.34 | +--------+---------+------------+ 1 row in set (0.00 sec)
DIV
Fungsi DIV digunakan untuk mendapatkan nilai hasil pembagian dari dua buah bilangan. Nilai yang dihasilkan dari fungsi ini bebentuk bilangan asli tanpa pecahan. Perintahnya sebagai berikut: Penggunaan fungsi ini terletak ditengah-tengah dua bilangan. Untuk lebih jelasnya, Anda dapat melihat contoh berikut:
mysql> SELECT 5 DIV 2, 5 DIV 3, 9 DIV 3; +---------+---------+---------+ | 5 DIV 2 | 5 DIV 3 | 9 DIV 3 | +---------+---------+---------+ | 2 | 1 | 3 | +---------+---------+---------+ 1 row in set (0.01 sec) mysql> SELECT 5/ 2, 5 /3, 9 / 3; +-------+-------+-------+ | 5 / 2 | 5 / 3 | 9 / 3 | +-------+-------+-------+ | 2.50 | 1.67 | 3.00 | +-------+-------+-------+ 1 row in set (0.00 sec)
MOD
Fungsi MOD digunakan untuk mendapatkan modulus atau sisa pembagian dari operasi pembagian. Jika pada fungsi DIV hasil dari sisa pembagiannya diabaikan, maka pada fungsi ini malah yang menjadi hasilnya. Bilangan yang akan dibagi memiliki nilai lebih besar dari bilangan pembaginya. Untuk mempermudah pemahaman, Anda dapat mempraktikkan beberapa perintah di bawah:
mysql> SELECT MOD(5,2), MOD(5, 3), MOD(9, 3); +----------+-----------+-----------+ | MOD(5,2) | MOD(5, 3) | MOD(9, 3) | +----------+-----------+-----------+ | 1 | 2 | 0 | +----------+-----------+-----------+ 1 row in set (0.01 sec) mysql> SELECT 5 % 2, 5 % 3, 9 % 3; +-------+-------+-------+ | 5 % 2 | 5 % 3 | 9 % 3 | +-------+-------+-------+ | 1 | 2 | 0 | +-------+-------+-------+ 1 row in set (0.00 sec)
POW
Fungsi POW digunakan untuk mencari nilai pangkat dari suatu bilangan. Anda pasti sudah paham, bahwa pangkat merupakan operasi perkalian suatu nilai dengan dirinya sendiri sebanyak jumlah pemangkatnya. Pada praktiknya, penggunaan fungsi POW dapat digantikan dengan POWER, kedua fungsi ini menghasilkan nilai yang sama. Perhatikan contoh berikut:
mysql> SELECT POW(2, 3), POWER(2, 4), POW(4, 2); +-----------+-------------+-----------+ | POW(2, 3) | POWER(2, 4) | POW(4, 2) | +-----------+-------------+-----------+ | 8 | 16 | 16 | +-----------+-------------+-----------+ 1 row in set (0.01 sec)





March 12, 2009 at 6:34 am
heheheh..
\bro..blogmu tek a[pik men..
garai pengen kie….
March 12, 2009 at 6:43 am
lha iyo toh…