Model dan Pola Rancang
www.socineer.com


Bagaimana cara seseorang mengolah informasi dalam otaknya? Kita ambil contoh, bagaimana cara Anda membaca tulisan ini? Bahasa Indonesia dibaca dengan cara dieja. Huruf B dan A, dibaca "BA", dan demikian seterusnya. Coba kita lihat kata "bahasa". Apakah otak Anda 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"? Well, untuk umumnya orang, tidak. Manusia 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). Dengan jumlah 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. Bahwa seseorang mampu mengenali ribuan jenis huruf kanji yang berbeda itu bukan 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 bahwa1: "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 enjinering elektrikal 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 19772.

Buku tersebut diatas merupakan sumbangan buat bidang arsitektur, tetapi pengaruhnya di enjinering perangkat lunak terlihat jauh lebih besar daripada pengaruhnya di bidang arsitektur. Buku itu kemudian diterjemahkan dalam bahasa enjinering perangkat lunak oleh The Gang of Four pada tahun 1995, dengan judul "Design Patterns: Elements of Reuseable Object Oriented Software"3.

Pola Rancang (Design Pattern)

Sang Sensei Christopher Alexander mengatakan, "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". —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 dia 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 di banyak rancangan. Anak-anak kecil juga merupakan ahli dalam bidang pola. Mereka bisa merangkai mainan Lego sedemikian rupa sampai mencapai bentuk yang rumit, yang 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.

Jadi apa yang dikemukakan oleh Christopher Alexander itu tidak ada yang luar biasa. Tetapi dia mengemukakan hal yang belum benar-benar disadari banyak orang sebagai satu fondasi penting dalam rancang bangun. Kemudian dia membicarakan tentang Katalog Pola (Pattern Catalog) yang tidak lain adalah pengorganisasian pola-pola yang ada. Itu juga sudah dilakukan orang sejak lama. Kalau kita pergi ke perusahaan supplier, umumnya mereka menyediakan buku katalog produk-produk mereka. Dari perusahaan bahan bangunan, kita diberi katalog bahan-bahan bangunan. Dalam katalog itu disusun bahan-bahan dan komponen-komponen secara teratur, misalnya bagian Pintu, 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 Naomi Campbell, dan calon pembelipun membayangkan dirinya seperti Naomi (walaupun mungkin dengan ukuran vital badan yang terbalik).

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 pengukir yang jatuh cinta pada patung yang diukir. 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.

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-pole 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.



  1. Edward de Bono, "I am Right, You Are Wrong: From This to the New Renaisance," 1991.

  2. Christopher Alexander, "A Pattern Language : Towns, Buildings, Construction," 1977.

  3. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software," 1995.



Last Revised:Jan 26, 2006
Copyright © 2006 socineer.com
Lihat: Salin Ulang & Redistribusi