SlideShare a Scribd company logo
Modul PBO – Teknokrat
29
HUBUNGAN ANTAR KELAS
Tujuan
Praktikan dapat memahami dan menjelaskan tentang array dan hubungan antar kelas
(asosiasi, agregasi, komposisi) serta implementasinya.
ARRAY
Array digunakan untuk mengelompokkan data atau obyek yang memiliki tipe yang sama. Array
memungkinkan untuk mengacu ke sekumpulan obyek dengan nama yang sama. Array dapat
dideklarasikan dengan tipe apa saja, baik bertipe primitif maupun obyek. Dalam pemrograman Java,
array merupakan sebuah obyek meskipun ia terdiri dari elemen data primitif. Berikut contoh
deklarasi array:
int A[];
Mahasiswa M[]; // Mahasiswa adalah sebuah kelas
Seperti halnya dalam pembuatan obyek, array dibuat dengan menggunakan keyword new. Berikut
adalah contoh pembuatan array:
A = new int[30];
M = new Mahasiswa[10];
Penjelasan baris di atas membuat sebuah array dengan 30 nilai int (integer) dan 10 obyek
mahasiswa. Ketika membuat sebuah array, elemen didalamnya akan diinisialisasi dengan nilai
default (null), yang berarti untuk elemen-elemen array M tersebut belum merujuk ke suatu obyek
Mahasiswa. Setelah proses pengisian M[0] = new Mahasiswa(), barulah diperoleh elemen pertama
dari array M yang merujuk ke obyek Mahasiswa.
Program 4-1
public class Array {
public static void main(String [] args) {
int x[]; // deklarasi
x = new int[5]; // alokasi
// inisialisasi
x[0] = 34; x[1] = 22;
x[2] = 15; x[3] = 50;
x[4] = 40;
System.out.println("Isi elemen array: ");
for(int i=0; i<x.length; i++) {
System.out.print(x[i] + " ");
}
}
}
BAB
4
Modul PBO – Teknokrat
30
Hasil Output
Isi elemen array:
34 22 15 50 40
Program 4-2
class Mahasiswa {
private String npm;
private String nama;
private int umur;
public Mahasiswa(String a, String b, int c) {
npm = a;
nama = b;
umur = c;
}
public String getNpm() { return npm; }
public String getNama() { return nama; }
public int getUmur() { return umur; }
}
public class Array2 {
public static void main(String [] args) {
Mahasiswa M[];
M = new Mahasiswa[3];
M[0] = new Mahasiswa("11223344", "Budianto", 20);
M[1] = new Mahasiswa("11223355", "Warsito", 19);
M[2] = new Mahasiswa("11223366", "Siska", 20);
System.out.println("DATA MAHASISWA");
System.out.println("==============");
for(int i=0; i<M.length; i++) {
System.out.print((i+1) + ". ");
System.out.print("NPM: " + M[i].getNpm() + ", ");
System.out.print("Nama: " + M[i].getNama() + ", ");
System.out.print("Umur: " + M[i].getUmur());
System.out.println();
}
}
}
Hasil Output
DATA MAHASISWA
==============
1. NPM: 11223344, Nama: Budianto, Umur: 20
2. NPM: 11223355, Nama: Warsito, Umur: 19
3. NPM: 11223366, Nama: Siska, Umur: 20
Modul PBO – Teknokrat
31
HUBUNGAN ANTAR KELAS
Dalam pemrograman berorientasi obyek, kelas-kelas yang terbentuk dapat memiliki hubungan satu
dengan yang lainnya sesuai dengan kondisi dari kelas-kelas yang terkait. Ada beberapa jenis
hubungan yang dapat terjadi antara kelas yang satu dengan lainnya, yaitu:
· Asosiasi
· Agregasi
· Komposisi
· Generalisasi (terkait dengan pewarisan)
· Spesialisasi (terkait dengan pewarisan)
ASOSIASI
Asosiasi merupakan hubungan antara dua kelas, merupakan hubungan struktural yang
menggambarkan himpunan link antar obyek. Berikut adalah contoh hubungan asosiasi:
Gambar 4. 1 Contoh hubungan asosiasi
Berdasarkan diagram di atas terjadi hubungan kelas dosen yang mengajar beberapa mahasiswa.
Implementasi dari diagram kelas tersebut di Java adalah sebagai berikut:
Program 4-3
// Waktu.java
public class Waktu {
private int Hour, Minute, Second;
public Waktu(int H, int M, int S) {
this.Hour = H;
this.Minute = M;
this.Second = S;
}
public long Convert2Sec() {
long Hasil;
// Hitung hasil konversi jam ke detik
Hasil = 3600*this.Hour + 60*this.Minute + this.Second;
return (Hasil);
}
}
Modul PBO – Teknokrat
32
// PenghitungPulsa.java
public class PenghitungPulsa {
private double JmlPulsa;
public PenghitungPulsa(Waktu c1, Waktu c2) {
this.JmlPulsa = (c2.Convert2Sec() - c1.Convert2Sec())/100;
}
public double GetJmlPulsa() {
return (JmlPulsa);
}
}
// MainAsosiasi.java
public class MainAsosiasi {
public static void main(String [] args) {
// Ciptakan objek
Waktu JamMulai = new Waktu(15,26,34);
Waktu JamSelesai = new Waktu(17,8,45);
PenghitungPulsa PC = new PenghitungPulsa(JamMulai, JamSelesai);
// Cetak informasi jumlah pulsa
System.out.println("Jumlah pulsa : "+ PC.GetJmlPulsa());
}
}
Hasil Output
Jumlah pulsa : 61.0
AGREGASI
Agregasi adalah hubungan antara dua kelas dimana kelas yang satu merupakan bagian dari kelas
lainnya, namun kedua kelas ini dapat berdiri sendiri-sendiri. Agregasi juga disebut sebagai relasi
‘part-of’ atau relasi ‘whole-part’. Berikut ini contoh hubungan agregasi:
Gambar 4. 2 Contoh hubungan agregasi
Berdasarkan diagram kelas di atas, terlihat bahwa kelas Mahasiswa merupakan bagian dari kelas
Jurusan, akan tetapi kelas Jurusan dan Mahasiswa dapat diciptakan sendiri-sendiri. Implementasi
program dari kelas diagram di atas dalam Java adalah sebagai berikut:
Modul PBO – Teknokrat
33
Program 4-4
// Mahasiswa.java
public class Mahasiswa {
private String npm, nama;
public Mahasiswa(String npm, String nama) {
this.npm = npm;
this.nama = nama;
}
public String getNpm() {
return npm;
}
public String getNama() {
return nama;
}
}
// Jurusan.java
public class Jurusan {
private String kodeJurusan, namaJurusan;
private Mahasiswa [] daftar;
private static int jumMhs = 0;
public Jurusan(String kodeJurusan, String namaJurusan) {
this.kodeJurusan = kodeJurusan;
this.namaJurusan = namaJurusan;
daftar = new Mahasiswa[20];
}
public void tambahMahasiswa(Mahasiswa M) {
this.daftar[jumMhs] = M;
this.jumMhs++;
}
public void cetakInfo() {
System.out.println("Kode Jurusan : " + this.kodeJurusan);
System.out.println("Nama Jurusan : " + this.namaJurusan);
System.out.println("Daftar Mahasiswa: ");
for(int i=0; i<jumMhs; i++) {
System.out.print((i+1) + ". ");
System.out.print(daftar[i].getNpm() + " - ");
System.out.println(daftar[i].getNama());
}
}
}
// MainAgregasi.java
public class MainAgregasi {
public static void main(String args[]) {
// Ciptakan objek jurusan
Jurusan j = new Jurusan("TI", "Teknik Informatika");
// Ciptakan objek mahasiswa
Mahasiswa m1 = new Mahasiswa("12312761", "Abdul");
Mahasiswa m2 = new Mahasiswa("12312671", "Markum");
Mahasiswa m3 = new Mahasiswa("12312212", "Kumkum");
Mahasiswa m4 = new Mahasiswa("12312178", "Paijo");
Modul PBO – Teknokrat
34
// Tambahkan objek mahasiswa ke objek jurusan
j.tambahMahasiswa(m1);
j.tambahMahasiswa(m2);
j.tambahMahasiswa(m3);
j.tambahMahasiswa(m4);
// Cetak informasi daftar mahasiswa
j.cetakInfo();
}
}
Hasil Output
Kode Jurusan : TI
Nama Jurusan : Teknik Informatika
Daftar Mahasiswa:
1. 12312761 - Abdul
2. 12312671 - Markum
3. 12312212 - Kumkum
4. 12312178 - Paijo
Berdasarkan implementasi terlihat bahwa kelas jurusan memiliki atribut (member) yang memiliki
tipe kelas Mahasiswa yaitu variabel ‘daftar’, sehingga kelas Mahasiswa merupakan bagian dari kelas
jurusan.
KOMPOSISI
Komposisi merupakan bentuk khusus dari agregasi, dimana kelas yang menjadi bagian (part) baru
dapat diciptakan setelah kelas yang menjadi seluruhnya (whole) dibuat, dan ketika kelas yang
menjadi whole dimusnahkan maka kelas yang menjadi part ikut musnah. Berikut adalah contoh
hubungan komposisi:
Gambar 4. 3 Contoh hubungan komposisi
Modul PBO – Teknokrat
35
Berdasarkan diagram kelas di atas dapat dilihat bahwa kelas CPU, Printer, dan Monitor semuanya
merupakan bagian dari kelas Komputer dan ketika kelas Komputer musnah maka kelas CPU, Printer,
dan Monitor akan ikut musnah. Implementasi kelas diagram di atas ke dalam Java adalah sebagai
berikut:
Program 4-5
// CPU.java
public class CPU {
private String merk;
private int kecepatan;
public CPU(String m, int k) {
merk = m;
kecepatan = k;
}
public void cetakSpekCPU() {
System.out.println(merk + ", " + kecepatan);
}
}
// Monitor.java
public class Monitor {
private String merk;
public Monitor(String m) {
merk = m;
}
public void cetakSpekMonitor() {
System.out.println(merk);
}
}
// Printer.java
public class Printer {
private String merk, type;
public Printer(String m, String t) {
merk = m;
type = t;
}
public void cetakSpekPrinter() {
System.out.println(merk + ", " + type);
}
}
// Komputer.java
public class Komputer {
private String kode;
private long harga;
private CPU proc;
private Monitor mon;
private Printer prn;
Modul PBO – Teknokrat
36
public Komputer(String k, long h) {
kode = k;
harga = h;
if(k == "PC-01") {
proc = new CPU("Pentium IV", 500);
mon = new Monitor("Sony Multiscan 15sf");
prn = new Printer("Canon BJC-210sp", "Color");
}
}
public void cetakSpek() {
System.out.println("Kode: " + this.kode);
System.out.print("Processor: ");
proc.cetakSpekCPU();
System.out.print("Monitor: ");
mon.cetakSpekMonitor();
System.out.print("Printer: ");
prn.cetakSpekPrinter();
System.out.println("Harga: Rp. " + this.harga);
}
}
// MainKomposisi.java
public class MainKomposisi {
public static void main(String [] args) {
Komputer PC = new Komputer("PC-01", 850000);
PC.cetakSpek();
}
}
Hasil Output
Kode: PC-01
Processor: Pentium IV, 500
Monitor: Sony Multiscan 15sf
Printer: Canon BJC-210sp, Color
Harga: Rp. 850000
Berdasarkan implementasi di atas, dapat dilihat bahwa kelas CPU, Printer, dan Monitor merupakan
atribut dari kelas Komputer dan baru diciptakan pada saat instansiasi obyek dari kelas Komputer.
Modul PBO – Teknokrat
37
Lembar Kerja Praktikum: Modul 4
NPM: Asisten:
Nama: Nilai:
Kelas: Tanggal:
Soal
1. [Score: 50] Perhatikan kelas diagram berikut:
Keterangan kelas diagram di atas:
· karyawan adalah array yang bertipe String, berisi nama-nama dari pegawai
yang dimiliki manager
· setKaryawan(String nama) digunakan untuk menambahkan jumlah pegawai
manager
Buatlah code Java untuk kelas diagram di atas.
2. [Score: 50] Perhatikan kelas diagram berikut:
Modul PBO – Teknokrat
38
Keterangan kelas diagram di atas:
· karyawan adalah array yang bertipe String, berisi nama-nama dari pegawai
yang dimiliki manager
· setKaryawan(String nama) digunakan untuk menambahkan jumlah pegawai
manager
Buatlah code Java untuk kelas diagram di atas.

