REVIEW OOP DAN IMPLEMENTASI DI
DESIGN PATTERN
Clean Code dan Desing Pattern
PERHATIKAN CLASS BERIKUT
CCDP - OOP DAN DESIGN PATTERN 2
Abstract method
Abstract class
18/06/24
COBA DIINSTANSIASI
CCDP - OOP DAN DESIGN PATTERN 3
TIDAK BISA DIINSTANSIASI
Kenapa?
18/06/24
ABSTRACT CLASS & ABSTRACT METHOD
o Abstract method: method tanpa definisi/body
o Abstract class: class yang mengandung abstract method
o Abstract class tidak bisa diinstansiasi secara langsung
o Abstract class tetap bisa diturunkan
­ Turunannya harus meng-override semua abstract method
CCDP - OOP DAN DESIGN PATTERN 4
18/06/24
TURUNAN ABSTRACT CLASS
CCDP - OOP DAN DESIGN PATTERN 5
SALAH
Method looks() tidak di-override
BENAR
Method looks() di-override
18/06/24
INTERFACE
o Antarmuka, tapi bukan tampilan di layar (user interface)
o Menspesifikasikan operasi (method) yang terlihat dari luar kelas
­ Method yang harus ada di suatu class
o Class yang seluruh methodnya bersifat abstract
o Class yang mengimplementasikan interface wajib mendeklarasikan
kembali seluruh method yang ada di interface tersebut
CCDP - OOP DAN DESIGN PATTERN 6
18/06/24
CONTOH INTERFACE
CCDP - OOP DAN DESIGN PATTERN 7
18/06/24
INTERFACE REALIZATION
CCDP - OOP DAN DESIGN PATTERN 8
18/06/24
STUDI KASUS: SIMUDUCK APP
(HEAD FIRST DESIGN PATTERN: CHAPTER 1)
CCDP - OOP DAN DESIGN PATTERN 9
Bagaimana jika kita menginginkan
bebek-bebek ini bisa terbang?
19/06/24
BEBEK TERBANG . . .
CCDP - OOP DAN DESIGN PATTERN 10
Method fly() ditambahkan di superclass.
Otomatis subclass juga mendapatkan method
yang sama.
“Sekali merengkuh dayung, 2-3 pulau terlampaui”
19/06/24
SEMUA BEBEK BISA TERBANG?
CCDP - OOP DAN DESIGN PATTERN 11
Faktanya, bebek karet
(mainan bebek) tidak
bisa terbang
Override menjadi squaek, karena bebek
karet tidak bersuara, hanya bisa berdecit
19/06/24
JADI SOLUSINYA?
CCDP - OOP DAN DESIGN PATTERN 12
Override to do nothing
19/06/24
BAGAIMANA DENGAN BEBEK KAYU?
CCDP - OOP DAN DESIGN PATTERN 13
Haruskah terus menerus
meng-override method
dari superclass yang tidak
dipakai oleh subclass?
19/06/24
COBA MANFAATKAN INTERFACE
CCDP - OOP DAN DESIGN PATTERN 14
Berapa kali harus
menuliskan kode yang
sama untuk puluhan
jenis bebek di dunia ini?
19/06/24
DESIGN PRINCIPLE
1. Identifikasi aspek yang berbeda-beda/mudah berubah,
pisahkan dari aspek yang cenderung tetap/konstan
2. Program ke interface, bukan ke implementasi
3. Gunakan composition daripada inheritance
CCDP - OOP DAN DESIGN PATTERN 15
19/06/24
FINAL DESIGN
CCDP - OOP DAN DESIGN PATTERN 16
19/06/24
DUCK CLASS
CCDP - OOP DAN DESIGN PATTERN 17
19/06/24
CONTOH KODE PROGRAM
CCDP - OOP DAN DESIGN PATTERN 18
19/06/24
KITA BARU SAJA MENERAPKAN STRATEGY
PATTERN
o Strategy pattern: definisikan himpunan algoritma (method),
enkapsulasi masing-masing himpunan, dan buat jadi mudah
dipertukarkan
o Strategy pattern membuat algoritma (method) dapat berubah-
ubah secara independen dari client yang menggunakannya
CCDP - OOP DAN DESIGN PATTERN 19
19/06/24
TERIMA KASIH
19/06/24 CCDP - OOP DAN DESIGN PATTERN 20

CCDP - Review OOP dan Implementasi di Design Pattern.pdf

  • 1.
    REVIEW OOP DANIMPLEMENTASI DI DESIGN PATTERN Clean Code dan Desing Pattern
  • 2.
    PERHATIKAN CLASS BERIKUT CCDP- OOP DAN DESIGN PATTERN 2 Abstract method Abstract class 18/06/24
  • 3.
    COBA DIINSTANSIASI CCDP -OOP DAN DESIGN PATTERN 3 TIDAK BISA DIINSTANSIASI Kenapa? 18/06/24
  • 4.
    ABSTRACT CLASS &ABSTRACT METHOD o Abstract method: method tanpa definisi/body o Abstract class: class yang mengandung abstract method o Abstract class tidak bisa diinstansiasi secara langsung o Abstract class tetap bisa diturunkan ­ Turunannya harus meng-override semua abstract method CCDP - OOP DAN DESIGN PATTERN 4 18/06/24
  • 5.
    TURUNAN ABSTRACT CLASS CCDP- OOP DAN DESIGN PATTERN 5 SALAH Method looks() tidak di-override BENAR Method looks() di-override 18/06/24
  • 6.
    INTERFACE o Antarmuka, tapibukan tampilan di layar (user interface) o Menspesifikasikan operasi (method) yang terlihat dari luar kelas ­ Method yang harus ada di suatu class o Class yang seluruh methodnya bersifat abstract o Class yang mengimplementasikan interface wajib mendeklarasikan kembali seluruh method yang ada di interface tersebut CCDP - OOP DAN DESIGN PATTERN 6 18/06/24
  • 7.
    CONTOH INTERFACE CCDP -OOP DAN DESIGN PATTERN 7 18/06/24
  • 8.
    INTERFACE REALIZATION CCDP -OOP DAN DESIGN PATTERN 8 18/06/24
  • 9.
    STUDI KASUS: SIMUDUCKAPP (HEAD FIRST DESIGN PATTERN: CHAPTER 1) CCDP - OOP DAN DESIGN PATTERN 9 Bagaimana jika kita menginginkan bebek-bebek ini bisa terbang? 19/06/24
  • 10.
    BEBEK TERBANG .. . CCDP - OOP DAN DESIGN PATTERN 10 Method fly() ditambahkan di superclass. Otomatis subclass juga mendapatkan method yang sama. “Sekali merengkuh dayung, 2-3 pulau terlampaui” 19/06/24
  • 11.
    SEMUA BEBEK BISATERBANG? CCDP - OOP DAN DESIGN PATTERN 11 Faktanya, bebek karet (mainan bebek) tidak bisa terbang Override menjadi squaek, karena bebek karet tidak bersuara, hanya bisa berdecit 19/06/24
  • 12.
    JADI SOLUSINYA? CCDP -OOP DAN DESIGN PATTERN 12 Override to do nothing 19/06/24
  • 13.
    BAGAIMANA DENGAN BEBEKKAYU? CCDP - OOP DAN DESIGN PATTERN 13 Haruskah terus menerus meng-override method dari superclass yang tidak dipakai oleh subclass? 19/06/24
  • 14.
    COBA MANFAATKAN INTERFACE CCDP- OOP DAN DESIGN PATTERN 14 Berapa kali harus menuliskan kode yang sama untuk puluhan jenis bebek di dunia ini? 19/06/24
  • 15.
    DESIGN PRINCIPLE 1. Identifikasiaspek yang berbeda-beda/mudah berubah, pisahkan dari aspek yang cenderung tetap/konstan 2. Program ke interface, bukan ke implementasi 3. Gunakan composition daripada inheritance CCDP - OOP DAN DESIGN PATTERN 15 19/06/24
  • 16.
    FINAL DESIGN CCDP -OOP DAN DESIGN PATTERN 16 19/06/24
  • 17.
    DUCK CLASS CCDP -OOP DAN DESIGN PATTERN 17 19/06/24
  • 18.
    CONTOH KODE PROGRAM CCDP- OOP DAN DESIGN PATTERN 18 19/06/24
  • 19.
    KITA BARU SAJAMENERAPKAN STRATEGY PATTERN o Strategy pattern: definisikan himpunan algoritma (method), enkapsulasi masing-masing himpunan, dan buat jadi mudah dipertukarkan o Strategy pattern membuat algoritma (method) dapat berubah- ubah secara independen dari client yang menggunakannya CCDP - OOP DAN DESIGN PATTERN 19 19/06/24
  • 20.
    TERIMA KASIH 19/06/24 CCDP- OOP DAN DESIGN PATTERN 20