340 likes | 700 Views
Hubungan Antar Kelas. Diagram kelas. Diagram kelas merupakan sebuah diagram yang digunakan untuk memodelkan kelas-kelas yang digunakan di dalam sistem beserta hubungan antar kelas dalam sistem tersebut .
E N D
Diagram kelas • Diagram kelasmerupakansebuah diagram yang digunakanuntukmemodelkankelas-kelas yang digunakandidalamsistembesertahubunganantarkelasdalamsistemtersebut. • Beberapa elemen penting dalam diagram kelas adalah kelas dan relasiantarkelas. Kelasdigambarkandengansimbolkotaksepertigambarberikut
Barispertamadarisimbol diagram kelasmenandakannamadarikelasyang bersangkutan. Barisdibawahnyamenyatakanatribut-atributdarikelastersebutapasaja, danbarissetelahnyamenyatakanmethod-method yang terdapatpadakelastersebut. • Adapunsimboluntuk access modiferadalahsebagaiberikut: - Untuk public diberisimbol + sebelumnamaatribut/method - Untuk private diberi simbol - sebelum nama atribut/method - Untuk protected diberisimbol # sebelumnama atribut/method
Sedangkanuntukmenggambarkanhubunganantarkelasdigunakansimbolgarisantaraduakelas yang berelasi. Simbolgaristersebutantara lain: - KelasA berasosiasidengankelas B, digambarkansebagaiberikut:
- KelasB merupakanelemen part-of darikelas A (kelas A berelasiagregasidengan kelas B), digambarkan sebagai berikut:
- Kelas A dengan kelas B berelasi komposisi, digambarkan sebagai berikut:
- Kelas A merupakanturunandarikekas B, digambarkansebagaiberikut:
Asosiasi • Asosiasimerupakanhubunganantaraduakelasdi yang merupakanhubunganstruktural yang menggambarkanhimpunan link antarobyek. Contohdarihubunganasosiasiiniadalah:
Pada diagram kelasdiatasterlihathubunganbahwakelasdosenmengajarbeberapamahasiswa. Bentukimplementasidari diagram kelastersebutdi Java adalahsebagaiberikut:
//mahasiswa.java public class mahasiswa { private String nim; private String nama; public void setnama (String nama) { this.nama= nama; } public void setnim (String nim) { this.nim = nim; } public String getnim () { return this.nim; } public String getnama () { return this.nama; } }
//dosen.java public class dosen { private String Kddosen; private String[] nimMHS; private intJmlMahasiswa= 0; public void setKddosen (String Kddosen) { this.Kddosen= Kddosen; } public void setNimMahasiswa (String nimMhs) { if (JmlMahasiswa<5) { nimMHS[JmlMahasiswa] = nimMhs; JmlMahasiswa++; } } public intgetJmlMahasiswa () { return this.JmlMahasiswa; }
public String getKddosen () { return this.Kddosen; } public String getmahasiswa (inti) { return (nimMHS[i]); } }
Padaimplementasiterlihatbahwatidakadarelasi yang kuatantarakelasdosendankelasmahasiswa, hanyaadaatributdarikelasdosen yang serupadenganatributdarikelasmahasiswayang menandakanbahwakeduakelasituberasosiasi, yaituatributnimMahasiswapadakelasdosendanatributnimpadakelasmahasiswa.
agregasi • Agregasimerupakanhubunganantaraduakelasdimanakelas yang satumerupakanbagiandarikelas yang lain namunkeduakelasinidapatberdirisendiri-sendiri. Agregasiseringjugadisebutrelasi “part of” ataurelasi “whole-part”. Contohhubunganagregasiiniadalah:
Pada diagram kelastersebut, terlihathubunganantarakelasJurusandengankelasMahasiswa. Kelasmahasiswamerupakanbagiandarikelasjurusan, akantetapikelasjurusandankelasmahasiswadapatdiciptakansendiri-sendiri. • Implementasidari diagram kelastersebutdalam Java adalahsebagaiberikut:
//mahasiswa.java public class mahasiswa { private String NIM, Nama; public mahasiswa(String no, String nm) { this.NIM = no; this.Nama= nm; } public String GetNIM() { return (NIM); } public String GetNama() { return (Nama); } }
//jurusan.java public class Jurusan { private String KodeJurusan, NamaJurusan; private Mahasiswa[] Daftar = new Mahasiswa[10]; public Jurusan(String kode, String nama) { this.KodeJurusan= kode; this.NamaJurusan= nama; } private static intJmlMhs = 0; public void AddMahasiswa(Mahasiswa m) { this.Daftar[JmlMhs] = m; this.JmlMhs++; }
public void DisplayMahasiswa() { inti; Sistem.out.println("KodeJurusan :" +this.KodeJurusan); Sistem.out.println("NamaJurusan :” +this.NamaJurusan); Sistem.out.println("DaftarMahasiswa:"); for (i=0;i<JmlMhs;i++) Sistem.out.println(Daftar[i].GetNIM()+" "+Daftar[i].GetNama()); } }
Padaimplementasiterlihatbahwakelasjurusanmemilikiatribut yang memilikitipekelasmahasiswa, sehinggakelasmahasiswamerupakanbagiandarikelasjurusan.
komposisi • Komposisimerupakanbentukkhususdariagregasidimanakelas yang menjadi part (bagian) barudapatdiciptakansetelahkelas yang menjadi whole (seluruhnya) dibuatdanketikakelas yang menjadiwhole dimusnahkan, makakelas yang menjadi part ikutmusnah. Contohhubungankomposisiadalahsebagaiberikut:
Dari diagram kelasdiatasterlihatbahwakelas CPU, Monitor, dan Printer semuanyamerupakanbagiandarikelasKomputerdanketikakelasKomputermusnahmakakelas CPU, Monitor, dan Printer akanikutmusnah. • Implementasidari diagram kelastersebutdalam Java adalahsebagaiberikut:
//CPU.java public class CPU { private String Merk; private intKecepatan; public CPU(String m, int k) { this.Merk= m; this.Kecepatan= k; } public void DisplaySpecCPU() { Sistem.out.println(this.Merk+ ", " + this.Kecepatan); } }
//Monitor.java public class Monitor { private String Merk; public Monitor(String m) { this.Merk= m; } public void DisplaySpecMonitor() { Sistem.out.println(this.Merk); } }
//Printer.java public class Printer { private String Merk, Type; public Printer(String m, String t) { this.Merk= m; this.Type= t; } public void DisplaySpecPrinter() { Sistem.out.println(this.Merk+ ", " + this.Type); } }
//Komputer.java public class Komputer { private String Kode; private long Harga; private CPU Proc; private Monitor Mon; private Printer Prn; public Komputer(String k, long h) { this.Kode= k; this.Harga= h; Proc = new CPU("Pentium IV", 500); Mon = new Monitor("Sony Multiscan 15sf"); Prn= new Printer("Canon BJC-210SP“,"Color"); }
public void DisplaySpec() { Sistem.out.println("Kode : “+this.Kode); Sistem.out.print("Processor: "); Proc.DisplaySpecCPU(); Sistem.out.print("Monitor : "); Mon.DisplaySpecMonitor(); Sistem.out.print("Printer : "); Prn.DisplaySpecPrinter(); Sistem.out.println("Harga : Rp."+ this.Harga); } }
Padaimplementasidiatas, terlihatbahwakelas CPU, Monitor, dan Printer merupakanatributdarikelasKomputerdanbarudiciptakanpadasaat instansiasi obyek dari kelas Komputer.