JOBSHEET 4 (DML)
OLEH :
RIZKY ANDIKA PUTRA
22343011
DOSEN PENGAMPU :
SYUKRI,ST,M.CIO
C. TEORI SINGKAT
Data Manipulation Language (DML) adalah bahasa yang memungkinkan pengguna mengakses
atau memanipulasi data sebagaimana yang direpresentasikan oleh model data. Manipulasi data
adalah :
Perintah SELECT adalah perintah untuk menampilkan data yang ada di dalam suatu tabel, dan
dalam pengembangannya perintah ini akan menjadi sebuah perintah yang sangat penting dan
berpengaruh hingga saat pemrograman. Perintah SELECT akan disandingkan dengan sintaks atau
query lainnya dalam DML, seperti ALIAS, menampilkan data lebih dari 2 tabel, ORDER BY,
AND dan OR, GROUP BY, fungsi agregate, dan beberapa perintah yang lain.
Contoh :
Tabel Matakuliah
+-----------------+-------------------+------+
| kode_matakuliah | nama_matakuliah | sks
| +-----------------+-------------------
+------+ | TIK115 | Dasar
Algoritma | 2 | | TIK117 |
Sistem Basis Data | 3 | | TIK119
| Struktur Data | 2 | | UNP107
| Bahasa Indonesia | 2 |
+-----------------+-------------------
+------+ 4 rows in set (0.00 sec)
2. Klausa GROUP BY
GROUP BY adalah pernyataan yang dirangkai dengan pernyataan SELECT dalam
hubungannya dengan fungsi agregat untuk mengelompokkan hasil query untuk satu atau
beberapa field.
+--------------
+---------------------+ |
tempat_lahir | count(tempat_lahir) |
+--------------
+---------------------+
| Balikpapan | 1 |
| Bukittinggi | 2 |
| Maninjau | 2 |
| Surabaya | 1 | +--------------
+---------------------+
4 rows in set (0.01
sec)
Contoh :
Menampilkan banyaknya kota dari masing-masing data mahasiswa dengan menggunakan
alias.
+--------------
+------------+ |
tempat_lahir | jumlah_mhs |
+--------------
+------------+ | Balikpapan
| 1 |
| Bukittinggi | 2 |
| Maninjau | 2 |
| Surabaya | 1 | +--------------
+------------+
4 rows in set (0.00 sec)
3. Klausa HAVING
Klausa HAVING disediakan untuk mendukung klausa GROUP BY. Kegunaannya adalah
untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi kondisi HAVING
saja yang akan dihasilkan.
Sintaks :
SELECT nama_kolom, COUNT (nama_kolom) FROM nama_tabel GROUP BY
nama_kolom HAVING COUNT (nama_kolom) kondisi nilai.
Contoh :
mysql> select nama_depan, tahun_lahir from mahasiswa group by
nama_depan having (tahun_lahir)>1982;
+------------
+-------------+ |
nama_depan | tahun_lahir |
+------------
+-------------+ | Ikbal
| 1984 |
| Nora | 1987 |
| Nurul | 1983 |
+------------+-------------+
3 rows in set (0.00 sec)
4. Fungsi AGREGAT
Fungsi agregat dalam MySQL adalah fungsi yang menerima koleksi nilai dan mengembalikan
nilai tunggal sebagai hasilnya, seperti: COUNT, AVG, SUM, MIN, dan MAX.
+-----------------+-------------------
+------+ | kode_matakuliah | nama_matakuliah
| sks | +-----------------
+-------------------+------+ | TIK115
| Dasar Algoritma | 2 |
| TIK117 | Sistem Basis Data | 3 |
| TIK119 | Struktur Data | 2 |
| UNP107 | Bahasa Indonesia | 2 |
+-----------------+-------------------+------+
4 rows in set (0.00 sec)
a. COUNT
Fungsi COUNT Digunakan untuk menghitung jumlah record.
mysql> select COUNT(*) AS jumlah_kota from mahasiswa where
tempat_lahir='bukittinggi';
+------------
-+ |
jumlah_kota |
+------------
-+
| 2 |
+-------------+
1 row in set (0.05 sec)
b. AVG
Fungsi AVG Digunakan untuk menampikan nilai rata-rata dari suatu kolom.
mysql> select AVG(sks) as RerataSKS from matakuliah;
+----------
-+ |
RerataSKS |
+----------
-+
| 2.2500 |
+-----------+
1 row in set (0.01 sec)
c. SUM
Fungsi SUM digunakan untuk menghitung total nilai dari kolom tertentu.
mysql> select SUM(sks) AS Total_sks from matakuliah;
+----------
-+ |
Total_sks |
+----------
-+
| 9 |
+-----------+
1 row in set (0.02 sec)
d. MIN
Fungsi MIN Digunakan untuk menampikan nilai terendah dari suatu kolom.
mysql> select MIN(sks) AS Jumlah_Minimum from matakuliah;
+---------------
-+ |
Jumlah_Minimum |
+---------------
-+
| 2 |
+----------------+
1 row in set (0.00 sec)
e. MAX
Fungsi Max Digunakan untuk menampikan nilai tertinggi dari suatu kolom.
mysql> select MAX(sks) AS Jumlah_Maksimum from matakuliah;
+----------------
-+ |
Jumlah_Maksimum |
+----------------
-+
| 3 |
+-----------------+
1 row in set (0.00 sec)
Sintaks umum:
SELECT FROM nama _tabel WHERE kondisi_1 AND kondisi_2
Contoh:
Operator AND
mysql> select * from mahasiswa where bln_lahir='Maret' and
tmp_lahir='Bukittinggi';
+-------+-------+-------------+-----------+-----------
+-----------+ | nim | nama | tmp_lahir | tgl_lahir |
bln_lahir | thn_lahir |
+-------+-------+-------------+-----------+-----------
+-----------+ | 13222 | Nurul | Bukittinggi | 28 | Maret
| 1983 |
| 13224 | Fitri | Bukittinggi | 18 | Maret | 1980
|
+-------+-------+-------------+-----------+-----------
+-----------+
2 rows in set (0.00 sec)
Operator OR
mysql> select * from mahasiswa where bln_lahir='Maret' OR
tmp_lahir='Bukittinggi';
+-------+-------+-------------+-----------+-----------
+-----------+ | nim | nama | tmp_lahir | tgl_lahir |
bln_lahir | thn_lahir | +-------+-------+-------------
+-----------+-----------+-----------+
| 13222 | Nurul | Bukittinggi | 28 | Maret | 1983
|
| 13224 | Fitri | Bukittinggi | 18 | Maret | 1980
|
| 13227 | Ikbal | Surabaya | 1 | Maret | 1984 |
+-------+-------+-------------+-----------+-----------+-----------+
3 rows in set (0.00 sec)
+-------+-------+-------------+-----------+-----------
+-----------+ | nim | nama | tmp_lahir | tgl_lahir |
bln_lahir | thn_lahir | +-------+-------+-------------
+-----------+-----------+-----------+ | 13222 | Nurul |
Bukittinggi | 28 | Maret | 1983 |
+-------+-------+-------------+-----------+-----------
+-----------+
1 row in set (0.00 sec)
Caranya:
Menggunakan perintah SELECT
Perhatikan hubungan atau relasi antara masing-masing tabel.
Sertakan nama tabel melengkapi nama kolomnya.
Penulisannya: tuliskan nama tabel dan nama kolom bersama-sama dengan pemisah
tanda titik (.).
Contoh :
Tabel Dosen
+----------+------------
+-------------+ | kd_dosen |
nama_dosen | prodi |
+----------+------------
+-------------+ | 5328 | Dagadul
| Informatika |
| 5334 | Thamrin | Elektronika |
| 5335 | Fairuz | Elektronika |
| 5336 | Budiman | Informatika | +----------
+------------+-------------+
4 rows in set (0.00 sec)
Tabel Matakuliah
+----------+-------------------
+------+ | kd_mk | nama_mk
| sks | +----------
+-------------------+------+
| TIK115 | Dasar Algoritma | 2
| | TIK117 | Sistem Basis Data | 3
|
| TIK119 | Struktur Data | 2 |
| UNP107 | Bahasa Indonesia | 2 | +----------
+-------------------+------+
4 rows in set (0.00 sec)
Tabel Jadwal
+-----------+---------+----------+--------+-------------
+-------+ | kd_jadwal | kd_mk | kd_dosen | hari | jam
| ruang | +-----------+---------+----------+--------
+-------------+-------+ | JTI01 | TIK115 | 5335 |
Selasa | 10:00-12:00 | ETI02 |
| JTI011 | TIK115 | 5328 | Rabu | 08:00-10:00 |
ETI02 |
| JTI012 | TIK117 | 5328 | Selasa | 10:00-12:00 |
ETI01 |
| JTI013 | TIK119 | 5334 | Selasa | 08:00-10:00 |
ETI01 | +-----------+---------+----------+--------
+-------------+-------+
4 rows in set (0.00 sec)
Apabila ingin menampilkan informasi nama mata dosen dan nama mata kuliah yang
diajarknya, kita perlu menggabungkan ke-3 tabel. Query-nya adalah sebagai berikut:
E. EVALUASI/KASUS
1. Unduh sample basis data melalui tautan
https://www.mariadbtutorial.com/wpcontent/uploads/2019/10/nation.zip
2. Buat basis data baru dengan nama nation, kemudian import sample basis data yang sudah di
unduh pada item no. 1 di atas ke basis data nation.
3. Buatlah perintah SQL:
a. Menggunakan klausa ORDER BY
h. Untuk menampilkan data yang berasal dari dua tabel dan tiga tabel.