• Tidak ada hasil yang ditemukan

SUB QUERY DAN VIEW

Dalam dokumen d46b1 modul praktikum sistem basis data (Halaman 68-73)

A. LATAR BELAKANG

Sumber data dalam melakukan query data tidak hanya bersal dari objek Tabel semata, namun terkadang untuk keperluan dan alasan tertentu, sumber data dari query data dapat berasal dari sebuah query juga.

Query yang digunakan sebagai sumber data sebuah query disebut Sub Query. Sub Query dapat digunakan langsung sebagai sumber data dari sebuah perintah query data, atau didefinisikan menjadi sebuah objek View. Objek View merupakan meta Tabel yang berisikan definisi untuk menghasilkan sejumlah record (record set) yang terdiri dari sejumlah kolom/field yang berasal dari satu atau lebih objek Tabel.

Guna membantu pemahaman kita agar dapat membuat dan menggunakan Sub Query dan objek View, diperlukan tindakan uji coba dalam praktikum berikut ini.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat membangun sebuah Sub Query dan menyatakannya sebagai objek View

C. ALAT-ALAT DAN BAHAN YANG DIGUNAKAN

Praktikum ini membutuhkan ketersediaan alat-alat dan bahan praktikum berupa sejumlah perangkat keras (hardware) dan perangkat lunak (software). Hardware dan software yang dibutuhkan sebelum melakukan praktikum ini adalah;

4. Satu komputer yang akan digunakan sebagai Server dan sejumlah komputer yang digunakan sebagai Client dan terhubung dalam jaringan komputer baik dengan menggunakan kabel maupun dengan jaringan tanpa kabel (nirkabel)

5. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur 6. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser

D. TEORI DASAR 1. Sub Query

Sub query merupakan query yang digunakan dalam sebuah query untuk keperluan tertentu. Sub query biasanya digunakan sebagai sumber data berupa sebuah kumpulan rekord (record set) dari query utamanya, dan bukan menjadi hasil akhir dari perintah query secara keseluruhan. Secara logika, kumpulan rekord (record set) hasil dari sub query menyerupai sebuah tabel utuh yang berdiri sendiri namun tidak secara fisik (tabel maya).

Hasil dari sebuah sub query yang menggunakan perintah SELECT dengan berbagai pilihan field yang berasal satu atau banyak tabel, biasanya diletakkan setelah klausa FROM dari bagian query utamanya. Hal tersebut menunjukkan bahwa hasil dari sub query menjadi sumber data bagi query utamanya.

Sub query bisa tercipta dalam beberapa level kedalaman sub query. Artinya dalam sebuah sub query bisa saja terdapat sub query di dalamnya (sub sub query). Level kedalaman sub query bisa saja tercipta seiring dengan kompleksitas syarat data yang ingin dihasilkan.

2. Objek View

Objek view merupakan tabel virtual (maya) berisi sekumpulan rekord (record set) yang berasal dari satu atau banyak tabel. View sebenarnya adalah sebuah definisi dalam bahasa SQL untuk menghasilkan/melihat sekumpulan rekord (record set) yang berasal dari satu atau banyak tabel. Definisi tersebuat selanjutnya diberi nama atau pelabel. Jika nama atau label tersebut dipanggil maka mesin server database akan menghasilkan sebuah tabel baru yang merupakan tabel maya.

Dengan adanya objek view, maka dari sebuah tabel atau gabungan beberapa tabel akan dapat menghasilkan berbagai macam bentuk informasi sesuai dengan format yang dinginkan. Setiap view yang tercipta, akan dipandang sebagai sebuah tabel tersendiri (walaupun sebenarnya tabel maya). Sehingga hanya dengan cara yang sederhana yaitu dengan memanggil view-nya (SELECT * FROM <view_name>), sebenarnya kita telah melakukan akses data dari satu atau lebih tabel yang terdefinisi dalam view yang dimaksud. Sintak dasar membuat objek view adalah dengan perintah SQL sebagai berikut;

Perintah CREATE digunakan apabila kita akan membuat sebuah objek view baru, sedangkan tambahan perintah OR REPLACE (pilihan/optional), digunakan jika kita akan membuat view baru dan/atau sekaligus merubah definisi dari view yang dimaksud.

Merubah definisi sebuah objek view dapat juga dilakukan dengan memberikan perintah SQL sebagai berikut;

