Kamis, 21 Juni 2012

Modul 9 - Behavioral Patterns (State, Strategy)

9.1. State Pattern
State pattern merupakan salah satu design pattern yang tergolong ke dalam behavioral pattern. State pattern muncul akibat adanya kondisi-kondisi (states) yang muncul pada saat pembuatan perangkat lunak. Pattern ini mengijinkan state transition logic untuk disatukan dengan sebuah state object daripada berada dalam kondisional atau switch statement. Pada tugas akhir kali ini, dibuat sebuah perangkat lunak yang mengimplementasikan state pattern untuk menyelesaikan sebuah kasus yang memiliki beberapa kondisi. Untuk mengevaluasi state pattern, dilakukan pengujian serta perhitungan terhadap object-oriented metrics. Sedangkan untuk mengetahui kelebihan dan kekurangan yang ada pada state pattern, akan dibandingkan hasil perhitungan object-oriented metrics perangkat lunak yang menerapkan state pattern dengan perangkat lunak yang tidak menerapkan state pattern untuk sebuah kasus yang serupa. Berdasarkan hasil analisis dan pengujian, jika dilihat dari perhitungan object-oriented metrics, perangkat lunak dengan state pattern memiliki kompleksitas yang lebih tinggi dan membutuhkan usaha yang lebih besar ketika dilakukan maintenance dibandingkan perangkat lunak tanpa state pattern. Namun, jika dilihat dari penanggulangan state yang ada, perangkat lunak dengan state pattern memiliki cara penanggulangan state yang lebih optimal dibandingkan perangkat lunak tanpa state pattern.
Rabu, 20 Juni 2012

Modul 8 - Behavioral Patterns (Mementto, Observer)

8.1. Momento Pattern
Maksud dari pola ini adalah untuk menangkap keadaan internal suatu objek tanpa melanggar enkapsulasi dan sehingga memberikan rata-rata untuk mengembalikan objek ke keadaan awal bila diperlukan. Kadang-kadang perlu untuk menangkap keadaan internal suatu objek pada titik tertentu dan memiliki kemampuan untuk mengembalikan objek untuk menyatakan bahwa di kemudian waktu. Kasus seperti ini berguna jika terjadi kesalahan atau kegagalan. Pertimbangkan kasus suatu objek kalkulator dengan operasi undo seperti kalkulator hanya dapat mempertahankan daftar semua operasi sebelumnya yang telah dilakukan dan dengan demikian akan mampu mengembalikan perhitungan sebelumnya telah dilakukan. Hal ini akan menyebabkan objek kalkulator untuk menjadi lebih besar, lebih kompleks, dan kelas berat, sebagai objek kalkulator akan harus menyediakan tambahan membatalkan fungsi dan harus memelihara daftar semua operasi sebelumnya. Fungsi ini dapat pindah dari kelas kalkulator, sehingga eksternal (sebut saja membatalkan kelas manajer) dapat mengumpulkan keadaan internal kalkulator dan menyimpannya. Namun menyediakan akses eksplisit untuk setiap variabel keadaan kalkulator kepada manajer restore akan tidak praktis dan akan melanggar prinsip enkapsulasi.
Kamis, 14 Juni 2012

Modul 7 - Behavioral Patterns (Interpreter, Iterator, Mediator)


Modul  7 - Behavioral Patterns (Interpreter, Iterator, Mediator)
Pada Modul ke 7 ini kita akan membahas tentang pola Behavioral pattern yaitu kelas interpreter, iterator, mediator pattern.
7.1. Interpreter Pattern
Sebuah masalah kelas terjadi berulang kali dalam sebuah domain yang jelas dan dipahami dengan baik. Jika domain yang ditandai dengan "bahasa", maka masalah bisa dengan mudah dipecahkan dengan "mesin" interpretasi. Pola Interpreter mendefinisikan bahasa domain (yaitu karakterisasi masalah) sebagai tata bahasa bahasa yang sederhana, yang mewakili aturan domain sebagai kalimat bahasa, dan menafsirkan kalimat-kalimat ini untuk memecahkan masalah. Pola ini menggunakan kelas untuk mewakili setiap aturan tata bahasa. Dan karena tata bahasa biasanya hirarkis dalam struktur, hirarki pewarisan kelas aturan memetakan dengan baik. Kelas dasar abstrak menentukan metode interpret(). Setiap subclass beton mengimplementasikan interpret() dengan menerima (sebagai argumen) kondisi saat ini dari aliran bahasa, dan menambahkan kontribusinya terhadap proses pemecahan masalah.
Interpreter menunjukkan pemodelan domain dengan tata bahasa rekursif. Setiap aturan dalam tata bahasa yang bersangkutan merupakan 'komposit' (aturan bahwa referensi aturan lain) atau terminal (simpul daun dalam struktur pohon). Juru bergantung pada traversal rekursif dari pola Komposit untuk menafsirkan 'kalimat' itu diminta untuk diproses.
Selasa, 12 Juni 2012

Modul 6 - Behavioral Patterns (Chain of Responbility, Command Pattern)


6.1.Chain of responsibility
Dalam menulis sebuah aplikasi dalam bentuk apapun, sering terjadi bahwa peristiwa yang dihasilkan oleh satu objek perlu ditangani oleh objek yang satu lagi. Dan, untuk membuat pekerjaan lebih sulit lagi, ketika terjadi penolakan akses ke objek yang perlu menangani hal tersebut. Chain of responsibility pattern memungkinkan objek untuk mengirim perintah tanpa tahu apa objek akan menerima dan menanganinya. Permintaan yang dikirim dari satu objek ke objek lainnya membuat bagian rantai dan setiap objek dalam rantai ini dapat menangani perintah, menyebarkannya atau melakukan keduanya.
Berikut diagram UML untuk pola Chain of Responsibility:
Dalam diagram di atas beberapa penjelasan diperlukan pada apa peran dari setiap kelas: