sbd lanjut

36
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 Data Manipulation Language, yang termasuk golongan ini adalah: Menambah record Melihat isi tabel Menganti isi 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 : 1

Upload: kania-zakiah

Post on 15-Dec-2015

318 views

Category:

Documents


3 download

DESCRIPTION

web db

TRANSCRIPT

Page 1: SBD Lanjut

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

Data Manipulation Language, yang termasuk golongan ini adalah:

Menambah record

Melihat isi tabel

Menganti isi 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)

1

Page 2: SBD Lanjut

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) | +----------+----------+

2

Page 3: SBD Lanjut

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) | +---------------+---------------+

3

Page 4: SBD Lanjut

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. Buatlah Database Penggajian yang terdiri dari tabel Karyawan, Gaji,

Penggajian.

2. Gunakan perintah Update dan Delete pada tabel yang telah dibuat.

4

Page 5: SBD Lanjut

MODUL IIPemrosesan 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 : INSERT INTO nama_tabel(field1,field2,....) VALUES

(nilai_field1, nilai_field2,....);

2. SELECT : Menampilkan data dari tabel.

Sintaks : SELECT field1,field2,... FROM nama_tabel;

3. WHERE : berfungsi untuk memberikan kondisi  pemilihan sehingga hasil

perintah select  sesuai  dengan yang dibutuhkan.

Sintak: SELECT field1,field2,... FROM nama_tabel WHERE kondisi;

Terdapat operator relasional dengan tanda =, <>, <, >, <=, 

>=,  serta  operasi   logika  AND,  OR,  XOR yang digunakan sebagai  kondisi 

pada where. 

Operator IN berarti menampilkan data yang berada didalam suatu kriteria yang

dipilih, NOT IN berarti sebaliknya yaitu menampilkan data yang berada selain

kriteria yang ditentukan.

4. FROM : memilih  tabel  yang akan diselect.

Sintak : Select <nama kolom>

From <nama tabel>

5. DISTINC : digunakan   untuk   menampilkan   record   yang   berbeda 

berdasarkan satu kolom. ( menghilangkan duplikat ).

Menampilkan kolom  dengan record yang dipilih hanya muncul satu kali.

Sintak : Select distinct nama_kolom

From nama_tabel

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 "%....”;

5

Page 6: SBD Lanjut

Menampilkan data dengan kriteria huruf depan yang dipilih (berawalan...)

Like “(kriteria) %”

Menampilkan data dengan kriteria huruf akhir yang dipilih (akhiran...)

Like “% (kriteria)”

Menampilkan data dengan kriteria yang mengandung karakter tertentu

ditengah atau dalam suatu kata tertentu

Like “% (kriteria) %”.

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.

AVG : menghasilkan nilai rata-rata.

COUNT : menghasilkan cacah data.

MAX : menghasilkan nilai terbesar.

MIN : menghasilkan nilai terkecil.

SUM : menghasilkan jumlah data.

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, aktifkan database perusahaan yang

telah dibuat pada modul I.

3. Tampilkan seluruh data pada tabel-tabel yang telah anda buat contoh untuk

menampilkan isi data pada tabel departemen :

Select * from departemen;

Tampilkan data menggunakan operator relasional ( =, <>, <, >, <=), dan

operator logika (  AND,  OR,  XOR ). Contoh : menampilkan data karyawan

yang gajinya lebih dari 1juta: Select * from karyawan where gaji > 1000000;

6

Page 7: SBD Lanjut

4. Tampilkan data pada kolom nama_departemen, menggunakan Distinc.

Select distinct *

From departemen

Group by id_Dep;

5. Tampilkan nama karyawan yang mempunyai huruf depan ‘e’,

Select * from karyawan where nama_karyawan like ‘e%’.

6. Tampilkan jumlah karyawan. Select Count (nip) from karyawan;

7. Lakukanlah seluruh perintah yang terdapat dalam teori terhadap database

perusahaan yang telah anda buat.

TUGAS

Gunakan perintah-perintah yang sudah dijelaskan pada teori modul 2 terhadap

database penggajian tugas modul I.

7

Page 8: SBD Lanjut

MODUL III

Studi kasus menggunakan tabel tunggal

MAKSUD DAN TUJUAN

Agar mahasiswa memahami penerapan manipulasi basis data dengan tabel

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 Nama Alamat Jml_Nasabah

KC001 KC AKAKOM JANTI 8

KC002 KC GEJAYAN GEJAYAN 5

KC003 KC WIROBRAJAN WIROBRAJAN 8

KC004 KC GEDUNG KUNING GEDUNG KUNING 7

KC005 KC BABARSARI BABARSARI 3

Data Nasabah

