Anda di halaman 1dari 19

Laporan Praktikum Basis Data

Modul - 6

Sub Query dan Join


Daftar Isi :
1. Deskripsi Praktikum
2. Perangkat Lunak
Pengampu :
Luqman Hakim, SKom
Nama:

3. Teori Penunjang
4. Prosedur Pelaksanaan
5. Implementasi dan Hasil Praktikum
6. Kesimpulan

201310370311156 Brima Helpiono Rusadi

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

Daftar Isi
1. Deskripsi Praktikum .......................................................................................................... 3
2. Perangkat Lunak ............................................................................................................... 3
3. Teori Penunjang ................................................................................................................. 3
4. Prosedur Pelaksanaan ..................................................................................................... 11
5. Implementasi dan Hasil Praktikum ............................................................................... 14
6. Kesimpulan ....................................................................................................................... 19

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

1. Deskripsi Praktikum

Mengenal dan memahami konsep sub query serta dapat membedakannya dengan
konsep join.
Dapat mengimplementasikan sub query serta berbagai macam bentuk join.

2. Perangkat Lunak

Komputer Set
Oracel 10g
Power Designer

3. Teori Penunjang
1. SUB QUERY
Sub query adalah salah satu metode untuk mendapatkan informasi dari beberapa tabel
dalam database. Arti sub query sendiri adalah seleksi data berdasarkan dari hasil
seleksi data yang telah ada. Jadi untuk mendapatkan informasi pada tabel ataupun
relasional tabel yang sangat kompleks kita dapat menggunakan kondisi dengan sub
permintaan tertentu.
Syntax :
SELECT select_list FROM table WHERE expr operator (SELECT
select_list FROM table)

1.1.Single Row Sub Query


Single row sub query menghasilkan satu baris data dari perintah SELECT
terdalam. Tipe subquery ini menggunakan single row operator.
Contoh : [Database HR]
Menampilkan nama karyawan yang memiliki jabatan sama dengan William Smith.
SELECT last_name, job_id FROM employees WHERE job_id = (SELECT job_id
FROM employees WHERE first_name = 'William' AND last_name = 'Smith')

1.2.Multiple Row Sub Query


Sub query yang menghasilkan lebih dari satu baris data disebut multiple row sub
query. Pastikan penggunaan multiple row operator, seperti IN.
Contoh : [Database HR]
Menampilkan nama karyawan yang bekerja pada department Finance atau IT.
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

SELECT first_name, last_name FROM employees WHERE department_id IN


(SELECT department_id FROM departments WHERE department_name =
'Finance' OR department_name = IT)

2. KLAUSA JOIN
Join merupakan istilah yang digunakan untuk menggambarkan relasi yang terjadi
antara satu tabel dengan tabel lainnya. Untuk menghubungkan satu tabel dengan tabel
lainnya (merelasikan tabel) harus terdapat suatu field pada tabel yang berfungsi
sebagai foreign key.
Dengan Foreign Key inilah kemudian suatu tabel berelasi dengan tabel yang lain.
Tabel yang memiliki foreign key kemudian dikenal dengan child table, sedangkan
tabel tempat referensi Foreign Key (Primary Key) dikenal dengan parent table.
Table Employees

Foreign Key (FK)

Table Departments

Primary Key (PK)

Syntax :
SELECT table1.column, table2.column FROM table1 [NATURAL JOIN
table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2 ON (table1.column_name = table2.column_name)]
[LEFT|RIGHT|FULL OUTER JOIN table2 ON (table1.column_name =
table2.column_name)] |
[CROSS JOIN table2]
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

2.1.Equi Join
Equi join atau biasa disebut sebagai Inner Join atau Simple Join adalah bentuk kondisi
join dimana nilai relasi yang terjadi antar dua atau lebih table (binary relation) adalah
sama (terdapat hubungan antara Primary Key dan Foreign Key).
Contoh : [Database HR]
SELECT employees.employee_id, employees.last_name,
employees.department_id, departments.department_id, departments.location_id
FROM employees, departments
WHERE employees.department_id = departments.department_id
Tabel Asli :

Table Departments

Table Employees
Foreign Key Primary Key

Hasil Join :

2.2.Inner Join
Merupakan operasi paling umum yang digunakan dan dapat dianggap sebagai tipe
join yang standart. Inner join menghasilkan table baru dengan menggabungkan nilainilai kolom dari dua tabel (A dan B) didasarkan pada predikat join.
Contoh : [Database HR]
SELECT * FROM job_history INNER JOIN jobs ON
job_history.job_id = jobs.job_id

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

Tabel Asli :
Table Job_History
Foreign Key Primary Key

Table Jobs

Hasil Join :

2.3.Natural Join
Digunakan jika pada tabel yang di join terdapat kolom (atribut) yang memiliki
nama yang sama dan type data yang sama. Pada waktu join kolom tersebut secara
otomatis akan digunakan untuk dibandingkan, dan kita tidak bisa menentukan
kolom mana yang akan digunakan untuk dibandingkan.
Contoh : [Database HR]
SELECT department_id, department_name, location_id, city
FROM departments NATURAL JOIN locations

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

