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.

Macam-Macam Jaringan Komputer

Dilihat secara fisik, jaringan komuter dapat dibedakan menjadi dua yaitu jaringan kabel dan jaringan nirkabel ( wireless network ). Jaringan kabel adalah jaringan komputer yang secara fisik dihubungkan dengan kabel-kabel jaringan. Adapun jaringan nirkabel adalah jaringan komputer yang dihubungkan dengan menggunakan gelombang elektro magnetik. Jika dibandingkan dengan jaringan kabel, jaringan nirkabel memiliki kelebihan karena kemampuannya untuk bergerak. Seiring dengan semakin tingginya mobilitas manusia, jaringan nirkabel merupakan solusi yang tepat sebagai sarana komunikasi. Dengan jaringan nirkabel, akses informasi dapat dilakukan dari mana saja tanpa harus diam pada tempat tertentu. Selain itu, jaringan nirkabel mempunyai kemampuan mengirimkan data dengan lebih cepat dan kemudahan dalam instalasi karena tidak perlu menarik kabel. Oleh karena kemudahan instalasi ini, jaringan nirkabel sering digunakan di sekolah, kampus, bandara, hotel dan restoran atau kafe. Dibalik kelebiha...

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