Project Komputer Grafik

79
1. Aplikasi Program Komputer Grafik Saya Menggunakan 14 Kelas Dalam membuat aplikasi ini : 1. Utama 8. Tank 2. Menu 9. Orang 3. Design 10. LaunchProgressBar 4. Arc 11. empaJam 5. Oval 12. GrafikGempa 6. Roundrect 13. ImageZoomer 7. Rect 14. ImageZoomerFrame

Transcript of Project Komputer Grafik

Page 1: Project Komputer Grafik

1. Aplikasi Program Komputer Grafik

Saya Menggunakan 14 Kelas Dalam membuat aplikasi ini :

1. Utama 8. Tank

2. Menu 9. Orang

3. Design 10. LaunchProgressBar

4. Arc 11. empaJam

5. Oval 12. GrafikGempa

6. Roundrect 13. ImageZoomer

7. Rect 14. ImageZoomerFrame

Page 2: Project Komputer Grafik

1. Program yang Pertama Kelas Utama

Source :

import javax.swing.JDesktopPane;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Image;

import javax.swing.ImageIcon;

import java.util.logging.Level;

import java.util.logging.Logger;

public class utama extends JDesktopPane {

protected void paintComponent(Graphics g) {

try {

Graphics2D graphics = (Graphics2D) g.create();

Image img = new ImageIcon(getClass().getResource("kayu2.jpg")).getImage();

graphics.drawImage(img, 0, 0, getWidth(), getHeight(), null);

graphics.dispose();

}catch ( Exception e ){

System.exit(0);

}

}

public static void main ( String [] args ) {

LaunchProgressBar pb = new LaunchProgressBar();

pb.setVisible(true);

for(int i=0;i<=100;i++)

try {

pb.getProgressBar().setValue(i);

Thread.sleep(100);

} catch (InterruptedException ex) {

Logger.getLogger(LaunchProgressBar.class.getName()).log(Level.SEVERE, null,ex); }

pb.dispose();

new menu(); } }

Page 3: Project Komputer Grafik

Proses :

- Saya Menggunakan import java.awt.* dan import javax.swing.* dalam kelas ini.

- Lalu saya menggunakan gambar kayu2.jpg sebagai background pertama program

ketika di jalankan

- Lalu saya menggunakan progress bar sebagai tambahan pada saat loading ke program

sebagai background pertama sebelum program berjalan sepenuhnya.

- Class ini hanya sebagai kelas induk atau kelas utama karena Ketika class ini di

jalankan maka langsung akan memangil kelas menu karena di method main nya

terdapat new menu().

Output :

Output ini adalah proses dari LaunchProgressBar yang membuat tampilan loading menjadi

lebih menarik

Page 4: Project Komputer Grafik

Ini tampilan dari Menu utama

2. Program yang Kedua class menu

Source :

import java.awt.*;

import java.awt.event.*;

Page 5: Project Komputer Grafik

import javax.swing.*;

import java.util.*;

import java.text.*;

import javax.swing.Timer;

import javax.swing.ImageIcon;

public class menu extends JFrame implements ActionListener {

private static Color rect = new Color (51,51,255) ; private static Color roundrect =

new Color (255,51,51) ; private static Color oval = new Color (255,102,255) ;

private static Color arc = new Color (51,255,51) ; private static Color usb = new

Color (102,255,51) ; private static Color putih = new Color (255,255,255) ;

JPanel ToolbarPanel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));

JMenuBar mb = new JMenuBar () ;

JMenu about = new JMenu (" About ") ;

JMenuItem aboutt = new JMenuItem (" Tentang Saya ");

JDesktopPane pane = new JDesktopPane();

JButton btnrect = new JButton (" Rectangle ");

JButton btnroundrect = new JButton (" Round Rectangle ");

JButton btnoval = new JButton (" Oval ");

JButton btnarc = new JButton (" Arc ");

JButton btnorg = new JButton (" Gambar Orang ");

JButton btntank = new JButton (" tank ");

JToolBar tb = new JToolBar ();

menu () {

setTitle (" Program Komputer Grafik " );

setSize (1370,730);

Page 6: Project Komputer Grafik

pane = new utama ();

addWindowListener (new WindowAdapter () {

public void windowClosing (WindowEvent we) {

Keluar ();

}

});

setJMenuBar (mb);

mb.add(about);

// add(pane);

ToolbarPanel1.add (btnrect);

ToolbarPanel1.add (btnroundrect);

ToolbarPanel1.add (btnoval);

ToolbarPanel1.add (btnarc);

ToolbarPanel1.add (btnorg);

ToolbarPanel1.add (btntank);

tb.add (ToolbarPanel1);

pane.setBackground(Color.gray);

getContentPane().add (tb, BorderLayout.NORTH);

getContentPane().add (pane, BorderLayout.CENTER);

btnrect.setToolTipText ("Rectangle");

btnroundrect.setToolTipText ("Round Rectangle");

btnoval.setToolTipText ("Oval");

btnarc.setToolTipText ("Arc");

btnorg.setToolTipText ("Gambar Orang");

btntank.setToolTipText ("Tank");

btnrect.addActionListener (this);

Page 7: Project Komputer Grafik

btnroundrect.addActionListener (this);

btnoval.addActionListener (this);

btnarc.addActionListener (this);

btnorg.addActionListener (this);

btntank.addActionListener (this);

about.addActionListener (this);

// warna background

btnrect.setBackground (rect); btnroundrect.setBackground (roundrect);

btnoval.setBackground (oval); btnarc.setBackground (arc);

btnorg.setBackground (usb); btntank.setBackground (rect);

//warna foreground

btnrect.setForeground (putih); btnroundrect.setForeground (putih);

btnoval.setForeground (putih); btnarc.setForeground (putih);

btnorg.setForeground (putih); btntank.setForeground (putih);

btnrect.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnroundrect.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnoval.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnarc.setFont(new Font("Times New Roman",Font.PLAIN,14));

btnorg.setFont(new Font("Times New Roman",Font.PLAIN,14));

btntank.setFont(new Font("Times New Roman",Font.PLAIN,14));

setVisible(true);

}

