Sabtu, 22 November 2014

LAPORAN VIII

LAPORAN
PRAKTIKUM DESAIN BASIS DATA


NAMA   : ARIS DIANTORO
NIM       : 13650105
KELAS  : D 




BAB I
Dasar Teori:



PL/SQL ( Prosedural Language/Structured Query Language ) merupakan bahasa pemrograman yang menggabungkan bahasa procedural, seperti pernyataan :
  • percabangan (IF-THEN-ELSE), 
  • pengulangan (LOOP) dan 
  • deklarasi variable. 
  •  
Function merupakan sekumpulan perintah PL/SQL untuk menjalankan suatu tugas tertentu dan mengembalikan suatu nilai.

Terdapat pada sebuah program unit yang disimpan dalam database untuk mengerjakan suatu tugas dengan mengembalikan suatu nilai tertentu.


Syntax Function:

CREATE [OR REPLACE] FUNCTION name [(parameter[, parameter,…])]
RETURN datatype IS
[local declaration;]
BEGIN
executable statements;
[EXCEPTION
Exception handlers]
END [name];

Database triger merupakan sebuah program unit yang disimpan didalam database dan hanya dapat dieksekusi (fired) secara implisit oleh server (oracle server) menurut event yang terjadi pada object acuan dari trigger tersebut.
Triger dapat berisi SQL, PL/SQL, dan Java statement. Selain itu juga dapat memanggil method yang ditulis menggunakan bahasa C.

Kegunaannya Triger :

1.Menentukan nilai kolom – kolom tertentu secara otomatis
2.Menghindarkan transaksi yang tidak valid
3.Membuat autorisasi sekuriti yang kompleks
4.Membuat bussines rule yang kompleks


Event eksekusi trigger :

1.DML event (INSERT, UPDATE & DELETE) statement.
2.DDL event (CREATE, ALTER & DROP) statement
3.Database event (Startup/Shutdown, Error Message & User event (Logon/Logoff))

Procedure ialah sekumpulan perintah PL/SQL untuk menjalankan suatu tugas tertentu.
Stored procedure ialah prosedur yang telah dicompile dan disimpan dalam database.
Di dalam Procedure terdapat schema yang berisi sekumpulan SQL statement dan perintah – perintah PL/SQL yang disimpan dalam database dan bekerja sebagai sebuah unit yang dapat mengerjakan sekumpulan tugas tertentu.

Syntax Procedure:

CREATE [OR REPLACE] PROCEDURE name [(parameter[, parameter,…])] IS
[local declaration;]
BEGIN
executable statements;
[EXCEPTION
Exception handlers]
END [name];

Struktur dasar dari PL/SQL adalah DECLARE, BEGIN, dan END. Untuk menandakan suatu komentar (tidak diproses oleh compiler), gunakan “- -” pada tiap baris komentar.
 

DECLARE

–deklarasikan dengan variable yang akan digunakan. (ini komentar)
BEGIN

–bagian pemrosesan. (ini juga komentar. Tidak akan diproses sistem.)
END;


  • Pertama
Misalkan ingin membuat suatu fungsi PL/SQL untuk menampilkan suatu kalimat. Berikut sintaksnya :

DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE(‘Selamat Belajar PL/SQL!’);

–DBMS_OUTPUT.PUT_LINE() adalah fungsi untuk mengeluarkan suatu string dalam PL/SQL

END;

Sintaks di atas akan menghasilkan keluaran sebagai berikut :
Selamat Belajar PL/SQL!
  • Kedua
Misalkan ingin menampilkan suatu variable yang sudah dideklarasibrkan dan disimpan nilainya :
 

DECLARE
VNAME VARCHAR2(100);

–dideklarasikan variable VNAME dengan tipe VARCHAR2 dan berukuran 100 karakter.

VALAMAT VARCHAR2(200);

–dideklarasikan variable VNAME dengan tipe VARCHAR2 dan berukuran 200 karakter.
BEGIN
VNAME := ‘Putri Chairina’;

– sintaks ‘:=’ digunakan untuk memasukkan suatu nilai ke dalam suatu variable.

VALAMAT := ‘Jakarta’;

– variable VALAMAT dimasukkan nilai ‘Jakarta’.

DBMS_OUTPUT.PUT_LINE(‘Selamat sore, ‘||VNAME||’ alamat anda di ‘||VALAMAT);
– untuk menggabungkan string, gunakan sintaks ‘||’.

END;

Keluaran hasilnya adalah :

Selamat sore, Putri Chairina alamat anda di Jakarta

  • Ketiga
Misalkan ingin melakukan suatu proses matematis, dalam kasus ini perkalian, kemudian hasilnya ditampilkan :
DECLARE
NO1 NUMBER;
NO2 NUMBER;
NO3 NUMBER;

–dideklarasikan variable NO1, NO2, dan NO3 dengan tipe NUMBER.
 
BEGIN
NO1 := 12;
NO2 := 109;
NO3 := NO1 * NO2; 

– variable NO3 merupakan hasil dari perkalian variable NO1 dan NO2.

