You are on page 1of 14

Nama : A A Gde Mahendra Yana

NIM : 1605551093

Kelompok :6

MODUL IV
DML - DATA MANIPULATION LANGUAGE LANJUTAN

Tujuan Praktikum
Tujuan Praktikum Basis Data yang terdapat dalam modul DML Lanjutan
adalah sebagai berikut:
1. Mengetahui dan memahami penggunaan query nested, group by, order by
dan alias.
2. Mengetahui penggunaan perintah DML HAVING dan WHERE.
3. Mengetahui dan memahami penggunaan query INNER JOIN, LEFT JOIN,
RIGHT JOIN, UNION.
4. Mampu mengimplementasikan DML dalam pembuatan laporan.

Tugas Pendahuluan
1. Jelaskan mengenai query nested, group by, order by dan alias di dalam
MYSQL beserta contoh penggunaannya.
2. Sebutkan dan jelaskan macam-macam query union di dalam MYSQL
beserta contoh penggunaanya.
3. Jelaskan secara rinci perbedaan HAVING dan WHERE dalam MYSQL
4. Sebutkan dan jelaskan sintaks dari masing-masing query join beserta
contoh penggunaannya dengan lengkap
5. Buatlah dan jelaskan sintaks dari masing-masing fungsi yang ada dalam
query aggregation (COUNT, SUM, AVERAGE, MAX, MIN,
GROUP_CONCAT ) beserta contoh penggunaannya dengan lengkap.
6. Sebutkan dan jelaskan fungsi built-in yang terdapat dalam MYSQL beserta
contoh penggunaanya.
Jawaban
1. Pengertian dan Contoh Dari Query Nested, Group By, Order By dan Alias
didalam MYSQL.
Penjelasan dari query nested, group by, order by, dan alias yang ada
didalam MYSQL adalah sebagai berikut.
1) Query Nested
Query nested atau sub query adalah sebuah query yang berada di dalam
query. Sub query yang merupakan pernyataan select dan bagian dari pernyataan
insert, select. Sub query digunakan untuk menangani masalah dalam query yang
kompleks bahkan kita tidak tahu nilai berapa yang akan di select atau di insert.
Contoh dari penggunaan sub query adalah sebagai berikut.
a. Subquery digunakan untuk menyelesaikan persoalan dimana
terdapat suatu nilai yang tidak diketahui (unknown values).
b. Meng-copy data dari satu tabel ke tabel lain.
c. Menerima data dari inline view.
d. Mengambil data dari tabel lain untuk kemudian di update ke tabel
yang dituju.
e. Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
Berikut ini merupakan contoh penggunaan query nested dapat dilihat pada
kode program 4.1 sebagai berikut.

SELECT id_member, nama_member FROM tb_member


WHERE id_member IN (SELECT id_member FROM tb_member WHERE
alamat_member='Denpasar');
Kode Program 4.1 Penggunaan query nested

Kode program 4.1 merupakan penggunaan query nested yang digunakan


untuk menampilkan data id_member, nama_member dari tb_member yang
didalam query tersebut terdapat sub query untuk menampilkan alamat_member
yang bernilai Denpasar. Jadi jika pada kolom alamat_member terdapat data yang
bernilai denpasar maka, query tersebut akan menampilkan id_member dan
nama_member yang memiliki data bernilai denpasar pada kolom alamat_member.

2) Group By
Group by adalah salah satu klausa yang digunakan pada pernyataan select
untuk agregasi data berdasarkan group (pengelompokan) suatu kolom. Berikut ini
merupakan contoh penggunaan query group by dapat dilihat pada kode program
4.2 sebagai berikut.

SELECT jurusan, COUNT(nis_siswa) AS jumlah_siswa_perjurusan FROM


tb_siswa GROUP BY jurusan;
Kode Program 4.2 Penggunaan query group by

Kode program 4.2 merupakan penggunaan query group by yang digunakan


untuk menampilkan data yang dikelompokkan melalui nis_siswa berdasarkan
pada data yang terdapat didalam kolom jurusan. Jadi, data yang ditampilkan
adalah banyak siswa yang terdapat di masing-masing jurusan.

3) Order By
Order by adalah salah satu klausa yang berfungsi untuk mengurutkan data
baik secara ascending (dari kecil ke besar) atau descending (dari besar ke kecil).
Berikut ini merupakan contoh penggunaan query order by dapat dilihat pada kode
program 4.3 sebagai berikut.

