• Tidak ada hasil yang ditemukan

Dalam geometri fraktal, dimensi fraktal, D, adalah sebuah besaran statistik yang memberikan indikasi tentang bagaimana benar-benar fraktal muncul untuk mengisi ruang, sebagai salah satu membesarkan ke skala yang lebih halus. Ada banyak definisi spesifik dimensi fraktal. Dimensi fraktal yang paling penting adalah dimensi teoretis Rényi, dimensi Hausdorff dan dimensi kemasan. Praktis, dimensi kotak-menghitung dan dimensi korelasi digunakan secara luas, sebagian karena kemudahan implementasi. Meskipun untuk beberapa fraktal klasik semua dimensi lakukan bertepatan, pada umumnya mereka tidak setara.

Ada dua pendekatan utama untuk menghasilkan struktur fraktal. Salah satunya adalah tumbuh dari benda unit, dan yang lainnya adalah untuk membangun divisi berikutnya dari struktur aslinya, seperti segitiga Sierpinski. Di sini kita mengikuti pendekatan kedua untuk mendefinisikan dimensi struktur fraktal.

Pada tahun 1919, seorang ahli matematika Felix Hausdorff memberikan sebuah definisi alternatif untuk sebuah dimensi dari sebarang himpunan di dalam Rn. Definisinya relatif kompleks, tetapi untuk himpunan yang saling serupa, definisi ini lebih menyederhanakan definisi yang telah ada. Dimensi Hausdorff dari sebuah himpunan saling serupa S dilambangkan dengan dH(S) didefinisikan sebagai

Dalam definisi tersebut, ln melambangkan logaritma natural, sedangkan k adalah nilai banyaknya pembagian himpunan menjadi subhimpunan, dan s adalah nilai skala faktor dari subhimpunan tersebut terhadap himpunan asal. Persamaan tersebut juga dapat dinyatakan dalam bentuk sebagai berikut:

Dimana dimensi Hausdorff dinyatakan dalam bentuk pangkat atau sebagai eksponen. Dengan bentuk tersebut dapat lebih menjelaskan mengenai interpretasi konsep dimensi Hausdorff. Sebagai contoh, ada sebuah himpunan saling serupa dengan faktor skala s = ½, maka areanya atau ukurannya akan berkurang dengan faktor

( )

S dH ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ 2 1

. Sebagai contoh untuk mengubah sebuah skala segmen garis dengan faktor ½

akan mengurangi panjangnya dengan faktor

2 1 2 1 1 = ⎟ ⎠ ⎞ ⎜ ⎝

, dan mengubah skala sebuah

bujursangkar dengan faktor ½ akan mengurangi ukurannya dengan faktor

4 1 2 12 = ⎠ ⎞ ⎜ ⎝ ⎛ . (Hendra, 2009, bab2, p15). 2.5 L – System

L-System di cetuskan pertama kali oleh seorang Ahli Biologi asal Hungaria, Aristid Lindenmayer, pada tahun 1968 dalam papernya “Mathematical models for cellular interactions in development”. Pada awalnya L-Sytem hanyalah formulasi yang

berlaku untuk tanaman tingkat rendah, namun pada perkembangan selanjutnya dapat juga diaplikasikan untuk tumbuhan tingkat tinggi. L-system juga dapat digunakan untuk membuat self-similar fraktal dan merupakan salah satu metode untuk menghasilkan algoritma Iterated Function System menggunakan formal language.

Framework dari L-System terdiri dari initial structure dan rewriting rules (atau generating rules). Inti pengembangannya adalah penggantian secara paralel menggunakan rewriting rules yang ada. Dimulai dari initial structure, L-System menggantikan setiap bagian dari struktur yang ada dengan menerapkan rule secara sekuensial.

Secara umum L-system adalah bentuk notasi dari sebuah perulangan tulisan dimana ide dasarnya adalah membentuk sebuah objek dengan menukar atau mengganti beberapa bagian pada sebuah aturan melalui mekanisme perulangan. Pengulangan pada aturan L-system merujuk kepada sebuah selfsimilarity dan untuk itu bentuk fraktal dapat

