Jumat, 16 Desember 2016

OOP dalam ATM

ATM menurut Ellen Florian (2004) adalah ”alat telekomunikasi berbasis komputer yang menyediakan tempat bagi nasabah dalam melakukan transaksi keuangan tanpa membutuhkan seorang teller bank.”. ATM dalam bahasa asing Automated Teller Machine dan dalam bahasa Indonesia Anjungan Tunai Mandiri.

Secara umum fungsi ATM adalah agar dapat melakukan penarikan uang tunai, namun selain itu masih banyak fungsi ATM yang dapat mempermudah kepentingan kita sebagai nasabah.

Pengimplementasiannya sebagai berikut : (Klik Read More)
Source codenya (created by Format My SourceCode for Blogging) :
//class CaseATMStudy

public class ATMCaseStudy
{
 /**
 * Constructor for objects of class ATMCaseStudy
 */
 public ATMCaseStudy()
 {
 
 }

 public static void main(String[] args)
 {
 ATM theATM = new ATM();
 theATM.run();
 }
}

//class ATM

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 WITHDRAWL = 2;
 private static final int DEPOSIT = 3;
 private static final int EXIT = 4;

 /**
 * Constructor for objects of class ATM
 */
 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 WITHDRAWL:
 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. Tr 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 WITHDRAWL:
 temp = new Deposit(currentAccountNumber, screen, bankDatabase, keypad, depositSlot);
 break;
 }
 
 return temp;
 }
}

//class Keypad

public class Keypad
{
 private Scanner input;
 
 /**
 * Constructor for objects of class Keypad
 */
 public Keypad()
 {
 input = new Scanner(System.in);
 }
 
 public int getInput()
 {
 return input.nextInt();
 }
}

//class DepositSlot

public class DepositSlot
{
 /**
 * Constructor for objects of class DepositSlot
 */
 public DepositSlot()
 {
 
 }

 public boolean isEnvelopeReceived()
 {
 return true;
 }
}

//class CashDispenser

public class CashDispenser
{
 private final static int INITIAL_COUNT = 500;
 private int count;
 
 /**
 * Constructor for objects of class CashDispenser
 */
 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;
 }
}

//class Screen

public class Screen
{
 /**
 * Constructor for objects of class Screen
 */
 public 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 Deposit

public class Deposit extends Transaction
{
 private double amount;
 private Keypad keypad;
 private DepositSlot depositSlot;
 private final static int CANCELED = 0;

 /**
 * Constructor for objects of class Deposit
 */
 public Deposit(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, DepositSlot atmDepositSlot)
 {
 super(userAccountNumber, atmScreen, atmBankDatabase);
 
 keypad = atmKeypad;
 depositSlot = atmDepositSlot;
 }

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

//class Transaction

public abstract class Transaction
{
 private int accountNumber;
 private Screen screen;
 private BankDatabase bankDatabase;

 /**
 * Constructor for objects of class Transaction
 */
 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();
}

//class Withdrawal

public class Withdrawal extends Transaction
{
 private int amount;
 private Keypad keypad;
 private CashDispenser cashDispenser;
 
 private final static int CANCELED = 6;
 
 /**
 * Constructor for objects of class Withdrawal
 */
 public Withdrawal(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase, Keypad atmKeypad, CashDispenser atmCashDispenser)
 {
 super( userAccountNumber, atmScreen, atmBankDatabase );
 
 keypad = atmKeypad;
 cashDispenser = atmCashDispenser;
 }

 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( "6 - Cancel transaction" );
 screen.displayMessage( "\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;
 }
}

//class BalanceInquiry

public class BalanceInquiry extends Transaction
{
 /**
 * Constructor for objects of class BalanceInquiry
 */
 public BalanceInquiry(int userAccountNumber, Screen atmScreen, BankDatabase atmBankDatabase)
 {
 super(userAccountNumber, atmScreen, atmBankDatabase);
 }

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

//class BankDatabase

public class BankDatabase
{
 private Account[] accounts;

 /**
 * Constructor for objects of class BankDatabase
 */
 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);
 }
}

//class Account

public class Account
{
 private int accountNumber;
 private int pin;
 private double availableBalance;
 private double totalBalance;

 /**
 * Constructor for objects of class Account
 */
 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;
 }
}

Berikut hasilnya setelah di run : 


Read More..

Kamis, 17 November 2016

Menggunakan Library

Hai bertemu saya lagi :) Kali ini saya akan membahas Pemrograman Berorientasi Objek menggunakan Java mengenai menggunakan Library.

Pertama-tama apa sih Library itu ?
Library adalah sekumpulan package atau koleksi kelas yang telah disediakan oleh Java. Untuk menggunakan Library dalam java kita menggunakan syntax import.

Biar tidak bingung langsung saja ya kita implementasikan.
Latihan Luas & Keliling Persegi Panjang

Source codenya (created by Format My SourceCode for Blogging) :

import java.util.Scanner;
public class Latihan_java {


    public static void main(String[] args) 
    {
        int panjang, lebar, hasil;
        String karakter;
        
        hasil = 0;
        Scanner sc = new Scanner(System.in);
        System.out.println("Program Penghitung Luas dan Keliling Persegi panjang");
        System.out.print("Masukan Panjang Persegi: ");
        panjang = sc.nextInt();
        
        System.out.print("Masukan Lebar Persegi: ");
        lebar = sc.nextInt();
        
        System.out.println("Tekan (L) untuk melihat Luas");
        System.out.print("Tekan (K) untuk melihat keliling: ");
        karakter = sc.next();
        switch(karakter)
        {
            case "L":
                hasil = panjang * lebar;
                break;
                
            case "K":
                hasil = 2 * (panjang + lebar);
                break;
                
            default:
                System.out.print("Anda salah memasukan inputan");
                break;
        }
        sc.close();
        System.out.print("Hasilnya adalah: " + hasil);
        System.out.println();
    }
    
}

Dan setelah dicompile, kita isi Panjang dan Lebar, maka :

Read More..

Overloading dan Overriding

Hi :) selamat pagi semua ! Bagaimana kabarnya hari ini? Alhamdulillah saya pribadi diberi kesehatan sehingga bisa menjalani aktivitas seperti biasa.

Pada kesempatan kali ini saya ingin mengupload tugas PBO saya sekaligus menjelaskannya secara keseluruhan.

Materi pada kesempatan kali ini yaitu mengenai "Overloading dan Overriding."
Apa itu Overloading dan Overriding?

Well, pada dasarnya Overloading dan Overriding adalah merupakan sebuah method-method. Method-method apakah itu?


Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.

Sedangkan method overriding merupakan method yang parrent class ditulis kembali oleh subclass.

Biar tidak bingung langsung implementasinya saja ya hehehe.

Overloading 
Saya buat dua kelas, MyClass dan Main_Class

Source codenya (created by Format My SourceCode for Blogging) :

public class MyClass
{
    int height;
    MyClass(){
        System.out.println("bricks");
        height = 0;
    }
   
    MyClass(int i){
        System.out.println("Building a new house that is " + i + " feet tall");
        height = i;
    }
   
    void info(){
        System.out.println("House is " + height + " feet tall");
    }
   
    void info(String s){
        System.out.println(s + " : House is " + height + " feet tall");
    }
}

public class Main_Class
{
    public static void main(String[] args){
        MyClass t = new MyClass(2);
        t.info();
        t.info("overloaded method");
        // Overload Constructor:
        new MyClass();
    }
}



Relasinya sebagai berikut :


Lalu setelah dijalankan programnya, akan menghasilkan sbb :

Lalu yang kedua mengenai implementasi Overriding.
Saya membuat tiga kelas, yaitu Kelas 1 (Binatang), Kelas 2 (Mamalia) dan Kelas 3 (Main Classnya)

Source codenya (created by Format My SourceCode for Blogging) :

public class Binatang {
    public void begerak(){
        System.out.println("Binatang bergerak sesuai kemampuannya");
    }
    public void berkembangBiak(){
        System.out.println("Binatang berkembang biak sesuai kemampuannya");
    }

}
public class Mamalia extends Binatang {
    //overriding method parent class
    public void begerak(){
        System.out.println("Mamalia bergerak sebagian besar dengan kakinya");
    }    
    public void berlari(){
        System.out.println("Sebagian Mamalia dapat berlari");
    }
}
public class PenggunaanOverriding {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Binatang b = new Binatang();
        Mamalia m = new Mamalia();
        Binatang bm = new Mamalia();
        
        b.begerak();
        m.begerak();
        bm.begerak();
        bm.berkembangBiak();
    }
}
 
  

Relasinya :
Dan setelah dicompile, akan menghasilkan sbb :

Read More..

Kamis, 27 Oktober 2016

