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).
 
WORDBND.COM - 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.

Contoh tipe data yang perlu ditentukan parameter nya
--attibute id dengan maksimal penggunaan 2 digit bilangan bulat.
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 


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 :
Tabel 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
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 :
Tabel 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)
Date adalah tipe data untuk kolom yang digunakan untuk menyimpan data yang memiliki format waktu bisa berupa tanggal atau pun jam.
Tabel 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
Binary adalah tipe data yang memungkinkan suatu kolom database dapat menyimpan suatu binary file, Misalkan :
  1. Document : Text Document(*.doc, *.odf), sparesheet (*.xls, *.ods)
  2. 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 :
Tabel Type Data Binary
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.
Tabel Type 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 :
  1. Pada kolom yang saya beri warna hijau adalah tipe data yang paling sering saya gunakan.
  2. 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()
  3. 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~
Previous Post Next Post