You are on page 1of 8

Nama : Aditya Muhammad Noor Sehabudin

Nim : 6301130149
Kelas : SDV-13-01

Pengenalan Design Pattern


Design Pattern adalah sebuah solusi untuk menyelesaikan masalah umum yang sering di temui dan
dihadapi, yang membentuk sebuah pola (pattern) tertentu dalam membuat sebuah program.
Jadi pada intinya design pattern adalah sebuah pola atau design yang dirancang oleh orang yang
berpengalaman(experienced) yang bertujuan untuk mengubah kebiasaan yang nantinya setiap deaign
penyelesaian masalah ayng ada akan didokumentasikan yang tentunya document tersebut nantinya
akan menjadi kiblat bagi para programmer newbie.
Jenis Jenis dari design pattern
-

Singletion
Composible
Decoration
Iteration
Template Method
Startegi
Observer
Dll

Beberapa Definisi tentang Design pattern


-

Design pattern adalah deskripsi tentang kelas dan objek yang berkomunikasi dan dapat
dimodofikasi untuk menyelesaikan persoalan perancangan yang umum dan pada konteks
tertentu.
Design pattern adalah Abstraksi dari solusi spesifik untuk persoalan umum agar menghasiklkan
solusi umum dan bisa diubah sesuai keingininan.
Design pattern adalah petunjuk solusi dari permasalahan menyangkut kapan, bagaimana dan
konsekuensi pengaplikasianya.

Dari beberapa definisi diatas kita bisa mendapatkan kesimpulan bahwa design pattern itu sangat
berkaitan erat dengan masalah persoalan, solusi dan konsekuensi, oleh karna itulah cara
pengdokumentasianya juga sebagai berikut.

Elemen Umum dalam Dokumentasi Design pattern


-

Nama
Persoalan
Solusi
Konsekuensi

Disini ada kata konsekuensi, loh kenapa ada konsekuensinya padahal kita kan mau menyelesaikan
masalah??, sebagai analoginya jika kalian suka main game sepak bola seperti PES dan FIFA kalin pasti
mengerti, kenapa bisa gituh??, yahkan setiap kita mau melakukan pertandingan kita akan melakukan
perencanaan strategi terlebih dulu yang nantinya kita kan memilih formasi, pemain mana saja yang
bakal diturunkan langsung dll, setiap kita memilih suatu keputusan pasti aka nada konsekuensinya, disini
say punya persoalan masalah defense maka saya akan menurunkan 5 pemain belakang dan 4 pemain
tengah dan 1 pemain depan , karna saya mengatasi permasalahn defense maka attack pada timsaya
akan berkurang karna kuota yang ada dipakai untuk pemain belakang.
Setidaknya seperti diataslah contoh design pattern mungkin.

Format design pattern


-

Nama dan klasifikasi (ditujukan untuk keyword)


Intent (maksud dan tujuan)
A.K.A(alias)
Motivation (deskripsi abstrak)
Applicability (kondisi)
Structure (perancangan atau grafis)
Participant (kelas dan objek yang terlibat)
Consequences (cara untuk mencapai intent yang mempertimbangakn trade of)
Implements (mempertimbangkan GAP yang ada)
Sample code
Known uses
Related Pattern

Design pattern dapat di klasifikasikan menjadi dua bagian yaitu berdasarkan purpose(tujuan) dan
Scope(cakupan).
Purpose(tujuan)
-

Creational (Fokus pada pembuatan Objek).


Structural (Komposisi dari kelas atau objek).
Behavioral (Interaksi kelas atau Objek : modifikasi atau penggunaan).

Scope (cakupan)

Kelas
Objek

Ada beberapa hal yang harus di perhatikan saat memilih design pattern, yaitu :
-

Mencari tahu bagaimana permasalahanya.


Melihat format intent.
Mempelajari keterkaitan design pattern dengan design yang ada.
Melihat konsekuensi penerapan design pattern.
Menentukan variable yang dibutuhkan pada design aplikasi yang dirancang.

Design pattern dan Arsitektur pattern


Arsitektur pattern atau pola Arsitektur
pada umumnya ada 3 hal yang secara garis besar terkait kedalam Arsitektur pattern tersebut yaitu
Gambar,rancangan dan detail.
Dari deskripsi diatas bisa kita simpulkan bahwa arsitektur pattern murapakan gambaran umum dari
sebuah perangkat lunak yang akan dibangun atau bisa juga sebuah pemikiran.
Berikut adalah ltek arsitektur dalam pembuatan perangkat lunak.

Arsitektur

Design Pattern

Idioms/pengkodean

Anti-Pattern

Penjelasan :
-

Pada gambar pertama terdapat Arsitektur kenapa, karna disinilah kita merencanakan atau
menggambarkan aplikasi apa yang akan kita bikin.
Pada tahap ini kita masih belum melakukan pengkodean, tapi kita melakukan analisis, untuk
bagian kedua ini bersifat optional, kenapaa optional karnakebanyakan orang itu lebih suka
langsung melakukan pengkodean tanpa harus membuat design programnya terlebih dulu. Tahap
ini masih berada pada level abstraksi.
Dibagian ketiga ini kita melakukan pengkodean atau bisa disebut juga teknik membangun
perangkat lunak dengan sifat kode spesifik.
Dan terakhir adalah anti pattern hampir sama dengan design pattern disini juga membahas
tentang analisis, namun bedanya dengan design pattern adalah jika design pattern mencari
solusi yang terbaik sedangkan anti pattern mencari solusi yang tidak buruk.

Ada beberapa hal yang berkaitan dengan arsitektur pattern yaitu framework, apa sih yang dimaksud
edngan framework???, framework itu merupakan sebuah aturan atau kerangka kerja untuk melakukan
sesuatu.

Framework itu sendiri terbagi kepada dua bagian yaitu :


-

Perancangan Arsitektur, disini biasanya digunakan oleh orang orang yang memiliki spesialis di
bidang Sistem Informasi yang tentu saja framework ini berada dilevel abstrak dan berada di
tahap Arsitektur.
Pengkodean Arsitektur, disini biasanya di pakai oleh orang orang dari programing yang berada
pada tahap idioms dan berada pada level abstrak pula.

Contoh framework yang berasal dari perancangan arsitektur yaitu Zachman Frimework dll, dan Contoh
dari programing yaitu Hibernate.
Didalam pengkodean itu sendiri membahas tentang peletakan Class atau File,nama Folder, database Dll.

Design pattern dan UML.


Seperti yang kita ketahui bahwa masalah paling utama yang ada dalam pembuatan perangkat lunak
adalah penerjemahan dari klien ke developer itu sendiri, kenapa?, karna setiap orang memiliki presepsi
yang berbeda dalam membuat kesimpulan, untuk mengatasi itulah dibuat yang namanya UML yang
merupakan pengembangan dari OMT, dengan ini para developer dapat menyatukan pikiran karna
mereka dituntut untuk mempelajari tool pembuat diagram tersebut.

Diagram yang ada dalam UML adalah sebagai berikut :


-

Usecase diagram
Class diagram
Sequence diagram
Activity diagram
Scenario diagram
Dll.

Symbol symbol Use case diagram di UML


Use case Diagram terdiri dari :
-

Actor

Actor menggambarkan orang, system atau external entitas yang menyediakan atau menerima
informasi dari system.
o
o
o
o

Actor memberi input atau menerima informasi dari system.


Actor biasanya menggunakan Noun.
Actor digambarkan dengan gambar stick figure atau dengan gambar visual.
Tidak boleh ada komunikasi langsung antar actor.

Use case

