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;

 

Pages: 1 2 3 4 5 6 7 8 9 10 11

 

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)

 

Related Articles

 

Comments

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

[…] SubprogramsPL/SQL Object TypesNative Dynamic SQLMenangani PL/SQL ErrorsInteraksi PL/SQL dengan […]

Leave a comment

(required)

(required)


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word