info-b

Tutorial Belajar MySQL Part 14: Tipe Data String (Huruf) MySQL

Posted on

Tipe data berikutnya yang akan kita pelajari setelah Tutorial Belajar MySQL: Tipe Data Numerik ialah tipe data karakter atau huruf (pada permograman sering disebut tipe data string).

MySQL menyediakan beberapa tipe data string: CHAR, VARCHAR, BINARY, VARBINARY, TEXT dan BLOB. Perbedaan dari tipe data ini ialah dari ukuran, cara penyimpanan, dan dukungan case-sensitif (perbedaan huruf besar dan kecil). Kita akan membahasnya secara mendetail pada panduan belajar MySQL: Tipe Data String (Huruf) MySQL kali ini.


Tipe data CHAR dan VARCHAR MySQL

Tipe data CHAR dan VARCHAR ialah tipe data karakter (string) yang akan sering kita gunakan.

Format query tipe data CHAR dan VARCHAR:

Dimana M ialah jumlah karakter yang akan dialokasikan oleh MySQL. Misalkan nilai M=5, karenanya MySQL menyediakan 5 karakter bagi kolom tersebut. Nilai maksimal M ialah 255 karakter bagi CHAR, dan 65,535 karakter bagi VARCHAR. Sekiranya nilai M tak di nyatakan, nilai defaultnya M=1.

Perbedaan antara CHAR dan VARCHAR ialah dari cara MySQL mengalokasikan ukuran penyimpanan data yang diinput kedalam kolom tersebut. Contohnya, apabila kita mendefiniskan sebuah tabel dengan kolom bertipe CHAR(5), walaupun huruf atau karakter yang kita inputkan hanya 1 karakter, MySQL tetap menyimpan kolom tersebut bagi 5 karakter. Namun apabila kita definiskan selaku VARCHAR(5), dan kita menginput data dengan jumlah karakter 2, karenanya ukuran penyimpanan hanya akan menggunakan 2 karakter, sehingga VARCHAR lebih fleksibel dan efisien.

Tetapi bagi fleksibilitas ini, tipe VARCHAR memerlukan proses tambahan bagi menyimpan ukuran dari masing-masing data. Sehingga VARCHAR akan sedikit lebih lambat bila dibandingi CHAR. Walaupun demikian, proses ini hampir tak terdeteksi, sahabat bebas menggunakan CHAR atau VARCHAR bagi tipe data string.

Contoh perbedaan antara CHAR dan VARCHAR dapat kita lihat dari tabel dibawah ini:

Data CHAR(5) Ukuran Peyimpanan VARCHAR(5) Ukuran Peyimpanan
‘ ‘ ‘     ‘ 5 byte ‘ ‘ 1 byte
‘du’ ‘du    ‘ 5 byte ‘du’ 3 byte
‘dunia’ ‘dunia’ 5 byte ‘dunia’ 6 byte
‘duniailkom’ ‘dunia’ 5 byte ‘dunia’ 6 byte

Dari tabel diatas, kita dapat melihat bahwa ukuran penyimpanan bagi VARCHAR berubah-ubah tergantung data yang diinput. Namun hakekatnya VARCHAR membutuhkan 1 byte tambahan bagi menyimpan panjang data. Sekiranya kita definiskan VARCHAR(5) dan menginputkan ‘dunia’, karenanya akan membutuhkan 5+1 byte. Berbeda dengan CHAR(5) yang tak membutuhkan tambahan byte.

Jadi, keperluan akan tipe data antara CHAR dan VARCHAR bergantung kepada seperti apa data yang akan kita input. Tipe data CHAR cocok digunakan bagi kolom yang mempunyai jumlah karakter tetap, misalnya bagi nomor KTP, ID customer dan NIM mahasiswa. Sedangkan tipe data VARCHAR akan lebih cocok digunakan bagi kolom yang berisi data yang berbeda-beda ukuran, seperti nama, tempat tinggal dan kota.

Bagus CHAR maupun VARCHAR data yang diinput akan disimpan secara case insensitif, dimana huruf besar dan kecil tak dibedakan.

Bagi tipe data CHAR, apabila kita menginputkan data dengan spasi dibelakangnya, misalnya ‘kami   ’ (terdapat 3 spasi setelah ‘kami’), karenanya sewaktu menampilkan data, spasi tersebut akan otomastis dihapus oleh MySQL, menjadi‘kami’. Pertimbangkan menggunakan VARCHAR apabila hal ini sahabat butuhkan, dimana VARCHAR akan tetap menampilkan ‘kami   ’.

Contoh query membangun tabel dengan tipe data CHAR dan VARCHAR :

