Anda di halaman 1dari 27

Relasi Antar Kelas

Relasi Kelas
1 Asosiasi 2 Directed Asosiasi
3 Agrerasi 4 Komposisi 5 Dependency 6 Realization

Asosiasi
Relasi Asosiasi adalah relasi yang paling umum yang menggambarkan hubungan antar kelas. Relasi ini dipakai ketika satu kelas berhubungan dengan kelas lain, tetapi bisa berdiri sendiri apabila tidak ada kelas lain

Asosiasi
Student -NRP: string -Name: string -Address: string -phone: string +Student(nrp: string, name: string, address: string, phone: string) +assignGrade(course: Course, grade: char): void +addCourse(course: Course): void -ID: string -Name: string -SKS: int +Course(id: string, name: string, sks: int) Course * *

Setiap mahasiswa(Student) mempunyai mata kuliah (Course) dan Mata Kuliah mempunyai mahasiswa. Kardinalitasnya adalah dalam 0 atau lebih kelas Student terdapat 0 atau lebih kelas Course, begitu juga sebaliknya

Asosiasi
Source Code Student
// Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : Student.java // @ Date : 5/9/2012 // @ Author : public class Student { private string NRP; private string Name; private string Address; private string phone; public void Student(string nrp, string name, string address, string phone) {

}
public void addCourse(Course course) {

}
}

Asosiasi
Source Code Course
// // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : Course.java @ Date : 5/9/2012 @ Author : public void addStudent() { } }

public class Course { private string ID; private string Name; private int SKS; public void Course(string id, string name, int sks) {

Directed Assosiation
Directed Asosociation adalah relasi ketika satu kelas membutuhkan informasi dari kelas lain, tetapi hubungannya lemah, sehingga bisa berdiri sendiri jika ada kelas yang hilang

Directed Assosiation
Student College +Name: string +Address: String +Phone: string +Faculty: string <List> studies * 0..* -NRP: string -Name: string -Address: string -phone: string +Student(nrp: string, name: string, address: string, phone: string) +assignGrade(course: Course, grade: char): void +addCourse(course: Course): void

Kelas Student belajar di kelas College. Kelas Student memiliki ketergantungan dengan Kelas College, tetapi jika kelas College tidak ada, Student bisa berdiri sendiri

Directed Assosiation
Source Code Kelas College
// // // // // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : College.java @ Date : 5/10/2012 @ Author :

public class College { public string Name; public String Address; public string Phone; public string <List> Faculty; }

Directed Asosiasi
Source Code Student
// Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : Student.java // @ Date : 5/9/2012 // @ Author : public class Student { private string NRP; private string Name; private string Address; private string phone; public void Student(string nrp, string name, string address, string phone) {

}
public void addCourse(Course course) {

}
}

Agrerasi
Relasi agrerasi digunakan ketika sebuah kelas dibentuk dengan komposisi kelas lainnya. Kelas-kelas tersebut bisa saling berdiri sendiri walau ada kelas yang tidak ada

Agrerasi
Picture -ind: int -tab: Vertex<List> +addVertex(p: Vertex): void +remove(): void 1 * -x: int -y: int +Vertex(x: int, y: int) Vertex

Class Picture memiliki atribut tab yang bertipe Vertex Hubungan kardinalitasnya adalah dalam 1 Picture terdapat 0 atau lebih Vertex hal itu dapat diartikan bahwa Kelas Picture dapat berdiri tanapa kelas Vertex walaupun Vertex adalah bagian dari Picture

Agregasi
Source code kelas Vertex
// // // // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : Vertex.java @ Date : 5/9/2012 @ Author :

public class Vertex { private int x; private int y; public void Vertex(int x, int y) { } }

Agregasi
Source code kelas Picture
// // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : Picture.java @ Date : 5/9/2012 @ Author :

public class Picture { private int ind; private Vertex<List> tab; public void addVertex(Vertex p) { } public void remove() { } }

Komposisi
Relasi komposisi digunakan ketika terdapat hubungan satu kelas merupakan bagian dari kelas lainnya. Jika kelas yang membentuk tidak ada, maka kelas yang dibentuk tidak dapat dibuat

Komposisi
Triangle -titik1: Vertex -titik2: Vertex -titik3: Vertex -sisi1: int -sisi2: int -sisi3: int +Triangle(t1: Vertex, t2: Vertex, t3: Vertex) +hitungLuas(): void +HitungKell(): void +hitungSisi(): void Vertex 1 1..* -x: int -y: int +Vertex(x: int, y: int)

Kelas Triangle terbentuk dari kelas vertex Jika kelas vertex dihilangkan, maka kelas Triangle tidak dapat terbentuk Seperti kehidupan nyata, segitiga terdiri dari 3 titik, jika tidak ada titik maka segitiga tidak dapat dibentuk Hubungan kardinalitasnya dalam 1 Triangle terdapat minimal 1 atau lebih vertex

Komposisi
Source code kelas Vertex
// // // // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : Vertex.java @ Date : 5/9/2012 @ Author :

public class Vertex { private int x; private int y; public void Vertex(int x, int y) { } }

Komposisi
Source code kelas Triangle
// In // // // // // Generated by StarUML(tm) Java Add-

public void Triangle(Vertex t1, Vertex t2, Vertex t3) {


}

@ Project : Untitled @ File Name : Triangle.java @ Date : 5/9/2012 @ Author :

public void hitungLuas() { } public void HitungKell() { } public void hitungSisi() { } }

public class Triangle { private Vertex titik1; private Vertex titik2; private Vertex titik3; private int sisi1; private int sisi2; private int sisi3;

Dependency
Relasi dependency adalah hubungan antar kelas ketika satu kelas menggunakan informasi kelas lain, tetapi tidak sebaliknya

Dependency
MyClass +tool(util: Util): void Util

Kelas MyClass membutuhkan informasi dari kelas util. Di dalam method MyClass terdapat parameter yang memanggil kelas util, tetapi di kelas Util tidak membutuhkan Sehingga kelas MyClass berfungsi jika terdapat kelas Util

Dependency
Source Code Kelas Util
// // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : Util.java @ Date : 5/10/2012 @ Author :

public class Util { }

Dependency
Source Code Kelas MyClass
// // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : MyClass.java @ Date : 5/10/2012 @ Author :

public class MyClass { public void tool(Util util) { } }

Realization
Relasi Realization adalah hubungan dua kelas ketika satu kelas mengkonkritkan kelas lainnya. Contoh dari relasi ini adalah interface, yaitu kelas berisi nama-nama method, dan kemudian direalisasikan dengan kelas lainnya.

Realization
<<interface>> StudentList

Kelas StudentList adalah kelas interface Untuk merealisasikan kelas StudentList, digunakan kelas StudentLinkList

StudentLinkedList +add(student: Student) +delete(name: String) +print()

Realization
Source Code Kelas StudentList
// // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : StudentList.java @ Date : 5/10/2012 @ Author :

public interface StudentList { public void add(Student student); public void delete(String name); public void print(); }

Realization
Source Code Kelas StudentLinkList
// // // // // // Generated by StarUML(tm) Java Add-In @ Project : Untitled @ File Name : StudentList.java @ Date : 5/10/2012 @ Author : public void print() { } }

public class StudentLinkedList implements StudentList { public void add(Student student) { } public void delete(String name) { }

TERIMA KASIH

Anda mungkin juga menyukai