SELECT * FROM tb_siswa WHERE jurusan='IPA' ORDER BY nis_siswa ASC;


Kode Program 4.3 Penggunaan query order by

Kode program 4.3 merupakan penggunaan query order by yang digunakan


untuk menampilkan data siswa dari tb_siswa yang memiliki data bernilai ipa
pada kolom jurusan yang nantinya ditampilkan berdasarkan urutan dari
nis_siswa terendah.

4) Alias
Alias adalah klausa yang berfungsi untuk mempermudah dalam menulis
query atau mempermudah dalam membaca query. Dengan menggunakan alias,
kita dapat mempersingkat penulisan nama tabel dan kolom. Berikut ini merupakan
contoh penggunaan alias dapat dilihat pada kode program 4.5 sebagai berikut.

SELECT jurusan, COUNT(nis_siswa) AS jumlah_s FROM tb_siswa GROUP


BY jurusan;
Kode Program 4.5 Penggunaan query alias

Kode program 4.5 merupakan penggunaan query alias yang digunakan


untuk mengelompokkan data siswa dari kolom nis_siswa berdasarkan jurusan
siswa yang terdapat pada kolom jurusan yang nantinya data jumlah siswa
perjurusan tersebut akan ditampilkan pada kolom baru yang bernama jumlah_s.

2. Perintah union digunakan untuk menggabungkan isi dari 2 tabel atau lebih
Penjelasan dari union yang ada didalam MYSQL adalah sebagai berikut.
1) Union
Penggunaan union perlu diketahui bahwa data yang sama akan
ditampilkan satu kali saja. Berikut ini merupakan contoh penggunaan union dapat
dilihat pada kode program 4.6 sebagai berikut.

SELECT City FROM Customers


UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
Kode Program 4.6 Penggunaan query union

Kode program 4.6 merupakan penggunaan query union yang digunakan


untuk menampilkan data kota yang terdapat pada tabel costumer dan tabel
suppliers yang nantinya tersebut akan ditampilkan hanya satu saja jika terdapat
data yang sama.

2) Union All
Penggunaan union all perlu diketahui bahwa jika ada data yang sama akan
tetap ditampilkan semua. Berikut ini merupakan contoh penggunaan union dapat
dilihat pada kode program 4.6 sebagai berikut.

SELECT City, Country FROM Customers


WHERE Country='Indonesian'UNION
SELECT City, Country FROM Suppliers
WHERE Country='Indonesian'
ORDER BY City;
Kode Program 4.6 Penggunaan query union all
Kode program 4.6 merupakan penggunaan query union all yang digunakan
untuk menampilkan data tiap kota berdasarkan negara yang bernilai indonesia
pada tabel costumer dan tabel suppliers.

3. Query Having dan Where pada MySQL.


Penjelasan dari query having dan where yang ada didalam MYSQL adalah
sebagai berikut.
1) Having
Penggunaan fungsi agregat terkadang memerlukan klausa where untuk
menspesifikasikan hasil. Namun, klausa where tidak boleh mengandung fungsi
agregat. Penggunaan klausa having bisa menjadi solusinya. Penggunaan klausa ini
mirip dengan where. Berikut ini merupakan contoh penggunaan having dapat
dilihat pada kode program 4.7 sebagai berikut.

SELECT nim, nama, AVG(nilai) AS rata_rata FROM nilai GROUP BY


nim HAVING AVG(nilai)>80;
Kode Program 4.7 Penggunaan query having

Kode program 4.7 merupakan query umum dari penggunaan having yang
memiliki kemiripan dengan where.

2) Where
Fungsi where digunakan untuk memfilter data pada perintah select.
Berikut ini merupakan contoh penggunaan where dapat dilihat pada kode program
4.8 sebagai berikut.

SELECT SUM(harga) AS total_harga FROM baju


WHERE tahun=2007;
Kode Program 4.8 Penggunaan query where

Kode program 4.8 merupakan query umum dari penggunaan where yang
digunakan untuk memfilter data pada perintah select.

4. Macam - Macam Join MYSQL.


Query pada Join MYSQL yang ada didalam MYSQL adalah sebagai
berikut.
1) Cross Join
Penggunaan relasi cross join sama dengan straight join yaitu untuk
menampilkan kedua tabel yang direlasikan dengan menampilkan semua record
meskipun tidak bersesuaian dengan tabel yang lain dengan jumlah record
adalah hasil kali jumlah record tabel pertama dengan jumlah record tapi kedua.
Berikut ini merupakan contoh penggunaan cross join dapat dilihat pada
kode program 4.9 sebagai berikut.
Kode Program 4.9 Penggunaan query cross join

SELECT * FROM peminjam CROSS JOIN pinjam;

Kode program 4.9 merupakan query untuk menggabungkan data yang


paling sederhana tanpa adanya kondisi seperti tabel peminjam dengan tabel
pinjam.

2) Inner Join
Penggunaan relasi inner join adalah untuk menampilkan kedua tabel yang
direlasikan dengan menampilkan record yang bersesuaian saja. Sedangkan query
on berfungsi menampilkan kedua tabel lengkap dengan semua fieldnya tanpa
menyingkat tampilan field yang direlasikan dengan menampilkan satu kali (field
yang berelasi ditampilkan dua kali yaitu saat di deret tabel pertama lalu di deret
tabel kedua. Berikut ini merupakan contoh penggunaan inner join dapat dilihat
pada kode program 4.10 sebagai berikut.

SELECT * FROM peminjam INNER JOIN pinjam ON


pinjam.id = peminjam.id;
Kode Program 4.10 Penggunaan query Inner Join

Kode program 4.10 merupakan query untuk menggabungkan data yang


paling sederhana tetapi terdapat kondisi didalamnya seperti tabel peminjam
dengan tabel pinjam.

3) Straight Join

Penggunaan relasi straight join adalah untuk menampilkan kedua tabel


yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian
dengan table yang lain dengan jumlah record adalah hasil kali jumlah record tabel
pertama dengan jumlah record. Berikut ini merupakan contoh penggunaan
straight join dapat dilihat pada kode program 4.11 sebagai berikut.

SELECT * FROM peminjam straight JOIN pinjam;


Kode Program 4.11 Penggunaan query straight join

Kode program 4.11 merupakan query untuk menampilkan kedua tabel


yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian
dengan tabel yang lain seperti tabel peminjam dengan tabel pinjam.

4) Left atau Outer Join

Penggunaan relasi left outer join adalah untuk menampilkan kedua tabel
yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian
dengan tabel yang lain dengan jumlah record tergantung jumlah record tabel
sebelah kiri. Berikut ini merupakan contoh penggunaan left outer join dapat
dilihat pada kode program 4.12 sebagai berikut.

SELECT * FROM peminjam LEFT OUTER JOIN pinjam ON


pinjam id = peminjam.id;
Kode Program 4.12 Penggunaan query left atau outer join

Kode program 4.12 merupakan query untuk menampilkan kedua tabel


yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian
dengan tabel yang lain dengan jumlah record tergantung jumlah record seperti
tabel peminjam dengan tabel pinjam.

5) Right atau Outer Join

Penggunaan relasi right outer join adalah untuk menampilkan kedua tabel
yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian
dengan tabel yang lain dengan jumlah record tergantung jumlah record tabel
sebelah kanan. Berikut ini merupakan contoh penggunaan right outer join dapat
dilihat pada kode program 4.13 sebagai berikut.
SELECT * FROM peminjam RIGHT OUTER JOIN pinjam ON pinjam.id =
peminjam.id;
Kode Program 4.13 Penggunaan query right atau outer join

Kode program 4.13 merupakan query untuk menampilkan kedua tabel


yang direlasikan dengan menampilkan semua record meskipun tidak bersesuaian
dengan tabel yang lain dengan jumlah record tergantung jumlah record seperti
tabel peminjam dengan tabel pinjam.

5. Mysql terdapat Fungsi Query Aggregation Count, Sum, Average,


Max, Min, Group Concat
Pada fungsi query count, sum, average, max, min, group concat yang
didalam MYSQL adalah sebagai berikut.
1) Count

Count adalah suatu fungsi pada MYSQL yang digunakan untuk


mendapatkan jumlah baris atau record data dari suatu tabel dengan memasukkan
kondisi tertentu sesuai dengan yang diinginkan. Berikut ini merupakan contoh
penggunaan query count dapat dilihat pada kode program 4.14 sebagai berikut.

SELECT COUNT(id_product)FROM tb_product;


Kode Program 4.14 Penggunaan query count

Kode program 4.14 merupakan query untuk menampilkan urutan jumlah


baris atau record data berdasarkan field id_product pada tabel tb_product.

2) Sum

Sum adalah suatu fungsi pada MYSQL yang digunakan untuk


