Stored Procedure,Functions,Trigger

Posted: September 20, 2011 in Pemrograman Basis Data ( PBD )

NAMA/NIM  : Ony Prabowo / 10.41010.0211
Dosen             : Tan Amelia
Tugas              : Materi Stored Procedures, Functions dan Trigger pada SQL Server

Pada pertemuan kali ini kita diberi tugas yaitu membuat tulisan tentang :

  1. Stored Procedure
  2. Function
  3. Trigger

Nah ,kita langsung saja ke TKP :D.

  1.       Stored procedure

Yang pertama kita akan membahas tetang apa yang dimaksud dengan stored procedure! Sotred procedure adalah suatu subprogram atau sekelompok statemen Transact-SQL,yang tersimpan dan menyatu dalam suatu database. Stored Procedure dibuat dalam SQL Servel,bukan di komputer client,dan akan menyatu dengan suatu database dalam server.

Tujuan utama Transact-SQL (T-SQL) ini adalah untuk menyediakan sekumpulan tool prosedural untuk pengembangan database transaksional.T-SQL dapat digunakan dalam berbagai cara di SQL Server client atau aplikasi server. Contoh :

  • T-SQL digunakan dalam ekspresi sebagai bagian dari perintah DML (insert,update,dan dalete) yang dikirimkan oleh proses klien
  • T-SQL digunakan dalam sebuah kumpulan kode yang dikirimkan ke SQL-Server dari klien sebagai batch atau script
  • Fungsi T-SQL digunakan juga dalam ekspresi dalam pemeriksaan constraint
  • Kode T-SQL digunakan dalam batch juga yang satu paket dalam SQL-SERVER sebagai Stored Procedure,fungsi atau trigger

Nah serpertinya setelah membaca penjelasan saya diatas anda pasti mempunyai 1 pertanyaan atau pendapat!!saya tebak apa sih sebenarnya stored procedure itu?ya dibilang sama lah dengan T-SQL tersebut,wong isisnya nanti adalah sekelompok statemen T-SQL itu. Nanti akan ada pembahasan tentang itu.

Stored procedure dapat diakses program aplikasi object-object tertentu pada program aplikasi masing-masing. Stored procedure tersimpan dalam database dalam bentuk kode yang sudah terkompilasi sehingga prosesnya menjadi lebih cepat

KEUNTUNGAN STORED PROCEDURE

  • Sebuah stored procedure dikompilasi dan leebih cepat dalam mengeksekusi batch atau query
  • Memproses data lewat stored procedure dilakukan pada server sehingga mengurangi intensitas lalu lintas  data network
  • Stored procedure menawarkan pemrograman modular hal ini karena sebuah stored procedure dapat memanggil stored precedure lain. Stored procedure juga mudah untuk dikembangkan dan diubah. Keuntungan yang timbul dari perubahan stored procedure adalah bila ada perubahan maka otomatis perubahan tersebut dapt langsung terasa pada semua user karena perubahan hanya dilakukan pada satu tempat saja yaitu SERVER.
  • Stored procedure bisa jadi adalah salah satu komponen penting dalam keamanan database. Jika semua akses user melalui strored procedure maka semua akses langsung ke tabel dan data dapat di kontrol.

Di SQL SERVER ada 2 macam stored procedure, yaitu :

  • Stored procedure yang sudah ada pada sistem
  • Stored procedure yang dibuat oleh user

Ok kita tidak perlu berlama-lama membahas teori!gag sabaran soale.hehehe

  1.     Membuat Stored Procedure

Stored proceduredapat dibuat pada komputer serever atau komputer client yang telah memiliki SQL Server. Membuat stored pricedure dapat dilakukan dengan beberapa cara,salah satunya dengan perintah query pada editor query.

Bentuk dasar penulisan pembuatan stored procedure seperti ini :

“ Create Procedure <namaStoredProcedure>

As <isiStoredProcedure>”

Nah,pada pembahasan kita kali ini kita memakai database yang diberikan dosen saya yaitu Bu Tan Amelia dengan nama database Northwind.

Sebelum itu kita harus masuk ke databasenya,berikut langkah-langkahnya :

  1. Pada object explorer,kembangkan database
  2. Pilih database northwind
  3. Lalu programability
  4. Lalu klik pada stored procedure
  5. Lalu pilih New Query pada kolom dibawahnya menu file,atau kalau bingung pilih file-new-query with current connection

