Anda di halaman 1dari 19

LAPORAN PRAKTIKUM

BASIS DATA
Laporan ini disusun untuk memenuhi salah satu tugas mata kuliah praktikum basis
data

Semester 2 Tahun Akademik 2021/2022

Oleh:

Nama: Maulana Decky Rakhman

NPM: 207006036

LABORATORIUM INFORMATIKA

PROGRAM STUDI INFORMATIKA

FAKULTAS TEKNIK UNIVERSITAS SILIWANGI

TASIKMALAYA

2021
BAB II DATA DEFINITION LANGUAGE (DDL)

1. TUJUAN PRAKTIKUM
Praktikan diharapkan dapat :

1.1. Mengetahui dan memahami Data Definition Language (DDL)


1.2. Mengetahui macam-macam tipe data dan perintah DDL
1.3. Mengimplementasikan perintah DDL pada MySQL

2. DASAR TEORI
2.1. BAHASA SQL
SQL memiliki kepanjangan Structured Query Language, digunakan
sebagai antarmuka dalam pengelolaan data. SQL merupakan bahasa komprehensif
untuk basis data sehingga dibuat standar bahasa SQL oleh ANSI (American
National Standard Institute) dan ISO (International Standard Organizatioan). Di
dalamnya terdapat perintah untuk pendefinisian data, melakukan query dan update
terhadap data. Perintah tersebut dikelompokan dalam 2 istilah: DDL (Data
Definition Language) untuk pendefinisian data dan DML (Data Manipulation
Language) untuk melakukan update dan query.
2.2. TIPE DATA
A. TIPE DATA NUMERIK

Tipe Keterangan Range Nilai


TINYINT Nilai integer yang Signed : -128 s.d. 127
sangat kecil Unsigned : 0 s.d. 255
SMALLINT Nilai integer yang Signed : -32768 s.d. 32767
kecil Unsigned : 0 s.d. 65535
MEDIUMINT Integer dengan nilai Signed : -8388608 s.d.
medium 8388607
Unsigned : 0 s.d. 16777215
Tipe Keterangan Range Nilai
INT Integer dengan nilai Signed : -2147483648 s.d.
standar 2147483647
Unsigned : 0 s.d. 4294967295
BIGINT Integer dengan nilai Signed : -9223372036854775808
besar s.d. 9223372036854775807
Unsigned : 0 s.d.

II-1
II-2

18446744073709551615
FLOAT Bilangan desimal dengan
minimum ± 1.175494351e-38
single- precission maksimum ± 3.402823466e+38
DOUBLE Bilangan desimal dengan
minimum ±
double- 2.2205738585072014e-308
precission maksimum ±
1.7976931348623457e+308
DECIMAL(M,D) Bilangan float Tergantung pada nilai M dan D
(desimal) yang
dinyatakan sebagai
string. M adalah jumlah
digit yang disimpan
dalam suatu kolom, N
adalah jumlah digit
dibelakang koma
Tabel 2.2.1

Keterangan : Signed dan Unsigned adalah atribut untuk tipe data numerik

- Signed : data yang disimpan dalam suatu kolom dapat berupa data negatif
dan positif.
- Unsigned : digunakan agar data yang dimasukkan bukan data negatif
(>=0). Tipe data float tidak dapat dinyatakan dengan unsigned.

B. TIPE DATA STRING


Tipe Keterangan Ukuran Maksimum
CHAR(n) String karakter dengan panjang yang 1 M byte
tetap, yaitu n
VARCHAR(n) String karakter dengan panjang yang 1 M byte
tidak tetap, maks n
TINYBLOB BLOB (Binary Large Object) yang 28-1 byte
sangat kecil
BLOB BLOB berukuran kecil 216-1 byte
MEDIUMBLOB BLOB berukuran sedang 224-1 byte
LONGBLOB BLOB berukuran besar 232-1 byte
TINYTEXT String teks yang sangat kecil 28-1 byte
TEXT String teks berukuran kecil 216-1 byte
MEDIUMTEXT String teks berukuran 224-1 byte
medium(sedang)
LONGTEXT String teks berukuran besar 232-1 byte
ENUM Enumerasi, kolom dapat disi dengan 65535 anggota
1 member enumerasi
SET Himpunan, kolom dapat diisi dengan 64 anggota
beberapa nilai himpunan
anggota himpunan
Tabel 2.2.2

Tipe data tanggal dan jam :


II-3

Tipe Range Format


DATE “1000-01-01” s.d. “9999- “0000-00-00”
12-31”
TIME “-832:59:59” s.d. “00:00:00”
“838:59:59”
DATETIME “1000-01-01 00:00:00” “0000-00-00 00:00:00”
s.d. “9999-12-
31 23:59:59”
Tabel 2.2.3

2.3. PERINTAH DDL (DATA DEFINITION LANGUAGE)


DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan
atribut- atribut basis data, tabel, atribut(kolom), batasan-batasan terhadap suatu
atribut, serta hubungan antar tabel. Yang termasuk dalam kelompok DDL ini
adalah CREATE, ALTER, dan DROP.
A. MEMBUAT DATABASE
Perintah: CREATE DATABASE namadatabase;

namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki


nama yang sama antar database. Berikut ini perintah untuk membuat database
dengan nama akademik :

mysql> create database akademik;


Tampilan Program di Layar:

Gambar 2.3.1
Analisis:
Perintah diatas merupakan perintah untuk membuat database baru dengan nama
yang dapat dengan bebas ditentukan oleh pengguna asalkan tidak menggunakan
spasi atau sama dengan database lain sebagai gantinya pengguna bisa
menggunakan simbol “_” sebagai pengganti dari spasi, dalam kasus kali ini
saya menggunakan “akademik” sebagai nama dari database.
Perintah tambahan : untuk menampilkan daftar nama database yang ada
pada mysql menggunakan perintah : SHOW DATABASES;

mysql> show databases;


Tampilan Program di Layar:
II-4

Gambar 2.3.2
Analisis:
Perintah ini dapat digunakan untuk menampilkan semua database yang ada di
program mysql.

B. MENGHAPUS DATABASE
Perintah : DROP DATABASE namadatabase;

Database yang akan dihapus sesuai dengan namadatabase. Berikut ini


perintah untuk menghapus database dengan nama akademik ;

mysql> drop database akademik;


Tampilan Program di Layar:

Gambar 2.3.3
Analisis:
Perintah diatas dapat digunakan untuk menghapus database yang ada di mysql,
dalam kasus kali ini saya menghapus database “akademik” yang sudah saya
buat sebelumnya.

C. MEMBUAT TABEL
Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu
database sebagai database aktif yang akan digunakan untuk menyimpan tabel-
tabel dengan menggunakan perintah : USE namadatabase;
II-5

Berikut ini perintah untuk menggunakan database dengan nama akademik :

mysql> use akademik;

Tampilan Program di Layar:

Gambar 2.3.4
Analisis:
Perintah ini dapat digunakan ketika pengguna ingin memilih salah satu database
di mysql untuk mengubah (edit) atau menambahkan konten ke dalam database,
dalam kasus kali ini saya membuat lagi database akademik dan menggunakan
perintah “use akademik;”.

Perintah membuat table :


create tabel namatable
(

Field1 TipeData1,

Field2 TipeData2

);

namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1


merupakan nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin
membuat tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe data
sebelumnya diberikan tanda koma (,). Berikut ini perintah untuk membuat tabel
dengan nama mahasiswa :

mysql> create table mahasiswa(


-> npm char(9) not null,
-> nama varchar(20) not null,
-> alamat varchar(30) null,
-> jns_kelamin char(1) not null,

-> gol_darah varchar(2) null,


-> primary key (npm));
Tampilan Program di Layar:
II-6