2.4.Join Using
Digunakan jika pada tabel yang di join terdapat kolom dengan nama yang sama
dan untuk tipe data boleh sama atau berbeda. Pada waktu join, kita bisa memilih
kolom tertentu yang akan digunakan untuk dibandingkan, hal ini akan sangat berguna
jika terdapat lebih dari satu kolom dengan nama yang sama pada tabel yang akan di
join.
Contoh : [Database HR]
SELECT first_name, job_title FROM employees JOIN jobs
USING(job_id)
Tabel Asli :
Table Employees

Same Column Name

Table Jobs

JOIN

Hasil Join :

2.5.Join On
Digunakan walapun pada tabel yang di join tidak terdapat kolom dengan nama
yang sama, atau bisa juga menggunakan kolom dengan nama yang berbeda untuk
dibandingkan ketika join.
Contoh : [Database HR]
SELECT e.first_name, e.job_id, j.job_id, j.job_title FROM
employees e JOIN jobs j ON e.job_id=j.job_id
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

Table Employees

Foreign Key

Primary Key

Table Jobs

JOIN

Hasil Join :

2.6.Left Outer Join


Akan menampilkan semua baris pada tabel yang terletak pada kiri syntax join
walapun tidak sesuai dengan tabel yang berada pada sebelah kanan join.
Contoh : [Database HR]
SELECT e.last_name, e.department_id, d.department_name FROM employees e
LEFT OUTER JOIN departments d ON (e.department_id = d.department_id)

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

Tabel Asli :
Table Employees

Foreign Key

Primary Key

Table Departments

JOIN

Hasil Join :

..

2.7.Right Outer Join


Akan menampilkan semua baris pada tabel yang terletak pada kanan syntax join
walapun tidak sesuai dengan tabel yang berada pada sebelah kiri join.
Contoh : [Database HR]
SELECT e.last_name, e.department_id, d.department_name FROM employees e
RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id)
Tabel Asli :
Table Employees

Foreign Key

Primary Key

Table Departments

JOIN

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

Hasil Join :

..

2.8.Full Outer Join


Akan menampilkan semua baris pada tabel yang terletak pada kiri dankanan syntax
join walapun tidak sesuai ketika dibandingkan.
Contoh : [Database HR]
SELECT e.last_name, d.department_id, d.department_name FROM employees e
FULL OUTER JOIN departments d ON (e.department_id = d.department_id)
Tabel Asli :
Table Employees

Foreign Key

Primary Key

Table Departments

JOIN

Hasil Join :

..

..

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

2.9.Cross Join
Merupakan perkalian kartesian dalam pemakaian klausa from.
Contoh : [Database HR]
SELECT * FROM jobs CROSS JOIN job_history

2.10. Non Equi Join


Merupakan join yang menggunakan tanda selain equal (=), misalkan tanda !=, >,
<, >=, <=, between and, dll
Contoh : [Database HR]
SELECT e.last_name, j.max_salary FROM employees e JOIN jobs j ON
j.max_salary
BETWEEN 5000 AND 15000

4. Prosedur Pelaksanaan
LATIHAN PRAKTIKUM
I. Buat query dengan menggunakan konsep SUBQUERY untuk menyelesaikan soal dan
menghasilkan output berikut : [Database Perusahaan]
a) Tampilkan no_ktp, nama, alamat pegawai yang mempunyai tanggungan terhadap
DINI.

b) Tampilkan no_ktp, nama, gaji untuk pegawai yang memiliki lama kerja antara 30
sampai 50 jam dan gaji dibawah Rp. 2.500.000.

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

II.

Buat query dengan menggunakan konsep JOIN untuk menyelesaikan soal dan
menghasilkan output berikut : [Database Perusahaan]
a) Tampilkan semua informasi mengenai proyek dan di departemen mana proyek
tersebut dikerjakan.

b) Tampilkan nama departemen dan seluruh pegawai yang bekerja pada masingmasing departemen.

c) Tampilkan nama departemen dan jumlah pegawai yang bekerja pada masing
masing departemen tersebut.

d) Tampilkan no_ktp, nama pegawai dan gaji untuk pegawai yang mempunyai
ataupun tidak mempunyai tanggungan. Jika mempunyai tanggungan sertakan
nama keluarga yang menjadi tanggungan dan apa hubungan kekeluargaannya.

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

e) Tampilkan semua departemen dan proyek yang sedang dikerjakan beserta lokasi
proyeknya.

f) Tampilkan no_ktp, nama, gaji pegawai yang memiliki lama kerja antara 30
sampai 50 jam dan gaji dibawah Rp. 2.500.000. Non Equi Join

III. Buat query dengan menggabungkan konsep SUBQUERY dan JOIN sehingga
menghasilkan output seperti berikut : [Database Perusahaan]
a) Tampilkan no_ktp, nama pegawai, nama_proyek, lama_jam untuk pegawai yang
bekerja di proyek DESAIN GAMBAR atau JARINGAN KOMPUTER dan memiliki
lama jam kerja diatas lama jam kerja minimal.

