thomasfelix

PBO ETS

Nov 24th, 2020
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.40 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. /**
  4.  * Class utama menampilkan aplikasi secara utuh dan mempunyai beberapa fitur.
  5.  * Di antaranya adalah login pin, tarik tunai, transfer, dan setor tunai.
  6.  *
  7.  * @author Thomas Felix
  8.  * @version 24 November 2020
  9.  */
  10.  
  11. public class MesinATM
  12. {
  13.     MesinSystem mesinSystem = new MesinSystem();
  14.     Scanner scanner = new Scanner(System.in);
  15.    
  16.     public static void main(String args[])
  17.     {
  18.         MesinATM atm = new MesinATM();
  19.         atm.login();
  20.     }
  21.    
  22.     public void login()
  23.     {
  24.         int salah = 1;
  25.         Scanner scanner = new Scanner(System.in);
  26.         for (int i = 1; i <= 3; i++)
  27.         {
  28.             mesinSystem.setPin("696969");
  29.             mesinSystem.setSaldo(10000000);
  30.             System.out.println("===============================================");
  31.             System.out.println("|        Selamat Datang di ATM Bank Bjir      |");
  32.             System.out.println("===============================================");
  33.             System.out.println();
  34.             System.out.print("Masukkan pin: ");
  35.            
  36.             String pin = scanner.nextLine();
  37.            
  38.             if (mesinSystem.getPin().equals(pin))
  39.             {
  40.                 System.out.println();
  41.                 menu();
  42.                 i = 3;
  43.             }
  44.            
  45.             else
  46.             {
  47.                 if (salah == 3)
  48.                 {
  49.                     System.out.println();
  50.                     System.out.println("Maaf, ATM Anda terblokir.");
  51.                     System.out.println("Silakan ke Bank Bjir terdekat.");
  52.                 }
  53.                
  54.                 else
  55.                 {
  56.                     System.out.println();
  57.                     System.out.println("Maaf, PIN anda salah.");
  58.                     System.out.println();
  59.                 }
  60.             }
  61.             salah++;
  62.         }
  63.     }
  64.    
  65.     public void menu()
  66.     {
  67.         Scanner scanner = new Scanner(System.in);
  68.         System.out.println("===============================================");
  69.         System.out.println("|                  Menu Utama                 |");
  70.         System.out.println("===============================================");
  71.         System.out.println("1. Info Saldo");
  72.         System.out.println("2. Tarik Tunai");
  73.         System.out.println("3. Setor Tunai");
  74.         System.out.println("4. Transfer");
  75.         System.out.println("5. Transaksi Lainnya");
  76.         System.out.println("6. Keluar");
  77.         System.out.println();
  78.         System.out.print("Pilih menu : ");
  79.         int choice = scanner.nextInt();
  80.        
  81.         switch (choice)
  82.         {
  83.             case 1:
  84.                 lihatSaldo();
  85.                 System.out.println();
  86.                 break;
  87.            
  88.             case 2:
  89.                 tarikUang();
  90.                 System.out.println();
  91.                 break;
  92.                
  93.             case 3:
  94.                 setorUang();
  95.                 System.out.println();
  96.                 break;
  97.                
  98.             case 4:
  99.                 transferUang();
  100.                 System.out.println();
  101.                 break;
  102.            
  103.             case 5:
  104.                 System.out.println("Layanan belum tersedia.");
  105.                 transaksiLagi();
  106.                 break;
  107.                
  108.             case 6:
  109.                 System.out.println();
  110.                 System.out.println("===============================================");
  111.                 System.out.println("|   Terima kasih telah memakai layanan kami.  |");
  112.                 System.out.println("|      Silakan ambil kembali kartu Anda.      |");
  113.                 System.out.println("===============================================");
  114.                 System.exit(0);
  115.            
  116.             default:
  117.                 System.out.println("Pilihan invalid. Silakan login kembali");
  118.                 login();
  119.                 break;
  120.         }
  121.     }
  122.    
  123.     public void lihatSaldo()
  124.     {
  125.         System.out.println();
  126.         System.out.println("Saldo anda Rp " + mesinSystem.getSaldo());
  127.         transaksiLagi();
  128.     }
  129.    
  130.     public void tarikUang()
  131.     {
  132.         Scanner scanner = new Scanner(System.in);
  133.         System.out.println();
  134.         System.out.println("Pilihan nominal: ");
  135.         System.out.println();
  136.         System.out.println("1. Rp  50.000     4. Rp   500.000");
  137.         System.out.println("2. Rp 100.000     5. Rp 1.000.000");
  138.         System.out.println("3. Rp 200.000     6. Rp 2.000.000");
  139.         System.out.println();
  140.         System.out.print("Masukkan pilihan: ");
  141.         int pilihan = scanner.nextInt();
  142.        
  143.         this.setNominal(pilihan);
  144.     }
  145.    
  146.     public void setNominal(int pilihan)
  147.     {
  148.         long saldo = mesinSystem.getSaldo();
  149.        
  150.         if (pilihan == 1 && saldo > 50000) {
  151.             saldo -= 50000;
  152.             System.out.println("Saldo anda tersisa : Rp " + saldo);
  153.         }
  154.        
  155.         else if (pilihan == 2 && saldo > 100000)
  156.         {
  157.             saldo -= 100000;
  158.             System.out.println("Saldo anda tersisa : Rp " + saldo);
  159.         }
  160.        
  161.         else if (pilihan == 3 && saldo > 200000)
  162.         {
  163.             saldo -= 200000;
  164.             System.out.println("Saldo anda tersisa : Rp " + saldo);
  165.         }
  166.        
  167.         else if (pilihan == 4 && saldo > 500000)
  168.         {
  169.             saldo -= 500000;
  170.             System.out.println("Saldo anda tersisa : Rp " + saldo);
  171.         }
  172.        
  173.         else if (pilihan == 5 && saldo > 1000000)
  174.         {
  175.             saldo -= 1000000;
  176.             System.out.println("Saldo anda tersisa : Rp " + saldo);
  177.         }
  178.        
  179.         else if (pilihan == 6 && saldo > 2000000)
  180.         {
  181.             saldo -= 2000000;
  182.             System.out.println("Saldo anda tersisa : Rp " + saldo);
  183.         }
  184.    
  185.         else
  186.         {
  187.             System.out.println("Transaksi gagal.");
  188.         }
  189.        
  190.         transaksiLagi();
  191.     }
  192.    
  193.     public void setorUang()
  194.     {
  195.         Scanner scanner = new Scanner(System.in);
  196.         long saldo = mesinSystem.getSaldo();
  197.        
  198.         System.out.println();
  199.         System.out.print("Masukkan jumlah uang yang akan disetor: Rp ");
  200.         long uang = scanner.nextInt();
  201.        
  202.         saldo += uang;
  203.        
  204.         System.out.println();
  205.         System.out.print("Saldo Anda sekarang Rp " + saldo);
  206.         System.out.println();
  207.         transaksiLagi();
  208.     }
  209.    
  210.     public void transferUang()
  211.     {
  212.         Scanner scanner = new Scanner(System.in);
  213.         long saldo = mesinSystem.getSaldo();
  214.        
  215.         System.out.println();
  216.         System.out.println("Silahkan masukkan nomor rekening tujuan.");
  217.         System.out.print("No. rekening: ");
  218.         long noRek = scanner.nextInt();
  219.         System.out.println();
  220.        
  221.         System.out.print("Masukkan jumlah uang yang akan ditransfer: Rp ");
  222.         long nominal = scanner.nextInt();
  223.        
  224.         if (saldo >= 50000)
  225.         {
  226.             if (nominal < saldo)
  227.             {
  228.                 saldo -= nominal;
  229.                 System.out.println();
  230.                 System.out.println("Anda telah berhasil mentransfer uang sebesar Rp " + nominal);
  231.                 System.out.println("Ke nomor rekening tujuan: " + noRek);
  232.                 System.out.println("Sisa saldo Anda adalah : " + saldo);
  233.             }
  234.            
  235.             else
  236.             {
  237.                 System.out.print("Saldo Anda tidak mencukupi.");
  238.             }
  239.         }
  240.        
  241.         else
  242.         {
  243.             System.out.print("Saldo Anda minimal harus Rp 50.000.");
  244.         }
  245.        
  246.         transaksiLagi();
  247.     }
  248.    
  249.     public void transaksiLagi()
  250.     {
  251.         Scanner scanner = new Scanner(System.in);
  252.         System.out.println();
  253.         System.out.print("Ingin melakukan transaksi lagi? [y/n]: ");
  254.        
  255.         String warn = scanner.nextLine();
  256.         System.out.println();
  257.        
  258.         if (warn.equalsIgnoreCase("y"))
  259.         {
  260.             login();
  261.         }
  262.        
  263.         else if (warn.equalsIgnoreCase("n"))
  264.         {
  265.             System.out.println("===============================================");
  266.             System.out.println("|   Terima kasih telah memakai layanan kami.  |");
  267.             System.out.println("|       Silakan ambil kembali kartu Anda.     |");
  268.             System.out.println("===============================================");
  269.         }
  270.     }
  271. }
Advertisement
Add Comment
Please, Sign In to add comment