Anda di halaman 1dari 34

LAPORAN PRAKTIKUM BASIS DATA

DATA DEFINITION LANGUAGE (DDL) DATABASE & TABEL

Oleh :

Kadek Andre Suryana 1908561103 E

Dosen Pengampu :

Dr. Ngurah Agus Sanjaya ER, S.Kom., M.Kom.

PROGRAM STUDI INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS UDAYANA

2020
KATA PENGANTAR

Puji syukur kita panjatkan kepada Tuhan Yang Maha Esa yang telah
memberikan rahmat dan hidayah-Nya sehingga saya dapat menyelesaikan tugas
laporan praktikum yang berjudul “Data Definition Language (DDL) Database &
Tabel” ini tepat pada waktunya.

Adapun tujuan dari penulisan laporan praktikum ini adalah untuk memenuhi
tugas pada mata kuliah Praktikum Basis Data. Selain itu, laporan praktikum ini juga
bertujuan untuk menambah wawasan tentang konsep-konsep DDL yang ada pada
sebuah database bagi para pembaca dan juga bagi penulis.

Saya mengucapkan terima kasih kepada Dosen Pengampu Praktikum Basis


Data yang telah memberikan tugas ini sehingga dapat menambah pengetahuan dan
wawasan sesuai dengan bidang studi yang saya tekuni ini.

Saya juga mengucapkan terima kasih kepada semua pihak yang tidak dapat
saya sebutkan semua, terima kasih atas bantuannya sehingga saya dapat
menyelesaikan tugas ini.

Saya menyadari, tugas yang saya tulis ini masih jauh dari kata sempurna.
Oleh karena itu, kritik dan saran yang membangun saya butuhkan demi
kesempurnaan laporan praktikum ini.

Semarapura, 16 Februari 2021

Kadek Andre Suryana

i
DAFTAR ISI

KATA PENGANTAR ............................................................................................ i

DAFTAR ISI .......................................................................................................... ii

BAB I PENDAHULUAN ...................................................................................... 1

1.1 Latar Belakang ........................................................................................... 1

1.2 Tujuan ......................................................................................................... 2

1.3 Manfaat ....................................................................................................... 2

BAB II LANDASAN TEORI ............................................................................... 3

2.1 Definisi DDL ............................................................................................... 3

2.2 Perintah CREATE ..................................................................................... 4

2.3 Perintah ALTER ........................................................................................ 8

2.4 Perintah DROP ........................................................................................ 10

BAB III HASIL PRAKTIKUM ......................................................................... 11

3.1 Tugas Pendahuluan.................................................................................. 11

3.1.1 Pengertian DDL ............................................................................. 11

3.1.2 Perintah CREATE, ALTER, dan DROP pada MySQL ........... 11

3.1.3 Tipe-tipe Data pada MySQL ........................................................ 13

3.1.4 Penggunaan Jenis Key pada SQL................................................ 14

3.1.5 Jenis-jenis CONSTRAINT pada MySQL ................................... 17

3.2 Tugas Praktikum...................................................................................... 19

3.2.1 Pembuatan Database Baru ........................................................... 19

3.2.2 Pembuatan Tabel “m_mahasiswa” ............................................. 20

3.2.3 Pembuatan CONSTRAINT PRIMARY KEY ........................... 21

3.2.4 Pembuatan Tabel “m_kota”......................................................... 23

3.2.5 Pembuatan CONSTRAINT FOREIGN KEY ............................ 24

ii
3.2.6 Percobaan Menghapus Tabel “m_kota” ..................................... 25

BAB IV PENUTUP ............................................................................................. 29

4.1 Kesimpulan ............................................................................................... 29

4.2 Saran ......................................................................................................... 29

DAFTAR PUSTAKA .......................................................................................... 30

iii
BAB I
PENDAHULUAN

1.1 Latar Belakang

Salah satu hal yang tidak lepas dari sebuah sistem atau perangkat
lunak yang ada di masa kini adalah adanya database pada sistem tersebut.
Database atau basis data merupakan kumpulan informasi yang disimpan di
dalam sebuah komputer yang disimpan secara sistematik sehingga dapat
diperiksa atau dipergunakan oleh program komputer untuk memperoleh
informasi dari database tersebut. Secara konsep database adalah sebuah
berkas yang terbentuk dari catatan-catatan atau record yang berupa sebuah
data atau informasi yang berguna untuk suatu sistem tertentu. Database
digunakan dalam berbagai macam hal misalnya, pada sistem informasi
rumah sakit, data pasien, data pegawai dan staff rumah sakit akan disimpan
ke dalam database rumah sakit. Dalam hal ini, database tersebut akan
memiliki ukuran berkas yang besar karena data pada rumah sakit sangatlah
banyak.

Untuk mempermudah pengelolaan database yang besar kita


memerlukan sebuah perangkat lunak yang disebut dengan DBMS
(Database Management System). DBMS merupakan sebuah perangkat
lunak yang dirancang untuk mengelola suatu database atau basis data dan
menjalankan operasi terhadap data yang diperlukan. MySQL merupakan
salah satu dari banyak DBMS yang terdapat di dunia. MySQL adalah
sebuah sistem manajemen basis data SQL (Structured Query Language)
yang dikembangkan oleh Oracle. MySQL saat ini banyak digunakan dalam
pembuatan aplikasi berbasis website oleh para web developer.

Dalam SQL kita mengenal dengan istilah DDL. DDL atau Data
Definition Language merupakan kumpulan perintah-perintah pada SQL
yang digunakan untuk membuat, mengubah, dan menghapus struktur dan
definisi yang ada pada objek yang telah dibuat pada sebuah database

1
2

1.2 Tujuan

1. Memahami apa yang dimaksud dengan DDL dalam sebuah database.


2. Memahami perintah-perintah DDL
3. Menerapkan perintah-perintah DDL ke kasus tertentu
4. Mengetahui sintaks perintah pada MySQL untuk membuat, mengubah, dan
menghapus data pada tabel

1.3 Manfaat

1. Dapat memahami apa yang dimaksud dengan DDL


2. Dapat memahami dan bisa menerapkan perintah-perintah DDL ke dalam
kasus tertentu
3. Dapat mengetahui serta memahami sintaks perintah-perintah pada MySQL
untuk membuat, mengubah, dan menghapus data pada tabel
BAB II
LANDASAN TEORI

2.1 Definisi DDL

DDL atau Data Definition Language merupakan kumpulan perintah-


perintah pada SQL (Structured Query Languag) yang digunakan untuk
membuat, mengubah, dan menghapus struktur dan definisi yang ada pada
objek-objek yang telah dibuat pada sebuah tabel maupun database.

Dalam pengelolaan sebuah database sebenarnya dapat dilakukan


melalui dua cara. Yang pertama, melalui antarmuka suatu bahasa query
contohnya seperti phpMyAdmin. Di dalam sistem phpMyAdmin tersebut
kita dapat mengubah langsung data yang ada pada database kita. Kemudian
cara yang kedua, menggunakan perintah SQL, dengan menggunakan
perintah SQL ini pembuatan ataupun pengelolaan database menjadi lebih
mudah dan efisien. Contohnya jika kita ingin membuat database untuk
sebuah aplikasi, maka kita hanya perlu melakukan pembuatan koneksi ke
database kita. Biasanya pada bahasa pemrograman terdapat modul-modul
yang dapat menghubungkan bahasa pemrograman tersebut ke sebuah
database. Contohnya pada bahasa pemrograman Python terdapat modul
yang dapat kita gunakan untuk menghubungkan python dengan mysql.

Jadi, pada dasarnya DDL atau Data Definition Language ini dapat
kita gunakan untuk membuat sebuah database baru maupun melakukan
maintenance pada database yang kita miliki.

3
4

2.2 Perintah CREATE

CREATE adalah perintah yang digunakan untuk membuat objek


baru, contohnya seperti pembuatan database baru maupun tabel baru.

Sintaks untuk membuat sebuah database:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] database_name


[create_spesification] . . .

create_spesification:
[DEFAULT] CHARACTER SET [=] charset_name
[DEFAULT] COLLATE [=] collation_name

Contoh:

Misalnya kita ingin membuat sebuah database untuk menyimpan


data mahasiswa pada suatu Universitas. Jadi perintahnya adalah sebagai
berikut.

CREATE DATABASE db_mahasiswa;

Jika kita ingin memastikan database yang kita buat sudah ada di
server, maka kita tinggal menambahkan perintah IF NOT EXISTS. Dengan
menggunakan perintah tersebut jika di dalam server nama database yang
kita ingin buat sudah ada, maka perintah tersebut akan diabaikan.

Sintaks untuk membuat sebuah tabel di dalam database:

CREATE TABLE [TEMPORARY] TABLE [IF NOT EXISTS] table_name


(create_definition, ...)
[table_options]
[partition_options]

create_definition:
column_name column_definition
| [CONSTRAINT [symbol]] PRIMARY KEY [index_type]
(index_col_name,...)[index_option] ...
| {INDEX|KEY} [index_name] [index_type]
(index_col_name,...)[index_option] ...
5

| [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]


[index_name] [index_type] (index_col_name,...)
[index_option] ...
| {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name]
(index_col_name,...)[index_option] ...
| [CONSTRAINT [symbol]] FOREIGN KEY [index_name]
(index_col_name,...) reference_definition
| CHECK (expr)

