order by mysql asc desc | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: order by mysql asc desc

Sunday, April 5, 2026

order by mysql asc desc

🏠 Beranda Tutorial MySQL Artikel 8 dari 28

Mengurutkan Data:
ORDER BY ASC dan DESC

🟢 Level Dasar 🗄️ SQL & Query ⏱️ 8 Menit Baca 📚 Seri 28 Artikel
3
Perintah SQL
8+
Contoh Query
8
Menit Baca

Bayangkan kamu lagi belanja di marketplace dan pengen lihat produk dari yang termurah dulu. Tinggal klik tombol "Harga: Rendah ke Tinggi" — dan voilà, semua produk langsung tersusun rapi dari yang paling murah. Nah, di balik fitur sederhana itu, ada satu klausa SQL yang bekerja keras: ORDER BY MySQL.

Selamat datang di Artikel ke-8 dari seri Belajar Query SQL MySQL! Di artikel sebelumnya kamu sudah belajar tentang filtering data dengan WHERE. Sekarang kita naik level sedikit — belajar cara mengurutkan hasil query sesuai kebutuhan, baik dari A ke Z, dari besar ke kecil, maupun dari yang terbaru ke terlama.

Di artikel ini kamu akan belajar sintaks dasar ORDER BY, perbedaan ASC vs DESC, cara mengurutkan berdasarkan banyak kolom sekaligus, dan beberapa tips praktis yang sering dipakai di dunia kerja. Semua pakai studi kasus toko online biar makin mudah dipahami. Yuk mulai!

⚡ Fakta Menarik

Tahukah kamu? Tanpa klausa ORDER BY, MySQL tidak menjamin urutan baris yang dikembalikan — bisa acak, tergantung bagaimana data disimpan di disk. Jadi kalau kamu butuh data terurut, selalu gunakan ORDER BY secara eksplisit!

Apa Itu ORDER BY MySQL dan Kenapa Penting?

Anggap ORDER BY seperti mekanisme sort di spreadsheet Excel. Kamu punya tabel data, lalu kamu pilih kolom mana yang mau dijadikan acuan urutan — naik (ASC) atau turun (DESC).

Dalam konteks toko online, ORDER BY sangat sering dipakai: tampilkan produk dari yang terlaris, tampilkan pesanan dari yang terbaru, atau tampilkan pelanggan berdasarkan alfabet nama. Semua itu butuh ORDER BY!

📋 Sintaks Dasar ORDER BY

SELECT kolom1, kolom2, ...
FROM nama_tabel
WHERE kondisi          -- (opsional)
ORDER BY kolom_urutan  -- kolom acuan pengurutan
         ASC | DESC;   -- ASC = naik (default), DESC = turun

Contoh: Tampilkan semua produk diurutkan dari harga termurah:

SELECT nama_produk, harga, stok
FROM produk
ORDER BY harga ASC;

📊 Hasil Query:

nama_produk harga stok
Pulpen Biru Rp 3.000 150
Buku Tulis A5 Rp 8.500 200
Tas Sekolah Rp 95.000 45
Laptop Stand Rp 250.000 30

💡 Tip Praktis

Kalau kamu tidak menulis ASC atau DESC, MySQL otomatis pakai ASC (ascending) sebagai default. Tapi demi kejelasan kode, biasakan selalu tulis eksplisit ya!

Perbedaan ASC dan DESC: Kapan Pakai yang Mana?

Kalau kamu pernah antri di kasir, biasanya yang datang duluan dilayani duluan — itu analogi ASC (ascending). Tapi kalau VIP member dilayani duluan meski datang terakhir, itu analogi DESC (descending).

Contoh: Tampilkan pesanan terbaru (berdasarkan tanggal_pesan):

SELECT id_pesanan, nama_pelanggan, total_harga, tanggal_pesan
FROM pesanan
ORDER BY tanggal_pesan DESC;

📊 Hasil Query:

id_pesanan nama_pelanggan total_harga tanggal_pesan
#1042 Budi Santoso Rp 450.000 2024-07-15
#1041 Siti Rahayu Rp 175.000 2024-07-14
#1040 Ahmad Fauzi Rp 820.000 2024-07-12

📋 Perbandingan ASC vs DESC:

Aspek ASC DESC
Kepanjangan Ascending Descending
Angka 1, 2, 3, 4... (kecil ke besar) ...4, 3, 2, 1 (besar ke kecil)
Teks A → Z Z → A
Tanggal Terlama → Terbaru Terbaru → Terlama
Default? ✓ YA ✗ TIDAK

⚠️ Peringatan

Saat mengurutkan kolom bertipe VARCHAR/TEXT, urutan didasarkan pada karakter (case-insensitive secara default di MySQL). Tapi jika ada karakter khusus atau angka dalam string, hasilnya bisa tidak sesuai ekspektasi. Selalu test querym-u dulu!

ORDER BY Banyak Kolom Sekaligus (Multi-Column Sort)

Kalau di sekolah ada sistem peringkat: urutkan dulu berdasarkan nilai, kalau nilai sama baru lihat absensi. Nah, ORDER BY MySQL juga bisa melakukan hal itu — sorting bertingkat dengan banyak kolom!

Contoh kasus: kamu ingin tampilkan produk berdasarkan kategori (A-Z), dan dalam kategori yang sama, urutkan berdasarkan harga termurah dulu.

