Sabtu, 19 Januari 2013

modul 6



1.  Membuat database
mysql> create database universitas;
Query OK, 1 row affected (0.06 sec)
a.  Membuat  tabel instruktur
mysql> create table instruktur(nip varchar(5) primary key, namains varchar(30),
jurusan varchar(20), asalkota varchar(20));
Query OK, 0 rows affected (0.18 sec)
 
-          Mengisi tabel instruktur
mysql> insert into  instruktur values('1', 'Steve Wozniak', 'Ilmu Komputer', 'Ba
ntul');
Query OK, 1 row affected (0.10 sec)

mysql> insert into  instruktur values('2', 'Steve Jobs', 'Seni Rupa', 'Solo');
Query OK, 1 row affected (0.07 sec)

mysql> insert into  instruktur values('3', 'James Gosling', 'Ilmu Komputer', 'Kl
aten');
Query OK, 1 row affected (0.06 sec)

mysql> insert into  instruktur values('4', 'Bill Gates', 'Ilmu Komputer', 'Magel
ang');
Query OK, 1 row affected (0.07 sec)
mysql> select*from instruktur;
+-----+---------------+---------------+----------+
| nip | namains       | jurusan       | asalkota |
+-----+---------------+---------------+----------+
| 1   | Steve Wozniak | Ilmu Komputer | Bantul   |
| 2   | Steve Jobs    | Seni Rupa     | Solo     |
| 3   | James Gosling | Ilmu Komputer | Klaten   |
| 4   | Bill Gates    | Ilmu Komputer | Magelang |
+-----+---------------+---------------+----------+
4 rows in set (0.10 sec)
a.  Membuat tabel matakuliah
-          Membuat tabel matakuliah
mysql> create table matakuliah(nomk varchar(10) primary key, namamk varchar(30),
 sks varchar(5));
a.  Membuat tabel kuliah
mysql> create table kuliah(nip varchar(5), nomk varchar(10), ruangan varchar(5),
 jmlmhs varchar(5), foreign key(nip) references instruktur(nip), foreign key(nom
k) references matakuliah(nomk));
Query OK, 0 rows affected (0.19 sec)
 
1.  Tuliskan Query untuk mendapatkan data-data di bawah ini :
-          Membuat tabel join yaitu tabel kuliah_join1
mysql> alter table kuliah_join1 add instruktur varchar(20) after nomk;
Query OK, 4 rows affected (0.36 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> update kuliah_join1, instruktur set kuliah_join1.instruktur=instruktur.namains where kul
iah_join1.nip=instruktur.nip;
Query OK, 2 rows affected (0.06 sec)
Rows matched: 4  Changed: 2  Warnings: 0
-          mysql> alter table kuliah_join1 add jurusan varchar(20) after instruktur;
Query OK, 4 rows affected (0.54 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> update kuliah_join1, instruktur set kuliah_join1.jurusan=instruktur.jurusan where kuliah
_join1.nip=instruktur.nip;
Query OK, 4 rows affected (0.06 sec)
Rows matched: 4  Changed: 4  Warnings: 0


a.  Instruktur-instruktur jurusan ‘Ilmu Komputer’
mysql> select*from instruktur where jurusan='Ilmu Komputer';
+-----+---------------+---------------+----------+
| nip | namains       | jurusan       | asalkota |
+-----+---------------+---------------+----------+
| 1   | Steve Wozniak | Ilmu Komputer | Bantul   |
| 3   | James Gosling | Ilmu Komputer | Klaten   |
| 4   | Bill Gates    | Ilmu Komputer | Magelang |
+-----+---------------+---------------+----------+
3 rows in set (0.05 sec)
 
 
b.  Nomor matakuliah yang pesertanya lebih dari 40 orang
mysql> select nomk, jmlmhs from kuliah_join1 where jmlmhs > 40;
+--------+--------+
| nomk   | jmlmhs |
+--------+--------+
| KOM101 | 50     |
| SR101  | 45     |
| KOM201 | 55     |
+--------+--------+
3 rows in set (0.00 sec)
c.  Nomor dan matakuliah yang pesertanya lebih dari 40 orang
mysql> select nomk, matakuliah from kuliah_join1 where jmlmhs > 40;
+--------+----------------------------+
| nomk   | matakuliah                 |
+--------+----------------------------+
| KOM101 | Algoritma dan Pemrograman  |
| SR101  | Desain Elementer           |
| KOM201 | Pemrograman Besbasis Objek |
+--------+----------------------------+
3 rows in set (0.00 sec)
d.  Nip instruktur yang mengampu matakuliah dengan nomor ‘KOM102’
mysql> select nip from kuliah_join1 where nomk='KOM102';
+------+
| nip  |
+------+
| 1    |
+------+
                  1 row in set (0.00 sec)

e.  Nip instruktur yang mengampu matakuliah ‘basis data’
mysql> select nip from kuliah_join1 where matakuliah='Basis Data';
+------+
| nip  |
+------+
| 1    |
+------+
                 1 row in set (0.00 sec)
 
f.  Nama matakuliah dan ruangan yang diampu oleh ‘Steve Jobs’
mysql> select matakuliah, ruangan from kuliah_join1 where instruktur='Steve Jobs';
+------------------+---------+
| matakuliah       | ruangan |
+------------------+---------+
| Desain Elementer | 101     |
+------------------+---------+
1 row in set (0.00 sec)
g.  Jumlah total mahasiswa yang diampu oleh ‘Steve Wozniak’
mysql> select sum(jmlmhs) from kuliah_join1 where instruktur='Steve Wozniak';
+-------------+
| sum(jmlmhs) |
+-------------+
|          85 |
+-------------+
1 row in set (0.07 sec)
h.  Nomor dan nama instruktur yang mengampu mahasiswa terbanyak
mysql> select nip, instruktur from kuliah_join1 where jmlmhs='55';
+------+---------------+
| nip  | instruktur    |
+------+---------------+
| 3    | James Gosling |
+------+---------------+
                  1 row in set (0.00 sec)

1      3.  Buatlah view untuk mendapatkan data :
a.  Nomor dan nama instruktur yang belum mengampu matakuliah apapun
mysql> create view vi_5 as select nip, namains from instruktur where nip='4';
Query OK, 0 rows affected (0.03 sec)
 
a.  Jumlah matakuliah yang diampu oleh setiap instruktur
-          Matakuliah yang diampu Steve Wozniak
mysql> create view vi_1 as select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='1';
Query OK, 0 rows affected (0.09 sec)
-          Matakuliah yang diampu Steve Jobs
mysql> create view vi_2 as select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='2';
Query OK, 0 rows affected (0.06 sec)
-          Matakuliah yang diampu James Gosling
mysql> create view vi_3 as select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='3';
Query OK, 0 rows affected (0.04 sec
-          Matakuliah yang diampu Bill Gates
mysql> create view vi_4 as select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='4';
Query OK, 0 rows affected (0.06 sec)
1      4. Buat trigger untuk pencatat perubahan ruangan untuk sebuah matakuliah.
-          Membuat tabel pencatat
mysql> create table roomchanges (user_id varchar(15), deskripsi varchar(100));
Query OK, 0 rows affected (0.23 sec)
-          Membuat trigger untuk mengupdate
mysql> create trigger akprind after update on kuliah for each row
    -> begin
    -> insert into roomchanges values(user(), concat('merubah ruangan ', old.nomk,'   dari ruan
g', old.ruangan,' ke ruang ', new.ruangan));
    -> end 3
Query OK, 0 rows affected (0.08 sec)
-          Mengupdate
mysql> update kuliah set ruangan='102' where nomk='KOM101'3
Query OK, 1 row affected (0.08 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select*from roomchanges3
+----------------+-----------------------------------------------------+
| user_id        | deskripsi                                           |
+----------------+-----------------------------------------------------+
| root@localhost | merubah ruangan KOM101   dari ruang101 ke ruang 102 |
+----------------+-----------------------------------------------------+
1 row in set (0.00 sec)