Tentu, berikut adalah artikel tutorial tentang Tipe Data DECIMAL di MySQL.
Dalam dunia database, presisi adalah segalanya, terutama saat Anda berurusan dengan data keuangan atau perhitungan yang memerlukan angka di belakang koma. Jika Anda pernah menggunakan tipe data FLOAT atau DOUBLE dan menemukan hasil yang tidak akurat, ini adalah saatnya Anda berkenalan dengan Tipe Data DECIMAL di MySQL.
Tipe data DECIMAL adalah pilihan terbaik untuk menyimpan nilai numerik yang memerlukan presisi mutlak. Berbeda dengan FLOAT dan DOUBLE yang menggunakan perkiraan dan bisa mengalami masalah pembulatan, DECIMAL menyimpan nilai sebagai string angka, memastikan setiap digit dipertahankan dengan tepat.
Kapan Menggunakan DECIMAL?
Gunakan DECIMAL untuk data-data berikut:
- Nilai Keuangan: Harga produk, saldo rekening bank, total tagihan.
- Perhitungan Matematika: Setiap perhitungan yang membutuhkan akurasi tinggi dan tidak boleh ada kesalahan pembulatan.
- Data Presisi: Pengukuran ilmiah, data GPS, atau nilai lainnya yang membutuhkan digit akurat.
Penting: Hindari menggunakan
FLOATatauDOUBLEuntuk data keuangan. Meskipun terlihat lebih efisien, ketidakakuratan yang kecil bisa menjadi masalah besar dalam jangka panjang.
Sintaks Dasar DECIMAL
Sintaks untuk mendefinisikan kolom dengan tipe data DECIMAL adalah sebagai berikut:
DECIMAL(M, D)
M(presisi) adalah jumlah total digit yang akan disimpan. Ini termasuk digit di kiri dan kanan titik desimal. Nilainya bisa dari 1 hingga 65.D(skala) adalah jumlah digit yang berada di sebelah kanan titik desimal (digit desimal). Nilainya bisa dari 0 hingga 30. JikaDtidak ditentukan, nilai default-nya adalah 0.
Mari kita lihat beberapa contoh:
DECIMAL(5, 2): Kolom ini bisa menyimpan hingga 5 digit, dengan 2 digit di antaranya berada di belakang koma. Contoh nilai yang valid:123.45,99.99, atau500.00.DECIMAL(8, 4): Kolom ini bisa menyimpan hingga 8 digit, dengan 4 di antaranya di belakang koma. Contoh nilai yang valid:1234.5678,999.0000, atau1.2345.DECIMAL(10, 0): Kolom ini bisa menyimpan angka hingga 10 digit tanpa digit di belakang koma (bilangan bulat). Contoh nilai yang valid:1234567890.
Contoh Penerapan di MySQL
Misalkan Anda ingin membuat tabel untuk menyimpan data produk. Kolom harga (harga_produk) harus sangat akurat.
CREATE TABLE produk (
id_produk INT PRIMARY KEY AUTO_INCREMENT,
nama_produk VARCHAR(100),
harga_produk DECIMAL(10, 2)
);
Dalam contoh di atas, DECIMAL(10, 2) memungkinkan harga hingga 10 digit, dengan 2 digit di belakang koma. Ini berarti nilai maksimum yang dapat disimpan adalah 99999999.99.
Sekarang, mari kita coba masukkan beberapa data:
INSERT INTO produk (nama_produk, harga_produk) VALUES ('Laptop', 12500000.50);
INSERT INTO produk (nama_produk, harga_produk) VALUES ('Mouse Gaming', 550000.75);
INSERT INTO produk (nama_produk, harga_produk) VALUES ('Keyboard Mekanik', 1800000.00);
Ketika Anda menjalankan query SELECT untuk melihat data:
SELECT * FROM produk;
Anda akan mendapatkan hasil yang presisi:
+-----------+------------------+----------------+
| id_produk | nama_produk | harga_produk |
+-----------+------------------+----------------+
| 1 | Laptop | 12500000.50 |
| 2 | Mouse Gaming | 550000.75 |
| 3 | Keyboard Mekanik | 1800000.00 |
+-----------+------------------+----------------+
MySQL menyimpan setiap digit dengan sempurna, tanpa ada masalah pembulatan.
Perbedaan DECIMAL vs FLOAT/DOUBLE
| Fitur | DECIMAL |
FLOAT / DOUBLE |
| Akurasi | Sempurna. Menyimpan nilai presisi. | Perkiraan. Bisa mengalami masalah pembulatan. |
| Penyimpanan | Ukuran penyimpanan bervariasi tergantung presisi (M dan D), biasanya lebih besar. |
Ukuran penyimpanan tetap (4 byte untuk FLOAT, 8 byte untuk DOUBLE). |
| Penggunaan | Nilai keuangan, matematika, data ilmiah. | Perhitungan teknis yang tidak memerlukan presisi mutlak (contoh: pengukuran fisika). |
Kesimpulan
Tipe data DECIMAL adalah solusi andal di MySQL untuk setiap kasus di mana akurasi data menjadi prioritas utama. Dengan memahami sintaks DECIMAL(M, D), Anda dapat memastikan bahwa semua nilai keuangan dan data presisi Anda tersimpan dengan benar, menghindari masalah pembulatan yang bisa terjadi dengan tipe data numerik lainnya. Gunakanlah DECIMAL kapan pun presisi menjadi kunci dalam aplikasi Anda.