Ada dua jenis relasi secara umum dalam Object Oriented Programming (OOP), yaitu jenis Has-A, dan jenis Is-A. Relasi Has-A antara objek X dan Y dapat diartikan sebagai objek X memiliki objek Y. Sedangkan relasi Is-A antara objek M dan N dapat diartikan sebagai objek M adalah objek N. Relasi ini dikenal juga sebagai bentuk pewarisan (inheritance).
Berikut ini adalah contoh source code relasi Has-A antara class nasabah dan class rekening dalam konteks aplikasi tentang perbankan. Langkah-langkah untuk menerapkannya ke dalam bentuk coding adalah sbb:
1. Buat data member dalam class nasabah dengan tipe class rekening.
2. Buat method "bukarekening" dalam class nasabah sebagai implementasi relasi Has-A.
3. Buat objek nasabah dan objek rekening di void main().
4. Di void main(), jalankan method "bukarekening" melalui objek nasabah, dan tuliskan objek rekening ke dalam argumentasi/ parameter method tersebut.
Selamat menyimak dan mempelajari. Relasi Is-A akan kita bahas di artikel berikutnya. Simpan file di bawah ini dengan nama bank.java.
import java.util.Scanner;
class nasabah {
//data
String nama;
long ktp;
rekening rek; //data member berupa object class rekening
//beberapa jenis constructor
public nasabah(){
nama = "kosong"; ktp = 0;
System.out.println("nasabah baru dibuat...");
}
public nasabah(String n, long k){
nama = n; ktp = k;
System.out.println("nasabah "+nama+" dibuat...");
}
public nasabah(String n){ nama = n; }
public nasabah(long k){ ktp = k; }
public void bukarekening(rekening r){ //method untuk implementasi relasi
rek = r; //object assignment
System.out.println(nama+" sukses buka rekening ");
}
}
class rekening{
long nomor;
double saldo;
public rekening(long n, double s){
nomor = n; saldo = s;
System.out.println("Rekening nomor "+nomor+" sukses dibuat...");
}
}
public class bank {
public static void main(String a[]){
nasabah ika = new nasabah("ika", 123456789); //buat objek nasabah
rekening bni = new rekening(123456789, 1000000); //buat objek rekening
ika.bukarekening(bni); //buat relasi antar objeknya
}
}
No comments:
Post a Comment