Design Pattern
Design Pattern |
cara bikin baju - Melwin Syafrizal, S.Kom
Abstract
Design Pattern dalam Rekayasa Perangkat Lunak dan Object Oriented Programming merupakan sebuah solusi terhadap masalah pemrograman umum yang sering dihadapi serta berulang kali. Pattern adalah bagaimana mendesain class dan bagaimana interaksi yang terjadi antar class tersebut sehingga class yang kita bangun bisa lebih elegan dan reusable (dapat dipakai berulang-ulang).
Pendahuluan
What is a Design Pattern?
Christopher Alexander says, "Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice" [AIS+77]. “Setiap pola mendeskripsikan sebuah permasalahan yang terus muncul dalam lingkungan kita, dan kemudian mendeskripsikan inti solusi dari permasalahan tersebut sedemikian rupa sehingga Anda bisa menggunakan solusi ini sejuta kali tanpa harus melakukannya dengan cara yang sama dua kali”.
Design Pattern adalah sebuah istilah (English) dalam Rekayasa Perangkat Lunak (Software Engineering) yang mengacu kepada solusi umum yang dapat digunakan secara berulang kali untuk menyelesaikan masalah-masalah umum yang ditemukan dalam disain perangkat lunak. Sebuah design pattern tidak berbentuk solusi akhir yang dapat langsung diterjemahkan menjadi kode program.
Design pattern merupakan penjelasan atau template yang menunjukkan bagaimana cara menyelesaikan sebuah masalah yang kemudian dapat digunakan di berbagai situasi yang berbeda-beda. Design pattern untuk object-oriented biasanya menunjukkan relasi dan interaksi antar kelas dan objek, tanpa menjelaskan kelas dan objek akhir yang terlibat dalam sebuah aplikasi. Algoritma biasanya tidak disebut sebagai design pattern, karena algoritma akan menjadi solusi masalah komputasi dan bukan masalah disain.
Model dan Pola Rancang
Bagaimana cara seseorang mengolah informasi dalam otaknya? Bagaimana cara Anda membaca tulisan ini? Bahasa Indonesia dibaca dengan cara dieja. Huruf B dan A, dibaca "BA", huruf C dan A, dibaca “CA”, demikian seterusnya. Coba kita lihat kata "bahasa". Apakah otak Kita sewaktu melihat kata "bahasa" akan mengeja keenam huruf tersebut baru kemudian bisa diambil kesimpulan, bahwa keenam huruf b-a-h-a-s-a itu harus dibaca sebagai "bahasa". Kita yang sudah terbiasa membaca, mengenali kata "bahasa" dari bentuk, bukan dieja, kecuali untuk anak-anak sekolah dasar tingkat awal.
Jika otak harus mengeja setiap kata yang dibaca, betapa meletihkan pekerjaan tersebut. Tetapi otak tidak menggunakan cara yang melelahkan tersebut, melainkan dengan cara mencocokkan pola (pattern matching). Tiap kata digabungkan hingga menjadi kalimat yang dapat dipahami karena memberi makna, sehingga sejumlah perkataan dalam bahasa yang cuma ada beberapa puluh ribu kata, tidak sulit bagi seseorang untuk mengumpulkan pola-pola dalam otaknya. Cara yang sama juga dilakukan oleh pembaca huruf kanji Tionghoa, yang mempunyai puluhan ribu bentuk berbeda. Seseorang mampu mengenali ribuan jenis huruf kanji yang berbeda itu bukanlah keajaiban, tetapi merupakan kemampuan dasar dari otak manusia. Umumnya setiap orang akan mampu melakukannya jika memang berniat mempelajarinya.
Pengenalan pola memungkinkan otak manusia untuk menangani banyak sekali masukan dari alat indera kita. Tanpa pengenalan pola, manusia lumpuh. Edward de Bono meneliti tentang mekanisme berpikir dan menyimpulkan bahwa : "If the brain were not a pattern-making system, we would not be able to read, write, or talk. Every activity, like getting dressed in the morning, would be a major time consuming task. Sport would be impossible - for example, a golfer would have consciously to direct every part of every swing..." — Jika otak bukan sistem pemetaan pola, kita tidak akan mampu untuk membaca, menulis atau berbicara. Setiap kegiatan seperti berpakaian di pagi hari, akan menjadi kegiatan yang berat dan melelahkan. Sport tidak mungkin dilakukan, misalnya, seorang pemain golf harus dengan sadar menghitung setiap ayunan yang dia lakukan.
Kali ini kita tidak akan membicarakan mekanisme berpikir lebih lanjut, tetapi contoh penggunaan pola dalam mekanisme berpikir merupakan sebuah contoh yang bagus untuk memperlihatkan bagaimana cara pengenalan pola memungkinkan effisiensi di bidang lain.
Salah satu dorongan terbesar pada perkembangan teknologi informasi dalam dua dekade terakhir tahun terakhir ini, adalah implementasi dari cara pemrograman berbasis pola. Secara luas, sistem semikian mendasarkan pada Bahasa Pola (Pattern Language). Implementasi Pattern Language bukan sekedar pada cara pengembangan produk, tetapi juga sudah masuk dalam spesifikasi produk itu sendiri sendiri.
Walaupun teknologi informasi dan electical engineering saat kini merupakan bidang-bidang yang paling banyak menggunakan dasar pemikiran berbasis pola, tetapi yang pertama kali merumuskannya secara komprehensif bukan seseorang yang berasal dari latar belakang teknologi informasi atau enjinering elektrical, tetapi seorang arsitek bangunan yang merancang pembangunan kota. Namanya Christopher Alexander. Bersama dengan rekan-rekannya, dia menulis buku yang ternama dan menjadi karya klasik di bidang arsitektur, dan digunakan dalam banyak bidang lain, yaitu "A Pattern Language" pada tahun 1977 .
Buku tersebut diatas merupakan sumbangan buat bidang arsitektur, tetapi pengaruhnya di Software Engineering terlihat jauh lebih besar daripada pengaruhnya di bidang arsitektur. Buku itu kemudian diterjemahkan dalam bahasa Software Engineering oleh The Gang of Four pada tahun 1995, dengan judul "Design Patterns: Elements of Reuseable Object Oriented Software" .
Ada banyak Design Patterns yang sudah diakui kemampuannya, diterima dan diaplikasikan oleh banyak praktisi. Design Patterns yang cukup populer adalah yang diperkenalkan The Gang of Four (GoF) - Erich Gamma, Richard Helm, Ralph Johnson dan John Vlissides. Dalam The Gang of Four (GoF) terdapat 23 Pattern yang dibagi menjadi 3 kelompok besar, sebagai berikut :
Creational Patterns (cara class/object di-inisiasi).
1. Abstract Factory (Creates an instance of several families of classes)
2. Builder (Separates object construction from its representation)
3. Factory Method (Creates an instance of several derived classes)
4. Prototype (A fully initialized instance to be copied or cloned)
5. Singleton (A class of which only a single instance can exist)
Structural Patterns (struktur/relasi antar object/class)
1. Adapter (Match interfaces of different classes)
2. Bridge (Separates an object’s interface from its implementation)
3. Composite (A tree structure of simple and composite objects)
4. Decorator (Add responsibilities to objects dynamically)
5. Facade (A single class that represents an entire subsystem)
6. Flyweight (A fine-grained instance used for efficient sharing)
7. Proxy (An object representing another object)
Behavioral Patterns (tingkah laku atau fungsi dari class/object.)
1. Chain of Responbility (A way of passing a request between a chain of objects)
2. Command (Encapsulate a command request as an object)
3. Interpreter (A way to include language elements in a program)
4. Iterator (Sequentially access the elements of a collection)
5. Mediator (Defines simplified communication between classes)
6. Mementto (Capture and restore an object's internal state)
7. Observer (A way of notifying change to a number of classes)
8. State (Alter an object's behavior when its state changes)
9. Strategy (Encapsulates an algorithm inside a class)
10. Template Method (Defer the exact steps of an algorithm to a subclass)
11. Visitor (Defines a new operation to a class without change)
Secara singkatnya, design pattern adalah best practice pola-pola desain kelas pada perancangan berorientasi objek. Dengan mengaplikasikan design pattern ini, desain sebuah aplikasi dapat menjadi dinamis terhadap perubahan.
Berikut ini beberapa contoh design pattern yang umum digunakan:
a. Creational
Berurusan dengan pembuatan objek (object creation). Pattern jenis ini berkaitan dengan pembuatan objek.
1. Singleton
Kelas yang hanya dapat diinstansiasi menjadi 1 objek. Setiap yang membutuhkan layanan kelas ini akan mendapatkan instans objek yang sama. Kelas ini memiliki konstruktor yang hak aksesnya adalah private (atau protected dalam beberapa kasus). Konstruktor hanya dapat dipanggil dari dalam kelas. Objek lain yang membutuhkan kelas ini dapat meminta instans kelas dengan memanggil method statik GetInstance.
Contoh kelas (dalam bahasa java) yang merupakan Singleton:
class Singleton {
private static Singleton instance = null;
// konstrukto yang modifiernya private
private Singleton {
}
public static Singleton GetInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
2. Factory
Design pattern ini memisahkan kode untuk membuat objek, sehingga ketika jenis objek yang dapat dibuat bertambah, kode yang berubah hanya kode pembuatan objeknya saja.
b. Behavioral
Design pattern yang terkait dengan kelakuan (behavior).
1. Observer
Mempertegas ketergantungan hubungan one to many antara objek-objek agar ketika satu ojek merubah keadaan (status), maka semua objek yang memiliki ketergantungan melaporkan dan meng-update secara otomatis.
Gambar Observer UML class diagram
2. Strategy
Berguna untuk memecah algoritma menjadi bagian-bagian kecil, yang dapat diganti dengan mudah.
c. Structural
Pattern yang masuk jenis ini adalah yang terkait dengan masalah struktural.
1. Adapter
Pattern untuk menyesuaikan interface dari sebuah kelas menjadi interface yang lain.
2. Facade
Pattern untuk memisahkan kode rumit.
Selain design pattern yang disebutkan di atas, masih banyak lagi design pattern lainnya yang tidak sepopuler design pattern-design pattern di atas.
Pola Rancang (Design Pattern)
Seperti yang disampaikan Christopher Alexander: Setiap pola mendeskripsikan sebuah permasalahan yang terus muncul dalam lingkungan kita, dan kemudian mendeskripsikan inti solusi dari permasalahan tersebut sedemikian rupa sehingga Anda bisa menggunakan solusi ini sejuta kali tanpa harus melakukannya dengan cara yang sama dua kali.
Sederhana sekali, dan sebenarnya tanpa Alexander: katakan sekalipun, semua orang juga sudah tahu tanpa disadari. Roda bulat sudah diciptakan dari jaman dahulu kala, lalu rancangan itu dipergunakan dimana-mana dalam banyak rancangan lain. Seorang perancang membuat satu pintu, lalu dipakai dimana-mana pada banyak rancangan. Anak-anak kecil juga merupakan ahli dalam bidang pola (pattern). Mereka bisa merangkai mainan Lego sedemikian rupa sampai mencapai bentuk yang rumit, padahal awalnya hanya merupakan repetisi dari elemen-elemen sederhana. Ada yang merancang rumah dengan ukuran besar yang bisa dimasuki oleh manusia dari butir-butir kecil lego tersebut.
Apa yang dikemukakan oleh Christopher Alexander itu, sebenarnya tidak ada yang luar biasa. Tetapi dia mengemukakan hal yang belum benar-benar disadari banyak orang sebagai satu fondasi penting dalam rancang bangun. Alexander juga membicarakan tentang Katalog Pola (Pattern Catalog) yang tidak lain adalah pengorganisasian pola-pola yang ada. Itu juga sudah dilakukan orang sejak lama.
Coba Anda perhatikan perusahaan supplier, umumnya mereka menyediakan buku katalog produk-produk mereka. Perusahaan bahan bangunan, akan memberi kita katalog bahan-bahan bangunan. Dalam katalog itu disusun bahan-bahan dan komponen-komponen secara teratur, misalnya bagian pintu, nanti ada bagian Pegangan Pintu yang terdiri dari bermacam-macam pegangan, bagian komponen dapur, dsb. Apa yang dimaksud dalam Bahasa Pola tentang Katalog Pola, adalah persis apa yang direpresentasikan oleh buku katalog itu. Jadi apa susahnya? Tidak ada...
Dimulai dengan pengetahuan bahwa pattern itu gampang, kita memulai explorasi kita dalam dunia pattern ini. Terkadang, cuma bahasa dan jargon-jargon yang bikin seseorang pusing, padahal konsep dibelakangnya sederhana sekali.
Model vs Pattern
Umumnya kita lebih mengenal Model daripada Pattern. Itu disebabkan Model adalah konsep yang sudah matang, dan dipelajari di banyak tempat. Kita mengenal pesawat model, yaitu pesawat dalam bentuk yang lebih kecil daripada ukuran sebenarnya. Ketika kontraktor ingin membangun sebuah gedung, dia membuat model gedung dalam ukuran kecil, sehingga para investor bisa mendapatkan gambaran tentang gedung yang ingin dibangun.
Para perancang pakaian menggunakan model untuk mempromosikan baju-baju rancangan mereka. Jadi sebelum seorang wanita memutuskan membeli pakaian tersebut, lihatlah bagaimana pakaian itu dikenakan oleh sang model Catherine Wilson, dan calon pembelipun membayangkan dirinya seperti Catherine Wilson (walaupun mungkin dengan ukuran badan yang beda).
Model adalah abstraksi dari realitas. Realitas di dunia dalam pandangan pertama terlihat seperti chaos, tak teratur. Model memfilter bagian-bagian yang tidak diperlukan untuk memperlihatkan kerangka bagian utama, dan menjadikannya sebagai pengganti dari realitas tersebut untuk diamati atau dimengerti. Misalnya, sebuah patung pualam dari seorang wanita di Roma. Wanita sebenarnya yang dibuat patung mempunyai banyak sekali bulu-bulu di kulit, bintik-bintik di muka, semua itu disepuh halus pada pualam, dan memperlihatkan wanita secara sempurna. Tidak heran ada cerita pemahat patung Yunani yang jatuh cinta pada patung yang diukirnya (Pygmalion).
Rumus-rumus dalam ilmu fisika merupakan model dari realitas juga, dan selalu berdasarkan asumsi-asumsi tertentu. Para ekonom sering menggunakan kata ceteris paribus ketika mengemukakan sebuah model sederhana, yang berarti model itu berlaku jika semua hal lain dianggap sama (yang dalam realitas sebenarnya pasti berbeda).
Pola atau pattern itu terutama bukan abstraksi dari realitas. Pattern lebih mengacu pada pengalaman (experience) berrealitas. Pengalaman memperlihatkan adanya repetisi dari realitas. Suatu pattern selalu berulang (kalau tidak berulang, maka tidak lagi dinamakan sebagai pattern). Dari pengalaman seorang tukang jahit, dia bisa mendapatkan bahwa pola-pola baju pelanggannya mempunyai bagian yang sering berulang. Dari pengalaman itu, dia bisa membuat pola standar, dan kemudian pola ini baru disesuaikan ke badan setiap orang (customization). Setiap benda di dunia ini, jika dipotong terus menerus menjadi kecil-kecil, dan akan sampai saatnya ketika benda itu tidak bisa lagi dipotong tanpa menjadikan bagian-bagian potongan menjadi bahan lain. Bagian terkecil itu kita sebut molekul. Setiap molekul dengan molekul lain membuat pola yang terus menerus berulang, dan dengan kemudian membuat benda dalam ukuran besar, dan pada akhirnya membentuk jagad raya. Kita melihat jagad raya begitu luas dan kompleks, tetapi sebenarnya semua itu hanyalah pengulangan pola-pola dari molekul-molekul sederhana.
Kesimpulan
Baik Model maupun Pattern, punya satu tujuan utama, yaitu mengatasi kompleksitas masalah. Model mengatasi kompleksitas masalah dengan memfilter hal-hal yang tidak signifikan untuk mendapatkan bagian yang terpenting yang bisa direpresentasikan. Sedangkan Pattern mengatasi kompleksitas dengan mendapatkan repetisi / pengulangan dari pola-pola dasar.
Model itu bersifat struktural, sedangkan Pattern itu bersifat literal. Dengan Model, kita melihat bagaimana komponen-komponen dalam model tersebut saling berhubungan secara struktural dalam membangun model tersebut. Dengan Pattern, kita melihat bagaimana pola-pola dasar saling melengkapi untuk membuat suatu gambaran yang lebih besar.
Kita menggunakan Model dan Pattern untuk mengatasi kompleksitas dari realitas. Perpaduan antara model dan pattern, akan menghasilkan kekuatan ganda dalam mengatasi kompleksitas. Kita bisa mendapatkan Modelling with Patterns, dan Patterns of Models. Semua ini adalah usaha untuk meningkatkan kemampuan kita dalam mengatasi persoalan yang semakin lama semakin rumit. Tidak ada yang menyangkal bahwa persoalan teknologi saat ini jauh lebih rumit daripada puluhan tahun lalu. Tetapi banyak perancang dan ahli teknologi masa kini merasa bahwa tugas mereka malah semakin mudah, berkat digunakannya Model dan Pattern. Dua konsep yang sebenarnya sederhana, tetapi mampu membuat pembedaan yang berarti.
Daftar Pustaka:
http://alexbudiyanto.web.id/2006/07/30/introducing-to-design-pattern.html, Introducing To Design Pattern, Software Enginering Alex Budiyanto
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
http://www.dofactory.com/Patterns/Patterns.aspx, Design Patterns in C# and VB.NET - Gang of Four (GOF)
http://www.socineer.com/txt/sains-patmodel.html, Model dan Pola Rancang,
The Gang of Four (GoF) Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2)
cara membuat pola baju gamis
belajar membuat pola baju untuk pemula
cara membuat pola baju anak
pola baju kemeja
cara membuat pola baju dress wanita
bahan dan cara membuat baju
pola baju kebaya
cara membuat pola baju gamis modern
Dengan adanya informasi yang kami sajikan tentang cara bikin baju
, harapan kami semoga anda dapat terbantu dan menjadi sebuah rujukan anda. Atau juga anda bisa melihat referensi lain kami juga yang lain dimana tidak kalah bagusnya tentang Seni Pakai (Applied Art) - Pengertian, Contoh
. Sekian dan kami ucapkan terima kasih atas kunjungannya.
buka mesin jahit : elearning.amikom.ac.id/index.php/.../karya/.../7d75a424153b9379722a05267745a56...