DBMS_OUTPUT.PUT_LINE(‘Isi dari penjumlahan = ‘||NO3);
END;
Keluaran dari sintaks di atas adalah :
Isi dari penjumlahan = 1308




Trigger


adalah blok PL/ SQL yang disimpan dalam basis data dan akan diaktifasi saat kita melakukkan statemen-statemen dalam SQL seperti 

DELETE, UPDATE, atau INSERT (DML/ Data Manipulation Language) namun,
memiliki batasan dalam CREATE, ALTER, atau DROP (DDL/ Data Definition Language) serta terbatas juga didalam COMMIT, GRANT, ROLLBACK dll (DCL/ Data Control Language). Saya menyebut Trigger ini sebuah ‘pemicu’.
Trigger benar-benar berguna bagi kita yang sedang membuat aplikasi yang membutuhkan validasi dalam prosesnya. Ada beberapa daftar event yang harus diperhatikan dalam penggunaan trigger:

Nama Event
Keterangan
BEFORE INSERT
Diaktifkan sekali sebelum statemen INSERT
AFTER INSERT
Diaktifkan sekali setelah statemen  INSERT
BEFORE UPDATE
Diaktifkan sekali sebelum statemen UPDATE
AFTER UPDATE
Diaktifkan sekali setelah statemen UPDATE
BEFORE DELETE
Diaktifkan sekali sebelum statemen DELETE
AFTER DELETE
Diaktifkan sekali setelah statemen DELETE
 





BAB II
Hasil Percobaan MySql

Tugas Praktikum

Tugas Praktikum

1. Buatlah fungsi konversi suhu dari Fahrenheit ke derajat celcius dengan rumus konversi sebagai berikut : celcius= (5*(nilai Fahrenheit-32))/9!
Kemudian jalankan hasilnya dengan menSELECT fungsi tersebut !
 

2. Buatlah fungsi untuk mencari alamat mahasiswa dari tabel mahasiswa berdasarkan nama mahasiswa. Kemudian jalankan dengan perintah SELECT !


3. Buatlah fungsi untuk menghitung nilai dengan menggunakan bahasa pl/sql !      Nilai > 100 atau Nilai<0 Nilai Salah
      Nilai ≥ 90         Nilai A
      70 ≤ Nilai < 90 Nilai B
      60 ≤ Nilai < 70 Nilai C
      50 ≤ Nilai < 60 Nilai D
       0 ≤   Nilai < 50 Nilai E
Kemudian jalankan hasilnya dengan menSELECT fungsi tersebut !
 
















4. Buatlah fungsi menggunakan pl/pgsql untuk mencari bilangan ganjil atau genap dari bilangan yang diinputkan. Kemudian jalankan dengan perintah SELECT !
 
 

5. Tambahkan kolom modifikasi pada tabel mahasiswa. Dimana setiap ada insert atau update maka tanggal pada kolom modifikasi akan menunjukkan tanggal perubahan tersebut dilakukan



















INSERT dan UPDATE guna melihat perbedaan sebelum ada FUNGSI TRIGGER 






















BAB III
KESIMPULAN, KRITIK, SARAN, MANFAAT PEMBACA dan REFERENSI


KESIMPULAN

Trigger adalah suatu fitur dari ORACLE yang berguna khususnya untuk memberi efek pemicu bul aik ketika sebelum, dan sesudah user mengupdate suatu query. Trigger dapat didefinisikan sebagai sebuah kumpulan aksi yang akan dijalankan jika terjadi sebuah peristiwa yang lain.
PL/SQL adalah kependekan dari Procedural Language/Structured Query Language. Sederhananya adalah suatu bahasa pemrograman untuk database Oracle. Struktur dasar dari PL/SQL adalah DECLARE, BEGIN, dan END.


KRITIK
  1. Kurang Seru Soalnya,
  2. Kurang ada Informasi yang relevan dengan Soal,
  3. Saking Kurangnya Landasan Teori guna MySql, Banyak yang mulai curang,
  4. Soalnya Emang Kurang Seru Soalnya, Sedikit Pula dan Gak Bisa Semua!.

 SARAN-SARAN
  1. Lebih di Tekankan Soal tersebut yang sesuai dengan PL / SQL yang beredar di internet dan Modul agar Lebih Seru,
  2. Memberi Informasi yang lebih relevan dengan soal yang di berikan,
  3. Memberi Soal yang sesuai Landasan Teori,
  4. Lebih banyak Belajar!, Banyak Konsultasi.


MANFAAT PEMBACA
  1. Lebih Memahami tentang PL/ SQL,
  2. Lebih Memahami tentang Trigger,
  3. Lebih Cermat dalam membandingkan PostgreSql dengan MySql,
  4. Lebih cepat mendapat informasi yang relevan,
  5. Dapat mengambil pemahaman yang lebih dari sebelumnya. 


 SUMBER-SUMBER

Modul Praktikum DBD

Senin, 03 November 2014

LAPORAN VII

LAPORAN

PRAKTIKUM DESAIN BASIS DATA
 
SUB QUERY dan INDEX



