Pernah ke minimarket dan minta struk belanja, eh yang keluar malah semua detail transaksi dari toko itu sejak awal buka? Nama kasir, nomor mesin, kode batch produk, stempel gudang — semua ada. Padahal kamu cuma mau lihat total belanja dan nama barang yang kamu beli. Itulah yang terjadi kalau kamu pakai SELECT * terus-terusan tanpa tahu cara memilih kolom yang tepat.
Di artikel ini kita akan tuntas bahas SELECT kolom alias MySQL — teknik memilih kolom tertentu dari tabel dan memberi nama tampilan yang lebih ramah menggunakan kata kunci AS. Kedengarannya simpel, tapi ini adalah salah satu skill yang paling sering diremehkan pemula dan paling sering dicari senior developer ketika review query di tim.
Ini adalah artikel ke-5 dari seri 28 artikel Belajar Query SQL MySQL. Di artikel sebelumnya kita sudah kenalan dengan perintah SELECT secara umum. Sekarang kita mendalami dua fiturnya yang paling powerful: pemilihan kolom spesifik dan alias.
Kamu akan belajar: cara memilih kolom yang kamu butuhkan saja, cara memberi alias pada kolom dan ekspresi, penggunaan alias di kalkulasi, alias untuk tabel (tabel alias), serta kesalahan umum yang sering bikin error. Semua dengan studi kasus toko online yang relatable. Gas! ⚡
Sebuah studi performa database menunjukkan bahwa query dengan SELECT * pada tabel dengan 20+ kolom bisa 3–5× lebih lambat dibanding query yang hanya memilih kolom yang dibutuhkan — terutama jika ada kolom bertipe TEXT, BLOB, atau JSON. Alias bukan cuma soal estetika output: alias yang tepat juga membantu query optimizer MySQL bekerja lebih efisien di skenario tertentu.
Sintaks Lengkap: SELECT Kolom + AS Alias
Sebelum masuk contoh, mari kita lihat dulu peta sintaks lengkapnya. Ini seperti denah jalan tol — kalau kamu tahu jalurnya, nggak akan nyasar:
Tanda kurung siku [ ] berarti opsional. Satu-satunya yang wajib hanyalah SELECT kolom FROM tabel. Sisanya bisa ditambahkan sesuai kebutuhan.
1. Memilih Kolom Spesifik — Ambil Yang Perlu Saja
Anggap database kamu itu seperti restoran buffet besar. SELECT * itu seperti ngambil semua makanan yang ada di meja — nasi, lauk, dessert, minuman, sampai garnish daun parsley pun ikut. Padahal kamu cuma mau nasi dan ayam goreng.
Dengan menyebut kolom secara eksplisit, kamu mengambil hanya yang kamu butuhkan. Untuk latihan, kita pakai dua tabel dari toko online kita: produk dan pelanggan.
-- Tabel produk (sudah dibuat di artikel sebelumnya) -- Menambahkan tabel pelanggan untuk variasi contoh CREATE TABLE pelanggan ( id_pelanggan INT PRIMARY KEY AUTO_INCREMENT, nama_lengkap VARCHAR(100), email VARCHAR(100), kota VARCHAR(50), total_order INT, total_belanja DECIMAL(14,2) ); INSERT INTO pelanggan VALUES (1, 'Rina Kusuma', 'rina@email.com', 'Jakarta', 12, 4500000), (2, 'Budi Santoso', 'budi@email.com', 'Surabaya', 7, 2100000), (3, 'Citra Dewi', 'citra@email.com', 'Bandung', 20, 8750000), (4, 'Dodi Pratama', 'dodi@email.com', 'Medan', 3, 675000), (5, 'Eka Putri', 'eka@email.com', 'Jakarta', 15, 5200000);
Sekarang kita hanya ingin menampilkan nama pelanggan, kota, dan total order — tanpa email atau data sensitif lainnya:
SELECT nama_lengkap, kota, total_order FROM pelanggan;
๐ Hasil Query:
Email dan total_belanja tidak muncul — persis seperti yang kita mau. ๐ฏ
Urutan kolom di SELECT menentukan urutan kolom di output, bukan urutan di tabel. Jadi SELECT kota, nama_lengkap akan menampilkan kolom kota duluan, meski di tabel kolom nama ada lebih dulu.
2. Alias Kolom dengan AS — Beri Nama Panggilan yang Lebih Keren
Nama kolom di database biasanya mengikuti konvensi programmer: nama_lengkap, total_belanja, id_produk. Oke untuk mesin, tapi kurang friendly kalau ditampilkan ke pengguna atau di laporan.
Di sinilah AS berperan. Bayangkan AS seperti badge nama di seminar — nama aslinya mungkin "Budi Harianto Prasetyo S.Kom.", tapi di badge tertulis "Budi". Lebih mudah disebut, lebih cepat dikenali.
Inilah inti dari SELECT kolom alias MySQL: mengubah nama tampilan kolom tanpa mengubah struktur tabel itu sendiri.
SELECT nama_lengkap AS 'Nama Pelanggan', kota AS 'Kota Asal', total_order AS 'Jumlah Pesanan', total_belanja AS 'Total Belanja (Rp)' FROM pelanggan;
๐ Hasil Query:
Kamu tidak bisa menggunakan alias kolom di klausa WHERE pada query yang sama. Misalnya, setelah menulis total_belanja AS 'Total', kamu tidak bisa langsung pakai WHERE Total > 1000000. Gunakan nama kolom aslinya: WHERE total_belanja > 1000000. Ini karena MySQL memproses WHERE sebelum SELECT selesai menghitung alias.
3. Alias untuk Ekspresi dan Kalkulasi — Query Jadi Lebih Berbicara
Ini adalah skenario paling sering kamu temui di dunia nyata. Kalau kamu menghitung sesuatu di dalam SELECT — diskon, pajak, rata-rata, gabungan string — hasilnya akan ditampilkan dengan header yang super aneh seperti harga * 0.9 atau CONCAT(nama, ' - ', kota). Kurang profesional banget!
Alias menyelamatkan situasi ini. Mari kita buat laporan produk toko online yang lebih informatif — termasuk harga diskon, nilai stok, dan label kategori yang digabung:
SELECT nama_produk AS 'Produk', kategori AS 'Kategori', harga AS 'Harga Asli', ROUND(harga * 0.85, 0) AS 'Harga Diskon 15%', stok * harga AS 'Nilai Stok (Rp)', CONCAT(nama_produk, ' [', kategori, ']') AS 'Label Produk' FROM produk;
๐ Hasil Query:
ROUND(nilai, desimal) di atas adalah fungsi bawaan MySQL untuk membulatkan angka. CONCAT() untuk menggabungkan string. Fungsi-fungsi ini akan dibahas lebih dalam di seri artikel mendatang — untuk sekarang, cukup tahu bahwa hasilnya bisa diberi alias juga!
4. Alias Tabel — Singkatan untuk Nama Tabel yang Panjang
Bukan hanya kolom yang bisa diberi alias — tabel juga bisa! Ini sangat berguna kalau nama tabelnya panjang atau nanti kamu bekerja dengan JOIN (artikel mendatang). Bayangkan kamu harus menyebut nama "Kementerian Koordinator Bidang Perekonomian" 10 kali dalam satu percakapan — pasti capek. Alias tabel itu seperti bilang "Kemenko" aja.
-- p = alias untuk tabel produk SELECT p.nama_produk AS 'Nama Produk', p.kategori AS 'Kategori', p.harga AS 'Harga (Rp)' FROM produk AS p;
๐ Hasil Query:
Output sama persis, tapi penulisan query lebih singkat dan siap dipakai di JOIN nanti.
Alias tabel bisa ditulis tanpa kata kunci AS. Jadi FROM produk AS p dan FROM produk p menghasilkan hal yang sama. Keduanya valid di MySQL — soal pilihan gaya penulisan saja.
๐งช Panduan Praktikum Lengkap
Jalankan script berikut untuk menyiapkan environment latihan:
CREATE DATABASE IF NOT EXISTS toko_online; USE toko_online; -- (jalankan CREATE TABLE produk dan pelanggan dari atas)
Coba bedakan output ketiganya:
-- Query 1: semua kolom SELECT * FROM pelanggan; -- Query 2: hanya 3 kolom SELECT nama_lengkap, kota, total_order FROM pelanggan; -- Query 3: urutan kolom berbeda SELECT kota, nama_lengkap, total_belanja FROM pelanggan;
-- Tanpa alias: header kurang ramah SELECT nama_lengkap, total_belanja FROM pelanggan; -- Dengan alias: output profesional SELECT nama_lengkap AS 'Nama', total_belanja AS 'Total Belanja (Rp)' FROM pelanggan;
SELECT nama_produk AS 'Produk', harga AS 'Harga Normal', ROUND(harga * 1.11, 0) AS 'Harga + PPN 11%', stok * harga AS 'Nilai Inventori' FROM produk AS p;
Buat satu query untuk tabel pelanggan yang menampilkan: Nama, Kota, Total Order, dan kolom kalkulasi bernama "Rata-rata Belanja per Order" (total_belanja dibagi total_order). Gunakan alias tabel pl. Bisa? ๐ช
๐ Tabel Perbandingan: Cara Penulisan Alias di MySQL
Di tim profesional, konsistensi alias itu penting. Kalau kamu pakai p untuk tabel produk di satu query, pakai p juga di query lain yang sejenis. Buat tim lebih mudah membaca dan me-review query kamu — terutama di environment Git dengan banyak developer.
Gunakan alias tanpa spasi (pakai underscore) untuk kolom kalkulasi yang mungkin akan direferensikan di query level atas (subquery atau CTE). Alias dengan spasi seperti 'Harga (Rp)' bekerja di output tapi bisa bikin repot kalau kamu wrap query itu. Contoh aman: harga_diskon bukan 'Harga Diskon'.
✅ Kesimpulan
Sekarang kamu sudah menguasai dua teknik penting dalam SELECT kolom alias MySQL. Ini poin-poin utamanya:
- ▸ Pilih kolom spesifik alih-alih SELECT * untuk query yang lebih efisien dan aman
- ▸ AS memberi alias pada kolom, ekspresi, maupun tabel — tanpa mengubah data asli
- ▸ Alias dengan spasi wajib dibungkus tanda kutip; alias satu kata bisa tanpa kutip
- ▸ Alias tidak bisa dipakai di WHERE — gunakan nama kolom asli untuk filter
- ▸ Alias tabel sangat berguna untuk menyingkat query, terutama saat JOIN nanti
Query yang baik bukan hanya yang menghasilkan data benar — tapi juga yang mudah dibaca, dipahami, dan dirawat oleh tim. Pemilihan kolom yang tepat dan alias yang deskriptif adalah dua langkah pertama menuju sana. Kamu sudah di jalur yang benar! ๐
๐ฃ️ Yuk diskusi!
Sudah coba tantangan mandirinya? Bagikan hasilnya di kolom komentar! Jangan lupa share artikel ini ke teman belajar SQL-mu, dan bookmark halaman ini untuk referensi cepat. ๐
No comments:
Post a Comment