TUGAS GRAFIKA KOMPUTER (TENTANG POLYLINE, LINGKARAN DAN SMILE)

oke kali ini saya kan mencoba menjelaskan cara membuat garis polyline dan juga lingkaran dan juga smile dengan menggunakan java AWT,
oke yang pertama cara membuat lingkaran
pertama buka netbeans kalian (saya menggunakn netbeans 7.4) kemudian pilih new project dan pilih java application, kemudian rename sesuai keinginan anda, kali ini saya menamainya dengan lingkaran2, setelah muncul tampilan maka langkah selanjutnya klik kanan pada java source packagenya kemudian pilih JFrame Form... (NB:  class yang *dotjava/.java bisa di hapus agar tidak kebingungan). setelah itu namaia JFrame Form.. sesuai keinginan anda (saran:sebaiknya namai sesuai nama project anda), setalah itu klik kanan pada JFrame Formnya lalu pilih edit dan ketikan koding sama seperti dibawah ini (sesuaikan nama packagenya dengan package yang anda punya) :


package lingkaran2;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
/**
 *
 * @author jOWLfVolks
 */
public class lingkaran extends javax.swing.JFrame {

    /**
     * Creates new form lingkaran
     */
    public lingkaran() {
        super("lingkaran");
        setSize(600, 400);
        setLocationRelativeTo(null);
        setVisible(true);
    }
@Override
    public void paint (Graphics g){
        super.paint(g);
        g.setColor(Color.blue);
        g.drawOval(100, 100, 100, 100);
         g.drawOval(250, 100, 100, 200);
        g.drawString("By. Jowlf", 100, 250);
     
    }
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(lingkaran.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(lingkaran.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(lingkaran.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(lingkaran.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new lingkaran().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    // End of variables declaration                   
}
setelah mengerikan coding (atau Copas) klik kanan dan run project maka hasilnya adalah seperti ini :



yang selanjutnya membuat polyline atau garis tak terputus jika titik awal dan akhirnya tidak bertemu
oke langkah awal sama dengan membuat lingkaran, jika sudah ketikan koding berikut:

setelah itu klik kanan dan pilih run atau menekan tombol shorcut Shift+f6 maka hasilnya adalah seperti berikut :
pembahasan koding
Untuk membuat objek diatas dibutuhkan garis-garis atau disebut dengan PolyLine, dari objek tersebut dapat dilihat garis untuk membentuk bintang di butuhkan 9 titik dimana titik 1 dan titik 9 harus saling bertemu olehkarena itu pada koding tersebut ada syntaks seperti ini: 
public void paint(Graphics g) {
      int[] xs = {25, 75, 125, 85, 125, 75, 25, 65, 25};
      int[] ys = {50, 90, 50, 100, 150, 110, 150, 100, 50};
      g.drawPolyline(xs, ys, 9);
      }
perhatikan hanya   g.drawPolyline(xs, ys, 9);

pertanyaannya adalah

Bagaimana jika angka 9 tersebut diganti dengan angka lebih dari 9 atau kurang dari 9 ???

Coba pada coding tersebut kita ubah angka 9 menjadi angka 8, yang terjadi adalah satu objek garis/polyline akan menghilang, dan coba ubah lagi menjadi lebih kecil lagi seperti menjadi 7,6,5 sampai 0….hmmm sebenarnya tidak perlu sampai 0 karena  pada saat angka 9 diganti dengan angka 1 maka objek garis/polyline akan menghilang, karena 1 bisa dibilang sebagai titik mulainya atau titik awal memulai membuat suatu object.
Jika  angka 9 kita ubah menjadi angka 10 yang terjadi adalah kesalahan atau error pada saat dijalankan, dikarenakan sudah adanya penentuan nilai xs dan ys yang berjumlah 9 digit angka,  

kemudian perhatikan syntax ini
  public void paint(Graphics g) {
      int[] xs = {25, 75, 125, 85, 125, 75, 25, 65, 25};
      int[] ys = {50, 90, 50, 100, 150, 110, 150, 100, 50};
      g.drawPolyline(xs, ys, 9);
      }
perhatikan hanya pada int[] xs dan int []ys.
apa yang akan  terjadi jika digit angka pada variable xs, dan ys ditambahkan atau dikurangi ??

Jika dikurangi maka pada saat dirun akan terjadi error, namun jika ditambah tidak terjadi perubahan pada object bintang tersebut kecuali angka 9 ditambah juga sesuai dengan nilai xs, dan ysnya namun itu akan menambah 1 garis line lagi.
demikian penjelasan tentang polyline dari saya maaf jika masih ada yang kurang paham, saya juga masih belajar soalnya.


selanjutnya adalah membuat smile (maaf Smile saya buat aneh dan jelek)
pertama buka netbeans kalian (saya menggunakn netbeans 7.4) kemudian pilih new project dan pilih java application, kemudian rename sesuai keinginan anda, kali ini saya menamainya dengan smile, setelah muncul tampilan maka langkah selanjutnya klik kanan pada java source packagenya kemudian pilih JFrame Form... (NB:  class yang *dotjava/.java bisa di hapus agar tidak kebingungan). setelah itu namaia JFrame Form.. sesuai keinginan anda (saran:sebaiknya namai sesuai nama project anda), setalah itu klik kanan pada JFrame Formnya lalu pilih edit dan ketikan koding sama seperti dibawah ini (sesuaikan nama packagenya dengan package yang anda punya) :

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package smile;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
/**
 *
 * @author jOWLfVolks
 */
public class smile extends javax.swing.JFrame {

    /**
     * Creates new form smile
     */
    public smile() {
         super("SMILE LIHAT PIMANA?");
        setSize(600, 400);
        setLocationRelativeTo(null);
        setVisible(true);
        
    }
public void paint (Graphics g){
        super.paint(g);


        g.setColor(Color.yellow);
        g.drawOval(100, 100, 340, 260);//muka
        g.fillOval(100, 100, 340, 260);
        g.setColor(Color.blue);
        
        
        g.setColor(Color.black); //rambut
        g.drawArc(180, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(190, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(200, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(210, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(220, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(230, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(240, 80, 180,180,90, 50);
        g.setColor(Color.black); //rambut
        g.drawArc(250, 80, 180,180,90, 50);
        
        
        
       g.setColor(Color.black);
        g.drawOval(150, 130, 50, 50); //matakiri
        g.fillOval(150, 130, 50, 50);
        g.setColor(Color.white);
        g.drawOval(150, 150, 20, 20); //dalammatakiri
        g.fillOval(150, 150, 20, 20);
         g.setColor(Color.black);
        g.drawOval(210, 130, 50, 50);//matakanan
        g.fillOval(210, 130, 50, 50);
        g.setColor(Color.white);
        g.drawOval(210, 150, 20, 20); //dalammatakanan
        g.fillOval(210, 150, 20, 20);
        
        
        g.setColor(Color.black);
        g.drawOval(190, 210, 20, 20); //hidung
        g.fillOval(190, 210, 20, 20);
        
      
  
        g.setColor(Color.black);
        g.drawOval(170, 250, 80, 90); //mulut
        g.setColor(Color.white);
        g.fillOval(170, 250, 80, 90);
        
         
        g.setColor(Color.red);
        g.drawString("Muka Kaget Rambut tapisah-tapisah", 90, 50);
    }
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(smile.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(smile.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(smile.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(smile.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new smile().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    // End of variables declaration                   
}
bagian yang saya garis itu tidak perlu di ketikan / dicopy.

jika sudah di ketikan kodingnya klik kanan pada JFrame Form tadi dan klik Run atau bisa juga dengan menekan tombol shorcut Shit+f6, maka hasilnya adalah seperti berikut :


Oke demikian penjelasan singkat dari saya tentang bagaimana membuat Smile sederhana.
semoga membantu.

Share:

2 komentar

  1. Tulisannya ter strike, coba betulin.

    BalasHapus
    Balasan
    1. Emang sengaja pak di strike, soalnya yang di bagian bawah koding kan bawaan jframenya pak jd distrike aja xixixixi

      Hapus