MySQL - 17 - Order By (Pengurutan Data)

 


Jagat Koding - Pengurutan data pada kehidupan sehari-hari sangat umum digunakan untuk berbagai kebutuhan. Misalnya untuk mengurutkan nilai ujian yang ada di sekolah baik dari yang terbesar maupun dari yang terkecil.

Hal seperti itu juga bisa dilakukan pada DBMS MySQL dengan memanfaatkan Query Order By. Sesuai dengan istilahnya, order by dapat kita gunakan untuk mengurutkan data sesuai dengan kriteria yang kita tetapkan.

Terdapat dua jenis pengurutan yang bisa kita gunakan yaitu pengurutan secara Ascending (ASC) dan Descending (DESC). Ascending (ASC) digunakan untuk melakukan pengurutan data dari nilai terendah menuju nilai tertinggi, sedangkan Descending (DESC) digunakan untuk mengurutkan nilai dari tertinggi menuju nilai terendah.

Bagaimana penerapannya pada MySQL? Berikut adalah langkah yang bisa kita jalankan untuk mempraktekkan Query Order By menggunakan MySQL baik secara Ascending maupun Descending.

Persiapan

Sebelum melakukan pengurutan data, disini saya sudah memiliki sebuah database dengan nama db_kampus dan didalamnya sudah terdapat sebuah tabel dengan nama tb_mahasiswa. Berikut ini adalah deskripsi atau spesifikasi dari tabel tb_mahasiswa:


MariaDB [db_kampus]> DESC tb_mahasiswa;
+----------------+-------------+------+-----+---------+----------------+
| Field          | Type        | Null | Key | Default | Extra          |
+----------------+-------------+------+-----+---------+----------------+
| id_mahasiswa   | int(11)     | NO   | PRI | NULL    | auto_increment |
| nama_mahasiswa | varchar(50) | YES  |     | NULL    |                |
| jenis_kelamin  | varchar(10) | YES  |     | NULL    |                |
| umur           | int(11)     | YES  |     | NULL    |                |
+----------------+-------------+------+-----+---------+----------------+
4 rows in set (0.12 sec)

Selain itu, di dalam tb_mahasiswa, saya juga sudah mengisinya dengan beberapa data yang hasilnya seperti data di bawah ini:


MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa      | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
|            1 | Alexander Kurniawan | Laki-laki     |   22 |
|            2 | Hendrik Setiawan    | Laki-laki     |   23 |
|            3 | Dita Leni           | Perempuan     |   21 |
|            4 | Adi Luhung          | Laki-laki     |   22 |
|            5 | Lusi Arianti        | Perempuan     |   23 |
|            6 | Bima Santosa        | Laki-laki     |   22 |
|            7 | Bayu Pamungkas      | Laki-laki     |   22 |
|            8 | Eka Puspita Sari    | Perempuan     |   22 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)

Untuk cara mengisikan data didalam sebuah tabel, kalian bisa mempelajarinya di postingan yang membahas tentang Query Insert Into Table pada MySQL.

Order By Ascending (ASC)

Saya akan mencoba menampilkan mahasiswa yang ada di tabel tb_mahasiswa dan mengurutkannya sesuai dengan umur termuda sampai tertua.

MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa ORDER BY umur ASC; +--------------+---------------------+---------------+------+ | id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur | +--------------+---------------------+---------------+------+ | 3 | Dita Leni | Perempuan | 21 | | 1 | Alexander Kurniawan | Laki-laki | 22 | | 4 | Adi Luhung | Laki-laki | 22 | | 6 | Bima Santosa | Laki-laki | 22 | | 7 | Bayu Pamungkas | Laki-laki | 22 | | 8 | Eka Puspita Sari | Perempuan | 22 | | 2 | Hendrik Setiawan | Laki-laki | 23 | | 5 | Lusi Arianti | Perempuan | 23 | +--------------+---------------------+---------------+------+ 8 rows in set (0.06 sec)

Terlihat tabel di atas berisi data mahasiswa yang ditampilkan secara berurutan dari mahasiswa yang berumur paling muda sampai yang tertua.

Selain umur, saya juga bisa menampilkan data mahasiswa dengan cara mengurutkan nama mahasiswa dari huruf awal sampai akhir (A - Z). Berikut penerapannya:


MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa ORDER BY nama_mahasiswa ASC;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa      | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
|            4 | Adi Luhung          | Laki-laki     |   22 |
|            1 | Alexander Kurniawan | Laki-laki     |   22 |
|            7 | Bayu Pamungkas      | Laki-laki     |   22 |
|            6 | Bima Santosa        | Laki-laki     |   22 |
|            3 | Dita Leni           | Perempuan     |   21 |
|            8 | Eka Puspita Sari    | Perempuan     |   22 |
|            2 | Hendrik Setiawan    | Laki-laki     |   23 |
|            5 | Lusi Arianti        | Perempuan     |   23 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)