More Related Content

PPTX
membuat function dalam mysql
sukangimpi
 
PDF
Modul belajar java I/O (Input/Ouptut)
stephan EL'wiin Shaarawy
 
PPT
Algoritma penjadwalan proses
Rakhmi Khalida, M.M.S.I
 
DOCX
Pengertian dan cara kerja processor
Vitri Yanti Panggabean
 
PPT
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
RUDISELAMAT2
 
ODP
Mata Kuliah Basis Data
Mr. Nugraha
 
DOC
Implementasi queue
Rhe Dwi Yuni
 
membuat function dalam mysql
sukangimpi
 
Modul belajar java I/O (Input/Ouptut)
stephan EL'wiin Shaarawy
 
Algoritma penjadwalan proses
Rakhmi Khalida, M.M.S.I
 
Pengertian dan cara kerja processor
Vitri Yanti Panggabean
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
RUDISELAMAT2
 
Mata Kuliah Basis Data
Mr. Nugraha
 
Implementasi queue
Rhe Dwi Yuni
 

What's hot (20)

PDF
Rancangan 3 Gedung 4 Ruangan di setiap gedung
Fanny Oktaviarti
 
PPT
Organisasi Komputer- representasi informasi
daru2501
 
PDF
2. Array of Record (Struktur Data)
Kelinci Coklat
 
