Nama : Bintang Sabda Esa NIM
: 14102013
Kelas : 3 IF A UAS BASIS DATA 1. Lakukan analisis terhadap CV Ayo Baca dan buatlah CDM dan PDM pada studi kasus tersebut kemudian beri penjelasan untuk setiap langkah pembuatan CDM dan PDM nya! 2. Tampilkan query untuk memasukkan 3 data pada masing-masing tabel yg telah dibuat dan jelaskan arti query yg ditulis! 3. Tampilkan data dengan menggunakan JOIN untuk minimal 2 tabel. Simpan query dan tampilkan hasilnya. Jelaskan arti query yg ditulis! 4. Apakah yg dimaksud dengan TRIGGER? 5. Buat 1 contoh TRIGGER pada database yg telah dibuat dan jelaskan arti dari query tersebut!
Jawab : 1. Pembuatan Conceptual Data Model Membuka apliasi PowerDesigner, kemudian klick new, pilih Conceptual Data Models, kemudian klick Conceptual Diagram.
Kemdian buatlah entitas (tabel) dengan menggunakan menu berikut :
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
Kemudian beri judul/nama pada setiap entita (tabel) dan isikan data atributnya hingga seperti berikut :
*Jk = gender, saat di database variable akan diubah menjadi ‘enum’ Selanjutnya yaitu dengan membuat relasi antar entity, dengan cara melakukan klick pada icon relationship.
Kemudian hubungan entity/entitas hingga menjadi seperti berikut :
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
Sebelum ke tahap selanjutnya periksa terlebih dahulu CDM yang telah kita buat, apakah ada error/ tidak dengan cara menekan tombol F4 lalu klik ok.
* Tidak terdapat error dan warning pada pengecekan, berarti pembuatan CDM benar.
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
Pembuatan Physical Data Model Setelah selesai membuat CDM selanjutnya adalah pembuatan PDM dengan cara klick tools kemudian pilih generate physical data model,
Kemudian akan tampil pop-up seperti gambar dibawah ini,
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
Pada kolom name isikan PDM_Rental_Komik, pada DBMS pilih MYSQL 5.0 (menyesuaikan versi DBMS masing – masing). Kemudian pada tab detail, form prefix diisikan tbl_, pada update rule dipilih cascade agar bisa melakukan update pada relationship. Pada delete rule dipilih cascade agar bisa melakukan delete pada relationship. Kemudian klik apply dan ok. Kemudian hasilnya akan seperti gambar berikut,
*PDM_rental_komik
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
2. Memasukan Data a. Tbl_komik QUERY : INSERT INTO `rental_komik`.`tbl_komik` (`KD_KOMIK` ,`ID_KATEGORI` ,`JUDUL_KOMIK` ,`PENGARANG` ,`ISSN_ISBN` ,`PENERBIT` ,`TAHUN_TERBIT` ,`RESUME`)VALUES ('1011', '1', 'Saitama The Raid Man', 'Khisimoto', '13131313', 'Japan station', '2011', 'Seorang anak muda yang selama hidupnya bercita - cita menjadi ESPER.'); Keterangan: Memasukan data ke tabel tbl_komik QUERY : INSERT INTO `rental_komik`.`tbl_komik` (`KD_KOMIK`, `ID_KATEGORI`, `JUDUL_KOMIK`, `PENGARANG`, `ISSN_ISBN`, `PENERBIT`, `TAHUN_TERBIT`, `RESUME`) VALUES ('1012', '3', 'Kyokai no Kanata', 'Mashasi .K', '13131414', 'Japan station', '2012', 'Sekumpulan remaja dengan kekuatan astral membasmi kedengkian manusia.'); Keterangan: Memasukan data ke tabel tbl_komik
QUERY : INSERT INTO `rental_komik`.`tbl_komik` (`KD_KOMIK`, `ID_KATEGORI`, `JUDUL_KOMIK`, `PENGARANG`, `ISSN_ISBN`, `PENERBIT`, `TAHUN_TERBIT`, `RESUME`) VALUES ('1013', '2', 'Plastic Memori', 'Sugiwara', '13131515', 'Tokyo CN', '2012', 'Kisah seorang pencari kerja yang menyukai partner kerjanya'); Keterangan: Memasukan data ke tabel tbl_komik Berikut hasilnya:
b. Tbl_kategori QUERY : INSERT INTO tbl_kategori (ID_KATEGORI, DESKRIPSI) VALUES (1, 'Komedi'); Keterangan: Memasukan data ke tabel tbl_kategori. QUERY : INSERT INTO tbl_kategori (ID_KATEGORI, DESKRIPSI) VALUES (2, 'Romantis'); Keterangan: Memasukan data ke tabel tbl_kategori. QUERY : INSERT INTO tbl_kategori (ID_KATEGORI, DESKRIPSI) VALUES (3, 'Super Hero'); Keterangan: Memasukan data ke tabel tbl_kategori.
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
QUERY : INSERT INTO tbl_kategori (ID_KATEGORI, DESKRIPSI) VALUES (4, 'Drama'); Keterangan: Memasukan data ke tabel tbl_kategori. Berikut hasilnya:
c. Tbl_anggota QUERY : INSERT INTO `rental_komik`.`tbl_anggota` (`KD_ANGGOTA`, `NAMA_ANGGOTA`, `JK_ANGGOTA`, `ALAMAT_ANGGOTA`, `NO_HP_ANGGOTA`, `EMAIL_ANGGOTA`, `NO_KTP`, `NO_KARTU_PELAJAR`) VALUES ('1231', 'Bintang', 'L', 'Lengkong Rt4/Rw2 Jln. Cikura No. 03', '62818612433', '
[email protected]', '111144442211', '14102013'); Keterangan: Memasukan data ke tabel tbl_anggota. QUERY : INSERT INTO `rental_komik`.`tbl_anggota` (`KD_ANGGOTA`, `NAMA_ANGGOTA`, `JK_ANGGOTA`, `ALAMAT_ANGGOTA`, `NO_HP_ANGGOTA`, `EMAIL_ANGGOTA`, `NO_KTP`, `NO_KARTU_PELAJAR`) VALUES ('1232', 'Bagus', 'L', 'Depok Rt16/Rw2 Jln. Cindrawasih No. 123', '628122451312', '
[email protected]', '111155666611', '14102011'); Keterangan: Memasukan data ke tabel tbl_anggota. QUERY : INSERT INTO `rental_komik`.`tbl_anggota` (`KD_ANGGOTA`, `NAMA_ANGGOTA`, `JK_ANGGOTA`, `ALAMAT_ANGGOTA`, `NO_HP_ANGGOTA`, `EMAIL_ANGGOTA`, `NO_KTP`, `NO_KARTU_PELAJAR`) VALUES ('1233', 'Putri', 'P', 'Bekasi Rt1/Rw14 Jln. Perdana No. 57', '62822456332', '
[email protected]', '111155888822', '14102033'); Keterangan: Memasukan data ke tabel tbl_anggota. Berikut Hasilnya:
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
d. Tbl_karyawan QUERY : INSERT INTO `rental_komik`.`tbl_karyawan` (`NIK`, `NAMA_KARYAWAN`, `JK_KARYAWAN`, `BAGIAN_KARYAWAN`, `ALAMAT_KARYAWAN`, `NO_HP_KARYAWAN`, `EMAIL_KARYAWAN`) VALUES ('9123', 'Aylin', 'P', 'OP Peminjaman', 'Jln. Karanganyar No.123', '628224292439', '
[email protected]'); Keterangan: Memasukan data ke tabel tbl_karyawan. QUERY : INSERT INTO `rental_komik`.`tbl_karyawan` (`NIK`, `NAMA_KARYAWAN`, `JK_KARYAWAN`, `BAGIAN_KARYAWAN`, `ALAMAT_KARYAWAN`, `NO_HP_KARYAWAN`, `EMAIL_KARYAWAN`) VALUES ('9124', 'Rahmat', 'L', 'OP Pengembalian', 'Jln. Karanganyar No.07', '6282244561', '
[email protected]'); Keterangan: Memasukan data ke tabel tbl_karyawan. QUERY : INSERT INTO `rental_komik`.`tbl_karyawan` (`NIK`, `NAMA_KARYAWAN`, `JK_KARYAWAN`, `BAGIAN_KARYAWAN`, `ALAMAT_KARYAWAN`, `NO_HP_KARYAWAN`, `EMAIL_KARYAWAN`) VALUES ('9125', 'Zuddin', 'L', 'Keamanan dan Tatatertib', 'Jln. Batuagung No.13', '6282255231', '
[email protected]'); Keterangan: Memasukan data ke tabel tbl_karyawan. Berikut hasilnya :
e. Tbl_peminjaman QUERY : INSERT INTO `rental_komik`.`tbl_peminjaman` (`KD_PINJAM`, `NIK`, `KD_KOMIK`, `KD_ANGGOTA`, `TGL_PINJAM`, `TGL_KEMBALI`) VALUES ('67001', '9123', '1011', '1231', '2016-01-01', '2016-01-04'), ('67002', '9123', '1012', '1232', '2016-01-01', '2016-01-04'), ('67003', '9123', '1013', '1233', '2016-01-01', '2016-01-04'); Keterangan: Memasukan data ke tbl_peminjaman dimana data data diwakili oleh “kd_” primary key masing- masing. *saya menginputkan melalui localhost mysql. Berikut harilnya :
f.
Tbl_pengembalian QUERY : INSERT (`KD_KEMBALI`,
INTO `rental_komik`.`tbl_pengembalian` `KD_KOMIK`, `KD_ANGGOTA`,
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
`TGL_JADWAL_KEMBALI`, `TGL_DIKEMBALIKAN`, `JML_HARI_TERLAMBAT`, `DENDA`, `TOTAL_DENDA`) VALUES ('76001', '1011', '1231', '2016-01-04', '2016-01-04', '0', '0', '0'), ('76002', '1012', '1232', '2016-01-04', '2016-01-06', '2', '500', '1000'), ('76003', '1013', '1233', '2016-01-04', '2016-01-04', '0', '0', '0'); Keterangan: Memasukan data ke tbl_peminjaman dimana data data diwakili oleh “kd_” primary key masing- masing. *saya menginputkan melalui localhost mysql.
3. QUERY : SELECT * FROM tbl_komik INNER JOIN tbl_kategori ON tbl_komik.ID_KATEGORI = tbl_kategori.ID_KATEGORI; Keterangan: Menapilkan data dengan kondisi ID_KATEGORI dari tbl_komik dan tbl_kategori sama. Berikut hasilnya:
4. Triggermerupakan kode prosedural yang akan dieksekusi secara otomatis karena dipicu suatu kejadian/event (INSERT, UPDATE atau DELETE), baik itu sebelum atau sesudah event terjadi pada tabel. 5. Buat tabel log_judul_komik untuk mencatat log perubahan dari tbl_komik CREATE TABLE tbl_log_perubahan (TANGGAL_PERUBAHAN text, KETERANGAN text); Kemudian buat trigger LOG UPDATE dengan QUERY : CREATE TRIGGER update_tbl_komik AFTER UPDATE ON tbl_komik FOR EACH ROW tbl_log_perubahan VALUES("Telah Diubah",NOW());
INSERT
INTO
Keterangan : Membuat trigger bernama update_tbl_komik kemudian trigger akan otomatis berjalan setelah aksi update pada tabel tbl_komik, setelah itu akan dimasukan atau disimpan pada table yang telah dibuat tadi yaitu tbl_log_perubahan. Isinya yaitu now() - adalah waktu sekarang untuk mengisi pada field TANGGL_PERUBAHAN dan akan mengisi ‘Telah Diubah’ pada kolom KETERANGAN.
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data
Buat trigger LOG NEWdengan QUERY : CREATE TRIGGER new_tbl_komik AFTER INSERT ON tbl_komik FOR EACH tbl_log_perubahan VALUES("Komik Baru!",NOW());
ROW
INSERT
INTO
Keterangan : Membuat trigger bernama new_tbl_komik kemudian trigger akan otomatis berjalan setelah aksi update pada tabel tbl_komik, setelah itu akan dimasukan atau disimpan pada table yang telah dibuat tadi yaitu tbl_log_perubahan. Isinya yaitu now() - adalah waktu sekarang untuk mengisi pada field TANGGL_PERUBAHAN dan akan mengisi ‘Komik Baru!’ pada kolom KETERANGAN. Berikut Hasilnya : *Sebelumnya saya sudah melakukan perubahan dan penambahan judul komik
Ujian Akhir Semester ST3 Telkom Purwokerto, Mata Kuliah Basis Data