modul praktikum - basis data 2 - Politeknik Negeri Tanah Laut

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

Transcript of modul praktikum - basis data 2 - Politeknik Negeri Tanah Laut

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

ii

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

NIK. 140102098

Hendrik Setyo Utomo, S.T., MMSI

NIK. 120102079

Jaka Permadi, S.Si., M.Cs

NIK. 160801168

Diperiksa Oleh: Disahkan Oleh:

Ketua Jurusan,

Veri Julianto, M.Si.

NIP. 199007112015041001

Wakil Direktur Bidang Akademik,

Jaka Darma Jaya, M.P, M.Sc

NIP. 198404282011011003

iii

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

iv

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

v

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

vi

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

1

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,

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

18

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.

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 <table name>

Menampilkan data dari atribut-atribut pada suatu tabel

5 Desc <table name> Mendeskripsikan atau menampilkan struktur dari suatu tabel

DDL

5 Create Database <DB Name>

Membuat database baru

6 Create Table <table name> (<attributes>)

Membuat tabel baru beserta atribut-atributnya

7 Alter… Merubah struktur dari suatu tabel

8 Drop… Menghapus database, tabel, atribut dari tabel

DML

9 Insert INTO <table name> (<attributes>) Values(<values>)

Memasukkan data baru ke dalam suatu tabel

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

32

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.

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

39

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.

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

43

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.

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

47

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.

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

bukupengarang

penerbit

buku_pengarang

idbuku

judul

tahun

stok

idpenerbit

idpenerbit

penerbit

idpengarang

kota alamat

nama

gelar_depan

gelar_belakangfoto

instansi

idbuku

idpengarangid

terdapat

N

1

terdapat1

N

diterbitkan

1

N

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

56

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:

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.

62

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

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

buku

pengarang

penerbit

buku_pengarang

idbuku

judul

tahun stok

idpenerbit

idpenerbitpenerbit

idpengarang

kotaalamat

nama

gelar_depan

gelar_belakang

foto

instansi

idbuku

idpengarangidbp

terdapat

N

1

terdapat

1

N

diterbitkan1

N

petugas

idpetugas

namano_hp

alamat

kelola_pengarang

mengelola

dikelola

1N

1

N

kdkelola

idpetugas

idpengarang tanggal

waktu

jnskelola

kelola_buku

kdkelola

idpetugas

idbuku

tanggal

waktu

jnskelola

mengelola

1

N

dikelola

1

N

kelola_penerbit kdkelola

idpetugas

idpenerbit

tanggal

waktu

jnskelola

mengelola

dikelola

1

N

N

1

mengelola

kelola_BP

kdkelola

idpetugas

idbp

tanggal

waktu

jnskelola

1

N

dikelola

1

N

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

70

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

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

75

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.

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

78

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

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

80

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

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)

83

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

84

7. Tugas

Buatlah laporan mengenai penggunaan recursive queries dari kasus yang

dimiliki.

85

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

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

87

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

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.

buku

idbuku

judul

tahun

stok

idpenerbit

petugas

idpetugas

nama no_hp

alamat

member

idmember

nama

no_hp

alamat

peminjaman

kdpeminjaman

idbuku

idmembertglpinjam

tglkembalidetailbukuiddetail

idbuku

tersedia

dipinjam

rusak

hilang

memiliki

1

N

melakukan

1

Nterdata

1

N

denda

kelola_peminjaman

kdkelola

idpetugas

kdpeminjaman

jnskelola

tanggal

waktu

melakukan

1

N

dilakukan

1

N

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.

90

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

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