PDF
03 enkapsulasi
KuliahKita
 
DOCX
Tugas mandiri struktur data
Asep Jaenudin
 
PDF
OPERASI INPUT OUTPUT di Linux
Ibrahim Naki
 
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
PDF
Algoritma dan Struktur Data (Python) - Struktur Data
AndiNurkholis1
 
DOCX
Makalah tentang keamanan komputer
082393805433
 
PPT
Basis data rumah sakit (sinta,santi,roby)
Teguh Pras
 
PDF
Algoritma dan Struktur Data (Python) - Perulangan
AndiNurkholis1
 
DOCX
Laporan praktikum basis data my sql
Lela Warni
 
PDF
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
Lucha Kamala Putri
 
PPTX
Perkembangan sistem operasi
ronaldopeipiro
 
DOCX
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Shofura Kamal
 
DOCX
2 pemanfaatan komputer di masyarakat
Ricko Gustiawan
 
PDF
Modul praktikum-pemrograman java dgn netbeans
SMK - Statens Museum for Kunst
 
PPTX
Materi 3 Finite State Automata
ahmad haidaroh
 
PPTX
Basis Data - Pengenalan DML dan DDL
Walid Umar
 
PPTX
Function dalam PHP
I Gede Iwan Sudipa
 
Rancangan 3 Gedung 4 Ruangan di setiap gedung
Fanny Oktaviarti
 
