Rabu, 24 April 2013

Adapter Pattern

,

Kegunaan umum :
Menurut Gang of Four, Adapter patter digunakan untuk mengkonversi nama nama fungsi dan nama agar cocok dengan yang diinginkan oleh client (kelas yang akan menggunakan). Adapter memungkinkan kelas untuk bisa bekerja bersama sama walaupun sebelum tidak memungkinkan Karen a perbedaan nama nama fungsi dan variabel.
Konteks :
  • -          Diinginkan untuk menggunakan suatu class dengan antar muka (method-method public) tertentu tanpa mengubah definisi class tersebut. Class ini kita sebut adaptee.
  • -          Konteks permasalahan dimana kita ingin menggunakan class ini membutuhkan antar muka yang berbeda dari yang dimiliki class adaptee.Antarmuka yang  diperlukan  untuk kita sebut target.
  • -          Antarmuka untuk target dan antarmuka yang dimiliki adaptee secara konsep berkaitan.

Solusi :
-          Antarmuka yang dibutuhkan client(target) didefinisikan sebagai interface dengan method-method yang dibutuhkan untuk menyelesaikan tugas.
-          Definisikan sebuah class adapter yang mengimplementasikan interface target ini.
-          Class adapter memiliki referensi terhadap objek adaptee (relasi compose a.k.a HAS_A).class adapter  menerjemahkan  method yang dideklarasikan pada interface target ke dalam method dari adaptee.
-          Client membungkus objek adaptee ke dalam objek adapter. Client melaksanakan tugasnya dengan memanggil method adapter, dan adapter menerjemahkannya dengan memanggil method adaptee yang bersesuaian.

Desain umum class diagram Adapter :




Selasa, 16 April 2013

Builder pattern

,

Builder Pattern adalah sebuah software design pattern. Tujuannya adalah sebagai langkah-langkah abstract kerangka (kontruksi) object, jika suatu implementasi menggunakan langkah-langkah yang berbeda, maka akan membuat representasi object yang berbeda juga.
Builder Pattern sering digunakan untuk membangun produk sesuai dengan sebuah pola struktur Composite Pattern, dengan cara memisahkan pembangunan kompleks object dari representation, sehingga proses konstruksi yang sama dapat membuat representation yang berbeda.

Abstract Factory Pattern

,


Abstract Factory Pattern (AFP) merupakan salah satu jenis Creational Pattern yang menangani mekanisme penciptaan object secara adaptif Abstract Factory menyediakan sebuah interface untuk menciptakan keluarga yang terkait atau object yang tergantung tanpa menentukan concrete class mereka.

Abstract Factory mampu pengenkapsulasian sekelompok factory, dimana masing-masing factory memiliki “motif” khasnya. AFP menjadi sentral penentuan factory yang akan diinisialisasi sehingga product yang diciptakan dapat mewarisi behaviour yang sesuai dengan motif yang dipilih. Keistimewaan lain adalah product yang diciptakan terbebas dari pernyataan penciptaan concrete class secara langsung. Hal ini memberikan keuntungan yaitu AFP dapat mencegah coupling problem yang pasti terjadi apabila penciptaan object memakai operator new dalam bahasa OOP.

Factory Method Pattern

,


Dengan membuat Factory Method dan mendefinisikan sebuah class interface, kita bisa men-
generate object yang dinamis sesuai kebutuhan dan implementasi yang diinginkan. Harap di-ingat lagi,
ruang lingkup dari Factory Method adalah class, Factory Method sendiri adalah class object yang static.
Contoh di bawah menggambarkan bagaimana ObjectFactory memanfaatkan class interface object menjadi lebih dinamis. Contoh lain implementasi pattern ini adalah BorderFactory atau SocketFactory yang merupakan standart package Java API.
Observer Pattern menerapkan mekanisme Publisher dan Subscriber untuk mengatur bagaimana sebuah object mengetahui perubahan state di object lainnya.

Jumat, 29 Maret 2013

Pengenalan Design Pattern

,
Istilah design patterns dimulai di bidang perancangan bangunan oleh Christopher Alexander. Dalam bukunya A Pattern Language [Alex77], ia menerangkan pola-pola yang terdapat di dalam berbagai rancangan arsitektur bangunan. Arti design pattern diterangkannya dalam kalimat berikut:
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice [Alex77].

Senin, 09 Juli 2012

BAB 6 Exception Heandling

,

BAB 6

Class Dasar , Exception Heandling


Teori  Class Dasar
Dalam pemrograman, suatu string adalah objek. Ada dua kelas string yang akan dibahas yaitu kelas String dan kelas StringBuffer.

Kelas String
Kelas String memodelkan deretan karakter. Kelas ini terdapat dalam java.lang.
Sesuai dengan kuantitas constructornya, ada 7 cara untuk membuat objek String:
String(); // cara1
String(String value); // cara2
String(char value[]); // cara3
String(byte ascii[], int hibyte); // cara4
String(char value[], int offset, int count); // cara5
String(byte ascii[], int hibyte, int offset, int count); //cara6
String(StringBuffer buffer); // cara7

Contoh penggunaan Constructor tersebut :

String aString1 = new String(); // cara1
String aString2 = new String(”haii…”); // cara2
char aArray[] = {’H’,’E’,’L’,’L’,’O’};
String aString3 = new String(aArray); // cara3
String aString4 = new String(aArray,0,4); // cara5
System.out.println(aString4); // HELL

Bab V

,

BAB 5

Interface , Innerclass , Abstrak


Teori Singkat Kelas Inner

Dimana programmer membolehkan untuk mnyisipkan suatu kelas ke dalam kelas lainnya.
Kelas sisipan ini disebut kelas Inner.
Kelas Inner berguna untuk mendukung suatu proses yang akan dijalankan oleh
kelas luarnya.
Beberpa ketentuan kelas Inner :
a) Kelas Luar yang mengandung kelas Inner, bila dikompilasi akan
    menghasilkan dua file *.class, yaitu Luar.class dan Luar$Inner.class
b) Kelas Inner boleh tidak diberi nama, yang disebut Anonymous Inner.
c) Kelas Inner dapat diberi modifier akses public, atau protected, atau
    default, ataupun private.
d) Untuk mengakses referensi this dari kelas luar digunakan bentuk
    NamaKelasLuar.this.
e) Kelas Luar ikut bertanggung-jawab dalam instansiasi kelas Inner (yang
    non static) . Kalau objek kelas Luar adalah a, dan objek kelas Inner adalah
    b, maka sintaks yang benar adalah :
    Luar a = new Luar();
    Luar.Inner b = a.new Inner();
f) Jika kelas Inner bersifat static, maka objek milik kelas Inner dapat dibuat
   sendiri tanpa melalui kelas Luarnya, (Artinya kelas Inner tidak dapat
   mengakses attribute ataupun method non static milik kelas Luarnya).