Langsung ke konten utama

Tugas 3 PBO: Ticket Machine dan Remot TV

Apa itu Ticket Machine? Ya, tiket machine adalah salah satu tempat dimana mesin tersebut adalah melayani pembelian tiket. Contohnya seperti mesin ini:


Yap, di foto itu adalah contoh dari bentuk mesin tiket yang umum berada di Indonesia. Untuk kali ini, case yang dipakai adalah sama seperti yang ada difoto itu, yaitu adalah mesin tiket Kereta Api. Namun, kali ini tentunya sederhana saja (tidak seribet yang ada di stasiun-stasiun pada umumnya)

Untuk kodingannya kurang lebih seperti ini, dengan menggunakan bahasa Java

Main:
 import java.util.Scanner;   
  public class IntMain   
  {   
  public static void main(String args[])   
  {   
  Scanner scan= new Scanner(System.in);   
  int cost,namaka,menu;  
  System.out.println("Masukkan harga tiket \n");  
  cost=scan.nextInt();  
  System.out.println("Masukkan nama kereta \n");  
  TicketMachine ticket=new TicketMachine(cost);System.out.println("1. Dapatkan Harga");   
  System.out.println("2. Dapatkan Kembalian");   
  System.out.println("3. Ambil Uang");   
  System.out.println("4. Print Tiket");   
  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;   
  }   
  }   
  }  

class TicketMachine:
 public class TicketMachine  
 {  
   private int price;  
   private int balance;  
   private int total;  
   public TicketMachine(int ticketCost)  
   {  
     price = ticketCost;  
     balance = 0;  
     total = 0;  
   }  
   public int getPrice()  
   {  
     return price;  
   }  
   public int getBalance()  
   {  
     return balance;  
   }  
   public void insertMoney(int amount)  
   {  
     balance = balance + amount;  
   }  
   public void printTicket()  
   {  
     System.out.println("##################");  
     System.out.println("# Kereta Api SP<BLABLABLA>, Mastah Adalah Prioritas Kami");  
     System.out.println("# Tiket Anda");  
     System.out.println("# " + price + " rupiah.");  
     System.out.println("##################");  
     System.out.println();  
     total = total + balance;  
     balance = 0;  
   }  
 }  

Output:

Lumayan simpel kan? Untuk penerapan yang kurang lebih sama, sekarang kita beralih ke cara kerja Remot TV. Ini dia kodingannya (masih sama pakai bahasa Java):

Main:
 import java.util.Scanner;   
  public class Main   
  {   
   public static void main(String args[])   
   {   
    Scanner scan = new Scanner(System.in);   
    int menu, channel, volume, channellist;   
    menu=0;   
    channel=0;   
    volume=0;  
    channellist=0;  
    System.out.println("ASTOR TV");   
    remote remote = new remote();   
 while(menu!=21)   
    {   
     System.out.println("CHANNEL LIST:");  
     System.out.println("0. ITS TV");   
     System.out.println("1. MTV Vivat");   
     System.out.println("2. DIYMedia");   
     System.out.println("3. K4TV");   
     System.out.println("4. Glebel TV");   
     System.out.println("5. India TV");   
     System.out.println("6. Bintang Olahraga");   
     System.out.println("7. FilmMaks");   
     System.out.println("8. Geografi Nasional");   
     System.out.println("9. Rubah TV");  
     System.out.println("10. Bintang Dunia");  
     System.out.println("---------------------");  
     System.out.println("1. Get Channel");   
     System.out.println("2. Get Volume");   
     System.out.println("3. Set Channel");   
     System.out.println("4. Set Volume");   
     System.out.println("5. Next Channel");   
     System.out.println("6. Previous Channel");   
     System.out.println("7. Up Volume");   
     System.out.println("8. Down Volume");   
     System.out.println("9. Turn Off");   
     menu=scan.nextInt();   
     switch(menu)   
     {   
      case 1:   
      channel=remote.getChannel();   
      System.out.println("Anda berada di channel "+channel);   
      break;   
      case 2:   
      volume=remote.getVolume();   
      System.out.println("Volume: "+volume);   
      break;   
      case 3:   
      System.out.println("Masukkan channel yang anda tuju");   
      channel=scan.nextInt();   
      remote.setChannel(channel);  
      if (channel>10)  
      {  
        System.out.println("Maaf, tidak ada channel ini");  
      }  
      break;   
      case 4:   
      System.out.println("Masukkan volume yang anda inginkan");   
      volume=scan.nextInt();   
      remote.setVolume(volume);   
      break;   
      case 5:   
      remote.nextChannel();   
      break;   
      case 6:   
      remote.preChannel();   
      break;   
      case 7:   
      remote.upVolume();   
      break;   
      case 8:   
      remote.downVolume();   
      break;   
      case 9:   
      System.out.println("Bye-Bye");  
      System.exit(1);  
      break;   
     }   
    }   
   }   
  }   

