Tutorial Algoritma Lingkaran Bresenham + Contoh Soal dan Langkah Penyelesaian

Algoritma Lingkaran Bresenham adalah salah satu algoritma paling populer dalam dunia grafika komputer untuk menggambar lingkaran secara efisien pada sistem berbasis piksel. Algoritma ini banyak digunakan dalam pemrograman komputer, pengolahan citra digital, game development, hingga sistem embedded karena kecepatannya dan minim penggunaan operasi desimal.

Dalam artikel ini, kita akan membahas secara lengkap dan mendalam tentang Tutorial Algoritma Lingkaran Bresenham, mulai dari pengertian dasar, konsep matematika, rumus, langkah-langkah implementasi, contoh soal, hingga penyelesaian secara sistematis.


Pengertian Algoritma Lingkaran Bresenham

Algoritma Lingkaran Bresenham merupakan pengembangan dari algoritma garis yang diperkenalkan oleh Jack Elton Bresenham pada tahun 1962 saat bekerja di IBM. Awalnya algoritma ini dirancang untuk menggambar garis pada layar komputer, namun kemudian dikembangkan untuk menggambar lingkaran dengan prinsip yang sama, yaitu menggunakan operasi bilangan bulat (integer) tanpa perhitungan floating point.

Tujuan utama algoritma ini adalah menentukan piksel mana yang paling mendekati lintasan lingkaran pada koordinat raster.

🔖 Baca juga:
Contoh Soal Psikotes Kemenhub Sebagai Panduan Persiapan Seleksi dan Strategi Jawaban

Konsep Dasar Algoritma Lingkaran

Persamaan umum lingkaran adalah:

xยฒ + yยฒ = rยฒ

Di mana:

  • r = jari-jari lingkaran
  • (0,0) = titik pusat (untuk kasus sederhana)

Namun, dalam komputer, kita tidak bisa menggambar bentuk kurva secara kontinu. Yang bisa dilakukan adalah menentukan piksel terdekat pada grid koordinat.

Di sinilah Algoritma Lingkaran Bresenham bekerja:
Ia menggunakan parameter keputusan (decision parameter) untuk menentukan apakah piksel berikutnya berada di arah Timur (E) atau Tenggara (SE).


Prinsip Simetri dalam Lingkaran

Lingkaran memiliki sifat simetri 8 arah (oktan). Artinya, jika kita menemukan satu titik (x, y), maka kita bisa mendapatkan 7 titik lainnya:

  • ( x, y)
  • ( y, x)
  • (-x, y)
  • (-y, x)
  • (-x, -y)
  • (-y, -x)
  • ( x, -y)
  • ( y, -x)

Dengan memanfaatkan simetri ini, algoritma hanya perlu menghitung 1/8 lingkaran.

Baca Juga : Jam Imsakiyah Tangerang Selatan Besok Sabtu 28 Februari 2026: Imsak Jam Berapa?


Langkah-Langkah Algoritma Lingkaran Bresenham

Berikut langkah sistematisnya:

1. Inisialisasi

  • x = 0
  • y = r
  • p = 1 – r (parameter keputusan awal)

2. Plot titik awal

Gambar titik berdasarkan simetri 8 arah.

3. Perulangan

Selama x < y, lakukan:

  • Jika p < 0
    โ†’ Pilih piksel Timur (E)
    โ†’ p = p + 2x + 3
  • Jika p โ‰ฅ 0
    โ†’ Pilih piksel Tenggara (SE)
    โ†’ y = y – 1
    โ†’ p = p + 2x – 2y + 5
  • x = x + 1
  • Plot kembali 8 titik simetri

Contoh Soal Algoritma Lingkaran Bresenham

Soal:

Gambarkan lingkaran dengan pusat di (0,0) dan jari-jari r = 5 menggunakan Algoritma Lingkaran Bresenham.


Penyelesaian Langkah demi Langkah

Diketahui:

r = 5

Langkah 1: Inisialisasi

x = 0
y = 5
p = 1 – 5
p = -4


Iterasi 1:

x = 0
y = 5
p = -4

Karena p < 0
Gunakan rumus:

p = p + 2x + 3
p = -4 + 0 + 3
p = -1

x = 1


Iterasi 2:

x = 1
y = 5
p = -1

Karena p < 0
p = -1 + (2ร—1) + 3
p = -1 + 2 + 3
p = 4

x = 2

Baca Juga : Universitas Teknokrat Indonesia Kampus Terbaik di Lampung Menerima Visitasi Akreditasti ACQUIN sebagai Langkah Menuju World Class University


Iterasi 3:

x = 2
y = 5
p = 4

Karena p โ‰ฅ 0
y = 4
p = 4 + (2ร—2) – (2ร—4) + 5
p = 4 + 4 – 8 + 5
p = 5

x = 3


Iterasi 4:

x = 3
y = 4
p = 5

Karena p โ‰ฅ 0
y = 3
p = 5 + (2ร—3) – (2ร—3) + 5
p = 10

x = 4

Karena x โ‰ฅ y, proses berhenti.


Titik-Titik yang Dihasilkan

Titik utama yang diperoleh:

  • (0,5)
  • (1,5)
  • (2,5)
  • (3,4)
  • (4,3)

Kemudian gunakan simetri 8 arah untuk mendapatkan seluruh lingkaran.


Implementasi Pseudocode

Berikut pseudocode sederhana:

input r
x = 0
y = r
p = 1 - rwhile x < y:
plot(x,y)
if p < 0:
p = p + 2*x + 3
else:
y = y - 1
p = p + 2*(x - y) + 5
x = x + 1

Implementasi dalam Bahasa C

void bresenhamCircle(int r){
int x = 0;
int y = r;
int p = 1 - r; while(x < y){
printf("(%d,%d)\n", x, y);
if(p < 0){
p = p + 2*x + 3;
} else {
y--;
p = p + 2*(x - y) + 5;
}
x++;
}
}

Kelebihan Algoritma Lingkaran Bresenham

  1. Menggunakan bilangan integer
  2. Cepat dan efisien
  3. Minim komputasi
  4. Cocok untuk sistem grafika raster
  5. Banyak digunakan pada game 2D

Perbandingan dengan Algoritma Midpoint Circle

Algoritma Bresenham sering dibandingkan dengan Midpoint Circle Algorithm. Pada dasarnya keduanya memiliki prinsip yang hampir sama, namun Bresenham lebih optimal dalam penggunaan integer murni.


Kesimpulan

Algoritma Lingkaran Bresenham adalah solusi efektif untuk menggambar lingkaran pada sistem raster berbasis piksel. Dengan memanfaatkan parameter keputusan dan simetri 8 arah, algoritma ini mampu menghasilkan lingkaran dengan akurasi tinggi dan performa cepat.

Melalui tutorial ini, Anda telah mempelajari:

  • Konsep dasar algoritma
  • Rumus matematika yang digunakan
  • Langkah-langkah perhitungan
  • Contoh soal lengkap
  • Implementasi kode

Dengan memahami Algoritma Lingkaran Bresenham secara menyeluruh, Anda akan lebih siap dalam mempelajari grafika komputer, pemrograman game, maupun pengolahan citra digital.

Penuis : Reyfen

Post Comment