Anda di halaman 1dari 6

.

1 Dapatkan banyak mahasiswa yang mengambil matakuliah. Selesaikan dengan


pendekatan join eksplisit dan implisit.
EKSPLISIT atau “eksplisit join notation” menggunakan join keyword untuk menentukan
tabel untuk bergabung, dan ON keyword untuk menentukan predikat untuk bergabung,
seperti dalam contoh pernyataan berikut :

Gambar 61. Seleksi INNER JOIN dengan pendekatan Join Eksplisit dengan AS;

Gambar 62. Hasil seleksi INNER JOIN dengan pendekatan Join Eksplisit dengan AS;
Dalam pernyataan dihalaman sebelumnya menggunakan COUNT(DISTINCT
tb_mahasiswa.NIM) untuk menghitung jumlah data NIM mahasiswa tanpa duplikat (data
yang sama dihitung hanya 1), AS Mahasiswa_yang_mengambil_matkul merupakan
perintah yang digunakan untuk menyimpan field sementara seleksi dari data yang dicari.
Jadi field Mahasiswa_yang_mengambil_matkul tersebut tidak tersimpan pada struktur
tabel yang sebenarnya. Kemudian relasi tabel tb_mahasiswa INNER JOIN tb_ambil_mk2
ON tb.mahasiswa.NIM = tb_ambil_mk2.NIM; mengakibatkan hanya NIM yang sama
antara NIM pada tabel tb_mahasiswa dan NIM pada tabel tb_ambil_mk2. Dari pernyataan
tersebut menampilkan hasil adalah 3.
Untuk melihat data nim dan nama mahasiswa yang mengambil matakuliah dapat
menggunakan pernyataan eksplisit join sebagai berikut :

Gambar 63. Penjabaran data dari seleksi INNER JOIN dengan pendekatan Join Eksplisit;

Gambar 64. Hasil dari penjabaran data dari seleksi INNER JOIN dengan pendekatan Join Eksplisit;

Dari hasil pernyataan tersebut membuktikan bahwa pernyataan pada gambar 61 yang
mendapatkan hasil 3 pada field Mahasiswa_yang_mengambil_matkul adalah benar karena
apabila seleksi dengan penjabaran menampilkan 3 record mahasiswa yang mengambil
matakuliah yaitu “101, ARIF”, “102, WATI”, “103, IKA”.

IMPLISIT atau “implicit join notation” hanya berisi daftar tabel untuk bergabung, dalam
klausa FROM dari pernyataan SELECT, menggunakan koma untuk memisahkannya,
klausa WHERE tambahan mungkin berlaku sebagai filter-predikat.

Gambar 65. Seleksi INNER JOIN dengan pendekatan Join Implisit dengan AS;

Gambar 66. Hasil dari seleksi INNER JOIN dengan pendekatan Join Implisit dengan AS;
Dari pernyataan implisit join tersebut menampilkan hasil yang sama dengan pernyataan
eksplisit join yaitu adalah 3. Perbedaan hanya cara penulisannya saja, apabila eksplisit
menggunakan ON sedangkan implisit menggunakan klausa WHERE.
Untuk melihat data nim dan nama mahasiswa yang mengambil matakuliah juga dapat
menggunakan pernyataan implisit join sebagai berikut :

Gambar 67. Penjabaran data dari seleksi INNER JOIN dengan pendekatan Join Implisit;

Gambar 68. Hasil dari penjabaran data dari seleksi INNER JOIN dengan pendekatan Join Implisit;

Hasil dari implisit join yang menyertakan kriteria NIM dan nama sama dengan hasil dari
eksplisit join, perbedaan juga hanya terletak pada penulisannya saja.

2 Kelompokkan data mahasiswa yang tidak mengambil matakuliah berdasarkan


jenis kelaminnya, kemudian hitung banyaknya.

Gambar 69. Seleksi LEFT OUTER JOIN;


Pada persoalan 2 menggunakan left outer join, yang diseleksi adalah field Jenis_kelamin,
COUNT(*) perhitungan dari seleksi data mahasiswa kemudian disimpan pada field
sementara sebagai Jumlah, sedangkan relasi tabel tb_mahasiswa LEFT OUTER JOIN
tb_ambil_mk_2 ON tb.mahasiswa.NIM = tb_ambil_mk2.NIM; mengakibatkan hanya
NIM yang sama antara NIM pada tabel tb_mahasiswa dan NIM pada tabel tb_ambil_mk2,
kemudian klausa WHERE dengan ketentuan kode_mk is NULL karena data yang dicari
adalah mahasiswa yang tidak mengambil matakuliah, GROUP BY Jenis_kelamin adalah
mengelompokkan seleksi data tersebut berdasarkan jenis kelamin.

Gambar 70. Hasil dari Seleksi LEFT OUTER JOIN;


Dari hasil pernyataan pada gambar 69 menampilkan field Jenis_kelamin dan Jumlah
dengan record “L, 3” dan “P, 1”, karena mahasiswa yang tidak mengambil matakuliah
adalah BUDI, TONO, IWAN yang berjenis kelamin L sehingga menampilkan hasil 3, dan
SARI yang berjenis kelamin P sehingga menampilkan hasil 1.

3 Dapatkan nim dan nama mahasiswa yang mengambil matakuliah beserta


kode_mk dan nama_mk yang diambilnya. Selesaikan dengan pendekatan join
eksplisit dan implisit.
EKSPLISIT

Gambar 71. Seleksi INNER JOIN dengan pendekatan Join Eksplisit;


Pada persoalan 3 menggunakan inner join dan memanfaatkan fitur derived table, yang
diseleksi adalah field a.NIM, m.Nama, a.kode_mk, k.nama_mk dari relasi tabel
tb_mahasiswa yang dinotasikan dengan huruf m, tb_ambil_mk_2 yang dinotasikan dengan
huruf a, dan tb_mata_kuliah yang dinotasikan dengan huruf k ON m.NIM = a.NIM
mengakibatkan hanya NIM yang sama antara NIM pada tabel tb_mahasiswa dan NIM
pada tabel tb_ambil_mk2, kemudian AND a.kode_mk = k.kode_mk mengakibatkan hanya
kode_mk yang sama antara kode_mk pada tabel tb_ambil_mk2 dan kode_mk pada tabel
tb_mata_kuliah karena yang diseleksi adalah mahasiswa yang mengambil matakuliah
beserta beserta kode_mk dan nama_mk.
Gambar 72. Hasil dari seleksi INNER JOIN dengan pendekatan Join Eksplisit;
Dari hasil pernyataan pada gambar 71 menampilkan field NIM, Nama, kode_mk, dan
nama_mk dengan 4 record yaitu “101, ARIF, PTI447, PRAKTIKUM BASIS DATA”,
“103, WATI, TIK333, SISTEM OPERASI”, “104, IKA, PTI333, BASIS DATA
TERDISTRIBUSI”, dan “103, WATI, TIK333, SISTEM OPERASI”.

IMPLISIT

Gambar 73. Seleksi INNER JOIN dengan pendekatan Join Implisit;

Gambar 74. Hasil dari seleksi INNER JOIN dengan pendekatan Join Implisit;
Dari pernyataan implisit join tersebut menampilkan hasil yang sama dengan pernyataan
eksplisit join yaitu “101, ARIF, PTI447, PRAKTIKUM BASIS DATA”, “103, WATI,
TIK333, SISTEM OPERASI”, “104, IKA, PTI333, BASIS DATA TERDISTRIBUSI”,
dan
“103, WATI, TIK333, SISTEM OPERASI”. Perbedaan hanya cara penulisannya saja,
apabila eksplisit menggunakan ON sedangkan implisit menggunakan klausa WHERE.

4 Dapatkan nim, nama, dan total sks yang diambil oleh mahasiswa, Dimana total
sksnya lebih dari 4 dan kurang dari 10.

Gambar 75. Seleksi INNER JOIN dengan pendekatan Join Implisit;


Pada persoalan 4 menggunakan inner join implisit dengan memanfaatkan fitur derived
table, yang diseleksi adalah field m.NIM, m.Nama, SUM(k.sks) AS Total_sks, Total_sks
sebagai field sementara dari hasil SUM sks tabel tb_mata_kuliah. Relasi inner join
tb_ambil_mk_2 yang dinotasikan dengan huruf a, tabel tb_mahasiswa yang dinotasikan
dengan huruf m, dan tb_mata_kuliah yang dinotasikan dengan huruf k kemudian
menggunakan klausa WHERE m.NIM = a.NIM mengakibatkan hanya NIM yang sama
antara NIM pada tabel tb_mahasiswa dan NIM pada tabel tb_ambil_mk2 AND a.kode_mk
= k.kode_mk mengakibatkan hanya kode_mk yang sama antara kode_mk pada tabel
tb_ambil_mk2 dan kode_mk pada tabel tb_mata_kuliah, lalu GROUP BY m.NIM berarti
mengelompokkan berdasarkan NIM pada tabel tb_mahasiswa dan HAVING SUM(sks)>4
AND SUM(sks)<10; klausa HAVING digunakan untuk menspesifikasikan hasil yang
mengandung fungsi agregat SUM. Fungsi agregat SUM adalah mengembalikan jumlah
(total atau sum) nilai di suatu kolom.

Gambar 76. Seleksi INNER JOIN dengan pendekatan Join Implisit;


Dari pernyataan implisit join tersebut menampilkan field NIM, Nama, Total_sks dengan 1
record yaitu “104, IKA, 5”. Data mahasiswa yang muncul hanya IKA karena mengambil
2 matakuliah yaitu PTI333 dan PTI777 yang memiliki apabila dijumlah hasil sks nya
adalah 5. Karena yang memiliki sks lebih dari 4 dan sks kurang dari 10 hanya IKA, maka
pernyataan diatas hanya menampilkan IKA.

5 Dapatkan data matakuliah yang tidak diambil oleh mahasiswa terdaftar


(mahasiswa yang terdaftar adalah mahasiswa yang tercatat di tabel mahasiswa).

Gambar 77. Seleksi LEFT OUTER JOIN;


Pada persoalan 4.5 menggunakan left outer join dengan memanfaatkan fitur derived table,
yang diseleksi adalah field k.kode_mk, nama_mk, sks, dan semester. Relasi left outer join
tb_mata_kuliah yang dinotasikan dengan huruf k, tabel tb_mahasiswa yang dinotasikan
dengan huruf m, dan tb_ambil_mk2 yang dinotasikan dengan huruf a. ON m.NIM =
a.NIM mengakibatkan hanya NIM yang sama antara NIM pada tabel tb_mahasiswa dan
NIM pada tabel tb_ambil_mk2, ON k.kode_mk = a.kode_mk mengakibatkan hanya
kode_mk yang sama antara kode_mk pada tabel tb_mata_kuliah dan kode_mk pada tabel
tb_ambil_mk2, lalu dengan klausa WHERE a.kode_mk is NULL karena yang diseleksi
adalah data yang tidak diambil oleh mahasiswa terdaftar. Keluaran dari query diatas
adalah hasil dari 2 kali merelasikan tabel. Pertama merelasikan tabel tb_mahasiswa
dengan tb_ambil_mk2 menggunakan left outer join (keluarannya data yang tidak sama
tabel sebelah kiri) dengan syaratnya data pada nimnya sama. Kemudian hasil dari relasi
tersebut direlasikan lagi dengan tb_mata_kuliah menggunakan left outer join (keluarannya
data yang tidak sama tabel sebelah kiri) dengan syaratnya memiliki data kode_mk sama.
Kemudian yang diproses hanya data yang NULL value.
Gambar 78. Seleksi LEFT OUTER JOIN;
Dari pernyataan left outer join tersebut menampilkan field kode_mk, nama_mk, sks, dan
semester dengan 3 record yaitu “PTI123, GRAFIKA MULTIMEDIA, 3, 5”, “TIK123,
JARINGAN KOMPUTER, 2, 5”, dan “TIK342 PRAKTIKUM BASIS DATA, 1, 3”.
Ketiga data matakuliah tersebut muncul karena ketiga matakuliah tersebut tidak diambil
oleh mahasiswa terdaftar.

Anda mungkin juga menyukai