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

Komunikasi dalam Sistem Terdistribusi

Komunikasi adalah suatu proses penyampaian informasi (pesan, ide, gagasan) dari satu pihak kepada pihak lain. Pada umumnya, komunikasi dilakukan secara lisan atau verbal yang dapat dimengerti oleh kedua belah pihak.  Dimana proses komunikasi dapat dilakukan kepada orang, kelompok, organisasi dan masyarakat menciptakan, dan menggunakan informasi agar terhubung dengan lingkungan dan orang lain.Komunikasi memiliki komponen-komponen yang menjadikan komunikasi berjalan dengan baik, komponen tersebut yaitu: Pengirim atau komunikator ( sender ) adalah pihak yang mengirimkan pesan kepada pihak lain. Pesan ( message ) adalah isi atau maksud yang akan disampaikan oleh satu pihak kepada pihak lain. Saluran ( channel ) adalah media dimana pesan disampaikan kepada komunikan. dalam komunikasi antar-pribadi (tatap muka) saluran dapat berupa udara yang mengalirkan getaran nada/suara. Penerima atau komunikate ( receiver ) adalah pihak yang menerima pesan dari pihak lain Umpan balik ( feedbac...

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

Tantangan Pengembangan Sistem Terdistribusi

Beberapa tantangan yang ditemui ketika mengembangkan suatu sistem terdistribusi adalah sebagai berikut : Keberagaman Komponen ( Heterogeneity ) Sistem terdistribusi mampu mendukung berbagai jenis sistem operasi, perangkat keras, dan perangkat lunak. Misalnya, Sister dalam suatu kantor dapat berjalan dengan baik meskipun terdiri dari komputer yang masih baru dan komputer yang sudah lama. Transparasi ( Transparency ) Transparan bagi pemakai, keberadaan beberapa komponen tambak sebagai satu sistem saja. Keterbukaan ( Openness ) Pengembangan sistem terdistribusi yang dilakukan dengan menambahkan komponen-komponen baru dapat dilakukan oleh pihak yang berbeda-beda. Misalnya penambahan program sistem layanan tidak harus dilakukan oleh pihak yang membuatnya. Kebersamaan ( Concurrency ) Apabila terjadi permintaan layanan secara bersamaan, sistem terdistribusi tidak akan kacau. Misalnya permintaan data dari basis data bank dapat dilakukan oleh beberapa teller dalam w...