Minggu, 27 Oktober 2019

PENTINGNYA FIGUR ORANG TUA

Orang tua menjadi faktor terbesar yang menentukan sikap dan kondisi psikologis anak. Semakin anak kehilangan figur orang tua, semakin besar kemungkinan anak kehilangan arah hidupnya. Biasanya, hilangnya figur orang tua disebabkan oleh dua poin berikut:
·     Sosok orang tua yang keras, yang menyisakan banyak luka. Keras di sini berarti sering membentak dengan kalimat yang menyakiti, menyelidiki, atau menghakimi. Misalnya “Ayo mengaku saja, kamu pasti nakal di sekolah, makanya dihukum?” atau “Kamu dari mana? Dasar anak bandel, sudah dibilang jangan pulang malam!”
·         Orang tua yang tidak pernah atau jarang hadir dalam keseharian anak. Misalnya: orang tua sibuk bekerja sehingga selalu berangkat dini hari dan pulang larut malam, ayah yang pergi melaut sehingga hanya dapat pulang dua kali dalam setahun, atau profesi-profesi lainnya yang membuat hubungan personal orang tua dan anak menjadi jauh. Contoh lainnya, orang tua yang memilih untuk bersikap dingin terhadap anaknya. Hal ini membuat kehadiran orang tua tidak dirasakan sepenuhnya oleh anak. Padahal anak membutuhkan hubungan yang hangat disertai bahasa cinta, baik secara verbal maupun sentuhan fisik (seperti pelukan).

Berikut beberapa kasus akibat kurangnya figur orang tua terhadap kondisi psikologis anak:
·        Seorang anak perempuan kurang menerima figur ayah karena baginya sosok ayah selalu melukai. Akibatnya, dia sulit menjalin hubungan dengan lawan jenis.
·        Seorang perempuan lebih mudah jatuh cinta kepada pria dewasa yang memiliki sifat kebapakan. Setelah ditelusuri, ternyata ayah perempuan ini sangat sibuk bekerja sehingga sulit meluangkan waktu untuk anaknya. Dapat diartikan, perempuan ini merasa haus akan rasa sayang dari seorang ayah dan mencari figur ayah yang hilang dari masa kecilnya. Yang mengkhawatirkan adalah apabila figur ayah tersebut ditemukan pada diri seorang lelaki yang telah beristri.
·       Beberapa kasus “mudah jatuh cinta” dialami oleh perempuan dan laki-laki yang kekurangan figur orang tua pada masa kecilnya. Penyebabnya adalah sang anak berusaha mengisi ruang jiwanya yang kosong. Padahal, seharusnya ruang jiwa anak diisi oleh kasih sayang kedua orang tuanya.
·        Seorang anak laki-laki kekurangan figur ayah sehingga tumbuh menjadi pria yang kehilangan jati dirinya sebagai pria sejati. Hal ini karena dia kehilangan masa-masa belajar menjadi seorang pria sejati dari ayahnya.
·       Hal sama juga dapat terjadi apabila anak memersepsikan ayahnya “takut” kepada ibunya. Anak dapat tumbuh menjadi suami yang juga takut kepada istrinya.

Sumber :
Buku Anakku Hartaku yang ditulis oleh Dedy Susanto

Jumat, 02 Juni 2017

Hospital Queue Machine Java Source Code

MESIN ANTRIAN RUMAH SAKIT

Mesin antrian rumah sakit adalah mesin yang membantu memudahkan pihak rumah sakit untuk mengatur antrian. Selain itu pihak pasien sendiri pun akan dimudahkan karena prosesnya yang cepat tidak perlu menunggu terlalu lama untuk mendapatkan nomor antrian.

Mesin antrian rumah sakit ini sendiri prinsipnya hampir sama dengan mesin antrian bank. Terdapat 4 class yaitu class hospital, class umum, class poli, dan class date.

Source code :

