+62 896 6423 0232 | info@idmetafora.com
Software ERP Indonesia IDMETAFORA


Design Pattern Dalam Pengembangan Software

31 August, 2022   |   Administrator

Design Pattern Dalam Pengembangan Software

Dalam pengembangan perangkat lunak, pola desain (Design Pattern) adalah solusi untuk masalah umum yang digunakan berulang-ulang dalam desain perangkat lunak. Design pattern bukanlah desain akhir yang dapat langsung diubah menjadi kode. Design pattern adalah deskripsi atau template untuk memecahkan masalah yang dapat digunakan dalam situasi yang berbeda.
 
Dengan mempelajari tentang design pattern dapat membantu Anda mengontrol proyek besar secara lebih terstruktur, dan memberikan ide yang dapat digunakan dalam semua situasi.
 

Apa itu Design Pattern ?

Design pattern atau pola desain adalah metodologi yang dikembangkan untuk membantu tim pengembangan menemukan solusi dari masalah umum yang terjadi selama pengembangan perangkat lunak.
Design pattern merupakan cara untuk memecahkan masalah yang biasanya berulang atau memiliki pola dalam pengembangan perangkat lunak. Design pattern bukanlah metode yang  dapat diubah secara langsung menjadi kode program, tetapi pola dasar atau template untuk cara memecahkan masalah dalam berbagai situasi.
 

Sejarah Design Pattern

Konsep design pattern pertama kali dikemukakan oleh Christopher Alexander dalam buku “A Pattern Language: Town, Buildings, Construction”, pada tahun 1977.
Dalam buku tersebut, Christopher Alexander memaparkan pengalamannya dalam memecahkan masalah desain yang berkaitan dengan desain arsitektur. Alexander menemukan bahwa menggunakan struktur desain tertentu berulang-ulang memberikan hasil yang diinginkan.
Pada tahun 1994, konsep design pattern tersebut dikembangkan lagi,  dalam buku yang ditulis oleh Gang of Four, berjudul “Design Pattern” dengan contoh kode program aplikasi yang memiliki Graphical User Interface (GUI).
  

Jenis-jenis Design Pattern




Design pattern dibagi menjadi 3 kategori, yaitu:

1. Creational Pattern (Pola Pembuatan)
Pola pembuatan dimaksudkan untuk menyediakan mekanisme pembuatan objek yang dapat meningkatkan fleksibilitas dan penggunaan kode yang ada. Cukup dipahami bahwa pola kreatif digunakan saat membuat objek agar orang lain dapat dengan mudah mengingatnya.
Pada pola pembuatan objek, pemecahan masalah menggunakan teknik delegasi. Di sisi lain, dalam kasus pola konstruksi kelas, metodenya adalah pewarisan. Creational pattern sendiri terbagi dalam 5 pola sebagai berikut:
  • a. Prototype, dimana pola ini memungkinkan proses penyalinan objek yang ada berjalan tanpa kode, yang berarti bahwa jenis kegiatan ini adalah kelas independen.
  •  
  • b. Builder, dapat membantu Anda membuat  objek  kompleks. Langkah-langkah yang disediakan oleh builder selangkah demi selangkah dan mudah dipahami.
  •  
  • c. Abstract Factory. Dengan menggunakan teknik ini, Anda dapat membuat objek yang berbeda bersama-sama tanpa  menentukan kelas tertentu.
  •  
  • d. Singleton adalah objek tunggal yang harus berisi satu instance di kelas dan  dapat digunakan di semua kelas. Singleton menjamin bahwa kelas hanya memiliki satu instance dan menyediakan titik akses global ke instance tersebut. Ada dua bentuk singleton yaitu Lazy Instantiation dan Early Instantiation.
  •  
  • e. Factory Method. Dalam pola ini, membuat instance kelas adalah tanggung jawab subkelas. Subclass dapat membuat perubahan pada objek yang mereka bangun, bahkan jika antarmuka yang disediakan saat proyek dibangun adalah superclass.
 
2. Structural Pattern
Structural pattern adalah pola yang digunakan untuk memecahkan masalah yang berkaitan dengan komposisi kelas dan objek. Ada beberapa pola yang dapat digunakan untuk menyelesaikan masalah dalam kategori ini, yaitu:
  • a. Bridge, memecahkan kelas besar masalah yang dapat dipecah menjadi implementasi dan abstraksi. Pemisahan ini memungkinkan pembangunan menjadi mandiri.
  •  
  • b. Composite adalah pola yang memberikan susunan objek dalam bentuk struktur pohon. Meskipun berbentuk struktur pohon, tetapi objek tetap muncul sebagai objek terpisah.
  •  
  • c. Adapter, digunakan untuk mengubah kelas antarmuka sesuai keinginan klien. Objek yang mungkin tidak kompatibel sebelumnya dapat berinteraksi.
  •  
  • d. Dekorator, menambahkan behavior baru ke objek dengan menempatkannya di objek pembungkus khusus yang berisi behavior tersebut.
  •  
  • e. Proxy, pola yang menyediakan objek dengan lokasi untuk kontrol akses aplikasi yang dapat mengurangi biaya dan  kompleksitas.
  •  
  • f. Flyweight, pola ini mencoba mengurangi pembuatan dan manipulasi banyak objek serupa.
  •  
  • g. Facade, pola yang menyediakan antarmuka sederhana yang dapat diimplementasikan dengan pengkodean yang baik.
