Skip to main content

House Drawing

Dalam pembuatan gambar Rumah digunakan beberapa library Java sebagai penunjang pemrograman grafis seperti :
  1. import javax.swing.*
  2. import java.awt.*
  3. import java.util.List
  4. 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:
  1. Circle
  2. Square
  3. Triangle
  4. 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
{
    private int radius;
    private int centerx;
    private int centery;
    private String color;
    private boolean isVisible;
 
    public Circle()
    {
        radius = 50;
        centerx = 0;
        centery = 0;
        color = "yellow";
        isVisible = true;
     
        draw();

    }
 
    public void SetRadius(int r)
    {
        radius = r;
    }
 
    public void SetCenter(int x, int y)
    {
        centerx = x;
        centery = y;
    }
 
    public double Circumference()
    {
        return 2*3.14*radius;
    }
 
    public double Area()
    {
        return 3.14*radius*radius;
    }
 
    public void moveTo(int x, int y)
    {
        erase();
        centerx = x;
        centery = y;
        draw();
    }
 
    public void makeVisible()
    {
        isVisible = true;
        draw();
    }
 
    public void makeInvisible()
    {
        erase();
        isVisible = false;
    }
 
    public void moveRight()
    {
        moveHorizontal(20);
    }
 
    public void moveLeft()
    {
        moveHorizontal(-20);
    }
 
    public void moveUp()
    {
        moveVertical(-20);
    }
 
    public void moveDown()
    {
        moveVertical(20);
    }
 
 
    public void moveHorizontal(int distance)
    {
        erase();
        centerx += distance;
        draw();
    }
 
    public void moveVertical(int distance)
    {
        erase();
        centery += distance;
        draw();
    }
 
    public void slowMoveHorizontal(int distance)
    {
        int delta;
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centerx += delta;
            draw();
        }
    }
 
    public void slowMoveVertical(int distance)
    {
        int delta;
     
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centery += delta;
            draw();
        }
         
    }
 
    public void changeSize(int newRadius)
    {
        erase();
        radius = newRadius;
        draw();
    }
 
    public void changeColor(String newColor)
    {
        color = newColor;
        draw();
    }
 
 
    private void draw()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.draw(this, color, new Ellipse2D.Double(centerx, centery, 2*radius, 2*radius));
         
            canvasobj.wait(10);
        }
    }
 
    private void erase()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.erase(this);
        }
    }
 
}

Source code Class Square
import java.awt.*;
/**
 * Write a description of class Square here.
 *
 * @author Satria Ade Veda Karuniawan
 * @version version 1.0
 */
public class Square
{
    private int side;
    private int centerx;
    private int centery;
    private String color;
    private boolean isVisible;
 
    public Square()
    {
        side = 25;
        centerx = 50;
        centery = 0;
        color = "blue";
        isVisible = true;
        draw();

    }
 
    public void SetSide(int s)
    {
        side = s;
    }
 
    public void SetCenter(int x, int y)
    {
        centerx = x;
        centery = y;
    }
 
 
    public double Circumference()
    {
        return 4 * side;
    }
 
    public double Area()
    {
        return side * side;
    }
 
    public void moveTo(int x, int y)
    {
        erase();
        centerx = x;
        centery = y;
        draw();
    }
 
    public void makeVisible()
    {
        isVisible = true;
        draw();
    }
 
    public void makeInvisible()
    {
        erase();
        isVisible = false;
    }
 
    public void moveRight()
    {
        moveHorizontal(20);
    }
 
    public void moveLeft()
    {
        moveHorizontal(-20);
    }
 
    public void moveUp()
    {
        moveVertical(-20);
    }
 
    public void moveDown()
    {
        moveVertical(20);
    }
 
 
    public void moveHorizontal(int distance)
    {
        erase();
        centerx += distance;
        draw();
    }
 
    public void moveVertical(int distance)
    {
        erase();
        centery += distance;
        draw();
    }
 