dibuat dengan mudah menggunakan L-system. Tata bahasa atau grammar L-system hampir serupa dengan semi-Thue grammar dan juga sekarang lebih dikenal sebagai parametric L-system yang diartikan sebagai tuple.

G = {V, S, ω, P}, dimana:

a. V (the alphabet) adalah himpunan dari beberapa simbol variabel yang mengandung elemen yang dapat diganti oleh variabel lain;

b. S adalah himpunan dari beberapa simbol yang konstan, yang tidak dapat diganti oleh simbol lain;

c. ω (start, axiom atau initiator) adalah sebuah inisial awal dari sistem berupa string yang mengandung V dan atau S;

d. P adalah sebuah himpunan dari production rules yang menjelaskan bagaimana setiap variabel dapat diubah dengan kombinasi dari variable lain, mengandung dua buah string yaitu predecessor dan successor.

Aturan pada L-system diterapkan secara berulang dimulai dari sebuah pernyataan awal (intial state). Rule tersebut diulang sesuai dengan jumlah iterasi yang diinginkan user. L-system adalah sebuah context-free grammar dimana setiap production rule hanya berlaku untuk satu simbol saja pada sebuah set. Simbol yang lain tidak terpengaruh dengan production rule tersebut. Hal ini disebut kelas D0L-system (Deterministic and 0-context /context-free). Sebagai contoh, ada dua buah variabel A dan B dimana untuk setiap variabel tersebut kita nyatakan sebuah production rule. Aturan tersebut adalahAAB dan BA, maksudnya adalah untuk setiap perulangan huruf A akan diganti dengan AB, sedangkan huruf B akan diganti oleh huruf A. Sebuah pernyataan awal (initial state) disebut axiom. Pada langkah pertama kita asumsikan terdapat axiom

dengan huruf A saja. Kemudian pada perulangan huruf tersebut diganti dengan AB merujuk pada aturan AAB. Langkah berikutnya, huruf B tersebut diganti dengan A sesuai aturan BA. Kedua huruf tersebut pada langkah selanjutnya akan diganti sesuai aturan yang telah dibuat, dan proses tersebut berlangsung terus secara berulang sesuai dengan jumlah perulangan yang diinginkan.

variables : A B;

axiom : A;

production rules : (A → AB), (B → A);

Bila digambarkan dalam diagram pohon adalah sebagai berikut (dimana n menyatakan langkah perulangan):

Dari pengertian L-system tersebut, dapat dikaitkan dengan bentuk fractal geometry karena proses pada L-system tersebut mempunyai sifat self-similarity. Untuk menghasilkan gambar fractal, digunakanlah sebuah interpretasi dari grafik, berdasarkan turtle geometry. State atau pernyataan dari turtle terdiri atas tiga jenis yaitu (x, y, a) dimana koordinat kartesius dilambangkan dengan (x, y), dan a dinyatakan sebagai sudut untuk menentukan arah dari koordinat tersebut. Kemudian juga dinyatakan d sebagai jarak yang akan ditempuh koordinat tersebut, serta perubahan sudut yang dinotasikan

sebagai Turtle geometry tersebut merespon perintah yang diberikan dengan simbol secara umum sebagai berikut (Edgar,2008, p15-18):

a) F : Maju sebanyak langkah d. pernyataan awal turtle akan berubah menjadi (x’ ,y’ , a), dimana x’ = x + d cos(a); dan y’ = y + d sin(a), kemudian gambar garis yang melalui (x,y) sampai (x’,y’)

b) f : Maju sebanyak langkah d tanpa menggambar garis dan state turtle berlaku seperti pernyataan pertama diatas.

c) + : Belok ke arah kanan sebesar sudut b. State dari turtle akan berubah menjadi (x, y, a+b)

d) - : Belok ke arah kiri sebesar sudut b. State dari turtle akan menjadi (x, y, a-b) Sebagai contoh adalah pendekatan L-system untuk menggambar “Quadratic Koch Island”. Pernyataan berikut akan memberikan keterangan mengenai variabel dan production rule yang digunakan untuk menggambar “Quadratic Koch Island”.

Axiom: F+F+F+F

Rules : F F+F-F-FF+F+F-F

Maka, setelah 4 iterasi akan menghasilkan bentuk geometri (Gambar 2.19) sebagai berikut:

variables : A B

axiom : A

rules : (A → B−A−B),(B → A+B+A)

angle : 60°

Dalam pernyataan tersebut, A dan B berarti gambar garis satu langkah. Sudut 600 akan mengubah arah garis tiap iterasi sehingga bentuk dasar segitiga selalu berada di bawah.

Berikut ini adalah daftar simbol-simbol secara lengkap yang akan digunakan untuk membuat L-System dalam penulisan laporan ini:

Tabel 2.1 Daftar Simbol Variabel pada L-System 2.6 Rekayasa Piranti Lunak

Perangkat lunak (software) adalah program – program atau instruksi – instruksi yang apabila dijalankan dapat melaksanakan fungsi dan kinerja yang kita inginkan. Rekayasa piranti lunak (software engineering) adalah teknik pengembangan software

dengan menggunakan metode pengembangan software untuk menghasilkan software yang berkualitas.

Rekayasa piranti lunak mencakup 3 elemen yang mampu mengontrol proses pengembangan piranti lunak,yaitu:

a. Metode-metode (methods)

Metode – metode rekayasa piranti lunak memberikan cara-cara teknis untuk membangun piranti lunak. Metode – metode itu menyangkut serangkaian tugas yang luas yang menyangkut :

• Analisis kebutuhan • Konstruksi program • Desain

• Pengujian • Pemeliharaan

Rekayasa piranti lunak mengandalkan setiap prinsip dasar yang mengatur setiap area teknologi dan menyangkut aktifitas pemodelan serta teknik – teknik deskriptif yang lain.

b. Alat-alat bantu (tools)

Alat-alat rekayasa piranti lunak memberikan topangan yang otomatis ataupun semi-otomatis pada proses-proses dan metode-metode yang ada. Ketika alat-alat itu diintegrasikan sehinga informasi yang diciptakan oleh suatu alat bisa digunakan oleh yang lain, sistem untuk menopang perkembangan piranti lunak yang disebut CASE (Computer Aided Software Engineering). CASE mengkombinasikan software, hardware, dan software engineering database.

c. Prosedur-prosedur (procedures)

Merupakan pengembangan metode dan alat bantu yang terdiri dari urutan dimana metode tersebut diterapkan, dokumen, laporan-laporan, formulir-formulir yang diperlukan, mengontrol kualitas software serta mengkoordinasi perubahan yang terjadi pada software.

Metode yang diterapkan pada rekayasa piranti lunak adalah SDLC (system development life cycle) dan OOP (object oriented). SDLC merupakan siklus hidup pengembangan system. Dalam rekayasa system dan rekayasa perangkat lunak, SDLC berupa suatu proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Penggunaan metode SDLC biasanya digunakan pada model proses waterfall. OOP (object oriented) adalah teknik untuk membuat program objek, yaitu program yang tersusun dari kelas dan objek yang saling berhubungan. Hubungan antar kelas/objek ini dapat dilihat baik saat program ditulis maupun saat program dieksekusi). Penggunaan metode OOP biasanya digunakan pada model proses RAD (rapid application development), JAD (joint application development).

Model proses prototype yang merupakan bagian dari model proses waterfall dan merupakan bagian dari metode SDLC mempunyai tahapan-tahapan yang terdiri dari communication, quick plan, modeling quick design, construction of prototype dan deployment delivery dan feedback. Model prototyping ini seperti sering terjadi customer menjabarkan secara objektif mengenai objek yang diminta, tetapi tidak bisa mendefinisikan input, proses, output yang diminta secara detail. Disisi lain, developer menjadi tidak yakin terhadap efisiensi algoritma, kemampuan adaptasi terhadap sistem

operasi, atau bentuk interaksi mesin dengan orang. Untuk mengatasi situasi tersebut, bisa digunakan pendekatan prototype paradigm. Seperti pada gambar dibawah ini:

1. Communication : Pada tahap ini prototype paradigm dimulai dengan mengumpulkan kebutuhan-kebutuhan customer. Pengembang berusaha mengumpulkan berbagai informasi dari konsumen.

2. Quick Plan : Pada tahap ini developer dan customer bertemu dan mendefinisikan

Dokumen terkait