LATAR BELAKANG TUJUAN ALAT-ALAT DAN BAHAN YANG DIGUNAKAN LANGKAH-LANGKAH PRAKTIKUM

PRAKTIKUM VI PENGAKSESAN DATA TABEL

A. LATAR BELAKANG

Pada praktikum sebelumnya, telah dilakukandiujicobakan beberapa perintah dasar pengaksesan data dari sebuah objek Tabel, yang meliputi: SELECT, FROM, WHERE dan ORDER BY, ditambah lagi dengan penggunaan beberapa operator dan kombinasinya OR, AND, NOT, LIKE, BETWEEN dsb.. Untuk memenuhi kebutuhan akan informasi tertentu, terkadang dibutuhkan suatu format lapoan dalam bentuk terakumulasi rekapitulasi berdasarkan kriteria tertentu. Perintah yang dapat memenuhi hal tersebut adalah dengan perintah GROUP BY dan HAVING. Guna membantu pemahaman kita mengenai penggunaan perintah-perintah MySQL lanjutan tersebut, maka kita dapat mengoptimalkan penggunaan database ujimhsdb yang telah kita buat sebelumnya.

B. TUJUAN

Kompetensi yang diharapkan dapat tercapai setelah melakukan praktikum ini adalah mahasiswa dapat melakukan query data dari beberapa tabel dengan menggunakan perintah- perintah SELECT …… FROM …… WHERE …… GROUP BY …… HAVING …… ORDER BY ……

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; Modul Praktikum Sistem Basis Data .............................................................................. 61 1. 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 2. LCD viewer, whiteboard dan spidol sebagai media presentasi instruktur 3. Software aplikasi MySQL Server 5.0 keatas, MySQL Query Browser

D. TEORI DASAR 1.

Menampilkan Data dari Banyak Tabel Menampilkan data dari dua tabel atau lebih, mensyaratkan adanya relasi keduanya antar table-table yang dimaksud. Guna memperjelas teori tersebut, marilah kita lihat skema database ujimhsdb berikut; Berdasarkan skema tersebut, kita dapat menampilkan data dari table Hasil Ujian, Jenis Ujian, Mahasiswa dan table Matakuliah secara bersamaan, atau kita juga dapat menampilkan data dari table Matakuliah dan table Dosen secara bersamaan. Hal tersebut dimungkinkan karena setiap table yang dimaksud mempunyai hubungan relasi secara langsung berkaitan secara logika, sebagaimana digambarkan pada skema tersebut. Adanya relasi kedua table yang biasanya ditandai oleh adanya field yang identik baik nama, type data, ukurannya maupun maksud peruntukannya, memungkinkan kita untuk menampilkan data dari keduanya. Sebaliknya, bila tidak ada relasi secara langsung, maka kita tidak dapat menampilkannya. Misalnya antara table Mahasiswa dengan table Dosen Modul Praktikum Sistem Basis Data .............................................................................. 62 Table Jenis Ujiankode_ujiann ama_ujian Table Matakuliahkode_ mtknama_mtksks kode_dosen Table Hasil Ujiannimkode_m tkkode_ujiannil ai Table Dosenkode_dosen nama_dosenkela mintmp_lahirtgl_la hiralamat Table Mahasiswanimna ma_mhskelamintm p_lahirtgl_lahirala mat Database Hasil Ujian Mahasiswa Keterangan : Primary Key Foreign Key atau antara table Jenis Ujian dengan table Matakuliah. Untuk lebih jelasnya cobalah contoh berikut; mysqlSELECT matakuliah.kode_mtk, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen -FROM matakuliah, dosen -WHERE dosen.kode_dosen= matakuliah.kode_dosen;  mysqlSELECT matakuliah.kode_mtk, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen -FROM matakuliah, dosen -WHERE dosen.kode_dosen=matakuliah.kode_dosen -AND dosen.nama_dosen LIKE “in”;  Perintah pertama hanya terdapat 1 syarat, yaitu syarat relasi; WHERE dosen.kode_dosen=matakuliah.kode_dosen;  Namun pada perintah kedua sudah terdapat 2 syarat, yaitu syarat relasi dan syarat penyaringan filter data, yaitu hanya untuk dosen yang namanya berawalan “in”; WHERE dosen.kode_dosen=matakuliah.kode_dosen AND dosen.nama_dosen LIKE “in”;  pada syarat kedua inilah, kita dapat mengkombinasikan berbagai operator yang ada sebagai syarat penyaringan filtering data, sehingga data yang tampil sesuai dengan yang kita harapkan. Bagaimana bila yang direlasikan lebih dari dua table?, misalnya akan menampilkan data dari table Hasil Ujian, Jenis Ujian, Mahasiswa, Matakuliah dan table Dosen sekaligus. Hal yang perlu diperhatikan dalam merelasikan dua table atau lebih, adalah bagaimana kita menentukan table acuan, yang bertindak sebagai penyedia data dasar acuan bagi table yang berelasi. Biasanya yang menjadi table acuan adalah table transaksional yaitu tabel yang mengandung kunci tamu foreign key dan bukan table master yang hanya mengandung kunci utama primary key. Kalau kita lihat skema database ujimhsdb, maka yang paling layak menjadi table acuan adalah table hsl_ujian. 2. Menggunakan Nama Alias pada Kolom dan Tabel Nama alias dapat digunakan sebagai pengganti judul kolom atau pengganti nama table. Penggantian judul kolom mapun nama table, biasanya bertujuan untuk memperjelas ataupun memperpendek penyebutan judul kolom maupun nama table. Contoh berikut menunjukkan penggunaan nama alias pada judul kolom dan nama tabel; Modul Praktikum Sistem Basis Data .............................................................................. 63 mysqlSELECT matakuliah.kode_mtk AS “Kode Matakuliah”, -matakuliah.nama_mtk AS “Nama Matakuliah”, -matakuliah.sks AS “SKS”, dosen.nama_dosen AS “Nama Dosen” -FROM matakuliah, dosen -WHERE dosen.kode_dosen = matakuliah.kode_dosen;  mysqlSELECT mtk.kode_mtk, mtk.nama_mtk, -mtk.sks, dsn.nama_dosen -FROM matakuliah AS mtk, dosen AS dsn -WHERE dsn.kode_dosen = mtk.kode_dosen; 

