Apa itu Tipe Data?
Penggunaan typedata pada database memiliki beberapa fungsi yaitu :
- Untuk memberikan batasan atau format pada kolom table suatu database.
- Untuk membatasi data yang di-insert pada suatu kolom.
- Memberikan dampak hasil yang konsisten pada suatu kolom.
Contoh tipe data yang perlu ditentukan parameter nya
id INT(2)
–attibute username dengan maksimal penggunaan 20 digit string.
username VARCHAR (20)
Contoh tipedata yang tidak perlu ditentukan parameter nya
birthday DATE
–attribute address dengan tipedata Text.
address TEXT
Macam-macam Tipe Data pada Database
1. Tipe Data String
| Tipe Data | Fungsi |
|---|---|
| CHAR | Menyimpan data string (huruf, angka, spesial karakter) ukuran panjang karakter atau digit huruf yang tetap. memiliki kapasitas jangkauan 0 s/d 255 karakter. |
| VARCHAR | Menyimpan String dengan digit huruf yang dinamis dan jumlah maksimal yang telah ditentukan. Dengan kapasitas jangkauan 0 s/d 65535 karakter. |
| TEXT | Menyimpan String dengan panjang maksimal 65.535 bytes |
| TINYTEXT | Menyimpan String dengan panjang maksimal 255 karakter |
| MEDIUMTEXT | Menyimpan data berupa String dengan panjang maksimal 16,777,215 karakter |
| LONGTEXT | Menyimpan data berupa String dengan panjang maksimal 4,294,967,295 karakter |
2. Tipe Data Numeric / Angka
| Tipe Data | Fungsi | Jangkauan / Range |
|---|---|---|
| INT | Menyimpan data dalam bentuk Interger atau bilangan bulat dapat bernilai positif atau negatif. | -2147483648 s/d 2147483647 |
| TINYINT | -128 s/d 127 | |
| SMALLINT | -32.768 s/d 32.767 | |
| MEDIUMINT | -8.388.608 s/d 8.388.607 | |
| BIGINT | -9223372036854775808 s/d 9223372036854775807 | |
| FLOAT | Menyimpan data bilangan pecahan positif atau negatif | 3.402823466E+38 s/d -1.175494351E-38, 0, dan 1.175494351E-38 s/d 3.402823466E+38. |
| DOUBLE | -1.79…E+308 s/d -2.22…E-308, 0, dan 2.22…E-308 s/d 1.79…E+308 | |
| DECIMAL / NUMERIC | -1.79…E+308 s/d -2.22…E-308, 0, dan 2.22…E-308 s/d 1.79…E+308 |
3. Tipe data Date (Waktu)
| Tipe Data | Fungsi | Jangkauan (Range) |
|---|---|---|
| DATE | Menyimpan data tanggal dengan Format (YYYY-MM-DD), Tahun-Bulan-Hari. | 1000-01-01 s/d 9999-12-31 |
| TIME | Menyimpan data dalam bentuk waktu dengan Format (HH:MM:SS), Jam, Menit, Detik. | -838:59:59 s/d +838:59:59 |
| DATETIME | Menyimpan data Tanggal dan Waktu | 1000-01-01 00:00:00 s/d 9999-12-31 23:59:59 |
| YEAR | Menyimpan data Tahun | 1900 s/d 2155 |
4. Tipe Data Binary
- Document : Text Document(*.doc, *.odf), sparesheet (*.xls, *.ods)
- Multi Media : Gambar (*.jpg, *.png, *.gif), video (*.mp4, *.mkv), music (*.mp3, *.acc)
| Tipe Data | Fungsi | Kapasitas |
|---|---|---|
| BLOB | Binary Large OBjects untuk menyimpan data berupa binary object. | 65.535 bytes |
| TINYBLOB | 255 bytes | |
| MEDIUMBLOB | 16.777.215 bytes | |
| LONGBLOB | 4.294.967.295 byte |
5. Tipe Data Boolean
| Tipe Data | Fungsi |
|---|---|
| BOOLEAN | Membadingkan tipe data numberic 0 = False, dan 1 = True. |
| ENUM | Menyimpan data dalam bentuk String tertentu yang telah tersedia pada parameter-nya. |
NOTE :
-
Pada kolom yang saya beri warna hijau adalah tipe data yang paling sering saya gunakan.
-
Pada umumnya masing-masing DBMS (Database Management System) memiliki tipe data yang sama secara fungsional dan penggunaan, namun ada juga beberapa DBMS lain yang memiliki nama tipe data berbeda dengan fungsi yang sama, misalkan yang pernah saya temui di DBMS Oracle :
MYSQL ORACLE INT() NUMBER() VARCHAR() VARCHAR2() -
Selain nama terdapat satu hal lagi yang membedakan tipe data pada masing-masing pada masing-masing DBMS yaitu adalah jangkauan (range) data yang dapat disimpan pada suatu kolom.
Mengidentifikasi Tipe Data Kolom / Attribute Suatu Table pada Database
Mengidentifikasi tipe data merupakan suatu kegiatan yang pada umumnya dilakukan oleh dilakukan oleh seorang sistem analisys atau programmer (secara umum) pada tahap analisis system. Jadi pada tahap analisis perancangan database dalam menentukan tipe data suatu data yang akan disimpan pada ada suatu hal yang biasanya saya dilakukan untuk mempermudah dalam proses perbuatannya yaitu dengan melakukan validasi dengan rancangan interface yang sudah dibuat dan rancangan flow atau alur dari program yang telah anda buat.
Berikut contoh saya mengidentifikasi kolom atau attibute untuk Tabel (Entitas) User pada database :
| Kolom | Keterangan | Hasil Kolom dan Tipe Data |
|---|---|---|
|
id_user
|
Jumlah user pada suatu perusahaan yang akan menggunakan aplikasi yang saya kembangkan kurang dari 5000 orang, maka karena, kolom id maka saya akan gunakan tipe data character yang jumlahnya fix / tetap).
|
id_user CHAR(5) |
|
nama_user
|
Nama orang (nama user) yang akan disimpan pada database memiliki jumlah character yang berbeda-beda, dan nama seorang user jumlah characternya pasti kurang dari 255.
|
nama_user VARCHAR(255) |
|
address_user
|
Bisasanya sangat jumlah characternya sangat panjang dan jumlah character pada masing-masing alamat berbeda.
|
address_user TEXT |
|
birthday_user
|
Biasanya orang hanya ingat tanggal lahirnya saja tidak dengan jam, menit dan detiknya.
|
birthday_user DATE |
|
zipcode_user (kode pos)
|
Nomor kode pos di Indonesia memiliki 5 digit, jumlah digit tersebut dapat kita buat fix melalui tipe data.
|
zipcode_user INT(5) |
|
gender_user (jenis kelamin)
|
Untuk kolom jenis kelamin pada karana ada 2 pilihan “Laki-Laki” dan “Perempuan”, maka untuk khasus seperti ini dapat menerapkan tipedata berupa boolean.
|
gender_user ENUM(‘male’, ‘female’) |
|
country_user (di negara mana si user itu tinggal?)
|
Kebetulan perusahaan client memiliki user berupa karyawan yang bekerja secara remote di berbagai macam negara. untuk kasus seperti ini, bisa anda buat kolom country_user dengan tipe data enum, namun tidak saya sarankan untuk membuat enumeration yang memiliki pilihan sejumlah lebih dari 200, mengapa? karena jumlah pilihan yang terlalu banyak, saya sarankan membuat tabel negara yang ber-relasi dengan table user one-to-one. Dengan membuat tebel negara anda dapat menyertakan atribut / kolom lain yang dipengaruhi oleh negara, yaitu code negara pada nomor telephone misalkan.
|
country_user INT(3) |
|
photo_user (foto profil user)
|
Terdapat 2 cara yang bisa dilakukan untuk menyimpan suatu data dalam bentuk gambar.
|
|
|
1. Jika anda ingin menyimpan gambar dalam bentuk binary pada suatu kolom data base anda dapat meng-set kolom tersebut dengan menggunakan tipe data binary.
|
photo_user BLOB | |
|
2. jika gambar tersebut akan anda simpan pada suatu directory di server anda, anda dapat mengstorkan ke database url dari gambar yang sudah anda upload.
|
photo_user TEXT | |
| email_user |
namun sangat disayangkan sekali format tipedata email masih belum anda, karena biasanya disimpan dalam bentuk string, atau kadang sebelum disimpan di database email akan diencripsi terlebih dahulu.
|
email_user VARCHAR(255) |
Bagaimana cara mengimplementasikan penggunaan tipedata pada database?
Dari hasil rancangan kolom dan tipedata diatas dapat di implementasi kan dalam bentuk source code SQL atau Query untuk membuat Tabel User Berikut :
Anda dapat menjalankan kode query di atas pada DMBS MYSQL untuk membuat tabel.
NOTE :

