PRAKTIKUM 4 PENGAMBILAN DATA LANJUT Pendahuluan Kebutuhan pengambilan data seringkali tidak hanya menampilkan field-field yang terdapat pada sebuah tabel. Adakalanya dibutuhkan kalkulasi dari field-field (yang mengahsilkan atribut turunan). Selain itu kebutuhan pengurutan data dan pengelompokkan data biasanya sangat penting dan dibutuhkan bagi pengguna akhir untuk memudahkan perolehan informasi. Untuk itu sangat penting sekali bisa membuat perintah SQL untuk melakukan kalkulasi antar field, pengelompokkan dan pengurutan data. Materi 1. Pengambilan data dengan kriteria mengandung range. 2. Pengambildan data dengan field kalkulasi dan aliasing. 3. Fungsi Agregat dan pengelompokkan data. 4. Pengurutan data. Tujuan Instruksional Khusus 1. Mahasiswa mampu membuat perintah SQL untuk menampilkan data pada range tertentu. 2. Mahasiswa mampu membuat perintah SQL untuk menampilkan data yang mengandung kalkulasi. 3. Mahasiswa mampu membuat perintah SQL dengan menggunakan fungsi agregat dan mengelompokkan data berdasarkan field tertentu. 4. Mahasiswa mampu membuat perintah SQL untuk menampilkan data yang terurut.
Ringkasan Materi Keyword BETWEEN Untuk menampilkan data pada range tertentu. Misalnya menampilkan data barang yang harganya antara 1000 sampai 2000. Penulisan : SELECT
FROM WHERE BETWEEN AND
Alias (Pemberian Nama Kolom) Alias adalah perubahan nama kolom tertentu agar view yang dihasilkan lebih informatif bagi pengguna. Untuk mengubah nama kolom bisa digunakan keyword AS. Perubahan nama hanya terjadi pada level view saja, tidak berpengaruh pada struktur tabel. Penulisan : SELECT , field2 AS ,..., fieldn AS > FROM WHERE
Fungsi Agregat Fungsi Agregat merupakan fungsi yang mengambil sekumpulan nilai sebagai input dan mengembalikan sebuah nilai (Silberschatz, 2002). 1
Berikut ini adalah 5 fungsi agregat : 1. COUNT : untuk menghitung jumlah data di dalam himpunan 2. SUM : melakukan penjumlahan nilai data dari sekumpulan data 3. MIN : mengambil nilai minumum dari sekumpulan data 4. MAX : mengambil nilai maksimum dari sekumpulan data 5. AVG : menghitung rata-rata nilai data dari sekumpulan data Penulisannya : SELECT , (field) AS FROM WHERE
Pengelompokan data dengan GROUP BY Untuk mengelompokkan sebuah data berdasarkan field tertentu, maka digunakan klausa GROUP BY. Misalnya saja ingin menampilkan data jumlah barang dari tiap-tiap kategori. Jadi jelas GROUP BY akan tampil bersama dengan fungsi agregat. Penulisannya : SELECT , (field) AS FROM WHERE GROUP BY
Keyword HAVING Memiliki fungsi yang sama dengan WHERE yaitu untuk menampung kriteria filtering. Perbedaannya adalah klausa HAVING akan digunakan apabila kondisi diberlakukan pada sebuah group atau fungsi agregat. Penulisan : SELECT , FROM WHERE GROUP BY HAVING Pengurutan data dengan ORDER BY Untuk mengurutkan data berdasarkan field tertentu bisa menggunakan perintah ORDER BY Penulisannya : SELECT FROM ORDER BY ASC : Pengurutan menaik dari kecil ke besar (Ascending) . Bisa juga tidak dituliskan DESC : Pengurutan menurun dari besar ke kecil (Descending) Pengurutan penulisan klausa SELECT , FROM WHERE GROUP BY HAVING GROUP BY ASC/DESC, ... , ASC/DESC 2
Pelaksanaan Praktikum
1. Bukalah Enterprise Manager 2. Gunakan database supermarket yang telah Anda buat di praktikum sebelumnya. 3. Isilah data berikut pada tabel t_Operator :
4. Isilah data berikut pada tabel t_Transaksi
Pada contoh di atas format tanggal adalah ‘m-d-yyyy h:n:s AM/PM’ 5. Isilah data berikut pada tabel t_DetailTransaksi
3
Melakukan Pengambilan Data BETWEEN Menampilkan data barang dengan stok antara 10 sampai 50
Penggunaan keyword BETWEEN akan lebih menyingkat penulisan perintah SQL, daripada menuliskan perintah sebagai berikut untuk menampilkan data yang sama : SELECT * FROM t_Barang WHERE Stock>=10 AND Stock<=50 Kalkulasi Terkadang pengguna ingin menampilkan field yang merupakan hasil kalkulasi dari field-field lainnya. Misalnya swalayan akan memberikan diskon 10% untuk semua barang. Tampilkan NamaBarang, Harga dan Diskon untuk barang-barang tersebut.
Alias (Pemberian Nama Kolom) Coba Anda perhatikan hasil eksekusi perintah sebelumnya, kolom diskon tidak bernama (No column name). Hal ini kurang memberikan informasi karena tidak tahu apa yang dimaksud oleh kolom tersebut. Untuk mengubah nama kolom bisa digunakan keyword AS
4
COUNT Menampilkan jumlah barang yang dimiliki swalayan yang kategorinya 2.
SUM Menampilkan jumlah barang yang terjual (di tabel t_DetailTransaksi)
MIN Menampilkan harga terkecil dari semua barang
5
MAX Menampilkan penjualan barang paling banyak.
AVG Menampilkan rata-rata Harga dari semua barang yang dijual
GROUP BY Menampilkan stok barang per kategori.
6
Pertanyaan 1 Apakah yang terjadi jika GROUP BY Kategori dihilangkan? Apakah terjadi error? Jika error, jelaskan penyebab errornya! Keyword HAVING Menampilkan kategori dan rata-rata stocknya di mana rata-rata lebih dari 10
Coba tampilkan kategori dan rata-rata stocknya di mana kategorinya tidak sama dengan 1 Pertanyaan 1: Untuk menampilkan rata-rata stock per kategori yang mana kategorinya bukan 1 digunakan perintah sebagai berikut : SELECT AVG(Stock) AS [Rata-rata Stock] FROM t_Barang HAVING NOT Kategori=1 Apakah perintah tersebut sudah benar? Jelaskan jawaban Anda! Apabila menurut Anda salah, lalu apa perintah yang benar?
Pengurutan data dengan ORDER BY Menampilkan seluruh data barang yang diurutkan berdasarkan Nama Barang secara menaik kemudian berdasarkan harga dari tinggi ke rendah.
7
Tugas Gunakan database local_content yang datanya sudah Anda isi pada tugas Modul3! Tuliskan perintah SQL untuk melakukan pencarian berikut : 1. Tampilkan Judul karya tulis yang dilihat ([Viewed]) antara 10 sampai 100 kali. 2. Tampilkan data karya tulis dengan kategori 1 dan urutkan berdasarkan seringnya dilihat (dari yang paling sering sampai yang jarang) dan berdasarkan judul secara menaik. 3. Tampilkan jumlah karya tulis yang disubmit per user (gunakan username pada tabel t_KaryaTulis). 4. Tampilkan kategori dan rata-rata dilihatnya karya tulis dalam kategori tersebut, urutkan berdasarkan rata-rata tersebut secara menurun. 5. Tampilkan Kategori dan jumlah karya tulis di dalamnya yang jumlah karya tulisnya lebih dari 2 item. 6. Tampilkan judul karya tulis yang disubmit mulai tanggal 1 Januari 2011 sampai dengan tanggal 31 Maret 2011-12-01. 7. Tampilkan Identifier dan jumlah pengarang dari tiap-tiap Identifier dan urutkan berdasarkan jumlah secara menurun dan identifier secara menaik. Tampilkanlah hanya yang identifiernya tidak diawali oleh angka 1.
8