Anda di halaman 1dari 9

LAPORAN PRAKTIKUM 8 KONSEP BASIS DATA PENGENALAN DATABASE MYSQL

DISUSUN OLEH : HANIFAH FEBRIA MAHATRISNA M3111074 D3 TEKNIK INFORMATIKA B

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN UNIVERSITAS SEBELAS MARET SURAKARTA 2012

TI-B_M3111074_laporan_ke_8

Page 1

DASAR TEORI SQL Subquery Subquery atau query batin atau query Bersarang adalah query dalam query. Sebuah subquery biasanya ditambahkan dalam Klausul MANA pernyataan sql. Sebagian besar waktu, subquery digunakan ketika Anda tahu bagaimana mencari nilai menggunakan perintah SELECT, tetapi tidak tahu nilai yang tepat. Subqueries adalah cara alternatif untuk kembali data dari beberapa tabel. Subqueries dapat digunakan dengan laporan sql berikut bersama dengan operator perbandingan seperti =, <,>,> =, <= dll

PILIH INSERT UPDATE DELETE

Menampilkan field dari tabel - tabel yang berbeda SELECT mahasiswa.nama, kuliah.nilai FROM mahasiswa, kuliah WHERE mahasiswa.nim= kuliah.nim

SQL tidak hanya menyediakan mekanisme query dan operasi modifikasi database saja, tetapi SQL juga menyediakan mekanisme untuk menggabungkan(join) relasi-relasi. Saat data yang dibutuhkan berasal lebih dari satu table, maka kondisi join dibutuhkan. Umumnya dalam men-join table berdasarkan pada kolom yang bersesuaian PrimaryKey dari table-1dengan Foreign Key dari table-2, atau yang disebut dengan join atau equi-join. Kondisi Join meliputi: -Equijoin(Inner Join atauSimple Join) -Non-Equijoin-Outer Join (Left Outer Join & Right Outer Join)-Self Join Join / Equijoin atau biasa disebut sebagai InnerJoin atau Simple Join adalah bentuk kondisi join dimana nilai relasi yang terjadi antar dua table (binary relation) adalah sama (terdapat hubungan antara Primary KeydanForeign Key) Non Equijoin adalah kondisi join yang terkadang tidak mengandung operator sama dengan(=). Outer Join adalah bentuk kondisi join untuk mencari nilai join yang memenuhi dari keduatable, plus nilaiyang tidak memenuhi dari salah satu sisi table tersebut.
TI-B_M3111074_laporan_ke_8 Page 2

Left Outer Join adalah bentuk join dimana data pada sisi kiri table tidak sempurna/ lengkap (yang bertanda(+)) dan akan tertambahkan (dilengkapi) dengan data yang berasal dari sisi kanan table. Query akan mendapatkan hasil join semua row yang match (antara table 2 dan table1) plus row data dari table 1 yang tidak match. Right Outer Join adalah bentuk join dimana data pada sisi kanan table tidak sempurna/ lengkap (yang bertanda (+) ) dan akan tertambahkan (dilengkapi) dengan data yang berasal dari sisi kiri table. Query akan mendapatkan hasil join semua row yang match (antaratable2 dantable1) plus row data dari table 2 yang tidak match. TUJUAN : 1. Lebih memahami implementasi dari perintah select beberapa field pada table yang berbeda. 2. Lebih memahami perintah join, count 3. Mempelajari nested query 4. Mempelajari nested query

TI-B_M3111074_laporan_ke_8

Page 3

LANGKAH KERJA

1. Tampilkan hari terbanyak perkuliahannya di jadwal anda CARA PERTAMA :

Select jadwal_hari, a.jml from(select jadwal_hari, count(jadwal_hari) as jml from jadwal_kuliah where jadwal_kelas=2 group by jadwal_hari) a where jml=(select max(a.jml) as jumlah from (select jadwal_hari, count(jadwal_hari) as jml from jadwal_kuliah where jadwal_kelas=2 group by jadwal_hari) a);

Select jadwal_ruang, a.jml from(select jadwal_ruang, count(jadwal_ruang) as jml from jadwal_kuliah where jadwal_kelas=2 group by jadwal_ruang) a where jml=(select max(a.jml) as jumlah from (select jadwal_ruang, count(jadwal_ruang) as jml from jadwal_kuliah where jadwal_kelas=2 group by jadwal_ruang) a);