    public void slowMoveHorizontal(int distance)
    {
        int delta;
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centerx += delta;
            draw();
        }
    }
 
    public void slowMoveVertical(int distance)
    {
        int delta;
     
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centery += delta;
            draw();
        }
         
    }
 
    public void changeSize(int newSide)
    {
        erase();
        side = newSide;
        draw();
    }
 
    public void changeColor(String newColor)
    {
        color = newColor;
        draw();
    }
 
 
    private void draw()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.draw(this, color, new Rectangle(centerx, centery, side, side));
         
            canvasobj.wait(10);
        }
    }
 
    private void erase()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.erase(this);
        }
    }
 
}

Source code Class Triangle
import static java.lang.Math.sqrt;
import java.awt.*;
/**
 * Write a description of class Triangle here.
 *
 * @author Satria Ade Veda Karuniawan
 * @version version 1.0
 */
public class Triangle
{
    private int bottom;
    private int height;
    private double hypo;
    private int centerx;
    private int centery;
    private String color;
    private boolean isVisible;
 
    public Triangle()
    {
        bottom = 100;
        height = 100;
        centerx = 50;
        centery = 50;
        color = "red";
        isVisible = true;
        draw();
    }
 
    public void SetBottom(int s)
    {
        bottom = s;
    }
 
    public void SetHeight(int h)
    {
        height = h;
    }
 
    public void SetCenter(int x, int y)
    {
        centerx = x;
        centery = y;
    }
 
 
    public double Circumference()
    {
        hypo = Math.sqrt(0.5*bottom*0.5*bottom + height*height);
        return 2*hypo + bottom;
    }
 
    public double Area()
    {
        return 0.5 * bottom * height;
    }
 
    public void moveTo(int x, int y)
    {
        erase();
        centerx = x;
        centery = y;
        draw();
    }
 
    public void makeVisible()
    {
        isVisible = true;
        draw();
    }
 
    public void makeInvisible()
    {
        erase();
        isVisible = false;
    }
 
    public void moveRight()
    {
        moveHorizontal(20);
    }
 
    public void moveLeft()
    {
        moveHorizontal(-20);
    }
 
    public void moveUp()
    {
        moveVertical(-20);
    }
 
    public void moveDown()
    {
        moveVertical(20);
    }
 
 
    public void moveHorizontal(int distance)
    {
        erase();
        centerx += distance;
        draw();
    }
 
    public void moveVertical(int distance)
    {
        erase();
        centery += distance;
        draw();
    }
 
    public void slowMoveHorizontal(int distance)
    {
        int delta;
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centerx += delta;
            draw();
        }
    }
 
    public void slowMoveVertical(int distance)
    {
        int delta;
     
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centery += delta;
            draw();
        }
         
    }
 
    public void changeSize(int newBottom, int newHeight)
    {
        erase();
        bottom = newBottom;
        height = newHeight;
        draw();
    }
 
    public void changeColor(String newColor)
    {
        color = newColor;
        draw();
    }
 
 
    private void draw()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            int[] xpoints = {centerx, centerx + (bottom/2), centerx - (bottom/2)};
            int[] ypoints = {centery, centery + height, centery + height};
            canvasobj.draw(this, color, new Polygon(xpoints, ypoints,3));
            canvasobj.wait(10);
        }
    }
 
    private void erase()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.erase(this);
        }
    }
 
}


Source code Class Rectangles
import java.awt.*;
/**
 * Write a description of class Rectangle here.
 *
 * @author Satria Ade Veda Karuniawan
 * @version version 1.0
 */
public class Rectangles
{
    private int aside;
    private int bside;
    private int centerx;
    private int centery;
    private boolean isVisible;
    private String color;
 
    public Rectangles()
    {
        aside = 100;
        bside = 50;
        centerx = 200;
        centery = 200;
        isVisible = true;
        color = "magenta";
        draw();

    }
 
    public void SetSide(int l, int s)
    {
        aside = l;
        bside = s;
    }
 
