Showing posts with label Dasar-Dasar Pemrograman. Show all posts
Showing posts with label Dasar-Dasar Pemrograman. Show all posts

Saturday, August 16, 2014

Dasar-Dasar Pemrograman II - Algoritma

Assalamualaikum warahmatullah, Konniciwa Mina! Bagaimana dengan pembahasan sebelumnya di Dasar-Dasar Pemrograman I? Mudah dipahami bukan? Dalam DDP kali ini kita akan bahas lebih detail tentang apa itu yang dimaksud dengan algoritma. Menurut KBBI alias Kamus Besar Bahasa Indonesia, Algoritma dalam matematika dan komputasi

Posted By Unknown6:19 PM

Wednesday, August 13, 2014

Dasar - Dasar Pemrograman I

Assalamualaikum warahmatullah. Konnichiwa, mina!
Setelah mengerjakan TA kurang lebih satu tahun yang rasanya... super sekali :') akhirnya akan saya mulai kembali untuk sharing sedikit tentang keinformatikaan. Kali ini saya mencoba share pelajaran dasar untuk memulai pemrograman.
Kalau prinsip dari Jurusan tempat saya belajar selama 3 tahun ini adalah:
1. Belajar pemrograman tidak sama dengan belajar bahasa pemrograman
Ini berarti akan saya jelaskan bagaimana kita dapat mengerti pemrograman secara konsep, bukan berdasarkan bahasa pemrograman tertentu. Karena pada dasarnya ketika kita telah mengerti konsep penjumlahan bulat, kita akan dapat menjumlahkan segala jenis bilangan bulat. Lain halnya jika kita belajar 2+2, belum tentu dapat mempelajari 3x+4y :D
2. Lakukan secara rutin
Mau sebanyak apapun konsep yang anda kuasai pada suatu waktu, jika tidak anda ulang-ulangi, dijamin dalam waktu dua minggu konsep tersebut akan dilupakan.
3. Diskusi
Ini penting, demi pengembangan konsep yang telah ada sebelumnya untuk menciptakan konsep baru yang kita anggap benar untuk menyelesaikan suatu permasalahan tertentu. Terlalu teoritis? baik kita mulai belajarnya!

hal-hal yang haru diketahui pada awal belajar pemrograman adalah:

1. TIPE DATA
sesuai dengan jenisnya, tipe data berarti menjelaskan jenis untuk setiap data yang akan di olah di dalam komputer. Ada jenis, berarti tiap data memiliki perbedaan dengan data yang lain. Jika waktu SMP kita diajarkan notasi A={x|x>12, x E I}, dibaca : x sedemikian sehingga x lebih dari 12, x merupakan anggota bilangan bulat. artinya nilai x adalah ...,3,2,1,2,3...,12. Jika terdapat notasi B = {a,b,c,d,e} itu berarti himpunan B terdiri dari HURUF a,b,c,d dan e. Nah, mengapa 3,2,1 disebut sebagai angka? dan mengapa a,b,c,d, dan e disebut sebagai huruf? Ya, benar. Jawabannya karena mereka memiliki karakteristik yang berbeda, keperluan, kebutuhan dan operasi yang berbeda. angka dapat dijumlahkan, huruf tidak dapat dijumlahkan. hal-hal tersebut yang kemudian kita sebut sebagai tipe atau jenis suatu data atau lebih singkatnya adalah TIPE DATA. Lalu tipe data apa sajakah yang terdapat dalam ilmu pemrograman?
a. Tipe data Primitif, tipe data paling sederhana atau atomik atau tidak dapat diperkecil lagi.

  • Integer, dalam bahasa Indonesia berarti bilangan bulat. Perhatikan angka 1, 2, 3, 10, 108, 999! masing-masing dapat disebut sebagai bilangan bulat karena tidak terdapat tanda desimal seperti titik (Internasional) atau koma (Indonesia). Utuh atau dengan kata lain bukan pecahan. Dalam ilmu pemrograman bilangan bulat terdiri dari 3 jenis yaitu decimal (basis 10), hexadecimal (basis 16) dan octal (basis 8). Angka yang kita pelajari pada umumnya di bangku sekolah adalah bilangan basis 10. Tidak perlu khawatir, dalam dasar-dasar pemrograman hal ini tidak perlu dikhawatirkan karena tidak perlu diperhatikan. Kita cukup akan mengambil contoh kasus dengan bilangan basis 10.
  • Real, dalam bahasa Indonesia disebut sebagai desimal. Contoh: 1.25346, 567.12, 0.001.
  • Character, dalam bahasa Indonesia berarti huruf. Namun, di dalam ilmu pemrograman sebuah huruf harus ditandai dengan tanda petik satu ('...') sebelum dan setelah penulisan huruf itu sendiri. Contoh: 'a','b','c','A','B'. 'a' tidak sama dengan 'A', begitu dengan 'b' dengan 'B' dan 'c' dengan 'C'. Lalu bagaimana dengan '1', '2', '3'? Apakah dapat disebut sebagai huruf? Ya. Semua jenis data yang diawali dan diakhiri tanda petik satu disebut sebagai character/karakter/huruf.
  • String, merupakan kumpulan dari karakter dan ditandai dengan tanda petik dua ("...") sebelum dan sesudah penulisan huruf itu sendiri. Contoh: "Ayam","Bebek","085624742249","myAccount1234".
  • Boolean, yang menunjukkan nilai kebenaran suatu data. Jadi, isinya hanya TRUE atau FALSE saja.
  • Pointer, yang menunjuk suatu alamat tertentu pada memori komputer dan dinotasikan dengan bilangan hexadecimal. Contoh: FFF111
