ETS (Transaksi Transfer dengan Menggunakan Mesin ATM)

         Transfer ATM Machine

                Oke teman teman untuk kali ini saya ingin mencoba membuat program mesin ATM secara simple dimana saya menggunakan Blue J untuk membuat diagram classnya. Sebelum saya ingin menjelaskan terlebih dahulu terkait Skenario Fungsionalitas Mesin ATM sebagai  berikut:

1. Terdapat Menu Utama pada layar atau Screen Mesin ATM.

2. Pengguna ATM memasukkan nomer PIN ATM nya.

3. Pengguna memilih menu Transfer. 

4. Jika tidak ada pengguna memilih transaksi lainnya.

5. Pengguna memilih menu Transfer. untuk mentransfer uang kepada sesama bank atau bank lainnya.

6. Pengguna memasukkan nomer Rekening yang akan di transfer.

7. Pengguna beberapa jumlah nominal uang untuk di transfer.

8. Setelah di konfirmasi benar maka , Mesin akan mencetak Struk bukti Transfer.


Maka dari adanya  Skenario kita bisa tentukan Class Terpenting sesuai dengan perintah yaitu perintah Tranfer. Disini saya menggunakan Class sebagai berikut :

   1. Menu Utama, class ini berfungsi untuk memanggil class lain yang  ada di ATM

   2. Account, class ini  berfungsi menyimpan no PIN dan jumlah Saldo yang ada di kartu ATM.

   3. Transaksi, class ini berfungsi untuk menampilkan fitur fitur yang ada di Mesin ATM termasuk fitur 

        Transfer.

   4. Transfer, class yang berfungsi untuk melakukan Transfer. 

   5. Struk,    class yang berfungsi untuk mencetak struk dari proses yang di pilih oleh pengguna.

   6. Class lain dari transaksi yang belum bisa digunakan.


    Berikut Diagram class yang saya buat untuk proses Transfer pada Mesin ATM. 




Untuk code dari semua class di atas sebagai berikut

1. Menu Utama
import java.util.Scanner;
/**
*class ATM_Machine, sebagai class utama dari program ATM.
*
* @author (Abdun Nafi')
* @version (0.1 / 26 November 2020)
*/
public class Menu_Utama
{
private Account akun;
private Struk struk;
private Transaksi transaksi;
public int pin_masuk;
private int pilihan;
public int saldo;
public int rekening;
public int nominal;
public Menu_Utama(){
akun = new Account();
transaksi = new Transaksi();
struk = new Struk();
}
public void start(){
printWelcome();
pin_masuk = new Scanner (System.in).nextInt();
if(pin_masuk == akun.getpin()){
saldo = akun.getsaldo();
printMenu();
pilihan = new Scanner (System.in).nextInt();
pilihanUser();
}
else{
System.out.println("Pin yang anda masukkan salah, silahkan coba lagi");
}
}
private void printWelcome(){
System.out.println("----------Selamat Datang di ATM BNI--------------");
System.out.println("Silahkan masukkan pin anda :");
}
private void printMenu(){
System.out.println("Silahkan memilih jumlah penarikan uang");
System.out.println("1. Rp.100.000");
System.out.println("2. Rp.500.000");
System.out.println("3. Rp.1.000.000");
System.out.println("4. Rp.1.250.0000");
System.out.println("5. Registrasi E-Channel");
System.out.println("6. Penarikan Jumlah Lain");
System.out.println("7. Mutasi");
System.out.println("8. Menu Lain");
}
private void pilihanUser(){
switch(pilihan){
case 1:
nominal = 100000;
saldo -= nominal;
struk.printMessagePenarikan(saldo,nominal);
break;
case 2:
nominal = 500000;
saldo-= nominal;
struk.printMessagePenarikan(saldo,nominal);
break;
case 3:
nominal = 1000000;
saldo-= nominal;
struk.printMessagePenarikan(saldo,nominal);
break;
case 4:
nominal = 1250000;
saldo-= nominal;
struk.printMessagePenarikan(saldo,nominal);
break;
case 5:
System.out.println("Layanan E-Channel Belum Tersedia");
break;
case 6:
System.out.println("Layanan Penarikan lain Belum Tersedia");
break;
case 7:
System.out.println("Layanan Mutasi Belum Tersedia");
break;
case 8:
transaksi.menu();
transaksi.opsi();
break;
}
}
}
view raw Menu Utama hosted with ❤ by GitHub
2. Account
/**
* Class Account dimana menyimpan jumlah saldo dan pin anda.
*
* @author (Abdun Nafi')
* @version (0.1 / 26 November 2020)
*/
public class Account{
private int pin = 111111;
public int saldo = 2000000;
public int getpin(){
pin = this.pin;
return pin;
}
public int getsaldo(){
saldo = this.saldo;
return saldo;
}
}
view raw Account hosted with ❤ by GitHub
3. Transaksi
import java.util.Scanner;
/**
* class Transaksi berfungsi untuk menyediakan beberapa fitur transaksi termasuk
* fitur Transfer.
*
* @author (Abdun Nafi')
* @version (0.1 / 26 Noveber 2020)
*/
public class Transaksi{
private GantiPin ganti;
private Transfer transfer;
private Uang_Elektronik uang_elektronik;
private BNISimponi bnisimponi;
private Pembayaran pembayaran;
private Mutasi mutasi;
private Informasi_Saldo informasi_saldo;
private Penarikan_tunai penarikan;
private int pilihan;
public Transaksi(){
penarikan = new Penarikan_tunai();
ganti = new GantiPin();
transfer = new Transfer();
uang_elektronik = new Uang_Elektronik();
bnisimponi = new BNISimponi();
pembayaran = new Pembayaran();
mutasi = new Mutasi();
informasi_saldo = new Informasi_Saldo();
}
public void menu(){
System.out.println("Silahkan memilih jenis transaksi : ");
System.out.println("1. Penarikan tunai");
System.out.println("2. Ganti PIN");
System.out.println("3. Informasi Saldo");
System.out.println("4. Transfer");
System.out.println("5. Uang Elektronik");
System.out.println("6. Pembayaran");
System.out.println("7. BNI Simponi");
System.out.println("8. Mutasi");
pilihan = new Scanner (System.in).nextInt();
}
public void opsi(){
if(pilihan == 1){
System.out.println("Layanan Penarikan Tunai Belum bisa digunakan");
}
else if(pilihan == 2){
System.out.println("Layanan Ganti Pin Belum bisa digunakan");
}
else if(pilihan == 3){
System.out.println("Layanan Informasi Saldo Belum bisa digunakan");
}
else if(pilihan == 4){
transfer.executeTransfer();
}
else if(pilihan == 5){
System.out.println("Layanan Uang Elektronik Belum bisa digunakan");
}
else if(pilihan == 6){
System.out.println("Layanan Pembayaran Belum bisa digunakan");
}
else if(pilihan == 7){
System.out.println("Layanan BNI SIMPONI Belum bisa digunakan");
}
else if(pilihan == 8){
System.out.println("Layanan Mutasi Belum bisa digunakan");
}
}
}
view raw Transaksi hosted with ❤ by GitHub
4. Transfer
import java.util.Scanner;
/**
* Class Transfer yang berfungsi untuk mentrasfer Uang kepada rekening lainnya.
*
* @author (Abdun Nafi')
* @version (0.1 / 26 November 2020)
*/
public class Transfer
{
Account akun;
Struk struk;
private int rekening;
private int nominal;
private int saldo;
public Transfer(){
akun = new Account();
struk = new Struk();
}
public void execute(){
saldo = akun.getsaldo();
System.out.println("Anda melakukan Penarikan Uang");
System.out.println("Berapa nominal uang yang ingin anda ambil ?");
nominal = new Scanner(System.in).nextInt();
saldo-=nominal;
struk.printMessagePenarikan(saldo,nominal);
}
public void executeTransfer(){
saldo = akun.getsaldo();
System.out.println("Anda melakukan Transfer Kepada Rekening Lain");
System.out.println("Tuliskan Rekening Tujuan Anda : ");
rekening = new Scanner(System.in).nextInt();
System.out.println("Berapa nominal uang yang ingin anda Transfer ?");
nominal = new Scanner(System.in).nextInt();
saldo-=nominal;
struk.printMessageTransfer(saldo,nominal,rekening);
}
}
view raw Transfer hosted with ❤ by GitHub
5. Struk
/**
*class Struk, digunakan untuk mencetak hasil transaksi transfer yang anda lakukan.
*
* @author (Abdun Nafi')
* @version (0.1 / 26 November 2020)
*/
public class Struk{
public void printMessageTransfer(int saldo,int nominal, int rekening){
if(saldo<0){
System.out.println("Transaksi Gagal dilakukan dikarenakan saldo anda tidak mencukupi");
}
else{
System.out.println("\nTransaksi Berhasil Dilakukan");
System.out.println("---------------- Struk Hasil Transaksi ------------------");
System.out.println("Transaksi Yang dilakukan : Transfer ");
System.out.println("Nomer rekening yang dituju : " +rekening);
System.out.println("Saldo awal sebelum transaksi :Rp.2.000.000");
System.out.println("Jumlah uang yang di ambil : " + nominal);
System.out.println("Saldo setelah melakukan penarikan : Rp. "+ saldo);
System.out.println("Silahkan Mengambil Kartu Anda");
System.out.println("--------- Terimakasih telah Menggunakan ATM BNI ---------");
}
}
public void printMessagePenarikan(int saldo,int nominal){
if(saldo<0){
System.out.println("Transaksi Gagal dilakukan dikarenakan saldo anda tidak mencukupi");
}
else{
System.out.println("\nTransaksi Berhasil Dilakukan");
System.out.println("---------------- Struk Hasil Transaksi ------------------");
System.out.println("Transaksi Yang dilakukan : Transfer ");
System.out.println("Saldo awal sebelum transaksi :Rp.2000.000");
System.out.println("Jumlah uang yang di transfer : " + nominal);
System.out.println("Saldo setelah melakukan transaksi : Rp. "+ saldo);
System.out.println("Silahkan Mengambil Kartu Anda");
System.out.println("--------- Terimakasih telah Menggunakan ATM BNI ---------");
}
}
}
view raw StrukTransfer hosted with ❤ by GitHub

Untuk link demo dari ETS berikut ini :




Nama: Abdun Nafi'
NRP : 05111940000066 
Kelas : PBO C


Komentar

Postingan populer dari blog ini

SupportSystem dan Dokumentasi Program (Barokah OnlineShop)

Membuat Text Editor Menggunakan Blue J