Pewarisan (Inheritance) OOP: Aplikasi Warung Makanan Sederhana

Dalam aplikasi kali ini diterapkan skenario pewarisan hybrid antara multilevel dengan hierarchical inheritance. Class seafood merupakan turunan dari class makanan. Class makanan dan class minuman merupkaan turunan dari class menu. Dengan memanfaatkan fitur pewarisan, sebuah class baru dapat dibuat dengan cepat, dan bisa langsung digunakan; bahkan meskipun tidak ada isi di dalam class-nya.

public class cMenu {
    private String nama;
    protected double harga;
    cMenu(){
        System.out.println("Default constructor...");
    }
    cMenu(String n, double h){
        nama=n; harga=h;
        System.out.println("Object menu dibuat...");
    }

Pewarisan (Inheritance) OOP: Aplikasi Toko Pakaian Sederhana

Berikut ini contoh skema pewarisan multilevel dan hierarchical yang diterapkan pada aplikasi toko pakaian sederhana. Class seragam turunan dari class baju. Class baju turunan dari class barang. Class sepatu juga merupakan turunan class barang. Dengan adanya pewarisan, maka class seragam dan class sepatu otomatis mendapatkan sifat-sifat yang dimiliki class induknya, sehingga tidak perlu menulis source code-nya lagi dari awal. Kemudian tinggal dipakai di class main/ aplikasi.

public class cBarang {
    private String kode;
    private String nama;
    private double harga;
    cBarang(){
        kode=""; nama=""; harga=0;
        System.out.println("Object barang dibuat...");
    }
    cBarang(String k, String n, double h){
        kode=k; nama=n; harga=h;
        System.out.println("Induk...");
        System.out.println("Object barang dibuat...");
    }

OOP Class Container: Aplikasi Warung Makan Sederhana

Berikut ini adalah source code beberapa class provider dan class aplikasi untuk membuat aplikasi warung makanan sederhana. Isi class masih minimalis. Atribut dan method-nya bisa ditambahkan/ dilengkapi lebih lanjut. Transaksi relasinya: seorang pengunjung bisa membeli banyak makanan.

public class cPengunjung {
    private String nama;
    private String alamat;
    cPengunjung(String n, String a){
        nama=n; alamat=a;
        System.out.println("Object pengunjung dibuat...");
    }
    public String getNama(){
        return nama;
    }
    public String getAlamat(){
        return alamat;
    }
}

Class Utama untuk Aplikasi SIAMIK Versi 3

Berikut source code lengkap untuk aplikasi Sistem Informasi Akademik, sub sistem pengisian KRS mahasiswa. Untuk bisa dijalankan, sertakan pula semua class provider-nya.

package pkgSIAMIK;
import java.util.Scanner;
public class appSIAMIK3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //object-object utama/ master di MAIN
        //sementara dibatasi 3 org dulu
        cMhs mhs[]=new cMhs[3];
        //buat object mhs uji coba
        mhs[0]=new cMhs();
        mhs[0].setNPM("123");
        mhs[0].setNama("Budi");
        mhs[0].setIPK(3.45);

Class Provider untuk Aplikasi SIAMIK Versi 3.0 (Container)

Ada dua buah class provider yang dimodifikasi untuk menerapkan class container, yaitu class program studi yang menampung banyak object mahasiswa, dan class KRS yang menyimpan satu object mahasiswa dan banyak object mata kuliah.

public class cProdi {
    private String kodeProdi;
    private String namaProdi;
    private String akreditasi;
    private cMhs [] mhs;
    private int jmhs, maksmhs=10;
    cProdi(){
        kodeProdi="XYZ";
        namaProdi="ABC";
        akreditasi="N/A";
        //asumsi dibatasi 10 org mhs saja dulu
        mhs=new cMhs[10];
        jmhs=0;
        System.out.println("Object Prodi dibuat...");
    }

Class Container: Aplikasi Toko Sederhana

Berikut ini adalah source code beberapa class yang menyusun aplikasi Toko sederhana dengan menggunakan array of object di dalam class pembelian. Skenario proses transaksinya adalah seorang pelanggan dapat membeli banyak barang sekaligus.

public class cPelanggan {
    private String nama;
    private String alamat;
    cPelanggan(String n, String a){
        nama=n; alamat=a;
        System.out.println("Object pelanggan dibuat...");
    }
    public String getNama(){
        return nama;
    }
    public String getAlamat(){
        return alamat;
    }
}

Aplikasi SIAMIK OOP Versi 2.0: Implementasi Relasi Asosiasi

Berikut ini adalah source code lengkap class utama aplikasi Sistem Informasi Akademik yang menerapkan dua bentuk relasi Asosiasi, yaitu agregasi, dan komposisi. Dalam versi ini semua object yang dibuat masih berjumlah tunggal. Di versi berikutnya akan dikembangkan program yang menggunakan konsep array of object.

package pkgSIAMIK;

import java.util.Scanner;
public class appSIAMIK {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        cMhs mhs=null;
        cMatkul mk=null;
        cKRS krs=null;
        cProdi prodi=null;
        int pilih, pilih2;
        
