Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio

SQL Subquery: Cara Menggunakan Query di Dalam Query dengan Contoh Praktik

  • September 15, 2026
  • oleh Maulana Aldi Pradana

📘 Apa yang Akan Dipelajari?

Pada artikel ini kita akan belajar:

  • Apa itu SQL Subquery
  • Kapan Subquery dibutuhkan
  • Struktur dasar Subquery
  • Menggunakan fungsi agregasi seperti AVG() dan MAX()
  • Menggunakan Subquery dengan WHERE
  • Praktik Subquery menggunakan SQLite
  • Menampilkan hasil query menggunakan Python dan Pandas
  • Kesalahan yang sering dilakukan saat menggunakan Subquery

Pendahuluan

Saat melakukan analisis data menggunakan SQL, terkadang satu query saja belum cukup untuk menjawab kebutuhan analisis. Ada kondisi ketika hasil dari sebuah query perlu digunakan sebagai dasar untuk menjalankan query lainnya.

Contohnya, sebuah toko memiliki beberapa produk dan ingin mengetahui produk mana saja yang memiliki harga di atas rata-rata seluruh produk.

Untuk menjawab pertanyaan tersebut, kita perlu menghitung rata-rata harga terlebih dahulu. Setelah mendapatkan nilai rata-rata, nilai tersebut digunakan untuk membandingkan harga masing-masing produk.

Di sinilah SQL Subquery dapat digunakan.

Pada artikel ini, kita akan mempelajari cara menggunakan SQL Subquery melalui studi kasus sederhana menggunakan SQLite dan Python.

💡 Mengapa SQL Subquery Dibutuhkan?

Bayangkan kita memiliki data produk seperti berikut:

IDNama ProdukHarga
1Keyboard150000
2Mouse75000
3Headset200000
4Webcam250000

Kemudian muncul pertanyaan:

“Produk mana yang memiliki harga lebih tinggi dari harga rata-rata seluruh produk?”

Untuk menjawab pertanyaan tersebut, ada dua proses yang perlu dilakukan:

  1. Menghitung rata-rata harga seluruh produk.
  2. Membandingkan harga setiap produk dengan hasil rata-rata tersebut.

SQL Subquery memungkinkan proses pertama ditempatkan di dalam query utama sehingga kedua proses dapat dijalankan dalam satu query.

⚠️ Sebelum Memulai

Untuk mengikuti praktik ini, kita membutuhkan:

  • Google Colab
  • Python dasar
  • Pemahaman dasar SQL
  • Library Pandas
  • SQLite

Jika sebelumnya sudah mengikuti materi SQL JOIN, pemahaman tentang database dan query dasar akan membantu dalam mengikuti praktik ini.

💻 Apa Itu SQL Subquery?

SQL Subquery adalah query yang berada di dalam query lainnya.

Query yang berada di bagian dalam disebut subquery, sedangkan query yang berada di bagian luar disebut query utama.

Bentuk sederhananya seperti berikut:

SELECT kolom
FROM tabel
WHERE kolom > (
    SELECT fungsi(kolom)
    FROM tabel
);

Bagian berikut merupakan Subquery:

(
    SELECT fungsi(kolom)
    FROM tabel
)

Sedangkan query bagian luar merupakan query utama yang menggunakan hasil dari Subquery tersebut.

Secara sederhana, cara kerjanya dapat digambarkan seperti berikut:

Subquery
    ↓
Menghasilkan nilai
    ↓
Digunakan oleh query utama
    ↓
Menghasilkan data akhir

🧪 Mini Praktik: Membuat Database SQLite

Kita mulai dengan membuat database sederhana menggunakan Python.

import sqlite3

conn = sqlite3.connect("toko_subquery.db")
cursor = conn.cursor()

print("Database berhasil dibuat!")

Jika berhasil dijalankan, akan muncul:

Database berhasil dibuat!

Database tersebut akan digunakan untuk menyimpan data produk.

Membuat Tabel Produk

Selanjutnya, kita membuat tabel bernama produk.

cursor.execute("""
CREATE TABLE IF NOT EXISTS produk (
    id_produk INTEGER PRIMARY KEY,
    nama_produk TEXT,
    harga INTEGER
)
""")

conn.commit()

print("Tabel produk berhasil dibuat!")

Output:

Tabel produk berhasil dibuat!

Tabel tersebut memiliki tiga kolom:

  • id_produk sebagai identitas produk
  • nama_produk untuk menyimpan nama produk
  • harga untuk menyimpan harga produk

Memasukkan Data Produk

Sekarang kita masukkan beberapa data contoh ke dalam tabel.

produk = [
    (1, "Keyboard", 150000),
    (2, "Mouse", 75000),
    (3, "Headset", 200000),
    (4, "Webcam", 250000)
]