Gambar 2.3.5
Analisis:
Perintah diatas dapat digunakan ketika user ingin menambahkan “Table” yang
mirip dengan “Record” dalam bahasa pascal, cara penggunaanya pertama
pengguna harus mengetik “create table namatabel(“ lalu mysql akan
menanyakan field (konten) dari table tersebut dengan lambang “->”, pengguna
dapat menambahkan berapapun field yang diinginkan, dalam kasus ini saya
menggunakan “mahasiswa” sebagai nama tabel dan field nya diisi oleh :

-“npm” yang bertipe char dengan range 9 yang harus berisi

-“nama” yang bertipe varchar dengan range 20 yang harus berisi

-“alamat” yang bertipe varchar dengan range 30 yang boleh diisi atau tidak

-“jns_kelamin” yang bertipe char dengan range 1 yang harus berisi

-“gol_darah” yang bertipe varchar dengan range 2 yang boleh diisi atau tidak

-“primary key” menggunakan field npm.

Keterangan : null yaitu field tesebut dapat tidak berisi nilai sedangkan not
null yaitu field harus berisi nilai atau tidak boleh kosong. Primary key untuk
mendefinisikan kata kunci dalam sebuah tabel.

Perintah tambahan :

Untuk menampilkan daftar nama tabel yang ada pada database yang
sedang aktif/digunakan (dalam hal ini database akademik) : SHOW TABLES;

mysql> show tables;


Tampilan Program di Layar:
II-7

Gambar 2.3.6
Analisis:
Perintah diatas dapat digunakan pengguna untuk melihat semua table dari
database yang sedang digunakan saat ini.

Untuk menampilkan deskripsi tabel (dalam hal ini mahasiswa)


perintahnya adalah :

DESC namatabel atau DESCRIBE namatabel;

mysql> describe mahasiswa;


Tampilan Program di Layar:

Gambar 2.3.7
Analisis:
Perintah diatas dapat digunakan ketika pengguna ingin melihat field dari table
yang sudah ada di dalam database, dalam kasus ini saya menggunakan
“describe mahasiswa;” untuk menampilkan (mendeskripsikan) field dari
table “mahasiswa”.

D. MENGHAPUS TABEL
II-8

Perintah : DROP TABLE namatabel;

Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah
untuk menghapus tabel dengan nama mahasiswa :

mysql> drop table mahasiswa;


Tampilan Program di Layar:

Gambar 2.3.8
Analisis:
Program ini dapat digunakan ketika pengguna ingin menghapus tabel yang ada
di dalam database saat ini, dalam kasus ini saya menghapus tabel “ mahasiswa”
yang saya buat sebelumnya.

E. MEMBUAT KOLOM AUTO UNTUK PENAMBAHAN DATA


OTOMATIS

Parameter yang digunakan untuk membuat kolom bentuk AUTO adalah


AUTO INCREMENT. Dengan menggunakan tipe kolom ini, data akan
bertambah secara otomatis. Yang perlu diingat, syarat kolom AUTO harus
menggunakan tipe data angka (INT, TINIINT, …) . Bentuk perintahnya sebagai
berikut:

Coba dalam pembuatan tabel selanjutnya.

Tampilan Program di Layar:


II-9

Gambar 2.3.9
Analisis:
Perintah ini dapat digunakan pengguna untuk menambahkan data secara
otomatis, contohnya dalam kasus ini saya membuat kembali tabel “mahasiswa”
dengan sedikit modifikasi dimana kali ini tipe data dari field “ npm” diubah
menjadi int (yang sebelumnya char) agar dapat menggunakan perintah
“auto_increment”, pada saat dilihat kembali menggunakan perintah “ desc
mahasiswa;” mysql menampilkan bahwa field npm menggunakan
“auto_increment” pada bagian extra.

F. MENGHAPUS PRIMARY KEY PADA TABEL

ALTER TABLE namatabel DROP PRIMARY KEY;

Berikut ini perintah yang digunakan untuk menghapus primary key pada tabel
mahasiswa :

mysql> alter table mahasiswa drop primary key;


Tampilan Program di Layar:
II-10

Gambar 2.3.10
Analisis:
Perintah ini hanya dapat di run apabila primary key tidak memiliki extra apapun
(misalnya auto_increment) apabila perintah dijalankan sedangkan primary key
memiliki extra maka akan muncul error, jadi saya menghapus lalu membuat
kembali tabel “mahasiswa” dengan field npm tanpa extra apapun, kemudian
mencoba kembali perintah “ALTER TABLE namatabel DROP PRIMARY
KEY;” namun kali ini perintah dapat dijalankan tanpa ada error. Perintah ini
lalu menghapus primary key dari field “npm”.

G. MENAMBAH KOLOM/FIELD BARU PADA TABEL

ALTER TABLE namatabel ADD fieldbaru tipe;

namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru


adalah nama kolom yang akan ditambahkan, tipe adalah tipe data dari kolom
II-11

yang akan ditambahkan. Berikut ini perintah untuk menambah kolom tgl_lahir
dengan tipe data date :
mysql> alter table mahasiswa add tgl_lahir date;

Lakukan perintah decs mahasiswa(lihat tabel),amati perubahannya.

mysql> alter table mahasiswa add tgl_lahir date;


Tampilan Program di Layar:

Gambar 2.3.11

Analisis:
Perintah ini dapat menambahkan field baru sesuai keinginan pengguna,
contohnya pada kasus ini saya menambahkan field “tgl_lahir” yang bertipe
date, sedangkan untuk null nya, karena default nya null maka secara otomatis
program memasukkan “tgl_lahir” sebagai “yes”.

H. MENAMBAH KOLOM KUNCI/PRIMARY KEY PADA TABEL

Pada saat pembuatan tabel, Anda lupa mendefinisikan kunci primernya.


Dengan menggunakan perintah ALTER, Anda dapat melakukan perubahan
sebuah kolom menjadi kunci. Bentuk sintaksnya sebagai berikut:
ALTER TABLE nama_tbl ADD PRIMARY KEY(kolom)

Dengan menggunakan aturan seperti sintaks di atas, Anda dapat langsung


menyebutkan nama kolom yang akan dibuat sebagai kunci. Sebagai latihan, Anda
II-12

dapat menghapus tabel dosen terlebih dahulu. Setelah itu buat kembali tabel dosen
dengan tidak mendefinisikan primay key-nya.

mysql> alter table mahasiswa


-> add primary key(npm);
Tampilan Program di Layar:

Gambar 2.3.12
Analisis:
Perintah ini dapat menambahan primary key ke field manapun yang pengguna
mau, dalam kasus ini saya menambahkan primary key ke field “npm”.
II-13

I. MENGUBAH TIPE DATA ATAU LEBAR KOLOM PADA TABEL


ALTER TABLE namatabel MODIFY COLUMN field tipe;

namatabel adalah nama tabel yang akan diubah tipe data atau lebar
kolomnya. Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe
adalah tipe data baru atau tipe data lama dengan lebar kolom yang berbeda.
Berikut ini perintah untuk mengubah tipe data untuk kolom nama dengan
varchar(25) :
mysql> alter table mahasiswa modify column nama
varchar(25);

Lakukan perintah decs mahasiswa(lihat tabel),amati perubahannya.

mysql> alter table mahasiswa modify column nama varchar(25);


Tampilan Program di Layar:

Gambar 2.3.13
Analisis:
Perintah ini dapat digunakan apabila pengguna ingin mengubah range dari
suatu field, misalnya kali ini saya mengubah range dari field “ nama” dari 20
menjadi 25.

J. MENGUBAH NAMA KOLOM

ALTER TABLE namatabel CHANGE COLUMN namalamakolom


namabarukolom tipedatanya;
II-14

namatabel adalah nama tabel yang akan diubah nama kolomnya,


namalamakolom adalah kolom yang akan diganti namanya, namabarukolom
adalah nama baru kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut
ini perintah untuk mengubah nama kolom nama menjadi nama_lengkap :
mysql> alter table mahasiswa change column nama
nama_lengkap varchar(20);

Lakukan perintah decs mahasiswa(lihat tabel),amati perubahannya.

mysql> alter table mahasiswa change column nama nama_lengkap


varchar(20);
Tampilan Program di Layar:

Gambar 2.3.14
Analisis:
Perintah ini dapat digunakan oleh pengguna apabila ingin mengubah nama dari
suatu field dalam tabel, dalam kasus kali ini saya mengubah nama dari field
“nama” menjadi “nama_lengkap”.

K. MENGUBAH NAMA TABEL

Jika nama tabel yang ada tidak sesuai dengan data, Anda dapat
mengubahnya dengan cara mengganti nama tabel tersebut. Caranya, dengan
menggunakan parameter RENAME. Perintahnya sebagai berikut:
ALTER TABLE nama_lama RENAME [TO] nama_baru

Pada perintah di atas, Anda bebas untuk tidak menggunakan parameter


TO, karena sifatnya hanya optional (pilihan) saja. Sebagai latihan, bagaimana jika
II-15

tabel ambil kita ganti namanya menjadi mengambil. Sebelum diganti, Anda dapat
melihat kondisi awal terlebih dahulu di dalam database.

Untuk mengganti nama tabel dari ambil menjadi mengambil, Anda dapat
menjalankan perintah seperti berikut:

mysql> alter table mahasiswa rename to tab_mhs;


Tampilan Program di Layar:

Gambar 2.3.15
Analisis:
Jika perintah sebelumnya dapat mengubah nama field, perintah kali ini dapat
mengubah nama dari tabel, dalam kasus ini saya mengubah nama dari tabel
“mahasiswa” menjadi “tab_mhs”.

L. MENGHAPUS KOLOM PADA TABEL

ALTER TABLE namatabel DROP COLUMN namakolom;

Berikut ini perintah untuk menghapus kolom tgl_lahir pada tabel


mahasiswa:
mysql> alter table mahasiswa drop tgl_lahir;

Lakukan perintah decs mahasiswa(lihat tabel), amati perubahannya.

mysql> alter table mahasiswa drop tgl_lahir;


Tampilan Program di Layar:
II-16

Gambar 2.3.16
Analisis:
Perintah ini dapat menghapus salah satu field yang pengguna inginkan,
misalnya saya menghapus field “tgl_lahir” dari tabel “mahasiswa”.

M. MENDEFINISIKAN FOREIGN KEY PADA TABEL (KUNCI


TAMU)

ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGN


KEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ON
UPDATE CASCADE ON DELETE NO ACTION;

Berikut perintah untuk membuat foreign key nip pada tabel mengajar dari
tabel induk dosen :

mysql> alter table mahasiswa add constraint fk foreign


key (nama_lengkap) references mahasiswa(npm) on update
cascade on delete no action;

Lakukan perintah decs ambil(lihat tabel),amati perubahannya.

mysql> alter table mahasiswa add constraint fk foreign key


(nama_lengkap) references mahasiswa(npm) on update cascade on
delete no action;

Tampilan Program di Layar:


II-17

Gambar 2.3.17
Analisis:
Perintah ini dapat menambahkan foreign key pada field yang diinginkan oleh
pengguna, pada kasus ini saya menambahkan foreign key ke “ nama_lengkap”
dengan kolom induk dari “npm”.

N. MENGHAPUS FOREIGN KEY

ALTER TABLE namatabel DROP FOREIGN KEY namaconstraint;

Berikut ini perintah untuk menghapus foreign key pada tabel mengajar :

mysql> alter table mahasiswa drop foreign key fk;


Tampilan Program di Layar:

Gambar 2.3.18
Analisis:
Perintah ini dapat menghapus foreign key yang berada dalam tabel, dalam
kasus ini saya menghapus foreign key yang berada dalam field
“nama_lengkap”. (terlihat di dalam tabel kalau “nama_lengkap masih
II-18

memiliki key, hal ini karena pada saat di deklarasikan tidak menggunakan “on
action” pada perintahnya melainkan menggunakan “no action”).

Anda mungkin juga menyukai