Sitemap

Basis Data: Sub Query

5 min readMay 13, 2026

--

Press enter or click to view image in full size
gambar 1

Hai! Kali ini aku mau membahas tentang Sub Query dalam SQL. Sub query merupakan sebuah query (perintah SQL) yang disisipkan ke dalam query utama sebagai bagian dari klausa seperti WHERE, FROM, atau SELECT. Sub query memungkinkan user mengeksekusi query yang lebih kompleks.

Sub query digunakan untuk mencapai tujuan tertentu dalam pengambilan data atau manipulasi data yang tidak dapat dicapai dengan hanya query tunggal. Dengan subquery, user bisa menggabungkan data dari beberapa tabel. Terdapat beberapa tipe sub query yaitu:

  1. Multiple column subquery: subquery kolom ganda yang menghasilkan lebih dari satu baris dan satu kolom.
  2. Multiple row subquery: subquery yang menghasilkan lebih dari satu baris data. Biasanya menggunakan operator komprasi IN, ANY, SOME, atau ALL.
  3. Scalar subquery: Menghasilkan nilai tunggal (satu baris dan satu kolom). Sub query baris tunggal biasanya menggunakan operator baris tunggal =, >, ≥, <, ≤, atau <>.

Keuntungan utama dari penggunaan subquery adalah kemampuannya untuk menangani tugas-tugas yang kompleks dengan logika yang lebih rumit dalam manipulasi data. Namun, penggunaan subquery yang berlebihan dapat menyebabkan penurunan kinerja dan kompleksitas.

Tugas

Sebelumnya, saat praktikum aku sudah membuat database bernama subquerysql. Terdapat 3 tabel di dalamnya yaitu tabel mahasiswa, ambil_mk, matakuliah, dosen, dan jurusan.

gambar 2

Dengan rincian strukturnya sebagai berikut:

gambar 3. tabel mahasiswa
gambar 4. tabel matakuliah
gambar 5. tabel jurusan
Press enter or click to view image in full size
gambar 6. tabel dosen
gambar 7. tabel ambil_mk
  1. Dapatkan kode dan nama matakuliah dosen yang menjadi ketua jurusan teknik elektro.

Penjelasan: Query utama mengambil kd_mk dan nama_mk dari tabel matakuliah. Kemudian subquery mengambil kd_dosen dari tabel jurusan. Lalu kd_dosen yang ditemukan tersebut digunakan untuk menampilkan matakuliah yang diajar dosen tersebut.

2. Dapatkan data mahasiswa yang tidak mengambil matakuliah.

Penjelasan: Query utama menampilkan seluruh data mahasiswa. Subquery digunakan mengambil nim dari tabel ambil_mk. NOT IN berguna untuk mencari mahasiswa yang nim-nya tidak terdapat pada daftar ambil_mk.

Get RosifaAulia’s stories in your inbox

Join Medium for free to get updates from this writer.

3. Dapatkan data dosen yang mengajar matakuliah di atas semester 3.

Penjelasan: Query utama menampilkan seluruh data dosen. Subquery mencari mencari kd_dosen yang mengajar semester > 3 dari tabel matakuliah. IN digunakan untuk mencari dosen yang kd_dosen-nya sesuai dengan hasil subquery.

4. Dapatkan data matakuliah dosen yang bukan merupakan ketua jurusan teknik elektro.

Press enter or click to view image in full size

Penjelasan: Query utama menampilkan data matakuliah. Subquery mencari kd_dosen dari tabel jurusan dengan syarat nama_jurusan = teknik elektro. <> digunakan untuk menampilkan matakuliah yang diajar dosen selain ketua jurusan teknik elektro.

5. Dapatkan data dosen pengajar matakuliah yang tidak diambil oleh mahasiswa.

Press enter or click to view image in full size

Penjelasan: Query utama menampilkan data seluruh dosen. Subquery pertama mencari kd_dosen dari tabel matakuliah. Subquery kedua mencari kd_mk yang tidak terdapat pada tabel ambil_mk.

6. Dapatkan data dosen yang mengajar matakuliah dengan sks lebih besar dari sembarang sks.

Press enter or click to view image in full size

Penjelasan: Query utama menampilkan seluruh data dosen. Subquery pertama mengambil kd_dosen yang mengajar matakuliah dengan jumlah sks tertentu. Subquery kedua mengambil sks dari tabel matakuliah. ANY digunakan untuk membandingkan apakah nilai sks lebih besar dari salah satu sks lainnya.

7. Dapatkan data mahasiswa yang tinggal satu wilayah dengan dosen yang bukan merupakan ketua jurusan teknik elektro.

Penjelasan: Query utama menampilkan data mahasiswa. Subquery pertama mencari alamat_dosen yang bukan merupakan ketua jurusan elektro dari tabel dosen. Subquery kedua mencari kd_dosen dengan nama jurusan = teknik elektro dari tabel jurusan. IN digunakan untuk mencari mahasiswa yang memiliki alamat sama dengan dosen tersebut.

8. Dapatkan data mahasiswa yang diajar oleh ketua jurusan teknik elektro.

Press enter or click to view image in full size

Penjelasan: Query utama menampilkan data mahasiswa. Subquery pertama mengambil nim dari tabel ambil_mk. Subquery kedua mengambil kd_mk matakuliah yang diajar oleh ketua jurusan teknik elektro. Subquery ketiga mengambil kd_dosen ketua jurusan elektro dari tabel jurusan.

Okay, that’s all untuk materi subquery. Thank u for reading and see you next time!

--

--