Post on 29-Jul-2015
LAPORAN PRAKTIKUM BASIS DATA LANJUT II
Oleh
Annissaul Hidayah 11120018
Rizki Fadila 11120024
Desmala Paranti 11120031
Fakultas Teknik
Program Studi Teknik Informatika
Universitas Wijaya Kusuma Surabaya
2014
Tujuan
1. Mengerti tentang jenis-jenis join.
2. Memahami penggunaan join.
3. Mampu menerapkan penggunaan Join pada studi kasus.
Pendahuluan
Operasi join atau penggabungan "menyamping" antar table adalah operasi dasar database
relasional yang sangat penting. Untuk mendukung perancangan database resional yang baik,
berikut adalah penjelasan dan ilustrasi mengenai join ini.
Cara kerja join ialah dengan mencari kecocokan kolom tertentu pada sebuah tabel dengan kolom
tertentu pada tabel lain, kemudian menampilkan hasilnya sebagai satu set data gabungan. Secara
garis besar, terdapat 3 macam join, yaitu INNER JOIN, LEFT JOIN dan RIGHT JOIN. Namun,
selain dari 3 macam tersebut, terdapat tambahan beberapa varian tergantung dari RDBMS yang
digunakan.
1. INNER JOIN
Dengan INNER JOIN hanya akan ditampilkan baris-baris yang satu sama lain memiliki
kecocokan.
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
INNER JOIN gejala b
ON b.id = a.id;
|------ |---------- |
| nama | gejala |
|------ |---------- |
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
2. LEFT JOIN
Sebuah query dengan LEFT JOIN akan menampilkan semua baris dari tabel sebelah kiri
(pertama/utama atau pasien) dengan gabungan dari tabel sebelah kanan (kedua atau
symptom).
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
LEFT JOIN gejala b
ON b.id = a.id;
|-------|----------|
| nama | gejala |
|-------|----------|
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
| Doel | NULL |
Perbedaannya dengan INNER JOIN ialah, pada LEFT JOIN - seluruh baris dari tabel
pertama akan ditampilkan meskipun tidak ada kecocokan baris pada tabel kedua. Lihat
contoh diatas, pasien Doel tidak memiliki data symptom sehingga tertampil NULL
(NULL disini menyatakan bahwa tidak ada data pada kolom tersebut). Selain itu, posisi
tabel jadi mempunyai makna, yaitu tabel kiri atau pertama (ialah tabel sebelum 'LEFT
JOIN') akan menjadi tabel utama yang diquery terlebih dahulu, baru kemudian dicarikan
kecocokannya dengan tabel kanan atau kedua (ialah tabel setelah 'LEFT JOIN').
3. RIGHT JOIN
Query RIGHT JOIN hampir sama dengan LEFT JOIN, hanya saja posisinya terbalik,
yaitu akan menampilkan semua baris dari tabel kanan (kedua) meskipun tidak ada
kecocokan pada tabel kiri (pertama).
Contoh:
SELECT a.nama, b.gejala
FROM pasien a
RIGHT JOIN gejala b
ON b.id = a.id;
|-------|----------|
| nama | gejala |
|-------|----------|
| John | Demam |
| Jane | Pusing |
| Mike | Mual |
4. OUTER JOIN
Join yang hasilnya merupakan gabungan data yang bersesuaian atau data yang
memenuhi kondisi join dan data yang tidak punya pasangan di tabel lawannya.
Selanjutnya Outer Join dibagi lagi menjadi Left Outer Join, Right Outer Join, dan Full
Outer Join.
Pada dasarnya join hanya dilakukan antara dua tabel. Pada kondisi join satu tabel
diletakkan pada sisi kiri tanda pembanding dan satu tabel lagi di sisi kanannya. Apabila
ingin menampilkan semua data di tabel kiri yang memiliki atau tidak memiliki pasangan
disebut Left Outer Join dan sebaliknya disebut Right Outer Join.
Penentuan Left Outer Join maka tanda (+) diletakkan disisi kanan tanda pembanding.
Penentuan Right Outer Join : tanda (+) diletakkan disisi kiri tanda pembanding.
5. CROSS JOIN
Menghasilkan kombinasi semua baris yang terdapat dalam tabel-tabel yang
digabungkan, baik itu yang tidak berpasangan maupun yang
berpasangan. Bentuk paling sederhana dari penggabungan 2 buah tabel akan membentu
perkalian Cartesian.
6. UNION JOIN
Perintah UNION digunakan untuk menggabungkan isi dari 2 (dua) tabel atau
lebih. Perintah ini terdiri dari dua jenis, yaitu UNION dan UNION ALL. Seperti biasanya
untuk menghasilkan suatu dataset perintah UNION ini harus disisipkan diantara perintah
SELECT. Sedangkan perintah UNION ALL menggabungkan keseluruhan data walaupun
data tersebut mempunyai isi yang sama.
Percobaan
a. Inner Join
Perintah inner join di gunakan untuk menampilkan data dari dua table yaitu table
mahasiswa dan table ambil_mk akan ditampilkan di sebelah kanan table mahasiswa.
b. Outer Join
Perintah Outer Join digunakan untuk mengggabungkan data yang bersesuaian atau data
yang memenuhi kondisi join dan data yang tidak punya pasangan di table lawannya.
c. Left Join
Perintah ini digunakan untuk menampilkan semua data dari table mahasiswa perintah left
join beserta pasangannya yaitu table ambil_mk.
d. Right Join
Perintah ini digunakan untuk menampilkan semua data dari table ambil_mk perintah right
join beserta pasangannya yaitu table mahasiswa.
e. Cross Join
Perintah ini digunakan untuk menggabungkan dua table tanpa kondisi.
f. Union All Join
Perintah ini digunakan untuk menggabungkan keseluruhan data walaupun data tersebut
mempunyai isi yang sama Union Join
Perintah ini digunakan untuk memilih informasi yang berhubungan dari dua table, mirip
dengan join. Namun, ketika menggunakan perintah Union tipe data semua kolom yang
dipilih harus sama. Union hanya memunculkan nilai unik.
SQL Server
INNER JOIN
Menggabungkan tabel mahasiswa dan ambil_mk hanya menampilkan field
nim,nama,alamat dari tabel mahasiswa dan kode_mk dari tabel ambil_mk, dengan syarat
nim yang ada pada tabel –tabel tersebut harus sama nilainya, sehingga dapat ditulis
query sebagai berikut :
Hasil :
Menggabungkan tabel ambil_mk dan matakuliah hanya menampilkan field nim,
kode_mk dari tabel ambil_mk dan nama_mk,semester dari tabel matakuliah, dengan
syarat kode_mk yang ada pada tabel –tabel tersebut harus sama nilainya, sehingga dapat
ditulis query sebagai berikut :
Hasil :
Menggabungkan tabel matakuliah dan dosen hanya menampilkan field
kode_mk,nama_mk dari tabel matakuliah dan nama_dos dari tabel dosen, dengan syarat
kode_dos yang ada pada tabel –tabel tersebut harus sama nilainya, sehingga dapat ditulis
query sebagai berikut :
Hasil :
Menggabungkan tabel dosen dan jurusan hanya menampilkan field kode_jur,nama_jur
dari tabel jurusan dan nama_dos dari tabel dosen, dengan syarat kode_dos yang ada pada
tabel –tabel tersebut harus sama nilainya, sehingga dapat ditulis query sebagai berikut :
Hasil :
FULL OUTER JOIN
Untuk menampilkan seluruh field dari tabel dosen dan dosen dengan syarat kode_dos
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan
“NULL”
Hasil :
Untuk menampilkan seluruh field dari tabel mahasiswa dan ambil_mk dengan syarat nim
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan
“NULL”
Hasil :
Hasil :
LEFT JOIN
Untuk menampilkan beberapa tabel mahasiswa dan ambil_mk dengan syarat nim tabel –
tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan “NULL”
Hasil :
Hasil :
Hasil :
Untuk menampilkan beberapa data tabel dosen dan tabel jurusan dengan syarat
kode_dosen tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan
seluruh data secara berpasangan dan bila tidak ada pasangannya maka akan tetap
ditampilkan “NULL”
Hasil :
Left join memunculkan semua baris tabel pertama, bahkan jika tidak ada pasangannya di
tabel kedua. Jika ada beris pada tabel pertama yang tidak ada pasangannya pada tabel
kedua, maka akan dimunculkan juga “NULL”
RIGHT JOIN
Untuk menampilkan beberapa tabel mahasiswa dan tabel ambil_mk dengan syarat nim
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan “NULL”
Hasil :
Hasil :
Untuk menampilkan beberapa tabel dosen dan table matakuliah dengan syarat
kode_dosen tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan
seluruh data secara berpasangan dan bila tidak ada pasangannya maka akan tetap
ditampilkan “NULL”
Hasil :
Untuk menampilkan semua table dosen dan table jurusan dengan syarat kode_dosen tabel
– tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan “NULL”
Hasil :
CROSS JOIN
Untuk menampilkan beberapa tabel mahasiswa dan tabel ambil_mk tanpa ada kondisi.
Hasil :
Untuk menampilkan beberapa tabel dosen dan tabel matakuliah tanpa ada kondisi.
Hasil :
Untuk menampilkan beberapa tabel dosen dan tabel jurusan tanpa ada kondisi.
Hasil :
UNION
Untuk memilih informasi yang berhubungan dari table mahasiswa dan table ambil_mk
mirip dengan join namun, Union akan menampilkan semua data yang dipilih harus sama.
Hasil :
Hasil :
Tugas
Oracle
Membuat table pemilik dengan kode_pemilik sebagai primary key
Membuat table karyawan dengan kode_karyawan sebagai primary key
Membuat table Travel dengan no_Travel sebagai primary key
Membuat table Bis dengan no_bis sebagai primary key
Membuat table Kereta Api dengan no_kereta sebagai primary key
Membuat table Kapal dengan no_kapal sebagai primary key
Membuat table pesawat dengan no_pesawat sebagai primary key
Membuat table Terminal dengan kode_terminal sebagai primary key
Membuat table pelabuhan dengan kode_pelabuhan sebagai primary key
Membuat table stasiun dengan kode_stasiun sebagai primary key
Membuat table bandara dengan kode_bandara sebagai primary key
Membuat table promo dengan kode_promo sebagai primary key
Membuat table customer dengan kode_customer sebagai primary key
Query data promo
Tampilan dan query data pada table pemilik
Tampilan dan query data pada table Customer
Tampilan dan query data pada table Karyawan
Tampilan dan query data pada table Kereta Api
Tampilan dan query data pada table Kapal
Tampilan dan query data pada table Pesawat
Tampilan dan query data pada table Bandara
Tampilan dan query data pada table Terminal
Tampilan dan query data pada table Pelabuhan
Tampilan dan query data pada table stasiun
Tampilan dan query data pada table promo
Tampilan dan query data pada table travel
Menggabungkan tabel pemilik dan table travel hanya menampilkan field
kode_pemilik,alamat_pemilik dari tabel pemilik dan no_travel dari tabel travel, dengan syarat
no_travel yang ada pada tabel –tabel tersebut harus sama nilainya.
Menggabungkan tabel customer dan table travel hanya menampilkan field
kode_customer,nama_customer dari tabel customer dan no_travel dari tabel travel, dengan
syarat no_travel yang ada pada tabel –tabel tersebut harus sama nilainya.
Untuk menampilkan seluruh field dari tabel pemilik dan table travel dengan syarat no_travel
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan seluruh field dari tabel Customer dan table travel dengan syarat no_travel
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan beberapa tabel Pemilik dan table travel dengan syarat no_travel tabel –
tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan
dan bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan beberapa tabel Bis dan table travel dengan syarat no_travel tabel – tabel
tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan dan
bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan beberapa tabel pemilik dan tabel travel dengan syarat no_travel tabel – tabel
tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan dan
bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan beberapa tabel Kereta Api dan tabel Stasiun dengan syarat kode_stasiun
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk memilih informasi yang berhubungan dari table pemilik dan table travel mirip dengan join
namun, Union akan menampilkan semua data yang dipilih harus sama.
Untuk memilih informasi yang berhubungan dari table promo dan table travel mirip dengan join
namun, Union akan menampilkan semua data yang dipilih harus sama.
Untuk menampilkan beberapa tabel pemilik dan tabel travel tanpa ada kondisi
Untuk menampilkan beberapa tabel promo dan tabel travel tanpa ada kondisi
SQL Server
Membuat database baru
Membuat database dengan nama Travel_agent.
Membuat table baru
Membuat table travel dengan no_travel sebagai primary key.
Query pada data travel
Tampilan data pada table travel
Membuat table pemilik dengan kode_pemilik sebagai primary key
Query pada data pemilik
Tampilan data pada tabel data pemilik
Membuat table karyawan dengan kode_karyawan sebagai primary key
Query pada data karyawan
Tampilan data pada data karyawan
Query pada data promo
Tampilan data pada table promo
Membuat table customer dengan kode_customer sebagai primary key
Query pada data Customer
Tampilan data pada table customer
Membuat tabel Kereta Api dengan no_KA sebagai primary key
Query pada data Kereta Api
Tampilan data pada table Kereta Api
Membuat tabel Bis dengan no_bis sebagi primary key
Query pada data bis
Tampilan data pada table bis
Membuat tabel pesawat dengan no_pesawat sebagai primary key
Query pada tabel pesawat
Tampilan data pada table pesawat
Membuat tabel Kapal dengan no_kapal sebagai primary key
Query pada data kapal
Tampilan data pada table kapal
Membuat tabel stasiun dengan kode_stasiun sebagai primary key
Query pada data stasiun
Tampilan data pada table stasiun
Membuat tabel pelabuhan dengan kode_pelabuhan sebagai primary key
Query pada data pelabuhan
Tampilan data pada tabel pelabuhan
Membuat table bandara dengan kode_bandara sebagai primary key
Query data bandara
Tampilan data pada tabel bandara
Membuat table terminal dengan kode_terminal sebagai primary key
Query data terminal
Tampilan data pada table terminal
INNER JOIN
Menggabungkan tabel pemilik dan table travel hanya menampilkan field
kode_pemilik,alamat_pemilik dari tabel pemilik dan no_travel dari tabel travel, dengan syarat
no_travel yang ada pada tabel –tabel tersebut harus sama nilainya.
Menggabungkan tabel customer dan table travel hanya menampilkan field
kode_customer,nama_customer dari tabel customer dan no_travel dari tabel travel, dengan syarat
no_travel yang ada pada tabel –tabel tersebut harus sama nilainya.
OUTER JOIN
Untuk menampilkan seluruh field dari tabel pemilik dan table travel dengan syarat no_travel
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan seluruh field dari tabel Customer dan table travel dengan syarat no_travel
tabel – tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara
berpasangan dan bila tidak ada pasangannya maka akan tetap ditampilkan.
LEFT JOIN
Untuk menampilkan beberapa tabel Pemilik dan table travel dengan syarat no_travel tabel –
tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan
dan bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan beberapa tabel Customer dan table travel dengan syarat no_travel tabel –
tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan
dan bila tidak ada pasangannya maka akan tetap ditampilkan.
RIGHT JOIN
Untuk menampilkan beberapa tabel pemilik dan tabel travel dengan syarat no_travel tabel – tabel
tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan dan
bila tidak ada pasangannya maka akan tetap ditampilkan.
Untuk menampilkan beberapa tabel Customer dan tabel Travel dengan syarat no_stravel tabel –
tabel tersebut nilainya harus sama sehingga akan menampilkan seluruh data secara berpasangan
dan bila tidak ada pasangannya maka akan tetap ditampilkan.
UNION JOIN
Untuk memilih informasi yang berhubungan dari table pemilik dan table travel mirip dengan join
namun, Union akan menampilkan semua data yang dipilih harus sama.
Untuk memilih informasi yang berhubungan dari table karyawan dan table travel mirip dengan
join namun, Union akan menampilkan semua data yang dipilih harus sama.
CROSS JOIN
Untuk menampilkan beberapa tabel pemilik dan tabel travel tanpa ada kondisi
Untuk menampilkan beberapa tabel promo dan tabel travel tanpa ada kondisi
Kesimpulan
Join merupakan operasi yang digunakan untuk menggabungkan kolom-kolom yang berasal dari
dua table atau lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-
tabel tersebut.