SELECT nama_produk, kategori, harga
FROM produk
ORDER BY kategori ASC,   -- urutan pertama: kategori A ke Z
         harga ASC;       -- jika kategori sama, urutkan harga

📊 Hasil Query:

nama_produk kategori harga
Pulpen Biru Alat Tulis Rp 3.000
Buku Tulis A5 Alat Tulis Rp 8.500
Mouse Wireless Elektronik Rp 185.000
Laptop Stand Elektronik Rp 250.000

💡 Tip Praktis

Kamu bisa mix ASC dan DESC dalam satu query multi-kolom. Misalnya: ORDER BY kategori ASC, harga DESC — kategori A ke Z, tapi harga dari yang paling mahal dulu per kategori.

-- Produk paling mahal di tiap kategori tampil duluan
SELECT nama_produk, kategori, harga
FROM produk
ORDER BY kategori ASC, harga DESC;

Panduan Praktikum: Coba Sendiri Sekarang!

1

Buat tabel produk untuk latihan

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

Insert data sampel

INSERT INTO produk (nama_produk, kategori, harga, stok)
VALUES
  ('Pulpen Biru', 'Alat Tulis', 3000, 150),
  ('Buku Tulis A5', 'Alat Tulis', 8500, 200),
  ('Laptop Stand', 'Elektronik', 250000, 30),
  ('Mouse Wireless', 'Elektronik', 185000, 60),
  ('Tas Sekolah', 'Tas', 95000, 45);
3

Coba ORDER BY satu kolom

-- Urutkan nama produk A ke Z
SELECT * FROM produk ORDER BY nama_produk ASC;

-- Urutkan harga mahal ke murah
SELECT * FROM produk ORDER BY harga DESC;
4

Coba kombinasi dengan WHERE

-- Produk dengan stok > 50, diurutkan harga termurah
SELECT nama_produk, harga, stok
FROM produk
WHERE stok > 50
ORDER BY harga ASC;
5

Tantangan: Order by banyak kolom

-- Urutkan kategori A-Z, di tiap kategori harga mahal dulu
SELECT nama_produk, kategori, harga
FROM produk
ORDER BY kategori ASC, harga DESC;

Tips & Insight dari Lapangan

🚀 Insight #1 — ORDER BY + LIMIT untuk Top-N

Di dunia nyata, kombinasi ORDER BY dengan LIMIT itu sangat sering dipakai — misalnya untuk menampilkan "10 produk terlaris" atau "5 pesanan dengan nilai terbesar". Ini pola query yang wajib kamu kuasai!

-- 3 produk paling mahal
SELECT nama_produk, harga
FROM produk
ORDER BY harga DESC
LIMIT 3;

🎯 Insight #2 — Performa dan Indeks

Kalau kamu sering ORDER BY kolom tertentu di tabel yang isinya jutaan baris, pertimbangkan untuk membuat INDEX di kolom tersebut. ORDER BY tanpa index bisa lambat karena MySQL harus scan semua baris dulu. Ini topik yang akan kita bahas di seri lanjutan!

💡 Insight #3 — ORDER BY dengan Alias Kolom

Kamu juga bisa ORDER BY menggunakan alias kolom yang kamu definisikan di SELECT — sangat berguna saat pakai fungsi atau kalkulasi!

SELECT nama_produk, harga * 1.11 AS harga_termasuk_ppn
FROM produk
ORDER BY harga_termasuk_ppn DESC; -- pakai alias!

Ringkasan: Semua Tentang ORDER BY MySQL

Kasus Penggunaan Sintaks Keterangan
Urut naik (default) ORDER BY kolom ASC A→Z, kecil→besar, lama→baru
Urut turun ORDER BY kolom DESC Z→A, besar→kecil, baru→lama
Multi kolom ORDER BY k1, k2 Urut bertingkat/hierarkis
Dengan LIMIT ORDER BY ... LIMIT n Ambil Top-N setelah diurutkan
Dengan Alias ORDER BY alias_kolom Urut berdasar hasil kalkulasi

🎯 Kesimpulan

  • ORDER BY MySQL digunakan untuk mengurutkan hasil query sesuai kolom tertentu
  • ASC = urutan naik (default), DESC = urutan turun — keduanya punya kasus pakai yang berbeda
  • Bisa menggunakan banyak kolom sekaligus sebagai kriteria urutan, tiap kolom bisa ASC atau DESC sendiri
  • Kombinasi ORDER BY + LIMIT sangat powerful untuk kebutuhan "Top-N"
  • Tanpa ORDER BY, urutan data dari MySQL tidak dijamin konsisten

Mengurutkan data terlihat sepele, tapi ini adalah fondasi dari banyak fitur aplikasi yang kamu pakai sehari-hari — dari feed media sosial sampai laporan penjualan. Sekarang kamu sudah punya tools-nya. Tinggal latihan dan eksplorasi! 💪

Punya pertanyaan atau kesulitan? Tulis di kolom komentar 👇
💬 Tulis Komentar 🔖 Bookmark Artikel 📤 Share ke Teman

➡️ Artikel Berikutnya — #9 dari 28

Membatasi Hasil: LIMIT dan OFFSET

Pelajari cara mengambil data dalam jumlah terbatas dan buat fitur pagination di aplikasim-u!

Baca Sekarang →
#MySQL #SQL #Database #Query #Tutorial #ORDER BY MySQL #Pemula

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