ASOSIASI
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.
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.
2Tipe- 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.
3. Many to
Many Relationship
Sekarang perhatikan contoh berikut. Sebuah perusahaan mempunyai informasi tentang
persediaan yang ada digudang. Masing-masing persediaan dapat dibeli dari banyak
atau lebih dari satu pemasok, dan hampir setiap pemasok mampu menyediakan lebih
dari satu macam barang.
Dari contoh diatas kita melihat ada dua entity yaitu
Persediaan dan Pemasok, hubungannya dapat dinamai Memasok atau Dipasok oleh. Secara sederhana dapat dikatakan: Satu Persediaan dipasok oleh banyak Penjual dan Satu Penjual Memasok banyak Persediaan.
Diagram untuk
contoh diatas adalah sebagai berikut.
Asosiasi Relationship dengan Konsep Pemodelan Unified
Modelling Languange (UML)
UML (Unified
Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar
untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari
sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan
sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan
kelas-kelas dalam bahasa program yang spesifik, skema database, dan
komponen-komponen yang diperlukan dalam sistem software.
1.
Relasi dan
multiplicity Pada Kelas Diagram
·
Multiplicity
Pada relasi
terdapat suatu penanda yang disebut multiplicity. Multiplicity ini akan mengindikasikan
berapa banyak obyek dari suatu kelas terelasi ke obyek lain.
Notasi UML untuk
multiplicity ini adalah sebagai berikut:
Tabel 1 Multiplicity
Multiplicity
|
Arti
|
*
|
Banyak
|
0
|
Nol
|
1
|
Satu bisa ditulis bisa Tidak
|
0…*
|
Antara Nol sampai Banyak
|
1…*
|
Antara 1 sampai Banyak
|
0…1
|
Nol atau Satu
|
1…1
|
Tepat Satu
|
Contoh berikut: satu instance Class1 merujuk/refer pada nol atau lebih
instance Class2
1.
Penerapan Asosiasi
Relationship Pada UML(Class Diagram)
a.
One to One Relationship
b.
One to Many Relationship
c.
Many to Many Relationship
Setiap
notasi(Tipe Hubungan) tersebut dapat digunakan untuk alur unidirectional
ataupun bidirectional
1.
Asosiasi 1 arah (Directional
Assoctiation)
Asosiasi
ini menggambar bahwa pesan atau urutan kejadian terjadi dari hanya salah satu
kelas sedangkan kelas yang lain pasif.
Contohnya
pada saat seorang petugas perpustakaan melakukan pencatatan peminjaman terhadap
seorang anggota, maka pesan dikirimkan oleh petugas dan diterima oleh anggota.
Dimana petugas akan mencatat identitas anggota peminjam dan anggota peminjam
berlaku pasif bukannya malah gentian mencatat identitas penjual.
Gambar.
Relasi 1 arah antara Class Petugas dan Anggota
2.
Asosiasi 2 arah
(Bidirectional Assoctiation)
Asosiasi ini terjadi ketika salah satu kelas
mengirimkan pesan kepada kelas yang lain kemudian kelas yang lain mengirimkan
pesan kepada kelas yang mengirimnya pesan. Contohnya pada saat seorang calon
anggota mendaftar menjadi anggota perpustakaan maka yang terjadi adalah
anggota menyerahkan identitas untuk diproses oleh petugas dan beberapa saat kemudian
petugas akan memberikan kartu keanggotaan perpusatakaan.
Gambar. Relasi 1
arah antara Class Petugas dan Anggota
Pemodelan
dengan JAVA (NetBeans IDE 6.9.1)
Java adalah bahasa pemrograman berorientasi objek murni
yang dibuat berdasarkan kemampuan-kemampuan terbaik bahasa pemrograman objek
sebelumnya (C++, Ada, Simula).
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 :
4 komentar:
Penjelasan yang lengkap. Terimakasih atas materinya..
terima kasih atas materinya.
GG GIMANG
Best 3 casino hotels in the city - MapyRO
The area is 남원 출장샵 one of 의정부 출장안마 the 계룡 출장마사지 most exciting casinos in the city, with an exciting, eclectic mix of 아산 출장샵 slots, table games and an entertaining casino 오산 출장안마 theme. The hotel offers a
Posting Komentar