Top Banner

of 17

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Kelompo Makalah PPL Observer Pattern k 1

Makalah PPL Observer Pattern3 D Kelompokr 1e4 m IeT n D e p a t A T e k n Adrianti Kusuma W i k / 7409040002 I Riatma Galih n f o r m a t i k a / 7409040007 E E P I S I n d o n e s i a Shoffi Patrisia / 7409040011 Nurul Arini Z / 7409040020 April Fatmasari / 7409040030

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

DAFTAR ISI1. Daftar Isi 2. Bab I : Pengertian Observer Pattern

hal. 2

hal. 3 Loosely Couple Applicability1. Bab II :Struktur pada Observer

hal. 5 Relasi Observer dan Subject UML Diagram Class in UML Diagram1. Bab III : Studi Kasus

hal. 9 Pelelangan Pacman Spreadsheet Program1. Bab IV : Check List

hal. 132. Bab V : Perbandingan Program

hal. 133. Bab VI :Kesimpulan

hal. 15

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

I.

Pengertian Observer PatternObserver adalah suatu interface yang digunakan untuk memastikan suatu konsistensi pada suatu object, Observer pattern memiliki 2 bagian utama, yaitu satu subject yang akan memunculkan event - event tertentu, dan observer sendiri yang akan selalu mengamati event event yang terjadi pada subject. Hubungan antara subject dan observer ini berupa one-tomany, maksudnya satu subject akan memiliki banyak observer.

Saat ada event yang terjadi di subject, subject akan menotifikasi semua observer yang terdaftar dengan memanggil salah satu method yang ada di interface observer.

Loosely CoupleObserver pattern merupakan desain dimana hubungan subject dan observer bersifat loosely couple, karena: Yang perlu diketahui subyek dari suatu obyek observer hanyalah bahwa obyek observer mengimplementasikan tertentu. Kita dapat menambahkan obyek observer kapan saja. Kita tidak perlu memodifikasi subyek jika kita menambahkan tipe observer yang baru. Subyek maupun Observer dapat digunakan kembali tanpa tergantung satu dengan lainnya. suatu interface

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1 Perubahan yang terjadi di Subyek maupun Observer tidak akan mempengaruhi satu sama lain.

ApplicabilityObserver pattern digunakan ketika Subject tidak tahu berapa banyak observer yang ada Subject dapat menotifikasi observernya tanpa harus mengetahui object observernya.

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

I.

Struktur pada Observera. Relasi Observer dan Subject

Terdiri dari 2 point : Subject Observer

Subject : informasi sentral bagi observer jika ada update atau perubahan informasi pada subject --> mencerminkan pada observer yang berlangganan.

Setiap observer menyediakan methode AddObserver () observer baru dapat berlangganan sendiri pada subject.

a. UML Diagram

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

Pola Observer mendefinisikan dependensi one-to-many objek sehingga ketika satu objek change state,

antara semua

tanggungan yang akan diberitahu dan diperbarui secara otomatis. Perihal menggunakan komposisi untuk mendelegasikan observer.

b. Class in UML Diagram Subject Interface

mendefinisikan signature dari metode yang diterapkan dalam objek subjek. Metode yang digunakan oleh observer untuk mendaftar dan unregister dari observer. Interface juga mendefinisikan signature dari metode yang digunakan untuk memberitahu observer ketika state subjek berubah Observer Interface

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

Interface ini mendefinisikan signature dari metode yang diterapkan di objek Observer. pada state. Concrete Subject Interface setidaknya mendefinisikan signature dari satu metode yang bisa disebut oleh subjek ketika perubahan

RemoveObserver(observer)

digunakan oleh concrete observer untuk unregister diri dari subjek itu sendiri sebagai parameter. Metode loop melalui array yang berisi semua observer yang terdaftar. Untuk check weather, apa sudah ada dalam array. Jika ada maka hanya request concrete observer dihapus dari array. NotifyObservers() untuk mengupdate concrete observer pada

digunakan

perubahan state subject. Metode loop melalui array yang berisi semua observer yang terdaftar dan memperbarui call () method pada setiap objek concrete observer, jika diperlukan kita bisa melewati beberapa nilai-nilai terkait untuk mengubah keadaan subjek melalui metode update () pada objek observer. Subject juga dapat menentukan metode seperti getState () dan setState (), yang digunakan untuk mengatur dan mendapatkan perubahan keadaan aplikasi pada Subyek,

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1 sehingga dapat memperbarui mengubah negara untuk semua observer yang terdaftar. Concrete Observer

mengimplementasikan interface Observer. Kelas mengimplementasikan update () metode yang didefinisikan dalam interface Observer. Metode concrete observer dipanggil sudah terdaftar perubahan di state. oleh Subject (jika concrete observer dengan subjek) ketika setiap sendiri

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

I.

Studi Kasusa. Pelelangan

Pada kasus ini merupakan contoh bagaimana observer terjadi. Contohnya adalah pada pelelangan dimana mendemonstrasikan pola observer. Setiap penawar mengajukan beberapa nilai untuk diajukan lelang. Pelelang pun memulai tawarannya dan mengobservasi tawaran mana yang cocok untuk diterima. Misal pada gambar tersebut pelelang menerima tawaran dengan nilai 13. Maka ketika pelelang menerima 13, informasi tersebut di broadcast ke seluruh penawar dan kemudian nilai 13 tersebut diajukan lagi sebagai tawaran baru untuk dicari tawaran tertinggi yang akan diterima.

b. Pacman

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

Observer dapat diterapkan pula pada permainan pacman. Pada permainan terdapat Pacman sebagai Subject dan Musuh sebagai observer. Pola bagaimana yang menunjukkan pola observer dalam permainan ini? Setiap kali Pacman memakan pelet (titik), musuh akan dikonfirmasi bahwa si Pacman memakan peletnya. Tugas dari Musuh adalah menghalangi Pacman untuk menghabiskan pelet dalam 1 wilayah tersebut. Sehingga ketika Pacman membroadcast ke seluruh musuh bahwa ia telah memakan pelet, musuh pun akan menerima broadcast

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1 tersebut dan bergerak menuju tempat Pacman untuk mengagalkan Pacman berhasil memakan semua pelet yag tersedia. Berikut ini overview kode yang dibutuhkan dalam permainan Pacman dengan menerapkan pola observer. // set up Pacman class to broadcast Pacman extends EventDispatcher // tell enemies to listen to pacman instance pacman.addEventListener(Pacman.ATE_PELLET, enemy1.update); pacman.addEventListener(Pacman.ATE_PELLET, enemy2.update); pacman.addEventListener(Pacman.ATE_PELLET, enemy3.update); // broadcast state change pacman.dispatchEvent(new Event(Pacman.ATE_PELLET)); // enemies respond enemyClass.update() { // run away } c. Spreadsheet Program

Pada prorgam spreadsheet dapat diaplikasikan pula pola observer seperti pada diagram. Pada kasus ini yang bertindak sebagai Subyek adalah Spreadsheet Data. Sedangkan Observernya adalah Spreadsheet Formula, Bar Graph dan Pie Chart. Bagaimana Pola Observer yang terjadi? Ketika spreadsheet data mengirim notifikasi kepada Observernya saat terjadi perubahan pada data, SpreadSheet Formula , Bar Graph dan Pie Chart akan menerima notifikasi tersebut. Sehingga data yang baru saja berubah dapat diupdate secara otomatis oleh Observernya. Sehingga 3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1 masing-masing observer tidak perlu diubah secara manual jika terjadi perubahan data.

3 D4 IT A EEPIS Indonesia

Kelompo Makalah PPL Observer Pattern k 1

I. Check ListApa yang perlu dilakukan untuk pattern Observer? Berikut adalah langkahlangkahnya. 1. Bedakan antara fungsi Inti (Independent) dan fungsi Opsional (Dependent). 2. Modelkan fungsi Independen sebagai Subjek. 3. Modelkan fungsi Dependent sebagai hirarki Observer. 4. Subjek hanya dipasangkan kepada kelas dasar Observer. 5. Klien mengkonfigurasi nomor dan tipe dari Observer. 6. Observer mendaftarkan diri mereka sendiri ke Subjek. 7. Subjek membroadcast kejadian ke semua Observer yang terdaftar. 8. Subjek dapat memberikan informasi kepada Observer, atau , Observer dapat Mencari informasi dari subjek.

I. Perbandingan ProgramBEFOREJumlah dan jenis User Interface (atau Dependent) obyek terprogram di kelas Subyek. User tidak memiliki kemampuan untuk mempengaruhi konfigurasi ini.

classDivObserver { intm_div; public: DivObserver( int div ) { m_div = div; } void update( intval ) {

cout