Anda di halaman 1dari 11

LAPORAN PRAKTIKUM BASISDATA

JOBSHEET 4 (DML)

OLEH :
RIZKY ANDIKA PUTRA
22343011

DOSEN PENGAMPU :
SYUKRI,ST,M.CIO

PROGRAM STUDI INFORMATIKA


DEPARTEMEN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2024
A. TUJUAN
Diharapkan mahasiswa mampu :
1. Mahasiswa mampu mengenal dan memahami query MySQL
2. Mahasiswa mampu memanipulasi data dalam basis data MySQL.

B. ALAT DAN BAHAN


1. Personal Computer
2. Xampp, MySQL server

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 :

• Pengambilan informasi yang disimpan dalam basis data


• Penempatan informasi baru dalam basis data
• Penghapusan informasi dari basis data
• Modifikasi informasi yang disimpan dalam basis data

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.

D. LANGKAH KERJA 1. Klausa ALIAS


Perintah Select dapat dilakukan dengan memberikan nama ALIAS yaitu dapat digunakan
untuk mengganti nama_kolom dan nama_tabel. a. Memberikan nama lain pada kolom
Sintaks umum:
SELECT nama_kolom_lama AS nama_kolom_baru FROM nama_tabel;
Atau
SELECT nama_kolom AS nama_alias_kolom FROM nama_tabel

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)

Menampilkan kolom nama matakuliah dengan Alias:


mysql> select kode_matakuliah, nama_matakuliah AS MK from
matakuliah;
+-----------------
+-------------------+ |
kode_matakuliah | MK
| +-----------------
+-------------------+ | TIK115
| Dasar Algoritma |
| TIK117 | Sistem Basis Data |
| TIK119 | Struktur Data |
| UNP107 | Bahasa Indonesia |
+-----------------+-------------------+
4 rows in set (0.00 sec)

b. Menggunakan alias untuk nama tabel


Sintaks umum:
SELECT nama_kolom FROM nama_tabel AS nama_alias_tabel

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.

Contoh : menampilkan banyaknya kota dari masing-masing data mahasiswa.


mysql> select tempat_lahir, count(tempat_lahir) from mahasiswa
group by tempat_lahir;

+--------------
+---------------------+ |
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.

mysql> select tempat_lahir, count(tempat_lahir) as jumlah_mhs


from mahasiswa group by tempat_lahir;

+--------------
+------------+ |
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.

mysql> select * from 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)

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)

5. Operator AND dan OR


AND dan OR menggabungkan dua atau lebih kondisi pada klausa WHERE.
Operator AND menampilkan data jika semua kondisi yang diminta bernilai benar;
Operator OR menampilkan data jika ada kondisi yang benar.

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)

Operator AND dan OR


mysql> select * from mahasiswa where (bln_lahir='Maret' or
tmp_lahir='Bukittinggi') and (thn_lahir='1983');

+-------+-------+-------------+-----------+-----------
+-----------+ | nim | nama | tmp_lahir | tgl_lahir |
bln_lahir | thn_lahir | +-------+-------+-------------
+-----------+-----------+-----------+ | 13222 | Nurul |
Bukittinggi | 28 | Maret | 1983 |
+-------+-------+-------------+-----------+-----------
+-----------+
1 row in set (0.00 sec)

mysql> select *from mahasiswa where (bln_lahir='Maret' or


tmp_lahir='Bukittinggi') and (thn_lahir='1984');
+-------+-------+-----------+-----------+-----------
+-----------+ | nim | nama | tmp_lahir | tgl_lahir |
bln_lahir | thn_lahir | +-------+-------+-----------
+-----------+-----------+-----------+
| 13227 | Ikbal | Surabaya | 1 | Maret | 1984
|
+-------+-------+-----------+-----------+-----------
+-----------+
1 row in set (0.00 sec)

6. Query Banyak Tabel


Digunakan untuk menghasilkan informasi pada sustu database, yang datanya diperoleh dari
banyak tabel. Atau query dilakukan pada tabel yang lebih dari satu.

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 :

Mahasiswa.nama_mahasiswa → kolom nama mahasiswa yang terdapat pada tabel


mahasiswa.

Matakuliah.nama_matakuliah → kolom nama matakuliah yang terdapat pada tabel


matakuliah.

Jadwal.kode_matakuliah → kolom kode matakuliah yang terdapat pada tabel jadwal.


Jadwal.kode_dosen → kolom kode dosen yang terdapat pada tabel jadwal.

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:

mysql> select dosen.nama_dosen, matakuliah.nama_mk from dosen,


matakuliah, jadwal where dosen.kd_dosen=jadwal.kd_dosen and
matakuliah.kd_mk=jadwal.kd_mk; +------------
+-------------------+ | nama_dosen | nama_matakuliah |
+------------+-------------------+ | Fairuz | Dasar
Algoritma |
| Dagadul | Dasar Algoritma |
| Dagadul | Sistem Basis Data |
| Thamrin | Struktur Data | +------------
+-------------------+
4 rows in set (0.00 sec)

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

b. Menggunakan klausa GROUP BY

c. Menggunakan klausa HAVING

d. Menggunakan klausa operator AND


e. Menggunakan klausa operator OR

f. Menggunakan klausa operator AND dan OR sekaligus

g. Menggunakan fungsi AGREGATE

h. Untuk menampilkan data yang berasal dari dua tabel dan tiga tabel.

Anda mungkin juga menyukai