Lewati ke konten utama

Cara Menggunakan Operator SQL IN: Panduan Teknik Pemfilteran yang Efisien

Operator SQL IN memungkinkan Anda memfilter hasil kueri agar hanya menyertakan baris yang memenuhi ketentuan tertentu. Jelajahi potensi penuhnya dan alternatifnya.
Diperbarui 28 Sep 2026  · 8 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Operator SQL IN adalah alat yang berguna untuk memfilter data berdasarkan sekumpulan nilai. Saat digunakan dalam kueri panjang, operator IN membantu menyederhanakan kueri yang kompleks dan meningkatkan keterbacaan.

Jika Anda seorang praktisi data pemula, saya merekomendasikan kursus DataCamp Introduction to SQL dan SQL Fundamentals untuk mempelajari dasar penerapan SQL dalam memfilter data. Untuk penyegaran cepat, lihat SQL Basics Cheat Sheet kami.

Apa itu Operator SQL IN?

Operator SQL IN adalah alat yang kuat untuk memfilter data dalam kueri SQL. Operator ini membantu mempersempit hasil kueri dengan hanya mengembalikan baris yang memenuhi ketentuan yang ditentukan.

Namun, operator IN dituliskan setelah klausa WHERE untuk mengembalikan hasil dengan beberapa kondisi. Karena itu, operator IN dapat digunakan ketika tipe data yang difilter memiliki beragam nilai.

-- Select the employee ID, employee name, and department columns
SELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'
WHERE department IN ('Sales', 'HR');

Pada contoh di atas, kita memilih kolom employee_id, employee_name, dan department dari tabel employees. Namun, kita hanya mengembalikan baris tempat karyawan berada di Sales dan HR.

Operator IN dapat memfilter berbagai tipe data SQL, termasuk string, angka, dan tanggal. Pastikan selalu kolom acuan memiliki tipe data yang sesuai saat memfilter baris.

Sintaks Operator SQL IN

Operator IN memiliki sintaks sederhana untuk memfilter nilai. Operator ini digunakan dalam klausa WHERE untuk memudahkan pemfilteran banyak nilai dari daftar kolom. Sintaks keseluruhan untuk operator IN ditunjukkan di bawah ini.

-- Select the columns you want to retrieve
SELECT column_name(s)
-- Specify the table from which to retrieve the data
FROM table_name
-- Filter the results to include only those rows where the column's value matches any value in the specified list
WHERE column_name IN (value1, value2, ...);

Berikut contoh praktis menyertakan operator IN dalam klausa WHERE.

-- Select the employee ID, employee name, and department columns
SELECT employee_id, employee_name, department
FROM employees
-- Filter the results to include only employees whose department is 'Sales' and 'HR'
WHERE department IN ('Sales', 'HR');

Poin-Poin Penting untuk Diingat

Operator IN disertakan dalam klausa WHERE pada pernyataan SELECT. Penempatan ini memungkinkan kueri memfilter baris berdasarkan banyak nilai. Saat digunakan dalam kueri SQL, operator IN menyederhanakan kueri kompleks dan membuatnya mudah dibaca.

Operator IN bersifat standar di berbagai basis data, termasuk SQL Server, PostgreSQL, MySQL, dan Oracle. Menulis operator IN dengan huruf kapital sebagai standar penting untuk meningkatkan keterbacaan.

Kasus Penggunaan Umum Operator IN

Operator SQL IN digunakan untuk berbagai aplikasi analisis data. Bagian ini akan membahas beberapa kasus penggunaan paling umum, termasuk memfilter data, menangani banyak nilai, dan memanfaatkan subkueri. 

Memfilter data

Operator IN memfilter, mencatat, dan mengembalikan sekumpulan nilai yang ditentukan. Misalnya, kueri di bawah ini akan memilih semua kolom dari tabel employees dan mengembalikan baris dengan karyawan dari departemen Sales, HR, dan IT.

-- Select all columns from employees table
SELECT employee_id, employee_name, department
FROM employees
-- Filter to include only 'Sales', 'HR', and 'IT' departments
WHERE department IN ('Sales', 'HR', 'IT');

Menangani banyak nilai

Operator IN juga digunakan untuk memfilter catatan dengan banyak nilai. Penerapan ini berguna saat memfilter data menggunakan beberapa kondisi OR. Karena itu, operator IN menyediakan cara yang lebih sederhana untuk meningkatkan keterbacaan kueri.

Di bawah ini adalah tampilan kueri jika menggunakan operator OR alih-alih operator IN.

-- Main query to select employee_id and name from the employees table
SELECT employee_id, name
FROM employees
-- Filter employees based on multiple department names using OR conditions
WHERE department = 'Sales'
OR department = 'Marketing'
OR department = 'HR';

Berikut kueri yang menggunakan operator IN. Perhatikan kesederhanaan kueri dengan menghapus pengulangan operator OR.

-- Main query to select employee_id and name from the employees table
SELECT employee_id, name
FROM employees
-- Filter employees based on a list of department names using the IN operator
WHERE department IN ('Sales', 'Marketing', 'HR');

Subkueri

Anda juga dapat menggunakan operator IN untuk memfilter hasil dalam subkueri. Operasi ini memungkinkan Anda memfilter catatan dari kueri lain atau data terkait. Pada contoh di bawah, subkueri memilih department_id dari departemen Sales pada tabel departments. Karena itu, kueri utama akan mengembalikan baris yang memuat employee_id dan nama dari tabel employees, yang difilter menurut subkueri.

-- Main query to select employee_id and name from the employees table
SELECT employee_id, name
FROM employees
-- Filter employees based on department_id using a subquery
WHERE department_id IN (
    -- Subquery to get department_id for the "Sales" department
    SELECT department_id
    FROM departments
    WHERE department_name = 'Sales'
);

Keterbatasan dan Alternatif

Walaupun operator IN mudah digunakan dalam kueri SQL, ada beberapa keterbatasan dalam penerapannya, di antaranya:

  • Masalah kinerja dengan daftar besar: Menggunakan operator IN dengan daftar nilai yang besar dapat menimbulkan masalah kinerja dan memperlambat eksekusi kueri.
  • Penanganan nilai NULL: Operator IN tidak efisien menangani nilai NULL dan dapat mengembalikan hasil yang tidak terduga. Masalah ini terjadi karena nilai NULL tidak termasuk dalam daftar nilai.
  • Fleksibilitas terbatas: Operator IN terbatas saat menangani kumpulan data besar dengan banyak kolom. Hanya kolom tertentu yang dapat difilter menggunakan subkueri.

Alternatif untuk menghindari keterbatasan operator IN antara lain:

Menggunakan operator EXISTS

Operator EXISTS memeriksa apakah catatan yang ditentukan ada dalam subkueri. Jika digunakan dengan benar, operator ini efisien dan lebih cepat.

-- Select employee ID and name for employees in departments located in New York using EXISTS
SELECT employee_id, employee_name
FROM employees e
-- Check if there exists a row in the departments table
WHERE EXISTS (
    -- Select 1 is used here as a placeholder; it simply checks for existence
    SELECT 1
    FROM departments d
    -- Match the department_id in employees with department_id in departments
    WHERE d.department_id = e.department_id
    -- Filter for departments located in New York
    AND d.location = 'New York'
);

Menggunakan JOIN

Klausa SQL JOIN efisien saat mengkueri data dengan pemfilteran yang kompleks dan berguna saat memfilter data dari beberapa kolom yang terkait. Pada contoh di bawah, klausa JOIN digunakan untuk menggabungkan tabel employees dan departments pada department_id untuk memfilter catatan karyawan yang tinggal di New York.

-- Select employee ID and name for employees in departments located in New York using JOIN
SELECT e.employee_id, e.employee_name
FROM employees e
-- Join the employees table with the departments table on department_id
JOIN departments d ON e.department_id = d.department_id
-- Filter the results to include only departments located in New York
WHERE d.location = 'New York';

Menggunakan Common Table Expressions (CTE) atau tabel sementara

Jika Anda memiliki tabel dengan daftar besar, pertimbangkan menggunakan CTE untuk menyimpan daftar nilai sebelum melakukan kueri. Metode ini meningkatkan kinerja dan keterbacaan kueri.

-- Define a CTE (Common Table Expression) to store the list of department IDs located in New York
WITH DepartmentList AS (
    SELECT department_id
    FROM departments
    WHERE location = 'New York'
)
-- Select employee ID and name for employees who belong to the departments listed in the CTE
SELECT e.employee_id, e.employee_name
FROM employees e
-- Filter the results to include only employees whose department_id is in the list of department IDs from the CTE
WHERE e.department_id IN (SELECT department_id FROM DepartmentList);

Untuk mempelajari teknik lanjutan lainnya dalam memfilter data, saya merekomendasikan jalur karier DataCamp Associate Data Analyst in SQL. Anda juga dapat melihat kursus DataCamp Intermediate SQL Server, yang mencakup satu bab tentang common table expressions dan topik lanjutan lainnya. 

Kesimpulan

Memahami operator SQL IN penting bagi seorang praktisi data, karena memungkinkan Anda memfilter dan mentransformasi data selama analisis. Untuk meningkatkan keterampilan SQL Anda dalam penerapan operator IN, saya mendorong Anda berlatih dengan berbagai dataset untuk dianalisis.

Jika Anda ingin meningkatkan pengetahuan SQL ke tingkat menengah, saya merekomendasikan kursus Reporting in SQL untuk mengeksplorasi teknik kueri kompleks lainnya. Selain itu, SQL Associate Certification akan membantu Anda menonjol di antara analis data lainnya dengan menunjukkan pengetahuan praktis Anda dalam menggunakan SQL untuk analisis lanjutan.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

Pertanyaan yang Sering Diajukan

Dapatkah saya menggunakan operator IN untuk memfilter berbagai tipe data?

Operator IN memfilter berbagai tipe data SQL, termasuk string, angka, dan tanggal.

Dapatkah Anda menggunakan operator IN dalam subkueri?

Operator IN digunakan dalam subkueri sebagai metode lanjutan untuk memfilter data dari kueri utama.

Apa alternatif dari operator IN?

Operator EXISTS, klausa JOIN, dan Common Table Expressions (CTE) adalah alternatif terbaik untuk operator IN.

Basis data apa yang kompatibel dengan operator IN?

Basis data umum mendukung penggunaan operator IN, termasuk SQL Server, MySQL, PostgreSQL, dan Oracle.

Topik
SQL
Analisis Data

Belajar SQL bersama DataCamp

Kursus

Pengantar SQL

2 jam
1.6M
Pelajari cara membuat dan mengakses basis data relasional menggunakan SQL dalam waktu hanya dua jam.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya