Spesialisasi/Generalisasi RELATIONSHIP dalam OOP


1. Definisi Spesialisasi

Spesialisasi adalah Proses mendesain subgrup di dalam suatu entity . Suatu himpunan entitas bisa memiliki suatu subgrup yang berbeda diantara entitas-entitas lain dalam himpunan tersebut. Misalnya suatu sub himpunan entitasdalam suatu himpunan entity bisa memiliki atribut yang berbeda dari entity-entiti lain. Model E-R memiliki fasilitas untuk perbedaan ini.

Contoh : himpunan entitas account memiliki atribut account-number dan balance. Suatu account dapat diklasifikasikan lagi menjadi salah satu dari (gambar 4.5):
  • savings-account
  • checking-account

Setiap tipe account ini diterangkan dengan himpunan atribut yang termasuk dalam atribut-atribut dari entitas account ditambah dengan atribut tambahan. Contoh entity saving-account diterangkan dengan atribut interest-rate, danchecking-account diterangkan dengan overdraft-amount. 

Proses spesialisasi mengijinkan pembedaan account berdasarkan tipe account. Account juga dapat dibedakan dengan cara lain, misalkan berdasarkan tipe kepemilikkan menjadi commercial-account dan personal-account. 

Ketika dalam suatu entitas dibentuk lebih dari satu proses spesialisasi, maka suatu entitas menjadi milik dua spesialisasi tersebut. Misal suatu account bisa merupakan suatu personal account dan suatu checking account. Dalam diagram E-R, spesialisasi dilambangkan dengan komponen segitiga bertuliskan ISA. ISA juga melambangkan hubungan antara superclass-subclass. Entity yang dengan kedudukkan lebih rendah/tinggi memiliki lambang sama.

Manfaat Spesialisasi 

  • Mendefinisikan himpunan subclass- subclass dari suatu entity type 
  • Menggambarkan attribute spesifik untuk tiap subclass 
  • Menggambarkan relationship spesifik antara suatu subclass dengan entity type lain atau dengan subclass lain


2. Generalisasi


Generalisasi adalah proses pendefinisian subclass-subclass yang disatukan menjadi entitas superclass tunggal berdasarkan karakteristik umum. Disamping proses desain top-down (dari inisial entitas ke level lebih rendah (subgrup)), desain juga dapat dilakukan dengan proses bottom-up, yaitu banyak entitas disintesiskan menjadi entity yang lebih tinggi berdasarkan kesamaan feature-nya.

Desainer basis data mungkin mengidentifikasi terlebih dulu entitas checking-account dengan atribut account-number, balance dan overdraftamount. Ditemukan juga entity set saving-account dengan atribut account-number, balance dan interest-rate. 

Terdapat kesamaan antara entitas checking-account dengan entitas saving-account, yaitu keduanya memiliki beberapa atribut yang sama. Persamaan ini dapat diekspresikan dengan generalisasi (lihat gambar 4.5).

Manfaat Generalisasi
  • Kebalikan dari proses spesialisasi
  • Dilakukan dengan mengidentifikasi attribute-attribute yang sama dan melakukan generalisasi ke sebuah superclass
Contoh:
TRUCK & CAR dapat digeneralisasi menjadi VEHICLE






*Untuk download di pintukos, hindari menggunakan UCbrowser, karena bisa jadi link download bisa error.

Post a Comment

0 Comments