Anda di halaman 1dari 13

LAPORAN teknologi basis data

PERTEMUAN KE 5 dan 6








Disusun Oleh :
Nama : Mohamad Hanafi
Nim : 095410134
Jurusan : TEKNIK INFORMATIKA







LABOROTARIUM TERPADU
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AKAKOM
YOGYAKARTA
2011

PERTEMUAN KE-5
PENERAPAN SUB QUERY DENGAN STUDI KASUS

A. PEMBAHASAN
Sub query berarti query didalam query. Dengan menggunakan subquery, hasil dari query akan
menjadi bagian dari query diatasnya. Suquery terletak didalam clause WHERE atau HAVING.
Pada clausa WHERE, subquery digunakan untuk memilih baris-baris tertentu, yang kemudian
digunakan oleh query. Sedangkan pada clausa HAVING, subquery digunakan oleh query.
SQL Berfungsi sebagai bahasa query interaktif sekaligus juga sebagai bahasa pemrograman
basis data.
SQL meliputi:
Definisi data
Manipulasi data
SQL relatif mudah untuk dipelajari
SQL standar bentuk penulisannya mengikuti aturan ANSI.


Pembahasan dalam Praktikum :

Deberikan tabel seperti berikut ini :
mysql> select * from jurusan;
+--------+----------+
| kd_jur | nama_jur |
+--------+----------+
| K0123T | TI |
| K0124T | SI |
| K0125T | TK |
| K0126T | MI |
| K0127T | KA |
+--------+----------+
5 rows in set (0.08 sec)

mysql> select * from krs;
+-----------+---------+-------+----------------+------+
| nim | kode_mk | nilai | tahun_akademik | smt |
+-----------+---------+-------+----------------+------+
| 095410134 | KT123 | A | 2009 | 4 |
| 085410135 | KT124 | B | 2003 | 2 |
| 085410136 | KT125 | A | 2002 | 5 |
| 085410137 | KT126 | C | 2001 | 7 |
| 085610138 | KT127 | B | 2005 | 6 |
+-----------+---------+-------+----------------+------+
5 rows in set (0.11 sec)

mysql> select * from matakuliah;
+---------+----------+------+--------+
| kode_mk | nama_mk | sks | kd_jur |
+---------+----------+------+--------+
| KT123 | TBD | 20 | K0123T |
| KT124 | ORKOM | 22 | K0124T |
| KT125 | AI | 21 | K0125T |
| KT126 | DISKRIT | 19 | K0126T |
| KT127 | KALKULUS | 24 | K0127T |
+---------+----------+------+--------+
5 rows in set (0.16 sec)

mysql> select * from mahasiswa;
+-----------+-----------+------------+------------+--------+-----------
---+
| nim | nama_mhs | tmpt_lahir | tgl_lahir | kd_jur |
thn_angkatan |
+-----------+-----------+------------+------------+--------+-----------
---+
| 095410134 | hanafi | yogyakarta | 1991-05-24 | K0123T |
2009 |
| 095410135 | ismail | kalimantan | 1991-03-14 | K0124T |
2009 |
| 085410136 | wulandari | bandung | 1994-05-12 | K0125T |
2009 |
| 085410137 | ernawati | jakarta | 1985-12-20 | K0126T |
2008 |
| 085610138 | joko | pemalang | 1986-01-19 | K0127T |
2009 |
+-----------+-----------+------------+------------+--------+-----------
---+
5 rows in set (0.14 sec)
Bidang akademik merupakan bidang yang sangat kompleks permasalahannya, sehingga
dibutuhkan proses prancangan yang baik. Pada bidang ini permasalahan yang dibahas berupa
pengolahan data-data akademik misalnya data mahasiswa/siswa, data dosen, data IPK, data
penjadualan dll.
Hasil yang diperoleh berdasarkan perancangan konseptual basis data akademik adalah
informasi-informasi yang berkaitan dengan laporan mahasiswa, laporan hasil studi, informasi
jadual , inforamsi nilai matakuliah, laporan hasil studi maupun laporan rencana studi.

