• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
16
0
0

Teks penuh

(1)

LANDASAN TEORI

2.1. Fuzzy Relation

Dalam dunia ini, banyak hal bersifat tidak pasti dimana derajat kepastian (degree

of preciseness) hal-hal tersebut secara intuisi berbeda-beda. Di sini, fuzzy set dapat

dijadikan alternatif untuk merepresentasikan hal-hal yang tidak pasti itu. Misalkan D adalah domain data. Sebuah set X dalam domain D yang menyatakan suatu properti yang tidak bisa secara pasti dipenuhi oleh elemen D, dapat dinyatakan sebagai suatu

fuzzy set X terhadap D. Fuzzy set ini dapat didefinisikan sebagai pemetaan D ke interval

[ 0,1] yang ditentukan oleh sebuah membership function µ, dan dapat didefinisikan sebagai berikut:

µx :D→[0,1]

dimana X adalah sebuah fuzzy set dalam D dan µX adalah membership function dari

fuzzy set. Membership function adalah suatu fungsi untuk menentukan derajat

keanggotaan elemen dalam D terhadap fuzzy set X.

Fuzzy Relation dapat didefinisikan sebagai suatu konsep untuk menyatakan

relasi berupa fuzzy antara dua entity dalam sebuah domain. Relasi ini dinyatakan dalam interval [0,1], yang merupakan derajat asosiasi dari dua entity tersebut. Untuk lebih jelas, perhatikan contoh berikut:

Misalkan R adalah sebuah fuzzy relation antara dua set X = {NYC, Paris} dan Y= {Beijing, NYC, London}, yang merepresentasikan konsep relasi “sangat jauh”.

(2)

Relasi ini dapat ditulis dengan notasi sebagai

Relasi ini juga dapat direpresentasikan dalam bentuk matriks dua dimensi sebagai berikut:

NYC Paris Beijing 1 0.9 NYC 0 0.7 London 0.6 0.3

Konsep fuzzy relation tersebut dapat diperluas (extended) menjadi relasi berupa

fuzzy antara dua fuzzy set dalam sebuah domain. Relasi ini dapat dihitung dengan

menggunakan konsep fuzzy conditional probability relation.

Misalkan µX dan µY adalah dua membership function dalam domain D, untuk dua fuzzy set X dan Y, dari fuzzy power set F (D) . R adalah sebuah fuzzy conditional

probability relation antara dua fuzzy set X dan Y, yang dinyatakan oleh pemetaan R:

F(D) x F(D)→[0,1] , dan didefinisikan sebagai

dimana R(X,Y) berarti derajat asosiasi Y terhadap X dan |Y| = merupakan

cardinality dari Y.

(3)

D={d1,d2,d3,d4,d5,d6} yang memiliki nilai

Derajat kemiripan P1 terhadap P2 dapat dihitung sebagai berikut,

Sedangkan derajat kemiripan P2 terhadap P1 adalah

Tabel 2.1 di bawah ini menunjukkan derajat kemiripan dari ketiga partisi tersebut (Perhatikan bahwa R(P1,P2)=0.29 tetapi R(P2,P1) = 0.20)

Tabel 2.1 Derajat Kemiripan R(X,Y) dari Partisi

X/Y P1 P2 P3

P1 1.00 0.29 0

P2 0.20 1.00 0.15

P3 0 0.29 1.00

Di sisi lain, setiap elemen data dalam D dapat direpresentasikan sebagai fuzzy set terhadap P dengan rumus

contohnya,

(4)

diartikan sebagai nilai true dari dari preposisi “if P1 then d1” atau nilai true d1 yang diberikan oleh P1.

Dengan demikian dihasilkan fuzzy set elemen dalam D terhadap P sebagai berikut:

Dengan menggunakan rumus diatas, derajat kemiripan antara setiap elemen data dalam

domain D dapat dihitung. Derajat kemiripan antara elemen ditunjukan pada Tabel 2.2.

Tabel 2.2 Derajat Kemiripan R(X,Y) dari Elemen

X/Y D1 D2 D3 D4 D5 D6 D1 1.00 0.69 0.15 0 0 0 D2 0.80 1.00 0.36 0.27 0 0 D3 0.20 0.41 1.00 0.56 0 0 D4 0 0.24 0.43 1.00 0.60 0.60 D5 0 0 0 0.44 1.00 1.00 D6 0 0 0 0.44 1.00 1.00

(5)

