Proteksi Kode Oracle PL/SQL dengan Fitur Wrap
Oracle Database memiliki bahasa pemrograman PL/SQL yang digunakan untuk memperluas kemampuan dan fleksibilitas database melalui berbagai trigger, fungsi, dan stored procedure. Agar source code (kode sumber) PL/SQL tidak terlihat oleh orang lain, Oracle Database memiliki fitur wrap sehingga cara kerja trigger, fungsi, atau stored procedure yang dibuat dengan bahasa pemrograman PL/SQL tidak bisa diketahui atau dipelajari oleh orang lain.
Dengan bantuan tool Oracle SQL Developer, kita bisa membuat berbagai obyek database dengan lebih cepat, mudah, dan nyaman. Oracle SQL Developer versi terbaru saat ini yaitu 4.1.5 bisa diunduh secara gratis dari:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
Sebagai contoh, kita bisa membuat sebuah fungsi PL/SQL yang sederhana untuk menghitung pajak seperti berikut melalui Oracle SQL Developer:
CREATE OR REPLACE FUNCTION HITUNG_PAJAK (NILAI IN NUMBER)
RETURN NUMBER AS
HASIL NUMBER;
BEGIN
HASIL := NILAI * 0.1;
RETURN HASIL;
END HITUNG_PAJAK;
Untuk menyembunyikan kode sumber fungsi HITUNG_PAJAK dengan fitur wrap di Oracle Database, pertama script kode sumber perlu disimpan sebagai file agar kita memiliki master kode sumber asli dari fungsi tersebut sehingga masih bisa diedit lagi bila perlu. Cara membuat file scriptnya adalah dengan melakukan klik kanan pada nama fungsi tersebut dan memilih “Quick DDL” kemudian “Save to File…” seperti berikut:
Setelah menyimpan file script fungsi tersebut, misalnya ke “C:\script\hitung_pajak.sql”, bukalah Command Prompt (perintah “cmd”) di Windows. Melalui Command Prompt, gunakan perintah “cd” untuk berpindah ke folder dimana file “hitung_pajak.sql” berada dan kemudian jalankan perintah “wrap iname=hitung_pajak.sql” yang akan menghasilkan file baru bernama “hitung_pajak.plb”. File baru ini berisikan kode fungsi yang sudah di-wrap dan tidak bisa dibaca lagi kode sumbernya. Perintah “wrap” merupakan tool bawaan dari Oracle Database. Berikut adalah hasil eksekusinya:
Untuk mengganti fungsi HITUNG_PAJAK yang masih terlihat kode sumbernya dengan kode wrap yang ada di file “hitung_pajak.plb”, maka tool SQL*Plus bawaan Oracle Database bisa digunakan untuk menjalankan file script “hitung_pajak.plb”. Format perintah adalah “sqlplus username/password @scriptfile”. Berikut adalah contoh perintah untuk menjalankan file script “hitung_pajak.plb” sebagai user “scott” dengan password “tiger”:
Bila kita melihat kembali fungsi HITUNG_PAJAK melalui Oracle SQL Developer, hasilnya menjadi seperti berikut:
Perhatikan bahwa kode sumber fungsi tersebut sudah tidak bisa dibaca lagi, namun masih tetap bisa jalan seperti biasa di Oracle Database. Dengan demikian, kita mampu melakukan proteksi terhadap kode PL/SQL yang kita buat dengan memanfaatkan fitur wrap di Oracle Database sehingga kode sumbernya tidak bisa dibaca dan dipelajari oleh orang lain.
Selamat mencoba!
Andrian The
Instruktur Senior