4.2. Implementasi Basis Data Data Definition Language / DDL
4.2.1. Pendefinisian tipe objek ( object type )
4.2.1.1 Tipe People
Pernyataan di atas mendefinisikan suatu tipe objek bernama People_T untuk merepresentasikan suatu data seseorang. Tipe People_T mempunyai atribut Id, Nama, TTL, Umur, Alamat, NoTlp. Masing-masing atribut bertipe data VARCHAR2.
CREATE OR REPLACE TYPE People_T AS OBJECT (Id VARCHAR2 (100), Nama VARCHAR2 (200), TTL VARCHAR2 (200), Umur VARCHAR2 (50), Alamat VARCHAR2 (200), NoTlp VARCHAR2 (100), P_Type VARCHAR2 (50),
STATIC FUNCTION show_super (people_obj in People_T) RETURN VARCHAR2,
MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL;
/
--method implementation: CREATE TYPE BODY People_T AS
STATIC FUNCTION show_super (people_obj in People_T) RETURN VARCHAR2 IS
BEGIN
RETURN 'Id: ' || people_obj.Id || ', Nama: ' || people_obj.Nama
|| ', TTL: ' || people_obj.TTL|| ', Umur: ' || people_obj.Umur
|| ', Alamat: ' || people_obj.Alamat|| ', NoTlp: ' || people_obj.NoTlp
|| ', P_Type: ' || people_obj.P_Type; END;
MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN
RETURN People_T.show_super ( SELF ); END;
END; /
Untuk mengimplementasikan bahwa sebuah objek mempunyai subtypes,
objek harus didefinisikan sebagai “not final” pada akhir deklarasi tipe. Secara default, tanpa keyword “not final”, objek tipe akan diperlakukan sebagai objek final dan tidak ada subtypes yang dapat diperoleh dari tipe tersebut. Implementasi method show digunakan untuk menampilkan data.
4.2.1.2Tipe PengajarRelawan_T
Pernyataan di atas mendefinisikan suatu tipe objek bernama PengajarRelawan_T yang merupakan subtype dari People_T, yang di tandai
dengan kata kunci “Under”. Tipe PengajarRelawan _T mempunyai atribut
Asal_PR, bertipe data VARCHAR2. Terdapat method show untuk menampilkan data Pengajar Relawan.
4.2.1.3Tipe AnggotaGaruluku_T
CREATE OR REPLACE TYPE PengajarRelawan_T UNDER People_T (Asal_PR VARCHAR2(200),
OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2); /
CREATE TYPE BODY PengajarRelawan_T AS
OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN
RETURN People_T.show_super ( SELF ) ||', Asal_PR: ' || Asal_PR;
END; END; /
Pernyataan di atas mendefinisikan suatu tipe objek bernama AnggotaGaruluku_T untuk merepresentasikan suatu data seorang Anggota Garuluku. Tipe AnggotaGaruluku_T mempunyai atribut NamaAyah, NamaIbu, PekerjaanAyah. PekerjaanIbu, Hobi, TahunBergabung. Masing- masing atribut bertipe data VARCHAR2.
Untuk mengimplementasikan bahwa sebuah objek mempunyai subtypes,
objek harus didefinisikan sebagai “not final” pada akhir deklarasi tipe. Secara default, tanpa keyword “not final”, objek tipe akan diperlakukan sebagai objek final dan tidak ada subtypes yang dapat diperoleh dari tipe tersebut. Terdapat method show untuk menampilkan data Anggota Garuluku.
CREATE OR REPLACE TYPE AnggotaGaruluku_T UNDER People_T (NamaAyah VARCHAR2 (200), NamaIbu VARCHAR2 (200), PekerjaanAyah VARCHAR2 (200), PekerjaanIbu VARCHAR2 (200), Hobi VARCHAR2 (200), TahunBergabung VARCHAR2 (20),
OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL;
/
CREATE TYPE BODY AnggotaGaruluku_T AS
OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN
RETURN People_T.show_super ( SELF ) || ', NamaAyah: ' || NamaAyah || ', NamaIbu: ' || NamaIbu || ', PekerjaanAyah: ' || PekerjaanAyah || ', PekerjaanIbu: ' || PekerjaanIbu || ', Hobi: ' || Hobi || ', TahunBergabung: ' || TahunBergabung ; END; END;
4.2.1.2. Tipe Pengurus_T
Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama Pengurus_T. Tipe data Pengurus_T untuk merepresentasikan suatu data seorang Anggota Garuluku yang merupakan pengurus Sanggar Anak Garuluku atau pengurus Forum Anak Desa Kemadang (FORANDAKA).
Tipe objek Pengurus_T merupakan warisan dari AnggotaGaruluku_T,
oleh karena itu, menggunakan kata kunci “UNDER” pada pendefinisian
tipe objek Pengurus_T. Tipe Objek Pengurus_T mempunyai atribut Posisi, Periode, Jenis. Masing-masing atribut bertipe data VARCHAR2.
Tipe objek Pengurus_T mempunyai sub tipe yang bernama
PengajarTetap_T, oleh karena itu tipeobjek ini harus didefinisikan sebagai
“not final” pada akhir deklarasi tipe. Secara default, tanpa keyword “not final”, objek tipe akan diperlakukan sebagai objek final dan tidak ada subtypes yang dapat diperoleh dari tipe tersebut.
4.2.1.3. Tipe AnggotaFA_T
Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama AnggotaFA_T untuk merepresentasikan suatu data seorang Anggota
CREATE OR REPLACE TYPE Pengurus_T UNDER AnggotaGaruluku_T (Posisi VARCHAR2 (200),
Periode VARCHAR2 (100),
Jenis VARCHAR2 (50)) NOT FINAL /
Garuluku yang merupakan anggota dari Forum Anak Desa Kemadang (FORANDAKA).
Tipe objek AnggotaFA_T merupakan pewarisan dari
AnggotaGaruluku_T, sehingga menggunakan kata kunci “UNDER” pada
pendefinisian tipe objek AnggotaFA_T. Kata kunci “UNDER” digunakan
bersama statement “create type” untuk membuat subtype AnggotaFA_T
dari supertype AnggotaGaruluku_T. AnggotaFA_T mempunyai atribut
Sekolah, StatusKeaktifan. Masing-masing atribut bertipe data
VARCHAR2.
4.2.1.4. Tipe AnggotaSA_T
Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama AnggotaSA_T untuk merepresentasikan suatu data seorang Anggota Garuluku yang merupakan anggota dari Sanggar Anak Garuluku.
Tipe objek AnggotaSA_T merupakan pewarisan dari
AnggotaGaruluku_T, sehingga menggunakan queri “UNDER” pada
pendefinisian tipe objek AnggotaSA_T. Kata kunci “UNDER” digunakan
bersama statement “create type” untuk membuat subtype AnggotaSA_T
dari supertype AnggotaGaruluku_T. AnggotaSA_T mempunyai atribut
CREATE OR REPLACE TYPE AnggotaFA_T UNDER AnggotaGaruluku_T
(Sekolah VARCHAR2 (200),
StatusKeaktifan VARCHAR2 (100)) /
Sekolah, StatusKeaktifan. Masing-masing atribut bertipe data VARCHAR2.
4.2.1.5. Tipe PengajarTetap_T
Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama PengajarTetap_T untuk merepresentasikan suatu data seorang Anggota Garuluku yang merupakan pengurus Sanggar Anak Garuluku atau pengurus Forum Anak Desa Kemadang (FORANDAKA), dan merupakan Pengajar tetap untuk anak-anak di desa Kemadang.
Tipe objek PengajarTetap_T adalah pewarisan dari Pengurus_T,
sehingga menggunakan queri “UNDER” pada pendefinisian tipe objek
PengajarTetap_T. Kata kunci “UNDER” digunakan bersama statement
“create type” untuk membuat subtype PengajarTetap_T dari supertype Pengurus_T. Tipe Objek PengajarTetap_T mempunyai atribut HariAjar yang bertipe data VARCHAR2.
4.2.1.6. Tipe Materi_T
CREATE OR REPLACE TYPE AnggotaSA_T UNDER AnggotaGaruluku_T
(Sekolah VARCHAR2 (200),
StatusKeaktifan VARCHAR2 (100)) /
CREATE OR REPLACE TYPE PengajarTetap_T UNDER Pengurus_T (HariAjar VARCHAR2 (500))
Pernyataan di bawah ini mendefinisikan suatu tipe objek bernama Materi_T. Tipe objek Materi_T untuk merepresentasikan suatu data materi pelajaran apa saja yang diajarkan kepada anggota Sanggar Anak Garuluku dan anggota Forum Anak Desa Kemadang (FORANDAKA).
Tipe objek ini mempunyai hubungan asosiasi One to Many dengan
PengajarTetap_T dan mempunyai hubungan asosiasi One to Many dengan
PengajarRelawan_T, untuk mengimplementasikan hubungan asosiasi ini
menggunakan fitur BDRO: Object References, menggunakan kata kunci
“REF”. Tipe Objek PengajarRelawan_T mempunyai atribut Id_Materi,
Nama_Materi, yang bertipe data VARCHAR2, dan atribut PengajarT yang
ditulis dengan diikuti kata “REF PengajarTetap_T” untuk menghubungkan
dengan objek PengajarTetap_T, dan atribut PengajarR yang ditulis dengan
diikuti kata “REF PengajarRelawan_T” untuk menghubungkan dengan
objek PengajarRelawan_T