Anda di halaman 1dari 40

NAMA :

NIM :
KELAS :

Buku Praktikum

Basis Data Dasar


Untuk Mahasiswa Jurusan Sistem Informasi, Jenjang Strata 1 (S1)

HA2021 Sistem Informasi - UNUGIRI


Buku Praktikum : Basis Data Dasar 1

Daftar Isi

Daftar Isi........................................................................................................................................................1
PENGENALAN DATABASE MYSQL.......................................................................................................3
Pengenalan MySQL...................................................................................................................................3
Format Perintah..........................................................................................................................................4
Start dan Stop MySQL...............................................................................................................................5
Database dan Tabel........................................................................................................................................8
Pembuatan Database Baru MySQL...........................................................................................................8
Pembuatan Tabel MySQL (create tabel)....................................................................................................8
Mendefinisikan Null /Not Null..................................................................................................................9
Mendefinisikan Primary Key pada Tabel..................................................................................................9
Menghapus Primary Key Pada Tabel........................................................................................................9
Menambah Kolom Baru pada Tabel..........................................................................................................9
Mengubah Tipe Data atau Lebar Kolom pada tabel................................................................................10
Mengubah Nama Kolom..........................................................................................................................10
Menghapus Kolom pada Tabel................................................................................................................10
Manipulasi dan Retrive Data I.....................................................................................................................12
Pengisian Data (INSERT)........................................................................................................................12
Sistem Informasi – UNUGIRI 2021

Melihat Isi Tabel (SELECT)....................................................................................................................12


Memperbarui Data (UPDATE)................................................................................................................13
Menghapus Data (DELETE)....................................................................................................................13
Menghapus Tabel (DROP TABEL).........................................................................................................13
Menghapus Database (DROP DATABASE)...........................................................................................13
Manipulasi dan Retrive Data II....................................................................................................................15
Perintah SELECT untuk Mencari dan Menampilkan Data......................................................................15
Nested Queries / Subquery (IN, NOT IN, EXIST, NOT EXISTS).........................................................15
IN.........................................................................................................................................................16
NOT IN................................................................................................................................................16
EXISTS................................................................................................................................................16
NOT EXISTS.......................................................................................................................................17
Operator Comparison ANY dan ALL......................................................................................................17
2 Buku Praktikum : Basis Data Dasar

ANY.....................................................................................................................................................17
ALL......................................................................................................................................................17
Sintak ORDER BY..................................................................................................................................17
Sintak DISTINCT....................................................................................................................................18
UNION, INTERSECT dan EXCEPT......................................................................................................18
UNION.................................................................................................................................................18
INTERSECT........................................................................................................................................18
EXCEPT..............................................................................................................................................18
Fungsi Agregat.............................................................................................................................................22
COUNT....................................................................................................................................................22
SUM.........................................................................................................................................................22
AVG.........................................................................................................................................................22
MIN..........................................................................................................................................................22
MAX........................................................................................................................................................22
Retrive, Group dan Filter.............................................................................................................................25
Pattern Matching..........................................................................................................................................27
Relasi Tabel.................................................................................................................................................30
Join...............................................................................................................................................................33
Inner Join.................................................................................................................................................33
Left Join...................................................................................................................................................33

Sistem Informasi – UNUGIRI 2021


Right Join.................................................................................................................................................34
Natural Join..............................................................................................................................................34
Natural Left Join..................................................................................................................................34
Natural Right Join................................................................................................................................34
Buku Praktikum : Basis Data Dasar 3

Lembar Kerja Praktikum 1 :

PENGENALAN DATABASE MYSQL

I. Tujuan:
Setelah mengerjakan LKP 1 ini, anda diharapkan dapat:
1. Mengenal ruang lingkup kerja MySQL dan fungsinya

II. Dasar Teori