    public void SetCenter(int x, int y)
    {
        centerx = x;
        centery = y;
    }
 
 
    public double Circumference()
    {
        return 2*aside + 2*bside;
    }
 
    public double Area()
    {
        return aside * bside;
    }
 
    public void moveTo(int x, int y)
    {
        erase();
        centerx = x;
        centery = y;
        draw();
    }
 
    public void makeVisible()
    {
        isVisible = true;
        draw();
    }
 
    public void makeInvisible()
    {
        erase();
        isVisible = false;
    }
 
    public void moveRight()
    {
        moveHorizontal(20);
    }
 
    public void moveLeft()
    {
        moveHorizontal(-20);
    }
 
    public void moveUp()
    {
        moveVertical(-20);
    }
 
    public void moveDown()
    {
        moveVertical(20);
    }
 
 
    public void moveHorizontal(int distance)
    {
        erase();
        centerx += distance;
        draw();
    }
 
    public void moveVertical(int distance)
    {
        erase();
        centery += distance;
        draw();
    }
 
    public void slowMoveHorizontal(int distance)
    {
        int delta;
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centerx += delta;
            draw();
        }
    }
 
    public void slowMoveVertical(int distance)
    {
        int delta;
     
        if(distance < 0)
        {
            delta = -1;
            distance = -distance;
        }
        else
        {
            delta = 1;
        }
     
        for(int i = 0; i < distance; i++)
        {
            centery += delta;
            draw();
        }
         
    }
 
    public void changeSize(int newASide, int newBSide)
    {
        erase();
        aside = newASide;
        bside = newBSide;
        draw();
    }
 
    public void changeColor(String newColor)
    {
        color = newColor;
        draw();
    }
 
 
    private void draw()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.draw(this, color, new Rectangle(centerx, centery, aside, bside));
         
            canvasobj.wait(10);
        }
    }
 
    private void erase()
    {
        if(isVisible)
        {
            Canvas canvasobj = Canvas.getCanvas();
            canvasobj.erase(this);
        }
    }

}

Source code Class Canvas
import javax.swing.*;
import java.awt.*;
import java.util.List;
import java.util.*;

/**
 * Write a description of class Canvas here.
 *
 * @author Satria Ade Veda Karuniawan
 * @version version 1.0
 */

public class Canvas
{
    private static Canvas canvasSingleton;
 
    public static Canvas getCanvas()
    {
        if(canvasSingleton == null)
        {
            canvasSingleton = new Canvas("House", 1000, 750, Color.black);
        }
        canvasSingleton.setVisible(true);
        return canvasSingleton;
    }
 
    private JFrame frame;
    public CanvasPane canvas;
    private Graphics2D graphic;
    private Color backgroundColor;
    private Image canvasImage;
    private List<Object>objects;
    private HashMap<Object, ShapeDescription> shapes;
 
    //Fungsi untuk membuat Canvas
    private Canvas(String title, int width, int height, Color bgColour)
    {
        frame = new JFrame();
        canvas = new CanvasPane();
        frame.setContentPane(canvas);
        frame.setTitle(title);
        canvas.setPreferredSize(new Dimension(width, height));
        backgroundColor = bgColour;
        frame.pack();
        objects = new ArrayList<Object>();
        shapes = new HashMap<Object, ShapeDescription>();
    }
 
 
    //Memunculkan Canvas ke depan layar
    public void setVisible(boolean visible)
    {
        if(graphic == null)
        {
            Dimension size = canvas.getSize();
            canvasImage = canvas.createImage(size.width, size.height);
            graphic = (Graphics2D)canvasImage.getGraphics();
            graphic.setColor(backgroundColor);
            graphic.fillRect(0, 0, size.width, size.height);
            graphic.setColor(Color.black);
        }
        frame.setVisible(visible);
    }
 
 
    //Menggambar bentuk tertentu pada canvas
    public void draw(Object referenceObject, String color, Shape shape)
    {
        objects.remove(referenceObject);
        objects.add(referenceObject);
        shapes.put(referenceObject, new ShapeDescription(shape, color));
        redraw();
    }
 
 
    //Menghapus bentuk tertentu pada screen
    public void erase(Object referenceObject)
    {
        objects.remove(referenceObject);
        shapes.remove(referenceObject);
        redraw();
    }
 
