PL/SQL Object Types
10.3. Mengapa Menggunakan Object TypeObject type menguranti kompleksitas dengan memecah sebuah sistem besar ke dalam entitas-entitas logikal. Hal ini membuat kita dapat menciptakan komponen-komponen software yang modular, dapat dipelihara (maintainable), dan dapat digunakan kembali (reusable). Hal ini juga memperbolehkan tim-tim dari programmer yang berbeda-beda untuk membangun komponen-komponen software secara berkesinambungan.
Dengan menggabungkan operasi-operasi dengan data, object types mengijinkan kita memindahkan kode pemeliharaan data keluar dari SQL scripts dan PL/SQL blocks ke dalam methods. Object types meminimalkan side effects dengan memperbolehkan akses terhadap data hanya melalui operasi-operasi yang diperbolehkan. Juga, object types menyembunyikan detil-detil implementasi, sehingga kita dapat mengubah detil-detil tanpa mempengaruhi program-program pada sisi client.
Object types menyediakan realistic data modeling. Entitas-entitas kompleks dan hubungan-hubungan di dunia nyata memetakan secara langsung ke object types. Selain itu, object types memetakan secara langsung ke dalam classes yang didefinisikan di dalam bahasa berorientasi objek seperti Java dan C++. Sekarang program-program kita dapat secara lebih baik merefleksikan dunia yang berusaha disimulasikannya.
10.4. Struktur dari Object Type
Seperti sebuah package, sebuah object type memiliki dua bagian: sebuah specification dan sebuah body (perhatikan Gambar 10-3). Specification (atau spec) merupakan antarmuka ke aplikasi-aplikasi kita; ia mendeklarasikan sebuah struktur data (kumpulan dari attributes) bersama dengan operasi-operasi (methods) yang diperlukan untuk memanipulasi data. Body secara penuh mendefinisikan methods tersebut, dan mengimplementasikan spec tersebut.

Gambar 10-3 Struktur Object Type
Di dalam sebuah object type spec, seluruh attributes harus dideklarasikan sebelum methods. Hanya subprograms yang memiliki sebuah implementasi yang mendasari (underlying implementation). Sehingga, jika sebuah object type spec hanya mendeklarasikan attributes, maka object type body tidak diperlukan. Kita tidak dapat mendeklarasikan attributes di dalam body. Seluruh deklarasi di dalam object type spec bersifat public (terlihat dari luar object type).
Untuk memahami struktur tersebut secara lebih baik, mari kita pelajari contoh di bawah ini, dimana sebuah object type untuk angka-angka complex didefinisikan. Untuk saat ini, cukup bagi kita untuk mengetahui bahwa sebuah angka complex memiliki dua bagian, sebuah bagian real dan sebuah bagian imaginary, dan bahwa beberapa operasi-operasi aritmatika didefinisikan untuk angka-angka complex.
CREATE TYPE Complex AS OBJECT ( rpart REAL, -- attribute ipart REAL, MEMBER FUNCTION plus (x Complex) RETURN Complex, -- method MEMBER FUNCTION less (x Complex) RETURN Complex, MEMBER FUNCTION times (x Complex) RETURN Complex, MEMBER FUNCTION divby (x Complex) RETURN Complex ); CREATE TYPE BODY Complex AS MEMBER FUNCTION plus (x Complex) RETURN Complex IS BEGIN RETURN Complex(rpart + x.rpart, ipart + x.ipart); END plus; MEMBER FUNCTION less (x Complex) RETURN Complex IS BEGIN RETURN Complex(rpart - x.rpart, ipart - x.ipart); END less; MEMBER FUNCTION times (x Complex) RETURN Complex IS BEGIN RETURN Complex(rpart * x.rpart - ipart * x.ipart, rpart * x.ipart + ipart * x.rpart); END times; MEMBER FUNCTION divby (x Complex) RETURN Complex IS z REAL := x.rpart**2 + x.ipart**2; BEGIN RETURN Complex((rpart * x.rpart + ipart * x.ipart) / z, (ipart * x.rpart - rpart * x.ipart) / z); END divby; END;
| Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi. Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma dsb. Harga Rp. 24.800,- (157 halaman) |


[…] Silahkan melanjutkan membaca pembahasan PL/SQL Object Types […]