where between in query | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: where between in query

Sunday, April 5, 2026

where between in query

🟡 Menengah ⚡ Operator SQL ⏱ 8 menit baca Seri: Artikel 10 / 28

Mencari Data dalam Rentang Nilai:
Operator BETWEEN dan IN

Pelajari cara menyaring data secara efisien dengan dua operator andalan di MySQL — tanpa query yang bertele-tele dan membingungkan.

🛠
2
Perintah SQL
💻
8
Contoh Query
📖
8
Menit Baca

Bayangkan kamu lagi belanja online dan mau filter produk dengan harga antara Rp50.000 sampai Rp200.000. Cukup geser slider harga, dan voilà — semua produk yang relevan langsung muncul. Nah, saat kamu jadi developer yang membangun fitur itu, ada dua senjata ampuh di MySQL yang wajib kamu kuasai: BETWEEN dan IN. Dua operator ini adalah fondasi dari BETWEEN IN MySQL — cara paling elegan untuk menyaring data tanpa menulis kondisi WHERE yang panjangnya bisa bikin mata berkunang-kunang.

Kamu sudah memasuki artikel ke-10 dari seri 28 artikel Belajar Query SQL MySQL. Di titik ini, kamu sudah paham dasar SELECT, WHERE, dan operator perbandingan. Sekarang saatnya naik level — belajar cara menyaring data dalam rentang nilai atau dari sekumpulan pilihan spesifik secara efisien dan rapi. Di artikel ini kita akan bongkar habis cara kerja BETWEEN dan IN, lengkap dengan studi kasus nyata dari database toko online beserta output query-nya.

💡
Fakta Menarik

Menurut survei Stack Overflow Developer, MySQL masih menjadi database relasional paling populer di kalangan developer selama beberapa tahun berturut-turut. Dan operator BETWEEN serta IN adalah dua dari sepuluh operator SQL yang paling sering digunakan dalam query produksi skala nyata — terutama di aplikasi e-commerce dan sistem inventory.

1. Operator BETWEEN: Filter Data dalam Rentang Nilai

Bayangkan kamu punya penggaris. Kamu mau ukur benda yang panjangnya antara 10cm sampai 30cm — semua yang di luar rentang itu kamu abaikan. Itulah cara kerja BETWEEN di MySQL. Operator ini memilih semua baris di mana nilai suatu kolom berada di antara dua nilai batas, dan kedua batas itu sendiri ikut dimasukkan (inclusive).

📌 Sintaks BETWEEN
SELECT kolom1, kolom2, ...
FROM   nama_tabel
WHERE  nama_kolom BETWEEN nilai_minimum AND nilai_maksimum;

-- Catatan:
-- nilai_minimum : batas bawah rentang (inklusif)
-- nilai_maksimum : batas atas rentang (inklusif)
-- Bekerja untuk: angka, tanggal, dan string

Mari langsung praktik. Misalkan kita punya tabel produk di database toko online kita:

💻 Contoh Query 1 — Filter Harga Produk
SELECT nama_produk, kategori, harga
FROM   produk
WHERE  harga BETWEEN 50000 AND 200000;

-- Menampilkan produk dengan harga Rp50.000 - Rp200.000

📊 Output / Hasil Query:

nama_produk kategori harga
Topi Kupluk Rajut Aksesoris Rp 55.000
Kaos Polos Premium Pakaian Rp 89.000
Tas Selempang Canvas Tas Rp 145.000
Sepatu Sneakers Lokal Sepatu Rp 200.000
Tips Praktis

Perhatikan baris terakhir — harga Rp200.000 ikut masuk ke hasil. Ini bukti bahwa BETWEEN bersifat inklusif di kedua ujung. Kalau kamu mau eksklusif (tidak termasuk batas), gunakan operator biasa: harga >= 50000 AND harga < 200000.

BETWEEN juga bekerja mulus untuk kolom bertipe DATE. Contoh: filter pesanan dalam periode tertentu.

