MODUL 3 PENGELOMPOKAN, PENGURUTAN, KRITERIA DATA, AGREGASI TUJUAN PRAKTIKUM 1. 2. 3. 4.
Praktikan mampu memahami statement SQL untuk pengelompokan data Praktikan mampu memahami statement SQL untuk pengurutan data Praktikan mampu memahami statement SQL mengenai kriteria data Praktikan mampu memahami statement SQL mengenai agregasi
PERLENGKAPAN PRAKTIKUM 1. Modul Praktikum Basis Data 2. MySQL 5.5.27 (Apache 2.4.3) 3. Browser 4. Navicat Premium
MATERI PRAKTIKUM Pada praktikum kali ini akan dibahas tiga materi pokok yaitu pengelompokan, pengurutan dan kriteria data. Semua materi itu akan berhubungan erat dengan SQL. 1. Pengelompokan data (Group By) dan Aggregate Function Dalam suatu kasus kita seringkali diminta menyeleksi data berdasarkan kelompok data tertentu. Untuk menyelesaikan masala h itu, kita dapat menggunakan sintak Group By. Pengelompokkan ini biasanya disertai denganAggregate Function. Beberapa contoh Aggregate Function yang dimaksud adalah fungsi matematik berikut ini : MIN Untuk mencari nilai minimum dari suatu data. Sintaknya adalah sebagai berikut : SELECT field-1,..,field-n ,MIN(nama_field) FROM nama_tabel GROUP BY field-1,..,field-n MAX 1
Untuk mencari nilai maksimum dari suatu data. Sintaknya adalah sebagai berikut: SELECT field-1,..,field-n ,MAX(nama_field) FROM nama_tabel GROUP BY field-1,..,field-n AVG Untuk mencari nilai rata-rata dari suatu data. Sintaknya adalah sebagai berikut: SELECT field-1,..,field-n ,AVG(nama_field) FROM nama_tabel GROUP BY field-1,..,field-n SUM Untuk mencari jumlah dari suatu data. Sintaknya adalah sebagai berikut : SELECT field-1,..,field-n ,SUM(nama_field) FROM nama_tabel GROUP BY field-1,..,field-n COUNT Untuk mencari cacah atau banyaknya suatu data. SELECT field-1,..,field-n ,COUNT(nama_field) FROM nama_tabel GROUP BY field-1,..,field-n
2. Pengurutan data (Order By) Pengurutan Data digunakan untuk menampilkan data berdasarkan urutan tertentu (Abjad maupunpun angka). Sintaknya adalah sebagai berikut : SELECT field-1,..,field-n FROM nama_tabel ORDER BY nama_field Secara default pengurutan akan dilakukan secara ascending (A-Z), untuk melakukan pengurutan secara descending (Z-A) maka tambahkan keyword DESC setelah ORDER BY. 3. Kriteria Data Maksud dari kriteria data adalah menampilkan data yang memenuhi kriteria yang telah kita tentukan. Untuk dapat mendapatkan kriteria ini oracle telah mendifinisakn dua keyword untuk dipakai, yaitu having dan where. HAVING
2
Kriteria dengan having biasanya dipakai untuk menyeleksi data berdasarkan fungsi aggregate tertentu (min, max, avg, sum, count). Sintak SQL nya adalah sebagai berikut : SELECT field-1,…,field-n FROM nama_tabel GROUP BY field-1,…,field-n HAVING kriteria fungsi agregate WHERE Kriteria dengan Where biasanya dipakai untuk menyeleksi data berdasarkan comparison (=,<>,<,>,<=,>=), between, in, like/not like, is null/ is not null. COMPARISON Comparison berfungsi untuk membandingkan nilai dari dua buah data. Tipe data yang dibandingkan harus lah sesuai. Sintak SQL nya adalah sebagai berikut :
SELECT field-1,…,field-n FROM nama_tabel WHERE field >/<>/=/>=/<= = … BETWEEN…AND… Between digunakan untuk menampilkan data yang berada pada range nilai tertentu. Sintak SQL nya adalah sebagai berikut : SELECT field-1,…,field-n FROM nama_tabel WHERE field BETWEEN … AND … LIKE/NO LIKE LIKE/NOT LIKE digunakan untuk membandingkan data dengan pola tertentu. Jika membandingkan satu karakter digunakan underscore (_), sedangkan untuk membandingkan string digunakan persen (%).Sintak SQL nya adalah sebagai berikut : SELECT field-1,…,field-n FROM nama_tabel WHERE field LIKE/NOT LIKE …. IN IN digunakan untuk menampilkan data yang nilai ada pada suatu himpunan tertentu. Sintak SQL nya adalah sebagai berikut : SELECT field-1,…,field-n FROM nama_tabel WHERE field IN (… , … , …) 3
PRAKTIKUM
Contoh penggunaan syntax 1. Penggunaan aggregate function a. SUM Untuk menampilkan jumlah lama rental setiap id mobil SELECT id_mobil, sum( lama_rental ) FROM tb_transaksi GROUP BY id_mobil b. AVG Untuk menampilkan rata-rata lama mobil dipinjam SELECT avg( lama_rental ) AS rata FROM tb_transaksi c. COUNT Untuk menampilkan jumlah mobil yang dipinjam berdasarkan id_mobil SELECT id_mobil, count( id_mobil ) FROM tb_transaksi GROUP BY id_mobil 4
2. Pengurutan data (order by) Menampilkan jumlah lama rental setiap id mobil diurut berdasarkan jumlah terkecil SELECT id_mobil, sum( lama_rental ) AS lama_rental FROM tb_transaksi GROUP BY id_mobil ORDER BY lama_rental 3. Kriteria data a. HAVING Menampilkan daftar id mobil yang mempunyai lama rental lebih besar dari 2 hari SELECT id_mobil, lama_rental FROM tb_transaksi GROUP BY id_mobil, lama_rental HAVING sum( lama_rental ) >2 ORDER BY lama_rental b. WHERE COMPARISON Menampilkan id mobil yang memiliki kapasitas lebih dari 7 SELECT id_mobil, kapasitas FROM tb_mobil WHERE kapasitas >7 BETWEEN Menampilkan id mobil yang memiliki harga rental perhari antara 400000 sampai 500000 SELECT id_mobil, harga_rental_per_hari FROM tb_mobil WHERE harga_rental_per_hari BETWEEN 400000 AND 500000 LIKE/NOT LIKE Menampilkan id mobil yang memiliki huruf “I” pada mereknya SELECT id_mobil, merek FROM tb_mobil WHERE merek LIKE '%i%' IN Menampilkan id transaksi dan id_pegawai dimana id_pegawainya P001 SELECT id_transaksi, id_pegawai FROM tb_transaksi WHERE id_pegawai IN ('P001')
5