Organisasi Komputer- representasi informasi
daru2501
 
2. Array of Record (Struktur Data)
Kelinci Coklat
 
03 enkapsulasi
KuliahKita
 
Tugas mandiri struktur data
Asep Jaenudin
 
OPERASI INPUT OUTPUT di Linux
Ibrahim Naki
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
Algoritma dan Struktur Data (Python) - Struktur Data
AndiNurkholis1
 
Makalah tentang keamanan komputer
082393805433
 
Basis data rumah sakit (sinta,santi,roby)
Teguh Pras
 
Algoritma dan Struktur Data (Python) - Perulangan
AndiNurkholis1
 
Laporan praktikum basis data my sql
Lela Warni
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
Lucha Kamala Putri
 
Perkembangan sistem operasi
ronaldopeipiro
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Shofura Kamal
 
2 pemanfaatan komputer di masyarakat
Ricko Gustiawan
 
Modul praktikum-pemrograman java dgn netbeans
SMK - Statens Museum for Kunst
 
Materi 3 Finite State Automata
ahmad haidaroh
 
Basis Data - Pengenalan DML dan DDL
Walid Umar
 
Function dalam PHP
I Gede Iwan Sudipa
 
Ad

Similar to Modul PBO Bab-04 - Hubungan antar Kelas (20)

DOCX
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Melina Krisnawati
 
PDF
Ii java input ouput
Jeblax Al-buchori
 
PPTX
Pertemuan V
Putra Andry
 
DOCX
Dasar pemrograman C++
Andan Sperrow
 
ODT
Tugas 4 pemorgraman orintasi objek membuat array dua dimensi program java-art...
Artaya Honest
 
PDF
My javanote04
Tri Sapto Adji
 
DOCX
Modul xiii dan xiv algo
STMIK AKAKOM
 
DOCX
Laporan8
Sa Lam
 
DOCX
Laporan Praktikum Pertemuan 1, PBO
setyadi_s
 
DOCX
analisa konstruktor mm.docx analisa data
akuncobaanr
 
DOCX
Laporan6
Sa Lam
 
PPTX
6. OOP Java
beiharira
 
PDF
[PUBLIC] quiz-01-midterm-solutions.pdf
Fariz Darari
 
DOCX
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Ekha Cahya Nugraha
 
DOCX
Modul xi dan xii algo
STMIK AKAKOM
 
PDF
Pemograman berorientasi objek
Alvin Setiawan
 
DOCX
Cara membuat fungsi dan prosedur pada java
Devandy Enda
 
PDF
Constructor
Sahrul Sindriana
 
PDF
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Individual Consultants
 