ALTER VIEW <view_name> AS <select_statement>;

Menghapus keberadaan sebuah objek view dapat dilakukan dengan perintah SQL sebagai berikut;

DROP VIEW [IF EXISTS] <view_name>;

Penggunaan perintah tambahan IF EXISTS dalam menghapus sebuah objek view, jika view yang dimaksud tidak ada di dalam database, maka perintah penghapusan tidak dianggap salah.

E. LANGKAH-LANGKAH PRAKTIKUM

Guna membantu pemahaman kita dalam menggunakan nama alias, pengelompokan data dengan perintah GROUP BY dan penyaringan data hasil pengelompokan data dengan perintah HAVING, lakukan beberapa perintah query berikut ini;

a. Melakukan query data dari sebuah Sub Query mysql>SELECT DSN.*,

->FROM ->(

-> SELECT * -> FROM DOSEN

-> WHERE nama_dosen LIKE %A% ->) AS DSN;

mysql>SELECT HASIL.nim, HASIL.nama_mhs, HASIL.nama_ujian, HASIL.nilai ->FROM

->(

-> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, -> H.nilai

-> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> ujian AS U

-> WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND -> (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen) ->) AS HASIL

->WHERE (HASIL.nilai BETWEEN 70 AND 90); b. Membuat dan menghapus objek View

mysql>CREATE VIEW view_hasil AS

-> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, H.nilai -> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> WHERE (M.nim=H.nim) AND (K.kode_mtk=H.kode_mtk)

-> AND (D.kode_dosen=K.kode_dosen); mysql>CREATE OR REPLACE VIEW view_hasil AS

-> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, -> H.nilai

-> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> ujian AS U

-> WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND -> (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen); mysql>SELECT HASIL.nim, HASIL.nama_mhs, HASIL.nama_ujian, HASIL.nilai

->FROM view_hasil;

->WHERE (HASIL.nilai BETWEEN 70 AND 90); mysql>ALTER VIEW view_hasil AS

-> SELECT H.nim, M.nama_mhs, K.nama_mtk, D.nama_dosen, U.nama_ujian, -> H.nilai

-> FROM hsl_ujian AS H, mahasiswa AS M, matakuliah AS K, dosen AS D, -> ujian AS U

-> WHERE (M.nim=H.nim) AND (U.kode_ujian=H.kode_ujian) AND -> (K.kode_mtk=H.kode_mtk) AND (D.kode_dosen=K.kode_dosen);

mysql>DROP VIEW view_hasil;

mysql>DROP VIEW IF EXISTS view_hasil;

F. TUGAS

1. Tampilkan Jumlah Mahasiswa dan Usia Rata-Ratanya untuk tiap jenis kelamin, dari table Mahasiswa.

Format output yang diharapkan

Kelamin Jumlah Usia_Rata2

Laki-Laki ….. ……..

Perempuan ….. ……..

2. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah dan Nilai dari Table Hsl_Ujian, Mahasiswa dan Matakuliah. Data diurutkan berdasarkan Nim

3. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah Nilai Uas, Grade (Nilai Abjad), Bobot, Total (Bobot X Sks) dari Table Hsl_Ujian, Mahasiswa dan Matakuliah. Data diurutkan berdasarkan Nim.

Format output yang diharapkan

Nim Nama Nilai Uas Grade Bobot Total

….. ….. …….. … …. …..

….. ….. …….. … …. …..

Table Grade Nilai & Pembobotan

Nilai Uas Grade Bobot

0 – 45 E 0 46 – 50 D 1 51 – 55 C 2 56 – 65 C+ 2,5 66 – 75 B 3 76 – 80 B+ 3,5 80 – 100 A 4

4. Sama dengan soal no. 3, namun data yang ditampilkan hanya Mahasiswa yang memiliki Nilai C dan C+.

5. Tampilkan Nim, Nama Mahasiswa, Kode Matakuliah, Nama Matakuliah, Sks, Nama Dosen, Nilai Dan Total Nilai (Sks X Nilai) Hanya Untuk Nilai Uts Saja, Dari Table Hsl_Ujian, Mahasiswa, Dosen, Ujian Dan Matakuliah, Yang Nilainya Dibawah Rata-Rata Kelas.

PRAKTIKUM VIII

Dalam dokumen d46b1 modul praktikum sistem basis data (Halaman 68-73)

Dokumen terkait