Use case diberi nama yang menyatakan apa hal yang dicapai dari hasil interaksinya dengan
actor.
Usecase dinotasikan dengan gambar (horizontal ellipse).
Use case biasanya menggunakan verb.
Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada 2 use case yang
memiliki nama yang sama.
o Use case berelasi sedikitnya 1 actor.
Association
o Ada 4 jenis relasi yang bisa timbul pada use case diagram
Association antara actor dan use case
Association antara use case
Generalization/Inheritance antara use case
Generalization/Inheritance antara actors
o Associations bukan menggambarkan aliran data/informasi
o Associations digunakan untuk menggambarkan bagaimana actor terlibat dalam use case
o Ujung panah pada association antara actor dan use case mengindikasikan siapa/apa
yang meminta interaksi dan bukannya mengindikasikan aliran data
o Sebaiknya gunakan garis tanpa panah untuk association antara actor dan use case
o Association antara actor dan use case yang menggunakan panah terbuka untuk
mengindikasikan bila actor berinteraksi secara pasif dengan system.
<<include>> : yaitu menspesifikasikan bahwa Use-case yang ini terlaksana ataupun otomatis
dilakukan dengan Use-Case lainnya.
<<extends>> : yaitu menspesifikasikan kondisi tertentu, dimana Use-Case yang satu
kemungkinan akan dilakukan kepada Use-Case yang lain.
Generalisation : yaitu menspesifikasikan turunan karakteristikdari Super-Use case dengan SubUse Case dibawahnya.
Package merupakan sebuah notasi yang biasanya digunakan untuk mengelompokan kelas-kelas
yang memilki kesamaan.selain itu juga dapat digunakan untuk membedakan 2 kelas atau lebih
yang memilki nama sama namun memiliki fungsionalitas yang berbeda.
Atribut disini menunjukan informasi yang dimiliki oleh suatu class, bisa juga disebut informasi
yang berhubungan dengan suatu class. Cara penulisan Atribut sebagai berikut :
o Visibility name : type = value
o
o
o

Ada dua jenis type Atribute final dan static untuk penulisanya final nama attribute ditulis
menggunkan Capital sedangkan static tidak.
-

Operasi atau method, merupakan kebiasaan yang bisa dilakukan oleh suatu kelas. Untuk
penulisanya sebagai berikut :
Visibility name(parameter_list) : return_type {Property_String/Element Property}
Parameter_list berisi kind name:type=default_value.

Class, merupakan subuah blueprint yang dirancang untuk membuat sebuah Aplikasi atau
perangkat lunak. Ada 3 jenis class dalam pembuatanya di UML, sebagai berikut :
o Detail Suppresed class yang hanya memilki nama kelasnya saja tanda ada detail
tentang informasi maupun behavior nya.
o Analysis Level Detail class yang memilki semua nama baik itu nama kelasnya, nama
informasinya, maupun nama behaviornya, akan tetapi tidak memilki detail dari namanama tersebut.
o Implementation Level Detail Class yang memilki nama classnya, informasinya dan
behaviornya sekaligus dengan detail yang dimilki oleh kelas tersebut.
NOTE digunakan untuk memberikan penjelasan terhadap suatu hal yang memang perlu
untuk dijelaskan.
Objek (Robustness/ Colaboration Diagram), berikut adalah symbol yang ada di diagram
robustness :
o

Aktor = adalah konsep yang sama sebagai aktor pada diagram use case UML.

Boundary objek = mewakili unsur-unsur perangkat lunak seperti layar, laporan, halaman
HTML, atau antarmuka sistem yang berinteraksi dengan aktor. Juga disebut elemen
antarmuka.

control elementt = berfungsi sebagai perekat antara boundary elemen dan entity
element, menerapkan logika yang diperlukan untuk mengelola berbagai unsur dan
interaksinya. Juga dikenal sebagai elemen proses atau hanya sebagai pengendali. Hal
ini penting untuk memahami bahwa kita mungkin memutuskan untuk
mengimplementasikan pengendali dalam desain sebagai sesuatu selain objek. Banyak
controller cukup sederhana untuk diimplementasikan sebagai sebuah metode dari suatu
entitas atau boundary class misalnya.

Entity object = adalah jenis entitas yang biasanya ditemukan dalam model konseptual,
seperti tabel Mahasiswa dan Seminar.

Symbol relasi

Dan ada satu lagi yaitu komposisi symbolnya hampir sama dengan agregasi namun bagian
kupatnya berwarna hitam bukan putih, pengertian dari komposisi itu sendiri adalah relasi
antar kelas yang memilki makna bagian dari / semua bagian namun dengan context yang
lebih terikat dibandingkan dengan agregasi.

You might also like