Pelanggan id_pelanggan : String nama : String no_identitas: String alamat : String no_telp : String

Public class pelanggan { private private private private private String String String String String id_pelanggan; nama; no_identitas; alamat; no_telp;

+ Pelanggan (id_pelanggan,nama, no_identitas,alamat,no_telp: String)

Public pelanggan (String id_pelanggan, String nama, String no_identitas, String alamat, String no_telp){ this.id_pelanggan = id_pelanggan; this.nama = nama; this.no_identitas = no_identitas; this.alamat = alamat; this.no_telp = no_telp; } public String getIdPelanggan(){ return id_pelanggan; }

+ getIdPelanggan():String

public void setIdPelanggan(){ this.id_pelanggan=id_pelanggan; + setIdPelanggan(id_pelanggan : } String) public String getNama(){ return nama; } + getNama():String public void setNama(){ this.nama=nama; } + setNama(nama: String) public String getNoIdentitas(){ return no_identitas; } + getNoIdentitas():String public void setNoIdentitas(){ this.no_identitas=no_identitas; } + setNoIdentitas(no_identitas:Strin public String getAlamat(){ g) return alamat; } + getAlamat():String public void setAlamat(){ this.alamat=alamat; } public String getNoTelp(){ return no_telp; } public void setNoTelp(){ this.no_telp=no_telp;

+ setAlamat(alamat:String)

out. String alamat_petugas. } public String getNamaPetugas(){ return nama_petugas. System.id_petugas=id_petugas. int jum_komik.println (“No Identitas ”+getNoIdentitas()).println (“Nama ”+getNama()). System.nama_petugas=nama_petugas. } + setIdPetugas(id_petugas:String) + getNamaPetugas():String public void setNamaPetugas(){ + this.println (“No Telp ”+getNoTelp()). } + getAlamatPetugas():String public void setAlamatPetugas(){ this. } } : : : : : + getInfo():void Petugas Id_petugas : String nama_petugas : String alamat_petugas : String pelanggan []: ListPelanggan komik[]: ListKomik] transaksi[]:ListTransaksi jum_pelanggan: int jum_komik : int jum_transaksi : int public class petugas { private private private private private private private private private String id_petugas.+ getNoTelp():String + setNoTelp(no_telp:String) } public void getInfo(){ System. System.out. setNamaPetugas(nama_petugas: } String) public String getAlamatPetugas(){ return alamat_petugas.println (“Alamat ”+getAlamat()).out.out. int jum_pelanggan. } public void setIdPetugas(){ this. System. + getIdPetugas():String public String getIdPetugas(){ return id_petugas.out.alamat_petugas=alamat_petugas. String nama_petugas. pelanggan[]arrPelanggan=new pelanggan[50]. int jum_komik. } + setAlamatPetugas .println (“Id Pelanggan ”+getIdPelanggan()). komik[]arrKomik=new komik[50]. transaksi[]arrTransaksi=new transaksi[50].

id_komik=id_komik.status_sewa=status_sewa. harga_sewa: number. public komik (String id_komik. String judul.harga_sewa=harga_sewa.println (“Id Petugas : ”+getIdPetugas()).status_sewa=status_sewa. String status_sewa. System. number harga_sewa){ number) this. String status_sewa. this.(alamat_petugas:String) + void cetakArrayTransaksi() public void cetakArrayTransaksi (){ for (int i=0.out. harga_sewa: String judul. + komik (id_komik. } public String getJudul(){ return judul. System.println (“Nama Petugas : ”+getNamaPetugas()). } public void setIdKomik(){ this. i<jum_transaksi. this. } public String getStatusSewa(){ return status_sewa.out. status_sewa. } } + void getInfo() komik id_komik : String status_sewa: String judul : String harga_sewa : number public class komik (){ private private private private String id_komik.out. } + getIdKomik():String public String getIdKomik(){ return id_komik.id_komik=id_komik.judul=judul. this.println (“No Alamat Petugas : ”+getAlamatPetugas()). i++){ arrTransaksi[i]. } } public void getInfo(){ System. } public void setStatusSewa(){ this. judul: String.getInfo(). } public void setJudul(){ + setIdKomik(id_komik:String) + getStatusSewa():String + setStatusSewa(id_komik:String) + getJudul():String .

i++){ arrProduk[i]. i<jum_pelanggan.id_transaksi: String . i<jum_produk.println (“Id Komik ”+getIdKomik()).out.out. . System. jum_pelanggan++.judul=judul. : : + getHargaSewa():String + setHargaSewa(id_komik:String) + void addPelanggan(pelanggan) + void cetakArrayPelanggan() + void cetakArrayProduk() + void getInfo() Transaksi . jum_transaksi++. jum_produk++. i++){ arrPelanggan[i]. } + void addTransaksi(transaksi) public void getInfo(){ System.this. } public void cetakArrayPelanggan(){ for(int i=0. private float denda.denda: float public class transaksi (){ private String id_transaksi.out.println (“Harga Sewa ”+getHargaSewa()). + setJudul(id_komik:String) } public String getHargaSewa(){ return harga_sewa. } + void addProduk (produk) public void cetakArrayProduk(){ for(int i=1. } } public void addTransaksi(transaksi t){ arrTransaksi[jum_transaksi] = t. } public void setHargaSewa(){ this. } } : ”+getJudul()).println (“Judul komik System.getInfo(). } } public void addProduk (produk p1){ arrProduk[jum_produk] = p1.getInfo().harga_sewa=harga_sewa. } public void addPelanggan(pelanggan p){ arrPelanggan[jum_pelanggan]=p.

} public String getIdTransaksi(){ return id_transaksi.id_transaksi=id_transaksi. denda_sewa:float) private float denda_sewa. } public void setTotalDenda(){ this.denda_sewa=denda_sewa. this.denda=denda.out. } public float getTotalDenda(){ return total_denda. denda.-denda_sewa:float + transaksi (id_tansaksi: String. } } : : : + getIdTransaksi():String + setIdTransaksi(id_transaksi:Strin g) + getDenda():float + setDenda(denda:float) + getTotalDenda():float + setTotalDenda(total_denda:float) + void getInfo() . System.out.total_denda=total_denda.denda=denda. System. float denda_sewa){ this. } public void setIdTransaksi(){ this.println (“Id komik ”+getIdKomik()). } public void setDenda(){ this. public transaksi (String id_transaksi. } public void getInfo(){ System. this.out.println (“Total Denda ”+getTotalDenda()). } public float getDenda(){ return denda.println (“Id Denda ”+getDenda()). float denda.id_transaksi=id_transaksi.

} /** * Lazy Factory method. // Lazy initialization } return types. berikut contoh pada Java public class Fruit { private static final Map<String. new Fruit(type)). Instantiates new ones as needed.g. Object Pool merupakas set objek yang diinisialisasi dan siap digunakan.type = type. private final String type. "apple" * @return The Fruit instance associated with that type. Objek pool memberikan bantuan yang signifikan untuk mengurangi biaya inisialisasi yang tinggi. Ketika klien sudah selesai melakukan aksi.containsKey(type)) { types. private Fruit(String type) { this. */ public static synchronized Fruit getFruit(String type) { if(!types. Bendera indikasi digunakan untuk menandai objek bila akan digunakan. // using a private constructor to force use of the factory method. Fruit>().Fruit> types = new HashMap<String. Klien akan memanggil objek yang sudah diinisialisasi di pool dan melakukan aksi terhadap objek yang sudah dipanggil.Contoh Design Pattern Creational 1. e. objek akan dikembalikan ke pool. } . * @param type Any string that describes a fruit type. atau beberapa proses yang 'mahal' sampai saat pertama objek itu dibutuhkan. Lazy Initialization Lazy initialization adalah taktik untuk menunda pembentuka objek. Biasanya lazy initialization dipenuhi dengan mengelola bendera indikasi ketika proses akan dilakukan. Hal ini karena penginisialisasian objek sudah dilakukan di awal dan objek bisa dipakai lagi setelah digunakan sehingga biaya lebih hemat. Contoh class diagram objek pool 2. perhitungan nilai objek. gets the Fruit instance associated with a * certain type.get(type).put(type.

} .

dan bisa menggunakan inheritance untuk memisahkan kewajiban ke masing-masing kelas. agregasi. Bridge Patern Bridge pattern adalah design pattern yang memisahkan abstraksi dari implementasinya sehingga keduanya bisa berdiri sendiri.Structural 1. . 2. Bridge pattern menggunakan enkapsulasi. Sebuah adapter mengizinkan kelas-kelas untuk bekerja sama yang pada umumnya kelas-kelas tersebut tidak bisa bekerja karena interface tidak kompatibel dengan menyediakan interfacenya ke klien sambil menggunakan interfaace yang sebenarnya. The object adapter pattern expressed in LePUS3. The object adapter pattern expressed in UML. The adapter hides the adaptee's interface from the client. Adapter pattern (wrapper pattern) Adapter pattern mentranslasikan interface untuk sebuah kelas menjadi iterface yang kompatibel.

.

Command Pattern Command pattern adalah design pattern yang objeknya digunakan untuk menampilkan dan enkapsulasi semua informasi yang dibutuhkan untuk memanggil method di waktu kemudian.Behavorial 1. dan nilai parameter method. 2. Interpreter Pattern interpreter pattern adalah design pattern yang partikular. . Informasinya terdiri dari nama method. Interpreter menspesifikasikan cara mengevaluasi kalimat dalam sebuah bahasa. Ide dasarnya adalah memiliki kelas untuk tiap simbol (terminal atau nonterminal) di bahasa komputer yang terspesialisasi. objek yang memiliki method.