        do{
            System.out.println("\nMENU SIAMIK");
            System.out.println("1. Mahasiswa");
            System.out.println("2. Mata Kuliah");
            System.out.println("3. Kartu Rencana Studi");
            System.out.println("4. Program Studi");
            System.out.println("5. Exit");
            System.out.print("Pilih = ");
            pilih = sc.nextInt();
            System.out.println("");
            switch(pilih){

Aplikasi SIAMIK: Class Kartu Rencana Studi (Relasi Part Of)

Berikut ini adalah source code class provider KRS untuk menerapkan relasi antar class dengan jenis komposisi. Skenarionya adalah di dalam class KRS terdapat komponen object dari class Mahasiswa dan class Mata Kuliah. Untuk sementara, object yang dimiliki masih hanya satu buah dulu. Akan dikembangkan di versi berikutnya.

package pkgSIAMIK;

class cKRS{
    private cMhs mhs;
    private cMatkul mk;
    private String semester;
    cKRS(){
        mhs=null; mk=null;
        System.out.println("Object KRS dibuat...");
    }

Aplikasi SIAMIK: Class Program Studi (Relasi Has A)

Berikut ini adalah source code class provider Program Studi untuk menerapkan relasi jenis Agregasi (Has A) sebagai pengembangan aplikasi Sistem Informasi Akademik yang sudah dibuat sebelumnya. Skenario yang dibuat adalah "Program Studi memiliki mahasiswa".

package pkgSIAMIK;

public class cProdi {
    private String kodeProdi;
    private String namaProdi;
    private String akreditasi;
    private cMhs mhs;
    cProdi(){
        kodeProdi="XYZ";
        namaProdi="ABC";
        akreditasi="N/A";
        mhs=null;
        System.out.println("Object Prodi dibuat...");
    }

Aplikasi SIAMIK OOP: Pilihan Menu

Dalam program kali ini dibuatkan tampilan menu untuk membuat object, menghapus object, dan menjalankan method standar yang dimiliki oleh class Mahasiswa dan class Mata Kuliah. Menu program dibuat di dalam class aplikasi; yaitu class utama yang di dalamnya terdapat method main. Berikut ini adalah source code programnya.

package pkgSIAMIK;

import java.util.Scanner;
public class appSIAMIK {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        cMhs mhs=null;
        cMatkul mk=null;
        cKRS krs=null;
        int pilih, pilih2;
        
        do{
            System.out.println("\nMENU SIAMIK");
            System.out.println("1. Mahasiswa");
            System.out.println("2. Mata Kuliah");
            System.out.println("3. Kartu Rencana Studi");
            System.out.println("4. Exit");
            System.out.print("Pilih = ");
            pilih = sc.nextInt();
            System.out.println("");

Program OOP Siamik: Class Kartu Rencana Studi

Berikut ini adalah definisi class Kartu Rencana Studi (KRS) yang akan digunakan dalam program SIAMIK dengan sub proses tentang pengisian Kartu Rencana Studi mahasiswa.

package pkgSIAMIK;
class cKRS{
    private cMhs mhs;
    private cMatkul mk;
    private int semester;
    private int TA;
    private int totalSKS;
    cKRS(){
        System.out.println("Constructor 1 KRS...");
    }
    cKRS(int smt, int t){
        mhs=null; mk=null;
        semester=smt; TA=t;
        System.out.println("Constructor 2 KRS...");
    }

Program OOP Siamik: Class Mata Kuliah

Berikut ini adalah definisi class Mata Kuliah yang akan digunakan dalam program SIAMIK dengan sub proses tentang pengisian Kartu Rencana Studi mahasiswa.

package pkgSIAMIK;
class cMatkul{
    private String kodeMK;
    private String namaMK;
    private int SKS;
    cMatkul(){
        System.out.println("Constructor 1 Matkul...");
    }
    cMatkul(String kd, String nm, int s){
        kodeMK=kd; namaMK=nm; SKS=s;
        System.out.println("Constructor 2 Matkul...");
    }

Program OOP Siamik: Class Mahasiswa

Berikut ini adalah definisi class Mahasiswa yang akan digunakan dalam program SIAMIK dengan sub proses tentang pengisian Kartu Rencana Studi mahasiswa.

package pkgSIAMIK;
public class cMhs {
    private String nama;
    private String NPM;
    private double IPK;
    //constructor
    cMhs(){
        System.out.println("Constructor 1 Mhs...");
    }
    cMhs(String np, String nm){
        NPM=np; nama=nm; IPK=0.0;
        System.out.println("Constructor 2 Mhs...");
    }

Program OOP Dasar: Mahasiswa dan Mata Kuliah

Berikut ini adalah contoh program OOP sederhana untuk menerapkan aktivitas Mahasiswa mengisikan Mata Kuliah ke dalam KRS. Berdasar kalimat proses tersebut dapat kita temukan tiga buah kata benda yang menjadi kandidat kuat class, yaitu: mahasiswa, mata kuliah, dan KRS. Setelah itu, kita definisikan class-nya ke dalam source code class aplikasi yang sudah dibuat sebelumnya. Satu per satu class kita lengkapi isinya dengan data (variabel/ atribut) dan method-nya. Setelah itu kita uji coba untuk membuat object-nya di main, dan memanggil method-method-nya. InsyaAllah pekan depan kita gabungkan dengan struktur kendali sehingga bisa membuat menu program. Semoga bermanfaat dan selamat belajar :)

class cMahasiswa{
    //data member
    private String NPM;
    private String Nama;
    private double IPK;
    //constructor
    cMahasiswa(){
        System.out.println("Object mhs dibuat...");
    }
    cMahasiswa(String np, String nm){
        NPM=np; Nama=nm; IPK=0.0;
        System.out.println("Object2 mhs dibuat...");
    }

Program Dasar OOP (Membuat Class dan Object)

Berikut ini adalah contoh source code program implementasi OOP untuk membuat program tentang pencatatan plot ruang ujian mata kuliah yang diikuti mahasiswa. Program ini sifatnya masih terbatas tester (pengujian) terhadap method-method yang dibuat: apakah sudah bisa berjalan sesuai harapan, ataukah belum. Program ini juga belum melibatkan kendali terstruktur percabangan, perulangan, maupun pembuatan menu utamanya. InsyaAllah akan dilengkapi di source code berikutnya. Selamat belajar :)
 
package pkgAkademik;

//Mahasiswa mengikuti ujian BP2 di ruang 301
class cMahasiswa{
    //data member
    private String nama;
    private String npm;
    private double ipk;