class hospital
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class hospital
{
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;
   private Poli a;
   private Umum b;
   public hospital(){
       prepareGUI();
       this.a = new Poli();
       this.b = new Umum();
   }
   public static void main(String[] args){
       hospital test = new hospital();
       test.showButton();
   }
   private void prepareGUI(){
       mainFrame = new JFrame("d Hospital");
       mainFrame.setSize(300,150);
       mainFrame.setLayout(new GridLayout(3, 1));
      
       mainFrame.addWindowListener(new WindowAdapter() {
           public void windowClosing(WindowEvent windowEvent){
               System.exit(0);
           }        
       });
       
       headerLabel = new JLabel("", JLabel.CENTER);        
       statusLabel = new JLabel("", JLabel.CENTER);    
       statusLabel.setSize(350,100);

       controlPanel = new JPanel();
       controlPanel.setLayout(new FlowLayout());

       mainFrame.add(headerLabel);
       mainFrame.add(controlPanel);
       mainFrame.add(statusLabel);
       mainFrame.setVisible(true);  
   }
   private void showButton(){
       headerLabel.setText("Selamat datang..");
       
       JButton nButton = new JButton("Pasien"); 
       JButton pButton = new JButton("Pegawai"); 
       nButton.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){       
               String pilihan = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli\n 2. Umum");
               char c = pilihan.charAt(0);
               if(c=='1'){
                   String pilih = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli Anak\n 2. Poli Mata\n 3. Poli Penyakit Dalam\n 4. Poli Gigi\n 5. Poli Kulit");
                   char x = pilih.charAt(0);
                   if(x=='1')
                       a.ticketT('a');
                   else if(x=='2')
                       a.ticketT('b');
                   else if(x=='3')
                       a.ticketT('c');
                   else if(x=='4')
                       a.ticketT('d');
                   else if(x=='5')
                       a.ticketT('e');
                   else{
                       String message1 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                       JOptionPane.showMessageDialog(null, message1);
                   }
               }
               else if(c=='2'){
                   b.ticketU();
               }
               else{
                   String message2 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                   JOptionPane.showMessageDialog(null, message2);
               }
           }          
       });
       pButton.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               String pil = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli\n 2. Umum");
               char c = pil.charAt(0);
               if(c=='1'){
                   String p = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli Anak\n 2. Poli Mata\n 3. Poli Penyakit Dalam\n 4. Poli Gigi\n 5. Poli Kulit");
                   char y = p.charAt(0);
                   if(y=='1')
                       a.screenT('a');
                   else if(y=='2')
                       a.screenT('b');
                   else if(y=='3')
                       a.screenT('c');
                   else if(y=='4')
                       a.screenT('d');
                   else if(y=='5')
                       a.screenT('e');
                   else{
                       String message3 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                       JOptionPane.showMessageDialog(null, message3);
                   }
               }
               else if(c=='2'){
                   String z = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Umum1\n 2. Umum2");
                   char w = z.charAt(0);
                   if(w=='1')
                       b.screenU('a');
                   if(w=='2')
                       b.screenU('b');
                   else{
                       String message4 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                       JOptionPane.showMessageDialog(null, message4);
                   }
               }
               else{
                   String message4 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                   JOptionPane.showMessageDialog(null, message4);
               }
           }          
       });
       controlPanel.add(nButton);
       controlPanel.add(pButton);
       mainFrame.setVisible(true);  
   }
}


class  umum
import java.util.*;
import java.text.*;
import javax.swing.*;
public class Umum
{
   private int nomorU=0;
   private int antriU=0;
   private date q;

   Date dNow = new Date();
   SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy   hh:mm:ss a");
   
