STORE PROCEDURE DAN FUNCTION


A. MAKSUD DAN TUJUAN
• MAKSUD
Modul ini membahas tentang uatu bahasa prosedural Mysql untuk keperluan pengaksean data lebih lanjut. Penggunaan bahsa ini memungkinkan untuk operasi tye rtuentu terhadap basis data sehingga kondisi pengaksesan data yang komplek bisa ditangani.
• TUJUAN
1. Mahasiswa dapat memahami pengertian Stored Prosedure.
2. Mahsiswa dapat memahami arti serta fungsi dari PL/SQL.
3. Mehasiswa dapat memahami cara membuat fungsi PL/SQL dan menjalankan fungsi tersebut.
4. Mahasiswa memahami perintah-perintah dasar PL/SQL.

B. DASAR TEORI
Stored Prosedure(SP) adalah bahasa pemrograman yang bisa disimpan pada suatu basis deata sehinggan memungkinkan pengolahan terhadap basis data tersebut secara langsung untuk operasi-eporasi yang lebih kompleks. Keuntungan dari (SP) antara lain :
1. Proses lebih cepat karena dilakukan oleh dbms (precompilation) sehingga mengurangi lalulintas data.
2. Adanya pemisahan antara database access logic dengan aplikasi logic, sehingga program aplikasi menjadi lebih sederhana dan ringkas.
3. Berupa obyek dalam database, sehingga menghilangakn ketergantungan terhadap bahasa program yang digunakan.
4. Bersifat portable, jikaSP bisa berjalan dalam dbms tersebut, maka dapat dipastikan juga bisa berjalan pada data base lainnya.
Secara default, MySQL dan berbagai software DBMS lainnya menggunakan perintah SQL untukk definisi maupun pengolahan data. Meskipun bersifat lintas platform tetapi masalah muncul karena SQL hanya biasa dilakuaka secara individual, akibatnya proses untuk akses dan pengolahan data sering dilakuakn oleh bahasa lainya.
Bentuk umum untuk membuat sintaks :
• Store Prosedure
CREATE PROSEDURE sp_name ( [proc_parameter[,…]] )
[characterristic ..]
Routine_body
• Function
CREATE PROSEDURE f_name ( [func_name[,…]] )
RETURNS type
[characterristic ..]
Routine_body
• Proc_parameter:
[IN | OUT | INOUT ] param_name type
• Func_name:
Param_name type
• Type:
Semua tipe data yang valid di MySQL

ROUTINE BODY:
Statement SQL proceduer yang valid
Secara defaoult, routine dengan default database. Untuk ber-asosiasi secara eksplisit dengan database yang diberikan secara spesifik diberi nama db_name.sp_name pada saat membuat routine. Jika tidak ada parameter hanya valid untuk IN parameter sebagai default. IN, OUT, INOUT parameter hanya valid untuk procedure, sedangkan function hanya IN parameter saja.

RETURN type hanya berlaku untuk function.
RETURN_BODY berisi statement SQL yang valid. Dapat berisi steatement sederhana, seperti select atau insert atau berisi gabungan beberapa statement yang dapat dituliskan menggunakan perintah BEGIN…END.
 Sintaks untuk mengubah
Untuk mengubah store procedure atau function, maka store atau function yang sudah dibuat harus dihapus dulu, Kemudian kita buat baru.

 Sintaks untuk menghapus
DROP{PROCEDURE | FUNCTION } [ IF EXIST ] sp_name;
Contoh:
Drop procedure spDafMhs;

 Sintaks unttuk memanggil:
Call sp_name;
Contoh:
Call spDafMhs();

 Sintaks untuk melihat daftar/list fungsi dan prosedur:
SHOW CREATE {PROCEDURE | FUNCTION} sp_name;
Contoh:
Show create procedure spDafMhs;

