Anda di halaman 1dari 99

MODUL PRAKTIKUM

BASIS DATA 2
AII342

Disusun Oleh:
1. Fathurrahmani, M.Kom NIK. 140102098
2. Hendrik Setyo Utomo, S.T., MMSI NIK. 120102079
3. Jaka Permadi, S.Si., M.Cs NIK. 160801168

PROGRAM STUDI TEKNIK INFORMATIKA


POLITEKNIK NEGERI TANAH LAUT
TAHUN 2017
HALAMAN PENGESAHAN

BASIS DATA 2
AII342

Tanggal : ……………………
Dikaji ulang oleh : Ketua Jurusan Teknik Informatika
Disetujui oleh : Wakil Direktur 1 Bidang Akademik

Disiapkan Oleh:
Koordinator Team Teaching, Anggota,

Fathurrahmani, M. Kom Hendrik Setyo Utomo, S.T., MMSI Jaka Permadi, S.Si., M.Cs
NIK. 140102098 NIK. 120102079 NIK. 160801168

Diperiksa Oleh: Disahkan Oleh:


Ketua Jurusan, Wakil Direktur Bidang Akademik,

Veri Julianto, M.Si. Jaka Darma Jaya, M.P, M.Sc


NIP. 199007112015041001 NIP. 198404282011011003

ii
KATA PENGANTAR

Segala puji dan syukur kami panjatkan kehadirat Allah SWT.


Alhamdulillahi Rabbil’Aalamin, atas limpahan rahmat dan karunia-Nya penyusun
dapat menyelesaikan penyusunan modul ini. Shalawat dan salam dengan ucapan
Allahumma sholli ’ala Muhammad wa ’ala ali Muhammad penyusun sampaikan
untuk junjungan kita Nabi besar Muhammad SAW.
Seperti layaknya sebuah modul, maka pembahasan dimulai dengan
menjelaskan tujuan yang hendak dicapai dan disertai dengan latihan yang
mengukur tingkat penguasaan materi setiap topik. Dengan demikian pengguna
modul ini secara mandiri dapat mengukur tingkat ketuntasan yang dicapainya.
Penyusun menyadari sepenuhnya bahwa modul ini tentu punya banyak
kekurangan. Untuk itu penyusun dengan berlapang dada menerima masukan dan
kritikan konstruktif dari berbagai pihak demi kesempurnaannya di masa yang akan
datang. Akhirnya kepada Allah jualah penyusun bermohon semoga semua ini
menjadi amal saleh bagi penyusun dan bermanfaat bagi pembaca.

Pelaihari, Juli 2017

Tim Penyusun

iii
TATA TERTIB PRAKTIKUM

1. Mahasiswa peserta praktikum berpakaian sopan dan pantas, dan tidak


diperkenankan memakai alas kaki ke dalam ruang praktikum,
2. Sebelum kegiatan praktikum dimulai mahasiswa diharapkan untuk
mempersiapkan diri terlebih dahulu perihal materi perkuliahan yang akan
dibahas.
3. Mahasiswa dilarang untuk memasuki ruangan sebelum dijinkan oleh dosen /
instruktur / asisten / staff / kepala laboratorium komputer.
4. Mahasiswa masing-masing menempati komputer yang telah disediakan
5. Mahasiswa menyiapkan buku modul praktek yang telah dibagikan
6. Mahasiswa mengerjakan materi dan tugas praktikum sesuai modul praktek
7. Mahasiswa dilarang berbicara, bercakap-cakap apabila tidak diperintahkan oleh
Dosen / Instruktur Laboratorium Komputer baik sebelum maupun selama
kegiatan berlangsung,
8. Mahasiswa mengisi absensi kehadiran praktikum yang telah disediakan
9. Selama kegiatan perkuliahan berlangsung mahasiswa diwajibkan untuk
menjaga ketertiban di dalam ruangan laboratorium komputer, mahasiswa
mematikan komputer setelah selesai kegiatan perkuliahan lab.
10. Mahasiswa peserta praktikum dilarang main game, arogan, merokok, makan
atau minum di dalam ruangan laboratorium komputer, mahasiswa yang main
game, arogan, makan, atau minum akan langsung dikeluarkan dari laboratorium
komputer.
11. Mahasiswa dilarang mengoperasikan (menggunakan, memindahkan peralatan
laboratorium), sebelum mendapat izin dari dosen / instruktur / asisten / staff /
kepala laboratorium komputer.
12. Apabila mahasiswa tidak mengerti cara mengoperasikan alat yang tersedia, agar
menanyakan kepada Dosen / Instruktur / Asisten / Staff Laboratorium
Komputer.
13. Mahasiswa tidak mengganggu kegiatan belajar-mengajar. (Seperti : mengobrol,
atau menggunakan Telepon Seluler), keluar dan masuk Laboratoirum Komputer
tanpa meminta ijin terlebih dahulu kepada dosen yang bersangkutan.
14. Apabila kegiatan Laboratorium sudah selesai, mahasiswa diharuskan untuk
mengembalikan semua peralatan pada posisi semula,
15. Apabila terjadi kerusakan peralatan, agar mahasiswa segera melaporkan kepada
Dosen / Instruktur / Asisten / Staff / Kepala Laboratorium Komputer, adapun
jika kerusakan disebabkan oleh kelalaian mahasiswa maka yang bersangkutan
diharuskan mengganti kerusakan tersebut,
16. Apabila mahasiswa tidak mengikuti ketentuan diatas maka akan dikenakan
sanksi baik administrasi maupun akademik

iv
DAFTAR ISI

HALAMAN PENGESAHAN ................................................................................. ii


KATA PENGANTAR ........................................................................................... iii
TATA TERTIB PRAKTIKUM ............................................................................. iv
DAFTAR ISI ........................................................................................................... v

BAB I PENDAHULUAN ....................................................................................... 1


1.1 Pengenalan Tools untuk Pengolahan Database ........................................ 2
1.2 Database Languages (DDL dan DML)..................................................... 8
BAB 2 PENGANTAR SQL .................................................................................. 18
2.1 Membuka Database MySQL dengan Command Prompt ....................... 19
2.2 Struktur Dasar dari Query SQL .............................................................. 24
2.3 Operasi Dasar SQL ................................................................................. 24
2.4 SQL Data Definition .............................................................................. 26
BAB 3 MODIFIKASI DATABASE..................................................................... 32
3.1 NULL Values ......................................................................................... 33
3.2 INSERT .................................................................................................. 34
3.3 UPDATE ................................................................................................ 35
3.4 DELETE ................................................................................................. 38
BAB 4 FUNGSI AGREGAT ................................................................................ 39
4.1 Average................................................................................................... 40
4.2 Minimum ................................................................................................ 41
4.3 Maximum ............................................................................................... 41
4.4 Total........................................................................................................ 42
4.5 Count ...................................................................................................... 42
BAB 5 SET OPERATIONS ................................................................................. 43
5.1 Operasi Union......................................................................................... 45
5.2 Operasi Intersect ..................................................................................... 45
5.3 Operasi Except........................................................................................ 46
BAB 6 MULTIPLE RELATIONS........................................................................ 47
6.1 DDL untuk Multiple Relations ............................................................... 49
6.2 DML untuk Multiple Relation ................................................................ 51
6.3 SELECT dengan Klausa Where ............................................................. 54
v
BAB 7 SUBQUERY BERSARANG .................................................................... 56
7.1 SELECT ................................................................................................. 57
7.2 INSERT .................................................................................................. 58
7.3 UPDATE ................................................................................................ 60
7.4 DELETE ................................................................................................. 60
BAB 8 JOIN .......................................................................................................... 62
8.1 Natural Join ............................................................................................ 63
8.2 Left Join dan Right Join.......................................................................... 68
8.3 Inner Join ................................................................................................ 69
BAB 9 VIEW ........................................................................................................ 70
9.1 Definisi View .......................................................................................... 71
9.2 Membangun View ................................................................................... 72
9.3 Menghapus View .................................................................................... 73
BAB 10 ORDERING, GROUPING DAN HAVING ........................................... 75
10.1 Ordering ............................................................................................. 76
10.2 Grouping ............................................................................................. 77
10.3 Having................................................................................................. 77
BAB 11 FUNGSI DAN PROSEDUR .................................................................. 78
11.1 Fungsi ................................................................................................. 79
11.2 Prosedur .............................................................................................. 79
BAB 12 TRIGGERS ............................................................................................. 80
BAB 13 RECURSIVE QUERIES ........................................................................ 83
BAB 14 RANKING .............................................................................................. 85
BAB 15 TRANSAKSI .......................................................................................... 87
15.1 Merancang Transaksi dengan ERD .................................................... 88
15.2 Query untuk Transaksi ........................................................................ 89
BAB 16 DATABASE TERINTEGRASI ............................................................. 90

vi
1 BAB I
PENDAHULUAN

1. Judul Materi
Pendahuluan

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa dapat memahami konsep penggunaan bahasa database DDL dan
DML, dan arsitektur database (C2, A1, P1)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal

4. Teori
Pada mata kuliah Basis Data 1, mahasiswa diajarkan mengenai perancangan
basis data dengan menggunakan ERD dan normalisasi. Mata kuliah Basis Data
2 merupakan mata kuliah lanjut dari Basis Data 1. Pada mata kuliah ini
mahasiswa diajarkan mengenai penggunaan tools dengan bahasa-bahasanya
untuk melakukan pengelolaan basis data. Pengelolaan basis data ini termasuk
di dalamnya dengan menggunakan DDL (Data Definition Language) dan DML
(Data Manipulation Language). Sesuai dengan namanya, DDL digunakan
untuk menyediakan database beserta tabel-tabelnya yang bersesuaian dengan
arsitektur database. Sementara DML digunakan untuk memanipulasi data pada
suatu database.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang materi pendahuluan
ini, yang meliputi DDL dan DML, serta arsitektur database.
b. Tahapan latihan,

1
2

• Pemberian contoh kepada mahasiswa tentang cara mengoperasikan