menjumlahkan nilai dari sekumpulan record dalam suatu tabel. Berikut ini
merupakan contoh penggunaan query sum dapat dilihat pada kode program 4.15
sebagai berikut.

SELECT SUM(Quantity) FROM tb_detail_order;


Kode Program 4.15 Penggunaan query sum
Kode program 4.15 merupakan query untuk menampilkan jumlah data
berdasarkan field quantity pada tabel tb_detail_order.

3) Average

Average adalah suatu fungsi pada MYSQL yang digunakan untuk


menghitung nilai rata-rata dari sekumpulan record dalam suatu tabel. Berikut ini
merupakan contoh penggunaan query average dapat dilihat pada kode program
4.16 sebagai berikut.

SELECT AVG(Price)FROM tb_products;


Kode Program 4.16 Penggunaan query average

Kode program 4.16 merupakan query untuk menampilkan rata-rata


berdasarkan field price pada tabel tb_products.

4) Max

Max adalah suatu fungsi pada MYSQL yang digunakan untuk


mendapatkan nilai tertinggi atau terbesar dari sekumpulan record dalam suatu
tabel. Berikut ini merupakan contoh penggunaan query max dapat dilihat pada
kode program 4.17 sebagai berikut.

SELECT MAX(Price) AS LargestPrice FROM tb_products;


Kode Program 4.17 Penggunaan query max

Kode program 4.17 merupakan query untuk menampilkan nilai maksimum


berdasarkan field price pada tabel tb_products.

5) Min

Min merupakan kebalikan dari max dimana min adalah suatu fungsi pada
MYSQL yang digunakan untuk mendapatkan nilai terendah atau terkecil dari
sekumpulan record dalam suatu tabel. Berikut ini merupakan contoh penggunaan
query min dapat dilihat pada kode program 4.18 sebagai berikut.

SELECT MIN(Price) AS SmallestPrice FROM tb_products;


Kode Program 4.18 Penggunaan query min
Kode program 4.18 merupakan query untuk menampilkan nilai minimum
berdasarkan field price pada tabel tb_products.

6) Group Concat

Fungsi ini dapat digunakan untuk menghasilkan suatu string dari beberapa
isi record berdasarkan pengelompokkan tertentu. Berikut ini merupakan contoh
penggunaan query group_concat dapat dilihat pada kode program 4.19 sebagai
berikut.

SELECT kategori, GROUP_CONCAT (nmproduk) AS nama FROM tb_products


GROUP BY kategori;
Kode Program 4.19 Penggunaan query group_concat

Kode program 4.19 merupakan query untuk menampilkan nama – nama


produk berdasarkan field nmproduk pada tabel tb_products.

6. Built In yang ada didalam MYSQL

Built-in function merupakan query untuk memanipulasi data yang lebih


kompleks. Terdapat berbagai macam built-in function yaitu sebagai berikut.

1) Numeric Function

Numeric function merupakan fungsi yang digunakan untuk perhitungan


matematika. MySQL memiliki berbagai macam built-in numeric function antara
lain sebagai berikut.

a) Pow

Query pow berfungsi untuk menampilkan nilai pangkat dari suatu


bilangan. Penggunaan query pow yaitu pow(x,y). Hasil dari query tersebut adalah
nilai bilangan x dipangkatkan bilangan y. Implementasi query pow dapat dilihat
pada kode program 4.20.
SELECT POW(2,3);
Kode Program 4.20 Penggunaan query pow

Kode program 4.20 akan menampilkan nilai pangkat dari suatu bilangan.
Hasil yang ditampilkan hasil pangkat 3 dari bilangan 2 yaitu sama dengan 9.

b) Sqrt

Query sqrt berfungsi untuk menampilkan nilai akar dari suatu bilangan.
Penggunaan query sqrt yaitu sqrt(x). Hasil dari query tersebut adalah nilai akar
dari bilangan x. Implementasi query sqrt dapat dilihat pada kode program 4.21.

SELECT SQRT(5);
Kode Program 4.21 Penggunaan query sqrt

Kode program 4.21 akan menampilkan nilai akar dari suatu bilangan.
Hasil yang ditampilkan adalah akar dari 25 yaitu sama dengan 5.

c) Greatest
Query greatest berfungsi untuk menampilkan nilai terbesar dari parameter
input. Penggunaan query greates yaitu greatest(x1,x2,x3,...);. Implementasi
query least dapat dilihat pada kode program 4.22.

SELECT GREATEST(6, 9, 12, 13);


Kode Program 4.22 Penggunaan query greatest

Kode program 4.22 akan menampilkan nilai terbesar dari parameter input.
Hasil yang ditampilkan adalah nilai terbesar diantara 6, 9, 12, 13 yaitu sama
dengan 13.
d) Least
Query least berfungsi untuk menampilkan nilai terbesar dari parameter
input. Penggunaan query least yaitu least(x1,x2,x3,...). Implementasi query
least dapat dilihat pada kode program 4.23.
SELECT GREATEST(6, 9, 12, 13);
Kode Program 4.23 Penggunaan query least

Kode program 4.23 akan menampilkan nilai terkecil dari parameter input.
Hasil yang ditampilkan adalah nilai terkecil diantara 6, 9, 12, 13 yaitu sama
dengan 6.

2) String Function
String Function merupakan fungsi yang digunakan untuk memanipulasi
karakter atau string didalam MySQL. String Function memiliki berbagai macam
built-in antara lain sebagai berikut.
a) Length

Query length berfungsi untuk menampilkan panjang dari sebuah string.


Penggunaan query length yaitu length(string). Implementasi query length dapat
dilihat pada kode program 4.24.

SELECT LENGTH(“Martin William”);


Kode Program 4.24 Penggunaan query length

Kode program 4.24 akan menampilkan panjang dari sebuah string. Hasil
yang ditampilkan pada kode program 4.24 adalah panjang string dari “Martin
William” yaitu sama dengan 14.

b) Concat
Query concat berfungsi untuk menggabungkan atau menyambungkan dua
buah string atau lebih. Penggunaan query concat yaitu concat(string1,
string2). Implementasi query concat dapat dilihat pada kode program 4.25.

SELECT CONCATE(“Martin”,”William”);
Kode Program 4.25 Penggunaan query concat

Kode program 4.25 akan menampilkan gabungan dari dua buah string.
Hasil yang ditampilkan adalah gabungan string antara “Martin” dan “William”
yaitu “Martin William”.
c) Lcase
Query lcase berfungsi untuk mengubah string menjadi huruf kecil.
Penggunaan query lcase yaitu LCASE(string). Implementasi query lcase dapat
dilihat pada kode program 4.26.

SELECT LCASE(“Martin William”);


Kode Program 4.26 Penggunaan query lcase

Kode program 4.26 akan mengubah string “Martin William” menjadi


huruf kecil. Hasil yang ditampilkan yaitu “martin william”.

d) Ucase
Query ucase berfungsi untuk mengubah string menjadi huruf kapital.
Penggunaan query ucase yaitu ucase(string). Implementasi query ucase dapat
dilihat pada kode program 4.27.

SELECT UCASE(“Martin William”);


Kode Program 4.27 Penggunaan query ucase

Kode program 4.27 akan mengubah string “Martin William” menjadi


huruf besar. Hasil yang ditampilkan yaitu “MARTIN WILLIAM”.

3) Date Time Function


Date Time Function merupakan fungsi yang digunakan untuk
menambahkan datetime pada tanggal yang telah ditentukan. MySQL memiliki
berbagai macam built-in date time function antara lain sebagai berikut.

a) Adddate

Query adddate berfungsi untuk menambahkan datetime pada tanggal yang


ditentukan. Penggunaan query adddate yaitu adddate(tanggal,interval), interval
digunakan bisa yaitu second, minute, hour, day, week, month, year, dan
sebagainya. Implementasi query adddate dapat dilihat pada kode program 4.28.

SELECT ADDDATE(‘2016-04-29’,INTERVAL 1 YEAR);


Kode Program 4.28 Penggunaan query adddate
Kode program 4.28 akan menampilkan tanggal yang telah ditambahkan
interval tertentu. Hasil yang ditampilkan adalah tanggal 2016-04-29

ditambahkan interval 1 tahun yaitu menjadi 2016-04-29.

b) Datediff

Query datediff berfungsi untuk mencari selisih dari dua buah tanggal.
Penggunaan query datediff yaitu datediff(tanggal1,tanggal1). Implementasi
query datediff dapat dilihat pada kode program 4.29.

SELECT DATEDIFF(‘2016-05-10’,’2016-05-28’)
Kode Program 4.29 Penggunaan query datediff

Kode program 4.29 akan menampilkan selisih dari dua buah tanggal. Hasil
yang ditampilkan adalah selisih antara tanggal 2016-05-10 dan 2016-05-28 yaitu
sama dengan 18.