Anda di halaman 1dari 21

Nama : Ni Wayan Ria Mandasari

NIM : 1605551055
Kelompok :7

MODUL II

“DDL”

Tujuan Praktikum
1. Mampu menerapkan penggunaan DDL dalam basisdata
2. Mampu melakukan konfigurasi relasi antar tabel dengan DDL

Tugas Pendahuluan
1. Buatlah sintaks dari masing-masing fungsi yang ada dalam Data Definition
Language (DDL) beserta contoh penggunaannya.
2. Sebutkan dan jelaskan tipe-tipe tabel yang ada di dalam MYSQL, serta
berikan contoh penggunaannya.
3. Sebutkan dan Jelaskan macam-macam referential integrity constraint di
dalam MYSQL, serta berikan contoh penggunaannya.
4. Bagaimana cara mengubah tipe tabel dan referential integrity constraint di
dalam MYSQL
5. Rancanglah minimal dua buah tabel yang memiliki relasi, lalu
implementasikan semua fungsi DDL ke tabel tersebut.
Jawaban
1. Sintak Dalam Data Definition Language
DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan
data pada sebuah database. Query atau sintak yang dimiliki DDL adalah sebagai
berikut.
1.1 Create
Perintah Create digunakan untuk membuat database dan tabel baru[1]. Contoh
penggunaan dari sintak create adalah sebagai berikut.
1.1.1 Create Database
Create Database digunakan untuk membuat database yang baru. Database
adalah sebuah media utama yang harus dibuat dalam membangun sebuah basis data
agar nantinya dapat diletakkan beberapa tabel dengan field- field-nya.

CREATE DATABASE nama_db;


Kode Program 1.1 Sintak Create Database

Kode Program 1.1 merupakan sintak yang digunakan untuk membuat sebuah
database yang baru atau create database. Pembuatan Sintak ini adalah dengan
memasukkan nama database yang ingin dibuat.

1.1.2 Create Table


Create Table digunakan untuk membuat tabel baru dalam sebuah database.
Tabel terletak pada sebuah database, sehingga pembuatan tabel dilakukan setelah
sebuah database telah dibuat.

CREATE TABLE nama_tabel


(kolom1 tipe_data(range_data) primary key,
kolom2 tipe_data(range_data)
);
Kode Program 1.2 Sintak Create Table
Kode Program 1.2 merupakan sintak yang digunakan untuk membuat tabel
baru dalam sebuah database. Sintak tersebut digunakan untuk membuat tabel dengan
nama tabel sesuai dengan keinginan. Selain itu juga terdapat penentuan primary key
dari masing-masing tabel yang telah dibuat.

1.2 Drop
Perintah Drop digunakan dalam penghapusan suatu tabel dan database[1].
Berikut ini merupakan penggunaan dari perintah drop.
1.2.1 Drop Database
Drop Database merupakan perintah yang digunakan untuk menghapus
database yang sudah ada. Sintak yang digunakan untuk menghapus suatu database
yaitu sebagai berikut.

DROP DATABASE nama_db;


Kode Program 1.3 Sintak Drop Database

Kode Program1.3 merupakan sintak yang digunakan untuk menghapus suatu


database yang sudah ada. Penghapusan database dapat dilakukan dengan
memasukkan nama database dalam sintak.

1.2.2 Drop Table


Drop Table merupakan perintah yang digunakan untuk menghapus tabel yang
terdapat dalam suatu database. Sintak yang digunakan untuk menghapus tabel yang
terdapat dalam suatu database yaitu sebagai berikut.

DROP TABLE nama_tabel;


Kode Program 1.4 Sintak Drop Table

Kode Program 1.4 merupakan sintak yang digunakan untuk melakukan


penghapusan tabel yang ada dalam database. Penggunaan sintak tersebut adalah
dengan memasukkan nama tabel yang ingin dihapus dalam database.
1.3 Alter
Perintah Alter digunakan untuk melakukan perubahan struktur tabel yang
telah dibuat, baik menambah field (Add), mengganti nama field (Change),
mengubah nama tabel (Rename), dan menghapus field (Drop) dalam suatu
database[1].
1.3.1 Alter Add
Perintah Alter Add digunakan untuk melakukan penambahan field atau kolom
dalam sebuah tabel pada database. Sintak yang digunakan untuk mengubah field atau
kolom terdapat dalam suatu tabel yaitu sebagai berikut.

ALTER TABLE nama_tabel ADD nama_kolom1 TypeData(RangeData)


AFTER atau BEFORE nama_kolom2;
Kode Program 1.5 Sintak Alter Add

Kode Program 1.5 merupakan sintak yang digunakan untuk menambahkan


field atau kolom dalam sebuah tabel. Pembuatan sintak dapat dilakukan dengan
memasukkan nama tabel yang ingin ditambahkan kolom atau field-nya serta
menentukan nama kolom atau nama field-nya dengan tipe data dan panjang datanya
yang ingin ditambahkan ke dalam tabel. Sedangkan After atau Before berfungsi
untuk menentukan dimana field tersebut akan di tambahkan.

1.3.2 Alter Change


Alter Change merupakan perintah yang digunakna untuk digunakan untuk
melakukan penggantian atau pengubahan nama kolom dalam tabel pada database.
Sintak yang digunakan untuk melakukan perintah Alter Change yaitu sebagai berikut.

ALTER TABLE nama_tabel CHANGE(nama_kolom_lama)


nama_kolom_baru TypeData(RangeData);
Kode Program 1.6 Sintak Alter Change

Kode Program 1.6 merupakan sintak yang digunakan untuk mengubah atau
mengganti nama kolom yang terdapat dalam suatu tabel pada database. Sintak
nama_tabel merupakan nama tabel yang akan diubah nama kolomnya. Change
merupakan fungsi untuk mengubah nama kolom pada tabel yang akan diubah. Sintak
nama_kolom_lama adalah nama kolom lama yang akan diubah dan
nama_kolom_baru merupakan nama kolom yang baru yang ingin diubah, diikuti
dengan pemberian tipe data dan panjang datanya.

1.3.3 Alter Rename


Alter Rename merupakan perintah untuk mengubah nama tabel yang terdapat
dalam suatu database. Sintak yang digunakan untuk melakukan perintah Alter
Rename yaitu sebagi berikut.

ALTER TABLE nama_tabel_lama RENAME nama_tabel_baru;


Kode Program 1.7 Sintak Alter Rename

Kode Program 1.7 merupakan sintak untuk melakukan pengubahan nama


tabeli dari sebuah tabel dalam database. Sintak nama_tabel merupakan nama tabel
yang akan diubah dan Sintak nama_tabel_baru merupakan nama tabel yang baru.

1.3.4 Alter Drop


Alter Drop merupakan perintah yang digunakan melakukan penghapusan
kolom atau field dalam sebuah tabel pada database. Sintak yang digunakan untuk
melakukan perintah Alter Drop yaitu sebagai berikut.

ALTER TABLE nama_tabel DROP nama_kolom;


Kode Program 1.8 Sintak Alter Drop

Kode Program 1.8 merupakan sintak dalam penghapusan kolom tabel pada
database. Sintak nama_tabel merupakan nama tabel yang menjadi tempat
penghapusan field dan sintak nama_kolom merupakan nama kolom atau field yang
akan dihapus.
2. Tipe-Tipe Tabel Dalam MySql
MySql memiliki kemampuan untuk mendefinisikan tipe tabelnya sendiri. Jika
kita tidak menyebutkan tipe tabel saat membuat tabel maka tipe tabel akan dibuat
otomatis sesuai dengan konfigurasi default server. Terdapat tiga tipe tabel di dalam
MySql diantaranya adalah sebagai berikut.
2.1 MyISAM
Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah
untuk kita gunakan. Kelebihan utama dari MyISAM adalah kecepatan dan
kestabilannya. Tipe tabel MyISAM memiliki tiga jenis tabel yang akan secara
otomatis akan ditentukan apabila kita memilih menggunakan tipe tabel ini. Tiga jenis
tipe tabel MyISAM tersebut diantaranya.
2.1.1 MyISAM Static
Jenis tipe tabel ini digunakan apabila semua kolom pada tabel yang ada
didefinisikan dengan ukuran yang pasti (fixed). Karena sifatnya yang fixed, maka
jenis ini akan lebih cepat dan stabil.

