Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Vending_Machine
- {
- private boolean userAuthenticated;
- private int currentCardNumber;
- private Screen screen;
- private Keypad keypad;
- private ItemDispenser itemDispenser;
- private BankDatabase bankDatabase;
- private static final int AQUA = 1;
- private static final int TEH_PUCUK = 2;
- private static final int POCARI_SWEAT = 3;
- private static final int EXIT = 0;
- public Vending_Machine()
- {
- userAuthenticated = false;
- currentCardNumber = 0;
- screen = new Screen();
- keypad = new Keypad();
- itemDispenser = new ItemDispenser();
- bankDatabase = new BankDatabase();
- }
- public void run()
- {
- while ( true )
- {
- screen.displayMessageLine( "\nSelamat Datang!" );
- performTransactions();
- userAuthenticated = false;
- currentCardNumber = 0;
- screen.displayMessageLine( "\nTerima Kasih! Selamat Tinggal!" );
- }
- }
- private void performTransactions()
- {
- Transaction currentTransaction = null;
- boolean userExited = false;
- int mainMenuSelection = displayMenuOfItem();
- switch(mainMenuSelection)
- {
- case AQUA:
- case TEH_PUCUK:
- case POCARI_SWEAT:
- while ( !userAuthenticated )
- {
- authenticateUser();
- userAuthenticated = true;
- }
- currentTransaction =
- createTransaction( mainMenuSelection );
- currentTransaction.execute();
- break;
- case EXIT:
- screen.displayMessageLine( "\nMembatalkan Transaksi. . .");
- break;
- default:
- screen.displayMessageLine(
- "\nMasukkan angka yang sesuai. Coba lagi." );
- break;
- }
- }
- private int displayMenuOfItem()
- {
- screen.displayMessageLine( "\nMenu Utama:" );
- screen.displayMessageLine( "1 - AQUA - Rp. 2500" );
- screen.displayMessageLine( "2 - TEH PUCUK - Rp. 4000" );
- screen.displayMessageLine( "3 - POCARI SWEAT - Rp. 6000" );
- screen.displayMessageLine( "0 - Keluar\n" );
- screen.displayMessage( "Masukkan Pilihan: " );
- return keypad.getInput();
- }
- private void authenticateUser()
- {
- screen.displayMessage( "\nTaruh kartu Mandiri E-Money disini : " );
- int cardNumber = keypad.getInput();
- userAuthenticated = bankDatabase.authenticateUser(cardNumber);
- if ( userAuthenticated )
- {
- currentCardNumber = cardNumber;
- }
- else
- screen.displayMessageLine(
- "Mohon maaf kartu e-money anda tidak dapat teridentifikasi. Silahkan coba lagi." );
- }
- private Transaction createTransaction( int type )
- {
- Transaction temp = null;
- switch ( type )
- {
- case AQUA:
- case TEH_PUCUK:
- case POCARI_SWEAT:
- temp = new Pembelian( currentCardNumber, screen, bankDatabase, keypad, itemDispenser, type );
- break;
- }
- return temp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment