Anda di halaman 1dari 49

Praktikum

Sistem Basis Data


TIPE DATA MySQL

Alif Finandhita, S.Kom, M.T.


alif.finandhita@email.unikom.ac.id
TIPE DATA NUMERIK MySQL

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 2


TIPE DATA INTEGER
• Integer adalah tipe data untuk angka bulat (misalnya: 1,6, 59, -533, 1449). MySQL menyediakan
beberapa tipe data untuk integer, perbedaannya lebih kepada jangkauan yang juga berpengaruh
terhadap ukuran tipe data tersebut.

Tipe Data Jangkauan SIGNED Jangkauan UNSIGNED Ukuran

TINYINT -128 to 127 0 to 255 1 byte


SMALLINT -32,768 to 32,767 0 to 65,535 2 bytes
MEDIUMINT -8,388,608 to 8,388,607 0 to 16,777,215 3 bytes
INT / INTEGER -2,147,483,648 to 0 to 4,294,967,295 4 bytes
2,147,483,647
BIGINT - 0 to 8 bytes
9,223,372,036,854,775,8 18,446,744,073,709,551,
08 to 615
9,223,372,036,854,775,8
07

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 3


TIPE DATA INTEGER (2)
• Pemilihan tipe data ini tergantung pada kebutuhan data. Misalkan untuk
nomor urut absensi pada suatu kelas yang memiliki maksimal 30 orang, tipe
data TINYINT sudah mencukupi.
• Idealnya, sedapat mungkin tipe data yang digunakan adalah yang paling kecil,
karena menyangkut dengan ukuran dari database. Menggunakan INT untuk
jumlah anggota keluarga seseorang mungkin tidak efisien. Namun lebih baik
mengantisipasi besarnya data sedapat mungkin pada awal pembuatan
database.
• Perubahan tipe data disaat aplikasi telah diimplementasikan akan berpotensi
membuat sebagian data hilang, atau aplikasi gagal berjalan. Dengan ukuran
media penyimpanan yang semakin besar dan murah, mengorbankan ukuran
demi aplikasi yang handal bukan sesuatu yang buruk.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 4


CARA PENULISAN TIPE DATA INTEGER
• Format query untuk tipe data integer adalah:
INT[(M)] [UNSIGNED] [ZEROFILL]
• Setiap tipe data integer dapat di definisikan sebagai UNSIGNED, dimana nilai negatif tidak
digunakan untuk mendapatkan jangkauan nilai positif yang lebih tinggi.
• Dalam deklarasi tipe data integer, nilai M adalah jumlah digit yang disediakan untuk menampilkan
data. Misalnya suatu kolom didefinisikan dengan INT(5). Jika kolom tersebut diisi dengan angka
102, maka MySQL akan menambahkan spasi sebanyak 2 buah di depan angka, agar tampilan data
menjadi 5 digit (istilah pemogramannya : padding left).
• Nilai M tidak mempengaruhi nilai maksimal dari integer. Jika angka yang diinputkan melebihi digit
M, MySQL akan tetap menampilkan hasilnya (selama masih dalam jangkauan tipe data tersebut).
Jika dideklarasikan INT(4), nilai maksimal tetap 2,147,483,647 bukan 9999.
• Selain opsional query UNSIGNED, pendeklarasian integer juga terdapat opsional
atribut ZEROFILL. ZEROFILL ini berhubungan dengan nilai M, yang akan mengisi angka 0 pada
bagian kiri nilai yang diinput (alih-alih spasi).

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 5


CARA PENULISAN TIPE DATA INTEGER (2)
• Berikut adalah contoh query untuk pembuatan tabel dengan deklarasi
tipe data INTEGER :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 6


CARA PENULISAN TIPE DATA INTEGER (3)
• Selanjutnya tuliskan perintah DESC untuk melihat struktur tabel yang sudah dibuat :

• Dari query DESC dapat dilihat kolom mini dan kecil, secara otomatis akan bersisi nilai M,
walaupun dalam deklarasi pembuatan tabel tidak dinyatakan secara langsung. Nilai ini
didapat dari jangkauan terbesar untuk tipe data tersebut

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 7


CARA PENULISAN TIPE DATA INTEGER (4)
• Jika angka 122 diinputkan ke dalam seluruh kolom, hasilnya adalah sebagai berikut:

• Perintah INSERT dan SELECT akan dipelajari lebih detail pada materi berikutnya.
• Dari contoh di atas didapat gambaran bagaimana cara deklarasi tipe data integer. Perhatikan
untuk kolom sedang dan besar, terdapat angka nol di depan angka. Hal ini karena kedua kolom
tersebut dideklarasikan sebagai ZEROFILL.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 8


TIPE FIXED POINT : DECIMAL
• Tipe data fixed point adalah tipe data angka pecahan (desimal),
dimana jumlah angka pecahan (angka di belakang koma) sudah di
tentukan dari awal. Format penulisan query fixed point adalah:
DECIMAL [(M[,D])] [UNSIGNED] [ZEROFILL]
• DECIMAL merupakan kata kunci untuk mendefiniskan suatu kolom
sebagai fixed point.
• Besar dari tipe data fixed point ini tergantung dari opsional
query [M,D] dimana M adalah total jumlah digit keseluruhan,
dan D adalah jumlah digit dibekang koma (pecahan). Contohnya DEC
[6,2] akan mendefiniskan suatu kolom agar memuat 6 digit angka,
dengan 4 angka di depan koma, dan 2 digit angka di belakang koma.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 9
TIPE FIXED POINT : DECIMAL (2)
Deklarasi Jangkauan
DECIMAL (4,1) -999,9 to 999,9
DECIMAL (6,2) -9999,99 to 9999,99
DECIMAL (3,2) -9,99 to 9,99
DECIMAL (8,2) -999999,99 to 999999,99

• Maksimal nilai untuk M adalah 65, dan maksimal nilai D adalah 30. Dengan syarat, nilai D tidak
boleh lebih besar dari nilai M. Jika M dan D tidak disertakan dalam mendefinisikan suatu
kolom DECIMAL, maka secara default M akan di set 10. Dan D di set 0. Tipe data DECIMAL cocok
digunakan salah satunya untuk kolom yang difungsikan untuk menampung nilai mata uang.
• Opsional query UNSIGNED disertakan jika hanya ingin menghilangkan nilai negatif dari DECIMAL,
tanpa memperbesar jangkauannya. Opsional query ZEROFILL sama seperti integer, akan mengisi
angka 0 pada bagian kiri angka.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 10


TIPE FIXED POINT : DECIMAL (3)
• Berikut adalah contoh query untuk pembuatan tabel dengan deklarasi tipe data DECIMAL :

• Perhatikan kolom normal, bahwa nilai DECIMAL dideklarasikan sebagai DECIMAL(10,0), ini adalah
default MySQL jika jumlah digit tidak dituliskan.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 11


TIPE FIXED POINT : DECIMAL (4)
• Berikut adalah contoh query untuk input nilai pada tabel contoh_dec :

• Khusus untuk kolom normal, karena deklarasinya adalah DECIMAL (10,0), maka seluruh digit
dibelakang koma dari inputan ditiadakan.
• Selain menggunakan DECIMAL untuk fixed point, MySQL juga menyediakan beberapa nama lain
yaitu: NUMERIC, FIXED dan DEC. Pilihan ini disediakan agar MySQL tetap sesuai dengan standard
SQL yang digunakan pada berbagai RDBMS lain, seperti Oracle.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 12
TIPE FLOATING POINT : FLOAT DAN DOUBLE
• Jika pada tipe fixed point, suatu kolom didefinisikan dengan nilai
pecahan yang tetap, maka untuk tipe floating point, nilai pecahan
yang dapat diinput bisa berbeda-beda.
• Untuk tipe floating point, MySQL menyediakan 2 jenis tipe data,
yaitu FLOAT dan DOUBLE. Perbedaan keduanya terletak
pada presisi (ketelitian) pembulatan. FLOAT menggunakan single-
precision, sedangkan DOUBLE menggunakan double-precision.
• Tipe Floating Point juga diperuntukkan untuk nilai desimal,
perbedaan antara Fixed Point dengan Floating Point adalah arsitektur
(cara perhitungannya pada prosesor komputer) dan ketelitian (presisi)
yang digunakan.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 13
TIPE FLOATING POINT : FLOAT DAN DOUBLE
(2)
Tipe Data Jangkauan Ukuran
FLOAT -3.402823466E+38 to 4 bytes
3.402823466E+38
DOUBLE -1.7976931348623157E+308 8 bytes
to
1.7976931348623157E+308

