MEMBANGKITKAN CITRA FRAKTAL Patah Herwanto, S.T. STMIK Indonesia Mandiri
[email protected] Abstrak Fraktal dapat dikatakan sebagai salah satu aplikasi computer yang kemudian berkembang menjadi sebuah ilmu tersendiri. Fractal secara umum merupakan suatu teknik pembangkitan citra dengan cara melakukan iterasi pada suatu fungsi tertentu. Lewat iterasi inilah kita akan mendafatkan suatu citra yang alami dan benar benar artistic dan istimewa. Dan dengan bantuan computer kita bisa mengekplorasi citra ini dengan lebih dalam sehingga dapat mendapatkan bentuk terindah dari suatu citra fractal Kata kunci : Fraktal, iterasi. Mandelbrot, Julia. 1. Pendahuluan Sejarah fraktal belumlah berlangsung lama dimulai mendadak tahun 1975 dengan tulisan revolusionernya dari seorang matematikawan Benoit Mandelbrot yang berjudul A theary of fractal sets dan kemudian menjadi buku dan manifestonya The Fraktal Geometri of Nature.Mandelbrot memakai istilah fractal untuk menyamakan dengan istilah fractal sebelumnya. Matematikawan seperti Wackley Sierpinski, David Hilbert, George cantor dan Helge Von Kock sebelumnya berhasil menggambarkan suatu kurva yang sebelumnya belum pernah di gambarkan dan dibayangkan. Suatu sifat utama yang ditemukan oleh matematikawan ini adalah adanya sifat yang disebut Self Similiarity yaitu bahwa rupa (shafe) dari suatu bagian kecil pada kurva tersebut sama atau lebih mirip denga bagian lain yang lebih besar. Panjang kurva ini tidak mudah untuk di ukur dan ditentukan dan dimensinya kemungkinan terletak antara garis dan bidang. 1.1 Geometri Fraktal Geometri fraktal adalah suatu konsep geometri yang diperkenalkan oleh Mendelbrot. Mendelbrot memperkenalkan konsep ini untuk mengetahui kerumitan kurva geografi. Fraktal didefinisikan sebagai suatu bentuk yang terdiri dari
bagian- bagian yang secara keseluruhan adalah serupa. Seperti contoh yang ditunjukan dalam gambar 1, yaitu Pohon Fern dimana Pohon Fern yang besar terdiri dari cabang- cabang atau bagian – bagian yang apabila dipindahkan dan dibandingkan dengan keseluruhan adalah sangat mirip dan hanya dengan ukuran yang lebih kecil.
Gambar 1. Visualisasi kemiripan bagian terkecil terhadap bagian keseluruhan dari pohon Fern Kemudian kelompok-kelompok ini diamati lagi pada ukuran yang lebih kecil yang mana akan kelihatan sangat mirip dengan bentuk keseluruhan. Jadi fraktal itu adalah suatu bentuk yang tampak sama bagaimanapun skalanya. Kemiripan dengan dirinya sendiri akan dicapai pada tiga atau empat tahapan dan setelah itu struktur terlalu kecil untuk diamati. Didalam proses
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
20
matematika, sifat kemiripan dengan dirinya sendiri dari suatu object fraktal dapat dilanjutkan hingga tahapan yang tak terhingga. 1.2 Kurva Tridiac Koch Pemahaman tentang konsep, fraktal dan penentuan dimensi fraktal akan lebih jelas dengan mempelajari kurva Tridiac Koch yang dapat dilihat pada gambar 2. Kurva Tridiac Koch adalah kurva standar yang digunakan untuk menjelaskan bahwa suatu kurva mungkin mempunyai dimensi fraktal lebih besar dari I (satu).
1.3 Karakteristik Fraktal Secara tradisional suatu bentuk mempunyai dimensi 0 (suatu titik), 1 (garis dan kurva), 2 (bidang dan permukaaan) atau 3 (ruang). Secara teoritis dimensi -dimensi tersebut diperluas hingga meligkupi dimensi ke empat dan dimensi yang lebih tinggi lagi selagi masih dapat dibayangkan. Dua matematikawan bernama Felix Hausdorft dan Abram Besicovitch menyatakan bahwa suatu bentuk dapat mempunyai dimensi fraktal seperti gambar 3. Beberapa kurva seperti kurva koch terletak diantara dimensi-dimensi biasa dan prilaku anehnya dapat dijelaskan. Dimensi fraksional barn im dapat dihitung dengan tepat berdasarkan pengukuran dan pendekatan sederhana sebuah kurva.
Gambar 2. Kontruksi kurva koch dengan faktor 4 Kurva Tridiac Koch dimulai dengan satu garis lurus yang mempunyai panjang sebesar satu satuan panjang. Bentuk ini disebut sebagai initiator dan biasa disebut sebagai iterasi ke-0. Pembentukan kurva Koch ini diteruskan dengan terbentuknya empat segmen garis yang setiap segmennya mempunyai panjang sebesar 1/3 satuan panjang. Bentuk ini disebut sebagai iterasi ke-1. Untuk iterasi ke-2, akan diperoleh 16 segmen garis yang mempunyai panjang 1/9 satuan panjang pada setiap segemennya. Untuk iterasi ke-0, panjang kurva Koch adalah satu satuan panjang. Sedangkan untuk iterasi ke-2 diperoleh 16/9 satuan panjang. Secara umum, dapat dituliskan suatu persamaan untuk menentukan panjang kurva Koch untuk generasi ke-n. Untuk menentukan ke-n, banyaknya segmen adalah 4n, sedangkan setiap segmen mempunyai panjang sebesar 3n. Jadi panjang kurva Koch untuk generasi ke-n adalah: Ln = (4/3)n
Gambar 3. Kurva Koch Secara khusus dimensi Hausdorft/ Besicovitch didefinisikan sebagai perbandingan antara logaritma dari jumlah salinan dan ukuran benih relatif masing-masing salinan, untuk segitiga koch didapatkan log(4)/log(3) sama dengan 1.2612 karena terdapat empat salinan dan masing-masing adalah seperfiga dari ukuran benih. Tahun 1982 Mendelbroth dalam buku The Fractal Geometry Of Nature ia memakai istilah fraktal dari bahasa latin Frangere atau Fractus yang berarti terpecah manjadi fragmen-fragmen yang tak teratur. Untuk menentukan suatu bentuk sebagai fraktal bentuk tersebut harus mempunyai
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
21
dimensi Hausdorft atau Besicovitch yang lebih besar daripada dimensi topologo tradisionalnya Secara umum fraktal adalah sembarang bentuk yang bagian-bagianya ketika diperbesar memperlihatkan banyak detil yang seperti keseluruhannya. Seperti penjelasan sebelumnya bahwa geometri fraktal dapat dibentuk dari fungsi metematika, fungsi tersebut menghasilkan suatu bentuk geometri yang komplex, Fraktal Secara umum mempunyai beberapa karakteristik diantaranya: 1. mempunyai struktur yang komplex pada setiap bagian 2. mempunyai dimensi non integer 3. mempunyai sifat self similiar dan skla yang tetap dengan kata lain bagian terkecil dari fraktal apabila diperbesar mempunyai bentuk sama dari keseluruhan bagian. 2. Tinjauan Matematis Untuk membawa fraktal - fraktal ini menjadi nyata, layar dua dimensi hares menjadi semacam jendela untuk mengabstraksikan dunia dua dimensi yang disebut bidang komplek. Koordinat bidang komplek yang bersesuaian dengan sumbu mendatar layar disebut dengan bilangan real, koordinat yang bersesuaian dengan sumbu tegak disebut dengan bilangan imajiner. Pada bagian in] akan menjelaskan geometri dan tranformasi bilangan dua dimensi. 2.1 Aritmetika Bilangan Komplek Bilangan komplek, z, terdiri atas dua bagan ordinal, x dan y, yang bersesuaian dengan koordinat pada sumbu mendatar dan tegak. Berdasar konvensi, perkalian bilangan mendatar (real) dengan akar kuadrat -1, disebut i, menghasilkan bilangan tegak dengan magnitude yang sama sehingga dapat menyatakan bilangan kompleks sebagai dua bilangan real, yang salah satunya dikalikan dengan i. Sehingga z = x + iy kuadarat suatu bilangan bulat tidak pernah menghasilkan -1, sehingga √-1 harus
merupakan bilangan imajiner. Jika kita merupakan critter satu dimensi, maka dimensi keduanya adalah figment dari imajinasi kita. Untuk kita yang berada pada dunia tiga dimensi, perkalian dengan i identik dengan memutar objek itu dengan 90 derajat. Untuk menjumlahkan bilangan kompleks, z1, dan z2, dilakukan dengan menjumlahkan komponen – komponennya. Sehingga , cara lain untuk menulis z3 = z1 + z2 adalah x3 = x1 + x2 y3 = y1 + y2 Secara geometris, menjumlahkan dua bilangan sama dengan memindahkan suatu titik maju beberapa langkah sesuai dengan besarnya titik kedua. Kita tahu bahwa z3 = z1, z2 dapat ditulis (x3 + iy3) = (x1 + iy1) (x2 + iy2) Karena i = √1 maka i2 = -1 dengan mengalikan komponen imajiner maka diperoleh x3 = x1x2 – y1y2 x3 = x1y2 + y1x2 Secara geometris operasi ini mengalikan magnitude dari dua titik dan menambahkan faktor rotasi, sehingga sudut antara z3 dan horizontalnya sama dengan kombinasi sudut z1 dan z2. 2.2 Tranformasi afin Cara lain untuk menuliskan x dan y sebagai komponen dari bilangan kompleks z adalah dengan mengunakan matrik z dengan dua elemen, x dan y.
r x Z = y Tranformasi afin merupakan kombinasi dari rotasi dan penskalaan, atau pengibahan ukuran. Kita dapat merotasi dan menskala komponen x dan y secara terpisah, sehingga kita dapat memulainya dengan empat buah bilangan.
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
22
p : rotasi pada komponen x q : rotasi pada komponen y r : menskala komponen x s : menskala komponen y untuk mengalikan matrik ukuran 2 x 2 dengan sebuah titik yang terdiri dari dua bilangan atau matrik 1 x 2 maka kita harus mengkonversikannya menjadi empat buah bilangan yang berbeda yaitu a,b,c, dan d. untuk melakukan hal ini, kita gunakan persamaan a = r cos p b = -s sin q c = r sin p d = s cos q letakan a, b, c dan d kedalam matriks: a b A= c d Jika tranformasi afin diterapkan pada titik z maka Z2 = Az1 maka x2 = ax1 + byl y2 = cx1 + dyl persamaan diatas akan menangani rotasi dan penskalaan. Tranformasi afin juga dapat memuat penggeseran titik. Dengan menambahkan jarak pemindahannya m, dengan komponen m adalah: e : penggeseran ke arah x f : penggeseran ke arah y hasilnya adalah : x2= ax1 + by1 + e y2 = cx1 + dy1 + f dengan menerapkan tranformasi afro ini kesetiap titik sudut poligon , kita dapat memutar, menskala, dan menggeser keseluruhan poligon itu. 2.3 Interpolasi fraktal Interpolasi digunakan untuk mencari tranformasi afrin secara otomatis yang sesuai dengan bentuk suatu objek. Tanformasi afin ini mengandung rotasi y, sehingga rumus diatas menjadi:
a = r cos p b = s sin 0=0 c = r sin p d=s cos 0 = s Nilai b adalah 0 karena. sin 0 = 0 dan nilai d adalah sama dengan faktor skala vertikal. Sehingga akan didapat lima buah bilangan yang menyatakan tranformasi afin diantara dua titik z1, dan z2. Tranformasi afin harus memetakan titik akhir dari keseluruhan himpunan data (z0 dan zn) ke dalam nilai zi dan zi-1. Dengan kata lain, tranformasi itu harus memenuhi persamaan ai x0 = ei = xi =1 a i x N = ei = x i ci x0 = d i y N = f i = xi =1 ci x N = d i y N = f i = xi =1 Dengan N adalah cacah data titik Karena terdapat empat buah persamaan dengan lima peubah tak diketahui. Maka sebuah peubah dapat dihilangkan dan masih tetap dapat menyelesaikan persamaan - persamaan itu. Pengendalian faktor skala vartikal d yang tak gayut terhadap fraktal akan sangat membantu, sehingga penyelesaian untuk a, c, e dan f, adalah sebagai berikut ( x = xi =1 ) ai = i ( x N = x0 ) ( y = y i =1 ) di ( xi = xi =1 ) ci = i = ( x N = x0 ) ( x N = x0 ) ( x x = x 0 xi ) ei = N i =1 ( x N = x0 ) ( x y = x0 y1 ) d i ( x n y 0 = x0 y N ) fi = N i =1 = ( x N = x0 ) ( x n = x0 ) dengan mengatur faktor Skala vertikal tranformasi, kita dapat mengubah sebuah tranformasi dan juga dapat mengendalikan dimensi fraktal d dari keseluruhan fraktal dengan memastikan bahwa : n n=1| d i |= N D=1 relasi ini benar jika nilai x sama dengan mlai increment-nya. Dalam praktek, interval koordinat x dapat bervareasi, dan m1al d
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
23
masih dalam batas toleransinya 3. Pembangkitan Citra Fraktal Seperti kita ketahui fraktal merupakan refleksi diri dari bentuk dasarnya schingga kalau diperhatikan setiap citra fraktal yang berukuran besar, is disusun dari serangkaian benih atau fraktal yang kecil yang telah mengalami serangkaian tranformasi sehingga setiap rangkaian benih fraktal tersebut memiliki posisi yang berbeda. Secara umum langkah - langkah untuk mendeskripsikan proses yang digunakan untuk menciptakan model fraktal adalah sebagai berukut : 1 Carilah refleksi diri dan temukan batasannya, apakah seberapa detil kecil menyerupai bagian yang lebih besar atau keseluruhannya?, seberapa dekat kita dapat melihat sebelum kesamaan diri menghilang. 2 Tentukan hubungan satu level skala dengan level berikutnya. Biasanya kita dapat melihat pada level terkecil atau terbesar. 3 Ciptakan suatu bentuk benih untuk berurusan dengan level skala terbesar atau terkecil, sebagai contoh untuk memodelkan tumbuhan kita akan membentuk benih yang terlihat seperti suatu bentuk luar kasar dari keseluruhan tumbuhan (level terbesar) atau tangkai (level terkecil). 4 Tempatkan tiruan benih yang telah ditransformasikan agar menyerupai level skala berikutnya pada pohon kita dapat meletakkan tiruanya dari keseluruhan ditempat mereka terlihat pada tumbuhan nyata atau tiruan dari batang untuk level cabang pertama. 5 Pilihlah level detil untuk penyesuian dengan hasil observasi yang kita lakukan, pepohonan sebagai contoh biasanya mempunyai sekitar lima level percabangan dari batang keranting. 6 Lanjutkan pola untuk melihat hasilnya. Kita dapat mengerjakannya menggunakan coretan tangan akan tetapi lebih menyenangkan kalau kita menggunakan komputer.
7
Atur bentuk agar cocok dengan hasil observasi. Tambahkan derajat variasi acak yang sesuai jika diperlukan.
3.1 Fraktal Mandelbrot Fraktal mandelbrot didapatkan dengan melakukan iterasi atas fungsi Z n = Z n2=1 = c dengan z dan c adalah bilangan kompleks. Berdasarkan fungsi diatas, iterasi dimulai dengan menghitung nilai z, berdasarkan nilai c sembarang yang mewakili suatu titik kompleks c = x + iy yang diuji. Untuk setiap titik kompleks c = x + iy, dilakukan iterasi untuk menghitung z0, z1, z2, dan seterusnya.iterasi dilakukan sampai didapatkan suatu kondisi bahwa | zn | ≥ batas_divergensi, atau iterasi telah mencapai cacah iterasi maksimum yang diinginkan. Nilai awal zn, dapat dipilih antara z0 = 0 atau z0 = c. Jika iterasi dimuai dengan mengambil nilai z0 = 0 yang bersrti z1 =c, maka diperlukan satu iterasi tambahan dibandingkan apabila dipilih z0 = c. Jika proses iterasi dipilih dengan z0 = 0 + i0, maka nilai-nilai zn berikutnya adalah : z1 = c z2 = c2 +c z3 = (c2 + c)2 + c 2 2 2 z4 = ((c + c) + c) + c, dan seterusnya cacah iterasi n yang dicapai oleh suatu titik x + iy selanjutnya disebut sebagai angka iterasi, disingkat AI. Jika pada suatu titik x + iy setelah iterasi dilakukan terdapat kondisi bahwa | zn | ≥ batas_divergensi, maka nilai zn, akan berada diluar daerah Mandelbrot. Sebaliknya, Jika setelah iterasi didapatkan nilai | zn | < batas_divergensi, maka titik x + iy akan berada didalam daerah Mandelbrot. 3.2 Fraktal Julia Fraktal Julia didapatkan dengan melakukan iterasi atas persamaan yang sama dengan persamaan yang digunakan untuk membangkitkan fraktal Mandelbrot. Perbedaannya terletak pada nilai bilangan kompleks c. Jika pada fraktal Mandelbrot nilai c ditentukan oleh kedudukan titik x +
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
24
iy, maka pada fraktal Julia, nilai c ditentukan oleh suatu bilangan kompleks Pval + iQval, yang besarnya tetap untuk setiap titik kompleks x + iy yang diuji. Perbedaan lainnya ialah pada penentuan titik z0. Pada fraktal Julia, nilai z0 ditentukan sebagai z0 = x + iy. 3.3 Faktal Dragon Fraktal dragon diperoleh dengan melakukan iterasi atas fungsi berikut ini : z n = c(1 = z n =1 ) 2 Seperti pada fraktal Julia, konstanta c pada fraktal dragon ditentukan oleh suatu bilangan kompleks c = Pval + Oval, yang besanya sama untuk setiap titik kompleks x +iy yang diuji. Nilai awal zn ditentukan sebagai z0 = x + iy. 3.4 Hubungan Fraktal Mandelbrot dan Julia Dari fungsi yang digunakan untuk membangkitkan fraktal Mandelbrot dan fraktal Julia, yang tenyata adalah sama, maka dapat dibuat suatu hubungan antara fraktal mandelbrot dan fraktal Julia. Dimisalkan suatu himpunan dalam fraktal Julia dengan nilai c = w dan z0 = w. Dari persamaan itu didapatkan bahwa: z0 = w dan z1 = w2 + w Dimisalkan juga pada suatu fraktal Mandelbrot terdapat suatu titik yang mempunyai nilal c = w. Sehingga didapatkan bahwa : z0 = w dan zi =w2 + w Dari dua hasil diatas dapat dilihat, bahwa pada titik tertentu, fraktal Julia dan fraktal Mandelbrot mempunyai hasil iterasi yang sama. Jika titik didalam bidang kompleks kemudian digeser sejauh d (d juga berupa bilangan kompleks), maka untuk fraktal Julia didapatkan: z0 = w + d z1 = (w + d)2 + w+d Untuk fraktal mandelbrot akan diperoleh z0 = w + d z1 = (w+d)2 + w + d
Dari persamaan persamaan diatas dapat dlihat, bahwa jika nilai d dipilih sangat kecil dapat diabaikan, maka hasil iterasi kedua fraktal adalah sama. Jka nilai d membesar, aka diperoleh hasil yang semakin berbeda. Nilai d dapat dibuat bervariasi, sehingga hasil w+d dapat mewakili setiap titik (pixel) pada layar komputer. Untuk setiap pixel pada layar, iterasi dimulai dengan hasil yang sama. Tetapi dengan semakin membesarnya nilai d akan didapatkan hasil yang semakin berbeda. 4. Algoritma Program Algoritma merupakan tahapan proses dari pembuatan suatu program, dengan algoritma ini kita dapat melihat sekilas tentang suatu procedure tanpa harus mengimplementasikannya, dengan algoritma ini juga kita dapat mengimplementasikan ke dlam berbagai bahasa pemograman lain dengan mudah. 4.1 Algoritma Mandelbrot Pembangkitan fraktal mandelbrot dimulai dengan menghitung nilai deltap (pergeseran dalam arah rill x bidang kompleks) dan deltaq (pergeseran dalam arah imajiner y bidang kompleks). Tetapan kompleks c=cx+icy ditentukan berdasarkan lokasi pixel vang dinyatakan sebagai P(kolom,baris) pada layar, dengan: ex = xmin + deltap * kolom dan cy = ymax – deltap * baris seterusnya dilakukan proses iterasi Z2=Z2n-1 + c sampai batas iterasi, yang dinyatakan dengan kondisi AI > batas–iterasi, nilai peubah max_iterasi dicapai, atau sampai |z|>2. Nilai awal AI adalah AI=0, dan untuk setiap tahap iterasi nilai AI bertambah satu. Nilai warna ditentukan berdasarkan hasil kali pangali warna PW dengan angka iterasi PW. Warna=PW*AI Algoritma untuk membangkitkan fraktal Mandelbrot adalah sebagai berikut
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
25
Diketahui CI,RL :Titik awal penggambaran fraktal Xmax, Ymin,Ymax : menentukan besarnya penggambaran Max–iteration : Iterasi maksimum yang akan dilaksanakan X,y,fsq,count : nilai awal untuk menghitung angka iterasi mandelbrot Maxrow,maxcol : Jumlah maksimum Pixel ban's dan kolom Peubah Deltap, Deltaq besarnya pergeseran Col, Row bans dan kolom .X, Cy I cy Warna warna
: :
20. If count > = and max_iteration then 21. Warna = count 22. Warna = warna * pw 23. Setcolor (warns) 24. Setpixel ( col,row) 25. Next col 26. Next row
count
<
menentukan initialisasi
untuk
: menentukan c = cx + :
untuk
penugasan Gambar 4. Fraktal Julia
Function Setcolor(wama) : mengatur warns aktif Setpixel(col,row) : menggambar titik pads posisi colour dan baris Mandelbrot ( CL, RI, Xmin, Xmax, Ymin, Ymax,; Max iteratio 1. DeltaP = (Xmax –Xmin) / Maxcol 2. DeltaQ = Ymax – ymin) /maxrow 3. For Col = CL To Maxcol - 1 do 4. For Row = RC to maxrow -1 do 5. Old x=0 6. Old_y=0 7. Cx=Xmin + deltaP * col 8. Cy = ymax – DeltaQ * row 9. X=0.0 10. Y = 0.0 11. Fsq = 0 12. Count = 0 13. Fsq = X*X + Y* Y; 14. Tmp = 0 15. X=X*X–Y*Y+CX; 16. Y = 2.0 * tmp * y+cy; 17. Count = count + 1 18. If count < max_iteration then goto, 13 19. If count = max_iterationthen warna =0
4.2 Algoritma Fraktal Julia dan Dragon Pembangkitan fraktal julia dan dragon menggunakan langkah-langkah yang sama dengan pembangkitkan fraktal Mandelbrot, perbedaannya terletak pada kalang dalam. Pada saat program memasuki kalang dalam, awal zo=xo+iyo dihitung berdasarkan lokasi pixel p(kolom, baris), dengan X=xmin+deltap*kolom Y=ymax-deltaq*ban's Nilai konstanta kompleks c ditentukan oleh parameter masukan pval dan qval, dimana c=pval+iqval. Nilai c tersebut selalu tetap untuk setiap iterasi. Setelah nilai z dan c didapatkan, maka program melakukan iterasi atas fungsi z n = z n2=1 = c Untuk Fraktal Julia dan z n = C (1 = z n =1 ) 2 Untuk Fraktal Dragon
4.3 Algoritma Fraktal Dragon Algoritma untuk membangkitkan fraktal Dragon adalah sebagai berikut Diketahui Cl,cr : titik awal penghitungan
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
26
Xmax, xmin, ymax, ymin : nilai untuk pembesaran bidang Max iteration : angka maximal iteratio Maxrow, maxcol : nilai maksimum pixel baris dan kolom Pval, qpal : nilai konstanta kompleks Peubah Deltap, deltaQ pergeseran Col, row kolom dan baris Xsquare, ysquare untuk nilai x2 Warna warna X, y Xy sementara untuk x*y
:
22. Warna = count 23. Warna = warns * pq 24. Setcolor (warns) 25. Setpixel ( col,row) 26. Next col 27. Next row
besarnya
: variable nilai : penyimpanan : nilai untuk : titik aktif : penyimpanan
Dragon ( CL, CR, Xmin, Xmax, Ymin, Ymax, max–iteration ) 1. DeltalP = Xmax – Xmin ) / Maxcol 2. DeltaQ = Ymax _ Ymin) / maxrow 3. For Col = CL to Maxcol –1 do 4. For Row = Cr to Maxrow –1 do 5. X = Xmin + DeltaP * Col; 6. Y = Ymax – DeltaQ * Row; 7. Xsquarl= square = 0 8. Count = 0 9. Xsquare = X * X 10. Ysquare = y * Y 11. XY=X*Y 12. Tmp = -2 *Pval * xy – Qval * Ysquare 13. Tmp = Pval * Y + Qval * X + tmp 14. X = - Pval * Xsquare + Pval * Ysquare + 2 Qval XY 15. Pval * X – Qval * Y + X 16. Y = trnp 17. Count = Count + 1 18. If ( Count < Max_iteration) and (Xsquare + Ysquare
=0) and ( count < Max_iteration ) then
Gambar 5. Fraktal Dragon Algoritma Fraktal Julia Algoritma untuk membangkitkan fraktal Julia adalah sebagai berikut Diketahui Cl, rl : titik awal. penggambaran Xmax, xmin ymax, ymin : nilai untuk pembesaran bidang fraktal Maxcol, maxrow : nilai maximum untuk bans dan colour Peubah Deltap, deltaq pergeseran X,y aktif Fsq, count penampung Warna warns
besarnya
: posisi pixel :
nilai
: cacah untuk
Julia (CL, RL, Xmax, Xmin, Ymax, Ymin, Max–Iteration) 1. Deltalp = (Xmax – Xmin) maxcol; 2. DeltaQ = (Ymax – Ymin) maxrow;
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
27
:
3. For col = CL to maxcol – 1 do 4. For row = RL to maxrow –1 do 5. X = Ymin +detaP * col 6. Y = Ymax – delta Q * row 7. Fsq = 0 8. Count = 0 9. Tmp = X 10. X = X * Y – Y * Y + Pval 11. Y= 2,0 tmp * Y + Qval 12. Fsq = x-x +y*y 13. Count = count + 1 14. If ( count < max_iteration ) and fsq < 4) goto 9 15. If ( count = max_iteration)warna = 1 16. Warna = count 17. Setcolor (warna) 18. Setpixel (col,row) 19. Next col 20. Next row
Gambar 6. Fraktal Julia dan pembesaran dari sebagian fraktal julia
suatu citra yang indah yang dapat dibangkitkan melalui suatu persamaan matematika dan diaplikasikan menjadi komputer grafik yang dibentuk melalui suatu iterasi terhadap fungsi matematika tertentu. Dan citra yang dihasilkan menyeruapai keadaan sebenarnya di alam, yang mempunyai sifat kesamaan diri dari keacakan yang sangat menakjubkan. Daftar Pustaka 1. Oliver, Dick, Fraktal Vision; Put Fraktal to Work For You. Sains Publishing; Firs Edition, 1992 2. P. Insap Santosa, Msc, Ir., R.Tony K. Ir, Pemograman Fraktal Resolusi Tinggi untuk Kartu Trident SVGA, Andi Offset Yogyakarta; Cetakan Pertama 1997. 3. Fraktal Basic, http://www.fractalhaven.com/essays/frac tal_basics.htm, di Akses Oktober 2009. 4. Fraktal Dimension http://www.math.ubc.ca/~cass/courses/ m308-03b/projects-03b/skinner/exdimension-koch_snowflake.htm, di Akses Oktober 2009. 5. Fractals, http://people.csail.mit.edu/acornejo/html /fractal.htm, di akses Oktober 2009. 6. The Fractal Geometri of the Mandelbrot Set. http://math.bu.edu/DYSYS/FRACGEOM/in dex.html, di akses Oktober 2009
5. Kesimpulan Fraktal pada dasarnya merupakan
Jurnal Infoman’s > Jurnal Ilmu-ilmu Manajemen dan Informatika STMIK Sumedang
28