private void Keluar () {

try {

int reply = JOptionPane.showConfirmDialog (this,

"Yakin Mau Keluar?",

"Terima Kasih ", JOptionPane.YES_NO_OPTION,

JOptionPane.PLAIN_MESSAGE);

if (reply == JOptionPane.YES_OPTION) {

System.exit(0);

Page 8: Project Komputer Grafik

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

catch (Exception e) {

}

}

public static void main ( String [] args ) {

new menu();

}

public void actionPerformed (ActionEvent evt) {

try{

if (evt.getSource()==btnrect) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtstatus().setText("1");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

kg.getLblheight().setVisible (true); kg.setTitle (" Komputer Grafik > Rectangle

");

}

if (evt.getSource()==btnroundrect) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtxdiam().setVisible (true);

kg.getTxtydiam().setVisible (true); kg.getTxtstatus().setText("2");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true ) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

Page 9: Project Komputer Grafik

kg.getLblheight().setVisible (true); kg.getLblxdiam().setVisible (true);

kg.getLblydiam().setVisible (true);

kg.setTitle (" Komputer Grafik > Round Rectangle ");

}

if (evt.getSource()==btnoval) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtstatus().setText("3");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

kg.getLblheight().setVisible (true); kg.setTitle (" Komputer Grafik > Oval ");

}

if (evt.getSource()==btnarc) {

design kg = new design () ;

kg.getTxtx1().setVisible (true); kg.getTxtx2().setVisible

(true);kg.getTxtwidth().setVisible (true);

kg.getTxtheight().setVisible (true); kg.getTxtxdiam().setVisible (true);

kg.getTxtydiam().setVisible (true); kg.getTxtstatus().setText("4");

kg.getBtnproses().setVisible (true) ; kg.getBtnproses().setEnabled (true ) ;

kg.getLblx1().setVisible (true); kg.getLblx2().setVisible

(true);kg.getLblwidth().setVisible (true);

kg.getLblheight().setVisible (true); kg.getLblxdiam().setVisible (true);

kg.getLblydiam().setVisible (true);

kg.getLblxdiam().setText("StartAngle"); kg.getLblydiam().setText("arcAngle");

kg.setTitle (" Komputer Grafik > Arc ");

}

if (evt.getSource()==btnorg) {

Page 10: Project Komputer Grafik

JFrame frame = new JFrame();frame.setTitle("Usb");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new orang(); applet.init(); frame.getContentPane().add(applet);

frame.pack(); frame.setVisible(true);

}

if (evt.getSource()==btntank) {

JFrame frame = new JFrame(); frame.setTitle("Catur");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new tank(); applet.init();

frame.getContentPane().add(applet);frame.pack(); frame.setVisible(true);

}

} catch(Exception e) {

System.err.println("error"+e.getMessage());

}

}

Page 11: Project Komputer Grafik

Proses :

Page 12: Project Komputer Grafik

- Saya menggunakan beberapa component toolbar , JButton , JmenuBar ,

Jmenu ,JmenuItem ,Jmenu , dan DesktopPane dalam class ini .,

- Masing-masing component tersebuat adlaha sebagai berikut :

- Toolbar berfungsi untuk menampung button.

- Jbutton Berfungsi untuk memanggil class-class lain seperti arc , rect ,roundrect dll.

- Jmenubar, Jmenu dan JMenuItem berfungsi unutk menampilkan about yang berada

paling atas.

- DesktopPane berfungsi untuk menampilkan gambar kayu2.jpg yang tadi telah di buat

di class utama.

Output :

3. Program yang Ketiga class design

Source :

import javax.swing.*;

import java.awt.event.*;

import java.sql.*;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

Page 13: Project Komputer Grafik

import javax.swing.table.*;

import java.awt.*;

import java.util.Date;

import javax.swing.border.EmptyBorder;

import java.awt.Graphics ;

