IT 405: KPLBO M 8 R A O fileIT 405: KPLBO MATERI 8 RELASI ANTAR OBJEK Ayi Purbasari, ST., MT. If-Unpas, 2014

Post on 07-Jun-2019

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

IT 405: KPLBOMATERI 8 RELASI ANTAR OBJEKAyi Purbasari, ST., MT.If-Unpas, 2014

OUTLINE

Agregasi Komposisi

Inheritance Overridingdan Super

AGREGASI

Relasi “consist of”, “is composed of”, “has a” Contoh: A Car has a(n) Engine A Car has a Transmission A Car is composed of many (4) Wheels A Person has a(n) Address

COMPOSITION

Adalah agregasi, dimana “bagian”-nya tidakdapat ada tanpa bagian keseluruhannya.

Contoh: A Book is composed of many Chapters Chapter (bab) tidak ada jika tidak ada buku

INHERITANCE

Inheritance hanya dimiliki oleh bahasa pemrogramanOO

Adalah relasi is-a Contoh: A Student is a Person A Sedan is a Car

Pada Student is a Person, maka Person adalahkelas induk dan Student adalah kelas anak

Kelas anak (Student) akan mewarisi sifat-sifat danperilaku-perilaku dari kelas induknya (Person)

Jika Student is a Person, dan Person has a(n)Address, maka Student juga has a(n) Address

INHERITANCE

Perhatikan kelasStudent berikut ini:

Terdapat 2 macamStudent: Graduate Students Undergraduate Student

Graduate Studentadalah student yangtelah menyelesaikanprogramUndergradutenya

Misal kelas karyawanUnpas, terdapat lulusanD3 dari Polban,PoltekPos, D3 Telkom,D2 PDC dan lain-lain.

StudentnamestudentID

setName()setStudentID()getName()getStudentID()

INHERITANCE .. (LANJUTAN) Terdapat kebutuhan informasi: Apa nama program

Undergraduate seorang studentsebelum mengambil programGraduate

Apa institusi programUndergraduate seorang studentsebelum mengambil programGraduate

Misal: D3 Telkom Solusi I: ditambahkan atribut

dan metode di kelas Student

StudentnamestudentIDunderGraduateDegreeunderGraduateInstituion

setName()setStudentID()getName()getStudentID()setUnderGraduateDegree()getUnderGraduateDegree()setUnderGraduateInstitution()getUnderGraduateInstitution()

INHERITANCE .. (LANJUTAN) Konsekuensi solusi I tersebut: atribut dan metode undergraduate ini

tidak berlaku untuk seluruh student,tetapi hanya untuk student graduatesaja

karena itu, atribut dan metode tersebutperlu selalu dicek, apakah digunakanatau tidak

digunakan variabel booleangraduateStudent untuk menandai bahwastudent tersebut adalah seorang studentgraduateStudent

digunakan juga metode untuk mengecek:isGraduateStudent. Jika merupakan graduate student, maka

graduateStudent dan isGraduateStudentakan bernilai TRUE.

StudentnamestudentIDunderGraduateDegreeunderGraduateInstituiongraduateStudent

setName()setStudentID()getName()getStudentID()setUnderGraduateDegree()getUnderGraduateDegree()setUnderGraduateInstitution()getUnderGraduateInstitution()isGraduateStudent()

INHERITANCE .. (LANJUTAN) Contoh penggunaan boolean untuk mengecek

jenis Student:

INHERITANCE .. (LANJUTAN) Jika terdapat kebutuhan-kebutuhan khusus

lainnya untuk kelas Student, maka perluditambahkan variabel baru juga variabel bertipeboolean untuk mengeceknya.

Misal untuk kelas karyawan, diperlukaninformasi tempat kerja mahasiswa yangbersangkutan.

Padahal tidak semua Student memiliki tempatkerja.

Hal ini menunjukkan bahwa Solusi I denganpenambahan-penambahan variabel ini sangattidak praktis dan merumitkan.

INHERITANCE .. (LANJUTAN) Solusi II: Meng-clone semua atribut dan metode

kelas Student

StudentnamastudentID

setName()setStudentID()getName()getStudentID()

GraduateStudentnamestudentIDunderGraduateDegreeunderGraduateInstituion

setName()setStudentID()getName()getStudentID()setUnderGraduateDegree()getUnderGraduateDegree()setUnderGraduateInstitution()getUnderGraduateInstitution()

INHERITANCE .. (LANJUTAN)

THE PROPER APPROACH (#3): TAKINGADVANTAGE OF INHERITANCE

GraduateStudentunderGraduateDegreeunderGraduateInstituion

setUnderGraduateDegree()getUnderGraduateDegree()setUnderGraduateInstitution()getUnderGraduateInstitution()

StudentnamastudentID

setName()setStudentID()getName()getStudentID()

Solusi III: Dengan menggunakan Inheritance, atribut yangdimiliki kelas Student otomatis dimiliki oleh kelasGraduateStudent

INHERITANCE: CONTOH DIAGRAM KELASDENGAN INHERITANCE

PENDEKLARASIAN INHERITANCE

public class Student extends Person {

}

Student s1 = new Person(); //Tidak benarStudent s1 = new Student(); //Objek studentPerson s1 = new Student(); //Objek student

PENDEKLARASIAN INHERITANCEKELAS INDUK/SUPERCLASS

KELAS TURUNAN/SUBCLASS

KELAS TURUNAN/SUBCLASS

HIRARKI KELAS

PUSTAKA

Barker, Jacquie. Beginning Java Objects FromConcepts to Code, Second Edition. Appress. 2005.

THANK YOU

top related