ETS PBO 2020
Case
Pertanyaan
1. Perhatikan video di atas, tuliskan skenario fungsionalitas aplikasi pada mesin ATM, berdasarkan tayangan tersebut.
2. Definisikan Class dan gambarkan Diagram Class untuk membangun aplikasi tersebut.
3. Implementasikan rancangan Class dengan menggunakan bahasa pemrograman Java.
4. Buat video demo yang menjelaskan pembuatan aplikasi tersebut beserta dengan hasil eksekusinya.
Jawaban
1. Skenario Fungsionalitas Mesin ATM
- Mesin ATM menampilkan tampilan awal berupa perintah untuk memasukkan kartu ATM pengguna.
- Kemudian, masukkan pin ATM.
- Mesin menunjukkan pilihan menu transaksi.
- Pilih opsi "transfer".
- Kemudian, tampil pilihan tujuan transfer.
- Lalu, masukkan nomor rekening tujuan transfer dan kemudian tekan opsi benar.
- Setelah itu, masukkan nominal uang yang akan ditransfer dan klik benar.
- Muncul pesan konfirmasi, tekan "ya" untuk melanjutkan transaksi.
- Jika transaksi berhasil, akan muncul pesan "transaksi selesai".
- Kartu ATM dan tanda bukti transfer dapat diambil.
2. Definisi Class Mesin ATM
Terdapat 2 Class pada Mesin ATM
a. Class mesinATM
Class ini merupakan main class dari program yang menjalankan peran dari mesin ATM itu sendiri. Class menampilkan tampilan menu-menu yang digunakan pada mesin ATM.
b. Class transferATM
Merupakan Class yang mengatur jalannya metode transaksi pada mesin ATM. Untuk case kali ini metode yang digunakan adalah metode transfer.
3. Implementasi
Berikut merupakan source code dari program Mesin ATM.
Class mesinATM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* mesinATM merupakan main class dari program. Menjalankan menu tampilan pada mesin. | |
* | |
* @author Fidhia Ainun Khofifah | |
* @version 26/11/2020 | |
*/ | |
import java.util.*; | |
public class mesinATM | |
{ | |
public static void main(String[] args) | |
{ | |
Scanner in = new Scanner(System.in); | |
transferATM user[] = new transferATM[2]; | |
user[0] = new transferATM("123456"); | |
user[1] = new transferATM("789101"); | |
int pilihan; | |
do | |
{ | |
System.out.println("**Selamat Datang di ATM BNI**"); | |
System.out.println(""); | |
System.out.println("Masukkan PIN: "); | |
String pass = in.next(); | |
System.out.println(""); | |
transferATM userN = new transferATM(pass); | |
for(int i=0; i<user.length; i++) | |
{ | |
if(user[i].pin.equals(userN.pin)) | |
{ | |
userN = user[i]; | |
} | |
} | |
boolean check = userN.loginCheck(); | |
if(check == false) | |
{ | |
break; | |
} | |
do | |
{ | |
System.out.println("**Menu Transaksi**"); | |
System.out.println("1. Tarik Tunai"); | |
System.out.println("2. Transfer"); | |
System.out.println("3. Info Saldo"); | |
System.out.println("4. Cancel"); | |
System.out.println("Pilih menu transaksi: "); | |
pilihan = in.nextInt(); | |
switch(pilihan) | |
{ | |
case 1: | |
{ | |
System.out.println("ERROR 404"); | |
System.out.println("Layanan Tidak Tersedia."); | |
break; | |
} | |
case 2: | |
{ | |
System.out.println("Masukkan nomor rekening yang dituju : "); | |
String nomor = in.next(); | |
for(int j=0; j<user.length; j++) | |
{ | |
userN.transferUang(user[j]); | |
System.out.println(""); | |
break; | |
} | |
} | |
case 3: | |
{ | |
userN.lihatSaldo(); | |
System.out.println(""); | |
break; | |
} | |
} | |
}while(pilihan!=4); | |
while(pilihan==4) | |
{ | |
System.out.println("Terima Kasih, silahkan ambil kartu dari mesin."); | |
System.exit(0); | |
} | |
}while(pilihan!=0); | |
} | |
} |
Class transferATM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* merupakan class menjalankan perintah transaksi berupa transfer dan cek saldo. | |
* | |
* @author Fidhia Ainun Khofifah | |
* @version 26/11/2020 | |
*/ | |
import java.util.*; | |
public class transferATM | |
{ | |
public String nama; | |
private long saldo; | |
public String[] pin = new String[2]; | |
public transferATM() | |
{ | |
} | |
public transferATM(String pass) | |
{ | |
pin[0] = "123456"; | |
pin[1] = "789101"; | |
for(int i=0; i<pin.length; i++) | |
{ | |
if(pass.equals(pin[i])) | |
{ | |
if(i==0) | |
{ | |
nama = "Mango"; | |
saldo = 2000000; | |
} | |
else if(i==1) | |
{ | |
nama = "Renji"; | |
saldo = 1000000; | |
} | |
} | |
} | |
} | |
public long getSaldo(long saldo) | |
{ | |
this.saldo = saldo; | |
return this.saldo; | |
} | |
public boolean loginCheck() | |
{ | |
if(nama!=null) | |
{ | |
System.out.println("Selamat datang " + nama); | |
System.out.println(""); | |
return true; | |
} | |
else | |
{ | |
return false; | |
} | |
} | |
public void lihatSaldo() | |
{ | |
System.out.println("Saldo anda Rp " + saldo); | |
} | |
public void transferUang(transferATM A) | |
{ | |
Scanner in = new Scanner(System.in); | |
System.out.println("Masukkan nominal uang yang akan ditransfer: Rp "); | |
long uang = in.nextInt(); | |
System.out.println("Berhasil!"); | |
saldo = saldo - uang; | |
A.saldo = A.saldo + uang; | |
this.getSaldo(saldo); | |
} | |
} |
Output
4. Demo
Sekian dari dokumentasi ETS.
Comments
Post a Comment