Berikut adalah contoh implementasi tentang Entitas relasi diagram(ERD):


Tabel Mahasiswa berelasi tentang tabel krs dan tabel krs bisa berelasi tentang matakuliah dan
tabel matakuliah bisa berelasi juga dengan tabel jurusan maka tabel-tabel tersebut bisa saling
berkaitan satu dengan yang lainnya itulah yang namanya ERD.

mysql> select m.nama_mhs from mahasiswa m,krs p where p.nilai <>
'A';
+-----------+
| nama_mhs |
+-----------+
| hanafi |
| ismail |
| wulandari |
| ernawati |
| joko |
| hanafi |
| ismail |
| wulandari |
| ernawati |
| joko |
| hanafi |
| ismail |
| wulandari |
| ernawati |
| joko |
+-----------+
15 ows in set (0.00 sec)
pada script basisdata diatas diketahui bahwa untuk menampilkan data mahasiswa yang
nilainnya paling tinggi pada script m.nama_mhs yaitu untuk merumuskan pada basisdata atau
didalam MySQL apabila dipanggil maka variabel m tersebut akan membaca nama_mhs.
mysql> select * from mahasiswa,matakuliah,krs,jurusan where
mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND
jurusan.kd_jur=mahasiswa.kd_jur AND mah
asiswa.nama_mhs like'%o' AND matakuliah.nama_mk="TBD";
Empty set (0.00 sec)
Perintah diatas digunakan untuk menampilkan data seluruh mahasiswa yang mengambil
matakuliah TBD dengan aturan nama mahasiswanya berakhiran huruf o dalam kasus diatas
database tidak menemukan nama mahasiswannya diakibatkan pada tabel mahasiswa nama
tersebut ada yang berakhiran o ada tetapi mahasiswa tersebut tidak mengambil matakuliah TBD
melainkan mengambil matakuliah KALKULUS seperti pada contoh dibawah ini :

mysql> select * from mahasiswa,matakuliah,krs,jurusan where
mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND jurusan.kd_jur=mahasiswa.kd_jur AND
mah
asiswa.nama_mhs like'%o' AND matakuliah.nama_mk="KALKULUS";
+-----------+----------+------------+------------+--------+--------------+-----
-
---+----------+------+--------+-----------+---------+-------+----------------+-
-
----+--------+----------+
| nim | nama_mhs | tmpt_lahir | tgl_lahir | kd_jur | thn_angkatan |
kode_
mk | nama_mk | sks | kd_jur | nim | kode_mk | nilai | tahun_akademik |
s
mt | kd_jur | nama_jur |
+-----------+----------+------------+------------+--------+--------------+-----
-
---+----------+------+--------+-----------+---------+-------+----------------+-
-
----+--------+----------+
| 085610138 | joko | pemalang | 1986-01-19 | K0127T | 2009 |
KT127
| KALKULUS | 24 | K0127T | 085610138 | KT127 | B | 2005 |
6 | K0127T | KA |
+-----------+----------+------------+------------+--------+--------------+-----
-
---+----------+------+--------+-----------+---------+-------+----------------+-
-
----+--------+----------+
1 row in set (0.05 sec)

mysql> select mahasiswa.nama_mhs, sum(sks) from mahasiswa,
matakuliah, krs, juru
san where mahasiswa.nim=krs.nim AND krs.kode_mk=matakuliah.kode_mk
AND matakulia
h.kd_jur=jurusan.kd_jur GROUP BY nama_mhs HAVING SUM(sks) > 24;
Empty set (0.05 sec)
Perintah diatas digunakan untuk menampilkan data seluruh mahasiswa yang sksnya lebih dari
24 disini database menampilkan kosong karena data mahasiswa tidak ada yang mengambil lebih
dari 24 sks. Perintah sum(sks) dilkukan untuk menjumlahkan sks yang diambil oleh tiap
mahasiswa. GROUP BY nama_mhs HAVING SUM(sks) > 24 dilkukan pengelompokan nama
mahasiswa dan dihitung menggunakan perintah SUM.

