MODUL 2 PRAKTIKUM SQL TINGAT LANJUT JOIN

dokumen-dokumen yang mirip
Modul 3 : Query Penggabungan Tabel

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

B. PETUNJUK. 2. Join. Praktikum Basis Data 2017 TE UM

MODUL 3 JOIN TABLE. Gambar Model Relasi Basis Data db_mutiara SMK NEGERI 1 CIMAHI REKAYASA PERANGKAT LUNAK

Modul Praktikum III Matakuliah Basis Data 2

1. Buat planing view sesuai kebutuhan topik anda (jelaskan dengan detail masing-masing view yang anda buat)

PRAKTIKUM 5 SISTEM BASIS DATA JOIN

Praktikum Basis Data 2017 TE UM

Strctured Query Language BASIS DATA

MENAMPILKAN DATA DARI BANYAK TABEL

Join Oracle. Rosa Ariani Sukamto Blog: Website:

Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL: Contoh 1 Menampilkan banyaknya record dosen select count ( * )

Modul Praktikum II Matakuliah Basis Data 2

SISTEM INFORMASI Marta Lenah Haryan8 Copyright Wondershare So3ware

SUBQUERY VIEW JOIN PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

SQL LANJUT BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

TABLE JOIN SQL SERVER 2005

MODUL 4 INTERNET PROGRAMMING DATABASE

Riyanto

PRAKTIKUM BASIS DATA

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

d. Primary Key Primary key atau unique key adalah suatu nilai di basis data yang digunakan untuk mengidentifikasi keunikan baris-baris di dalam tabel.

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

MODUL 4 QUERY, VIEW, DAN ALJABAR RELASIONAL

LAPORAN PRAKTIKUM BASIS DATA MODUL 3 CONDITIONAL SQL MIKA PURNAMASARI NASTADINA

PRAKTIKUM 5 QUERY Datasheet view Hasil tampilan data dari perintah query sesuai definisi dari Design view atau SQL view B.3. Query dengan Perint

SQL (STRUCTURED QUERY LANGUAGE)

SUBQUERY VIEW JOIN PRAKTIKUM BERKAS DAN BASIS DATA 2010/2011. Rizki Arif Firdaus

BAB II PEMBUATAN DAN MANAJEMEN TABLE

DATABASE RUMAH SAKIT 1. Objek yang dipakai a. Pasien b. Dokter c. Ruang d. Petugas e. Rawat_inap f. Pembayaran

MODUL 3 PRAKTIKUM PEMROGRAMAN VISUAL VARIABEL, TIPE DATA, DAN OPERATOR PADA VB.NET

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. maupun perancangan menjadi bentuk bahasa pemrograman.

Praktikum Sistem Basis Data

Untuk menampilkan data-data yang telah tersimpan dalam database diperlukan perintah SELECT, yang dapat dirumuskan sebagai berikut:

Structured Query Language

Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_xxx.

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

M0564-Pengantar Sistem Basisdata 12/ 1

Praktikum Basis Data 2017 TE UM MODUL 6 SUB QUERY

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

1 Praktikum #1 - SQL Langkah-Langkah Kerja Solusi Masalah Penutup... 6

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

