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
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
ii
KATA PENGANTAR
Tim Penyusun
iii
TATA TERTIB PRAKTIKUM
iv
DAFTAR ISI
vi
1 BAB I
PENDAHULUAN
1. Judul Materi
Pendahuluan
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
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
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
• 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/
Selanjutnya pada kolom Create database, isikan nama database yang ingin kita
buat, yaitu perpustakaan. Lalu klik tombol Create.
kita isikan buku pada kolom Name, lalu pada Number of columns kita isikan 2.
Kemudian klik tombol Go.
Setelah semua nama atribut dan tipe datanya diisikan, selanjutnya klik tombol Save.
structure, dan lain-lain. Maka dengan mengklik tabel structure, struktur tabel
buku akan ditampilkan.
Selanjutnya dengan mengklik tombol Go, kita akan diarahkan ke halaman berikut:
Setelah itu klik Save. Sehingga struktur dari tabel buku adalah sebagai berikut:
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
Gambar 1.20 Struktur tabel buku yang telah dilakukan perubahan tipe data pada atribut judul
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:
Setelah mengisikan data baru, klik tombol Go untuk menyimpannya. Untuk melihat
data yang telah dimasukkan, dapat mengklik menu Browse yang ada di bagian atas.
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
Setelah atribut judul dijadikan PK, tampilan tabel buku akan menjadi seperti
berikut:
16
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:
Cukup ubah saja data yang ingin diubah, lalu kemudian klik Go. Maka data telah
terubah.
17
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.
1. Judul Materi
Pengantar SQL
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
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.3 Perintah pada Command Prompt untuk masuk ke direktori xampp
Selanjutnya dengan mengetikkan perintah dir kita akan ditampilkan isi dari
direktori xampp tersebut.
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.
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.
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).
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.11 Query USE perpustakaan digunakan untuk membuka database perpustakaan
Perhatikan bahwa ada satu tabel pada database perpustakaan, yaitu tabel buku.
Untuk dapat menampilkan struktur tabel buku tersebut, gunakan query 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
Gambar 2.21 DROP TABLE buku menyebabkan database perpustakaan tidak memiliki tabel
1. Judul Materi
Modifikasi Database
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
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:
Anda dapat memasukkan data dengan nilai NULL, misalkan pada gambar berikut:
Sama dengan kasus di atas, Anda dapat memasukkan data untuk beberapa atribut
saja, dengan yang lain secara otomatis akan bernilai NULL:
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:
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
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
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:
Sedangkan untuk menghapus semua data dari suatu tabel dapat menggunakan query
sebagai berikut:
1. Judul Materi
Fungsi Agregat
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:
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:
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’:
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:
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
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:
4.5 Count
Fungsi count digunakan untuk mendapatkan banyaknya data dari suatu tabel. Misal
ingin didapatkan berapa jenis buku yang terbit pada tahun 2015:
1. Judul Materi
Set Operations
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:
Sebagai contoh diperlukan data buku yang terdapat pada tabel buku dan juga
terdapat pada tabel buku_rusak:
1. Judul Materi
Multiple Relations
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:
idbuku
id
idpengarang
idpenerbit
buku_pengarang
stok N N
1
idbuku
penerbit gelar_depan
idpenerbit instansi
foto
penerbit gelar_belakang
kota alamat
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).
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.
Pada Gambar 6.7 nilai idpenerbit adalah NULL. Nilai tersebut dapat diubah
dengan nilai referensi (Primary Key) pada tabel penerbit.
53
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:
1. Judul Materi
Subquery Bersarang
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
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
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:
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:
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:
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
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
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
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
Gambar 8.3 ERD yang menampilkan tabel histori pada database perpustakaan
Kemudian isikan tabel petugas dan tabel kelola_pengarang yang telah dibuat tadi
dengan data sebagai berikut (tabel lainnya silakan diisi sendiri):
67
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:
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.
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.
1. Judul Materi
View
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
Sedangkan untuk menampilkan tampilan yang kedua, kita perlu melakuan subquery
bersarang dengan memanfaatkan query pada tampilan pertama:
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.
Sedangkan untuk menampilkan view yang sudah dibangun tadi, cukup tuliskan saja
nama view nya:
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
1. Judul Materi
Ordering, Grouping dan Having
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.
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:
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.
1. Judul Materi
Fungsi dan Prosedur
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.
11.2 Prosedur
Prosedur (procedure) mirip dengan fungsi, dimana yang membedakan
adalah suatu prosedur tidak mengembalikan nilai. Berikut contoh dari prosedur.
1. Judul Materi
Triggers
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).
1. Judul Materi
Recursive Queries
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
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.
1. Judul Materi
Transaksi
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
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
N
kdpeminjaman denda
tglkembali
iddetail detailbuku
idbuku
tglpinjam
idmember
idbuku
hilang
tersedia rusak
dipinjam
Perhatikan bahwa pada potongan ERD tersebut terdapat tambahan 3 entitas, yaitu
entitas detailbuku, peminjaman dan kelola_peminjaman.
89
1. Judul Materi
Database Terintegrasi
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