2.1.2 MyISAM Dynamic


Jenis tipe tabel ini digunakan apabila terdapat kolom dengan tipe data yang
dinamis. Karena tipe datanya yang dinamis maka jenis tipe tabel ini akan menjadi
lebih efektif karena ukuran datanya menyesuaikan isi dari masing-masing kolom.

2.1.3 MyISAM Compressed


Jenis tipe tabel MyISAM Static dan Dynamic dapat dikompresi menjadi satu
jenis. Jenis tipe tabel ini dinamakan dengan MyISAM Compressed. Mekanisme
kompresi ini memungkinkan ukurannya menjadi lebih kecil. Namun tabel yang
terkompresi tidak dapat dikenakan perintah seperti insert, update, dan delete.
CREATE TABLE `shift` (
`id_shift` int(5) NOT NULL,
`jam_mulai` varchar(5) DEFAULT NULL,
`jam_selesai` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id_shift`))ENGINE= MyISAM;
Kode Program 2.1 Sintak Tabel MyISAM

Kode Program 2.1 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel shift dengan id_shift sebagai primary
key- nya. Engine yang berada pada Kode Program 2.1 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu MyISAM.

2.2 InnoDB
Tipe tabel InnoDB merupakan tipe tabel yang dapat mendukung terjadinya
proses transaksi. Tipe tabel ini mendukung adanya row-level-locking pada tabel. Tipe
tabel ini juga mendukung adanya foreign key constraint.

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=InnoDB;
Kode Program 2.2 Sintak Tabel InnoDB

Kode Program 2.2 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.2 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu InnoDB.

2.3 Heap
Tipe tabel Heap merupakan tipe tabel yang digunakan apabila tabel tersebut
bersifat sementara. Tipe tabel heap tidak menyimpan datanya di dalam sebuah
hardisk, namun ia akan menyimpan datanya di dalam RAM. Tabel akan dengan
sendirinya akan hilang apabila koneksi MySQL dimatikan.

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=HEAP;
Kode Program 2.3 Sintak Tabel Heap

Kode Program 2.3 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.3 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu Heap.

2.4 Memory
Memory merupakan tipe tabel yang menyimpan data di RAM untuk akses
cepat terhadap pencarian data. Storage engine yang awalnya dikenal sebagai HEAP
engine ini pemanfaatannya cenderung mengalami penurunan[2].

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=Memory;
Kode Program 2.4 Sintak Tabel Memory

Kode Program 2.4 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.4 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu Memory.
2.5 Merge
Merge merupakan tipe tabel virtual yang mengelompokkan secara logis
serangkaian tabel MyISAM yang identik dan mengacunya pada suatu obyek.

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=Merge;
Kode Program 2.5 Sintak Tabel Merge

Kode Program 2.5 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.5 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu Merge.

2.6 BDB
BDB merupakan tipe tabel yang mendukung terjadinya tabel proses transaksi.
Tipe tabel ini mirip dengan tipe tabel InnoDB, namun penggunaannya belum
maksimal.

2.7 Archive
Archive merupakan tipe tabel ini tersedia sejak MySQL versi 4.1. Tipe ini
digunakan untuk menyimpan tabel yang terkompresi, dimana biasanya digunakan
dalam proses backup. Tipe tabel ini biasanya digunakan untuk penyimpanan sejumlah
besar data tanpa pengindekan dengan sebuah footprint yang sangat kecil[3].

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=Archieve;
Kode Program 2.6 Sintak Tabel Archieve
Kode Program 2.6 merupakan kode program yang digunakan dalam
pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.6 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu Archieve.

2.8 CSV
CSV menyimpan data dalam file teks dengan menggunakan tanda koma
sebagai format pemisah antar nilai-nilai dalam file teks tersebut[3].

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=CSV;
Kode Program 2.7 Sintak Tabel CSV

Kode Program 2.7 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.7 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu CSV.

2.9 Federated
Federated merupakan tipe tabel yang digunakan untuk menyimpan data dalam
remote database. Dalam MySQL 5.1, storage engine ini hanya bekerja dengan
MySQL, dengan menggunakan MySQL C client API. Dalam rilis masa depan,
dimaksudkan untuk memungkinkannya untuk terkoneksi dengan sumber data lainnya
dengan menggunakan driver-driver atau metode-metode koneksi klien yang
lainnya[3].

CREATE TABLE `matpel` (


`id_matpel` varchar(5) NOT NULL,
`nama_matpel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_matpel`)
) ENGINE=Federated;
Kode Program 2.8 Sintak Tabel Federated

Kode Program 2.8 merupakan kode program yang digunakan dalam


pembuatan tabel baru dalam MySQL, dimana pada kode program tersebut akan
membuat tabel baru dengan nama tabel matpel dengan id_matpel sebagai primary
key- nya. Engine yang berada pada Kode Program 2.8 merupakan tipe tabel yang
akan digunakan dalam pembuatan tabel yaitu Federated.

3. Macam-Macam Referential Integrity Constraint


Referential Integrity Constraint adalah sebuah fitur yang sudah disediakan
oleh Relational Database Management System (RDBMS) yang mencegah pengguna
dan aplikasi untuk mendapatkan data yang tidak konsisten. Referential Integrity
Constraint akan memastikan semua foreign key berhubungan dengan primary key-
nya. Ada dua macam referential integrity constraint yaitu.
3.1 Restrict
Restrict adalah suatu kondisi dimana data pada tabel induk tidak dapat
dilakukan perubahan seperti delete atau update bila data yang ada di dalamnya
memiliki relasi pada tabel lainnya.
Sebagai contoh penggunaan dibawah ini akan diberikan contoh studi kasus
penggunaan dari tipe restrict.

CREATE TABLE `hospital_room` (


`roomid` varchar(8) NOT NULL,
`roomname` varchar(20) DEFAULT NULL,
`classid` int(2) DEFAULT NULL,
`status` enum('Available','Full') DEFAULT NULL,
`price` int(12) DEFAULT NULL,
PRIMARY KEY (`roomid`),
KEY `classid` (`classid`),
CONSTRAINT `hospital_room_ibfk_1` FOREIGN KEY (`classid`)
REFERENCES `classid` (`classid`) ON DELETE RESTRICT ON UPDATE
RESTRICT,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Kode Program 3.1 Sintak Restrict


Kode Program 3.1 merupakan contoh dari penggunaan sintaks cascade. Tabel
yang digunakan adalah tabel hospital_room dengan primary key yaitu roomid.
Sedangkan field classid merupakan foreign key yang direferensikan dari field classid
yang ada dalam tabel classid. Oleh karena itu, ditambahkan perintah FOREIGN KEY
(`classid`) REFERENCES `classid` (`classid`) ON DELETE RESTRICT ON

UPDATE RESTRICT. Selanjutnya, sintak ON DELETE RESTRICT merupakan perintah

yang digunakan jika ada data classid yang dihapus pada tabel classid, maka data
classid yang ada dalam tabel hospital_room ini tidak akan ikut terhapus.
Sedangkan, sintaks ON UPDATE RESTRICT digunakan jika classid dalam tabel
classid di update, classid yang ada pada tabel hospital_room tidak akan ikut ter-

update.

3.2 Cascade
Cascade berarti baris-baris dalam tabel anak yang berisi nilai-nilai yang juga
terdapat dalam kolom terkait dari tabel induk dihapus ketika baris-baris yang
berkaitan dihapus dari tabel induk. Baris-baris dalam tabel anak yang berisi nilai-nilai
yang juga terdapat dalam kolom terkait dari tabel induk di-update ketika nilai-nilai
yang berkaitan di-update dalam tabel induk[3].

CREATE TABLE `hospital_room` (


`roomid` varchar(8) NOT NULL,
`roomname` varchar(20) DEFAULT NULL,
`classid` int(2) DEFAULT NULL,
`status` enum('Available','Full') DEFAULT NULL,
`price` int(12) DEFAULT NULL,
PRIMARY KEY (`roomid`),
KEY `classid` (`classid`),
CONSTRAINT `hospital_room_ibfk_1` FOREIGN KEY (`classid`)
REFERENCES `classid` (`classid`) ON DELETE CASCADE ON UPDATE
CASCADE,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Kode Program 3.2 Sintak Cascade


Kode Program 3.2 merupakan contoh dari penggunaan sintaks cascade. Tabel
yang digunakan adalah tabel hospital_room dengan primary key yaitu roomid.
Sedangkan field classid merupakan foreign key yang direferensikan dari field classid
yang ada dalam tabel classid. Oleh karena itu, ditambahkan perintah FOREIGN KEY
(`classid`) REFERENCES `classid` (`classid`) ON DELETE CASCADE ON

UPDATE CASCADE. Selanjutnya, sintak ON DELETE CASCADE merupakan perintah yang

digunakan jika ada data classid yang dihapus pada tabel classid, maka secara
otomatis data classid yang ada dalam tabel hospital_room ini juga akan terhapus.
Sedangkan, sintak ON UPDATE CASCADE digunakan untuk proses update otomatis pada
classid dalam tabel hospital_room, apabila classid yang ada di tabel classid ini

di update.

3.3 Set Null


Set Null berarti Nilai-nilai dalam kolom yang mengkait dari tabel anak diset
ke NULL saat baris-baris dengan data terkait dalam tabel induk dihapus dari tabel
induk atau ketika data terkait dalam tabel induk di-update. Untuk menggunakan opsi
ini, semua kolom-kolom yang mengkait dalam tabel anak harus mengijinkan nilai
NULL.

CREATE TABLE `hospital_room` (


`roomid` varchar(8) NOT NULL,
`roomname` varchar(20) DEFAULT NULL,
`classid` int(2) DEFAULT NULL,
`status` enum('Available','Full') DEFAULT NULL,
`price` int(12) DEFAULT NULL,
PRIMARY KEY (`roomid`),
KEY `classid` (`classid`),
CONSTRAINT `hospital_room_ibfk_1` FOREIGN KEY (`classid`)
REFERENCES `classid` (`classid`) ON DELETE SET NULL ON UPDATE
SET NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Kode Program 3.3 Sintak Set Null

Kode Program 3.3 merupakan contoh dari penggunaan sintak set null. Tabel
yang digunakan adalah tabel hospital_room dengan primary key yaitu roomid.
Sedangkan field classid merupakan foreign key yang direferensikan dari field classid
yang ada dalam tabel classid. Oleh karena itu, ditambahkan perintah FOREIGN KEY
(`classid`) REFERENCES `classid` (`classid`) ON DELETE SET NULL ON

UPDATE SET NULL. Selanjutnya, sintak ON DELETE SET NULL merupakan perintah yang

digunakan jika ada data classid yang dihapus pada tabel classid, maka secara
otomatis data classid yang ada dalam tabel hospital_room akan di kosongkan.
Sedangkan, sintaks ON UPDATE SET NULL digunakan jika terdapat proses update pada
classid dalam tabel classid, maka classid yang ada di tabel hospital_room ini

akan dikosongkan.

3.4 No Action
No Action berarti tidak ada aksi yang diambil dalam tabel anak ketika baris-
baris dihapus dari tabel induk atau nilai-nilai dalam kolom terkait dalam tabel induk
di-update[3].

CREATE TABLE `hospital_room` (


`roomid` varchar(8) NOT NULL,
`roomname` varchar(20) DEFAULT NULL,
`classid` int(2) DEFAULT NULL,
`status` enum('Available','Full') DEFAULT NULL,
`price` int(12) DEFAULT NULL,
PRIMARY KEY (`roomid`),
KEY `classid` (`classid`),
CONSTRAINT `hospital_room_ibfk_1` FOREIGN KEY (`classid`)
REFERENCES `classid` (`classid`) ON DELETE NO ACTION ON
UPDATE NO ACTION,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Kode Program 3.4 Sintak No Action

Kode Program 3.4 merupakan contoh dari penggunaan sintak set null. Tabel
yang digunakan adalah tabel hospital_room dengan primary key yaitu roomid.
Sedangkan field classid merupakan foreign key yang direferensikan dari field classid
yang ada dalam tabel classid. Oleh karena itu, ditambahkan perintah FOREIGN KEY
(`classid`) REFERENCES `classid` (`classid`) ON DELETE NO ACTION ON

UPDATE NO ACTION. Selanjutnya, sintak ON DELETE NO ACTION merupakan perintah

yang digunakan untuk melakukan penolakan penghapusan pada data classid yang
dihapus pada tabel classid, jika masih ada data classid yang sama dalam tabel
hospital_room. Sedangkan, sintaks ON UPDATE NO ACTION digunakan untuk

melakukan penolakan pada proses update pada classid dalam tabel classid, jika
terdapat data classid yang sama di tabel hospital_room.

4. Cara Mengubah Tipe Tabel dan Referential Integrity Constraint di dalam


MySQL
Tipe tabel dan Referential Integrity Constraint di dalam MySQL dapat dapat
diubah dengan cara sebagai berikut.
4.1. Mengubah Tipe Tabel dalam MySQL
MySQL menyediakan beberapa tipe data untuk beberapa keperluan. Misalnya,
tipe data (disebut juga dengan engine tabel) MyISAM untuk tabel yang di
optimalisasikan untuk keperluan pembacaan yang lebih sering atau tipe data InnoDB
untuk tabel yang memerlukan transaksi. Berikut merupakan cara untuk mengubah
tipe tabel dalam MySQL.

ALTER TABLE nama_tabel ENGINE = nama_engine;


Kode Program 4.1 Mengubah Tipe Tabel

Kode Program 4.1 merupakan sintak yang digunakan untuk mengubah tipe
tabel dalam suatu database. Tentukan nama tabel yang ingin diubah dan tentukan tipe
tabel atau engine apa yang ingin digunakan. Misalnya, tipe tabel pengembalian
diubah menjadi InnoDB.

ALTER TABLE pengembalian ENGINE = InnnoDB;


Kode Program 4.2 Contoh Mengubah Tipe Tabel

Kode Program 4.2 merupakan contoh sintak yang digunakan untuk mengubah
tipe tabel dalam suatu database, dimana tipe tabel atau engine tabel pengembalian
diubah menjadi InnoDB.
4.2. Cara Mengubah Referential Integrity Constraint Dalam Mysql
Refrential Integrity Constraint tidak dapat diubah secara langsung. Ada
beberapa tahapan yang dilakukan untuk mengubah referential integrity constraint.
Berikut merupakan cara untuk mengubah referential integrity constraint.
4.2.1 Show Create Table
Nama constraint dari foreign key dapat diketahui dengan menggunakan
perintah show create table. Berikut merupakan kode program yang digunakan untuk
mengetahui nama constraint dari foreign key dalam suatu tabel.

SHOW CREATE TABLE detail_pinjam;


:
CREATE TABLE `detail_pinjam` (
`id_detail_pinjam` int(5) NOT NULL AUTO_INCREMENT,
`id_pinjam` int(5) DEFAULT NULL,
`id_buku` int(5) DEFAULT NULL,
PRIMARY KEY (`id_detail_pinjam`),
KEY `id_pinjam` (`id_pinjam`),
KEY `id_buku` (`id_buku`),
CONSTRAINT `detail_pinjam_ibfk_1` FOREIGN KEY (`id_pinjam`)
REFERENCES `peminjaman` (`id_pinjam`),
CONSTRAINT `detail_pinjam_ibfk_2` FOREIGN KEY (`id_buku`)
REFERENCES `buku` (`id_buku`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
Kode Program 4.3 Show Create Table detail_pinjam

Kode Program 4.3 merupakan sintak dan tampilan hasil saat sintak sudah
dijalankan. Dimana, nama constraint dari foreign key id_pinjam adalah
detail_pinjam_ibfk_1 dan nama constraint dari foreign key id_buku adalah
detail_pinjam_ibfk_2.

4.2.2 Drop Foreign Key


Ketika sudah mengetahui nama constraint dari foreign key, hapus relasi antara
kedua tabel dengan menghapus nama constraint. Berikut merupakan salah satu
contoh sintak untuk menghapus nama constraint.

ALTER TABLE detail_pinjam DROP FOREIGN KEY


detail_pinjam_ibfk_1;
Kode Program 4.4 Drop Foreign Key detail_pinjam

Kode Program 4.4 merupakan sintak untuk menghapus foreign key yang
terdapat pada suatu tabel, dimana nama constraint dari foreign key adalah
detail_pinjam_ibfk_1 pada tabel detail_pinjam.

4.2.3 Add Constraint


Langkah setelah menghapus foreign key yaitu menambahkan foreign key atau
add foreign key. Contoh pengimplementasian dari add constraint yaitu sebagai
berikut.

ALTER TABLE detail_pinjam ADD CONSTRAINT detail_pinjam_ibfk_1


FOREIGN KEY (`id_pinjam`) REFERENCES peminjaman (`id_pinjam`)
ON UPDATE CASCADE ON DELETE CASCADE;
Kode Program 4.5 Add Constraint detail_pinjam_ibfk_1

Kode Pogram 4.5 merupakan sintak yang digunakan untuk menambakan


constraint dari foreign key pada suatu tabel. Pada kode program ini, tabel
detail_pinjam ditambahkan constraint detail_pinjam_ibfk_1 yang merelasikan
id_pinjam pada tabel detail_pinjam dengan id_pinjam pada tabel peminjaman.

5. Pengimplementasian Fungsi DDL pada Tabel Berelasi


Fungsi-fungsi DDL dapat diimplementasikan untuk membuat tabel berelasi.
Berikut merupakan pengimplematasian fungsi-fungsi DDL dalam membuat tabel
berelasi tersebut.
5.1 Membuat Tabel
Langkah pertama yang dilakukan yait membuat tabel. Pembuatan tabel dapat
dilakukan dengan mengimplementasikan fungsi DDL create.

CREATE TABLE `kota` (


`id_kota` int(3) NOT NULL AUTO_INCREMENT,
`nama_kota` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id_kota`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Kode Program 5.1 Create Tabel kota

Kode Program 5.1 merupakan sintak yang digunakan untuk membuat tabel
kota. Pada tabel kota terdapat kolom id_kota dengan tipe data int dan panjangnya
3 sebagai primary key dan kolom nama_kota dengan tipe data varchar dan
panjangnya 20.

CREATE TABLE `stasiun` (


`id_stasiun` int(3) NOT NULL AUTO_INCREMENT,
`nama_stasiun` varchar(10) DEFAULT NULL,
`id_kota` int(3) DEFAULT NULL,
PRIMARY KEY (`id_stasiun`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Kode Program 5.2 Create Tabel stasiun

Kode Program 5.2 merupakan sintak yang digunakan untuk membuat tabel
stasiun. Pada tabel stasiun terdapat kolom id_stasiun dengan tipe data int dan
panjangnya 3 sebagai primary key, kolom nama_stasiun dengan tipe data varchar
dan panjangnya 10 dan kolom id_kota dengan tipe data int dan panjangnya 3.

5.2 Alter
Perintah Alter digunakan untuk melakukan perubahan struktur tabel yang
telah dibuat, baik menambah field (Add), mengganti nama field (Change),
mengubah nama tabel (Rename), dan menghapus field (Drop) dalam suatu
database[1].
5.2.1 Alter Add
Perintah Alter Add digunakan untuk melakukan penambahan field atau kolom
dalam sebuah tabel pada database. Sintak yang digunakan untuk mengubah field atau
kolom terdapat dalam suatu tabel yaitu sebagai berikut.

ALTER TABLE stasiun ADD FOREIGN KEY (id_kota)


REFERENCES kota(id_kota)
ON DELETE CASCADE ON UPDATE CASCADE;
Kode Program 5.3 Alter Add Foreign Key id_kota

Kode Program 5.3 merupakan sintak yang digunakan untuk menambahkan


foreign key pada suatu tabel. Pada kode program tersebut, tabel stasiun ditambahkan
foreign key pada kolom id_kota yang berelasi dengan id_kota pada tabel kota.

5.2.2 Alter Change


Alter Change merupakan perintah yang digunakna untuk digunakan untuk
melakukan penggantian atau pengubahan nama kolom dalam tabel pada database.
Sintak yang digunakan untuk melakukan perintah Alter Change yaitu sebagai berikut.

ALTER TABLE stasiun CHANGE (id_stasiun) id_stasiun


INTEGER(4);
Kode Program 5.4 Alter Change kolom id_stasiun

Kode Program 5.4 merupakan sintak yang digunakan untuk mengubah atau
mengganti nama kolom yang terdapat dalam suatu tabel pada database. Pada kode
program tersebut, kolom id_stasiun pada tabel stasiun dengan tipe data integer
diubah panjang datanya menjadi 4.

5.2.3 Alter Rename


Alter Rename merupakan perintah untuk mengubah nama tabel yang terdapat
dalam suatu database. Sintak yang digunakan untuk melakukan perintah Alter
Rename yaitu sebagi berikut.

ALTER TABLE stasiun RENAME tb_stasiun;


Kode Program 5.5 Alter Rename Tabel stasiun

Kode Program 5.5 merupakan sintak untuk melakukan pengubahan nama


tabeli dari sebuah tabel dalam database. Pada kode program tersebut, stasiun
merupakan nama tabel yang akan diubah menjadi tb_stasiun.
5.2.4 Alter Drop
Alter Drop merupakan perintah yang digunakan melakukan penghapusan
kolom atau field dalam sebuah tabel pada database. Sintak yang digunakan untuk
melakukan perintah Alter Drop yaitu sebagai berikut.

ALTER TABLE stasiun DROP nama_stasiun;


Kode Program 5.6 Alter Drop kolom nama_stasiun

Kode Program 5.6 merupakan sintak dalam penghapusan kolom tabel pada
database. Pada kode program tersebut, kolom nama_stasiun pada tabel stasiun
dihapus.

5.3 Drop
Perintah Drop digunakan dalam penghapusan suatu tabel dan database[1].
Berikut ini merupakan penggunaan dari perintah drop.
5.3.1 Drop Table
Drop Table merupakan perintah yang digunakan untuk menghapus tabel yang
terdapat dalam suatu database. Sintak yang digunakan untuk menghapus tabel yang
terdapat dalam suatu database yaitu sebagai berikut.

DROP TABLE kota;


Kode Program 5.7 Drop Table kota

Kode Program 5.7 merupakan sintak yang digunakan untuk melakukan


penghapusan tabel yang ada dalam database.Tabel yang dihapus dengan kode
program tersebut adalah tabel kota.
Daftar Pustaka

[1] Saputro, Haris. (2012). Modul Pembelajaran Praktek Basis Data (MySQL).
[Online]. Tersedia: http://dinus.ac.id/repository/docs/ajar/materi_1.pdf [23
Maret 2017].
[2] Pengelolaan Database, Tabel, Dan Index. Universitas Komputer Indonesia
[Online]. Tersedia:
http://repository.unikom.ac.id/30806/1/04.%20MENGELOLA
%20DATABASE%20DAN%20TABEL.pdf [15 April 2017]
[3] IGOS Training Tool Kit “RDBMS (Relational DataBase Management
System): MySQL”. Institut Teknologi Bandung [Online]. Tersedia:
ftp://ftp.itb.ac.id/pub/ISO-
IMAGES/linux/ebook_tik_linux_foss/8_buku_kebijakan_foss/rdbms
%20mysql/RDBMS-MySQL%20(uli).pdf [15 April 2017]

Anda mungkin juga menyukai