Sama seperti tipe data integer, sebelum mendefinisikan suatu kolom dengan CHAR(10) atau VARCHAR(10), sedapat mungkin kita telah memprediksi data yang akan diinput kedalam kolom tersebut. Apakah 10 karakter lumayan bagi menampung seluruh data yang akan diisi, atau apakah terdapat kemungkinan data yang diinput akan berisi 15 karakter.

Merubah tipe kolom setelah implementasi akan membutuhkan usaha yang lebih dari di memprediksinya di awal perancangan database.


Tipe Data BINARY dan VARBINARY pada MySQL

Di dasarnya tipe data BINARY dan VARBINARY sama dengan CHAR dan VARCHAR, perbedaannya hanya di struktur peyimpanan pada MySQL, dimana tipe data binary akan disimpan secara biner (bit per bit), bukan secara karakter seperti CHAR. Sederhananya, hal ini akan berefek di case-sensitif data (perbedaan pemakaian huruf besar dan huruf kecil).

Di tipe data CHAR, apabila kita menyimpan data ‘A’, karenanya secara internal MySQL akan menyimpannya selaku karakter ‘A’, dimana ‘A’ akan sama dengan ‘a’. Namun bagi tipe data BINARY, ‘A’ akan disimpan selaku bit dari ‘A’, yaitu 65, dan akan berbeda dengan ‘a’, dimana nilai binernya ialah 97.

Format query tipe data BINARY dan VARBINARY:

Dimana sama seperti tipe data CHAR dan VARCHAR, M ialah jumlah karakter yang akan dialokasikan oleh MySQL. Misalkan nilai M ialah 5, karenanya MySQL menyediakan 5 karakter bagi kolom tersebut. Nilai M maksimal 255 karakter bagi BINARY, dan 65,535 karakter bagi VARBINARY. Sekiranya nilai M tak di nyatakan, nilai defaultnya ialah 1.

BINARY akan disimpan pada ukuran yang tetap, sedangkan VARBINARY akan berubah sesuai ukuran data (sama dengan perbedaan antara CHAR dan VARCHAR)

Contoh query membangun tabel dengan tipe data BINARY dan VARBINARY :

Perhatikan bahwa di query terakhir, tak menampilkan hasil apa-apa, karena pada BINARY, ‘dunia’ tak sama dengan ‘DUNIA’.


Tipe Data TEXT MySQL

Bagi data string yang lebih besar, MySQL menyediakan tipe data TEXT, yang terdiri dari : TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT. Maksimal ukuran masing-masing tipe data dapat dilihat dari tabel dibawah ini:

Tipe Data Ukuran Maksimum Jumlah Karakter Maksimum
TINYTEXT 255 byte 255
TEXT 65.535 byte (64 KB) 6.5535
MEDIUMTEXT 16.777.215 byte (16MB) 16.777.215
LONGTEXT 4.294.967.295 (4GB) 4.294.967.295

Setiap tipe data text disimpan merujuk pada berapa data yang diinput, sama seperti VARCHAR, dimana apabila kita mendefinisikan suatu kolom selaku LONGTEXT, dan hanya berisi 100 karakter, ukuran penyimpanan yang digunakan sekitar 100 byte, bukan 4GB.

Contoh query membangun tabel dengan tipe data TEXT :


Tipe Data BLOB MySQL

Tipe data BLOB ialah tipe data versi binary dari TEXT, dimana karakter akan disimpan pada bit. Dan bagi karakter huruf, huruf besar dan kecil akan dibedakan (‘A’ tak sama dengan ‘a’). Sama seperty TEXT, BLOB pun mempunyai beberapa tipe : TINY BLOB, BLOB, MEDIUM BLOB, dan LONGBLOB.

Ukuran serta jangkauan dari BLOG sama seperti TEXT, seperti di tabel berikut ini:

Tipe Data Ukuran Maksimum Jumlah Karakter Maksimum
TINYBLOB 255 byte 255
BLOB 65.535 byte (64 KB) 65.535
MEDIUMBLOB 16.777.215 byte (16MB) 16.777.215
LONGBLOB 4.294.967.295 (4GB) 4.294.967.295

Karena sifatnya yang tersimpan secara binary,tipe data BLOB dapat digunakan bagi menyimpan data multimedia, seperti gambar dan musik kedalam tabel MySQL.


Pada panduan MySQL kali ini kita telah membahas mengenai tipe data String dalam MySQL. Tipe data string mungkin ialah tipe data yang sangat sering digunakan di pada perancangan tabel. Melanjutkan pembahasan mengenai tipe data, pada panduan MySQL berikutnya kita akan membahas mengenai cara penggunaan tipe data date dalam MySQL.


Sumber https://www.duniailkom.com/