    //Set foreground colour
    public void setForegroundColor(String colorString)
    {
        if(colorString.equals("white"))
        {
            graphic.setColor(Color.white);
        }
        else if(colorString.equals("magenta"))
        {
            graphic.setColor(Color.magenta);
        }
        else if(colorString.equals("green"))
        {
            graphic.setColor(Color.green);
        }
        else if(colorString.equals("yellow"))
        {
            graphic.setColor(Color.yellow);
        }
        else if(colorString.equals("blue"))
        {
            graphic.setColor(Color.blue);
        }
        else if(colorString.equals("red"))
        {
            graphic.setColor(Color.red);
        }
        else if(colorString.equals("brown"))
        {
            graphic.setColor(new Color(139,69,19));
        }
        else
        {
            graphic.setColor(Color.black);
        }
    }

 
    //Delay
    public void wait(int milliseconds)
    {
        try
        {
            Thread.sleep(milliseconds);
        }
        catch(Exception e)
        {
         
        }
    }
 
    //Gambar ulang
    private void redraw()
    {
        erase();
        for(Object shape : objects)
        {
            shapes.get(shape).draw(graphic);
        }
        canvas.repaint();
     
    }
 
    private void erase()
    {
        Color original = graphic.getColor();
        graphic.setColor(backgroundColor);
        Dimension size = canvas.getSize();
        graphic.fill(new Rectangle(0, 0, size.width, size.height));
        graphic.setColor(original);
    }
 
 
    private class CanvasPane extends JPanel
    {
        public void paint(Graphics g)
        {
            g.drawImage(canvasImage, 0, 0, null);
        }
    }
 
    private class ShapeDescription
    {
        private Shape shape;
        private String colorString;
     
        public ShapeDescription(Shape shape, String color)
        {
            this.shape = shape;
            colorString = color;
        }
     
        public void draw(Graphics2D graphic)
        {
            setForegroundColor(colorString);
            graphic.fill(shape);
        }
    }
}

Source code Class House Picture
/**
 * Write a description of class HousePicture here.
 *
 * @author Satria Ade Veda Karuniawan
 * @version version 1.0
 */
public class HousePicture
{
 
    public HousePicture()
    {
        DrawAll();
     
    }
 
    public void DrawAll()
    {
        DrawHouse();
        DrawFlag();
        DrawTree();
        DrawMoon();
        DrawSky();
    }
 
 
    public void DrawHouse()
    {
        Square Jendela1 = new Square();
        Square Jendela2 = new Square();
     
        Rectangles Pintu = new Rectangles();
        Rectangles Cerobong = new Rectangles();
        Rectangles BasisRumah = new Rectangles();
     
        int PositionX = 350;
        int PositionY = 450;
        BasisRumah.moveTo(PositionX, PositionY);
        BasisRumah.changeSize(350,200);
        BasisRumah.changeColor("yellow");
     
        Pintu.moveTo(500,560);
        Pintu.changeSize(50,100);
        Pintu.changeColor("brown");
     
        Jendela1.moveTo(380,560);
        Jendela1.changeSize(70);
        Jendela1.changeColor("white");
     
        Jendela2.moveTo(600,560);
        Jendela2.changeSize(70);
        Jendela2.changeColor("white");
     
        Triangle Atap2 = new Triangle();
        Triangle Atap1 = new Triangle();
     
        Cerobong.moveTo(620,340);
        Cerobong.changeSize(25,70);
        Cerobong.changeColor("brown");
     
        Atap2.moveTo(520,320);
        Atap2.changeSize(500,150);
        Atap2.changeColor("red");
     
        Atap1.moveTo(524,370);
        Atap1.changeSize(350,100);
        Atap1.changeColor("yellow");
     
     
     
    }
 
