Seperti telah disebut diatas hubungan adalah asosiasi antara entiti.
Suatu hubungan dapat melibatkan beberapa buah entiti, dua, tiga bahkan lebih.
Tetapi kadang kala kita juga menemukan hubungan yang melibatkan sebuah entiti
saja. Pada umumnya kita hanya merumuskan hubungan tingkat dua. yaitu hubungan yang melibatkan dua buah
entiti saja.
Pada umumnya kita hanya merumuskan hubungan tingkat dua. yaitu hubungan yang melibatkan dua buah
entiti .
Relasi sendiri adalah
Menjelaskan bagaimana antar class saling berkaitan. Ketika sebuah class
mengirimkan message ke class lain pada Interaction Diagram, maka harus terdapat
relasi pada kedua class tersebut.
Asosiasi adalah hubungan
semantic bi-directional diantara class-class. Ini bukan aliran data seperti
pada pemodelan desain dan analisa terstruktur, data diperbolehkan mengalir dari
kedua arah. Asosiasi diantara class-class artinya ada hubungan antara
object-object pada class-class yang berhubungan. Banyaknya object yang
terhubung tergantung dengan beragamnya object (multiplicity) yang ada asosiasi
Asosiasi Relationship yaitu Menggambarkan suatu class
yang mengirimkan pesan ke class lain, Memungkinkan suatu class mengetahui
atribut & operasi yang mempunyai visibilitas public dari class lain ,implementasinya
Suatu class memiliki atribut dengan tipe data class lain.
Tipe - tipe hubungan dalam asosiasi relationship ada tiga yaitu One to
one Relationship,One to Many Relationship, dan Many to many Relationship.
Tipe- Tipe
Hubungan
1. One to One Relationship
One-to-one
Relationship (1:1) adalah apabila satu occurance (anggota) suatu entiti hanya
berhubungan dengan tidak lebih dari satu occurance lawannya. Sebagai misal
perhatikan contoh berikut: Seorang suami hanya dibolehkan mempunyai satu Istri dan
seorang Istri juga hanya dibolehkan mempunyai seorang suami. Maka hubungan
antara Suami dan Istri adalah Hubungan satu-satu (1:1). Dari contoh ini ada dua
entiti yang berbeda yaitu Suami, Istri, dan hubungan kedua entiti tersebut
dapat dejelaskan atau dinamai Istri dipunyai oleh, atau Mempunyai seorang Suami.
Hubungan
satu-satu seperti yang diterangkan diatas akan terlihat seperti gambar berikut
ini.
Menamai
Hubungan
Kadang
kala kita ragu dalm memberi nama suatu hubungan, pemberian nama Hubungan
dapat
ditinjau dari dua titik. seperti contoh diatas dapat dikatakan Suami
"mempunyai" Istri atau Istri "dipunyai" Suami. Pemberian nama suatu
Hubungan ini
tidaklah hal yang prinsipil, kedua alternatif diatas dapat diterima. Apa
bila
ada hanya satu hubungan antara dua buah entiti, hubungan dapat saja
dinamai
dengan gabungan nama dua buah entiti yang berhubungan.
2. One to
Many Relationship
One to Many (1:M) Relationship apabila satu occurance
dari suatu entiti hanya berhubungan dengan tidak lebih dari satu occurance
entiti lawan, tetapi satu occurance entiti lawan dapat berhubungan dengan lebih
dari satu occurance entiti tersebut.
Perhatikanlah contoh berikut.
Setiap matakuliah yang diajarkan di Universitas
Andalas diawasi oleh seorang dosen sebagai penanggungjawab, yang merupakan
anggota staf pengajar. Sedangkan seorang dosen dapat saja bertugas mengawasi
lebih dari satu matakuliah.
Dari contoh diatas dapat diidentifikasi entiti Dosen
dan Matakuliah dan hubungan kedua entiti tersebut Mengawasi atau Diawasi.
Secara grafik hubungan One to Many (1:M) ini dapat dilihat seperti dibawah ini.
Implementasi pada Aplikasi JAVA
a. Berikut ini adalah penerapaan
asosiasi pada JAVA, yaitu hubungan one to many antara mahasiswa dengan mata kuliah.
Kelas yang dibutuhkan antara
lain :
1. Kelas
Mahasiswa
2. Kelas Mata Kuliah
3. Kelas Ambil
Berikut ini adalah source code
dari masing-masing kelas:
1. Kelas Mahasiswa
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package dosenasosiasi;
public class mahasiswa {
private String NIM;
protected String[] KodeMakul=new String[2];
protected String[] NamaMakul=new String[2];
private int jmlMakul=0;
public mahasiswa(String kode){
this.NIM=kode;
}
public void setNIM (String NIM) {
this.NIM = NIM;
}
public void setKodeMakul (String KdMakul) {
KodeMakul[jmlMakul]=KdMakul;
jmlMakul++;
}
public void setNamaMakul (String NmMakul) {
KodeMakul[jmlMakul]=NmMakul;
jmlMakul++;
}
public int getJmlMakul () {
return
this.jmlMakul;
}
public String getNIM () {
return
this.NIM;
}
public void daftarMakul() {
System.out.println("NIM
: " +NIM);
System.out.println("Daftar Makul Yang Diambil : ");
for (int
i=0;i<jmlMakul;i++){
System.out.println(KodeMakul[i]);
}
}
}
2. Kelas Makul
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package dosenasosiasi;
public class makul {
private String
KdMakul;
private String
NmMakul;
public makul
(String KdMakul , String NmMakul){
this.KdMakul=NmMakul;
this.KdMakul=NmMakul;
}
public void
setKdBuku (String KdMakul){
this.KdMakul=KdMakul;
}
public void
setNmMakul (String NmMakul){
this.NmMakul=NmMakul;
}
public String
getKdMakul() {
return
this.KdMakul;
}
public String
getNmMakul() {
return
this.NmMakul;
}
}
3. Kelas Ambil
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package dosenasosiasi;
/**
*
* @author 7
*/
public class mengambil {
public static
void main(String[] args) {
makul
makul1 = new makul("TIT306","Pemrograman Robotik");
makul
makul2 = new makul("TIT304","Pemrograman Berorientasi
Objek");
mahasiswa mahasiswa1 = new mahasiswa("2009-51-100");
mahasiswa1.setKodeMakul(makul1.getKdMakul());
mahasiswa1.setKodeMakul(makul2.getKdMakul());
mahasiswa1.daftarMakul();
}
}
Berikut ini adalah hasil
programnya ketika di running :
Dari hasil di atas, dapat
dilihat bahwa NIM
: 2009-51-100,
dapat mengambil Matakuliah
lebih dari satu.
a. Berikut ini adalah penerapaan
asosiasi pada JAVA, yaitu hubungan one to one antara Suami dengan Istri.
Kelas yang dibutuhkan antara
lain :
1. Kelas
Suami
2. Kelas
Istri
3. Kelas
Punya
Berikut ini adalah source codenya:
(Main)
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package pasutri;
import com.db4o.*;
import java.io.*;
//import java.util.Date;
/**
*
* @author personal
*/
public class Main {
/**
* @param args
the command line arguments
*/
public static
void main(String[] args) {
// TODO code
application logic here
ObjectContainer db = Db4o.openFile("pasutri.odb");
try{
//
storing object
db.set(new suami("catur"));
db.set(new istri("dama","catur",new
java.util.Date()));
System.out.println("Pasutri persisten....!");
System.out.println("Suami : catur");
System.out.println("Istri : dama");
}finally{
db.close();
}
}
1. Kelas Suami
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package pasutri;
import com.db4o.*;
import java.io.*;
/**
*
* @author personal
*/
public class suami {
String NamaSuami;
public
suami(String ns) {
this.NamaSuami = ns;
}
public String
getIstri() {
ObjectContainer db = Db4o.openFile("pasutri.odb");
istri ist =
new istri(null, NamaSuami, null);
try {
ObjectSet
hasil = db.get(ist);
ist =
(istri) hasil.next();
} finally {
db.close();
}
return
ist.getNamaIstri();
}
}
2. Istri
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package pasutri;
import com.db4o.*;
import java.io.*;
import java.util.Date;
/**
*
* @author personal
*/
public class istri {
private String
NamaIstri;
private String
NamaSuami;
private Date
TglMenikah;
public
istri(String ni, String ns, Date tgl_mnk) {
this.NamaIstri = ni;
this.NamaSuami = ns;
this.TglMenikah = tgl_mnk;
}
/**
* @return the
NamaIstri
*/
public String
getNamaIstri() {
return
NamaIstri;
}
/**
* @param
NamaIstri the NamaIstri to set
*/
public void
setNamaIstri(String NamaIstri) {
this.NamaIstri = NamaIstri;
}
/**
* @return the
NamaSuami
*/
public String
getNamaSuami() {
return
NamaSuami;
}
/**
* @param
NamaSuami the NamaSuami to set
*/
public void
setNamaSuami(String NamaSuami) {
this.NamaSuami = NamaSuami;
}
/**
* @return the
TglMenikah
*/
public Date
getTglMenikah() {
return
TglMenikah;
}
/**
* @param
TglMenikah the TglMenikah to set
*/
public void
setTglMenikah(Date TglMenikah) {
this.TglMenikah = TglMenikah;
}
public String
toString() {
return
NamaIstri +"/"+NamaSuami +"/"+ TglMenikah;
}
}
Berikut ini adalah hasil
programnya ketika di running :
Tidak ada komentar:
Posting Komentar