Kd_Nasabah Nama Alamat Rekening Kd_cabang Saldo

N0001 Januar Condong Catur 12340001 KC002 10000000

N0002 Febri Gejayan 12340002 KC004 25000000

N0003 Marina Gamping 12340003 KC005 14000000

N0004 Aprilia Janti 12340004 KC001 7000000

N0005 Memey Kotabaru 12340005 KC001 5000000

N0006 Junita Kalasan 12340006 KC001 12000000

N0007 Juliana Gejayan 12340007 KC003 13000000

N0008 Agusto Sleman 12340008 KC005 2800000

N0009 Septiana Condong Catur 12340009 KC004 9000000

N0010 Oktavia Gamping 12340010 KC003 10000000

N0011 Novia Sleman 12340011 KC001 750000

N0012 Desia Kotabaru 12340012 KC005 1200000

8

Page 9: SBD Lanjut

2. Buatlah perintah dan tampilkan hasilnya untuk perintah-perintah sebagai

berikut:

a. Menampilkan semua nasabah, alamat dan saldonya.

b. Menampilkan nama nasabah dengan saldo > 2000000.

c. Menampilkan nama nasabah dengan alamat Gejayan.

d. Menampilkan nama nasabah dengan kode cabang KC003.

e. Menampilkan semua data kantor cabang (nama dan alamat).

f. Menampilkan nama kantor cabang dengan alamat Janti.

g. Menampilkan nama kantor cabang dengan jumlah nasabah > 5 orang.

h. Mengupdate data kantor cabang dengan kode KC002 menjadi :

Nama : KC Ambarukmo

Alamat : Ambarukmo

Jumlah Nasabah : 15

i. Menghapus data semua kantor cabang dengan jumlah nasabah

kurang dari 5.

j. Mengupdate data nasabah dengan kode N0010 menjadi :

Alamat : Monjali

Saldo : 9000000

k. Menghapus semua nasabah dengan alamat Terban.

l. Menampilkan saldo maksimal.

m. Menampilkan rata-rata saldo nasabah.

n. Menampilkan jumlah nasabah.

9

Page 10: SBD Lanjut

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.

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, aktifkan database perusahaan yang

telah dibuat pada modul I.

10

Page 11: SBD Lanjut

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 | katholik | bantul | A13 |

| 0802100015 | thomas | L | katholik | bantul | A12 |

+------------+--------+------+----------+--------+-------+

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 ;

merupakan perintah cross join tabel mahasiswa dan matakuliah.

5. Tuliskan perintah:

mysql> select a.nim,a.nama,b.nama_mk,c.nilai

-> from mahasiswa a,mk b,khs c;

Merupakan cross join antara tabel mahasiswa, matakuliah, dan khs.

6. Tuliskan perintah:

mysql> select * from khs,mk

-> where khs.kode_mk=mk.kode_mk;

Perintah tersebut sama dengan perintah berikut:

mysql> select * from khs inner join mk

-> on khs.kode_mk=mk.kode_mk;

11

Page 12: SBD Lanjut

7. Menampilkan informasi matakuliah, tahun ajaran, serta nilai yang diperoleh

setiap mahasiswa :

mysql>select k.nim, k.kode_mk, m.nama_mk, m.sks, k.semester, k.TA, k.nilai

-> from khs k,mk m where k.kode_mk=m.kode_mk;

8. Mengkonversi nilai huruf dari tabel khs menjadi nilai angka :

mysql> select k.nim,m.nama_mk,m.sks,k.nilai as nilai,

-> case

-> when nilai='A' then 4

-> when nilai='B' then 3

-> when nilai='C' then 2

-> when nilai='D' then 1

-> else 0

-> end as nilai_angka

-> from khs k inner join mk m on k.kode_mk=m.kode_mk;

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;

11.Menggabungkan tiga tabel :

mysql> select a.nim,a.nama,b.nama_mk,b.sks,c.semester,c.nilai,c.TA

-> from mahasiswa a inner join khs c on a.nim=c.nim

-> inner join mk b on c.kode_mk=b.kode_mk;

12. Menghitung IPK :

mysql> select khs.nim,mahasiswa.nama,(sum(

-> case

-> when khs.nilai='A' then 4*mk.sks

-> when khs.nilai='B' then 3*mk.sks

-> when khs.nilai='C' then 2*mk.sks

-> when khs.nilai='D' then 1*mk.sks

-> else 0

-> end )/sum(mk.sks)) as ipk

-> from khs inner join mk on khs.kode_mk=mk.kode_mk

-> inner join mahasiswa on khs.nim=mahasiswa.nim

-> group by khs.nim,mahasiswa.nama;

12

Page 13: SBD Lanjut

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: Jika jumlah anak = 1, tunjangan = 1% dari gaji pokok

Jika jumlah anak = 2, tunjangan = 2% dari gaji pokok

Jika jumlah anak = 3, tunjangan = 3% dari gaji pokok

Selain itu tidak mendapatkan tunjangan.

Bonus : Gol 1 = 100000, Gol 2=200000, Gol 3=300000, Gol =400000

Potongan gaji adalah 10 % dari gaji kotor (gajipokok + tunjangan + bonus)

13

Page 14: SBD Lanjut

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';

Contoh tersebut sama dengan perintah berikut :

mysql>select jenis,judul from film where jenis='action' or jenis='drama';

PRAKTIK DAN LATIHAN1. Lewat command promt, jalankan program MySQL dengan perintah: mysql> ,

kemudian masukkan password yang diminta (mungkin ”root”).

2. Setelah masuk di lingkungan MySQL, aktifkan database perusahaan yang

telah dibuat pada modul I.

14

Page 15: SBD Lanjut

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 | Komputerisasi Akuntansi D3 | 132312445 |

| 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’;

TUGAS1. Jelaskan perbedaan antara cross join, inner join dan

outer join, dan sertakan contoh untuk mendukung jawaban anda.

2. Menggunakan database penggajian operasikan perintah-perintah dengan outer join dan union.

15

Page 16: SBD Lanjut

MODUL VI

Penggunaan Subquery

MAKSUD DAN TUJUAN

• Agar mahasiswa memahami penggunaan perintah subquery untuk

memproses data mampu menggunakan perintah SQL untuk menampilkan

data dengan syarat berjenjang

MATERI

Struktur Query, sub query dengan berbagai parameter

TEORI

Subquery (disebut juga subselect) merupakan bentuk query yang terletak dalam

query lain. Dalam pemahaman yang sederhana didalam sebuah SELECT terdapat

SELECT lain.

SELECT dapat juga digunakan dalam WHERE, hal ini disebut subquery.

Kata kunci untuk Subquery:

o IN

o EXISTS

o ALL/ANY/SOME

IN Subquery

Dengan IN, subquery harus menghasilkan 1 (satu) kolom tapi boleh beberapa

baris.

Contoh : SELECT DISTINCT nama FROM petani

WHERE id NOT IN

(SELECT id FROM memasokWHERE jml_bunga = 1 )

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.

16

Page 17: SBD Lanjut

Contoh 1 : SELECT DISTINCT orders_num FROM items

WHERE total_price > ALL ( SELECT total_price

FROM items WHERE orders_num = 1023)

Contoh 2 : SELECT DISTINCT orders_num FROM items

WHERE total_price > SELECT

MAX(total_price)FROM items

WHERE orders_num = 1023)

Contoh 3 : SELECT DISTINCT orders_num FROM items

WHERE total_price > ANY ( SELECT total_price

FROM items WHERE orders_num = 1023)

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, aktifkan database perusahaan yang

telah dibuat pada modul I.

3. Gunakan database mahasiswa yang telah dibuat.

4. Menampilkan daftar mahasiswa yang terdapat dalam tabel mahasiswa dan

tabel khs.

mysql>select nim,nama

from mahasiswa

where exists (select * from khs where nim=mahasiswa.nim);

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?

17

Page 18: SBD Lanjut

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.

18

Page 19: SBD Lanjut

MODUL VII

Penggunaan Query Kompleks

MAKSUD DAN TUJUAN

Agar mahasiswa memahami penggunaan perintah subquery untuk memproses

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;

5. Melihat isi data view;

Mysql>select * from vdmhs;

19

Page 20: SBD Lanjut

6. Tuliskan perintah berikut, untuk membuat view vdmhsaktif :

mysql>create view vdmhsaktif

as

select m.nim,m.nama from mahasiswa m join khs k

on m.nim=k.nim

group by m.nim,m.nama;

7. Mengganti data view :

Mysql>Update vwalikelas

Set namadosen=’aulia natasya, M.Kom’

Where namadosen=’aulia’;

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

menampilkan gaji bersih masing-masing karyawan berdasarkan ketentuaan

pada tugas modul IV. Informasi yang akan ditampilkan adalah tanggal

penggajian, nip,nama karyawan, dan gaji bersih.

2. Memanfaatkan view hasil dari soal no 1 diatas, buatlah view untuk

menghitung rata-rata gaji bersih masing-masing karyawan.

3. Buatlah view untuk menghitung gaji bersih setelah dipotong pajak PPH 5%.

20

Page 21: SBD Lanjut

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 perintah-

perintah 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

21

Page 22: SBD Lanjut

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.

22