IKG2I4 / Software Project I Mahmud Imrona, M.T. Izzatul Ummah, M.T. Kelompok Keahlian Algoritma dan Komputasi
LECTURE NOTE WEEK 4
1
3/11/2015
WEEK 4 Relasi Antar Class (Agregasi): – Relasi class Titik dan class Garis – Relasi class Titik dan class Lingkaran – Relasi class Time dan class PulseCounter – Relasi class Titik dan class Segiempat
2
3/11/2015
IKG2I4 – Software Project I
RELASI ANTAR CLASS (AGREGASI) Pada relasi antar class (agregasi), satu class bertindak sebagai supplier dan class lain bertindak sebagai client atau container. – Supplier: class yang digunakan oleh class lain, atau menjadi bagian dari class lain – Client/container: class yang menggunakan class lain, atau class yang beranggotakan/menampung class lain
Pada slide ini yang kita bahas adalah relasi antar class tanpa menggunakan array.
3
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Ingat kembali Praktikum Pemrograman Terstruktur II mengenai ADT Point dan ADT Garis. Garis memiliki variabel titikAwal dan titikAkhir yang masing-masingnya bertipe data Point. Konsep ini sama seperti konsep relasi antar class pada OOP/Java.
4
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS
5
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Class Titik adalah supplier, karena ia menjadi bagian dari class Garis, atau digunakan oleh class Garis. Class Garis adalah client, karena ia menggunakan class Titik sebagai atributnya.
6
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Untuk memahami relasi antar class Titik dan Garis, kita akan mulai pembahasan dari class Driver. class Driver{ public static void main (String args[]){ Titik t1 = new Titik(7,5); Titik t2 = new Titik(8,20); Garis g1 = new Garis(t1,t2); } } 7
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Pada contoh Driver tsb, kita dapat membuat constructor Garis yang menerima input berupa 2 buah Titik. class Garis{ private Titik tAwal; private Titik tAkhir; public Garis(Titik ta, Titik tb){ tAwal = ta; tAkhir = tb; } } 8
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Untuk get dan set pada Garis: class Garis{ public Titik getTAwal(){ return tAwal; } public void setTAwal(Titik ta){ tAwal = ta; } }
9
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Untuk printInfo pada Garis: class Garis{ public void printInfo(){ tAwal.printInfo(); // menampilkan nilai x,y titik awal tAkhir.printInfo(); // menampilkan nilai x,y titik akhir } }
10
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Untuk printInfo pada Garis: class Garis{ public void printInfo(){ tAwal.printInfo(); // menampilkan nilai x,y titik awal tAkhir.printInfo(); // menampilkan nilai x,y titik akhir } }
11
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Untuk method hitungPanjang pada Garis: class Garis{ public float hitungPanjang(){ return } }
Silakan diubah sendiri rumus di atas ke dalam bahasa Java
12
3/11/2015
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Untuk method translasi pada Garis: class Garis{ public void translasi(int dx, int dy){ tAwal.translasi(dx,dy); // menggeser titik awal tAkhir.translasi(dx,dy); // menggeser titik akhir } }
13
3/11/2015
IKG2I4 – Software Project I
PENGAKSESAN CLASS TITIK Kembali ke class Driver, bila kita ingin mengakses atribut atau method class Titik maka harus dilakukan secara bertingkat melalui class Garis. Perhatikan contoh berikut: class Driver{ public static void main (String args[]){ Garis g1 = new Garis(t1,t2); System.out.println(g1.getTAwal.getX()); System.out.println(g1.getTAwal.getY()); } } 14
3/11/2015
RELASI ANTARA CLASS TITIK & GARIS Apa keuntungan dari konsep relasi antar class ini? Mengapa kita tidak membuat class Garis seperti di bawah ini saja? class Garis{ private int private int private int private int } 15
3/11/2015
x1; y1; x2; y2;
IKG2I4 – Software Project I
RELASI ANTARA CLASS TITIK & GARIS Jawab: – Membangun relasi antar class memudahkan programmer untuk memaintenance source code bila ada perubahan, misalnya bila kita menambahkan class Titik dengan atribut z (tiga-dimensi), kita bisa meminimalisir perubahan yang harus dilakukan pada class Garis. – Relasi antar class artinya menggunakan class yang sudah ada (reusability). Konsep ini tentunya diperlukan bila kita ingin membuat sistem perangkat lunak yang besar atau kompleks.
16
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
17
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
18
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
19
3/11/2015
IKG2I4 – Software Project I
TUGAS PEKAN INI (TUGAS INDIVIDU)
20
3/11/2015
IKG2I4 – Software Project I
THANK YOU