b) Tampilkan nama departemen yang mempunyai pegawai termuda, sertakan nama


pegwai dan tanggal lahirnya.

Tugas Praktikum
Terapkan operasi operasi dibawah ini sesuai dengan kasus yang kalian pilih pada modul 1
masing masing 2 operasi.
Single Row Sub Query
multiple row sub query
equi join
inner join
natural join
join using
join on
left outter join
right outter join
full outter join
cross join
non equi join

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

5. Implementasi dan Hasil Praktikum

Latihan praktikum

1.a. SELECT NO_KTP,NAMA,ALAMAT FROM PEGAWAI WHERE NO_KTP= (SELECT NO_KTP


FROM TANGGUNGAN WHERE NAMA='DINI')

1.b. SELECT NO_KTP,NAMA,GAJI FROM PEGAWAI WHERE GAJI < 2500000 AND NO_KTP
IN (SELECT NO_KTP FROM KERJA WHERE LAMA_JAM > 30 AND LAMA_JAM < 50 )

2.a. SELECT
PROYEK.NO_PRO,PROYEK.NAMA,PROYEK.LOKASI,PROYEK.NO_DEP,DEPARTEMEN.NO_DEP,
DEPARTEMEN.NAMA,DEPARTEMEN.LOKASI FROM PROYEK,DEPARTEMEN WHERE
PROYEK.NO_DEP=DEPARTEMEN.NO_DEP

2.b. SELECT DEPARTEMEN.NAMA,PEGAWAI.NAMA


FROM DEPARTEMEN , PEGAWAI
WHERE DEPARTEMEN.NO_DEP=PEGAWAI.NO_DEP

Tugas praktikum

1. Single Row Sub Query


SELECT NIM,NAMA FROM MAHASISWA WHERE KELAS = (SELECT KELAS
FROM MAHASISWA WHERE NAMA = 'BRIMA')

2. multiple row sub query


SELECT NAMA FROM MAHASISWA WHERE NIM = (SELECT NIM FROM KRS WHERE
KODE_JUR IN (SELECT KODE_JUR FROM JURUSAN_KULIAH WHERE
NAMA_JUR='MESIN'))

3. equi join
SELECT MAHASISWA.NIM, MAHASISWA.NAMA, MAHASISWA.KELAS,
KRS.NILAI_UTS, KRS.NILAI_UAS
FROM MAHASISWA, KRS
WHERE MAHASISWA.NIM = KRS.NIM

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

4. inner join
SELECT * FROM MAHASISWA INNER JOIN KRS ON MAHASISWA.NIM = KRS.NIM

5. natural join
SELECT NIM,NAMA,KELAS,SEMESTER
FROM MAHASISWA NATURAL JOIN JURUSAN_KULIAH

6. join using
Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

SELECT NAMA, KELAS , NILAI_UTS FROM MAHASISWA JOIN KRS USING(NIM)

7. join on
SELECT M.NIM, M.NAMA, K.NIM, K.NILAI_UAS FROM
MAHASISWA M JOIN KRS K ON M.NIM=K.NIM

8. left outter join


SELECT M.NIM, M.NAMA, K.NILAI_UTS, K.NILAI_UAS FROM MAHASISWA M
LEFT OUTER JOIN KRS K ON (M.NIM=K.NIM)

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

9. right outter join


SELECT M.NIM, M.NAMA, K.NILAI_UTS, K.NILAI_UAS FROM MAHASISWA M
RIGHT OUTER JOIN KRS K ON (M.NIM=K.NIM)

10. full outter join


SELECT M.NIM, M.NAMA, K.NILAI_UTS, K.NILAI_UAS FROM MAHASISWA M
FULL OUTER JOIN KRS K ON (M.NIM=K.NIM)

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

11. cross join


SELECT * FROM MAHASISWA CROSS JOIN KRS

12. non equi join


SELECT M.NAMA, K.NILAI_UTS FROM MAHASISWA M JOIN KRS K ON
K.NILAI_UTS BETWEEN 80 AND 100

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

6. Kesimpulan

Subquery merupakan query didalam query atau perintah select yang berada di
dalam perintah select lainnya.
Join merupakan istilah yang digunakan untuk menggambarkan relasi yang terjadi
antara satu tabel dengan tabel lainnya. Untuk menghubungkan satu tabel dengan tabel
lainnya (merelasikan tabel) harus terdapat suatu field pada tabel yang berfungsi
sebagai foreign key.
Terdapat beberapa perintah dalam sub query dan join, diantaranya :
Single Row Sub Query
multiple row sub query
equi join
inner join
natural join
join using
join on
left outter join
right outter join
full outter join
cross join
non equi join

Dokumen Laboratorium Teknik Informatika UMM @ 2014 Laporan Modul Praktikum

By. 201310370311156 Brima Helpiono Rusadi

Basis Data

Anda mungkin juga menyukai