# PERTEMUAN 08 ## DATA MANIPULATION LANGUAGE (Bagian-4) ### Live Preview - [Click Me](https://hackmd.io/@novaardiansyah/HkaVpLLfT) ## TUGAS PRAKTIKUM ### Soal A. **a)** Buatlah struktur database *penjualan* dengan *suplier* sebagai tabel. Ketik perintah dibawah ini ```sql! create database penjualan; use penjualan; create table suplier(id_suplier varchar(15), nama_suplier char(20), alamat varchar(30), no_tlp char(15), primary key(id_suplier)); desc suplier; ``` ### Soal B. **b)** Dari point *a)* diatas, tambahkan data sebagai berikut : Menambahkan data pada table penjualan dengan insert into. Ketik perintah dibawah ini : ```sql! INSERT INTO suplier VALUES ('11234', 'Elex Media', 'PalMerah', '0215455454'); INSERT INTO suplier VALUES ('11236', 'BIP', 'Cakung', '0215455234'); INSERT INTO suplier VALUES ('11235', 'AgroMedia', 'Ciganjur', '0215455776'); INSERT INTO suplier VALUES ('11232', 'Erlangga', 'Ciracas', '0215454242'); INSERT INTO suplier VALUES ('11231', 'Mizan', 'Cilandak', '0215455899'); INSERT INTO suplier VALUES ('11230', 'KompasMedia', 'PalMerah', '0215455433'); ``` ### Soal C. **c)** Dari point *a)* dan *b)* di atas, cari dan tampilkan data. Memampilkan data dengan perintah between untuk menampilkan data suplier yang mempunya id_suplier 11231 dan 11235 Ketik perintah di bawah ini: ```sql! select * from suplier where id_suplier between 11231 and 11234; ``` ### Soal D. **d)** Masih di dalam Database *penjualan*, buat table dengan nama *buku*, kemudian isi table tersebut dengan data seperti di bawah ini : ```sql! create table buku (isbn varchar(15), judul varchar(50), pengarang varchar(50), penerbit varchar(50), harga int, primary key(isbn)); insert into buku values ('2001145', 'IPS Terpadu', 'Tim Guru', 'Erlangga', 54000); insert into buku values ('2005666', 'Cerdas Berbahasa', 'Srikanti', 'KompasMedia', 60000); insert into buku values ('2007575', 'Teknik Industri', 'Suryanto', 'Penerbit Andi', 50000); insert into buku values ('2000543', 'Good English', 'Michael R', 'ElexMedia', 45000); insert into buku values ('2054449', 'Kimia Dasar', 'Michael Purba', 'Erlangga', 60000); ``` ### Soal E. **e)** Dari point *d)* di atas, cari dan tampilkan data yang mempunyai kisaran harga 50.000 sampai 60.000, sehingga seperti gambar di bawah ini. ```sql! select * from buku where harga between 50000 and 60000 ``` ### Soal F. **f)** Dari point *d)* di atas, cari dan tampilkan data menggunakan LIKE denganmenampilkan nama penerbit yang berawalan dengan huruf E, sehingga seperti gambar di bawah ini. ```sql! select * from buku where penerbit like 'E%'; ``` ### Soal G. **g)** dari point *d)* diatas, cari dan tampilkan data menggunakan *NOT LIKE* dengan tidak menampilkan *nama penerbit* yang berawal dengan huruf *E*, sehingga seperti gambar dibawah ini. ```sql! select * from buku where penerbit not like 'E%'; ``` ### Soal H. **h)** dari point *d)* diatas, cari dan tampilkan data menggunakan *IN* dan *NOT IN* untuk menampikan *pengarang* *Srikanti, Suryanto, Tim Guru* ```sql! SELECT * FROM buku WHERE pengarang IN ('Srikanti', 'Suryanto', 'Tim Guru'); SELECT * FROM buku WHERE pengarang NOT IN ('Srikanti', 'Suryanto', 'Tim Guru'); ``` ### Soal I. **i)** dari point *d)* diatas, cari dan tampilkan data nama suplier saja dengan perintah *Group By* dan *Having*. ```sql! SELECT judul FROM buku GROUP BY judul HAVING COUNT(*) > 1; ``` ### Soal J. **j)** dari point *d)* diatas, cari dan tampilkan data *ISBN* dengan *Order By Asc* dan *Desc* ```sql! select * from buku order by isbn asc; select * from buku order by isbn desc; ``` ## TUGAS PENDAHULUAN ### Soal 1. Tuliskan dan jelaskan Deklarasi sintaks perintah *Between* pada MySQL? 2. Apa fungsi perintah *Having* dalam menampilkan data? 3. Sebutkan dan jelaskan pengurutan data dalam *Order By*? 4. Apa perbedaan dari *Like* dan *Not Like*? ### Jawaban 1. **Perintah `BETWEEN` pada MySQL**: Perintah `BETWEEN` digunakan untuk memfilter data yang berada dalam rentang nilai tertentu. Contohnya: `SELECT * FROM tabel WHERE kolom BETWEEN nilai1 AND nilai2;` akan mengambil data di mana nilai kolom berada di antara `nilai1` dan `nilai2`. 2. **Fungsi perintah `HAVING`**: Perintah `HAVING` digunakan setelah `GROUP BY` untuk memfilter hasil agregasi. Ini memungkinkan Anda untuk menentukan kondisi untuk grup hasil agregasi, seperti jumlah atau rata-rata. Data yang memenuhi kondisi `HAVING` akan ditampilkan. 3. **Pengurutan dalam `ORDER BY`**: Perintah `ORDER BY` digunakan untuk mengurutkan hasil query. Anda dapat mengurutkan data berdasarkan satu atau beberapa kolom, dan Anda dapat mengatur urutan pengurutan (ascending/ascending) menggunakan `ASC` dan `DESC`. 4. **Perbedaan antara `LIKE` dan `NOT LIKE`**: `LIKE` digunakan untuk mencocokkan data yang cocok dengan pola teks tertentu, sedangkan `NOT LIKE` digunakan untuk mencocokkan data yang tidak cocok dengan pola teks tertentu. `LIKE` akan mengembalikan data yang sesuai dengan pola, sedangkan `NOT LIKE` akan mengembalikan data yang tidak sesuai dengan pola. ## TUGAS AKHIR ### Kesimpulan Dalam pengelolaan basis data, perintah-perintah seperti *BETWEEN*, *LIKE*, *IN*, dan *ORDER BY* digunakan untuk mengakses dan mengatur data dalam tabel dengan lebih efektif. Perintah *BETWEEN* digunakan untuk memfilter data di antara dua nilai yang ditentukan. Misalnya, jika ingin menampilkan semua transaksi yang terjadi antara tanggal tertentu, dapat menggunakan perintah `WHERE tanggal BETWEEN '2023-01-01' AND '2023-12-31'.` Perintah *LIKE* digunakan untuk mencocokkan pola teks dalam kolom data. Misalnya, dapat menggunakan `WHERE nama LIKE 'John%'` untuk menampilkan semua entri yang dimulai dengan `John.` Dengan menggunakan perintah-perintah ini, kita dapat mengakses, menyaring, dan mengurutkan data dalam basis data sesuai dengan kebutuhan.