Pendahuluan
Permasalahan dalam membuat sebuah perangkat lunak dari sejak awal sejarah perkembangan komputer selalu ada. Permasalahan tersebut dapat berupa hal yang bersifat teknis berhubungan langsung dengan arsitektur perangkat lunak yang dipakai dan juga bersifat perancangan yang lebih bersifat umum. Kedua hal tersebut adalah hal yang wajib dalam pembuatan sebuah perangkat lunak.
Bagaimanakah cara untuk mengelola spesifikasi yang ada sekarang secara efisien untuk kemudian mampu untuk menghadapi perubahan dan spesifikasi yang akan datang dalam kontek pembuatan dan pengembangan sebuah sistem adalah sebuah permasalahan lain.
Hambatan-hambatan yang sering dijumpai dalam pengembangan perangkat lunak tersebut antara lain.
1. kebutuhan yang akan datang sering tidak bisa dipahami dan merupakan sebuah hal yang sering sekali berubah.
2. usaha untuk menggunakan kembali (reuse) sering kali berujung melibatkan komponen-komponen yang sebenarnya tidak bisa digunakan kembali (not reusable) dan sering kali gagal untuk dilakukan.
3. sering sekali terjadi, programer dan sistem analis kehilangan gambaran secara umum tentang apa yang dimaksud dengan kebutuhan yang akan datang.
4. dan yang paling penting adalah para pengembang cenderung melihat permasalahan ke arah permasalahan coding. Pengembang gagal melihat bahwa penyelesaian masalah melalui kekuatan perancangan/desain adalah sesuatu yang patut dipertimbangkan dan merupakan jalur yang tepat.
Apakah Design Pattern tersebut?
Design Pattern adalah sebuah solusi yang berulang-ulang untuk permasalahan yang dijumpai berulang kali didalam sebuah pengembangan aplikasi di dunia nyata (dofactory, 2009). Pendekatan ini akan membuat sebuah gambaran tentang sebuah kumpulan pola dalam kode program dan membuat kategorisasi dari hal tersebut. Kategorisasi tersebut menghasilkan sebuah nama Design Pattern. Selain itu, sebuah design pattern bisa dibentuk dari kesamaan fungsi dan kebutuhan sistem.
Definisi dari Wikipedia (2010), ”a design pattern is a general reusable solution to a commonly occurring problem in software design”. Dari definisi tersebut, design pattern timbul akibat permasalahan yang sering terjadi saat perancangan perangkat lunak.
Pendekatan design pattern dipakai untuk mempercepat proses pengembangan perangkat lunak dan juga menghindarkan permasalahan dikemudian hari. “Design patterns capture many of the structures that result from refactoring” (Gamma et al. 1995, pp. 354), Design pattern mengurangi kemungkinan untuk melakukan aktifitas refactoring.
POAD
Pengembangan perangkat lunak berorientasi pada pattern disebut sebagai POAD (Pattern Oriented Analisys Design). Pendekatan POAD dikatakan mempercepat perancangan dan pengembangan sistem karena pendekatan Design Pattern berbasis komponen, sehingga pendekatan yang semula diharuskan membuat perancangan dari awal, tidak dilakukan namun dengan melalukan pemilihan, pengadaptasian dan penyusunan bagian dari pattern. Hal tersebut dituliskan dalam sebuah buku berjudul ”Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems” karya Sherif M. Yacoub, Hany H. Ammar Addison.
Untuk gambaran lebih jelas tentang keuntungan dari software design pattern bisa dilihat pada tabel dibawah.

Pertamaaxxx.. Nice Posting Bro…
selamat pagi
perkenalkan nama saya satrio. saya masih berstatus mahsiswa di univ,
sriwijaya, dan tugas akhir saya ini membahas tentang desain pattern.
karena saya melihat ada posting di blog mas/pak ada tentang pattern
saya berasumsi ada sudah mengerti dan sudah mempunyai acuan untuk
mempelajari ini.
boleh di beritahu acuan anda ketika menulis post di blog ? seperti
buku atau journal mungkin.
saya contact melalui email tetapi mailer daemon. 🙂
ini email saya
oxoxbyx@gmail.com
ada beberapa buku yang menjadi referensi saya:
1. patterns: service oriented architecture and web services
2. Patterns of Enterprise Application Architecture (Martin Fowler~2002.05)
3. Design Patterns: Element of Reusable Object-oriented Software (addison-wesley, 1995)
4. buku wajib : Gang of Four
dan website :
1. yahoo pattern
2. dofactory.com
untuk obyek websitenya:
1. tokopedia
2. urbanesia
nice info gan, tapi baru “permukaan”nya. Mohon bisa dijelaskan lebih lanjut? Mgkn dengan contoh aplikasinya?mksh sebelumnya
saya sudah buat contoh aplikasi nya, namun hanya sebatas prototype. saya menggunakan modul-modul di drupal untuk mengimplementasikan design pattern yang saya temukan. hasilnya cukup menarik, menghemat waktu pengembangan dan cukup fungsional. sudah saya ujikan ke sidang tesis saya 🙂