Senin, 17 September 2018

Tugas 3 PBO-A Membuat Ticket Machine

Setelah membuat gambar grafik pemandangan dengan bahasa Java, sekarang saatnya untuk membuat simulai Ticket Machine.
Disini saya membuat dua class yaitu :

1. IntMain
2. TicketMachine

Berikut adalah sourcecodenya:


 /**  
  * IntMain sebagai fungsi utama  
  *  
  * @author (Lutfiyanti)  
  * @version (17-09-2018)  
  */  
 import java.util.Scanner;  
 public class IntMain  
 {    
   public static boolean isPrinted;   
   public static void main(String args[])  
   {  
     Scanner scan = new Scanner(System.in);  
     int cost, menu;  
     System.out.println("Masukkan harga tiket \n");  
     cost = scan.nextInt();  
     TicketMachines ticket=new TicketMachines(cost);   
     System.out.println("1. Cek harga");  
     System.out.println("2. Cek Saldo");  
     System.out.println("3. Masukkan uang");  
     System.out.println("4. Cetak Tiket");  
     System.out.println("5. Keluar Menu");  
     while (isPrinted!=true){  
     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;   
       case 5 :  
       isPrinted=true;  
       break;  
     }  
   }  
 }  
 }  


 <pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikYulFNUdA3-YJddXEtvzeM-gEvY87bLlhMSkND245UMcg3jJEB5CWiefXC1USUZPlzMvXABQH37EZaXPngk_ZjRbOzTF7OJvUPquZpiWzvFKhkDPvdD7rcQrtxBauk7AzvamAufhPgXLK/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;"><code style="color:#000000;word-wrap:normal;"> /**   
  * Ticket Machines   
  *   
  * @author (Lutfiyanti)   
  * @version (17-09-2018)   
  */   
  public class TicketMachines   
  {   
   // 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;    
   /**   
   * create a machine that issues tickets of the given price.   
   * Note that the price must be greater than zero, and    
   * there are no check to ensure this.   
   */   
   public TicketMachines(int ticketCost)   
   {   
    price = ticketCost;   
    balance = 0;   
    total = 0;    
   }   
   /**   
   * *Return the price of a ticket.   
   */   
   public int getPrice()   
   {   
    System.out.println("Harga Tiket Anda = "+price);   
    return price;   
   }   
   /**   
   * Return the amount of money already inserted for the    
   * next ticket   
   */   
   public int getBalance()   
   {   
    System.out.println("Saldo anda = "+balance);   
    return balance;   
   }   
   /**   
   * Receave an amount of money in cents from a customer.   
   */   
   public void insertMoney(int amount)   
   { if (amount&gt;=price){   
    balance = balance +amount;   
    System.out.println("Sisa uang anda "+(balance-price)+" cents");   
   }   
   else {   
    System.out.println("Masukkan jumlah uang sama dengan atau melebihi " +(price)+" cents");   
   }   
   }   
   /**   
   * Print a ticket.   
   * Update the total collected and   
   * reduce the balance to zero.   
   */   
   public void printTicket()   
   {   
    if(balance&gt;price)   
    {   
    //simulate the printing of ticket.   
    System.out.println("#############");   
    System.out.println("# The BlueJ Line");   
    System.out.println("#Ticket");   
    System.out.println("# "+ price + " cents.");   
    System.out.println("#############");   
    System.out.println();   
    }   
    else   
    {   
     System.out.println("Anda harus memiliki saldo setidaknya setidaknya : "+(price)+" cents");   
    }   
   }   
  }   
 </code></pre>  


Berikut adalah outputnya dengan dua case yaitu uang yang dimasukkan kurang dan berlebih :




Nama : Lutfiyanti
NRP : 05111740000036
Kelas : PBO-B

Minggu, 16 September 2018

PBO-B Tugas Rumah Menggambar Pemandangan

Setelah mempelajari bagaimana menghitung Luas bangun tiga dimensi dengan Java, sekarang adalah saatnya belajar membuat grafik pemandangan dengan bahasa java.

Hal yang paling penting dilakukan adalah membuat canvas. Berikut adalah source code nya :


 import javax.swing.*;    
  import java.awt.*;    
  import java.util.List;    
  import java.util.*;    
  public class Canvas    
  {    
   // Note: The implementation of this class (specifically the handling of    
   // shape identity and colors) is slightly more complex than necessary. This    
   // is done on purpose to keep the interface and instance fields of the    
   // shape objects in this project clean and simple for educational purposes.    
   private static Canvas canvasSingleton;    
   /**    
   * Factory method to get the canvas singleton object.    
   */    
   public static Canvas getCanvas()    
   {    
   if(canvasSingleton == null) {    
    canvasSingleton = new Canvas("BlueJ Shapes Demo", 600, 400,    
     Color.white);    
   }    
   canvasSingleton.setVisible(true);    
   return canvasSingleton;    
   }    
   // ----- instance part -----    
   private JFrame frame;    
   private CanvasPane canvas;    
   private Graphics2D graphic;    
   private Color backgroundColour;    
   private Image canvasImage;    
   private List<Object> objects;    
   private HashMap<Object, ShapeDescription> shapes;    
   /**    
   * Create a Canvas.    
   * @param title title to appear in Canvas Frame    
   * @param width the desired width for the canvas    
   * @param height the desired height for the canvas    
   * @param bgClour the desired background colour of the 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));    
   backgroundColour = bgColour;    
   frame.pack();    
   objects = new ArrayList<Object>();    
   shapes = new HashMap<Object, ShapeDescription>();    
   }    
   /**    
   * Set the canvas visibility and brings canvas to the front of screen    
   * when made visible. This method can also be used to bring an already    
   * visible canvas to the front of other windows.    
   * @param visible boolean value representing the desired visibility of    
   * the canvas (true or false)    
   */    
   public void setVisible(boolean visible)    
   {    
   if(graphic == null) {    
    // first time: instantiate the offscreen image and fill it with    
    // the background colour    
    Dimension size = canvas.getSize();    
    canvasImage = canvas.createImage(size.width, size.height);    
    graphic = (Graphics2D)canvasImage.getGraphics();    
    graphic.setColor(backgroundColour);    
    graphic.fillRect(0, 0, size.width, size.height);    
    graphic.setColor(Color.black);    
   }    
   frame.setVisible(visible);    
   }    
   /**    
   * Draw a given shape onto the canvas.    
   * @param referenceObject an object to define identity for this shape    
   * @param color  the color of the shape    
   * @param shape  the shape object to be drawn on the canvas    
   */    
   // Note: this is a slightly backwards way of maintaining the shape    
   // objects. It is carefully designed to keep the visible shape interfaces    
   // in this project clean and simple for educational purposes.    
   public void draw(Object referenceObject, String color, Shape shape)    
   {    
   objects.remove(referenceObject); // just in case it was already there    
   objects.add(referenceObject); // add at the end    
   shapes.put(referenceObject, new ShapeDescription(shape, color));    
   redraw();    
   }    
   /**    
   * Erase a given shape's from the screen.    
   * @param referenceObject the shape object to be erased    
   */    
   public void erase(Object referenceObject)    
   {    
   objects.remove(referenceObject); // just in case it was already there    
   shapes.remove(referenceObject);    
   redraw();    
   }    
   /**    
   * Set the foreground colour of the Canvas.    
   * @param newColour the new colour for the foreground of the Canvas    
   */    
   public void setForegroundColor(String colorString)    
   {    
   if(colorString.equals("red"))    
    graphic.setColor(Color.red);    
   else if(colorString.equals("black"))    
    graphic.setColor(Color.black);    
   else if(colorString.equals("blue"))    
    graphic.setColor(Color.blue);    
   else if(colorString.equals("yellow"))    
    graphic.setColor(Color.yellow);    
   else if(colorString.equals("green"))    
    graphic.setColor(Color.green);    
   else if(colorString.equals("magenta"))    
    graphic.setColor(Color.magenta);    
   else if(colorString.equals("white"))    
    graphic.setColor(Color.white);    
   else    
    graphic.setColor(Color.black);    
   }    
   /**    
   * Wait for a specified number of milliseconds before finishing.    
   * This provides an easy way to specify a small delay which can be    
   * used when producing animations.    
   * @param milliseconds the number    
   */    
   public void wait(int milliseconds)    
   {    
   try    
   {    
    Thread.sleep(milliseconds);    
   }    
   catch (Exception e)    
   {    
    // ignoring exception at the moment    
   }    
   }    
   /**    
   * Redraw ell shapes currently on the Canvas.    
   */    
   private void redraw()    
   {    
   erase();    
   for(Iterator i=objects.iterator(); i.hasNext(); ) {    
    ((ShapeDescription)shapes.get(i.next())).draw(graphic);    
   }    
   canvas.repaint();    
   }    
   /**    
   * Erase the whole canvas. (Does not repaint.)    
   */    
   private void erase()    
   {    
   Color original = graphic.getColor();    
   graphic.setColor(backgroundColour);    
   Dimension size = canvas.getSize();    
   graphic.fill(new Rectangle(0, 0, size.width, size.height));    
   graphic.setColor(original);    
   }    
   /************************************************************************    
   * Inner class CanvasPane - the actual canvas component contained in the    
   * Canvas frame. This is essentially a JPanel with added capability to    
   * refresh the image drawn on it.    
   */    
   private class CanvasPane extends JPanel    
   {    
   public void paint(Graphics g)    
   {    
    g.drawImage(canvasImage, 0, 0, null);    
   }    
   }    
   /************************************************************************    
   * Inner class CanvasPane - the actual canvas component contained in the    
   * Canvas frame. This is essentially a JPanel with added capability to    
   * refresh the image drawn on it.    
   */    
   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);    
   }    
   } 
 } 

Selanjutnya, kita membuat source code untuk bentuk dua dumensi apa saja yang akan digunakan.

1. Persegi

 import java.awt.*;    
  public class Persegi    
  {    
   private int ukuran;    
   private int x;    
   private int y;    
   private String warna;    
   private boolean isVisible;    
   /**    
   * Create a new square at default position with default color.    
   */    
   public Persegi()    
   {    
   ukuran = 100;    
   x = 260;    
   y = 200;    
   warna = "red";    
   isVisible = false;    
   }    
   /**    
   * Make this square visible. If it was already visible, do nothing.    
   */    
   public void makeVisible()    
   {    
   isVisible = true;    
   draw();    
   }    
   /**    
   * Make this square invisible. If it was already invisible, do nothing.    
   */    
   public void makeInvisible()    
   {    
   erase();    
   isVisible = false;    
   }    
   /**    
   * Move the square a few pixels to the right.    
   */    
   public void moveRight()    
   {    
   moveHorizontal(20);    
   }    
   /**    
   * Move the square a few pixels to the left.    
   */    
   public void moveLeft()    
   {    
   moveHorizontal(-20);    
   }    
   /**    
   * Move the square a few pixels up.    
   */    
   public void moveUp()    
   {    
   moveVertical(-20);    
   }    
   /**    
   * Move the square a few pixels down.    
   */    
   public void moveDown()    
   {    
   moveVertical(20);    
   }    
   /**    
   * Move the square horizontally by 'distance' pixels.    
   */    
   public void moveHorizontal(int distance)    
   {    
   erase();    
   x += distance;    
   draw();    
   }    
   /**    
   * Move the square vertically by 'distance' pixels.    
   */    
   public void moveVertical(int distance)    
   {    
   erase();    
   y += distance;    
   draw();    
   }    
   /**    
   * Slowly move the square horizontally by 'distance' pixels.    
   */    
   public void slowMoveHorizontal(int distance)    
   {    
   int delta;    
   if(distance < 0)    
   {    
    delta = -1;    
    distance = -distance;    
   }    
   else    
   {    
    delta = 1;    
   }    
   for(int i = 0; i < distance; i++)    
   {    
    x += delta;    
    draw();    
   }    
   }    
   /**    
   * Slowly move the square vertically by 'distance' pixels.    
   */    
   public void slowMoveVertical(int distance)    
   {    
   int delta;    
   if(distance < 0)    
   {    
    delta = -1;    
    distance = -distance;    
   }    
   else    
   {    
    delta = 1;    
   }    
   for(int i = 0; i < distance; i++)    
   {    
    y += delta;    
    draw();    
   }    
   }    
   /**    
   * Change the size to the new size (in pixels). Size must be >= 0.    
   */    
   public void changeSize(int newSize)    
   {    
   erase();    
   ukuran = newSize;    
   draw();    
   }    
   /**    
   * Change the color. Valid colors are "red", "yellow", "blue", "green",    
   * "magenta" and "black".    
   */    
   public void changeColor(String newColor)    
   {    
   warna = newColor;    
   draw();    
   }    
   /*    
   * Draw the square with current specifications on screen.    
   */    
   private void draw()    
   {    
   if(isVisible) {    
    Canvas canvas = Canvas.getCanvas();    
    canvas.draw(this, warna,    
     new Rectangle(x, y, ukuran, ukuran));    
    canvas.wait(10);    
   }    
   }    
   /*    
   * Erase the square on screen.    
   */    
   private void erase()    
   {    
   if(isVisible) {    
    Canvas canvas = Canvas.getCanvas();    
    canvas.erase(this);    
   }    
   }    
  }    