XAMPP dan menggunakannya untuk mengakses PHPMyAdmin.
• Pemberian contoh kepada mahasiswa tentang mengelola database
menggunakan PHPMyAdmin.
• Mahasiswa berlatih mengelola database menggunakan PHPMyAdmin
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
a. Membangun database menggunakan GUI, yang dibuka melalui browser
pada alamat localhost/phpmyadmin sesuai dengan materi yang diberikan.
b. Melakukan DDL dan DML terhadap database yang telah dibangun
berdasarkan ERD yang telah dibangun sebelumnya, sesuai dengan materi
yang diberikan.

7. Tugas
Buatlah sebuah laporan mengenai pembangunan database, DDL dan DML dari
suatu kasus yang telah ditentukan, yang dirancang dengan menggunakan ERD.

8. Materi

1.1 Pengenalan Tools untuk Pengolahan Database


MySQL adalah open source database yang sangat populer digunakan di
dunia. MySQL dapat dengan efektif membantu seorang pengembang dalam
mengembangkan aplikasi database dengan performansi yang tinggi.

Gambar 1.1 Logo MySQL

Fitur-fitur MySQL antara lain:


• Relational Database System. Seperti halnya software database lain yang ada
di pasaran, MySQL termasuk RDBMS.
3

• Arsitektur Client-Server. MySQL memiliki arsitektur client-server dimana


server database MySQL terinstal di server. Client MySQL dapat berada di
komputer yang sama dengan server,dan dapat juga di komputer lain yang
berkomunikasi dengan server melalui jaringan bahkan internet.
• Mengenal perintah SQL standar. SQL (Structured Query Languange)
merupakan suatu bahasa standar yang berlaku di hampir semua software
database. MySQL mendukung SQL versi SQL:2003.
• Mendukung Sub Select. Mulai versi 4.1 MySQL telah mendukung select
dalam select (sub select).
• Mendukung views. MySQL mendukung views sejak versi 5.0
• Mendukung stored prosedured (SP). MySQL mendukung SP sejak versi 5.0
• Mendukung replication
• Mendukung transaksi
• Mendukung foreign key
• Tersedia fungsi GIS
• Free (bebas didownload)
• Stabil dan tangguh
• Fleksibel dengan berbagai pemrograman
• Security yang baik
• Dukungan dari banyak komunitas.
• Perkembangan software yang cukup cepat.

Untuk dapat mengelola database MySQL, diperlukan XAMPP, yang mana dapat
didownload juga secara gratis. Berikut cara installasi XAMPP:
• Jika belum memiliki file instalasi, download file instalasi dari web
manapun.
• Setelah selesai mendownload file instalasi, jalankan file tersebut dengan
klik 2 kali file tersebut.
• Pertama saat file installasi dijalankan kita diminta untuk memilih bahasa
yang ingin digunakan saat proses installasi, setelah selesai memilih bahasa
yag akan digunakan tekan tombol next.
4

Gambar 1.2 Installer Language for XAMPP

• Selanjutnya akan muncul welcome screen yang berisi informasi tentang


versi yang akan kita install, disini kita diminta untuk menutup terlebih
dahulu program-program yang sedang aktif selama proses instalasi, jika
sudah tekan tombol next.

Gambar 1.3 XAMPP 1.6.5 Win32 (Basic Package)

• Berikutnya kita diberikan kesempatan untuk memilih lokasi program akan


diinstall, secara default XAMPP akan di install pada folder C:/xampp.

Gambar 1.4 Tampilan installer XAMPP


5

Gambar 1.5 Pemilihan lokasi untuk install XAMPP

• Selanjutnya akan ditampilkan pilihan-pilihan fasilitas yang ada, disini


terdapat pilihan untuk mengaktifkan Apache, MySql dan Filezilla sebagai
service.

Gambar 1.6 Tampilan untuk mengaktifkan Apache, MySQL dan FileZilla

• Berikutnya XAMPP akan melakukan installasi program pada komputer


anda.
6

Gambar 1.7 Proses installasi XAMPP

• Setelah selesai melakukan installasi pada komputer anda akan muncul


sebuah pesan yang memberitahukan proses berhasil dilakukan.

Gambar 1.8 Installasi XAMPP selesai

• Selanjutnya XAMPP akan langsung mencoba menjalankan hasil installasi.


7

Gambar 1.9 Start Apache dan MySQL pada XAMPP

• Jika Apache dan MySQL sudah running, kita dapat memulai operasi
database dengan membuka browser (seperti Mozilla Firefox, Google
Chrome, Internet Explorer, dan sebagainya), kemudian ketikkan URL:
localhost/phpmyadmin/

Gambar 1.10 Tampilan localhost/phpmyadmin


8

1.2 Database Languages (DDL dan DML)


DDL merupakan kependekan dari Data Definition Language mempunyai
fungsi utama untuk mendefinisikan data dalam database secara logika. DDL
digunakan diantaranya untuk mendefiniskan karakteristik dari record (meliputi
nama, tipe dan lebar dari field), untuk menentukan kunci field, menyediakan cara
untuk menentukan hubungan dengan data di field lain, mengubah struktur dari
record, menapilkan struktur dari record, dan lain-lain. DDL digunakan untuk
mendefinisikan, mengubah, serta menghapus database dan objek-objek yang
diperlukan dalam database, misalnya tabel.
DML (Data Manipulation Language) merupakan perintah-perintah yang
memungkinkan pengguna melakukan akses dan manipulasi data sebagaimana yang
telah diorganisasikan sebelumnya dalam model data yang tepat. DML digunakan
untuk memanipulasi database yang telah didefinisikan dengan DDL.

1.2.1 DDL pada localhost/phpmyadmin


Berikut akan dijelaskan DDL pada localhost, dengan memanfaatkan GUI
dari localhost tersebut. Di sini akan menggunakan contoh kasus database
perpustakaan.

1.2.1.1 Membangun database perpustakaan


Pilih menu Databases yang terletak di pojok kiri atas, sehingga GUI
memiliki tampilan sebagai berikut:

Gambar 1.11 Tampilan menu Databases


9

Selanjutnya pada kolom Create database, isikan nama database yang ingin kita
buat, yaitu perpustakaan. Lalu klik tombol Create.

Gambar 1.12 Membuat database baru di localhost/phpmyadmin

Setelah di klik tomblo Create akan muncul tampilan sebagai berikut:

Gambar 1.13 Database perpustakaan baru yang belum memiliki tabel

1.2.1.2 Membuat tabel baru


Misalkan kita akan membuat tabel baru. Tabel baru tersebut adalah tabel buku yang
memiliki 2 atribut, yaitu judul dan tahun. Maka berdasarkan gambar sebelumnya,
10

kita isikan buku pada kolom Name, lalu pada Number of columns kita isikan 2.
Kemudian klik tombol Go.

Gambar 1.14 Tampilan pengisian atribut dari suatu tabel

Setelah semua nama atribut dan tipe datanya diisikan, selanjutnya klik tombol Save.

Gambar 1.15 Tampilan localhost/phpmyadmin setelah pembuatan tabel baru

1.2.1.3 Menampilkan struktur tabel


Untuk menampilkan struktur tabel, cukup klik saja menu structure dari tabel yang
ingin ditampilkan strukturnya. Misal pada Gambar 1.15, terlihat bahwa tabel yang
ada adalah tabel buku, dimana di sebelah kanannya terdapat menu browse,
11

structure, dan lain-lain. Maka dengan mengklik tabel structure, struktur tabel
buku akan ditampilkan.

Gambar 1.16 Struktur tabel buku

1.2.1.4 Merubah struktur tabel


Perubahan struktur tabel juga dapat dilakukan dengan mudah di
localhost/phpmyadmin. Misal kita diharuskan menambah atribut penerbit dan
pengarang dalam tabel buku. Langkah yang dilakukan adalah dengan mengisikan
2 pada kolom Add, yaitu bagian yang dilingkari merah pada gambar berikut.

Gambar 1.17 Langkah awal menambahkan 2 atribut dari suatu tabel


12

Selanjutnya dengan mengklik tombol Go, kita akan diarahkan ke halaman berikut:

Gambar 1.18 Penambahan atribut baru pada suatu tabel

Setelah itu klik Save. Sehingga struktur dari tabel buku adalah sebagai berikut:

Gambar 1.19 Struktur tabel buku setelah penambahan atribut

Kemudian kita juga diminta merubah length dari tipe data varchar pada
atribut judul menjadi 100. Perhatikan pada struktur tabel buku di atas. Di sebelah
kiri atribut judul terdapat kotak kosong. Klik kotak tersebut untuk memfokuskan
perubahan yang akan dilakukan (yaitu pada atribut judul). Lalu klik Change untuk
13

melakukan perubahan terhadap atribut judul tersebut. Setelah dilakukan perubahan


berikut struktur dari tabel buku.

Gambar 1.20 Struktur tabel buku yang telah dilakukan perubahan tipe data pada atribut judul

1.2.2 DML pada localhost/phpmyadmin


Berikut akan dijelaskan DML pada localhost.

1.2.2.1 Menambahkan data baru


Untuk menambahkan data baru, klik menu Insert. Menu Insert terletak di
atas tampilan, yang pada gambar berikut ditandai dengan lingkaran merah.

Gambar 1.21 Lokasi menu insert, untuk menambahkan data baru pada suatu tabel
14

Setelah menu insert diklik, kita dapat menambahkan data melalui halaman berikut:

Gambar 1.22 Tampilan insert data di localhost/phpmyadmin

Setelah mengisikan data baru, klik tombol Go untuk menyimpannya. Untuk melihat
data yang telah dimasukkan, dapat mengklik menu Browse yang ada di bagian atas.

Gambar 1.23 Tampilan data pada tabel buku

Kita dapat mengisikan banyak data baru di tabel buku tersebut. Bahkan
dengan sekali insert, kita bisa memasukkan beberapa data sekaligus. Berikut
contoh tampilan list dari data buku setelah dilakukan proses insert untuk beberapa
data buku.
15

Gambar 1.24 Tampilan list data buku

1.2.2.2 Mengedit data


Selain dapat memasukkan data baru, localhost/phpmyadmin juga
menyediakan fitur mengedit data dengan mudah. Akan tetapi sebelum dapat
melakukan proses pengeditan, tabel harus memiliki primary key (PK) terlebih
dahulu. Misalkan pada tabel buku, atribut judul akan dijadikan PK. Caranya adalah
pilih menu Structure pada tabel buku tersebut, kemudian pada atribut judul pilih
menu Primary seperti pada gambar berikut:

Gambar 1.25 Menu Primary pada structure suatu tabel

Setelah atribut judul dijadikan PK, tampilan tabel buku akan menjadi seperti
berikut:
16

Gambar 1.26 Tampilan suatu tabel yang memiliki PK

Untuk melakukan pengeditan suatu data, cukup mengklik menu Edit yang
terletak di sebelah kiri dari suatu data pada tabel buku, seperti yang dapat terlihat
pada Gambar 1.26 di atas. Setelah diklim menu Edit tersebut, akan tampil halaman
seperti pada gambar berikut:

Gambar 1.27 Halaman edit data pada http://localhost/phpmyadmin

Cukup ubah saja data yang ingin diubah, lalu kemudian klik Go. Maka data telah
terubah.
17

1.2.2.3 Menghapus data


Jika dilihat pada Gambar 1.26 di atas, setiap data selain memiliki menu Edit
di sebelah kirinya, juga memiliki menu Delete. Menu Delete ini digunakan untuk
menghapus suatu data dari suatu tabel. Misalkan kita ingin menghapus buku yang
berjudul “Topeng Kehidupan”, langkah untuk menghapusnya adalah dengan
mengklik menu Delete seperti pada gambar berikut:

Gambar 1.28 Menu Delete pada data buku yang berjudul “Topeng Kehidupan”

Setelah menu Delete diklik, akan tampil suatu validasi apakah kita benar-
benar ingin menghapus data tersebut. Jika yakin klik saja OK. Berikut tampilan
tabel buku setelah buku “Topeng Kehidupan” dihapus.

Gambar 1.29 Tabel buku setelah salah satu datanya dihapus


2 BAB 2
PENGANTAR SQL

1. Judul Materi
Pengantar SQL

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa dapat menggunakan DDL dan DML dalam bentuk query SQL
untuk membangun database dan mengelola tabel-tabel master (C3, A4, P2).

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa telah menggunakan konsep DDL dan
DML untuk membangun database dan mengelola tabel dengan menggunakan
GUI pada PHPMyAdmin. Pada pertemuan ini mahasiswa diajarkan tentang
pembangunan database dan pengelolaan tabel master melalui commandprompt
atau terminal. Penggunaan commandprompt dimaksudkan agar mahasiswa
terbiasa dalam menggunakan bahasa SQL sehingga mudah dalam membangun
aplikasi database di mata kuliah pemrograman.
Query DDL adalah CREATE… untuk membangun database dan tabel,
ALTER… untuk merubah struktur tabel, dan DROP… untuk menghapus tabel
atau database. Sementara Query DML adalah INSERT… untuk memasukkan
data baru ke dalam suatu tabel. Merubah dan menghapus data akan dibahas pada
pertemuan selanjutnya. Perintah SELECT…FROM… juga diberikan pada
pertemuan ini, yang merupakan perintah untuk menampilkan data dari suatu
tabel.
Pada mata kuliah Basis Data 1, mahasiswa diajarkan tentang Primary Key (PK).
Pada pertemuan ini dibahas tentang bagaimana membuat tabel yang memuat
PK menggunakan commandprompt.
18
19

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang materi pengantar
SQL ini, yang meliputi SQL data definition, struktur dasar dari query SQL,
dan operasi dasar SQL.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang cara mengakses database
XAMPP menggunakan commandprompt.
• Pemberian contoh kepada mahasiswa tentang mengelola database
menggunakan commandprompt.
• Mahasiswa berlatih mengelola database menggunakan
commandprompt.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
a. Membangun database menggunakan commandprompt sesuai dengan materi
yang diberikan.
b. Membangun tabel-tabel master menggunakan commandprompt sesuai
dengan materi yang diberikan.

7. Tugas
Buatlah sebuah laporan mengenai pembangunan tabel-tabel dari suatu kasus
yang ditentukan menggunakan query SQL untuk DDL dan DML.

8. Materi

2.1 Membuka Database MySQL dengan Command Prompt


Pada bab sebelumnya kita sudah membahas tentang bagaimana pengelolaan
database menggunakan GUI yang disediakan oleh PHPMyAdmin. Ada banyak
kemudahan yang ditawarkan oleh GUI tersebut. Akan tetapi, mahasiswa tidak akan
mengetahui bagaimana suatu database dikelola sehingga akan kesulitan jika
diharuskan untuk membuat aplikasi database. Berdasarkan permasalahan tersebut
maka mahasiswa akan diajarkan mengelola database dengan menggunakan
20

Command Prompt, dimana pada Command Prompt tersebut pengelolaan database


hanya dapat dilakukan dengan menggunakan bahasa SQL.
Bahasa SQL (Structured Query Language) merupakan bahasa standar untuk
database relasional. Bahasa SQL dikembangkan pertama kali oleh IBM pada awal
tahun 1970.
Untuk membuka database MySQL dengan menggunakan Command
Prompt (bagi pengguna Windows), ketikkan shortcut Windows + R untuk
mengaktifkan jendela Run, seperti pada gambar berikut:

Gambar 2.1 Jendela Run

Jendela ini digunakan untuk menjalankan suatu aplikasi dengan cepat. Pada kotak
yang disediakan ketik cmd lalku klik OK. Perintah ini digunakan untuk
mengaktifkan Command Prompt seperti pada gambar berikut:

Gambar 2.2 Command Prompt


21

Agar dapat membuka database MySQL yang menggunakan XAMPP, maka


terlebih dahulu kita harus ingat dimana kita menginstallnya. Selanjutnya kita cari
file mysql.exe yang terdapat pada direktori lib. Pertama kita masuk ke direktori
xampp, dengan mengetikkan perintah cd c:xampp\ (karena saya menginstall
XAMPP di C):

Gambar 2.3 Perintah pada Command Prompt untuk masuk ke direktori xampp

Selanjutnya dengan mengetikkan perintah dir kita akan ditampilkan isi dari
direktori xampp tersebut.

Gambar 2.4 Isi dari direktori xampp


22

Perhatikan bahwa terdapat direktori mysql. Kita buka direktori tersebut dengan
mengetikkan perintah cd mysql yang kemudian diikuti dengan mengetikkan
perintah dir untuk menampilkan isi dari direktori tersebut.

Gambar 2.5 Isi dari direktori mysql

Perhatikan bahwa terdapat direktori bin. Kita buka direktori tersebut dengan
mengetikkan perintah cd bin yang kemudian diikuti dengan mengetikkan perintah
dir untuk menampilkan isi dari direktori tersebut.

Gambar 2.6 Isi dari direktori bin


23

Perhatikan bahwa terdapat file yang bernama mysql.exe. Buka file tersebut dengan
mengetikkan perintah mysql disertai -u root -p. Perintah -u root -p menjadikan
kita sebagai user root dan masuk dengan mengetikkan password (default tidak
memiliki password).

Gambar 2.7 Perintah mysql digunakan untuk masuk ke dalam database

Perhatikan pada Gambar 2.7 tersebut, ditampilkan MariaDB [(none)] menandakan


bahwa database MySQL telah berhasil dibuka dan kita sudah masuk ke dalamnya.
Untuk keluar dari database tersebut gunakan perintah exit.

Gambar 2.8 Perintah exit digunakan untuk keluar dari database

Jika dari awal kita sudah mengetahui lokasi dari file mysql.exe, maka kita
cukup menuliskan lokasi tersebut dalam cmd (jangan lupa disertai -u root -p).

Gambar 2.9 Database MySQL dibuka dengan mengetikkan lokasi mysql.exe


24

2.2 Struktur Dasar dari Query SQL


Query SQL yang digunakan memiliki struktur yang digambarkan pada tabel
berikut (berikan titik koma ; setiap akhir query):
Tabel 2.1 Struktur dasar query SQL
No Query Kegunaan
1 Show Databases Menampilkan list database
2 Show Tables Menampilkan list tabel dari suatu database
3 Use Database <DB Name> Masuk ke dalam database tertentu
4 Select <attributes> From Menampilkan data dari atribut-atribut pada suatu
<table name> tabel
5 Desc <table name> Mendeskripsikan atau menampilkan struktur dari
suatu tabel
DDL
5 Create Database <DB Membuat database baru
Name>
6 Create Table <table name> Membuat tabel baru beserta atribut-atributnya
(<attributes>)
7 Alter… Merubah struktur dari suatu tabel
8 Drop… Menghapus database, tabel, atribut dari tabel
DML
9 Insert INTO <table name> Memasukkan data baru ke dalam suatu tabel
(<attributes>)
Values(<values>)
10 Update <table name> Set Merubah data dari suatu tabel

11 Delete From <table name> Menghapus data dari suatu tabel

2.3 Operasi Dasar SQL


Perhatikan pada cmd, tertulis MariaDB[(none)]. None menandakan belum
ada database dipilih. Untuk melihat list database, gunakan SHOW DATABASES;.

Gambar 2.10 Menampilkan list database dengan SHOW DATABASES


25

Pada Bab 1 sebelumnya, telah dibangun database dengan nama perpustakaan.


Untuk membuka database tersebut, gunakan query USE perpustakaan;.

Gambar 2.11 Query USE perpustakaan digunakan untuk membuka database perpustakaan

Perhatikan bahwa yang awalnya bertuliskan MariaDB[(none)] sekarang menjadi


MariaDB[perpustakaan]. Tampilan ini menandakan bahwa database yang
digunakan saat ini adalah perpustakaan.
Pada Bab sebelumnya juga dibangun suatu tabel untuk database
perpustakaan. Untuk menampilkan list tabel dari suatu database, gunakan query
SHOW TABLES;.

Gambar 2.12 Query SHOW TABLES untuk menampilkan list tabel

Perhatikan bahwa ada satu tabel pada database perpustakaan, yaitu tabel buku.
Untuk dapat menampilkan struktur tabel buku tersebut, gunakan query DESC
buku;.

Gambar 2.13 Struktur tabel buku ditampilkan dengan DESC buku

Untuk dapat menampilkan data buku, gunakan query SELECT * FROM buku;.
Tanda * menandakan bahwa yang ditampilkan adalah data untuk semua atribut.
26

Gambar 2.14 SELECT * FROM buku digunakan untuk menampilkan data pada tabel buku

Sedangkan untuk menampilkan data dari beberapa atribut saja, dapat dengan
menyebutkan nama-nama atributnya. Contoh, jika kita ingin menampilkan atribut
judul dan pengarang, gunakan query SELECT judul, pengarang FROM buku;.

Gambar 2.15 Tampilan data dari atribut judul dan pengarang pada tabel buku

2.4 SQL Data Definition


Data definition terdiri atas membangun, merubah struktur atau meniadakan
database atau tabel.

2.4.1 Merubah struktur suatu tabel


Struktur dari suatu tabel dapat diubah dengan menggunakan perintah
ALTER. Perubahan yang dapat dilakukan adalah penambahan suatu atribut,
perubahan nama dan tipe suatu atribut, dan menghapus suatu atribut.

2.4.1.1 Merubah nama atribut dari suatu tabel


Gunakan ALTER TABLE namatabel CHANGE atr_awal atr_skrg
datatype;. Misal pada tabel buku dilakukan perubahan nama atribut tahun menjadi
tahunterbit, maka query yang digunakan adalah:
ALTER TABLE buku CHANGE tahun tahunterbit int(4);
27

Gambar 2.16 Perubahan nama atribut dari suatu tabel

2.4.1.2 Merubah tipe data dari suatu atribut


Gunakan ALTER TABLE namatabel MODIFY COLUMN column_name
datatype;. Misal ingin dilakukan perubahan tipe data dari atribut pengarang, dari
varchar(100) menjadi varchar(150). Query yang diberikan adalah:
ALTER TABLE buku MODIFY COLUMN pengarang varchar(100);

Gambar 2.17 Perubahan tipe data dari suatu atribut

2.4.1.3 Menghapus suatu atribut


Gunakan ALTER TABLE namatabel DROP namaatribut. Misal ingin dilakukan
penghapusan atribut penerbit pada tabel buku. Query yang diberikan adalah:
ALTER TABLE buku DROP penerbit;
28

Gambar 2.18 Menghapus suatu atribut dari tabel

2.4.1.4 Menambahkan suatu atribut


Misal dibutuhkan suatu penambahan atribut baru, dapat menggunakan struktur:
ALTER TABLE namatable ADD atribut datatype;
Misal ingin ditambahkan atribut stok pada tabel buku tersebut. Query yang dapat
digunakan adalah sebagai berikut:
ALTER TABLE buku ADD stok int;

Gambar 2.19 Penambahan atribut stok pada tabel buku

2.4.1.5 Menghapus primary key


Perhatikan pada tabel buku tersebut, atribut judul diset sebagai primary key.
Sekarang kita akan menjadikan PK tidak lagi pada atribut judul dengan query
ALTER TABLE buku DROP PRIMARY KEY;
29

Gambar 2.20 Menghapus primary key dari suatu tabel

2.4.2 Menghapus Tabel dan Database


Untuk menghapus suatu tabel, gunakan query DROP TABLE namatabel. Misal
jika ingin menghapus tabel buku, gunakan query sebagai berikut:
DROP TABLE buku;

Gambar 2.21 DROP TABLE buku menyebabkan database perpustakaan tidak memiliki tabel

Untuk menghapus suatu database, gunakan query DROP DATABASE


namadatabase. Misal jika ingin menghapus database perpustakaan dapat
menuliskan query sebagai berikut:
DROP DATABASE perpustakaan;

Gambar 2.22 Hasil DROP DATABASE


30

2.4.3 Membangun Database dan Tabel

2.4.3.1 Membangun database


Berikut adalah list dari database yang dimiliki:

Misal diinginkan membangun database baru yang bernama perpustakaan. Dapat


menggunakan query berikut:
CREATE DATABASE perpustakaan;
31

2.4.3.2 Membangun tabel


Dimisalkan akan dibangun tabel buku dengan atributnya adalah idbuku (sebagai
PK), judul, tahun, pengarang dan penerbit. Query yang digunakan adalah
sebagai berikut:
CREATE TABLE buku(
idbuku int NOT NULL PRIMARY KEY,
judul varchar (100),
pengarang varchar(100),
penerbit varchar(50));

Gambar 2.23 Pembangunan tabel


3 BAB 3
MODIFIKASI DATABASE

1. Judul Materi
Modifikasi Database

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa dapat memodifikasi tabel-tabel yang telah dibuatnya dengan
menggunakan query dasar SQL (C4, A4, P2).

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa diajarkan tentang pengantar SQL.
Pada pertemuan tersebut, mahasiswa menggunakan SQL untuk mendefinisikan
data. Pada pertemuan ini dibahas tentang penggunaan SQL untuk memodifikasi
data. Query SQL yang digunakan untuk memodifikasi data adalah INSERT…,
UPDATE… dan DELETE…

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahaapan uraian materi, yaitu penjelasan singkat tentang materi modifikasi
database, yang terdiri atas NULL values, Insert, Update dan Delete.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang modifikasi database
melalui CMD.
• Mahasiswa berlatih memodifikasi database menggunakan CMD.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

32
33

6. Latihan
Mengelola database menggunakan CMD sesuai dengan materi yang diberikan.

7. Tugas
Buatlah sebuah laporan mengenai modifikasi database dari kasus yang
ditentukan menggunakan query SQL.

8. Materi

3.1 NULL Values


Suatu atribut dari tabel dapat di set agar dapat berisi nilai NULL atau tidak. Pada
Gambar 2.23 terlihat bahwa pada tabel buku hanya atribut yang bukan primary key
yang dapat bernilai NULL. Misal atribut judul tidak seharusnya memiliki nilai
NULL, maka dapat diubah dengan menggunakan query:
ALTER TABLE buku CHANGE judul judul varchar(100) NOT NULL;

Gambar 3.1 Merubah suatu atribut menjadi NOT NULL

Jika ingin merubah atribut judul boleh memiliki nilai NULL, maka ubah saja
dengan menggunakan query default:
ALTER TABLE buku CHANGE judul judul varchar(100);
34

Gambar 3.2 Merubah suatu atribut sehingga dapat diisi dengan nilai NULL

3.2 INSERT
INSERT digunakan untuk memasukkan data baru ke dalam suatu tabel.
Contoh berikut adalah query untuk memasukkan suatu data ke dalam tabel buku
(yang kemudian ditampilkan dengan menggunakan SELECT):

Gambar 3.3 Query untuk memasukkan data baru ke dalam suatu tabel

Anda dapat juga memasukkan banyak data sekaligus ke dalam suatu tabel:

Gambar 3.4 Query untuk memasukkan banyak data sekaligus


35

Anda dapat memasukkan data dengan nilai NULL, misalkan pada gambar berikut:

Gambar 3.5 Query untuk memasukkan data dengan nilai NULL

Sama dengan kasus di atas, Anda dapat memasukkan data untuk beberapa atribut
saja, dengan yang lain secara otomatis akan bernilai NULL:

Gambar 3.6 Query untuk memasukkan data pada atribut tertentu

3.3 UPDATE
Update digunakan untuk merubah data dari suatu tabel. Misal sebelum perubahan
data dilakukan, dibuat atribut tahun dan stok untuk tabel buku:
36

Selanjutnya untuk setiap data buku memiliki tahun 2017 dan jumlah stok nya adalah
50. Query yang digunakan adalah sebagai berikut:

Gambar 3.7 Merubah data dari suatu tabel menggunakan UPDATE

Anda bisa juga merubah nilai dari beberapa data dengan memanfaatkan klausa
WHERE. Misal dilakukan perubahan data dengan mengganti nama pengarang
menjadi Doni dan penerbit menjadi Informatika dimana nama pengarang dan
penerbitnya adalah NULL:

Gambar 3.8 Perubahan data dilakukan berdasarkan nilai atribut yang NULL

Klausa WHERE tidak hanya dapat digunakan untuk nilai atribut NULL saja.
Dimisalkan untuk semua data yang penerbitnya Andi memiliki tahun terbit 2015.
Maka querynya adalah sebagai berikut:
37

Gambar 3.9 Perubahan data dilakukan berdasarkan atribut tertentu

Perubahan data juga dapat dilakukan berdasarkan beberapa karakter dari suatu
atribut dengan menggunakan LIKE dan ‘%’. Misal untuk judul yang memuat kata
jagung memiliki stok 46, sementara yang memuat kata benang memiliki stok 83:

Gambar 3.10 Perubahan data dilakukan berdasarkan potongan data dari atribut tertentu

Perubahan data juga dilakukan dengan menggunakan operasi matematika:

Gambar 3.11 Perubahan data dengan operasi matematika


38

3.4 DELETE
DELETE digunakan untuk menghapus data dari suatu tabel. Sama seperti
UPDATE, query DELETE juga dapat dilakukan berdasarkan atribut tertentu. Misal
ingin dilakukan DELETE untuk idbuku = 5. Query nya adalah sebagai berikut:

Gambar 3.12 Menghapus data tertentu dari suatu tabel

Sedangkan untuk menghapus semua data dari suatu tabel dapat menggunakan query
sebagai berikut:

Gambar 3.13 Menghapus semua data dari suatu tabel


4 BAB 4
FUNGSI AGREGAT

1. Judul Materi
Fungsi Agregat

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query untuk fungsi agregat
(C4, A4, P2).

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar tentang menggunakan SQL
untuk memodifikasi database. Pada pertemuan ini mahasiswa diajarkan tentang
penggunaan SQL untuk fungsi agregat. Fungsi agregat adalah fungsi yang
menerima koleksi nilai dan mengembalikan nilai tunggal sebagai hasilnya.
Seperti jumlah data, nilai minimum, nilai maksimum dan rata-rata.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahaapan uraian materi, yaitu penjelasan singkat tentang materi fungsi
agregat, yang terdiri atas Average, Minimum, Maximum, Total dan Count.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan SQL untuk
fungsi agregat melalui CMD.
• Mahasiswa berlatih menggunakan SQL untuk fungsi agregat
menggunakan CMD.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

39
40