💻 Contoh Query 2 — Filter Tanggal Pesanan
SELECT id_pesanan, id_pelanggan, total_bayar, tanggal_pesan
FROM   pesanan
WHERE  tanggal_pesan BETWEEN '2024-01-01' AND '2024-03-31';

-- Pesanan di Kuartal 1 tahun 2024

📊 Output / Hasil Query:

id_pesanan id_pelanggan total_bayar tanggal_pesan
ORD-001PLG-042Rp 320.0002024-01-08
ORD-015PLG-017Rp 785.0002024-02-14
ORD-029PLG-091Rp 150.0002024-03-31

2. Operator IN: Filter dari Daftar Nilai Tertentu

Kalau BETWEEN itu seperti slider rentang harga, maka IN itu seperti centang-centang di daftar filter kategori — kamu memilih beberapa opsi spesifik secara manual. Operator IN di MySQL memungkinkan kamu memeriksa apakah suatu nilai cocok dengan salah satu dari sekumpulan nilai yang kamu tentukan. Tanpa IN, kamu harus menulis banyak kondisi OR — bayangkan betapa repotnya kalau ada 10 kategori!

📌 Sintaks IN
SELECT kolom1, kolom2, ...
FROM   nama_tabel
WHERE  nama_kolom IN (nilai1, nilai2, nilai3, ...);

-- nilai1, nilai2, ... : daftar nilai yang ingin dicocokkan
-- Nilai string harus diapit tanda kutip: 'nilai'
-- Ekuivalen dengan: kolom = nilai1 OR kolom = nilai2 OR ...
💻 Contoh Query 3 — Filter Kategori Produk
SELECT nama_produk, kategori, harga, stok
FROM   produk
WHERE  kategori IN ('Pakaian', 'Sepatu', 'Tas');

-- Tampilkan hanya produk dari 3 kategori fashion

📊 Output / Hasil Query:

nama_produk kategori harga stok
Kaos Polos PremiumPakaianRp 89.000142
Kemeja FlannelPakaianRp 235.00087
Tas Selempang CanvasTasRp 145.00053
Sepatu Sneakers LokalSepatuRp 200.000215
⚠️
Peringatan

Urutan nilai dalam IN tidak berpengaruh pada hasil — MySQL tidak mengurutkan output berdasarkan daftar IN. Kalau kamu butuh output terurut sesuai daftar tertentu, gunakan ORDER BY FIELD(kolom, val1, val2, ...).

3. NOT BETWEEN dan NOT IN: Kebalikan yang Sama Kuat

Dua operator ini punya "kembaran jahat" — NOT BETWEEN dan NOT IN. Keduanya bekerja kebalikan: alih-alih mengambil data yang cocok, mereka membuang data yang cocok dan menampilkan sisanya. Sangat berguna ketika kamu punya lebih banyak data yang ingin dimasukkan daripada yang dikecualikan.

💻 Contoh Query 4 — NOT IN dan NOT BETWEEN
-- NOT IN: Semua produk SELAIN kategori tertentu
SELECT nama_produk, kategori, harga
FROM   produk
WHERE  kategori NOT IN ('Elektronik', 'Komputer');

-- NOT BETWEEN: Produk dengan harga di luar rentang budget promo
SELECT nama_produk, harga
FROM   produk
WHERE  harga NOT BETWEEN 100000 AND 500000;

📊 Output NOT BETWEEN (harga di luar Rp100rb–Rp500rb):

nama_produk harga keterangan
Topi Kupluk RajutRp 55.000Di bawah rentang
Kaos Polos PremiumRp 89.000Di bawah rentang
Laptop Gaming ProRp 12.500.000Di atas rentang
🎯
Tips Praktis

Kombinasikan BETWEEN IN MySQL dengan kondisi lain menggunakan AND / OR untuk filter yang lebih kompleks. Contoh: WHERE kategori IN ('Pakaian', 'Tas') AND harga BETWEEN 50000 AND 300000 — filter kategori fashion dengan harga terjangkau sekaligus!

🚀 Panduan Praktikum Step-by-Step

1

Buat database dan tabel latihan