2. Segitiga

 import java.awt.*;    
  public class Segitiga    
  {    
   private int tinggi;    
   private int lebar;    
   private int x;    
   private int y;    
   private String warna;    
   private boolean isVisible;    
   /**    
   * Create a new triangle at default position with default color.    
   */    
   public Segitiga()    
   {    
   tinggi = 30;    
   lebar = 40;    
   x = 50;    
   y = 15;    
   warna = "green";    
   isVisible = false;    
   }    
   /**    
   * Make this triangle visible. If it was already visible, do nothing.    
   */    
   public void makeVisible()    
   {    
   isVisible = true;    
   draw();    
   }    
   /**    
   * Make this triangle invisible. If it was already invisible, do nothing.    
   */    
   public void makeInvisible()    
   {    
   erase();    
   isVisible = false;    
   }    
   /**    
   * Move the triangle a few pixels to the right.    
   */    
   public void moveRight()    
   {    
   moveHorizontal(20);    
   }    
   /**    
   * Move the triangle a few pixels to the left.    
   */    
   public void moveLeft()    
   {    
   moveHorizontal(-20);    
   }    
   /**    
   * Move the triangle a few pixels up.    
   */    
   public void moveUp()    
   {    
   moveVertical(-20);    
   }    
   /**    
   * Move the triangle a few pixels down.    
   */    
   public void moveDown()    
   {    
   moveVertical(20);    
   }    
   /**    
   * Move the triangle horizontally by 'distance' pixels.    
   */    
   public void moveHorizontal(int distance)    
   {    
   erase();    
   x += distance;    
   draw();    
   }    
   /**    
   * Move the triangle vertically by 'distance' pixels.    
   */    
   public void moveVertical(int distance)    
   {    
   erase();    
   y += distance;    
   draw();    
   }    
   /**    
   * Slowly move the triangle horizontally by 'distance' pixels.    
   */    
   public void slowMoveHorizontal(int distance)    
   {    
   int delta;    
   if(distance < 0)    
   {    
    delta = -1;    
    distance = -distance;    
   }    
   else    
   {    
    delta = 1;    
   }    
   for(int i = 0; i < distance; i++)    
   {    
    x += delta;    
    draw();    
   }    
   }    
   /**    
   * Slowly move the triangle vertically by 'distance' pixels.    
   */    
   public void slowMoveVertical(int distance)    
   {    
   int delta;    
   if(distance < 0)    
   {    
    delta = -1;    
    distance = -distance;    
   }    
   else    
   {    
    delta = 1;    
   }    
   for(int i = 0; i < distance; i++)    
   {    
    y += delta;    
    draw();    
   }    
   }    
   /**    
   * Change the size to the new size (in pixels). Size must be >= 0.    
   */    
   public void changeSize(int newHeight, int newWidth)    
   {    
   erase();    
   tinggi = newHeight;    
   lebar = newWidth;    
   draw();    
   }    
   /**    
   * Change the color. Valid colors are "red", "yellow", "blue", "green",    
   * "magenta" and "black".    
   */    
   public void changeColor(String newColor)    
   {    
   warna = newColor;    
   draw();    
   }    
   /*    
   * Draw the triangle with current specifications on screen.    
   */    
   private void draw()    
   {    
   if(isVisible) {    
    Canvas canvas = Canvas.getCanvas();    
    int[] xpoints = { x, x + (lebar/2), x - (lebar/2) };    
    int[] ypoints = { y, y + tinggi, y + tinggi };    
    canvas.draw(this, warna, new Polygon(xpoints, ypoints, 3));    
    canvas.wait(10);    
   }    
   }    
   /*    
   * Erase the triangle on screen.    
   */    
   private void erase()    
   {    
   if(isVisible) {    
    Canvas canvas = Canvas.getCanvas();    
    canvas.erase(this);    
   }    
   }    
  }   

3. Lingkaran


  import java.awt.*;    
  import java.awt.geom.*;    
  public class Lingkaran    
  {    
   private int diameter;    
   private int x;    
   private int y;    
   private String warna;    
   private boolean isVisible;    
   /**    
   * Create a new circle at default position with default color.    
   */    
   public Lingkaran()    
   {    
   diameter = 30;    
   x = 20;    
   y = 60;    
   warna = "green";    
   isVisible = false;    
   }    
   /**    
   * Make this circle visible. If it was already visible, do nothing.    
   */    
   public void makeVisible()    
   {    
   isVisible = true;    
   draw();    
   }    
   /**    
   * Make this circle invisible. If it was already invisible, do nothing.    
   */    
   public void makeInvisible()    
   {    
   erase();    
   isVisible = false;    
   }    
   /**    
   * Move the circle a few pixels to the right.    
   */    
   public void moveRight()    
   {    
   moveHorizontal(20);    
   }    
   /**    
   * Move the circle a few pixels to the left.    
   */    
   public void moveLeft()    
   {    
   moveHorizontal(-20);    
   }    
   /**    
   * Move the circle a few pixels up.    
   */    
   public void moveUp()    
   {    
   moveVertical(-20);    
   }    
   /**    
   * Move the circle a few pixels down.    
   */    
   public void moveDown()    
   {    
   moveVertical(20);    
   }    
   /**    
   * Move the circle horizontally by 'distance' pixels.    
   */    
   public void moveHorizontal(int distance)    
   {    
   erase();    
   x += distance;    
   draw();    
   }    
   /**    
   * Move the circle vertically by 'distance' pixels.    
   */    
   public void moveVertical(int distance)    
   {    
   erase();    
   y += distance;    
   draw();    
   }    
   /**    
   * Slowly move the circle horizontally by 'distance' pixels.    
   */    
   public void slowMoveHorizontal(int distance)    
   {    
   int delta;    
   if(distance < 0)    
   {    
    delta = -1;    
    distance = -distance;    
   }    
   else    
   {    
    delta = 1;    
   }    
   for(int i = 0; i < distance; i++)    
   {    
    x += delta;    
    draw();    
   }    
   }    
   /**    
   * Slowly move the circle vertically by 'distance' pixels.    
   */    
   public void slowMoveVertical(int distance)    
   {    
   int delta;    
   if(distance < 0)    
   {    
    delta = -1;    
    distance = -distance;    
   }    
   else    
   {    
    delta = 1;    
   }    
   for(int i = 0; i < distance; i++)    
   {    
    y += delta;    
    draw();    
   }    
   }    
   /**    
   * Change the size to the new size (in pixels). Size must be >= 0.    
   */    
   public void changeSize(int newDiameter)    
   {    
   erase();    
   diameter = newDiameter;    
   draw();    
   }    
   /**    
   * Change the color. Valid colors are "red", "yellow", "blue", "green",    
   * "magenta" and "black".    
   */    
   public void changeColor(String newColor)    
   {    
   warna = newColor;    
   draw();    
   }    
   /*    
   * Draw the circle with current specifications on screen.    
   */    
   private void draw()    
   {    
   if(isVisible) {    
    Canvas canvas = Canvas.getCanvas();    
    canvas.draw(this, warna, new Ellipse2D.Double(x, y,    
     diameter, diameter));    
    canvas.wait(10);    
   }    
   }    
   /*    
   * Erase the circle on screen.    
   */    
   private void erase()    
   {    
   if(isVisible) {    
    Canvas canvas = Canvas.getCanvas();    
    canvas.erase(this);    
   }    
   }    
  }    

