info-b

Tutorial Belajar MySQL Part 13: Tipe Data Numerik MySQL

Posted on

Sekiranya kita merancang tabel, seperti yang telah kita pelajari di Tutorial Belajar MySQL: Membuat dan Menghapus Tabel, bagi mendefiniskan kolom kita mesti mendefenisikan tipe data bagi kolom tersebut.

Pada panduan ini, kita akan mempelajari mengenai tipe-tipe data numerik (angka), yang meliputi Integer, Fixed Point, dan Floating Point pada MySQL.


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

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

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

Tipe Data Jangkauan SIGNED Jangkauan UNSIGNED Ukuran
TINYINT -128 to 127 0 to 255 1 byte
SMALLINT -32,768 to 32,767 0 to 65,535 2 bytes
MEDIUMINT -8,388,608 to 8,388,607 0 to 16,777,215 3 bytes
INT -2,147,483,648 to 2,147,483,647 0 to 4,294,967,295 4 bytes
BIGINT -9,223,372,036,854,775,808 to

9,223,372,036,854,775,807

0 to

18,446,744,073,709,551,615

8 bytes

Selain INT, kita dapat pun menuliskan INTEGER pada query MySQL, keduanya sama persis, hanya beda di penamaan.

Pemilihan tipe data ini tergantung akan keperluan data kita. Misalkan bagi nomor urut kehadiran di suatu kelas yang mempunyai maksimal 30 orang, tipe data TINYINT telah mencukupi. Namun seandainya kita bermaksud merancang kehadiran seluruh rakyat indonesia, tipe data TINYINT hingga dengan MEDIUMINT tak akan mencukupi. Kita mesti memilih INT atau BIGINT.

Idealnya, sedapat mungkin kita menggunakan tipe data sangat kecil, karena menyangkut dengan ukuran dari database. Menggunakan INT bagi jumlah anggota keluarga seseorang mungkin tak efisien. Namun lebih bagus mengantisipasi besarnya data sedapat mungkin di awal perancangan database.

Perubahan tipe data disaat program telah diimplementasikan akan berpotensi merancang beberapa data hilang, atau program gagal berjalan. Dengan ukuran media penyimpanan yang semakin besar dan murah, mengorbankan ukuran demi program yang handal bukan sesuatu yang buruk.


Cara Penulisan Tipe Data Integer MySQL

Format query bagi tipe data integer yaitu:

Setiap tipe data integer dapat di definisikan selaku UNSIGNED, dimana kita mengorbankan nilai negatif, bagi memperoleh jangkauan nilai positif yang lebih tinggi.

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

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

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

Contoh query perancangan tabel dengan deklarasi integer :

Dari query DESC kita dapat melihat kolom mini
dan kecil, secara otomatis akan bersisi nilai M, walaupun pada deklarasi perancangan tabel kita tak menyatakannya secara seketika. Nilai ini didapat dari jangkauan terbesar tipe data tersebut

Sekiranya kita inputkan angka 122 kedalam seluruh kolom, hasilnya yaitu selaku berikut:

Bagi command INSERT dan SELECT, kita akan mempelajarinya lebih jauh di panduan berikutnya, query INSERT digunakan bagi input data ke pada tabel, dan SELECT digunakan bagi menampilkan nilai dari tabel. Dari contoh diatas kita setidaknya mendapat sekilas bagaimana cara deklarasi tipe data integer. Perhatikan bagi kolom sedang dan besar, terdapat angka nol di depan angka. Hal ini karena kedua kolom tersebut kita deklarasikan selaku ZEROFILL.


Tipe Fixed Point MySQL: DECIMAL

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

DECIMAL adalah sebuah kata kunci bagi mendefiniskan suatu kolom selaku fixed point.

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

Deklarasi Jangkauan
DECIMAL (4,1) -999,9 to 999,9
DECIMAL (6,2) -9999,99 to 9999,99
DECIMAL (3,2) -9,99 to 9,99
DECIMAL (8,2) -999999,99 to 999999,99

Maksimal nilai bagi M yaitu 65, dan maksimal nilai D yaitu 30. Dengan syarat, nilai D tak boleh lebih besar dari nilai M. Sekiranya kita tak menyertakan M dan D pada mendefinisikan suatu kolom DECIMAL, karenanya secara program M akan di set 10. Dan D default 0. Tipe data DECIMAL ini cocok digunakan bagi kolom yang difungsikan bagi menampung nilai uang.

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

Contoh pendefinisian tabel dengan kolom DECIMAL:

Perhatikan kolom normal, bahwa nilai DECIMAL di deklarasikan selaku DECIMAL(10,0), ini yaitu default MySQL seandainya kita tak menuliskan jumlah digit.

Khusus bagi kolom normal, kita perhatikan karena deklarasinya yaitu DECIMAL (10,0), karenanya seluruh digit dibelakang koma dari inputan kita akan dihilangkan.

Selain menggunakan DECIMAL bagi fixed point, MySQL pun menyediakan beberapa nama lain, yang sama persis dengan kegunaan DECIMAL, yaitu: NUMERIC, FIXED dan DEC. Alternatif ini disediakan agar MySQL sesuai dengan standard SQL yang digunakan di bermacam RDBMS lain, seperti Oracle.


Tipe Floating Point : FLOAT dan DOUBLE

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

Tipe Floating Point pun diperuntukkan bagi nilai desimal, perbedaan antara Fixed Point dengan Floating Point lebih kedalam arsitektur (cara perhitungannya di prosesor komputer) dan ketelitian (presisi) yang digunakan. Mengenai perbedaan fixed dan floating point tak akan kita bahas, namun setidaknya kita mengetahui bahwa MySQL menyediakan tipe data bagi keduanya.

Tipe Data Jangkauan Ukuran
FLOAT -3.402823466E+38 to 3.402823466E+38 4 bytes
DOUBLE -1.7976931348623157E+308 to 1.7976931348623157E+308 8 bytes

Bagi tipe data FLOAT dan DOUBLE, format querynya yaitu:

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

Opsional query UNSIGNED seandainya di nyatakan, akan menghilangkan kemampuan tipe data bagi meyimpan angka negatif (tak menambah jangkauan dari yang tipe data integer)

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

Contoh pendefinisan tipe data floating point:

Karena tipe data floating point menggunakan pendekatan nilai, menggunakan tipe data ini bagi perbandingan akan menyebabkan masalah. Hal ini disebabkan cara penyimpanan arsitektur prosesor pada menangani tipe floating point, bukan semata-mata permasalahan di MySQL. Pertimbangkan bagi menggunakan tipe data fixed point seandainya lebih membutuhkan presisi/ketelitian.


Pada panduan belajar MySQL kali ini kita telah mempelajari tipe-tipe data numerik dalam MySQL, yakni meliputi Tipe data Integer, Decimal, dan Float. Pada panduan berikutnya, kita akan membahas mengenai tipe data huruf (string) dalam MySQL.


Sumber https://www.duniailkom.com/