Tipe Data Integer MySQL: Tinyint , Smallint, Mediumint, Integer (Int), dan Bigint

Integer adalah tipe data untuk angka bulat (misalnya: 1,6, 59, -533, 1449). MySQL menyediakan beberapa tipe data untuk integer, perbedaannya lebih kepada jangkauan yang juga berpengaruh terhadap ukuran tipe data tersebut.

Jangkauan serta ukuran penyimpanan tipe data integer dalam MySQL dapat dilihat dari tabel dibawah ini:

Pemilihan tipe data ini tergantung akan kebutuhan data kita. Misalkan untuk nomor urut absensi pada suatu kelas yang memiliki maksimal 30 orang, tipe data TINYINT sudah mencukupi. Namun jika kita bermaksud membuat absensi seluruh rakyat indonesia, tipe data TINYINT sampai dengan MEDIUMINT tidak akan mencukupi. Kita harus memilih INT atau BIGINT.

Cara Penulisan Tipe Data Integer MySQL

Format query untuk tipe data integer adalah:

INT[(M)] [UNSIGNED] [ZEROFILL]

Setiap tipe data integer dapat di definisikan sebagai UNSIGNED, dimana kita mengorbankan nilai negatif, untuk mendapatkan jangkauan nilai positif yang lebih tinggi.

Dalam deklarasi tipe data integer, nilai M adalah jumlah digit yang disediakan untuk menampilkan data. Misalnya kita mendefiniskan suatu kolom dengan INT(5), jika kita input angka 102, maka MySQL akan menambahkan spasi sebanyak 2 buah di depan angka, agar tampilan data menjadi 5 digit (istilah pemogramannya : padding left).

Nilai M tidak mempengaruhi nilai maksimal dari integer. Jika angka yang diinputkan melebihi digit M, MySQL akan tetap menampilkan hasilnya (selama masih dalam jangkauan tipe data tersebut). Jika kita deklarasikan INT(4), nilai maksimal tetap 2,147,483,647 bukan 9999.

Selain opsional query UNSIGNED, pendeklarasian integer juga terdapat opsional atribut ZEROFILLZEROFILL ini berhubungan dengan nilai M, yang akan mengisi angka 0 pada bagian kiri nilai yang diinput alih-alih spasi.

Contoh query pembuatan tabel dengan deklarasi integer :

Dari query DESC kita dapat melihat kolom mini dan kecil, secara otomatis akan bersisi nilai M, walaupun dalam deklarasi pembuatan tabel kita tidak menyatakannya secara langsung. Nilai ini didapat dari jangkauan terbesar tipe data tersebut

Jika kita inputkan angka 122 kedalam seluruh kolom, hasilnya adalah sebagai berikut:

Untuk perintah INSERT dan SELECT, kita akan mempelajarinya lebih jauh pada tutorial berikutnya, query INSERT digunakan untuk input data ke dalam tabel, dan SELECT digunakan untuk menampilkan nilai dari tabel. Dari contoh diatas kita setidaknya mendapat gambaran bagaimana cara deklarasi tipe data integer. Perhatikan untuk kolom sedang dan besar, terdapat angka nol di depan angka. Hal ini karena kedua kolom tersebut kita deklarasikan sebagai ZEROFILL.

Tipe Fixed Point MySQL: DECIMAL

Tipe data fixed point adalah tipe data angka pecahan (desimal), dimana jumlah angka pecahan (angka di belakang koma) sudah di tentukan dari awal. Format penulisan query fixed point adalah:

DECIMAL [(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL merupakan kata kunci untuk mendefiniskan suatu kolom sebagai fixed point.

Besar dari tipe data fixed point ini tergantung dari opsional query [M,D] dimana M adalah total jumlah digit keseluruhan, dan D adalah jumlah digit dibekang koma (pecahan). Contohnya DEC [6,2] akan mendefiniskan suatu kolom agar memuat 6 digit angka, dengan 4 angka di depan koma, dan 2 digit angka di belakang koma.

Maksimal nilai untuk M adalah 65, dan maksimal nilai D adalah 30. Dengan syarat, nilai D tidak boleh lebih besar dari nilai M. Jika kita tidak menyertakan M dan D dalam mendefinisikan suatu kolom DECIMAL, maka secara sistem M akan di set 10. Dan D default 0. Tipe data DECIMAL ini cocok digunakan untuk kolom yang difungsikan untuk menampung nilai uang.

Opsional query UNSIGNED jika disertakan hanya semata-mata membuang nilai negatif dari DECIMAL, tanpa memperbesar jangkauannya. Opsional query ZEROFILL sama seperti integer, akan mengisi angka 0 pada bagian kiri angka.

Contoh pendefinisian tabel dengan kolom DECIMAL:

mysql> CREATE TABLE contoh_dec (satuan DECIMAL(3,2), puluhan DECIMAL(4,2), 
ribuan DECIMAL(5,2), normal DECIMAL, cantik DECIMAL(8,2) ZEROFILL);
 
Query OK, 0 rows affected (0.13 sec)
 
mysql> DESCRIBE contoh_dec;
+---------+--------------------------------+------+-----+---------+-------+
| Field   | Type                           | Null | Key | Default | Extra |
+---------+--------------------------------+------+-----+---------+-------+
| satuan  | decimal(3,2)                   | YES  |     | NULL    |       |
| puluhan | decimal(4,2)                   | YES  |     | NULL    |       |
| ribuan  | decimal(5,2)                   | YES  |     | NULL    |       |
| normal  | decimal(10,0)                  | YES  |     | NULL    |       |
| cantik  | decimal(8,2) unsigned zerofill | YES  |     | NULL    |       |
+---------+--------------------------------+------+-----+---------+-------+
5 rows in set (0.08 sec)

Perhatikan kolom normal, bahwa nilai DECIMAL di deklarasikan sebagai DECIMAL(10,0), ini adalah default MySQL jika kita tidak menuliskan jumlah digit.

mysql> INSERT INTO contoh_dec values ((1.3), (55.32), 
(523.77), (7832.3), (150000.45));
 
Query OK, 1 row affected, 1 warning (0.07 sec)
 
mysql> SELECT * FROM contoh_dec;
+--------+---------+--------+--------+-----------+
| satuan | puluhan | ribuan | normal | cantik    |
+--------+---------+--------+--------+-----------+
|   1.30 |   55.32 | 523.77 |   7832 | 150000.45 |
+--------+---------+--------+--------+-----------+
1 row in set (0.00 sec)

Khusus untuk kolom normal, kita perhatikan karena deklarasinya adalah DECIMAL (10,0), maka seluruh digit dibelakang koma dari inputan kita akan dihilangkan.

Tipe Floating Point : FLOAT dan DOUBLE

Jika pada tipe fixed point kita mendefiniskan suatu kolom dengan nilai pecahan yang tetap, untuk tipe floating point, nilai pecahan yang dapat diinput bisa berbeda-beda. Untuk tipe floating point, MySQL menyediakan 2 jenis tipe data, yaitu FLOAT dan DOUBLE. Perbedaan keduanya terletak pada presisi (ketelitian) pembulatan. FLOAT menggunakan single-precision, sedangkan DOUBLE menggunakan  double-precision.

Untuk tipe data FLOAT dan DOUBLE, format querynya adalah:

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

Sama seperti pada tipe data DECIMAL, nilai opsional query [M, D] dimana M adalah total jumlah digit keseluruhan, dan D adalah jumlah digit dibekang koma (pecahan). Maksimal nilai M dan D akan berbeda pada tiap komputer, tergantung kemampuan prosesor mengolah tipe data floating point. FLOAT biasanya akan akurat untuk penyimpanan sekitar 7 angka desimal, sedangkan DOUBLE mencapai 15 angka desimal.

Opsional query UNSIGNED jika di nyatakan, akan menghilangkan kemampuan tipe data untuk meyimpan angka negatif (tidak menambah jangkauan sebagaimana tipe data integer)

Opsional query ZEROFILL sama seperti integer, akan mengisi angka 0 pada bagian kiri angka.

Contoh pendefinisan tipe data floating point:

mysql> CREATE TABLE contoh_float (satuan FLOAT(3,2), puluhan FLOAT(4,2), 
ribuan FLOAT(5,2), positif DOUBLE ZEROFILL UNSIGNED, 
cantik DOUBLE(8,2) ZEROFILL);
 
Query OK, 0 rows affected (1.21 sec)
 
mysql> DESCRIBE contoh_float;
+---------+-------------------------------+------+-----+---------+-------+
| Field   | Type                          | Null | Key | Default | Extra |
+---------+-------------------------------+------+-----+---------+-------+
| satuan  | float(3,2)                    | YES  |     | NULL    |       |
| puluhan | float(4,2)                    | YES  |     | NULL    |       |
| ribuan  | float(5,2)                    | YES  |     | NULL    |       |
| positif | double unsigned zerofill      | YES  |     | NULL    |       |
| cantik  | double(8,2) unsigned zerofill | YES  |     | NULL    |       |
+---------+-------------------------------+------+-----+---------+-------+
5 rows in set (0.04 sec)
 
mysql> INSERT INTO contoh_float values ((1.3), (55.32), (523.77), 
(7832.3), (150000.45));
 
Query OK, 1 row affected (0.15 sec)
 
mysql> SELECT * FROM contoh_float;
+--------+---------+--------+------------------------+-----------+
| satuan | puluhan | ribuan | positif                | cantik    |
+--------+---------+--------+------------------------+-----------+
|   1.30 |   55.32 | 523.77 | 00000000000000007832.3 | 150000.45 |
+--------+---------+--------+------------------------+-----------+
1 row in set (0.00 sec)

Sumber : https://www.duniailkom.com/tutorial-mysql-tipe-data-numerik-integer-fixed-point-dan-floating-point/

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *