Praktikum
Praktikum
UNIVERSITAS BRAWIJAYA
QUERY
INSERT INTO RENTAL_DVD.GENRE (ID_GENRE, GENRE)
VALUES (1, 'Action'),
(2, 'Adventure'),
(3, 'Superhero'),
(4, 'Fantasy'),
(5, 'Comedy'),
(6, 'Mystery'),
(7, 'Buddy Cop'),
(8, 'Drama'),
(9, 'Thriller');
-- No 1.
SELECT X.KODE_DVD, Y.KODE_PELANGGAN, X.TANGGAL_SEWA, X.TANGGAL_REALISASI_KEMBALI
FROM RENTAL_DVD.TRANSAKSI AS X JOIN RENTAL_DVD.KONTAK_PELANGGAN AS Y
ON X.KODE_PELANGGAN = Y.KODE_PELANGGAN;
-- No 2.
SELECT A.KODE_DVD, B.NAMA, A.DENDA * (C.TANGGAL_REALISASI_KEMBALI -
C.TANGGAL_WAJIB_KEMBALI) AS DENDA_TERBESAR
FROM RENTAL_DVD.MOVIE A JOIN RENTAL_DVD.TRANSAKSI C ON A.KODE_DVD = C.KODE_DVD
JOIN RENTAL_DVD.PELANGGAN B ON B.KODE_PELANGGAN = C.KODE_PELANGGAN
WHERE (C.TANGGAL_REALISASI_KEMBALI - C.TANGGAL_WAJIB_KEMBALI) > 0;
-- No 3.
SELECT A.JUDUL, COUNT(A.JUDUL) AS JUMLAH_TRANSAKSI
FROM RENTAL_DVD.MOVIE AS A JOIN RENTAL_DVD.TRANSAKSI AS B ON
A.KODE_DVD = B.KODE_DVD JOIN RENTAL_DVD.PELANGGAN AS C ON
B.KODE_PELANGGAN = C.KODE_PELANGGAN
-- No 4.
SELECT A.GENRE, C.JUDUL, C.HARGA_SEWA
FROM RENTAL_DVD.GENRE AS A JOIN RENTAL_DVD.GENRE_MOVIE AS B ON
A.ID_GENRE = B.ID_GENRE JOIN RENTAL_DVD.MOVIE AS C
ON B.KODE_DVD = C.KODE_DVD;
-- No 5.
SELECT A.NAMA, B.NO_HP
FROM RENTAL_DVD.PELANGGAN AS A JOIN RENTAL_DVD.KONTAK_PELANGGAN AS B ON
A.KODE_PELANGGAN = B.KODE_PELANGGAN;
-- No 6.
SELECT A.NAMA, B.KECAMATAN
FROM RENTAL_DVD.PELANGGAN AS A JOIN RENTAL_DVD.KELURAHAN AS C
ON A.ID_KELURAHAN = C.ID_KELURAHAN JOIN RENTAL_DVD.KECAMATAN AS B ON
C.ID_KECAMATAN = B.ID_KECAMATAN;
-- No 7.
SELECT AVG(DAY(TANGGAL_REALISASI_KEMBALI)-DAY(TANGGAL_WAJIB_KEMBALI)) AS
RATA_RATA
FROM RENTAL_DVD.TRANSAKSI
WHERE (DAY(TANGGAL_REALISASI_KEMBALI)-DAY(TANGGAL_WAJIB_KEMBALI)) != 0;
-- No 8.
SELECT A.KODE_PELANGGAN, A.NAMA, A.ALAMAT, B.KELURAHAN
FROM RENTAL_DVD.PELANGGAN AS A JOIN RENTAL_DVD.KELURAHAN AS B
ON A.ID_KELURAHAN = B.ID_KELURAHAN;
-- No 9.
SELECT A.GENRE, C.JUDUL, E.NAMA, D.TANGGAL_SEWA, D.TANGGAL_WAJIB_KEMBALI,
D.TANGGAL_REALISASI_KEMBALI
FROM RENTAL_DVD.GENRE AS A JOIN RENTAL_DVD.GENRE_MOVIE AS B ON A.ID_GENRE =
B.ID_GENRE
JOIN RENTAL_DVD.MOVIE AS C ON B.KODE_DVD = C.KODE_DVD JOIN RENTAL_DVD.TRANSAKSI
AS D ON
C.KODE_DVD = D.KODE_DVD JOIN RENTAL_DVD.PELANGGAN AS E ON D.KODE_PELANGGAN =
E.KODE_PELANGGAN;
-- No 10.
SELECT A.KODE_DVD, A.JUDUL, LISTAGG (B.GENRE, ', ') AS GENRE, A.HARGA_SEWA,
A.TAHUN_RILIS, A.DENDA,
C.TANGGAL_SEWA, C.TANGGAL_WAJIB_KEMBALI, C.TANGGAL_REALISASI_KEMBALI,
C.KODE_PELANGGAN, D.NAMA,
D.JENIS_KELAMIN, LISTAGG (DISTINCT KP.NO_HP,', ') AS NO_HP, D.ALAMAT,
E.KECAMATAN, F.KELURAHAN
FROM RENTAL_DVD.GENRE_MOVIE AS GM, RENTAL_DVD.GENRE AS B,RENTAL_DVD.MOVIE AS A,
RENTAL_DVD.TRANSAKSI AS C,
RENTAL_DVD.PELANGGAN AS D, RENTAL_DVD.KONTAK_PELANGGAN AS KP,
RENTAL_DVD.KELURAHAN AS F, RENTAL_DVD.KECAMATAN AS E
WHERE B.ID_GENRE = GM.ID_GENRE
AND A.KODE_DVD = GM.KODE_DVD
AND C.KODE_DVD = GM.KODE_DVD
AND D.KODE_PELANGGAN = C.KODE_PELANGGAN
AND KP.KODE_PELANGGAN = C.KODE_PELANGGAN
LATIHAN SOAL
1. Menampilkan Kode DVD, Kode Pelanggan, Tanggal Sewa dan Tanggal realisasi Kembali
dengan menggunakan metode JOIN.
2. Menampilkan Kode DVD, Nama Pelanggan, dan denda yang harus dibayarkan untuk
pelanggan dengan denda terbesar dengan menggunaka metode JOIN
3. Menampilkan Judul Film dan jumlah transaksi peminjaman untuk film yang dipinjam lebih
dari 1 pelanggan dengan menggunakan metode JOIN, GROUP BY, dan HAVING COUNT
4. Menampilkan Genre, Judul Film dan Harga Sewa dengan metode JOIN.
8. Menampilkan Kode Pelanggan, Nama Pelanggan, Alamat dan Nama Kelurahan dengan
menggunakan metode JOIN
9. Menampilkan Genre, Judul Film, Nama Pelangan, Tanggal Sewa, Tanggal Wajib Kembali
dan Tanggal Realisasi Kembali dengan menggunakan metode JOIN.
10.