   public void ticketU(){
       this.q = new date();
       String message1 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nUMUM\nU%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorU+1, nomorU-antriU);
       JOptionPane.showMessageDialog(null, message1);
       nomorU++;
   }
   public void screenU(char x){
       antriU++;
       if(x=='a'){
           String message2 = String.format("Pelayanan:\nUMUM1\nU%d\n\nBelum mendapatkan pelayanan %d", nomorU-(nomorU-antriU),nomorU-antriU);
           JOptionPane.showMessageDialog(null, message2);
       }
       else if(x=='b'){
           String message2 = String.format("Pelayanan:\nUMUM2\nU%d\n\nBelum mendapatkan pelayanan %d", nomorU-(nomorU-antriU),nomorU-antriU);
           JOptionPane.showMessageDialog(null, message2);
       }
   }
}


class poli
import java.util.*;
import java.text.*;
import javax.swing.*;
public class Poli
{
   private int nomorTA=0;
   private int nomorTM=0;
   private int nomorTD=0;
   private int nomorTG=0;
   private int nomorTK=0;
   private int antriTA=0;
   private int antriTM=0;
   private int antriTD=0;
   private int antriTG=0;
   private int antriTK=0;
   private date q;
   
   public void ticketT(char x){
       this.q = new date();
       if(x=='a'){
           String message1 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI ANAK\nA%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTA+1, nomorTA-antriTA);
           JOptionPane.showMessageDialog(null, message1);
           nomorTA++;
       }
       else if(x=='b'){
           String message2 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI MATA\nB%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTM+1, nomorTM-antriTM);
           JOptionPane.showMessageDialog(null, message2);
           nomorTM++;
       }
       else if(x=='c'){
           String message3 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI PENYAKIT DALAM\nC%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTD+1, nomorTD-antriTD);
           JOptionPane.showMessageDialog(null, message3);
           nomorTD++;
       }
       else if(x=='d'){
           String message4 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI GIGI\nD%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTG+1, nomorTG-antriTG);
           JOptionPane.showMessageDialog(null, message4);
           nomorTG++;
       }
       else if(x=='e'){
           String message5 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI KULIT\nE%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTK+1, nomorTK-antriTK);
           JOptionPane.showMessageDialog(null, message5);
           nomorTK++;
       }
   }
   public void screenT(char y){
       if(y=='a'){
           antriTA++;
           String message6 = String.format("Pelayanan:\nPOLI ANAK\nA%d\n\nBelum mendapatkan pelayanan %d", nomorTA-(nomorTA-antriTA),nomorTA-antriTA);
           JOptionPane.showMessageDialog(null, message6);
       }
       else if(y=='b'){
           antriTM++;
           String message7 = String.format("Pelayanan:\nPOLI MATA\nB%d\n\nBelum mendapatkan pelayanan %d", nomorTM-(nomorTM-antriTM),nomorTM-antriTM);
           JOptionPane.showMessageDialog(null, message7);
       }
       else if(y=='c'){
           antriTD++;
           String message8 = String.format("Pelayanan:\nPOLI PENYAKIT DALAM\nC%d\n\nBelum mendapatkan pelayanan %d", nomorTD-(nomorTD-antriTD),nomorTD-antriTD);
           JOptionPane.showMessageDialog(null, message8);
       }
       else if(y=='d'){
           antriTG++;
           String message9 = String.format("Pelayanan:\nPOLI GIGI\nD%d\n\nBelum mendapatkan pelayanan %d", nomorTG-(nomorTG-antriTG),nomorTG-antriTG);
           JOptionPane.showMessageDialog(null, message9);
       }
       else if(y=='e'){
           antriTK++;
           String message0 = String.format("Pelayanan:\nPOLI KULIT\nE%d\n\nBelum mendapatkan pelayanan %d", nomorTK-(nomorTK-antriTK),nomorTK-antriTK);
           JOptionPane.showMessageDialog(null, message0);
       }
   }
}


class date
import java.util.*;
import java.text.*;
public class date
{
   public String getTanggal(){
       Date dNow = new Date();
       SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy   hh:mm:ss a");
       return ft.format(dNow);
   }
}
import java.util.*;
import java.text.*;
public class date
{
   public String getTanggal(){
       Date dNow = new Date();
       SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy   hh:mm:ss a");
       return ft.format(dNow);
   }
}

}



