Melanjutkan artikel tentang database pada artikel kali ini saya akan membahas suatu hal yang tidak kalah penting yang perlu diketahui oleh Programmer dan Sistem Analisis untuk merancang database yaitu adalah tipe data (datatype).
Untuk seorang Programmer seharusnya sudah tidak asing lagi dengan tipe data, karena di berbagai macam bahasa pemrograman pada umumnya juga terdapat tipe data yang digunakan untuk meng-inisialisasi-kan atau mendeklarasikan suatu variable. Tipe data yang diinisialisasikan pada suatu variable akan memberikan suatu batasan pada variabel tersebut untuk dapat menyimpan suatu data.
Apa itu Tipe Data?
Data Type atau Tipe Data adalah suatu kelengkapan (attribute) pada suatu yang digunakan untuk mengidentifikasi tipe atau jenis suatu data atau variabel tersebut. Suatu data yang telah didefinisikan tipe data-nya maka data tersebut memiliki suatu identitas yang berupa operasi apa saja yang memungkinkan untuk dilakukan oleh data tersebut.
Dalam Database Data Type adalah suatu fungsi (function) yang digunakan untuk mengidentifikasi batasan suatu kolom dalam menyimpan dan penulisan format suatu data atau konten tertentu.
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.
Pada database tipe data terlihat seperti fungsi / function pada umumnya di pemrograman, oleh karena itu terdapat tipe data pada database yang wajib anda set / menentukan nilai parameter, dan ada juga tipe data yang tidak memerlukan parameter.
Parameter pada tipe data ini digunakan untuk menentukan jumlah character berapa batas maksimal dari jumlah character. Ada juga parameter yang digunakan untuk mem-fix-kan jumlah character misal 5, maka tidak boleh kurang dan tidak boleh lebih. Untuk tipe data boolean parameter nya digunakan utnuk mendefinisakan option atau pilihan dari suatu kasus yang logic.
--attibute id dengan maksimal penggunaan 2 digit bilangan bulat.
id INT(2)
--attibute username dengan maksimal penggunaan 20 digit string.
username VARCHAR (20)
id INT(2)
--attibute username dengan maksimal penggunaan 20 digit string.
username VARCHAR (20)
Contoh tipedata yang tidak perlu ditentukan parameter nya
--attibute birthday dengan tipedata Date.
birthday DATE
--attribute address dengan tipedata Text.
address TEXT
birthday DATE
--attribute address dengan tipedata Text.
address TEXT
Macam-macam Tipe Data pada Database
Pada artikel ini yang akan saya ambil sebagai bahasan adalah tipe data pada DBMS MYSQL karena saya lebih sering menggunakan MYSQL untuk membangun dan mengembangkan aplikasi atau software sehingga lebih familiar dengan MYSQL.
Pada database terdapat 5 jenis tipe data itu di kelompokan berdasarkan fungsinya, yaitu String, numeric, Date, Boolean, dan Binary. Berikut masing-masing penjelasan dari tipe data, dan contoh dari tipe data pada DBMS MYSQL :
1. Tipe Data String
String adalah tipe data yang digunakan pada kolom yang menyimpan data dalam bentuk huruf atau character, kalimat, text, dan semacamnya. Kolom yang diinisialisaikan tipe datanya berupa string maka dapat juga menyimpan data dalam bentuk source code, HTML, XML, JSON dan semacamnya dengan format text tertentu misal UTF8. Berikut ini beberapa contoh tipedata string yang dapat anda guanakan di DBMS MYSQL :
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
Numeric, dari namanya sudah pasti numeric berarti digunakan pada kolom yang menyimpan data berupa angka. Tipe Data numeric memiliki beberpa format penulisan mislakan bilangan desimal, bilangan bulat, dll. Berikut ini beberapa contoh format dari tipe data numeric :
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)
Date adalah tipe data untuk kolom yang digunakan untuk menyimpan data yang memiliki format waktu bisa berupa tanggal atau pun jam.
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
Binary adalah tipe data yang memungkinkan suatu kolom database dapat menyimpan suatu binary file, Misalkan :
- Document : Text Document(*.doc, *.odf), sparesheet (*.xls, *.ods)
- Multi Media : Gambar (*.jpg, *.png, *.gif), video (*.mp4, *.mkv), music (*.mp3, *.acc)
Berikut tabel beberapa contoh tipe data binary yang dapat digunakan pada DBMS MYSQL :
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 Boolean adalah suatu tipe data yang sifatnya seperti if-else atau if-else-if menungkinkan suatu kolom untuk memiliki pilihan data untuk disimpan. Jadi dengan penerapan tipe data boolean ini memungkinkan untuk menolak insert data yang nilainya diluar pilihan.
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 :
Sebelum anda mengimplementasikan rancangan database anda pada DBMS lebih baik anda pertimbangkan secara matang terlebih dahulu, karena apa bila terjadi kesalahan atau ada atribut yang lupa ditambahkan dan terpaksa terjadi perubahan database ketika proses developing software sangatlah membuang-buang waktu pengerjaan. Programmer terpaksa harus memeriksa dan merubah bila perlu tiap-tiap function model yang berhubungan dengan tabel yang baru saja diperbarui.
Sekian artikel yang saya tulis untuk membahas tentang datatype atau tipe data pada database.
Banyak kurangnya saya mohon maaf,...
Terima Kasih
~Semoga Bermanfaat~
0 komentar:
Posting Komentar