Dasar Query SQL akan dibagas pada modul ini. Query merupakan salah satu proses utama yang ingin dicapai dalam pembuatan basis data, dimana kita dapat melakukan permintaan informasi ke basis data sesuai dengan kebutuhan. Proses permintaan data ini dapat dilakukan dengan cepat, serta memberikan akses realtime sehingga informasi yang diambil selalu aktual dan konsisten. Tidak hanya itu, basis data juga dapat menjamin kualitas dan integritas data di dalamnya selama dirancang dengan baik dan efisien. Jika perancangan tidak maksimal dan basis data digunakan selama proses bisnis berlangsung, sangat mungkin terjadi kesalahan interpretasi data yang mengarahkan pada pengambilan keputusan yang salah. Data selalu menjadi sumber utama, maka pastikan bahwa sumber itu adalah titik awal terpercaya yang dapat dijadikan dasar keputusan krusial.
Pada modul ini, kita akan membahas bagaimana mencari data yang diinginkan dari kumpulan data yang sudah tersimpan terstruktur di basis data relasional. Dasar Query SQL SELECT akan kita pelajari mencakup pencarian data dari satu tabel dan beberapa tabel.
Pastikan bahwa struktur tabel dari proses konversi ERD ke relational sudah benar. Seluruh tabel harus dipastikan sudah dibuat dan terisi dengan data yang sesuai dengan aturan (constraint yang ada – primay key dan foreign key).
Agenda :
๐ข Login akun gmail (wajib bagi ketua kelompok)
๐ข Pengantar & Persiapan: playcode
๐ข Dasar Query SQL SELECT
โ Pengantar & Persiapan
Karena keterbatasan freesql dan sqliteonline maka kita akan mengganti platform ke https://playcode.io/sql-compiler. Pada platform ini telah terjamin bahwa tabel akan tetap ada meskipun halaman website direfresh. Query yang dilakukan juga tidak terbatas. Platform ini sangat ideal untuk belajar query.
1. Lakukan drop semua tabel yang ada dengan klik tombol clear.

2. Buka kode DDL sekaligus DML yang tertera pada satu file berikut. Kemudian salin dan tempel di playcode.
3. Setelah kode disalin dan ditempel, klik tombol Run

4. Pastikan bahwa basis data telah dibuat beserta isi dari basis datanya. Lihat gambar berikut untuk lebih jelasnya.

Pastikan semua Data Definition Language dan Data Manipulation Language (Insert) dapat dijalankan tanpa error.
โ Dasar Query SQL (Oracle)
Sebelum masuk pada command query SELECT, lihat tabel berikut untuk cara membaca kode yang disediakan di modul ini.
| WARNA | KETERANGAN |
| Biru | Template: merupakan format umum bagaimana kode harus ditulis. Ganti kata yang berbahasa indonesia sesuai kebutuhan. |
| Biru muda | Contoh: merupakan contoh penggunaan kode pada template menggunakan nama basis data, nama tabel atau nama kolom yang dibutuhkan. |
๐ป SELECT
</> SELECT dari Satu Tabel
SELECT merupakan perintah utama dalam SQL (Structured Query Language) yang digunakan untuk mengambil atau memilih data dari satu atau lebih tabel dalam database. Perintah ini memungkinkan kita untuk menampilkan data yang telah disimpan dalam tabel sesuai dengan kondisi yang ditentukan.
Struktur umum/template SELECT
SELECT kolom1, kolom2, ...
FROM nama_tabel
WHERE kondisi
ORDER BY kolom
LIMIT jumlah;
SELECT : Menunjukkan kolom yang akan diambil.
FROM : Menunjukkan nama tabel dari mana data akan diambil.
WHERE : Menentukan kondisi yang digunakan untuk memfilter data.
ORDER BY : Mengurutkan hasil query berdasarkan kolom tertentu.
LIMIT : Membatasi jumlah hasil yang ditampilkan.
Berikut contoh code dan hasil penggunaan SELECT untuk menampilkan seluruh kolom dan baris pada tabel PELANGGAN.
SELECT * FROM PELANGGAN;
Tanda * artinya menampilkan semua kolom dari tabel.

SELECT nama, email FROM PELANGGAN;


โ Contoh Penggunaan Select Lebih Kompleks
| No | Tujuan | Format/Template |
|---|---|---|
| 1 | Mencari berdasarkan nilai tertentu | SELECT * FROM nama_tabel WHERE nama_kolom = nilai; |
> Mencari produk dengan harga 25000
SELECT * FROM PRODUK
WHERE harga = 25000;

| No | Tujuan | Format/Template |
|---|---|---|
| 2 | Mencari dengan menggunakan operator pembanding. operator pembanding : =, >, <, >=, <=, dan <> (tidak sama dengan) | SELECT * FROM nama_tabel WHERE nama_kolom OPERATOR_PEMBANDING nilai; |
> Mencari produk dengan hargaya di atas 10000
SELECT * FROM PRODUK
WHERE harga > 10000;

| No | Tujuan | Format/Template |
|---|---|---|
| 3 | Mencari data dengan menggabungkan beberapa kondisi menggunakan logika AND, sehingga semua kondisi harus benar | SELECT * FROM nama_tabel WHERE nama_kolom1 OPERAND nilai1 AND nama_kolom2 OPERAND nilai2; |
> Mencari karyawan yang berjenis kelamin perempuan dan berasal dari Korea Selatan
SELECT *
FROM KARYAWAN
WHERE jenis_kelamin = 'P'
AND alamat = 'Korea Selatan';

| No | Tujuan | Format/Template |
|---|---|---|
| 4 | Mencari data dengan menggabungkan beberapa kondisi menggunakan logika OR, sehingga salah satu kondisi harus benar | SELECT * FROM nama_tabel WHERE nama_kolom1 OPERAND nilai1 OR nama_kolom2 OPERAND nilai2; |
> Mencari karyawan yang berjenis kelamin perempuan atau berasal dari Indonesia
SELECT *
FROM KARYAWAN
WHERE jenis_kelamin = 'P'
OR alamat = 'Indonesia';

| No | Tujuan | Format/Template |
|---|---|---|
| 5 | Mencari data dengan BETWEEN untuk rentang nilai | SELECT * FROM nama_tabel WHERE nama_kolom1 BETWEEN nilai1 AND nilai2 |
> Mencari produk yang memiliki harga direntang 5000 dan 25000. Harga 5000 dan 25000 termasuk pada rentang.
SELECT *
FROM PRODUK
WHERE harga
BETWEEN 5000 AND 25000;

| No | Tujuan | Format/Template |
|---|---|---|
| 6 | Mencari data dengan IN untuk memilih nilai dari daftar | SELECT * FROM nama_tabel WHERE nama_kolom1 IN (daftar1, daftar2, โฆ, daftarn) |
> Mencari karyawan yang beralamat di Cina maupun Indonesia
SELECT *
FROM KARYAWAN
WHERE alamat IN ('Cina', 'Indonesia');

| No | Tujuan | Format/Template |
|---|---|---|
| 7 | Mencari data dengan LIKE untuk mencari pola | SELECT * FROM nama_tabel WHERE nama_kolom LIKE pola |
> Mencari karyawan yang memiliki nama berawalan Dewi
SELECT *
FROM KARYAWAN
WHERE nama LIKE 'Dewi%';

| No | Tujuan | Format/Template |
|---|---|---|
| 8 | Untuk memilih data yang kolomnya bernilai – Null โ IS NULL – Tidak bernilai NULL โ IS NOT NULL | SELECT * FROM nama_tabel WHERE nama_kolom IS NULL SELECT * FROM nama_tabel WHERE nama_kolom IS NOT NULL |
> Mencari data produk yang kolom harganya bernilai NULL
SELECT *
FROM PRODUK
WHERE harga IS NULL;

| No | Tujuan | Format/Template |
|---|---|---|
| 9 | Mencari data dengan NOT untuk negasi atau kontradiksi | SELECT * FROM nama_tabel WHERE NOT nama_kolom OPERAND nilai |
> Mencari karyawan yang memiliki alamat bukan di Indonesia
SELECT * FROM KARYAWAN
WHERE NOT alamat = 'Indonesia';

| No | Tujuan | Format/Template |
|---|---|---|
| 10 | Mencari data menggunakan LIKE untuk mencari pola dengan tambahan wildcard yaitu _ . Wildcard _ digunakan untuk mencocokkan satu karakter dalam pola pencarian | SELECT * FROM nama_tabel WHERE NOT nama_kolom OPERAND nilai |
> Mencari pelanggan yang memiliki pola D_nd_ , tanda wildcard bisa diisi dengan karakter apapun.
SELECT * FROM PELANGGAN
WHERE nama LIKE 'D_nd_%';

| No | Tujuan | Format/Template |
|---|---|---|
| 11 | Mencari data dengan menyaring terlebih dahulu menggunakan WHERE, kemudian mengurutkan hasilnya | SELECT * FROM nama_tabel WHERE nama_kolom OPERAND nilai ORDER BY nama_kolom TIPE_URUTAN TIPE_URUTAN : ASC / DESC ASC : diurut dari kecil ke besar DESC : diurut dari besar ke kecil |
> Mencari karyawan yang beralamat di Indonesia dan diurut berdasarkan tanggal masuk dari tanggal paling besar(terdekat)
SELECT * FROM KARYAWAN
WHERE alamat = 'Indonesia'
ORDER BY tgl_masuk DESC;

</> SELECT dari Beberapa Tabel
Mencari data dari beberapa tabel umumnya menggunakan perintah JOIN. Namun di banyak kasus, pencarian data dapat memanfaatkan relasi antar tabel. Kita bisa menggunakan perintah WHERE, dimana primary dan foreign key yang terkait dikenakan operator sama dengan โ=โ.
Berikut contoh dari menampilkan hobi yang dimiliki karyawan. Untuk mencari data karyawan dengan hobi yang dimiliki, kita harus mencari dari dua tabel yaitu tabel KARYAWAN dan tabel HOBI_KARYAWAN. Kemudian primary key pada tabel Karyawan (kolom : nik_karyawan) dengan foreign key pada tabel HOBI_KARYAWAN (kolom : nik_karyawan) dikenakan operasi sama dengan โ=โ.
SELECT nama, hobi
FROM KARYAWAN, HOBI_KARYAWAN
WHERE KARYAWAN.nik_karyawan = HOBI_KARYAWAN.nik_karyawan;

Ingat bahwa sintaks WHERE dapat dijalankan bersama dengan AND. Misalkan kita ingin mencari hobi karyawan atas nama John Lee. Maka code program yang dijalankan sebagai berikut :
SELECT nama, hobi
FROM KARYAWAN, HOBI_KARYAWAN
WHERE KARYAWAN.nik_karyawan = HOBI_KARYAWAN.nik_karyawan
AND nama = 'John Lee';

Dasar Query SQL ini merupakan pondasi untuk bisa melakukan pencarian data tingkat lanjut. Terdapat banyak cara melakukan query termasuk NESTED QUERY yang akan dibahas pada modul berikutnya.
โ Penyimpanan Code
Tidak perlu disimpan. Kita akan langsung masuk mengerjakan FINAL PROJECT.
๐ฅ Quiz
Kerjakan kuis berikut khusus R2: https://forms.gle/6P6Hj2ioEGScrTZs9


Leave a Reply