MODUL I
Manipulasi Basis Data
MAKSUD DAN TUJUAN
Agar mahasiswa memahami cara, manipulasi basis data dengan perintah DML
MATERI
Penerapan perintah INSERT, UPDATE, dan DELETE
TEORI
MySQL adalah salah satu produk RDBMS yang sangat populer juga bersifat
open source. Seperti kebanyakan database server lainnya, MySQL dapat diakses
oleh aplikasi klien dengan bahasa standar, yaitu SQL (Structure Query Language).
SQL dapat digolongkan menjadi tiga:
Data Definition Language, yang termasuk golongan ini adalah:
Membuat database
Menghapus database
Menciptakan tabel
Menghapus tabel
Mengubah tabel
Menambah record
Menghapus record
Data Control Language, yang termasuk golongan ini adalah perintah untuk
mengatur kewenangan user, misalnya perintah:
CREATE USER
DROP USER
GRANT
REVOKE
INSERT
Perintah INSERT pada DML digunakan untuk memasukkan data ke dalam tabel.
Sintaks yang dipakai adalah :
INSERT INTO Nama_Tabel(Daftar_Kolom) Values(Daftar_Nilai)
2
UPDATE
Perintah UPDATE digunakan untuk melakukan perubahan pada data.Update
berfungsi untuk mengubah data dalam tabel. Beberapa kegunaan update adalah :
mengubah data dalam tabel, mengisi field yang masih kosong datanya,
mengosongkan field yang sudah ada datanya.Sintaks yang digunakan adalah:
UPDATE Nama_Tabel
SET Nama_Kolom = Nilai_baru
WHERE Kondisi
DELETE
DELETE digunakan untuk menghapus dan menggunakan perintah DELETE.Sintaks
yang digunakan adalah:
DELETE from Nama_Tabel
Where Kondisi
PRAKTIK
1. Lewat command promt, jalankan program MySQL dengan perintah: mysql> ,
kemudian masukkan password yang diminta (mungkin root)
2. Setelah masuk di lingkungan MySQL, buatlah database dengan perintah SQL:
create database dbperusahaan;
3. Masukklah ke database dbperusahaan dengan perintah:
use dbperusahaan;
4. Buatlah tabel departemen dengan perintah:
mysql> create tabel departemen
(id_Dep char(2) not null,
Nama_Dep char(12) not null,
Primary key (Nama_Dep));
5.untuk melihat struktur tabel departemen gunakan perintah:
mysql> describe departemen;
sehingga akan ditampilkan struktur tabel sebagai berikut:
+----------+----------+
| Field
| Type
|
+----------+----------+
| id_Dep
| char(2) |
| Nama_Dep | char(12) |
+----------+----------+
3
6.Masukkan record baru (menambah record) dengan perintah:
mysql> insert into departemen(id_Dep,Nama_Dep) values
('PS','Pemasaran'),
('PD','Produksi'),
('AK','Akuntansi'),
('SD','SDM'),
('RD','R & D');
Untuk menampilkan isi tabel departemen gunakan perintah sebagai berikut:
mysql> select * from departemen;
+--------+-----------+
| id_Dep | Nama_Dep |
+--------+-----------+
| PS
| Pemasaran |
| PD
| Produksi |
| AK
| Akuntansi |
| SD
| SDM
|
| RD
| R & D
|
+--------+-----------+
7. Mengubah record pada tabel barang yang Id_Dep = SD, Nama_Dep menjadi
Personalia, dengan perintah:
update Nama_Dep set = Personalia ;
8.Hapus record pada tabel barang yang Id_Dep = RD,dengan perintah:
delete from departemen where Id_Dep = RD;
9. Mengubah struktur tabel departemen, untuk type nama_departemen diganti
menjadi varchar (15).
Alter tabel departemen modify Nama_Dep varchar(15);
LATIHAN
1. Buatlah tabel Karyawan,Proyek, Manajer dengan struktur sebagai berikut:
Tabel Proyek
+-----------+------------------------+
| Field
| Type
|
+-----------+------------------------+
| Id_Proyek | int(11) auto_increment |
| Deskripsi | char(100)
|
| Selesai
| enum('S','B')
|
+-----------+------------------------+
Tabel Karyawan
+---------------+---------------+
| Field
| Type
|
+---------------+---------------+
| No_Karyawan
| char(8)
|
| Nama
| char(35)
|
| Jenis_Kelamin | enum('L','P') |
| Tgl_Lahir
| date
|
| Jabatan
| char(15)
|
| Id_Dep
| char(2)
|
+---------------+---------------+
Tabel Teknisi_Proyek
+-----------------+---------+
| Field
| Type
|
+-----------------+---------+
| No_Karyawan
| char(8) |
| Id_Proyek
| int(11) |
| Tgl_Mulai
| date
|
| Tanggal_Selesai | date
|
+-----------------+---------+
2. Tambahkan kolom gaji pada tabel Karyawan.
3. Masukkan Data pada tabel proyek, karyawan, teknisi_proyek minimal 5.
4. Gunakan perintah UPDATE dan Delete, untuk melakukan perubahan terhadap
data-data diatas.
TUGAS
1.
2.
Gunakan perintah Update dan Delete pada tabel yang telah dibuat.
MODUL II
Pemrosesan tabel tunggal
MAKSUD DAN TUJUAN
Agar mahasiswa bisa memasukkan data, menampilkan data dengan query
MATERI
Insert, select (all, distinct, like), from, dan where untuk tabel tunggal
TEORI
1. INSERT : Memasukkan data ke dalam tabel.
Sintaks :
WHERE
berfungsi untuk
memberikan kondisi
5. DISTINC : digunakan
untuk
menampilkan
record
yang
berbeda
Untuk pemilihan distinc lebih dari satu kolom menggunakan sintaks sebagai berikut :
Select distinct *
From nama_tabel
Group by key
6. LIKE : digunakan untuk mencari data yang menyerupai atau hampir sama
dengan kriteria tertentu. Biasanya untuk mencari data string / teks. Dalam hal ini
digunakan simbol % atau _ .
Sintaks :
Select nama_kolom
From nama_tabel
Where nama_kolom like "%....;
7. ALL : Kata kunci dasar untuk pernyataan SELECT. Kondisi dengan ALL
menghasilkan nilai benar jika pembandingan dihasilkan nilai benar untuk setiap nilai
dalam subquery. Tetapi kita hampir tidak pernah menemukan kata kunci tersebut
karena hasil dari SELECT <nama tabel> dan SELECT ALL <nama tabel> adalah
identik.
Sintaks : Select All nama_kolom From Nama_Tabel
8. Order by : digunakan untuk mengurutkan data.
Sintaks : Select * from nama_tabel order by kriteria;
9. Group by : Mengelompokkan data.
Sintaks : Select kriteria from nama_tabel group by kriteria;
10. Fungsi Agregat : untuk menghasilkan nilai berdasar sejumlah data.
MODUL III
Studi kasus menggunakan tabel tunggal
MAKSUD DAN TUJUAN
Agar mahasiswa memahami
tunggal
MATERI
Menerapkan teori yang sudah dipelajari pada modul I dan 2.
TEORI
Penerapan perintah INSERT, UPDATE, dan DELETE, Insert, select (all, distinct,
like), from, dan where untuk tabel tunggal terhadap suatu database pada tabel
tunggal.
PRAKTIK DAN LATIHAN
1. Buatlah database Nasabah Bank Sejahtera yang terdiri dari tabel data
cabang, dan tabel data nasabah sebagai berikut :
Data Cabang
Kd_cabang
KC001
KC002
KC003
KC004
KC005
Nama
KC AKAKOM
KC GEJAYAN
KC WIROBRAJAN
KC GEDUNG KUNING
KC BABARSARI
Alamat
Jml_Nasabah
JANTI
GEJAYAN
WIROBRAJAN
GEDUNG KUNING
BABARSARI
8
5
8
7
3
Data Nasabah
Kd_Nasabah Nama
Alamat
Rekening Kd_cabang
Saldo
N0001
N0002
N0003
N0004
N0005
N0006
N0007
N0008
N0009
N0010
N0011
N0012
Condong Catur
Gejayan
Gamping
Janti
Kotabaru
Kalasan
Terban
Sleman
Terban
Sagan
Monjali
Timoho
12340001
12340002
12340003
12340004
12340005
12340006
12340007
12340008
12340009
12340010
12340011
12340012
1500000
2500000
1400000
7000000
2000000
1200000
1300000
2800000
9000000
4500000
750000
1200000
Januar
Febri
Marina
Aprilia
Memey
Junita
Juliana
Agusto
Septiana
Oktavia
Novia
Desia
KC002
KC004
KC005
KC001
KC003
KC001
KC002
KC005
KC004
KC003
KC001
KC005
: KC Ambarukmo
Alamat
: Ambarukmo
Jumlah Nasabah
: 15
: Monjali
Saldo
: 9000000
10
MODUL IV
Pemrosesan tabel jamak
MAKSUD DAN TUJUAN
Agar mahasiswa memahami relasi dan pemrosesan tabel jamak
MATERI
Cross Join dan Inner Join
TEORI
SQL mempunyai kemampuan untuk menggabungkan dua tabel atau lebih guna
mendapatkan informasi yang diinginkan, dengan proses yang dilakukan dengan
nama JOIN. Suatu operasi Join mengkombinasikan product, selection, dan mungkin
projection. Operator Join secara horisontal mengkombinasikan / menggabungkan
data dari satu baris tabel dengan baris dari yang lain atau tabel yang sama ketika
kriteria tertentu ditemukan. Kriteria melibatkan suatu hubungan diantara kolom
didalam gabungan tabel relasional.
Sintak Join :
Select nama_kolom
From nama_tabel1
JOIN nama_tabel2
ON nama_tabel1.key1 = nama_tabel2.key1;
a. CROSS JOIN / CARTESIAN JOIN : menghasilkan kombinasi semua baris
yang terdapat dalam tabel-tabel yang digabungkan baik yang tidak
berpasangan maupun yang berpasangan.
b. INNER JOIN : menghasilkan output yang berupa kombinasi baris-baris yang
memiliki pasangan saja. Kombinasi baris yang bukan pasangan akan
dieliminasi. Baris baris yang tidak memiliki pasangan pada tabel lainnya
tidak dimunculkan.
11
3. Gunakan database mahasiswa yang telah dibuat, terdiri dari tabel mhs,
matakuliah, khs, sebagai berikut:
Tabel mhs
+------------+--------+------+----------+--------+-------+
| nim
| nama
| jk
| agama
| alamat | kelas |
+------------+--------+------+----------+--------+-------+
| 0802100011 | emy
| P
| islam
| janti
| A11
| 0802100012 | waldan | L
| islam
| sleman | B13
| 0802100013 | tasya
| P
| islam
| sleman | B13
| 0802100014 | rika
| P
| 0802100015 | thomas | L
+------------+--------+------+----------+--------+-------+
Tabel matakuliah
+---------+----------------------+------+
| kode_mk | nama_mk
| sks
+---------+----------------------+------+
| DKT01
| pemrograman komputer |
2 |
| KKT05
| basis data
2 |
| KKT07
| sistem informasi
2 |
| PKT21
| bahasa inggris
2 |
| DKT33
| pemrograman web
3 |
+---------+----------------------+------+
Tabel khs
+------------+---------+----------+-----------+-------+
| nim
| kode_mk | semester | TA
| nilai |
+------------+---------+----------+-----------+-------+
| 0802100011 | DKT01
3 | 2007/2008 | A
| 0802100012 | PKT21
5 | 2007/2008 | A
| 0802100013 | PKT21
5 | 2007/2008 | B
| 0802100014 | DKT01
5 | 2007/2008 | C
| 0802100015 | KKT07
2 | 2007/2008 | B
+------------+---------+----------+-----------+-------+
4. Tuliskan perintah :
mysql> select mahasiswa.nama,mk.nama_mk from mahasiswa,mk ;
12
9. Menghitung point:
mysql> select k.nim,m.nama_mk,m.sks,k.nilai,
-> case
-> when nilai='A' then 4*m.sks
-> when nilai='B' then 3*m.sks
-> when nilai='C' then 2*m.sks
-> when nilai='D' then 1*m.sks
-> else 0
-> end as point
-> from khs k inner join mk m on k.kode_mk=m.kode_mk;
10. Menampilkan data mahasiswa yang terdapat dalam tabel mahasiswa dan
dalam tabel khs :
mysql> select mahasiswa.nim,mahasiswa.nama
-> from mahasiswa inner join khs on mahasiswa.nim=khs.nim;
13
TUGAS
1. Gunakan database penggajian dan terapkan fungsi Cross Join, Inner Join
sesuai pada latihan sebelumnya.
2. Hitung gaji berdasarkan tunjangan, gaji pokok dan bonus, dengan
ketentuan :
Tunjangan:
14
MODUL V
Pemrosesan tabel jamak
MAKSUD DAN TUJUAN
Agar mahasiswa memahami relasi dan pemrosesan tabel jamak
MATERI
Outer join dan Union join
TEORI
a. OUTER JOIN adalah join yang menghasilkan semua data dari sebuah tabel
dan membatasi data dari tabel lain. Dalam SQL dapat dibedakan menjadi
LEFT JOIN dan RIGHT JOIN.
LEFT OUTER JOIN / LEFT JOIN : jika tabel yang terletak disebelah kiri
operator Left Outer Join ada yang tidak memiliki pasangan dengan tabel yang
terletak di kanan operator Left Outer Join baris ini akan tetap disertakan
dalam hasil penggabungan.
RIGHT OUTER JOIN / RIGHT JOIN : jika baris pada tabel yang terletak
disebelah kanan operator RIGHT OUTER JOIN ada yang tidak memiliki
pasangan dengan tabel yang terletak di kanan operator Right Outer Join,
baris ini tetap disertakan dalam hasil penggabungan.
b. 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.
Contoh : mysql>select jenis,judul from film where jenis='action' union
select jenis,judul from film where jenis='drama';
15
3. Gunakan database mahasiswa yang telah dibuat, tambahkan tabel jurusan,
dan kelas sebagai berikut :
Tabel Dosen
+-----------+-----------+------+------------+--------------+------------+
| nip
| namadosen | jk
| alamat
| telp
| pendidikan |
+-----------+-----------+------+------------+--------------+------------+
| 132312490 | aulia
| P
| yogyakarta | 08122771344
| S2
| 132312478 | putri
| P
| janti
| 085678900123 | S3
| 132312455 | ratna
| P
| sleman
| 08123456779
| S2
| 132312445 | mirza
| L
| bantul
| 08113456888
| S3
| 132312433 | budi
| L
| bantul
| 08117890123
| S2
+-----------+-----------+------+------------+--------------+------------+
Tabel Jurusan
+--------------+----------------------------+-----------+
| kode_jurusan | nama_jurusan
| ketua
+--------------+----------------------------+-----------+
| S1TI
| Teknik Informatika S1
| 132312490 |
| S1SI
| Sistem Informasi S1
| 132312478 |
| D3MI
| Manajemen Informatika D3
| 132312455 |
| D3KA
| D3TK
| Teknik Komputer D3
| 132312433 |
+--------------+----------------------------+-----------+
Tabel Kelas
+--------+--------------+-----------+------------+
| kelas
| kode_jurusan | nip
| dosen_wali |
+--------+--------------+-----------+------------+
| S1TI3A | S1TI
| 132312490 | 132312490
| S1TI3C | S1TI
| 132312490 | 132312490
| D3MI1B | D3MI
| 132312455 | 132312455
| S1SI5A | S1SI
| 132312478 | 132312478
+--------+--------------+-----------+------------+
4. Tuliskan perintah :
mysql> select m.nim,m.nama,k.kode_mk,k.nilai
-> from mahasiswa m left join khs k on m.nim=k.nim;
5. Tuliskan perintah :
mysql> select m.nim,k.kelas as kelas,kode_jurusan as jurusan
-> from mahasiswa m right join kelas k on m.kelas=k.kelas;
6. Tuliskan perintah :
mysql> select kelas,kode_jurusan from kelas where kelas='S1TI3A' union
select kelas,kode_jurusan from kelas where kelas='D3MI1B;
TUGAS
1. Jelaskan perbedaan antara cross join, inner join dan
outer join, dan sertakan contoh untuk mendukung jawaban
anda.
2. Menggunakan database penggajian operasikan perintahperintah dengan outer join dan union.
16
MODUL VI
Penggunaan Subquery
MAKSUD DAN TUJUAN
Agar mahasiswa memahami
EXIST Subquery
Dengan EXIST, subquery dapat menghasilkan satu atau lebih kolom.
Contoh :
SELECT id, nama FROM petani
WHERE NOT EXIST
(SELECT stock_num,manu_code FROM items
WHERE stock.stock_num = items.stock_num
AND stock.manu_code = items.manu_code)
ALL/ANY/SOME Subquery
ANY, ALL atau SOME dipakai dalam subquery bila hasil yang dikembalikan lebih
dari satu.
Jika ANY, ALL atau SOME diabaikan dan subquery menghasilkan lebih dari satu
nilai, maka pesan kesalahan akan muncul.
17
Contoh 1 :
Contoh 2 :
Contoh 3 :
5. Tulis perintah :
mysql>select nim,nama
from mahasiswa
where nim = any (select distinct nim from khs);
6. Tulis perintah :
mysql>select nim,nama
from mahasiswa
where nim in (select distinct nim from khs);
7. Tulis perintah :
mysql>select nim,nama
from mahasiswa
where not exists (select * from khs where nim=mahasiswa.nim);
8. Apa kesimpulan yang anda peroleh dari perintah-perintah tersebut? Apa saja
hasilnya?
18
TUGAS
1. Gunakan tabel mahasiswa, kelas, jurusan dan dosen untuk menampilkan
data berikut:
a. menampilkan data dosen (nip, nama) yang menjabat sebagai ketua
jurusan sekaligus menjadi dosen wali.
b. Menampilkan data dosen (nip,nama) yang tidak menjabat sebagai
ketua jurusan.
c. Menampilkan data dosen (nip, nama) yang tidak menjadi dosen wali.
d. Menampilkan daftar mahasiswa yang dibimbing oleh seorang dosen
wali.
e. Menampilkan daftar mahasiswa suatu jurusan.
f. Menampilkan daftar mahasiswa suatu jenjang program studi.
19
MODUL VII
Penggunaan Query Kompleks
MAKSUD DAN TUJUAN
Agar mahasiswa memahami
data
MATERI
Query dengan menggunakan tabel jamak dengan perintah yang kompleks dan
penggunaan view.
TEORI
View merupakan suatu cara untuk menampilkan data dari satu atau lebih
tabel di dalam database yang berbentuk virtual tabel atau stored query. Data dalam
view sebenarnya tidak ada. View hanya berupa query yang berfungsi untuk
menampilkan data-data suatu tabel. View dikatakan sebagai virtual tabel atau tabel
tak nyata karena view memiliki sifat dan penanganan yang sama dengan tabel,
hanya saja data yang diakses lewat view tidak disimpan secara langsung di dalam
database. Alasan kenapa harus dibuat view adalah untuk mempersingkat perintah
query yang rumit, disamping itu juga untuk menyembunyikan informasi-informasi
penting dari suatu tabel yang seharusnya tidak ditampilkan.
Membuat View :
Membuat view secara umum akan sama dengan membuat tabel pada umumnya.
Namun dalam pembuatan view terdapat beberapa hal yang membedakan dari
pembuatan tabel pada umumnya dikarenakan view merupakan hasil query atas
suatu tabel pada umumnya dikarenakan view merupakan hasil query atas suatu
tabel.
CREATE VIEW Nama_View [Daftar Kolom]
As
Ekspresi_SELECT;
PRAKTIK DAN LATIHAN
1. Lewat command promt, jalankan program MySQL dengan perintah: mysql> ,
kemudian masukkan password yang diminta (mungkin root).
2. Setelah masuk di lingkungan MySQL, buatlah database sebagai berikut :
3. Aktifkan database mahasiswa yang telah anda buat.
4. Tuliskan perintah berikut, untuk membuat view vdmhs:
mysql>create view vdmhs
as
select nim,nama from mahasiswa;
20
8. Tuliskan perintah:
Mysql>create view vnilaimhs
As
Select a.nim as nim,a.nama as nama,b.kode_mk as (kode mata kuliah),
b.nilai as nilai
from mahasiswa a join khs b
on a.nim=b.nim;
9. Menghapus view :
Mysql>drop view vmhs;
TUGAS
1. Dengan
menggunakan
database
penggajian,
buatlah
view
untuk
21
MODUL VIII
Studi kasus penggunaan query kompleks
MAKSUD DAN TUJUAN
Agar mahasiswa mampu menyelesaikan kasus menggunakan tabel jamak
MATERI
Kasus Pengolahan data penjualan untuk tabel jamak dengan menerapkan perintahperintah yang telah dipelajari pada modul 4, 5, 6, 7.
TEORI
Menerapkan perintah cross join, inner join, outer join, subquery, view.
PRAKTIK DAN LATIHAN
1. Buatlah database Market Dealer, yang terdiri dari tabel pembelian, barang,
penjualan, suplier, agen, dimana atributnya adalah sebagai berikut :
Pembelian (kd_pembelian, hari, tanggal, kd_suplier,kd_barang,jumlah)
Barang (kd_barang,nama_barang)
Penjualan (kd_penjualan,hari,tanggal,kd_agen,kd_barang, jumlah)
Suplier (kd_suplier,nama_suplier,alamat)
Agen (kd_agen,nama_agen,alamat)
2. Tuliskan perintah untuk menampilkan data dengan ketentuan berikut, dan
tampilkan hasilnya:
a. Menampilkan data pembelian (kodepembelian, hari, tanggal, nama
suplier, nama barang, jumlah).
b. Menampilkan data penjualan (kode penjualan, hari, tanggal, nama
agen, nama barang, jumlah)
c. Menampilkan nama barang yang terjual dengan jumlah > 20.
d. Menampilkan nama barang dan jumlah barang yang terjual pada
tanggal 1 agustus 2009 dikelompokkan berdasarkan nama barang.
e. Menampilkan nama dan alamat suplier yang menyuplai sabun.
f. Menampilkan nama dan alamat agen yang membeli shampo.
g. Menampilkan nama barang yang terbeli dengan agen yang beralamat
di yogyakarta.
h. Menampilkan nama suplier yang menyuplai barang pada tanggal 2
agustus 2009.
i. Menampilkan barang yang paling banyak terjual, dan kolom yang
ditampilkan adalah kode_penjualan, kode_barang, jumlah.
j. Menampilkan tanggal yang menunjukkan terjadi penjualan terbanyak,
dan kolom yang ditampilkan adalah kode_penjualan, tanggal, jumlah
22
Daftar Pustaka
Abdul Kadir, 2009, Dasar Perancangan dan Implementasi, Penerbit Andi,
Yogyakarta.
Bambang Hariyanto, 2004, Sistem Manajemen Basisdata, Informatika, Bandung.
Janner Simarmata, 2007, Perancangan Basisdata, Penerbit Andi, Yogyakarta
Raghu Ramakrisnan, Johanes Gehrke, 2003, Sistem Manajemen Database,
McGraw Hill Education, Penerbit Andi, Yogyakarta.
Yakub, 2008, Sistem BasisData, Graha Ilmu, Yogyakarta.