BASIS DATA I
1.1 TUJUAN
Setelah praktikum ini mahasiswa dapat :
a. Menampilkan data dari dua table atau lebih dengan menggunakan perintah
right join dan left join.
b. Memahami perbedaan right join dan left join.
c. Menampilkan gabungan data dari dua table atau lebih dengan
menggunakan perintah union.
d. Menampilkan data yang dikelompokkan sesuai kolom tertentu.
e. Menggunakan fungsi-fungsi yang biasa dipergunakan bersama perintah
grouping (count, max, min, avg);
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').
2.1 Tugas yang pertama, dengan right join, menampilkan data penjualan album!
(kolom yang ditampilkan: nama album, penyanyi, jumlah quantity terjual)
Penyelesaian :
Keterangan :
Perintah use akan mengaktifkan database dengan nama dbc_116_047
sehingga dapat memanipulasi data yang ada.
Select a.judul merupakan perintah untuk menampilkan kolom judul.
As ‘nama album’ merupakan perintah untuk membuat tabel alias dengan
mengubah nama kolom judul menjadi nama album tetapi tidak merubah
koding, karena tabel alias hanya menampilkan tabel yang tersedia
menggunakan nama lain.
Select a.Penyanyi merupakan kolom yang akan ditampilkan setelah
kolom judul.
Select d.qty merupakan kolom yang akan ditampilkan setelah kolom
penyanyi.
As ‘jumlah quantity terjual’ merupakan perintah untuk membuat tabel
alias dengan mengubah nama kolom penjumlahan qty menjadi jumlah
quantity terjual, tetapi tidak merubah koding, karena tabel alias hanya
menampilkan tabel yang tersedia menggunakan nama lain.
Huruf a dan d merupakan sebuah simbol untuk membedakan berasal dari
tabel mana, yaitu untuk huruf a dari tabel album sedangkan huruf d dari tabel
detail_penjualan.
From album menunjukkan bahwa kolom yang akan ditampilkan berasal
dari tabel album yaitu a.
Right join merupakan perintah untuk menggabungkan 2 tabel, dimana
semua field yang ada pada tabel sebelah kanan akan ditampilkan walaupun
tidak memiliki nilai yang sama dengan referensi yang ada pada tabel sebelah
kiri.
detail_penjualan merupakan tabel yang akan digabungkan dengan tabel
album.
Huruf a dan d merupakan simbol untuk mewakili tabel, a mewakili tabel
album dan b mewakili tabel detail_penjualan.
On a.kode_album = d.kode_album merupakan syarat untuk melakukan
join dimana kode_album pada tabel album memiliki nilai yang sama dengan
kode_album pada tabel detail_penjualan.
Group by judul merupakan perintah untuk mengurutkan data berdasarkan
kolom/field judul.
2.2 Tugas yang kedua, Dengan left join, menampilkan data penjualan album!
(kolom yang ditampilkan: nama album, penyanyi, quantity terjual)
Penyelesaian :
Keterangan :
Select a.judul merupakan perintah untuk menampilkan kolom judul.
As ‘nama album’ merupakan perintah untuk membuat tabel alias dengan
mengubah nama kolom judul menjadi nama album tetapi tidak merubah
koding, karena tabel alias hanya menampilkan tabel yang tersedia
menggunakan nama lain.
Select a.Penyanyi merupakan kolom yang akan ditampilkan setelah
kolom judul.
Select d.qty merupakan kolom yang akan ditampilkan setelah kolom
penyanyi.
As ‘jumlah quantity terjual’ merupakan perintah untuk membuat tabel
alias dengan mengubah nama kolom penjumlahan qty menjadi jumlah
quantity terjual, tetapi tidak merubah koding, karena tabel alias hanya
menampilkan tabel yang tersedia menggunakan nama lain.
Huruf a dan d merupakan sebuah simbol untuk membedakan berasal dari
tabel mana, yaitu untuk huruf a dari tabel album sedangkan huruf d dari tabel
detail_penjualan.
From album menunjukkan bahwa kolom yang akan ditampilkan berasal
dari tabel album yaitu a.
Left join merupakan perintah untuk menggabungkan 2 tabel, dimana
semua field yang ada pada tabel sebelah kiri akan ditampilkan walaupun tidak
memiliki nilai yang sama dengan referensi yang ada pada tabel sebelah
kanan.
detail_penjualan merupakan tabel yang akan digabungkan dengan tabel
album.
Huruf a dan d merupakan simbol untuk mewakili tabel, a mewakili tabel
album dan b mewakili tabel detail_penjualan.
On a.kode_album = d.kode_album merupakan syarat untuk melakukan
join dimana kode_album pada tabel album memiliki nilai yang sama dengan
kode_album pada tabel detail_penjualan.
Group by judul merupakan perintah untuk mengurutkan data berdasarkan
kolom/field judul.
Berikut output yang dihasilkan dari perintah di atas :
2.3 Tugas yang ketiga, menampilkan data album yang paling laris!
Penyelesaian :
Gambar 2.5 Perintah untuk menampilkan data album yang paling laris
Keterangan :
Select a.* merupakan perintah untuk menampilkan seluruh data pada
tabel.
Max(d.qty) merupakan operasi matematika yang berfungsi untuk
mengetahui nilai terbesar dari kolom qty.
As ‘jumlah terjual’ merupakan perintah untuk membuat tabel alias
dengan mengubah nama kolom pada kolom untuk mencari nilai terbesar dari
kolom qty menjadi jumlah terjual tetapi tidak merubah koding, karena tabel
alias hanya menampilkan tabel yang tersedia menggunakan nama lain.
Huruf a dan d merupakan sebuah simbol untuk membedakan berasal dari
tabel mana, yaitu untuk huruf a dari tabel album sedangkan huruf d dari tabel
detail_penjualan.
From album menunjukkan bahwa kolom yang akan ditampilkan berasal
dari tabel album yaitu a.
Inner join merupakan perintah untuk menggabungkan 2 tabel, dimana
tabel yang dijadikan sebagai referensi join memiliki nilai yang sama pada
tabel sebelah kiri dan pada tabel sebelah kanan.
detail_penjualan merupakan tabel yang akan digabungkan dengan tabel
album.
Huruf a dan d merupakan simbol untuk mewakili tabel, a mewakili tabel
album dan b mewakili tabel detail_penjualan.
On a.kode_album = d.kode_album merupakan syarat untuk melakukan
inner join dimana kode_album pada tabel album memiliki nilai yang sama
dengan kode_album pada tabel detail_penjualan. Apabila tidak memiliki nilai
yang sama maka inner join tidak dapat dilakukan.
Gambar 2.6 Output dari perintah untuk menampilkan data album yang paling
laris
Keterangan :
Select * from album merupakan perintah untuk menampilkan seluruh
data pada tabel album.
Where harga = (select min(harga) from album), perintah ini merupakan
syarat dari data yang akan ditampilkan pada tabel album. Data yang akan
ditampilkan hanyalah data yang memiliki nilai harga terendah.
Gambar 2.8 Ouput dari perintah untuk menampilkan data album yang
termurah
2.5 Tugas yang kelima, menampilkan data penjualan album per hari!
Penyelesaian :
Gambar 2.9 Perintah untuk menampilkan data penjualan album per hari
Keterangan :
Select kode_penjualan merupakan perintah untuk menampilkan kolom
kode_penjualan.
Tanggal merupakan kolom yang akan ditampilkan setelah kolom
kode_penjualan.
Total as ‘penjualan perhari’ merupakan kolom yang akan ditampilkan
selanjutnya dengan mengganti nama total menjadi penjualan perhari.
From penjualan menunjukkan bahwa kolom-kolom yang akan
ditampilkan berasal dari tabel penjualan.
Gambar 2.10 Output perintah untuk menampilkan data penjualan album per
hari
TUGAS PENDAHULUAN
Jawaban untuk tugas pendahuluan, sebagai berikut :
1. Menjelaskan apa yang dilakukan oleh perintah-perintah SQL pada langkah 1-
8!
a. Pada langkah satu, terdapat perintah (select nim, nama, dosen_pa from
mahasiswa;). Pada perintah ini berguna untuk menampilkan seluruh data
dari kolom/field nim, nama, dosen_pa yang merupakan kolom\filed dari
tabel mahasiswa.
b. Pada langkah dua, terdapat perintah (select nip, nama from dosen;). Perintah
ini berguna untuk menampilkan seluruh data dari kolom\field nip, nama
yang merupakan kolom\field dari tabel dosen.
c. Pada langkah tiga, terdapat perintah (select nim, m.nama as 'nama
mahasiswa', d.nama as 'nama dosen PA' from mahasiswa m left join dosen d
on m.dosen_pa = d.nip;). Perintah ini berguna untuk menampilkan kolom
nim, nama, dan membuat tabel alias “nama mahasiswa” dengan perintah
“as” pada kolom nama yang berasal dari tabel masiswa, dan juga membuat
tabel alias “nama dosen PA” dengan perintah “as” pada kolom nama yang
berasal dari tabel dosen, dan perintah from menunjukan bahwa kolom yang
akan ditampilkan berasal dari tabel mahasiswa, yang tabel mahasiswa di
simbolkan dengan huruf a sedangkan untuk tabel dosen disimbolkand
dengan huduf d, terdapat juga perintah left join untuk menggabungkan 2
tabel, dimana semua field yang ada pada tabel sebelah kiri akan ditampilkan
walaupun tidak memiliki nilai yang sama dengan referensi yang ada pada
tabel sebelah kanan, perintah On merupakan syrat untuk melakukan join
yang dimana syratnya adalah m.dosen_pa pada tabel mahasiswa memilki
nilai yang sama dengan d.nip pada tabel dosen.
d. Pada langkah empat, terdapat perintah (select nim, m.nama as 'nama
mahasiswa', d.nama as 'nama dosen PA' from mahasiswa m right join dosen
d on m.dosen_pa = d.nip;). Pada perintah ini penjelasan nya sama dengan
langkah tiga, tetapi pada langkah empat ini, menggunakan right join yang
berguna untuk menggabungkan 2 tabel, dimana semua field yang ada pada
tabel sebelah kanan akan ditampilkan walaupun tidak memiliki nilai yang
sama dengan referensi yang ada pada tabel sebelah kiri.
e. Pada langkah lima, terdapat perintah (select nim as 'ID pengenal', nama
from mahasiswa union select nip, nama from dosen;). Perintah ini berguna
untuk menampilkan kolom nim, dan nama, kolom nim membuat tabel alias
“ID pengenal”, yang berasal dari tabel mahasiswa, dan juga menampilkan
kolom nip dan nama yang berasal dari tabel dosen. Perintah union
digunakan untuk menggabungkan dua data set yang memiliki kolom dengan
definisi dan urutan yang sama. Dalam hal ini yang ingin ditampilkan yaitu
ID pengenal dan nama dari masing-masing tabel.
f. Pada langkah enam, terdapat perintah (select nim as 'ID pengenal', nama,
tgl_lahir from mahasiswa union select nip, nama from dosen;). Perintah ini
tidak bisa dijalankan karena, union tidak bisa menampilkan dua data set
yang tidak memiliki kolom dengan definisi yang sama, dalam hal ini kolom
tgl_lahir dari tabel mahasiswa.
g. Pada langkah tujuh, terdapat perintah (select nim as 'ID pengenal', nama,
'mahasiswa' as keterangan from mahasiswa union select nip, nama, 'dosen'
from dosen;). Perintah ini menampilkan kolom nim yang membuat kolom
alias “ID pengenal” dengan perintah “as”, nama, menampilkan ‘mahasiswa’
di kolom keterangan yang berasal dari tabel mahasiswa. Dan menampilkan
kolom nip, nama, “dosen” yang berasl dari tabel dosem. Perintah union
menggabungkan dua data set yang memiliki kolom dengan definisi dan
urutan yang sama. Dalam hal ini yang ingin ditampilkan yaitu ID pengenal
dan nama, dan juga memberi keterangan mahasiswa atau dosen di kolom
keterangan dari masing-masing tabel.
h. Pada langkah enam lagi, terdapat perintah (select tmp_lahir,
count(tmp_lahir) as 'jumlah' from mahasiswa group by tmp_lahir;). Perintah
ini menampilkan kolom tmp_lahir, count berfungsi untuk menghitung
jumlah dari jumlah data dari kolom tmp_lahir dan juga membuat kolom
alias (jumlah) dengan perintah “as” yang berasal dari tabel mahasiswa.
Group by tmp_lhr merupakan perintah untuk mengurutkan data berdasarkan
kolom judul.
i. Pada langkah tujuh lagi, terdapat perintah (select nim, nama, max(ipk) from
mahasiswa;). Perintah ini akan error karena perintah untuk max (ipk) tidak
ditambahkan kolom alias untuk menampung perhitungan max (ipk) dan juga
tidak disertakan perintah group by, karena perintah max memerlukan base
dari kolom group by.
j. Pada langkah delapan, terdapat perintah (select tmp_lahir, max(ipk) as 'IPK
tertinggi' from mahasiswa group by tmp_lahir;). Pada perintah ini,
merupakan yang benar dari perintah langkah tujh di atas, yang
menambahkan tabel alias dan menyertkan perintah group by kolom yang
dituju. Yang dimana menampilkan data dari kolom tm_lhr yang dihitung ipk
tertunggi dan ditampung di kolom IPK tertinggi.
2. Perbedaan right join dan left join, kalau left join merupakan cara
menghubungkan tabel dan menampilkan semua data (kiri) pada tabel yang
tidak berhubungan, sedangkan data yang kosong akan bernilai NULL.
Sedangkan right join menghubungkan tabel dan menampilkan semua data
(kanan) pada tabel yang tidak berhubungan, dan data yang kosong akan
bernilai NULL.
3. Gunakan fungsi CAST untuk mengubah tipe kolom tersebut, dan secara
default, operator UNION akan mengumpulkan record non-distinct dalam
record tunggal. Gunakan ALL untuk mempertahankan record non-distinct.
Untuk menggabungkan dua buah tabel dimana satu tabel tidak mempunyai
suatu kolom tabel lain, gunakan suatu ekpresi atau literal yang sesuai.
BAB III
KESIMPULAN
2. INNER JOIN
Inner join digunakan untuk menggabungkan dua atau lebih tabel yang
dijadikan sebagai referensi join memiliki nilai yang sama pada tabel sebelah
kiri dan pada tabel sebelah kanan. Dengan inner join, tabel akan digabungan
dua arah, sehingga tidak ada data yang NULL di satu sisi.
3. LEFT JOIN
Left join digunakan untuk menggabungkan dua atau lebih tabel dimana
field yang digunakan sebagai referensi pada tabel sebelah kiri akan tetap
ditampilkan walaupun tidak ada dalam tabel sebelah kanan.
4. RIGHT JOIN
Right join digunakan untuk menggabungkan dua atau lebih tabel dimana
semua field yang ada pada tabel sebalah kanan akan ditampilkan walapun tidak
memiliki nilai yang sama dengan referensi yang ada dalam tabel sebelah kiri.
5. UNION
Digunakan untuk menggabungkan hasil dari 2 atau lebih perintah Select.
7. GROUP BY
Group by digunakan pada pernyataan SELECT untuk agregasi data
berdasarkan grup (pengelompokan) suatu kolom.
BAB IV
DAFTAR PUSTAKA
Dosen Teknik Informatika. 2012. “Modul Praktikum Basis Data I”. Palangka
Raya : Universitas Palangka Raya.
Hakim, Risma. 2017. “Perbedaan Inner Join, Left Join, Right Join, Dsb”.
[Online]. Tersedia : https://www.dumetschool.com/blog/perbedaan-inner-
join-left-join-right-join-dsb. (Diakses pada 18 April 2018).
Sya’diyah, Halimatus. 2015. “Contoh Penggunaan Union dan Union All Pada
Basis Data”. [Online]. Tersedia :
http://halimatuzaini.blogspot.co.id/2015/01/contoh-penggunaan-union-dan-
union-all.html. (Diakses pada 18 April 2018).
BAB V
LAMPIRAN
Gambar 5.5 Perintah untuk menampilkan data album yang paling laris
Gambar 5.6 Output dari perintah untuk menampilkan data album yang paling laris
Gambar 5.9 Perintah untuk menampilkan data penjualan album per hari
Gambar 5.10 Output perintah untuk menampilkan data penjualan album per hari