3. Behavioral Pattern
Behavioral pattern bertujuan untuk menjaga komunikasi dan asosiasi yang efektifantar objek. Untuk memudahkan dalam mengingat, cukup dipahami bahwa pola perilaku digunakan saat mengelola interaksi objek. Terdapat beberapa macam behavioral pattern, yaitu:
  • a. Observer pattern, secara umum observer pattern mendefinisikan ketergantungan satu-ke-banyak antara objek. Ketika suatu objek mengubah data, semua data tentang objek lain yang bergantung pada objek tersebut akan diperbarui secara otomatis.
  •  
  • b. Command pattern, memberikan suatu perintah yang menghasilkan keluaran data tanpa mengetahui bagaiman perintah tersebut dijalankan.
  • c. Interpreter, Saat mengevaluasi ekspresi linguistik atau tata bahasa, pola-pola ini juga digunakan untuk menafsirkan kalimat dalam bahasa tertentu.
  •  
  • d. Mediator, Mendefinisikan bagaimana suatu objek berinteraksi dengan kelas atau objek lain.
  •  
  • e. Chain of Responsibility, ini menciptakan rantai yang saling mengirim permintaan. Chain of responsibilty ini memisahkan pengirim dari penerima berdasarkan permintaan yang dikirim.
  •  
  • f. Memento, dapat digunakan jika ingin mengembalikan keadaan suatu objek ke keadaan sebelumnya tanpa melanggar aturan yang ada. Pola ini berguna jika Anda mendapatkan kesalahan dan ingin mengembalikan objek ke keadaan semula. Memento juga dikenal sebagai tanda
  •  
  • g. Template Methode, merupakan pola perilaku yang membantu menentukan kerangka kerja algoritma di kelas dasar dan memungkinkan subkelas untuk mendefinisikan kembali langkah-langkah algoritma tanpa mengubah strukturnya.
  •  
  • h. Visitor, memungkinkan Anda untuk menentukan operasi baru tanpa mengubah kelas elemen yang Anda jalankan.
  •  
  • i. Strategy, mendefinisikan keluarga algoritme, mengelompokkannya dan membuatnya dapat dipertukarkan. Pola ini menghasilkan berbagai algoritma yang dapat digunakan secara independent.
  •  
  • j. State, memungkinkan suatu objek untuk mengubah perilakunya ketika terjadi perubahan internal.
  •  
  • k. Iterator, dapat mengakses elemen objek secara berurutan tanpa mengungkapkan representasi objek. Iterator ini memungkinkan Anda untuk mengakses elemen objek koleksi secara berurutan tanpa mengetahui representasi yang mendasarinya (daftar, tumpukan, pohon, dll.). Pola ini juga dikenal sebagai kursor.
 

Manfaat Design Pattern

Setelah penjelasan diatas, berikut adalah beberapa manfaat dari design pattern:
  • a. Membuat penulisan kode program menjadi lebih terstruktur, rapi, dan mudah di pahami.
  • b. Memberikan solusi berdasarkan masalah yang ada pada saat mengembangkan perangkat lunak.
  • c. Mewujudkan komunikasi tim pengembang yang efesien.
 

Kesimpulan

Design pattern sendiri merupakan metode yang dapat digunakan oleh developer untuk  menemukan solusi dari masalah umum yang terjadi selama pengembangan perangkat lunak. Selain itu, pola desain ini dapat digunakan berulang kali untuk mempercepat proses pengembangan perangkat lunak. Ada tiga pola utama dalam pola desain ini: pola kreasi (Creational Pattern), pola perilaku (Behavioral Pattern), dan pola structural (Structural Pattern).
Dengan menggunakan design pattern dalam pengembangan software, Anda dapat menulis kode yang dapat dipahami semua orang, dan membuat kode yang reusable untuk melakukan pekerjaan berulang lebih dari satu tempat.

___

IDMETAFORA adalah Perusahaan Solusi IT, bisnis utama kami adalah Pengembangan ERP.
Kami juga mendukung klien kami dalam pengembangan Internet of Things, Desain & Pengembangan Web.

Hubungi kami di : 0896 6423 0232 atau 0813 9399 3723.
Jl. Damai, Sleman, Yogyakarta.
PT Metafora Indonesia Teknologi

Liputan Software ERP IDMETAFORA Indonesia!

Jika anda merasa artikel ini bermanfaat, bagikan ke pengikut anda melalui tombol dibawah ini:



Software ERP Indonesia

Artikel rekomendasi untuk Anda