Contoh Program Java " Nasabah bank "

1. class Induk Nasabah


import java.util.Random;
import javax.swing.JOptionPane;


public class IndukNasabah {
 
    private String nama, alamat, jk, noRek,jenistab;
    private final  Random random = new Random();

    public  String setNorek(int length) {
        String code = "";
        for (int i = 0; i < length; i++) {
            code += (char) (random.nextInt(10) + '0');
        }
        return code;
    }
 
    public String getNama(){
        return nama;
    }
    public String getAlamat(){
        return alamat;
    }
    public String getJk(){
        return jk;
    }
    public String getNorek(){
        return noRek;
    }
    public void indftNasabah(){
        JOptionPane.showMessageDialog(null, "PENDATAAN NASABAH BARU","PENDATAAN",
                JOptionPane.INFORMATION_MESSAGE);
        this.nama=JOptionPane.showInputDialog("Masukkan Nama  : ");
        this.alamat=JOptionPane.showInputDialog("Masukkan Alamat  : ");
        this.jk=JOptionPane.showInputDialog("Masukkan Jenis Kelamin  : ");
        this.noRek=setNorek(8);
        JOptionPane.showMessageDialog(null, "Data baru sudah di input");
    }
    public void inputJenis(){
    }
    public void cetak_nasabah(){
    }
    public void cetak_saldo(){
    }
    public void penyetoran(){
    }
    public void penarikan(){
    }
    public void cetak_penarikan(){
            }
    public String getJenistab(){
        return jenistab;
    }

 
}

2. Class Deposit

package TA_UAS;

import javax.swing.JOptionPane;

public class Deposit extends IndukNasabah {

    private String jenisdep, jenistab;
    private double bunga,S_awal,S_akhir,setor,tarik,ambil,ambils;
 
    @Override
    public String getJenistab(){
        switch (jenisdep) {
            case "1":
                jenistab="Deposito";
                break;
         
        }
        return jenistab;
     
    }
    public double getSaldo(){
      return S_akhir;
    }
    public double setBunga(){
        return bunga;
}
    public double setTarik(){
        return tarik;
}
    @Override
    public void penyetoran(){
        if(getNama()==null){
            JOptionPane.showMessageDialog(null, "belum ada data");
        }else{
        String setor_string=JOptionPane.showInputDialog("masukkan jumlah deposito");
        setor=Integer.parseInt(setor_string);
        S_awal=S_awal+setor;
        switch (jenisdep) {
            case "1":
                bunga=0.01*S_awal;
                break;
            case "2":
                bunga=0.02*S_awal;
                break;
        }
        this.S_akhir=S_awal+bunga;
        }
}
 
    @Override
    public void inputJenis(){
        this.jenistab=JOptionPane.showInputDialog("Pilih Jenis Tabungan\n"
                + "1. Deposito");
         this.jenisdep=JOptionPane.showInputDialog("Pilih Jenis Deposito\n"
                + "1. 6 bulan\n2. 12 bulan");
}
    @Override
    public void cetak_nasabah(){
        if (getNama()!=null || getNorek()!=null){
            System.out.println("Nomor Rekening "+getNorek());
            System.out.println("Nama "+getNama());
            System.out.println("Jenis Tabungan "+getJenistab());
        }else{
            JOptionPane.showMessageDialog(null, "belum ada data");
        }
}
    @Override
    public void cetak_saldo(){
        if(getSaldo()==0){
            JOptionPane.showMessageDialog(null, "belum ada data");
        }else{
         System.out.println("Deposito "+S_akhir);
         System.out.println("Bunga "+setBunga());
         System.out.println("Saldo Akhir "+getSaldo());
         if("1".equals(jenisdep)){
             System.out.println("Deposito 6 Bulan");
         }
         if("2".equals(jenisdep)){
             System.out.println("Deposito 12 Bulan");
         }
        }
}
    @Override
    public void penarikan(){
        if(getSaldo()==0){
            JOptionPane.showMessageDialog(null, "belum ada data");
        }else{
        System.out.println("PENARIKAN DEPOSITO");
        cetak_nasabah();cetak_saldo();
         ambils=S_akhir-S_awal;
        JOptionPane.showMessageDialog(null, "Jumlah Dana yang bisa diambil adalah Rp. "+ambils);
        String a=JOptionPane.showInputDialog("Masukkan jumlah penarikan");
        this.tarik=Double.parseDouble(a);
            if(tarik>ambils){
                JOptionPane.showMessageDialog(null, "Dana tidak cukup");
            }else{
            this.ambils=ambils-tarik;
            S_akhir=S_akhir-tarik;
            }
     
     
    }
    }
    @Override
    public void cetak_penarikan(){
        System.out.println("DATA PENARIKAN DEPOSITO");
        JOptionPane.showMessageDialog(null, "Penarikan "+setTarik()+"\n"
                + getSaldo()+"\n");
     
     
    }
 
}

