# PERTEMUAN 09
## DATA MANIPULATION LANGUAGE (Bagian-5)
### Live Preview
- [Click Me](https://hackmd.io/@novaardiansyah/BylwaRVX6)
## TUGAS PRAKTIKUM
### Soal A.
Buatlah struktur database **Penjualan** dan **buku** sebagai table. Ketik perintah dibawah ini :
```sql=
create database Penjualan;
use Penjualan;
create table buku(isbn varchar(15), judul char(20), pengarang char(30), harga varchar(15), stok char(10), primary key(isbn));
desc buku;
```
### Soal B.
Dari point **a)** diatas, tambahkan data sebagai berikut, ketik perintah dibawah ini:
```sql=
insert into buku values('11231', 'Matematika Diskrit', 'Hanafi', '60000', '25');
insert into buku values('11232', 'Pintar Java', 'Median', '50000', '20');
insert into buku values('11233', 'Struktur Data', 'Adrianto', '70000', '15');
insert into buku values('11234', 'Algoritma', 'SintaSari', '45000', '16');
insert into buku values('11235', 'Kewarganegaraan', 'Ramdani', '64000', '22');
insert into buku values('11236', 'Basis Data', 'Suginanto', '46000', '33');
insert into buku values('11237', 'Sistem Berkas', 'Suginanto', '60000', '20');
insert into buku values('11238', 'Web PHP', 'Median', '50000', '25');
```
### Soal C.
Dari point **a)** dan **b)** diatas, cari dan tampilkan data dengan perintah distinct, ketik perintah dibawah ini:
```sql=
select distinct pengarang from buku;
```
### Soal D.
Dari point **a)**, **b)** dan **c)** diatas, cari dan tampilkan data dengan perintah distinct, untuk menampilkan data harga.
```sql=
select distinct harga from buku;
```
### Soal E.
Untuk menampilkan data dengan Operator Aritmatika, ketik perintah dibawah ini:
```sql=
select ABS(-90);
select ACOS(-0.90);
select ASIN(-0.90);
```
### Soal F.
Dari point **e)** diatas, cari dan tampilkan data dengan perintah operator aritmatika dan data sebagai berikut :
```sql=
select ATAN(10);
select ATAN2(5, 4);
select BIN(10);
select CEILING(6.123);
select CONV(5, 15, 4);
select COS(9);
select COT(9);
select DEGREES(5);
select MOD(15, 5);
select PI();
select RADIANS(150);
select ROUND(6.43);
select ROUND(5.4315, 3);
select SIN(300);
select TAN(150);
select EXP(9);
select FLOOR(8.98);
select FORMAT(12345.67, 4);
select GREATEST(9, 200, 244, 4, 3, 1);
select HEX(15);
select LEAST(15, 3, 0, 100, 355);
select LOG(10);
select LOG10(15);
select OCT(18);
select POW(5, 4);
select RAND(180);
select RAND(10);
select SIGN(-5.5637);
select SQRT(50);
select TRUNCATE(1234.56789, 2);
```
### Soal G.
Dari point **a)** dan **b)** diatas, cari dan tampilkan data dengan dengan fungsi Agregat untuk menampilkan jumlah data record pada table buku, ketik perintah dibawah ini:
```sql=
select count(*) from buku;
select count(*) from buku where harga = 60000;
```
### Soal H.
Dari point **a)** dan **b)** diatas, cari dan tampilkan data dengan dengan fungsi Agregat untuk menampilkan nilai tertinggi, nilai terendah, dan rata-rata seluruh harga buku :
```sql=
SELECT MAX(harga) AS nilai_tertinggi, MIN(harga) AS nilai_terendah, AVG(harga) AS rata_rata FROM buku;
```
### Soal I.
Dari point **a)** dan **b)** diatas, cari dan tampilkan data dengan dengan fungsi Agregat untuk menampilkan total seluruh harga:
```sql=
SELECT SUM(harga) AS total_harga FROM buku;
```
### Soal J.
Dari point **a)** dan **b)** diatas, cari dan tampilkan data dengan dengan fungsi Agregat untuk menampilkan total keseluruhan harga setelah harga buku dikalikan dengan stok buku terlebih dahulu:
```sql=
SELECT SUM(harga * stok) AS total_harga FROM buku;
```
## TUGAS PENDAHULUAN
### Soal
1. Jelaskan perbedaan operator aritmatika dengan operator pembanding!
2. Jelaskan apa yang dimaksud dengan **distinct** pada Mysql! berikan contoh!
3. Mengapa user memerlukan tampilan data dengan fungsi **distinct**?
4. Jelaskan apa yang dimaksud dengan fungsi **Agregat** pada Mysql!
### Jawaban
1. Operator aritmatika digunakan untuk memanipulasi data yang sifatnya sederhana seperti penjumlahan, pengurangan, pembagian, dan perkalian. Sedangkan operator pembanding digunakan untuk membandingkan suatu nilai untuk di perbandingkan. Operator ini biasanya digunakan ketika kita ingin membuat perintah kondisional dalam sebuah program.
2. Distinct adalah suatu perintah untuk memanipulasi tampilan hasil dari tabel. Dengan menggunakan query DISTINCT, duplikasi akan dihapus untuk ditampilkan datanya. Contohnya, `SELECT DISTINCT nama_kolom FROM nama_table;`
3. User memerlukan tampilan data dengan fungsi distinct karena distinct hanya mengeliminasi query yang unik, atau tidak sama dilihat secara baris perbaris. Dengan menggunakan fungsi distinct, user dapat menampilkan data tunggal yang tidak ada duplikasinya
4. Fungsi Agregat adalah fungsi didalam MySQL yang digunakan untuk melakukan perhitungan pada query. Fungsi-fungsi agregat ini memungkinkan pengguna untuk dengan mudah merangkum data, melakukan perhitungan statistik, dan mendapatkan informasi penting lainnya dari basis data dalam satu perintah SQL.
## TUGAS AKHIR
### Kesimpulan
Fungsi agregat dalam MySQL memberikan kemampuan untuk melakukan operasi matematis seperti menghitung jumlah entri, menjumlahkan nilai, menemukan nilai terbesar dan terkecil, serta menghitung rata-rata dari nilai dalam kolom-kolom tertentu. Fungsi-fungsi seperti COUNT, SUM, AVG, MIN, dan MAX sangat berguna dalam melakukan analisis statistik sederhana pada data yang disimpan dalam basis data MySQL.
Sementara itu, penggunaan kata kunci DISTINCT dalam MySQL memungkinkan pengguna untuk menampilkan nilai unik dari satu kolom atau gabungan kolom dalam hasil query. DISTINCT digunakan untuk menghilangkan duplikat dari hasil query, memastikan bahwa hanya nilai unik yang ditampilkan. Dengan DISTINCT, pengguna dapat mengekstrak nilai unik dari kolom tertentu, memberikan gambaran yang lebih jelas dan spesifik tentang data yang ada, sangat berguna saat melakukan analisis di mana data unik diperlukan untuk pengambilan keputusan yang tepat.