Langsung ke konten utama

ETS

Dalam ETS PBO D kali ini, kami mendapatkan tugas supaya membuat program java untuk sebuah permasalahan, yaitu Pembayaran E-Toll. Dalam Permasalahan ini diberi Flow Char yaitu
nah dari sini berasumsi bahwa komponen yang dibutuhkan dalam hal ini yaitu :

  1. Menempelkan Kartu E-Money ke dalam mesin GTO atau Gardu Tol Otomatis
  2. Jika Saldo kartu E-Money mencukupi maka gerbang Tol akan terbuka, dan jika tidak mencukupi maka Gerbang Tol tetap tertutup dan pengendara tidak bisa melewatinya
  3. Setelah transaksi pembayaran selesai maka mesin gto akan mengeluarkan bukti pembayaran yang berisi tanggal transaksi, biaya tol dan sisa saldo dalam E-Money


  • class Account
Class Account ini berfungsi sebagai pencatatan Acount Number


 public class Account  
 {  
   private int accountNumber;  
   private int balance;  
   public Account(int AccountNumber, int Balance)  
   {  
     accountNumber = AccountNumber;  
     balance = Balance;  
   }  
   public int getBalance()  
   {  
     return balance;  
   }  
   public int getAccountNumber()  
   {  
     return accountNumber;  
   }  
   public void pay(int Cost)  
   {  
     balance = balance - Cost;  
   }  
 }  


  • class Account_Database

Setelah Account dibuat maka langkah selanjutnya yang dibuat yaitu Account_Database. yang berguna untuk menyimpan data Account yang sudah dibuat.

 public class Account_Database  
 {  
   private Account accounts[];  
   public Account_Database(){  
     accounts = new Account[3];  
     accounts[0] = new Account(11111,1000000);  
     accounts[1] = new Account(12345, 10000);  
     accounts[2] = new Account(99999, 9900);  
   }  
   public Account getAccount(int AccountNumber)  
   {  
     for(Account currentAccount : accounts)  
     {  
       if ( currentAccount.getAccountNumber() == AccountNumber ) return currentAccount;  
     }  
     return null;  
   }  
   public boolean authenticateUser(int UserAccount)  
   {  
     Account userAccount = getAccount(UserAccount);  
     if(userAccount == null)  
     return false;  
     return true;  
   }  
   public int getAccountBalance(Account useraccount)  
   {  
     return useraccount.getBalance();  
   }  
   public void tollpay(Account useraccount, int amount)  
   {  
     useraccount.pay(amount);  
   }  
 }  
  • class Keypad 
class ini berfungsi sebagai Autentifikasi ketika kartunya di tempel

  import java.util.Scanner;  
 public class Keypad  
 {  
   private Scanner input;  
   public Keypad(){  
     input = new Scanner(System.in);  
   }  
   public int getInput(){  
   return input.nextInt();  
   }  
 }  


  • class Screen

Class Screen berfungsi sebagai tampilan display untuk para pengguna E-Toll

 public class Screen  
 {  
   public void displayMessage(String message){  
     System.out.print(message);  
   }  
   public void displayMessageLine(String message){  
     System.out.println(message);  
   }  
   public void displayDollarAmount(double amount){  
     System.out.printf("$%,.2f", amount);  
   }  
 }  


  • class Nota

Class ini berfungsi ketika transaksi sukses dilaksanakan, maka fungsi nota berfungsi untuk ngeprint hasil dari transaksi

 import java.util.Date;  
 import java.text.DateFormat;  
 import java.text.SimpleDateFormat;  
 public class Nota  
 {  
   int balance;  
   int price;  
   private Date date;  
   private DateFormat dateFormat;  
   public Nota(int Balance, int Price)  
   {  
     balance = Balance;  
     price = Price;  
     dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  
     date = new Date();  
   }  
   public void print()  
   {  
     System.out.println("###############################################");  
     System.out.println("##Transaksi E-Toll");  
     System.out.println("##Tanggal Transaksi: " + dateFormat.format(date));  
     System.out.println("##Biaya Tol: " + price);  
     System.out.println("##Sisa Saldo: " + balance);  
     System.out.println("###############################################");  
   }  
 }  


  • class TollMachine

class ini merupakan inti dari semua fungsi, karena semua proses akan melalui class ini

 /**  
  * Write a description of class TollMachine here.  
  *  
  * @author (your name)  
  * @version (a version number or a date)  
  */  
 public class TollMachine  
 {  
   private int cost;  
   private Account_Database acc_db;  
   private Keypad keypad;  
   private Nota nota;  
   private Screen screen;  
   public TollMachine()  
   {  
     cost = 10000;  
     acc_db = new Account_Database();  
     keypad = new Keypad();  
     screen = new Screen();  
   }  
   public void run()  
   {  
     while(true)  
     {  
       screen.displayMessageLine("Please enter your Card Number\n");  
       int accNum = keypad.getInput();  
       if(acc_db.authenticateUser(accNum))  
       {  
         if(acc_db.getAccountBalance(acc_db.getAccount(accNum)) >= cost)  
         {  
           acc_db.tollpay(acc_db.getAccount(accNum), cost);  
           nota = new Nota(acc_db.getAccount(accNum).getBalance(), cost);  
           nota.print();  
           screen.displayMessageLine("Thank you for using our service\nPlease take your card and proof of transaction\n");  
         }  
         else  
         {  
           screen.displayMessageLine("Insufficient funds\nPlease take your card back\n");  
         }  
       }  
       else  
       {  
         screen.displayMessageLine("Card Number not found\nPlease take your card back");  
       }  
     }  
   }  
 }  

Komentar

Postingan populer dari blog ini

FP PBO

Sudah tidak terasa sekarang di penghujung semester dan sampailah dengan tugas akhir untuk mata kuliah PBO yaitu Final Projek. Kali ini Fp saya yaitu membuat Menu Makanan berbasis GUI langsung saja : dalam Fp ini hanya memiliki satu class saja yaitu Program Kasir. berikut Source Codenya: package Data; import javax.swing.JOptionPane; public class ProgramKasir extends javax.swing.JFrame { public ProgramKasir() { initComponents(); } @SuppressWarnings("unchecked") private void initComponents() { CBMA = new javax.swing.JCheckBox(); CBNG = new javax.swing.JCheckBox(); CBMG = new javax.swing.JCheckBox(); CBMR = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); TxtCBMA = new javax.swing.JTextField(); TxtCBNG = new javax.swing.JTextField(); TxtCBMG = new javax.swing.JTextField(); TxtCBMR = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLa

MPPL Tugas 2 - RFP (Request For Proposal)

LATAR BELAKANG  Negara indonesia dikenal sebagai negara agraris. Namun pada saat ini petani kesulitan untuk mendapatkan bibit, pupuk bahkan dana penunjangan untuk berbagai keperluan yang menunjang bagi pertanian indonesia. sehingga apakah negara indonesia masih pantas untuk menyandang nama indonesia sebagai negara agraris? DESKRIPSI PROYEK jadi untuk mencapai tujuan-tujuan yang sudah di bentuk. dibuatlah sebuah aplikasi berbasis web bernama  Bantutani.  Aplikasi ini nantinya dapat diakses melalui perangkat yang terhubung dengan internet baik melalui komputer maupun smartphone. Aplikasi ini berisi beberapa modul yang dapat diakses oleh petani seperti lokasi penjualan bibit dan pupuk serta permohonan untuk mendapatkan dana. dilain sisi para investor dapat menamkan modal untuk membantu para petani DETIL KEBUTUHAN Tujuan Bisnis : Menciptakan sistem informasi yang mampu mengatasi masalah sumberdana dan bibit untuk petani Menyediakan tempat pemberian kritik dan saran yang denga

MPPL E Tugas 1

LATAR BELAKANG  Negara indonesia dikenal sebagai negara agraris. Namun pada saat ini petani kesulitan untuk mendapatkan bibit, pupuk bahkan dana penunjangan untuk berbagai keperluan yang menunjang bagi pertanian indonesia. sehingga apakah negara indonesia masih pantas untuk menyandang nama indonesia sebagai negara agraris? RUMUSAN MASALAH 1. Bagaimana cara petani mendapatkan bibit? 2. Bagaimana cara petani mendapatkan pupuk? 3. bagaimana cara petani mendapatkan dana? TUJUAN 1. Membantu petani mendapatkan bibit 2. Membantu petani mendapatkan pupuk 3. Membantu petani mendapatkan Investor DESKRIPSI PROYEK jadi untuk mencapai tujuan-tujuan yang sudah di bentuk. dibuatlah sebuah aplikasi berbasis web bernama Bantutani. Aplikasi ini nantinya dapat diakses melalui perangkat yang terhubung dengan internet baik melalui komputer maupun smartphone. Aplikasi ini berisi beberapa modul yang dapat diakses oleh petani seperti lokasi penjualan bibit dan pupuk serta permohonan untuk me