Skip to content
Pertemuan 3: SELECT Statement

Pertemuan 3: SELECT Statement

Pada pertemuan ini, mahasiswa akan mempelajari salah satu bagian yang paling sering digunakan dalam pengelolaan basis data, yaitu SELECT statement. Jika pada pertemuan sebelumnya fokus pembelajaran diarahkan pada pembuatan tabel dan manipulasi data seperti menambah, mengubah, dan menghapus isi tabel, maka pada pertemuan ini pembahasan beralih pada bagaimana data yang telah tersimpan tersebut dapat diambil kembali sesuai kebutuhan.

Modul ini disusun untuk membantu mahasiswa memahami bahwa pengambilan data tidak selalu berarti menampilkan seluruh isi tabel apa adanya. Dalam praktik nyata, data sering kali perlu dipilih berdasarkan kolom tertentu, difilter dengan kondisi tertentu, diurutkan, dikelompokkan, dibatasi jumlah tampilannya, atau bahkan digabungkan dengan data dari tabel lain. Oleh karena itu, pembelajaran pada pertemuan ini tidak hanya berfokus pada sintaks SELECT, tetapi juga pada cara berpikir logis dalam menyusun query agar informasi yang dihasilkan benar-benar sesuai dengan kebutuhan.

Secara umum, modul ini memuat tujuan pembelajaran, gambaran umum materi, materi inti yang menjelaskan konsep-konsep penting dalam query SELECT, dan aktivitas praktikum yang berisi rangkaian percobaan untuk menerapkan konsep tersebut secara langsung. Dengan susunan ini, mahasiswa diharapkan terlebih dahulu memahami ide dasar di balik query sebelum masuk ke tahap praktik.

Tujuan Pembelajaran

Setelah mengikuti praktikum pada pertemuan ini, mahasiswa diharapkan mampu:

  1. memahami fungsi SELECT untuk mengambil data dari tabel,
  2. menampilkan seluruh data atau kolom tertentu sesuai kebutuhan,
  3. memfilter data menggunakan WHERE, AND, OR, LIKE, dan BETWEEN,
  4. menggunakan alias, DISTINCT, dan LIMIT dalam query,
  5. mengelompokkan, menghitung, menyaring, dan mengurutkan data dengan GROUP BY, COUNT(), HAVING, dan ORDER BY,
  6. memahami konsep join tabel dan menerapkan beberapa jenis join,
  7. melakukan UPDATE dan DELETE dengan memanfaatkan join antar tabel.

Gambaran Umum

Topik utama pada pertemuan ini adalah query SELECT untuk mengambil dan mengolah tampilan data dari satu atau lebih tabel. Pembahasan dimulai dari bentuk dasar SELECT, yaitu memilih data dari suatu tabel, kemudian dilanjutkan dengan cara mengambil kolom tertentu saja, memberikan kondisi menggunakan WHERE, dan menggabungkan beberapa kondisi dengan operator logika.

Setelah itu, mahasiswa akan mempelajari beberapa fasilitas penting lain dalam query, seperti pemberian alias menggunakan AS, pencarian data teks dengan LIKE dan NOT LIKE, penampilan data unik menggunakan DISTINCT, pembatasan jumlah hasil query dengan LIMIT, serta pengelompokan data menggunakan GROUP BY dan COUNT(). Pembahasan juga dilengkapi dengan penggunaan HAVING, ORDER BY, dan BETWEEN untuk penyaringan dan pengurutan hasil query secara lebih terarah.

Pada bagian berikutnya, materi diperluas ke table join, yaitu teknik menggabungkan data dari dua atau lebih tabel yang saling berkaitan. Dalam bagian ini, mahasiswa akan mempelajari perbedaan antara Cartesian product, INNER JOIN, NATURAL JOIN, LEFT JOIN, dan RIGHT JOIN, serta memahami kapan masing-masing digunakan. Sebagai penutup, modul ini juga memperlihatkan bahwa join tidak hanya berguna untuk SELECT, tetapi juga dapat dimanfaatkan pada operasi UPDATE dan DELETE.

Secara garis besar, pertemuan ini dirancang agar mahasiswa tidak hanya mampu menampilkan data, tetapi juga mampu menyusun query yang lebih spesifik, terstruktur, dan informatif. Kemampuan ini akan menjadi fondasi penting untuk materi-materi berikutnya yang lebih lanjut dalam pengolahan data relasional.

Materi Inti

1. Bentuk Dasar SELECT

Perintah SELECT digunakan untuk mengambil data dari tabel. Bentuk dasarnya dapat dituliskan sebagai berikut.

SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;

Bagian what_to_select menunjukkan kolom atau informasi apa yang ingin ditampilkan. Jika ingin menampilkan seluruh kolom, dapat digunakan karakter *. Bagian which_table menunjukkan tabel sumber data, sedangkan WHERE bersifat opsional dan digunakan untuk menentukan kondisi data yang ingin dipilih.

2. Mengambil Seluruh Kolom atau Kolom Tertentu

Query SELECT dapat digunakan untuk menampilkan seluruh data dalam tabel, atau hanya kolom tertentu saja.

Bentuk QueryFungsi
SELECT * FROM tabel;Menampilkan seluruh kolom dari tabel
SELECT kolom1, kolom2 FROM tabel;Menampilkan kolom tertentu saja

Kemampuan ini penting karena dalam praktik nyata, pengguna tidak selalu membutuhkan semua kolom sekaligus.

3. Memfilter Data dengan WHERE

WHERE digunakan untuk memilih data yang memenuhi kondisi tertentu. Kondisi ini dapat berupa perbandingan nilai, seperti sama dengan, lebih besar dari, kurang dari, dan sebagainya.

OperatorFungsi
=sama dengan
>lebih besar dari
<lebih kecil dari
>=lebih besar atau sama dengan
<=lebih kecil atau sama dengan
<> atau !=tidak sama dengan

Dengan WHERE, query menjadi lebih terarah karena hanya data tertentu saja yang ditampilkan.

4. Menggabungkan Kondisi dengan AND dan OR

Kondisi pada WHERE dapat digabung menggunakan operator logika AND dan OR.

OperatorFungsi
ANDsemua kondisi harus terpenuhi
ORsalah satu kondisi cukup terpenuhi

Operator AND memiliki prioritas lebih tinggi daripada OR, sehingga susunan kondisi perlu diperhatikan agar hasil query sesuai harapan.

5. Memberikan Alias dengan AS

Alias digunakan untuk mengganti nama kolom hasil query agar lebih mudah dibaca. Alias ditulis menggunakan keyword AS.

Contoh umum penggunaan alias adalah ketika hasil query berasal dari ekspresi atau gabungan kolom, misalnya CONCAT(first_name, ' ', last_name) AS name.

6. Pattern Matching dengan LIKE dan NOT LIKE

Untuk data bertipe teks, MySQL menyediakan fasilitas pencocokan pola menggunakan LIKE dan NOT LIKE.

SimbolFungsi
_mewakili tepat satu karakter
%mewakili sejumlah karakter, termasuk nol karakter

LIKE digunakan untuk memilih data yang sesuai dengan pola tertentu, sedangkan NOT LIKE digunakan untuk mengecualikan pola tersebut.

7. Menampilkan Data Unik dengan DISTINCT

DISTINCT digunakan untuk menghilangkan duplikasi pada hasil query sehingga setiap nilai hanya ditampilkan satu kali. Fitur ini sangat berguna ketika ingin mengetahui daftar nilai unik dari suatu kolom, misalnya daftar kota atau daftar jenis pekerjaan.

8. Membatasi Hasil Query dengan LIMIT

LIMIT digunakan untuk membatasi jumlah baris data yang ditampilkan.

Bentuk QueryFungsi
LIMIT nmenampilkan n data pertama
LIMIT offset, jumlahmenampilkan data mulai posisi tertentu sebanyak jumlah tertentu

Dalam MySQL, urutan data pada LIMIT dimulai dari indeks 0.

9. Mengelompokkan Data dengan GROUP BY dan COUNT()

GROUP BY digunakan untuk mengelompokkan hasil query berdasarkan kolom tertentu. Ketika data sudah dikelompokkan, fungsi agregasi seperti COUNT() dapat digunakan untuk menghitung jumlah anggota pada setiap kelompok.

FungsiKegunaan
COUNT(*)menghitung jumlah baris dalam setiap kelompok

Dengan GROUP BY, query dapat digunakan untuk membuat ringkasan data, misalnya jumlah pegawai per kota atau jumlah pekerjaan tertentu pada setiap kelompok.

10. Penyaringan Lanjutan dengan HAVING

HAVING berfungsi sebagai penyaring lanjutan terhadap hasil query, terutama setelah GROUP BY. Secara konsep, WHERE menyaring data sebelum proses pengelompokan, sedangkan HAVING menyaring hasil setelah proses pengelompokan dilakukan.

Perbedaan ini penting karena urutan eksekusi query akan memengaruhi hasil yang diperoleh.

11. Mengurutkan Data dengan ORDER BY

ORDER BY digunakan untuk mengurutkan hasil query berdasarkan satu atau lebih kolom.

BentukFungsi
ORDER BY kolommengurutkan data secara naik (default)
ORDER BY kolom ASCmengurutkan data naik
ORDER BY kolom DESCmengurutkan data turun

Pengurutan juga dapat dilakukan berdasarkan lebih dari satu kolom. Jika demikian, urutan pertama akan dijadikan prioritas utama, lalu diikuti kolom berikutnya.

12. Operator BETWEEN dan NOT BETWEEN

BETWEEN digunakan untuk memfilter data yang nilainya berada di antara dua nilai tertentu. Operator ini dapat digunakan baik untuk data numerik maupun alfanumerik.

OperatorFungsi
BETWEEN nilai1 AND nilai2memilih data di antara dua nilai
NOT BETWEEN nilai1 AND nilai2memilih data di luar rentang tersebut

Operator ini membantu membuat query rentang data menjadi lebih ringkas.

13. Konsep Table Join

Dalam basis data relasional, data sering disimpan pada lebih dari satu tabel. Untuk mengambil data dari dua atau lebih tabel yang saling berkaitan, digunakan teknik join.

Sebelum melakukan join, tabel-tabel yang digunakan perlu memiliki hubungan logis, misalnya melalui kolom yang sama atau kolom yang saling mereferensi.

14. Cartesian Product

Cartesian product adalah hasil penggabungan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua. Dalam SQL, bentuk ini biasanya muncul ketika dua tabel ditulis bersama di bagian FROM tanpa kondisi penghubung yang membatasi hasilnya.

Sebagai ilustrasi, jika tabel pertama memiliki m baris dan tabel kedua memiliki n baris, maka hasil Cartesian product adalah m × n baris. Karena itu, hasilnya bisa menjadi sangat banyak.

Dalam MySQL, bentuk ini dapat ditulis sebagai berikut.

SELECT *
FROM tabel1, tabel2;

Bentuk tersebut sama maknanya dengan CROSS JOIN, yaitu menghasilkan semua kemungkinan pasangan data dari kedua tabel. Pada praktiknya, Cartesian product biasanya bukan hasil akhir yang diinginkan, tetapi menjadi dasar pemahaman sebelum mahasiswa mempelajari join yang lebih terarah menggunakan kondisi tertentu.

15. Jenis-Jenis Join

a. Cross Join

CROSS JOIN adalah bentuk eksplisit dari Cartesian product. Join ini memasangkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua.

b. Inner Join atau Equi-Join

INNER JOIN menggabungkan data dari dua tabel berdasarkan nilai yang sama pada kolom yang dibandingkan. Pada materi ini, join dapat ditulis dalam beberapa bentuk:

  • FROM tabel1, tabel2 WHERE tabel1.kolom = tabel2.kolom
  • INNER JOIN ... ON ...
  • INNER JOIN ... USING (...)

c. Natural Join

NATURAL JOIN mirip dengan INNER JOIN, tetapi MySQL akan secara otomatis mencari kolom yang namanya sama pada kedua tabel dan menggunakannya sebagai dasar penggabungan.

d. Left Join

LEFT JOIN akan menampilkan seluruh data dari tabel sebelah kiri, meskipun tidak semua data tersebut memiliki pasangan pada tabel sebelah kanan. Jika tidak ada pasangan, maka bagian yang tidak diketahui akan ditampilkan sebagai NULL.

e. Right Join

RIGHT JOIN merupakan kebalikan dari LEFT JOIN, yaitu menampilkan seluruh data dari tabel sebelah kanan, meskipun tidak semuanya memiliki pasangan pada tabel sebelah kiri.

16. UPDATE dan DELETE Menggunakan Join

Join tidak hanya dapat digunakan pada SELECT, tetapi juga pada operasi lain seperti UPDATE dan DELETE.

  • UPDATE dengan join digunakan untuk memperbarui data pada suatu tabel berdasarkan informasi dari tabel lain.
  • DELETE dengan join digunakan untuk menghapus data tertentu berdasarkan relasi dengan tabel lain.

Kemampuan ini sangat berguna ketika perubahan data harus dilakukan secara lebih spesifik berdasarkan hubungan antar tabel.

Penutup Pengantar

Sebelum masuk ke aktivitas praktikum, mahasiswa perlu memahami bahwa seluruh materi pada pertemuan ini saling berkaitan. SELECT, WHERE, GROUP BY, HAVING, ORDER BY, BETWEEN, Cartesian product, dan berbagai jenis join bukanlah bagian yang berdiri sendiri, melainkan fitur-fitur yang saling melengkapi dalam proses pengambilan dan pengolahan data. Dengan memahami materi inti ini terlebih dahulu, mahasiswa akan lebih mudah mengikuti percobaan praktikum secara runtut dan memahami alasan di balik setiap query yang dijalankan.