Program Display Jam

          Hi semua, bertemu lagi nih dengan saya Sidqi, mahasiswa Teknik Informatika ITS yang saat ini berada di semester 3 hehe. Pada kesempatan kali ini saya ingin mengupload sekaligus berbagi ilmu mengenai Program Display Jam. Program ini dibuat untuk memenuhi tugas Pemrograman Berorientasi Objek (PBO) Kelas D.

          Langsung saja, inti dari program ini yaitu untuk menampilkan (mendisplay) suatu jam yang terdiri dari satuan jam dan menit. Untuk satuan jam memiliki nilai maksimal 23 dan satuan menit memiliki nilai maksimal 59. Problem untuk mendisplay Jam ini dibantu oleh beberapa subproblem yang merupakan suatu kelas-kelas. Kelas-kelas tersebut yaitu NumberDisplay, ClockDisplay, dan TestClockDisplay.

          Hubungannya seperti berikut :



Source codenya (created by Format My SourceCode for Blogging) :
public class NumberDisplay
{
private int limit;
private int value;
/**
* Constructor for objects of class NumberDisplay
*/
public NumberDisplay(int rollOverLimit)
{
limit = rollOverLimit;
value = 0;
}
/**
* Return the current value.
*/
public int getValue()
{
return value;
}
/**
* Set the value of the display to the new specified
* value. If the new value is less than zero or over the
* limit, do nothing.
*/
public void setValue(int replacementValue)
{
if((replacementValue >= 0) &&
(replacementValue < limit)) {
value = replacementValue;
}
}
/**
* Return the display value (that is, the current value
* as a two-digit String. If the value is less than ten,
* it will be padded with a leading zero).
*/
public String getDisplayValue()
{
if(value < 10) {
return "0" + value;
}
else {
return "" + value;
}
}
/**
* Increment the display value by one, rolling over to zero if
* the limit is reached.
* 
*/
public void increment()
{
value = (value + 1) % limit;
}
}
public class ClockDisplay
{
private NumberDisplay hours;
private NumberDisplay minutes;
private String displayString; // simulates the actual display
/**
* Constructor for ClockDisplay objects. This constructor
* creates a new clock set at 00:00.
*/
public ClockDisplay()
{
hours = new NumberDisplay(24);
minutes = new NumberDisplay(60);
updateDisplay();
}
/**
* Constructor for ClockDisplay objects. This constructor
* creates a new clock set at the time specified by the
* parameters.
*/
public ClockDisplay(int hour, int minute)
{
hours = new NumberDisplay(24);
minutes = new NumberDisplay(60);
setTime(hour, minute);
}
/**
* This method should get called once every minute - it
* makes the clock display go one minute forward.
*/
public void timeTick()
{
minutes.increment();
if(minutes.getValue() == 0) { // it just rolled over!
hours.increment();
}
updateDisplay();
}
/**
* Set the time of the display to the specified hour and
* minute.
*/
public void setTime(int hour, int minute)
{
hours.setValue(hour);
minutes.setValue(minute);
updateDisplay();
}
/**
* Return the current time of this display in the format
* HH:MM.
*/
public String getTime()
{
return displayString;
}
/**
* Update the internal string that represents the
* display.
*/
private void updateDisplay()
{
displayString = hours.getDisplayValue() + ":" +
minutes.getDisplayValue();
}
}
public class TestClockDisplay
{
 
    public TestClockDisplay()
    {
    }
 
    public void test()
    {
        ClockDisplay clock = new ClockDisplay();
       
        clock.setTime(19,04);
        System.out.println(clock.getTime());
       
        clock.setTime(04,52);
        System.out.println(clock.getTime());
    }
}
Nah, kelas yang pertama yaiut NumberDisplay, berikut screen capture source codenya :


Lalu, kelas yang kedua yaitu ClockDisplay, berikut source codenya :


Dan yang terakhir yaitu kelas TestClockDisplay. Berikut source codenya :

Lalu ketiga itu akan saling berinteraksi dan setelah dicompile akan tampak jam yang terdiri dari jam dan menit. (Sebagai contoh saya menginput jam 19:04 dan 04:52. Berikut hasil setelah dicompile :)

Nama : R. Sidqi Tri Priwi
NRP  : 5115100153
Kelas : PBO D
Read More..

Kamis, 13 Oktober 2016

Program Ticket Machine

          Pagi, bagaimana kabarnya semua? Semoga sehat selalu ya :)

          Pada kesempatan kali ini saya akan mempublish mengenai tugas kuliah saya yang implementasinya sangat dibutuhkan di kehidupan sehari-hari.

          Ya, program pada tugas kali ini yaitu "Ticket Machine". Seperti namanya, Ticket Machine merupakan mesin yang berfungsi untuk melayani penjualan tiket. Baik itu tiket kereta api, pesawat, atau yang lainnya. Langsung saja, berikut kodingannya menggunakan Java di BlueJ.

Source codenya (created by Format My SourceCode for Blogging) :
 public class TicketMachine  
 {  
 // The price of a ticket from this machine.  
 private int price;  
 // The amount of money entered by a customer so far.  
 private int balance;  
 // The total amount of money collected by this machine.  
 private int total;  
 /**  
 * Create a machine that issues tickets of the given price.  
 * Note that the price must be greater than zero, and there  
 * are no checks to ensure this.  
 */  
 public TicketMachine(int ticketCost)  
 {  
  price = ticketCost;  
  balance = 0;  
  total = 0;  
 }  
 /**  
 * Return the price of a ticket.  
 */  
 public int getPrice()  
 {  
  return price;  
 }  
 /**  
 * Return the amount of money already inserted for the  
 * next ticket.  
 */  
 public int getBalance()  
 {  
   return balance;  
 }  
 /**  
 * Receive an amount of money in cents from a customer.  
 */  
 public void insertMoney(int amount)  
 {  
   balance = balance + amount;  
 }  
 /**  
 * Print a ticket.  
 * Update the total collected and  
 * reduce the balance to zero.  
 */  
 public void printTicket()  
 {  
   // Simulate the printing of a ticket.  
   System.out.println(“##################”);  
   System.out.println(“# The BlueJ Line”);  
   System.out.println(“# Ticket”);  
   System.out.println(“# ” + price + ” cents.”);  
   System.out.println(“##################”);  
   System.out.println();  
   // Update the total collected with the balance.  
   total = total + balance;  
   // Clear the balance.  
   balance = 0;  
 }  
 }  
 //Main  
 import java.util.Scanner;  
 public class IntMain  
 {  
 public static void main(String args[])  
 {  
  Scanner scan= new Scanner(System.in);  
  int cost,menu;  
  System.out.println(“Masukkan harga tiket \n”);  
  cost=scan.nextInt();  
  TicketMachine ticket=new TicketMachine(cost);System.out.println(“1. Get Price”);  
  System.out.println(“2. Get Balance”);  
  System.out.println(“3. Insert Money”);  
  System.out.println(“4. Print Ticket”);  
  menu=scan.nextInt();  
  switch(menu)  
  {  
   case 1:  
   cost=ticket.getPrice();  
   System.out.println(cost);  
   break;  
   case 2:  
   ticket.getBalance();  
   break;  
   case 3:  
   int money=scan.nextInt();  
   ticket.insertMoney(money);  
   break;  
   case 4:  
   ticket.printTicket();  
   break;  
  }  
  }  
 }  
                                                                                                                                                                   

            Dan setelah di compile program tersebut akan berjalan seperti pada gambar berikut : 


Read More..

Kamis, 06 Oktober 2016

3 Program Java Sederhana

          Hi Selamat Pagi semua :)

          Pada kesempatan kali ini saya akan memposting mengenai 3 Program Java Sederhana yang merupakan Tugas Mata Kuliah yang saya ambil (Pemrograman Berorientasi Objek Kelas D).

           Langsung saja, program pertama yaitu Perhitungan Aritmatika.

          Program ini sangatlah sederhana, saya memasukan 2 input, panjang 10 dan lebar 5, berikut source codenya :

Source codenya (created by Format My SourceCode for Blogging) :
/*
  Program       : Perhitungan Aritmatika
  Author        : R. Sidqi Tri Priwi
  Date          : 7 Oct 2016
 */

 

public class PerhitunganAritmatika {
       public static void main(String[] args) {
            
              // deklarasi variabel
              double panjang = 10;
              double lebar = 5;
              double jumlah;
              double kurang;
              double kali;
              double bagi;
              double modulus;
            
              //proses operasi
              jumlah = panjang + lebar; // operasi Penjumlahan
              kurang = panjang - lebar; // operasi Pengurangan
              kali   = panjang * lebar; // operasi Perkalian
              bagi   = panjang / lebar; // Operasi Pembagian
              modulus = panjang % lebar; //operasi Modulus
            
              //mencetak hasil
              System.out.println("Hasil Penjumlahan    : " + jumlah);
              System.out.println("Hasil Pengurangan    : " + kurang);
              System.out.println("Hasil Perkalian      : " + kali);
              System.out.println("Hasil Pembagian      : " + bagi);
              System.out.println("Hasil Modulus : " + modulus);
       }

}
           Dan berikut output saat sudah dicompile :
           Lalu yang kedua adalah program Menghitung Nilai Rata-rata

          Inputnya terdiri dari 3 nilai ujian, lalu program ini berfungsi untung menghitung rata-ratanya. Berikut source codenya :


Source codenya (created by Format My SourceCode for Blogging) :
/*
  Program       : Menghitung Nilai Rata-rata
  Author        : R. Sidqi Tri Priwi
  Date          : 7 Oct 2016
 */

 
import java.util.Scanner;
public class scanner_angka {

       /**
        * @param args
        */
       public static void main(String[] args) {
              int nilai1, nilai2, nilai3;
              double hasil;
            
              Scanner DataIn = new Scanner(System.in);
              System.out.print("Nilai Ujian Ke-1 : ");
              nilai1 = DataIn.nextInt();
            
              System.out.print("Nilai Ujian Ke-2 : ");
              nilai2 = DataIn.nextInt();
            
              System.out.print("Nilai Ujian Ke-3 : ");
              nilai3 = DataIn.nextInt();
            
              hasil = (nilai1+nilai2+nilai3)/3;
            
              System.out.println("Nilai Rata-Rata      : " + hasil);
       }

}
  
           Dan setelah dicompile akan mengeluarkan output sebagai berikut :

          Dan program terakhir yang saya buat dan pelajari minggu ini yaitu program Looping.
          Berikut source codenya. Looping dimulai dari 10 sampai 1.



Source codenya (created by Format My SourceCode for Blogging) :
/*
  Program       : Looping 
  Author        : R. Sidqi Tri Priwi
  Date          : 7 Oct 2016
 */

class Looping {
    public static void main(String args[]){
         for(int i=10; i>1; i--){
              System.out.println("The value of i is: "+i);
         }
    }
}
   

  Dan outputnya :

sumber :
Perhitungan Aritmatika (http://www.infomugi.com/2015/06/contoh-program-java-sederhana.html)
Menghitung Nilai Rata-rata (http://www.infomugi.com/2015/06/contoh-program-java-sederhana.html)
Looping (http://beginnersbook.com/2015/03/for-loop-in-java-with-example/) 

R. Sidqi Tri Priwi
5115100153
PBO D

Read More..

Kamis, 22 September 2016

Semester Baru, Harapan Baru

     
  Hiiiii, selamat malam semua, akhirnya saya muncul lagi hehe :)

          Untuk cerita bersambung saya yang sebelumya akan saya lanjutkan nanti ya ! ^^ Kebetulan saya sudah aktif kuliah lagi nih hehe, saat ini saya berada di tahun kedua lebih tepatnya semester 3 di Teknik Informatika ITS. Pada kesempatan kali ini saya ingin sedikit mendiskripsikan harapan-harapan saya setelah mengikuti kelas Pemrograman Berorientasi Objek D yang saya ambil pada semester ini. Jujur, untuk pemrograman java saya belum bisa, tetapi sebelumnya memang saya sudah pernah mendengarnya. Maka dari itu, setelah mengikuti mata kuliah ini saya harap saya bisa tahu dan bisa menguasai pemrograman java yang akan diajarkan oleh Pak Fajar Baskoro.

          Pertemuan kemarin beliau sangat memotivasi kami, beliau memaparkan berbagai hal yang menurut saya bermanfaat sekali. Beliau juga menyinggung mengenai mengetik dengan 10 jari yang hal itu sudah saya pelajari sejak SMA. Namun seiring berjalannya waktu, saya suka lupa menggunakan teknik 10 jari dan sampai sekarang belum bisa menguasainya. Saya sangat berharap setelah dihimbau dan diajarkan oleh beliau saya dan teman-teman saya bisa menguasai mengetik 10 jari yang saya yakin sangat berguna untuk karir kami kelak.

          Selain itu, saya dan teman-teman juga ditugaskan untuk menulis 100 studi kasus (judul program) java. Beliau sempat mengatakan bahwa 100 studi kasus itu untuk satu kelas, yang artinya masing-masing mahasiswa memberi list 3/4 program (dan jika bisa dengan source linknya). Berikut 4 judul program yang telah saya pilih :

1. Selamat Datang di Program Java (http://belajar-pemrograman2.blogspot.co.id/2010/07/penjelasan-contoh-program-dasar-java.html)

2. Perhitungan Aritmatika (http://www.infomugi.com/2015/06/contoh-program-java-sederhana.html)

3. Hitung Nilai Rata-rata (http://www.infomugi.com/2015/06/contoh-program-java-sederhana.html)

4. Cek Saldo ATM (https://mylovelycode.wordpress.com/2013/05/30/iseng-java-sederhana-transfer-bank)

R. Sidqi Tri Priwi - 5115100153 - PBO D
Read More..

Sabtu, 06 Agustus 2016

The Adventure of Archi : Lost In Paradise Part 2

        
         
          “Duggg” karena dari tadi berlari tak kusadari tenyata aku baru saja menabrak seorang perempuan yang kuterka umurnya seumuran denganku. “Ma,, maaf aku sedang buru-buru, sini kubantu” ucapku lirih. Aku tidak tahu kenapa dari tadi dia merunduk terus, aku takut telah membuatnya marah karena memang barang-barangnya yang sudah ia tata rapi di trolley menjadi berantakan sekali. “O,, okay aku bantu bawakan barang-barangnya ya, jangan marah dong”. Dan tiba-tiba ia menoleh ke arahku dan aku langsung tak sadarkan diri…..  

          “Di…dimana ini, siapa kamu ?” tanyaku gemetaran. Ternyata di balik wajah cantiknya, senyum perempuan ini cukup menyeramkan. Aku saat ini sedang berada di tempat yang lumayan gelap, mungkin di salah satu gudang di bandara ini. Setelah memandangi satu sama lain tanpa kata-kata ia memulai percakapan. “Kamu mencuri benda itu ya” tiba-tiba raut mukanya menjadi sedih. “Me,, mencuri apaan? Aku ga pernah nyuri barang-barang dari kamu, kita kan baru ketemu, aneh aneh aja kamu” jawabku tidak terima. 

         “Tapi, kata Tuan William benda itu ada di daerah ini, dan radarku membawaku bertemu denganmu.” “Wait,, wait,,, sebenarnya benda apa sih yang kamu omongin itu?” “Bola emas King Lazer”. “Hahhhh” aku bingung dia ngomong apa, tapi aku tahu mungkin maskud dia bola emas yang aku ambil di ruang tamu rumahku tadi pagi. 

          “Namaku Ashley Ryn Lisa, panggil saja Lisa. Aku diutus Tuan William untuk kesini bertemu denganmu. Asal kamu tahu saja, bola emas itu sangat bermanfaat buat kami. Beberapa waktu yang lalu, bola emas itu berada di tangan King Lazer, dia merupakan seseorang yang sangat hebat, tetapi juga sangat jahat. Aku dan hampir semua orang di negeriku sudah bersusah payah untuk mendapatkan bola itu” ucapnya yang makin membuatku bingung. “King Lazer? Bola Emas? Hah? Kamu datang dari mana sih” jawabku terbata-terbata. “Panjang sekali ceritanya, cepat serahkan saja bola itu dan aku akan meninggalkanmu & tidak akan menyakitimu. 

          “Bzzz, bzzz” tiba-tiba terdengar suatu bunyi dari tas ranselku memotong percakapan aneh kami. “Se,, sebentar” ucapku kepada Lisa. “Haloo??” “Hahhhh,, jadi beneran kamu yang nyembunyiin handphone ku !!! kembaliin sekarang ga!!! Pake acara bilang halo halo segala, kaya orang ga bersalah” suara melengking yang sangat khas itu seakan-akan menusuk telingaku. Lalu aku berpikir, loh, kok bisa-bisanya handphone Ka Ricky ada di tasku ya. Mungkin dia sangat penasaran sekali dimana handphonenya sampai-sampai dia menggunakan handphone Jullie untuk mengecek dimana keberadaan handphonenya. 

          Lalu beberapa saat kemudian Ka Ricky berbicara lagi “Heh kamu dimana hah? Ayolah sini udah mau take off ini, gimana sih?? Mau ke Surabaya atau engga?” Sesaat aku lupa kalau kami ingin melakukan perjalanan ke Surabaya. “A,,aku entah dimana ini, aku lagi diculik” lalu aku dengan cepat share location ke sosmed Jullie untuk meminta bantuan barangkali Ka Ricky bisa membantu. 

          “Tittt,,” setelah mendengar percakapan kami barusan, Lisa yang ada di depanku langsung mematikan handphone Ka Ricky dan membuangnya ke lantai. “Sini bolanyaaa!!!!!”. “I,, iya sabar coba” tanganku berusaha mencari bola emas yang tadi aku simpan di dalam tas ranselku. 

          09:20 di suatu tempat di Bandara Soekarno Hatta 

          Dengan cepat Ricky langsung turun demi mendapatkan handphonenya kembali. Tetapi ternyata pesawat sudah datang dan petugas bandara sudah menyuruh penumpang untuk naik. 

          “Ayo kita naik Jullie, nanti Ka Archi dan Ka Ricky menyusul” ujar Mama Archi lembut kepada Jullie. “I,,iya ma”. Lalu beberapa menit pun berlalu tanpa kehadiran Archi maupun Ricky. “Ma, kok feelingku ga enak ya tentang Ka Archi, aku pergi dulu ya ma” dan tiba-tiba Jullie kembali masuk ke dalam bandara dengan cara menerobos petugas dan beberapa pramugari. “Ju,, Jullieee !!, kembaliiiii” 

          Tak sempat untuk keluar, Papa dan Mama Archi seakan-akan terperangkap di dalam pesawat dimana ketiga anaknya masih berada di dalam bandara. “Ba,, bagaimana ini pa, pesawat bentar lagi terbang” ucap Mama Archi sangat sedih. “Tenang ma, kan ada Ricky, pasti dia akan melakukan sesuatu, nanti setelah sampai kita langsung hubungi mereka, OK?” ucap papa. “OK pa…..” 

          To be continued ...
Read More..

Rabu, 03 Agustus 2016

The Adventure of Archi : Lost In Paradise Part 1

        
          Jakarta, 27 Juli 2016

          “Archiiii, bangun,, hari ini kan kita mau ke Surabaya, masa’ lupa!!!” “Makanya, ga usah tidur malem2 segala!!!!!”.

          Pagi itu dengan terpaksa kubuka mataku dan kurelakan waktu tidurku yang sangat berharga. Pagi itu aku dan keluargaku berencana berpergian ke Surabaya menggunakan pesawat. Oh iya, perkenalkan, namaku Romy Archilans, bule banget yah haha. Banyak yang menertawakan namaku mungkin karena aneh dan jarang di negeri seperti Indonesia ini. Ayah dan ibuku asli Indonesia, tapi entah mengapa mereka menamaiku seperti itu. Di sekolah aku selalu dipanggil Romy, tapi jika sudah sampai rumah, yahhh, pasti aku selalu dipanggil dengan nama Archi, seperti anak kecil saja…

          “Chi, kamu lihat handphoneku ga?” tanya kakakku yang sangat menjengkelkan. “Enggak” jawabku cuek. “Hihh dimana ya, pacarku pasti udah nelpon nelpon dari tadi, hmmmm”. Lalu ia pergi entah kemana. Kakakku yang cowok itu emang rada-rada, dia suka lupa nyimpan barang-barangnya sendiri, tapi walaupun suka bikin kesal aku selalu menghormati dia karena dia kakakku satu-satunya. 

          “Mandi yang cepat ya, kita bakal dijemput taxinya jam 07:15” ucap mamaku dari dapur. Setelah beberapa menit dan semua sudah siap aku disuruh mengecek keadaan rumah apa sudah siap untuk ditinggal beberapa hari. Semua lampu sudah kumatikan, dan air sudah kucek, yappppp siap untuk ditinggal. Saat ingin meninggalkan ruang tamu, aku sempat melihat suatu bola kecil berwarna emas yang mengeluarkan cahaya, terang sekali mungkin karena lampu sudah kumatikan. “Ini apaan ya, punya dedek kali ya ?” “Tapi masa’ iya, kan dia udah gede ngapain mainan ginian hmmm”. Setelah memasukkan bola itu ke tas ranselku aku langsung keluar dan mengunci rumahku itu. 

          “Kak Archi kok lama sih, ngapain aja?” tanya adikku “Jullie” yang cantik dan masih berusia 14 tahun itu. “Eng,, enggak, tadi sih ka Archi liat bola warna emas gitu di ruang tamu, punyamu ya?” “Hah, bola apaan, aku ga pernah punya mainan bola ah, punya mas Ricky kali” ucapnya lalu kepalanya masuk kembali ke dalam taxi. Hmmm, terus yang kuambil tadi bola apaan ya… Ah sudahlah, paling punya tetangga ketinggalan disitu. 

          Bandara Internasional Soekarno Hatta 08:00 

          “Haduhhhhhhhh , mama lupa” tiba-tiba mama mengagetkan kami sekeluarga saat sudah berada di dalam bandara. “Ada apa sih ma? Kok sepertinya kaget banget” ucap papaku berusaha meredakan suasana. “Mama lupa pa, teman mama di Surabaya kan nitip oleh-oleh makanan ringan yang mama janjiin itu loh pa, dia pingin bgt”. “Yaudahlah ma, bilang aja maaf kita ga sempet beliin” sambung papaku. 

          Setelah kami berlima check-in dan sudah memasukkan semua koper ke bagasi kami duduk-duduk di ruang tunggu untuk menunggu pesawat rute Jakarta – Surabaya pukul 09:30. Cukup lama menunggu, aku hanya duduk melihat orang-orang sedangkan kakakku asyik mainan game menggunakan tabnya. Dan tiba-tiba kakakku yang asyik bermain game itu langsung berdiri seraya mengatakan “O iyaa, kan makanan ringan itu di jual di bandara juga, tapi jualnya di yang depan tadi sih hehe, minta beliin Archi aja kedepan haha”. “Dih apaan, ga mauuu, beberapa menit lagi kan kita bakal take off, gimana sihh” jawabku kesal. 

           “Mohon maaf, penumpang pesawat dengan nomor keberangkatan XXXXXX dimohon menunggu beberapa saat lagi karena masalah operasional” suara itu langsung memotong percakapan kami tadi. “Yesss, tuh delay pesawatnya, sana beliin makanannya”, ucap kakakku seolah-olah menang. “Iya dong Archi, mama tolong ya :) kamu mau kan?” sambung mamaku. Ya udah deh, kalau mamaku yang nyuruh ya aku ga berani nolak, hmmmm… 

          Terpaksa aku turun lagi ke lantai bawah sendirian demi beli makanan itu -__-. Aku membawa ranselku soalnya selain tidak terlalu berat aku tidak mau selagi aku pergi kakakku yang paling iseng sedunia itu membuka barang-barangku. Cukup jauh juga ternyata tokonya. Sesampainya di toko itu aku hanya bisa menghela nafas. Gila panjang banget antriannya, cukup ga ya waktunya. Kan ga lucu kalau ketinggalan naik pesawat cuman gara-gara makanan ringan doang. Tapi setelah melihat jam tanganku, aku tahu kalau waktunya bakal sempat. Ah nanti setelah beli kan aku bisa langsung lari. 

          Setelah sekitar 10 menitan mengantri, akhirnya makanan itu sudah ada di tanganku, lalu aku bergegas lari menuju ruang tunggu di lantai atas. 

          To be continued ... 
Read More..

Jumat, 12 Februari 2016

Teknik Informatika ???

             Hi guys ! Hi semuanya,,,, o genki desu ka?? Baru bisa ngeblog skrg haha, dri dulu pingin sih ngepos sesuatu, tapi apa daya tugas yg menumpuk g bisa ditinggalin haha. O iya, di postingan kali ini sy mau ngasih tau ke kalian apa sih jurusan teknik informatika itu, ngapain aja, susah g sih??? Okay well, aku mulai dari ceritaku dulu ya hehe....  

             Bisa kuliah di salah satu univ terkenal kaya ITS itu kaya mimpi rasanya, sy g nyangka bisa diterima disini, dan yang pasti dengan perjuangan yg g segampang org kira,,, Well di jurusan ini jujur banyak bgt org jeniusnya (g boong) mungkin emang karna jurusan ini salah satu yg terbaik di ITS. Terus sebenernya belajar apa aja sih di Teknik Informatika? Sebelum itu, sy mau bilang, kalo kalian emang suka banget sama matematika dan hal2 yang berbau logika masuk deh Teknik Informatika. 

            Apa sih bayangan kalian tentang Teknik Informatika? pasti pikiran pertama kalian anak teknik informatika itu pasti ngoding y? haha y g salah sih, emang disini kita semua belajar pemrograman.... Terus gmn kalo kita g bisa sama sekali ngoding atau g ngerti bahasa pemrograman sama sekali? Haha g ush takut, di semester 1 kalian bakal diajarin dari dasarnya banget kok, jdi y pasti belajar dari awal,, tpi kalo emang kalian udh jago dri SMA y nilai plus kalian. Jujur sy sebenernya g ngerti pemrograman sama sekali kok haha xD tpi akhirnya bisa kok (wkwk),,,, alhamdulillah ip perdana sih cum laude, seneng bgt, tpi y jgn cepet puas, karena perjalanan masih panjang.... 

            Mata kuliahnya g mungkin ngoding semua kan haha, di teknik informatika kita g belajar pemrograman aja, tpi kita belajar ngitung2 juga, jdi matematika kalian harus kuat, atau minimal ada kemauan tinggi buat belajar matematika lebih dalam. Di ITS di semester 1 itu ada matkul sistem digital (belajar bilangan biner gitu deh), matematika diskrit (matematika logika2 gitu), dasar pemrograman (namanya aja dasar jdi y belajar dari awal, apa itu pemrograman, bnyk praktikum haha XD), sistem dan teknologi informasi, trus ada 2 matkul bersama yaitu inggris sm kalkulus (2 matkul itu kita nanti belajar bareng2 sm jurusan lain (kalo di ITS)). 

             Sekarang sy semester 2, masih berjuang nih di teknik informatika haha, intinya sih teknik informatika seru kok haha =) ayo ayo pilih jurusan teknik informatika, dan kalo bisa pilih di ITS ya haha =) akreditasi Teknik Informatika ITS itu A, udh gitu udh bersertifikat internasional haha =) Goodluck ^^
Read More..
Related Posts Plugin for WordPress, Blogger...