C. PEMBAHASAN
Dalam modul 5 ini kita membuat sebuah basisdata tentang daftar mahasiswa, kita menggunakan modul 2 kemarin untuk melakukan praktek model ter sebut.
Pertama kita memanggil data tersebut dengan cara mysql> use model2; maka kita akan melihat sturtur tabel tersebut seperti yang di listing.
Dengan perintah,
mysql> create procedure dafmhs jurusan ( )
-> select nim, nama, j.jurusan
-> from mahasiswa m, jurusan j
-> where m. Jurusan = j.jurusan;
Maka akan membuat sebuah tabel dengan ranacangan tersebut, maka untuk melihat tabelnya kita biasa melakukan perintah dengan cara mysql> call dafmhs jurusan; maka akan muncul sebuah tabel sbb:
+——————+———–+———+
| nama | nim | jurusan |
+——————+———–+———+
| Ratna Juita | 053110020 | MI |
| Rahmawati | 053110021 | MI |
| Donny Putra | 053110022 | MI |
| Martadinata | 053120030 | TK |
| Rahmanto | 053120031 | TK |
| Firna Rahmadhani | 053130040 | KA |
| Muliawati | 053110041 | KA |
| Joko Raharjo | 055410001 | KA |
| Lilis Karlina | 055410002 | TI |
| Mila Karmila | 055610010 | SI |
| Deny Afrianto | 055610011 | SI |
| Dinda Herdian | 055610002 | SI |
+——————+———–+———+
12 rows in set (0.00 sec)
Untuk memanggil daftar mahasiswa dengan jurusan SI saja kita bisa panggil dengan perintah mysql> call_sp jurusan (‘SI’); perintah ini berfungsi untul memnaggil nim, nama, jurusan Si saja. Jika kita inginkan untuk memanggil jurusan lain kita bisa lakukan dengan mengganti jurusan pada perintah itu.

Kita juga bisa memanggil jumlah mahasiswanya saja dengan perintah sbb:
mysql> create procedure sp_jummhs (out jum int)
– > select count( * ) into jum from mahasiswa;
mysql- > call_jummhs (@jumlah);
lalu langkah terakhir adalah mysql> select @jumlah; maka hasilnya sbb:
+————+
| @jumlah |
+————+
| 12 |
+————+

D. KESIMPULAN
Modul ini membahas tentang uatu bahasa prosedural Mysql untuk keperluan pengaksean data lebih lanjut. Penggunaan bahsa ini memungkinkan untuk operasi tye rtuentu terhadap basis data sehingga kondisi pengaksesan data yang komplek bisa ditangani. Sehinga mahasiswa dapat memahami pengertian Stored Prosedur, memahami arti serta fungsi dari PL/SQL, memahami cara membuat fungsi PL/SQL dan menjalankan fungsi tersebut, memahami perintah-perintah dasar PL/SQL.

MODUL 6
PENGGUNAAN SUB QUERY

A. MAKSUD DAN TUJUAN
• MAKSUD
Mengenalkan kepada mahasiswa untuk menggunakan Query dalam pembuatan basisdata.
• TUJUAN
Mahasiswa dapat menggunakan subQuery.

