- Get link
- X
- Other Apps
Pada praktikum kali ini membahas tentang Agregasi dan Komposisi.
Agregasi adalah hubungan antara dua kelas yang lebih ketat dan terdapat
hubungan bagian (part) dan keseluruhan. Komposisi adalah bentuk khusus dari
agregasi dimana terdapat hubungan antar kelas yang lebih kuat, karena yang
menjadi bagian (part) tidak aka nada tanpa adanya kelas yang menjadi whole.
Contoh penggunaan
Agregasi dalam pemrograman berbasis objek dalam Bahasa Java :
Contoh penggunaan Komposisi dalam pemrograman berbasis objek dalam Bahasa Java :
Contoh
1 :
Source Code:
Program Utama (IbuAnak.java):
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package ibuanak;
/**
*
* @author pratitis
*/
public class IbuAnak {
/**
* @param args the
command line arguments
*/
public static void
main(String[] args) {
Manusia ibu1 =
new Manusia("Budi", 30);
Manusia anak1
= new Manusia("Ani", 4);
Manusia ibu2 =
new Manusia("Diana", 40);
Manusia anak2
= new Manusia("Andi", 5, ibu2);
//Relasi
antara Manusia dengan Manusia
System.out.println("=====================\n");
ibu1.cetak();
anak1.cetak();
System.out.println("=====================\n");
ibu1.adopsi(anak1);
ibu1.cetak();
anak1.cetak();
System.out.println("=====================\n");
ibu2.cetak();
anak2.cetak();
}
}
Kelas Program (Manusia.java) :
/*
* To change this license header, choose
License Headers in Project Properties.
* To change this template file, choose Tools |
Templates
* and open the template in the editor.
*/
package
ibuanak;
/**
*
* @author pratitis
*/
public
class Manusia {
private String nama;
private int umur;
private Manusia ibu;
private Manusia anak;
//Letak asosiasi, kelas anak jadi variabel
public Manusia() { }
public Manusia(String nm, int umr){
nama = nm;
umur = umr;
ibu = new Manusia();
anak = new Manusia();
ibu = null;
anak = null;
}
public Manusia (String nm, int umr, Manusia
ibu_angkat)
{
nama = nm;
umur = umr;
ibu = new Manusia();
anak = new Manusia();
ibu = ibu_angkat;
ibu_angkat.anak=this;
}
//Relasi yang menunjukkan asosiasi
public void adopsi(Manusia anak_angkat)
{
anak = anak_angkat;
anak_angkat.ibu = this;
}
public void cetak()
{
System.out.println("\n- Data
Pribadi -");
System.out.println("Nama :
"+nama);
System.out.println("Umur :
"+umur);
if(ibu!=null)
System.out.println("Nama ibu :
"+ibu.nama);
else if(anak!=null)
System.out.println("Nama anak
: "+anak.nama);
}
}
Output:
Contoh 2.
Source Code (Relasi.java) :
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package relasi;
/**
*
* @author pratitis
*/
public class Relasi {
/**
* @param args the
command line arguments
*/
public static void
main(String[] args) {
Perusahaan Per
= new Perusahaan("Nusantara Jaya");
Pegawai Peg1,
Peg2, Peg3;
Peg1 = new
Pegawai("P001", "Rudi");
Peg2 = new
Pegawai("P002", "Toni");
Peg3 = new
Pegawai("P003", "Andi");
//RElasi
antara Class pegawai dengan class perusahaan
Per.insertPegawai(Peg1);
Per.insertPegawai(Peg2);
Per.insertPegawai(Peg3);
System.out.println();
Per.tampilPer();
}
}
Kelas Program (Perusahaan.java) :
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package relasi;
/**
*
* @author pratitis
*/
public class Perusahaan {
private String
namaPer;
private Pegawai
peg[]; //Agregasi antara pegawai dan perusahaan
private int
counter;
public Perusahaan
(String namaPer)
{
this.namaPer =
namaPer;
counter=0;
peg = new
Pegawai[3];
System.out.println("Konstruktor perusahaan dijalankan...");
}
//Relasi agregasi
antara pegawai dan perusahaan
public void
insertPegawai(Pegawai p)
{
peg[counter]=p;
counter++;
}
public void
tampilPer()
{
System.out.println("Perusahaan
"+namaPer+" memiliki pegawai
:");
for(int i=0;
i<counter; i++)
{
peg[i].tampilPeg();
}
}
}
Kelas Program (Pegawai.java) :
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package relasi;
/**
*
* @author pratitis
*/
//class Pegawai
public class Pegawai {
private String
nama;
private String
NIP;
public Pegawai()
{
System.out.println("Konstruktor pegawai dijalankan..");
}
public
Pegawai(String NIP, String nama)
{
this.NIP =
NIP;
this.nama =
nama;
System.out.println("Konstruktor pegawai dijalankan...");
}
public void
tampilPeg()
{
System.out.println("NIP
: "+NIP+", Nama : "+nama);
}
}
Output :
- Get link
- X
- Other Apps
Comments
Post a Comment