    public void DrawFlag()
    {
        Rectangles TiangBendera1 = new Rectangles();
        Rectangles TiangBendera2 = new Rectangles();
        Rectangles BenderaIndonesia1 = new Rectangles();
        Rectangles BenderaIndonesia2 = new Rectangles();
        Rectangles BenderaJepang = new Rectangles();
        Circle RedJapan = new Circle();
     
        int InitialPositionX = 250;
        int InitialPositionY = 500;
        int FlagSizeX = 50;
        int FlagSizeY = 10;
     
        TiangBendera1.changeSize(5,150);
        TiangBendera1.moveTo(InitialPositionX,InitialPositionY);
        TiangBendera1.changeColor("brown");
     
        BenderaIndonesia1.moveTo(InitialPositionX,InitialPositionY);
        BenderaIndonesia2.moveTo(InitialPositionX,InitialPositionY+FlagSizeY);
        BenderaIndonesia1.changeSize(FlagSizeX,FlagSizeY);
        BenderaIndonesia2.changeSize(FlagSizeX,FlagSizeY);
        BenderaIndonesia1.changeColor("red");
        BenderaIndonesia2.changeColor("white");
     
        TiangBendera2.changeSize(5,150);
        TiangBendera2.moveTo(InitialPositionX+500, InitialPositionY);
        TiangBendera2.changeColor("brown");
     
        BenderaJepang.moveTo(InitialPositionX + 5 + 500, InitialPositionY);
        BenderaJepang.changeSize(FlagSizeX,FlagSizeY*2);
        BenderaJepang.changeColor("white");
        RedJapan.moveTo(InitialPositionX + FlagSizeX + FlagSizeX/3 + 453, InitialPositionY + FlagSizeY/2 - 2);
        RedJapan.changeSize(FlagSizeY-3);
        RedJapan.changeColor("red");
    }
 
    public void DrawTree()
    {
        Rectangles BatangPohon = new Rectangles();
        Rectangles BatangPohon2 = new Rectangles();
        int PositionX = 100;
        int PositionY = 600;
        int LebarPohon = 40;
        int TinggiPohon = 150;
     
        BatangPohon.moveTo(PositionX, PositionY);
        BatangPohon.changeSize(LebarPohon, TinggiPohon);
        BatangPohon.changeColor("brown");
     
        BatangPohon2.moveTo(PositionX+770, PositionY);
        BatangPohon2.changeSize(LebarPohon, TinggiPohon);
        BatangPohon2.changeColor("brown");
     
        Triangle DaunPohon = new Triangle();
        Triangle DaunPohon2 = new Triangle();
        Triangle DaunPohon3 = new Triangle();
     
        Triangle DaunPohon4 = new Triangle();
        Triangle DaunPohon5 = new Triangle();
        Triangle DaunPohon6 = new Triangle();
     
        DaunPohon.moveTo(PositionX+20, PositionY-100);
        DaunPohon.changeSize(LebarPohon*4, TinggiPohon);
        DaunPohon.changeColor("green");
     
        DaunPohon2.moveTo(PositionX+20, PositionY-200);
        DaunPohon2.changeSize(LebarPohon*4, TinggiPohon);
        DaunPohon2.changeColor("green");
     
        DaunPohon3.moveTo(PositionX+20, PositionY-300);
        DaunPohon3.changeSize(LebarPohon*4, TinggiPohon);
        DaunPohon3.changeColor("green");
     
        DaunPohon4.moveTo(PositionX+20+770, PositionY-100);
        DaunPohon4.changeSize(LebarPohon*4, TinggiPohon);
        DaunPohon4.changeColor("green");
     
        DaunPohon5.moveTo(PositionX+20+770, PositionY-200);
        DaunPohon5.changeSize(LebarPohon*4, TinggiPohon);
        DaunPohon5.changeColor("green");
     
        DaunPohon6.moveTo(PositionX+20+770, PositionY-300);
        DaunPohon6.changeSize(LebarPohon*4, TinggiPohon);
        DaunPohon6.changeColor("green");
     
     
    }
 
