Modul 3. Type Data
Modul 3. Type Data
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.
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.
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 :
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:
Tipe Data Fungsi Kapasitas
BLOB Binary Large OBjects untuk menyimpan data 65.535 bytes
berupa binary object.
TINYBLOB 255 bytes
MEDIUMBLO 16.777.215 bytes
B
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
BOOLEA
N Membadingkan tipe data numberic 0 = False, dan 1 = True.
Menyimpan data dalam bentuk String tertentu yang telah tersedia pada
ENUM 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.
Berikut contoh mengidentifikasi kolom atau attibute untuk Tabel (Entitas) User pada
database :
Hasil Kolom dan Tipe
Kolom Keterangan
Data
Jumlah user pada suatu perusahaan
yang akan menggunakan aplikasi yang
saya kembangkan kurang dari 5000
id_user id_user CHAR(5)
orang, maka karena, kolom id maka
saya akan gunakan tipe data character
yang jumlahnya fix / tetap).
Nama orang (nama user) yang akan
disimpan pada database memiliki
nama_user
nama_user jumlah character yang berbeda-beda,
VARCHAR(255)
dan nama seorang user jumlah
characternya pasti kurang dari 255.
Biasanya sangat jumlah characternya
address_user sangat panjang dan jumlah character address_user TEXT
pada masing-masing alamat berbeda.
Biasanya orang hanya ingat tanggal
birthday_user lahirnya saja tidak dengan jam, menit birthday_user DATE
dan detiknya.
Nomor kode pos di Indonesia
zipcode_user (kode
memiliki 5 digit, jumlah digit tersebut zipcode_user INT(5)
pos)
dapat kita buat fix melalui tipe data.
Hasil Kolom dan Tipe
Kolom Keterangan
Data
Untuk kolom jenis kelamin pada
karana ada 2 pilihan “Laki-Laki” dan gender_user
gender_user (jenis
“Perempuan”, maka untuk khasus ENUM(‘male’,
kelamin)
seperti ini dapat menerapkan tipedata ‘female’)
berupa boolean.
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
country_user (di
pilihan sejumlah lebih dari 200,
negara mana si user country_user INT(3)
mengapa? karena jumlah pilihan yang
itu tinggal?)
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.
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
database anda dapat meng-set kolom photo_user BLOB
photo_user (foto tersebut dengan menggunakan tipe
profil user) data binary.
2. jika gambar tersebut akan anda
simpan pada suatu directory di server
anda, anda dapat mengstorkan ke photo_user TEXT
database url dari gambar yang sudah
anda upload.
namun sangat disayangkan sekali
format tipedata email masih belum
anda, karena biasanya disimpan dalam email_user
email_user
bentuk string, atau kadang sebelum VARCHAR(255)
disimpan di database email akan
diencripsi terlebih dahulu.
Ukuran serta jangkauan dari BLOB sama seperti TEXT, seperti pada tabel berikut ini:
Tipe Data Ukuran Maksimum Jumlah Karakter Maksimum
Karena sifatnya yang tersimpan secara binary, tipe data BLOB dapat digunakan untuk
menyimpan data multimedia, seperti gambar dan musik kedalam tabel MySQL.
1 mysql> CREATE TABLE contoh_blob (tin TINYBLOB, blo BLOB,
2 lon LONGBLOB);
3 Query OK, 0 rows affected (0.14 sec)
4
5 mysql> DESCRIBE contoh_blob;
6 +-------+----------+------+-----+---------+-------+
7 | Field | Type | Null | Key | Default | Extra |
8 +-------+----------+------+-----+---------+-------+
9 | tin | tinyblob | YES | | NULL | |
10 | blo | blob | YES | | NULL | |
11 | lon | longblob | YES | | NULL | |
12 +-------+----------+------+-----+---------+-------+
13 3 rows in set (0.01 sec)
14
15 mysql> INSERT INTO contoh_blob values ('duniailkom',
16 'duniailkom','duniailkom.com');
17 Query OK, 1 row affected (0.05 sec)
18
19 mysql> SELECT * FROM contoh_blob;
20 +------------+------------+----------------+
21 | tin | blo | lon |
22 +------------+------------+----------------+
23 | duniailkom | duniailkom | duniailkom.com |
24 +------------+------------+----------------+
25 1 row in set (0.01 sec)
BLOB
MySQL memiliki tipe data BLOB (binary larger object) yang dapat menampung data biner
dalam jumlah besar. Tipe data BLOB sangat cocok untuk menyimpan data gambar. Di
MySQL, empat tipe BLOB tersedia – TINYBLOB, BLOB, MEDIUMBLOB, dan
LONGBLOB.
<?php
if (count($_FILES) > 0) {
if (is_uploaded_file($_FILES['gambar']['tmp_name'])) {
$koneksi = mysqli_connect("localhost", "root", "", "db_belajar");
$datagambar = addslashes(file_get_contents($_FILES['gambar']['tmp_name']));
$propertiesgambar = getimageSize($_FILES['gambar']['tmp_name']);
<?php
$koneksi = mysqli_connect("localhost", "root", "", "db_belajar");
if (isset($_GET['id'])) {
$sql = "SELECT * FROM tb_images WHERE id=" . $_GET['id'];
$result = mysqli_query($koneksi, $sql) or die("<b>Error:<b> Ada kesalahan<br/>" .
mysqli_error($koneksi));
$row = mysqli_fetch_array($result);
header("Content-type: " . $row["tipeimage"]);
echo $row["dataimage"];
}
mysqli_close($koneksi);
?>
Tentunya modul di atas masih sangat sederhana, selanjuntya bisa menambahkan fungsi untuk
melakukan resize gambar jika ukuran gambar cukup besar. Seperti pada tutorial di Cara
Mudah Untuk Upload Dan Resize Gambar dDengan PHP.
Tipe data yang digunakan di atas adalah BLOB, jika ukuran gambar yang diupload cukup
besar dan ternyata tipe data tersebut tidak bisa meng-handle. Boleh juga merubahnya menjadi
MEDIUMBLOB atau LONGBLOB. Jika menyimpan gambar di database, maka ukuran
database akan besar pula. Gambar yang Anda simpan dalam database, ukurannya sama
dengan gambar yang tersimpan dalam direktori.
Contoh
Misalnya, ingin memuat gambar dari database SQL Server ke Model Data. Kueri Anda
mengimpor daftar nama dan gambar produk.
Prosedur
1. Memuat data Anda ke Model Data. Untuk informasi selengkapnya, lihat Membuat
Model Data dalam Excel.
2. Pilih Power Pivot > Kelola.
3. Pilih File> Ke Mode Tingkat Lanjut.
4. Pilih Properti> Tingkat Lanjut.
5. Untuk mengaktifkan kolom yang berisi data biner, dalam kisi Properti Tabel, pilih
kolom Data Biner, seperti ThumbNailPhoto.
6. Pilih File> Simpan.
7. Pilih Perilaku > Tingkat Lanjut.
8. Dalam kotak dialog Perilaku Tabel, pilih kolom dari daftar menurun Pengidentifikasi
Baris, seperti ProductID,lalu pilih dari daftar menurun Gambar Default, kolom
seperti ThumbNailPhoto.
9. Pilih OK.