Senin, 26 Desember 2016

Perancangan dan Prototype Implementasi Sistem pada Studi Kasus Aplikasi Group Chat dengan Menggunakan Mediator Pattern

- Evaluasi Akhir Semester -

Perancangan dan Prototype Implementasi Sistem pada Studi Kasus Aplikasi Group Chat dengan Menggunakan Mediator Pattern


Pada materi sebelumnya, telah dibahas mengenai Design Pattern — Mediator Pattern dan Implementasi Mediator Pattern pada ATC. Pada materi berikut ini, akan dibahas mengenai Perancangan dan Prototype Implementasi Sistem pada Studi Kasus Aplikasi Group Chat dengan Menggunakan Mediator Pattern.

Deskripsi Studi Kasus

Studi Kasus yang kelompok kami pilih adalah studi kasus aplikasi Group Chat. Aplikasi Group Chat adalah aplikasi yang digunakan untuk berkomunikasi dalam bentuk mengirim dan menerima pesan dengan anggota lain yang berada dalam satu group chat. Ketika seorang anggota pada Group Chat mengirim pesan ke Chat Server, Chat Server akan bertanggung jawab untuk menyebarkan pesan tersebut ke seluruh anggota Group Chat.

Perancangan Sistem dengan Menggunakan Mediator Pattern

Mediator Pattern adalah salah satu klasifikasi design pattern yang mendefinisikan sebuah objek mengontrol bagaimana satu set objek berinteraksi atau berkomunikasi. Sebuah program biasanya terdiri dari beberapa kelas, sehingga logika dan perhitungan didistribusikan diantara kelas-kelas tersebut. Dikarenakan oleh banyak kelas yang dikembangkan di dalam program, terutama selama pemeliharaan, masalah komunikasi diantara kelas-kelas tersebut menjadi sangat kompleks. Hal tersebut membuat program menjadi lebih sulit untuk membaca dan memelihara. Selain itu, hal tersebut juga membuat program sulit untuk diubah, karena setiap perubahan dapat mempengaruhi code di dalam kelas lainnya.

Dengan menggunakan Mediator Pattern, komunikasi antar objek dirumuskan dengan objek mediator. Suatu objek tidak lagi berkomunikasi secara langsung antara satu sama lain, melainkan berkomunikasi melalui mediator. Jadi, kelas klien dapat menggunakan mediator untuk mengirim pesan ke klien lain dan dapat menerima pesan dari klien lain melalui kelas mediator. Jadi Mediator Pattern digunakan untuk mengurangi kompleksitas komunikasi antara beberapa objek atau kelas dan mendukung pemeliharaan code secara mudah.

Sebelum menggunakan Mediator Pattern, komunikasi diantara setiap kelas sangat kompleks dikarenakan oleh setiap kelas berkomunikasi secara langsung dengan kelas yang lain.

Gb1. Gambaran komunikasi antar kelas sebelum menggunakan Mediator pattern

Setelah menggunakan Mediator Pattern, komunikasi diantara setiap kelas cukup melalui mediator, sehingga mengurangi masalah kompleksitas komunikasi. Objek mediator tidak hanya menghubungkan dua kelas, namun menghubungkan seluruh kelas dalam satu set objek yang berinteraksi. Objek mediator ini menyebarkan informasi yang telah dikirim oleh satu kelas kepada setiap kelas yang lain.

Gb2. Gambaran komunikasi antar kelas setelah menggunakan Mediator pattern

Berikut ini merupakan UML Class Diagram Mediator Pattern
Gb3. Class diagram Mediator pattern


Kelas dan objek pada pattern ini yaitu:
  • Mediator
    • Interface yang mendefinisikan aturan komunikasi antara setiap objek Colleague.
  • ConcreteMediator
    • Mengetahui dan memelihara Colleague.
    • Mengiplementasikan perilaku kooperatif dengan cara mengkoordinasikan objek Colleague.
    • Objek mediator yang memungkinkan terjadi komunikasi diantara setiap objek Colleague yang berpatisipasi.
  • Colleague Classes
    • Masing-masing kelas Colleague mengetahui objek Mediatornya.
    • Masing-masing Colleague berkomunikasi dengan Mediator ketika ada yang harus dikomunikasikan dengan Colleague yang lain.

Perancangan sistem yang akan dibuat adalah aplikasi Group Chat dapat berjalan dengan baik menggunakan Mediator Pattern, dimana pesan yang dikirim oleh salah satu anggota Group Chat dapat disebarkan dan diterima oleh setiap anggota grup melalui objek mediator

Berikut ini merupakan Class Diagram perancangan sistem aplikasi Group Chat dengan menggunakan Mediator Pattern

Gb4. Class diagram aplikasi group chat dengan menggunakan Mediator pattern

Prototype Implementasi Sistem

Berikut ini merupakan prototype implementasi source code Mediator Pattern pada studi kasus aplikasi Group Chat dengan menggunakan Java :

1. Membuat kelas ChatServer. Chat Server adalah kelas interface Mediator yang digunakan oleh anggota Group Chat untuk berinteraksi dengan objek Mediator.
ChatServer.java
 public interface ChatServer {  
   public void addUser(Participant user);  
   public void sendMessage(Participant user, String message);  
 }  

2. Membuat kelas ChatServerMediator. Chat Server Mediator adalah implementasi dari kelas interface Chat Server. Kelas ini akan bertindak sebagai objek mediator yang bertanggung jawab untuk membagikan pesan kepada setiap anggota Group Chat.
ChatServerMediator.java
 import java.util.List;  
 import java.util.ArrayList;  
 public class ChatServerMediator implements ChatServer {  
   private List participantList;  
   public ChatServerMediator(){  
  participantList = new ArrayList();  
   }  
   public void addUser(Participant user){  
    participantList.add(user);  
   }  
   public void sendMessage(Participant user, String message){  
    for(Participant p : participantList){  
      if(p != user){  
    p.receiveMessage(message, user);  
      }  
    }  
   }  
 }  


3. Membuat kelas Participant. Participant adalah anggota dari Group Chat yang dapat berkomunikasi antara satu sama lain dengan cara memanggil objek mediator (kelas ChatServerMediator).
Participant.java
 public class Participant {  
   private String userName;  
   private ChatServer charServerMediator;  
   public Participant(String name){  
     this.userName = name;  
   }  
   public String getUserName(){  
    return userName;  
   }  
   public void joinChatGroup(ChatServer chatGroup){  
    charServerMediator = chatGroup;  
    charServerMediator.addUser(this);  
   }  
   public void sendMessage(String message){  
    System.out.println(userName +", Sending this message : \""  
       + message + "\"");  
    charServerMediator.sendMessage(this, message);  
   }  
   public void receiveMessage(String message, Participant user){  
    System.out.println(userName + ", Received : \"" + message   
       + "\", From : " + user.userName);  
   }  
 }  

4. Membuat kelas GroupChat. Kelas GroupChat akan mensimulasikan komunikasi diantara anggota Group Chat dengan menggunakan kelas ChatServerMediator.
GroupChat.java
 public class GroupChat {  
   public static void main (String args[]){  
  ChatServer chatServer = new ChatServerMediator();  
  Participant jack = new Participant("Jack");  
  Participant george = new Participant("George");  
  Participant emilly = new Participant("Emilly");  
  jack.joinChatGroup(chatServer);  
  george.joinChatGroup(chatServer);  
  emilly.joinChatGroup(chatServer);  
  // Jack is sending message  
  jack.sendMessage("Hi Everyone, I am Jack");  
  // Emilly replying to Jack  
  emilly.sendMessage("Hi Jack, How are you");  
   }  
 }  

Setelah membuat masing-masing kelas dan meng-compile project aplikasi Group Chat dengan menggunakan IDE Blue J, berikut merupakan diagram dari prototype implementasi

Output dari prototype implementasi source code di atas adalah sebagai berikut


Referensi:

https://en.wikipedia.org/wiki/Mediator_pattern
https://www.academia.edu/912877/Design_Pattern_I
http://www.dofactory.com/net/mediator-design-pattern
http://www.techcrashcourse.com/2015/10/mediator-design-pattern-in-java.html
Share:

0 komentar:

Posting Komentar