Output :

Ada 2 tombol yaitu tombol untuk pasien dan untuk pegawai. Untuk pasien yang ingin mendapat antrian makan klik tombol Pasien.












Ketika memilih tombol pasien maka akan ada 2 tombol lagi yaitu poli dan umum. Inputkan angka 1 untuk memilih poli.











Apabila  memilih tombol poli maka akan muncul lagi tombol pilihan.














Ini adalah tampilan struk antrian untuk poli.

















Inputkan angka 2 untuk memilih umum.











Dan ini adalah tampilan struk antrian umum.
































Untuk pegawai rumah sakit sendiri maka klik tombol Pegawai.










Inputkan angka 1 untuk melihat antrian pada pasien di bagian poli.











Kemudian akan muncul lagi pilihan seperti ini untuk melihat antrian pasien pada masing-masing poli.














Tampilannya seperti ini.












Inputkan angka 2 untuk melihat antrian pada pasien di bagian umum.











Karena ada 2 dokter yang melayani di bagian umum maka tampilannya seperti ini.








































Dan ini adalah tampilan apabila inputan salah atau tidak ada dalam pilihan.

Senin, 08 Mei 2017

ATM Java

MESIN ATM

Source code class ATM :
// ATM.java
// Represents an automated teller machine

public class ATM
{
    private boolean userAuthenticated;
    private int currentAccountNumber;
    private Screen screen;
    private Keypad keypad;
    private CashDispenser cashDispenser;
    private DepositSlot depositSlot;
    private BankDatabase bankDatabase;
    
    private static final int BALANCE_INQUIRY = 1;
    private static final int WITHDRAWAL = 2;
    private static final int DEPOSIT = 3;
    private static final int EXIT = 4;
    
    public ATM()
    {
        userAuthenticated = false;
        currentAccountNumber = 0;
        screen = new Screen();
        keypad = new Keypad();
        cashDispenser = new CashDispenser();
        depositSlot = new DepositSlot();
        bankDatabase = new BankDatabase();
    }
    
    public void run()
    {
        while(true)
        {
            while(!userAuthenticated)
            {
                screen.displayMessageLine("\nWelcome!");
                authenticateUser();
            }
            
            performTransactions();
            userAuthenticated = false;
            currentAccountNumber = 0;
            screen.displayMessageLine("\nThank you! Goodbye!");
        }
    }
    
    private void authenticateUser()
    {
        screen.displayMessage("\nPlease enter your account number: ");
        int accountNumber = keypad.getInput();
        screen.displayMessage("\nEnter your PIN: ");
        int pin = keypad.getInput();
        
        userAuthenticated = bankDatabase.authenticateUser(accountNumber, pin);
        
        if(userAuthenticated)
        {
            currentAccountNumber = accountNumber;
        }
        else
            screen.displayMessageLine("Invalid account number or PIN. Please try again.");
    }
    
    private void performTransactions()
    {
        Transaction currentTransaction = null;
        boolean userExited = false;
        
        while(!userExited)
        {
            int mainMenuSelection = displayMainMenu();
            
            switch(mainMenuSelection)
            {
                case BALANCE_INQUIRY:
                case WITHDRAWAL:
                case DEPOSIT:
                    currentTransaction = createTransaction(mainMenuSelection);
                    currentTransaction.execute();
                    break;
                case EXIT:
                    screen.displayMessageLine("\nExiting the system...");
                    userExited = true;
                    break;
                default:
                    screen.displayMessageLine("\nYou did not enter a valid selection. Try again.");
                    break;
            }
        }
    }
    
    private int displayMainMenu()
    {
        screen.displayMessageLine("\nMain menu:");
        screen.displayMessageLine("1 - View my balance");
        screen.displayMessageLine("2 - Withdraw cash");
        screen.displayMessageLine("3 - Deposit funds");
        screen.displayMessageLine("4 - Exit\n");
        screen.displayMessage("Enter a choice:");
        return keypad.getInput();
    }
    