Data yang ditampilkan sudah urut berdasarkan nama mahasiswa dari abjad A sampai Z. Coba kalian gunakan penerapan Order By ini dengan memanfaatkan atribut yang lainnya, misalnya ingin mengurutkan mahasiswa yang memiliki jenis kelamin perempuan ditampilkan terlebih dahulu atau kondisi yang lainnya.

Order By Descending (DESC)

Sebaliknya, jika saya ingin menampilkan data mahasiswa yang memiliki umur tertua hingga termuda, saya bisa memanfaatkan Descending atau DESC.


MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa ORDER BY umur DESC;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa      | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
|            2 | Hendrik Setiawan    | Laki-laki     |   23 |
|            5 | Lusi Arianti        | Perempuan     |   23 |
|            1 | Alexander Kurniawan | Laki-laki     |   22 |
|            4 | Adi Luhung          | Laki-laki     |   22 |
|            6 | Bima Santosa        | Laki-laki     |   22 |
|            7 | Bayu Pamungkas      | Laki-laki     |   22 |
|            8 | Eka Puspita Sari    | Perempuan     |   22 |
|            3 | Dita Leni           | Perempuan     |   21 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)

Terlihat tabel di atas berisi data mahasiswa yang ditampilkan secara berurutan dari mahasiswa yang berumur paling tua sampai yang muda.

Selain umur, saya juga bisa menampilkan data mahasiswa dengan cara mengurutkan nama mahasiswa dari huruf akhir sampai awal (Z - A). Berikut penerapannya:


MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa ORDER BY nama_mahasiswa DESC;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa      | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
|            5 | Lusi Arianti        | Perempuan     |   23 |
|            2 | Hendrik Setiawan    | Laki-laki     |   23 |
|            8 | Eka Puspita Sari    | Perempuan     |   22 |
|            3 | Dita Leni           | Perempuan     |   21 |
|            6 | Bima Santosa        | Laki-laki     |   22 |
|            7 | Bayu Pamungkas      | Laki-laki     |   22 |
|            1 | Alexander Kurniawan | Laki-laki     |   22 |
|            4 | Adi Luhung          | Laki-laki     |   22 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)

Kondisi Lebih dari 1

Selain kondisi yang telah diterapkan di atas, kita juga bisa menggunakan kondisi lebih dari 1. Misalnya, saya akan mengurutkan data tersebut sesuai dengan umur terlebih dahulu, baru setelah itu kita urutkan sesuai nama secara Ascending(ASC).


MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa ORDER BY umur, nama_mahasiswa ASC;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa      | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
|            3 | Dita Leni           | Perempuan     |   21 |
|            4 | Adi Luhung          | Laki-laki     |   22 |
|            1 | Alexander Kurniawan | Laki-laki     |   22 |
|            7 | Bayu Pamungkas      | Laki-laki     |   22 |
|            6 | Bima Santosa        | Laki-laki     |   22 |
|            8 | Eka Puspita Sari    | Perempuan     |   22 |
|            2 | Hendrik Setiawan    | Laki-laki     |   23 |
|            5 | Lusi Arianti        | Perempuan     |   23 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)

Data di atas diurutkan terlebih dahulu sesuai umur secara Ascending, setelah itu setiap umurnya di urutkan lagi berdasarkan abjad huruf awal nama mahasiswa secara Ascending.

Bagaimana kalau umurnya kita urutkan secara Descending lalu nama mahasiswanya kita urutkan secara Ascending? Kita bisa memberikan jenis pengurutannya setiap kita melakukan Order, berikut ini adalah contohnya:


MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa ORDER BY umur DESC, nama_mahasiswa ASC;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa      | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
|            2 | Hendrik Setiawan    | Laki-laki     |   23 |
|            5 | Lusi Arianti        | Perempuan     |   23 |
|            4 | Adi Luhung          | Laki-laki     |   22 |
|            1 | Alexander Kurniawan | Laki-laki     |   22 |
|            7 | Bayu Pamungkas      | Laki-laki     |   22 |
|            6 | Bima Santosa        | Laki-laki     |   22 |
|            8 | Eka Puspita Sari    | Perempuan     |   22 |
|            3 | Dita Leni           | Perempuan     |   21 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)

Akan tampil paling awal mahasiswa yang memiliki umur tertua (karena Descending) yaitu 23 sebanyak 2 mahasiswa. Setelah itu dari 2 mahasiswa tersebut akan diurutkan kembali sesuai abjad nama depan secara Ascending sehingga mahasiswa dengan abjad nama depan H akan ditampilkan lebih awal daripada L.

Dilanjutkan dengan data mahasiswa yang memiliki umur 22 sebanyak 5 mahasiswa. Setelah itu data mahasiswa yang berumur 22 akan diurutkan kembali sesuai abjad nama depan sehingga huruf A ditampilkan lebih awal.

Sekian pembahasan kali ini, silahkan kalian kembangkan dengan cara kalian masing-masing dengan kondisi-kondisi yang lain. Semoga bisa menjadi bahan belajar untuk kita semua, so- sampai jumpa di postingan selanjutnya. Terimakasih ...

0 Response to "MySQL - 17 - Order By (Pengurutan Data)"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel