Senin, 30 Oktober 2017

Relasi Tabel (Bagian Ketiga).



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