Pengurutan Data Di MySQL Dengan ORDER BY

Pada tutorial kali ini kita akan membahas bagaimana cara membuat pengurutan atau sort data di MySQL dengan ORDER BY. Database adalah sebuah kumpulan data yang tersimpan secara terstruktur, baik yang kompleks ataupun yang sederhana, data-data yang tersimpan di database manapun pada akhirnya tetap membutuhkan pengurutan atau sort data di MySQL.

Tujuannya pengurutan atau sort data di MySQL adalah untuk mempermudah keterbacaan data sesuai dengan kebutuhan pengurutan itu sendiri. Pengurutan atau sort data di MySQL dapat dilakukan dengan kueri ORDER BY.

Berikut ini penggunaan kueri pengurutan data dengan ORDER BY di MySQL.

SELECT
    expression
FROM
    table
ORDER BY
    column1 [ASC|DESC],
    column2 [ASC|DESC],
    ...;Code language: CSS (css)

Jika dilihat pada sintaks diatas, anda dapat melakukan pengurutan data di MySQL secara spesifik setelah ORDER BY dengan menggunakan ASC atau DESC, dimana ASC untuk ascending atau pengurutan dari yang terkecil sampai yang terbesar, dan sebaliknya DESC untuk descending adalah pengurutan dari yang terbesar sampai yang terkecil.

Baca juga: Menampilkan Data Dari Table Dengan MySQL SELECT FROM

Sebagai contoh jika ingin mengurutkan data dari yang terkecil menggunakan ASC seperti sintaks dibawah ini.

ORDER BY column ASC

Atau dari yang terbesar menggunakan DESC seperti sintaks dibawah ini.

ORDER BY column DESC

Secara default atau bawaan, ORDER BY secara otomatis menggunakan ASC atau pengurutan dari yang kecil ke yang besar. Sebagai contoh, alih-alih menggunakan kode dibawah ini untuk pengurutan dari yang terkecil:

ORDER BY column ASC

Anda dapat melakukannya tanpa sintaks ASC seperti dibawah ini.

ORDER BY column

Selain itu, anda dapat melakukan pengurutan lebih dari satu kolom, yaitu dengan menggunakan koma sebagai pemisah diantara kolom-kolom yang ingin diurutkan, sebagai contoh.

ORDER BY
    column1,
    column2;

Sintaks diatas akan melakukan pengurutan dari yang terkecil sampai yang terbesar berdasarkan kedua kolom tersebut. Anda dapat melakukan pengurutan yang berbeda dari masing-masing kolom dengan cara dibawah ini.

ORDER BY
    column1 ASC,
    column2 DESC;

Sintaks diatas akan menampilkan data column1 dari yang terkecil, dan column2 dari yang terbesar. Nilai pengurutan dapat berupa string atau integer.

Ketika MySQL mengeksekusi perintah SELECT dibarengi dengan ORDER BY, maka MySQL akan mengevaluasi perintah ORDER BY di akhir setelah FROM dan SELECT.

MySQL ORDER BY flow - pengurutan data di MySQL

Contoh penggunaan ORDER BY di MySQL

Sebelum memulai cara penggunaan ORDER BY di MySQL, penulis membuat contoh tabel yang bisa digunakan untuk latihan.

CREATE TABLE 'users' (
    'id' mediumint(8) unsigned NOT NULL auto_increment,
    'name' varchar(255) default NULL,
    'phone' varchar(100) default NULL,
    'email' varchar(255) default NULL,
    'country' varchar(100) default NULL,
    PRIMARY KEY ('id')
) AUTO_INCREMENT=1;Code language: PHP (php)

Setelah itu masukan data-data berikut dengan sintak SQL dibawah ini.

INSERT INTO `users` (`name`,`phone`,`email`,`country`)
VALUES
    ("Avram Le","(686) 664-5124","vulputate.velit@icloud.ca","Colombia"),
    ("Flynn Ferrell","1-287-345-6536","libero@outlook.org","Germany"),
    ("Seth Pacheco","1-656-828-5525","condimentum@outlook.ca","Russian Federation"),
    ("Hedy Caldwell","(926) 736-6773","gravida.mauris.ut@hotmail.ca","Austria"),
    ("Venus Haley","(501) 220-3761","eu.odio.phasellus@aol.couk","Russian Federation");Code language: JavaScript (javascript)

Berikut ini adalah tampilan data diatas dalam bentuk tabel.