cursor.executemany(
    "INSERT INTO produk VALUES (?, ?, ?)",
    produk
)

conn.commit()

print("Data produk berhasil dimasukkan!")

Output:

Data produk berhasil dimasukkan!

Untuk memastikan data sudah tersimpan, kita dapat menjalankan query berikut:

cursor.execute("SELECT * FROM produk")

for row in cursor.fetchall():
    print(row)

Output:

(1, 'Keyboard', 150000)
(2, 'Mouse', 75000)
(3, 'Headset', 200000)
(4, 'Webcam', 250000)

Menghitung Rata-Rata Harga Produk

Sebelum menggunakan Subquery, kita coba menghitung rata-rata harga terlebih dahulu.

Query SQL:

SELECT AVG(harga)
FROM produk;

Jika dijalankan melalui Python:

cursor.execute("""
SELECT AVG(harga)
FROM produk
""")

hasil = cursor.fetchone()

print("Rata-rata harga:", hasil[0])

Output:

Rata-rata harga: 168750.0

Artinya, rata-rata harga dari seluruh produk adalah Rp168.750.

Menggunakan SQL Subquery

Sekarang kita kembali ke pertanyaan awal:

“Produk mana yang memiliki harga lebih tinggi dari rata-rata?”

Kita dapat menggunakan query berikut:

SELECT nama_produk, harga
FROM produk
WHERE harga > (
    SELECT AVG(harga)
    FROM produk
);

Perhatikan bagian berikut:

SELECT AVG(harga)
FROM produk

Bagian tersebut merupakan Subquery.

Subquery akan menghitung rata-rata harga terlebih dahulu. Hasilnya kemudian digunakan oleh query utama untuk melakukan perbandingan.

Jika dijalankan melalui Python:

query = """
SELECT nama_produk, harga
FROM produk
WHERE harga > (
    SELECT AVG(harga)
    FROM produk
)
"""

cursor.execute(query)

for row in cursor.fetchall():
    print(row)

Output:

('Headset', 200000)
('Webcam', 250000)

Dari hasil tersebut dapat diketahui bahwa hanya Headset dan Webcam yang memiliki harga lebih tinggi dari rata-rata harga produk.

Bagaimana Cara Kerja SQL Subquery?

Query tersebut sebenarnya menjalankan dua proses.

Pertama, Subquery:

Mau Kuasai SQL Subquery: Cara Menggunakan Query di Dalam Query dengan Contoh Praktik Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

SELECT AVG(harga)
FROM produk;

menghasilkan nilai:

168750

Kemudian nilai tersebut digunakan oleh query utama untuk melakukan perbandingan:

SELECT nama_produk, harga
FROM produk
WHERE harga > 168750;

Hasil akhirnya:

Headset  200000
Webcam   250000

Dengan menggunakan Subquery, kita tidak perlu menghitung rata-rata secara manual sebelum menjalankan query utama.

Menampilkan Hasil Menggunakan Pandas

Hasil SQL juga dapat langsung dimasukkan ke dalam DataFrame Pandas.

import pandas as pd

df = pd.read_sql_query(query, conn)

print(df)

Output:

  nama_produk   harga
0     Headset  200000
1      Webcam  250000

Pandas dapat membantu ketika hasil query akan dilanjutkan ke proses analisis atau visualisasi data.

Subquery dengan Kondisi Lain

Subquery tidak hanya dapat digunakan dengan fungsi AVG().

Misalnya, kita ingin mencari produk yang memiliki harga sama dengan harga tertinggi.

Query-nya:

SELECT nama_produk, harga
FROM produk
WHERE harga = (
    SELECT MAX(harga)
    FROM produk
);

Subquery:

SELECT MAX(harga)
FROM produk;

akan menghasilkan:

250000

Kemudian query utama mencari produk yang memiliki harga tersebut.

Output:

('Webcam', 250000)

Contoh lainnya adalah mencari produk dengan harga di bawah rata-rata:

SELECT nama_produk, harga
FROM produk
WHERE harga < (
    SELECT AVG(harga)
    FROM produk
);

Output:

('Keyboard', 150000)
('Mouse', 75000)

Dengan mengubah operator > menjadi <, kita dapat menggunakan nilai rata-rata yang sama untuk mencari produk dengan harga di bawah rata-rata.

💼 Kapan Subquery Digunakan di Dunia Kerja?

Dalam pekerjaan yang berkaitan dengan database dan analisis data, Subquery dapat digunakan untuk berbagai kebutuhan.

Contohnya:

  • mencari produk dengan harga di atas rata-rata
  • mencari pelanggan dengan jumlah transaksi tertentu
  • mencari transaksi dengan nilai terbesar
  • membandingkan data dengan nilai agregat
  • mencari data berdasarkan hasil query lainnya