Pengenalan MySQL
MySQL adalah suatu perangkat lunak database relasi (Relational Database Management
System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya. MySQL
dikembangkan sekitar tahun 1994 oleh sebuah perusahaan pengembang software dan konsultan
database bernama MYSQL AB yang berada di Swedia. Waktu itu perusahaan tersebut masih
bernama TcX DataKonsult AB. Tujuan awal dikembangkannya MySQL adalah untuk
mengembangkan aplikasi berbasis web pada client. MySQL menyebut produknya sebagai
database open source terpopuler di dunia. Berdasarkan riset dinyatakan bahwa MySQL adalah
database yang paling banyak dipakai. Menurut perusahaan pengembangnya, MySQL telah
terpasang disekitar 3 juta komputer. Puluhan hingga ratusan ribu situs mengandalkan MySQL
Sistem Informasi – UNUGIRI 2021

bekerja siang malam memompa data bagi para pengunjungnya.


File executable MySQL dapat diunduh disitus www.mysql.com. Selain itu file program
MySQL terdapat pada bundle perangkat lunak XAMPP dan Appserv yang merupakan gabungan
dari Apache server, MySQL, dan PHP.
Interface pengembangan pada basis data MySQL yaitu dengan menggunakan command
line dan menggunakan PhpMyAdmin yang berbasis web. Untuk menggunakan mysql command
line yaitu dapat diakses melalui command prompt.
4 Buku Praktikum : Basis Data Dasar

Untuk dapat mengakses MySQL melalui web, bisa digunakan PhpMyAdmin yang diakses dari
browser.

Format Perintah
Berikut adalah ketentuan-ketentuan memberi perintah pada MySQL:
1. Setiap perintah harus diakhiri dengan tanda titik koma, kecuali untuk perintah tertentu,
misal :quit

Sistem Informasi – UNUGIRI 2021


2. Setiap perintah akan disimpan dalam buffer (memori sementara) untuk menyimpan
histori perintah-perintah yang pernah diberikan.
3. Perintah dapat berupa perintah SQL atau perintah khusus MySQL.
4. Perintah – perintah dalam lingkungan MySQL tidak menerapkan aturan case sensitive,
tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf besar atau pun huruf
kecil.
5. Aturan case sensitive diterapkan pada penamaan objek – objek dalam database seperti
nama database atau nama tabel, namun aturan ini hanya ada dalam lingkungan Unix
dan Linux.
Buku Praktikum : Basis Data Dasar 5

Ada beberapa tanda yang sering muncul di prompt:


Prompt Arti
Mysql> Siap menerima perintah baru
-> Menunggu baris berikut untuk perintah yang lebih dari satu baris
‘> Menunggu baris berikut, menunggu penutup string yang dimulai
dengan tanda kutip satu (“'”)
“> Menunggu baris berikut, menunggu penutup string yang dimulai
dengan tanda kutip dua (“"”)
`> Menunggu baris berikutnya, menunggu penutup identifier yang
dimulai dengan tanda backtick (“`”)

Start dan Stop MySQL


MySQL membutuhkan sebuah service untuk menjalankan dan menghentikan program. Terdapat
beragam cara untuk start dan stop MySQL. Ada dua cara yang banyak digunakan untuk
menjalankan dan menghentikan service MySQL. Cara pertama melalui command line.
Menggunakan XAMPP:
Sistem Informasi – UNUGIRI 2021

Untuk keluar dari program MySQL menggunakan perintah (\q), quit dan exit.
6 Buku Praktikum : Basis Data Dasar

Untuk melihat help ketikkan (\h) untuk membatalkan perintah (\c)

LEMBAR KERJA PRAKTIKUM I


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Pengenalan Database MySql
Praktik:
1. Koneksi ke MySQL.
Buka command prompt, masuk ke direktori \xampp\MySQL\bin, kemudian ketik:
mysql –u root
2. Diskoneksi dari MySQL.
Untuk diskoneksi, ketik:
QUIT atau \q
3. Ketik perintah berikut:
SELECT VERSION(), CURRENT_DATE;
4. Ketik perintah di atas (no.3):
a. Dengan huruf kecil semua
b. Dengan huruf besar dan kecil
5. Ketik perintah di berikut
SELECT SIN(PI()/4), (4+1)*5;
6. Ketik perintah berikut:
SELECT VERSION(); SELECT NOW();
(bandingkan hasilnya dengan no.3 di atas)

Sistem Informasi – UNUGIRI 2021


7. Ketik perintah berikut:
Mysql > SELECT
- > USER()
- > \c
8. Ketik perintah berikut:
Mysql > SELECT USER()
Apa yang terjadi?
Kemudian ketik:
->;
Apa yang terjadi?
SQL:

Output:

Analisa Hasil Praktikum


1. Perintah apa yang digunakan untuk masuk ke MySQL yang tidak mempunyai password?
Buku Praktikum : Basis Data Dasar 7

2. Apakah perintah-perintah di MySQL bersifat case sensitif?


3. Apa perbedaan pengetikan lebih dari satu perintah, yang dipisah dengan tanda koma (,) dan tanda titik
koma (;)?
4. Bisakah kita melakukan operasi aritmatik dengan menggunakan perintah SQL? Berikan contoh yang
lain?
5. Haruskah kita mengetik perintah dalam satu baris?
6. Bagaimana untuk mengakhiri atau membatalkan suatu perintah?
7. Sebelum membuat tabel, langkah-langkah apa saja yang sebaiknya kita lakukan? (Berdasarkan percobaan
di atas)
Sistem Informasi – UNUGIRI 2021
8 Buku Praktikum : Basis Data Dasar

Lembar Kerja Praktikum 2 :

Database dan Tabel


I. Tujuan:
Setelah mengerjakan LKP 2 ini, anda diharapkan dapat:
1. Mampu membuat database dan menggunakannya serta mampu membuat tabel.

II. Dasar Teori


Pembuatan Database Baru MySQL
Sebelum memulai pembuatan database baru pada MySQL, perlu diketahui bersama
bahwa penulisan kode SQL pada sistem operasi Windows adalah not case sensitive, berbeda
dengan menggunakan Linux / UNIX yang case sensitive. Case sensitive artinya penulisan
karakter besar kecil dianggap berbeda. Saran, sebaiknya menggunakan karakter yang case
sensitive, jadi apabila memakai huruf kecil, maka huruf kecil semuanya, demikian sebaliknya.
Perintah membuat database:
create database nama_database;
Selanjutnya untuk melihat semua database, gunakan perintah:
show databases;
Selanjutnya untuk dapat memakai database yang telah dibuat, maka gunakan perintah
use nama_database;

Sistem Informasi – UNUGIRI 2021


Pembuatan Tabel MySQL (create tabel)
Sebelum pada tahap pembuatan tabel, perlu diketahui bahwa MySQL memiliki banyak
storage engine. Storage engine yang banyak dipakai yaitu MyISAM dan InnoDB. Pada tipe
MyISAM tidak mendukung foreign key. Foreign key yaitu sebuah atribut dalam suatu relasi yang
merujuk ke kunci primer relasi lain. Jadi apabila ingin menggunakan foreign key maka harus
menggunakan tipe InnoDB.
Perintah membuat tabel
CREATE TABLE nama_tabel (field1 type_data1 (length1), field2 type_data2(length2));
Selanjutnya untuk melihat nama tabel apa saja yang telah dibuat, gunakan perintah
SHOW TABLES;
Sedangkan untuk melihat struktur tabel, digunakan perintah
Buku Praktikum : Basis Data Dasar 9

Describe
nama_tabel;
desc nama_tabel;
Mendefinisikan Null /Not Null
Perintah yang digunakan:
CREATE TABLE nama_tabel (Field1 TipeData1 (length1) NOT NULL, Field2
TipeData2(length2));

Mendefinisikan Primary Key pada Tabel


Ada tiga cara untuk mendefinisikan primary key. Berikut ini sintak mendefinisikan
primay key untuk field 1
CREATE TABLE nama_tabel (Field1 TipeData1(length1) not null PRIMARY KEY,
Field2 TipeData2(length2));
Atau
CREATE TABLE nama_tabel (Field1 TipeData1 (length1), Field2 TipeData2 (length2),
PRIMARY KEY(Field1));
Atau
ALTER TABLE nama_tabel ADD CONSTRAINT nama_constraint PRIMARY KEY
(field);

Menghapus Primary Key Pada Tabel


Cara 1: Jika primary key dibuat dengan menggunakan alter table, maka cara
Sistem Informasi – UNUGIRI 2021

menghapusnya menggunakan perintah:


ALTER TABLE nama_tabel DROP CONSTRAINT
nama_constraint;

Cara 2: Jika primary key dibuat melalui create table, maka cara menghapusnya
menggunakan perintah:
ALTER TABLE nama_tabel DROP PRIMARY KEY;

Menambah Kolom Baru pada Tabel


ALTER TABLE nama_tabel ADD field_baru tipe_data
(length);

Untuk meletakkan field diawal, tambahkan sintaks first:


10 Buku Praktikum : Basis Data Dasar

ALTER TABLE nama_tabel ADD COLUMN field_baru tipe_data (length) FIRST;

Untuk menyisipkan field setelah field tertentu, tambahkan sintaks after:


ALTER TABLE nama_tabel ADD COLUMN field_baru tipe_data (length) AFTER
field;

Mengubah Tipe Data atau Lebar Kolom pada tabel


Perintah:
ALTER TABLE nama_tabel MODIFY COLUMN nama_field
tipe_data_baru(length_baru);

Mengubah Nama Kolom


Perintahnya:
ALTER TABLE nama_tabel CHANGE COLUMN nama_lama_kolom nama_baru_kolom
tipe_data_baru(length_baru);

Sistem Informasi – UNUGIRI 2021


Menghapus Kolom pada Tabel
Perintah:
ALTER TABLE nama_tabel DROP COLUMN
nama_kolom;

LEMBAR KERJA PRAKTIKUM II


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Database dan Tabel
Praktik:
Buatlah database baru dengan ketentuan:
Nama Database : Perdagangan
Buku Praktikum : Basis Data Dasar 11

Nama Tabel : Barang


Field Type Null Key
Kode_barang Varchar (6) No Pri
Nama_barang Varchar (30) No
Satuan_baran Varchar (20) No
g
Stok_barang Int (10) Yes
1. Untuk membuat database perdagangan, ketikkan perintah berikut ini:
MariaDB[(none)] > create database perdagangan;
2. Untuk menampilkan semua database yang telah ada, gunakan perintah :
MariaDB[(none)] > show databases;
3. Untuk menggunakan database perdagangan, maka gunakan perintah berikut ini:
MariaDB[(none)] > use perdagangan;
4. Untuk membuat tabel barang dengan type dan atribut seperti perintah soal, maka ketikkan perintah sql berikut
ini :
MariaDB[(perdagangan)] > create table barang(
kode_barang varchar(6) not null primary key,
nama_barang varchar(30) not null,
satuan_barang varchar(20) not null,
stok_barang int(10) null
);/
5. Untuk menampilkan tabel yang ada pada database perdagangan, gunakan perintah berikut ini :
MariaDB[(perdagangan)] > show tables;
6. Untuk melihat struktur tabel barang, gunakan perintah berikut ini:
MariaDB[(perdagangan)] > desc barang;
7. Untuk menghapus primary key pada tabel barang, gunakan perintah berikut ini:
MariaDB[(perdagangan)] > alter table barang drop primary key;
8. Untuk mendefiniskan primary key ke table barang, gunakan perintah berikut ini:
MariaDB[(perdagangan)] > alter table barang add constraint kode_barang primary key (kode_barang);
Sistem Informasi – UNUGIRI 2021

9. Untuk menambahkan kolom “Terjual” dengan type data varchar (5) pada tabel barang, gunakan perintah:
MariaDB[(perdagangan)] > alter table barang add terjual varchar(5);
10. Untuk mengubah tipe data untuk kolom kode_barang menjadi varchar(10), gunakan perintah:
MariaDB[(perdagangan)] > alter table barang modify column kode_barang varchar(10);
11. Untuk mengubah nama kolom “terjual” menjadi “keterangan”, gunakan perintah:
MariaDB[(perdagangan)] > alter table barang change column terjual keterangan varchar(20);
12. Untuk menghapus kolom “keterangan” pada tabel barang, gunakan perintah:
MariaDB[(perdagangan)] > alter table barang drop keterangan;
Output:

LATIHAN
1. Buat sebuah database dengan nama fasilkom!
2. Buat sebuah tabel dengan nama “mahasiswa” di dalam database fasilkom!

3. Tambahkan sebuah kolom: keterangan (varchar 15), sebagai kolom terakhir!


4. Tambahkan kolom nim (int 11) di awal (sebagai kolom pertama)!
12 Buku Praktikum : Basis Data Dasar

5. Sisipkan sebuah kolom dengan nama phone (varchar 15) setelah kolom alamat!
6. Ubah kolom nim menjadi char (11)!
7. Ubah nama kolom phone menjadi telepon (varchar 20)!
8. Hapus kolom keterangan dari tabel!
9. Ganti nama tabel menjadi student!
10. Jadikan nim sebagai primary key!

Sistem Informasi – UNUGIRI 2021


Buku Praktikum : Basis Data Dasar 13

Lembar Kerja Praktikum 3 :

Manipulasi dan Retrive Data I


I. Tujuan:
Setelah mengerjakan LKP 3 ini, anda diharapkan dapat:
1. Mengenal DML serta mampu menggunakan, mengelola record dan retrieve data.

II. Dasar Teori

Pengisian Data (INSERT)


Cara 1: Menambah baris dengan mengisi data pada setiap kolom:
INSERT INTO nama_tabel VALUES (nilai1, nilai2, nilai-n);

Cara 2: Menambah baris dengan hanya mengisi data pada kolom tertentu:
INSERT INTO nama_tabel (kolom1, kolom2, kolom-n) VALUES (nilai1, nilai2, nilai-
n);

Apabila data yang dimasukkan pada kolom dengan tipe data karakter (Varchar) maka gunakan
Sistem Informasi – UNUGIRI 2021

tanda petik seperti “Pena”. Akan tetapi apabila data yang dimasukkan pada kolom dengan tipe
data integer maka tidak perlu menggunakan tanda petik seperti 10.

Melihat Isi Tabel (SELECT)


Selanjutnya untuk melihat isi tabel tertentu dapat menggunakan 3 cara yaitu:
Cara 1: Perintah untuk menampilkan data untuk semua kolom menggunakan asterisk (*).
SELECT * FROM nama_tabel;

Cara 2: Menampilkan data untuk kolom tertentu


SELECT kolom1, kolom2, kolom-n FROM nama_tabel;

Cara 3: Menampilkan data dengan kondisi data tertentu dengan klausa where
14 Buku Praktikum : Basis Data Dasar

SELECT * FROM nama_tabel WHERE kondisi;

Memperbarui Data (UPDATE)


Untuk dapat memperbarui data dalam tabel gunakan perintah
UPDATE nama _tabel SET kolom=nilai1, kolom2= nilai2 WHERE
kondisi;
where berfungsi untuk memilih baris tertentu yang ingin diperbarui datanya.
Perintah “where” bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentu.

Menghapus Data (DELETE)


Untuk menghapus suatu baris (rows) dalam suatu table, maka gunakan perintah:
DELETE FROM nama_tabel WHERE kondisi;
where berfungsi untuk memilih baris tertentu yang ingin dihapus datanya.
Perintah “where” bersifat opsional untuk mengubah suatu baris dengan suatu kondisi tertentu.

Menghapus Tabel (DROP TABEL)


Untuk menghapus suatu tabel gunakan perintah
DROP TABLE nama_tabel;

Sistem Informasi – UNUGIRI 2021


Menghapus Database (DROP DATABASE)
Selanjutnya, untuk menghapus database yang telah dibuat, gunakan perintah
DROP DATABASE nama_database;
Untuk melihat, apakah database telah dihapus, gunakan kembali perintah show databases.

LEMBAR KERJA PRAKTIKUM III


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Manipulasi dan Retrive Data I
Praktik:
Gunakan kembali database “perdangangan” yang telah dibuat pada LKP II
1. Tambahkan data pada tabel barang dengan ketentuan seperti berikut ini:
Kode_barang Nama_barang Satuan_barang Stok_barang
Buku Praktikum : Basis Data Dasar 15

B1 Hardisk Buah 12
B2 Mp3 Player Unit 30
Untuk menambahkan data pada tabel tersebut ke tabel barang maka gunakan perintah seperti berikut ini:
MariaDB [perdagangan]> insert into barang value ('B1','Hardisk','buah',12), ('B2','Mp3 Player','unit',3);
2. Untuk menambahkan data pada tabel berikut ini ke tabel barang maka gunakan perintah seperti berikut
ini:
Kode_barang Nama_barang Satuan_barang Stok_barang
B3 Flashdisk 3
MariaDB [perdagangan]> insert into barang (kode_barang, nama_barang, stok_barang) values
("B3","Flashdisk",3);
3. Untuk melihat isi tabel barang, maka gunakan perintah
MariaDB [perdagangan]> select * from barang;
4. Jika anda hanya ingin menampilkan field kode_barang dan nama_barang saja, maka dapat digunakan
perintah seperti berikut ini:
MariaDB [perdagangan]> select kode_barang, nama_barang from barang;
5. Untuk menampilkan data dengan kondisi tertentu, maka gunakan perintah berikut ini:
MariaDB [perdagangan]> select kode_barang, nama_barang from barang where kode_barang="B1";
6. Untuk mengubah nama_barang pada tabel barang, misalkan dilakukan update data pada tabel barang pada
kode_barang=B2 diubah nama_barang nya menjadi “Netbook”, maka gunakan perintah berikut ini:
MariaDB [perdagangan]> update barang set nama_barang="Netbook" where kode_barang="B2";
7. Untuk menghapus data dengan kode_barang=”B3”, maka gunakan perintah berikut ini:
MariaDB [perdagangan]> delete from barang where kode_barang="B3";
8. Untuk menghapus tabel barang, maka gunakan perintah berikut ini:
MariaDB [perdagangan]> drop table barang;
9. Untuk menghapus database perdagangan, maka gunakan perintah:
MariaDB [perdagangan]> drop database perdagangan;
Output:
Sistem Informasi – UNUGIRI 2021

LATIHAN
1. Buat sebuah database dengan nama pet_shop
2. Buat sebuah tabel dengan nama pet di dalam database pet_shop

3. Tambahkan kolom id_pet int, not null, primary key, auto increment (sebagai kolom pertama)!
4. Isi data ke dalam tabel pet seperti berikut:

5. Tampilkan semua isi/record tabel pet!


6. Ubah data tanggal lahir hewan yang bernama Bowser menjadi: 1979-08-31!
7. Tampilkan satu baris / record data yang telah diubah tadi yaitu record dengan nama Bowser saja!
8. Hapus hewan yang bernama Chirpy!
9. Tampilkan record atau data yang tanggal kelahirannya lebih dari atau sama dengan 1998-1-1!
16 Buku Praktikum : Basis Data Dasar

10. Tampilkan semua hewan dengan spesis anjing dan anjing tersebut berjenis kelamin betina!
11. Dengan satu perintah select, tampilkan semua hewan dengan spesis ular atau spesis burung (dalam satu tabel
ada hewan spesies ular dan burung saja)!
12. Dengan satu perintah select, tampilkan semua hewan yang berspesis kucing dengan kelamin laki-laki atau
hewan yang berspesis anjing dengan kelamin betina (tampilkan dalam satu tabel)!

Sistem Informasi – UNUGIRI 2021


Buku Praktikum : Basis Data Dasar 17

Lembar Kerja Praktikum 4 :

Manipulasi dan Retrive Data II


I. Tujuan:
Setelah mengerjakan LKP 4 ini, anda diharapkan dapat:
1. Mencari dan menampilkan data dengan perintah select, mengkombinasikan perintah
select dengan perintah lainnya

II. Dasar Teori

Perintah SELECT untuk Mencari dan Menampilkan Data


Agar perintah SELECT mudah dibaca, sebuah tabel dapat mempunyai alias. Alias tabel
dapat dinyatakan dengan atau tanpa AS. Jika sebuah tabel memakai alias setiap pengacuan ke
tabel dalam perintah transact sql harus memakai alias bukan nama tabel.
Memberikan nama alias untuk nama kolom:
SELECT nama_kolom AS nama_kolom_baru FROM nama_tabel;

Menggunakan alias untuk nama tabel:


SELECT nama_alias_tabel.nama_kolom, nama_alias_tabel.nama_kolom FROM
Sistem Informasi – UNUGIRI 2021

nama_tabel nama_alias_tabel;

Menampilkan data dari lebih dari dua table


SELECT * FROM nama_tabel1, nama_tabel2, nama_tabel-n;

Nested Queries / Subquery (IN, NOT IN, EXIST, NOT EXISTS)


Subquery berarti query didalam query. Dengan menggunakan subquery, hasil dari query
akan menjadi bagian dari query diatasnya. Subquery terletak didalam klausa WHERE atau
HAVING. Pada klausa WHERE, subquery digunakan untuk memilih baris-baris tertentu yang
kemudian digunakan oleh query. Sedangkan pada klausa HAVING, subquery digunakan untuk
memilih kelompok baris yang kemudian digunakan oleh query.
18 Buku Praktikum : Basis Data Dasar

IN
IN digunakan untuk melakukan pengecekan apakah suatu nilai terdapat dalam suatu himpunan
Syntax:
SELECT * FROM nama_tabel1 WHERE nama_kolom IN (SELECT nama_kolom
FROM nama_tabel2);

Contoh query dengan menggunakan IN:


SELECT * FROM barang WHERE kode_barang IN (SELECT kode_barang FROM
penjualan);
Pada contoh diatas: SELECT kode_barang FROM penjualan disebut subquery, sedangkan
SELECT * FROM barang berkedudukan sebagai query.

NOT IN
Selain perintah IN terdapat juga perintah NOT IN. Perintah NOT IN ini digunakan untuk
melakukan pengecekan apakah suatu nilai tidak terdapat dalam suatu himpunan

Syntax:

SELECT * FROM nama_tabel1 WHERE nama_kolom NOT IN (SELECT nama_kolom


FROM nama_tabel2);

Sistem Informasi – UNUGIRI 2021


EXISTS
Exist digunakan untuk melakukan pengecekan apakah suatu query memiliki hasil atau tidak.
Dengan kata lain untuk melakukan pengecekan apakah hasil dari suatu “correlated nested
query” berisi tuple atau tidak.

Syntax:

SELECT * FROM nama_tabel1 WHERE EXISTS (SELECT * FROM nama_tabel2


WHERE nama_tabel1.nama_kolom = nama_tabel2.nama_kolom);
Buku Praktikum : Basis Data Dasar 19

NOT EXISTS
NOT EXIST ini setara dengan NOT IN. Jadi NOT EXIST ini digunakaan untuk menampilkan
data pada table tertentu dimana data pada kolom jenis nya tidak tercantum pada tabel tersebut

Syntax:

SELECT * FROM nama_tabel1 WHERE NOT EXISTS (SELECT * FROM


nama_tabel2 WHERE nama_tabel1.nama_kolom = nama_tabel2.nama_kolom);

Operator Comparison ANY dan ALL


ANY
Operator ANY menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan
hasil subquery menghasilkan nilai TRUE. Ilustrasinya:

Gaji > ANY (S)

Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik dengan:

(gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)

ANY dipakai dalam subquery bila hasil yang dikembalikan lebih dari satu Jika nilai ANY,
diabaikan dan subquery menghasilkan lebih dari satu nilai, maka pesan kesalahan akan muncul.
Sistem Informasi – UNUGIRI 2021

Syntak:
SELECT ... > ANY (SELECT ...);

ALL
Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi dengan
ALL menghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jika
perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.
Syntak:
SELECT ... >= ALL (SELECT ...);

Sintak ORDER BY
Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai
dengan tipe data yang dimiliki.
20 Buku Praktikum : Basis Data Dasar

SELECT * FROM nama_tabel ORDER BY nama_kolom;


Untuk pengurutan secara ascending (menaik) dapat ditambahkan ASC:
SELECT * FROM nama_tabel ORDER BY nama_kolom ASC;
Untuk pengurutan secara descending (menurun) dapat ditambahkan DESC:
SELECT * FROM nama_tabel ORDER BY nama_kolom DESC;

Sintak DISTINCT
Distinct adalah kata kunci ini untuk menghilangan duplikasi.
SELECT DISTINCT nama_field FROM nama_tabel;

UNION, INTERSECT dan EXCEPT


UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan
ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya
harus sama.
SELECT ... UNION SELECT ...;
Namun tidak semua penggabungan dapat dilakukan dengan UNION, yaitu jika bekerja pada dua
tabel atau lebih.

Sistem Informasi – UNUGIRI 2021


INTERSECT
INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query
dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan
jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus
sama.
SELECT ... INTERSECT SELECT ...;
Ada beberapa DBMS tidak terdapat menggunakan operator INTERSECT namun sebagai
gantinya dapat menggunakan operator IN/EXIST seperti contoh 1 pada bagian Nested Queries.

EXCEPT
EXCEPT / Set Difference merupakan operator yang digunakan untuk memperoleh data dari dua
buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak
Buku Praktikum : Basis Data Dasar 21

terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-
masing tabel yang akan ditampilkan datanya harus sama.

SELECT ... EXCEPT SELECT ...;


Pada beberapa DBMS tidak terdapat operator EXCEPT namun sebagai gantinya dapat
menggunakan operator NOT IN/NOT EXIST seperti contoh 2 pada bagian Nested Queries.

LEMBAR KERJA PRAKTIKUM IV


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Manipulasi dan Retrive Data II
Praktik:
Buat kembali database “perdangangan” dengan ketentuan:
Nama Database : Perdagangan
Nama Tabel : Barang
Field Type Null Key
Kode_barang Varchar (6) No Pri
Nama_barang Varchar (30) No
Satuan_baran Varchar (20) No
g
Stok_barang Int (10) Yes
Isi Tabel Barang:
Kode_baran Nama_barang Satuan_baran Stok_barang
g g
Sistem Informasi – UNUGIRI 2021

B1 Hardisk Buah 12
B2 Mp3 Player Unit 30
B3 DVD Player Unit 50
B4 Flashdisk Buah 12
B5 Mouse Buah 34
1. Untuk menampilkan kolom kode_barang dari tabel barang dengan menggunakan alias nama kolom yaitu
KODE, maka gunakan perintah seperti berikut ini:
MariaDB [penjualan]> select kode_barang as kode from barang;
2. Untuk menampilkan kolom kode_barang dan nama_barang dari tabel barang dengan menggunakan alias nama
tabel yaitu brg, maka gunakan perintah seperti berikut ini:
MariaDB [penjualan]> select brg.kode_barang, brg.nama_barang from barang brg;
3. Tambahkan tabel di database perdagangan dengan nama: customer, dengan ketentuan:
Field Type Null Key
Kode_customer Varchar (6) No Pri
Nama_customer Varchar (30) No
Alamat_custome Varchar Yes
r (100)
Isi Tabel Customer:
Kode_customer Nama_customer Alamat_customer
22 Buku Praktikum : Basis Data Dasar

C1 Andi Palembang
C2 Budi Indralaya
4. Untuk menampilkan data dari dua tabel (barang, customer), maka gunakan perintah
MariaDB [penjualan]> select * from barang, customer;
5. Tambahkan tabel di database perdagangan dengan nama: penjualan, dengan ketentuan:
Field Type Nul Key
l
Kode_penjuala Varchar (6) No Pri
n
Kode_barang Varchar (6) No
Bulan_terjual Varchar (50) No
Jumlah_terjual Int(6) No
Isi Tabel penjualan:
Kode_penjualan Kode_barang Bulan_terjual Jumlah Terjual
P1 B2 Januari 4
P2 B4 Februrari 2
6. Untuk menampilkan data pada tabel barang yang dimana data pada kolom_barang tercantum pada tabel
penjulan dengan menggunakan sintaks IN, maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang where kode_barang in (select kode_barang from penjualan);
7. Untuk menampilkan data pada tabel barang yang dimana data pada kolom_barang TIDAK tercantum pada
tabel penjulan dengan menggunakan sintaks NOT IN, maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang where kode_barang not in (select kode_barang from penjualan);
8. Untuk menampilkan data pada tabel barang yang dimana data pada kolom_barang tercantum pada tabel
penjulan dengan menggunakan sintaks EXIST, maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang where exists (select * from penjualan where barang.kode_barang
= penjualan.kode_barang);
9. Untuk menampilkan data pada tabel barang yang dimana data pada kolom_barang TIDAK tercantum pada
tabel penjulan dengan menggunakan sintaks NOT EXIST, maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang where not exists (select * from penjualan where

Sistem Informasi – UNUGIRI 2021


barang.kode_barang = penjualan.kode_barang);
10. Untuk menampilkan semua data barang yang stok_barangnya bukan yang terkecil, maka gunakan perintah:
MariaDB [penjualan]> select * from barang where stok_barang > any (select stok_barang from barang);
11. Untuk menampilkan semua data barang yang stok_barangnya bukan yang terbesar, maka gunakan perintah:
MariaDB [penjualan]> select * from barang where stok_barang >= all (select stok_barang from barang);
12. Untuk mengurutkan data barang berdasarkan nama_barang, maka gunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang order by nama_barang;
13. Untuk mengurutkan data barang berdasarkan stok_barang yang terurut dari terkecil ke terbesar, maka gunakan
perintah berikut ini:
MariaDB [penjualan]> select * from barang order by stok_barang asc;
14. Untuk mengurutkan data barang berdasarkan stok_barang yang terurut dari terbesar ke terkecil, maka gunakan
perintah berikut ini:
MariaDB [penjualan]> select * from barang order by stok_barang desc;
15. Untuk menampilkan satuan_barang dari tabel barang, maka gunakan perintah berikut ini:
MariaDB [penjualan]> select distinct satuan_barang from barang;
16. Untuk memperoleh data pada tabel barang dimana satuan barang adalah buah dan stok_barang =34, maka
guanakan perintah:
MariaDB [penjualan]> select kode_barang, nama_barang from barang where satuan_barang="buah" union
select kode_barang, nama_barang from barang where stok_barang=34;
Buku Praktikum : Basis Data Dasar 23

Output:

LATIHAN
1. Gunakan database fasilkom yang telah dibuat pada LKP 2. Buatlah tabel pegawai dalam database fasilkom
sebagai berikut:

2. Isi data tabel!

3. Tampilkan semua kolom di tabel!


4. Tampilkan kolom idpegawai, namabelakang dan gaji saja!
5. Tampilkan kolom idpegawai, namabelakang, gaji, tunjangan dan sebuah kolom baru yaitu tunjangan+gaji
yang berisi jumlah tunjangan dan gaji!
6. Ubah tunjangan menjadi NULL untuk pegawai dengan idpegawai = E003.Kemudian lakukan kembali
percobaan 5.
7. Seperti percobaan 5, tampilkan kolom idpegawai, namabelakang, gaji, tunjangan dan sebuah kolom baru
(gunakan alias) yaitu total_pendapatan yang berisi jumlah tunjangan dan gaji!
8. Tambahkan record baru dengan value: E006, lincoln, burrows, linc@yahoo.com, 085275384544, 2008-09-
01, L0006, 1750000, NULL, ex.
9. Untuk pegawai yang ber-id E004 dan E005 ubah idmanajernya menjadi al!
Sistem Informasi – UNUGIRI 2021

10. Sekarang tampilkan kolom idmanajer saja!


11. Dari percobaan 10, terdapat 3 idmanajer yang sama dengan total record 6, sekarang tampilkan idmanajer
tanpa duplikasi idmanajer sehingga akan tampil 4 record dengan idmanajer yang berbeda!
12. Tampilkan pegawai yang gajinya antara 1750000 - 1250000!
13. Tampilkan tabel pegawai yang terurut berdasarkan namabelakang (dari a ke z)!
14. Tampilkan tabel pegawai yang diurutkan berdasarkan nama depan dengan urutan terbalik (dari z ke a)!
24 Buku Praktikum : Basis Data Dasar

Lembar Kerja Praktikum 5 :

Fungsi Agregat
I. Tujuan:
Setelah mengerjakan LKP 5 ini, anda diharapkan dapat:
1. Menggunakan perintah select untuk retrive data dan mampu mengguankan fungsi agregat

II. Dasar Teori


COUNT
COUNT adalah perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel.
Sintak:
SELECT COUNT(nama_field) FROM nama_tabel;
SUM
SUM adalah perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel.
Sintak:
SELECT SUM(nama_field) FROM nama_tabel;
AVG
AVG adalah perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada
tabel.

Sistem Informasi – UNUGIRI 2021


Sintak:
SELECT AVG (nama_field) FROM nama_tabel;
MIN
MIN adalah perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kelompok
tabel.
Sintak:
SELECT MIN (nama_field) FROM nama_tabel;
MAX
MAX adalah perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada
tabel.
Sintak:
Buku Praktikum : Basis Data Dasar 25

SELECT MAX (nama_field) FROM nama_tabel;

LEMBAR KERJA PRAKTIKUM V


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Fungsi Agregat
Praktik:
Gunakan kembali database “perdangangan”
1. Tambahkan field harga_barang pada tabel barang
Field Type Null Key
Kode_barang Varchar (6) No Pri
Nama_barang Varchar (30) No
Satuan_baran Varchar (20) No
g
Stok_barang Int (10) Yes
Harga_barang Int (10) No
2. Update isi dari tabel barang menjadi:
Kode_baran Nama_barang Satuan_baran Stok_barang Harga_barang
g g
B1 Hardisk Buah 12
B2 Mp3 Player Unit 30
B3 DVD Player Unit 50
B4 Flashdisk Buah 12
B5 Mouse Buah 34
3. Untuk menghitung jumlah baris kolom kode_barang pada tabel barang, maka gunakan perintah seperti
berikut ini:
MariaDB [penjualan]> select count(kode_barang) from barang;
Sistem Informasi – UNUGIRI 2021

4. Untuk menghitung jumlah harga_barang pada tabel barang, maka gunakan perintah seperti berikut ini:
MariaDB [penjualan]> select sum(harga_barang) from barang;
5. Untuk menghitung rata_rata harga_barang pada tabel barang, maka gunakan perintah seperti berikut ini:
MariaDB [penjualan]> select avg(harga_barang) from barang;
6. Untuk menampilkan stok_barang terkecil dari tabel barang, maka gunakan perintah seperti berikut ini:
MariaDB [penjualan]> select min(stok_barang) from barang;
7. Untuk menampilkan stok_barang terbanyak dari tabel barang, maka gunakan perintah seperti berikut ini:
MariaDB [penjualan]> select max(stok_barang) from barang;
Output:

LATIHAN:
1. Gunakan tabel pegawai (pada LKP 4), tampilkan pegawai yang gajinya 2.000.000,1.250.000 dan 1.500.000
dalam satu perintah select
2. Tampilkan pegawai yang gajinya bukan 2.000.000 dan 1.250.000
3. Tampilkan pegawai yang tunjangannya NULL
4. Tampilkan pegawai yang tunjangannya tidak NULL
5. Tampilkan/hitung jumlah baris/record tabel pegawai
6. Tampilkan/hitung jumlah total gaji di tabel pegawai
7. Tampilkan/hitung rata-rata gaji pegawai
26 Buku Praktikum : Basis Data Dasar

8. Tampilkan gaji terkecil


9. Tampilkan gaji terbesar

Sistem Informasi – UNUGIRI 2021


Buku Praktikum : Basis Data Dasar 27

Lembar Kerja Praktikum 6 :

Retrive, Group dan Filter


I. Tujuan:
Setelah mengerjakan LKP 6 ini, anda diharapkan dapat:
1. Meretrive data dan mengelompokkannya.

II. Dasar Teori


Klausa GROUP BY digunakan untuk melakukan pengelompokan data.
Sintak:
SELECT ... GROUP BY nama_field;
Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan dihasilkan.
Untuk efesiensi harus dimengerti urutan pemilihan Where, Group By dan Having:
1. Where dipakai untuk memfilter baris-baris dari operasi-operasi yang dinyatakan oleh
perintah FROM.
2. Group By dipakai untuk mengelompokkan hasil dari Where.
3. Having dipakai untuk memfilter baris-baris dari hasil pengelompokan.
Sistem Informasi – UNUGIRI 2021

LEMBAR KERJA PRAKTIKUM VI


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Retrive, Group dan Filter
Praktik:
Gunakan kembali database “perdagangan”
1. Untuk menampilkan kolom satuan_barang dan jumlah dari stok_barang dari tabel barang yang
dikelompokkan berdasarkan kolom satuan_barang maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select satuan_barang, sum(stok_barang) from barang group by satuan_barang;
2. Untuk menampilkan data hanya kolom satuan_barang yang dikelompokkan berdasarkan kolom
satuan_barang, dimana jumlah stok_barang dari tabel barang dan berdasarkan kelompoknya harus lebih besar
dari 2, maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select satuan_barang from barang group by satuan_barang having
count(stok_barang)>2;
Output:
28 Buku Praktikum : Basis Data Dasar

LATIHAN:
1. Gunakan tabel pet (LKP3), Tampilkan jumlah hewan yang dimiliki setiap owner. Tampilan setelah SQL
dijalankan:

2. Tampilkan jumlah hewan berdasarkan spesies

3. Tampilkan jumlah hewan berdasarkan jenis kelamin

4. Tampilkan jumlah hewan berdasarkan spesies dan jenis kelamin

5. Tampilkan jumlah hewan berdasarkan spesis (cat dan dog saja) dan jenis kelamin

Sistem Informasi – UNUGIRI 2021


6. Tampilkan jumlah hewan berdasarkan jenis kelamin yang diketahui saja
Buku Praktikum : Basis Data Dasar 29

Lembar Kerja Praktikum 7 :

Pattern Matching
I. Tujuan:
Setelah mengerjakan LKP 7 ini, anda diharapkan dapat:
1. Menampilkan data dengan pencocokkan pola/karakter

II. Dasar Teori


Fungsi string digunakan untuk menampilkan data yang didasarkan pada pencarian dengan
karakter. Pada pencarian data digunakan sintak LIKE, pada dasarnya sintak LIKE hampir sama
dengan sintak “=”, bedanya tanda “=” maka pencarian karakater harus sesuai dengan kata yang
kita buat tetapi dengan menggunakan LIKE karakater yang akan kita tampilkan tidak harus
lengkap hanya dengan menuliskan salah satu huruf atau kata saja, maka semua data yang kita
cari akan ditampilkan.
SQL mempunyai 2 simbol khusus yang dipakai untuk pencocokan pola:
 %: untuk mencocokkan karakter sebelum atau sesudah tanda %;
 _: mencari karakter sebanyak jumlah tanda _.

LIKE ‘%Glasgow%’ artinya mencari data pada kolom tertentu yang mengandung karakter
Sistem Informasi – UNUGIRI 2021

‘Glasgow’. Bentuk umum:


SELECT * FROM nama_tabel WHERE nama_kolom LIKE 'char%';
SELECT * FROM nama_tabel WHERE nama_kolom LIKE '%char';
SELECT * FROM nama_tabel WHERE nama_kolom LIKE '%char%';
SELECT * FROM nama_tabel WHERE nama_kolom NOT LIKE '%char%';
SELECT * FROM nama_tabel WHERE nama_kolom LIKE '_';

LEMBAR KERJA PRAKTIKUM VII


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Pattern Matching
Praktik:
Gunakan kembali database “perdagangan”
30 Buku Praktikum : Basis Data Dasar

1. Untuk menampilkan data yang memiliki nama barang seperti “Player”, maka dapat digunakan perintah:
MariaDB [penjualan]> select * from barang where nama_barang like"%player";
2. Untuk menampilkan data yang memiliki nama barang seperti “di”, maka dapat digunakan perintah:
MariaDB [penjualan]> select * from barang where nama_barang like"%di%";
3. Untuk menampilkan data yang memiliki nama barang TIDAK seperti “di”, maka dapat digunakan perintah:
MariaDB [penjualan]> select * from barang where nama_barang not like"%di%";
4. Untuk menampilkan data yang memiliki nama barang jumlah huruf adalah 5, maka dapat digunakan perintah:
MariaDB [penjualan]> select * from barang where nama_barang like"_____";
Output:

LATIHAN:
1. Buatlah sebuah database perdagangan lalu buatlah tabel barang didalam database tersebut:

2. Buat SQL sehingga tampilannya seperti berikut ini:

3. Buat SQL sehingga tampilannya seperti berikut ini:

Sistem Informasi – UNUGIRI 2021


4. Buat SQL sehingga tampilannya seperti berikut ini:

5. Buat SQL sehingga tampilannya seperti berikut ini:

6. Buat SQL sehingga tampilannya seperti berikut ini:


Buku Praktikum : Basis Data Dasar 31

7. Buat SQL sehingga tampilannya seperti berikut ini:

8. Buat SQL sehingga tampilannya seperti berikut ini:


Sistem Informasi – UNUGIRI 2021
32 Buku Praktikum : Basis Data Dasar

Lembar Kerja Praktikum 8 :

Relasi Tabel
I. Tujuan:
Setelah mengerjakan LKP 8 ini, anda diharapkan dapat:
1. Membuat relasi tabel dan membuktikan integrasi data dengan tabel yang ter-relasi.

II. Dasar Teori


Relasional Database dan RDBMS, Relational Database sebenarnya adalah salah satu
konsep penyimpanan data. Sebelum konsep database relasional muncul sebenarnya sudah ada
dua model database yaitu Network Database dan Hierarchie Database. Dalam database
relasional, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan antar table satu dengan
table lainnya terdapat hubungan atau relationship, sehingga sering kita baca di berbagai literatur,
database didefinisikan sebagai “kumpulan dari sejumlah tabel yang saling hubungan atau
keterkaitan”. Nah, kumpulan dari data yang diorganisasikan sebagai table tadi disimpan dalam
bentuk data elektronik didalam hardisk komputer. Untuk membuat struktur tabel, mengisi data
ke tabel, mengubah data jika diperlukan dan menghapus data dari tabel diperlukan software.
Software yang digunakan membuat tabel, isi data, ubah data dan hapus data disebut
Relational Database Management System atau dikenal dengan singkatan RDBMS sedangkan

Sistem Informasi – UNUGIRI 2021


perintah yang digunakan untuk membuat tabel, isi, ubah dan hapus data disebut perintah SQL
yang merupakan singkatan dari Structure Query Language. Jadi, setiap software RDBMS pasti
bisa digunakan untuk menjalankan perintah SQL.
Sebenarnya fungsi RDBMS bukan cuma buat tabel, isi data, ubah dan hapus data. Fungsi
RDBMS juga untuk manajemen data dalam skala besar dan agar bias mendukung proses bisnis
yang kontinyu dan real time. Suatu RDBMS dituntut untuk mempunyai kemampuan manajemen
user dan keamanan data, backup dan recovery data serta kemampuan lainnya yang berkaitan
dengan kecepatan pemrosesan data (performance).
Primary key adalah suatu field atau kombinasi field yang secara unik mengidentifikasi
setiap record didalam tabel. Contoh NIM yang terdapat pada tabel mahasiswa.
Foreign key adalah primary key pada suatu tabel yang dimasukkan pada tabel lain dan
dijadikan salah satu key pada tabel tersebut.
Buku Praktikum : Basis Data Dasar 33

References menunjukkan bahwa foreign key disuatu tabel merupakan key pada tabel lain.
Pada perubahan suatu record baik itu update atau delete, dapat diikuti dengan kata: cascade,
restrict atau set null. Kita bisa atur sesuai kebutuhan.
Contoh:
- On update CASCADE on delete RESTRICT
- On update RESTRICT on delete SET NULL

LEMBAR KERJA PRAKTIKUM VIII


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Relasi Tabel
Praktik:
1. Gunakan database Fasilkom dari LKP II.
2. Buatlah tabel mahasiswa seperti berikut ini:
MariaDB [fasilkom]> create table mahasiswa (nim varchar(20) not null primary key,
-> nama varchar(25) not null);
3. Buat tabel dosen_pembimbing dan relasikan ke tabel mahasiswa dengan mengambil key nim dari tabel
mahasiswa sebagai foreign key di tabel dosen_pembimbing:
MariaDB [fasilkom]> create table dosen_pembimbing (id varchar(11) not null primary key,
-> kode_dosen varchar(50),
-> nama_dosen varchar(50),
-> nim varchar(20),
-> index(nim),
-> foreign key(nim) references mahasiswa(nim) on update cascade on delete cascade);
Sistem Informasi – UNUGIRI 2021

4. Isi data di tabel seperti data berikut:


MariaDB [fasilkom]> insert into mahasiswa values ('001','Ferry');
MariaDB [fasilkom]> insert into mahasiswa values ('002','Budi');
MariaDB [fasilkom]> insert into mahasiswa values ('003','Cindy');
MariaDB [fasilkom]> insert into mahasiswa values ('004','Dendi');
MariaDB [fasilkom]> insert into dosen_pembimbing values('','D001','Anna','001');
MariaDB [fasilkom]> insert into dosen_pembimbing values('','D002','Dian','002');
MariaDB [fasilkom]> insert into dosen_pembimbing values('','D001','Anna','003');
5. Kemudian update satu record di tabel mahasiswa:
MariaDB [fasilkom]> update mahasiswa set nim='005' where nama='Budi';
MariaDB [fasilkom]> select * from mahasiswa;
MariaDB [fasilkom]> select * from dosen_pembimbing;
6. Hapus sebuah record di tabel mahasiswa:
MariaDB [fasilkom]> delete from mahasiswa where nim='005';
MariaDB [fasilkom]> select * from mahasiswa;
MariaDB [fasilkom]> select * from dosen_pembimbing;
Output:
34 Buku Praktikum : Basis Data Dasar

LATIHAN:
1. Buat database dengan nama toko. Buat 3 buah tabel di dalam database tersebut yaitu tabel produk,
pelanggan, produk_order.
Tabel Produk:

Isi Tabel Produk:

Tabel Pelanggan:

Isi Tabel Pelanggan:

Tabel Produk_order:

Sistem Informasi – UNUGIRI 2021


Isi Tabel Produk_order:

Buat relasi untuk tabel-tabel di atas dan buktikan relasi tersebut dengan melakukan update atau delete terhadap
suatu tabel berpengaruh terhadap tabel lainnya!
Buku Praktikum : Basis Data Dasar 35

Lembar Kerja Praktikum 9 :

Join
I. Tujuan:
Setelah mengerjakan LKP 9 ini, anda diharapkan dapat:
1. Mengenal dan mampu melakukan operasi join beberapa tabel.

II. Dasar Teori


Operasi Join merupakan operasi yang digunakan untuk menggabungkan dua table atau
lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-tabel tersebut.
Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada pencocokan antara kolom
pada table yang berbeda.
Inner Join
Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai
dengan syarat dibelakang on (tidak boleh null), dengan kata lain semua data dari table kiri
mendapat pasangan data dari table sebelah kanan.
Sintak:
SELECT * FROM nama_tabel1 INNER JOIN nama_tabel2 ON (nama_tabel1.nama_field
= nama_tabel2.nama_field);
Sistem Informasi – UNUGIRI 2021

Left Join
Left join digunakan untuk menampilkan semua data dari table sebelah kiri perintah left
join beserta pasangannya dari table sebelah kanan. Meskipun terdapat data dari sebelah kiri tidak
memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
Sintak:
SELECT * FROM nama_tabel1 LEFT JOIN nama_tabel2 ON (nama_tabel1.nama_field
= nama_tabel2.nama_field);
Right Join
Right join digunakan untuk menampilkan semua data dari tabel sebelah kanan perintah
right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data dari sebelah kanan
tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.
36 Buku Praktikum : Basis Data Dasar

Sintak:
SELECT * FROM nama_tabel1 RIGHT JOIN nama_tabel2 ON
(nama_tabel1.nama_field = nama_tabel2.nama_field);

Natural Join
Natural join digunakan untuk menampilkan semua data dari dua table dimana jika
terdapat kolom yang sama, maka yang akan ditampilkan hanya salah satunya saja, yaitu kolom
dari tabel sebelah kiri perintah natural join.

Sintak:
SELECT * FROM nama_tabel1 NATURAL JOIN nama_tabel2;

Terdapat Penggabungan Natural Join dengan Left dan Right Join:

Natural Left Join


Natural left join digunakan untuk menampilkan semua data dari table sebelah kiri
perintah natural left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data
dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa
nilai NULL.

Sistem Informasi – UNUGIRI 2021


Sintak:
SELECT * FROM nama_tabel1 NATURAL LEFT JOIN nama_tabel2;

Natural Right Join


Natural right join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah natural right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data
dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan pasangannya berupa
nilai NULL.

Sintak:
SELECT * FROM nama_tabel1 NATURAL RIGHT JOIN nama_tabel2;
Buku Praktikum : Basis Data Dasar 37

LEMBAR KERJA PRAKTIKUM IX


NIM / Nama
Kelas / Mata Kuliah
Tanggal
Materi Join
Praktik:
Gunakan kembali database “perdagangan”
1. Untuk menampilkan kolom nama_barang, satuan_barang, harga_barang dari table barang dan jumlah terjual
dari tabel penjualan, maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select nama_barang, satuan_barang, harga_barang, jumlah_terjual
-> from barang, penjualan
-> where barang.kode_barang= penjualan.kode_barang;
2. Untuk menampilkan data dari table barang dan penjualan dengan syarat berdasarkan kolom kode_barang,
maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang inner join penjualan
on(barang.kode_barang=penjualan.kode_barang);
3. Untuk menampilkan data dari table barang dan penjualan dengan syarat berdasarkan kolom kode_barang,
maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang left join penjualan
on(barang.kode_barang=penjualan.kode_barang);
4. Untuk menampilkan data dari table barang dan penjualan dengan syarat berdasarkan kolom kode_barang,
maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang right join penjualan
on(barang.kode_barang=penjualan.kode_barang);
5. Untuk menampilkan data dari table barang dan penjualan dengan syarat berdasarkan kolom kode_barang,
maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang natural join penjualan;
6. Untuk menampilkan data dari table barang dan penjualan dengan syarat berdasarkan kolom kode_barang,
maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang natural left join penjualan;
7. Untuk menampilkan data dari table barang dan penjualan dengan syarat berdasarkan kolom kode_barang,
maka dapat digunakan perintah berikut ini:
MariaDB [penjualan]> select * from barang natural right join penjualan;
Sistem Informasi – UNUGIRI 2021

Output:

LATIHAN:
1. Buat sebuah database dengan nama sewa_mobil:
2. Buat tabel mobil dan isi datanya:
38 Buku Praktikum : Basis Data Dasar

3. Buat tabel pelanggan dan isi datanya:

4. Buat tabel sewa dan isi datanya:

Sistem Informasi – UNUGIRI 2021

5. Buat query sehingga didapat tabel seperti berikut:

6. Buat query sehingga didapat tabel seperti berikut:


Buku Praktikum : Basis Data Dasar 39

7. Buat query sehingga didapat tabel seperti berikut:

8. Buat query sehingga didapat tabel seperti berikut:


Sistem Informasi – UNUGIRI 2021

Anda mungkin juga menyukai