Jalankan script berikut di MySQL Workbench atau terminal kamu untuk mempersiapkan data latihan.

CREATE DATABASE toko_online;
USE toko_online;

CREATE TABLE produk (
  id_produk   INT PRIMARY KEY AUTO_INCREMENT,
  nama_produk VARCHAR(100),
  kategori    VARCHAR(50),
  harga       DECIMAL(10,2),
  stok        INT
);
2

Isi tabel dengan data sampel

INSERT INTO produk (nama_produk, kategori, harga, stok)
VALUES
  ('Topi Kupluk Rajut',   'Aksesoris', 55000,    200),
  ('Kaos Polos Premium',  'Pakaian',   89000,    142),
  ('Tas Selempang Canvas','Tas',       145000,    53),
  ('Sepatu Sneakers Lokal','Sepatu',   200000,   215),
  ('Kemeja Flannel',       'Pakaian',  235000,    87),
  ('Laptop Gaming Pro',    'Elektronik',12500000,  18);
3

Coba query BETWEEN dan IN

Jalankan query-query dari artikel ini satu per satu, amati hasilnya, lalu coba modifikasi nilai rentang dan daftar untuk eksplorasi lebih lanjut.

4

Kombinasikan dengan operator lain

-- Tantangan: filter produk fashion harga terjangkau
SELECT nama_produk, kategori, harga
FROM   produk
WHERE  kategori IN ('Pakaian', 'Tas', 'Sepatu')
  AND  harga BETWEEN 50000 AND 250000
ORDER BY harga ASC;

📋 Tabel Perbandingan: BETWEEN vs IN

Aspek BETWEEN IN
Kegunaan Utama Rentang nilai berurutan Daftar nilai spesifik (diskrit)
Tipe Data Ideal Angka, Tanggal, String alfabet String, Angka, ID/kode
Inklusivitas Inklusif (termasuk kedua batas) Cocok tepat (exact match)
Versi Negasi NOT BETWEEN NOT IN
Ekuivalen dengan >= min AND <= max = val1 OR = val2 OR ...
Perhatian Khusus min harus <= max, atau hasil kosong Hati-hati NULL dalam daftar
🏆
Best Practice

Gunakan BETWEEN untuk filter harga dan tanggal — dua use case paling umum di aplikasi nyata. Pastikan kamu selalu meletakkan nilai yang lebih kecil di kiri: BETWEEN 100 AND 500, bukan sebaliknya.

🔍
Insight dari Lapangan

Di proyek nyata, IN sering diisi secara dinamis dari input pengguna — misalnya checkbox kategori. Query seperti WHERE id_produk IN (?, ?, ?) dengan prepared statement adalah pola yang aman dan umum dipakai di backend API.

✅ Kesimpulan

  • BETWEEN digunakan untuk memfilter data dalam rentang nilai berurutan — cocok untuk harga, tanggal, stok, dan sejenisnya. Bersifat inklusif di kedua ujung.
  • IN digunakan untuk memfilter data dari sekumpulan nilai diskrit — jauh lebih bersih dari menulis banyak OR.
  • NOT BETWEEN dan NOT IN adalah negasinya — ambil data yang tidak masuk rentang atau daftar.
  • Keduanya bisa dikombinasikan dalam satu query dengan AND/OR untuk filter yang lebih presisi dan powerful dalam BETWEEN IN MySQL.

Setiap query yang kamu tulis hari ini adalah bata yang membangun fondasi karirmu sebagai data professional. Dua operator sederhana ini bakal kamu temui terus menerus — kuasai sekarang, dan kamu selangkah lebih dekat ke query yang beneran "pro". 🚀

📚 Artikel Selanjutnya — Seri Belajar Query SQL MySQL
Artikel 11: Mengurutkan Data dengan ORDER BY

Pelajari cara mengurutkan hasil query — ascending, descending, multi-kolom, dan pengurutan berdasarkan ekspresi kustom.

Lanjut Baca →
#MySQL #SQL #Database #Query #Tutorial #BETWEEN IN MySQL

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux