Soal A

A. tampilkan banyaknya SKS yang telah diselesaikan oleh masing

masing mahasiswa

i. bila matakuliah yang diulang semua masuk dalam perhitungan

Dalam hal ini apabila mahasiswa tersebut pernah mengambil matakuliah yang sama, maka SKS matakuliah tersebut akan tetap masuk perhitungan. Mungkin akan terasa sangat sulit bila langsung menulis secara keseluruhan. Ada baiknya kita memecah permasalahan menjadi masalah yang lebih kecil lalu kita selesaikan secara bertahap.

Kita terlebih dahulu menampilkan nim, kodemk dan sks. Dan dari sini kita akan dapat menjumlahkan sks yang diperoleh masing-masing nim.

SELECT peserta.nim, kuliah.kodemk, matakuliah.SKS

FROM matakuliah, kuliah, peserta

WHERE matakuliah.kodemk = kuliah.kodemk

AND kuliah.kodekuliah = peserta.kodekuliah

ORDER BY `peserta`.`nim` ASC

Sehingga akan keluar output,

Ai_help

Pada gambar atas terlihat bahwa S0012 mengambil matakuliah M0011 2 kali. Dari sini terlihat bahwa semua matakuliah yang pernah diambil akan tetap dihitung.

Lalu kita tinggal menjumlahkan sks dari masing-masing nim. Berikut querynya…

SELECT nim, SUM( sks )as jumlah

FROM (

SELECT peserta.nim, kuliah.kodemk, matakuliah.SKS

FROM matakuliah, kuliah, peserta

WHERE matakuliah.kodemk = kuliah.kodemk

AND kuliah.kodekuliah = peserta.kodekuliah

ORDER BY `peserta`.`nim` ASC

) AS M2

GROUP BY nim

Ai

Gambar di atas merupakan hasil dari query tersebut.. Diatas terdapat tulisan AS M2, apa maksudnya. AS digunakan untuk mengaliaskan dan ini memang sudah aturannya. Atau dapat juga langsung ditulis M2 tanpa AS.

————————————————————————————————-

ii. bila matakuliah yang diulang hanya yang sesuai dengan

asumsi yang masuk dalam perhitungan

Hampir mirip dengan soal Ai, hanya saja kini matakuliah yang pernah diambil tidak masuk perhitungan. Jadi umpama Si Budi semester pernah ngambil matakuliah Pancasila yang memiliki 2sks dan semester tiga dia ngambil lagi, maka yang masuk perhitungan ya salah satu saja.. Langsung saja deh querynya, oke?

SELECT peserta.nim, kuliah.kodemk, matakuliah.SKS

FROM matakuliah, kuliah, peserta

WHERE matakuliah.kodemk = kuliah.kodemk

AND kuliah.kodekuliah = peserta.kodekuliah

GROUP BY kuliah.kodemk, peserta.nim

ORDER BY `peserta`.`nim` ASC

Query ini mirip dengan query bantuan di soal Ai, hanya saja kodemk yang muncul dibuat satu kali kemunculan. Bisa juga kita menggunakan “DISTINCT” agar kodemk muncul satu kali. Dan saat query dijalankan, maka outputnya..

Aii_help

Ohya, output yang muncul bukan hanya seperti gambar di atas lho. Ini kan Cuma screenshot agar ada gambaran lah.. klo semua output ditampilkan kan panjang. 😀

Oke,setelah ada view bantuan, kita masuk ke query yang lebih kompleks..

SELECT nim, SUM( sks )

FROM (

SELECT peserta.nim, kuliah.kodemk, matakuliah.SKS

FROM matakuliah, kuliah, peserta

WHERE matakuliah.kodemk = kuliah.kodemk

AND kuliah.kodekuliah = peserta.kodekuliah

GROUP BY kuliah.kodemk, peserta.nim

ORDER BY `peserta`.`nim` ASC

) AS m1

GROUP BY nim

Go.. maka akan ada output

Aii

Nah, kelihatan kan bedanya.. pada query Ai, si S0012 punya 21 sks, di sini dia cuma punya 18 sks. Tanya kenapa? Karena sks matkul M0011 cuma diitung sekali..

Oke, selesai..

Leave a Reply