#1 Design Pattern Concept: Introduction, Apa pentingnya belajar design pattern ?

Galang Aji Susanto
3 min readAug 3, 2020

--

Photo by Pande Satvika on Unsplash

Hello gaes, ini merupakan episode pertama dari sekuel artikel yang saya tulis. Jadi saya ingin membahas tentang design pattern nih. Topik ini merupakan topik yang jarang dibicarakan di tingkat pemula, tetapi saya rasa penting untuk pemula agar mempunyai pemahaman yang lebih tentang bagaimana cara menyelesaikan masalah dalam membangun sebuah software. So buat kalian yang ingin menjadi profesional software engineer wajib kenalan nih sama design pattern.

Oke.. kita mulai dengan pertanyaan Apa? Sebenarnya apa itu design pattern dan apa untungnya kita belajar design pattern? Toh tanpa adanya design pattern kita tetap bisa membuat sebuah software. yap.. saya setuju dengan pernyataan itu, tetapi yang jadi masalahnya adalah apakah kita membuat software itu sendirian. Banyangkan startup sekelas unicorn seperti, bukalapak, tokopedia, gojek, shopee. Apakah kita bisa membuat software kompleks sekelas mereka sendirian? Saya rasa 100% bisa dipastikan tidak mungkin. Terus dimana pentingnya design pattern? design pattern digunakan untuk mempercepat sharing knowledge sesama anggota team. kita akan membahasnya nanti, sekarang kita jawab terlebih dahulu pertanyaan pertama.

Apa itu design pattern?

Design pattern merupakan blueprint yang berisi kumpulan solusi untuk menyelasikan masalah yang biasa ditemukan dalam pengembangan sebuah software.

Karena merupakan sebuah cetakan biru kita tidak bisa menerjemahkan langsung menjadi sebuah code program. Kita cuma diberi semacam tips dan panduan untuk menyelesaikan masalah pengembangan sebuah program. Yang sebenarnya masalah tersebut juga pernah dirasakan oleh software engineer sebelum kita dan menghasilkan sebuah solusi yang terbukti mampu menyelesaikan masalah tersebut secara berulang. Solusi tersebutlah yang disebut dengan design pattern. Bisa dibilang kita belajar dari masa lalu dari senior software engineer terdahulu.

Apa Pentingnya Design Pattern?

Ada beberapa keuntungan tentunya yang bisa kita dapatkan dari belajar design pattern mungkin ini dari sedikit pengalaman saya dan pemahaman saya mempelajari design pattern.

  1. Diluar skill dan pengalaman, pada saat kita interview kerja interviewer sering kali menanyakan mengenai beberapa design pattern yang ada. Tentunya ini akan menjadi nilai plus kita dimata interviewer.
  2. Kita bisa lebih cepat menyelesaikan masalah yang ada dalam pengembangan sebuah software. Karena sering kali kita memukan sebuah salah yang sebenarnya solusinya ada di salah satu design pattern. Dengan memahami design pattern ini kita akan lebih cepat bisa menyelasaikan masalah tersebut dengan menggunakan solusi yang teruji keakuratannya. Kita tidak perlu membuang waktu untuk mencoba-coba mencari solusi lainnya, yang bisa saja terdapat kesalahan didalamnya.
  3. Sharing knowledge dan komunikasi antar anggota team menjadi lebih cepat dan efektif. hal ini dikarenakan design pattern sudah terbukti dan disepakati bersama sesama software engineer. Sehingga kita tidak perlu menjelaskan secara detail dari kodingan kepada rekan kita, cukup “Ohh itu mengunakan singleton” misalnya, rekan kita akan secara langsung memahami apa itu yang dimaksud sengleton kita tidak perlu menjelaskannya secara details.
  4. Design software kita akan lebih baik dan mudah dimaintenance. Karena kita menggunakan best practice dan solusi yang sudah terbukti efektif.

Jenis-Jenis Design Pattern

23 macam Design Pattern oleh Gang of Four (GoF) (sumber: https://www.logique.co.id/blog/2020/05/04/design-pattern/)

1.Creational Pattern: menyelesaikan masalah pembuatan sebuah instance / objek. pengunaan pattern ini akan menaikan fleksibilitas dan reuse code yang telah ada.

Contoh pattern: singleton, prototype, builder, abstract factory, dan factory method.

2. Structural Pattern: Menyelesaikan masalah bagaimana menyusun objek dan class kedalam struktur yang lebih besar. menjaga agar struktur tetap fleksibel dan efisien.

Contoh pattern: proxy, flyweight, facade, decorator, composite, bridge dan adapter

3. Behavior Pattern: Menyelesaikan masalah tentang komunikasi dan penugasan dari responsibilitas antar objek.

Contoh pattern: visitor, template method, strategy, state, observer, memento, mediator, iterator, command, chain of responsibility.

Itu saja yang bisa saya bagi pada episode kali ini. Semoga apa yang saya tuliskan bisa bermanfaat dikemudian hari. Untuk episode berikutnya saya akan coba membahas setiap jenis design pattern secara lebih detail dan disertai contoh kodinyannya. Jadi tetap semangat ya buat kalian yang ingin menjadi software engineer profesional. Kita sama-sama berjuang dan belajar meskipun sangat lelah pastinya ;)

GOOD LUCK

Referensi:

  1. refactoring.guru
  2. sorcemaking
  3. blog logique.co.id
  4. youtube chanel programer jaman now

--

--

Galang Aji Susanto
Galang Aji Susanto

Written by Galang Aji Susanto

iOS Developer | Apple Developer Academy Graduate | Mobile Tech Enthusiast | Full Time Learner & Part Time Coder

No responses yet