Nama : Aris Diantoro
NIM : 13650105
Kelas : D




BAB I

DASAR TEORI




Pendahuluan

Sub Query

Bentuk umum dari Sub Query adalah 
dapat di tulis sebagai berikut : SELECT SELECT_LIST FROM TABLE WHERE EXPRESI OPERATOR (select select_list from table WHERE EXPRESI OPERATOR 'VALUE')
Contoh beberapa penggunaan sub query pada MySQL :
Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values). Berikut ini diberikan contoh penggunaan subquery.

Subquery atau query Nested merupakan bentuk query yang terdapat dalam query yang lain. Subquery dapat ditempatkan dalam klausa where, having, from bersama dengan operator perbandingan seperti = untuk baris tunggal dan untuk baris berganda menggunakan in, not in atau < >, < any, >, >=,<=. Penggunaan sub query dapat diterapkan pada pernyataan SELECT, UPDATE, DELETE, dan INSERT.


Pengertian singkat tentang “subquery” adalah perintah SELECT yang berada di dalam perintah SQL lain. subquery sangat berguna ketika kita ingin menampilkan data dengan kondisi yang bergantung pada data di dalam tabel itu sendiri


Subquery adalah salah satu metode untuk mendapatkan informasi dari beberapa tabel dalam database.
Arti Subquery sendiri adalah query didalam query.
Jadi untuk mendapatkan informasi pada tabel ataupun relasional tabel yang sangat kompleks kita dapat menggunakan kondisi dengan sub permintaan tertentu.
Secara umum syntax subquery adalah :

SELECT * FROM tabel_a WHERE kolom_a = (SELECT kolom_b FROM tabel_b);

subquery dengan berbagai operator :


-operator IN
Dengan menggunakan operator ini, kita dapat membuat sebuah kondisi untuk menentukan apakah data yang dimaksud juga terekam dalam tabel subquery. jika demikian maka data pada query utama akan ditampilkan.


-operator EXISTS
pada operator exist semua bentuk kondisi diletakkan didalam subquery, bukan pada query utama.
secara umum syntax operator ini adalah :
select kolom_a,kolom_b,…

FROM nama_tabel WHERE EXIST (subquery);


INDEKS

Indeks disini berguna dalam suatu pencarian nilai atau data dalam database. Dalam suatu kasus ketika mengakses sebuah tabel biasanya DBMS akan membaca seluruh tabel baris perbaris hingga selesai. Ketika baris sangat banyak dan hasil dari query hanya sedikit, maka hal ini sangat tidak efisien. Seperti halnya ketika kita membaca sebuah buku dan ingin mencari kata atau istilah tertentu dalam buku maka biasanya akan di cari dengan membuka setiap halaman dari awal sampai akhir. Dengan adanya indeks buku maka kita cukup dengan membuka indeks, sehingga akan cepat dalam pencarian kata tersebut.







BAB II
TUGAS-TUGAS


Tugas Praktikum

Selasa,  4 November 2014 10.00.00 - 11.30.00

Tugas praktikum kali ini masih menggunakan tabel pada praktikum sebelumnya :

1. Tampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil!


 



2. Tampilkan nama mahasiswa, nama fakultas, alamat dengan syarat nama fakultas sama dengan edi dan alamatnya tidak sama dengan luki!







3. Buatlah index di tabel mahasiswa(alamat). Kemudian buat lagi index yang bersifat unik pada tabel fakultas(fak_nama) kemudian amati perbedaannya ketika memasukkan data yang sama!













4. Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya !











5. Pindahkan data dari tabel mahasiswa, fakultas ambil kolom nim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai mahasiswa fakultas.




 




6. Buatlah contoh penggunaan check pada sub bab pembahasan CHECK. Kemudian masukkan beberapa data baik yang sesuai dengan criteria check maupun yang bukan dan amati perbedaannya.










7. Inputkan data di tabel mahasiswa dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di akhiri dengan tanda “+” seperti berikut : “ andi cahyono++++”. kemudian munculkan seluruh data dan hilangkan spasi didepan!











8. Munculkan data mahasiswa dengan hilangkan karakter “+” di akhir data dan karakter “a” di awal kata pada kolom nama!
















BAB III
KESIMPULAN, MANFAAT PEMBACA dan REFERENSI


KESIMPULAN 



  1.  Begitu kompleksnya query, masih ada Sub Query yang bisa digunakan untuk menggunakan MysQl
  2.  Index adalah struktur data yang diimplementasikan oleh RDBMS untuk mempercepat proses pembacaan data. 
  3.  


MANFAAT PEMBACA


  1.   Mengenal Sub Query beserta Query nya
  2.   Mengenal Index beserta Query nya
  3.   Memahami alur-alur dalam perancanaan database, pemaksimalan hingga pemantapan



SUMBER-SUMBER


blog.uin-malang.ac.id/teknikinformatika/tag/normalisasi/

modul praktikum desain basis data 2013 Teknik Informatika UIN malang

codeoke.blogspot.com/2012/12/sub-query-mysql.html 

http://risnotes.com/2011/12/subqueries/