3. Class Tabungan

package TA_UAS;

import javax.swing.JOptionPane;


public class Tabungan extends IndukNasabah{
    private double s_awal,s_akhir,setor, tarik;
    private String jenistab,jentab;
    
    public double getSaldoAwal(){
        return s_awal;
    }
    public double getSaldo(){
        s_akhir=getSaldoAwal()+setor;
      return s_akhir;
    }
    public double getSetor(){
        return setor;
    }
    @Override
    public String getJenistab(){
        switch (jentab) {
            case "1":
                jenistab="SIMPEDES";
                break;
            case "2":
                jenistab="SIMPEDA";
                break;
        }
        return jenistab;
    }
    
    @Override
    public void inputJenis(){
        this.jentab=JOptionPane.showInputDialog("Pilih Jenis Tabungan\n"
                + "1. Simpedes\n2. Simpeda");
         
}
    
    @Override
    public void penyetoran(){
        String setor_string=JOptionPane.showInputDialog("masukkan jumlah setoran");
        this.setor=Integer.parseInt(setor_string);
        this.s_awal=s_awal+setor;
        
    }
    @Override
    public void cetak_nasabah(){
        System.out.println("DATA NASABAH TABUNGAN "+getJenistab());
        System.out.println("NAMA NASABAH : "+getNama());
        System.out.println("ALAMAT : "+getAlamat());
        System.out.println("JENIS KELAMIN : "+getJk());
        System.out.println("NOMOR REKENING : "+getNorek());
        
    }
    public void cetak_saldo(){
         System.out.println("NOMOR REKENING : "+getNorek());
         System.out.println("NAMA NASABAH : "+getNama());
         System.out.println("Saldo  "+getSaldo());
        
}
    
    
}

4. Class Menu Utama


package TA_UAS;

import javax.swing.JOptionPane;