public class design extends JFrame implements ActionListener {

// JLabel info = new JLabel ( " * cari : case sensitive");

JPanel panel = new JPanel ();

JLabel lblx1 = new JLabel (" x1 ");

JLabel lblx2 = new JLabel (" x2 ");

JLabel lblwidth = new JLabel (" width ");

JLabel lblheight = new JLabel (" height ");

JLabel lblxdiam = new JLabel (" xdiam ");

JLabel lblydiam = new JLabel (" ydiam ");

JLabel lblWall = new JLabel ();

JTextField txtstatus = new JTextField ();

JTextField txtx1 = new JTextField ();

JTextField txtx2 = new JTextField ();

JTextField txtwidth = new JTextField ();

JTextField txtheight = new JTextField ();

// JTextField txtjabatan = new JTextField ();

JTextField txtxdiam = new JTextField ();

JTextField txtydiam = new JTextField ();

JButton btnproses = new JButton (" Proses ");

public design(){

super (" Komputer Grafik ");

setSize (430,425);

panel.setBorder(new EmptyBorder(5, 5, 5, 5));

Page 14: Project Komputer Grafik

setContentPane(panel);

panel.setLayout(null);

// info.setBounds (400,50,150,25);

lblx1.setBounds (50,50,75,25);

lblx2.setBounds (50,100,75,25);

lblwidth.setBounds (50,150,75,25);

lblheight.setBounds (50,200,75,25);

lblxdiam.setBounds (50,250,75,25);

lblydiam.setBounds (50,300,75,25);

txtx1.setBounds (110,50,175,25);

txtx2.setBounds (110,100,175,25);

txtwidth.setBounds (110,150,175,25);

txtheight.setBounds (110,200,175,25);

txtxdiam.setBounds (110,250,175,25);

txtydiam.setBounds (110,300,175,25);

btnproses.setBounds (300,50,100,25);

add(lblx1);

add(lblx2);

add(lblwidth);

add(lblheight);

add(lblxdiam);

add(lblydiam);

add(txtx1);

add(txtx2);

add(txtwidth);

add(txtheight);

add(txtxdiam);

add(txtydiam);

Page 15: Project Komputer Grafik

add(btnproses);

lblx1.setForeground(Color.white);

lblx2.setForeground(Color.white);

lblwidth.setForeground(Color.white);

lblheight.setForeground(Color.white);

lblxdiam.setForeground(Color.white);

lblydiam.setForeground(Color.white);

lblWall.setIcon(new ImageIcon(design.class.getResource("bg.jpg")));

lblWall.setBounds(0, 0, 430, 500);

panel.add(lblWall);

setLocationRelativeTo(null);

setVisible(true);

btnproses.addActionListener(this);

txtx1.setVisible(false); txtx2.setVisible(false); txtwidth.setVisible(false);

txtheight.setVisible(false); txtxdiam.setVisible(false); txtydiam.setVisible(false);

btnproses.setVisible(false) ;

lblx1.setVisible(false); lblx2.setVisible(false); lblwidth.setVisible(false);

lblheight.setVisible(false); lblxdiam.setVisible(false); lblydiam.setVisible(false);

}

public void setTxtstatus ( JTextField txtstatus ) {

this.txtstatus = txtstatus ;

}

public JTextField getTxtstatus () {

return txtstatus ;

}

public void setTxtx1 ( JTextField txtx1 ) {

this.txtx1 = txtx1 ;

}

Page 16: Project Komputer Grafik

public JTextField getTxtx1 () {

return txtx1 ;

}

public void setTxtx2( JTextField txtx2 ) {

this.txtx2 = txtx2 ;

}

public JTextField getTxtx2 () {

return txtx2 ;

}

public void setTxtwidth ( JTextField txtwidth ) {

this.txtwidth = txtwidth ;

}

public JTextField getTxtwidth () {

return txtwidth ;

}

public void setTxtheight ( JTextField txtheight ) {

this.txtheight = txtheight ;

}

public JTextField getTxtheight () {

return txtheight ;

}

public void setTxtxdiam ( JTextField txtxdiam ) {

this.txtxdiam = txtxdiam ;

}

public JTextField getTxtxdiam () {

return txtxdiam ;

}

public void setTxtydiam ( JTextField txtydiam ) {

this.txtydiam = txtydiam ;

Page 17: Project Komputer Grafik

}

public JTextField getTxtydiam () {

return txtydiam ;

}

// label

public void setLblx1 ( JLabel lblx1 ) {

this.lblx1 = lblx1 ;

}

public JLabel getLblx1 () {

return lblx1 ;

}

public void setLblx2 ( JLabel lblx2 ) {

this.lblx2 = lblx2 ;

}

public JLabel getLblx2 () {

return lblx2 ;

}

public void setLblwidth ( JLabel lblwidth ) {

this.lblwidth = lblwidth ;

}

public JLabel getLblwidth () {

return lblwidth ;

}

public void setLblheight ( JLabel lblheight ) {

this.lblheight = lblheight ;

}

public JLabel getLblheight () {

return lblheight ;

}

Page 18: Project Komputer Grafik

public void setLblxdiam ( JLabel lblxdiam ) {

this.lblxdiam = lblxdiam ;

}

public JLabel getLblxdiam () {

return lblxdiam ;

}

public void setLblydiam ( JLabel lblydiam ) {

this.lblydiam = lblydiam ;

}

public JLabel getLblydiam () {

return lblydiam ;

}

public void setBtnproses ( JButton btnproses ) {

this.btnproses = btnproses ;

}

public JButton getBtnproses () {

return btnproses ;

}

public static void main (String[]eza) {

new design();

}

private void bersih() {

txtx1.setText(""); txtx2.setText("");

txtwidth.setText(""); txtheight.setText("");

txtxdiam.setText(""); txtydiam.setText("");

}

Page 19: Project Komputer Grafik

public void actionPerformed (ActionEvent evt) {

String xx1 = txtx1.getText(); int xxx1 = Integer.parseInt(xx1); String yy2 =

txtx2.getText(); int yyy2 = Integer.parseInt(yy2);

String width1 = txtwidth.getText(); int width11 = Integer.parseInt(width1); String

height1 = txtheight.getText(); int height11 = Integer.parseInt(height1);

// String xdiam1 = txtxdiam.getText(); int xdiam11 = Integer.parseInt(xdiam1);

String ydiam1 = txtydiam.getText(); int ydiam11 = Integer.parseInt(ydiam1);

try{

if(evt.getSource()==btnproses) {

if (txtstatus.getText().equals("1")) {

rect re = new rect (xxx1,yyy2,width11,height11);

re.setTitle ( " Komputer Grafik > Rectangle " ) ;

re.setVisible(true);

} else if (txtstatus.getText().equals("2")) {

String xdiam1 = txtxdiam.getText(); int xdiam11 =

Integer.parseInt(xdiam1); String ydiam1 = txtydiam.getText(); int ydiam11 =

Integer.parseInt(ydiam1);

roundrect rr = new

roundrect(xxx1,yyy2,width11,height11,xdiam11,ydiam11);

rr.setTitle ( " Komputer Grafik > Round Rect " ) ;

rr.setVisible (true);

} else if (txtstatus.getText().equals("3")) {

oval ov = new oval (xxx1,yyy2,width11,height11);

ov.setTitle ( " Komputer Grafik > Oval " ) ;

ov.setVisible(true);

}else if (txtstatus.getText().equals("4")) {

String xdiam1 = txtxdiam.getText(); int xdiam11 =

Integer.parseInt(xdiam1); String ydiam1 = txtydiam.getText(); int ydiam11 =

Integer.parseInt(ydiam1);

arc ar = new arc(xxx1,yyy2,width11,height11,xdiam11,ydiam11);

ar.setTitle ( " Komputer Grafik > Arc " ) ;

ar.setVisible (true);

}

}

Page 20: Project Komputer Grafik

}catch(Exception e) {System.err.println("error"+e.getMessage());}

}

}