mysql> select b.nama_mhs from mahasiswa b, matakuliah mk, krs ks
where b.nim=ks.
nim AND mk.kode_mk=ks.kode_mk AND b.thn_angkatan="2007" AND mk.sks <
100;
Empty set (0.03 sec)
Perintah tersebut digunakan untuk menampilkan data seluruh mahasiswa yang tahun
angkatannya 2007 dan jumlah sksnya kurang dari 100 maka perintahnya menggunakan
pendeklarasian diawal-awal sintak MySQLnya sehingga pada pemanggilan berikutnya user Cuma
mengetik atau memanggil deklarasi yang telah dibuatnya sehingga tidak kebanyakan kata atau
kebanyakan penulisan.

mysql> select b.nama_mhs from mahasiswa b, matakuliah mk, krs ks
where b.nim=ks.
nim AND mk.kode_mk=ks.kode_mk AND b.thn_angkatan="2005 - 2007" AND
mk.sks < 100;

Empty set, 5 warnings (0.00 sec)
Perintah ini digunakan untuk menampilkan data seluruh mahasiswa yang tahun angkatannya
mulai dari 2005 sampai 2007 yang jumlah sksnya lebih dari 100sks, perintah ini hampir sama
dengan scrip diatasnya tapi yang membedakan pada scrip ini adalah pada tahun angkatannya
b.thn_angkatan="2005 - 2007" dikasih dengan tanda - agar program di MySQL akan
membaca bahwa pada tabel mahasiswa yang tahun angkatannya 2005-2007 siapa saja.

mysql> select * from matakuliah,mahasiswa,krs,jurusan where
mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND
jurusan.kd_jur=mahasiswa.kd_jur AND krs
.nilai="D,E";
Empty set (0.00 sec)
Scrip ini digunakan untuk menampilkan data matakuliah yang diambil per
mahasiswanya yang nilainnya D dan E. Kita harus merelasikan tabel-tabel yang ada
kata kunci atau PRIMARY KEY untuk dihubungkan tabel satu dengan tabel lainnya
dalam contoh diatas seperti ini : select * from
matakuliah,mahasiswa,krs,jurusan where mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND
jurusan.kd_jur=mahasiswa.kd_jur
dan relasi terakhir yaitu mendeklarasikan nilai D dan E untuk menampilkan kedatabasenya
pada contoh diatas database yang ditampilkan tidak dikarenakan tabel yang ada pada KRS
nilai pada mahasiswanya tidak ada yang nilai D dan E melainkan nilainya A,B dan C.

B. TUGAS
1. mysql> create view daftJurusan (nim,nama_mhs,nama_jur) as
select krs.nim,mahasis
wa.nama_mhs,jurusan.nama_jur from
mahasiswa,matakuliah,krs,jurusan where krs.nim
=mahasiswa.nim and matakuliah.kode_mk=krs.kode_mk and
jurusan.kd_jur=matakuliah.
kd_jur;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from daftJurusan;
+-----------+-----------+----------+
| nim | nama_mhs | nama_jur |
+-----------+-----------+----------+
| 095410134 | hanafi | TI |
| 085410136 | wulandari | TK |
| 085410137 | ernawati | MI |
| 085610138 | joko | KA |
+-----------+-----------+----------+
4 rows in set (0.00 sec)

mysql> select * from mahasiswa,matakuliah,krs where
mahasiswa.nim=krs.nim AND krs.kode_mk=matakuliah.kode_mk AND
mahasiswa.nama_mhs AND krs.nilai="A";
Empty set, 5 warnings (0.22 sec)

2. mysql> select * from mahasiswa,matakuliah,krs,jurusan where
mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND
jurusan.kd_jur=mahasiswa.kd_jur AND mah
asiswa.nama_mhs AND mahasiswa.thn_angkatan < 2009;
Empty set, 4 warnings (0.00 sec)

C. LISTING
mysql> select * from jurusan;
+--------+----------+
| kd_jur | nama_jur |
+--------+----------+
| K0123T | TI |
| K0124T | SI |
| K0125T | TK |
| K0126T | MI |
| K0127T | KA |
+--------+----------+
5 rows in set (0.08 sec)

mysql> select * from krs;
+-----------+---------+-------+----------------+------+
| nim | kode_mk | nilai | tahun_akademik | smt |
+-----------+---------+-------+----------------+------+
| 095410134 | KT123 | A | 2009 | 4 |
| 085410135 | KT124 | B | 2003 | 2 |
| 085410136 | KT125 | A | 2002 | 5 |
| 085410137 | KT126 | C | 2001 | 7 |
| 085610138 | KT127 | B | 2005 | 6 |
+-----------+---------+-------+----------------+------+
5 rows in set (0.11 sec)

mysql> select * from matakuliah;
+---------+----------+------+--------+
| kode_mk | nama_mk | sks | kd_jur |
+---------+----------+------+--------+
| KT123 | TBD | 20 | K0123T |
| KT124 | ORKOM | 22 | K0124T |
| KT125 | AI | 21 | K0125T |
| KT126 | DISKRIT | 19 | K0126T |
| KT127 | KALKULUS | 24 | K0127T |
+---------+----------+------+--------+
5 rows in set (0.16 sec)

mysql> select * from mahasiswa;
+-----------+-----------+------------+------------+--------+-----------
---+
| nim | nama_mhs | tmpt_lahir | tgl_lahir | kd_jur |
thn_angkatan |
+-----------+-----------+------------+------------+--------+-----------
---+
| 095410134 | hanafi | yogyakarta | 1991-05-24 | K0123T |
2009 |
| 095410135 | ismail | kalimantan | 1991-03-14 | K0124T |
2009 |
| 085410136 | wulandari | bandung | 1994-05-12 | K0125T |
2009 |
| 085410137 | ernawati | jakarta | 1985-12-20 | K0126T |
2008 |
| 085610138 | joko | pemalang | 1986-01-19 | K0127T |
2009 |
+-----------+-----------+------------+------------+--------+-----------
---+
5 rows in set (0.14 sec)
Latihan :
1. Tampilkan data mahasiswa yang nilainya paling tinggi. Asumsikan kita
tidak tahu berapa nilai paling tinggi dan siapa mahasiswa yang nilainya
paling tinggi
mysql> select m.nama_mhs from mahasiswa m,krs p where p.nilai <>
'A';
+-----------+
| nama_mhs |
+-----------+
| hanafi |
| ismail |
| wulandari |
| ernawati |
| joko |
| hanafi |
| ismail |
| wulandari |
| ernawati |
| joko |
| hanafi |
| ismail |
| wulandari |
| ernawati |
| joko |
+-----------+
16 ows in set (0.00 sec)

2. Tampilkan data seluruh mahasiswa yang mengambil mata kuliah TBD
dengan aturan nama = huruf terakhir nama mhs adalah o .
mysql> select * from mahasiswa,matakuliah,krs,jurusan where
mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND
jurusan.kd_jur=mahasiswa.kd_jur AND mah
asiswa.nama_mhs like'%o' AND matakuliah.nama_mk="TBD";
Empty set (0.00 sec)

3. Tampilkan data seluruh mahasiswa yang memiliki sks > 24 dan ipk-nya
kurang dari 2,50. Rata-rata IPK seluruh mahasiswa
mysql> select mahasiswa.nama_mhs, sum(sks) from mahasiswa,
matakuliah, krs, juru
san where mahasiswa.nim=krs.nim AND krs.kode_mk=matakuliah.kode_mk
AND matakulia
h.kd_jur=jurusan.kd_jur GROUP BY nama_mhs HAVING SUM(sks) > 24;
Empty set (0.05 sec)

