Perintah SQL (SELECT) untuk Multi Tabel (Bag. 2)
July 3rd, 2008 | by rosihanari |
Cetak Artikel
OK… artikel ini merupakan kelanjutan dari artikel sebelumnya. Kalau Anda belum membaca artikel sebelumnya, coba bacalah terlebih dahulu karena artikel ini terkait erat.
Dalam artikel ini akan kita bahas pertanyaan no. 3 dan 4.
Adapun pertanyaan no. 3Â adalah bagaimana perintah SQL untuk menampilkan IPK dari mahasiswa berNIM ’003′?
Untuk membuat SQL dari query di atas, lagi-lagi langkah pertama adalah menentukan di tabel mana kita akan bekerja. Apabila Anda perhatikan, maka tabel yang dipilih adalah mk dan ambilMK. Mengapa demikian? Tabel mk digunakan untuk mengambil informasi terkait dengan sks matakuliah yang diambil mahasiswa dan tabel ambilMK berisi informasi daftar matakuliah yang diambil mahasiswa.
Nah… , setelah Anda menentukan tabel yang digunakan, selanjutnya Anda harus tahu formula untuk menghitung IPK. Apa rumusnya? yaitu jumlah dari perkalian sks dan nilai yang diambil mahasiswa dibagi dengan jumlah sks yang diambil mahasiswa.
OK begitu Anda tahu rumusnya, langsung dapat diimplementasikan ke SQL, yaitu
SELECT sum(ambilMK.nilai * mk.sks)/sum(mk.sks) as IPK FROM ambilMK, mk WHERE ambilMK.kodeMK = mk.kodeMK AND ambilMK.nim = '003';
Dari SQL di atas, Anda akan memperoleh hasil IPK mhs bernim ’003′ adalah 3.5
Hikmah dari contoh kasus pencarian IPK ini adalah, apabila Anda membuat sistem untuk pencatatan nilai siswa seperti sistem informasi akademik dan sejenisnya, sebaiknya data IP atau IPK jangan disimpan dalam tabel, melainkan melalui proses query. Apabila data IP atau IPK tersimpan ke dalam tabel, maka kemungkinan terjadi ketidakkonsistenan data semakin besar. Bisa jadi IP atau IPK yang tersimpan di tabel berbeda dengan kenyataan berdasarkan nilai-nilai matakuliah yang diperoleh siswa. Lagipula jika data-data IP dan IPK disimpan dalam tabel, maka hanya akan menambah penuh database Anda
OK… selanjutnya akan kita bahas untuk pertanyaan no. 4, yaitu bagaimana statement SQL untuk menampilkan nim, nama dan nilai IPK semua mahasiswa.
Nah… kalau pertanyaan ini, kita harus menggunakan semua tabel, yaitu mhs, mk dan ambilMK.Tabel mhs diperlukan karena untuk menampilkan nama mahasiswa, bisa juga untuk nim. Tapi nim juga dapat ditampilkan melalui tabel ambilMK.
Bagaimana statement SQL nya?
SELECT mhs.nim, mhs.namaMhs,Â
sum(ambilMK.nilai * mk.sks)/sum(mk.sks) as IPK
FROM mhs, ambilMK, mk
WHERE mhs.nim = ambilMK.nim AND ambilMK.kodeMK = mk.kodeMK
GROUP BY mhs.nim
Mengapa harus ada perintah GROUP BY mhs.nim? Hal ini karena perhitungan IPK dapat dilakukan setelah data dikelompokkan berdasarkan nim, mengingat seorang mahasiswa dapat mengambil matakuliah lebih lebih dari satu.
| Baca Juga Artikel Terkait |
Kata kunci:




bagaimana klo menggunakan join??
mas, kalau menampilkannya dalam bentuk file php skripsinya gmn mas,……oh y mbak amalia kudusnya sblh mn ya,……sebelumnya makasih mas,……….
to debi: skripsi gimana mbak maksudnya? emang kenal sama mbak amalia?
Inilah ilmu yang berkembang dan berbuah menjadi ide-ide yang positip. Buat saya blog ini sungguh sangat memberi motivasi, Terima kasih Pak. Semoga ilmu Bapak dapat saya tularkan lagi ke anak didik saya.
@adhi: alhamdulillah… silakan saja pak…
mas saya mo tnya gmana ya carana menampilkan biodata dan nilai seorang siswa yang sebelumnya telah login di login siswa dan bukan semua siswa? plis tolong saya untuk mengatasinya. untuk skripsi saya nih. thanx.
@nendy: caranya setelah si siswa login dengan NIS nya, selanjutnya NIS nya disimpan di session, nah untuk setiap script yang menampilkan data si siswa gunakan NIS yang tersimpan di session tsb.
mau tanya bagamana cara input data ke lebih dari 1 table (2 ato lebih), mohon petunjuk…
trimakih sebelumnya …
@guna: bisa menggunakan multiple query insert.
INSERT INTO tabel1 VALUES (…);
INSERT INTO tabel2 VALUES (…);
setiap query diakhiri dengan tanda ;
Assalamu Alaikum,,,, pak saya pengen tau nih gimana caranya untuk bisa menampilkan n membuat relasi 3 tabel dengan primary key yang berbeda tolong yah pak penting banget nih buat skripsi saya>>>085247599188<<<kalo2 koment saya ini dibalas.
assalamu’alaikum wr. wb
ikutan ganggu mas, sy mau hitung IPK, tapi matakuliah ulang tidak terakumulasi semua hanya yang nilainya tertinggi saja yang diakumulasi. mohon sangat bantuannya ya mas tuk pekerjaan saya ini. maaf. nuwun.
wassalamu’alaikum wr. wb
bang klo misal aku punya 2 databased.. yang formatnya sama. klo mau gabungin 2 file.sql jd 1 file.sql.. gmn caranya ya bang… makasih bang sebelumnya.. . .
@dani: format apanya yg sama ya?