Kemudian yang  terakhir dan yang terpenting supaya source code bangun ruang diatas bisa ditampilkan menjadi gambar pemandangan

  public class Picture    
  {    
   private Persegi TopBackground;   
   private Persegi BotBackground;   
   private Segitiga leftMount;   
   private Segitiga rightMount;   
   private Segitiga jalan;   
   private Lingkaran Matahari;   
   private Lingkaran Awan;   
   private Lingkaran Awan1;   
   private Lingkaran Awan2;   
   private Lingkaran Awan3;   
   private Lingkaran Awan4;   
   private Lingkaran Awan5;  
   private Lingkaran Awanlagi;   
   private Lingkaran Awanlagi1;  
   private Lingkaran Awanlagi2;  
   private Lingkaran Awanlagi3;  
   private Lingkaran Awanlagi4;  
   private Lingkaran Awanlagi5;  
   private Lingkaran Kolam;  
   private Lingkaran Kolam1;  
   /**    
   * Constructor for objects of class Picture    
   */    
   public Picture()    
   {   
    TopBackground = new Persegi();   
    TopBackground.changeColor("yellow");    
    TopBackground.moveHorizontal(-267);    
    TopBackground.moveVertical(-200);    
    TopBackground.changeSize(1000);    
    TopBackground.makeVisible();   
    Matahari = new Lingkaran();   
    Matahari.changeColor("red");   
    Matahari.moveHorizontal(210);   
    Matahari.moveVertical(75);   
    Matahari.changeSize(80);   
    Matahari.makeVisible();  
    BotBackground = new Persegi();   
    BotBackground.changeColor("green");    
    BotBackground.moveHorizontal(-267);    
    BotBackground.changeSize(1000);    
    BotBackground.makeVisible();    
    leftMount = new Segitiga();   
    leftMount.changeSize(150, 400);    
    leftMount.moveHorizontal(50);    
    leftMount.moveVertical(40);    
    leftMount.changeColor("blue");   
    leftMount.makeVisible();   
    rightMount = new Segitiga();   
    rightMount.changeSize(150,400);   
    rightMount.moveHorizontal(400);   
    rightMount.moveVertical(40);   
    rightMount.changeColor("blue");   
    rightMount.makeVisible();    
    Awan = new Lingkaran();   
    Awan.changeColor("white");   
    Awan.moveHorizontal(250);   
    Awan.moveVertical(-40);   
    Awan.changeSize(40);   
    Awan.makeVisible();   
    Awan1 = new Lingkaran();   
    Awan1.changeColor("white");   
    Awan1.moveHorizontal(270);   
    Awan1.moveVertical(-25);   
    Awan1.changeSize(40);   
    Awan1.makeVisible();   
    Awan2 = new Lingkaran();   
    Awan2.changeColor("white");   
    Awan2.moveHorizontal(290);   
    Awan2.moveVertical(-25);   
    Awan2.changeSize(40);   
    Awan2.makeVisible();   
    Awan3 = new Lingkaran();   
    Awan3.changeColor("white");   
    Awan3.moveHorizontal(310);   
    Awan3.moveVertical(-40);   
    Awan3.changeSize(40);   
    Awan3.makeVisible();   
    Awan4 = new Lingkaran();   
    Awan4.changeColor("white");   
    Awan4.moveHorizontal(270);   
    Awan4.moveVertical(-55);   
    Awan4.changeSize(40);   
    Awan4.makeVisible();   
    Awan5 = new Lingkaran();   
    Awan5.changeColor("white");   
    Awan5.moveHorizontal(290);   
    Awan5.moveVertical(-55);   
    Awan5.changeSize(40);   
    Awan5.makeVisible();   
    Awanlagi = new Lingkaran();   
    Awanlagi.changeColor("white");   
    Awanlagi.moveHorizontal(100);   
    Awanlagi.moveVertical(-40);   
    Awanlagi.changeSize(40);   
    Awanlagi.makeVisible();   
    Awanlagi1 = new Lingkaran();   
    Awanlagi1.changeColor("white");   
    Awanlagi1.moveHorizontal(120);   
    Awanlagi1.moveVertical(-25);   
    Awanlagi1.changeSize(40);   
    Awanlagi1.makeVisible();   
    Awanlagi2 = new Lingkaran();   
    Awanlagi2.changeColor("white");   
    Awanlagi2.moveHorizontal(140);   
    Awanlagi2.moveVertical(-25);   
    Awan2.changeSize(40);   
    Awanlagi2.makeVisible();   
    Awanlagi3 = new Lingkaran();   
    Awanlagi3.changeColor("white");   
    Awanlagi3.moveHorizontal(160);   
    Awanlagi3.moveVertical(-40);   
    Awanlagi3.changeSize(40);   
    Awanlagi3.makeVisible();   
    Awanlagi4 = new Lingkaran();   
    Awanlagi4.changeColor("white");   
    Awanlagi4.moveHorizontal(120);   
    Awanlagi4.moveVertical(-55);   
    Awanlagi4.changeSize(40);   
    Awanlagi4.makeVisible();   
    Awanlagi5 = new Lingkaran();   
    Awanlagi5.changeColor("white");   
    Awanlagi5.moveHorizontal(140);   
    Awanlagi5.moveVertical(-55);   
    Awanlagi5.changeSize(40);   
    Awanlagi5.makeVisible();   
    jalan = new Segitiga();   
    jalan.changeSize(195,100);   
    jalan.moveHorizontal(225);   
    jalan.moveVertical(190);   
    jalan.changeColor("grey");   
    jalan.makeVisible();   
    Kolam = new Lingkaran();   
    Kolam.changeColor("blue");   
    Kolam.moveHorizontal(400);   
    Kolam.moveVertical(200);   
    Kolam.changeSize(100);   
    Kolam.makeVisible();   
    Kolam1 = new Lingkaran();   
    Kolam1.changeColor("blue");   
    Kolam1.moveHorizontal(330);   
    Kolam1.moveVertical(240);   
    Kolam1.changeSize(100);   
    Kolam1.makeVisible();   
   // nothing to do... instance variables are automatically set to null    
   }    
   /**    
   * Draw this picture.    
   */    
   public void draw()    
   {    
   }    
  } 
 

Berikut adalah screenshot program luar dan outputnya




Begitulah kira-kira cara menggambar grafik pemandangan dengan bahasa java. Terimaksih.



Nama : Lutfiyanti
NRP : 05111740000036
Kelas : PBO- B

Senin, 03 September 2018

Latihan Pemrograman Bahasa Java Menggunakan IDE BlueJ

TUGAS 1 BPO-B

Untuk memnuhi tugas pada pertemuan pertama kelas Pemrograman Berorientasi Objek tentang Pemrograman Bahasa Java menggunakan IDE BlueJ, berikut adalah source code yang saya buat untuk menampilkan biodata saya.





Berikut adalah output berupa biodata saya 



Terimakasih.


Oleh :
Lutfiyanti
05111740000036
PBO-B

Kamis, 30 November 2017

SCRATCH


Bahasa Pemrograman Grafis dan Gratis Sesuai Untuk Anak dan Pemula

 
Tampilan awal scratch
 

Scratch adalah Bahasa pemrograman visual yang sangat mudah digunakan untuk pemula karena dalam penggunaan scratch kita tidak perlu memperhatikan rumitnya sintaks pada bahasa pemrograman.  Hanya dengan drag & drop kita sudah bisa membuat cerita, game, animasi, video, dan presentasi.
Pengguna scratch dapat membuat program hanya dengan menyusun balok balok perintah seperti puzzle. Jadi, tidak mungkin terjadi program error hanya karena kesalahan penulisan sintaks.

Konsep yang ada dalam scratch juga sangat menarik, sangat sesuai untuk anak-anak dalam melatih logika. Selain itu, setiap command pada scratch dikelompokkan dalam blok-blok warna sehingga memudahkan dalam menyusun sebuah program.
Sekarang, mari kita belajar bagaimana caranya membuat animasi dengan scratch

Sebelum  memulai lebih lengkap alangkah baiknya anda membuka SCRATCH terlebih dahulu.



Kali ini, saya ingin menjelaskan sebuah tutorial bagaimana cara menggunakan scratch. Sebelumnya, anda bisa melihat video sumber penjelasan saya yang saya ambil dari Youtube. Apabila anda kurang paham dalam memahami tutorial tersebut, silahkan baca tutorial dari saya sebagai berikut :

