Node.js - MySQL Order By (ID: Indonesia)

Hai, para pemrogram yang sedang berkembang! Hari ini, kita akan mendalamkan sebuah topik yang menarik yang akan membantu Anda mengatur data Anda seperti seorang profesional. Bayangkan Anda mencoba mengatur rak bukunya - itu tepat apa yang kita akan lakukan dengan basis data kita menggunakan klausa "ORDER BY" di MySQL dalam Node.js. Mari kita mulai!

Node.js - MySQL Order By

Mengerti dasar-dasar

Sebelum kita melompat ke kode, mari kita mengerti apa yang dilakukan "ORDER BY". Dalam kata-kata sederhana, itu seperti topi penyortir magis untuk data Anda. Itu memungkinkan Anda mengatur hasil basis data Anda dalam urutan tertentu, baik naik (A ke Z, 1 ke 100) atau turun (Z ke A, 100 ke 1).

Mengapa ORDER BY penting?

Bayangkan Anda menjalankan sebuah toko buku online. Pelanggan Anda mungkin akan senang jika buku-buku diurutkan berdasarkan harga, nama penulis, atau tanggal terbit. Itu adalah tempat ORDER BY datang ke bantuan!

Menyiapkan lingkungan kita

Pertama-tama, mari pastikan kita memiliki segala sesuatu yang diperlukan:

  1. Node.js terinstal di komputer Anda
  2. Basis data MySQL sudah disetup
  3. Modul MySQL untuk Node.js sudah terinstal

Jika Anda belum menginstal modul MySQL belum, buka terminal Anda dan ketik:

npm install mysql

Menghubungkan ke basis data kita

Mari kita mulai dengan menghubungkan ke basis data kita. Ini adalah skrip sederhana untuk melakukan itu:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});

connection.connect((err) => {
if (err) {
console.error('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to database.');
});

Jangan lupa untuk mengganti 'your_username', 'your_password', dan 'your_database_name' dengan kredensial MySQL Anda yang sebenarnya.

Contoh ORDER BY dasar

Sekarang, katakanlah kita memiliki tabel 'books' di basis data kita. Kita ingin mengambil semua buku dan mengurutkan mereka berdasarkan judul. Ini adalah cara kita bisa melakukannya:

connection.query(
'SELECT * FROM books ORDER BY title',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by title:');
console.log(results);
}
);

Dalam contoh ini, kita mengambil semua kolom (*) dari tabel 'books' dan mengurutkan mereka berdasarkan kolom 'title'. Secara default, ORDER BY mengurutkan dalam urutan naik.

Urutan turun

Apa jika kita ingin mengurutkan buku-buku kita dari Z ke A? Mudah-mudahan! Kita hanya menambahkan 'DESC' setelah nama kolom:

connection.query(
'SELECT * FROM books ORDER BY title DESC',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by title in descending order:');
console.log(results);
}
);

Mengurutkan berdasarkan beberapa kolom

Sekarang, mari kita lihat bagaimana hal ini menjadi sangat menarik. Apa jika kita ingin mengurutkan buku-buku kita terlebih dahulu berdasarkan penulis, dan kemudian berdasarkan judul? ORDER BY juga bisa menangani hal ini:

connection.query(
'SELECT * FROM books ORDER BY author, title',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by author, then by title:');
console.log(results);
}
);

Query ini akan pertama-tama mengurutkan buku-buku berdasarkan nama penulis. Jika dua buku memiliki penulis yang sama, itu akan kemudian mengurutkan mereka berdasarkan judul.

Campurkan urutan naik dan turun

Kita bahkan bisa mencampur urutan naik dan turun dalam pengurutan multi-kolom:

connection.query(
'SELECT * FROM books ORDER BY author DESC, title ASC',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by author (DESC) and title (ASC):');
console.log(results);
}
);

Ini akan mengurutkan buku-buku berdasarkan nama penulis dalam urutan turun, dan kemudian berdasarkan judul dalam urutan naik.

Mengurutkan berdasarkan posisi kolom

Apakah Anda tahu Anda juga bisa mengurutkan berdasarkan posisi kolom? Itu benar! Sebagai ganti dari nama kolom, Anda bisa menggunakan angka yang mewakili posisi kolom dalam pernyataan SELECT Anda:

connection.query(
'SELECT id, title, author FROM books ORDER BY 3, 2',
(error, results, fields) => {
if (error) throw error;
console.log('Books sorted by author (3rd column), then title (2nd column):');
console.log(results);
}
);

Dalam contoh ini, '3' merujuk ke kolom 'author', dan '2' merujuk ke kolom 'title'.

Contoh praktis: Sistem Inventory Toko Buku

Mari kita gabungkan semua ini dalam contoh praktis. Bayangkan kita membuat sistem inventory untuk toko buku kita:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'bookstore'
});

connection.connect((err) => {
if (err) {
console.error('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to bookstore database.');

// Get all books, sorted by author and title
connection.query(
'SELECT * FROM books ORDER BY author, title',
(error, results, fields) => {
if (error) throw error;
console.log('All books, sorted by author and title:');
console.log(results);
}
);

// Get top 10 most expensive books
connection.query(
'SELECT * FROM books ORDER BY price DESC LIMIT 10',
(error, results, fields) => {
if (error) throw error;
console.log('Top 10 most expensive books:');
console.log(results);
}
);

// Get books published in the last year, sorted by publication date
connection.query(
'SELECT * FROM books WHERE publication_date >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) ORDER BY publication_date DESC',
(error, results, fields) => {
if (error) throw error;
console.log('Books published in the last year, sorted by date:');
console.log(results);
}
);

connection.end();
});

Skrip ini menghubungkan ke basis data toko buku kita dan melakukan tiga query:

  1. Mengambil semua buku, diurutkan berdasarkan penulis dan kemudian berdasarkan judul.
  2. Mendapatkan 10 buku termahal.
  3. Menemukan semua buku yang diterbitkan dalam setahun terakhir, diurutkan berdasarkan tanggal terbit.

Kesimpulan

Dan itu adalah, teman-teman! Anda telah belajar bagaimana menggunakan ORDER BY di Node.js dengan MySQL. Ingat, mengatur data Anda adalah seperti mengatur rak bukunya - itu membuat segala sesuatu mudah untuk ditemukan dan lebih menarik untuk dilihat.

Berikut adalah tabel rujukan cepat dari metode ORDER BY yang kita telah bahas:

Metode Deskripsi Contoh
Basic ORDER BY Mengurutkan dalam urutan naik ORDER BY column_name
Descending ORDER BY Mengurutkan dalam urutan turun ORDER BY column_name DESC
Multi-column ORDER BY Mengurutkan berdasarkan beberapa kolom ORDER BY column1, column2
Mixed ORDER BY Mencampur urutan naik dan turun ORDER BY column1 DESC, column2 ASC
Position-based ORDER BY Mengurutkan berdasarkan posisi kolom ORDER BY 1, 2

Latih konsep ini, eksperimen dengan basis data Anda sendiri, dan segera Anda akan menjadi ahli dalam mengurutkan data! Selamat coding!

Credits: Image by storyset