column_definition:
data_type
[NOT NULL | NULL]
[DEFAULT default_value]
[AUTO_INCREMENT]
[UNIQUE [KEY] | [PRIMARY] KEY]
[COMMENT 'string']
[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
[STORAGE {DISK|MEMORY|DEFAULT}]
[reference_definition]

Dari sintaks tersebut dapat kita lihat bahwa terdapat perintah


CREATE yang diikuti dengan TABLE kemudian table_name yang
merupakan nama dari tabel yang ingin dibuat. Setelah nama tabel kemudian
diikudi dengan column_name yang diinginkan dan juga column_definition
yang berisikan tipe data serta beberapa properti untuk kolom tersebut.
Properti tersebut antara lain yaitu NOT NULL, NULL, DEFAULT,
AUTO_INCREMENT, UNIQUE dan lainnya.

Contoh:

Misalnya kita ingin membuat sebuah tabel bernama tabel


tb_mahasiswa. Di dalam tabel tersebut terdapat kolom mhs_id bertipe INT,
mhs_name bertipe VARCHAR, mhs_nim bertipe VARCHAR, dan mhs_ttl
bertipe DATE. Jadi perintah SQL-nya adalah sebagai berikut.

CREATE TABLE tb_mahasiswa (


mhs_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
mhs_name VARCHAR(20),
6

mhs_nim VARCHAR(20),
mhs_ttl DATE
);

Pada contoh diatas kita menggunakan mhs_id sebagai primary key.


Primary key ini tidak boleh bernilai NULL.

Contoh lainnya adalah ketika kita ingin membuat sebuah relasi antar
tabel. Kita dapat menggunakan foreign key untuk mendefinisikan suatu
kolom pada tabel yang juga merupakan primary key pada tabel lain. Hal ini
biasanya ditemui pada hubungan antara dua tabel yang bersifat one-to-many
(1-N).

Contoh:

CREATE TABLE tb_prodi (


id_prodi INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nama_prodi VARCHAR(20)
);

CREATE TABLE tb_mahasiswa (


mhs_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
mhs_name VARCHAR(20),
mhs_nim VARCHAR(20),
mhs_ttl DATE,
mhs_prodi INT,
CONSTRAINT mhs_prodi
FOREIGN KEY (mhs_prodi) REFERENCES tb_prodi (id_prodi)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);

Jadi terdapat dua buah tabel, dimana tabel pertama adalah tabel prodi
dan kedua adalah tabel mahasiswa. Pada tabel mahasiswa terdapat foreign
key yaitu mhs_prodi yang mengacu ke id_prodi yang merupakan primary
key pada tabel tb_prodi.
7

Kata kunci CONSTRAINT digunakan untuk mendefinisikan aturan-


aturan yang menjadi acuan untuk menyimpan data pada kolom tersebut.
CONSTRAINT juga dapat digunakan untuk mendefinisikan aturan tipe data
apa saja yang bisa dimasukkan ke suatu tabel. Oleh karena itu
CONSTRAINT berlaku pada tingkat kolom dan juga tabel.

Pada MySQL terdapat beberapa CONSTRAINT antara lainnya


sebagai berikut.

CONSTRAINT KETERANGAN
NOT NULL NOT NULL Constraint merupakan batasan yang
menentukan sebuah kolom tidak menerimal nilai
NULL atau dapat diartikan sebuah kolom harus
memiliki nilai.
PRIMARY KEY PRIMARY KEY Constraint merupakan batasan
yang dapat mengidentifikasi kolom atau
kumpulan kolom yang memiliki nilai secara unik
untuk mengidentifikasikan baris dalam tabel
tersebut.
FOREIGN KEY FOREIGN KEY Constraint merupakan sebuah
kolom atau kombinasi kolom yang digunakan
untuk mebuat sebuah relasi antara tabel satu
dengan tabel lainnya. Antara foreign key dengan
primary key saling terhubung.
UNIQUE UNIQUE Constraint merupakan sebuah batasan
yang membatasi satu kolom atau lebih untuk
memiliki nilai unik dalam sebuah tabel. Sama
halnya dengan PRIMARY KEY Constraint yang
bersifat unik, UNIQUE Constraint juga
melakukan hal yang sama. Berbeda dengan
PRIMARY KEY Constraint yang tidak dapat
memuat nilai NULL, pada UNIQUE Constraint
dapat memuat nilai NULL.
8

DEFAULT DEFAULT Constraint merupakan batasan yang


dapat menentukan nilai default untuk kolom
tertentu. Nilai default adalah beberapa nilai yang
akan dimasukkan ke dalam kolom oleh mesin
database ketika perintah INSERT tidak secara
eksplisit menetapkan nilai tertentu.
CHECK CHECK Constraint merupakan batasan yang
digunakan untuk membatasi nilai-nilai yang dapat
ditempatkan dalam kolom.

2.3 Perintah ALTER

ALTER adalah perintah yang digunakan untuk mengubah struktur


tabel yang telah dibuat pada database. Alter juga bisa mengubah nama tabel,
menambah kolom, mengubah kolom, menghapus kolom, atau memberikan
atribut pada kolom.

Sintaks:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name


[alter_specification [, alter_specification] ...]
[partition_options]

alter_specification: table_options | ADD [COLUMN] col_name


column_definition [FIRST | AFTER col_name ] | ADD [COLUMN]
(col_name column_definition,...) | ADD {INDEX|KEY}
[index_name] [index_type] (index_col_name,...)
[index_option] ..
| ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type]
(index_col_name,...) [index_option] ...
| ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]
[index_name][index_type] (index_col_name,...)
[index_option] ...
| ADD FULLTEXT [INDEX|KEY][index_name]
(index_col_name,...) [index_option] ...
| ADD SPATIAL [INDEX|KEY][index_name]
9

(index_col_name,...) [index_option] ...


| ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name]
(index_col_name,...) reference_definition
| ALTER [COLUMN] col_name {SET DEFAULT literal
| DROP DEFAULT}
| CHANGE [COLUMN] old_col_name new_col_name

column_definition [FIRST|AFTER col_name]


| MODIFY [COLUMN] col_name column_definition [FIRST |
AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP {INDEX|KEY} index_name
| DROP FOREIGN KEY fk_symbol
| MAX_ROWS = rows
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO|AS] new_tbl_name
| ORDER BY col_name [, col_name] ...
| CONVERT TO CHARACTER SET charset_name [COLLATE
collation_name]
| [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=]
collation_name]
| DISCARD TABLESPACE
| IMPORT TABLESPACE
| ADD PARTITION (partition_definition)
| DROP PARTITION partition_names
| COALESCE PARTITION number
| REORGANIZE PARTITION [partition_names INTO
(partition_definitions)]
| ANALYZE PARTITION {partition_names | ALL}
| CHECK PARTITION {partition_names | ALL}
| OPTIMIZE PARTITION {partition_names | ALL}
| REBUILD PARTITION {partition_names | ALL}
| REPAIR PARTITION {partition_names | ALL}
| PARTITION BY partitioning_expression
| REMOVE PARTITIONING
index_col_name: col_name [(length)] [ASC | DESC]
index_type: USING {BTREE | HASH}
10

index_option: KEY_BLOCK_SIZE [=] value | index_type


| WITH PARSER parser_name

Contoh penggunaan ALTER:

a. Mengubah nama tabel menggunakan perinah ALTER:

ALTER TABLE tb_sebelum RENAME tb_sesudah;

b. Mengubah tipe data kolom c1 dari TINYINT menjadi INT NOT


NULL (nama kolom tidak berubah).
ALTER TABLE tb_ubah MODIFY c1 INT NOT NULL;

c. Menghapus kolom pada suatu tabel


ALTER TABLE tb_hapus DROP COLUMN c1;

d. Untuk menambah kolom pada sebuah tabel


ALTER TABLE tb_tambah ADD c2 VARCHAR(15);

2.4 Perintah DROP

DROP merupakan perintah yang digunakan untuk menghapus


database atau tabel yang sudah dibuat. Penghapusan database dari server
juga mengakibatkan semua file (fisik) yang dibuat sebagai hasil dari
perintah CREATE database akan dihapus. Contoh perintah untuk
menghapus sebuah database db_mahasiswa adalah sebagai berikut.

DROP DATABASE db_mahasiswa;

Perintah DROP pada tabel digunakan untuk menghapus satu atau


lebih tabel pada database. Ketika perintah DROP TABLE dijalankan maka
semua data dan definisi tabel akan terhapus. Contoh perintah untuk
menghapus tabel tb_prodi dan tb_nilai dari database adalah sebagai berikut.

DROP TABLE tb_prodi, tb_nilai;


BAB III
HASIL PRAKTIKUM

3.1 Tugas Pendahuluan


3.1.1 Pengertian DDL
DDL atau Data Definition Language merupakan kumpulan
perintah-perintah pada SQL yang digunakan untuk membuat
(CREATE), mengubah (ALTER), dan menghapus (DROP) struktur
dan definisi yang ada pada objek-objek yang telah dibuat pada
sebuah database.

3.1.2 Perintah CREATE, ALTER, dan DROP pada MySQL


a. CREATE
Create merupakan perintah yang digunakan untuk membuat objek
baru, objek ini antara lain seperti membuat database baru, tabel baru,
view baru, dan juga membuat kolom baru.
Contoh :
Membuat database baru :
Syntax : CREATE DATABASE database_name;
Misalnya kita ingin membuat database karyawan pada
sebuah perusahaan. Perintahnya adalah sebagai berikut.
CREATE DATABASE db_karyawan;
Membuat tabel baru :
Syntax : CREATE TABLE table_name (column_1
data_type(size), column_2 data_type(size), … column_n
data_type(size), PRIMARY KEY (column_name));
Primary Key digunakan mengidentifikasi suatu baris dalam
kolom, biasanya berbeda-beda setiap barisnya atau bersifat
unik.

11
12

Misalnya kita ingin membuat tabel untuk data diri karyawan


yang terdiri dari 4 kolom yaitu User ID, Nama, Umur, dan
Alamat. Perintahnya adalah sebagai berikut.
CREATE TABLE data_diri_karyawan (user_id INT(4),
nama VARCHAR(50), umur INT(4), alamat
VARCHAR(50), PRIMARY KEY (user_id));
b. ALTER
Alter merupakan perintah yang digunakan untuk mengubah struktur
tabel yang telah dibuat pada database. Alter bisa mengubah nama
tabel, menambah kolom, mengubah kolom, menghapus kolom,
ataupun memberikan atribut pada kolom.
Contoh :
Menambah kolom baru :
Syntax : ALTER TABLE table_name ADD column_name
data_type;
Misalnya kita ingin menambah kolom tanggal_lahir pada
tabel data_diri_karyawan. Perintahnya adalah sebagai
berikut.
ALTER TABLE data_diri_karyawan ADD tanggal_lahir
DATE;
Menghapus kolom yang sudah ada :
Syntax : ALTER TABLE table_name DROP column_name;
Misalnya kita ingin menhapus kolom umur pada tabel
data_diri_karyawan. Perintahnya adalah sebagai berikut.
ALTER TABLE data_diri_karyawan DROP umur;
c. DROP
Drop merupakan perintah yang digunakan untuk menghapus
database dan juga tabel yang ada pada database.
Contoh :
Menghapus database :
Syntax : DROP DATABASE database_name;
13

Misalnya kita ingin menghapus database db_karyawan. Jadi,


perintahnya adalah sebagai berikut.
DROP DATABASE db_karyawan;
Menghapus tabel :
Syntax : DROP TABLE table_name;
Misalnya kita ingin menghapus tabel data_diri_karyawan
yang ada pada database. Perintahnya sebagai berikut.
DROP TABLE data_diri_karyawan;

3.1.3 Tipe-tipe Data pada MySQL


a. Tipe Data Numerik (Angka)
Tipe data numerik merupakan tipe data yang digunakan
pada suatu field yang dapat menyimpan nilai atau value berupa
angka. Tipe data numerik ini dibagi menjadi beberapa jenis
antara lain TINYINT, SMALLINT, MEDIUMINT, INT,
BIGINT, DECIMAL, FLOAT, DOUBLE, dan REAL. Masing-
masing memiliki ukuran dan jangkauan nilai yang berbeda-beda.
b. Tipe Data String (Teks)
Tipe data string atau teks merupakan data yang dapat
digunakan untuk menampung karakter dengan jumlah tertentu
dengan maksimal karakter yakni sebanyak 255 karakter. Tipe
data string terbagi menjadi beberapa jenis tipe data string
diantaranya yaitu CHAR, VARCHAR, TINYTEXT, TEXT,
MEDIUMTEXT, dan LONGTEXT. Masing-masing memiliki
cakupan jumlah karakter yang berbeda.
c. Tipe Data Date and Time (Waktu dan Tanggal)
Tipe data date and time atau waktu dan tanggal ini
digunakan untuk menyimpan data tanggal atau waktu dengan
format yang dapat disesuaikan sesuai kebutuhan. Terdapat
beberapa jenis tipe data date and time yang dapat digunakan
antara lain adalah DATE, TIME, DATETIME, YEAR, dan
TIMESTAMP.
14

d. Tipe Data BLOB (Binary Large Object)

Tipe data BLOB merupakan tipe data yang dapat


menyimpan data seperti gambar, audio, video, pdf, dan lainnya.
Terdapat beberapa jenis tipe data BLOB yaitu BIT, TINYBLOB,
BLOB, MEDIUMBLOB, dan LONGBLOB. Masing-masing
bisa menyimpan data dengan ukuran yang bervariasi.

3.1.4 Penggunaan Jenis Key pada SQL


a. Candidate Key
Candidate key (kunci kandidat) merupakan salah satu rangkaian
yang memiliki nilai untuk membedakan ataupun
mengidentifikasikan nilai-nilai kombinasi yang unik pada
sebuah database. Candidate key tidak boleh berisikan atribut dari
tabel yang lain. Setiap tabel dapat memiliki satu atau lebih
candidate key.
Contoh :
Tabel karyawan berisikan atribut :
No Induk
No KTP
Nama
Tempat Lahir
Tanggal Lahir
Alamat

Candidate key-nya adalah No Induk dan No KTP.


b. Primary Key
Primary key (kunci utama) merupakan candidate key yang telah
terpilih untuk mengidentifikasi setiap record secara unik.
Primary key ini harus berupa field yang benar-benar unik dan
tidak boleh bernilai NULL. Jadi dapat disimpulkan primary key
15

ini adalah suatu nilai dalam database yang digunakan untuk


mengidentifikasikan suatu baris dalam tabel secara unik.
Contoh :
Dapat kita ambil dari daftar atribut candidate key pada contoh di
atas. Candidate key-nya adalah No Induk dan No KTP.
Kemudian dari kedua kandidat tersebut dipilih salah satunya
untuk dijadikan primary key. Misalnya disini dipilih No KTP,
jadi primary key-nya adalah No KTP.
c. Foreign Key
Foreign key (kunci tamu) merupakan atribut dalam sebuah relasi
yang digunakan untuk menunjuk ke suatu baris pada relasi tabel
lainnya. Foreign key digunakan untuk membuat sebuah relasi
yang terjadi antar tabel satu dengan tabel lainnya, Ketika sebuah
tabel membuat relasi dengan tabel lainnya, maka salah satunya
akan menjadi primary key dan juga foreign key.
Contoh :
Terdapat dua buah tabel, yaitu tabel tb_buku dan tb_kategori.
Atribut tb_buku :
Book ID (Primary Key)
Judul
Tahun Terbit
Pengarang
Kategori (Foreign Key)

Atribut tb_kategori

Kategori ID (Primary Key)


Nama Kategori

Atribut Kategori pada db_buku menjadi foreign key yang akan


memiliki relasi ke tb_kategori dengan Kategori ID sebagai
primary key-nya.
16

d. Alternate Key
Alternate key (kunci alternatif) merupakan candidate key yang
tidak terpilih menjadi primary key. Misalnya dalam sebuah
database terdapat dua atribut yang dapat dijadikan sebagai
primary key, namun hanya salah satunya saja yang diperlukan
sebagai primary key, maka key yang tidak terpilih tersebut akan
menjadi alternate key.
Contoh :
Tabel karyawan berisikan atribut :
No Induk
No KTP
Nama
Tempat Lahir
Tanggal Lahir
Alamat
Misalnya pada tabel ini terdapat dua candidate key, yaitu No
Induk dan No KTP, namun yang terpilih menjadi primary key
adalah No KTP. Jadi, No Induk yang tidak terpilih akan menjadi
alternate key.
e. Super Key
Super key merupakan satu atau lebih atribut yang dapat
mengidentifikasikan setiap baris dalam sebuah tabel secara unik.
Biasanya terdapat beberapa super key dalam sebuah tabel.
Contoh :
NIM
Nama
Tanggal Lahir
f. Composite Key
Composite key merupakan kunci yang terdiri dari dua atau lebih
atribut yang secara unik mengidentifikasi sebuah entitas.
Composite key terjadi karena dalam sebuah tabel tidak
ditemukannya sebuah primary key, jadi agar tidak melakukan
17

pembuatan primary key baru maka dibuat sebuah composite key


yang biasanya berupa gabungan dari dua buah foreign key,
sehingga tidak ada data yang sama yang akan dimunculkan.
Contoh :
Menggunakan dua buah atribut untuk mengidentifikasikan
sebuah data.
Nama Depan + Nama Belakang

3.1.5 Jenis-jenis CONSTRAINT pada MySQL


a. NOT NULL
NOT NULL Constraint merupakan batasan yang menentukan
sebuah kolom tidak menerimal nilai NULL atau dapat diartikan
sebuah kolom harus memiliki nilai. Biasanya NOT NULL
digunakan pada kolom yang dijadikan Primary Key. Contohnya
seperti NIM pada data tabel mahasiswa.
b. PRIMARY KEY
PRIMARY KEY Constraint merupakan batasan yang dapat
mengidentifikasi kolom atau kumpulan kolom yang memiliki
nilai secara unik untuk mengidentifikasikan baris dalam tabel
tersebut. Biasanya primary key bersifat NOT NULL karena
setiap primary key harus bernilai unik. Contohnya seperti atribut
User ID pada data tabel pembeli.
c. FOREIGN KEY
FOREIGN KEY Constraint merupakan sebuah kolom atau
kombinasi kolom yang digunakan untuk mebuat sebuah relasi
antara tabel satu dengan tabel lainnya. Antara foreign key
dengan primary key saling terhubung. Contohnya pada tabel
mahasiswa yang berelasi dengan tabel dosen pembimbing, maka
pada tabel mahasiswa terdapat foreign key yang akan berelasi
dengan primary key pada tabel dosen pembimbing.
18

d. UNIQUE
UNIQUE Constraint merupakan sebuah batasan yang
membatasi satu kolom atau lebih untuk memiliki nilai unik
dalam sebuah tabel. Sama halnya dengan PRIMARY KEY
Constraint yang bersifat unik, UNIQUE Constraint juga
melakukan hal yang sama. Berbeda dengan PRIMARY KEY
Constraint yang tidak dapat memuat nilai NULL, pada UNIQUE
Constraint dapat memuat nilai NULL.
e. DEFAULT
DEFAULT Constraint merupakan batasan yang dapat
menentukan nilai default untuk kolom tertentu. Nilai default
adalah beberapa nilai yang akan dimasukkan ke dalam kolom
oleh mesin database ketika perintah INSERT tidak secara
eksplisit menetapkan nilai tertentu.
f. CHECK
CHECK Constraint merupakan batasan yang digunakan untuk
membatasi nilai-nilai yang dapat ditempatkan dalam kolom.
Misalnya, pada nilai kolom gaji dapat dibatasi dengan membuat
CHECK Constraint yang akan memingkinkan nilai tersebut
hanya terbatasi dari batasan yang telah ditentukan, misalnya
batasan gaji adalah 10 juta. Dengan CHECK Constraint, ini akan
mencegah gaji yang masuk ke dalam database melebihi kisaran
gaji regular.
19

3.2 Tugas Praktikum


3.2.1 Pembuatan Database Baru
Langkah-langkah:

1. Pembuatan database baru dengan menggunakan nama database


‘db_andresuryana’. Berikut ini adalah gambar perintah SQL-
nya.

2. Setelah menekan tombol ‘Go’, maka akan muncul database


dengan nama ‘db_andresuryana’ seperti gambar berikut ini.
20

3.2.2 Pembuatan Tabel “m_mahasiswa”


Langkah-langkah:

1. Untuk membuat tabel baru kita menggunakan perintah


CREATE TABLE diikuti dengan nama tabel yang diinginkan.
Disini kita akan membuat tabel baru bernama ‘m_mahasiswa’
ke dalam database db_andresuryana. Tabel tersebut akan
berisikan kolom mhs_NIM bertipe CHAR(10), mhs_Nama
bertipe VARCHAR(50) NOT NULL, mhs_Tanggal_Lahir
bertipe DATE, mhs_Alamat bertipe VARCHAR(100),
mhs_Jenis_Kelamin bertipe TINYINT DEFAULT = 1,
mhs_Telpon bertipe VARCHAR(20), dan mhs_Asal bertipe
CHAR(5). Perintahnya dapat dilihat pada gambar berikut ini.

2. Setelah menekan ‘Go’, maka akan muncul tabel baru bernama


‘m_mahasiswa’ di dalam database db_andresuryana seperti
yang bisa dilihat pada gambar berikut ini.
21

3.2.3 Pembuatan CONSTRAINT PRIMARY KEY


Langkah-langkah:

1. Pembuatan Primary Key pada suatu kolom dapat dilakukan


dengan cara menambahkan properti PRIMARY KEY ke dalam
kolom tersebut pada saat pembuatan tabel seperti gambar berikut
ini.

2. Kemudian jika tabel sudah ada pada database, maka kita tinggal
update tabel tersebut dengan menggunakan perintah sebagai
berikut.
22

3. Kemudian jika kita cek pada Table Structure, mhs_NIM sudah


berisikan icon ‘kunci’ berwarna kuning yang berarti kolom
mhs_NIM sudah berhasil diubah menjadi primary key seperti
yang bisa dilihat pada gambar berikut.
23

3.2.4 Pembuatan Tabel “m_kota”


Langkah-langkah:

1. Pembuatan tabel baru bernama ‘m_kota’ yang di dalam tabel


tersebut terdapat dua kolom yaitu kolom kota_id dan kota_nama.
Perintah pembuatan tabel bisa dilihat pada gambar berikut ini.

2. Setelah menekan ‘Go’, maka tabel dengan nama ‘m_kota’ akan


muncul di database db_andresuryana seperti yang terlihat pada
gambar berikut ini.
24

3.2.5 Pembuatan CONSTRAINT FOREIGN KEY


Langkah-langkah:

1. Pembuatan Constraint Foreign Key dari tabel ‘m_mahasiswa’


kolom ‘mhs_asal’ ke tabel ‘m_kota’ kolom ‘kota_id’. Proses ini
dapat dilakukan dengan menggunakan perintah sebagai berikut.

2. Setelah menekan ‘Go’, maka akan muncul icon ‘kunci’


berwarna abu-abu yang berarti kolom mhs_Asal sudah menjadi
foreign key yang memiliki relasi dengan tabel m_kota pada
kolom kota_id. Gambar dapat dilihat sebagai berikut.
25

3.2.6 Percobaan Menghapus Tabel “m_kota”


Langkah-langkah:

1. Disini kita akan melakukan percobaan untuk menghapus tabel


‘m_kota’, perintah yang digunakan adalah DROP TABLE
nama_tabel. Perintah dapat dilihat pada gambar berikut ini.

2. Setelah menekan ‘Go’, maka muncul pop up message yang


menanyakan bahwa benar-benar ingin menghapus tabel m_kota.
seperti gambar berikut ini.

3. Setelah menekan ‘Go’, ternyata tabel tidak bisa dihapus


dikarenakan terdapat error yang mengatakan bahwa tidak dapat
menghapus atau memperbarui kolom induk.
26

Disini dapat saya simpulkan bahwa percobaan untuk melakukan


penghapusan tabel ‘m_kota’ tidak bisa dilakukan. Ini
dikarenakan tabel tersebut masih memiliki relasi dengan tabel
lainnya, dalam hal ini adalah memiliki relasi dengan tabel
‘m_mahasiswa’.
4. Kemudian disini saya melakukan percobaan kembali, tetapi
menghapus relasi antara tabel ‘m_mahasiswa’ dengan tabel
‘m_kota’ terlebih dahulu.

5. Setelah menekan tombol ‘Go’, kemudian muncul alert message


yang menanyakan apakah benar-benar ingin menjalankan
perintah tersebut.

6. Setelah berhasil menjalankan perintah tersebut maka foreign key


pada tabel ‘m_mahasiswa’ sudah terhapus, dapat dilihat pada
gambar berikut ini icon ‘kunci’ berwarna abu-abu tidak ada lagi
di samping kolom ‘mhs_Asal’.
27

7. Setelah berhasil menghapus foreign key atau menghapus relasi


antar kedua tabel. Sekarang kita akan mencoba untuk
menghapus kembali tabel ‘m_kota’.

8. Setelah menekan ‘Go’, muncul alert message seperti gambar di


bawah ini.

9. Ternyata hasilnya tabel berhasil dihapus. Ini berarti tabel yang


ingin kita hapus tidak boleh memiliki relasi dengan tabel yang
lain. Dapat dilihat pada gambar berikut hasil menjalankan
28

perintah tersebut berhasil dan tabel ‘m_kota’ juga sudah


menghilang dari preview database ‘db_andresuryana’.
BAB IV
PENUTUP

4.1 Kesimpulan

Setelah menulis laporan praktikum ini saya mendapatkan banyak


pengalaman dan pengetahuan tentang DDL (Data Definiton Language).
Seperti cara untuk membuat database, membuat tabel, menghapus database,
menghapus tabel, memperbarui data, dan lainnya. Kemudian pada praktikum
ini kita juga dapat mengetahui bahwa tabel yang memiliki relasi dengan tabel
yang lain tidak akan bisa dihapus, kita harus menghapus relasi tersebut barulah
kita dapat menghapus tabel tersebut.

4.2 Saran

Adapun saran saya sebagai penulis laporan ini adalah kita sebaiknya
memulai belajar menggunakan database beserta perintah-perintahnya,
misalnya pada MySQL. Ini dapat membantu kita untuk dapat lebih memahami
bagaimana cara untuk membuat database dan mengelola database tersebut.
Karena jika kita membuat sebuah sistem ataupun aplikasi pastinya kita akan
membutuhkan database untuk aplikasi tersebut dapat menyimpan informasi-
informasi yang dibutuhkan. Diharapkan nantinya laporan praktikum ini akan
dapat mengedukasi pembaca mengenai DDL pada MySQL.

29
DAFTAR PUSTAKA

Wikipedia contributors, "Database," Wikipedia, The Free


Encyclopedia, https://en.wikipedia.org/w/index.php?title=Database&oldid=100606429
0 (diakses 16 Februari 2021).

Wikipedia contributors, "Data definition language," Wikipedia, The Free


Encyclopedia, https://en.wikipedia.org/w/index.php?title=Data_definition_language&o
ldid=998792945 (diakses 16 Februari 2021).

MySQL Documentation Website, https://dev.mysql.com/doc/ (diakses 16 Februari


2021)

30

Anda mungkin juga menyukai