Minggu, 30 Oktober 2016

Algoritma Pembuat Lingkaran

Untuk membuat Algoritma Pembuat lingkaran dalam pemrogaman bahasa java dibutuhkan langkah-langkah sebagai berikut ini ;

1. Menentukan xc, yc, dan r (jari-jari)

2. Melakukan pengubahan posisi dengan
   - p = 1 - r
     x = 0
     y = r

3. Pengulangan

      Perulangan akan berhenti jika x > y

       - Kondisi
         Jika p < 0 maka, x + 1, y tetap dan p berubah menjadi p = p + (2* x) + 1
         Jika tidak maka, x + 1, y - 1 dan p berubah menjadi p + *(x - y)) + 1 

Contoh code :

//Nama File : Lingkaran.java



package lingkaran;

//Mengimport Class
import java.awt.*;
import javax.swing.*;

public class Lingkaran {

    public static void main(String[] args) {
        // TODO code application logic here
        
        //Membuat Frame baru dengan nama Frame "Frame"
        JFrame Frame = new JFrame("Algoritma Pembuat Lingkaran");
        Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Frame.setSize(800,600);
        Frame.setVisible(true);
        

        Gambar Bulat = new Gambar();
        Bulat.setxc(100);
        Bulat.setyc(150);
        Bulat.setr(50);
        Frame.add(Bulat);
    }
    
}

//Nama File : Gambar.java
//Membuat algoritma lingkaran

package lingkaran;

//Mengimport class
import java.awt.*;
import javax.swing.*;

//Membuat Gambar.java
public class Gambar extends JPanel {
    private int xc,yc, r;
    
    public int getxc() {
        return xc;
    }

    public int getyc() {
        return yc;
    }

    public int getr() {
        return r;
    }

    public void setxc(int xa) {
        xc = xa;
    }

    public void setyc(int ya) {
        yc = ya;
    }

    
    public void setr(int jarijari) {
        r = jarijari;
    }
    
    //Metoda paint (Superclass)
    public void paint(Graphics Bulat) {     
        int p = 1-r, x = 0, y = r;
    
        //Memanggil metoda paint dari superclass + ubah warna
        super.paint(Bulat);
        this.setBackground(Color.BLACK);
        Bulat.setColor(Color.GREEN);
        
        while(x<=y) {
            x++;
            if (p<0) {
               p+=2*x+1;
            } else {
                y--;
                p+=2*(x-y)+1;
            }
            
            Bulat.drawRect(xc+x, yc+y, 1, 1);
            Bulat.drawRect(xc-x, yc+y, 1, 1);
            Bulat.drawRect(xc+x, yc-y, 1, 1);
            Bulat.drawRect(xc-x, yc-y, 1, 1);
            Bulat.drawRect(xc+y, yc+x, 1, 1);
            Bulat.drawRect(xc-y, yc+x, 1, 1);
            Bulat.drawRect(xc+y, yc-x, 1, 1);
            Bulat.drawRect(xc-y, yc-x, 1, 1);

        }
    }

}

Hasil penghitungan algoritma :


Tidak ada komentar:

Posting Komentar