3. Menggunakan perintah GROUP BY dan HAVING

Perintah GROUP BY digunakan untuk mengelompokkan data berdasarkan kriterian tertentu. Pengelompokan data dilakukan untuk menemukan hasil-hasil aggregasi seperti mencari total jumlah, banyaknya data dan nilai rata-rata dengan suatu kriteria. Perintah HAVING digunakan untuk melakukan penyaringan data data filtering terhadap data hasil pengelompokan data. Penyaringan data terhadap data hasil pengelompokan data tidak dapat dilakukan dengan perintah WHERE. Perintah WHERE walau tidak secara khusus digunakan untuk menyaring data, namun WHERE dapat digunakan sebagai alat penyortir data sebelum dilakukannya proses grouping. Sedangkan perintah HAVING memang secara khusus diperuntukkan sebagai alat penyortir data hasil Grouping

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. Menyatakan relasi antar tabel dengan WHERE mysqlSELECT matakuliah.kode_mtk, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen -FROM matakuliah, dosen -WHERE dosen.kode_dosen= matakuliah.kode_dosen;  mysqlSELECT matakuliah.kode_mtk, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen -FROM matakuliah, dosen -WHERE dosen.kode_dosen=matakuliah.kode_dosen -AND dosen.nama_dosen LIKE “in”;  Modul Praktikum Sistem Basis Data .............................................................................. 64 mysqlSELECT hsl_ujian.nim, mahasiswa.nama_mhs, matakuliah.nama_mtk, -matakuliah.sks, dosen.nama_dosen, ujian.nama_ujian, hsl_ujian.nilai -FROM hsl_ujian, mahasiswa, matakuliah, dosen, ujian -WHERE mahasiswa.nim=hsl_ujian.nim -AND matakuliah.kode_mtk=hsl_ujian.kode_mtk -AND ujian.kode_ujian=hsl_ujian.kode_ujian -AND dosen.kode_doesn=matakuliah.kode_dosen;  mysqlSELECT 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 AND -H.nilai BETWEEN 70 AND 90; b. Menggunakan nama alias pada judul kolom dan nama tabel dengan AS mysqlSELECT mtk.kode_mtk AS “Kode Matakuliah”, -mtk.nama_mtk AS “Nama Matakuliah”, -mtk.sks AS “SKS”, dsn.nama_dosen AS “Nama Dosen” -FROM matakuliah AS mtk, dosen AS dsn -WHERE dsn.kode_dosen= mtk.kode_dosen;  mysqlSELECT nim, nama_mhs, kelamin, tmp_lahir, tgl_lahir, -CURRENT_DATE AS tgl_sekarang, -YEARCURRENT_DATE-YEARtgl_lahir AS usia -FROM mahasiswa;  c. Mengelompokkan data dengan GROUP BY dan menyaring data hasil pengelompokan dengan HAVING mysqlSELECT MONTHtgl_lahir AS bulan_ke, -MONTHNAMEtgl_lahir AS nama_bulan, -COUNT AS jumlah_lahir -FROM mahasiswa -GROUP BY nama_bulan -HAVING jumlah_lahir1 -ORDER BY bulan_ke;  mysqlSELECT MONTHtgl_lahir AS bulan_ke, -MONTHNAMEtgl_lahir AS nama_bulan, -COUNT AS jumlah_lahir -WHERE kelamin=”L” -FROM mahasiswa -GROUP BY nama_bulan -HAVING jumlah_lahir1 -ORDER BY bulan_ke;  Modul Praktikum Sistem Basis Data .............................................................................. 65

F. TUGAS 1. Tampilkan data Dosen Usia dan Banyak Dosen untuk setiap Usia yang Ganjil, urut