Pada tutorial sebelumnya kita sudah belajar bagaimana cara membuat dan menghapus database. Sekarang kita lanjutkan dengan memahami tipe data numerik pada MySQL.
MySQL memiliki banyak tipe data, secara garis besar tipe data MySQL di bagi menjadi:
- Tipe data numerik
- Tipe data string
- Tipe data date and time
Ketika akan membuat tabel di dalam database untuk menampung sejumlah data, sebelum itu tentukan terlebih dulu tipe data setiap kolomnya.
Misalkan kita akan membuat tabel biodata mahasiswa, maka di dalam biodata mahasiswa terdapat kolom nim, nama, tanggal lahir, alamat, dan nomor hp. Dari data tersebut kita tentukan tipe data satu per satu yaitu untuk nim karena nim merupakan angka semua, maka kita beri tipe data numerik (kusus untuk angka saja), selanjutnya untuk nama karena nama hanya terdiri dari huruf saja maka kita beri tipe data string (kusus untuk huruf saja) dan untuk tanggal lahir kita beri tipe data date.
Di tutorial ini kita akan bahas terlebih dahulu mengenai tipe data numerik
Pada umumnya tipe data numerik di MySQL dibedakan menjadi dua yaitu:
- Tipe data integer (bilangan bulat)
- Tipe data floating point/fixed point (bilangan pecahan)
Tipe Data Integer
Integer merupakan tipe data yang menampung bilangan bulat positif dan negatif.
Integer juga memiliki beberapa tipe data yaitu:
- TINYINT (very small integer)
- SMALLINT (small integer)
- MEDIUMINT (medium integer)
- INT (medium integer)
- BIGINT (big integer)
Kelima tipe data di atas dari yang paling kecil hingga yang paling besar, digunakan sesuai dengan kebutuhan masing-masing. Perbedaannya terletak pada jangkauan data dan besar memori terpakai dari masing-masing tipe data itu sendiri.
Misalkan kita memasukkan nim dengan jumlah angka sebanyak sembilan digit, maka gunakan tipe data INT. begitu pula sebaliknya, jika memasukkan data id murid satu kelas yang hanya berjumlah 30 orang, maka gunakan tipe data TINYINT.
Format query penulisan tipe data integer adalah:
INT [(M)] [UNSIGNED] [ZEROFILL]
Nilai M merupakan jumlah digit yang di atur untuk menampilkan data.
Unsigned di atur untuk mendapatkan jangkauan nilai positif yang lebih tinggi dari signed. Jika unsigned tidak di definisikan, maka secara default tipe data integer bernilai signed.
Zerofill merupakan nilai angka 0 yang di isi di sebelah kiri nilai M. misalkan kita set INT (5), akan tetapi data yang di inputkan adalah (123) yang berarti hanya berjumlah 3 digit saja. Maka zerofill akan menambahkan dua buah angka 0 di sebelah kiri nilai M untuk mengisi kekosongan digit. dari semula (123) menjadi (00123).
Kita bebas ingin menggunakan unsigned dan zerofill karena bersifat optional. Namun kembali lagi di sesuaikan dengan kebutuhan
Type | Length in Bytes | Minimum Value (Signed) | Maximum Value (Signed) | Minimum Value (Unsigned) | Maximum Value (Unsigned) |
TINYINT | 1 | -128 | 127 | 0 | 255 |
SMALLINT | 2 | -32768 | 32767 | 0 | 65535 |
MEDIUMINT | 3 | -8388608 | 8388607 to | 0 | 16777215 |
INT | 4 | -2147483648 | 2147483647 | 0 | 4294967295 |
BIGINT | 8 | -9223372036854775808 | 92233720368 54775807 | 0 | 184467440737 09551615 |
Keterangan:
- Type (integer)
- Length in byte (memori yang terpakai) misalkan tinyint menyimpan data sebesar 1 byte per sekali input data, kalau ada 10 data yang diinputkan maka kalikan saja. Makin banyak data yang diinputkan, makin banyak pula memori yang digunakan
- Signed (menampung bilangan positif dan negatif)
- Unsigned (menampung bilangan positif)
Catatan: Untuk pemula, mungkin kamu bingung dengan angka – angka tabel di atas. Namun, sedikit demi sedikit akan paham ketika kamu latihan beberapa contoh kasus pembuatan database
Tipe Data Fixed Point
Tipe data fixed point adalah tipe data angka pecahan (DECIMAL) di mana jumlah angka pecahan di belakang koma sudah di tentukan dari awal, sehingga jumlah digitnya tetap.
Format query penulisan tipe data DECIMAL adalah
DECIMAL [(M, D)] [UNSIGNED] [ZEROFILL]
M merupakan jumlah digit angka keseluruhan dan D merupakan jumlah digit angka di belakang koma.
Maksimal nilai M adalah 65 dan maksimal nilai D adalah 30 dengan syarat nilai D tidak boleh lebih besar dari nilai M.
Jika kita tidak mendefinisikan nilai M dan D maka secara default nilai M adalah 10 dan nilai D adalah 0.
Tipe data decimal cocok digunakan untuk menampung nilai uang.
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 |
Tipe Data Floating Point
MySQL membagi dua macam tipe data floating point yaitu FLOAT dan DOUBLE. Perbedaan di antara keduanya yaitu FLOAT menggunakan sigle precision dan DOUBLE menggunakan double precision.
Jika fixed point jumlah digit angkanya di belakang koma bersifat tetap, maka floating point bisa berubah-ubah.
Format query penulisan tipe data floating point adalah
FLOAT [(M, D)] [UNSIGNED] [ZEROFILL]
DOUBLE [(M, D)] [UNSIGNED] [ZEROFILL]
Tipe data floating point cocok digunakan untuk menampung nilai longitude dan latitude.
Type | Length in Bytes | Minimum Value (Signed) | Maximum Value (Signed) | Minimum Value (Unsigned) | Maximum Value (Unsigned) |
FLOAT | 4 | -3.402823466E+38 | -1.175494351E-38 | 1.175494351E-38 | 3.402823466E+38 |
DOUBLE | 8 | -1.7976931348623 157E+ 308 | -2.22507385850720 14E- 308 | 0, and 2.22507385850720 14E- 308 | 1.797693134862315 7E+ 308 |
Kesimpulan:
Tipe data numerik secara umum dibagi menjadi dua yaitu bilangan bulat dan bilangan pecahan. Bilangan bulat disebut dengan tipe data integer. Tipe data ini juga dipecah mejadi beberapa bagian tipe yaitu tinyint, smallint, mediumint, int, dan bigint.
Bilangan pecahan juga terbagi menjadi dua macam yaitu fixed point dan floating point. Fixed point yaitu bilangan decimal dimana jumlah digit angka di belakang koma sudah ditetapkan dari awal sedangkan floating point dimana jumlah digit angka di belakang koma bisa berubah-ubah. Floating point terbagi menjadi dua macam tipe yaitu float dan double.
Semua macam-macam tipe data di atas di sediakan untuk digunakan sesuai dengan kebutuhan.
Pada tutorial selanjutnya kita akan bahas TIPE DATA STRING MySQL
Selamat belajar, semoga bermanfaat!🎉🎉
Tinggalkan Balasan