Wednesday, January 7, 2015

TUGAS GRAFIKA KOMPUTER 4 MEMBUAT ANIMASI BERGERAK

hay...hay kita jumpa lagi ini,sudah lama yach kita tak jumpa ....
ini saya ada membuat suatu aplikasi tentang animasi bergerak dengan mengunakan "JAVA"

anda bisa lihat coding dibawah ini...
package penggunaanawt;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class AwtDemo extends JPanel {

   //Membuat variabel thread

    Thread animasi, repaint;
    int x=10,y=10,a=10, batas = 240;
    int xOrang = -100, yOrang = 100, v = 1;


    public AwtDemo() {
        setPreferredSize(new Dimension(500, 300));
        setFocusable(true);
        setBackground(Color.black);
        requestFocusInWindow();
        initThread();
        //untuk memulai thread
        animasi.start();
        repaint.start();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        drawText(g2);
        drawOrang(g2, xOrang, yOrang, v);
    }

    //method untuk menampung thread
    public void initThread() {
        animasi = new Thread(new Runnable() {

            public void run() {
                while (true) {
                 
                    if (xOrang < 500) {
                        if (v == 1) {
                            xOrang = xOrang + 10;
                            v = 2;
                        } else {
                            xOrang = xOrang + 10;
                            v = 1;
                        }
                    } else {
                        xOrang = -100;
                    }
                    // </editor-fold>
                    try {
                        //untuk mengatur kecepatan thread, semakin kecil nilai semakin cepat
                        Thread.sleep(150);
                    } catch (Exception e) {
                    }
                }
            }
        });

        repaint = new Thread(new Runnable() {

            public void run() {
                while (true) {
                  
                    if(a<batas){
                        a=a+15;
                        batas=240;
                    }else{
                        a=a-15;
                        batas=15;
                    }
                    // </editor-fold>

                  
                    x=(int)(Math.random()*10);
                    y=(int)(Math.random()*10);
                    // </editor-fold>
                    try {
                        //untuk mengatur kecepatan thread, semakin kecil nilai semakin cepat
                        Thread.sleep(10);
                    } catch (Exception e) {
                    }
                    //untuk memanggil repaint
                    SwingUtilities.invokeLater(new Runnable() {

                        public void run() {
                            repaint();
                        }
                    });
                }
            }
        });
    }

    public void drawText(Graphics2D g2) {
        g2.setFont(new Font("Comic sans ms", 1, 35));
        g2.setColor(new Color((int)(Math.random()*250), (int)(Math.random()*250), (int)(Math.random()*250), a));
        g2.drawString("Orpa Yunita Pesek", 20+x, 50+y);
    }

    public void drawOrang(Graphics2D g2, int x, int y, int v) {
        g2.setStroke(new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
        Ellipse2D kepala = new Ellipse2D.Double(x + 38, y + 10, 20, 20);

        GeneralPath gp = new GeneralPath();
        gp.moveTo(x + 46, y + 32);
        gp.lineTo(x + 34, y + 52);
        gp.lineTo(x + 27, y + 73);

        gp.moveTo(x + 46, y + 32);
        gp.lineTo(x + 54, y + 55);
        gp.lineTo(x + 71, y + 72);

        gp.moveTo(x + 46, y + 32);
        gp.lineTo(x + 46, y + 69);
        gp.lineTo(x + 46, y + 93);
        gp.lineTo(x + 26, y + 112);

        gp.moveTo(x + 46, y + 69);
        gp.lineTo(x + 59, y + 93);
        gp.lineTo(x + 66, y + 118);
//=============================================================
        Ellipse2D kepala1 = new Ellipse2D.Double(x + 42, y + 10, 20, 20);

        GeneralPath gp1 = new GeneralPath();
        gp1.moveTo(x + 46, y + 29);
        gp1.lineTo(x + 40, y + 48);
        gp1.lineTo(x + 40, y + 77);

        gp1.moveTo(x + 46, y + 29);
        gp1.lineTo(x + 49, y + 58);
        gp1.lineTo(x + 51, y + 74);

        gp1.moveTo(x + 46, y + 29);
        gp1.lineTo(x + 46, y + 68);
        gp1.lineTo(x + 52, y + 90);
        gp1.lineTo(x + 46, y + 120);

        gp1.moveTo(x + 46, y + 68);
        gp1.lineTo(x + 60, y + 92);
        gp1.lineTo(x + 38, y + 106);

        g2.setPaint(Color.green);

        if (v == 1) {
            g2.fill(kepala);
            g2.draw(gp);
            g2.draw(kepala);
        } else if (v == 2) {
            g2.fill(kepala1);
            g2.draw(gp1);
            g2.draw(kepala1);
        }
    }

    public void xplay() {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                final JFrame frame = new JFrame("Animasi Orang");
                frame.setDefaultCloseOperation(
                        JFrame.EXIT_ON_CLOSE);
                frame.add(new AwtDemo());
                frame.pack();
                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });

    }
    // </editor-fold>

    public static void main(String salis[]) {
        new AwtDemo().xplay();
    }
}



ini ouputnya...





Monday, October 20, 2014

TUGAS SISTEM PAKAR YANG KE 1



PenyelesaianFungsi Sigmoid 














Tentukandulu input dan target nya…!!! Input = x1 dan x2 kemudian Target = y1 dan y2