PDF
12_Sinkronisasi.pdf
Jurnal IT
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Melina Krisnawati
 
Ii java input ouput
Jeblax Al-buchori
 
Pertemuan V
Putra Andry
 
Dasar pemrograman C++
Andan Sperrow
 
Tugas 4 pemorgraman orintasi objek membuat array dua dimensi program java-art...
Artaya Honest
 
My javanote04
Tri Sapto Adji
 
Modul xiii dan xiv algo
STMIK AKAKOM
 
Laporan8
Sa Lam
 
Laporan Praktikum Pertemuan 1, PBO
setyadi_s
 
analisa konstruktor mm.docx analisa data
akuncobaanr
 
Laporan6
Sa Lam
 
6. OOP Java
beiharira
 
[PUBLIC] quiz-01-midterm-solutions.pdf
Fariz Darari
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Ekha Cahya Nugraha
 
Modul xi dan xii algo
STMIK AKAKOM
 
Pemograman berorientasi objek
Alvin Setiawan
 
Cara membuat fungsi dan prosedur pada java
Devandy Enda
 
Constructor
Sahrul Sindriana
 
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Individual Consultants
 
12_Sinkronisasi.pdf
Jurnal IT
 
Ad

More from Rakhmat Dedi Gunawan (20)

PDF
Modul PBO Bab-00 - Daftar Isi
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-12 - Setup & Deployment
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-11 - JDBC
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-10 - Event & Exception Handling
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-08 - Java GUI
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-09 - Swing
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-05 - Pewarisan (Inheritance)
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-03 - Kelas & Objek
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-02 - Struktur Kontrol
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-01 - Pengenalan Java
Rakhmat Dedi Gunawan
 
PDF
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Rakhmat Dedi Gunawan
 
PDF
Chapter 01 - Pembuatan Database
Rakhmat Dedi Gunawan
 
PDF
Chapter 03 - Form Master
Rakhmat Dedi Gunawan
 
PDF
Chapter 02 - Pembuatan Projek Baru
Rakhmat Dedi Gunawan
 
PDF
Chapter 10 - Pembatan Report Kwitansi
Rakhmat Dedi Gunawan
 
PDF
T04-Stored Procedure
Rakhmat Dedi Gunawan
 
PDF
T05-Trigger
Rakhmat Dedi Gunawan
 
PPTX
T02-Join & View
Rakhmat Dedi Gunawan
 
PPTX
Teori pbd - erd_studi_kasus (1)
Rakhmat Dedi Gunawan
 
Modul PBO Bab-00 - Daftar Isi
Rakhmat Dedi Gunawan
 
Modul PBO Bab-12 - Setup & Deployment
Rakhmat Dedi Gunawan
 
Modul PBO Bab-11 - JDBC
Rakhmat Dedi Gunawan
 
Modul PBO Bab-10 - Event & Exception Handling
Rakhmat Dedi Gunawan
 
Modul PBO Bab-08 - Java GUI
Rakhmat Dedi Gunawan
 
Modul PBO Bab-09 - Swing
Rakhmat Dedi Gunawan
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Rakhmat Dedi Gunawan
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Rakhmat Dedi Gunawan
 
Modul PBO Bab-03 - Kelas & Objek
Rakhmat Dedi Gunawan
 
Modul PBO Bab-02 - Struktur Kontrol
Rakhmat Dedi Gunawan
 
Modul PBO Bab-01 - Pengenalan Java
Rakhmat Dedi Gunawan
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Rakhmat Dedi Gunawan
 
Chapter 01 - Pembuatan Database
Rakhmat Dedi Gunawan
 
Chapter 03 - Form Master
Rakhmat Dedi Gunawan
 
Chapter 02 - Pembuatan Projek Baru
Rakhmat Dedi Gunawan
 
Chapter 10 - Pembatan Report Kwitansi
Rakhmat Dedi Gunawan
 
T04-Stored Procedure
Rakhmat Dedi Gunawan
 
T02-Join & View
Rakhmat Dedi Gunawan
 
Teori pbd - erd_studi_kasus (1)
Rakhmat Dedi Gunawan
 

Recently uploaded (8)

PPTX
TUGAS KONFIGURASI JARINGAN PADA KELAS 12 SMK
ulumroger
 
PPTX
Microsoft_Office_Kelas8_Informatika_Final.pptx
cloudmr2025
 
PPT
Jenis Lap pengawas tek JMB tgl 5.ppt
AndriMulyadi3
 
PPTX
TUGAS PRESENTASI KE 2 PADA KELAS 12 SMK TJKT
ulumroger
 
PPT
Pertemuan 5 pnegalamtan IP address dan Subnetting.ppt
ItGaming1
 
PPTX
Microsoft_Office_Kelas8_Informatika_VisualLengkap.pptx
cloudmr2025
 
PPTX
PROMPT MODUL AJAR FASE F KELAS XI MEI 2025.pptx
SultonilHakim1
 
PPT
MODUL KOMPUTER JARINGAN ARSITEKTUR KOMPUTER.ppt
connysurbakti56
 
TUGAS KONFIGURASI JARINGAN PADA KELAS 12 SMK
ulumroger
 
Microsoft_Office_Kelas8_Informatika_Final.pptx
cloudmr2025
 
Jenis Lap pengawas tek JMB tgl 5.ppt
AndriMulyadi3
 
TUGAS PRESENTASI KE 2 PADA KELAS 12 SMK TJKT
ulumroger
 
Pertemuan 5 pnegalamtan IP address dan Subnetting.ppt
ItGaming1
 
Microsoft_Office_Kelas8_Informatika_VisualLengkap.pptx
cloudmr2025
 
PROMPT MODUL AJAR FASE F KELAS XI MEI 2025.pptx
SultonilHakim1
 
MODUL KOMPUTER JARINGAN ARSITEKTUR KOMPUTER.ppt
connysurbakti56
 

