Pada bagian ketiga ini kita akan mencoba menghitung nilai
total sks dari seluruh mahasiswa, dan kemudian mengkonfersinya menjadi nilai
huruf berupa A, B, C, D dan E.
Untuk menghitung SKS seluruh mahasiswa yang sudah diberi nilai
maka kita menggunakan perintah SUM untuk melakukan penjumlahan SKS matakuliah, perintahnya
adalah :
Select mhs.nim, mhs.nmsiswa, sum(mk.sks) as jum_sks
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim and mk.kodemk=amk.kodemk;
Maha hasilnya adalah :
Ternyata perintah sum(mk.sks) akan menjumlahkan semua data
yang ada di field sks pada table matakuliah dan menampilkan datanya hanya untuk
satu orang mahasiswa, sementara yang kita iginkan adalah jumlah sks yang
diambil oleh masing-masing mahasiswa, bukan satu orang mahasiswa, untuk itu
kita dapat menggunakan perintah GROUP BY sebagai pengelompokan data sesuai
dengan yang diinginkan, maka perintah diatas dirobah menjadi :
Select mhs.nim, mhs.nmsiswa, sum(mk.sks) as jum_sks
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim and mk.kodemk=amk.kodemk
group by mhs.nim;
dan hasilnya adalah sebagai berikut :
Terlihat disini bahwa data sudah dikelompokkan sesuai dengan
yang diinginkan, yaitu masing masing mahasiswa sudah mengambil 12 sks.
Untuk mengetahui sks satu orang mahasiswa untuk tiap
matakuliahnya maka perintahnya adalah sebagai berikut :
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mhs.nim =16010001 and mk.kodemk=amk.kodemk;
hasilnya adalah sbb :
Seandainya kita ingin menampilkan seluruh data mahasiswa
seperti diatas
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mk.kodemk=amk.kodemk;
Hasilnya adalah:
Disini hanya ditampilkan sebagian dari hasilnya karena
mengingat tempat, data tersebut diurut secara otomatis oleh system sesuai
dengan urutan pada table matakuliah, bagaimana caranya agar urutannya
berdasarkan nama mahasiswa, perintahnya adalah sebagai berikut :
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mk.kodemk=amk.kodemk
order by mhs.nim asc;
Perhatikan hasilnya, data sudah diurutkan berdasarkan nim
mahasiswa, tetapi nama makakuliah menjadi kacau balau.
Bagaimana caranya agar nama matakuliah juga diurutkan sesuai
dengan data nama siswa yang ada, berikut perintahnya :
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mk.kodemk=amk.kodemk
order by mhs.nim asc, mk.kodemk asc;
Hasilnya adalah sebagai berikut, disini nim siswa sudah
diurut, ditampilkan dari data yang kecil ke data yang besar, demikian juga nama
mata kuliah, diurut berdasarkan kodenya dimana untuk satu mahasiswa diurutkan
dari kode yang kecil ke kode yang besar, bagaimana caranya agar pengurutan
dimulai dari yang besar ke yang kecil, silahkan praktekkan sendiri.
Sekarang kita akan coba untuk menampilkan nilai dari mata
kuliahnya, perhatikan perintah berikut :
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks, amk.nilai
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mk.kodemk=amk.kodemk
order by mhs.nim asc, mk.kodemk asc;
Hasilnya adalah sebagai berikut:
Pada perguruan tinggi nilai 4 biasanya dibobot dengan A, 3
dibobot dengan B dan 2 dibobot dengan C, 1 dibobot dengan D, dan 0 dibobot dengan
E, untuk itu kita perlu memberi perintah dengan perintah CASE sebagai berikut :
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks,
Case amk.nilai when 4 then 'A'
When 3 then 'B'
When 2 then 'C'
When 1 then 'D'
Else 'E' end
as 'nilai'
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mk.kodemk=amk.kodemk
order by mhs.nim asc, mk.kodemk asc;
Hasilnya adalah sebagai berikut :
Bagaimana kalau yang ditampilkan adalah nilai angka dan
nilai huruf, perintahnya adalah sebagai berikut
Select mhs.nim, mhs.nmsiswa, mk.namamk, mk.sks, amk.nilai,
case amk.nilai when 4 then 'A'
When 3 then 'B'
When 2 then 'C'
When 1 then 'D'
Else 'E' end
as 'Bobot'
from mahasiswa as mhs, matakuliah as mk, ambilmk as amk
where mhs.nim = amk.nim
and mk.kodemk=amk.kodemk
order by mhs.nim asc, mk.kodemk asc;
Hasilnya adalah sebagai berikut :
Sekian dulu untuk saat ini, nanti akan dilanjutkan lagi
dengan materi yang lain semoga bermanfaat untuk kita semua.
Tidak ada komentar:
Posting Komentar