1. Click menu Create yang ada di atas tampilan awal.  
 Sebelumnya, sangat disarankan bagi anda untuk membuat account terlebih dahulu. Untuk anak dibawah 9 tahun, diperlukan e-mail orang tua untuk pembuatan account.

2. Selanjutnya, akan ditampilkan halaman kerja di monitor anda.


Disini saya akan menjelaskan fungsi masing-masing menu yang ada dalam scratch.   Dalam scratch ada dua komponen yang penting yaitu :
  • Sprite  Karakter utama yang nantinya akan kita atur dan gerakkan.
  • Backdrop adalah latar yang akan kita gunakan.  
Kemudian, dihalaman kerja terdapat berbagai menu dengan berbagai warna yang punya fungsi masing-masing yaitu :
  • Motion pilihan menu untuk menggerakkan sprite kita ingin keposisi dengan koordinat berapa dan dengan gerakan apa.
  • Looks pilihan menu untuk menambah atau mengganti visualisasi disekitar sprite.
  • Sound pilihan menu untuk menambahkan efek suara. Kita bisa merekam suara sendiri untuk ditambahkan kepada proyek yang kita buat.
  •  Pen pilihan menu untuk menambahkan garis yang mengikuti pergerakan objek.
  • Data pilihan menu untuk menampung proyek kita.
  • Events pilihan menu untuk memberi perintah apa yang harus dilakukan supaya objek kita melakukan sesuatu seperti tekan tombol enter untuk memulai gerakan.
  • Control pilihan menu untuk memberikan kontrol apa yang akan dilakukan objek saat saat tertentu seperti mengulang kembali. 
  •  Sensing pilihan menu yang lebih digunakan untuk game karena dalam sensing ini memnta respon dari kita.
  • Operators pilihan menu yang juga lebih digunakan untuk game atau presentasi. Karena disini kita mengatur tombol pada keyboard untuk melakukan printah sesuatu pada proyek yang kita buat.
  • More Blocks pilihan menu untuk menambahkan block perintah yang kita punya. 
 3. Kita akan memulai proyek sederhana kita. Untuk memudahkan dalam penggunaan pertama, kita gunakan  backdrop berupa garis koordinat.
 
4. Kita click sprite yang kita punya dan atur posisi awalnya. Seperti yang kita tahu, koordinat x mengatur pergerakan ke kanan atau kiri dan koordinat y mengatur pergerakan atas-bawah. Apabila kita memindahkan sprite pada halaman kerja, maka posisi koordinat pada block go to menu motion akan berubah sesuai posisi.

5. Selanjutnya, jangan lupa untuk drag & drop block yang sesuai. Karena block ini yang nantinya akan disusun seperti puzzle dari atas kebawah sesuai pergerakan sprite. Jangan lupa untuk menyambungkan block-block tadi agar gerakan objek bisa bersambung.
 
6.  Untuk memberikan jeda dari gerakan satu ke gerakan lain, kita bisa memilih block wait pada menu operator dan menyisipkannya pada block motion yang ingin dijeda. Untuk menambah jeda yang sama pada setiap path motion kita hanya perlu klik kanan block wait dan klik duplicate.
 
7.  Kita bisa coba play gerakan yang dibuat. Apabila gerakannya dirasa terlalu singkat dan kita ingin gerakan tersebut diulang ulang, kita hanya perlu memilih blok repeat pada menu operators. Setelah itu kita drag & drop blok tadi dan sesuaikan gerakan mana saja yang akan diulang.
 
8.  Sprite kita sudah bisa berjalan, tapi masalahnya kita belum punya isyarat apa yang harus dilakukan agar gerakan sprite dimulai. Oleh karena itu kita pilih blok when ... clicked untuk memberikan isyarat kapan program akan dimulai.
 
9. Setelah itu, mari kita coba tambahkan blok dari menu pen yaitu pen down. Untuk mengatur bagaimana pen yang digunakan kita bisa tambahkan blok ukuran pen dll.
 
 Itulah tutorial yang saya jelaskan, silahkan anda berkreasi lebih dengan scratch dan asah kemampuan anda. Masih banyak lagi yang bisa anda buat dengan scratch ini. Kembangkan logika dan imajinasi anda.