b. Tipe data Non-primitif, yaitu tipe data yang terdiri dari satu atau lebih jenis tipe data primitif.
  • array, adalah tipe data yang terdiri dari banyak elemen data namun memiliki satu jenis tipe. Dinotasikan dengan tanda [10]. Misalnya adalah A : data array dengan tipe integer berelemen 10. Atau dapat ditulis dengan A : integer [10].
  • record, adalah tipe data yang terdiri dari banyak elemen data dan memiliki satu atau lebih jenis tipe. Misalnya: mahasiswa : Record {nim : character[9], nama : string, jumlah adik : integer}
2. VARIABEL
variabel merupakan suati notasi yang digunakan untuk menampung sebuah data. Variabel dapat dianalogikan sebagai keranjang bola. Maka untuk mendefiniskan suatu bola, diperlukan keranjang untuk menampung bola tersebut. Masih ingat pelajaran tentang notasi aljabar ketika SMP? misalnya terdapat notasi 5x + 7. 5 disebut sebagai koefisien, x merupakan variabel dan 7 merupakan konstanta. Apa yang menjadi ciri-ciri dari masing-masing jenis data tersebut? Ya. koefisien adalah segala bentuk angka yang kedudukannya berdampingan dengan variabel yang fungsinya sebagai pengali dari variabel. Nah, jika x diganti dengan 2, maka hasil dari operasi tersebut adalah 17, jika x diganti dengan 3 maka hasil dari notasi tersebut adalah 22. Dapat kita simpulkan bahwa variabel adalah suatu elemen yang nilainya dapat diubah-ubah. Lalu, bagaimana dengan konstanta. Ya. sesuai dengan namanya, konstanta berarti suatu elemen yang konstan atau nilainya tidak dapat diubah-ubah. Cukup mudah bukan? Yap. Yang pernah SMP dan SMA tidak akan kesulitan untuk memahami konsep ini!
Variabel di dalam ilmu pemrograman memiliki aturan-aturan berikut ini yang tidak dapat dilanggar, yaitu:
  • terdiri dari satu rangkaian huruf, angka, huruf dan angka. Contoh: a, b, temporary.
  • pada variabel yang teridiri dari rangkaian huruf dan angka, tidak boleh didahului oleh angka. Contoh : 12boneka (Salah), account1234 (benar).
  • Tidak boleh mengandung simbol atau tanda operasi, contohnya: '!@#$%^&*()++' (kecuali space, '-' dan '_')
  • beberapa bahasa pemrograman bersifat case sensitive, artinya huruf kapital dan huruf kecil memiliki arti yang berbeda, namun ada pula yang non case sensitive.
3. ASSIGNMENT
assignment merupakan operasi yang dilakukan dalam suatu alur pemrograman. Assignment disebut SAHIH jika sesuai dengan prinsip variabel dan tipe data, sebaliknya disebut TIDAK SAHIH. Berikut ini merupakan sebuah potongan algoritma suatu pemrograman.
a,b : variabel tunggal (primitif) dengan tipe data integer
e : variabel tunggal dengan tipe data boolean
c,d : variabel tunggal dengan tipe data character

//contoh algoritma
// <-- dibaca 'diisi'
1. a <-- b (SAHIH, karena a bertipe data integer dan b juga integer)
2. a <-- e (TIDAK SAHIH, karena a bertipe data integer dan e bertipe data boolean)
3. a <-- b+c (TIDAK SAHIH, karena b tidak dapat dilakukan operasi penjumlahan dengan c yang bertipe data karakter)
4. a <-- 1 (SAHIH, karena a diisi dengan bilangan bulat 1)
5. a <-- True (TIDAK SAHIH, karena a bertipe data integer dan tidak bisa diisi dengan nilai Boolean)
6. c <-- 2*d (TIDAK SAHIH, perkalian (*) bukan operasi pada data karakter)
7. c <-- 'a' (SAHIH)
dst...

4. OPERASI
operasi merupakan suatu perlakuan yang diberikan kepada data sehingga menyebabkan perubahan kondisi atau state.

  • Operator aritmatika yang teridiri dari * (perkalian), / (pembagian), + (penjumlahan), - (pengurangan), sqrt() akar dan ^ (pangkat). Operator ini hanya dapat diberikan kepada data bertipe integer
  • Operator Logika yang terdiri dari AND, OR, XOR. Operator ini hanya dapat diberikan kepada data bertipe Boolean

Baik, sudah cukup paham bukan dengan penjelasan sederhana di atas? Jika sudah, mari kita belajar tentang notasi penulisan program dalam bahasa manusia atau yang disebut sebagai PSEUDO CODE. berikut merupakan urutan yang harus diperhatikan pada setiap penulisan program dalam bahasa manusia, yaitu:
  • Nama Program, menjelaskan nama program yang akan kita buat, contoh: Program penjumlahan dua buah angka
  • Kamus Data, menjelaskan data apa saja yang dibutuhkan oleh program. Misalnya pada program penjumlahan dua buah angka berarti kita membutuhkan 3 buah variabel. satu variabel untuk menampung bilangan pertama, varibel ke dua untuk menampung bilangan kedua, dan variabel terakhir untuk menampung hasil penjumlahan dua buah bilangan tersebut. Maka Kamus data dapat dituliskan sebagai berikut: bil1,bil2,bil3 : variabel tunggal (primitif) dengan tipe data integer
  • IS (Initial State), merupakan kondisi awal sebelum program dijalankan. Misalnya kondisi awal bil1 beriisi angka 1, bil2 beriisi angka 2, dan bil3 diisi 0. Maka, IS dapat dituliskan sebagai berikut:

bil1 <-- 1
bil2 <-- 2
bil3 <-- 0
  • Algoritma, merupakan sejumlah urutan langkah-langkah yang harus dijalankan pada program dan dieksekusi oleh compiler pada komputer sesuai dengan urutan yang dituliskan pada algoritma itu sendiri. Contoh algoritma untuk menjumlahkan dua buah bilangan adalah:
bil3 <-- bil1+bil2
write (bil3)

artinya bil3 diisi dengan penjumlahan bil1 dan bil2 dan kemudian nilai pada bil3 ditampilkan pada layar monitor.
  • FS(Final State), merupakan kondisi akhir setelah program/algoritma dijalankan. Misalkan pada kasus ini Final Statenya bil3 berisi nilai penjumlahan dua buah bilangan. Jadi FS ditulis dengan bil3 telah terisi dengan penjumlahan dua buah bilangan bil1 dan bil2.
Mudah bukan? Nah, mari mulai mengeksekusinya dengan bahasa pemrograman betulan!
Saya menyarankan untuk menggunakan Bahasa C dengan Compiler TCWIN45 atau Turbo C++. Anda bisa mendownloadnya secara gratis dengan mencarinya di Google (percaya saja sama mbah Google).
Langkah-langkahnya sebagai berikut:
  • Buka Turbo C++ pada komputer
  • Buka File, New
  • Tuliskan rangkaian program berikut:
/* Ini baris Komentar */
/* Nama Program : Penjumlahan dua buah bilangan
   Author       : Novida Wayan Sari */

#include <stdio.h> //ini adalah baris pemanggilan library C yang menyediakan input output

int main(){ //Program utama
   int bil1,bil2,bil3; //Kamus Data
   bil1 = 1;
   bil2 = 2;
   bil3 = bil1+bil2;
   printf("hasil penjumlahannya adalah %d",bil3);
   return (0);
}
  • simpan dengan nama penjumlahan.cpp
  • compile program terlebih dahulu untuk memastikan tidak ada error yang disebabkan karena penulisan kode yang salah dengan menekan menu Project, Compile
  • Jika tidak ada error, Run program dengan menekan Ctrl+F9 atau menu Debug, Run.
  • Cobalah untuk mengganti nilai pada bil1 dan bil2 dengan bilangan yang lain
SELAMAT BEREKSPERIMEN!!!

Posted By Unknown12:34 PM

Sunday, April 13, 2014

Base of Computer Graphics using Ms. Excel - Euro's Flag

Assalamualaikum warahmatullah. Konbanwa mina! Latepost. Ini dia sesi chalenge yang akan menguji sedikit kemampuan analitik kita dan tentu saja memanfaatkan matematika dalam membuat Bendera Uni Eropa.
Berikut merupakan salah satu ide yang akan saya paparkan. Ide ini saya temukan 2 tahun yang lalu saat saya mendapat tugas dari Dosen master saya, yang terhormat Bapak Dewa Gede Parta, BSCS.

ide:

  • Bendera Euro terdiri dari kumpulan gambar bintang yang posisinya sama dengan sudut segi-10
  • ada dua bangun yang akan dianalisis yaitu gambar bintang dan segi-10
  • sudut segi-10 merupakan titik tengah bintang
  • rumus segi-10 adalah R.cos(pi()/2+i.2.pi()/10-{0,pi()/2}) dimana i dimulai dari 0,1,...,10
  • rumus bintang dapat dilihat pada postingan sebelumnya tentang Bintang
dengan pseudo code diperoleh:
for (i <-- 0 to 10)
     do [rumus segi-10]
     for (j<--0 to 10)
           do [rumus bintang]
     end for
end for


karena Ms. Excel hanya menyediakan Row() untuk interval, maka kita harus mengupayakan agar i dan j dapat diwakili sekaligus oleh Row().

Berikut ini merupakan Rumus untuk membuat Bendera Euro dan hasilnya :

  1. Blok A1:B144
  2. masukkan rumus fx =MOD(MOD(INT(INT(MOD(ROW()-1;12)/11));2)+1;2)*(4*COS(PI()/2+INT((ROW()-1)/12)*2*PI()/12-{0\1}*PI()/2)+MOD(MOD(INT(INT(MOD(ROW()-1;12)/11));2)+1;2)*((MOD(ROW();2)*COS(PI()/2+MOD(ROW()-1;12)*2*PI()/10-{0\1}*PI()/2)+MOD(ROW()+1;2)*(SIN(PI()/10)/SIN(7*PI()/10))*COS(PI()/2+PI()/5+(MOD(ROW()-1;12)-1)*2*PI()/10-{0\1}*PI()/2))))
  3. insert scatter with line and markers
hasilnya sebagai berikut:




Posted By Unknown8:34 PM

Computer Graphics - Bresenham Algorithm for Making Line

Assalamualaikum. Konnichiwa, mina!
Kalau postingan sebelumnya membahas bagaimana membuat garis dengan menggunakan Algoritma DDA, maka sekarang saya akan memberikan algoritma untuk membuat garis dengan menggunakan algoritma Bresenham. Berikut algoritmanya:

Bresenham untuk gradien garis <1:

  1. start point (x0,y0) dan end point(x1,y1)
  2. gradien (m) = (y1-y0)/(x1-x0) harus < 1
  3. hitung deltaX=x1-x0
  4. hitung deltaY=y1-y0
  5. hitung 2.deltaY
  6. hitung 2.deltaY-2.deltaX
  7. hitung p0=2.deltaY-deltaX
  8. k=0
  9. jika pk<0, (xk,yk) = xk+1,yk
  10. dan p(k+1)=pk+2.deltaY
  11. jika tidak, (xk,yk) = xk+1,yk+1
  12. dan p(k+1)=pk+2.deltaY-2.deltaX
  13. k=k+1
  14. ulangi langkah ke 9 hingga 13 selama deltaX kali