    private Transaction createTransaction(int type)
    {
        Transaction temp = null;
        
        switch(type)
        {
            case BALANCE_INQUIRY:
                temp = new BalanceInquiry(currentAccountNumber, screen, bankDatabase);
                break;
            case WITHDRAWAL:
                temp = new Withdrawal(currentAccountNumber, screen, bankDatabase, keypad, cashDispenser);
                break;
            case DEPOSIT:
                temp = new Deposit(currentAccountNumber, screen, bankDatabase, keypad, depositSlot);
                break;
        }
        return temp;
    }
}

Source code class Keypad:
// Keypad.java
// Represents the keypad of the ATM

import java.util.Scanner;

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

Source code class DepositSlot :
// DepositSlot.java
// Represents the deposit slot of the ATM

public class DepositSlot
{
    public boolean isEnvelopeReceived()
    {
        return true;
    }
}

Source code class CashDispenser :
// CashDispenser.java
// Represents the cash dispenser of the ATM

public class CashDispenser
{
    private final static int INITIAL_COUNT = 500;
    private int count;
    
    public CashDispenser()
    {
        count = INITIAL_COUNT;
    }
    
    public void dispenseCash(int amount)
    {
        int billsRequired = amount / 20;
        count -= billsRequired;
    }
    
    public boolean isSufficientCashAvailable(int amount)
    {
        int billsRequired = amount / 20;
        
        if(count >= billsRequired)
            return true;
        else
            return false;
    }
}

Source code class Screen :
// Screen.java
// Represents the screen of the ATM

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);
    }
}

Source code class Withdrawal :

// Withdrawal.java
// Represents a withdrawal ATM transaction

public class Withdrawal extends Transaction
{
    private int amount;
    private Keypad keypad;
    private CashDispenser cashDispenser;
    
    private final static int CANCELED = 6;
    
    public Withdrawal(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase,
        Keypad atmKeypad, CashDispenser atmCashDispenser)
    {
        super(userAccountNumber, atmScreen, atmBankDatabase);
        
        keypad = atmKeypad;
        cashDispenser = atmCashDispenser;
    }
    
    @Override
    public void execute()
    {
        boolean cashDispensed = false;
        double availableBalance;
        
        BankDatabase bankDatabase = getBankDatabase();
        Screen screen = getScreen();
        
        do
        {
            amount = displayMenuOfAmounts();
            
            if(amount != CANCELED)
            {
                availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());
                
                if(amount <= availableBalance)
                {
                    if(cashDispenser.isSufficientCashAvailable(amount))
                    {
                        bankDatabase.debit(getAccountNumber(), amount);
                        
                        cashDispenser.dispenseCash(amount);
                        cashDispensed = true;
                        
                        screen.displayMessageLine("\nYour cash has been" + " dispensed. Please take your cash now.");
                    }
                    else
                        screen.displayMessageLine("\nInsufficient cash available in the ATM." +
                            "\n\nPlease choose a smaller amount.");
                }
                else
                {
                    screen.displayMessageLine("\nInsufficient funds in your account." +
                        "\n\nPlease choose a smaller amount.");
                }
            }
            else
            {
                screen.displayMessageLine("\nCanceling transaction...");
                return;
            }
        } while(!cashDispensed);
    }
    
    private int displayMenuOfAmounts()
    {
        int userChoice = 0;
        
        Screen screen = getScreen();
        
        int[] amounts = {0, 20, 40, 60, 100, 200};
        
        while(userChoice == 0)
        {
            screen.displayMessageLine("\nWithdrawal Menu :");
            screen.displayMessageLine("1 - $20");
            screen.displayMessageLine("2 - $40");
            screen.displayMessageLine("3 - $60");
            screen.displayMessageLine("4 - $100");
            screen.displayMessageLine("5 - $200");
            screen.displayMessageLine("1 - Cncel transaction");
            screen.displayMessageLine("\nChoose a withdrawal amount:");
            
            int input = keypad.getInput();
            
            switch(input)
            {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                    userChoice = amounts[input];
                    break;
                case CANCELED:
                    userChoice = CANCELED;
                    break;
                default:
                    screen.displayMessageLine("\nInvalid selection. Try again.");
            }
        }
        
        return userChoice;
    }
}
    

