Sunday, September 23, 2018

Tugas PBO - Remote AC

10:12 AM Posted by Unknown No comments
Class yang digunakan :

  • RemoteAC Class : berisi fungsi dari remote AC yang buat seperti menaikkan temperatur, menurunkan temperatur, mengganti mode AC, dll
  • ModeAC Class : berisi fungsi dari menu pilihan untuk mode AC
  • mainRemote Class : menghubungkan class mainRemote dan ModeAC atau dengan kata lain fungsi untuk menjalankan Remote AC yang buat

  • Remote AC Class
 /**  
  * Write a description of enum RemoteAC here.  
  *  
  * @author Bima S. Ramadhan  
  * @version 1.0  
  */  
 public class RemoteAC  
 {   
   private static final String SWING_ON = "ON ";  
   private static final String SWING_OFF = "OFF";  
   private static final int MAX_TEMP_LIMIT = 30;  
   private static final int MIN_TEMP_LIMIT = 16;  
   private static final int MAX_SPEED_LIMIT = 3;  
   private static final int MIN_SPEED_LIMIT = 1;  
   private int mTemp, mSpeed;   
   private ModeAC mMode;  
   private boolean mIsSwing;  
   public RemoteAC() {  
     mMode = ModeAC.AUTO;  
     mSpeed = 1;  
     mIsSwing = false;  
     mTemp = 20;  
   }  
   public void tempUp() {  
     if(mTemp == MAX_TEMP_LIMIT) {  
       showError("Temperatur sudah mencapai batas maksimum");  
       return;  
     }  
     mTemp++;  
     showDisplay();  
   }  
   public void tempDown() {  
     if(mTemp == MIN_TEMP_LIMIT) {  
       showError("Temperatur sudah mencapai batas minimum");   
       return;  
     }  
     mTemp--;  
     showDisplay();  
   }  
   public void setMode(int mode){  
     if(mode < 1 || mode > 5) {  
       showError("Input yang anda masukkan salah");  
       return;  
     }  
     mMode = ModeAC.fromInt(mode);  
     showDisplay();  
   }  
   public void speedUp() {  
     if(mSpeed == MAX_SPEED_LIMIT) {  
       showError("Kecepatan sudah mencapai batas maksimum");  
       return;  
     }  
     mSpeed++;  
     showDisplay();  
   }  
   public void speedDown() {  
     if(mSpeed == MIN_SPEED_LIMIT) {  
       showError("Kecepatan sudah mencapai batas minimum");  
       return;  
     }  
     mSpeed--;  
     showDisplay();  
   }  
   public void switchSwing() {  
     mIsSwing = !mIsSwing;  
     showDisplay();  
   }  
   private String getSwingString() {  
     return mIsSwing ? SWING_ON : SWING_OFF;   
   }  
   private void showError(String message) {  
     System.out.println(message);  
   }  
   public void showDisplayMode(){   
     System.out.println(" INI MENU MODE");  
     System.out.println("||  1.AUTO  ||");   
     System.out.println("||  2.COOL  ||");   
     System.out.println("||  3.DRY   ||");   
     System.out.println("||  4.HEAT  ||");  
   }  
   public void showDisplay(){  
     System.out.println("|======================|");   
     System.out.println("|---- INI REMOT AC ----|");   
     System.out.println("|    " + mTemp + " °C     |");   
     System.out.println("|   SPEED  " + mSpeed + "    |");  
     System.out.println("|   MODE = " + mMode.getValueString() +"   |");   
     System.out.println("|   SWING = "+ getSwingString() +"   |");   
     System.out.println("|-------- MENU --------|");   
     System.out.println("|  1.Temperature ↑  |");   
     System.out.println("|  2.Temperature ↓  |");   
     System.out.println("|  3.Ubah Mode    |");   
     System.out.println("|  4.Switch Swing  |");  
     System.out.println("|  5.Fan Speed ↑   |");  
     System.out.println("|  6.Fan Speed ↓   |");  
     System.out.println("|  0.Matikan AC   |");   
     System.out.println("|======================|");   
     System.out.println("|======================|");   
     System.out.println();  
   }  
 }  

  • ModeAC Class
 /**  
  * Write a description of enum ModeAC here.  
  *  
  * @author Bima S. Ramadhan  
  * @version 1.0  
  */  
 public enum ModeAC  
 {  
   AUTO(1, "AUTO"), COOL(2, "COOL"), DRY(3, "DRY"), HEAT(4, "HEAT");  
   private final int mValue;  
   private final String mValueString;  
   ModeAC(int value, String valueString){  
     mValue = value;  
     mValueString = valueString;  
   }  
   public int getValue(){  
     return mValue;  
   }  
   public String getValueString(){  
     return mValueString;  
   }  
   public static ModeAC fromInt(int value) {  
     switch(value) {  
       case 1:  
         return ModeAC.AUTO;  
       case 2:  
         return ModeAC.COOL;  
       case 3:  
         return ModeAC.DRY;  
       case 4:  
         return ModeAC.HEAT;  
       default:  
         return ModeAC.AUTO;  
     }  
   }  
 }  

  • mainRemote Class
 /**  
  * Write a description of enum mainRemote here.  
  *  
  * @author Bima S. Ramadhan  
  * @version 1.0  
  */  
 import java.util.Scanner;  
 public class mainRemote  
 {  
   public static void mainRemote(){  
     Scanner scan = new Scanner(System.in);  
     int input, mode;  
     System.out.println("Masukkan 0 untuk menyalakan AC");  
     RemoteAC remote = new RemoteAC();  
     input = scan.nextInt();  
     while(input != 0) {  
       System.out.println("Masukkan 0 untuk menyalakan AC");  
       input = scan.nextInt();  
     }  
     remote.showDisplay();  
     input = -1;  
     while(input != 0){  
       input = scan.nextInt();  
       switch(input) {  
         case 1:  
           remote.tempUp();  
           break;  
         case 2:  
           remote.tempDown();  
           break;  
         case 3:  
           remote.showDisplayMode();  
           mode = scan.nextInt();  
           remote.setMode(mode);  
           break;  
         case 4:  
           remote.switchSwing();  
           break;  
         case 5:   
           remote.speedUp();  
           break;  
         case 6:  
           remote.speedDown();  
           break;  
       }  
     }  
     System.exit(0);  
   }  
 }  


  • Cara Kerja
  1.  Tampilan awal adalah seperti di bawah. pertama kita harus memasukkan 0 untuk menyalakan AC

  2. Setelah itu akan muncul tampilan remot AC beserta menu-menunya

  3. Apabila ketik 1 maka suhu AC akan naik dari 20°C menjadi 21°C

  4. Apabila kita ketik 2 maka suhu AC turun dan kembali lagi menjadi 20°C

  5. Saat kita masukkan 3 maka akan muncul pilihan mode AC. disini kita masukkan 2 mengubahnya menjadi mode COOL dan kemudia akan muncul di tampilan bahwa mode AC telah berubah menjadi COOL yang sebelumnya adalah AUTO
  6. Untuk mengubah switch menjadi ON maka kita masukkan 4 dan lihat swing yang awalnya OFF menjadi ON

  7. Untuk mempercapat dan memperlambat fan AC bisa kita masukkan 5 atau 6


Tampilan di BLUEJ

0 comments:

Post a Comment