Coba kalo temen-temen perhatikan dari materi-materi sebelumya sampe sekarang mungkin klo kita gabungkan kemungkinan source code yang kita tulis udah lumayan banyak ya dan lumayan besar juga khan. Karena topik kita dari materi sebelumya yaitu modularisasi.

Modularisasi tidak hanya sebatas dipisahkan dalam method atau function yang saling panggil-memanggil tetepi juga kita bisa pisahkan secara file atau class dengan tujuan lebih teroranisir dan memisahkan function yang tidak berhubungan langsung di file atau class tersebut. Contohnya seperti berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class AplikasiBankBNI {

    public BigDecimal hitungBungaTabungan(Integer idNasabah){
        // proses bisnis untuk menghitung bunga per-nasabah
        return value;
    }

    public BigDecimal hitungBungaDeposito(Integer idNasabah){
        // proses bisnis untuk menghitung buga per-nasabah
        return value;
    }

    public BigDecimal hitungPajakByTabunganAndDepositoPerNasabah(BigDecimal saldoTabungan, BigDecimal SaldoDeposito, Integer idNasabah){
        // proses bisnis untuk menghitung pajak deposito dan tabungan per nasabah
        return value;
    }

    public BigDecimal hitungDendaKreditByNasabah(Integer idNasabah){
        // proses bisnis untuk menghitung denda yang dimiliki nasabah
        return value;
    }
}

Nah jadi klo saya analisis dari koding diatas, ke empat method tersebut tidak memiliki keterkaitan secara langsung, sebaiknya kita pisahkan secara modul, Misalnya contohnya kita pisahkan jadi 3 modul yaitu tabungan, kredit dan deposito.

Dengan kita pisahkan permodul (3 class) yaitu dengan AplikasiTabungan, AplikasiDeposito dan AplikasiKredit seperti berikut:

Aplikasi Tabungan

1
2
3
4
5
6
7
8
public class AplikasiTabungan {

    public BigDecimal hitungBunga(Integer idNasabah){
        // proses bisnis untuk menghitung bunga per-nasabah untuk tabungan
        return value;
    }

}

Aplikasi Kredit

1
2
3
4
5
6
7
8
public class AplikasiKredit {

    public BigDecimal hitungBunga(Integer idNasabah){
        // proses bisnis untuk menghitung bunga per-nasabah untuk kredit
        return value;
    }

}

Aplikasi Deposito

1
2
3
4
5
6
7
8
public class AplikasiDeposito {

    public BigDecimal hitungBunga(Integer idNasabah){
        // proses bisnis untuk menghitung bunga per-nasabah untuk deposito
        return value;
    }

}

Aplikasi BNI

1
2
3
4
5
6
7
8
9
10
11
12
public class AplikasiBNI {

    public static void main(String[] args){
        // cara memanggil method hitungBunga yang ada di file Aplikasi Deposito
        AplikasiDeposito appDepo = new AplikasiDeposito();
        appDepo.hitungBunga(1);

        // cara memanggil method hitungBunga yang ada di file Aplikasi Kredit
        AplikasiKredit appKredit = new AplikasiKredit();
        appKredit.hitungBunga(2);
    }
}

Nah jadi dengan cara berikut kita bisa lebih dinamis memanage fungsi-fungsi atau proses bisnis tersebut. dan keuntungannya punya secara source code lebih mudah dibaca.