select d.area_id, d.nama_area, d.luas_area, p.penduduk_id, p.nama_penduduk from area d inner join penduduk p on (d.area_id=p.

Macam - Macam Perintah Pada SQL

Pemrograman Basis Data Berbasis Web

MODUL 1 DATABASE MYSQL

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

P - 7 Pembahasan UTS PSIK V

Oracle Academic Initiative

MODUL I PENGENALAN MYSQL

DAFTAR ISI. DAFTAR ISI... 1 PRAKATA Pengenalan dan Lingkungan Kerja MySQL Tujuan... 4 Dasar Teori... 4 Praktik... 5

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

BAB VI AGREGASI SQL DAN VIEW

MODUL 5 INTERNET PROGRAMMING : MySQL

KURSUS ONLINE JASA WEBMASTERS


Pertemuan 11 Structure Query Language(SQL)

Join Antar Tabel. M. Saefudin SKom, MMSI

LAPORAN PRAKTIKUM BASIS DATA LANJUT I

MODUL 9 WEB PROGRAMMING : MySQL

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL 8. Sub Query Pada baris dan Kolom PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

TUGAS PRAKTIKUM SISTEM BASIS DATA

3 rd DML : Selection(3)

PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN SMK N 51 JAKARTA DENGAN PHP DAN MY SQL. Ike Lestari Radar Wati Sistem Informasi

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

BAB III ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem (system analysis) dapat didefinisikan sebagai penguraian dari

Rencana Pelaksanaan Pembelajaran

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

PERTEMUAN 11 SQL(lanjutan): Queries, Constraints & Triggers. (Chap. 5 Ramakrishnan)

BASISDATA ( QUERY ANTAR TABEL )

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

MODUL PRAKTIKUM 04. Database Implementation dengan Perintah SQL

MODUL 8 MEMBUAT USER DAN MENGAKSES DATABASE

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA

Sistem Basis Data (IF )

MODUL II SQL A. TUJUAN

TUGAS PRAKTIKUM SISTEM BASIS DATA

1. Hasil ERD dari Tabel satu adalah sebagai berikut: Figure 1: ERD Apotik. 2. Syntax CREATE tabel untuk masing - masing tabel :

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

BAB III STRUCTURED QUERY LANGUAGE (SQL)

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

Data Manipulation Language Bag. 1

Oracle Academic Initiative

BAB V. Basis Data Darmawan Satyananda 74

LAPORAN TUGAS BASIS DATA I

PENGENALAN SINTAKS DASAR DALAM MySQL

Untuk menjalankan Mysql secara konpensional jalankan Mysql.exe pada direktori Mysql\Bin. Akan tampak tampilan sebagai berikut:

PRAKTIKUM SISTEM BASISDATA. Disusun Oleh : Anggi Nurcahyo ( )

PERINTAH DASAR MySQL

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Pemrograman Web Lanjut 2017

Lisensi Pocket Book. Pocket Book ini dapat anda distribusikan ulang,dicopy,dan dicetak untuk pembelajaran.

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

Daftar Isi. 1 Praktikum #1 - Instalasi XAMPP dan PHP Maker Tujuan Program yang dibutuhkan Langkah-Langkah Pekerjaan...

Transkripsi:

PEMERINTAH KABUPATEN BANYUWANGI DINAS PENDIDIKAN SMK NEGERI 1 BANYUWANGI Jalan Wijaya Kusuma No. 46 Telp. 0333-424541 Banyuwangi - 68425 MODUL 2 PRAKTIKUM SQL TINGAT LANJUT JOIN A. Kompetensi Standar kompetensi : Menerapkan bahasa pemrograman SQL tingkat lanjut. Kompetensi dasar : Menentukan formula pembentukan data dengan batasan waktu B. Tujuan 1. Mengenal macam-macam fungsi join. 2. Menggunakan fungsi join untuk memecahkan suatu masalah yang berhubungan dengan basis data. C. Petunjuk Pelaksanaan Praktikum Awali setiap aktivitas dengan do a, semoga berkah dan mendapat kemudahan. Pahami tujuan dan dasar teori dengan baik dan benar. Kerjakan latihan dan tugas-tugas praktikum dengan baik, sabar, mandiri, dan jujur. Tanyakan kepada guru pembimbing apabila ada hal-hal yang kurang jelas atau yang belum dipahami. Laporkan kepada guru pembimbing jika pelaksanaan praktikum sudah selesai. Perhatikan faktor-faktor Keselamatan dan Kesehatan Kerja (K3) selama melaksanakan kegiatan praktikum. Dilarang bercanda yang berlebihan atau melakukan aktivitas yang tidak berhubungan dengan kegiatan praktikum. D. Dasar Teori 1. Join Join merupakan sebuah konsep di dalam pengolahan data pada database. Konsep ini menggabungkan dua buah tabel atau lebih sehingga menghasilkan sebuah tabel baru yang bersifat temporary atau sementara. Melalui tabel baru ini akan dapat diperoleh hubungan tiap data pada tabel-tabel yang digabungkan. Tabel baru ini disebut sebagai joined table. Praktikum SQL Tingkat Lanjut Modul 2 Hal. 1

2. Macam-Macam Join Pada MySQL dikenal beberapa macam join yang dapat dikelompokkan menjadi dua, yaitu inner join dan outer join. Inner join dapat dibagi kembali menjadi natural join dan cross join. Sedangkan outer join dapat dibedakan menjadi left outer join, right outer join, dan full outer join. a. Inner Join dan Natural Join Inner join dan natural join merupakan join yang digunakan untuk menemukan persimpangan atau perpotongan antara dua buah tabel yang di-join-kan. Join ini akan mengembalikan atau menampilkan data-data yang saling berpasangan di anatara kedua buah tabel. Syntax untuk inner join dan natural join adalah sebagai berikut: FROM tabel_1 INNER JOIN tabel_2 ON tabel_1.nama_kolom = tabel_2.nama_kolom; FROM tabel_1 NATURAL JOIN tabel_2; b. Cross Join Cross join merupakan inner join dengan seluruh kondisi join (tidak hanya data yang berpasangan) dianggap bernilai true. Sesuai dengan namanya, join ini akan mengembalikan semua kemungkinan pasangan atau persilangan data pada tabel yang satu dengan data pada tabel yang lainnya. Syntax untuk cross join adalah sebagai berikut: FROM tabel_1 CROSS JOIN tabel_2; c. Left Outer Join dan Right Outer Join Left outer join merupakan join yang akan mengembalikan seluruh data pada tabel sebelah kiri (left table) yang memiliki pasangan pada tabel sebelah kanan (right table) ditambah data-data pada left table yang tidak memiliki pasangan pada tabel sebelah kanan. Sedangkan right outer join sebaliknya. Untuk data-data yang tidak memiliki pasangan, pada joined table yang dihasilkan data-data tersebut akan dipasangkan dengan data null. Syntax untuk left outer join dan right outer join adalah sebagai berikut: FROM tabel_kiri LEFT OUTER JOIN tabel_kanan ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom; FROM tabel_kiri RIGHT OUTER JOIN tabel_kanan ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom; Praktikum SQL Tingkat Lanjut Modul 2 Hal. 2

d. Full Outer Join Full outer join merupakan kombinasi dari hasil left outer join dengan right outer join. MySQL tidak mengenal klausa full outer join. Oleh karena itu, untuk mendapatkan joined table hasil dari full outer join digunakan klausa atau operator UNION untuk menggabungkan hasil query yang menggunakan left outer join dengan hasil query yang menggunakan right outer join. Syntax untuk full outer join adalah sebagai berikut: FROM tabel_kiri LEFT OUTER JOIN tabel_kanan ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom UNION FROM tabel_kiri RIGHT OUTER JOIN tabel_kanan ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom; 3. Penggunaan Operator IS NULL Seperti yang telah dijelaskan pada bagian outer join, data yang diperoleh dari suatu query dapat mengandung nilai null. Untuk mem-filter query agar hanya menampilkan data yang mengandung nilai null saja dapat menggunakan operator IS NULL pada klausa WHERE. 4. Penggunaan Operator DISTINCT Pada saat melakukan pengambilan data di dalam database terkadang dijumpai suatu kondisi dimana data yang sama diperoleh atau muncul lebih dari satu baris. Untuk menghilangkan kemunculan data yang berulang-ulang ini dapat menggunakan operator DISTINCT pada klausa SELECT. Dengan menggunakan operator ini, data yang sama hanya akan muncul satu kali atau hanya pada satu baris. 5. Penggunaan Operator AS Operator AS berfungsi untuk mengubah nama kolom atau field pada suatu hasil query. Perubahan nama kolom ini hanya berlaku pada hasil query tersebut, tidak mengubah nama kolom asalnya. E. Latihan Gunakanlah kembali tabel nilai_siswa yang pernah Anda buat pada latihan Modul 1. Tambahkan satu buah tabel baru dengan struktur dan data-data sebagai berikut: Nama Tabel Nama Kolom Tipe Data Keterangan siswa nis CHAR(5) PRIMARY KEY nama VARCHAR(50) NOT NULL jenis_kelamin ENUM( L, P ) NOT NULL tempat_lahir VARCHAR(20) NOT NULL tanggal_lahir DATE NOT NULL alamat VARCHAR(100) NOT NULL nis nama jenis_kelamin tempat_lahir tanggal_lahir alamat Praktikum SQL Tingkat Lanjut Modul 2 Hal. 3

10001 Abdul Rizal L Banyuwangi 1996-06-04 Jln. Ikan Cupang 10002 Bramono Hadi L Surabaya 1996-05-29 Jln. Ikan Wader 10004 Denalia Putri P Banyuwangi 1996-02-15 Jln. Ikan Cupang 10005 Erwin Nanda Fadli L Malang 1997-01-14 Jln. Kalimantan 1. Inner Join dan Natural Join Inner join maupun natural join dapat digunakan untuk mengetahui data siswa sekaligus nilai yang diperolehnya. Jalankan query berikut dan perhatikan hasilnya: Query 1 FROM siswa NATURAL JOIN nilai_siswa; Query 2 FROM siswa INNER JOIN nilai_siswa ON siswa.nis = nilai_siswa.nis; Perbedaan apakah yang Anda temukan antara hasil dari query 1 dibandingkan dengan hasil dari query 2? 2. Cross Join Jalankanlah query berikut: FROM siswa CROSS JOIN nilai_siswa; Bandingkan hasil query tersebut dengan query yang menggunakan INNER JOIN dan NATURAL JOIN! Perbedaan apa yang Anda temukan? 3. Left Outer Join dan Right Outer Join Jalankanlah query berikut dan perhatikan hasilnya: FROM siswa LEFT OUTER JOIN nilai_siswa ON siswa.nis = nilai_siswa.nis; Jalankan pula query berikut dan perhatikan kembali hasilnya: FROM siswa RIGHT OUTER JOIN nilai_siswa ON siswa.nis = nilai_siswa.nis; Perbedaan dan persamaan apakah yang Anda temukan dari hasil kedua query tersebut? Adakah data dengan nilai null yang muncul di sana? Apakah yang menyebabkan data dengan nilai null tersebut muncul? Jalankan kembali query yang menggunakan operator IS NULL berikut: Praktikum SQL Tingkat Lanjut Modul 2 Hal. 4

FROM siswa LEFT OUTER JOIN nilai_siswa ON siswa.nis = nilai_siswa.nis WHERE nilai_siswa.nis IS NULL; Apakah perbedaan yang Anda temukan antara hasil query LEFT OUTER JOIN yang mengandung operator IS NULL ini dengan query yang LEFT OUTER JOIN tanpa operator IS NULL? 4. Full Outer Join Untuk melihat bentuk joined table dari hasil query yang menggunakan klausa FULL OUTER JOIN jalankanlah query berikut dan perhatikan hasilnya: FROM siswa LEFT OUTER JOIN nilai_siswa ON siswa.nis = nilai_siswa.nis UNION FROM siswa RIGHT OUTER JOIN nilai_siswa ON siswa.nis = nilai_siswa.nis; 5. Penggunakan Operator DISTINCT dan AS Contoh penggunaan operator DISTINCT adalah pada saat pengguna ingin mengetahui siswa mana saja yang nilainya sudah tercatat di dalam database. Untuk mendapatkan data tersebut dapat menggunakan query berikut ini: SELECT siswa.nis, siswa.nama FROM siswa NATURAL JOIN nilai_siswa; Jalankanlah query tersebut kemudian perhatikan apakah ada lebih dari satu record dengan data yang sama? Bandingkanlah dengan hasil dari query yang mengandung operator DISTINCT berikut: SELECT DISTINCT siswa.nis, siswa.nama FROM siswa NATURAL JOIN nilai_siswa; Sedangkan contoh penggunaan klausa AS adalah pada saat pengguna ingin menampilkan data rata-rata nilai yang diperoleh tiap siswa. Jika tanpa menggunakan operator AS, maka query yang digunakan untuk mendapatkan data tersebut adalah sebagai berikut: SELECT siswa.nis, siswa.nama, AVG(nilai) FROM siswa NATURAL JOIN nilai_siswa GROUP BY siswa.nis; Perhatikan hasil yang diperoleh, terutama nama kolom ketiga. Kemudian jalankan query berikut dan perhatikan hasilnya: Praktikum SQL Tingkat Lanjut Modul 2 Hal. 5

SELECT siswa.nis, siswa.nama, AVG(nilai) AS Rata-Rata FROM siswa NATURAL JOIN nilai_siswa GROUP BY siswa.nis; Perhatikan kolom ketiga dari hasil yang diperoleh. Apakah terjadi perubahan nama kolom jika dibandingkan dengan query sebelumnya? F. Tugas Praktikum Sebuah perpustakaan sekolah memiliki suatu database yang digunakan untuk menyimpan data buku serta mencatat data peminjaman dan pengembalian buku oleh siswa. Struktur tabel dan data-data di dalam database milik perpustakaan tersebut adalah sebagai berikut: Nama Tabel Kolom Tipe Data Keterangan siswa nis CHAR(5) PRIMARY KEY nama VARCHAR(50) NOT NULL alamat VARCHAR(30) NOT NULL gender ENUM( L, P ) NOT NULL jurusan VARCHAR(3) NOT NULL kelas ENUM( X, XI, XII ) NOT NULL buku kode_buku CHAR(7) PRIMARY KEY judul VARCHAR(50) NOT NULL pengarang VARCHAR(50) NOT NULL penerbit VARCHAR(20) NOT NULL tahun_terbit YEAR NOT NULL stok_awal INT(2) NOT NULL DEFAULT 0 peminjaman id_pinjam INT PRIMARY KEY auto_increment nis CHAR(5) NOT NULL kode_buku CHAR(7) NOT NULL tgl_pinjam DATE NOT NULL pengembalian id_pinjam INT NOT NULL tgl_kembali DATE NOT NULL Tabel: siswa nis nama alamat gender jurusan kelas 10001 Alif Hanan Muncar L RPL XII 10002 Minawati Sulistia Purwoharjo P RPL XII 10003 Citra Hadi Rozikin Banyuwangi P RPL XII 10004 Wanda Putri Srono P APK XII 10005 Yunita Nurjanah Purwoharjo P APK XII 10006 Yuyun Suci Anggarista Genteng P APK XII 11001 Rusdiana Banyuwangi P RPL XI 11002 Maulidina Wati Banyuwangi P RPL XI 11003 Ahmad Ruslan Wongsorejo L RPL XI 11004 Lutfi Hasan Banyuwangi L PM XI 11005 Malik Ibrahin Banyuwangi L PM XI 11006 Maulana Indra Muncar L PM XI 12001 Ni Nyoman Sukma Yanuarti Gilimanuk P RPL X 12002 Axcel Bramono Banyuwangi L RPL X 12003 Jhonatan Putra Genteng L RPL X 12004 Nanda Nirmala Banyuwangi P APH X 12005 Muslimah Banyuwangi P APH X 12006 Ina Pratiwi Genteng P APH X Praktikum SQL Tingkat Lanjut Modul 2 Hal. 6

Tabel: buku kode_buku judul pengarang penerbit tahun_terbit stok_awal NOR0001 English for Businness Mc. Steward Graha 2009 20 Pustaka NOR0002 Pendidikan Ahmad Harits Aksara Pelita 2010 40 Kewarganegaraan NOR0003 Matematika untuk SMK Ridwan Anam Aksara Pelita 2010 50 PSR0001 Manajemen Penjualan Siti Nasuha Bumi 2011 10 Merdeka PSR0002 Strategi Menarik Siti Nasuha Bumi 2011 10 Pelanggan Merdeka TIK0001 Belajar MySQL Abdul Kadir Andi 2008 10 Publisher TIK0002 Handal Pemrograman Lukmanul Lokomedia 2009 20 PHP Hakim TIK0003 Pemrograman JavaScript Abdul Kadir Andi 2009 10 Publisher TIK0004 Pemrograman Berbasis Objek Abdul Kadir Andi Publisher 2010 8 Tabel: peminjaman id_pinjam nis kode_buku tgl_pinjam 1 11003 TIK0004 2012-09-24 2 11002 TIK0001 2012-09-24 3 11004 PSR0001 2012-09-25 4 11004 PSR0002 2012-09-25 5 11005 PSR0001 2012-09-25 6 11005 PSR0002 2012-09-25 7 12004 NOR0001 2012-09-27 8 10004 NOR0003 2012-09-28 9 12003 TIK0001 2012-09-28 10 12001 TIK0001 2012-09-28 Tabel: pengembalian id_pinjam tgl_kembali 2 2012-09-26 6 2012-09-27 3 2012-09-28 4 2012-09-28 10 2012-10-03 Berdasarkan data-data tersebut, tuliskanlah query SQL untuk menyelesaikan permasalahan-permasalahan berikut dengan memanfaatkan prinsip JOIN: 1. Menampilkan nama, kelas, dan jurusan siswa yang pernah melakukan peminjaman buku. Praktikum SQL Tingkat Lanjut Modul 2 Hal. 7

2. Menampilkan nama, kelas, dan jurusan siswa yang tidak pernah melakukan peminjaman buku. 3. Menampilkan judul dan pengarang buku yang pernah dipinjam oleh siswa. 4. Menampilkan judul dan pengarang buku yang belum pernah dipinjam oleh siswa. 5. Menampilkan nama, kelas, dan jurusan siswa yang pernah melakukan peminjaman buku beserta judul dan tanggal peminjamannya. Praktikum SQL Tingkat Lanjut Modul 2 Hal. 8

6. Menampilkan data nama, kelas, dan jurusan siswa yang melakukan peminjaman buku beserta jumlah peminjamannya. 7. Menampilkan judul buku yang sudah dikembalikan beserta nama, kelas, dan jurusan siswa yang meminjamnya juga tanggal peminjaman dan tanggal pengembaliannya. 8. Menampilkan nama, kelas, dan jurusan siswa yang belum mengembalikan buku. Praktikum SQL Tingkat Lanjut Modul 2 Hal. 9