4. Tampilkan data seluruh mahasiswa yang tahun angkatannya 2007 yang
jumlah sks kurang dari 100 Sks. fungsi untuk menentukan apakah
mhs boleh mengambil Skripsi atau tidak
mysql> select b.nama_mhs from mahasiswa b, matakuliah mk, krs ks
where b.nim=ks.
nim AND mk.kode_mk=ks.kode_mk AND b.thn_angkatan="2007" AND mk.sks <
100;
Empty set (0.03 sec)

5. Tampilkan data seluruh mahasiswa yang tahun angkatannya 2005 - 2007
yang jumlah sks kurang dari 100 Sks. fungsi untuk mengecek daftar
mahasiswa angkatan 2005 s.d angkatan 2007 yang jumlah sksnya masih
dibawah standard.
mysql> select b.nama_mhs from mahasiswa b, matakuliah mk, krs ks
where b.nim=ks.
nim AND mk.kode_mk=ks.kode_mk AND b.thn_angkatan="2005 - 2007" AND
mk.sks < 100;

Empty set, 5 warnings (0.00 sec)
6. Tampilkan data matakuliah yang diambil per mahasiswa yang nilainya
D, E fungsi untuk mengecek apakah matakuliah yang diambil
Lulus/tidak (untuk ujian remidi)
mysql> select * from matakuliah,mahasiswa,krs,jurusan where
mahasiswa.nim=krs.ni
m AND krs.kode_mk=matakuliah.kode_mk AND
jurusan.kd_jur=mahasiswa.kd_jur AND krs
.nilai="D,E";
Empty set (0.00 sec)







PERTEMUAN KE-6
VIEW DAN TRIGGER

A. PEMBAHASAN
View merupakan virtual table dimana dapat dioperasikan seperti table pada umumnya,
meskipun secara fisik tidak digunakan untuk menyimpan data. Untuk menampilkan data
yang diakses lewat perintah query yang bersumber dari dari dua atau lebih table fisis, yang
seakan-akan sebagai table baru. Struktur view terdiri atas nama view (seperti nama tabel)
dan berisi perintah SQL berupa select. Trigger merupakan sebuah oyek database yang
berupa prosedur yang merespon setiap kali terjadi perubahan pada suatu table. Proses
perubahan dapat berupa insert, update , maupun delete.

Praktikum dilakukan dilab
Adapun tabel yang dikaitkan adalah tabel yang pernah dipraktikan dipertemuan ke-5 adalah
sebagai berikut :
mysql> select * from jurusan;
+--------+----------+
| kd_jur | nama_jur |
+--------+----------+
| K0123T | TI |
| K0124T | SI |
| K0125T | TK |
| K0126T | MI |
| K0127T | KA |
+--------+----------+
5 rows in set (0.08 sec)

mysql> select * from krs;
+-----------+---------+-------+----------------+------+
| nim | kode_mk | nilai | tahun_akademik | smt |
+-----------+---------+-------+----------------+------+
| 095410134 | KT123 | A | 2009 | 4 |
| 085410135 | KT124 | B | 2003 | 2 |
| 085410136 | KT125 | A | 2002 | 5 |
| 085410137 | KT126 | C | 2001 | 7 |
| 085610138 | KT127 | B | 2005 | 6 |
+-----------+---------+-------+----------------+------+
5 rows in set (0.11 sec)

mysql> select * from matakuliah;
+---------+----------+------+--------+
| kode_mk | nama_mk | sks | kd_jur |
+---------+----------+------+--------+
| KT123 | TBD | 20 | K0123T |
| KT124 | ORKOM | 22 | K0124T |
| KT125 | AI | 21 | K0125T |
| KT126 | DISKRIT | 19 | K0126T |
| KT127 | KALKULUS | 24 | K0127T |
+---------+----------+------+--------+
5 rows in set (0.16 sec)

