## HUBUNGAN ALGORITMA BEZIER DAN B-SPLINE PADA FUNGSI HARMONISNYA
UNTUK MENCIPTAKAN BENTUK KURVA SESUAI KEINGINAN
Djunaidy Santoso; Zulfany Erlisa Rasjid; Edy Irwansyah
Computer Science Department, School of Computer Science, Binus University Jl. K. H. Syahdan No. 9 Palmerah Jakarta Barat 11480 djunsan2002@yahoo.com;  zulfany erlisa_rasjid@yahoo.com; edirwan@binus.ac.id

## ABSTRACT
Computer graphics is a science widely used in any areas. Its up-to-date technique is applied to solve image problems related to needs of customer and decision-making. Images can be analyzed so as produce good form which its accuracy is still under researches using CAD and CAM. This study aims to associate algorithm Hermite, Bezier, B-Spline on its harmony function by creating a proper image to a form that can be used in drawing engineering for decision making. This study produces an adequate algorithm for image design.
Keywords: computer graphics, algorithm, harmonic function, curve, picture, image, CAD, CAM

## ABSTRAK
Grafika komputer  adalah ilmu yang sebenarnya banyak digunakan di berbagai bidang. Tekniknya yang sangat mutakhir diperuntukkan untuk pemecahan masalah gambar atau citra yang sangat erat dengan kebutuhan customer maupun pengambilan keputusan. Impian gambar ataupun citra dapat di analisis sehingga menghasilkan bentuk yang baik yang masih terus diteliti ketepatannya menggunakan CAD maupun CAM. Tujuan dari penelitian yaitu menghubungkan algoritma Hermite, Bezier, B-Spline pada fungsi harmonisnya dengan menciptakan gambar atau citra yang tepat untuk suatu bentuk yang dapat dipakai dalam rekayasa gambar untuk pengambilan keputusan. Hasil penelitian ini menghasilkan suatu algoritma yang memadai untuk perancangan gambar atau citra.
Kata kunci:  grafika komputer, algoritma, fungsi blending/harmonis, kurva, gambar, citra, CAD, CAM.

## PENDAHULUAN
Dengan semakin banyaknya algoritma dalam bidang grafika komputer, semakin banyak waktu untuk pengambilan keputusan dalam menentukan pendekatan pemakaian rumusan/algoritma tersebut. Dari data statistik industri/perusahaan atau institusi, banyak kurva/citra yang dibuat tidak mulus atau terdapat zig-zag, sehingga tidak bisa dipergunakan di industri/institusi/organisasi. Untuk itu perlu adanya penelitian algoritma/rumusan yang baik dalam menghadapi rancangan bentuk gambar (kurva) yang disesuaikan dengan keinginan.
Tujuan dan manfaat dari penelitian ini yaitu: (1) untuk merancang kurva/gambar/citra bagi industri mobil (gambar mesin), kapal terbang/laut, dan desain rumah; (2) untuk menganalisis dengan baik atau merancang/membuat kurva /citra secara mulus dari gambar satellite (GIS); (3) untuk dipergunakan dalam bidang statistik dan Rumah Sakit serta industri percetakan dan lain-lain.

## Landasan Teori