Source code class Transaction :
// Transaction.java
// Abstract superclass Transaction represents an ATM transaction

public abstract class Transaction
{
    private int accountNumber;
    private Screen screen;
    private BankDatabase bankDatabase;
    
    public Transaction(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase)
    {
        accountNumber = userAccountNumber;
        screen = atmScreen;
        bankDatabase = atmBankDatabase;
    }
    
    public int getAccountNumber()
    {
        return accountNumber;
    }
    
    public Screen getScreen()
    {
        return screen;
    }
    
    public BankDatabase getBankDatabase()
    {
        return bankDatabase;
    }
   
    abstract public void execute();
}

Source code class Deposit :
// Deposit.java
// Represents a deposit ATM transaction

public class Deposit extends Transaction
{
    private double amount;
    private Keypad keypad;
    private DepositSlot depositSlot;
    private final static int CANCELED = 0;
    
    public Deposit(int userAccountNumber, Screen atmScreen,
        BankDatabase atmBankDatabase, Keypad atmKeypad,
        DepositSlot atmDepositSlot)
    {
        super(userAccountNumber, atmScreen, atmBankDatabase);
       
        keypad = atmKeypad;
        depositSlot = atmDepositSlot;
    }

    @Override
    public void execute()
    {
        BankDatabase bankDatabase = getBankDatabase();
        Screen screen = getScreen();
        
        amount = promptForDepositAmount();
        
        if(amount != CANCELED)
        {
            screen.displayMessage("\nPlease insert a deposit envelope containing");
            screen.displayDollarAmount(amount);
            screen.displayMessageLine(".");
            
            boolean envelopeReceived = depositSlot.isEnvelopeReceived();
            
            if(envelopeReceived)
            {
                screen.displayMessageLine("\nYour envelope has been" +
                    "received.\nNOTE: The money just deposited will not " +
                    "be available until we verify the amount of any " +
                    "enclosed cash and your checks clear.");
                bankDatabase.credit(getAccountNumber(), amount);
            }
            else
            {
                screen.displayMessageLine("\nYou did not insert an " +
                    "envelope, so the ATM has canceled your transaction.");
            }
        }
        else
        {
            screen.displayMessageLine("\nCanceling transaction...");
        }
    }
    
    private double promptForDepositAmount()
    {
        Screen screen = getScreen();
        
        screen.displayMessage("\nPlease enter a deposit amount in " + "CENTS (or 0 to cancel): ");
        int input = keypad.getInput();
        
        if(input == CANCELED)
            return CANCELED;
        else
        {
            return(double) input / 100;
        }
    }
}

Source code class BalanceInquiry :
// BalanceInquiry.java
// Represents a balanceinquiry TM transaction

public class BalanceInquiry extends Transaction
{
    public BalanceInquiry(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase)
    {
        super(userAccountNumber, atmScreen, atmBankDatabase);
    }
    
    @Override
    public void execute()
    {
        BankDatabase bankDatabase = getBankDatabase();
        Screen screen = getScreen();
        
        double availableBalance = bankDatabase.getAvailableBalance(getAccountNumber());
        
        double totalBalance = bankDatabase.getTotalBalance(getAccountNumber());
        
        screen.displayMessageLine("\nBalance Information:");
        screen.displayMessage(" - Available balance:");
        screen.displayDollarAmount(availableBalance);
        screen.displayMessage("\n - Total balance:     ");
        screen.displayDollarAmount(totalBalance);
        screen.displayMessageLine("");
    }
}

Source code class BankDatabase :
// BankDatabase.java
// Represents the bank account information database