    public void DrawMoon()
    {
        Circle Bulan = new Circle();
     
        int PositionX = 700;
        int PositionY = 50;
        int Radius = 100;
     
        Bulan.changeSize(Radius);
        Bulan.moveTo(PositionX, PositionY);
        Bulan.changeColor("white");
     
    }
 
    public void DrawSky()
    {
        Square Star1 = new Square();
        Square Star2 = new Square();
        Square Star3 = new Square();
        Square Star4 = new Square();
        Square Star5 = new Square();
        Square Star6 = new Square();
     
        Star1.moveTo(72,200);
        Star1.changeSize(15);
        Star1.changeColor("white");
     
        Star2.moveTo(500,171);
        Star2.changeSize(15);
        Star2.changeColor("white");
     
        Star3.moveTo(300,200);
        Star3.changeSize(15);
        Star3.changeColor("white");
     
        Star4.moveTo(666,300);
        Star4.changeSize(15);
        Star4.changeColor("white");
     
        Star5.moveTo(200,101);
        Star5.changeSize(15);
        Star5.changeColor("white");
     
        Star6.moveTo(52,11);
        Star6.changeSize(15);
        Star6.changeColor("white");
    }
}

Gambar hasil run HousePicture

Comments

Popular posts from this blog

Technical Support AI

Technical Support - Artificial Intelligence (*From now on, I'll try my best to explain about all of my Project using English) For this project, I made 3 classes to control the Bot Mechanism (Referencing to Objects-First-with-Java-A-Practical-Introduction-Using-BlueJ-David-J-Barnes pages 155) : InputReader Class (Used for detect or to take any user input) SupportSystem Class (As a main function connecting the user input and database) Responder Class (Handling AI-Output and Its role as 'mini' database) Current Version : 1.2 In the future, I'm expecting to have a bigger Responder's Database and would be separated from the Class itself, so it will be easier to make some modification inside the AI's Database and easier to manage. And then i'll try to improve the UX Design inside, so that the user can have a feeling about how 'Human' this AI. InputReader Class In this class, pretty much the same as how the name of the class is writt...

Fox And Rabbit

Implementasi Fox and Rabbit berupa simulasi hubungan antara predator (dalam hal ini Fox) dan prey (dalam hal ini Rabbit), digunakan 9 class : Simulator (sebagai class utama yang digunakan untuk melakukan simulasi) SimulatorView (sebagai pengatur tampilan yang diimplementasikan pada class Simulator) Field (sebagai class yang mengatur dan memanipulasi bidang simulasi yang telah ditentukan) FieldStats (sebagai class berupa value holder yang menyimpan kondisi dari Field) Counter (sebagai class penghitung seperti increment dan reset value) Location (sebagai class yang memiliki informasi posisi pada Field) Randomizer (sebagai class yang mengatur nilai random) Fox (sebagai class simulator yang bertindak sebagai predator) Rabbit (sebagai class simulator yang bertindak sebagai prey) Source Code Simulator import java.util.Random; import java.util.List; import java.util.ArrayList; import java.util.Iterator; import java.awt.Color; import java.util.concurrent.TimeUnit; impo...

Ticketing Machine

Pembuatan simulasi Ticketing Machine menggunakan OOP Class yang digunakan di dalam Project terdiri atas : Main class TicketMachine class Destination class Library yang digunakan di dalam Project adalah java.util.Scanner Source code Destination class /**  * A class which describes Destination  *  * @author Satria Ade Veda Karuniawan  * @version version 1.0  */ public class Destination {     private String Station;     private int PriceAdult;     private int PriceChild;     //Struct destination       public Destination(String name)     {         Station = name;         PriceAdult = 0;         PriceChild = 0;     }       public void SetInfo(int pa, int pc)     {         PriceAdult = pa;         PriceChild = pc;   ...