B. DASAR TEORI
Sub query berarti didalam query, denga menggunakan sub Query hailnya daru query akan menjadi bagian dari query diatasnya. subquery terletak di dalam clause where atau having. Pada clausa where subquery digunakan untuk memilih baris-baris tertentu, yang kemudian oleh query, sedangkan p[ada clausa having subquery digunakan oleh query.
Sintak subquery.
Select
From tabel_1
Where IN
(Select
From tabel_2)
Pada sintak diatas
Select
From tabel_1
Disebut query sedangkan
Select
From Tabel_2
Disebut query

Operator exist digunakan untuk memeriksa keberadaan baris yang dihasilkan query terhadap yang dihasilkan oleh subquery. Operator exist menhasilakan baris yang sesuai dengan yang dihasilkan, berikut ini sintaksnya
Select
From tabel_1
Where exist
(select
From tabel_2
Where
Operator all digunakan untuk melakukan dengan subquery. Kondisi dengan all menghasilkan nilai true (benar) jika subquery tidak menghasilkan apapun atau jika pembandingan menghasilkan true untuk setiap nilai query terhadap subquery.

C. PEMBAHASAN
Dalam modul 6 ini kita membuat data base tentang pelanggan, karena kita membuat tebel tersebut dari loca host maka kita langsung membahas tentang prakteknya.
Untuk menampikan tabel pelanggan, biaya dan pemesanan kita deapa lakukan dengan perintah
mysql> use modul6;
Database changed
mysql> select * from_tabel;

 maka kita dapat melihat tampilan data tersebut seperti yang ada delisting praktikum.
Kita selanjutnya menampilkan data bpelanggan yang memesan dan alamatnya dengan cara, kita menuliskan perintah select, maka akan munculah table dengan nama dan alamat yang telah kita buat sebelumnya, perintah lengkapnya sbb:
mysql> select nama, alamat from pelanggan where kd_pelanggan in (select kd_pelan
ggan from pemesanan);
+——-+————-+
| nama | alamat |
+——-+————-+
| Risma | Jl.Jeruk |
| Dudik | Jl.Magelang |
+——-+————-+
2 rows in set (0.03 sec)

 Selanjutnya kita menampilkan table atau data yang berisi tentang tanggal pesan, kode pesan dan pemesanan >500000. sintaks lengkapnya sbb:
mysql> select kd_pesan, tgl_pesan from pemesanan where total>500000;

saat kita menampilkan tanggal pesan dari table pemesanan kita dapat menuliskan perintah sbb :
mysql> select kd_pesan, tgl_pesan from pemesanan order by(total) desc limit 1;
kita juga bisa mengubah format tanggalnya dengan cara sbb :
mysql> select kd_pesan, date_format(tgl_pesan,’%e %b %y’) from pemesanan

 dalam praktek ini kita juga mencoba mempraktekkan dengan menggunakan Union untuk menampilkan informasi total jumlah pemesanan dari table pelanggan dengan cara sbb:
mysql> select kd_pelanggan, nama as informasi from pelanggan where kd_pelanggan=
‘P04′
-> union
-> select kd_pelanggan, total as informasi from pemesanan where kd_pelanggan
=’P04’;
+————–+———–+
| kd_pelanggan | informasi |
+————–+———–+
| P04 | Risma |
| P04 | 5000000 |
| P04 | 12500000 |
| P04 | 1000000 |
+————–+———–+

 Lalu kita mempraktekkan untuk melihat umur pemesanan dalam table pesan.
mysql> select (to_days(now())-to_days(tgl_pesan))/365 as umur from pemesanan;
+——–+
| umur |
+——–+
| 0.3644 |
| 1.4466 |
| 0.2795 |
| 0.5315 |
+——–+
4 rows in set (0.06 sec)

D. KESIMPULAN
Dalam model 6 ini kita membahas tentang pengguanaan subquery, maka kita dapat membuat database dengan query dan cara penggunaan query.

~ oleh 12puby pada 15 Desember 2009.

2 Tanggapan to “STORE PROCEDURE DAN FUNCTION”

  1. Fungsi StoreProcedure dalam database itu apa?
    trims sebelumnya . .

    • Dalam pemrograman Database, sudah barang tentu yang namanya Stored Procedure bukan merupakan barang asing yang terdengar ditelinga. Stored Procedure adalah sebuah koleksi dari kumpulan perintah – perintah sql yang diberi sebuah pengenal berupa nama yang disimpan di dalam database. Bagi client, stored procedure tak ubahnya sebuah fungsi yang dapat dieksekusi. stored procedure dipanggil melalui namanya, dapat menerima parameter nilai yang dipassing kepadanya, serta dapat juga mengembalikan nilai parameter kembali ke client.

      ada banyak keuntungan yang bisa didapatkan dari sebuah stored procedure yang diterapkan dalam aplikasi anda, diantaranya:

      *
      Kita dapat sharing logik aplikasi diantara beberapa aplikasi client yang beragam.
      *
      Eksekusi yang lebih cepat.
      *
      Dapat mengurangi trafik jaringan.
      *
      Meningkatkan keamanan database.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: