Pengantar - adamhendrabrata.files.wordpress.com · Perancangan perangkat lunak berorientasi objek...
Transcript of Pengantar - adamhendrabrata.files.wordpress.com · Perancangan perangkat lunak berorientasi objek...
PPP Tujuan Perkuliahan
Memahami pengertian dan karakteristik pola perancangan
Memahami klasifikasi pola perancangan
Memahami keuntungan dan kelemahan penggunaan pola
Metode OOD menekankan pada penggunaan notasi – notasi untuk perancangan
Baik untuk spesifikasi, dokumentasi
Tapi OOD sebenarnya lebih dari sekedar “menggambar” diagram
Pembuat draft yang baik desainer yang baik
Desainer OO yang baik ditentukan pada banyaknya pengalaman
Karena paling tidak sama pentingnya dengan sintaks
Konsep reuse yang terbaik adalah design reuse
Menyesuaikan masalah pada dengan perancangannya
Menghindari “reinventing the wheel”
Menerapkan solusi desain yang sama untuk masalah yang sama dalam konteks yang berbeda
PPP Motivasi
OOA dan OOD memungkinkan struktur perancangan yang memiliki keutamaan :
Abstraksi
Fleksibilitas
Modularitas
Penyembunyian informasi
Therein lies valuable design knowledge
Tersimpan pengetahuan tentang perancangan yang bermanfaat
Masalah : menangkap, mengkomunikasikan & menerapkan pengetahuan tersebut untuk digunakan kembali dalam konteks yang berbeda
PPP Pengulangan Struktur
Perancangan
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 menggambarkanmasalah yang sering terjadisecara berulang-ulang dilingkungan kita dan kemudianjuga dapat menjelaskan intidari solusi untuk masalahtersebut, sehingga kita dapatmenggunakan solusi iniberkali-kali, tanpa harusmelakukannya dua kali ataulebih untuk sesuatu yang sama
Pada dasarnya teori tersebut disebutkan oleh Christopher Alexander, seorang arsitek ahli yang sangat terkenal di bidang ilmu arsitektur
Kemudian teori tersebut diadaptasi di dunia Software Engineering dan dipopulerkan oleh Gamma, Helm, Johnson and Vlissides(The gang of four, Go4, GOF)
PPP Pola – Pola Perancangan
Christopher Alexander
Perancangan perangkat lunak berorientasi objek OO relatif sulit
Merancang perangkat lunak berorientasi objek yang dapat digunakan kembali itu lebih sulit
Desainer sistem berorientasi objek yang berpengalamandapat membuat desain yang lebih baik
Desainer pemula cenderung akan “jatuh” kembali menggunakan teknik lama sebelum ada OO
Desainer yang berpengalaman mengetahui ada “sesuatu”
Desainer yang sudah ahli akan memahami pemecahan setiap permasalahan tidak harus mulai dari awal lagi
Mereka menggunakan kembali solusi yang sudah ada
Pola-pola ini membuat desain OO lebih fleksibel, elegan, dan akhirnya dapat digunakan kembali
PPP Alasan Penggunaan
Pola – Pola Perancangan
Abstraksi dari perulangan struktur desain
Terdiri atas kelas atau objek
Dependensi
Struktur
Interaksi
Konvensi
Memberi nama dan menspesifikasikan struktur desain tersebut secara eksplisit
Hasil kristalisasi dari pengalaman dalam perancangan sistem
Pola – pola perancangan dikatakan baik, jika:
Sebisa mungkin sangat umum dan general
Mengandung solusi yang telah terbukti efektif untuk memecahkan masalah dalam konteks tertentu
PPP Pola – Pola Perancangan
Nama / Name
Sebuah nama yang berarti, yang mencerminkan pengetahuan yang diwujudkan oleh pola tertentu
Masalah / Problem
Menguraikan masalah yang akan diselesaikan atau ditujukan pada pola tertentu
Konteks / Context
Situasi umum di mana pola akan digunakan, termasuk domain aplikasi
Batasan / Force
Isu atau masalah yang perlu dipertimbangkan dalam proses memecahkan masalah, termasuk batasan dan kendala
Solusi / Solution
Cara yang disarankan untuk memecahkan masalah dalam konteks tertentu harus sesuai dengan pertimbangan batasan
PPP Template Pola – Pola Perancangan
Mengkodekan desain yang baik
Menyaring & menggeneralisasi pengalaman perancangan
Membantu para pemula maupun yang sudah ahli
Memberikan nama struktur desain secara eksplisit
Penggunaan kosa kata umum
Mengurangi kompleksitas
Meningkatkan unsur ekspresifitas
“Menangkap & melestarikan” informasi perancangan
Menjelaskan keputusan-keputusan dalam desain dengan ringkas
Meningkatkan dokumentasi
Memfasilitasi restrukturisasi / refactoring
Pola-pola ini saling terkait satu sama lain
Memberikan unsur fleksibilitas tambahan
PPP Tujuan Pola – Pola Perancangan
Gang of Four mendefinisikan beberapa design pattern dengan 2 kategori utama
Sesuai Ruang Lingkupnya (Scope)
Sesuai Tujuannya (Purpose)
PPP Kategorisasi GOF
Berdasarkan ruang lingkupnya (Scope) : domain dimana pola tersebut akan diaplikasikan
Klas bertitik berat pada klas dan hubungannya dengan sub-klasnya pada saat kompilasi (statis)
Objek bertitik berat pada objek-objek dan hubungannya pada saat run-time (dinamis)
PPP Kategorisasi GOF
Berdasarkan tujuannya (Purpose) : mencerminkan apa yang akan dilakukan pola tersebut
Penciptaan (Creational) berorientasi pada pembangunan objek
Klas memberikan tugas pembuatan objek kepada subklas
Objek memberikan sebagian tugas dari penciptaan objek kepada objek lain
Struktur (Structural) bagaimana objek tersusun dari kelompok yang lebih besar
Klas pembentukan struktur melalui pewarisan / inheritance
Objek pembentukan struktur melalui komposisi / composition
Perilaku (Behavioral) bagaimana tanggung jawab didistribusikan
Klas algoritma / kontrol melalui pewarisan
Objek algoritma / kontrol melalui kelompok objek / komposisi
PPP Kategorisasi GOF
Konteks
Ketika sebuah asosiasi dibuat diantara dua klas, kode untuk klas-klas tersebut menjadi tak terpisahkan
Jika kita ingin menggunakan kembali satu klas, maka kita juga harus menggunakan kembali klas yang lainnya
Masalah
Bagaimana kita dapat mengurangi interkoneksi antar klas, terutama antara klas-klas yang “ikut” atau dimiliki modul lain atau subsistem yang berbeda ?
Batasan
Kita ingin memaksimalkan fleksibilitas sistem sebaik dan seoptimal mungkin
PPP Observer (Behavioral)
Contoh 1 : Representasi diagram / grafik
PPP Observer (Behavioral)
Saat kita membutuhkan bermacam representasi informasi yang berbeda dari sebuah data yang sama
Contoh 2 : Subscriber Youtube
PPP Observer (Behavioral)
Pemberitahuan informasi video yang sama ke berbagai orang yang berbeda
Keuntungan
Penggunaan kembali (reuse) solusi generik
Menyediakan kosakata untuk membahas domain permasalahan di tingkat abstraksi yang lebih tinggi
Meningkatkan pemahaman, restrukturisasi & komunikasi tim
Kekurangan
Dapat membatasi kreativitas
Penggunaan pola dapat menyebabkan over-design atau perancangan yang berlebihan
Dampak pada sistem organisasi
Penggunaan pola membutuhkan perhatian dan perencanaan khusus
Pola harus digunakan dengan bijak dan tidak boleh asal digunakan tanpa analisis yang jelas
PPP Keuntungan dan Kelemahan
Penggunaan PPP
Penggunaan pola-pola perancangan telah diidentifikasi dalam banyak domain aplikasi yang berbeda dan dapat berlaku di banyak tahapan yang berbeda dari proses pengembangan perangkat lunak
Pola-pola perancangan bukan merupakan obat mujarab dari semua masalah
Setiap kali kita melihat indikasi bahwa pola-pola perancangan dapat diterapkan, kita bisa jadi “tergoda” untuk langsung menerapkan pola-pola perancangan
Hal ini dapat menyebabkan keputusan desain yang tidak bijaksana
Harus selalu paham secara mendalam akan batasan-batasan yang berimbang dan ketika ada pola lain yang dapat menyeimbangkan batasan secara lebih baik
Pastikan kita membuat setiap keputusan desain dengan hati-hati
PPP Kesimpulan