Modul PBO Bab-04 - Hubungan antar Kelas

  • 1. Modul PBO – Teknokrat 29 HUBUNGAN ANTAR KELAS Tujuan Praktikan dapat memahami dan menjelaskan tentang array dan hubungan antar kelas (asosiasi, agregasi, komposisi) serta implementasinya. ARRAY Array digunakan untuk mengelompokkan data atau obyek yang memiliki tipe yang sama. Array memungkinkan untuk mengacu ke sekumpulan obyek dengan nama yang sama. Array dapat dideklarasikan dengan tipe apa saja, baik bertipe primitif maupun obyek. Dalam pemrograman Java, array merupakan sebuah obyek meskipun ia terdiri dari elemen data primitif. Berikut contoh deklarasi array: int A[]; Mahasiswa M[]; // Mahasiswa adalah sebuah kelas Seperti halnya dalam pembuatan obyek, array dibuat dengan menggunakan keyword new. Berikut adalah contoh pembuatan array: A = new int[30]; M = new Mahasiswa[10]; Penjelasan baris di atas membuat sebuah array dengan 30 nilai int (integer) dan 10 obyek mahasiswa. Ketika membuat sebuah array, elemen didalamnya akan diinisialisasi dengan nilai default (null), yang berarti untuk elemen-elemen array M tersebut belum merujuk ke suatu obyek Mahasiswa. Setelah proses pengisian M[0] = new Mahasiswa(), barulah diperoleh elemen pertama dari array M yang merujuk ke obyek Mahasiswa. Program 4-1 public class Array { public static void main(String [] args) { int x[]; // deklarasi x = new int[5]; // alokasi // inisialisasi x[0] = 34; x[1] = 22; x[2] = 15; x[3] = 50; x[4] = 40; System.out.println("Isi elemen array: "); for(int i=0; i<x.length; i++) { System.out.print(x[i] + " "); } } } BAB 4
  • 2. Modul PBO – Teknokrat 30 Hasil Output Isi elemen array: 34 22 15 50 40 Program 4-2 class Mahasiswa { private String npm; private String nama; private int umur; public Mahasiswa(String a, String b, int c) { npm = a; nama = b; umur = c; } public String getNpm() { return npm; } public String getNama() { return nama; } public int getUmur() { return umur; } } public class Array2 { public static void main(String [] args) { Mahasiswa M[]; M = new Mahasiswa[3]; M[0] = new Mahasiswa("11223344", "Budianto", 20); M[1] = new Mahasiswa("11223355", "Warsito", 19); M[2] = new Mahasiswa("11223366", "Siska", 20); System.out.println("DATA MAHASISWA"); System.out.println("=============="); for(int i=0; i<M.length; i++) { System.out.print((i+1) + ". "); System.out.print("NPM: " + M[i].getNpm() + ", "); System.out.print("Nama: " + M[i].getNama() + ", "); System.out.print("Umur: " + M[i].getUmur()); System.out.println(); } } } Hasil Output DATA MAHASISWA ============== 1. NPM: 11223344, Nama: Budianto, Umur: 20 2. NPM: 11223355, Nama: Warsito, Umur: 19 3. NPM: 11223366, Nama: Siska, Umur: 20
  • 3. Modul PBO – Teknokrat 31 HUBUNGAN ANTAR KELAS Dalam pemrograman berorientasi obyek, kelas-kelas yang terbentuk dapat memiliki hubungan satu dengan yang lainnya sesuai dengan kondisi dari kelas-kelas yang terkait. Ada beberapa jenis hubungan yang dapat terjadi antara kelas yang satu dengan lainnya, yaitu: · Asosiasi · Agregasi · Komposisi · Generalisasi (terkait dengan pewarisan) · Spesialisasi (terkait dengan pewarisan) ASOSIASI Asosiasi merupakan hubungan antara dua kelas, merupakan hubungan struktural yang menggambarkan himpunan link antar obyek. Berikut adalah contoh hubungan asosiasi: Gambar 4. 1 Contoh hubungan asosiasi Berdasarkan diagram di atas terjadi hubungan kelas dosen yang mengajar beberapa mahasiswa. Implementasi dari diagram kelas tersebut di Java adalah sebagai berikut: Program 4-3 // Waktu.java public class Waktu { private int Hour, Minute, Second; public Waktu(int H, int M, int S) { this.Hour = H; this.Minute = M; this.Second = S; } public long Convert2Sec() { long Hasil; // Hitung hasil konversi jam ke detik Hasil = 3600*this.Hour + 60*this.Minute + this.Second; return (Hasil); } }
  • 4. Modul PBO – Teknokrat 32 // PenghitungPulsa.java public class PenghitungPulsa { private double JmlPulsa; public PenghitungPulsa(Waktu c1, Waktu c2) { this.JmlPulsa = (c2.Convert2Sec() - c1.Convert2Sec())/100; } public double GetJmlPulsa() { return (JmlPulsa); } } // MainAsosiasi.java public class MainAsosiasi { public static void main(String [] args) { // Ciptakan objek Waktu JamMulai = new Waktu(15,26,34); Waktu JamSelesai = new Waktu(17,8,45); PenghitungPulsa PC = new PenghitungPulsa(JamMulai, JamSelesai); // Cetak informasi jumlah pulsa System.out.println("Jumlah pulsa : "+ PC.GetJmlPulsa()); } } Hasil Output Jumlah pulsa : 61.0 AGREGASI Agregasi adalah hubungan antara dua kelas dimana kelas yang satu merupakan bagian dari kelas lainnya, namun kedua kelas ini dapat berdiri sendiri-sendiri. Agregasi juga disebut sebagai relasi ‘part-of’ atau relasi ‘whole-part’. Berikut ini contoh hubungan agregasi: Gambar 4. 2 Contoh hubungan agregasi Berdasarkan diagram kelas di atas, terlihat bahwa kelas Mahasiswa merupakan bagian dari kelas Jurusan, akan tetapi kelas Jurusan dan Mahasiswa dapat diciptakan sendiri-sendiri. Implementasi program dari kelas diagram di atas dalam Java adalah sebagai berikut:
  • 5. Modul PBO – Teknokrat 33 Program 4-4 // Mahasiswa.java public class Mahasiswa { private String npm, nama; public Mahasiswa(String npm, String nama) { this.npm = npm; this.nama = nama; } public String getNpm() { return npm; } public String getNama() { return nama; } } // Jurusan.java public class Jurusan { private String kodeJurusan, namaJurusan; private Mahasiswa [] daftar; private static int jumMhs = 0; public Jurusan(String kodeJurusan, String namaJurusan) { this.kodeJurusan = kodeJurusan; this.namaJurusan = namaJurusan; daftar = new Mahasiswa[20]; } public void tambahMahasiswa(Mahasiswa M) { this.daftar[jumMhs] = M; this.jumMhs++; } public void cetakInfo() { System.out.println("Kode Jurusan : " + this.kodeJurusan); System.out.println("Nama Jurusan : " + this.namaJurusan); System.out.println("Daftar Mahasiswa: "); for(int i=0; i<jumMhs; i++) { System.out.print((i+1) + ". "); System.out.print(daftar[i].getNpm() + " - "); System.out.println(daftar[i].getNama()); } } } // MainAgregasi.java public class MainAgregasi { public static void main(String args[]) { // Ciptakan objek jurusan Jurusan j = new Jurusan("TI", "Teknik Informatika"); // Ciptakan objek mahasiswa Mahasiswa m1 = new Mahasiswa("12312761", "Abdul"); Mahasiswa m2 = new Mahasiswa("12312671", "Markum"); Mahasiswa m3 = new Mahasiswa("12312212", "Kumkum"); Mahasiswa m4 = new Mahasiswa("12312178", "Paijo");
  • 6. Modul PBO – Teknokrat 34 // Tambahkan objek mahasiswa ke objek jurusan j.tambahMahasiswa(m1); j.tambahMahasiswa(m2); j.tambahMahasiswa(m3); j.tambahMahasiswa(m4); // Cetak informasi daftar mahasiswa j.cetakInfo(); } } Hasil Output Kode Jurusan : TI Nama Jurusan : Teknik Informatika Daftar Mahasiswa: 1. 12312761 - Abdul 2. 12312671 - Markum 3. 12312212 - Kumkum 4. 12312178 - Paijo Berdasarkan implementasi terlihat bahwa kelas jurusan memiliki atribut (member) yang memiliki tipe kelas Mahasiswa yaitu variabel ‘daftar’, sehingga kelas Mahasiswa merupakan bagian dari kelas jurusan. KOMPOSISI Komposisi merupakan bentuk khusus dari agregasi, dimana kelas yang menjadi bagian (part) baru dapat diciptakan setelah kelas yang menjadi seluruhnya (whole) dibuat, dan ketika kelas yang menjadi whole dimusnahkan maka kelas yang menjadi part ikut musnah. Berikut adalah contoh hubungan komposisi: Gambar 4. 3 Contoh hubungan komposisi
  • 7. Modul PBO – Teknokrat 35 Berdasarkan diagram kelas di atas dapat dilihat bahwa kelas CPU, Printer, dan Monitor semuanya merupakan bagian dari kelas Komputer dan ketika kelas Komputer musnah maka kelas CPU, Printer, dan Monitor akan ikut musnah. Implementasi kelas diagram di atas ke dalam Java adalah sebagai berikut: Program 4-5 // CPU.java public class CPU { private String merk; private int kecepatan; public CPU(String m, int k) { merk = m; kecepatan = k; } public void cetakSpekCPU() { System.out.println(merk + ", " + kecepatan); } } // Monitor.java public class Monitor { private String merk; public Monitor(String m) { merk = m; } public void cetakSpekMonitor() { System.out.println(merk); } } // Printer.java public class Printer { private String merk, type; public Printer(String m, String t) { merk = m; type = t; } public void cetakSpekPrinter() { System.out.println(merk + ", " + type); } } // Komputer.java public class Komputer { private String kode; private long harga; private CPU proc; private Monitor mon; private Printer prn;
  • 8. Modul PBO – Teknokrat 36 public Komputer(String k, long h) { kode = k; harga = h; if(k == "PC-01") { proc = new CPU("Pentium IV", 500); mon = new Monitor("Sony Multiscan 15sf"); prn = new Printer("Canon BJC-210sp", "Color"); } } public void cetakSpek() { System.out.println("Kode: " + this.kode); System.out.print("Processor: "); proc.cetakSpekCPU(); System.out.print("Monitor: "); mon.cetakSpekMonitor(); System.out.print("Printer: "); prn.cetakSpekPrinter(); System.out.println("Harga: Rp. " + this.harga); } } // MainKomposisi.java public class MainKomposisi { public static void main(String [] args) { Komputer PC = new Komputer("PC-01", 850000); PC.cetakSpek(); } } Hasil Output Kode: PC-01 Processor: Pentium IV, 500 Monitor: Sony Multiscan 15sf Printer: Canon BJC-210sp, Color Harga: Rp. 850000 Berdasarkan implementasi di atas, dapat dilihat bahwa kelas CPU, Printer, dan Monitor merupakan atribut dari kelas Komputer dan baru diciptakan pada saat instansiasi obyek dari kelas Komputer.
  • 9. Modul PBO – Teknokrat 37 Lembar Kerja Praktikum: Modul 4 NPM: Asisten: Nama: Nilai: Kelas: Tanggal: Soal 1. [Score: 50] Perhatikan kelas diagram berikut: Keterangan kelas diagram di atas: · karyawan adalah array yang bertipe String, berisi nama-nama dari pegawai yang dimiliki manager · setKaryawan(String nama) digunakan untuk menambahkan jumlah pegawai manager Buatlah code Java untuk kelas diagram di atas. 2. [Score: 50] Perhatikan kelas diagram berikut:
  • 10. Modul PBO – Teknokrat 38 Keterangan kelas diagram di atas: · karyawan adalah array yang bertipe String, berisi nama-nama dari pegawai yang dimiliki manager · setKaryawan(String nama) digunakan untuk menambahkan jumlah pegawai manager Buatlah code Java untuk kelas diagram di atas.