Modul Praktikum Basis Data I
Modul Praktikum Basis Data I
“BASIS DATA I”
LABORATORIUM KOMPUTER
UNIVERSITAS SRIWIJAYA
2015
Universitas Sriwijaya LEMBAR SISTEM MANAJEMEN
Fakultas Ilmu Komputer PENGESAHAN MODUL MUTU
Laboratorium PRAKTIKUM ISO 9001 : 2008
No. Dokumen …… Tanggal 09 Mei 2016
Revisi 0 Halaman 2 Dari 58
MODUL PRAKTIKUM
Prakata....................................................................................................................................... 6
Tujuan .................................................................................................................................... 7
Praktik.................................................................................................................................... 8
Tujuan .................................................................................................................................. 12
Praktik.................................................................................................................................. 18
Tujuan .................................................................................................................................. 20
Praktik.................................................................................................................................. 24
Kesimpulan .......................................................................................................................... 26
Praktik.................................................................................................................................. 33
Kesimpulan .......................................................................................................................... 34
Tujuan .................................................................................................................................. 36
Praktik.................................................................................................................................. 38
Kesimpulan .......................................................................................................................... 39
Tujuan .................................................................................................................................. 41
Praktik.................................................................................................................................. 43
Kesimpulan .......................................................................................................................... 45
Tujuan .................................................................................................................................. 46
4
Praktik.................................................................................................................................. 47
Kesimpulan .......................................................................................................................... 51
8. Join ....................................................................................................................................... 52
Tujuan .................................................................................................................................. 52
Praktik.................................................................................................................................. 55
Kesimpulan .......................................................................................................................... 58
5
Prakata
Dengan memanjatkan puji syukur kehadirat Allah SWT yang telah melimpahkan
rahmat dan karunia-Nya kepada penyusun, sehingga dapat menyelesaikan buku
panduan praktik Basis Data ini. Sholawat dan salam juga kita curahkan kepada
baginda yang mulia Rosulullah SAW beserta keluarga, sahabat dan pengikutnya
hingga akhir zaman.
Buku ini merupakan salah satu bahan ajar pendukung untuk mata kuliah Basis
Data. Dari buku ini diharapkan mahasiswa dapat dengan mudah mempelajari,
memahami, dan mempraktikkan materi – materi yang telah diajarkan pada kelas
teori mata kuliah Basis Data. Kemudian buku ini diharapkan dapat menjadi
referensi untuk pemecahan permasalahan umum di luar materi perkuliahan.
Sebagian besar isi dari buku ini merupakan rangkuman dari sumber-sumber yang
telah dibuat penulis lain. Penyusun berharap agar buku ini dapat bermanfaat bagi
semua kalangan pembaca. Terima kasih untuk semuanya yang telah memberikan
banyak kritik dan saran serta dukungan dalam penyusunan buku ini.
Penyusun
6
1. Pengenalan dan Lingkungan Kerja MySQL
Tujuan
Dasar teori
Format Perintah
• Setiap perintah harus diakhiri dengan tanda titik koma , kecuali untuk
perintah tertentu, misal : quit
• Setiap perintah akan disimpan dalam buffer (memori sementara) untuk
menyimpan histori perintah-perintah yang pernah diberikan.
• Perintah dapat berupa perintah SQL atau perintah khusus MySQL.
7
• Perintah-perintah dalam lingkungan MySQL tidak menerapkan aturan case
sensitive, tetapi case insensitive yaitu perintah bisa dituliskan dalam huruf
besar atau pun huruf kecil.
• Aturan case sensitive diterapkan pada penamaan objek-objek dalam database
seperti nama database atau nama table, namun aturan ini hanya ada dalam
lingkungan Unix dan Linux.
Prompt Arti
mysql> Siap menerima perintah baru
-> Menunggu baris berikut untuk perintah yang
lebih dari satu baris
'> Menunggu baris berikut, menunggu penutup
string yang dimulai dengan tanda kutip satu (“'”)
"> Menunggu baris berikut, menunggu penutup
string yang dimulai dengan tanda kutip dua (“"”)
`> Menunggu baris berikutnya, menunggu penutup
identifier yang dimulai dengan tanda backtick
(“`”)
1. PC
2. MySQL
Praktik
1. Koneksi ke MySQL.
Buka command prompt, masuk ke direktori \AppServ\MySQL\bin, kemudian
ketik :
8
mysql> QUIT
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
mysql> SELECT
-> USER()
-> \c
Apa yangterjadi ?
Kemudian ketik ( ; ) :
-> ;
9
10. Ketik perintah berikut :
10
8. Sebelum membuat tabel, langkah-langkah apa saja yang sebaiknya kita lakukan
? (Berdasarkan percobaan di atas)
Kesimpulan
11
2. Database dan Tabel
Tujuan
Dasar teori
Membuat Database
Syntax : CREATE DATABASE namadatabase;
namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang
sama antar database. Berikut ini perintah untuk membuat database dengan nama
rental :
Syntax tambahan :
untuk menampilkan daftar nama database yang ada pada mysql menggunakan
perintah :
12
Menghapus Database
Syntax : DROP DATABASE namadatabase;
Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah
untuk menghapus database dengan nama rental :
Membuat Tabel
Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu database
sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel dengan
menggunakan syntax : USE namadatabase;
namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1 merupakan
nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin membuat tabel
dengan kolom lebih dari satu, maka setelah pendefinisian tipe data sebelumnya
diberikan tanda koma (,). Berikut ini perintah untuk membuat tabel dengan nama
jenisfilm :
Syntax tambahan :
13
Untuk menampilkan daftar nama tabel yang ada pada database yang sedang
aktif/digunakan (dalam hal ini database rental) :
Untuk menampilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :
DESC namatabel;
Menghapus Tabel
Syntax : DROP TABLE namatabel;
Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untuk
menghapus tabel dengan nama jenisfilm :
14
Mendefinisikan Primary Key Pada Tabel
Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah Syntax
mendefinisikan primary key untuk Field1
Atau
atau
Berikut ini perintah untuk membuat tabel jenisfilm dengan kolom jenis tipe datanya
char(6), harga tipe datanya int dengan mendefinisikan nilai not null dan primary
key untuk kolom jenis serta nilai default untuk kolom harga :
atau
atau
15
ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;
Berikut ini perintah yang digunakan untuk menghapus primary key pada tabel
jenisfilm :
namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah nama
kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan
ditambahkan. Berikut ini perintah untuk menambah kolom keterangan dengan tipe
data varchar(25) :
16
namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya. Field
adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru
atau tipe data lama dengan lebar kolom yang berbeda. Berikut ini perintah untuk
mengubah tipe data untuk kolom keterangan dengan char(20) :
namatabel adalah nama tabel yang akan diubah nama kolomnya, namalamakolom
adalah kolom yang akan diganti namanya, namabarukolom adalah nama baru
kolom, tipedatanya adalah tipe data dari kolom tersebut. Berikut ini perintah untuk
mengubah nama kolom keterangan menjadi ket :
Berikut ini perintah untuk menghapus kolom ket pada tabel jenisfilm :
17
dibuat untuk setiap kolom yang akan dijadikan kriteria tertentu untuk pencarian
data sehingga proses pencariannya akan lebih cepat. Ada perintah untuk membuat
dan menghapus index, tapi tidak ada perintah untuk merubah index.
1. PC
2. MySQL
Praktik
18
5. Sisipkan sebuah kolom dengan nama phone (varchar 15) setelah kolom alamat !
6. Ubah kolom nim menjadi char(11) !
7. Ubah nama kolom phone menjadi telepon (varchar 20) !
8. Hapus kolom keterangan dari tabel !
9. Ganti nama tabel menjadi student!
10. Buat index untuk tabel tersebut !
11. Jadikan nim sebagai primary key !
Kesimpulan
19
3. Manipulasi dan Retrieve Data (bagian 1)
Tujuan
Dasar teori
Cara 2 : Menambah baris dengan hanya mengisi data pada kolom tertentu :
Cara 2 :
20
Keterangan :
Jika data bertipe string, date atau time (contoh : action, horor, 2007-11-10)
maka pemberian nilainya diapit dengan tanda petik tunggal (‘horor’) atau
petik ganda (“horor”). Jika data bertipe numerik (2500, 400) maka pemberian
nilainya tidak diapit tanda petik tunggal maupun ganda.
DELETE
Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi
tertentu atau seluruh baris.
Syntax :
DELETE FROM namatabel [WHERE kondisi];
Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan
suatu kondisi tertentu. Berikut ini perintah untuk menghapus baris pada tabel
jenisfilm dengan data sebagai berikut :
Contoh 2 : jika ingin menghapus baris yang memiliki nilai 3000 pada kolom harga
pada tabel jenisfilm maka perintahnya sebagai berikut :
Contoh 3 : jika ingin menghapus baris yang memiliki nilai drama pada kolom jenis
pada tabel jenisfilm maka perintahnya sebagai berikut :
UPDATE
Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa
kolom pada suatu tabel.
Syntax :
21
UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi];
Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu
kondisi tertentu. Berikut ini perintah untuk mengubah baris pada tabel jenisfilm
dengan data sebagai berikut :
Contoh 2 : mengubah nilai pada kolom harga menjadi 2500 dimana nilai pada kolom
jenis adalah action :
SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat
dihubungkan dengan tabel yang lainnya.
1) Menampilkan data untuk semua kolom menggunakan asterisk
(*) Syntax : SELECT * FROM namatabel;
Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm :
22
3) Menampilkan data dengan kondisi data tertentu dengan klausa
WHERE Syntax : SELECT * FROM namatabel WHERE kondisi;
Berikut ini perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
pada kolom jenis adalah drama :
Contoh 1 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
harga berkisar dari 1000 hingga 3000 :
atau
Contoh 2 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
harga sama dengan 1000 atau 3000 :
23
atau
Contoh 3 : perintah untuk menampilkan data pada tabel jenisfilm dimana nilai
pada kolom jenis tidak sama dengan action :
atau
1. PC
2. MySQL
Praktik
24
3. Isi data ke dalam tabel pet seperti berikut :
25
Kesimpulan
26
4. Manipulasi dan Retrieve Data (bagian 2)
Tujuan
Dasar teori
Berikut ini perintah untuk memberikan nama lain pada kolom jenis menjadi
jenis_film pada tabel jenisfilm :
27
Isi tabel film :
Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilm dan film :
Subquery terletak di dalam klausa WHERE atau HAVING. Pada klausa WHERE,
subquery digunakan untuk memilih baris-baris tertentu yang kemudian digunakan
oleh query. Sedangkan pada klausa HAVING, subquery digunakan untuk memilih
kelompok baris yang kemudian digunakan oleh query.
28
Contoh 1 : perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tercantum pada tabel film menggunakan IN :
berkedudukan sebagai query. Perhatikan, terdapat data jenis dan harga pada tabel
jenisfilm yang tidak ditampilkan. Hal ini disebabkan data pada kolom jenis tidak
terdapat pada kolom jenis di tabel film.
Contoh 2 : perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN :
29
Operator comparison ANY dan ALL
a. Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan
TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquery
menghasilkan nilai TRUE. Ilustrasinya :
Gaji > ANY (S)
Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik
dengan (gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)
30
ORDER BY
Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu
sesuai dengan tipe data yang dimiliki. Contoh : perintah untuk mengurutkan data
film berdasarkan kolom judul :
DISTINCT
Distinct adalah kata kunci ini untuk menghilangan duplikasi.
Contoh :
SELECT DISTINCT kota FROM Pelanggan
Dengan perintah di atas maka nama kota yang sama hanya akan ditampilkan satu
saja.
31
UNION, INTERSECT dan EXCEPT
a. UNION
UNION merupakan operator yang digunakan untuk menggabungkan hasil
query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel
yang akan ditampilkan datanya harus sama. Berikut ini perintah untuk
memperoleh data pada tabel film dimana jenisnya action dan horor :
Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika
bekerja pada dua tabel atau lebih.
b. INTERSECT
INTERSECT merupakan operator yang digunakan untuk memperoleh data dari
dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua
query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-
masing tabel yang akan ditampilkan datanya harus sama.
32
1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama
dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus
sama.
Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat
menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.
1. PC
2. MySQL
Praktik
33
8. Tambahkan record baru dengan value : E006,lincoln, burrows, linc@yahoo.com,
085275384544, 2008-09-01, L0006, 1750000, NULL, ex, coml.
9. Untuk pegawai yang ber-id E004 dan E005 ubah idmanajernya menjadi al !
10. Sekarang tampilkan kolom idmanajer saja !
11. Dari percobaan 10, terdapat 3 idmanajer yang sama dengan total record 6,
sekarang tampilkan idmanajer tanpa duplikasi idmanajer sehingga akan tampil
4 record dengan idmanajer yang berbeda !
12. Tampilkan pegawai yang gajinya antara 1750000 - 1250000 !
13. Tampilkan tabel pegawai yang terurut berdasarkan namabelakang (dari a ke z)!
14. Tampilkan tabel pegawai yang terurut berdasarkan namadepan dengan urutan
terbalik (dari z ke a)!
Kesimpulan
34
Data Tabel Awal
35
5. Fungsi Agregat
Tujuan
Dasar teori
b. SUM
Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada
tabel. Contoh : perintah untuk menghitung jumlah nilai kolom harga pada tabel
jenisfilm :
36
c. AVG
Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom
pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom harga pada
tabel jenisfilm :
d. MIN
Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom
pada tabel. Contoh : perintah untuk menampilkan nilai terkecil dari kolom harga
pada tabel jenisfilm :
e. MAX
Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom
pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom
harga pada tabel jenisfilm :
1. PC
2. MySQL
37
Praktik
38
| dog | m | 2|
| hamster | f | 1|
| snake | m | 1|
+--------- +------ +---------- +
14. Tampilkan jumlah hewan berdasarkan spesis (cat dan dog saja) dan jenis
kelamin !
+--------- +------ +---------- +
| species | sex | COUNT(*) |
+--------- +------ +---------- +
| cat | f | 1|
| cat | m | 1|
| dog | f | 1|
| dog | m | 2|
+--------- +------ +---------- +
15. Tampilkan jumlah hewan berdasarkan jenis kelamin yang diketahui saja !
+--------- +------ +---------- +
| species | sex | COUNT(*) |
+--------- +------ +---------- +
| bird | f | 1|
| cat | f | 1|
| cat | m | 1|
| dog | f | 1|
| dog | m | 2|
| hamster | f | 1|
| snake | m | 1|
+--------- +------ +---------- +
Kesimpulan
39
Data Tabel Pegawai
40
6. Retrieve, Group, Filter dan Pattern Matching
Tujuan
Dasar teori
akan ditampilkan hanya kolom jenis dan digabungkan dengan SUM(jml_film) yang
dikelompokkan berdasarkan kolom jenis pada tabel film :
Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY.
Kelompok yang memenuhi HAVING saja yang akan dihasilkan. Contoh : perintah
untuk menampilkan data hanya kolom jenis yang dikelompokkan berdasarkan
41
kolom jenis, dimana jumlah film berdasarkan kelompoknya harus lebih besar dari
satu pada tabel film :
Untuk efesiensi harus dimengerti urutan pemilihan Where, Group By dan Having
Fungsi string digunakan untuk menampilkan data yang didasarkan pada pencarian
dengan karakter. Pada pencarian data digunakan sintak LIKE, pada dasarnya sintak
LIKE hampir sama dengan sintak = , bedanya kalau = maka pencarian karakater
harus sesuai dengan kata yang kita buat tetapi dengan menggunakan LIKE
karakater yang akan kita tampilkan tidak harus lengkap hanya dengan menuliskan
salah satu huruf atau kata saja, maka semua data yang kita cari akan ditampilkan.
Bentuk umum :
42
Tools yang digunakan
1. PC
2. MySQL
Praktik
2. Isi data
43
5. Buat tabel barang dan isi datanya :
kodebrg namabrg hargamodal hargabeli Stok
B01 Sabun 2000 2500 15
B02 Pasta Gigi 2500 3000 15
B03 Sikat Gigi 3000 4000 10
B04 Rokok 6000 7000 30
B05 Korek Api 500 600 10
44
Evaluasi dan Pertanyaan
1. Tulis semua perintah-perintah SQL percobaan di atas beserta outputnya !
2. Beri kesimpulan Anda !
Kesimpulan
45
7. Relasi Tabel
Tujuan
Dasar teori
46
Primary key adalah suatu field atau kombinasi field yang secara unik
mengidentifikasi setiap record di dalam tabel. Contoh NIM yang terdapat pada
tabel mahasiswa.
Foreign key adalah primary key pada suatu tabel yang di masukkan pada tabel lain
dan dijadikan salah satu key pada tabel tersebut
References menunjukkan bahwa foreign key di suatu tabel merupakan key pada
tabel lain.
Pada perubahan suatu record baik itu update atau delete, dapat diikuti dengan kata
: cascade, restrict atau set null. Kita bisa atur sesuai kebutuhan.
Contoh :
- on update CASCADE on delete RESTRICT
- on update RESTRICT on delete SET NULL
1. PC
2. MySQL
Praktik
47
3. Buat tabel dosen_pembimbing dengan tipe innodb dan relasikan ke tabel
mahasiswa dengan mengambil key nim dari tabel mahasiswa sebagai foreign key di
tabel dosen_pembimbing
48
6. Hapus sebuah record di tabel mahasiswa
1. Apa yang terjadi jika sintak pada langkah ke 3 (baris sintak terkahir) diubah
menjadi on update cascade on delete restrict ?
2. Apa yang terjadi jika sintak pada langkah ke 3 (baris sintak terkahir) diubah
menjadi on update cascade on delete set null ?
49
3. Buat sebuah database baru dengan nama toko. Buat 3 buah tabel di dalam
database tersebut, yaitu tabel produk, pelanggan, dan produk_order.
Tabel Produk
Tabel Pelanggan
Tabel Produk_Order
Buat relasi untuk tabel-tabel di atas dan buktikan relasi tersebut dengan melakukan
update atau delete terhadap suatu tabel berpengaruh terhadap tabel lainnya!
50
Kesimpulan
51
8. Join
Tujuan
Dasar teori
Operasi Join
Join merupakan operasi yang digunakan untuk menggabungkan dua tabel atau
lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-tabel
tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada
pencocokan antara kolom pada tabel yang berbeda. Berikut ini perintah untuk
menampilkan kolom judul dari tabel film dan kolom harga dari tabel jenisfilm :
a. Inner Join
Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data
sesuai dengan syarat dibelakang on (tidak boleh null), dengan kata lain semua
data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan. Berikut
ini perintah untuk menampilkan data dari tabel jenisfilm dan film dengan
syarat berdasarkan kolom jenis :
52
b. Left Join
Left join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun
terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan
ditampilkan dengan pasangannya berupa nilai NULL.
c. Right Join
Right join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun
terdapat data dari sebelah kanan tidak memiliki pasangan, tetap akan
ditampilkan dengan pasangannya berupa nilai NULL.
d. Natural Join
53
Natural join digunakan untuk menampilkan semua data dari dua tabel dimana
jika terdapat kolom yang sama, maka yang akan ditampilkan hanya salah
satunya saja, yaitu kolom dari tabel sebelah kiri perintah natural join.
54
Tools yang digunakan
1. PC
2. MySQL
Praktik
1. Buat sebuah database dengan nama sewamobil
2. Buat tabel mobil dan isi datanya
55
4. Buat tabel sewa dan isi datanya
56
5. Buat query sehingga didapat tabel seperti berikut :
57
Evaluasi dan Pertanyaan
1. Tulis sintaks sql untuk mendapatkan tabel pada no 5, 6, 7 dan 8 !
2. Apa kesimpulan anda !
Kesimpulan
58