Minggu, 22 Desember 2013

Package
Banyaknya procedure dan/atau function pada suatu aplikasi memungkinkan procedure dan/atau function tersebut untuk sulit diatur bila tidak menggunakan package. Package adalah kumpulan dari procedure dan/atau function. Tujuan utama digunakannya package adalah untuk mengelompokkan program – program unit ke dalam kelompok yang lebih umum atau se-tipe agar lebih mudah untuk mengaturnya. Secara garis beris besar, struktur package dibagi menjadi dua bagian yaitu package specification dan package body. Berikut adalah contoh package specification dan package body.

Contoh package pertama di atas bernama ‘comm_pkg’ adalah package specification dengan kode deklarasi ‘CREATE OR REPLACE PACKAGE <nama package>’. ‘v_std_comm’ adalah variabel bertipe number dengan nilai 0.10, sedangkan ‘reset_comm’ adalah procedure. Contoh kedua adalah package body dari package bernama ‘comm_pkg’, dengan kode deklarasi ‘CREATE OR REPLACE PACKAGE BODY <nama package>’. Package body dengan isi satu function bernama ‘validate’ dan satu procedure bernama ‘reset_comm’.
Selain bertujuan untuk mempermudah dalam mengatur procedure dan/atau functions, package juga berfungsi untuk menyembunyikan koding yang berada pada package body, dan hanya koding pada package specification yang terlihat dan bisa terakses oleh aplikasi. Berikut adalah bagan mengenai status dari package specification dan package body.
Seperti yang terlihat pada bagan di atas bahwa, package specification berstatus public, sedangkan package body berstatus private. Status tersebutlah yang menentukan mana yang terlihat dan mana yang tersembunyi. Terlihat dan tidaknya bisa dilihat pada bagan sebelah kanan. Koding eksternal hanya bisa mengakses package specification, bisa lewat ‘public_var’ dan/atau lewat ‘Procedure A’. ‘private_var’ bisa diakses oleh ‘Procedure A’ dan ‘Procedure B’ (dalam satu package body), sedangkan ‘local_var’ hanya bisa diakses oleh ‘Procedure A’ (dalam satu procedure lokal).
Dari contoh package bernama ‘comm_pkg’ di atas, cara memanggil package adalah ‘comm_pkg.reset_comm(0.15)’ atau ‘<nama package>.<nama objek di dalam package>(nilai yang dimasukkan)’.

Alur bila contoh ‘comm_pkg.reset_comm(0.15)’ dieksekusi adalah nilai eksternal (0.15) yang dimasukkan akan masuk ke dalam package bernama ‘comm_pkg’ pada procedure yang bernama ‘reset_comm’. Setelah itu, nilai tersebut akan diproses oleh procedure tersebut di dalam package body (lewat parameter ‘p_new_comm’). Di dalam procedure ‘reset_comm’ terdapat function yang dieksekusi bernama ‘validate’ yang berada dalam satu package body. Nilai pada parameter ‘p_new_comm’ dimasukkan ke dalam function lewat parameter ‘p_comm’. Function tersebut akan mengembalikan nilai bertipe Boolean, apakah benar (true) nilai yang dimasukkan lewat parameter ‘p_comm’ antara 0.0 sampai maksimum ‘commission_pct’ semua karyawan, yang akan melewati kondisi IF pada procedure. Kondisi pada procedure tersebut adalah, jika benar maka variabel pada package specification yang bernilai awal (0.10) isi dengan variabel inputan yang bernama ‘p_new_comm’, jika salah maka keluarkan pesan error.

Tidak ada komentar:

Posting Komentar

Receive All Free Updates Via Facebook.