Mengenal Apa Itu Design Pattern dan Jenis-Jenisnya

Theresia Rumahorbo
5 min readJun 8, 2022

--

Halo teman-teman! Di kesempatan kali ini, kita akan mulai belajar pengenalan dan pembahasan mengenai design pattern. Dan pastinya pemahaman kita ini bakal penting banget untuk kita terutama bagi teman-teman yang ingin menambah pengetahuan sebagai developer untuk pengembangan aplikasi/web.

Apa Itu Design Pattern?

  • Design Pattern adalah metode atau solusi umum dari permasalahan-permasalahan umum yang sering terjadi dalam membuat software. Pattern masalah yang timbul dalam pengembangan atau pembuatan aplikasi biasanya memiliki pola yang sama. Pattern tersebut kemudian melahirkan metode ini namun tidak bisa digunakan secara langsung. Metode ini berisi pattern dasar atau disebut sebagai template dari beberapa metode yang digunakan untuk menyelesaikan masalah. Masalah yang muncul pun juga beragam dan muncul dalam situasi yang berbeda-beda pula. Dampak positif dari metode ini adalah dapat menyelesaikan pembuatan atau pengembangan aplikasi secara lebih cepat.
  • Design Patterns bukanlah hal yang bisa ditranslate ke dalam kode program secara langsung. Melainkan hanya template dan panduan cara menyelesaikan permasalahan.

Siapa Yang Butuh Belajar Design Pattern?

  • Semua software developer yang ingin membuat desain software dengan lebih baik. Dengan kita mengerti design pattern, kita akan lebih mudah ketika menemui masalah dalam pembuatan software karena kita sudah mengetahui solusi-solusi umum yang harus dilakukan.

Ada Beberapa Alasan Mengapa Design Pattern Akan Bermanfaat Bagi Kita

  • Desain software lebih baik dan software mudah untuk dimaintain. Pola design pattern berfokus pada pembuatan objek.
  • Penulisan kode menjadi lebih rapi, terstruktur, dan lebih mudah dibaca.
  • Membuat komunikasi antara tim pengembang menjadi lebih efisien. Menggunakannya memungkinkan pengembang untuk menerapkan solusi umum alih-alih menciptakannya kembali dari bawah ke atas. Selain itu, pola memungkinkan pengembang untuk berkomunikasi menggunakan nama yang dikenal dan dipahami dengan baik untuk interaksi perangkat lunak.

— Misalnya, saat menulis program, aturan utama dari suatu objek adalah bahwa semua atribut harus bersifat pribadi dan tidak dapat diakses oleh kelas lain. Jadi, bagaimana kita bisa membuat kode kita lebih mudah dibaca dan beradaptasi? Kita dapat menggunakan Pola Desain Kreasi untuk membersihkan kode kita.

— Alasan lain adalah bahwa design pattern membentuk kosakata bersama yang dapat kita dan kolega kita gunakan untuk berkomunikasi secara lebih efektif. kita dapat berkomentar, “Oh, gunakan saja Singleton untuk itu,” dan semua orang akan memahami saran kita.

Oke, sekarang kita udah tahu nih apa itu design pattern dan kenapa kita perlu untuk mempelajarinya. Sekarang kita ulas lebih dalam apa aja sih jenis-jenis design pattern yang umum digunakan?

Jenis -Jenis Design Pattern Yang Paling Umum Digunakan

Dalam design pattern, terdapat tiga pattern utama yang dapat digunakan antara lain sebagai berikut:

- Creational Pattern (Pola Pembuatan)

Pattern jenis ini adalah solusi untuk menyelesaikan masalah yang ditemukan dalam pembuatan suatu instance atau objek. Contoh implementasi dari creational pattern ini adalah saat pengembang ingin membuat sebuah class untuk database yang dapat diakses dari beberapa lokasi. Pattern ini dapat dibagi lagi ke dalam 5 jenis, yaitu:

  1. Factory Method. Metode ini adalah pola yang menetapkan sebuah interface atau abstract class untuk membuat sebuah objek, tetapi tetap membiarkan subclass untuk mengubah jenis objek yang dibuat. Metode ini baik digunakan ketika developer tidak mengetahui sebelumnya jenis dan depedensi yang tepat dari objek yang harus digunakan oleh kode.
  2. Singleton. Metode ini adalah pattern yang hanya membuat satu instance objek sambil memberikan titik akses global ke instance ini. Pattern ini harus diterapkan ketika kelas dalam program hanya memiliki satu instance yang tersedia untuk semua klien.
  3. Prototype. Pattern ini memungkinkan kita untuk menyalin objek menggunakan instance prototype yang ada dengan membuat objek yang baru dan dapat dikustomisasi sesuai dengan kebutuhan tanpa bergantung dengan objek aslinya.
  4. Builder. Builder adalah creational pattern yang membuat sebuah objek yang kompleks dari objek yang sederhana menggunakan pendekatan yang dilakukan secara bertahap (step-by-step).
  5. Abstract Factory. Pattern ini hanya dapat mendefinisikan interface atau abstract class untuk membuat suatu objek tanpa harus menentukan sub-classnya.

- Behavorial Pattern (Pola Perilaku)