class remote
 public class remote   
  {   
   private int channel;   
   private int volume;   
   public remote()   
   {   
    channel = 0;   
    volume = 0;   
   }   
   public int getChannel()   
   {   
    return channel;   
   }   
   public int getVolume()   
   {   
    return volume;   
   }   
   public void nextChannel()   
   {   
    if (channel < 10) channel = channel + 1;   
    else channel = 1;   
   }   
   public void preChannel()   
   {   
    if (channel > 1) channel = channel -1;   
    else channel = 10;   
   }   
   public void setChannel(int cha)   
   {   
    if (cha>=0 && cha<=10) channel = cha;   
   }   
   public void upVolume()   
   {   
    if (volume < 100) volume = volume +1;   
   }   
   public void downVolume()   
   {   
    if (volume > 0) volume = volume - 1;   
   }   
   public void setVolume(int vol)   
   {   
    if (vol>=0 && vol<=100) volume = vol;   
   }   
  }   

Oke, kita langsung ke testcase. Testcase pertama. Mengatur volume dari 0 ke 40. Ini dia outputnya:


Testcase kedua. Mengubah channel dari ITS TV (Channel 0) menuju Bintang Olahraga (Channel 6)


Testcase ketiga. Bagaimana jika kita menginput channel yang tidak ada dilist? Ini dia hasilnya:


Testcase keempat. Bagaimana jika kita mengecilkan volume? Bisa....


Untuk mematikan TV, bisa dipencet nomor 9. menggunakan fungsi system.exit(1)

Simpel kan? Itu aja dari mimin, kurang lebihnya mohon maaf jika ada kekurangan

Komentar

Postingan populer dari blog ini

Tugas 2 APSI: ERD dan DFD Sistem Ticketing Kereta Api

Tugas 2 APSI: ERD dan DFD Sistem Ticketing Kereta Api DFD Level 0 DFD Level 1 DFD Level 2 ERD

Tugas 7 PBO: Fox & Rabbit Simulator

Class Location: public class Location { private int row; private int col; public Location(int row, int col) { this.row = row; this.col = col; } public boolean equals(Object obj) { if(obj instanceof Location) { Location other = (Location) obj; return row == other.getRow() && col == other.getCol(); } else { return false; } } public String toString() { return row + "," + col; } public int hashCode() { return (row << 16) + col; } public int getRow() { return row; } public int getCol() { return col; } } Class Field: import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Random; public class Field { private static final Random rand = Randomizer.getRandom(); priva...

RK 5: Sistematika Sintaks Requirement

Metode Dokumentasi - Rekayasa Kebutuhan: Requirement Engineering: Requirement Engineering atau juga bisa disebut Requirement Analysis merupakan suatu cara untuk menentukan kebutuhan user yang kemudian bisa digunakan sebagai input dalam proses analisis desain sebuah produk. Requirement/Kebutuhan yang dihasilkan dari kegiatan ini haruslah bisa di hitung (quantifiable), detail, dan relevan. Requirement Engineering melibatkan proses komunikasi yang intensif dengan pengguna sistem yang bertujuan untuk menjelas/detaikan spesifikasi kebutuhannya . Komunikasi Intensi ini dilakukan dengan tujuan agar kebutuhan usernya tidak ambigu dan sesuai dengan keinginannya, serta juga menghindarkan project creep (penambahan fitur baru saat implementasi), dan sebagai tolok ukur hasil implementasi produk (menentukan objective saat proses testing dilakukan). Dan karena RE ini berhubungan denga orang (user) maka sangat dianjurkan agar tim yang melakukan RE ini memilki kemampuan komunikasi dan mana...