Pages

Jumat, 18 Januari 2013

modul 6


MODUL ENAM
Jawaban
1).quary untuk membuat table
A. Table instruktur
mysql> create table instruktur(nip varchar(3) primary key,namains varchar (30),jurusan varchar(30),asalkota varchar(25));
mysql> insert into instruktur values('1','steve woznian','ilmu komputer','bantul'),
-> ('2','steve jobs','seni rupa','solo'),
-> ('3','james gosling','ilmu komputer','klaten'),
-> ('4','bill gates','ilmu komputer','magelang');
B. Table matakuliah
mysql> create table matakuliah(nomk varchar(10) primary key,namamk varchar (50),sks int(3));
mysql> insert into matakuliah values('KOM101','ALGORITMA DAN PEMOGRAMAN','3'),
    -> ('KOM102','BASIS DATA','3'),
    -> ('SR101','DESAIN ELEMENTER','3'),
    -> ('KOM201','PEMOGRAMAN BERBASIS OBYEK','3');
C. Table kuliah
mysql> create table kuliah(nip varchar(3), nomk varchar(10), ruangan varchar(5), jmlmhs int(5), foreign key(nip) references instruktur(nip), foreign key(nomk) references matakuliah(nomk));
mysql> insert into kuliah values('1','KOM101','101','50'),
    -> ('1','KOM102','102','35');
     ->('2','SR101','101','45'),
     ->('3','KOM201','101','55');
2. Tuliskan query untuk mendapatkan data-data di bawah ini. Tambahkan data pada tabel sesuai
dengan kebutuhan.
A.    Instruktur-instruktur jurusan 'Ilmu Komputer'

mysql> select nip, namains from instruktur where jurusan='ilmu komputer';

B.     Nomor mata kuliah yang pesertanya lebih dari 40 orang

mysql> select*from kuliah where jmlmhs > 40;

C.    Nomor dan mata kuliah yang pesertanya lebih dari 40 orang
mysql> select*from kuliah where jmlmhs > 40;
D.     nip instruktur yang mengampu mata kuliah dengan nomor 'KOM102'

mysql> select nip from kuliah where nomk ='KOM102';

E.    nip instruktur yang mengampu mata kuliah 'Basis Data'

mysql> select nip from kuliah where nomk ='KOM102';

F.     nip dan nama instruktur yang mengampu mata kuliah 'Basis Data'
mysql> select nip from kuliah where nomk ='KOM102';
G.    Nama mata kuliah dan ruangan yang diampu oleh 'Steve Jobs'

H.    Jumlah total mahasiswa yang diampu oleh 'Steve Wozniak'

mysql> select namamk from matakuliah where nomk='SR101';

I.       Nomor dan nama instruktur yang mengampu mahasiswa terbanyak

mysql> select jmlmhs,count(*) from kuliah group by jmlmhs;

J.      Nomor dan nama instruktur yang belum mengampu mata kuliah apapun

3. Buatlah view untuk mendapatkan data berikut ini:
A.    Nomor dan nama instruktur yang belum mengampu mata kuliah apapun

mysql> select*from view_1;
B.     Jumlah mata kuliah yang diampu oleh setiap instruktur
4. Buatlah Trigger untuk pencatatan perubahan ruangan untuk sebuah mata kuliah. Catatan
perubahan disimpan dalam tabel berikut:
mysql> create table roomChanges(user_id varchar(15), deskripsi varchar(100));
mysql> delimiter **
mysql> create trigger room_ruangan AFTER UPDATE
    -> ON tabel_kuliah
    -> FOR EACH ROW
    -> BEGIN
    -> INSERT INTO roomChanges
    -> VALUES (user(), CONCAT('merubah ruangan ',NEW.no_mk,' dari ruang ',OLD.ruangan, ' to  ',NEW.ruangan));
    -> end **
mysql> delimiter ;
mysql> update tabel_kuliah set ruangan=102 where no_mk='KOM101';
mysql> select * from roomChanges;
5. Buatlah fungsi atau prosedur sesuai kasus berikut ini:
A.    Fungsi untuk menampilkan jumlah kuliah yang diadakan di sebuah ruangan (nama ruangan dimasukkan sebagai input)

mysql> delimiter **
mysql> create function countRoom(ruangan int(3))
    -> returns int(2)
    -> begin
    -> return concat('1');
    -> end **
mysql> delimiter ;

mysql> select countRoom('102');

mysql> delimiter **
mysql> create function countRoom(ruangan int(3))
    -> returns int(2)
    -> begin
    -> return concat('0');
    -> end **
mysql> delimiter ;

mysql> select countRoom('103');

B.     Fungsi untuk mendapatkan nama ruangan tempat sebuah mata kuliah diadakan (nomor mata kuliah dimasukkan sebagai input). Berikan nilai 'not found' jika sebuah mata kuliah belum diberi
mysql> delimiter **
mysql> create function getRoom(no_mk varchar(10))
    -> returns varchar(8)
    -> begin
    -> return concat('102');
    -> end **
mysql> delimiter ;



mysql> select getRoom('KOM102');

mysql> delimiter **
mysql> create function getRoom(no_mk varchar(10))
    -> returns varchar(12)
    -> begin
    -> return concat('not found');
    -> end **
mysql> delimiter ;

mysql> select getRoom('KOM103');


