Contoh Implementasi Relasi OOP Is-A dan Has-A Memakai Bahasa Java

Berikut ini adalah contoh source code sederhana implementasi relasi Is-A dan Has-A dalam sebuah program. Studi kasusnya adalah seorang mahasiswa bisa memiliki banyak koleksi buku. Sedangkan buku sendiri bisa berupa buku teks dan buku ajar. Untuk lebih bagusnya, coding berikut ini bisa dikembangkan dengan menambahkan menu program. Selamat belajar :)

/**
 * Program ini tentang mahasiswa yang memiliki banyak koleksi buku
 * Buku bisa berupa text book, dan buku ajar
 */
class buku{
    String judul;
    String penulis;
}
class textbook extends buku{
    String penerbit;
    textbook(String j, String p, String b){
        judul=j; penulis=p; penerbit=b;
    }
}

class bukuajar extends buku{
    String matakuliah;
    bukuajar(String j, String p, String m){
        judul=j; penulis=p; matakuliah=m;
    }
}
class mhs{
    String nama;
    textbook tb[];
    bukuajar ba[];
    int jtb, jba;
    mhs(String n){
        nama=n;
        tb = new textbook[10]; ba = new bukuajar[5];
    }
    void tambahTB(textbook t){      //obyek text book sbg parameter method
        if (jtb<10){
            tb[jtb]=t;
            jtb++;
            System.out.println("Penambahan text book sukses...");
        }
        else{
            System.out.println("Kapasitas text book penuh...");
        }
    }
    void tambahBA(bukuajar b){      //obyek buku ajar sbg parameter method
        if (jba<10){
            ba[jba]=b;
            jba++;
            System.out.println("Penambahan buku ajar sukses...");
        }
        else{
            System.out.println("Kapasitas buku ajar penuh...");
        }
    }
    void lihatkoleksi(){
        System.out.println("\nKoleksi Buku Teksnya "+nama+" :");
        for(int i=0; i<jtb; i++){
            System.out.println((i+1)+". "+tb[i].judul+" karya "+tb[i].penulis);
        }
        System.out.println("Koleksi Buku Ajarnya "+nama+" :");
        for(int i=0; i<jba; i++){
            System.out.println((i+1)+". "+ba[i].judul+" karya "+ba[i].penulis);
        }
    }
    void hapuskoleksi(){
        //1. input jenis buku
        //2. input judul buku
        //3. cari buku
        //4. konfirmasi penghapusan
        //5. hapus buku
    }
}
public class koleksi {
    public static void main(String h[]){
        //buat obyek mahasiswa
        mhs m = new mhs("Budi");
        //buat obyek buku teks
        textbook tb1 = new textbook("Java Fundamental","M.Carrick", "Sun System");
        textbook tb2 = new textbook("Database for Dummies", "Samarkhand", "Mc Graw Hill");
        //masukkan obyek buku teks ke obyek mahasiswa
        m.tambahTB(tb1);
        m.tambahTB(tb2);
        m.lihatkoleksi();
        //buat obyek buku ajar
        bukuajar ba1 = new bukuajar("Pengantar Teknologi Informasi","Prof. Fauzi", "PTI");
        bukuajar ba2 = new bukuajar("Sistem Informasi Manajemen", "Dr. Asti", "SIM");
        //masukkan obyek buku ajar ke obyek mahasiswa
        m.tambahBA(ba1);
        m.tambahBA(ba2);
        m.lihatkoleksi();
    }
}

2 comments:

  1. maaf pak, untuk inisialisasi nilai jumlah jtb dan jba ditempatkan dimana ya?
    apa nggak ditempatkan pada konstruktor mhs? terima kasih.

    ReplyDelete
  2. jta dan jtb tidak perlu diinisialisasi. by default oleh java di-set 0 utk tipe data angka. jta dan jtb utk menyimpan jumlah buku

    ReplyDelete