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 nama_petugas. komik[]arrKomik=new komik[50]. } public void setIdPetugas(){ this. } + setAlamatPetugas .+ getNoTelp():String + setNoTelp(no_telp:String) } public void getInfo(){ System. setNamaPetugas(nama_petugas: } String) public String getAlamatPetugas(){ return alamat_petugas. int jum_komik. System. System. String alamat_petugas.println (“Id Pelanggan ”+getIdPelanggan()).out. } } : : : : : + 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. } public String getNamaPetugas(){ return nama_petugas. System. System.out. int jum_pelanggan. transaksi[]arrTransaksi=new transaksi[50]. pelanggan[]arrPelanggan=new pelanggan[50].nama_petugas=nama_petugas.println (“Alamat ”+getAlamat()).println (“No Identitas ”+getNoIdentitas()).println (“Nama ”+getNama()). } + getAlamatPetugas():String public void setAlamatPetugas(){ this.println (“No Telp ”+getNoTelp()).id_petugas=id_petugas. + getIdPetugas():String public String getIdPetugas(){ return id_petugas. int jum_komik.out.alamat_petugas=alamat_petugas.out. } + setIdPetugas(id_petugas:String) + getNamaPetugas():String public void setNamaPetugas(){ + this.

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

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

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

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

} .

The object adapter pattern expressed in LePUS3. Bridge Patern Bridge pattern adalah design pattern yang memisahkan abstraksi dari implementasinya sehingga keduanya bisa berdiri sendiri. . Bridge pattern menggunakan enkapsulasi. 2. Adapter pattern (wrapper pattern) Adapter pattern mentranslasikan interface untuk sebuah kelas menjadi iterface yang kompatibel. 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 UML.Structural 1. The adapter hides the adaptee's interface from the client. dan bisa menggunakan inheritance untuk memisahkan kewajiban ke masing-masing kelas. agregasi.

.

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

Sign up to vote on this title
UsefulNot useful