Database Homework
<!– @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } –>
Setelah hampir 3 jam berkutat di depan computer tepatnya didalam phpmyadmin.. Akhirnya bisa juga nyelesain soal2 dari pak khabib. Soalnya yang begini ini nih:
1. Tampilkan dosen yang pernah mengampu kelas matakuliah yang pesertanya tidak lebih dari 15 mahasiswa.
2 Tampilkan nama mahasiswa yang telah lulus lebih dari 100 SKS
3. Bila kode matakuliah untuk Tugas Akhir adalah ‘M0012’, tampilkan banyaknya siswa yang telah lulus tugas akhir
Yang baru diajar pasti tau permasalahannya… Kita disuruh membuat query untuk menampilkan ketiga hal diatas. Query ini aku selesaikan bersama BIMA ‘sugar’ di mess nya. Padahal kita Cuma dikasih tiga permasalahan. Berarti kalo dirata2 satu soal bisa sampai satu jam… lama banget ya.. maklum newbie
Puas rasanya, karena guru kita ‘PUR’ ga ikut terlibat dalam nyelesain soal2 ini.. meskipun sering menampilkan gambar kayak gini
Tapi akhirnya ketiga querynya berhasil kita buat. Kalo mau download jawabannya yang insyaAllah bener
disini, kalo belum punya soalnya download disini(eh,menyusul ya soalnya belum bisa di upload.. koneksi internet lambat).
Kalo males download ni aku kasih reviewnya
1. Tampilkan dosen yang pernah mengampu kelas matakuliah yang pesertanya tidak lebih dari 15 mahasiswa
Langkah pertama yang harus kita lakukan adalah mengelompokkan dosen berdasarkan kode kuliah yang diampu. Querynya begini:
create view dosenajar as SELECT dosen.nama,kuliah.kodekuliah from dosen,kuliah
Langkah selanjutnya kita hitung jumlah peserta kuliah(berdasarkan nim) yang mengikuti kode kuliah bersangkutan. Querynya begini:
create view jumlahpeserta as select kodekuliah,count(nim) as jumlah from peserta group by kodekuliah
Dan Langkah terakhir kita tinggal menampilkan aja matakuliah yang pesertanya tidak lebih dari 15 mahasiswa yang Querynya Begini:
select dosenajar.nama from dosenajar,jumlahpeserta where jumlah<15 kodekuliah=”jumlahpeserta.kodekuliah”>
Dan hasilnya nanti matakuliahnya akan tampil semua, karena emang datanya yang peserta matakuliahnya di setiap kode kuliah ada 10.
2 Tampilkan nama mahasiswa yang telah lulus lebih dari 100 SKS
Langkah pertama yaitu mengelompokkan dahulu ‘nim,kodekuliah,kodemk,dan sks’ jadi satu table dengan create view. Karena ini akan berguna di perintah2 query selanjutnya. Begini Querynya:
create view gabungsks as SELECT peserta.nim, peserta.kodekuliah, kuliah.kodemk, matakuliah.sks FROM peserta, matakuliah, kuliah WHERE peserta.kodekuliah = kuliah.kodekuliah AND matakuliah.kodemk = kuliah.kodemk ORDER BY nim
Langkah kedua kita jumlah sks berdasar kan nim setiap mahasiswanya.Seperti biasa di create view dlu biar lebih mudah di langkah selanjutnya. Gini nih Querynya:
create view jmlsks as select nim,sum(sks) as jumahsks from gabungsks group by nim
Langkah ketiga kita kelompokkan lagi dimana mahasiswa yang sudah menyelesaikan lebih dari 100 sks. Berdasarkan NIM. Begini Querynya:
create view as sks100 select nim from jmlsks where jumahsks>100
Dan langkah terakhir, tinggal kita gabungkan aja syarat kelulusan nya dimana nilai ga boleh ‘E’ dengan table sks100 diatas, begini querynya
select nama from sks100,peserta,mahasiswa where nilai=’A’ or nilai=’B’ or nilai=’C’ or nilai=’D'and mahasiswa.nim=sks100.nim=peserta.nim group by nama
Dan hasilnya… Tidak ADA!!! Jangan panic.. karena lagi-lagi emang datanya yang menyatakan tidak ada mahasiswa yang menyelesaikan lebih dari 100 sks.
3. Bila kode matakuliah untuk Tugas Akhir adalah ‘M0012’, tampilkan banyaknya siswa yang telah lulus tugas akhir
Langkah pertama kita mengelompokkan data2 yang menyatakan mahasiswa yang sudah mengikuti matakuliah dengan kode M0012 sperti yang diminta pada soal.
create view pesertata as select mahasiswa.nama, mahasiswa.nim from peserta,matakuliah,kuliah,mahasiswa where matakuliah.kodemk=’M0012′ and peserta.kodekuliah=kuliah.kodekuliah and matakuliah.kodemk=kuliah.kodemk and mahasiswa.nim=peserta.nim order by nama
setelah itu kita masukkan syarat kelulusannya. Dan buat tabel view baru.
create view mhsta as select nama from pesertata, peserta where nilai=’a’ or nilai=’b’ or nilai=’c’ or nilai=’d’ and peserta.nim=pesertata.nim group by nama
Dan langkah terakhir tinggal kita hitung aja jumlah nama yang udah ditampilin di tabel view sebelumnya
select count(nama) as jumlahlulusTA from mhsta
jadi begitu seluruh Querynya.. Query ini sudah kita uji dan menampilkan output yang sesuai degan yang kita inginkan. Tapi mungkin Query ini masih ada yang salah dan tidak sesuai dengan soal.. Jadi tolong sambil dikoreksi juga Querynya.. Semoga Bermanfaat..










