Wednesday, 27 November 2013

83. Information Hiding, Algorithms, Data Structures, dan Error Handling pada PL-SQL

1.    Information Hiding

Dengan information hiding, kita hanya melihat detil yang relevan pada suatu level desain algoritma dan struktur data. Information hiding menjaga keputusan desain high-level tetap terpisah dengan detil desain low-level, yang mana lebih sering untuk diubah.

2.  Algorithms

Kita menerapkan information hiding untuk algoritma melalui top-down design. Sekali kita mendefinisikan spesifikasi tujuan dan antarmuka dari low-level procedure, kita dapat mengabaikan detil-detil implementasi. Mereka disembunyikan pada level-level yang lebih tinggi. Sebagai contoh, implementasi dari procedure dengan nama raise_salary disembunyikan. Seluruh yang perlu kita ketahui adalah procedure akan menambah gaji karyawan dengan nilai tertentu. Perubahan-perubahan terhadap definisi raise_salary adalah jelas untuk aplikasi-aplikasi yang memanggilnya.

  
        3. Data Structures

Kita menerapkan information hiding untuk data structures melalui data encapsulation. Dengan membagun kumpulan dari subprogram-subprogram utility untuk struktur data, kita mengisolasinya dari user-user dan developer-developer yang lain. Dengan cara itu, para developer mengetahui bagaimana menggunakan subprogram-subprogram yang mengoperasikan data structure namun tidak mengetahui bagaimana struktur tersebut direpresentasikan.
Dengan package-package PL/SQL, kita dapat menentukan apakah subprogram-subprogram bersifat public atau private. Sehingga, package menjalankan data encapsulation dengan membiarkan kita meletakkan definisi subprogram di dalam kotak hitam. Definisi private adalah tersembunyi dan tidak dapat diakses. Hanya package, bukannya aplikasi kita, yang terpengaruh jika definisi tersebut berubah. Hal ini menyederhanakan pemeliharaan dan pengembangannya.

        4. Error Handling

PL/SQL membuatnya mudah untuk mendeteksi dan memproses kondisi-kondisi yang telah didefinisikan terlebih dahulu atau yang didefinisikan oleh user, yang dinamakan denganexceptions. Ketika error muncul, exception akan ditampilkan. Sehingga, eksekusi normal akan menghentikan dan mengontrol transfer ke bagian exception-handling (penanganan kesalahan) dari blok atau subprogram PL/SQL kita. Untuk menangani exception yang muncul, kita menulis rutin terpisah yang dinamakan dengan exception handlers.
Eksepsi-eksepsi yang telah didefinisikan sebelumnya tampil secara implisit bersamaan dengan berjalannya sistem. Sebagai contoh, jika kita berusaha membagi sebuah angka dengan nol, PL/SQL akan memunculkan predefined exception ZERO_DEVIDE secara otomatis. Kita harus menampilkan eksepsi yang kita definisikan (user-defined exceptions) secara eksplisit dengan perintah RAISE.
Kita dapat mendefinisikan exceptions kita sendiri pada bagian declarative dari setiap blok PL/SQL atau subprogram. Di dalam bagian executable, kita mengecek kondisi yang membutuhkan perhatian khusus. Jika kita menemukan bahwa kondisi tersebut ada, kita mengeksekusi perintah RAISE. Pada contoh berikut ini, kita menghitung bonus yang diperoleh oleh tenaga penjualan. Bonus tersebut berdasarkan gaji dan komisi. Sehingga, jika komisi tersebut adlaah null, kita menampilkan eksepsi comm_missing.
DECLARE
...
comm_missing EXCEPTION; -- mendeklarasikan exception
BEGIN
...
IF commission IS NULL THEN
RAISE comm_missing; -- memunculkan exception
END IF;
bonus := (salary * 0.10) + (commission * 0.15);
EXCEPTION
WHEN comm_missing THEN ... -- memproses the exception

No comments:

Post a Comment