Mengetahui Perbedaan Char Dan Varchar


Mengetahui Perbedaan Char Dan Varchar – Pada MySQL kita mengenal ada beberapa tipe data numerik. Tipe data ini merupakan tipe data berupa karakter ataupun huruf. Dalam bahasa pemrograman dikenal juga dengan istilah tipe data string.

MySQL menawarkan beberapa tipe data string yang bisa dimanfaatkan oleh para penggunanya. Di antaranya CHAR, VARCHAR, BINARY, VARBINARY, TEXT, dan BLOB. Masing-masing tipe tersebut mempunyai perbedaan yang terletak pada ukuran, cara penyimpanan, hingga dukungan case-insensitive atau perbedaan huruf besar dan kecil.

char varchar 1

Baca juga: Normalisasi Database

Dari beberapa tipe data string yang kami sebutkan di atas, tidak sedikit yang bingung mengenai perbedaan antara CHAR dan VARCHAR. Karena di samping sebutannya yang terlihat mirip, keduanya juga sama-sama merupakan tipe data string.

Kendati demikian baik CHAR dan VARCHAR tetap mempunyai beberapa perbedaan. Sehingga kita perlu mengetahui perbedaan beserta kegunaan masing-masing tipe data string tersebut agar dapat menentukan mana yang tepat untuk kebutuhan kita.

Perlu diketahui tipe data CHAR dan VARCHAR mempunyai nilai jumlah karakter maksimal yang dapat diisi. Contohnya jika pengguna menetapkan maksimal 8 karakter, maka itu artinya karakter yang dapat disimpan hanya 8 karakter saja. Sedangkan jika lebih dari itu tidak akan disimpan ke dalam database.

Kedua tipe data ini tidak hanya bisa memuat huruf saja, namun juga angka. Akan tetapi tipe data string ini tidak cocok dipakai untuk memasukkan angka jika anda berniat untuk melakukan perhitungan dengan angka-angka yang Anda masukkan.

Agar lebih jelas mari kita bahas definisi tipe data string CHAR dan tipe data string VARCHAR. Silakan simak pembahasan selengkapnya di bawah ini.

Tipe Data String CHAR

Pada MySQL CHAR adalah tipe data string yang mempunyai nilai panjang yang tetap atau fixed-length. Artinya saat Anda mengatur panjang nilai pada suatu data dengan tipe data  CHAR, maka sistem MySQL akan mengalokasikan panjang data sesuai dengan yang sudah Anda masukkan.

Misalnya jika Anda mengalokasikan panjang CHAR (5) dengan nilai lima, maka MySQL akan menyesuaikannya dengan menetapkan alokasi dengan jumlah lima karakter.

Seperti yang sudah disinggung di atas, tipe data CHAR bisa menampung karakter huruf maupun angka. Akan tetapi jika dipakai untuk menyimpan data yang bermacam-macam seperti nama, alamat, dan informasi lainnya maka akan banyak kapasitas memori yang terpakai. Maka dari itu CHAR lebih cocok dipakai untuk menyimpan data dengan nilai tetap, seperti jenis kelamin, status pernikahan, dan lain-lain.

Untuk diketahui, bentuk dasar penulisan tipe data ini adalah:

CHAR(M) [BINARY]

Sebagai informasi, CHAR(1) hanya ditulis CHAR saja, dengan aturan 1<=M<=255. Apabila terdapat sisa maka sisa tersebut diisi dengan spasi. Contohnya nilai M adalah 12, namun data yang disimpan hanya mempunyai karakter 8. Maka 4 karakter sisanya diisi dengan spasi.

Spasi tersebut akan dihilangkan jika data dipanggil. Di samping itu nilai dari CHAR akan diurutkan dan dibandingkan dengan metode case-insensitive berdasarkan default character set yang tersedia. Kecuali jika atribut BINARY juga diikutkan.

Tipe Data String VARCHAR

Jika ingin menampung data yang panjangnya tidak tetap, maka akan lebih tepat jika menggunakan tipe data VARCHAR. Dengan menggunakan VARCHAR maka MySQL akan mengalokasikan data berdasarkan input yang diisikan oleh pengguna.

Contohnya Anda menentukan panjang data 20 karakter. Seandainya pengguna hanya mengisi sebanyak 10 karakter saja, maka data yang disimpan dalam database juga sebatas 10 karakter walaupun sudah ditetapkan sebelumnya sebanyak 20 karakter.

Sebenarnya VARCHAR ini sudah digantikan oleh VARCHAR2 oleh Oracle. Jika Anda amati, pada saat Anda mencoba membuat tipe data VARCHAR, maka Oracle akan mengubahnya secara otomatis menjadi VARCHAR2. Akan tetapi tidak perlu bingung, sebab keduanya mempunyai fungsi yang sama saja. Yakni untuk menyimpan data-data dengan tipe alfanumerik sesuai panjang data yang ditetapkan.

Bentuk penulisan dasar data string ini adalah:

VARCHAR (M) [BINARY]

Ukuran dari tipe data ini adalah L+1 byte dengan L<=M dan 1<=M<=255. Panjang data ini bisa bervariasi. Apabila nilai M adalah 20, sementara data yang disimpan hanya sebanyak 10 karakter saja, maka lebar data tersebut juga hanya 10 karakter saja dan tidak ada tambahan spasi seperti pada CHAR.

Perbedaan CHAR dan VARCHAR

Berdasarkan penjelasan di atas sudah dapat diketahui apa perbedaan kedua tipe data tersebut. Tipe CHAR mempunyai panjang nilai yang bersifat tetap. Artinya saat panjang data ditetapkan sebanyak 10 karakter, maka yang disimpan nantinya tetap 10 karakter meskipun yang dimasukkan hanya 5 karakter.

Berbeda dengan VARCHAR yang sifatnya tidak tetap. Jika panjang data yang ditetapkan adalah 10 karakter, maka saat pengguna memasukkan 5 karakter yang tersimpan juga hanya sebanyak 5 karakter saja.

Selain itu tipe data CHAR umumnya dipakai untuk field-field yang panjang nilainya bersifat tetap. Contohnya bisa jenis kelamin, kode barang, nomor induk kependudukan, dan lain sebagainya.

Lalu untuk tipe data VARCHAR lebih sesuai dipakai untuk nilai data atau field yang panjangnya tidak selalu sama. Contohnya adalah nama, alamat, hobi, dan lain sebagainya.

Jumlah maksimal karakter yang bisa ditampung keduanya juga berbeda. CHAR bisa menampung jumlah karakter sebanyak 65.535 karakter. Sedangkan VARCHAR jauh lebih sedikit, yakni hanya sebanyak 255 karakter saja.

Sebagai gambaran Anda bisa melihat tabel berikut:

Data CHAR(5) Ukuran Penyimpanan VARCHAR(5) Ukuran Penyimpanan
‘ ‘ ‘     ‘ 5 byte ‘ ‘ 1 byte
se se   ‘ 5 byte se 3 byte
semua semua 5 byte semua 6 byte
semuanya semua 5 byte semua 6 byte

Berdasarkan tabel di atas dapat dilihat bahwa ukuran penyimpanan VARCHAR bisa berubah-ubah tergantung dari data yang dimasukkan atau disimpan. Selain itu VARCHAR memerlukan 1 byte tambahan untuk menyimpan panjang data.

Dapat diartikan bahwa VARCHAR(5) dan memasukkan karakter ‘semua’, maka ukuran penyimpanan yang dibutuhkan adalah 5+1 byte. Berbeda dengan CHAR(5) yang tidak memerlukan tambahan byte.

Baca juga: Cara Membuat Database MySQL

Itu artinya kebutuhan tipe data CHAR dan VARCHAR tergantung dari apa data yang dimasukkan oleh pengguna. Seperti yang sudah kami jelaskan sebelumnya, CHAR maupun VARCHAR dapat dimasukkan dan disimpan secara case-insensitive atau tidak membedakan antara huruf besar dan huruf kecil.

Sementara pada tipe data CHAR saat pengguna memasukkan ‘buku   ‘ dengan tambahan tiga spasi setelah kata buku, maka saat data tersebut ditampilkan spasi akan dihapus secara otomatis oleh MySQL. Sehingga yang tersisa hanya data ‘buku’ saja.

Saat ingin mendefinisikan sebuah kolom dengan CHAR atau VARCHAR, usahakan untuk memperkirakan data yang akan dimasukkan ke dalam kolom. Tanyakan apakah panjang karakter yang akan Anda tentukan sudah cukup untuk menampung seluruh data yang akan diisi oleh pengguna nantinya.

Sebab mengubah tipe kolom sesudah melakukan implementasi membutuhkan usaha yang lebih rumit dibandingkan dengan memprediksinya di awal perancangan database.



Loading...

Leave a Comment