CARA KEDUA

2. Tampilkan hari yang paling sedikit perkuliahannya dikelas anda Select jadwal_hari, a.jml from(select jadwal_hari, count(jadwal_hari) as jml from jadwal_kuliah where jadwal_kelas=2 group by jadwal_hari) a where jml=(select min(a.jml) as jumlah from (select jadwal_hari, count(jadwal_hari) as jml from jadwal_kuliah where jadwal_kelas=2 group by jadwal_hari) a);
TI-B_M3111074_laporan_ke_8 Page 4

CARA PERTAMA :

CARA KEDUA :

3. Tampilkan ruang yang paling banyak digunakan.

4. Tampilkan ruang yang paling sedikit digunakan.

TI-B_M3111074_laporan_ke_8

Page 5

5. Tampilkan informasi ruang tidak digunakan di tiap harinya.

6. Tampilkan informasi jam-jam tidak ada perkuliahan di tiap harinya di kelas anda.

PEMBAHASAN 1. Menampilkan hari perkuliahan terbanyak di jadwal anda : Cara pertama dengan perintah alias. Mengetikkan perintah seperti di bawah :

Cara kedua dengan having count mengetikkan perintah seperti di bawah.

Hasilnya sebenarnya sama saja hanya perbedaannya yang cara kedua menampilkan nama hari nya dan jumlah sesi yang ada tetapi di cara pertama hanya langsung jumlah sesinya dan jadwal_hari (id harinya). 2. Tampilkan hari yang paling sedikit perkuliahannya dikelas anda
TI-B_M3111074_laporan_ke_8 Page 6

Menggunakan alias juga seperti pada nomor satu.

3. Tampilkan ruang yang paling banyak digunakan. Menggunakan join dengan table ruang dan jadwal_kuliah kemudian digroup by dengan ruang_no berdasarkan jumlah terbesar. Perintahnya : select ruang_nama,count(jadwal_matakuliah) from jadwal_kuliah JOIN ruang ON ruang_no = jadwal_ruang group by ruang_no order by count(jadwal_matakuliah) desc limit 1;

4. Tampilkan ruang yang paling sedikit digunakan. Menggunakan table jadwal_kuliah, ruang dan dihitung dengan count. Perintahnya : select ruang_nama,count(jadwal_matakuliah) from jadwal_kuliah JOIN ruang ON ruang_no = jadwal_ruang group by ruang_no order by count(jadwal_matakuliah) asc limit 1;

5. Tampilkan informasi ruang tidak digunakan di tiap harinya. Menggunakan table ruang, jadwal_kuliah kemudian menggunakan kondisi where.select ruang_nama from ruang where ruang_no not in (select jadwal_ruang from ruang, jadwal_kuliah where jadwal_ruang=ruang_no);

TI-B_M3111074_laporan_ke_8

Page 7

6. Tampilkan informasi jam-jam tidak ada perkuliahan di tiap harinya di kelas anda. Menggunakan table sesi, jadwal_kuliah dan juga menggunakan right join serta having count untuk kondisinya.

KESIMPULAN 1. Right join untuk menampilkan semua data yang ada walaupun kosong (NULL) 2. Dalam menggabungkan field dari beberapa table bisa menggunakan joinon.where atau bisa juga menggunakan whereand.dst 3. Order by digunakan untuk mengurutkan berdasarkan field yang dikehendaki ataupun untuk mengurutkan secara ascending dan descending. 4. Select untuk menyeleksi field-field yang akan ditampilkan apa saja. 5. Count untuk menjumlahkan record sesuai criteria. 6. Group by untuk mengelompokkan data menurut field tertentu jadi data yang tidak ada isinya juga bisa tampil. 7. Nested Query adalah query di dalam query, untuk menampilkan data yang berada pada table yang berbeda dan query berbeda dengan kondisi.

TI-B_M3111074_laporan_ke_8

Page 8

DAFTAR PUSTAKA
1. http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://dev.mysql.com/doc

/refman/5.0/en/subqueries.html 2. http://student.eepis-its.edu/~giant/Latihan%20DB2%20PJJ/Week-13_DB1%20%28SQLOperasi%20Join-Student%29.pdf
3. http://kolu.web.id/forum/archive/index.php/t-174.html 4. http://beginner-sql-tutorial.com/sql-subquery.htm

TI-B_M3111074_laporan_ke_8

Page 9