public class MyBCAEncapsulation { // ========================= // CLASS REKENING (ENCAPSULATION) // ========================= static class Rekening { private String namaNasabah; private String nomorRekening; private double saldo; // constructor public Rekening(String namaNasabah, String nomorRekening, double saldoAwal) { this.namaNasabah = namaNasabah; this.nomorRekening = nomorRekening; this.saldo = saldoAwal; } // getter public String getNamaNasabah() { return namaNasabah; } public String getNomorRekening() { return nomorRekening; } public double getSaldo() { return saldo; } // setter dengan validasi public void setNamaNasabah(String namaNasabah) { if (namaNasabah != null && !namaNasabah.isEmpty()) { this.namaNasabah = namaNasabah; } else { System.out.println("Nama tidak valid!"); } } // BUSINESS PROCESS 1: SETOR public void setor(double jumlah) { if (jumlah > 0) { saldo += jumlah; System.out.println("Setor berhasil sebesar: " + jumlah); } else { System.out.println("Setor gagal! Jumlah tidak valid."); } } // BUSINESS PROCESS 2: TARIK public void tarik(double jumlah) { if (jumlah > 0 && jumlah <= saldo) { saldo -= jumlah; System.out.println("Tarik berhasil sebesar: " + jumlah); } else { System.out.println("Tarik gagal! Saldo tidak cukup / jumlah salah."); } } // BUSINESS PROCESS 3: CEK SALDO public void cekSaldo() { System.out.println("Saldo saat ini: " + saldo); } } // ========================= // MAIN PROGRAM // ========================= public static void main(String[] args) { // Membuat objek rekening Rekening rek = new Rekening("Andi", "123456789", 1000000); System.out.println("=== APLIKASI myBCA (ENCAPSULATION) ==="); // ========================= // BUSINESS PROCESS: CEK DATA AWAL // ========================= System.out.println("\nData Nasabah:"); System.out.println("Nama: " + rek.getNamaNasabah()); System.out.println("No Rekening: " + rek.getNomorRekening()); rek.cekSaldo(); // ========================= // BUSINESS PROCESS: SETOR // ========================= System.out.println("\n-- Proses Setor --"); rek.setor(500000); rek.cekSaldo(); // ========================= // BUSINESS PROCESS: TARIK // ========================= System.out.println("\n-- Proses Tarik --"); rek.tarik(300000); rek.cekSaldo(); // ========================= // BUSINESS PROCESS: TARIK GAGAL // ========================= System.out.println("\n-- Proses Tarik Gagal --"); rek.tarik(2000000); // saldo tidak cukup rek.cekSaldo(); // ========================= // BUSINESS PROCESS: UBAH NAMA // ========================= System.out.println("\n-- Ubah Nama Nasabah --"); rek.setNamaNasabah("Andi Wijaya"); System.out.println("Nama baru: " + rek.getNamaNasabah()); } }