Setelah selesai menjalankan perintah diatas,ketikan program seperti gambar dibawah ini,

Nah,skrip diatas adalah skrip default kita untuk membuat stored procedure.tapi kode diatas belum selesai karena kita belum membuat isinya,selanjutnya kita isikan seperti dibawah ini,

Nah,bila sukses akan muncul messages sukses…

Sekarang bagaimana caranya kita tahu bahwa stored procedure sudah kita buat??berikut langkah-langkahnya :

  1. Pilih database northwind
  2. Lalu programability
  3. Lalu klik pada stored procedure
  4. Klik kanan – REFRESH

Maka prosedure yang anda buat akan muncul seperti dibawah ini :

Perlu diperhatikan bahwa stored procedure akan tersim[an dalam suatu database.. Jika anda memberikan perintah create procedure maka stored procedure yang dibaut akan tersimpan pada database yang saat itu digunakan.(contohnya northwind tadi) jadi ini akan tersimpan di dalam database northwind.

  1. b.     Menjalankan Stored Procedure

Untuk menjalankan stored procedure dalam sql server,digunakan perintah “Execute” atau “Exec”. Contohnya seperti ini : “ Execute <namaStoredProcedure>”

Nah,aplikasinya sebagai berikut :

Nah hasilnya akan terlihat seperti gambar diatas.

  1. c.      Mengedit Stored Procedure

 

Untuk mengedit Stored Procedure ,kita dapat menggunakan perintah “Alter Procedure” yang formatnya sama dengan Create Procedure. Jangan lupa setelah itu kita eksekusi lagi.

Berikut aplikasinya,

Hasilnya berbeda bukan dari yang pertama!?

  1. d.     Menghapus Stored Procedure

Penulisannya untuk menghapus Stored Procedure seperti ini ,

“ Drop Procedure <namaProcedure>”

Berikut aplikasinya,

Untuk mengetahui hasilnya kita bisa merefresh stored procedure kembali,

Lihat gambar diatas,hilang bukan.

  1. 2.    FUNCTION (UDF)

Secara garis besar ,

  • Function adalah sebuah prosedur yang bisa kita definisikan dengan perintah CREATE  FUNCTION.
  • Bahasa yang digunakan untuk mendefinisikan function dapat ditentukan pada parameter LANGUAGE.
  • Dua buah fungction dapat memiliki nama yang sama tapi dengan parameter yang berbeda baik tipe data maupun jumlahnya.

Secara umum penulisan function mempunyai format berikut :

“ create  function [nm_schema]nm_fungsi

[({@param}tp_dt1[=default]) {,…}

Returns {tipe_scalar | [@variabel] table}

[with {encription | schemabinding}

[as]{blok | return (statement_select)}”

Kata kunci RETURNS mendefinisikan tipe data yang akan menampung hasil atau nilai yang akan dikembalikan oleh fungsi ke sistem. Sedangkan Return akan mengembalikan hasil kerja fungsi kepada sistem. Statement-satement berikut bisa kita gunakan dalam function :

  • Set
  • While
  • If
  • Deeclare
  • Select
  • Insert
  • Update
  • Delete

Ada 3 kategori dalam function,yaitu :

  • Sourced UDFs
  • SQL UDFs
  • External UDFs

Sourced UDFs

Function yang terdaftar untuk database yang fungsinya memudahkan membuat reference ke function lain

SQL UDFs

Function yang ditulis sesuai prosedur bahasa sql

External UDFs

Perbedaan antara Stored Procedure dan function adalah bila stored procedure tidak mengembalikan nilai,sedangkan function  harus mengembalikan nilai.

  1. 3.    TRIGGER

Trigger adalah sebuah mekanisme kerja yang dipangil ketika ada sebuah aksi yang terjadi pada sebuah tabel.Penamaan trigger tidak boleh melebihi 128 karakter. Aksi yang dapat dikenali trigger berupa statement DML seperti :

-          Insert

-          Update

-          Delete

Atau statement DDL. Nah, biasanya yang dieksekusi oleh trigger adalah stored procedure atau batch.

Suatu tabel dapat mempunyai beberapa trigger. Trigger sangat berguna karena dapat secara otomatis dilaksanakan diserver sehingga menyederhanakan pemrograman sekaligus menjaga konsistensi informasi dalam database.

KEUNTUNGAN TRIGGER

Keuntungan penggunaan trigger antara lain :

-          Standarisasi ( penyeragaman) proses karena trigger dibuat 1 kali dan tersimpan dalam database sehingga semua client yang menggunakan database tersebut sekaligus adalah pengguna trigger. Dengan demikian seluruh client akan menggunakan operasi yang sama terhadap suat proses dalam databse karena trigger yang dibakai adalah sama.

-          Menyederhanakan pemrograman karena 1 kali dibuat dalam database server maka seluruh program dalam bahasa apapun yang mengakses database tersebut akan otomatis menggunakan Trigger yang ada tanpa harus b=dibuat oerintahnya dalam program aplikasi

-          Mudah diperbarui karena jika di – update sekali dalam database server maka semua client akan menggunakan pembaruan yang terakhir

-          Kecepatan dan efisiensi proses karena trigger disimpan dalam server dalam kode yang sudah terkompilasi dan dilaksanakan dalam server sehingga lalu lintas jaringan menjadi berkurang

-          Memudahkan kerja tim karena jika trigger dan stored procedure sudah dibuat maka anggota tim kerja dapat menggunakan bahasa pemrograman yang berbeda dalam mengaksesnya , sebab trigger disimpan dan dilaksanakan oleh server tanpa melihat bahasa pemrograman apa yang dipak pengguna database.

Itu tadi keuntunggan trigger,sekarang kita langsung ke pembuatannya saja. Bagaimana penulisannya ? berikut formatnya seperti dibawah ini :

“ create trigger <namatrigger>

On <namatabeldatabase>

For<insert,update,delete>

As

<prosestrigger>”

Ok,kita langsung saja mainkan sql server kita. Berikut aplikasinya :

  1. Membuat trigger

Langkah-langkahnya adalah :

  1. Pilih database northwind
  2. Kembangkan tabel
  3. Pilih dan kembangkan tabel yang diinginkan
  4. Pilih trigger
  5. Klik kanan
  6. New trigger

Secara default akan tampil seperti ini:

Itu cara pertama! Ada cara kedua yang langsung menuliskannya di jendela query,seperti berikut:

-          Ini saya contohkan saja, kita akan membuat trigger bernama tambahorder pada tabel dbo.orders dalam databse northwind. Jika terjadi penambahan data(insert) dalam tabel orders maka trigger ini akan menambhkan 1 record baru pada tabel orders.subtotal. record baru ini akan di isi dengan orderID  yang baru saja ditambhkan ke dalam tabel order dan mengisi jumlah stok dengan angka 20.

Berikut kode programnya :

MENGUJI TRIGGER

Nah sekarang kita waktunya untuk menguji apakh trigger tersebut berhasil atau tidak. Berikut kode programnya :

MELIHAT HASIL

Sekarang kita melihat hasil dari skrip diatas,berikut :

Coba lihat gambar diatas,tabel order subtotal secara otomatis akan ditambahkan sendirinya

MENGHAPUS TRIGGER

Untuk menghapus trigger tidak perlu repot karena hanya sedikit skripnya,dan kurang lebih hampir sama dengan prosedure dan function

Drop Trigger <namatrigger>

silahkan klik link dibawah ini untuk mendownload versi pdfnya

download

daftar pustaka :

Komputer ,Wahana. 2010.SQL SERVER 2008 Express .Yogyakarta:Penerbit Andi.

J.Alam,Agus M.2005.Pemrograman Transact-SQL pada sql serveer2005.Jakarta:Penerbit Elex media komputindo

Comments
  1. Velika says:

    mau tanya, kalo cara memanggil Stored Procedure dari dalam Stored Procedure lain itu gmana yaaa? Memanggil SP di dalam select statement di dalam SP lain :D

    • osha1990 says:

      Sbb. iya jd klo untuk memanggilnya kalau di function kita kan memanggilnya seperti ini :
      “dbo.NamaFunction”
      kalau stored procedure langsung saja dipanggil namanya. diatas saya namakan “SirupAnis”
      ya di panggilnya SirupAnis juga :
      if SirupAnis > 0
      blaa…blaa..
      else
      bla..blaa

      *dgn catatan prosedure sirupanis berisi sebuah int/angka

  2. rhyma efendi says:

    terma kasih ilmunya. semoga bermanfaat dan menjadi amal baik Anda ^^

  3. Agassi says:

    bagus nih makasi gan

  4. sanny says:

    coly nih mw nanya klo misalnya stored procedure yg dibuat salah satu tipe datany merupakan int identity of,jd gimana cara eksekusi stored procedure

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s