## Interpolasi
Kurva Hermite – Bentuk polynom Hermite diterangkan dengan dua titik akhir dan dua tangen vektor. Bentuk umum segment kurva yaitu:
q(t) = (x(t), y(t)) ---> 2D dimana x(t) = a x t 3 + b x t 2 + c x t + d x y(t) = a y t 3 + b y t 2 + c y t + d y --> untuk dua dimensi (2D) z(t) = a z t 3 + b z t 2 + c z t + d z --> untuk tiga dimensi (3D) (1)
Koeffisien dalam bentuk matrix C: x(t) = a x t 3 + b x t 2 + c x t + d x = Ct = G x M H t untuk 2D tambah Gy (a y ,  b y ,  c y, d y ) (2)
begitupun sama dengan 3D   dibutuhkan Gx, Gy dan Gz,
G x adalah  x-komponen, G y adalah  y-komponen dan G z adalah  z-komponen  dari geometry matrix.
M H adalah Hermite basis matrix.
Sekarang  kita dapat menulis x(t) dalam dua cara: x(t) = a x t 3 + b x t 2 + c x t + d x atau G x B H (t) Dimana B H (t) = M H t adalah Hermite blending function (fungsi harmonis Hermite).
Kemudian geometri matrix G dan M H dapat kita tulis menjadi C = G M H.
(3)
Untuk menggambar kurva tersebut, perlu dievalusi dengan sederhana: x(t) and y(t)--> untuk 2D; untuk 3D tambahkan z(t).
Matrix berbasis Hermite M H (Fungsi Blending/Harmonis Hermite):
Baris atas matrix hermite (Gambar 1): bo= 2t 3 -3t 2 + 1   (a) b1= - 2t 3 + 3t 2 (b) b2= t 3 - 2t 2 + t    (c) b3= t 3 – t 2 (d)
(4)
Gambar 1 . Baris atas matrix Hermite

## Approksimasi
Kurva Bezier sama dengan Kurva Hermite. Bedanya Bezier menggunakan empat titik kontrol. n P(t)= ∑ Pi  *  Bi,n(t);   Polynom  Bezier (5)
i Bi,n= C(n,i) * t i * (1- t) n-i ;
Fungsi Blending (6) C(n,i)= n! /  i! * (n-i)!; Binomial Koeffisien (7)
Dengan demikian matrix berbasis Bezier (fungsi blending/harmonis Bezier) menjadi:
Baris bawah matrix Bezier (Gambar 2): b3 = t*t*t b2 = 3*t*t*(1-t) atau  -3t 3 +3t 2 b1 = 3*t*(1-t)*(1-t)   atau  3t 3 -6t 2 +3t bo = (1-t)*1-t)*(1-t)  atau  –t 3 +3t 2 -3t+1
(8)
(a) bo, erat dengan P 0 (b)
b1,erat dengan P 1
(c) b2, erat dengan P 2 (d) b3, eratdengan P 3
B-Spline mempunyai sejarah yang panjang dalam grafika Komputer. Natural Kubic Spline mempunyai  C 2 (koefisien= tangen arah) yang berkelanjutan dan lebih halus daripada kurva Hermite dan kurva Bezier.
L
P(t) = ∑ P k *  N k,m (t) ;  N k,m (t) ;fungsi k=0                             Blending
(9) N k,m (t) = ((t - t k) / ( t k + m – 1 -  t k )  * N k,m-1 (t)  + ((t k  +  m - t)/(t k + m - t k + 1 ) *  N k + 1,m - 1 (t) (10)
Matrix berbasis B-spline dinyatakan sebagai berikut:
Ini dapat dijabarkan sebagai fungsi blending/harmonis b-spline  Ni,k(t) sebagai berikut: Baris atas matrix B-Spline (Gambar 3): bo= (1-t) 3 /6            atau   (-t 3 +3t 2 -3t + 1)/6 b1=(3t 3 - 6t 2 + 4)/6
b2=(- 3t 3 +3t 2 +3t +1)/6 b3=(t 3 )/6
(11)
Gambar 3. Baris atas matrix B-Spline.
Fungsi blending/Harmonis B-spline.
(a) bo (b) b1 (c)
b2
(d) b3
B-Spline mempunyai karakteristik yaitu: (1) Bila jumlah knot(Qi) banyak, semakin mulus kurva tersebut. (jumlah titik bantu alias Qi  dari Po sampai dengan Pn); (2) Jumlah titik Pi(control point) =  jumlah kurva yang bisa dihasilkan.

## METODE
Sebagai perbandingan antara kurva aproksimasi dengan kurva Interpolasi misalnya: Interpolasi kurva Hermite, tidak diteliti hanya dibahas sebagai perbandingan dengan kurva aproksimasi. Semua titik-titik statistic penelitian akan dilalui kurva tersebut baik dari titik awal sampai dengan titik akhir. Bedanya dengan kurva aproksimasi Bezier dan B-Spline hanya titik awal dan titik akhir saja yang dilaluinya. Titik-titik tengah antara titik awal dan titik akhir hanya dirata-ratakan saja (pada kurva Interpolasi Lagrange, Newton maupun Hermite dan lain-lain di daerah titik-titik awal dan di daerah titik-titik akhir terdapat alunan kurva yang sangat terjal). Ciri-ciri lain pada kurva Bezier dan B-Spline yaitu bila kurva diinginkan menjadi mulus harus dilakukan tangen arah berkelanjutan serta titik balik maximum dan titik balik minimum perlu diperhatikan.
Yang perlu diteliti pertama adalah fungsi Bezier. Dengan mengambil titik: P o = (2/6) ; P 1 = (4/12) P 2 = (7/3) ; P 3 = (9/10) Sehingga n=3.
Setelah binomial koeffisien dihitung, kemudian dihitung fungsi  blending dan didapat: b 0,3 (t) = (1 – t) 3 b 1,3 (t) = 3*t*(1 – t) 2 b 2,3 (t) = 3*t 2 (1 – t) b 3,3 (t) = t 3
Setelah fungsi blending didapat, baru dihitung fungsi polynomial Bezier  P(t) dengan  (7), (6), (5). Maka didapat:
P o(t=0) = (2.0000 / 6.0000) P 1(t=0.15) = (2.9586 / 7.7902) P 2(0.35) = (4.3860 / 8.1250) P 3(t=0.5) = (5.5750/ 7.6250) P 4(t=0.65) = (6.6250 / 7.2080) P 5(t=0.85) = (8.0374 / 7.8242) P 6(t=1) = (9.0000 / 10.0000)
Penelitian yang kedua  menggunakan fungsi B-Spline. Dengan titik yang sama seperti penelitian fungsi Bezier yaitu: pertama menghitung knotvektor dan dimasukan nilai tersebut ke fungsi blending B-Spline didapat fungsi polynom B-Spline yaitu:
Dengan order k=2, didapat:
P o(t=0) = (2 / 6)
P 1(t=0.5) = (3 / 9) P 2(1) = (4 / 12) P 3(t=1.5) = (5.5/ 7.5) P 4(t=2.0) = (7 / 3)) P 5(t=2.5) = (8.0 / 6.5) P 6(t=3.0) = (9 / 10)
Dengan order k=3, didapat: P o(t=0) = (2 / 6) P 1(t=0.5) = (3.875 / 9.375) P 2(t=1) = (5.5/ 7.5) P 3(t=1.5) = (7.125 / 5.875)) P 4(t=2.0) = (9 / 10)
Dengan order k=4, didapat: P o(t=0) = (2 / 6) P 1(t=0.5) = (5.5 / 7.625) P 2(t=1) = (9/ 10)      dengan  (10) dan (9)

## HASIL DAN PEMBAHASAN
Dari hasil perhitungan fungsi Bezier didapat: P o(t=0) = (2 / 6) P 1(t=0.15) = (2.9586 / 7.7902) P 2(0.35) = (4.386 / 8.125) P 3(t=0.5 = (5.575 / 7.625) P 4(t=0.65) = (6.625 / 7.208)) P 5(t=0.85) = (8.0374 / 7.8242) P 6(t=1) = (9 / 10) [2],[25,28]

## Pembahasan untuk Bezier
Kurva yang pertama menghasilkan kurva polygon dan yang kedua menghasilkan kurva yang sama seperti pada kurva terakhir dari B-Spline, titik P 0, P 3 dan P 6 sama dengan Kurva B-Spline dengan order k=4(selalu order k terakhir sama dengan jumlah titik). Hasil perhitungan fungsi B-Spline didapat:
Menurut Order k=2: P o(t=0) = (2 / 6) P 1(t=0.5) = (3 / 9) P 2(1) = (4 / 12) P 3(t=1.5) = (5.5/ 7.5) P 4(t=2.0) = (7 / 3)) P 5(t=2.5) = (8.0 / 6.5) P 6(t=3.0) = (9 / 10)
Order k=3: P o(t=0) = (2 / 6) P 1(t=0.5) = (3.875 / 9.375) P 2(t=1) = (5.5/ 7.5) P 3(t=1.5) = (7.125 / 5.875))
P 4(t=2.0) = (9 / 10)
Order k=4, didapat: P o(t=0) = (2 / 6) P 1(t=0.5) = (5.5 / 7.625) P 2(t=1) = (9/ 10)
Dari hasil data perhitungan Bezier, bahwa pada titik-titik: P o(t=0) = (2.0000 / 6.0000),  P 3(t=0.5) = (5.5750/ 7.6250),  P 6(t=1) = (9.0000 / 10.0000)
hampir sama dengan B-Spline pada k=2 di titik-titik: P o(t=0) = (2.0000 / 6.0000),  P 3(t=1.5) = (5.5000/ 7.5000),   P 6(t=3.0) = (9.0000 / 10.0000) dan pada k=3 di titik titik: P o(t=0) = (2.0000 / 6.0000),  P 2(t=1) = (5.5000/ 7.5000),  P 4(t=2.0) = (9.0000 / 10.0000)
serta pada k=4 di titik titik: P o(t=0) = (2.0000 / 6.0000),  P 1(t=0.5) = (5.5000 / 7.6250), P 2(t=1) = (9.0000/ 10.0000)
Kalau diperhatikan, bahwa hasil kurva Bezier = Kurva B-Spline pada k =4 selalu yang terakhir.

## Pembahasan pada B-Spline:
Pada order k=2 selalu terjadi kurva polygon.  Kurva terakhir B-Spline sama dengan kurva Bezier. Dari kedua algoritma diatas didapat kurva yang mulus pada pembuatan angka 0 – 9,   huruf A – Z (a –z) dan peta perbatasan wilayah suatu Negara serta pembuatan gambar gambar elektronika maupun gambar-gambar hasil analisis di bidang kedokteran, Bila kedua algoritma yang diteliti dikembangkan pada fungsi blending, akan ada hasil yang lebih baik.

## PENUTUP
Untuk membuat citra yang tepat untuk sebuah bentuk, algoritma yang diusulkan adalah B- Spline. Dari  hasil yang didapat, algoritma B-Spline lebih luas dan memungkinkan lebih banyak pilihan dari order k-nya yang sangat cocok dengan aplikasi pada bidang sipil, arsitek, elektronika, industri automobil, industri kapal terbang maupun laut, teknik industri, kedokteran dan pemetaan, dan lain-lain. Jadi, semakin banyak titik titik bantu (Qi) diantara titik awal dan titik akhir semakin mulus kurva tersebut, tetapi semakin lama prosesnya karena banyak titik yang harus diproses. Walaupun Bezier tak ada pilihan untuk kurva yang cocok untuk aplikasi, penggunaannya sama seperti yang sudah dijelaskan pada kesimpulan di atas.

## DAFTAR PUSTAKA
Giloi, Wolgang K. (1999). Interactive Computer Graphics: Data Structures, Algorithms, Languages. New Jersey: Prentice Hall.
Newman, William M., Sproull , Robert F. (2000). Principles of Interactive Computer Graphics. New York:Tata-McGraw Hill.
Rogers, David F., Adams, J. Alan. (1976). Mathematical Elements for Computer Graphics. New York: McGraw-Hill.