IMPLEMENTASI DIAGRAM CLASS

Setelah kita memahami menganai apa itu diagram class maka kita berlanjut pada langkah selanjutnya yakni mengimplementasikannya kedalam bari code .berikut ini adalah gambaran sebuah class jika di konversi dalam baris kode pemrograman java:
     

Penjelasan : Pada bagian atribut dalam class diagram terdapat 2 atribut dimana atribut name bertipedata string dengan visibilitas public (perhatikan  ‘+’) dan kedua shieldStrength bertipe data integer dengan visibilitas private. Pada bagian operasi terdapat 2 method dimana method fire memiliki visibilitas public dengan return vdata bertipe string dan reduceShield dengan visibilitas public dengan parameter integer dan nilai return kosong atau tanpa return (void).
Setelah memahami bagaiman cara mengkonversi sebuah class sederhana kedalam kode maka langkah selanjutnya adalah memahami bagimana cara untuk mengkonversi class yang berelasi satu sama lain berdasarkan jenis-jenis relasi yang telah dibahas dalam MODUL X  class diagram, sebelum itu mari kita fahami bahwa relasi berkaitan erat tentang lifetime object. Life time object adalah rentang waktu saat dimana sebuah object dibuat hingga dihapus (dispose/reset/destruct).Untuk memahami relasi antar class dalam java setidaknya dibutuhkan 3 buah class. Agar lebih mudah contoh-contoh berikut akan dimisalkan dengan class X,Y,Z dimana  kelas X berelasi dengan kelas Y dan untuk mngetahui hasilnya maka dibutuhkan kelas Z:
1.       Asosiasi adalah ketika kelas Y mengunakan object X sebagai value dalam atribut . Contoh demonstrasi:
public class Customer {
private String name;
private String address;
private String contactNumber;
}

public class Car {
    private String modelNumber;
    private Customer owner;
}
Contoh demonstrasi dengan multisipitas:
public class Car {
    private String brand;

    public Car(String brands){
        this.brand = brands;
    }
    public Car() {
    }
    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

}

public class Customer {
    private Car[] vehicles;
    ArrayList<Car> carList = new ArrayList<Car>();
    public Customer(){
        vehicles = new Car[2];
        vehicles[0] = new Car("Audi");
        vehicles[1] = new Car("Mercedes");
        carList.add(new Car("BMW"));
        carList.add(new Car("Chevy"));
    }
}
2.   Generalisai adalah ketika class Y menggunakan class X sebagai reference superclass sehingga setiap atribut dan method dalam kelas  X dapat digunakan oleh class Y. Contoh demonstrasi:

public class Car { // sebagai Superclass X

    private String model;

    public void printPrice() {

    }

    public String getModel() {

        return model;
                    }public class hatchback extends Car { // sebagai subclass Y                                                    }
3.       Realization adalah ketika class Y menggunakan interface X agar method dan atribut dalam class Y yang terdapat pada interface X dapat dijalankan oleh class Z.
4.       Dependesi adalah ketika salah satu method pada class Y menggunakan parameter object X sehingga ketika Z memanggil object Y maka pada saat pembentukan object Y akan membutuhkan object X sebagai parameter.
Contoh demonstrasi:
public class PaymentSystem { // Sebagai X

}

public class Order { //Sebagai Y
public void processPayment(PaymentSystem ps){ }
}
5.       Agregasi adalah ketika class Y menngunakan object X sebagai atribut namun ketika object Y tidak ada atau dihapus maka tidak berarti object X harus dihapus. Contoh demonstrasi :
final class Car {
  private Engine engine;
  void setEngine(Engine engine) {
    this.engine = engine;
  }
  void move() {
    if (engine != null)
      engine.work();
  }
}
Penjelasan : Dalam kasus ini Y adalah Car dan X adalah Engine maka ketika terdapat class eksekutor katakanlah Z . Pada saat Z mengeksekusi setEngine() pada dasarnya object engine sudah terbentuk maka object engine tersebut tidak terikat pada car maka apabila object car tidak dibentuk maka object engine masih tetap ada. 
6.       Komposisi adalah ketika class Y menggunakan object X sebagai atribut namun ketika object Y tidak ada atau dihapus maka begitu juga object X. Contoh demonstrasi:
final class Car {

  private final Engine engine;

  Car(EngineSpecs specs) {
    engine = new Engine(specs);
  }

  void move() {
    engine.work();
  }
}
Penjelasan : Dalam kasus ini Y adalah Car dan X adalah Engine dimana object Engine tidak akan terbentuk apabila object Car tidak terbentuk karena object engine dibentuk pada saat pembentukan object Car.

0 komentar :

Posting Komentar