FUNGSI, PL/PGSQL dan TRIGER

Penah denger gak PL/PgSQL??
keliahatannya rumit ya, dari tulisannya aja kayaknya susah, apalagi kodingnya,..
jawabannya coba kita simak teori berikut, lalu kita praktekin memakai PostgreSQL .


A. Landasan Teori

FUNGSI
Fungsi SQL adalah sebuah kumpulan query,  biasanya  query yang detail dan panjang  yang dibungkus menjadi satu dan disimpan dalam  database  dan kemudian apabila diperlukan hanya tinggal mengaksesnya tanpa mengetikan query detail
Ada beberapa konsep yang menarik dari fungsi antara lain:
·         Bahasa yang dip  akai dapat didefenisikan sendiri dengan tersedianya parameter LANGUAGE, tanpa harus mengkompilasi ulang PostgreSQL.
·         Kita dapat membuat dua buah fungsi dengan nama yang sama namun parameter masukkannya yang berbeda, baik tipe data maupun jumlahnya.

Selain itu ada beberapa faktor yang perlu diperhatikan dalam membuat fungsi antara lain:
·         Nama Fungsi
·         Nomor dari fungsi argument
·         Tipe data dari setiap argument
·         Tipe dari hasil fungsi
·         Fungsi action
·         Bahasa yang digunakan oleh fungsi action.


PL/SQL
1.      PL merupakan kependekan dari Procedural Language. PL/SQL mengkombinasikan kekuatan dan kefleksibilitasan SQL dengan pemrograman prosedural.

2.      PL/PGSQL merupakan bahasa yang lain untuk membuat sebuah fungsi, biasanya bahasa  ini digunakan untuk menangani fungsi yang lebih kompleks. Pl/pgsql sudah terdapat dalam  instalasi PostgreSQL, namun kita perlu mendaftarkannya pada masing-masing database  yang akan menggunakannya. Untuk itu kita perlu menginstal pl/pgsql pada database yang diinginkan.

Ada beberapa faktor yang harus diperhatikan pada bahasa ini antara lain :

·         DECLARE mendeklarasikan variabel yang digunakan dalam fungsi
·         SELECT INTO sebuah form spesial (khusus) dari SELECT yang memperbolehkan hasil
·         query menempati ke dalam variabel.
·         RETURN Exit dan merupakan hasil value dari fungsi

Keistimewaan
  Programmer dapat mendeklarasikan variable untuk digunakan selama pemrosesan statement.
  Programmer dapat menggunakan penanganan kesalahan untuk mencegah kegagalan program.
  Programmer dapat menulis program yang interaktif yang menerima input dari user.
  Programmer dapat membagi fungsi-fungsi ke dalam blok-blok lojik dari kode. Teknik pemrograman secara modular ini mendukung fleksibilitas selama pengembangan aplikasi.
 Statement SQL dapat diproses secara simultan untuk performansi keseluruhan yang lebih baik.

Sama seperti bahasa prosedural yang lain, PL/SQL juga menyediakan :
Variabel, Konstanta, dan Tipe Data
Conditional Statement dan Looping.

Variable
Sama seperti bahasa Prosedural lainya, dalam blok PL/SQL kita juga dapat mendeklarasikan Variabel dan Konstanta. Variabel dideklarasi dan diinisialisasi pada bagian DECLARE

Kegunaan Variabel :
  Sebagai Tempat Penyimpanan Data Sementara
  Dapat dipakai berulang kali
  Memanipulasi Nilai Yang Telah Tersimpan Dalam Database

Identifier
Dalam membuat sebuah variabel, terlebih dahulu kita tentukan Identifier nya, dimana salah satu kegunaan Identifier adalah Sebagai Nama dari suatu variabel.

Dalam memberikan penamaan variabel, terdapat aturan yang harus kita patuhi yaitu:
·         Tidak diawali dengan angka dan harus diawali dengan huruf
·         Dapat memuat Angka
·         Dapat memuat karakter spesial seperti _ , $ , dan #
·         Terbatas hanya 30 karakter
·         Bukan Kata kunci (int, varchar, table, trigger) dalam Oracle Server

Konstanta
Digunakan untuk menyimpan sebuah nilai di memori komputer. Nilai yang disimpan bersifat tetap (konstan). Nilai ditentukan pada saat deklarasi dibuat sehingga nilainya tetap pada saat program dieksekusikan.

Tipe Data dalam PL/SQL
Tipe data utama dalam PL / SQL termasuk NOMOR, INTEGER, CHAR, VARCHAR2, DATE, TIMESTAMP, dll TEKS. Selain tipe data yang ada di Oracle SQL, PL/SQL menyediakan beberapa tambahan tipe data yang dapat dideklarasikan sebagai berikut:




ini adalah contoh koding:


B. Latihan 
(PostgreSQL)
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 !
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.
membuat colom modifikasi data:
 
     cek!
    tambah nama mahasiswa :

(MySQL)
            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 !


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.
membuat colom modifikasi data:







C. Perbandingan PostgreSQL dan Mysql
Dalam praktek praktikum saya menggunakan PostgreSQL untuk mempraktekkan modul yang telah di berikan. jadi PostgreSQL : serasa lebih mudah di banding MySQL yang harus belajar otodidak yang membuat bingung ketika Error menyerang hehe...

D. Kesimpulan
Nah gimana sobat-sobat bloger??
sekarang dapat kita ketahui bahwa PL/SQL dapat dibagi menjadi tiga, yaitu: prosedur, fungsi, trigger. dan dari hasil percobaan di atas saya dapat simpulkan bahwa prosedur dan fungsi bekerja berdasarkan eksekusi langsung dari kita (user), sedangkan trigger kerjanya dapat secara otomatis bila terjadi aktivasi insert, update, atau pun delete data.

untuk penggunaan PL/PGSQL hanya dapat di gunakan dalam database PostgreSQL, jika menguunakan database MySQL maka akan banyak Error-Error yang bertebaran seperti hasil latihan diatas.

E. Kritik dan Saran
Ya sepertinya kalau gak sering-sering ngoding design basis data kayak gini, mungkin bakalan bener-bener gak akan paham maksud  dari coding-coding Fungsi,PL/PGSQL dan juga Trigger.
ya sepertinya benar kata pepatah "bisa karna terbiasa".

Jadi sobat-sobat blogger harus sering-sering latihan ya, agar lebih mudah memahami coding,. oke oke :D

Daftar Pustaka
modul praktikum
http://www.postgresql.org/docs/8.3/static/plpgsql.html
http://www.postgresql.org/docs/9.1/static/plpgsql.html

Komentar

Postingan populer dari blog ini

Pengertian Bahasa Lisan dan Tulis

Python Menghitung Jarak