saya Natasha Adinda Cantika dengan NIM 2312120 mengerjakan TP3 dalam mata kuliah DPBO untuk keberkahanNya maka saya tidak melakukan kecurangan seperti yang telah dispesifikasikan. Aamiin
Terdapat 10 kelas objek pada proyek ini:
- Komponen, merupakan superclass/parent dari Gpu, Cpu, Ram, dan Harddrive.
- GraphicsProcessUnit, merupakan superclass/parent dari Gpu.
- Peripheral, merupakan superclass/parent dari Keyboard dan Printer.
- GPU, merupakan child dari GraphicProcessingUnit dan Komponen, kelas ini menerapkan Multiple Inheritance.
- Ram, merupakan child dari Komponen.
- Cpu, merupakan child dari Komponen.
- Harddrive, merupakan child dari Komponen.
- Keyboard, merupakan child dari Peripheral.
- Printer, merupakan child dari Peripheral.
- Komputer, merupakan leaf atau kelas yang tidak dapat diturunkan lagi (dalam kasus proyek ini), kelas ini menerapkan Hybrid Inheritance dimana atribut komputer diisi secara composite dari kelas yang merupakan turunan dari superclass/parentnya.
OOP bertujuan untuk menciptakan kelas atau kode yang reusable, maka dari itu kelas GraphicProcessUnit dan GPU dipisah supaya apabila kedepannya ada kelas baru yang memerlukan atribut memoryGB dan clockspeedGHz kelas tersebut cukup melakukan inheritance dari kelas GraphicProcessUnit. Selain itu, hal ini juga dipisah supaya atribut unik yang hanya ada pada GPU tetap terpisah dari atribut lainnya untuk menetapkan karakteristik dari kelas GPU.
Panah dari Gpu, Cpu, Ram, Harddrive, Keyboard, dan Printer menunjukkan composite dengan makna yang berbeda beda,
- Panah Gpu, Printer, dan Keyboard memiliki tanda [1 --> 0..1] ini menunjukan bahwa terdapat 0 sampai maksimal 1 isi dari atribut komputer yg berhubungan dgn kelas-kelas ini;
- Panah Cpu dan Harddrive [1 --> 1..1] menunjukkan bahwa terdapat minimal 1 dan maksimal 1 isi dari atribut komputer yang berhubungan dengan kelas-kelas tsb;
- Panah Ram [1 --> 1..*] menunjukan bahwa terdapat minimal 1 sampai tak hingga/sesuai masukan user isi dari atribut komputer yang berhubungan dengan kelas tsb.