Page 21: Project Komputer Grafik

Proses :

- Saya menggunakan beberapa komponen dalam class ini seperti : panel , label ,

textfield , button .

- Masing-masing komponen tersebut mempunyai fungsi masing-masing seperti :

- Panel berfungsi untuk menampung komponen-komponen yang terdapat pada class ini.

Output :

- Output untuk Rectangle

- Output Untuk Round Rect

Page 22: Project Komputer Grafik

- Output untuk Oval

- Output untuk Arc

Page 23: Project Komputer Grafik

4. Program yang Keempat class arc

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

public class arc extends JFrame {

int x1 ; int y1 ; int width ; int height ; int xdiam ; int ydiam ;

public arc (int x1 , int y1 , int width ,int height , int xdiam , int ydiam ) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ; this.xdiam =

xdiam ; this.ydiam = ydiam ;

}

public void paint(Graphics g) {

g.drawArc ( x1,y1,width,height,xdiam,ydiam ) ;

}

}

Page 24: Project Komputer Grafik

Proses :

- Saya menggambat grafik arc . dimana gambar tersebut sesuai dengan yang di input

oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat arc.

- Untuk gambar di bawah ini saya menggunakan kordinat (50,50,100,100,0,-180)

Output :

Page 25: Project Komputer Grafik

5. Program yang Kelima class oval

Source :

import java.awt.Graphics ;

import javax.swing.JFrame ;

import javax.swing.* ;

public class oval extends JFrame {

int x1 ; int y1 ; int width ; int height ;

public oval (int x1 , int y1 , int width ,int height) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ;

}

public void paint ( Graphics g ) {

g.drawOval ( x1,y1,width,height ) ;

}

Page 26: Project Komputer Grafik

}

Proses :

- Saya menggambat grafik Oval . dimana gambar tersebut sesuai dengan yang di input

oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat Oval.

- Untuk gambar di bawah ini saya menggunakan kordinat ( 50,50,200,200 ) ;

Page 27: Project Komputer Grafik

Output :

6. Program yang Keenam class roundrect

Source :

import java.awt.Graphics ;

import javax.swing.JFrame ;

import javax.swing.* ;

public class roundrect extends JFrame {

int x1 ; int y1 ; int width ; int height ; int xdiam ; int ydiam ;

public roundrect (int x1 , int y1 , int width ,int height , int xdiam , int ydiam ) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ; this.xdiam =

xdiam ; this.ydiam = ydiam ; }

public void paint ( Graphics g ) {

g.drawRoundRect ( x1,y1,width,height,xdiam,ydiam ) ;

}

}

Page 28: Project Komputer Grafik

Proses :

- Saya menggambat grafik RoundRect . dimana gambar tersebut sesuai dengan yang di

input oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat RoundRect.

- Untuk gambar di bawah ini saya menggunakan kordinat ( 50,50,100,100 ,20,20) ;

Output :

Page 29: Project Komputer Grafik

7. Program yang Ketujuh class rect

Source :

import java.awt.Graphics ;

import javax.swing.JFrame ;

import javax.swing.* ;

public class rect extends JFrame {

int x1 ; int y1 ; int width ; int height ;

public rect (int x1 , int y1 , int width ,int height) {

setSize (1370,730);

this.x1 = x1 ; this.y1 = y1 ; this.width = width ; this.height = height ; }

public void paint ( Graphics g ) {

g.drawRect ( x1,y1,width,height ) ; } }

Page 30: Project Komputer Grafik

Proses :

- Saya menggambat grafik Rect . dimana gambar tersebut sesuai dengan yang di input

oleh user.

- Saya menggunakan variabel di construktor program untuk menampung nilai yang di

input oleh user sehingga dapat membuat kordinat Rect.

- Untuk gambar di bawah ini saya menggunakan kordinat ( 50,50,200,200) ;

Output :

Page 31: Project Komputer Grafik

1) Program yang Kedelapan class GambarOrang

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

public class orang extends JApplet {

public static void main(String s[]) {

JFrame frame = new JFrame();

frame.setTitle(" Gambar Orang ");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new orang();

applet.init();

frame.getContentPane().add(applet);

frame.pack();

frame.setVisible(true); }

public void init() {

JPanel panel = new AreaPanel2();

getContentPane().add(panel); } }