• Untuk tipe data FLOAT dan DOUBLE, format querynya adalah:


FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 14


TIPE FLOATING POINT : FLOAT DAN DOUBLE
(3)
• Sama seperti pada DECIMAL, terdapat nilai opsional query
[M,D] dimana M adalah total jumlah digit keseluruhan, dan D adalah
jumlah digit dibekang koma (pecahan). Maksimal nilai M dan D akan
berbeda pada tiap komputer, tergantung kemampuan prosesor
mengolah tipe data floating point. FLOAT biasanya akan akurat untuk
penyimpanan sekitar 7 angka desimal, sedangkan DOUBLE mencapai 15
angka desimal.
• Opsional query UNSIGNED jika di nyatakan akan menghilangkan
kemampuan tipe data untuk meyimpan angka negatif (tidak menambah
jangkauan sebagaimana tipe data integer)
• Opsional query ZEROFILL sama seperti integer, akan mengisi angka 0
pada bagian kiri angka.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 15
TIPE FLOATING POINT : FLOAT DAN DOUBLE
(4)
• Berikut adalah contoh query untuk pembuatan tabel dengan deklarasi tipe data FLOATING POINT :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 16


TIPE FLOATING POINT : FLOAT DAN DOUBLE
(5)
• Berikut adalah contoh query untuk input nilai pada tabel contoh_float :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 17


TIPE DATA HURUF MySQL

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 18


TIPE DATA CHAR DAN VARCHAR
• Tipe data CHAR dan VARCHAR adalah tipe data karakter (string) yang
paling sering digunakan untuk menampung data teks.
• Format query tipe data CHAR dan VARCHAR:
CHAR [(M)]
VARCHAR [(M)]
• M adalah jumlah karakter yang akan dialokasikan oleh MySQL.
Misalkan nilai M=5, maka MySQL menyediakan 5 karakter untuk
kolom tersebut. Nilai maksimal M adalah 255 karakter untuk CHAR,
dan 65,535 karakter untuk VARCHAR. Jika nilai M tidak di nyatakan,
maka nilai defaultnya M=1.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 19


TIPE DATA CHAR DAN VARCHAR (2)
• Perbedaan antara CHAR dan VARCHAR adalah dari cara
MySQL mengalokasikan ukuran penyimpanan data yang diinput kedalam
kolom tersebut. Contohnya, jika sebuah kolom didefinisikan pada tabel
dengan tipe CHAR(5), walaupun huruf atau karakter yang diinputkan hanya
1 karakter, maka MySQL TETAP menyimpan kolom tersebut untuk 5
karakter. Namun jika didefiniskan sebagai VARCHAR(5), dan input data
dengan jumlah karakter 2, ukuran penyimpanan HANYA akan
menggunakan 2 karakter, sehingga VARCHAR lebih fleksibel dan efisien.
• Namun demikian untuk fleksibilitas tersebut tipe VARCHAR memerlukan
proses tambahan untuk menyimpan ukuran dari masing-masing data.
Sehingga VARCHAR akan sedikit lebih lambat bila dibandingkan CHAR.
Walaupun demikian, proses ini hampir tidak terdeteksi.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 20


TIPE DATA CHAR DAN VARCHAR (3)
• Berikut adalah contoh perbedaan CHAR dengan VARCHAR :

Ukuran Ukuran
Data CHAR(4) VARCHAR(4)
Peyimpanan Peyimpanan
'' ' ' 4 byte '' 1 byte
‘in' ‘in ' 4 byte ‘in' 3 byte
‘info' ‘info' 4 byte ‘info' 5 byte
‘informatika' ‘info' 4 byte ‘info' 5 byte

• Dari tabel diatas, dapat dilihat bahwa ukuran penyimpanan untuk VARCHAR berubah-ubah
tergantung data yang diinput. VARCHAR membutuhkan 1 byte tambahan untuk menyimpan
panjang data. Jika suatu kolom didefiniskan sebagai VARCHAR(4) dan nilai ‘dunia’ diinputkan pada
kolom tersebut, maka dibutuhkan penyimpanan sebesar 4+1 byte. Berbeda dengan CHAR(4) yang
tidak membutuhkan tambahan byte.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 21


TIPE DATA CHAR DAN VARCHAR (4)
• Kebutuhan terhadap penggunaan tipe data antara CHAR dan VARCHAR
bergantung kepada seperti apa data yang akan diinput. Tipe data CHAR cocok
digunakan untuk kolom yang memiliki jumlah karakter tetap, misalnya untuk
nomor KTP, ID pelanggan dan NIM mahasiswa. Sedangkan tipe data VARCHAR
akan lebih cocok digunakan untuk kolom yang berisi data karakter yang berbeda-
beda ukuran, seperti nama, alamat dan kota.
• Data yang diinput pada CHAR maupun VARCHAR akan disimpan secara case
insensitif, dimana huruf besar dan kecil tidak dibedakan.
• Untuk tipe data CHAR, jika data diinput dengan tambahan spasi di-belakangnya,
misalnya ‘aku ’ (terdapat 3 spasi setelah ‘aku’), maka ketika data tersebut
ditampilkan, spasi yang sudah ditambahkan akan otomastis dihapus oleh MySQL,
menjadi‘aku’. Pertimbangkan menggunakan VARCHAR jika hal ini dibutuhkan,
dimana VARCHAR akan tetap menampilkan kata ‘aku ’.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 22
TIPE DATA CHAR DAN VARCHAR (5)
• Berikut adalah contoh query membuat tabel dengan tipe data CHAR dan VARCHAR :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 23


TIPE DATA BINARY DAN VARBINARY
• Pada dasarnya tipe data BINARY dan VARBINARY sama dengan CHAR dan VARCHAR.
Perbedaannya adalah pada struktur penyimpanannya, dimana tipe data binary akan disimpan
secara biner (bit per bit), bukan secara karakter seperti CHAR.
• Pada tipe data CHAR, jika data ‘A’ disimpan, maka akan disimpan sebagai karakter ‘A’,
dimana ‘A’ akan sama dengan ‘a’. Namun untuk tipe data BINARY, ‘A’ akan disimpan sebagai bit
dari ‘A’, yaitu 65, dan akan berbeda dengan ‘a’ yang nilai binernya adalah 97 (case-sensitive).
• Format query tipe data BINARY dan VARBINARY :
BINARY [(M)]
VAR BINARY [(M)]
• Seperti pada tipe data CHAR dan VARCHAR, M adalah jumlah karakter yang akan dialokasikan
oleh MySQL. Nilai M maksimal 255 karakter untuk BINARY, dan 65,535 karakter untuk
VARBINARY. Jika nilai M tidak di nyatakan, nilai defaultnya adalah 1.
• BINARY akan disimpan dalam ukuran yang tetap, sedangkan VARBINARY akan berubah sesuai
ukuran data (sama dengan perbedaan antara CHAR dan VARCHAR)

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 24


TIPE DATA CHAR DAN VARCHAR (5)
• Berikut adalah
contoh
query membuat
tabel dengan tipe
data BINARY dan
VARBINARY :
• Dapat dilihat bahwa
dengan tipe data
tersebut maka nilai
yang akan
ditampilkan dengan
perintah SELECT
adalah nilai bit dari
teks yang diinputkan

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 25


TIPE DATA TEXT
• Untuk data string yang lebih besar, MySQL menyediakan tipe data TEXT, yang terdiri dari
: TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT. Maksimal ukuran masing-masing tipe data
dapat dilihat pada tabel berikut :

Tipe Data Ukuran Maksimum Jumlah Karakter Maksimum


TINYTEXT 255 byte 255
TEXT 65.535 byte (64 KB) 6.5535
MEDIUMTEXT 16.777.215 byte (16MB) 16.777.215
LONGTEXT 4.294.967.295 (4GB) 4.294.967.295

• Setiap tipe data teks disimpan berdasarkan berapa data yang diinput. Karakteristiknya sama
seperti VARCHAR, dimana jika kolom didefinisikan sebagai LONGTEXT dan hanya berisi 100
karakter, maka ukuran penyimpanan yang digunakan sekitar 100 byte, bukan 4GB.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 26


TIPE DATA TEXT (2)
• Berikut adalah contoh query membuat tabel dengan tipe data TEXT :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 27


TIPE DATA TEXT (3)
• Berikut adalah contoh query untuk input nilai pada tabel
contoh_text :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 28


TIPE DATA BLOB
• Tipe data BLOB adalah tipe data versi binary dari TEXT, dimana karakter akan disimpan
dalam bit. Dan untuk karakter huruf, huruf besar dan kecil akan dibedakan (‘A’ tidak sama
dengan ‘a’). Sama seperty TEXT, BLOB juga memiliki beberapa tipe : TINY BLOB, BLOB,
MEDIUM BLOB, dan LONGBLOB. Ukuran serta jangkauan dari BLOB sama seperti TEXT :

Tipe Data Ukuran Maksimum Jumlah Karakter Maksimum


TINYBLOB 255 byte 255
BLOB 65.535 byte (64 KB) 65.535
MEDIUMBLOB 16.777.215 byte (16MB) 16.777.215
LONGBLOB 4.294.967.295 (4GB) 4.294.967.295

• Karena sifatnya yang tersimpan secara binary,tipe data BLOB dapat digunakan untuk
menyimpan data multimedia, seperti gambar dan musik ke dalam tabel MySQL.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 29


TIPE DATA BLOB (2)
• Berikut adalah contoh query membuat tabel dengan tipe data BLOB :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 30


TIPE DATA BLOB (3)
• Berikut adalah contoh query untuk input nilai pada tabel contoh_blob :

• Dapat dilihat bahwa dengan tipe data tersebut maka nilai yang akan ditampilkan dengan perintah
SELECT adalah nilai bit dari teks yang diinputkan

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 31


TIPE DATA TANGGAL (DATE) MySQL

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 32


JENIS TIPE DATA TANGGAL
• MySQL memiliki beberapa format untuk tipe data date. Format tipe data date tersebut
adalah: DATE, TIME, DATETIME, TIMESTAMP, dan YEAR. Perbedaan dari tipe-tipe tersebut
terletak pada format penyimpanannya yang dapat dilihat pada tabel berikut :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 33


JENIS TIPE DATA TANGGAL (2)
• MySQL menyediakan beberapa format yang dapat digunakan untuk input tipe data tanggal,
masing masing untuk tipe data yang bersesuaian.
Tipe Data Fomat Input
DATETIME 'CCYY-MM-DD hh:mm:ss'
TIMESTAMP 'YY-MM-DD hh:mm:ss'
'CCYYMMDDhhmmss'
'YYMMDDhhmmss'
CCYYMMDDhhmmss
YYMMDDhhmmss
DATE 'CCYY-MM-DD'
'YY-MM-DD'

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 34


JENIS TIPE DATA TANGGAL (3)
DATE 'CCYYMMDD'
'YYMMDD'
CCYYMMDD
YYMMDD
TIME 'hh:mm:ss'
'hhmmss'
hhmmss
YEAR 'CCYY'
'YY'
CCYY
YY

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 35


