Lompat ke konten Lompat ke sidebar Lompat ke footer

Tutorial MySQL #5: Cara Mengelompokkan dan Menyaring Data GROUP BY & HAVING

Assalamualaikum Wr, Wb Sobat blogger semuanya! Di tutorial keempat kemarin, kita sudah berhasil menguasai fungsi agregasi untuk menghitung total omset dan rata-rata harga dari seluruh isi tabel penjualan rumah kita.

Nah, di Tutorial MySQL #5 ini, kita bakal naik level ke teknik analisis data yang jauh lebih canggih. Kita akan belajar cara mengelompokkan data hasil hitungan tersebut berdasarkan kategori tertentu menggunakan GROUP BY, dan menyaring hasil kelompoknya menggunakan perintah khusus bernama HAVING. Yuk, gass kita buka lagi CMD-nya dan bongkar rumusnya!


💡 Kenapa Kita Butuh GROUP BY dan HAVING?

Gampangnya gini, bro. Perintah WHERE yang biasa kita pakai itu hanya bisa menyaring baris data mentah sebelum datanya dihitung. Begitu data angka sudah digulung dan dihitung oleh fungsi agregasi seperti SUM() atau COUNT(), perintah WHERE udah ngga mempan lagi buat menyaringnya.

Di sinilah duet maut ini lahir:

  • GROUP BY: Bertugas mengelompokkan baris data yang punya nilai yang sama ke dalam satu grup (misal: mengelompokkan data transaksi berdasarkan Tipe Rumah).
  • HAVING: Bertugas sebagai "Filter/Penyaring" khusus untuk menyortir hasil angka yang sudah dihitung oleh fungsi agregasi tersebut.

🛠️ Praktek Koding GROUP BY & HAVING di CMD

Sebelum ngetik query-nya, pastikan kalian sudah masuk ke database dengan perintah USE jualrumah;. Biar simulasinya makin kelihatan mantap, mari kita asumsikan di dalam tabel penjualan kita sudah diisi tambahan data acak baru seperti di bawah ini:

+--------------+------------------+------------+------------+
| id_transaksi | nama_pembeli | tipe_rumah | harga_jual |
+--------------+------------------+------------+------------+
| 1 | Fikri Ramdani | Tipe 36 | 350000000 |
| 2 | Ramdhani Pratama | Tipe 45 | 450000000 |
| 4 | Siti Awanah | Tipe 70 | 750000000 |
| 5 | Agus Sutisna | Tipe 36 | 360000000 |
| 6 | Charlie Jhon | Tipe 45 | 460000000 |
+--------------+------------------+------------+------------+

1. Mengelompokkan Total Omset dengan GROUP BY

Sekarang, kita mau tahu berapa sih total omset pendapatan yang dihasilkan dari **masing-masing tipe rumah** secara spesifik. Lu tinggal gabungkan fungsi SUM() dengan klausa GROUP BY seperti ini:

SELECT tipe_rumah, SUM(harga_jual) AS total_omset_per_tipe
FROM penjualan
GROUP BY tipe_rumah;

Hasil Output di Terminal CMD Lu:

+------------+----------------------+
| tipe_rumah | total_omset_per_tipe |
+------------+----------------------+
| Tipe 36 | 710000000 |
| Tipe 45 | 910000000 |
| Tipe 70 | 750000000 |
+------------+----------------------+

Lihat, bro! MySQL otomatis mengelompokkan Tipe 36 secara mandiri (350 Juta + 360 Juta = 710 Juta), begitu pula dengan Tipe 45 dan 70. Rapi banget!

< those h3>2. Menyaring Hasil Hitungan Kelompok dengan HAVING

Nah, sekarang bayangkan bos lu tiba-tiba nyeletuk: *"Tolong tampilkan data kelompok tipe rumah yang total omset penjualannya di atas 800 Juta saja, yang di bawah itu tolong sembunyikan!"*.

Karena kita menyaring hasil dari fungsi SUM(harga_jual), kita tidak boleh pakai kata WHERE, melainkan wajib meletakkan perintah HAVING di baris paling akhir setelah GROUP BY:

SELECT tipe_rumah, SUM(harga_jual) AS total_omset_per_tipe
FROM penjualan
GROUP BY tipe_rumah
HAVING total_omset_per_tipe > 800000000;

Simulasi Hasil Akhir di Layar Terminal CMD Kalian:

MariaDB [jualrumah]> SELECT ... (query diatas);
+------------+----------------------+
| tipe_rumah | total_omset_per_tipe |
+------------+----------------------+
| Tipe 45 | 910000000 |
+------------+----------------------+
1 row in set (0.00 sec)

Secara otomatis, Tipe 36 (710 Juta) dan Tipe 70 (750 Juta) langsung ditendang dari layar karena tidak memenuhi syarat kelayakan filter HAVING yang di atas 800 Juta. Juara banget kan?

Kesimpulan

Kombinasi antara GROUP BY dan HAVING adalah senjata andalan yang membedakan antara programmer junior dengan *Data Analyst* profesional. Dengan menguasai teknik ini, kalian bisa memeras jutaan data transaksi yang berantakan menjadi sebuah ringkasan data statistik yang cerdas, presisi, dan siap pakai.

Sekian tutorial nomor 5 di seri MySQL kita kali ini. Di artikel berikutnya, kita akan masuk ke materi tingkat mahir yang paling seru, yaitu membongkar cara menghubungkan lemari data yang terpisah melalui Tutorial MySQL #6: Memahami Konsep Relasi Tabel (One-to-Many & Many-to-Many).

Kalo urutan kodingan HAVING lu kebalik dengan GROUP BY dan memicu error merah di terminal, langsung aja tumpahkan kendalanya di Kolom Komentar bawah ya. Mari kita beresin bareng!

Wassalam.

🔗 Mau Hubungkan Banyak Tabel Sekaligus? Yuk Belajar Relasi!

Satu tabel penjualan rumah sudah berhasil kita ubah-ubah datanya. Tapi tahu tidak, di dunia industri nyata, satu database itu bisa berisi puluhan tabel yang saling mengunci dan terhubung menggunakan Primary Key dan Foreign Key? Yuk, kita bedah rahasianya!

Lanjut ke Tutorial #6: Konsep Relasi Tabel MySQL →

Posting Komentar untuk "Tutorial MySQL #5: Cara Mengelompokkan dan Menyaring Data GROUP BY & HAVING"