Table users - pengurutan data di MySQL

1. Contoh pengurutan menggunakan satu kolom

Dari data diatas, kita akan mencoba pengurutan kolom name menggunakan ASC, dalam hal ini kolom name bersisi tipe data string, sehingga pengurutan menggunakan alfabet dari A sampai Z.

SELECT id, name FROM users ORDER BY name

Sintaks diatas akan menghasilkan pengurutan data di MySQL berdasarkan kolom name, menampilkan id dan name saja. Berikut ini hasilnya.

ORDER BY ASC

Untuk melakukan pengurutan data secara ascending, penggunaan sintaks ASC bersifat opsional, karena ascending adalah pengurutan default atau bawaan.

Sedangkan untuk melakukan pengurutan secara descending, harus dengan menggunakan sintaks DESC untuk mengubah urutan default MySQL, seperti dibawah ini.

SELECT id, name FROM users ORDER BY name DESC

Dari kueri diatas akan menampilkan data sebaliknya berdasarkan urutan huruf bertama kolom name.

ORDER BY DESC MySQL

2. Contoh pengurutan menggunakan dua kolom

Selanjutnya dibagian ke dua ini kita akan mencoba melakukan pengurutan data di MySQL menggunakan dua kolom yang ada di table users, dimana akan mengurutkan name dan country.

SELECT 
    id, 
    name,
    country
FROM 
    users 
ORDER BY 
    country ASC,
    name DESC

Kode diatas akan menampilkan id, name, dan country, dimana pengurutan menggunakan dua parameter yaitu country diurutkan secara ascending, dan name diurutkan secara descending. Perlu diketahui, pengurutan akan dimulai diproses berdasarkan parameter yang pertamakali dideklarasikan, seperti sintaks diatas, pengurutan akan dimulai dengan country sebagai ascending.

Hasilya sebagai berikut.

Pengurutan ASC DESC MySQL

Pada contoh diatas, pengurutan akan dilakukan telebih dahulu pada kolom country.

3. Mengurutkan data berdasarkan perhitungan

Selain menetapkan pengurutan data di MySQL berdasarkan kolom, anda juga dapat menggunakan suatu perhitungan untuk menentukan bagaimana data akan ditampilkan, sebagai contoh, kami telah memiliki satu tabel baru dengan nama penjualan, tabel ini bersisi harga dan jumlah produk yang sudah terjual, sebagai berikut ini.

Data penjualan sorting ORDER BY

Jika anda ingin menggunakan data dummy diatas anda bisa menggunakan kueri dibawah ini.

CREATE TABLE `penjualan` (
    `id` mediumint(8) unsigned NOT NULL auto_increment,
    `produk` varchar(255) default NULL,
    `harga` mediumint default NULL,
    `qty` mediumint default NULL,
    PRIMARY KEY (`id`)
) AUTO_INCREMENT=1;

INSERT INTO `penjualan` (`produk`,`harga`,`qty`)
VALUES
    ("Anggur",25832,7),
    ("Apel",9075,6),
    ("Jeruk",22211,1),
    ("Mangga",6903,10),
    ("Jambu",23979,6);Code language: JavaScript (javascript)

Dari data tersebut mari kita coba pengurutan berdasarkan perkalian antara harga dan qty untuk menghasilkan subtotal, dimana subtotal yang paling besar ada diawal, dengan kueri dibawah ini.

SELECT 
    produk,
    harga * qty as subtotal
FROM
    penjualan
ORDER BY 
    harga * qty DESC;Code language: JavaScript (javascript)

Silahkan anda jalankan kueri diatas, maka seharusnya data yang akan tampil adalah data perhitungan yang paling besar, dalam hal ini subtotal.

Demikian tutorial tentang pengurutan data di MySQL menggunakan kueri ORDER BY, semoga bermanfaat, dan jika ada pertanyaan jangan lupa kirim di komentar ya.

Komentar

Selamat, anda berkesempatan menjadi komentator pertama di artikel ini. Punya pertanyaan atau saran? Silahkan tinggalkan komentar untuk memulai diskusi.
Terima kasih telah memilih untuk meninggalkan komentar. Harap diingat bahwa semua komentar dimoderasi sesuai dengan kebijakan, dan informasi anda TIDAK akan dipublikasikan. Harap JANGAN gunakan kata kunci di kolom nama. Mari kita buat diskusi yang menarik dan bermakna.

Tinggalkan komentar

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.