Anda di halaman 1dari 0

1

Praktikum X
Pemrograman Visual
Structured Query Language (SQL) Lanjut

A. Group By
Klausa Group By berguna untuk meringkas baris-baris menjadi kelompok-
kelompok. Group By dapat digunakan untuk mengetahui total pemasukan tiap
propinsi, tiap periode, dan lain sebagainya. Penggunaan Group By biasanya
digunakan bersamaan dengan function (SUM, COUNT, dll). Berikut sintaks
Group By :

SELECT...FROM ..[WHERE....] GROUP BY ekspresi;

Contoh :
Untuk menghitung total pendapatan tiap bulan dengan pengurutan dari bulan
terakhir.

SELECT SUM(jumlah_pendapatan) FROM pendapatan
GROUP BY YEAR(date), MONTH(date)
ORDER BY YEAR(date) DESC, MONTH(date) DESC;

B. Having
Klausa Having berfungsi sama dengan WHERE. Perbedaannya, pada
klausa Having diperbolehkan menggunakan eskpresi yang menyebutkan
function tertentu dan dievaluasi setelah database melakukan pengelompokan
GROUP BY. Berikut sintaks Having :

SELECT...FROM...GROUP BY ekspresi
HAVING ekspresi;

Contoh :
Mendapatkan pesanan yang nilai totalnya lebih dari 500 ribu. (WHERE tidak
dapat digunakan, karena pada klausa WHERE, total belum terhitung).

SELECT SUM(jumlah * harga_satuan)
FROM detil_pesanan GROUP BY id_pesanan
HAVING SUM(jumlah * harga_satuan) > 500000;

C. Max, Min, Sum dan Count
MAX digunakan untuk mencari nilai terbesar, MIN digunakan untuk
mencari nilai terkecil, sedangkan AVG digunakan untuk menghitung rata-rata.
Contohnya :

2
SELECT MIN(i), MAX (i) FROM angka;
SELECT AVG(i) FROM angka;

Untuk menghitung jumlah baris (record) pada suatu tabel digunakan fungsi
COUNT, sedangkan untuk menjumlah digunakan fungsi SUM.
Contoh :
Menghitung berapa baris di tabel orang yang nama_depannya Andi :

SELECT COUNT (nama) FROM orang WHERE nama_depan =Andi;

Menghitung jumlah angka ganjil pada tabel angka :

SELECT SUM(i) FROM angka WHERE i % 2 = 1;

D. JOIN
Join pada dasarnya adalah mengkombinasikan lebih dari satu tabel. Rata-
rata JOIN memiliki kondisi yang prinsip dasarnya sama dengan WHERE, namun
dilakukan sebelum WHERE dengan tujuan memabantu database mengurangi
jumlah kombinasi baris yang harus dilakukan. Sintaks JOIN adalah sebagai
berikut :

SELECT ... FROM tabel1 JOIN tabel2 [kondisi_join];

Dimana kondisi_join dapat berupa ON ekspresi. Berikut perbandingan
beberapa tipe JOIN :

Nama Nama Lain Memiliki
Klausa
Kondisi
Catatan
INNER
JOIN
JOIN Ya Hanya menghasilkan baris jika
klausa kondisinya terpenuhi
LEFT
OUTER
JOIN
LEFT JOIN Ya Baris pada Tabel kiri selalu
disertakan tanpa melihat kondisi
terpenuhi atau tidak
RIGHT
OUTER
JOIN
RIGHT JOIN Ya Baris pada Tabel Kanan selalu
disertakan tanpa melihat kondisi
terpenuhi atau tidak
FULL
OUTER
JOIN
FULL JOIN Ya Baris pada Tabel kiri dan kanan
selalu disertakan tanpa melihat
kondisi terpenuhi atau tidak

Contoh :


3
CREATE TABLE `t1` (
`i` int(11) default NULL
);
INSERT INTO `t1` VALUES (1);
INSERT INTO `t1` VALUES (2);
INSERT INTO `t1` VALUES (3);
INSERT INTO `t1` VALUES (4);

CREATE TABLE `t2` (
`i` int(11) default NULL
);

INSERT INTO `t2` VALUES (3);
INSERT INTO `t2` VALUES (4);
INSERT INTO `t2` VALUES (5);
INSERT INTO `t2` VALUES (6);

1. INNER JOIN

2. LEFT JOIN

3. RIGHT JOIN


E. Langkah Praktikum
1. Buat tabel gaji dengan struktur sebagai berikut :
id_karyawan :VARCHAR (5)
tgl_gaji :DATE NOT NULL
gaji_pokok :NUMERIC (18,3) NOT NULL
tunjangan :NUMERIC (18,3) NOT NULL
PPH (nilainya sebesar 10%) :NUMERIC (18,3) NOT NULL
gaji_diterima :NUMERIC (18,3) NOT NULL

4
2. Buat form untuk mengolah data (simpan, edit) Gaji dengan memasukkan
id_karyawan untuk mendapatkan nama karyawan, divisi dan jabatannya.
3. Buat form untuk mengolah data karyawan yang mendapatkan bonus
(simpan, edit dan hapus) dengan masukkan id_karyawan untuk mendpatkan
nama karyawan, divisi dan jabatannya.
4. Buatlah form laporan untuk mengolah data-data berikut (menggunakan
query):
a. Mendapatkan jumlah karyawan pada tiap-tiap divisi.
b. Mendapatkan gaji karyawan tiap bulannya dan total gaji yang diterima
dan dikelompokkan berdasarkan divisi tertentu.
c. Menampilkan nama dan jabatan karyawan yang gajinya selama 1 tahun
diatas 24 juta beserta bonus yang diterimanya selama tahun 2009.
d. Menghitung rata-rata gaji karyawan selama satu tahun dikelompokkan
berdasarkan nama divisinya.
e. Mendapatkan nama karyawan, divisi dan jabatannya yang mendapatkan
gaji terbesar dan gaji terkecil.


Tugas Pra Responsi

1. Kerjakan semua langkah praktikum, dan tugas praktikum (Wajib dikerjakan
Semua) Pemrograman Visual (praktikum 1 10) dan dikumpulkan dalam bentuk
CD.
2. Tulis NO_Mahasiswa dan Nama Lengkap pada Cover CD
3. Batas Maksimal pengumpulan Tugas Pra Responsi adalah : 14 Januari 2009
4. Tidak mengumpulkan tugas = tidak diperbolehkan mengikuti Responsi = Nilai
Tidak Keluar.

Anda mungkin juga menyukai