Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
A. TUJUAN 1. Mahasiswa mampu mengenal dan memahami Bahasa Pemrograman MySQL 2. Mahasiswa mampu mengimplementasikan DDL dan DML . B. ALAT DAN BAHAN 1. Personal komputer. 2. Aplikasi MySQL. C. TEORI SINGKAT
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. 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: 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 matakuliah;
kode_matakuliah,
nama_matakuliah
AS
MK
from
1
Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
+-----------------+-------------------+ | 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 : SELECT nama_kolom FROM nama_tabel AS nama_alias_tabel 2. 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) mahasiswa group by tempat_lahir; +--------------+------------+ | tempat_lahir | jumlah_mhs | +--------------+------------+ | Balikpapan | 1 | | Bukittinggi | 2 | | Maninjau | 2 | | Surabaya | 1 | +--------------+------------+ 4 rows in set (0.00 sec)
as
jumlah_mhs
from
2
Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
3. 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 nama_depan having (tahun_lahir)>1982; +------------+-------------+ | nama_depan | tahun_lahir | +------------+-------------+ | Ikbal | 1984 | | Nora | 1987 | | Nurul | 1983 | +------------+-------------+ 3 rows in set (0.00 sec)
from
mahasiswa
group
by
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)
3
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Jurusan Waktu Kode
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
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 : SELECT FROM nama _tabel WHERE kondisi_1 AND kondisi_2
4
Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
Contoh : AND mysql> select *from mahasiswa where bulan_lahir='Maret' and tempat_lahir='Bukittinggi'; +-------+--------------------+--------------+-----------+-------------+-------------+ | nim | nama | tempat_lahir | tgl_lahir | bulan_lahir | tahun_lahir | +-------+--------------------+--------------+-----------+-------------+-------------+ | 13222 | Nurul Fitri Arafah | Bukittinggi | 28 | Maret | 1983 | | 13224 | Fitri Kurnia | Bukittinggi | 18 | Maret | 1980 | +-------+--------------------+--------------+-----------+-------------+-------------+ 2 rows in set (0.00 sec)
OR mysql> select *from mahasiswa where bulan_lahir='Maret' or tempat_lahir='Bukittinggi'; +-------+--------------------+--------------+-----------+-------------+-------------+ | nim | nama | tempat_lahir | tgl_lahir | bulan_lahir | tahun_lahir | +-------+--------------------+--------------+-----------+-------------+-------------+ | 13222 | Nurul Fitri Arafah | Bukittinggi | 28 | Maret | 1983 | | 13224 | Fitri Kurnia | Bukittinggi | 18 | Maret | 1980 | | 13227 | Ikbal Nugraha | Surabaya | 1 | Maret | 1984 | +-------+--------------------+--------------+-----------+-------------+-------------+ 3 rows in set (0.00 sec)
AND dan OR mysql> select *from mahasiswa where (bulan_lahir='Maret' or tempat_lahir='Bukittinggi') and (tahun_lahir='1983'); +-------+--------------------+--------------+-----------+-------------+-------------+ | nim | nama | tempat_lahir | tgl_lahir | bulan_lahir | tahun_lahir | +-------+--------------------+--------------+-----------+-------------+-------------+ | 13222 | Nurul Fitri Arafah | Bukittinggi | 28 | Maret | 1983 | +-------+--------------------+--------------+-----------+-------------+-------------+ 1 row in set (0.00 sec)
5
Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
mysql> select *from mahasiswa where (bulan_lahir='Maret' or tempat_lahir='Bukittinggi') and (tahun_lahir='1984'); +-------+---------------+--------------+-----------+-------------+-------------+ | nim | nama | tempat_lahir | tgl_lahir | bulan_lahir | tahun_lahir | +-------+---------------+--------------+-----------+-------------+-------------+ | 13227 | Ikbal Nugraha | 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.
6
Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
Tabel Dosen +------------+------------+-------------+ | kode_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 +-----------------+-------------------+------+ | 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)
Tabel Jadwal +-------------+-----------------+------------+--------+-------------+-------+ | kode_jadwal | kode_matakuliah | kode_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)
7
Jurusan Waktu Kode
FT UNP Padang : Teknik Elektronika : 3 x 50 Menit : TIK 190
Lembaran Mata Kuliah Topik Judul
: Job Sheet : Sistem Basis Data : MySQL : Data Manipulation Language (DML)
mysql> select dosen.nama_dosen, matakuliah.nama_matakuliah from dosen, matakuliah, jadwal where dosen.kode_dosen=jadwal.kode_dosen and matakuliah.kode_matakuliah=jadwal.kode_matakuliah; +------------+-------------------+ | 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 1. 2. 3. 4. 5. 6.
Gantilah nama tabel JADWAL menjadi tabel KRS. Tambahkan kolom nim pada tabel KRS, dan isikan record-nya. Buatlah perintah SQL yang menggunakan klausa Order By, Group By, dan Having. Buatlah perintah SQL yang menggunakan operator AND dan OR. Buatlah perintah SQL yang menggunakan fungsi Agregate (masing-masing 1). Buatlah perintah SQL untuk menampilkan data yang berasal dari dua tabel dan tiga tabel.
0ooo0
8