X1 = 89                Y1 =0.14 (Target yang akan di capai)
X2 = 10                Y2 =0.99 (Target yang akan di capai)

Terlebihdahulunormalisasiinputandengancarabilanganterkecil di bagibilanganterbesar. Hasilnyadibawahini :

X1 = 1                  Y1 =0.14 (Target yang akan di capai)
X2 = 0.112           Y2 =0.99 (Target yang akan di capai)


Inisialisasi :
α = 0.7
s = 1



V01 = 0.4
W01 = 0.2
V02 = 0.5
W02 = 0.3
V11 = 0.8
W11 = 0.6
V12 = 0.9
W12 = 0.5
V21 = 0.6
W21 = 0.4
V22 = 0.6
W22 = 0.2










Z in 1   = v01 * 1 + v11 * x1 + v21*x2
            = 0.4*1+0.8*1+0.6*0.112
            = 1.267

Z1        = 1/(1+e-1.267) = 0.780

                            Ket :tandamerahdapat di cakarsecara manual
                            e =2.718            maka
                                           Z1 = 1 / (1 + (1/2.718^1.267)) = kerjakandahulu yang bewarnabiru
                                                = 1/(1+0.28)
                                                = 0.78


Z in 2   = v02*1 + v12*x1 + v22*x2
            = 0.5*1  + 0.9*1    + 0.6*0.112
            = 1.467

Z2        = 1 / (1+e-1.467) = 0.680

Y in 1  = w01*1 + w11*z1 + w21*z2
            = 0.2*1  + 0.6*0.780 + 0.4*0.680
            = 0.893

Y in 2  = w02*1 + w12*z1 + w22*z2
            = 0.3*1 + 0.5*0.780 + 0.2*0.680
            = 0.753

Y1       = 1 / (1 + e-0.893) = 0.710

Y2       =1 / (1 + e-0.753) = 0.680

d1        = (y1 – y1’) * (e-y in 1) / (1 + e-y in 1)2
            = (0.14 – 0.710) * (e-0.893) / (1 + e-0.893) = -0.105

d2        =(y2– y2’) * (e-y in 2) / (1 + e-y in 2)2
            = (0.99 – 0.680) * (e-0.753) / (1 + e-0.753) = 0.064

Dw01   = α * (d1)
            = 0.7 * (-0.105)
            = -0.075

Dw02   =α * (d2)
            = 0.7 * (0.064)
            = 0.045

Dw11   =α * (d1) * z1
            = 0.7 * (-0.105) * 0.780
            = -0.057

Dw12   = α * (d2) * z1
            = 0.7 * (0.064) * 0.780
            = 0.035

Dw21   =α * (d1) * z2
            = 0.7 * (-0.105) * 0.680
            = -0.057

Dw22   =α * (d2) * z2
            = 0.7 * (0.064) * 0.680
            = 0.037

din 1    =d1*w11 + d2*w12
            = (-0.105) * 0.6 + (0.064) * 0.5
            = -0.031

d1        =d in 1 * e-1.267 / (1+e-1.267)2
            = 0.005

din 2    =d1*w21 + d2*w22
            = (-0.105) * 0.4 + (0.064) * 0.2
            = -0.029

d2        =d in 2 * e-1.467/ (1+e-1.467)2
            = -0.006

Dv01    =α * (d1) = 0.7 * (0.005) = -0.0037

Dv02    =α * (d2) = 0.7 * (-0.006) = -0.0044

Dv11    =α * (d1) * x1
            = 0.7 * (0.005) * 1
            = -0.0037

Dv12    =α * (d2) * x1
            = 0.7 * (-0.006) * 1
            = -0.0044

Dv21    =α * (d1) * x2
            = 0.7 * (0.005) * 0.112
            = -0.0004

Dv22    = α * (d2) * x2
            = 0.7 * (-0.006) * 0.112
            = -0.0005

Selanjutnya menentukan nilai baru dari v dan w :

V01     = 0.4 + (-0.0037) = 0.396
V02     = 0.5 + (-0.0044) = 0.50
V11     = 0.8 + (-0.0037) = 0.80
V12     = 0.9 + (-0.0044) = 0.90
V21     = 0.4 + (-0.0004) = 0.60
V22     = 0.6 + (-0.0005) = 0.60
W01    = 0.2 + (-0.075)   = 0.03
W02    = 0.3 + (0.045)     = 0.25
W11    = 0.6 + (-0.057)   = 0.54
W12    = 0.5 + (0.045)    = 0.54
W21    = 0.4 + (-0.057)  = 0.34
W22    =0.2 + (0.037)    = 0.24



Setelahsemuanyasudah di caridenganbetulmakaakan di dapatkannilaibaruuntuk V dan W
Karna Y1 dan Y2 dalamperhitungan di atasbelummemenuhi target, makaharus di carilagimenggunakan proses perulangan.
Karenaharusmenyelesaikandengan proses perulanganmakadariitugunakanaplikasiMs.excel agar dapatmenyelesaikanmasalahtersebuttampilannyasepertigambarberikutini :



 






Target yang inginkitacari  :

 Y1 = 0.14
 Y2 = 0.99

gambar di atasmenyatakanbahwa yang bewarnamerahitu Y1 = 0.195 dan yang bewarnabiruitu Y2 = 0.810 ,,, berartibahwapengalamanuntukmencapaisebuah target dapatberhasil, karenanilai Y2 perlahan - lahanmendekati target yang diinginkan.