JENIS TIPE DATA TANGGAL (4)
Keterangan :
• CCYY : input untuk tahun, dimana YY berupa tahun 2 digit, seperti 98, 78, dan 00,
sedangkan untuk CCYY adalah tahun dengan 4 digit, seperti 2001, 1987, 2012. Untuk
tahun dengan 2 digit, MySQL mengkonversinya dengan aturan 70-99 menjadi 1970-
1999 dan 00-69 menjadi 2000-2069.
• MM: bulan dalam format dua digit, seperti 05,07,dan 12.
• DD: tanggal dalam format dua digit, seperti 14, 06 dan 30.
• hh: jam dalam format 2 digit, seperti 06,09, dan 12.
• mm: menit, dalam format 2 digit, seperti 15, 45, dan 59.
• ss: detik, dalam format 2 digit, seperti 10, 40, dan 57.
Jika MySQL tidak dapat membaca format, atau data tidak tersedia, maka data akan diisi
sesuai dengan nilai pada Zero Value.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 36
JENIS TIPE DATA TANGGAL (3)
• Berikut adalah contoh query membuat tabel dengan tipe data DATE :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 37


JENIS TIPE DATA TANGGAL (4)
• MySQL menyediakan fungsi NOW() untuk memberikan tanggal server pada saat ini, dan
sebagai contoh dijadikan input nilai pada kolom di tabel contoh_date:

• Khusus untuk tipe data YEAR, fungsi NOW() tidak dapat digunakan, oleh karena itu diisi
manual dengan nilai ‘2020’.
• Tipe data tanggal (date) bukanlah tipe data dasar, tetapi sangat umum dan sering
digunakan.
24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 38
TIPE DATA ENUM DAN SET PADA MySQL

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 39


TIPE DATA ENUM
• Tipe data ENUM merupakan tipe data yang khusus untuk kolom
dimana nilai datanya sudah ditentukan sebelumnya. Pilihan ini dapat
berisi 1 sampai dengan 65,535 pilihan string. Dimana kolom yang
didefinisikan sebagai ENUM hanya dapat memilih satu diantara
pilihan string yang tersedia.
• Contoh penggunaan ENUM misalnya untuk kolom yang berisi daftar
Jurusan yang harus dipilih mahasiswa. Pilihan ini harus sudah tersedia
sebelumnya, dan tipe data ini dapat digunakan untuk memastikan
bahwa jurusan yang dipilih adalah jurusan yang telah ditentukan
sebelumnya dan hanya 1 jurusan.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 40


TIPE DATA ENUM (2)
• Berikut adalah contoh query membuat tabel dengan tipe ENUM :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 41


TIPE DATA ENUM (3)
• Berikut adalah contoh query untuk input nilai pada tabel jurusan

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 42


TIPE DATA ENUM (4)
• Pada query sebelumnya, kolom jur didefiniskan pada
tabel Jurusan dengan tipe ENUM yang dapat dipilih dari pilihan yang
tersedia : Teknik Informatika, Sistem Informasi, Manajemen, dan
Akuntansi. Ketika dicoba input data baru, contoh misal Teknik
Komputer, MySQL mengeluarkan error, karena pilihan ini memang
tidak didefinisikan sebelumnya.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 43


TIPE DATA SET
• Berbeda dengan tipe data ENUM dimana pilihan yang tersedia untuk
kolom hanya dapat 1 data, untuk kolom SET dapat dipilih satu atau
lebih nilai yang tersedia dari 1 sampai 64 pilihan string yang tersedia.
• Contoh penggunaan tipe data SET adalah misalkan untuk data
tentang hobby seseorang, karena bisa aja seseorang memiliki hobi
yang lebih dari 1, namun datanya ingin dipilih dari daftar yang telah
dibuat dan didefinisikan sebelumnya.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 44


TIPE DATA SET (2)
• Berikut adalah contoh query membuat tabel dengan tipe SET :

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 45


TIPE DATA SET (3)
• Berikut adalah contoh query untuk input nilai pada tabel hobi

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 46


TIPE DATA SET (4)
• Berikut adalah contoh query untuk input nilai pada tabel hobi

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 47


TIPE DATA SET (5)
• Dari query sebelumnya, dapat dilihat bahwa untuk menginput lebih
dari 1 nilai, maka dapat dipisahkan dengan tanda koma dan tetap
dalam tanda kutip. Dan jika dicoba input hobi ‘belajar’, yang memang
tidak ada sebelumnya, maka MySQL akan mengeluarkan pesan error.

24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 48


24/04/2020 Praktikum Basis Data 2 - Alif Finandhita, S.Kom., M.T. 49

Anda mungkin juga menyukai