6. Latihan
Menggunakan query SQL untuk fungsi agregat dengan CMD sesuai dengan
materi yang diberikan.

7. Tugas
Buatlah laporan mengenai penggunaan query SQL untuk fungsi agregat dari
kasus yang ditentukan.

8. Materi
Pada pertemuan sebelumnya, semua data pada tabel buku telah dihapus.
Maka pada pertemuan ini dilakuan pengisian data terlebih dahulu:

Gambar 4.1 Tabel buku untuk studi kasus pertemuan BAB 4

4.1 Average
Fungsi average adalah mencari rata-rata suatu nilai dari suatu atribut pada suatu
tabel. Misal ingin dicari rata-rata stok buku dimana penerbitnya adalah Andi:

Gambar 4.2 Rata-rata stok buku dimana penerbitnya Andi


41

Perhatikan pada Gambar 4.2 tersebut, judul kolom susah dipahami oleh pengguna.
Anda dapat menggunakan fungsi alias untuk membuat nama kolom lebih mudah
dipahami. Fungsi alias adalah ‘AS’:

Gambar 4.3 Penambahan fungsi alias untuk penamaan suatu atribut

Bahkan dengan fungsi alias ini Anda dapat membuat atribut yang memiliki spasi:

Gambar 4.4 Fungsi alias dapat membuat atribut Anda memiliki spasi

4.2 Minimum
Fungsi minimum digunakan untuk mencari nilai paling kecil dari suatu atribut pada
suatu tabel. Misal ingin dicari stok paling minimum dari tabel buku:

Gambar 4.5 Stok buku paling minimum

4.3 Maximum
Fungsi maximum digunakan untuk mencari nilai paling besar/tinggi dari suatu
atribut pada suatu tabel. Misal ingin dicari tahun terbit buku yang paling baru:
42

Gambar 4.6 Tahun terbit buku terbaru

4.4 Total
Fungsi total digunakan untuk mendapatkan jumlah total dari suatu atribut pada
suatu tabel. Fungsi ini menggunakan SUM pada query nya. Misal ingin dihitung
banyaknya stok untuk buku terbitan Andi:

Gambar 4.7 Total buku terbitan Andi

4.5 Count
Fungsi count digunakan untuk mendapatkan banyaknya data dari suatu tabel. Misal
ingin didapatkan berapa jenis buku yang terbit pada tahun 2015:

Gambar 4.8 Banyaknya judul buku yang terbit di tahun 2015


5 BAB 5
SET OPERATIONS

1. Judul Materi
Set Operations

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan set operations
(C4, A4, P2).

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar tentang penggunaan query
SQL untuk fungsi agregat. Pada pertemuan ini mahasiswa diajarkan untuk
memaksimalkan penggunaan query dengan set operations. Set operations
adalah sekumpulan operasi yang digunakan pada keadaan dimana Anda harus
menampilkan kombinasi hasil dari pernyataan SELECT. Operator dari set
operations adalah Union, Intersect dan Except.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahaapan uraian materi, yaitu penjelasan singkat tentang materi Set
Operations, yang terdiri dari operasi union, operasi intersect dan operasi
except.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan query dengan
set operations.
• Mahasiswa berlatih menggunakan query dengan set operations.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.
43
44

6. Latihan
Menggunakan query dengan set operations sesuai dengan materi yang
diberikan.

7. Tugas
Buatlah laporan mengenai penggunaan set operations pada database dari kasus
yang dimiliki.

8. Materi
Pada pertemuan ini diperlukan lebih dari satu tabel untuk database
perpustakaan. Tabel tersebut memiliki karakteristik yang serupa dengan tabel
buku. Misal tabel yang dimaksud adalah tabel yang menyimpan data-data buku
rusak, sehingga memiliki nama buku_rusak:

Gambar 5.1 Tabel buku_rusak

Perhatikan pada CREATE TABLE yang dilakukan untuk buku_rusak diberikan


AUTO_INCREMENT. Dengan demikian pada saat penginputan data baru, idbuku
tidak perlu diisikan karena akan terisi sendiri dengan otomatis dengan nilai yang
selalu meningkat (increment). Sekarang Anda bisa mengisi tabel buku_rusak
dengan data sebagai berikut:
45

Gambar 5.2 Penginputan tabel buku_rusak

5.1 Operasi Union


Operasi Union digunakan ketika mendapati kasus diperlukannya penggabungan
data dari dua tabel yang memiliki kesesuaian. Format dari operasi ini adalah:
(SELECT …) UNION (SELECT …)
Sebagai contoh diperlukan data yang menggambarkan data seluruh buku, baik yang
masih bagus ataupun yang sudah rusak. Dengan demikian diperlukan operasi union
antara tabel buku dengan tabel buku_rusak:

Gambar 5.3 Konsep UNION pada MySQL

5.2 Operasi Intersect


Operasi Intersect digunakan ketika mendapati kasus diperlukannya irisan data dari
dua tabel yang bersesuaian. Pada MySQL tidak terdapat perintah INTERSECT,
sehingga dapat digunakan format berikut untuk menggantikannya:
SELECT a FROM b WHERE a IN (SELECT a FROM c);
46

Sebagai contoh diperlukan data buku yang terdapat pada tabel buku dan juga
terdapat pada tabel buku_rusak:

Gambar 5.4 Konsep INTERSECT pada MySQL

5.3 Operasi Except


Operasi Except adalah kebalikan dari Intersect, dimana diperlukan tampilan data
dari suatu tabel x yang tidak ada di tabel y. Formatnya pada MySQL adalah sebagai
berikut:
SELECT a FROM b WHERE a NOT IN (SELECT a FROM c)
Sebagai contoh diperlukan data buku yang rusak semua, sehingga tidak ada di tabel
buku:

Gambar 5.5 Konsep EXCEPT pada MySQL


6 BAB 6
MULTIPLE RELATIONS

1. Judul Materi
Multiple Relations

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query untuk multiple
relations (C4, A4, P2).

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaan query dengan set operations. Pada pertemuan ini mahasiswa
diajarkan untuk memaksimalkan query untuk kasus multiple relations. Pada bab
multiple relations, terdiri atas DDL untuk multiple relations, DML untuk
multiple relations dan SELECT dengan klausa WHERE.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahaapan uraian materi, yaitu penjelasan singkat tentang materi multiple
relations, yang terdiri dari DDL dan DML untuk multiple relations dan
SELECT dengan menggunakan klausa WHERE.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan query untuk
multiple relations.
• Mahasiswa berlatih menggunakan query untuk multiple relations.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

47
48

6. Latihan
Menggunakan query untuk multiple relations sesuai dengan materi yang
diberikan.

7. Tugas
Buatlah laporan mengenai penggunan query untuk multiple relations, bangun
database relasional dari kasus yang dimiliki dengan menggunakan DDL,
lakukan manipulasi dengan DML dan tampilan dengan SELECT.

8. Materi
Pada pertemuan sebelumnya, telah dibangun dan diisi tabel buku dan tabel
buku_rusak. Pada pertemuan kali ini, kedua tabel tersebut akan dihapus terlebih
dahulu karena kedua tabel tersebut tidak dibangun atas dasar database relasional:

Kemudian kita akan rancang database relasional sederhana untuk kasus


perpustakaan, seperti yang digambarkan pada ERD berikut:
49

idbuku
id
idpengarang

idpenerbit
buku_pengarang
stok N N

tahun terdapat terdapat idpengarang


1 1
N
buku
judul
diterbitkan pengarang nama

1
idbuku
penerbit gelar_depan
idpenerbit instansi

foto
penerbit gelar_belakang
kota alamat

Gambar 6.1 ERD sederhana untuk database perpustakaan

6.1 DDL untuk Multiple Relations


Perhatikan pada Gambar 6.1, entitas buku dan entitas buku_pengarang memiliki
atribut foreign key (FK) di dalamnya. Sedangkan entitas lainnya, penerbit dan
pengarang tidak memiliki FK. Anda bisa membuat tabel penerbit dan pengarang
terlebih dahulu.

Gambar 6.2 Pembangunan tabel penerbit kasus multiple relations


50

Gambar 6.3 Pembangunan tabel pengarang kasus multiple relations

Selanjutnya dibangunlah tabel-tabel yang terdapat foreign key di dalamnya.


Pertama akan dibangun tabel buku. Di dalam tabel tersebut terdapat foreign key
idpenerbit yang mana referensinya adalah idpenerbit pada tabel penerbit. Berikut
query yang digunakan:

Gambar 6.4 Pembangunan tabel buku kasus multiple relation

CONSTRAINT berarti menambahkan batasan berupa Foreign Key yang pada


Gambar 6.4 diberikan nama foreign key nya. Nama foreign key haruslah unique,
sehingga jika ada pemakaian dua foreign key atau lebih, maka berikanlah nama
yang berbeda. Setelah CONSTRAINT diberikan kemudian diikuti dengan
51

FOREIGN KEY yang menunjukkan atribut mana pada tabel tersebut yang menjadi
FK. REFERENCES adalah merujuk pada Primary Key atau atribut yang menjadi
referensi dari FK yang dibuat, dengan format REFERENCES
nama_tabel(nama_atribut_referensi). ON UPDATE CASCADE berarti jika
nilai atribut referensi berubah (diupdate), maka perubahan tersebut terjadi pula pada
semua atribut FK nya. ON DELETE CASCADE berarti jika data dengan nilai
atribut referensi dihapus, maka demikian pula dengan data yang memiliki atribut
FK nya. Selain CASCADE, dapat juga menggunakan RESTRICT dan SET
NULL. Tentunya dengan kasus dan kepentingan yang berbeda.
Selanjutnya dengan cara yang sama kita dapat membuat tabel
buku_pengarang. Kode pada buku_pengarang direncanakan merupakan
gabungan dari idbuku dan idpengarang. Misalkan untuk hubungan buku dengan
idbuku = 5, dan pengarang dengan idpengarang = 15, maka id pada
buku_pengarang adalah BP_5_15. Berarti tipe data dari id adalah char (atau
varchar) dengan length sebesar 12 (dengan asumsi panjang karakter maksimal
idbuku adalah 4 atau sebanyak 9999 buku dan panjang karakter maksimal
idpengarang adalah 4 atau sebanyak 9999 pengarang).

