Senin, 25 Juni 2012 - , 4 komentar

ASOSIASI RELATIONSHIP

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:

Unknown 14 April 2016 pukul 07.12

Penjelasan yang lengkap. Terimakasih atas materinya..

Adi Nugroho 6 Agustus 2021 pukul 08.38

terima kasih atas materinya.

Anonymous 27 Februari 2022 pukul 07.00

GG GIMANG

abbygalequeeney 3 Maret 2022 pukul 04.38

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