Skip to main content

Subquery

Di dalam syntax query terkadang terdapat syntax query lagi. Inilah yang disebut dengan subquery.
Contoh :
select mhs.namaMhs,ambilmk.nilai
from mhs,ambilmk
where mhs.nim=ambilmk.nim and ambilmk.kodeMK=’A02’ and
ambilmk.nilai=(select max(nilai) from ambilmk);

dari contoh di atas yang disebut sebagai subquery adalah syntax (select max(nilai) from ambilmk)

biasanya subquery dapat diimplementasikan dalam penyelesaian masalah dimana nilainya belum diketahui. Berikut ini implementasi dari subquery. Yang dilakukan pertama kali adalah membuat 3 tabel yaitu tabel mhs, tabel mk dan tabel ambilmk. Berikut ini syntax SQL untuk membuat ketiga tabel tersebut :
create table mhs (nim varchar (10),namaMhs varchar (30));
create table mk (kodeMK varchar(10),namaMK varchar (30),sks int (5));
create table ambilmk(nim varchar (10),kodeMK varchar(10),nilai int (5));

setelah membuat tabel, langkah kedua yaitu mengisi tabel tersebut, berikut syntax untuk memasukkan data ke tabel tersebut

insert into mhs values (‘001’,’Andi’), ('002’,’Beny’), ('003’,’Cindi’);
insert into mk values (‘A01’,’PBO’,’2’), (‘A02’,’SBD’,’2’), (‘A03’,’Statistika’,’2’);
insert into ambilmk values (‘001’,’A01’,’3’), (‘001’,‘A02’,’4’), (‘001’,’A03’,’2’), (‘002’,‘A02’,’3’), (‘002’,’A03’,’2’), (‘003’,‘A01’,’4’), (‘003’,’A02’,’3’), (‘003’,‘A03’,’3’);
 

misal terdapat persoalan yang meminta untuk menampilkan :
1.      Nama mahasiswa beserta nilai mata kuliahnya yang memiliki nilai paling rendah pada mata kuliah SBD
2.      Nama mahasiswa beserta NIM yang nilainya di bawah rata-rata pada matakuliah statistika
3.      Nama mahasiswa beserta NIM-nya yang tidak mengambil mata kuliah PBO

Untuk menyelesaikan masalah pertama dapat dilakukan dengan cara menggunakan subquery sebagai berikut
select mhs.namaMhs,ambilmk.nilai
from mhs,ambilmk
where mhs.nim=ambilmk.nim and ambilmk.kodeMK='A02'
and ambilmk.nilai=(select min(nilai) from ambilmk);
subquery (select min(nilai) from ambilmk) digunakan untuk memberi nilai pada query yang berada dilevel di atasnya dengan nilai terendah mahasiswa yang mengambil matakuliah dengan kodeMK A02

Untuk menyelesaikan masalah kedua dapat dilakukan dengan cara menggunakan subquery sebagai berikut
select mhs.namaMhs,ambilmk.nilai
from mhs,ambilmk
where mhs.nim=ambilmk.nim and ambilmk.kodeMK='A03'
and ambilmk.nilai>(select avg(nilai) from ambilmk);
Subquery (select avg(nilai) from ambilmk) digunakan utnuk memberi nilai pada query yang berda di level di atasnya dengan nilai rata-rata dari nilai mahasiswa yang mengambil mata kuliah dengan kodeMK A03

Untuk menyelesaikan masalah ketiga dapat dilakukan dengan cara menggunakan subquery sebagai berikut
select * from mhs
where nim not in (select nim from ambilmk where kodemk='A01');
Pada query utama digunakan untuk menampilkan seluruh mahasiswa. Sedangkan subquery digunakan untuk menampilkan mahasiswa yang mengambil matakuliah dengan kodeMK A01.
Karena didalam klausa where terdapat not in maka yang akan ditampilkan adalah mahasiswa yang tidak mengambil mata kuliah dengan kodeMK A01.

Comments

Popular posts from this blog

Transformasi Model Data

Di dalam basis data terdapat dua jenis varian entitas yaitu : Entitas kuat Yaitu suatu entitas yang dihubungkan dalam ERD (Entity Relationship Diagram) yang tidak tergantung terhadap entitas lain. Entitas lemah Yaitu suatu entitas yang tergantung terhadap entitas yang lain serta tidak memiliki atribut yang dapat dijadikan key attribute Agregasi Yaitu suatu gambaran dari suatu relasi yang menghubungkan entitas dengan himpunan relasi dalam ERD secara langsung.

Intranet

1.       Pengertian Intranet Intranet merupakan sebuah jaringan komputer yang dibangun dengan mengadopsi teknologi Internet. Di dalam Intranet terdapat aplikasi web dan teknologi komunikasi data. Dari segi jangkauan, Intranet dapat bekerja secara luas dan maksimal seperti layaknya Internet. Namun, penggunaan Intranet sangat terbatas dari segi privasi dan hak akses pemakainya. Aplikasi dan informasi Intranet ditujukan untuk kalangan dalam organisasi tertentu, berbeda dengan informasi dari situs Internet yang ditujukan untuk kalangan umum. Sistem Intranet mudah untuk dipelajari, diterapkan,dikembangkan, dan dikonfigurasi ulang. Perkembangan di dunia Internet dapat diimplementasikan di dalam Intranet sehingga Intranet dapat berkembang pesat sejalan dengan perkembangan Internet. Dukungan sistem operasi, aplikasi, dan program yang luas akibat dari popularitas Internet menjadikan Intranet sebagai masa depan dari LAN. 2.       Peng...

Apa itu Ultrasurf?

  Ultrasurf merupakan suatu perangkat lunak yang bersifat freeware yang memungkinkan penguna untuk mengunjungi situs-situs web yang diblokir. Software ini juga dapat melindungi kegiatan berinternet pengunanya, hal ini dimungkinkan karena ultrasurf menerapkan enkripsi yang tinggi sehingga pengguna dapat berinternet dengan bebas dan aman. Pada prinsipnya Ultrasurf merupakan sebuah aplikasi yang menyediakan multiple web proxy yang sangat cocok untuk digunakan ketika melakukan browsing di internet. Dengan menggunakan aplikasi ini alamat IP yang digunakan pada saat browsing akan digantikan oleh alamat IP yang memang sudah diseting pada ultrasurf. Prinsip kerja dari Ultrasurf hampir menyerupai prinsip kerja tunnel. Berikut ini adalah kelebihan dan kekurangan ultrasurf