C.     Prosedur untuk menampilkan nama mata kuliah dan ruangan yang diampu oleh seorang instruktur (nama instruktur dimasukkan sebagai input

mysql> create procedure getruangan (out ruangan varchar(5))
   -> begin
   -> select count(*) into ruangan from kuliah;
   -> end #

D.    Prosedur untuk menampilkan jumlah SKS yang diampu oleh seorang instruktur (nama
instruktur dimasukkan sebagai input)
mysql> delimiter ^^
mysql> create procedure getSks(in nama_insName varchar(22))
    -> begin
    -> select nama_ins, SUM(sks) from tabel_kuliah_join3 where nama_ins like nama_insName;
    -> end ^^
mysql> delimiter ;



modul 5


Modul 5

1.      Buat function untuk menapilkan gabungan firs_name dan last_name dengan bentuk “last_name,firs_name”.
2.      Buatlah procedure untuk menampilkan job dari masukan sebuah idemployee.


mysql> create database pethouse;
Query OK, 1 row affected (0.03 sec)


mysql> use pethouse;
Database changed
mysql> create table employee_join(id int(11) primary key,first_name varchar(15),last_name varchar(15),start_date date,end_date date,salary float(8,2),city varchar(10),job_id int(11),foreign key(job_id) references job(job_id));
Query OK, 0 rows affected (0.09 sec)


mysql> insert into employee_join values('1','jason','martin','1996-07-25','2006-07-25','1235.56','toronto','1'),('2','alison','mathews','1976-03-21','1986-02-21','6662.78','vancouver','2');
Query OK, 2 rows affected (0.11 sec)
Records: 2  Duplicates: 0  Warnings: 0




mysql> insert into employee_join values('3','james','smith','1978-12-12','1990-03-15','6545.78','vancoufer','2'),('4','celia','rice','1982-10-24','1999-04-21','2345.78','vancouver','3');
Query OK, 2 rows affected (0.37 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('5','roberth','black','1984-01-15','1998-08-08','2335.78','vancouver','2'),('6','linda','green','1987-07-30','1996-01-04','4323.78','new york','2');
Query OK, 2 rows affected (0.36 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('7','david','larry','1990-12-31','1998-02-12','7898.78','new york','3'),('8','james','cat','1996-09-17','2002-04-15','1233.78','vancouver','2');
Query OK, 2 rows affected (0.05 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('9','hercule','poirod','1973-05-23','2001-08-09','4313.98','brussels','5'),('10','lincoln','rhyme','1999-05-25','2011-07-13','3213.98','new york','6');
Query OK, 2 rows affected (0.36 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('11','sherlock','holmes','1923-08-12','1945-07-21','4124.21','london','5');
Query OK, 1 row affected (0.05 sec)


mysql> create table job(job_id int(11) primary key,title varchar(25));
Query OK, 0 rows affected (0.09 sec)


mysql> insert into job values('1','programer'),('2','tester'),('3','manager'),('4','spy'),('5','detective'),('6','vorensics'),('7','developer');
Query OK, 7 rows affected (0.05 sec)
Records: 7  Duplicates: 0  Warnings: 0



mysql> delimiter #
mysql> create function full_name(in_first_name varchar(20), in_last_name varchar(20))
    -> returns varchar(45)
    -> begin
    -> return concat(in_first_name,' ',in_last_name);
    -> end #
Mysql>delimiter ;
delimiter ##
 create procedure empjob()
 begin
 select*from job ##
1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
 delimiter #
 create procedure getEmployee_joinbyjob_id(in job_description int(3))
 begin
 select *from employee_join where job_id like job_description;
 end #



                                                                                                                           

modul 4


Modul  4

mysql> create database pethouse;
Query OK, 1 row affected (0.03 sec)
mysql> use pethouse;
Database changed
mysql> create table employee_join(id int(11) primary key,first_name varchar(15),last_name varchar(15),start_date date,end_date date,salary float(8,2),city varchar(10),job_id int(11),foreign key(job_id) references job(job_id));
Query OK, 0 rows affected (0.09 sec)
mysql> insert into employee_join values('1','jason','martin','1996-07-25','2006-07-25','1235.56','toronto','1'),('2','alison','mathews','1976-03-21','1986-02-21','6662.78','vancouver','2');
Query OK, 2 rows affected (0.11 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> insert into employee_join values('3','james','smith','1978-12-12','1990-03-15','6545.78','vancoufer','2'),('4','celia','rice','1982-10-24','1999-04-21','2345.78','vancouver','3');
Query OK, 2 rows affected (0.37 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> insert into employee_join values('5','roberth','black','1984-01-15','1998-08-08','2335.78','vancouver','2'),('6','linda','green','1987-07-30','1996-01-04','4323.78','new york','2');
Query OK, 2 rows affected (0.36 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('7','david','larry','1990-12-31','1998-02-12','7898.78','new york','3'),('8','james','cat','1996-09-17','2002-04-15','1233.78','vancouver','2');
Query OK, 2 rows affected (0.05 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('9','hercule','poirod','1973-05-23','2001-08-09','4313.98','brussels','5'),('10','lincoln','rhyme','1999-05-25','2011-07-13','3213.98','new york','6');
Query OK, 2 rows affected (0.36 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into employee_join values('11','sherlock','holmes','1923-08-12','1945-07-21','4124.21','london','5');
Query OK, 1 row affected (0.05 sec)


mysql> create table job(job_id int(11) primary key,title varchar(25));
Query OK, 0 rows affected (0.09 sec)

mysql> insert into job values('1','programer'),('2','tester'),('3','manager'),('4','spy'),('5','detective'),('6','vorensics'),('7','developer');
Query OK, 7 rows affected (0.05 sec)
Records: 7  Duplicates: 0  Warnings: 0


mysql> create view view_2 as select *from employee_join;
Query OK, 0 rows affected (0.12 sec)
mysql> select full_name(first_name,last_name),salary,city from view_2;







Kamis, 17 Januari 2013

tugas kuis smbd

Tugas kuis
SISTEM MANAJEMEN BASIS DATA




Nama                                  :Apolinarius Gusala
Nim                                     : 111.05.1007
Tugas Kuis                         :SMBD


TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT SAINS & TEKNOLOGI AKPRIND
YOGYAKARTA
2013




DATA MASTER
1. Rancangan Struktur Tabel Database
2.Menentukan Primary dan Foreign (jika ada) dalam Setiap Tabel Database


Propinsi
Id_propinsi(primery)
Nama_propinsi
Id_penerbit
Id_penerbit (primery)
Nama_penerbit

Petugas
Id_petugas(primery)
Nama_petugas
Jenis_klamin

User
Id_user(primery)
Nama_user
Jenis_klamin
  Buku
Id_buku(primery)
Nama_buku
Id_jenisbuku(foreign key)
Id_bidangbuku(foreign key)
Id_penerbit(foreign key)
Id_penulis(foreign key)
Id_propinsi(foreign key)
Id_kabupaten(foreign key)
Id_kecamatan (foreign key)

Jenis buku
Id_jenisbuku(primery)
Nama_petugas

Kabupaten
Id_kabupaten(primery)
Nama_kabupaten

Kecamatan
Id_kecamatan(primery)
Nama_kecamatan
Bidang buku
Id_bidangbuku(primery)
Jenis_buku


Hilang
No_hilang(primery)
Id_user(foreign key)
Id_buku(foreign key)
Hargakehilangan

penerbit
Id_penulis(primery)
Nama_penulis


Terlambat
No_terlambat(primery)
Id_user (foreign key)
Id_buku(foreign key)
Hargakterlambatan
Kerusakan
No_kerusakan(primery)
Id_user (foreign key)
Id_buku(foreign key)
Hargakerusakan







kerusakan
No_kerusakan ( primery)
Id_user (foreign key)
Id_buku(foreign key)
hargakerusakan
DATA TRANSAKSI
Pinjam
No_transaksipinjam (primery)
Id_user (foreign key)
Id_buku(foreign key)
Tgal_pinjam
Terlambat
No_terlambat( primery)
Id_user (foreign key)
Id_buku(foreign key)
hargakterlambatan

Hilang
No_hilang( primery)
Id_user(foreign key)
Id_buku(foreign key)
hargakehilangan
Kembali
No_transaksikembali( primery)
No_transaksipinjam(foreign key)
Tgl_kembali





















3.Gambar Diagram Kerelasian atantara tabel Database

penerbit
Id_penerbit (primery)
Nama_penerbit

Propinsi
Id_propinsi(primery)
Nama_propinsi

Anggota
Id_Anggota(primery)
Nama_petugas
Jenis_klamin
User
Id_user(primery)
Nama_user
Jenis_klamin
  Buku
Id_buku(primery)
Nama_buku
Id_jenisbuku(foreign key)
Id_bidangbuku(foreign key)
Id_penerbit(foreign key)
Id_penulis(foreign key)
Id_propinsi(foreign key)
Id_kabupaten(foreign key)
Id_kecamatan (foreign key)
Jenis buku
Id_jenisbuku(primery)
Nama_petugas

Kabupaten
Id_kabupaten(primery)
Nama_kabupaten

Kecamatan
Id_kecamatan(primery)
Nama_kecamatan
Bidang buku
Id_bidangbuku(primery)
Jenis_buku


Hilang
No_hilang(primery)
Id_user(foreign key)
Id_buku(foreign key)
Hargakehilangan

penulis
Id_penulis(primery)
Nama_penulis


Terlambat
No_terlambat(primery)
Id_user (foreign key)
Id_buku(foreign key)
Hargakterlambatan
Kerusakan
No_kerusakan(primery)
Id_user (foreign key)
Id_buku(foreign key)
Hargakerusakan










Terlambat
No_terlambat( primery)
Id_user (foreign key)
Id_buku(foreign key)
hargakterlambatan


User
Id_user(primery)
Nama_user
Jenis_klamin
No_kerusakan ( primery)
Id_user (foreign key)
Id_buku(foreign key)
hargakerusakan

 

  Buku
Id_buku(primery)
Nama_buku
Id_jenisbuku(foreign key)
Id_bidangbuku(foreign key)
Id_penerbit(foreign key)
Id_penulis(foreign key)
Id_propinsi(foreign key)
Id_kabupaten(foreign key)
Id_kecamatan (foreign key)



Pinjam
No_transaksipinjam (primery)
Id_user (foreign key)
Id_buku(foreign key)
Tgal_pinjam


                          
Kembali
No_transaksikembali( primery)
No_transaksipinjam(foreign key)
Tgl_kembali
Hilang
No_hilang( primery)
Id_user(foreign key)
Id_buku(foreign key)
hargakehilangan


















4.Perintah SQL :
A.  Membuat databases perpustakaan
-    mysl> create database perpustakaan;
B.  Membuat tabel database master dan transaksi
Tabel Master :
-   mysql> create table user(id_user varchar(10) primary key, nama_user  varchar(50), alamat varchar(50), no_telp varchar(12));
-   mysql> create table anggota(id_anggota varchar(10) primary key, nama_anggota  varchar(50), alamat varchar(50), no_telp varchar(12));
-   mysql> create table buku(id_bukuvarchar(10) primary key, nama_buku  varchar(50));
-   mysql> create table jenis_buku(id_jenis_buku varchar(10) primary key, nama_jenis_buku varchar(50));
-   mysql> create table bidang_buku(id_bidang_buku varchar(10) primary key, nama_bidang_buku varchar(50));
-   mysql> create table penerbit(id_penerbit varchar(10) primary key, nama_penerbit varchar(50));
-   mysql> create table penulis(id_penulis varchar(10) primary key, nama_penulis(50));
-   mysql> create table propinsi(id_propinsi varchar(10) primary key, nama_propinsi varchar(50));
-   mysql> create table kabupaten(id_kabupaten varchar(10) primary key, nama_kabupaten varchar(50));
-   mysql> create table kecamatan(id_kecamatan varchar(10) primary key, nama_kecamatan varchar(50));
-   mysql> create table terlambat(id_terlambat varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),harga_sangksi_buku_terlambat int(20));
-   mysql> create table rusak(id_rusak varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),harga_sangksi_buku_rusak int(20));
-   mysql> create table hilang(id_hilang varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),harga_sangksi_buku_hilang int(20));

Tabel Transaksi :
-   mysql> create table pinjam_buku(id_pinjam varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),tgl_pinjam  varchar(10));
-   mysql> create table kembali (id_kembali varchar(10) primary key, id_pinjam varchar(10) (foreign key),tgl_kembali varchar(10));
-   mysql> create table bayar_hilang(id_hilang varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),harga_sangksi_buku_hilang int(20));
-   mysql> create table bayar_rusak(id_rusak varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),harga_sangksi_buku_rusak int(20));
-   mysql> create table bayar_terlambat(id_terlambat varchar(10) primary key, id_user varchar(10) (foreign key),id_buku(foreign key),harga_sangksi_buku_terlambat int(20));
C. Menghitung jumlah total semua koleksi Perpustakaan
-   mysql> select SUM(id_buku) from buku;
D. Menampilkan daftar buku dan penerbitnya,urut ascending berdasarkan abjad judul buku
-   mysql> select * from buku ORDER BY nama_buku;
-   mysql> select * from penerbit ORDER BY nama_penerbit;   
E. Menampilkan daftar anggota sedang meminjam buku ,urut asscending berdasarkan tangal pinjam
-   mysql> select * from pinjam_buku ORDER BY tgl_pinjam;  
F. Menampilkan seluruh daftar anggota yang pernah membayar terlamabat mengembalikan buku, urut ascending berdasarkan abjad nama anggota.
-   mysql> select * from bayar_terlambat ORDER BY nama_user;
G. Menampilkan daftar seluruh anggota yang pernah membayar denda buku hilang,urut ascendingberdasarkan abjad nama anggota.
-   mysql> select * from bayar_hilang ORDER BY nama_user;
H. Menampilkan daftar seluruh anggota yang pernah membayar denda buku rusak,urut ascendingberdasarkan abjad nama anggota.
-   mysql> select * bayar_rusak ORDER BY nama_user;


Pengikut