mysql> select * from mahasiswa;
+-----------+-----------+------------+------------+--------+-----------
---+
| nim | nama_mhs | tmpt_lahir | tgl_lahir | kd_jur |
thn_angkatan |
+-----------+-----------+------------+------------+--------+-----------
---+
| 095410134 | hanafi | yogyakarta | 1991-05-24 | K0123T |
2009 |
| 095410135 | ismail | kalimantan | 1991-03-14 | K0124T |
2009 |
| 085410136 | wulandari | bandung | 1994-05-12 | K0125T |
2009 |
| 085410137 | ernawati | jakarta | 1985-12-20 | K0126T |
2008 |
| 085610138 | joko | pemalang | 1986-01-19 | K0127T |
2009 |
+-----------+-----------+------------+------------+--------+-----------
---+
5 rows in set (0.14 sec)

VIEW
1) Membuat view menampilkan semua mahasiswa yang berjurusan TI :
mysql> create view nama as select * from jurusan where
nama_jur="TI";
Query OK, 0 rows affected (0.02 sec)

mysql> select * from nama;
+--------+----------+
| kd_jur | nama_jur |
+--------+----------+
| K0123T | TI |
+--------+----------+
1 row in set (0.00 sec)
Pada perintah diatas yaitu menampilkan kd_jur dan nama_jur sebelum kita
menampilkan kedua record tersebut maka kita harus mengimplementasikannya
terlebih dahulu menggunakan view setelah itu baru memanggil nama tabel yang ada
kedua record tersebut. Kemudian apabila kita akan memanggil maka yang dipanggil
adalah nama view yang telah dibuat.

2) Menggabungkan 3 buah tabel :
mysql> create view daftNilai (nim,nama_mhs,nama_mk,nilai)
as select krs.nim,maha
siswa.nama_mhs,matakuliah.nama_mk,krs.nilai from
mahasiswa,matakuliah,krs,jurusa
n where krs.nim=mahasiswa.nim and
matakuliah.kode_mk=krs.kode_mk and jurusan.kd_
jur=matakuliah.kd_jur;
Query OK, 0 rows affected (0.05 sec)

mysql> select * from daftNilai;
+-----------+-----------+----------+-------+
| nim | nama_mhs | nama_mk | nilai |
+-----------+-----------+----------+-------+
| 095410134 | hanafi | TBD | A |
| 085410136 | wulandari | AI | A |
| 085410137 | ernawati | DISKRIT | C |
| 085610138 | joko | KALKULUS | B |
+-----------+-----------+----------+-------+
4 rows in set (0.03 sec)
Perintah diatas untuk menggabungkan dari 3 buah tabel yaitu tabel
mahasiswa,matakuliah dan krs seperti yang dilkukan diatas kita membuat view terlebih
dahulu untuk mengabungkan ketiga tabel tersebut kita terlebih dahulu menggabungkan
primary keynya karena pada kunci tersebut kode atau hurufnya akan sama maka
dengan mudah MsQL akan menggabungkan dari tabel lebih dari 2. pada MySQL tidak
ambigu apabila akan dipanggil dari tiga tebel tersebut .

TRIGGER
1) Mengubah tabel barang menjadi krs. tabel logstok menjadi lognilai dengan field :
keterangan, nim, kode_mk, nilai_lama, nilai_baru
mysql> create table logstok (keterangan varchar(10),
-> nim int,
-> nilai_lama int,
-> nilai_baru int);
Query OK, 0 rows affected (0.06 sec)
Perintah ini membuat tabel logstok pembuatanya seperti pada MySQL biasannya
tapi yang membedakannya tidak diberi Primay key.

