Senin, 21 November 2016

Design Pattern: Memento Pattern

DESIGN PATTERN merupakan solusi umum yang dapat digunakan secara berulang kali untuk menyelesaikan masalah umum yang ditemukan dalam desain perangkat lunak.

Terdapat total 23 macam design pattern yang dikelompokkan menjadi 3 macam:

  1. Creational (menyangkut pembuatan objek):
  2. Structural (menyangkut struktur program):
  3. Behavioral (menyangkut kelakuan program):
Berikut adalah contoh gambar pembagian 23 pattern diatas



Kali ini kita akan membahas lebih dalam tentang:
MEMENTO PATTERN

Definisi:
Sebuah pattern yang digunakan untuk mengembalikan kondisi sebuah objek ke kondisi sebelumnya, seperti "undo" atau "redo".

Struktur:
Memento Pattern UML Diagram
Terdiri dari 3 actor class utama, yaitu:

    1. Originator: Menciptakan semacam checkpoint untuk melakukan memento
    2. Memento: Berisi object yang akan di restore kembali menjadi originator
    3. Caretaker: Bertugas mengembalikan object didalam memento menjadi originator
Contoh Penggunaan:
Memento example
Contoh penggunaan adalah pada mekanik yang akan mereparasi kedua piringan rem sebuah mobil. Hanya satu piringan yang dicopot dalam satu waktu sementara sisi lainnya digunakan sebagai memento atau contoh untuk mengembalikan kondisi piringan rem seperti semula.

Contoh Code dalam JAVA:
Langkah 1:

Buat Class Memento
Memento.java
 public class Memento {  
   private String state;  
   public Memento(String state){  
    this.state = state;  
   }  
   public String getState(){  
    return state;  
   }       
 }  


Langkah 2:

Buat Class Originator
Originator.java


 public class Originator {  
   private String state;  
   public void setState(String state){  
    this.state = state;  
   }  
   public String getState(){  
    return state;  
   }  
   public Memento saveStateToMemento(){  
    return new Memento(state);  
   }  
   public void getStateFromMemento(Memento Memento){  
    state = Memento.getState();  
   }  
 }  

Langkah 3:

Buat Class CareTaker
CareTaker.java


 import java.util.ArrayList;  
 import java.util.List;  
 public class CareTaker {  
   private List<Memento> mementoList = new ArrayList<Memento>();  
   public void add(Memento state){  
    mementoList.add(state);  
   }  
   public Memento get(int index){  
    return mementoList.get(index);  
   }  
 }  

Langkah 4:

Gunakan Class CareTaker dan Originator dalam Class MementoPatternDemo

MementoPatternDemo.java


 public class MementoPatternDemo {  
   public static void main(String[] args) {  
    Originator originator = new Originator();  
    CareTaker careTaker = new CareTaker();  
    originator.setState("State #1");  
    originator.setState("State #2");  
    careTaker.add(originator.saveStateToMemento());  
    originator.setState("State #3");  
    careTaker.add(originator.saveStateToMemento());  
    originator.setState("State #4");  
    System.out.println("Current State: " + originator.getState());            
    originator.getStateFromMemento(careTaker.get(0));  
    System.out.println("First saved State: " + originator.getState());  
    originator.getStateFromMemento(careTaker.get(1));  
    System.out.println("Second saved State: " + originator.getState());  
   }  
 }  

Langkah Terakhir:

Periksa outputnya


 Current State: State #4  
 First saved State: State #2  
 Second saved State: State #3  

Selasa, 01 November 2016

Component Diagram dan Deployment Diagram untuk Sensor Pada AC

Component diagram: adalah diagram UML yang menampilkan komponen dalam sistem dan hubungan antara mereka

Berikut adalah Component Diagram untuk sistem Sensor pada AC



Deployment diagram: adalah diagram UML yang digunakan untuk memvisualisasikan topologi dari komponen-komponen fisik dari sistem ketika komponen software nya dijalankan

Berikut adalah Deployment Diagram untuk sistem sensor pada AC