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