IT 405: KPLBO M 8 R A O fileIT 405: KPLBO MATERI 8 RELASI ANTAR OBJEK Ayi Purbasari, ST., MT....
Transcript of IT 405: KPLBO M 8 R A O fileIT 405: KPLBO MATERI 8 RELASI ANTAR OBJEK Ayi Purbasari, ST., MT....
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