Misalnya pada laporan penjualan, seorang analis ingin mengetahui pelanggan yang memiliki total transaksi lebih tinggi dari rata-rata seluruh pelanggan.

Konsepnya tetap sama: hitung nilai pembanding menggunakan Subquery, kemudian gunakan hasil tersebut pada query utama.

❌ Kesalahan yang Sering Dilakukan Pemula

1. Lupa Menggunakan Tanda Kurung

Subquery pada contoh ini ditulis di dalam tanda kurung.

Contoh yang benar:

WHERE harga > (
    SELECT AVG(harga)
    FROM produk
)

Tanda kurung membantu menunjukkan bagian query yang berada di dalam query utama.

2. Kolom yang Dibandingkan Tidak Sesuai

Misalnya Subquery menghasilkan rata-rata harga, tetapi query utama membandingkan hasil tersebut dengan kolom yang tidak berkaitan dengan harga.

Pastikan nilai yang dibandingkan memiliki konteks yang sesuai.

3. Tidak Memahami Hasil Subquery

Sebelum menggunakan Subquery, pahami terlebih dahulu hasil yang dihasilkan.

Contohnya:

SELECT AVG(harga)
FROM produk;

Jika menghasilkan satu angka, nilai tersebut dapat digunakan sebagai nilai pembanding pada query utama.

4. Menggunakan Subquery Ketika Query Biasa Sudah Cukup

Subquery memang berguna, tetapi tidak berarti setiap masalah SQL harus diselesaikan menggunakan Subquery.

Jika query sederhana sudah dapat menyelesaikan masalah dengan jelas, tidak perlu membuat query menjadi lebih kompleks.

⭐ Tips Menggunakan SQL Subquery

Beberapa hal yang perlu diperhatikan:

  1. Pahami kebutuhan analisis sebelum menulis query.
  2. Uji Subquery secara terpisah terlebih dahulu.
  3. Pastikan hasil Subquery sesuai dengan kebutuhan.
  4. Gunakan nama kolom yang jelas.
  5. Jangan membuat Subquery terlalu kompleks jika dapat disederhanakan.
  6. Gunakan komentar ketika query mulai sulit dibaca.
  7. Setelah query berhasil, periksa kembali hasilnya dengan data sumber.

🔗 Hubungan dengan Materi Sebelumnya

Pada materi sebelumnya kita telah mempelajari SQL JOIN untuk menggabungkan data dari beberapa tabel.

SQL JOIN digunakan ketika kita membutuhkan data dari tabel yang berbeda.

Sementara itu, SQL Subquery digunakan ketika hasil dari sebuah query perlu digunakan sebagai bagian dari query lainnya.

Keduanya dapat digunakan bersama dalam analisis data yang lebih kompleks.

🎯 Kesimpulan

SQL Subquery merupakan teknik untuk menjalankan sebuah query di dalam query lainnya. Teknik ini berguna ketika hasil dari suatu proses perlu digunakan sebagai dasar untuk proses berikutnya.

Melalui praktik SQLite, kita telah mencoba menghitung rata-rata harga menggunakan AVG() kemudian menggunakan hasil tersebut untuk mencari produk yang memiliki harga di atas rata-rata.

Kita juga mencoba MAX() untuk mencari produk dengan harga tertinggi serta menggunakan Subquery untuk mencari produk yang berada di bawah rata-rata.

Dari latihan ini dapat dipahami bahwa SQL bukan hanya digunakan untuk mengambil data, tetapi juga dapat digunakan untuk membangun logika analisis secara bertahap.

Memahami Subquery akan menjadi dasar yang berguna sebelum mempelajari teknik SQL yang lebih lanjut, seperti Window Function dan analisis data menggunakan kombinasi SQL dan Python.

✍️ Penulis

Ditulis oleh Maulana Aldi Pradana.

Mau Kuasai SQL Subquery: Cara Menggunakan Query di Dalam Query dengan Contoh Praktik Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

Tags: analisis databelajar sqldata analysisdata analystDatabasegoogle colabpandaspythonQuery SQLsqlSQL SubquerySQLite
Previous Post
Next Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tips Presentasi Final Project Data Analysis
  • SQL Subquery: Cara Menggunakan Query di Dalam Query dengan Contoh Praktik
  • Tips Memilih Jenis Chart yang Tepat: Kapan Pakai Bar, Line, Pie, atau Scatter?
  • Cara Membuat Dashboard Power BI Pertama Kamu dalam 15 Menit
  • Cara Menemukan Insight dari Sebuah Dataset

Arsip

  • September 2026
  • August 2026
  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP python security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2026 | Privacy Policy | Site Map | Portfolio Magang | Butuh tim kami langsung yang mengerjakan? Lihat layanan implementasi →

All Right Reserved

WhatsApp us