2.2. Genetic Algorithms (Algoritma Genetik)

Genetic Algorithms adalah sebuah algoritma pencarian solusi yang dibuat

dengan menerapkan mekanisme evolusi genetika makhluk hidup dalam dunia biologi.

Genetic Algorithms memiliki konteks yang lebih sederhana, karena tidak sekompleks

dan serumit evolusi genetik dalam dunia biologi. Dalam dunia biologi, semua makhluk hidup memiliki sel, dan setiap sel terdiri dari kromosom-kromosom (susunan DNA) yang menjadi “blueprint“ dari makhluk hidup tersebut. Setiap kromosom terbagi menjadi gen-gen yang menentukan sifat-sifat makhluk hidup tersebut, seperti warna mata. Ciri yang berbeda-beda pada gen-gen tersebut dikenal dengan nama allele, seperti pada warna mata terdapat warna biru, coklat, dan sebagainya.

Sama seperti dunia biologi, dalam Genetic Algorithms, juga terdapat kromosom, yang merupakan kandidat solusi untuk suatu masalah (problem). Kromosom ini juga terdiri dari gen-gen, yang dapat berupa bit-bit tunggal atau kumpulan beberapa bit yang merupakan elemen pembentuk kromosom. Bit-bit tunggal tersebut merupakan allele dari gen pada Genetic Algorithms. Hanya bedanya, dalam aplikasi Genetic Algorithms, setiap makhluk hidup (individu) tidak memiliki sel dan hanya memiliki satu kromosom.

2.2.1. Sejarah Singkat Genetic Algorithms

Genetic Algorithms pertama kali ditemukan oleh John Holland pada tahun

1960-an d1960-an kemudi1960-an dikemb1960-angk1960-an bersama murid-murid d1960-an rek1960-an kerj1960-anya di Universitas Michigan pada tahun 1960-an sampai 1970-an. Tujuan Holland mengembangkan Genetic Algorithms saat itu bukan untuk mendesain suatu algoritma yang dapat memecahkan suatu masalah, namun lebih mengarah ke studi mengenai

(6)

fenomena adaptasi yang terjadi di alam dan mencoba menerapkan mekanisme adaptasi alam tersebut ke dalam sistem komputer. Genetic Algorithms yang dibuat Holland merupakan sebuah metode untuk memindahkan satu populasi kromosom (terdiri dari bit-bit 1 dan 0) ke populasi baru dengan menggunakan “seleksi alam” dan operator genetik seperti crossover, mutation (mutasi), dan inversion. Crossover menukar bagian kecil dari dua kromosom, mutasi mengganti secara acak nilai gen beberapa lokasi pada kromosom, dan inversion membalikkan urutan beberapa gen yang berurutan dalam kromosom. Dasar teori inilah yang menjadi dasar kebanyakan program yang menggunakan Genetic Algorithms saat ini.

2.2.2. Implementasi Genetic Algorithms

Implementasi Genetic Algorithms secara umum memiliki tahapan proses (algoritma) sebagai berikut:

a. Membuat populasi awal yang terdiri dari n buah kromosom (kandidat solusi untuk masalah yang ada)

b. Menghitung fitness cost setiap kromosom dalam populasi.

c. Melakukan pengulangan proses seleksi, crossover, mutasi hingga n buah kromosom baru (offspring) terbentuk.

d. Mengganti populasi lama dengan populasi yang baru terbentuk. e. Kembali ke langkah (b).

Namun sebelum melakukan implementasi, ada beberapa hal penting yang harus dilakukan, yaitu:

(7)

b. Menentukan operator genetik yang digunakan. c. Melakukan seleksi yang diperlukan.

Setelah menentukan hal-hal di atas, Genetic Algorithms dapat diimplementasikan ke dalam program.

2.2.2.1.Pengkodean (encoding) suatu masalah ke Genetic Algorithms

Cara pengkodean suatu kromosom merupakan faktor dalam menentukan kesuksesan sebuah Genetic Algorithms. Cara mengkodekan kromosom bergantung pada jenis masalah yang dihadapi. Jenis-jenis pengkodean yang umum digunakan adalah sebagai berikut:

a. Binary Encodings

Binary encodings adalah proses pengkodean dengan menggunakan bit 1 dan

bit 0. Pengkodean ini merupakan pengkodean yang paling umum digunakan, termasuk oleh Holland pada awal penelitian tentang Genetic Algorithms. Contoh:

Kromosom A : 100101101110101

