Kumpulan Contoh Soal Algoritma Lingkaran Bresenham untuk Mata Kuliah Grafika Komputer

Algoritma Lingkaran Bresenham adalah salah satu topik penting dalam mata kuliah Grafika Komputer. Algoritma ini digunakan untuk menggambar lingkaran pada layar komputer dengan efisiensi tinggi, karena hanya menggunakan operasi integer, seperti penjumlahan dan pengurangan, tanpa membutuhkan perkalian atau akar kuadrat. Artikel ini menyajikan kumpulan contoh soal lengkap beserta tabel iterasi, sehingga mahasiswa dapat memahami cara kerja algoritma ini secara praktis.


Pengertian Algoritma Lingkaran Bresenham

Algoritma Lingkaran Bresenham adalah metode rasterisasi lingkaran yang dikembangkan dari algoritma Bresenham untuk garis. Prinsipnya adalah:

  1. Menentukan titik awal di kuadran pertama.
  2. Menghitung titik selanjutnya berdasarkan nilai keputusan (decision parameter).
  3. Memanfaatkan simetri delapan oktaf lingkaran untuk menggambar lingkaran penuh.

Rumus keputusan utama yang digunakan adalah:f(x,y)=x2+y2โˆ’r2f(x, y) = x^2 + y^2 – r^2f(x,y)=x2+y2โˆ’r2

Dimana:

  • Jika f(x+1,yโˆ’0.5)<0f(x+1, y-0.5) < 0f(x+1,yโˆ’0.5)<0, maka titik horisontal dipilih.
  • Jika f(x+1,yโˆ’0.5)โ‰ฅ0f(x+1, y-0.5) \ge 0f(x+1,yโˆ’0.5)โ‰ฅ0, maka titik diagonal dipilih.

Langkah-langkah Algoritma Lingkaran Bresenham

  1. Tentukan titik pusat lingkaran (xc,yc)(x_c, y_c)(xcโ€‹,ycโ€‹) dan jari-jari rrr.
  2. Inisialisasi:
    • x=0x = 0x=0
    • y=ry = ry=r
    • Decision parameter awal d=3โˆ’2rd = 3 – 2rd=3โˆ’2r
  3. Selama xโ‰คyx \le yxโ‰คy, lakukan:
    • Jika d<0d < 0d<0, maka d=d+4x+6d = d + 4x + 6d=d+4x+6
    • Jika dโ‰ฅ0d \ge 0dโ‰ฅ0, maka d=d+4(xโˆ’y)+10d = d + 4(x – y) + 10d=d+4(xโˆ’y)+10 dan y=yโˆ’1y = y – 1y=yโˆ’1
    • Tambahkan x=x+1x = x + 1x=x+1
  4. Gunakan simetri 8 oktaf untuk mencetak titik ke semua kuadran.

Baca Juga : Heboh Pencairan BLT Februari 2026: Simak Penjelasan Resmi dari Kemensos

🔖 Baca juga:
Contoh Soal Kegiatan Membangun Sendiri Terbaru untuk Latihan dan Ujian

Contoh Soal 1: Lingkaran dengan Radius 4

Diketahui:

  • Titik pusat (0,0)(0,0)(0,0)
  • Radius r=4r = 4r=4

Langkah-langkah penyelesaian:

  1. Inisialisasi: x=0,y=4,d=3โˆ’2โˆ—4=โˆ’5x = 0, y = 4, d = 3 – 2*4 = -5x=0,y=4,d=3โˆ’2โˆ—4=โˆ’5
  2. Iterasi pertama:
    • d=โˆ’5<0d = -5 < 0d=โˆ’5<0 โ†’ titik berikutnya: x=1,y=4,d=โˆ’5+4โˆ—0+6=1x = 1, y = 4, d = -5 + 4*0 + 6 = 1x=1,y=4,d=โˆ’5+4โˆ—0+6=1
  3. Iterasi kedua:
    • d=1โ‰ฅ0d = 1 \ge 0d=1โ‰ฅ0 โ†’ y=3,x=2,d=1+4โˆ—(1โˆ’4)+10=โˆ’1y = 3, x = 2, d = 1 + 4*(1-4) + 10 = -1y=3,x=2,d=1+4โˆ—(1โˆ’4)+10=โˆ’1
  4. Iterasi ketiga:
    • d=โˆ’1<0d = -1 < 0d=โˆ’1<0 โ†’ x=3,y=3,d=โˆ’1+4โˆ—2+6=13x = 3, y = 3, d = -1 + 4*2 + 6 = 13x=3,y=3,d=โˆ’1+4โˆ—2+6=13
  5. Iterasi keempat:
    • x>yx > yx>y โ†’ selesai.

Tabel Iterasi:

IterasixydTitik (x,y)
104-5(0,4)
2141(1,4)
323-1(2,3)
43313(3,3)

Titik-titik ini kemudian direplikasi ke semua kuadran menggunakan simetri delapan oktaf.


Contoh Soal 2: Lingkaran dengan Radius 5

Diketahui:

  • Titik pusat (2,2)(2,2)(2,2)
  • Radius r=5r = 5r=5

Iterasi:

  1. Inisialisasi: x=0,y=5,d=3โˆ’2โˆ—5=โˆ’7x = 0, y = 5, d = 3 – 2*5 = -7x=0,y=5,d=3โˆ’2โˆ—5=โˆ’7
  2. Iterasi pertama: d=โˆ’7<0d = -7 < 0d=โˆ’7<0 โ†’ x=1,y=5,d=โˆ’7+4โˆ—0+6=โˆ’1x = 1, y = 5, d = -7 + 4*0 + 6 = -1x=1,y=5,d=โˆ’7+4โˆ—0+6=โˆ’1
  3. Iterasi kedua: d=โˆ’1<0d = -1 < 0d=โˆ’1<0 โ†’ x=2,y=5,d=โˆ’1+4โˆ—1+6=9x = 2, y = 5, d = -1 + 4*1 + 6 = 9x=2,y=5,d=โˆ’1+4โˆ—1+6=9
  4. Iterasi ketiga: d=9โ‰ฅ0d = 9 \ge 0d=9โ‰ฅ0 โ†’ y=4,x=3,d=9+4โˆ—(2โˆ’5)+10=1y = 4, x = 3, d = 9 + 4*(2-5) + 10 = 1y=4,x=3,d=9+4โˆ—(2โˆ’5)+10=1
  5. Iterasi keempat: d=1โ‰ฅ0d = 1 \ge 0d=1โ‰ฅ0 โ†’ y=3,x=4,d=1+4โˆ—(3โˆ’4)+10=11y = 3, x = 4, d = 1 + 4*(3-4) + 10 = 11y=3,x=4,d=1+4โˆ—(3โˆ’4)+10=11
  6. Iterasi kelima: x>yx > yx>y โ†’ selesai.

Tabel Iterasi:

IterasixydTitik (x,y)
105-7(2,7)
215-1(3,7)
3259(4,7)
4341(5,6)
54311(6,5)

Contoh Soal 3: Lingkaran dengan Radius 6 di Pusat (3,3)

Langkah-langkah:

  1. Inisialisasi: x=0,y=6,d=3โˆ’2โˆ—6=โˆ’9x = 0, y = 6, d = 3 – 2*6 = -9x=0,y=6,d=3โˆ’2โˆ—6=โˆ’9
  2. Iterasi dilakukan sampai x>yx > yx>y
  3. Titik yang dihasilkan digunakan untuk menggambar lingkaran lengkap melalui simetri.

Baca Juga : Universitas Teknokrat Indonesia Masuk 10 Besar Kampus Swasta Terbaik Nasional Versi AppliedHE ASEAN 2026

Tabel Iterasi (Ringkas):

IterasixydTitik (x,y)
106-9(3,9)
216-3(4,9)
3267(5,9)
435-1(6,8)
5459(7,8)
6547(8,7)
763-1(9,6)

Pseudocode Implementasi

Input: xc, yc, r
x = 0
y = r
d = 3 - 2*r
while x <= y:
plot(xc + x, yc + y)
plot(xc - x, yc + y)
plot(xc + x, yc - y)
plot(xc - x, yc - y)
plot(xc + y, yc + x)
plot(xc - y, yc + x)
plot(xc + y, yc - x)
plot(xc - y, yc - x)
if d < 0:
d = d + 4*x + 6
else:
d = d + 4*(x - y) + 10
y = y - 1
x = x + 1

Tips dan Trik

  1. Gunakan integer untuk efisiensi.
  2. Simetri delapan oktaf mempercepat penggambaran lingkaran.
  3. Tabel iterasi sangat membantu mahasiswa untuk memahami proses keputusan algoritma.
  4. Bisa dikombinasikan dengan algoritma midpoint circle untuk optimasi tertentu.

Kegunaan dalam Grafika Komputer

  • Digunakan di game 2D, CAD, simulasi grafis, dan embedded systems.
  • Mempermudah pembuatan lingkaran dengan pixel yang presisi.
  • Membantu memahami konsep dasar rasterisasi.

Kesimpulan

Algoritma Lingkaran Bresenham adalah algoritma penting untuk mata kuliah Grafika Komputer. Dengan memahami contoh soal, tabel iterasi, dan pseudocode, mahasiswa dapat:

  1. Menggambar lingkaran secara efisien.
  2. Memahami cara kerja decision parameter.
  3. Mengaplikasikan konsep simetri lingkaran dalam praktik pemrograman.

Melalui latihan dengan berbagai contoh soal, mahasiswa dapat menguasai algoritma ini dengan baik dan siap menghadapi ujian grafika komputer.

Penulis : Reyfen

Post Comment