Materi sebelumnya kita sudah membahas mengenai Tipe Data Numerik di MySQL, materi kali ini kita lanjutkan memahami Tipe Data String di MySQL.
Tipe data string di MySQL juga memiliki banyak tipe. Diantaranya yang sering di gunakan yaitu:
- CHAR
- VARCHAR
- TEXT
- ENUM
- SET
Masing-masing tipe data di atas di bedakan berdasarkan fungsi, daya tampung, dan ukuran memori yang di gunakan. Tipe data string bersifat alfanumerik yaitu dapat menyimpan data berupa huruf, angka, spasi, dan simbol. Meskipun begitu, tipe data string tidak dapat menggantikan tipe data numerik untuk pengolahan data angka.
TIPE DATA CHAR
Merupakan tipe data string yang di sediakan MySQL untuk menampung nilai teks. Char dapat menampung nilai dari 0 hingga 255 karakter. Char bersifat incase sensitive yang berarti penulisan huruf besar dan kecil di anggap sama.
Query penulisan tipe data Char yaitu:
CHAR (M)
Nilai M merupakan jumlah karakter yang di atur untuk di tampilkan. Misalkan kita menuliskan CHAR (4)
maka sistem akan membatasi jumlah input huruf sebanyak empat karakter, jika lebih dari itu maka karakter selebihnya akan diabaikan. Jika nilai M tidak di definisikan dari awal maka nilai default M adalah 1
Char menyimpan karakter yang jumlahnya tetap. Misalkan kita menuliskan CHAR (4)
yang berarti Char menampung string sebanyak empat karakter, memori yang terpakai yaitu sebanyak 4 byte
. namun jika data yang kita inputkan hanya dua karakter saja yaitu ‘ab’
, akan tetapi Char tetap menerimanya sebagai empat karakter dengan ukuran 4 byte
. Char secara otomatis menambahkan dua spasi untuk menggenap karakter yang kosong.
Jadi yang tersimpan di dalam database yaitu ‘ab ’
. tentu cara ini kurang efisien untuk jumlah karakter yang tidak tetap karena boros memori. Char sangat bagus di gunakan untuk data yang jumlah karakternya tetap seperti nomor nim, nomor ktp, jenis-kelamin, daln lain-lain.
TIPE DATA VARCHAR
Berbeda dengan Char, Varchar dapat menampung nilai dari 0 hingga 65.535 karakter. Varchar bersifat incase sensitive yang berarti penulisan huruf besar dan kecil di anggap sama.
Query penulisan tipe data Varchar yaitu:
VARCHAR (M)
Nilai M merupakan jumlah karakter yang di atur untuk di tampilkan. Misalkan kita menuliskan VARCHAR(4)
maka sistem akan membatasi jumlah input huruf sebanyak empat karakter, jika lebih dari itu maka karakter selebihnya akan diabaikan. Jika nilai M tidak di definisikan dari awal maka nilai default M adalah 1
Jika Char menyimpan jumlah karakter yang jumlahnya besifat tetap, akan tetapi Varchar menyimpan jumlah karakter yang sifatnya dapat berubah-ubah sesuai dengan apa yang di inputkan. Misalkan kita menuliskan VARCHAR (4)
tetapi jumlah karakter yang di inputkan hanya dua huruf saja yaitu ‘ab’
maka yang tersimpan ke dalam database tetap ‘ab’
tidak ada penambahan spasi untuk menggenapkan karakter dan memori yang terpakai yaitu 2 byte.
Tipe data Varchar bagus di gunakan untuk inputan data yang jumlah karakternya tidak tetap seperti nama, tempat lahir, alamat, hobi, dan lain sebagainya karena lebih hemat memori.
Kesalahan yang sering di lakukan oleh programmer pemula yaitu tidak memahami penggunaan tipe data char dan varchar dengan baik. Seperti pendefinisian tipe data nama, alamat, nomor KTP, nomor id, dan lain sebagainya banyak yang hanya memakai tipe data Varchar saja. Alasannya karena ini yang sering di pakai dan sering di praktekkan. Walapun sekilas Char dan Varchar sama-sama menyimpan data dalam bentuk teks, namun keduanya jelas berbeda.
Berikut perbedaan dari tipe data Char dan Varchar! :
Value | CHAR(4) | Storage Required | VARCHAR(4) | Storage Required |
” | ‘ ‘ | 4 bytes | ” | 1 byte |
‘ab’ | ‘ab ‘ | 4 bytes | ‘ab’ | 3 bytes |
‘abcd’ | ‘abcd’ | 4 bytes | ‘abcd’ | 5 bytes |
‘abcdefgh’ | ‘abcd’ | 4 bytes | ‘abcd’ | 5 bytes |
Pada tabel di atas, dapat kita lihat bahwa ukuran penyimpanan Varchar berubah-ubah sesuai dengan data yang di inputkan, sedangkan Char ukuran penyimpanannya tetap.
Varchar membutuhkan 1 byte tambahan untuk menyimpan panjang data. Jika kita definisikan Varchar (4)
dan kita inputkan data (‘abcd’)
maka Varchar membutuhkan penyimpanan 4+1 byte
. Berbeda dengan Char yang tidak membutuhkan tambahan byte apapun.
TIPE DATA TEXT
Berbeda dengan Char dan Varchar, tipe data Text dapat menyimpan karakter yang lebih besar dan panjang.
Tipe data text dibagi beberapa bagian yaitu:
- TINYTEXT
- MEDIUMTEXT
- TEXT
- LONGTEXT
Masing-masing tipe data text tersebut memiliki ukuran dan jumlah karakter maksimum masing-masing.
Tipe Data | Ukuran Maksimum | Jumlah Karakter Maksimum |
TINYTEXT | 255 Byte | 255 |
TEXT | 65.535 Byte (64 KB) | 6.5535 |
MEDIUMTEXT | 16.777.215 Byte (16 MB) | 16.777.215 |
LONGTEXT | 4.294.967.295 (4GB) | 4.294.967.295 |
Query penulisan type data text yaitu:
TINYTEXT TEXT MEDIUMTEXT LONGTEXT
Bentuk penyimpanan tipe data Text sama dengan Varchar yaitu menyimpan data sesuai dengan karakter yang di inputkan. Misalkan kita mendefinisikan kolom sebagai LONGTEXT dan hanya menginputkan 200 karakter saja, maka data yang di simpan ke dalam database tetap sebagai 200 karakter dan memori penyimpanan yang di gunakan yaitu 200 byte bukan 4 GB.
TIPE DATA ENUM
Tipe data Enum merupakan tipe data string yang nilainya sudah di tentukan dari awal. Contoh penggunaan Enum biasanya di gunakan untuk pilihan data yang sudah di sediakan seperti jenis kelamin, jurusan, kota, provinsi, dan lain sebagainya. Pilihan ini bisa berisi 1 sampai 65,535 pilihan string di mana user hanya dapat memilih satu pilihan string saja.
Query penulisan tipe data Enum yaitu:
jenis_kelamin ENUM ('laki-laki', 'perempuan') jurusan ENUM ('sistem informasi', 'teknik informatika', 'ilmu komputer')
Jika kita membuat aplikasi web, penggunaan tipe data Enum dapat di tampilkan menggunakan combobox atau radio button untuk pilihan data jenis kelamin dan jurusan, sehingga user dapat memilih salah satu dari pilihan tersebut untuk di simpan ke dalam database dan tidak dapat memasukkan data selain dari data pilihan yang di tampilkan.
Namun jika kita menginputkan data Enum melalui terminal (CMD) maka kita harus menginputkan pilihan dari data Enum secara manual dengan menuliskan pilihan tersebut sesuai dengan yang telah di definisikan sebelumnya. Jika kita memasukkan nilai yang tidak ada dalam pendefinisian Enum maka akan muncul error atau data yang di inputkan tidak sesuai dengan yang di definisikan, maka di database hanya ada data kosong
TIPE DATA SET
Jika Enum hanya digunakan untuk memilih salah satu pilihan data seperti jenis kelamin, jurusan, kota, provinsi, dsb, maka tipe data Set membolehkan user untuk memilih pilihan lebih dari satu. Tipe data Set biasa digunakan untuk memilih hobi.
Query penulisan tipe data Set yaitu:
hobi SET ('membaca', 'ngoding', 'travelling')
Menginputkan data hobi yang lebih dari satu ke dalam database yaitu dengan memisahkan hobi satu dengan lainnya menggunakan tanda koma yang tidak ditambahkan spasi apapun setelah koma ataupun sebelum koma dan diapit dengan dua tanda petik.
Contoh ('membaca,ngoding')
Jika kita membuat aplikasi web, penggunaan tipe data SET dapat ditampilkan menggunakan Checkbox untuk memilih data, sehingga user dapat memilih salah satu atau lebih dari pilihan data untuk disimpan ke dalam database dan tidak dapat memasukkan data selain dari data pilihan yang ditampilkan
Namun, jika kita menginputkan data SET melalui terminal (CMD) maka kita harus menginputkan pilihan dari data SET secara manual dengan menuliskan pilihan tersebut sesuai dengan yang telah didefinisikan sebelumnya. Jika kita memasukkan nilai yang tidak ada dalam pendefinisian tipe data Set maka akan muncul error atau data yang diinputkan tidak sesuai dengan yang didefinisikan, maka di database hanya ada data kosong
Kesimpulan:
Tipe data string yaitu tipe data yang dapat menyimpan data berupa huruf, angka, spasi, dan simbol. Meskipun begitu, tipe data string tidak dapat menggantikan tipe data numerik untuk pengolahan data angka. Angka yang disimpan menggunakan tipe data string dianggap sebagai teks bukan angka.
Tipe data string yang umum digunakan yaitu Char, Varchar, Text, Enum, dan Set. Perbedaannya terletak pada fungsi, ukuran penyimpanan, dan jumlah karakter yang disimpan
Materi selanjutnya yaitu memahami Tipe Data Date and Time di MySQL.
Selamat belajar 🎉🎉
Tinggalkan Balasan