public class MenuUtama{
    public static void main (String [] args){
      String isi,pil_string,ulang_string;
        int pil,ulang;
        IndukNasabah xx;
               

   do { //perulangan
            isi="1. PENDATAAN DEPOSIT\n"+"2. PENDATAAN TABUNGAN REGULER\n"+"3. KELUAR";
            pil_string=JOptionPane.showInputDialog(null,isi, "BANK ISTAKPRIND",JOptionPane.QUESTION_MESSAGE);
            pil=Integer.parseInt(pil_string);
            switch(pil) { //perkondisian
                case 1:{
                        int pil2;
                        Deposit satu=new Deposit();
                        xx = satu;
                        do { //perulangan
                            isi="1. Pendaftaran Data Deposit Baru\n"+"2. Cetak Data Nasabah\n"+"3. Tambah Saldo\n"
                                + "4. Cetak Saldo\n"+ "5. Penarikan\n"+"6. Keluar\n"+"Masukkan pilihan anda :";
                            pil_string=JOptionPane.showInputDialog(null,isi, "BANK ISTAKPRIND", JOptionPane.QUESTION_MESSAGE);
                            pil2=Integer.parseInt(pil_string);
                        switch(pil2) { //perkondisian
                        case 1:{
                            xx.indftNasabah();
                            xx.inputJenis();
                            JOptionPane.showMessageDialog(null, "Input Selesai, klik OK untuk melanjutkan","INPUT SELESAI",JOptionPane.INFORMATION_MESSAGE);
                            break;}
                        case 2:{xx.cetak_nasabah();
                            break;}
                        case 3: {xx.penyetoran();
                            break;}
                        case 4:{xx.cetak_saldo();
                            break;}
                        case 5:{xx.penarikan();xx.cetak_penarikan();
                            break;}
                        case 6:JOptionPane.showMessageDialog(null,"Klik OK untuk melanjutkan");
                        break;
                        }
                        ulang_string=JOptionPane.showInputDialog("Mau transaksi lagi?\nJika YA input 1\n" +
                        "MENUJU MENU UTAMA input 0\n"+"masukkan pilihan :");
                        ulang=Integer.parseInt(ulang_string);
                    }while(ulang==1);
                }
                case 2:{
                int pil2;
                        Tabungan tab1=new Tabungan();
                        xx = tab1;
                        do { //perulangan
                            isi="1. Pendaftaran Data Tabungan Baru\n"+"2. Cetak Data Nasabah\n"+"3. Tambah Saldo\n"
                                + "4. Cetak Saldo\n"+"5. Keluar\n"+"Masukkan pilihan anda :";
                            pil_string=JOptionPane.showInputDialog(null,isi, "BANK ISTAKPRIND", JOptionPane.QUESTION_MESSAGE);
                            pil2=Integer.parseInt(pil_string);
                        switch(pil2) { //perkondisian
                        case 1:{
                            xx.indftNasabah();
                            xx.inputJenis();
                            JOptionPane.showMessageDialog(null, "Input Selesai, klik OK untuk melanjutkan","INPUT SELESAI",JOptionPane.INFORMATION_MESSAGE);
                            break;}
                        case 2:{xx.cetak_nasabah();
                            break;}
                        case 3: {xx.penyetoran();
                            break;}
                        case 4:{xx.cetak_saldo();
                            break;}
                        case 5:JOptionPane.showMessageDialog(null,"Klik OK untuk melanjutkan");
                        break;
                        }
                        ulang_string=JOptionPane.showInputDialog("Mau transaksi lagi?\nJika YA input 1\n" +
                        "MENUJU MENU UTAMA input 0\n"+"masukkan pilihan :");
                        ulang=Integer.parseInt(ulang_string);
                    }while(ulang==1);
                }
                case 3:JOptionPane.showMessageDialog(null,"Klik OK untuk melanjutkan");
                break;
            }
            ulang_string=JOptionPane.showInputDialog("Mau transaksi lagi?\nMENU UTAMA input 1\n" +
                    "KELUAR input 0\n"+"masukkan pilihan :");
            ulang=Integer.parseInt(ulang_string);
        }
        while(ulang==1);      
    }
    
}

5. Menu Utama

package TA_UAS;

import javax.swing.JOptionPane;

public class Utama{
    public static void main (String [] args){
      String isi,pil_string,ulang_string;
        int pil,ulang;
        IndukNasabah xx;
        Deposit satu=new Deposit();
        xx = satu;
        

   do { //perulangan
            isi="1. Pendaftaran Nasabah Deposit\n"+"2. Cetak Data\n"+"3. Tambah Saldo\n"
                    + "4. Cetak Saldo\n"+"5. Daftar Tabungan :\n"+
                    "6. Cetak Saldo\n"+"7. Keluar\n"+"Masukkan pilihan anda :";
            pil_string=JOptionPane.showInputDialog(null,isi, "BANK ISTAKPRIND",
                    JOptionPane.QUESTION_MESSAGE);
            pil=Integer.parseInt(pil_string);
            switch(pil) { //perkondisian
                case 1:{
                        xx.indftNasabah();
                        xx.inputJenis();
                        JOptionPane.showMessageDialog(null, "Input Selesai, klik OK untuk melanjutkan","INPUT SELESAI",JOptionPane.INFORMATION_MESSAGE);
                        break;}
                case 2:{xx.cetak_nasabah();
                        break;}
                case 3: {xx.penyetoran();
                break;}
                case 4:{xx.cetak_saldo();
                break;}
                case 5: {
                        Tabungan tab1=new Tabungan();
                        xx = tab1;
                        xx.indftNasabah();xx.inputJenis();xx.cetak_nasabah();
                break;}
                case 6:{
                        
                        
                break;}
                case 7:JOptionPane.showMessageDialog(null,"Klik OK untuk keluar");
                break;
            }
            ulang_string=JOptionPane.showInputDialog("Mau transaksi lagi?\nJika YA input 1\n" +
                    "jika TIDAK input 0\n"+"masukkan pilihan :");
            ulang=Integer.parseInt(ulang_string);
        }
        while(ulang==1);      
    }
    
}