ETS PBO No 3 dan 4
Nama : Dewangga Dharmawan
NRP : 05111940000029
Kelas : PBO C
Nomor 3 : Implementasi Class
Class ATM :
/**
* Class ATM berfungsi sebagai penerima password dan pembuka dalam
* transaksi dengan ATM
*
* @author (Dewangga Dharmawan)
* @version (26/11/2020)
*/
import java.util.*;
public class ATM
{
//Deklarasi beberapa variabel yang berhubungan dengan class lain
Akun account = new Akun();
Transfer display = new Transfer();
//Deklarasi scanner input
Scanner input = new Scanner(System.in);
//Method memulai program
public void start()
{
//Memasukkan kata sandi
System.out.println("Masukan Kata Sandi (6 Angka) : ");
//Mengecek apabila kata sandi yang disandikan sesuai
if(inputPass())
{
//Jika sesuai, maka dilanjutkan ke Class Transfer
display.TampilanTransfer();
}
else
{
//Jika salah, maka kembali dari awal
System.out.println("Kata sandi anda salah, silahkan mencoba lagi");
}
}
//Method untuk memasukan kata sandi dan mengeceknya
//Dengan kata sandi di Akun
public boolean inputPass()
{
String PW = input.nextLine();//Memasukan sandi
return account.inputPassword(PW);//Mengembalikan bool benar atau salah
}
}
Class Akun :
/**
* Class Akun digunakan sebagai informasi yang ada di dalam kartu
* ATM yang digunakan, seperti saldo dan password pengguna.
*
* Selain itu, juga mengecek apakah uang yang ditarik lebih besar
* daripada saldo yang ada
*
* @author (Dewangga Dharmawan)
* @version (26/11/2020)
*/
public class Akun
{
//Deklarasi variabel password dan saldo
private String katapassword;
private int saldo;
//Menentukan password dan saldo awal sebelum transfer
public Akun()
{
katapassword = "123456";
saldo = 5000000;
}
//Membandingkan password yang dimasukkan
//Dengan password pengguna
public boolean inputPassword(String sandi)
{
return katapassword.equals(sandi);
}
//Mengecek kecukupan saldo dengan penarikan uang yang diperlukan
public boolean cekSaldo(int tarik)
{
if(saldo < tarik)
return false;
else
return true;
}
//Mengubah nilai saldo
public void setSaldo(int pull)
{
saldo = pull;
}
//Mendapatkan nilai saldo
public int getSaldo()
{
return saldo;
}
}
Class Transfer :
/**
* Class Transfer menampilkan proses transfer antara pengguna dengan
* akun tujuan, dalam kasus ini, Tokopedia
*
* @author (Dewangga Dharmawan)
* @version (26/11/2020)
*/
import java.util.*;
public class Transfer
{
//Variabel khusus Class ini
private String ID;
private int nomina;
//Variabel yang berhubungan dengan Class lain
Akun Saldo = new Akun();
Bukti struk = new Bukti();
//Deklarasi fungsi input ketik
Scanner input = new Scanner(System.in);
public void TampilanTransfer()
{
//Tampilan utama sebelum sampai ke Transfer
//Tapi karena video yang ditampilkan merupakan transfer uang
//Maka akan difokuskan pada transfer uang
System.out.println("Silahkan pilih opsi pembayaran yang akan digunakan");
System.out.println("1 : Rp 100.000");
System.out.println("2 : Rp 200.000");
System.out.println("3 : Rp 500.000");
System.out.println("4 : Rp 1.000.000");
System.out.println("5 : Cek saldo");
System.out.println("6 : Menu lainnya");
System.out.println("6");
System.out.println("Silahkan pilih menu yang akan dituju");
System.out.println("1 : Pembayaran");
System.out.println("2 : Tarik Tunai");
System.out.println("3 : Transfer");
System.out.println("...");
System.out.println("3");
//Memasukan ID penerima dan jumlah uang yang akan dikirimkan
System.out.println("Ketik ID tujuan transfer");
ID = input.nextLine();
System.out.println("Ketik jumlah nominal uang yang akan ditransfer");
nomina = input.nextInt();
//Mengecek apabila saldo cukup untuk melakukan transfer
if(Saldo.cekSaldo(nomina))
{
System.out.println("Uang anda cukup untuk ditransfer");
Saldo.setSaldo(Saldo.getSaldo() - nomina);
System.out.println("Sisa saldo anda sebesar " + Saldo.getSaldo());
struk.Struk(ID, nomina);//Menampilkan struk pembayaran
}
else
{
System.out.println("Maaf, uang anda tidak cukup untuk melakukan transfer");
System.out.println("Silahkan coba lagi");
}
}
}
Class Bukti :
/**
* Class Bukti digunakan untuk menampilkan struk pembayaran,
* lengkap dengan ID pengirim dan penerima dan besarnya transaksi yang dilakukan
*
* @author (Dewangga Dharmawan)
* @version (26/11/2020)
*/
public class Bukti
{
//Menampilkan struk transfer
public void Struk(String Id, int nominal)
{
System.out.println("ID pengirim : XXX-XXX-XXX");
System.out.println("Nama : XXXXXXX");
System.out.println("Jumlah Transfer : " + nominal);
System.out.println("AN : Tokopedia");
System.out.println("ID penerima : " + Id);
}
}
Komentar
Posting Komentar