Gambar 6.5 Pembangunan tabel buku_pengarang kasus multiple relation

6.2 DML untuk Multiple Relation


Untuk menginputkan data pada tabel yang memiliki atribut Foreign Key,
harus dipastikan terlebih dahulu apakah pada tabel masternya sudah terisi atau
belum. Dipastikan juga apakah nilai FK yang akan dimasukkan sudah ada pada
tabel master atau belum. Misal, tabel penerbit masih kosong. Sekarang kita akan
52

mengisikan tabel buku dimana terdapat FK idpenerbit. Kita akan isikan


idpenerbit dengan nilai 1:

Gambar 6.6 Peringatan kesalahan diberikan karena batasan FK

Seperti terlihat pada gambar di atas, akan keluar pesan kesalahan akibat nilai
idpenerbit yang dimasukkan pada tabel buku tidak ada pada tabel penerbit (tabel
master).
Lain halnya jika Anda menginputkan nilai NULL untuk idpenerbit,
walaupun pada tabel penerbit belum memiliki data, tidak menjadi masalah.

Gambar 6.7 Penginputan dengan FK bernilai NULL

Langkah yang tepat adalah dengan mengisikan terlebih dahulu tabel


masternya. Di sini akan dinputkan data-data untuk tabel penerbit:

Gambar 6.8 Penginputan tabel penerbit

Pada Gambar 6.7 nilai idpenerbit adalah NULL. Nilai tersebut dapat diubah
dengan nilai referensi (Primary Key) pada tabel penerbit.
53

Gambar 6.9 Mengupdate nilai FK pada tabel buku

Selanjutnya kita selesaikan penginputan untuk tabel-tabel lainnya.

Gambar 6.10 Penginputan tabel pengarang

Gambar 6.11 Penginputan tabel buku


54

Gambar 6.12 Penginputan tabel buku_pengarang

6.3 SELECT dengan Klausa Where


Jika melihat tampilan tabel buku dan tabel buku_pengarang seperti pada
Gambar 6.11 dan Gambar 6.12, cukup tidak user friendly karena pengguna hanya
mendapatkan informasi nomor ID untuk penerbit dan pengarang buku. Hal itu
terjadi karena untuk menampilkan data pada tabel buku dan buku_pengarang
menggunakan bahasa SQL standar. Agar dapat menampilkan nama penerbit di
setiap daftar buku, kita bisa menghubungkan antara idpenerbit pada tabel buku
(sebagai FK) dengan idpenerbit pada tabel penerbit (sebagai PK). Tapi
sebelumnya harus ditentukan terlebih dahulu atribut apa saja yang ingin
ditampilkan. Misalkan kita ingin menampilkan atribut idbuku, judul, penerbit,
tahun dan stok, maka query yang dapat digunakan adalah sebagai berikut:
55

Gambar 6.13 Menampilkan data buku dan penerbit buku

Perhatikan pada Gambar 6.13 tersebut, FROM diikuti oleh dua tabel. Hal ini
dikarenakan yang ingin ditampilkan kepada pengguna adalah atribut-atribut yang
berasal dari dua tabel tersebut. Sementara WHERE diikuti dengan menyamakan
atribut FK dan PK, yaitu idpenerbit pada tabel buku dan idpenerbit pada tabel
penerbit. Nama tabel disebutkan agar tidak terjadi ambiguitas dari sistem, karena
kedua atribut yang disamakan nilainya memiliki nama yang sama.
Anda juga dapat menampilkan hubungan antara buku dan pengarang buku.
Query yang digunakan adalah sebagai berikut:

Gambar 6.14 Menampilkan judul buku dan nama-nama pengarangnya


7 BAB 7
SUBQUERY BERSARANG