contoh:

Diketahui sebuah sumbu dengan titik koordinat (10,15) dan (20,12). Gambarkan garis tersebut dengan menggunakan Algoritma Bresenham. 

Penyelesaian :
  1. (X1, Y1) dan (X2, Y2)
  2. ΔX  = X2 – X= 20 – 10 = 10
  3. ΔY = Y2 – Y= 12 – 5 = 7
  4. P0  = 2ΔY – ΔX = 2(7) – 10 = 4
  5. A = 2ΔY = 14
  6. B = 2ΔY - 2ΔX = -6
  7. Tabel Iterasi (putara)
K
Pk
(Xk+1, Yk+1)
0
4
(11 , 6)
1
-2
(12 , 6)
2
12
(13 , 7)
3
6
(14 , 8)
4
0
(15 , 9)
5
-6
(16 , 9)
6
8
(17 , 10)
7
2
(18 , 11)
8
-4
(19 , 11)
9
10
(20 , 12)

Aturan :
  1. Jika Pk bernilai positif, maka tambahkan hasilnya dengan B dan nilai X dan Y ditambah 1.
  2. Jika Pk bernilai negatif, maka tambahkan hasilnya dengan A dan nilai X ditambah 1, sedangkan Y ditambah 0 (tetap).
  3. Putaran dihentikan jika koordinat X dan Y sudah mencapai batas Akhir, dalam kasusu ini (20 , 12).


Berikut ini adalah hasil garisnya . 

contoh algoritma Bresenham, bresenham, algoritma, panduan, latihan, kasus

Gambar dengan Pixel diperbesar.


PRAKTIKUM
Membuat aplikasi sederhana pembuat garis dengan algoritma Bresenham. Bahasa pemrograman yang digunakan adalah Java dengan IDE Eclipse.

1. Buat class Bresenham.java dengan source code sebagai berikut:

package graphics;
import java.awt.Graphics;
public class Bresenham {
public int x_awal;
    public int y_awal;
    public int x_akhir;
    public int y_akhir;
    public int dx;
    public int dy;
    public int dx2;
    public int dy2;
    public int dy2mindx2;
    public int pk;
public void drawBresenham(Graphics g,int x0, int y0, int x1, int y1){
this.x_awal=x0;
this.y_awal=y0;
this.x_akhir=x1;
this.y_akhir=y1;
this.dx=Math.abs(this.x_awal-this.x_akhir);
this.dy=Math.abs(this.y_awal-this.y_akhir);
this.dx2=this.dx*2;
this.dy2=this.dy*2;
if(this.dx>=this.dy){
this.dy2mindx2=this.dy2-this.dx2;
this.pk=this.dy2-this.dx;
while(this.x_awal!=this.x_akhir && this.y_awal!=this.y_akhir){
g.fillRect(this.x_awal, this.y_awal, 2, 2);
if(this.x_akhir>this.x_awal){
this.x_awal++;
}else{
this.x_awal--;
}
if(this.pk>=0){
if(this.y_akhir>this.y_awal){
this.y_awal++;
}else{
this.y_awal--;
}
this.pk=this.pk+this.dy2mindx2;
}else{
this.pk=this.pk+this.dy2;
}
}
}else{
this.dy2mindx2=this.dx2-this.dy2;
this.pk=this.dx2-this.dy;
while(this.x_awal!=this.x_akhir && this.y_awal!=this.y_akhir){
g.fillRect(this.x_awal, this.y_awal, 2, 2);
if(this.y_akhir>this.y_awal){
this.y_awal++;
}else{
this.y_awal--;
}
if(this.pk>=0){
if(this.x_akhir>this.x_awal){
this.x_awal++;
}else{
this.x_awal--;
}
this.pk=this.pk+this.dy2mindx2;
}else{
this.pk=this.pk+this.dx2;
}
}
}
}
}

2. Kemudian buat class Main.java yang digunakan untuk membuat boad atau papan gambar sebagai berikut:

package graphics;
/*
 * Author : Novida Wayan Sari
 * Program Name : Main
 * Description : This program integrate component JPanel 
 *  that used for drawing graphics like
 *  Line Bresenham and also
 *  coloring the component
 */
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main implements ActionListener{
//Attributes
private static ArrayList<int[]> coord = new ArrayList<int[]>();
private static ArrayList<int[]> coord2 = new ArrayList<int[]>();
//Main Program
public static void main(String [] Args) throws Exception{
JFrame frame=new JFrame("My Graphics Board");
frame.setSize(700, 500);
frame.setVisible(true);
frame.getContentPane().setBackground(Color.BLACK);
//Buttons Declaration
final JButton btn_color1=new JButton();
final JButton btn_color2=new JButton();
final JButton btn_color3=new JButton();
final JButton btn_color4=new JButton();
//Panel Component as Board for drawing
JPanel panel=new JPanel(){
/**
*/
private static final long serialVersionUID = 1L;
Point point_start=null; //for collect point value when mouse pressed
Point point_end=null; //for collect point value when mouse Released
Point point_end2=null; //for collect point value when mouse Dragged
//it need for animation when mouse Dragged
int status_graph=1;
int status_color=1;
//Mouse Listener for Button
{
btn_color1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
status_color=1;
}
});
btn_color2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
status_color=2;
}
});
btn_color3.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
status_color=3;
}
});
btn_color4.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
status_color=4;
}
});
}
Bresenham bresenham=new Bresenham();
{
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
point_start=e.getPoint();
}
public void mouseReleased(MouseEvent e){
point_end=e.getPoint();
                        int[] points = {(int)point_start.getX(),(int)point_start.getY(),(int)point_end.getX(),(int)point_end.getY(),status_graph,status_color};
                        coord.add(points);
                        repaint();
}
});
addMouseMotionListener(new MouseAdapter(){
public void mouseDragged(MouseEvent e){
point_end2=e.getPoint();
int[] points2 = {(int)point_start.getX(),(int)point_start.getY(),(int)point_end2.getX(),(int)point_end2.getY(),status_graph,status_color};
coord2.add(points2);
repaint();
}
});
}
public void paintComponent(Graphics g){
                for (int[] points2 : coord2) {
                if((int)points2[5]==1){
g.setColor(Color.BLUE);
}else if((int)points2[5]==2){
g.setColor(Color.GREEN);
}else if((int)points2[5]==3){
g.setColor(Color.RED);
}else{
g.setColor(Color.YELLOW);
}
                super.paintComponent(g);
                bresenham.drawBresenham(g, (int)points2[0], (int)points2[1], (int)points2[2], (int)points2[3]);
                } 
                g.drawString("   ------", 0, 15);
                g.drawString("   ------", 0, 30);
                g.drawString("   ------", 0, 45);
                g.drawString("   ------", 0, 60);
                g.drawString("Novida's Paint Board", 480, 15);
                g.drawString("Choose Color", 500, 65);
}
public void paint(Graphics i){
super.paint(i);
for (int[] points : coord) {
if((int)points[5]==1){
i.setColor(Color.BLUE);
}else if((int)points[5]==2){
i.setColor(Color.GREEN);
}else if((int)points[5]==3){
i.setColor(Color.RED);
}else{
i.setColor(Color.YELLOW);
}
bresenham.drawBresenham(i, (int)points[0], (int)points[1], (int)points[2], (int)points[3]);
}
}; //End of Panel
panel.add(btn_color1);
panel.add(btn_color2);
panel.add(btn_color3);
panel.add(btn_color4);
ImageIcon icon5=new ImageIcon("images/color_blue.png");
ImageIcon icon6=new ImageIcon("images/color_orange.png");
ImageIcon icon7=new ImageIcon("images/color_red.png");
ImageIcon icon8=new ImageIcon("images/color_yellow.png"); 
btn_color1.setIcon(icon5);
btn_color1.setContentAreaFilled( false ); 
btn_color2.setIcon(icon6);
btn_color2.setContentAreaFilled( false ); 
btn_color3.setIcon(icon7);
btn_color3.setContentAreaFilled( false ); 
btn_color4.setIcon(icon8);
btn_color4.setContentAreaFilled( false ); 
panel.setBackground(Color.BLACK);
panel.setForeground(Color.BLACK);
frame.add(panel);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}

hasil dari program diatas adalah


Gambar 1. Papan Gambar


Algoritma di atas sudah dikembangkan untuk semua nilai gradien.

Selamat Bereksperimen!

Posted By Unknown1:31 PM