Wednesday, September 28, 2016

MySQL: Klausa ORDER BY

Klausa ORDER BY digunkan untuk mengurutkan data berdasarkan fiel tertentu. Dalam klausa ini terdapat dua jenis pengurutan yaitu:
  • Ascending (ASC), merupakan pengurutan secara menaik, dari nilai yang terkecil hingga yang terbesar.
  • Desecending (DESC), merupakan pengurutan secara menurun dari nilai yang terbesar ke nilai yang terckecil.

Sintaks Klausa ORDER BY

Klausa ORDER BY digunakan pada saat pernyataan SELECT, sintaksnya sebagai berikut:
SELECT daftar_nama_field
FROM nama_tabel
[WHERE syarat]
ORDER BY nama_kolom ASC|DESC

Keterangan:

  • daftar_nama_field  adalah nama-nama kolom yang akan ditampilkan
  • nama_tabel adalah nama tabel yang akana dikolom
  • syarat, merupakan ekspresi logika yang digunakan menfiter record-record
  • nama_kolom adalah nama kolom dimana record-record ditampilkan berdasarkan kolom tersebut.
  • klausa ASC menyatakan record ditampilkan urut secara menaik (ascending), secara default jika klausa ASC dan DESC tidak disertakan maka pengurutan akan dilakukan secara ascending.

Latihan Klausa ORDER BY

Penyiapan data

Jika database akademik dan matakuliah belum anda buat maka siapkan data terlebih dahulu sebagai berikut:
  • Jalankan MySQL command prompt, dengan perintah sebagai berikut:
CD C:\xampp\mysql\bin
mysql -u root -p
  • Buat database akademik
mysql> CREATE DATABASE akademik;
Query OK, 1 row affected (0.15 sec)
  • Aktifkan database akademik
mysql> USE akademik;
Database changed
  • Buat tabel matakuliah dengan struktur sebagai berikut
Field Type Index
kode_mk CHAR(4) PRIMARY KEY
nama_mk VARCHAR(30)
sks INT(1)
semester INT(1)
mysql> CREATE TABLE matakuliah
 -> (npm CHAR(4) PRIMARY KEY,
 -> nama_mk VARCHAR(50),
 -> sks INT(1),
 -> semester INT(1));
Query OK, 0 rows affected (2.20 sec)
  • Tampilkan struktur tabel matakuliah
mysql> DESC matakuliah;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| npm      | char(4)     | NO   | PRI | NULL    |       |
| nama_mk  | varchar(50) | YES  |     | NULL    |       |
| sks      | int(1)      | YES  |     | NULL    |       |
| semester | int(1)      | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (1.14 sec)
  •  Masukkan data-data berikut pada tabel matakuliah
data matakuliah

 mysql> INSERT INTO `matakuliah` (`npm`, `nama_mk`, `sks`, `semester`) VALUES
 -> ('MK01', 'Pengantar Teknologi Informasi', 2, 1),
 -> ('MK02', 'Algoritma Dan Pemrograman', 3, 1),
 -> ('MK03', 'Arsitektur Dan Organisasi Komputer', 4, 1),
 -> ('MK04', 'Desain Web', 4, 1),
 -> ('MK05', 'Aljabar Linier', 2, 2),
 -> ('MK06', 'Instalasi Dan Troubleshooting', 4, 2),
 -> ('MK07', 'Bahasa Inggris', 2, 3),
 -> ('MK08', 'Bahasa Rakitan dan C++', 3, 3),
 -> ('MK09', 'Interaksi Manusia dan Komputer', 3, 3),
 -> ('MK10', 'Bahasa Ingrris Teknik Informatika', 2, 4),
 -> ('MK11', 'Interfacing', 3, 4),
 -> ('MK12', 'Grafika Komputer', 3, 5),
 -> ('MK13', 'Algoritma Genetika', 4, 5),
 -> ('MK14', 'Bisnis Berbasis Internet', 3, 6),
 -> ('MK15', 'Cisco dan Mikrotik', 3, 6),
 -> ('MK16', 'Administrasi Sistem Jaringan', 3, 6),
 -> ('MK17', 'Animasi', 3, 7),
 -> ('MK18', 'Asistensi', 1, 7),
 -> ('MK19', 'Data Mining', 2, 7),
 -> ('MK20', 'e-Commerce', 3, 7);
Query OK, 20 rows affected (0.05 sec)
Records: 20 Duplicates: 0 Warnings: 0
Contoh penggunaan Klausa ORDER BY
  • Tampilkan kolom nama_mk, sks dan semester pada tabel matakuliah urut berdasarkan nama_mk
mysql> SELECT nama_mk, sks, semester
    -> FROM matakuliah
    -> ORDER BY nama_mk;
+------------------------------------+------+----------+
| nama_mk                            | sks  | semester |
+------------------------------------+------+----------+
| Administrasi Sistem Jaringan       |    3 |        6 |
| Algoritma Dan Pemrograman          |    3 |        1 |
| Algoritma Genetika                 |    4 |        5 |
| Aljabar Linier                     |    2 |        2 |
| Animasi                            |    3 |        7 |
| Arsitektur Dan Organisasi Komputer |    4 |        1 |
| Asistensi                          |    1 |        7 |
| Bahasa Inggris                     |    2 |        3 |
| Bahasa Ingrris Teknik Informatika  |    2 |        4 |
| Bahasa Rakitan dan C++             |    3 |        3 |
| Bisnis Berbasis Internet           |    3 |        6 |
| Cisco dan Mikrotik                 |    3 |        6 |
| Data Mining                        |    2 |        7 |
| Desain Web                         |    4 |        1 |
| e-Commerce                         |    3 |        7 |
| Grafika Komputer                   |    3 |        5 |
| Instalasi Dan Troubleshooting      |    4 |        2 |
| Interaksi Manusia dan Komputer     |    3 |        3 |
| Interfacing                        |    3 |        4 |
| Pengantar Teknologi Informasi      |    2 |        1 |
+------------------------------------+------+----------+
20 rows in set (0.00 sec)
  • Tampilkan field nama_mk dan sks pada tabel matakuliah urut jumlah sks terbesar ke sks terkecil.
mysql> SELECT nama_mk, sks
    -> FROM matakuliah
    -> ORDER BY sks DESC
    -> ;
+------------------------------------+------+
| nama_mk                            | sks  |
+------------------------------------+------+
| Instalasi Dan Troubleshooting      |    4 |
| Algoritma Genetika                 |    4 |
| Arsitektur Dan Organisasi Komputer |    4 |
| Desain Web                         |    4 |
| Bisnis Berbasis Internet           |    3 |
| Cisco dan Mikrotik                 |    3 |
| e-Commerce                         |    3 |
| Administrasi Sistem Jaringan       |    3 |
| Animasi                            |    3 |
| Grafika Komputer                   |    3 |
| Interfacing                        |    3 |
| Interaksi Manusia dan Komputer     |    3 |
| Bahasa Rakitan dan C++             |    3 |
| Algoritma Dan Pemrograman          |    3 |
| Bahasa Ingrris Teknik Informatika  |    2 |
| Bahasa Inggris                     |    2 |
| Aljabar Linier                     |    2 |
| Data Mining                        |    2 |
| Pengantar Teknologi Informasi      |    2 |
| Asistensi                          |    1 |
+------------------------------------+------+
20 rows in set (0.00 sec)
  • Tampilkan semester, nama_mk, sks pada tabel matakuliah urut semester dan nama_mk
mysql> SELECT semester, nama_mk, sks
    -> FROM matakuliah
    -> ORDER BY semester, nama_mk;
+----------+------------------------------------+------+
| semester | nama_mk                            | sks  |
+----------+------------------------------------+------+
|        1 | Algoritma Dan Pemrograman          |    3 |
|        1 | Arsitektur Dan Organisasi Komputer |    4 |
|        1 | Desain Web                         |    4 |
|        1 | Pengantar Teknologi Informasi      |    2 |
|        2 | Aljabar Linier                     |    2 |
|        2 | Instalasi Dan Troubleshooting      |    4 |
|        3 | Bahasa Inggris                     |    2 |
|        3 | Bahasa Rakitan dan C++             |    3 |
|        3 | Interaksi Manusia dan Komputer     |    3 |
|        4 | Bahasa Ingrris Teknik Informatika  |    2 |
|        4 | Interfacing                        |    3 |
|        5 | Algoritma Genetika                 |    4 |
|        5 | Grafika Komputer                   |    3 |
|        6 | Administrasi Sistem Jaringan       |    3 |
|        6 | Bisnis Berbasis Internet           |    3 |
|        6 | Cisco dan Mikrotik                 |    3 |
|        7 | Animasi                            |    3 |
|        7 | Asistensi                          |    1 |
|        7 | Data Mining                        |    2 |
|        7 | e-Commerce                         |    3 |
+----------+------------------------------------+------+
20 rows in set (0.02 sec)
  • Tampilkan secara urut nama_mk untuk matakuliah yang sks=3
mysql> SELECT *
    -> FROM matakuliah
    -> WHERE sks=3
    -> ORDER BY nama_mk;
+------+--------------------------------+------+----------+
| npm  | nama_mk                        | sks  | semester |
+------+--------------------------------+------+----------+
| MK16 | Administrasi Sistem Jaringan   |    3 |        6 |
| MK02 | Algoritma Dan Pemrograman      |    3 |        1 |
| MK17 | Animasi                        |    3 |        7 |
| MK08 | Bahasa Rakitan dan C++         |    3 |        3 |
| MK14 | Bisnis Berbasis Internet       |    3 |        6 |
| MK15 | Cisco dan Mikrotik             |    3 |        6 |
| MK20 | e-Commerce                     |    3 |        7 |
| MK12 | Grafika Komputer               |    3 |        5 |
| MK09 | Interaksi Manusia dan Komputer |    3 |        3 |
| MK11 | Interfacing                    |    3 |        4 |
+------+--------------------------------+------+----------+
10 rows in set (0.00 sec)