Behavorial pattern merupakan pattern untuk menyelesaikan masalah yang ditemukan dalam komunikasi antar object. Pattern ini dibagi menjadi 11 macam, yaitu:

  1. Chain of Responsibility. Pattern ini menciptakan sebuah rantai yang saling mengirimkan request. Chain of responsibility ini memisahkan pengirim dan penerima berdasarkan request yang dikirim.
  2. Command. Command ini dapat mengubah request menjadi objek yang dapat berdiri sendiri dan berisi seluruh informasi mengenai request tersebut. Patternini dikenal juga dengan sebutan Action or Transaction.
  3. Interpreter. Pattern ini mendefinisikan cara untuk mengevaluasi ekspresi bahasa atau tata bahasa. Pattern ini juga dapat digunakan untuk menafsirkan kalimat dalam bahasa tertentu.
  4. Iterator. Iterator ini dapat digunakan untuk mengakses elemen dari collection object secara berurutan tanpa mengetahui representasi yang mendasarinya (list, stack, tree, dll). Pattern ini dikenal juga dengan Cursor.
  5. Mediator. Mediator ini bekerja dengan cara mendefinisikan bagaimana sebuah objek dapat berinteraksi dengan beberapa class atau objek lainnya. Pattern mediator ini dapat digunakan untuk mengurangi kompleksitas komunikasi antara beberapa objek atau class.
  6. Memento. Pattern ini dapat digunakan saat kita ingin mengembalikan keadaan dari suatu objek ke keadaan sebelumnya tanpa melanggar peraturan yang ada. Pattern ini berguna saat terjadi kesalahan dan kita ingin mengembalikan objek ke keadaan semula. Memento ini dikenal juga dengan sebutan Token.
  7. Observer. Pattern ini dapat diartikan sebagai relasi depedensi antara satu dengan banyak objek, sehingga jika ada perubahan status pada objek, seluruh depedensinya akan mengetahuinya secara otomatis. Pattern ini dikenal juga dengan sebutan Dependents atau Publish-Subscribe.
  8. State. Pattern ini digunakan saat objek mengubah perilaku berdasarkan kondisi internalnya. Objek akan muncul dan mengubah status class tersebut. State ini dikenal juga dengan sebutan Objects for States.
  9. Strategy. Strategy membantu kita dalam mendefinisikan family algorithm, kemudian mengenkapsulasi masing-masing algoritma ke dalam class yang terpisah dan membuat objek dapat dipertukarkan (objects interchangeable). Pattern ini disebut juga dengan sebutan Policy.
  10. Template Method. Pattern ini memungkinkan kita untuk mendefinisikan kerangka algoritma ke dalam base class dan membiarkan subclass mendefinisikan kembali langkah-langkah tertentu dari suatu algoritma tanpa mengubah struktur algoritma.
  11. Visitor. Pattern ini memungkinkan kita untuk menentukan operasi baru tanpa mengubah kelas elemen tempat operasi itu beroperasi.

- Structural Pattern (Pola Struktural)

Pattern ini digunakan untuk menyelesaikan permasalahan yang ditemukan dalam pengaturan komposisi dari class dan object. Structural pattern ini dapat dianalogikan seperti steker, saat ada steker dengan bentuk yang berbeda mau kita gunakan, kita harus menggunakan adapter tambahan sehingga steker dapat sesuai dengan yang kamu inginkan. Pattern ini dibagi ke dalam tujuh macam, yaitu:

  1. Adapter. Pattern ini mengubah class interface menjadi interface yang diharapkan oleh client. Pattern ini dikenal dengan sebutan Wrapper.
  2. Bridge. Pattern memungkinkan kita membagi membagi sebuah class yang berukuran besar menjadi dua hirarki terpisah (yaitu abstraksi dan implementasi) yang dapat dikembangkan secara independen. Pattern ini dapat disebut dengan Handle atau Body.
  3. Composite. Composite ini memungkinkan kamu untuk menyusun objek menjadi sebuah structured tree untuk mewakili seluruh bagian dari hierarki objek.
  4. Decorator. Pattern ini memungkinkan kita untuk mengimplementasikan perilaku baru ke dalam suatu objek dengan menempatkan objek ke objek khusus yang bernama wrapper object.
  5. Facade. Facade ini menyediakan interface yang disederhanakan ke dalam sebuah library atau kumpulan class. Pattern ini dapat mendefinisikan interface yang membuat subsistem lebih mudah dimengerti dan digunakan. Biasanya pattern Facade ini digunakan bersama dengan Abstract Factory.
  6. Flyweight. Pattern ini digunakan pada saat kamu harus membuat banyak objek, pattern ini dapat diimplementasikan untuk mengurangi beban pada memori.
  7. Proxy. Pattern yang terakhir adalah proxy. Pola ini menyediakan tempat pengganti atau placeholder untuk objek lain.

Kesimpulannya design pattern itu apa sih? Jadi, design pattern adalah suatu metode yang digunakan untuk membantu pengembang menemukan solusi dari suatu-suatu masalah-masalah umum yang muncul saat pengembangan perangkat lunak sedang berlangsung.

Demikian pembahasan pembelajaran kita kali ini mengenai design pattern. Semoga bermanfaat ya :)

Untuk penjelasan lebih lanjut, dapat mengunjungi link https://refactoring.guru/design-patterns

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response