Procedure
Membuat procedure
Procedure Tanpa Parameter Pembuatan procedure yang bersifat statis (tetap), artinya hasil yang diberikan selalu bernilai sama.
Contoh Buat procedure untuk menghitung luas segitiga! Panjang alas = 3, tinggi = 6.
Prosedure dengan Parameter Jenis-jenis parameter: Parameter Masukan Parameter Keluaran Parameter Masukan/Keluaran
1. Parameter Masukan Artinya: parameter yang dideklarasikan bertindak sebagai masukan (input) di dalam badan procedure. Pada saat pemanggilan procedure, nilai yang bertindak sebagai parameter aktual akan dikirimkan ke dalam badan prosedure untuk dilakukan pemrosesan. Parameter masukan ditandai dengan kata IN
Contoh 1 Buat procedure yang dapat menambahkan sebuah bilangan bulat dengan nilai 2!
Contoh 2 Buat procedur untuk menentukan sebuah bilangan bulat apakah merupakan bilangan prima atau bukan! Jadikan bilangan bulat yang akan diperiksa tersebut sebagai parameter masukan.
Code create or replace procedure cek_prima (bil IN INTEGER) AS prima BOOLEAN:=true; j INTEGER; begin IF bil <=1 THEN prima:=false; END IF; FOR j IN 2..(bil/2) LOOP dbms_output.put_line(j); IF MOD (bil,2) = 0 THEN EXIT; END LOOP; IF prima THEN dbms_output.put_line(bil || 'Prima'); ELSE dbms_output.put_line(bil || 'Bukan Prima'); END; /
2. Parameter Keluaran Berfungsi menampung hasil pelaksanaan suatu procedure. Parameter aktual dari parameter yang bertipe keluaran ini akan berbentuk variabel, bukan berbentuk nilai. Parameter yang berjenis keluaran ini akan diikuti oleh kata OUT.
Contoh 1 Buatlah procedure yang mempunyai dua buah parameter, satu parameter masukan dan satu lagi parameter keluaran! Procedure tersebut akan digunakan untuk menjumlahkan sebuah bilangan bulat yang didefinisikan sebagai parameter masukan dengan nilai 10. Sebagai penjelas bahwa bilangan bulat yang dimaksud adalah bilangan yang dimasukkan memalui parameter masukan.
Untuk menggunakan procedure tambah10 maka harus membuat blok PL/SQL yang mendeklarasikan sebuah variabel yang bertipe sama dengan tipe parameter keluaran yang terdapat pada procedure tambah10, dalam hal ini tipenya adalah INTEGER.
Penjelasan: Syntax tersebut menunjukkan bahwa kita mendeklarasikan sebuah variabel dengan nama hasil yang bertipe sama dengan tipe parameter keluaran dari procedure tambah10. Kemudian pada blok PL/SQL tersebut memanggil procedure tambah10 dan mengisikan parameter aktualnya dengan nilai 5 dan hasil. Bilangan 5 tersebut adalah bilangan yang akan diproses (ditambah 10) dalam badan procedure, setelah ditambah dengan 10, hasil penjumlahan tersebut disimpan ke dalam variabel penampung yaitu variabel hasil. Sampai disini variabel hasil telah bernilai 15 (hasil penjumlahan 5 + 10).
Contoh 2 Hitunglah luas suatu segitiga dengan menggunakan procedure dimana alas dan tinggi segitiga tersebut dijadikan sebagai parameter masukan serta luasnya dijadikan sebagai parameter keluaran!
3. Parameter Masukan/Keluaran Adalah gabungan dari tipe parameter masukan dan parameter keluaran. Artinya selain berfungsi sebagai masukan (input), parameter masukan/keluaran ini juga digunakan sebagai keluaran (output). Parameter yang berjenis masukan/keluaran ini ditandai dengan kata IN OUT.
Contoh 1 Buatlah procedure yang dapat menjumlahkan sebuah bilangan bulat dengan nilai 10 dimana di dalamnya menggunakan parameter masukan/keluaran!
Contoh 2 Buatlah sebuah procedure yang dapat menentukan keliling lingkaran dengan menggunakan parameter masukan/keluaran dimana jari-jari lingkaran diperlakukan sebagai masukan dan keluarannya adalah keliling lingkaran! catatan: rumus keliling lingkaran adalah K = 2r, dimana = 3,14
Penjelasan Pada syntax tersebut tampak bahwa parameter yang terdapat pada procedure kell_lingkaran bertipe masukan/keluaran. Terlihat bahwa variabel BIL sebelumnya bernilai 4, nilai inilah yang dijadikan sebagai jari-jari dan berfungsi sebagai masukan dalam procedure di atas, variabel BIL yang tadinya bernilai 4 akan diproses dan hasil prosesnya akan dikembalikan lagi ke variabel BIL sehingga sekarang nilainya berubah menjadi 25.
Procedure dengan cursor create or replace procedure tampil_ujicoba3 as n ujicoba.nim%type; na ujicoba.nama%type; cursor cur_ujicoba is select nim,nama from ujicoba ; begin open cur_ujicoba; dbms_output.put_line ('Nim Nama'); loop fetch cur_ujicoba into n,na; exit when cur_ujicoba%NOTFOUND; dbms_output.put_line (n || ' ' ||na); end loop; close cur_ujicoba; end; /