mysql> create table krss(keterangan varchar(12),
-> nim int(10),
-> kode_mk varchar(10),
-> nilai_lama varchar(10),
-> nilai_baru varchar(12));
Query OK, 0 rows affected (0.08 sec)
Perintah ini mengubah yang asalnya tabel barang diubah menjadi tabel krs

mysql> create table lognilai(keterangan varchar(12),
-> nim int(10),
-> kode_mk varchar(10),
-> nilai_lama varchar(10),
-> nilai_baru varchar(12));
Query OK, 0 rows affected (0.01 sec)
Setelah logstok dibuat maka pada perintah ini diubahnya lagi menjadi lognilai
dengan tujuannya membuat trigger yaitu untuk berfungsi mencatat bila terjadi
peruahan.

2) membuat trigger seperti pada praktik trigger no.2 untuk menyimpan data nilai_lama
dan nilai_baru
mysql> create trigger logUpd after update on krss for
each row insert into logni
lai values ('Updte
nilai_lama',old.nilai_baru,old.nilai_lama,new.nilai_lama)
;
Query OK, 0 rows affected (0.13 sec)
Scrip ini digunakan untuk menyimpan data yang disimpan adalah nilai lama dan
nilai baru untuk penyimpanan perintah tersebut yaitu menggunakan old.nilai_baru
dan old.nilai_lama yang berguna untuk apabila mengatasi masalah hapus yang tidak
sengaja maupun ketidak sengajaan maka data nilai lama dan baru masih dapat
dipanggil kembali lagi.


B. TUGAS

1. Membuat view untuk menghitung IPK setiap mahasiswa

2. Membuat view untuk menampilkan mata kuliah yang banyak diminati
(join tabel mahasiswa, krs, dan mata kualiah)
mysql> create view bnymtkuliah(nama_mhs,nama_mk) as select
mahasiswa.nama_mhs
takuliah.nama_mk from mahasiswa,matakuliah;
Query OK, 0 rows affected (0.06 sec)

mysql> select * from bnymtkuliah;
+-----------+----------+
| nama_mhs | nama_mk |
+-----------+----------+
| hanafi | TBD |
| ismail | TBD |
| wulandari | TBD |
| ernawati | TBD |
| joko | TBD |
| hanafi | ORKOM |
| ismail | ORKOM |
| wulandari | ORKOM |
| ernawati | ORKOM |
| joko | ORKOM |
| hanafi | AI |
| ismail | AI |
| wulandari | AI |
| ernawati | AI |
| joko | AI |
| hanafi | DISKRIT |
| ismail | DISKRIT |
| wulandari | DISKRIT |
| ernawati | DISKRIT |
| joko | DISKRIT |
| hanafi | KALKULUS |
| ismail | KALKULUS |
| wulandari | KALKULUS |
| ernawati | KALKULUS |
| joko | KALKULUS |
+-----------+----------+
25 ows in set (0.00 sec)

3. Membuat view untuk menampilkan daftar mata kuliah semester genap,
tahun ajaran 2009/2010, dan yang diambil oleh mahasiswa yang
berumur > 25
mysql> select nama_mk,nama_mhs,smt,thn_angkatan from
mahasiswa,matakuliah,krs wh
ere krs.kode_mk=matakuliah.kode_mk AND
mahasiswa.kd_jur=matakuliah.kd_jur AND th
n_angkatan="2009/2010";
+----------+-----------+------+--------------+
| nama_mk | nama_mhs | smt | thn_angkatan |
+----------+-----------+------+--------------+
| TBD | hanafi | 4 | 2009 |
| ORKOM | ismail | 2 | 2009 |
| AI | wulandari | 5 | 2009 |
| KALKULUS | joko | 6 | 2009 |
+----------+-----------+------+--------------+
4 rows in set, 5 warnings (0.00 sec)
4. Buat trigger untuk menyimpan perubahan jika terjadi delete
di salah satu tabel (bebas)

5. Buat trigger untuk mahasiswa yang alih jurusan.

C. LISTING
Terlampir