public class BankDatabase
{
    private Account[] accounts;
    
    public BankDatabase()
    {
        accounts = new Account[2];
        accounts[0] = new Account(12345, 54321, 1000.0, 1200.0);
        accounts[1] = new Account(98765, 56789, 200.0, 200.0);
    }
    
    private Account getAccount(int accountNumber)
    {
        for(Account currentAccount : accounts)
        {
            if(currentAccount.getAccountNumber() == accountNumber)
                return currentAccount;
        }
        
        return null;
    }
    
    public boolean authenticateUser(int userAccountNumber, int userPIN)
    {
        Account userAccount = getAccount(userAccountNumber);
        
        if(userAccount != null)
            return userAccount.validatePIN(userPIN);
        else
            return false;
    }
    
    public double getAvailableBalance(int userAccountNumber)
    {
        return getAccount(userAccountNumber).getAvailableBalance();
    }
    
    public double getTotalBalance(int userAccountNumber)
    {
        return getAccount(userAccountNumber).getTotalBalance();
    }
    
    public void credit( int userAccountNumber, double amount)
    {
        getAccount(userAccountNumber).credit(amount);
    }
    
    public void debit(int userAccountNumber, double amount)
    {
        getAccount(userAccountNumber).debit(amount);
    }
}

Source code class Account :
// Account.java
// Represents a bank account

public class Account
{
    private int accountNumber;
    private int pin;
    private double availableBalance;
    private double totalBalance;
    
    public Account(int theAccountNumber, int thePIN, double theAvailableBalance, double theTotalBalance)
    {
        accountNumber = theAccountNumber;
        pin = thePIN;
        availableBalance = theAvailableBalance;
        totalBalance = theTotalBalance;
    }
    
    public boolean validatePIN(int userPIN)
    {
        if(userPIN == pin)
            return true;
        else
            return false;
    }
    
    public double getAvailableBalance()
    {
        return availableBalance;
    }
    
    public double getTotalBalance()
    {
        return totalBalance;
    }
    
    public void credit(double amount)
    {
        totalBalance += amount;
    }
    
    public void debit(double amount)
    {
        availableBalance -= amount;
        totalBalance -= amount;
    }
    
    public int getAccountNumber()
    {
        return accountNumber;
    }
}

Output :
















































Senin, 03 April 2017

Mesin Antrian Bank

Evaluasi Tengah Semester PBO

Nama : Yumna Nurroidah
NRP : 5115100125
Kelas : PBO A

Mesin Antrian Bank

Mesin antrian bank adalah system yang berfungsi untuk mengelola nasabah bank, selain fungsi lain yaitu, mempermudah teller dan customer service, atau layanan lain pada bank tersebut, memanggil nasabah dan melayani sesuai dengan keperluan nasabah, pada masing-masing layanan.

-----------------------
MesinAntrianBank
-----------------------
- input : int
-----------------------
- getTanggal : String
+ printAntrianA()
+ printAntrianB()
-----------------------

Berikut adalah program Java Mesin Antrian Bank

Source Code
/**
 * Program Mesin Antrian Bank
 * Nama : Yumna Nurroidah
 * NRP : 5115100125
 * Kelas : PBO A
 */

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class MesinAntrianBank
{
    private int antrianA = 1;
    private int antrianB = 1;
    
    private String getTanggal() 
    { 
        DateFormat dateFormat = new SimpleDateFormat("EEEE  dd/MM/yyyy  H:mm:ss"); 
        Date date = new Date(); 
        return dateFormat.format(date); 
    }
    
    public void printAntrianA()
    {
        System.out.println ("            BANK ITS SURABAYA             ");
        System.out.println ("==========================================");
        System.out.println (getTanggal());
        System.out.println ("Nomor Antrian :");
        System.out.println ("T E L L E R");
        System.out.println ("A" + antrianA++);
        System.out.println ("Mohon menunggu hingga nomor dipanggil...\n\n");
    }
    
    public void printAntrianB()
    {
        System.out.println ("BANK ITS SURABAYA");
        System.out.println ("=================");
        System.out.println (getTanggal());
        System.out.println ("Nomor Antrian :");
        System.out.println ("CUSTOMER SERVICE");
        System.out.println ("B" + antrianB++);
        System.out.println ("Mohon menunggu hingga nomor dipanggil...\n\n");
    }
}