Kromosom B : 111010001011011

b. Many-Character and Real-Valued Encodings

Pengkodean ini menggunakan huruf abjad (alphabet) atau angka real sebagai bentuk kromosom. Contoh:

Kromosom A : 1.235 2.215 1.525 0.223 5.412

Kromosom B : ABDGHFJSHDNBSHDHFNPODI

(8)

Jenis pengkodean tidak terbatas hanya pada dua pengkodean di atas, namun dapat dikembangkan lebih lanjut sesuai dengan masalah yang dihadapi.

2.2.2.2.Metode-Metode Seleksi

Setelah menentukan jenis pengkodean yang digunakan, berikutnya adalah

pemilihan metode seleksi yang digunakan dalam Genetic Algorithms. Tujuan dari seleksi adalah untuk menghasilkan kromosom yang dianggap layak

melanjutkan kehidupan pada generasi berikutnya. Metode-metode seleksi antara lain: a. Roulette Wheel Selection

Dalam metode ini, kromosom-kromosom yang ada dalam populasi ditempatkan ke dalam sebuah roda yang disebut “roulette wheel”. Setiap kromosom menempati potongan roda dengan ukuran yang proposional dengan fitness cost yang dimilikinya. Putaran dilakukan sebanyak n kali, dan pada setiap putaran, kromosom yang berada di bawah penanda roda dipilih sebagai parent untuk generasi berikutnya. Metode ini merupakan metode yang digunakan Holland pada Genetic Algorithms yang dikembangkan olehnya.

Kelemahan utama metode ini adalah bila terdapat satu kromosom yang memiliki fitness cost yang tinggi sekali, sebagai contoh 90% dari keseluruhan roda, maka kromosom-kromosom yang lain hanya menempati 10% dari keseluruhan roda. Akibat dari kondisi ini, setiap putaran roda kemungkinan besar menghasilkan kromosom yang sama sehingga populasi baru hanya dihuni oleh kromosom yang sama.

(9)

Kondisi ini disebut sebagai “premature convergence” (konvergensi dini). b. Elitism

Metode ini pertama kali diperkenalkan oleh Kenneth De Jong (1975). Dalam metode ini, beberapa gen terbaik dari setiap generasi diambil dan disimpan. Tujuan dari metode ini adalah mencegah hilangnya gen-gen terbaik karena tidak terpilih untuk melakukan crossover atau mutasi. Banyak penelitian yang menemukan bahwa metode ini dapat meningkatkan kinerja Genetic

Algorithms secara signifikan.

c. Rank Selection

Metode ini merupakan alternatif untuk mencegah terjadinya konvergensi dini yang terlalu cepat. Dalam metode ini, kromosom-kromosom dalam populasi dirangking berdasarkan fitness cost yang dimiliki. Pemilihan kromosom tidak didasarkan pada nilai fitness cost, namun didasarkan pada nilai rangking yang diberikan. Hal ini bertujuan untuk mengurangi perbedaan nilai yang besar seperti yang dapat terjadi pada metode Roulette Wheel Selection. d. Tournament Selection

Dalam metode ini, dua buah kromosom dipilih secara acak dari populasi. Sebuah angka r dipilih secara acak dari angka-angka di antara 0 dan 1. Sebuah parameter k ditentukan (misalnya k = 0.75). Jika r < k, maka kromosom dengan fitness cost yang lebih baik dipilih, dan jika sebaliknya, kromosom dengan fitness cost lebih rendah yang dipilih. Kedua kromosom tersebut kemudian dikembalikan ke populasi dan dapat dipilih lagi.

(10)

e. Steady-State Selection

Dalam metode ini, hanya sebagian kecil kromosom dari populasi yang diganti dalam setiap generasi. Biasanya kromosom-kromosom yang memiliki

fitness cost rendah diganti dengan kromosom-kromosom baru hasil crossover

dan mutasi dari kromosom-kromosom dengan fitness cost tinggi. Metode ini sering digunakan dalam rule-based system dimana proses pembelajaran memiliki peran penting dan semua anggota populasi secara bersama-sama (tidak secara individual) memecahkan masalah yang ada.

2.2.2.3.Operator-Operator Genetik dalam Genetic Algorithms

Langkah berikutnya adalah menentukan operator genetik yang digunakan dalam

Genetic Algorithms. Penentuan operator genetik ini sangat bergantung pada jenis

pengkodean yang dipilih. Dua buah operator genetik yang paling umum dan sering digunakan dalam implementasi Genetic Algorithms adalah:

a. Crossover (Kawin Silang)

Crossover dilakukan dengan cara menukar bagian kecil dari dua buah

kromosom (parent) yang berbeda sehingga diperoleh kromosom baru yang masih memiliki sifat-sifat kromosom parent-nya. Cara melakukan crossover dapat dibagi berdasarkan jumlah posisi yang dipilih, yaitu single-point

crossover dan two-point crossover. Pada single-point crossover, satu buah

posisi dipilih secara acak dan membagi kromosom menjadi dua bagian. Satu bagian dari kromosom ditukarkan dengan kromosom lain yang juga telah dibagi menjadi 2.

(11)

Contoh single-point crossover :

Kromosom A : 1001011 | 01110101

Kromosom B : 1110100 | 01011011

Pada contoh ini, posisi acak yang dipilih jatuh pada bit ke-8 sehingga kromosom terbagi menjadi 2, yaitu bit 1-7 dan bit 8-15. Bit 8-15 dari kedua kromosom tersebut ditukar sehingga menghasilkan dua kromosom baru sebagai berikut:

Kromosom A : 1001011 | 01011011

Kromosom B : 1110100 | 01110101

Two-point crossover pada prinsipnya sama dengan single-point crossover.

Bedanya, pada two-point crossover, dua buah posisi yang dipilih secara acak, sehingga membagi kromosom menjadi tiga bagian. Tujuan dari two-point

crossover adalah untuk menukar bagian yang berada di antara dua posisi

acak tersebut (bagian tengah kromosom). Contoh two-point crossover:

Kromosom A : 10010 | 110111 | 0101

(12)

Pada contoh diatas, posisi acak jatuh pada bit ke-6 dan bit ke-11. Bagian yang ditukar adalah bit 6-11 yang berada di tengah kromosom. Hasil pertukaran menghasilkan kromosom berikut:

Kromosom A : 10010 | 000101 | 0101

Kromosom B : 11101 | 110111 | 1011

Selain dua metode di atas, ada satu metode yang disebut uniform crossover, di mana pertukaran dilakukan dengan cara menukar bit-bit kedua kromosom

parent secara acak.

b. Mutation (Mutasi)

Mutasi adalah perubahan nilai gen (allele) dalam kromosom secara permanen sehingga kromosom tersebut mengalami perubahan bentuk. Mutasi dilakukan dengan cara memilih satu atau beberapa posisi gen dalam kromosom dan kemudian mengganti nilainya. Pada binary encodings, mutasi dilakukan dengan meng-invert nilai gennya, yaitu 0 diganti menjadi 1 dan sebaliknya. Contoh mutasi:

Kromosom A : 100100001010101

Kromosom A* : 100000101001111

Kromosom B : 1.235 2.215 1.525 0.223 5.412

Kromosom B* : 1.235 2.637 1.525 0.223 5.883

(13)

Dalam kebanyakan aplikasi Genetic Algorithms, dua operator ini tidak dipilih untuk digunakan salah satunya saja, tetapi digunakan secara bersama-sama. Keseimbangan yang tepat dalam penggunaan crossover, mutasi, dan seleksi merupakan bagian yang sangat penting dalam Genetic Algorithms. Keseimbangan ini juga sangat tergantung pada pengkodean dan fungsi untuk menentukan fitness cost.

2.3. Model Rekayasa Piranti Lunak

Model rekayasa piranti lunak yang dipakai penulis adalah model sekuensial linear. Model ini biasa disebut juga model “air terjun” (waterfall).

Model ini merupakan sebuah pendekatan kepada perkembangan perangkat lunak yang sistemaik dan sekuensial yang mulai pada tingkat dan kemajuan system pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Penjelasan tahapan dalam Waterfall

Model adalah sebagai berikut :

1. Analisis Kebutuhan

Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Tujuan dari tahap ini adalah untuk mengetahui kebutuhan piranti lunak, sumber informasi piranti lunak, fungsi-fungsi yang dibutuhkan, kemampuan piranti lunak dan antar muka piranti lunak tersebut. 2. Perancangan

Proses perancangan merupakan representasi kebutuhan ke bentuk perangkat lunak yang dapat dinilai kualitasnya sebelum dilakukan pengkodean. Tahap

(14)

ini meliputi perancangan struktur data, perancangan arsitektur piranti lunak, perancangan rincian prosedur dan perancangan user interface.

