Senin, 15 Desember 2014

Grafika Komputer - 3D

Membuat tampilan 3D

package penggunaanawt;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TigaDimensi extends JPanel {
  public void paint(Graphics g) {
    g.setColor (Color.gray);
    g.draw3DRect (25, 10, 50, 75, false); //(titik kiri atas, lebar x, lebar y)
    g.draw3DRect (25, 110, 50, 75, true);// kiri bawah
     g.setColor (Color.blue);
    g.fill3DRect (100, 10, 50, 75, false); //kanan atas
    g.fill3DRect (100, 110, 50, 75, true); //kanan bawah
  }
  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new TigaDimensi());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 400);
    frame.setVisible(true);
  }
}

Outputnya :



Sekian untuk kali yah,,,,



Teknik Kompilasi (Reaksi Kompilator dalam sebuah Program)



REAKSI KOMPILATOR PADA KESALAHAN DALAM SEBUAH PROGRAM



Reaksi yang dapat diterima
Reaksi yang sudah dapat dilakukan (dewasa ini), yaitu melaporkan kesalahan, dan selanjutnya melakukan:
Recovery / pemulihan, lalu melanjutkan menemukan kesalahan yang lain bila masih ada.
Repair / Perbaikan kesalahan, lalu melanjutkan proses translasi dan menghasilkan program objek yang valid.

Reaksi yang belum dapat dilakukan (dewasa ini), yaitu kompilator mengkoreksi kesalahan, lalu menghasilkan program objek sesuai dengan yang diinginkan pemrogram.

ERROR RECOVERY
Tujuannya mengembalikan parser ke kondisi stabil (supaya bisa melanjutkan proses parsing ke posisi selanjutnya).

Strategi yang dilakukan sebagai berikut :
Mekanisme Ad Hoc : Recovery yang dilakukan tergantung dari pembuat kompilator sendiri / Spesifik, dan tidak terikat pada suatu aturan tertentu. Cara ini biasa disebut juga special purpose error recovery
Syntax Directed Recovery : Melakukan recovery berdasarkan syntax
Contoh : program
                                       begin
                                              A:=A+1
                                                   B:=B+1;
                                              C:=C+1
                                       end;

kompilator akan mengenali sebagai (dalam notasi BNF)
begin < statement>?<statement>;<statement>end;
? akan diperlakukan sebagai “;”

Secondary Error Recovery
Berguna untuk melokalisir kesalahan, caranya :
Panic mode
Maju terus dan mengabaikan teks sampai bertemu delimeter (misal ‘:’)
contoh :
                        if A := 1
                            Kondisi := true;

Teks diatas terjadi kesalahan karena tidak ada instruksi THEN, kompilator akan maju terus sampai bertemu ‘;’

Unit deletion
Menghapus keseluruhan suatu unit sintaktik (misal: <block>,<exp>,<statement> dan sebagainya), efeknya sama dengan panic mode tetapi unit deletion memelihara kebenaran sintaksis dari source program.

Context Sensitive Recovery
Berkaitan dengan semantik, misal bila terdapat variabel yang belum dideklarasikan (undifined variabel) maka diasumsikan tipenya berdasarkan kemunculannya.

Sekian...


Sistem Pakar - Radial Basic Function (RBFN)

Contoh Program Gambar menggunakan AWT Java

Kali ini saya akan memberikan contoh program menggambar menggunakan awt pada bahasa pemrograman Java.


Source Code :

package penggunaanawt;

/**
 *
 * @author Ay
 */
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;

/**
 *
 * @author Toshiba
 */
public class AWT1 extends Panel {
    AWT1 () {
        setBackground (Color.cyan);
    }
  
    public void paint(Graphics u)
    {
  
    //Rumput
    u.setColor(Color.GREEN);
    u.fillRect(0, 200, 590, 270);
  
  
    //Matahari
    u.setColor(Color.yellow);
    u.fillOval(430, 50, 80, 80);
  
    u.setColor(new Color(245,135,14));  //cahaya matahari
    u.drawLine(430, 90, 380, 90);   //garis kiri
    u.drawLine(440, 60, 380, 30);   //kiri atas
    u.drawLine(440, 120, 380, 150);   //kiri bawah
    u.drawLine(560, 90, 510, 90);   //garis kanan
    u.drawLine(560, 30, 500, 60);   //kanan atas
    u.drawLine(560, 150, 500, 120);   //kanan bawah
    u.drawLine(470, 10, 470, 50);   //utara
    u.drawLine(470, 130, 470, 170); //selatan
  
    //Awan
    u.setColor(Color.white);
    u.fillOval(20, 15, 70, 70);
    u.fillOval(50, 15, 70, 75);
    u.fillOval(100, 15, 70, 70);
  
    //Rumah
    u.setColor(Color.RED);
    u.fillRect(10, 300, 100, 150);
  
    //Pintu Rumah
    u.setColor(Color.BLUE);
    u.fillRect(50, 374, 50, 75);
  
    //Gagang Pintu
    u.setColor(Color.YELLOW);
    u.fillOval(88, 400, 10, 10);
  
    //Atap Rumah
    u.setColor(Color.ORANGE);
    int x[] = new int[] {10,60,110};
    int y[] = new int [] {300,250,300};
    u.fillPolygon(x, y, 3);
  
    //Jalan
    u.setColor(Color.gray);
    int a[] = new int[]{580,240,410,580};
    int b[] = new int[]{200,460,460,320};
    u.fillPolygon(a, b, 4);
  
    //Garis Jalan 1
    u.setColor(Color.white);
    int c[] = new int[]{530,560,570,540};
    int d[] = new int[]{280,260,260,280};
    u.fillPolygon(c, d, 4);
  
    //Garis Jalan 2
    int e[] = new int[]{440,470,480,450};
    int f[] = new int[]{360,340,340,360};
    u.fillPolygon(e, f, 4);
  
    //Garis Jalan 3
    int g[] = new int[]{340,370,380,350};
    int h[] = new int[]{450,430,430,450};
    u.fillPolygon(g, h, 4);
  
  
    }
  

    public static void main(String[] args) {
     Frame f1 = new Frame();
     AWT1 H = new AWT1();
     f1.add(H);
     f1.setSize(600, 500);
     f1.setVisible(true);
      
    }
}


Hasil Outputnya :




ThankYu.....

God Bless


Image Enhancement

Image Enhancement Diketahui : r 1 = 0,3   ; r 2 =   0,5    ; r 3 = 0,8   s 1 = 0,1   ; s 2 =   0,4   ; s 3 =   0,6 ...