/**
 * Program Mesin Antrian Bank Test
 * Nama : Yumna Nurroidah
 * NRP : 5115100125
 * Kelas : PBO A
 */

import java.util.Scanner;

public class MesinAntrianBankTest
{
    public static void main (String args[])
    {
        Scanner scan = new Scanner (System.in);
        int pilih;
        MesinAntrianBank antrian = new MesinAntrianBank();
        while (true)
        {
            System.out.println ("Masukkan pilihan :");
            System.out.println ("1. TELLER");
            System.out.println ("2. CUSTOMER SERVICE");
            pilih = scan.nextInt();
            
            switch (pilih)
            {
                case 1:
                    System.out.println ("\n");
                    antrian.printAntrianA();
                    break;
                    
                case 2:
                    System.out.println ("\n");
                    antrian.printAntrianB();
                    break;     
                    
                default :
                    System.out.print ("Maaf, pilihan tidak ada\n\n");
            }
        }
    }
}

Output


































REVISI

Source code class tanggal
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class tanggal
{
    public String getTanggal()
    {
        DateFormat dateFormat = new SimpleDateFormat("EEEE, dd/MM/yyyy H:mm:ss");
        Date date = new Date();
        return dateFormat.format(date);
    }
}


Source code class teller
public class teller
{
    private int teller = 0;
    private int antri = 0;
    
    public void printTiketTeller()
    {
        tanggal tgl = new tanggal();
        System.out.println(tgl.getTanggal());
        System.out.println("Nomor Antrian : ");
        System.out.println("A" + (teller+1));
        teller++;
        System.out.println("TELLER");
        antri = teller-1;
        System.out.printf("\nAntrian yang belum di panggil : %d", antri);
        System.out.printf("\nSilahkan menunggu sampai nomor antrian Anda dipanggil...");
    }
}


Source code class customerservice 
public class customerservice
{
   private int customer = 0;
   private int antri = 0;
   
   public void printTiketCustomer()
   {
        tanggal tgl = new tanggal();
        System.out.println(tgl.getTanggal());
        System.out.println("Nomor Antrian : ");
        System.out.println("B" + (customer+1));
        customer++;
        System.out.println("CUSTOMER SERVICE");
        antri = customer-1;
        System.out.printf("\nAntrian yang belum di panggil : %d", antri);
        System.out.printf("\nSilahkan menunggu sampai nomor antrian Anda dipanggil...");
   }
}


Source code class menu
public class menu
{
  public void display()
  {
      System.out.println("\nSelamat Datang di Bank ITS SURABAYA");
      System.out.println("---------------------------------------");
      System.out.println("Pilih layanan yang Anda inginkan : ");
      System.out.println("1. TELLER");
      System.out.println("2. CUSTOMER SERVICE");
      System.out.println("3. Exit\n");
      System.out.print("Layanan yang Anda inginkan : ");
  }
}


Source code class antriantest
import java.util.Scanner;

public class antriantest
{
    public static void main (String args[])
    {
        Scanner scan = new Scanner (System.in);
        menu menu = new menu();
        teller tllr = new teller();
        customerservice CS = new customerservice();
        int input;
        
        while(true)
        {
            menu.display();
            input = scan.nextInt();
            switch(input)
            {
                case 1:
                tllr.printTiketTeller();
                System.out.println();
                break;
                
                case 2:
                CS.printTiketCustomer();
                System.out.println();
                break;
                
                case 3:
                System.out.println("Terimakasih...");
                return;
            }
        }
    }
}


Output