3. Pengkodean

Tahapan ini mengkodekan hasil perancangan ke bahasa pemrograman. 4. Implementasi dan Pengujian

Setelah program aplikasi selesai dikode, program akan diujicobakan dan juga dilakukan pengujian. Pengujian dilakukan secara menyeluruh hingga semua perintah dan fungsi telah diuji sampai output yang dihasilkan oleh program sesuai dengan yang diharapkan.

5. Pemeliharaan

Pemeliharaan perangkat lunak dilakukan karena sering terjadinya perubahan dan peningkatan fungsi piranti lunak. Hal ini sesuai permintaan pemakai, maka piranti lunak yang telah selesai dibuat perlu dipelihara agar dapat mengantisipasi permintaan pemakai terhadap fungsi-fungsi baru. Bila terjadi perubahan berarti membalikan tahapan ke tahapan yang lebih awal.

(15)

ANALISIS DESAIN CODING DAN DEVELOPMENT IMPLEMENTASI DAN TESTING PEMELIHARAAN

Gambar 2.1. Model Waterfall

2.4. Interaksi Manusia dan Komputer

Saat ini program yang baik selain dituntut dari segi fungsi, sangatlah memperhatikan segi interaktif dan penggunaan yang mudah dimengerti (user friendly). Shneiderman (1998, p15) menjelaskan lima kriteria yang harus dipenuhi oleh suatu program yang user friendly yaitu :

1. Waktu belajar yang tidak lama

2. Kecepatan penyajian informasi yang tepat. 3. Tingkat kesalahan pemakaian rendah

4. Penghafalan sesudah melampaui jangka waktu. 5. Kepuasan pribadi.

Suatu program yang interaktif dapat dengan mudah dibuat dan dirancang dengan suatu perangkat bantu pengembang sistem antarmuka, seperti Visual Basic, PHP, dan sebagainya. Menurut Shneiderman (1998, p74-75) untuk merancang sistem interaksi

(16)

manusia dan komputer yang baik, harus memperhatikan delapan aturan utama dibawah ini, yaitu :

1. Strive for consistency (Bertahan untuk konsistensi)

lehkan pengguna sering

3. ed back (Memberikan umpan balik yang informatif).

gga

5. erhana).

engan

7. nternal locus of control (Pemakai menguasai sistem atau inisiator,

8. emorcy load (Mengurangi beban ingatan jangka pendek,

2. Enable frequent user to use shortcuts (Memperbo memakai shortcut)

Offer informative fe

4. Design dialogs to yield closure (Pengorganisasian yang baik sehin pengguna mengetahui kapan awal dan akhir dari suatu aksi).

Offer simple error handling (Penanganan kesalahan yang sed

6. Permit easy reversal of actions (Mengizinkan pembalikan aksi (undo d mudah).

Support i

bukan responden)

Reduce short term m

dimana manusia hanya dapat mengingat 7 ± 2 satuan informasi sehingga perancangannya harus sederhana).

Gambar

Tabel 2.1 di bawah ini menunjukkan derajat kemiripan dari ketiga partisi tersebut  (Perhatikan bahwa R(P1,P2)=0.29 tetapi R(P2,P1) = 0.20)
Gambar 2.1. Model Waterfall

Referensi

Dokumen terkait

a. [Start] Pilih secara acak sekumpulan kromosom sebagai populasi awal. Kromosom ini harus sesuai dengan masalah yang hendak dicari solusinya. [Fitness] Evaluasi nilai fitness

Alamat CGRAM hanya 6 bit, 3 bit untuk mengatur tinggi karakter dan 3 bit tinggi menjadi 3 bit rendah DDRAM yang menunjukan karakter, sedangkan 3 bit rendah

Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang

Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi

Operasi crossover yang dilakukan pada kromosom dengan tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi pada generasi mendatang dengan fitness

Siklus operasional genetik akan berhasil apabila kromosom yang disebut induk digabungkan untuk menghasilkan anak yang merupakan generasi baru dari proses evaluasi ini

Algoritma genetik adalah suatu algoritma pencarian yang berbasis pada mekanisme seleksi alam dan genetika. Algoritma genetik merupakan salah satu algoritma yang sangat tepat

Kromosom-koromosom tersebut diperiksa nilai fitness-nya Kromosom yang nilai fitness-nya paling tinggi akan dipilih untuk terus hidup pada generasi berikutnya dan berpeluang