Monday, January 21, 2013

Primitive Drawing

Primitive Drawing merupakan cara mudah untuk menggambar pada layar monitor menggunakan teori geometri sederhana. Macam-macam primitive drawing seperti menggambar sebuah titik, garis, atau gabungan antar keduanya. 

Grafika Komputer berawal dari primitif-primitif dasar grafis (titik, garis, lingkaran dll) yang mendeskripsikan objek-objek yang kemudian akan membentuk suatu citra dua dimensi maupun tiga dimensi. 

Jika dipandang sebagai bitmap (BMP) dalam citra, maka gambar tersebut direpresentasikan sbg :









Tapi jika di pandang sebagai vektor dalam grafik, maka gambar tersebut direpresentasikan sbg :

1. Cara pertama : (3,Timur),(4,Selatan),(3,Barat),(4,Utara).
Kelemahan : kita tidak dapat menentukan titik asal dari vektor.

2. Cara kedua : [(0,1),(0,3)], [(0,3),(4,3)], [(4,3),(4,1)], [(4,1),(0,1)]
Dengan cara ini, maka kita mengetahui titik asal dan tujuan sehingga kita dapat memperoleh arah dan besar dari vektor tersebut.

Arah = tan-1[(Y2-Y1)/(X2-X1)]                       Besar = Ö (X1-X2)2 + (Y1-Y2)2

3. Cara ketiga : Menggunakan informasi atribut segi empat. [(0,1),(4,3)] atau (0,1,4,3) Jika ada suatu gambar yang terdiri dari grafik dan area dapat diisi dengan warna tertentu, maka itu disebut grafik juga. Intinya grafik adalah gambar yang koordinatnya dapat diubah

Berikut akan Saya share script tentang primitive drawing (membuat Titik) dalam Bahasa Java


import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;

import javax.swing.JPanel;
import javax.swing.JFrame;

import java.util.Random;

public class Points extends JPanel {

  public void paintComponent(Graphics g) {
      super.paintComponent(g);

      Graphics2D g2d = (Graphics2D) g;

      g2d.setColor(Color.blue);

      Dimension size = getSize();
      Insets insets = getInsets();

      int w =  size.width - insets.left - insets.right;
      int h =  size.height - insets.top - insets.bottom;

      Random r = new Random();

      for (int i=0; i<1000; i++) {
          int x = Math.abs(r.nextInt()) % w;
          int y = Math.abs(r.nextInt()) % h;
          g2d.drawLine(x, y, x, y);
      }
  }

  public static void main(String[] args) {

      JFrame frame = new JFrame("Points");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.add(new Points());
      frame.setSize(250, 200);
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
  }
}

Output


Read More

Materi Grafika Komputer

Materi - materi Grafika Komputer yang akan Kita Bahas Adalah

Grafika 1

Grafika 2
  • Z-Order dan Z-buffer
  • Morphing
  • Color Map
  • Texture Map
  • Curve
  • Camera View
  • Tranformasi Geometri 


Read More

PENGENALAN GRAFIKA KOMPUTER

Grafika komputer adalah bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi gambar (visual) secara digital.  Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra (image processing), dan pengenalan pola (pattern recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data.

Grafika komputer pada dasarnya adalah suatu bidang ilmu komputer yang mempelajari tentang cara-cara untuk meningkatkan dan memudahkan komunikasi antara manusia dengan mesin (komputer) dengan jalan membangkitkan, menyimpan dan memanipulasi gambar model suatu obyek menggunakan komputer. Grafika komputer memungkinkan kita berkomunikasi lewat gambar-gambar, bagan-bagan dan diagram-diagram

Perbedaan Antara Grafika & Image Processing

Grafika
Image Processing
Grafika komputer menghasilkan suatu gambar Image processing mengolah suatu gambar
Materinya berisi teknik teknik menggambar Materinya berisi teknik memperbaiki dan menyajikan informasi darigambar
Hasilnya gambar Hasilnya bisa gambar atau informasi


Perbedaan Photo & Gambar

Photo
Gambar
Photo  dihasilkan dari capture (mengambil) gambar yang ada
Gambar dihasilkan dari proses pembuatan atau peniruan
Detail dari setiap obyek lengkap. Misalnya jumlah kumis pada kucing tertangkap apa adanya.
Detail tidak lengkap. Misalnya siapa yang mau menghitung jumlah kumis kucing baru digambarkan sesuai dengan jumlahnya


Elemen - Elemen Grafis


Read More

Sunday, January 20, 2013

PERBEDAAN PROGRAM DAN ALGORITMA


Program adalah kompulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa:

Program = Struktur Data + Algoritma

Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, semikian juga sebaliknya. Pembuatan algoritma mempunyai banyak keuntungan diantaranya:
  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrogramanmanapun, artinya penulisan algoritma independen dari bahasa pemrograman dankomputer yang mengeksekusinya.
  • Notasi algoritmik dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu dalam membuat algoritma diperhatikan:
  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti pada notasibahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Tiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini karena teks algoritma tidak sama dengan teks program. Namun supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan olehkomputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalankannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikansuatu permasalahan ke dalam bahasa pemrograman.

Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan olehkomputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan ketika translasi tersebut yaitu:
  1. Pendeklarasian variabel : Apakah bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel karena tidak semua bahasa pemrograman membutuhkannya.
  2. Pemilihan tipe data : Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu dipertimbangkan pada saat pemilihan tipe data.
  3. Pemakaian instruksi-instruksi : Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
  4. Aturan sintaks : Pada saat menulis program kita terikat dengan aturan sintaks dari bahasa pemrograman yang akan digunakan.
  5. Tampilan hasil : Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini kita perhatikan ketika mengkonversikannya menjadi program.
  6. Cara pengopersian compiler atau interpreter. Bahasa pemrograman yang digunakan termasuk kelompok compiler atau interpreter.

Beberapa persyaratan untuk membuat algoritma yang baik adalah:
  • Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
  • Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
  • Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
  • Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
  • Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (dikelola).
  • Portabilitas yang tinggi (Portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
Contoh Algoritma Kehiudpan Sehari-hari



Read More

Mencari Bilangan Faktorial Menggunakan Pemrograman JAVA


Dalam matematika, faktorial dari bilangan asli n adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan disebut n faktorial. Sebagai contoh, 7! adalah bernilai 7×6×5×4×3×2×1 = 5040.

Berikut Flowchart Untuk Mencari bilangan Faktorial




Berikut Source Code untuk Mencari Bilangan Faktorial

public class Faktorial {
    public static void main(String [ ] args) {

String hasilX=" ";
boolean angka=false;
int hasil=1;
int f = 0;


while (!angka) {
    try {
     f=Integer.parseInt(JOptionPane.showInputDialog("Masukkan Angka : "));

    angka=true;
    } catch (Exception e) {
    JOptionPane.showMessageDialog(null,"Bukan Angka");
    }
 }
     for(int i=f;i>=1;i--) {
    
    hasil=hasil*i;
    if (1<i)
    hasilX=hasilX+i + " x ";
    else
    hasilX= hasilX+i ;
    }
     
JOptionPane.showMessageDialog(null,"Hasil dari "+f+"! adalah "+hasilX +" = " +hasil);
System.exit(0);
}
}


output :







Source Code Dapat Di Download Disini

Read More

Program Single Layer Perceptron dengan Java

Ini adalah pemrograman sederhana dengan menggunakan algoritma Perceptron untuk pembelajaran fungsi OR.

Source Code Dapat di download Disini
Read More