Anda di halaman 1dari 19

DESIGN PATTERN

LATAR BELAKANG

• Design Pattern mulai dikenal pada


awal tahun 1980an  MVC for
Smalltalk
• MVC (Model-View-Controller) :
Latar Belakang (lanj..)

• Design Pattern mulai digunakan


secara formal di awal tahun 1990an
oleh Helm(1990) dan Erich
Gamma(1992).
Pengertian
• Menurut Christopher Alexander, 1977 :
“Masing-masing pattern mendeskripsikan suatu
problem yang terjadi lagi dan lagi dalam
lingkungan dan kemudian mendeskripsikan inti
dari solusi permasalahan tersebut,sehingga kita
dapat menggunakan solusi ini berulang kali
tanpa melakukan hal yang sama dua kali ”
• “Design patterns merupakan solusi yang
berulang kali digunakan untuk memecahkan
masalah desain yang sering kali ditemui”(et. al.,
1998).
• ”Design Pattern merupakan suatu kumpulan
aturan yang mendeskripsikan bagaimana
menyelesaikan masalah-masalah dalam bidang
pengembangan perangkat lunak”. (Pree, 1994)
Good pattern

A good pattern should


•Be as general as possible
•Contain a solution that has been
proven to effectively solve the
problem in the indicated context
4 Elemen Penting dalam DP
:
• nama
Untuk membedakan pattern yang satu dengan
pattern yang lain
• problem
Menjelaskan kapan mengaplikasikan pattern dari
batasan problem dan context yang ada
• solution
Mendeskripsikan element untuk membuat design,
relationship, responsibility dan collaboration
• Consequences
hasil dari pengaplikasian pattern
Kategori Design Patterns
• Berdasarkan scope/ruang lingkup :
 class level
Mengidentifikasi hubungan antar-class
yang didefinisikan pada saat compile-
time dan cenderung lebih statis
Object level
Mendeskripsikan hubungan yang dapat
berubah pada saat run time sehingga
sifatnya lebih dinamis
Kategori Design Patterns
(lanj..)
• Berdasarkan tujuannya :
 Creational Patterns
Adalah patterns yang terkait dengan proses instalasi atau
konstruksi objek. Pada umumnya creational pattern
memisahkan operasi suatu aplikasi dari bagaimana objeknya
diciptakan.
 lebih menekankan pada proses instansiasi objek.
 Structural Patterns
pattern yang berkaitan dengan penyusunan class dan objek
untuk membentuk struktur yang lebih besar. Untuk menyusun
struktur yang lebih besar, struktural pattern banyak
menggunakan inheritance dan aggregation.
 Behavioral Patterns
ditujukan untuk mengatasi permasalahan yang muncul ketika
kita akan menetapkan class responsibility dan algoritma.
Behavioral design pattern tidak hanya merekomendasikan
hubungan statis tertentu antara objek dan class tetapi juga
menguraikan bagaimana objek-objek tersebut berkomunikasi.
Kategori Design Patterns
(lanj..)
Creational Pattern

• Factory Method
• Abstract Factory Method
• Builder Pattern
• Prototype Pattern
• Singleton Pattern
Singleton Pattern
• dapat digunakan untuk memastikan bahwa hanya
ada sebuah instance suatu class yang diciptakan.
• Model Logic Singleton Pattern
Model untuk menggambarkan Singleton sangat
mudah dipahami karena hanya ada satu
Singleton instance. Client mengakses Singleton
instance melalui satu akses point yang diketahui.
Client dalam kasus ini adalah objek yang
membutuhkan akses untuk satu instance dari
Singleton.
Singleton Pattern(lanj..)

• Model Fisik Singleton Pattern


Model fisik dari Singleton juga sangat
mudah dipahami. Gambar di bawah
ini menunjukkan UML model dari
Singleton Pattern dalam bentuk class
diagram
• public class ClassicSingleton {
   private static ClassicSingleton instance = null;
   protected ClassicSingleton() {
      // Exists only to defeat instantiation.
   }
   public static ClassicSingleton getInstance() {
      if(instance == null) {
         instance = new ClassicSingleton();
      }
      return instance;
   }
}
Struktural Pattern

• Adapter
• Bridge
• Composite
• Decorator
• Façade
• Flyweight
• Proxy
Behavioral Pattern
• Observer
• Mediator
• Chain of Responsibility
• Template
• Interpreter
• Strategy
• Visitor
• State
• Command
• Iterator
How to Select & Use Design
Patterns
How to Select (> 20 in the book, and
still growing … fast?, more on
Internet)
• Scan Intent Sections
• Study How Patterns Interrelate
• Study Patterns of Like Purpose
• Examine a Cause of Redesign
• Consider What Should Be Variable in Your Design
How to Use
• Read the pattern once through for an
overview: appears trivial, but not
• Go back and study the structure,
participants, and collaborations sections
• Look at Sample Code: concrete example of
pattern in code
• Choose names for pattern participants
• Define the classes
• Define application specific names for
operations in the pattern
• Implement the operations to carry out the
responsibilities and collaborations in the
pattern
Yang perlu diingat adalah meskipun design
pattern itu adalah solusi yang umum,
design pattern tersebut hanyalah solusi
untuk satu masalah spesifik.

Tiap design pattern mempunyai cakupan


tersendiri, dan terkadang ada masalah
yang hanya bisa diselesaikan dengan
gabungan dari beberapa design pattern
sekaligus atau ada pula masalah yang
hanya bisa diselesaikan secara non-
pattern (meski jarang).
Referensi Buku
• Design Patterns : Elements of Reusable Object-
Oriented Software (1995)
– (The-Gang-of-Four Book)
– The-Gang-of-Four (GoF) - Gamma, Helm,
Johnson , Vlissides
• Analysis Patterns - Reusable Object Models
(1997)
– Martin Fowler

Anda mungkin juga menyukai