Skip to main content

Remote AC

Pembuatan simulasi remote AC menggunakan konsep PBO dengan BlueJ

Class yang digunakan :

  • Main Class : Class utama yang berfungsi sebagai connector antara Process Class dengan Display Class.
  • Process Class : Process Class menghandle seluruh algoritma untuk simulasi remote AC seperti saat tombol remote AC ditekan. Contoh : Menaikkan temperatur, Mengubah mode, dll.
  • Display Class : Display Class menghandle seluruh komponen yang bertindak sebagai informasi yang nantinya akan dioutput ke console.

Workspace dari BlueJ


Source code Main Class

import java.util.Scanner;
/**
 * Sebagai connector Process dan Display
 *
 * @author Satria Ade Veda Karuniawan
 * @version Version 1.0
 */
public class Main
{
    public static Process pobj = new Process();
    public static Display dobj = new Display();
 
    public static void main(String args[])
    {
        Scanner reader = new Scanner(System.in);
        System.out.println("Nyalakan Remote AC? (Y/N)");
     
        //Input Yes or No
        char Input = reader.next().charAt(0);
     
        while(Input != 'Y' && Input != 'N')
        {
            System.out.print('\u000C');
            System.out.println("Error");
            System.out.println("Nyalakan Remote AC? (Y/N)");
            Input = reader.next().charAt(0);
        }
     
        //Jika Input Yes
        if(Input == 'Y')
        {
            int Choice;
            do
            {
            System.out.print('\u000C'); // CLS
         
            dobj.PrintNumber(pobj.GetTemp());
            dobj.PrintInfo(pobj.GetFan(), pobj.GetSwing(), pobj.GetMode());
         
            MenuUtama();
            Choice = reader.nextInt();
         
                switch(Choice)
                {
                    case 2:
                    pobj.UpButtonPressed();
                    break;
                 
                    case 3:
                    pobj.DownButtonPressed();
                    break;
                 
                    case 4:
                    pobj.FanButtonPressed();
                    break;
                 
                    case 5:
                    pobj.SwingButtonPressed();
                    break;
                 
                    case 6:
                    pobj.ModeButtonPressed();
                    break;
                }
         
            }
            while(Choice != 1);
        }
        System.out.print('\u000C');
        System.out.print("TURNED OFF");
        return;
     
    }
 
    public static void MenuUtama()
    {
        System.out.println("1. Turn Off");
        System.out.println("2. Increase Temperature");
        System.out.println("3. Decrease Temperature");
        System.out.println("4. Fan");
        System.out.println("5. Swing");
        System.out.println("6. Mode");
    }
}


Source code Process Class


/**
 * Class yang berisi algoritma dan logika simulasi
 *
 * @author Satria Ade Veda Karuniawan
 * @version Version 1.0
 */
public class Process
{
    private boolean isOn;
    private int temp;
    private int fanspeed;
    private int swing;
    private int mode;
 
    //Default Value
    public Process()
    {
        isOn = false;
        temp = 23;
        fanspeed = 1;
        swing = 30;
        mode = 1;
    }
 
    //Menekan tombol Power
    public void PowerButtonPressed()
    {
        if(isOn)
        {
            isOn = false;
        }
        else
        {
            isOn = true;
        }
    }
 
    //Menekan Up Temperature
    public void UpButtonPressed()
    {
        if(temp < 28)
        {
            temp++;
        }
    }
 
    //Menekan Down Temperature
    public void DownButtonPressed()
    {
        if(temp > 18)
        {
            temp--;
        }
    }
 
    //Menekan Tombol Fan
    public void FanButtonPressed()
    {
        if(fanspeed != 4)
        {
            fanspeed++;
        }
        else
        {
            fanspeed = 1;
        }
    }
 
    //Menekan Tombol Swing
    public void SwingButtonPressed()
    {
        if(swing != 90)
        {
            swing+=30;
        }
        else
        {
            swing = 30;
        }
    }
 
    //Menekan Tombol Mode
    public void ModeButtonPressed()
    {
        if(mode < 3)
        {
            mode++;
        }
        else
        {
            mode = 1;
        }
    }

 
    //Fungsi-Fungsi di bawah untuk mendapatkan value dari tiap variable
    public boolean GetPower()
    {
        return isOn;
    }
 
    public int GetTemp()
    {
        return temp;
    }
 
    public int GetFan()
    {
        return fanspeed;
    }
 
    public int GetSwing()
    {
        return swing;
    }
 
    public int GetMode()
    {
        return mode;
    }
}


Source code Display Class


/**
 * Class yang berisi estetika untuk display output
 *
 * @author Satria Ade Veda Karuniawan
 * @version Version 1.0
 */
public class Display
{
    //Display Temperature
    //Pallet ░▒▓█
    public void PrintNumber(int temp)
    {
        switch(temp)
        {
            case 18:
         
            System.out.println("▓        ░░░░█ █████");
            System.out.println("▓        ░░░░█ █░░░█");
            System.out.println("▓        ░░░░█ █████");
            System.out.println("▓        ░░░░█ █░░░█");
            System.out.println("▓        ░░░░█ █████");
         
            break;
            case 19:
         
            System.out.println("▓        ░░░░█ █████");
            System.out.println("▓        ░░░░█ █░░░█");
            System.out.println("▓        ░░░░█ █████");
            System.out.println("▓        ░░░░█ ░░░░█");
            System.out.println("▓        ░░░░█ █████");
         
         
            break;
         
            case 20:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ █░░░█");
            System.out.println("▓        █████ █░░░█");
            System.out.println("▓        █░░░░ █░░░█");
            System.out.println("▓        █████ █████");
         
            break;
         
            case 21:
         
            System.out.println("▓        █████ ░░░░█");
            System.out.println("▓        ░░░░█ ░░░░█");
            System.out.println("▓        █████ ░░░░█");
            System.out.println("▓        █░░░░ ░░░░█");
            System.out.println("▓        █████ ░░░░█");
         
            break;
            case 22:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ ░░░░█");
            System.out.println("▓        █████ █████");
            System.out.println("▓        █░░░░ █░░░░");
            System.out.println("▓        █████ █████");
         
            break;
            case 23:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ ░░░░█");
            System.out.println("▓        █████ █████");
            System.out.println("▓        █░░░░ ░░░░█");
            System.out.println("▓        █████ █████");
         
            break;
            case 24:
         
            System.out.println("▓        █████ █░░░█");
            System.out.println("▓        ░░░░█ █░░░█");
            System.out.println("▓        █████ █████");
            System.out.println("▓        █░░░░ ░░░░█");
            System.out.println("▓        █████ ░░░░█");
         
            break;
         
            case 25:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ █░░░░");
            System.out.println("▓        █████ █████");
            System.out.println("▓        █░░░░ ░░░░█");
            System.out.println("▓        █████ █████");
         
            break;
            case 26:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ █░░░░");
            System.out.println("▓        █████ █████");
            System.out.println("▓        █░░░░ █░░░█");
            System.out.println("▓        █████ █████");
         
            break;
         
            case 27:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ ░░░░█");
            System.out.println("▓        █████ ░░░░█");
            System.out.println("▓        █░░░░ ░░░░█");
            System.out.println("▓        █████ ░░░░█");
         
            break;
            case 28:
         
            System.out.println("▓        █████ █████");
            System.out.println("▓        ░░░░█ █░░░█");
            System.out.println("▓        █████ █████");
            System.out.println("▓        █░░░░ █░░░█");
            System.out.println("▓        █████ █████");
         
            break;
         
         
        }
    }
 
    //Menu
    public void PrintInfo(int fan, int swing, int mode)
    {
        System.out.println("░░░░░░░░░░░░░░░░░░░░░░░░░░░░░");
        System.out.println("░░░░░░░░░░░░░░░░░░░░░░░░░░░░░");
        System.out.println("FAN SPEED");
        switch(fan)
        {
            case 1:
            System.out.println("████");
            System.out.println("████");
            System.out.println("████");
            break;
         
            case 2:
            System.out.println("████████");
            System.out.println("████████");
            System.out.println("████████");
            break;
         
            case 3:
            System.out.println("████████████");
            System.out.println("████████████");
            System.out.println("████████████");
            break;
         
            case 4:
            System.out.println("████████████████");
            System.out.println("████████████████");
            System.out.println("████████████████");
            break;
        }
     
        System.out.println("");
     
        System.out.println("SWING");
        System.out.println(swing + " Degrees");
        System.out.println("");
     
        switch(mode)
        {
            case 1:
            System.out.println("COOL MODE");
            break;
            case 2:
            System.out.println("DRY MODE");
            break;
            case 3:
            System.out.println("POWERSAVER MODE");
            break;
        }
     
        System.out.println("░░░░░░░░░░░░░░░░░░░░░░░░░░░░░");
        System.out.println("░░░░░░░░░░░░░░░░░░░░░░░░░░░░░");
    }
}


SIMULASI

  • Saat program dijalankan
  • Saat Y diinputkan
  • Saat angka 1 diinputkan
  • Saat angka 2 diinputkan
  • Saat angka 3 diinputkan
  • Saat angka 4 diinputkan
  • Saat angka 5 diinputkan
  • Saat angka 6 diinputkan


















Comments

Popular posts from this blog

House Drawing

Dalam pembuatan gambar Rumah digunakan beberapa library Java sebagai penunjang pemrograman grafis seperti : import javax.swing.* import java.awt.* import java.util.List import java.util.* Lalu class - class yang digunakan dalam pembuatan gambar Rumah ini terbagi menjadi : Shape class, digunakan untuk mengatur bentuk yang ingin ditampilkan. Terdiri atas: Circle Square Triangle Rectangles Library class, bernama Canvas, berfungsi sebagai utility yang memungkinkan untuk memunculkan gambar. Main class, bernama HousePicture, berfungsi untuk menyatukan class-class yang ada dan melakukan function serta variable control seperti ukuran, warna, dan posisi yang ingin dimunculkan pada Canvas. Tampilan workspace : Source code Class Circle import java.awt.*; import java.awt.geom.*; /**  * Write a description of class Circle here.  *  * @author Satria Ade Veda Karuniawan  * @version version 1.0  */ public class Circle {   ...

Image Viewer GUI 4.0 (Final Exam Project)

Rancangan Interface (Workspace) Project lanjutan dari Image Viewer GUI 3.0 dengan implementasi menggunakan BlueJ, hal yang telah selesai diimplementasikan adalah : Frame Panel Button Label dll Dengan daftar class utama sebagai berikut : ImageViewer : merupakan class utama yang berfungsi untuk menampilkan dan menginisialisasi GUI (main class) OFImage : merupakan class yang mendefinisikan objek dari gambar ImagePanel : merupakan class yang salah satunya bertindak sebagai canvas gambar (berbeda dengan ImageViewer, ImagePanel hanya mengatur bagian panel foto saja) ImageFileManager : merupakan class yang bertindak sebagai file handler Dengan daftar inherited class ( Filter ) sebagai berikut : DarkerFilter : class Filter yang berfungsi untuk menggelapkan foto LighterFilter : class Filter yang berfungsi untuk menerangkan foto ThresholdFilter : class Filter yang berfungsi untuk merubah warna foto menjadi 3 tingkatan warna dari grayscale InvertFilter : class Fil...

Clock

Pembuatan Clock menggunakan BlueJ Class yang digunakan sebagai berikut : Main Clock : digunakan sebagai penghubung antara NumberDisplay dan ClockMechanics NumberDisplay : digunakan sebagai format output number pada jam ClockMechanics : digunakan sebagai pengatur mekanisme jam Main Clock Source Code import java.util.concurrent.TimeUnit; /**  * MainClock class as connector NumberDisplay and ClockMechanics class  *  * @author Satria Ade Veda Karuniawan  * @version Version 1.0  */ public class MainClock {     NumberDisplay numberobj = new NumberDisplay();     ClockMechanics clockobj = new ClockMechanics();     int Marker = 0;     private String[] time_now = {"","","","","","",""};     private String[] converter = new String[7];     public MainClock()     {         while(true)         {            ...