Nama : Praba Hridayami
NIM : 1605551058
Kelompok :9
MODUL IV
DML LANJUTAN
Tujuan
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. DML Lanjutan
DML adalah perintah-perintah untuk memanipulasi data pada basis data,
misalnya perintah untuk memilih data (query), menyisipkan, mengubah dan
menghapus data dalam basis data. DML lanjutan membahas tentang penggunaan
Query Nested, Group By, Order By dan Alias.
1.1 Query Nested
Query Nested atau Subquery adalah penggunaan statement select di dalam
statement select. Subquery dideklarasikan di dalam perintah mysql di dalam tanda
(), dan biasanya menggunakan salah satu dari statemen select, update, set, delete,
atau do.
Gambar 1.1 Implementasi Query Nested
Gambar 1.1 berisi implementasi dari query nested yang memiliki query lain
didalamnya contohnya untuk menampilkan id yang memiliki nama Udin pada
tabel peminjam.
1.2 Group By
Sintak group by merupakan sintak yang digunakan untuk
mengelompokkan data menurut sebuah data sebagai syarat.
Gambar 1.2 Implementasi Group By
Gambar 1.2 berisi implementasi dari group by untuk mengelompokkan
data dari nama_brg pada tabel barang yang disimpan dalam tabel nama_brg.
1.3 Order By
Order By adalah perintah yang digunakan untuk menampilkan data
secara terurut berdasarkan nilai tertentu. Order by dibagi 2 yaitu ascending
(terurut dari terkecil ke terbesar) dan descending (terurut dari terbesar ke terkecil).
Gambar 1.3 Implementasi Order By Ascending
Gambar 1.3 berisi implementasi dari order by untuk mengurutkan hasil query
dari harga pada tabel barang dari harga yang terkecil.
1.4 Alias
Allias di gunakan untuk memberikan nama lain atau alias pada nama
kolom dan nama tabel.
Gambar 1.4 Implementasi Allias
Gambar 1.4 berisi implementasi dari alias untuk mempermudah penulisan
query atau mempercantik tampilan hasil query pada tabel kode_brg.
2. Query Union
Terdapat suatu keadaan dimana harus mengkombinasikan hasil dari dua
atau lebih pernyataan select atau dengan kata lain menggabungkan dua atau
beberapa kolom dari tabel, sintak yang digunakan untuk menggabungkan dua atau
beberapa kolom dari tabel adalah query union.
2.1 Union
Union mengkombinasikan hasil dari 2 pernyataan select menjadi satu
kesatuan hasil kemudian mengeliminasi semua baris yang sama dari hasil (hanya
menampilkan satu baris dari beberapa baris yang sama tersebut) dengan syarat
jumlah field dan type field nya sama.
Gambar 2.1 Implementasi Union
Gambar 2.1 berisi implementasi union untuk menggabungkan tabel pada
kolom baru yang bernama nama_brg yang berisi hasil gabungan dari nama_brg
pada tabel barang dan nama_brg dari tabel barang_baru.
2.2 Union All
Union all merupakan query yang mengkombinasi hasil dari 2 penyataan
select menjadi satu kesatuan hasil. Union all akan mengkombinasikan semua
baris dari query pertama dengan baris pada query kedua. Union all akan
mendapatkan semua baris dari query pertama.
Gambar 2.2 Implementasi Union All
Gambar 2.2 merupakan implementasi union all untuk keseluruhan data
walaupun data tersebut mempunyai isi yang sama seperti tabel barang dengan
tabel barang_baru.
3. Rincian Perbedaan Having dan Where dalam Mysql
Fungsi Having terkait dengan group by dan agregasi. Fungsi having
sebenarnya memiliki kemiripan dengan where dalam penggunaannya. Having
digunakan dalam SQL karena where tidak dapat digunakan dengan fungsi
agregasi.
3.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.
select nama_kolom, aggregate_function (nama_kolom)
dari nama_tabel
where nama_kolom operator nilai
group by nama_kolom
having aggregate_function (nama_kolom) nilai operator
Kode Program 3.1 Sintak Having
Kode Program 3.1 berisi sintaks umum dari penggunaan having yang
memiliki kemiripan dengan where.
3.2 Where
Fungsi where digunakan untuk memfilter data pada perintah select. Bentuk
umum dari where adalah sebagai berikut.
SELECT column name(s)FROM table_name
WHERE column_name operator value.
Kode Program 3.2 Sintak Where
Kode Program 3.2 berisi sintaks umum dari penggunaan where yang
digunakan untuk memfilter data pada perintah select.
4. JOIN
Join adalah perintah untuk menampilkan data dari dua atau lebih tabel
yang memiliki irisan atau kesamaan kolom.
4.1 Inner Join
Inner join digunakan untuk menggabungkan dua atau lebih tabel yang
dijadikan sebagai referensi join memiliki nilai yang sama pada tabel sebelah kiri
dan pada tabel sebelah kanan. Dengan inner join, tabel akan digabungan dua arah,
sehingga tidak ada data yang null di satu sisi.
SELECT tabel_name.column_name
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name = table_name2.column_name
Kode Program 4.1 Sintak Umum Inner Join
Kode Program 4.1 memaparkan bentuk umum dari sintak inner join,
dimana sintak tersebut juga menggunakan sintak select.
SELECT m_member.id_member,t_peminjaman.id_peminjaman
FROM m_member AS mm
INNER JOIN t_peminjaman AS tp
ON mm.id_member=tp.id_member
Kode Program 4.2 Implementasi Sintak Inner Join
Kode Program 4.2 akan menampilkan kolom id_member dari tabel m_member
dan kolom id_peminjaman dari tabel t_peminjaman yang dilakukan dari tabel
m_member alias mm. Tabel t_peminjaman alias tp akan berelasi dengan tabel
m_member dengan menghubungkan id_member pada tabel mm dengan id_member
pada tabel tp untuk bisa menampilkan id_member dari tabel m_member dan kolom
id_peminjaman dari tabel t_peminjaman.
4.2 Left Join
Left join digunakan untuk menggabungkan dua atau lebih tabel dimana
field yang digunakan sebagai referensi pada tabel sebelah kiri akan tetap
ditampilkan walaupun tidak ada dalam tabel sebelah kanan.
SELECT field_name FROM table_name1
LEFT JOIN table_name2 ON table_name1.field_name =
table_name2.field_name
Kode Program 4.3 Sintak Umum Left Join
Kode Program 4.3 memaparkan bentuk umum dari sintak left join, dimana
sintak tersebut juga menggunakan sintak select.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan,
pesan.id_pesan, pesan.tgl_pesan
FROM pelanggan LEFT JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Kode Program 4.4 Implementasi Sintak Left Join
Kode Program 4.4 merupakan contoh pemakaian sintak left join, dimana
dalam sintak tersebut menampilkan tabel id_pelanggan dari tabel pelanggan,
kolom nm_pelanggan dari tabel pelanggan, kolom id_pesan dari tabel pesan
dan kolom tgl_pesan dari tabel pesan. Kedua tabel tersebut berelasi melalui
id_pelanggan. Namun semua data dari tabel pelanggan tetap ditampilkan
seluruhnya biarpun tidak memiliki data di tabel pesan sebelah kanan.
4.3 Right Join
Right join digunakan untuk menggabungkan dua atau lebih tabel dimana
semua field yang ada pada tabel sebalah kanan ditampilkan walapun tidak
memiliki nilai yang sama dengan referensi yang ada dalam tabel sebelah kiri.
Right join merupakan kebalikan left join.
SELECT field_name
FROM table_name1
LEFT JOIN table_name2
ON table_name1.field_name = table_name2.field_name
Kode Program 4.5 Sintak Umum Right Join
Kode Program 4.5 memaparkan bentuk umum dari sintak left join, dimana
sintak tersebut juga menggunakan sintak select.
3. select * from peminjam right outer join pinjam on
pinjam.id = peminjam.id;
Kode Program 4.6 Implementasi Right Join
Kode Program 4.4 berisi kode program 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. Query Aggregation
Fungsi agregat (aggregation) adalah fungsi yang terdapat dalam SQL yang
berfungsi untuk menerima koleksi nilai dan mengembalikan nilai tunggal sebagai
hasilnya.
5.1 Fungsi Count
Fungsi count berfungsi untuk menghitung banyaknya data atau baris pada
kriteria tertentu dalam sebuah tabel.
Gambar 5.1 Implementasi Fungsi Count pada Tabel barang
Gambar 5.1 berarti perintah untuk menampilkan banyaknya data yang
memiliki stock sejumlah 15 pada tabel barang.
5.2 Fungsi Sum
Fungsi sum digunakan untuk menjumlahkan data yang telah di-insert pada
sebuah tabel sebelumnya.
Gambar 5.2 Implementasi Fungsi Sum pada Tabel barang
Gambar 45.2 berisi perintah untuk menjumlahkan banyaknya stock pada tabel
barang yang berjumlah 62.
5.3 Average
Average adalah suatu fungsi pada SQL yang digunakan untuk
mendapatkan rata-rata dari suatu data.
Gambar 5.3 Implementasi Fungsi Average pada Tabel barang
Gambar 5.3 berisi perintah untuk mencari rata-rata dari suatu tabel yaitu
tabel barang pada kolom stock dengan rata-rata sejumlah 124000.
5.4 Max
Max adalah suatu fungsi pada SQL yang digunakan untuk mendapatkan
nilai tertinggi dari sekumpulan record.
Gambar 5.4 Implementasi Fungsi Max pada Tabel barang
Gambar 5.4 berisi perintah untuk mencari nilai tertinggi dari suatu data
yaitu mencari stock terbesar pada tabel barang yang memiliki stock terbesar
sejumlah 20.
5.5 Min
Min adalah suatu fungsi pada SQL yang digunakan untuk mendapatkan
nilai terkecil dari sekumpulan record.
Gambar 5.5 Implementasi Fungsi Min pada Tabel barang
Gambar 5.5 berisi perintah untuk mendapatkan nilai terkecil dari suatu data
yaitu mencari stock terkecil pada tabel barang yan memiliki jumlah 8.
5.6 Group Concat
Group Concat adalah menggabungkan beberapa row dengan kolom yang
sama ke dalam satu baris.
Gambar 5.6 Tabel produk
Gambar 5.6 berisi implementasi dari group_concat yang terdapat pada
tabel produk yang berisi kolom idproduk, nmproduk, harga, dan kategori.
Tabel telah dibuat, sintak dari group_concat untuk menggabungkan
beberapa row dengan kolom yang sama ke dalam satu baris.
Gambar 5.7 Sintaks dari group_concat
Gambar 5.7 berisi sintaks dalam menggunakan group_concat pada tabel
produk.
Gambar 5.8 Hasil dari group_concat
Gambar 5.8berisi hasil dari penggunaan group_concat yang terdiri dari
dua kolom yaitu kolom kategori dan kolom nama.
6. Built in
Built-in function merupakan sintak untuk memanipulasi data yang lebih
kompleks. Terdapat berbagai macam built-in function yaitu sebagai berikut.
6.1 Numeric Function
Numeric function merupakan fungsi yang digunakan untuk perhitungan
matematika. MySQL memiliki berbagai macam built-in numeric function antara
lain sebagai berikut.
6.1.1Pow
Sintak pow berfungsi untuk menampilkan nilai pangkat dari suatu
bilangan. Penggunaan sintak pow yaitu pow(x,y). Hasil dari sintak tersebut
adalah nilai bilangan x dipangkatkan bilangan y. Implementasi sintak pow dapat
dilihat pada Kode Program 6.1.
SELECT POW(2,3);
Kode Program 6.1 Pow
Kode program 5.1 akan menampilkan nilai pangkat dari suatu bilangan.
Hasil yang ditampilkan adalah hasil pangkat 3 dari biangan 2 yaitu sama dengan
9.
6.1.2Sqrt
Sintak sqrt berfungsi untuk menampilkan nilai akar dari suatu bilangan.
Penggunaan sintak sqrt yaitu sqrt(x). Hasil dari sintak tersebut adalah nilai akar
dari bilangan x. Implementasi sintak sqrt dapat dilihat pada Kode Program 6.2.
SELECT SQRT(5);
Kode Program 6.2 Sqrt
Kode Program 6.2 akan menampilkan nilai akar dari suatu bilangan. Hasil
yang ditampilkan adalah akar dari 25 yaitu sama dengan 5.
6.1.3Greatest
Sintak greatest berfungsi untuk menampilkan nilai terbesar dari parameter
input. Penggunaan sintak greates yaitu greatest(x1,x2,x3,...);.
Implementasi sintak least dapat dilihat pada Kode Program 6.3.
SELECT GREATEST(6, 9, 12, 13);
Kode Program 6.3 Greatest
Kode Program 6.3 akan menampilkan nilai terbesar dari parameter input.
Hasil yang ditampilkan adalah nilai terbesar diantara 6, 9, 12, 13 yaitu sama
dengan 13.
6.1.4Least
Sintak least berfungsi untuk menampilkan nilai terbesar dari parameter
input. Penggunaan sintak least yaitu least(x1,x2,x3,...). Implementasi sintak
least dapat dilihat pada Kode Program 6.4.
SELECT LEAST(6, 9, 12, 13);
Kode Program 6.4 Least
Kode Program 6.4 akan menampilkan nilai terkecil dari parameter input.
Hasil yang ditampilkan adalah nilai terkecil diantara 6, 9, 12, 13 yaitu sama
dengan 6.
6.2 String Function
Fungsi string adalah fungsi yang diperuntukkan bagi data yang
mempunyai tipe data teks (string) dengan menggunakan tanda ( ) atau ( ).
6.2.1Length
Sintak length berfungsi untuk menampilkan panjang dari sebuah string.
Penggunaan sintak length yaitu lengthstring). Implementasi sintak length
dapat dilihat pada kode program 6.5.
SELECT LENGTH(Ninja Warrior);
Kode Program 6.5 Length
Kode Program 6.5 akan menampilkan panjang dari sebuah string. Hasil
yang ditampilkan pada Kode Program 5.5 adalah panjang string dari Ninja
Warrior yaitu sama dengan 12.
6.2.2Concat
Sintak concat berfungsi untuk menggabungkan atau menyambungkan dua
buah string atau lebih. Penggunaan sintak concat yaitu concat(string1,
string2). Implementasi sintak concat dapat dilihat pada Kode Program 6.6.
SELECT CONCATE(Ninja,Warrior);
Kode Program 6.6 Concat
Kode Program 5.6 akan menampilkan gabungan dari dua buah string.
Hasil yang ditampilkan adalah gabungan string antara Ninja dan Warrior
yaitu Ninja Warrior.
6.2.3Lcase
Sintak lcase berfungsi untuk mengubah string menjadi huruf kecil.
Penggunaan sintak lcase yaitu LCASE(string). Implementasi sintak lcase dapat
dilihat pada Kode Program 6.7.
SELECT LCASE(Ninja Warrior);
Kode Program 6.7 Lcase
Kode Program 5.7 akan mengubah string Ninja Warrior menjadi huruf
kecil. Hasil yang ditampilkan yaitu ninja warrior.
6.2.4Ucase
Sintak ucase berfungsi untuk mengubah string menjadi huruf kapital.
Penggunaan sintak ucase yaitu ucase(string). Implementasi sintak ucase dapat
dilihat pada Kode Program 6.8.
SELECT UCASE(Ninja Warrior);
Kode Program 6.8 Ucase
Kode Program 6.8 akan mengubah string Ninja Warrior menjadi huruf
besar. Hasil yang ditampilkan yaitu NINJA WARRIOR.
6.3 Date Time Function
Fungsi date time digunakan untuk menambahkan datetime pada tanggal
yang telah ditentukan.
6.3.1Adddate
Sintak adddate berfungsi untuk menambahkan datetime pada tanggal yang
ditentukan. Penggunaan sintak adddate yaitu adddate(tanggal,interval),
interval digunakan bisa yaitu second, minute, hour, day, week, month, year, dan
sebagainya. Implementasi sintak adddate dapat dilihat pada Kode Program 6.9.
SELECT ADDDATE(2016-04-29,INTERVAL 1 YEAR);
Kode Program 6.9 Adddate
Kode Program 6.9 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.
6.3.2Datediff
Sintak datediff berfungsi untuk mencari selisih dari dua buah tanggal.
Penggunaan sintak datediff yaitu datediff(tanggal1,tanggal1). Implementasi
sintak datediff dapat dilihat pada Kode Program 6.10.
SELECT DATEDIFF(2016-05-10,2016-05-28)
Kode Program 6.10 Datediff
Kode Program 5.60 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.