• Tidak ada hasil yang ditemukan

SELECT …… FROM

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

PENGAKSESAN DATA TABEL

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;

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

Table Jenis Ujiankode_ujian*n ama_ujian Table Matakuliahkode_ mtk*nama_mtksks kode_dosen** Table Hasil Ujiannim**kode_m tk**kode_ujian**nil ai Table Dosenkode_dosen *nama_dosenkela mintmp_lahirtgl_la hiralamat Table Mahasiswanim*na 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;

mysql>SELECT matakuliah.kode_mtk, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen

->FROM matakuliah, dosen

->WHERE dosen.kode_dosen= matakuliah.kode_dosen; mysql>SELECT 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;

mysql>SELECT 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; mysql>SELECT 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

mysql>SELECT matakuliah.kode_mtk, matakuliah.nama_mtk, ->matakuliah.sks, dosen.nama_dosen

->FROM matakuliah, dosen

->WHERE dosen.kode_dosen= matakuliah.kode_dosen; mysql>SELECT 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%”);

mysql>SELECT 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);

mysql>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) AND ->(H.nilai BETWEEN 70 AND 90);

b. Menggunakan nama alias pada judul kolom dan nama tabel dengan AS mysql>SELECT 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;

mysql>SELECT nim, nama_mhs, kelamin, tmp_lahir, tgl_lahir, ->CURRENT_DATE AS tgl_sekarang,

->(YEAR(CURRENT_DATE)-YEAR(tgl_lahir)) AS usia ->FROM mahasiswa;

c. Mengelompokkan data dengan GROUP BY dan menyaring data hasil pengelompokan dengan HAVING

mysql>SELECT MONTH(tgl_lahir) AS bulan_ke, ->MONTHNAME(tgl_lahir) AS nama_bulan, ->COUNT(*) AS jumlah_lahir ->FROM mahasiswa ->GROUP BY nama_bulan ->HAVING jumlah_lahir>1 ->ORDER BY bulan_ke;

mysql>SELECT MONTH(tgl_lahir) AS bulan_ke, ->MONTHNAME(tgl_lahir) AS nama_bulan, ->COUNT(*) AS jumlah_lahir ->WHERE kelamin=”L” ->FROM mahasiswa ->GROUP BY nama_bulan ->HAVING jumlah_lahir>1 ->ORDER BY bulan_ke;

F. TUGAS

1. Tampilkan data Dosen (Usia dan Banyak Dosen) untuk setiap Usia yang Ganjil, urut Usia secara Descending

2. Tampilkan data Dosen (Bulan Lahir dan Banyak Dosen) untuk setiap Bulan Kelahiran yang Genap, urut Bulan Lahir secara Ascending

3. Tampilkan data Hasil Ujian (Kode Ujian, Banyak Mahasiswa dan Jumlah Nilai) dan data Jenis Ujian (Nama Ujian) untuk setiap Jenis Ujian yang Jumlah Nilainya antara 1200 hingga 1300, urut Jumlah Nilai secara Descending

4. Tampilkan data Hasil Ujian (Kode Ujian, Banyak Mahasiswa dan Jumlah Nilai) dan data Jenis Ujian (Nama Ujian) untuk setiap Jenis Ujian yang Nilainya diatas 70 dan Jumlah Nilainya antara 300 hingga 500, urut Jumlah Nilai secara Ascending

5. Tampilkan data Hasil Ujian (Kode Ujian, Banyak Mahasiswa dan Jumlah Nilai) dan data Jenis Ujian (Nama Ujian) untuk setiap Jenis Ujian yang Nilainya antara 70 hingga 95, Jumlah Nilainya antara 300 hingga 500 dan Banyak Mahasiswanya yang Genap, urut Jumlah Nilai secara Descending

6. Tampilkan data Jenis Kelamin dan Total Mahasiswa untuk setiap Jenis Kelamin dari table Mahasiswa, urut Total Mahasiswa secara Ascending

7. Tampilkan data Tempat Lahir dan Total Mahasiswa untuk setiap Tempat Kelahiran dari table Mahasiswa, urut Total Mahasiswa secara Descending

8. Tampilkan data Tahun Lahir dan Total Mahasiswa untuk setiap Tahun Kelahiran dari table Mahasiswa, urut Tahun Lahir secara Ascending

9. Tampilkan data Kode Ujian, Total Mahasiswa untuk setiap Kode Ujian dari table Hasil Ujian, urut Kode Ujian secara Ascending

10.Tampilkan data Kode Ujian dan Total Mahasiswa untuk setiap Kode Ujian dari table Hasil Ujian, urut Kode Ujian secara Ascending

11. Tampilkan data Kode Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian, urut Jumlah Nilai secara Descending

12.Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian, urut Jumlah Nilai secara Descending

13.Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian yang Nilai Ujiannya diatas 70, urut Jumlah Nilai secara Descending

14.Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian yang Nilai Ujiannya diatas 70 dan Total Mahiswanya diatas 3, urut Jumlah Nilai secara Descending

15.Tampilkan data Kode Ujian, Jenis Ujian, Total Mahasiswa dan Jumlah Nilai untuk setiap Kode Ujian dari table Hasil Ujian dan Jenis Ujian yang Nilai Ujiannya antara 70 hingga 95 dan Total Mahasiswanya antara 3 hingga 7, urut Jumlah Nilai secara Descending

PRAKTIKUM VII

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

Dokumen terkait