Minggu, 16 September 2018

Tugas 3 PBO : TICKET MACHINE SEDERHANA


TUGAS 3 PEMROGRAMAN BERORIENTASI OBJEK 

MEMBUAT TICKET MACHINE SEDERHANA



Nama : Atika Rizki Nurakhmah
NRP : 05111740000015
Kelas : PBO - A

Tugas kali ini, saya diminta untuk membuat program Mesin Tiket Otomatis versi sederhananya.
Saya menggunakan 2 Class.
  1. Class TicketMachine
    Dalam class ini terdapat beberapa method. Di awal terdapat deklarasi variable, beserta nilainya. Berikut method yang saya gunakan:
    • public int getPrice()
      Digunakan untuk menyimpan dan menampilkan harga tiket yang diinputkan user.
    • public void insertMoney(int amount) 
      Digunakan untuk mendapatkan jumlah uang yang dimasukkan user.
    • public int getBalance()
      Digunakan untuk menyimpan dan menampilakan jumlah uang yang sudah dimasukkan user.
    • public void printTicket()
      Digunakan untuk mencetak tiket.
    • public int refundBalance()
      Digunakan untuk menghitung, menyimpan, dan menampilkan uang kembalian user.
  2. Class Main
    Dalam Class ini terdapat opsi-opsi yang dapat dipilih user.


Berikut adalah Source Code nya:
  1. Class TicketMachine
/**  
  * Write a description of class TicketMachine here.  
  *  
  * @author (Atika Rizki Nurakhmah / 05111740000015)  
  * @version (01.01/tugas3/2018)  
  */  
 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;   
  // The amount of refund  
  private int refund;  
  /**   
  * 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 cost)   
  {   
  price = cost;   
  balance = 0;   
  total = 0;   
  refund =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)   
  {   
    //System.out.println("Masukkan jumlah uang Anda");  
    if(amount>0){  
   balance = balance + amount;   
  }   
   else{  
     System.out.println("Masukkan Uang ke Mesin");  
   }  
 }  
  /**   
  * Print a ticket.   
  * Update the total collected and   
  * reduce the balance to zero.   
  */   
  public void printTicket()   
  {   
    System.out.println("Uang anda Rp. "+balance+",-");  
     if(balance>=price){  
   total = total + balance;  
   refund=refundBalance();  
   if (refund==0){  
     System.out.println("Uang anda pas. Tidak ada kembalian.");  
   }  
     else{  
       System.out.println("Kembalian Anda Rp. "+refund+",-");  
     }  
     balance =0;  
   System.out.println();     
   System.out.println("#############################");   
   System.out.println("****** The BlueJ Train ******");  
   System.out.println("* Tanggal : 17 September 2018");  
   System.out.println("* 1 Ticket       *****");   
   System.out.println("* Rp." + price + ",-       ****");   
   System.out.println("#############################");   
   System.out.println();   
   System.out.println("Terima Kasih, Semoga Perjalanan Anda Menyenangkan!");  
   System.out.println();  
   System.exit(0);  
   }  
   else {  
     System.out.println("Silahkan Masukan Rp."+(price-balance)+",-");  
 }  
 }  
 public int refundBalance() {   
   int amountToRefund;   
   amountToRefund = balance-price;   
   balance = 0;   
   return amountToRefund;   
 }  
 }  


     2.  Class Main

 /**  
  * Write a description of class Main here.  
  *  
  * @author (Atika Rizki Nurakhmah / 05111740000015)  
  * @version (01/tugas3/2018)  
  */  
 import java.util.Scanner;   
  public class Main   
  {   
  public static void main(String args[])   
  {   
  Scanner scan= new Scanner(System.in);   
  int cost,menu;   
  System.out.println("SELAMAT DATANG DI THE BLUEJ TRAIN");  
  System.out.println("Masukkan harga tiket yang akan anda beli \n");   
  cost=scan.nextInt();   
  TicketMachine ticket=new TicketMachine(cost);  
  while(true){  
  System.out.println();   
  System.out.println("Silahkan pilih opsi (Program akan berhenti ketika Anda berhasil mencetak tiket)");  
  System.out.println("1. Cetak Harga");   
  System.out.println("2. Masukkan Uang");   
  System.out.println("3. Jumlah Uang yang Sudah Dimasukkan");   
  System.out.println("4. Cetak Tiket");   
  menu=scan.nextInt();   
  switch(menu)   
  {   
   case 1:   
   cost=ticket.getPrice();   
   System.out.println("Harga Tiket yang Anda beli Rp. "+cost+",-");   
   break;   
   case 2:   
   System.out.println("Masukkan jumlah uang Anda");  
   int money=scan.nextInt();   
   ticket.insertMoney(money);   
   break;   
   case 3:  
   System.out.println("Anda telah memasukkan uang sejumlah Rp."+ticket.getBalance()+",00");  
   break;  
   case 4:   
   ticket.printTicket();   
   break;   
  }   
  }   
  }   
 }

 Berikut tampilan hasilnya


Setelah dimasukkan jumlah uangnya, nilai balance dan refundnya berubah



Jika Source Code dicompile dan dijalankan, hasilnya menjadi :


Jika uang yang dimasukkan user kurang, tampilannya seperti ini

Nah, demikian tugas pbo ketiga saya. Saya pamit undur diri, sampai bertemu di tugas selanjutnya. Sekian dan Terima kasih :)))))))

Tidak ada komentar:

Posting Komentar

EAS PBO - Membuat Image Viewer

Membuat Image Viewer (Versi update + editor)   Nama : Atika Rizki Nurakhmah Nrp    : 05111740000015 Kelas : PBO - A ...