class AreaPanel2 extends JPanel {

public AreaPanel2() {

setPreferredSize(new Dimension(760, 400)); }

public void paintComponent(Graphics g) {

java.awt.Graphics2D g2 = (java.awt.Graphics2D)g;

Page 32: Project Komputer Grafik

g2.drawOval(120, 60, 90, 90);//kepala

g2.setColor(Color.black);

g2.fillOval(140,90, 10, 10);

g.drawOval(140, 90, 10, 10);//mata kiri

g2.setColor(Color.black);

g2.fillOval(180,90, 10, 10);

g.drawOval(180, 90, 10, 10);//mata kanan

g2.draw(new Arc2D.Double(135, 80, 60, 60, 180, 180, Arc2D.OPEN));//mulut

g2.setColor(Color.BLACK);

g2.drawLine(60, 250, 90, 250);//tangan kiri

g2.drawLine(260, 250, 230, 250);//tangan kanan

g2.drawArc(60, 150, 200, 200, 0, 180);

g2.draw(new Arc2D.Double(72, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.draw(new Arc2D.Double(178, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(124,250,124,350);

g2.drawLine(196,250,196,350);

g2.draw(new Arc2D.Double(125, 300, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(178, 350, 195, 350);

g2.drawLine(143, 350, 123, 350); //tulisan

g2.setFont(new Font("Arial", Font.PLAIN, 21));

g2.setColor(Color.BLACK);

g2.drawString("Nama : Syahroni", 20, 20);

g2.drawString("NPM : 2012 4350 1228", 20, 40);

g2.drawString("Dosen : NAHOT FRASTIAN M.KOM", 20, 60);

//translate & scacle

g2.scale(0.5, 0.5);

g2.translate(450,350);

g2.setColor(Color.gray);

g2.setColor(Color.black);

g2.fillOval(140,90, 10, 10);

g2.fillOval(180,90, 10, 10);

g.drawOval(120, 60, 90, 90);//kepala

g.drawOval(140, 90, 10, 10);//mata kiri

Page 33: Project Komputer Grafik

g.drawOval(180, 90, 10, 10);//mata kanan

g2.draw(new Arc2D.Double(135, 80, 60, 60, 180, 180, Arc2D.OPEN));//mulut

g2.drawLine(60, 250, 90, 250);//tangan kiri

g2.drawLine(260, 250, 230, 250);//tangan kanan

g2.drawArc(60, 150, 200, 200, 0, 180);

g2.draw(new Arc2D.Double(72, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.draw(new Arc2D.Double(178, 200, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(124,250,124,350);

g2.drawLine(196,250,196,350);

g2.draw(new Arc2D.Double(125, 300, 70, 750, 60, 60, Arc2D.OPEN));

g2.drawLine(178, 350, 195, 350);

g2.drawLine(143, 350, 123, 350); }

}

Page 34: Project Komputer Grafik

Proses :

- Saya menggambat grafik 2 orang.

- Saya menggunakan grafik arc ,rect, oval, dan line.

Page 35: Project Komputer Grafik

Output :

9.Program yang Kesembilan class tank

Source :

import java.awt.Graphics ;

import java.awt.Color ;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.geom.*;

public class tank extends JApplet {

public static void main(String s[]) {

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new tank();

applet.init();

frame.getContentPane().add(applet);

frame.pack();

Page 36: Project Komputer Grafik

frame.setVisible(true); }

public void init() {

JPanel panel = new AreaPanel();

getContentPane().add(panel); } }

class AreaPanel extends JPanel {

public AreaPanel() {

setPreferredSize(new Dimension(500, 480)); }

public void paintComponent(Graphics g) {

Graphics2D g2=(Graphics2D)g;

Graphics2D g3=(Graphics2D)g;

g.drawRoundRect(200,300,500,100,90,90);

g.setColor(Color.GREEN);

g.fillRoundRect(200,300,480,100,90,90);

g2.setColor(Color.BLACK);

for (int i=0;i<=300;i=i+75){

g.fillOval(350+i,325,50,50); }

Polygon panah = new Polygon();

panah.addPoint(250,300);

panah.addPoint(270,250);

panah.addPoint(320,250);

panah.addPoint(320,220);

panah.addPoint(340,220);

panah.addPoint(340,120);

panah.addPoint(310,100);

panah.addPoint(340,80);

panah.addPoint(350,80);

panah.addPoint(350,220);

panah.addPoint(390,220);

panah.addPoint(390,250);

panah.addPoint(430,250);

panah.addPoint(440,270);

panah.addPoint(740,270);

panah.addPoint(740,290);

panah.addPoint(470,290);

Page 37: Project Komputer Grafik

panah.addPoint(470,300);

g2.draw(panah);

g2.fill(panah); }} }

Page 38: Project Komputer Grafik

Proses :

- Saya menggambat grafik tank

- Saya menggunakan grafik Roundrect, Dengan fillRoundRect dan graphics 2d

- Dan saya memberikan warna hitam dan hijau

- Dalam gambar ini saya menggunakan pengulangan for. for (int i=0;i<=300;i=i+75).

Dimana nilai i awal itu adalah 0 , dan setiap pengulangan akan di tambahkan dengan

nilai 75.

Page 39: Project Komputer Grafik

Output :

11. Program yang Kesembilan class empatJam

Source :

import java.applet.*;

import java.awt.*;

import java.util.*;

import java.text.*;

import javax.swing.*;

public class empatJam extends Applet implements Runnable

{ int width, height;

Thread t = null;

boolean threadSuspended;

int jam=0, menit=0, detik=0;

String strWaktu = "";

public void init() {

width = getSize().width;

height = getSize().height;

Page 40: Project Komputer Grafik

setBackground(Color.black); }

public void start()

{

if(t == null)

{

t = new Thread(this);

t.setPriority(Thread.MIN_PRIORITY);

threadSuspended = false;

t.start();

}

else

{

if(threadSuspended)

{

threadSuspended=false;

synchronized(this)

{

notify();

}

}

}

}

public void stop()

{

threadSuspended = true;

}

public void run()

{

try

{

while(true)

{

Calendar cal = Calendar.getInstance();

Page 41: Project Komputer Grafik

jam = cal.get(Calendar.HOUR_OF_DAY);

if(jam > 12) jam -= 12;

menit = cal.get(Calendar.MINUTE);

detik = cal.get(Calendar.SECOND);

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss",

Locale.getDefault());

Date tgl = cal.getTime();

strWaktu = sdf.format(tgl);

if(threadSuspended)

{

synchronized(this)

{

while(threadSuspended)

{

wait();

}

}

}

repaint();

t.sleep(1000);

}

}

catch(InterruptedException e)

{

}

}

void drawHand(int posX, int posY, double angle, int radius, Graphics g)

{

angle -= 0.5 * Math.PI;

int x = (int) (radius*Math.cos(angle));

int y = (int) (radius*Math.sin(angle));

g.drawLine(posX, posY, posX+x, posY+ y);

}

void drawWedge(int posX, int posY, double angle, int radius, Graphics g)

Page 42: Project Komputer Grafik

{

angle -= 0.5 * Math.PI;

int x = (int) (radius*Math.cos(angle));

int y = (int) (radius*Math.sin(angle));

angle += 2*Math.PI/3;

int x2 = (int) (5*Math.cos(angle));

int y2 = (int) (5*Math.sin(angle));

angle += 2*Math.PI/3;

int x3 = (int) (5*Math.cos(angle));

int y3 = (int) (5*Math.sin(angle));

g.drawLine(posX+ x2, posY+ y2, posX+ x, posY + y);

g.drawLine(posX+ x3, posY + y3, posX+ x, posY + y);

g.drawLine(posX+ x2,posY + y2, posX+ x3, posY + y3);

}

void drawRoundedNum(int posX, int posY, int radius, Graphics g)

{ for(int i=0;i<12;i++)

{

int x = (int) (0.8*radius*Math.cos(i*Math.PI/6-0.5*Math.PI));

int y = (int) (0.8*radius*Math.sin(i*Math.PI/6-0.5*Math.PI));

String j = Integer.toString(i);

if(i==0) j="12";

for(int k=0;k<width;k+=width/4)

if(k%2==0) g.drawString(j, x+posX, y+posY);

}

}

public void paint(Graphics g)

{

g.setColor(Color.white);

int z=0;

for(int i=0;i<width;i+=width/4)

if(i%2==1)

{

drawWedge(i,height/4,2*Math.PI * (jam-z) / 12, width/12, g);

Page 43: Project Komputer Grafik

drawWedge(i,height/4,2*Math.PI * (menit) / 60, width/8, g);

drawWedge(i,height-height/4,2*Math.PI * (jam-z-5) / 12, width/12, g);

drawWedge(i,height-height/4,2*Math.PI * (menit) / 60, width/8, g);

drawHand(i,height/4,2*Math.PI * (detik) / 60, width/8, g);

drawHand(i,height-height/4,2*Math.PI * (detik) / 60, width/8, g);

drawRoundedNum(i,height/4, width/4, g);

drawRoundedNum(i,height-height/4, width/4, g);

z+=7;

}

g.setColor(Color.white);

//g.drawString(strWaktu, 10, height-10);

}

}

Page 44: Project Komputer Grafik
Page 45: Project Komputer Grafik
Page 46: Project Komputer Grafik

Proses :

- Saya menggambat grafik empat jam.

- Untuk Background saya menggunakan warna hitam yang di tandai dengan

setBackground(Color.black);

- Saya juga menggunakan 7 method dalam class ini yang mempunyai fungsi masing-

masing. Seperti method init yang berfungsi untuk mengatur size dan background , lalu

method start yang berfungsi untuk menjalankan jarum jam,lalu ada method stop yang

berhentikan jarum jam , lalu ada method run yang berfungsi mengambil jam detik dan

menit dari komputer kita , lalu ada drawHand , drawWedge, drawRoundedNum yang

masing” berfungsi untuk menggambarkan grafik 4 jam tersebut.

Output :

12. Program yang Kedua belas class GrafikGempa

Source :

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class TampilanGrafikGempa extends Canvas

{

private int jarakTitik;

private int titikTengah;

Page 47: Project Komputer Grafik

private int jumlahTitik;

private int[] titik;

public TampilanGrafikGempa (int jumlahTitik)

{

this.jumlahTitik = jumlahTitik;

titik = new int[jumlahTitik];

for (int i=0; i<jumlahTitik; i++)

titik[i] = (int)(Math.random()*41-20);

setBackground(Color.white);

}

@Override

public void paint (Graphics g)

{

jarakTitik = getWidth()/jumlahTitik + 1;

titikTengah = getHeight()/2;

g.setColor(Color.red);

g.drawLine(0, titikTengah, getWidth(), titikTengah);

g.setColor(Color.blue);

for (int i=1; i<jumlahTitik; i++)

{

g.drawLine((i-1)*jarakTitik, titikTengah+titik[i-1], i*jarakTitik,

titikTengah+titik[i]);

titik[i-1] = titik[i];

}

titik[jumlahTitik-1] = (int) (Math.random()*250-150);

}

}

class ProsesGrafik extends Thread

{

private TampilanGrafikGempa gambar;

public ProsesGrafik (TampilanGrafikGempa gambar)

Page 48: Project Komputer Grafik

{

this.gambar = gambar;

}

@Override

public void run()

{

while (true)

{

gambar.repaint();

try

{

Thread.sleep(100);

}

catch (Exception e)

{

}

}

}

}

public class GrafikGempa extends JFrame implements ActionListener

{

private TampilanGrafikGempa gambar = new TampilanGrafikGempa(65);

private ProsesGrafik proses = new ProsesGrafik(gambar);

private Button selesai = new Button("Selesai");

public GrafikGempa()

{

super ("Simulasi Grafik Gempa");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize (500,500);

setLocation(100, 100);

selesai.addActionListener(this);

Page 49: Project Komputer Grafik

getContentPane().setLayout(new BorderLayout());

getContentPane().add(gambar, BorderLayout.CENTER);

getContentPane().add(selesai, BorderLayout.SOUTH);

show();

proses.run();

setVisible(true);

}

public static void main (String[] args)

{

new GrafikGempa();

}

public void actionPerformed(ActionEvent e) {

try{

if (e.getSource()== selesai ) {

proses.run();

}

} catch(Exception ex ) {

System.err.println("error"+ex.getMessage());

}

}

}

Page 50: Project Komputer Grafik

Proses :

- Saya menggambar grafikGempa .

Page 51: Project Komputer Grafik

- Untuk background saya menggunakan background warna putih, untuk garis tengah

nya saya menggunakan warna merah dan untuk line grafik berjalannya saya

menggunakan warna biru.

- Untuk komponen yang terdapat dalam program ini adalah drawLine dan Button.

Output :

13. Program yang Ketigabelas class ImageZoomer

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ImageZoomer extends JApplet implements ActionListener

{

//static variables

public static final double DEFAULT_ZOOM_PERCENTAGE = 10.00;

public static final String ZOOM_CURSOR = "zoom_cursor.gif";

Page 52: Project Komputer Grafik

//public variables

private String images[] = {""merrycristmas.jpg",

"ayodance.jpg",

"a7x1.jpg",

"bg.jpg",

"kucing.jpg"};

private JButton m_launch;

private JList m_imageList;

private JTextField m_zoomPercentage;

public void init()

{

getContentPane().setLayout(new BorderLayout());

m_imageList = new JList(images);

m_imageList.setSelectedIndex(0);

m_launch = new JButton("Launch Image Zoomer");

m_launch.addActionListener(this);

Panel input = new Panel(new FlowLayout());

input.add(m_launch);

Panel input1 = new Panel(new FlowLayout());

input1.add(new Label("Enter zoom percentage: "));

m_zoomPercentage = new JTextField(5);

m_zoomPercentage.setText("10");

input1.add(m_zoomPercentage);

getContentPane().add(BorderLayout.NORTH, input1);

getContentPane().add(BorderLayout.CENTER, m_imageList);

getContentPane().add(BorderLayout.SOUTH, input);

}

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource().equals(m_launch))

{

//getting the image

Page 53: Project Komputer Grafik

String imageName = ((String)(m_imageList.getSelectedValue())).trim();

Image image = getImage(getCodeBase(), imageName);

Image zoomcursorImage = getImage(getCodeBase(), ZOOM_CURSOR);

MediaTracker mt = new MediaTracker(this);

mt.addImage(image, 1);

mt.addImage(zoomcursorImage, 2);

try

{

mt.waitForAll();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

double per = DEFAULT_ZOOM_PERCENTAGE;

try

{

per = Double.valueOf(m_zoomPercentage.getText().trim()).intValue();

}

catch(NumberFormatException numExp)

{

}

//create the Image Zoomer frame

ImageZoomerFrame imageZoomer = new ImageZoomerFrame(image, per,

imageName);

//set the zoom cursor image

imageZoomer.setZoomCursorImage(zoomcursorImage);

}

}

}

Page 54: Project Komputer Grafik

Proses :

- Dalam class program ini saya memasukkan beberapa komponent seperti Jlist , jButton

dan jTextField.

- Serta saya membuat array String untuk menampung nama gambar yang telah di

simpan.

- Pada program ini user di persilahkan untuk memilih gambar mana yang akan di

perbesar dengan kelipatan 10 atau nilai bisa di input sendiri oleh user sesuai

keinginan.

- Setelah itu gambar yang telah di pilih oleh user akan di tampilkan di frame baru.

Output :

Page 55: Project Komputer Grafik

14. Program yang Keempatbelas class ImageZoomerFrame

Source :

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ImageZoomerFrame extends JFrame

implements MouseListener, ActionListener

{

private ImagePanel m_imagePanel;

private JScrollPane m_srollPane;

private JPanel m_imageContainer;

Page 56: Project Komputer Grafik

private JLabel m_zoomedInfo;

private JButton m_zoomInButton;

private JButton m_zoomOutButton;

private JButton m_originalButton;

private Cursor m_zoomCursor; public ImageZoomerFrame(Image image, double

zoomPercentage, String imageName)

{

super("Image Zoomer [" + imageName + "]");

if(image == null)

{

add(new JLabel("Image " + imageName + " not Found"));

}

else

{

JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));

m_zoomInButton = new JButton("Zoom In");

m_zoomInButton.addActionListener(this);

m_zoomOutButton = new JButton("Zoom Out");

m_zoomOutButton.addActionListener(this);

m_originalButton = new JButton("Original");

m_originalButton.addActionListener(this);

m_zoomedInfo = new JLabel("Zoomed to 100%");

topPanel.add(new JLabel("Zoom Percentage is " +

(int)zoomPercentage + "%"));

topPanel.add(m_zoomInButton);

topPanel.add(m_originalButton);

topPanel.add(m_zoomOutButton);

topPanel.add(m_zoomedInfo);

m_imagePanel = new ImagePanel(image, zoomPercentage);

m_imagePanel.addMouseListener(this);

m_imageContainer = new JPanel(new FlowLayout(FlowLayout.CENTER));

m_imageContainer.setBackground(Color.BLACK);

m_imageContainer.add(m_imagePanel);

Page 57: Project Komputer Grafik

m_srollPane = new JScrollPane(m_imageContainer);

m_srollPane.setAutoscrolls(true);

getContentPane().add(BorderLayout.NORTH, topPanel);

getContentPane().add(BorderLayout.CENTER, m_srollPane);

getContentPane().add(BorderLayout.SOUTH,

new JLabel("Left Click to Zoom In," +

" Right Click to Zoom Out", JLabel.CENTER));

m_imagePanel.repaint();

}

pack();

setVisible(true);

}

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource().equals(m_zoomInButton))

{

m_imagePanel.zoomIn();

adjustLayout();

}

else if(ae.getSource().equals(m_zoomOutButton))

{

m_imagePanel.zoomOut();

adjustLayout();

}

else if(ae.getSource().equals(m_originalButton))

{

m_imagePanel.originalSize();

adjustLayout();

}

} public void setZoomCursorImage(Image zoomcursorImage)

{

m_zoomCursor = Toolkit.getDefaultToolkit().createCustomCursor(

zoomcursorImage, new Point(0, 0), "ZoomCursor");

Page 58: Project Komputer Grafik

} private void adjustLayout()

{

m_imageContainer.doLayout();

m_srollPane.doLayout(); m_zoomedInfo.setText("Zoomed to " +

(int)m_imagePanel.getZoomedTo() + "%");

}

public void mouseClicked(MouseEvent e)

{

if(e.getButton() == MouseEvent.BUTTON1)

{

m_imagePanel.zoomIn();

}

else if(e.getButton() == MouseEvent.BUTTON3)

{

m_imagePanel.zoomOut();

} adjustLayout();

}

public void mouseEntered(MouseEvent e)

{

m_imageContainer.setCursor(m_zoomCursor);

}

public void mouseExited(MouseEvent e)

{

m_imageContainer.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

public void mousePressed(MouseEvent e)

public void mouseReleased(MouseEvent e)

public class ImagePanel extends JPanel

{

private double m_zoom = 1.0;

private double m_zoomPercentage;

private Image m_image;

public ImagePanel(Image image, double zoomPercentage)

Page 59: Project Komputer Grafik

{

m_image = image;

m_zoomPercentage = zoomPercentage / 100;

}

public void paintComponent(Graphics grp)

{

Graphics2D g2D = (Graphics2D)grp;

//set the background color to white

g2D.setColor(Color.WHITE);

//fill the rect

g2D.fillRect(0, 0, getWidth(), getHeight());

//scale the graphics to get the zoom effect

g2D.scale(m_zoom, m_zoom);

//draw the image

g2D.drawImage(m_image, 0, 0, this);

}

public Dimension getPreferredSize()

{

return new Dimension((int)(m_image.getWidth(this) +

(m_image.getWidth(this) * (m_zoom - 1))),

(int)(m_image.getHeight(this) +

(m_image.getHeight(this) * (m_zoom -1 ))));

}

public void setZoomPercentage(int zoomPercentage)

{

m_zoomPercentage = ((double)zoomPercentage) / 100;

}

public void originalSize()

{

m_zoom = 1;

}

public void zoomIn()

{

m_zoom += m_zoomPercentage;

Page 60: Project Komputer Grafik

}

//Proses pengecilan image

public void zoomOut()

{

m_zoom -= m_zoomPercentage;

if(m_zoom < m_zoomPercentage)

{

if(m_zoomPercentage > 1.0)

{

m_zoom = 1.0;

}

else

{

zoomIn();

}

}

}

public double getZoomedTo()

{

return m_zoom * 100;

}

}

}

Page 61: Project Komputer Grafik
Page 62: Project Komputer Grafik

Proses :

- Dalam class ini saya menggunakan 6 komponen seperti Jpanel ,

jbutton ,Jlabel ,ScrollPane,imagePanel dan cursor .

- Dalam class program ini adalah sambungan class dari imagezoom yang sebelumnya .

dimana dalam class ini hanya menampilkan gambar yang telah di pilih oleh user

dalam class imagezoom.

Output :

Page 63: Project Komputer Grafik

15. Program yang kelimabelas Kelas About

Source :

import javax.swing.*;

import java.awt.event.*;

import java.sql.*;

import javax.swing.table.*;

import java.awt.*;

import javax.swing.border.EmptyBorder;

Page 64: Project Komputer Grafik

public class about extends JFrame {

JPanel panel = new JPanel ();

JLabel lblWall = new JLabel("");

JLabel judul = new JLabel(" Dosen : Nahot Frastian ,M.Kom "); JLabel foto = new

JLabel(""); JLabel nama = new JLabel(" Nama : Hamim Suyuti ");

JLabel npm = new JLabel(" Npm : 2012 4350 1163 "); JLabel telp = new JLabel(" Phone :

0857 7300 0035 "); JLabel kelas = new JLabel(" Kelas : R7H ");

JLabel jurusan = new JLabel(" Fakultas Teknik Informatika "); JLabel makul = new

JLabel(" Mata Kuliah : Komputer Grafik ");JLabel dosen= new JLabel(" Dosen : Nahot

Frastian, M.KOM ");

public about(){

super (" Creative By Hamim Suyuti "); setSize (610,340); panel.setBorder(new

EmptyBorder(5, 5, 5, 5)); setContentPane(panel); setLocation (395,220);

panel.setLayout(null); judul.setBounds (30,25,600,40); foto.setBounds

(100,100,150,190); foto.setIcon(new ImageIcon(about.class.getResource("admin.png")));

nama.setBounds (270,105,180,30);npm.setBounds (270,130,180,30);telp.setBounds

(270,205,180,30);kelas.setBounds (270,155,180,30);

jurusan.setBounds (270,180,180,30); makul.setBounds (270,230,180,30);

dosen.setBounds (270,255,180,30);

panel.add(judul); judul.setFont(new Font("Algerian", Font.BOLD, 30)); panel.add(foto);

panel.add(nama); panel.add(npm); panel.add(telp);

panel.add(kelas); panel.add(jurusan); panel.add(makul); panel.add(dosen);

lblWall.setIcon(new ImageIcon(about.class.getResource("bg.jpg")));

lblWall.setBounds(0, 0, 810, 500);panel.add(lblWall);

judul.setForeground ( Color.white ); nama.setForeground

( Color.white );npm.setForeground ( Color.white ); telp.setForeground ( Color.white );

kelas.setForeground ( Color.white ); jurusan.setForeground ( Color.white );

makul.setForeground ( Color.white );dosen.setForeground ( Color.white );

Page 65: Project Komputer Grafik

setVisible(true);

}

}

Proses :

- Saya Menggunakan import java.awt.* dan import javax.swing.* dalam kelas ini.

- Dalam class ini saya menggunkan 2 komponen yaitu Panel dan Label.

- Dimana panel ini berfungsi untuk menampung setiap komponen yang saya buat ,

sedangkan untuk masing text yang tampil saya menggunakan label.

Output :

Page 66: Project Komputer Grafik