1. Judul Materi
Subquery Bersarang

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan subquery
bersarang (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaak query untuk multiple relations. Pada pertemuan ini mahasiswa
diajarkan untuk memaksimalkan query dengan subquery bersarang. Ada empat
bagian pada pertemuan ini, yaitu subquery bersarang pada SELECT, INSERT,
UPDATE dan DELETE.
Subquery bersarang digunakan untuk beberapa kebutuhan. Misal untuk
menginputkan data dimana terdapat FK, tetapi seorang DBA hanya mengetahui
informasi atribut lain selain PK di tabel referensinya. Subquery bersarang dapat
juga digunakan untuk menampilkan suatu data dimana salah satu atributnya (FK
misalkan) berada pada himpunan tertentu di tabel referensinya. Serta masih
banyak lagi permasalahan yang dapat dipecahkan dengan menggunakan
subquery bersarang.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:

56
57

a. Tahaapan uraian materi, yaitu penjelasan singkat tentang materi subquery


bersarang, yang digunakan pada SELECT, INSERT, UPDATE dan
DELETE.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan subquery
bersarang.
• Mahasiswa berlatih menggunakan subquery bersarang.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan subquery bersarang untuk memecahkan beberapa permasalahan
sesuai dengan materi yang diberikan

7. Tugas
Buatlah laporan mengenai penggunaan subquery bersarang dari kasus yang
dimiliki pada SELECT, INSERT, UPDATE dan DELETE.

8. Materi

7.1 SELECT
Berdasarkan kasus yang sudah ada, ada beberapa permasalahan yang
mungkin saja agak rumit jika diselesaikan dengan query SQL dasar. Misal Anda
diminta untuk menampilkan data pengarang, yang pada tahun 2017 bukunya
diterbitkan oleh Erlangga dan pada tahun 2016 bukunya diterbitkan oleh Andi.
Untuk menyelesaikan ini Anda dapat menggunakan subquery bersarang:
58

Gambar 7.1 Query bersarang untuk kasus SELECT

DISTINCT digunakan untuk jika dalam suatu tampilan data terdapat baris yang
duplikat (lebih dari satu baris dengan isi yang sama), maka hanya ditampilkan satu
baris data saja.

7.2 INSERT
Jika Anda diminta untuk memasukkan data baru, dimana memiliki detail
sebagai berikut:
Judul : “Membangun Aplikasi Cerdas Sendiri”
Tahun : 2017
Stok : 35
Penerbit : Andi
Pengarang : Sri Hartati dan Agus Harjoko
Maka Anda dapat menggunakan query bersarang berikut untuk tabel buku:

Gambar 7.2 Query bersarang untuk menginputkan data buku


59

Sementara untuk tabel buku_pengarang akan menjadi lebih rumit, karena kita
tidak tahu informasi idpengarang dari Sri Hartati dan Agus Harjoko. Sedangkan
PK dari buku_pengarang mengharuskan format kode memuat idbuku dan
idpengarang. Hal tersebut bukan masalah, Anda dapat memasukkan kode dummy
terlebih dahulu, yang kemudian Anda bisa update nantinya. Misal:

Gambar 7.3 Query bersarang untuk menginputkan data buku_perpustakaan

Selanjutnya Anda tinggal menuliskan perintah UPDATE:


60

7.3 UPDATE
Perhatikan tampilan data buku dan penerbit berikut:

Misalkan ada kesalahan pada data di atas. Buku “Fuzzy Inference System”
seharusnya diterbitkan oleh “Andi”. Maka query bersarang yang bisa Anda
gunakan adalah:

Gambar 7.4 Query bersarang untuk kasus UPDATE

7.4 DELETE
Sama seperti kasus sebelumnya, jika diminta untuk menghapus data buku
yang diterbitkan oleh Informatika, maka query yang dapat digunakan adalah
sebagai berikut:
61

Gambar 7.5 Query bersarang untuk kasus DELETE

Jika data buku ada yang dihapus, lalu bagaimana dengan tabel buku_pengarang?
Karena sebelumnya membangun tabel buku_pengarang menggunakan ON
DELETE CASCADE, maka seharusnya data pada tabel tersebut akan otomatis
ikut hilang. Mari kita buktikan, tampilkan data pada tabel buku:

Terlihat pada tabel tersebut tidak ada idbuku = 3, karena sudah dihapus
menggunakan query sebelumnya. Sekarang kita tampilkan tabel buku_pengarang:

Dapat terlihat bahwa data dengan idbuku = 3 sudah tidak ada lagi.
8 BAB 8
JOIN

1. Judul Materi
Join

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan join (C4, A4,
P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaak query dengan subquery bersarang. Pada pertemuan ini mahasiswa
diajarkan untuk memaksimalkan query dengan join. Ada tiga sub bab yang akan
diajarkan, yaitu natural join, left join dan right join, dan inner join.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahaapan uraian materi, yaitu penjelasan singkat tentang materi join, yang
memuat natural join, left join dan right join, serta inner join.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan join.
• Mahasiswa berlatih menggunakan join.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan join untuk menampilkan data pada multiple relations sesuai
dengan materi yang diberikan
62
63

7. Tugas
Buatlah laporan mengenai penggunaan join dari kasus yang dimiliki, yang
memuat penggunaan natural join, left join, right join dan inner join.

8. Materi

8.1 Natural Join


Jika diperhatikan, penulisan query menggunakan SELECT untuk
menampilkan data yang berrelasi menggunakan klausa WHERE memerlukan
banyak energi. Query yang dituliskan panjang sehingga kemungkinan kesalahan
dalam penulisan query pun semakin besar. Sebagai contoh perhatikan query berikut
yang menggunakan klausa WHERE:

Gambar 8.1 Menampilkan data buku, pengarang dan penerbit menggunakan klausa WHERE

Sekarang Anda dapat membuat tampilan yang sama dengan query yang
lebih singkat, yaitu menggunakan NATURAL JOIN. Seperti yang ditunjukkan pada
gambar berikut:
64

Gambar 8.2 Menampilkan data buku, pengarang dan penerbit menggunakan NATURAL JOIN

Anda tidak perlu lagi menyamakan FK dengan PK nya, karena NATURAL JOIN
memastikan atribut yang bernama sama pasti berhubungan. Sehingga Anda dapat
menghemat waktu dan energi dengan menggunakan NATURAL JOIN. Walaupun
demikian, ada paling tidak dua kondisi yang harus diperhatikan jika Anda
memutuskan menggunakan NATURAL JOIN:
1. Pastikan untuk atribut-atribut yang berhubungan/berrelasi memiliki nama yang
sama.
2. Pastikan untuk atribut-atribut yang tidak saling berhubungan/berrelasi tidak
memiliki nama yang sama.
Untuk membuktikan kondisi tersebut, di sini akan diberikan tambahan tabel
yaitu tabel petugas. Dimana tabel petugas berrelasi dengan tabel lainnya dalam hal
pengelolaan sehingga database memiliki tabel yang mencatat history pengelolaan
data. Lebih jelasnya digambarkan pada ERD berikut:
65

idbuku
idbp
idpengarang

buku_pengarang N idpengarang

terdapat
nama
1
kdkelola 1

jnskelola gelar_depan
N
N waktu
dikelola pengarang
kelola_BP gelar_belakang

tanggal
terdapat idpetugas foto
idbp N instansi
1

no_hp
nama mengelola
dikelola
1
1 alamat kdkelola
idpetugas
N

1 mengelola
tahun stok kdkelola petugas 1 jnskelola
mengelola N kelola_pengarang

N waktu
idpenerbit jnskelola 1
idpetugas
kelola_buku
mengelola tanggal
buku waktu idpengarang

N N
1 tanggal

dikelola kdkelola
kelola_penerbit
idbuku
judul N N
jnskelola
dikelola
idbuku idpetugas
1
waktu
idpetugas
diterbitkan penerbit
1 tanggal

idpenerbit alamat idpenerbit


penerbit kota

Gambar 8.3 ERD yang menampilkan tabel histori pada database perpustakaan

Perhatikan pada tabel buku_pengarang PK nya berubah menjadi idbp (silakan


diubah dengan menggunakan ALTER). Selain itu terdapat juga tambahan entitas
yang lain, seperti petugas, kelola_buku, kelola_penerbit, kelola_pengarang, dan
kelola_BP. Berikut akan ditunjukkan pembuatan tabel petugas.
66

Gambar 8.4 Pembuatan tabel petugas

Sedangkan untuk tabel lainnya hanya akan dicontohkan pembuatan tabel


kelola_pengarang saja. Silakan tabel lainnya juga dibuat dengan cara yang sama.

Gambar 8.5 Pembuatan tabel kelola_pengarang

Kemudian isikan tabel petugas dan tabel kelola_pengarang yang telah dibuat tadi
dengan data sebagai berikut (tabel lainnya silakan diisi sendiri):
67

Gambar 8.6 Penginputan data petugas

Gambar 8.7 Penginputan data kelola_pengarang

Perhatikan bahwa tabel petugas dan tabel pengarang memiliki atribut yang
bernama sama, yaitu nama. Kedua tabel tersebut berrelasi melalui tabel
kelola_pengarang. Saat pengisian yang dilakukan, diketahui bahwa petugas yang
melakukan penginputan adalah Moeljoko. Akan tetapi jika kita gunakan natural
join untuk menampilkan nama petugas dan nama pengarang pada tabel
kelola_pengarang hasilnya adalah sebagai berikut:

Gambar 8.8 Data kosong akibat kesalahan natural join


68

Himpunan kosong dihasilkan dari natural join karena tidak memperhatikan kondisi
dan syarat untuk natural join. Hal ini diakibatkan karena pada tabel petugas
memiliki atribut nama yang namanya sama dengan atribut pada tabel pengarang.
Untuk mengatasi permasalahan ini, dapat digunakan klausa where:

Selain dengan klausa where, dapat juga digunakan left join, right join dan inner
join untuk memecahkan permasalah di atas, yang dijabarkan pada sub bab
beikutnya.

8.2 Left Join dan Right Join


Left Join akan menampilkan semua record dari tabel sebelah kiri, dan
record dari tabel sebelah kanan yang cocok. Hasilnya akan NULL untuk bagian
kanan jika tidak ada kecocokan. Misal diminta untuk ditampilkan tabel
kelola_pengarang yang menampilkan juga no HP petugas yang mencatat. Query
yang tepat jika menggunakan left join adalah sebagai berikut:

Gambar 8.9 Contoh penggunaan left join untuk menampilkan no_hp petugas

Akan tetapi jika posisi kedua tabel yang berhubungan diubah, maka tampilan
datanya pun akan memiliki arti yang lain. Yaitu menampilkan pekerjaan setiap
69

petugas dalam mengelola data, dalam hal ini Sari Amalia tidak melakukan
pekerjaan apapun dalam mengelola data pengarang.

Gambar 8.10 Beda posisi tabel pada left join menyebabkan perbedaan makna tampilan data

Right join adalah join yang serupa dengan left join, hanya saja posisi tabel
yang kanan akan ditampilkan semua record nya. Sedangkan tabel yang kiri hanya
record yang bersesuaian saja.

8.3 Inner Join


Versi aman dari left join maupun right join adalah inner join. Inner join
tidak mementingkan posisi tabel pada query dan fungsinya sama dengan klausa
where. Misalkan diperlukan tampilan dari pengelolaan pengarang, dimana
menampilkan nama petugas dan nama pengarang yang dikelola, query nya adalah
sebagai berikut:

Gambar 8.11 Contoh penggunaan inner join


9 BAB 9
VIEW

1. Judul Materi
View

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan view (C4, A4,
P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaak query dengan join. Pada pertemuan ini mahasiswa diajarkan untuk
memaksimalkan query dengan view. Ada tiga sub bab yang akan diajarkan,
yaitu definisi view, membuat view dan menghapus view.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang materi view.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan view.
• Mahasiswa berlatih menggunakan view.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan view untuk database relasional sesuai dengan materi yang
diberikan

70
71

7. Tugas
Buatlah laporan mengenai penggunaan view dari kasus yang dimiliki.

8. Materi

9.1 Definisi View


Tujuan dari pembuatan view adalah untuk kenyamanan (mempermudah
penulisan query), untuk keamanan (menyembunyikan beberapa kolom yang
bersifat rahasia), atau dalam beberapa kasus bisa digunakan untuk mempercepat
proses menampilkan data (terutama jika kita akan menjalankan query tersebut
secara berulang).
Misal ingin dibuat dua buah tampilan. Tampilan pertama yaitu
menampilkan daftar buku yang dikarang oleh pengarang yang bergelar Prof.,
sedangkan tampilan satunya menampilkan daftar buku yang sama sekali tidak
dikarang oleh seorang profesor. Untuk tampilan pertama querynya cukup mudah:

Gambar 9.1 Data buku yang dikarang oleh Prof.

Sedangkan untuk menampilkan tampilan yang kedua, kita perlu melakuan subquery
bersarang dengan memanfaatkan query pada tampilan pertama:

Gambar 9.2 Data buku yang tidak dikarang oleh Prof.


72

Query yang digunakan untuk menampilkan tampilan kedua adalah query yang
cukup panjang. Jika diinginkan tampilan yang lain yang levelnya bahkan lebih
tinggi daripada tampilan kedua tersebut, tentunya akan menjadi sangat rumit sekali.
Disinilah view dapat digunakan untuk membantu seorang programmer.

9.2 Membangun View


Disini akan dibagi menjadi dua sub bab lagi, yaitu view untuk data buku
yang dikarang seorang professor dan data buku yang tidak dikarang seorang
professor.

9.2.1 Kasus 1: View untuk data buku yang dikarang professor


Untuk data buku yang dikarang professor, kita dapat membangun view
sebagai berikut:

Gambar 9.3 Membangun view untuk kasus 1

Sedangkan untuk menampilkan view yang sudah dibangun tadi, cukup tuliskan saja
nama view nya:

Gambar 9.4 Menampilkan view untuk kasus 1

Jika ada penambahan buku yang dikarang oleh seorang professor, maka Anda dapat
dengan mudah menampilkan daftar buku yang dikarang oleh professor dengan
menggunakan viewbuku_prof.
73

Gambar 9.5 Menampilkan view untuk kasus 1 setelah penambahan buku


9.2.2 Kasus 2: View untuk data buku yang tidak dikarang professor
Untuk membangun tampilan ini lebih mudah dengan memanfaatkan
viewbuku_prof, dengan query sebagai berikut:

Gambar 9.6 Membangun view untuk kasus 2

Sedangkan untuk menampilkan view sama seperti di atas.

Gambar 9.7 Menampilkan view untuk kasus 2

9.3 Menghapus View


Untuk menghapus view dapat menggunakan perintah DROP. Sebelum
dihapus, view dapat dilihat pada list tabel:
74

Gambar 9.8 Show Tables menampilkan view

Jika dilakukan penghapusan, maka daftar view pun akan hilang.

Gambar 9.9 Menghapus view


10 BAB 10
ORDERING, GROUPING DAN HAVING

1. Judul Materi
Ordering, Grouping dan Having

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan ordering,
grouping dan having (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaak query dengan view. Pada pertemuan ini mahasiswa diajarkan untuk
memaksimalkan query dengan ordering, grouping dan having. Ordering
digunakan untuk mengurutkan data berdasarkan atribut dan cara tertentu.
Grouping mengelompokkan data berdasarkan atribut tertentu. Having serupa
dengan WHERE, tetapi dapat dipasangkan dengan fungsi agregat dimana
WHERE tidak dapat melakukannya.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang materi ordering,
grouping dan having.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan ordering,
grouping dan having.
• Mahasiswa berlatih menggunakan ordering, grouping dan having.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.
75
76

6. Latihan
Menggunakan ordering, grouping dan having untuk database relasional sesuai
dengan materi yang diberikan

7. Tugas
Buatlah laporan mengenai penggunaan ordering, grouping dan having dari
kasus yang dimiliki.

8. Materi

10.1 Ordering
Fungsi ordering digunakan untuk mengurtkan tampilan data berdasarkan
atribut tertentu. Misal diminta untuk ditampilkan judul dan penerbitnya yang
diurutkan berdasarkan penerbitnya.

Gambar 10.1 Data buku yang diurutkan berdasarkan nama penerbitnya

Secara default fungsi ordering mengurutkan data secara ascending, yaitu secara
alfabetik dari A ke Z, atau secara angka dari yang terkecil ke terbesar. Pengurutan
juga bisa dilakukan secara descending. Misalkan diminta untuk menampilkan data
buku dan penerbitnya diurutkan berdasarkan tahun terbit terbesar.
77

Gambar 10.2 Data buku yang diurutkan berdasarkan tahunnya secara descending

10.2 Grouping
Grouping artinya pengelompokkan, digunakan untuk mengelompokkan
data berdasarkan atribut tertentu. Sebagai contoh Anda diminta untuk menampilkan
banyaknya buku dan total stok dari buku untuk setiap penerbit. Query yang dapat
digunakan adalah:

Gambar 10.3 Menampilkan statistik penerbit dengan menggunakan grouping

10.3 Having
Having digunakan untuk menggantikan WHERE dan biasanya digunakan
ketika harus dipasangkan dengan fungsi agregat. Sebagai contoh diminta untuk
menampilkan data pengarang yang menulis lebih dari tiga buku.

Gambar 10.4 Menampilkan data pengarang dengan menggunakan having


11 BAB 11
FUNGSI DAN PROSEDUR

1. Judul Materi
Fungsi dan Prosedur

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan fungsi dan
prosedur (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaan query dengan ordering, grouping dan having. Pada pertemuan ini
mahasiswa diajarkan untuk memaksimalkan query dengan fungsi dan prosedur.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang materi fungsi dan
prosedur.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan fungsi dan
prosedur.
• Mahasiswa berlatih menggunakan fungsi dan prosedur.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan fungsi dan prosedur untuk database relasional sesuai dengan
materi yang diberikan
78
79

7. Tugas
Buatlah laporan mengenai penggunaan fungsi dan prosedur dari kasus yang
dimiliki.

8. Materi

11.1 Fungsi
Fungsi (function) pada MySQL sama dengan bahasa pemrograman yang
lain. Fungsi mengembalikan suatu nilai, yang berbeda dengan prosedur. Berikut
contoh penggunaan fungsi.

Gambar 11.1 Contoh penggunaan fungsi

11.2 Prosedur
Prosedur (procedure) mirip dengan fungsi, dimana yang membedakan
adalah suatu prosedur tidak mengembalikan nilai. Berikut contoh dari prosedur.

Gambar 11.2 Contoh penggunaan fungsi


12 BAB 12
TRIGGERS

1. Judul Materi
Triggers

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan menggunakan
triggers (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaan query dengan fungsi dan prosedur. Pada pertemuan ini mahasiswa
diajarkan untuk memaksimalkan query dengan menggunakan triggers.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang triggers.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan triggers.
• Mahasiswa berlatih menggunakan triggers.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan triggers untuk database relasional sesuai dengan materi yang
diberikan

80
81

7. Tugas
Buatlah laporan mengenai penggunaan triggers dari kasus yang dimiliki.

8. Materi
Trigger adalah code procedural yang secara otomatis tereksekusi sebagai
respon terhadap event tertentu pada table atau view tertentu pada database. Trigger
biasanya digunakan untuk menjaga integrity dari informasi pada database. Misal
pada kelola_pengarang akan terdata otomatis ketika penginputan dilakukan (pada
kasus ini diasumsikan petugas yang menginputkan adalah Moeljoko dengan
idpetugas = 1).

Gambar 12.1 Contoh pembuatan trigger

Sekarang akan dimasukkan data pengarang baru:

Gambar 12.2 Trigger bekerja saat penginputan pengarang (1)

Kita inputkan lagi pengarang lainnya.


82

Gambar 12.3 Trigger bekerja saat penginputan pengarang (2)


13 BAB 13
RECURSIVE QUERIES

1. Judul Materi
Recursive Queries

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan menggunakan
recursive queries (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaan query dengan menggunakan trigger. Pada pertemuan ini
mahasiswa diajarkan untuk memaksimalkan query dengan menggunakan
recursive queries.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang recursive queries.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan recursive
queries.
• Mahasiswa berlatih menggunakan recursive queries.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan recursive queries untuk database relasional sesuai dengan materi
yang diberikan
83
84

7. Tugas
Buatlah laporan mengenai penggunaan recursive queries dari kasus yang
dimiliki.
14 BAB 14
RANKING

1. Judul Materi
Ranking

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu memaksimalkan penggunaan query dengan menggunakan
ranking (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaan query dengan menggunakan recursive queries. Pada pertemuan ini
mahasiswa diajarkan untuk memaksimalkan query dengan menggunakan
ranking.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang ranking.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang penggunaan ranking.
• Mahasiswa berlatih menggunakan ranking.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Menggunakan ranking untuk database relasional sesuai dengan materi yang
diberikan

85
86

7. Tugas
Buatlah laporan mengenai penggunaan ranking dari kasus yang dimiliki.

8. Materi
Ranking adalah merupakan advanced aggregation function yang digunakan
untuk memberikan indeks bagi nilai-nilai yang telah diurutkan. Misal diminta untuk
ditampilkan ranking dari buku berdasarkan stok terbanyak.

Gambar 14.1 Contoh penggunaan ranking


15 BAB 15
TRANSAKSI

1. Judul Materi
Transaksi

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu mengelola transaksi dalam database (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk memaksimalkan
penggunaan query dengan menggunakan ranking. Pada pertemuan ini
mahasiswa diajarkan untuk mengelola suatu transaksi yang ada pada database
relasional.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang transaksi.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang pengelolaan transaksi.
• Mahasiswa berlatih mengelola transaksi.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Mengelola transaksi untuk database relasional sesuai dengan materi yang
diberikan

87
88

7. Tugas
Buatlah laporan mengenai pengelolaan transaksi dari kasus yang dimiliki.

8. Materi

15.1 Merancang Transaksi dengan ERD


Dalam database perpustakaan, kemungkinan transaksi yang ada adalah
transaksi peminjaman buku. Dimana di dalamnya juga terdapat histori untuk
pengelolaan transaksi peminjaman tersebut. Berikut diberikan potongan ERD untuk
transaksi peminjaman buku.

nama no_hp

idpetugas alamat

petugas

melakukan idmember

jnskelola
N
kdpeminjaman
nama
idpenerbit kelola_peminjaman
tanggal member
idpetugas
N no_hp
stok
waktu 1
kdkelola
tahun buku dilakukan melakukan alamat
1

terdata 1 N
judul 1
N

idbuku memiliki peminjaman

N
kdpeminjaman denda

tglkembali
iddetail detailbuku
idbuku
tglpinjam
idmember
idbuku
hilang

tersedia rusak
dipinjam

Gambar 15.1 Potongan ERD untuk transaksi peminjaman buku

Perhatikan bahwa pada potongan ERD tersebut terdapat tambahan 3 entitas, yaitu
entitas detailbuku, peminjaman dan kelola_peminjaman.
89

15.2 Query untuk Transaksi


Transaksi menggunakan query-query yang telah diajarkan sebelumnya.
Pada transaksi Anda dapat menggunakan DML, fungsi agregat, set operations,
subquery bersarang, join, view, triggers, dan sebagainya.
16 BAB 16
DATABASE TERINTEGRASI

1. Judul Materi
Database Terintegrasi

2. Kemampuan Akhir Tahap Pembelajaran


Mahasiswa mampu mengelola database yang terintegrasi (C4, A4, P2)

3. Alat dan Bahan


Alat dan bahan yang diperlukan adalah: PC/Laptop, XAMPP, PHPMyAdmin,
CommandPrompt atau Terminal.

4. Teori
Pada pertemuan sebelumnya, mahasiswa belajar untuk mengelola suatu
transaksi yang ada pada database relasional. Pada pertemuan ini mahasiswa
diajarkan untuk mengelola database terintegrasi.

5. Pelaksanaan Praktikum
Tahapan pelaksanaan praktikum adalah sebagai berikut:
a. Tahapan uraian materi, yaitu penjelasan singkat tentang database
terintegrasi.
b. Tahapan latihan
• Pemberian contoh kepada mahasiswa tentang pengelolaan database
terintegrasi.
• Mahasiswa berlatih mengelola database terintegrasi.
c. Tahapan tindak lanjut, yaitu pemberian tugas kepada mahasiswa.

6. Latihan
Mengelola database terintegrasi sesuai dengan materi yang diberikan

90
91

7. Tugas
Buatlah laporan mengenai pengelolaan database terintegrasi dari kasus yang
dimiliki.

8. Materi
Database terintegrasi adalah konsep dimana merupakan penggabungan
database atau penyatuan database yang dapat saling berhubungan satu sama lain.
Pada saat melakukan integrasi database, data dalam sebuah sistem tidak boleh
hilang. Integrasi database membutuhkan skema yang mengambil semua aplikasi
klien ke dalam laporan. Skema yang dihasilkan akan lebih umum, lebih kompleks
atau keduanya. Database biasanya dikendalikan oleh kelompok yang terpisah untuk
aplikasi dan perubahan database yang lebih kompleks karena harus dinegosiasikan
antara kelompok database dan berbagai aplikasi.
Keuntungan dari integrasi database adalah dengan berbagi data antara
aplikasi tidak lagi memerlukan lapisan tambahan layanan integrasi pada aplikasi.
Setiap perubahan data yang dibuat dalam satu aplikasi yang dibuat tersedia untuk
semua aplikasi. Pada saat database melakukan integrasi, database-database yang
disekitarnya dapat saling berhubungan dengan mudah sesuai dengan keperluannya
masing-masing.
Contoh dari database terintegrasi adalah terdapat sebuah sistem informasi
mahasiswa akademik pada sebuah Universitas yang dimana sistem informasi
tersebut hanya merupakan sistem yang berkaitan dengan penilaian saja dan pada
sistem informasi tersebut terdapat data-data mahasiswa yang kompleks. Pada suatu
saat terdapat bagian kemahasiswaan yang mengurus beasiswa membuat sistem
informasi beasiswa secara terpisah, dan bagian kemahasiswaan tersebut
memerlukan data-data dari mahasiswa. Sehingga dapat dilakukan integrasi database
untuk mendapatkan data-data mahasiswa tersebut dan tidak perlu menuliskan atau
membuatkan data-data mahasiswa lagi.
92

Berikut contoh lain dari aplikasi dengan database terintegrasi:

Gambar 16.1 Contoh penerapan database terintegrasi


93

Anda mungkin juga menyukai