SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
RAMADHONI SAPUTRA
10109385
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
KATA PENGANTAR
Asalammu alaikum Wr. Wb.
Bismillahirrahmanirrahimmillah, Segala Puji dan syukur penulis panjatkan
kepada Allah SWT tuhan semesta alam yang selalu mencurahkan rahmat dan
nikmat-Nya, berupa kesehatan dan keteguhan hati kepada penulis sehingga
penelitian ini dapat diselesaikan dengan baik.
Skripsi yang berjudul “Implementasi Algoritma Genetika dan Logika
Fuzzy Untuk Menghitung Waktu Panen Tanaman Hortikultura”, disusun untuk
memperoleh gelar Sarjana Teknik Informatika, Fakultas Teknik dan Ilmu
Komputer Universitas Komputer Indonesia.
Dalam menyusun skripsi ini, penulis banyak memperoleh bantuan
serta bimbingan dari berbagai pihak. Oleh karena itu, penulis ingin
menyampaikan ucapan dan rasa terimakasih kepada:
1.
Allah SWT atas rahmat dan nikmat-Nya.
2.
Ibu dan Ayah yang selalu memberikan dukungan yang sangat besar
kepada penulis.
3.
Bapak Galih Hermawan, S.Kom., M.T. selaku dosen pembimbing
yang telah meluangkan waktu untuk memberikan bimbingan, saran,
dan nasehatnya selama penulisan skripsi ini.
4.
Ibu Ednawati Raniarli, S.Si, M.Si. selaku dosen reviewer pada waktu
seminar yang telah meluangkan waktu untuk memberikan bimbingan,
saran dan nasehatnya.
5.
Seluruh dosen dan staf Program Studi Teknik Informatika Universitas
Komputer Indonesia.
6.
Seluruh teman-teman kelas IF-9 angkatan 2009.
7.
Mas adit yang telah membantu dalam menyelesaikan laporan skripsi ini.
8.
Berbagai pihak yang membantu dan mendukung penulis dalam menyusun
skripsi ini.
iv
Penulis mohon maaf apabila dalam penulisan skripsi, penulis telah
menyinggung perasaan atau telah menyakiti hati orang disekitar penulis, baik
yang disengaja maupun yang tidak disengaja. Kiranya isi skripsi ini bermanfaat
dalam memperkaya ragam ilmu pendidikan dan juga dapat dijadikan sebagai
salah satu sumber referensi bagi peneliti selanjutnya yang berminat meneliti
hal yang sama.
Wassalamu’alaikum Wr.Wb
Bandung, Februari 2015
v
DAFTAR ISI
ABRTRAK ... i
ABSTRACT
... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... ix
DAFTAR SIMBOL ... xi
DAFTAR LAMPIRAN ... xii
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Perumusan Masalah ... 2
1.3 Maksud dan Tujuan ... 2
1.4 Batasan Masalah ... 2
1.5 Metode Penelitian ... 3
1.5.1 Metode Pengumpulan Data ... 3
1.5.2 Pengembangan Perangkat Lunak ... 4
1.6 Sistematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 7
2.1 Budidaya Tanaman Hostikultura ... 7
2.1.1 Jenis-Jenis Tanaman Hostikultura ... 7
2.1.2 Ekologi Tanaman Hortikultura ... 8
2.1.3 Panen ... 8
2.1.4 Perhitungan Waktu Panen Hortikultura ... 9
2.2 Kecerdasan Buatan ... 10
2.2.1 Kecerdasan Buatan yang digunakan ... 12
2.2.1.1 Algoritma Genetika ... 12
2.2.1.1.1 Struktur Algoritma Genetika ... 13
2.2.1.1.2 Teknik Penyandian ... 14
2.2.1.1.3 Prosedur Inisialisasi ... 14
2.2.1.1.4 Fungsi Evaluasi ... 15
vi
2.2.1.1.6 Penentuan Parameter ... 17
2.2.1.1.7 Pindah Silang ... 17
2.2.1.1.8 Mutasi ... 18
2.2.1.1.9 Pergantian Populasi ... 20
2.2.1.2 Logika
Fuzzy
... 21
2.2.1.2.1 Basis Pengetahuan
fuzzy
... 22
2.2.1.2.2 Fuzzifikasi ... 22
2.2.1.2.3 Logika Pengambilan Keputusan ... 23
2.2.1.2.4 Defuzzifikasi ... 23
2.2.1.2.5 Fungsi Keanggotaan ... 24
2.2.1.3
Genetic
Fuzzy
System
... 28
2.2.2 Pemrograman Berorientasi Objek ... 29
2.2.3 UML ... 30
2.2.3.1 Tujuan UML ... 31
2.2.3.2 Diagram UML ... 31
2.2.4 C# ... 34
BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA ... 37
3.1 Analisis Sistem ... 37
3.1.1 Analisis Masalah ... 37
3.1.2 Analisis Data Masukan ... 38
3.1.3 Analisis Algoritma ... 38
3.1.3.1 Analisis Algoritma Genetika ... 39
3.1.3.2 Parameter Algoritma Genetika ... 39
3.1.3.3 Pembentukan Populasi Awal ... 39
3.1.3.4 Evaluasi Kromosom ... 44
3.1.3.5 Seleksi ... 48
3.1.3.6 Reproduksi Kromosom Baru ... 49
3.1.3.7 Kondisi Selesai ... 56
3.1.4. Analisis Logika
Fuzzy
... 56
3.1.4.1 Variabel
Fuzzy
... 57
3.1.4.2 Nilai Linguistik ... 57
3.1.4.3 Fuzzifikasi ... 57
3.1.4.4 Kaidah
Fuzzy
... 62
vii
3.1.5 Analisi Kebutuhan Non Fungsioanal ... 65
3.1.5.1 Analisis Perangkat Keras ... 65
3.1.5.2 Analisis Perangkat Lunak ... 65
3.1.5.3 Analisis Pengguna ... 65
3.1.6 Analisis Kebutuhan Fungsional... 66
3.1.6.1
Use
Case
Diagram
... 66
3.1.6.2 Definisi
Use
Case
... 66
3.1.6.3 Skenario
Use
Case
... 67
3.1.6.4
Activity
Diagram
... 72
3.1.6.5
Class
Diagram
... 78
3.1.6.6
Sequence
Diagram
... 80
3.1.7.Perancangan Sistem ... 85
3.1.7.1 Perancangan Arsitektur ... 85
3.1.7.2 Perancangan Struktur Menu ... 85
3.1.7.3 Perancangan Antarmuka ... 86
3.1.7.4 Jaringan Semantik ... 88
BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 89
4.1 Implementasi ... 89
4.1.1 Implementasi Perangkat Keras ... 89
4.1.2 Implementasi Perangkat Lunak ... 89
4.1.3 Implementasi Antarmuka ... 89
4.2. Pengujian Sistem ... 93
4.3 Kesimpulan dari hasil pengujian ... 101
BAB 5 Kesimpulan ... 103
5.1 Kesimpulan ... 103
5.2 Saran ... 103
105
DAFTAR PUSTAKA
[1].
(2011). Retrieved 2015, from Agriinfo: http://www.agriinfo.in
[2].
Hanum, C. (2008).
Teknik Budidaya Tanaman Holtikultura (Jilid 2 ed.).
Jakarta: Direktorat Pembinaan Sekolah Menengah Kejuruan, Departemen
Pendidikan Nasional.
[3].
K.P Sudheer,V.Indira. (2007 ).
Post Harvest Technology of Horticultural
Crops. New India Publishing.
[4].
Kader, A. (_). Fruit Maturity,Ripening,And Quality Relationship. California:
Departement of Pomology, University of California.
[5].
Kusumadewi, S. (2003).
Artificial Intellegence (Teknik dan Aplikasinya).
Yogykarta: Graha Ilmu.
[6].
Mewati Ayub,The Houw Liong,Inggriani Liem,Ahmad Hinduan. (2005).
Sistem Tutorial Cerdas Berbasis Fuzzy Genetik. Integral, 89-98.
[7].
Oscar Cordon,Francisco Herrera,Frank Hoffman,Luis Magdalena. (2000).
Genetic Fuzzy System Evolutionary Tuning and Learning of Fuzzy Knowedge
Base. Farer Road: WorldScientificPublishingCo.Pte.Ltd.
[8].
Pilone, D., & Pitman, N. (2005).
UML 2.0 in a Nutshell. Gravenstein
Highway North, Sebastopol: O'Rielly.
[9].
Pressman, R. S. (2002).
Rekayasa Perangkat Lunak (Pendekatan Praktis).
Yogyakarta: Andi.
[10].
Russell, S., & Norvig, P. (2011).
Artificial Intelligence: A Modern
Approach (3rd ed.). Englewood Cliffs: Prentice Hall.
1
1.1
Latar Belakang Masalah
Indonesia merupakan negara agraris, dimana sebagian masyarakat indonesia
hidup dari pertanian. Bercocok tanam atau budidaya tanaman adalah kegiatan
terencana pemeliharaan sumber daya hayati yang dilakukan pada suatu areal lahan
untuk diambil manfaat atau hasil panennya. Salah satu jenis tanaman yang sering
dibudidayakan yaitu tanaman hortikultura. Budidaya hortikultura pada umumnya
diusahakan lebih intensif dibandingkan dengan budidaya tanaman lainnya karena
memiliki nilai ekonomi, dapat sebagai sumber pangan dan juga tanaman hias [2].
Dalam bercocok tanam ada beberapa hal yang harus diperhatikan diantaranya
lahan yang digunakan, kualitas air dan tanah, faktor cuaca. Apabila faktor-faktor
tersebut terpenuhi selanjutnya dilakukan penanaman, pemeliharan tanaman hingga
tanaman siap dipanen. Panen dapat dilakukan terhadap tanaman yang telah
memenuhi kriteria kematangan. Setiap tanaman memiliki kriterianya tersendiri
yang mana hal tersebut bergantung terhadap varietas tanaman. Adapun tingkat
kematangan yang biasa dan mudah untuk digunakan antara lain yaitu warna,
bentuk, ukuran. Untuk tanaman hortikultura tingkat kematangannya juga
ditentukan berdasarkan kebutuhan pemanfaatan dari tanaman tersebut[1][3].
Namun penentuan tingkat kematangan dengan menggunakan cara ini memiliki
kekurangan karena hanya bersifat perkiraan saja dan nilainya dapat berubah-ubah
pada setiap masa tanamnya, sehingga dapat menimbulkan ketidakpastian dalam
menentukan waktu panen dari tanaman hortikultura.
pendefinisian fungsi keanggotaan dan aturan
fuzzy
memerlukan usaha dan waktu
yang lama. Algoritma genetika dapat digunakan untuk melakukan tuning terhadap
parameter sistem kendali
fuzzy
sehingga dapat diperoleh sistem kendali
fuzzy
yang
lebih optimal. Algoritma genetik berperan di dalam pengubah posisi dan lebar
fungsi keanggotaan, juga mampu mengoptimasikan aturan-aturan dalam suatu
sistem kendali
fuzzy
[6][7].
Dalam penelitian ini penulis menggunakan algoritma genetika dan logika
fuzzy
, dimana logika
fuzzy
digunakan untuk menentukan waktu panen yang diukur
berdasarkan tingkat kematangan dan tujuan pemanfaatan tanaman hortikultura.
Algoritma genetika yang nantinya diharapkan dapat mengoptimalkan fungsi
keanggotaan dan aturan logika fuzzy .
1.2
Perumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan di atas, yang
menjadi permasalahan dalam penelitian ini adalah
1.
Bagaimana implementasi logika fuzzy untuk menghitung waktu panen
tanaman hortikultura.
2.
Bagaimana algoritma genetika dalam mengoptimalkan fungsi keanggotaan
dan aturan logika fuzzy untuk menghitung waktu panen tanaman
hortikultura.
1.3
Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk untuk menerapkan algoritma
genetika dan logika fuzzy untuk menghitung waktu panen tanaman hortikultura.
Tujuan yang dicapai untuk penelitian ini adalah:
1.
Untuk menghitung waktu panen tanaman hortikultura.
2.
Untuk mengoptimalkan fungsi keanggotaan dan aturan logika fuzzy.
1.4
Batasan Masalah
Beberapa hal yang diperlukan dalam penelitian ini guna membatasi masalah
agar lebih terarah dan mencapai sasaran yang ditentukan, diantaranya adalah:
2.
Sistem
fuzzy
yang dibangun menggunakan fungsi keanggotan
trapezoid
dengan model
inference
mamdani dan metode defuzzifikasi
centroid
.
3.
Logika
fuzzy
digunakan menentukan apakah tanaman sudah memasuki
usia panen atau belum berdasarkan tingkat kematangannya.
4.
Tanaman hortikultura yang dipilih yaitu cabai dan tomat.
5.
Aplikasi berupa simulasi berbasis
Desktop
PC
. Dibangun dengan bahasa
pemrograman C#.
6.
Perangcangan perangkat lunak dibangun dengan menggunakan
object
oriented programming
dengan tools UML.
1.5
Metodologi Penelitian
Metode yang digunakan dalam penelitian ini adalah metode kualitatif
deskriptif, Metode deskriptif adalah penelitian yang berusaha mendeskripsikan
suatu gejala, peristiwa, dan kejadian saat sekarang. Penelitian deskriptif
memusatkan perhatian kepada masalah-masalah aktual sebagaimana adanya pada
saat penelitian berlangsung. Dalam penelitian ini dilakukan beberapa beberapa
tahap yaitu:
1.
Metode Pengumpulan Data
Metodologi yang digunakan dalam mengumpulkan data yang berkaitan
dengan penelitian membuat perangkat lunak ini. Data diperoleh secara langsung
dari objek penelitian melalui studi pustaka. Studi pustaka yang dilakukan adalah
dengan mempelajari berbagai literatur, seperti buku-buku, artikel-artikel, e-book,
website, dan sumber-sumber yang berkaitan dengan aplikasi yang akan
dibangun, meliputi kecerdasan buatan, desain, tools dan juga pemodelan dengan
UML.
2.
Metode Pembuatan Perangkat Lunak
Metode yang digunakan untuk kasus ini adalah model
incremental
. Model ini
mendekatkan kepada pembangunan sebuah prototype untuk memahami kebutuhan
dari sistem. Tahapan Pembuatan aplikasi dengan menggunakan model ini dimulai
mengumpulkan
Requirement Analysis
,
Design and Development
,
Implementation
,
Gambar 1.1
Model
Incremental
[9]
1.
Requirement Analysis
Requirment Analysis
adalah proses tahapan awal yang dilakukan pada
incremental
model adalah penentuan kebutuhan atau analisis kebutuhan. Pertama
menganalisis data masukan, menganalisis metode, menganalisis kebutuhan
fungsional dan non fungsional.
2.
Design and Development
Perancangan
software
yang terbuka agar dapat diterapkan sistem
pembangunan per-bagian pada tahapan selanjutnya. Dalam bagian design
membuat perancangan aristektur, struktur menu dan antarmuka. Development
disini pembangunan perangkat lunak dengan bahasa c#.
3.
Implementation
Dengan melakukan presentasi kepada pengguna sebagai bagian dari proses
pembangunan. Tahap ini merupakan tahap dimana aplikasi siapuntuk di
operasikan,yang terdiri dari penjelasan mengenai lingkungan implementasi, baik
itu perangkat keras, maupun lingkungan perangkat lunak, serta implementasi
program.
4.
Testing
kekurangan – kekurangan. Pengujian bermaksud untuk mengetahui perangkat
lunak yang telah dibuat sudah memenuhi kriteria yang sesuai dengan tujuan
perancangan perangkat lunak.
1.6
Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran
secara umum tentang penelitian yang dijalankan. Sistematika penulisan tugas
akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN
Bab ini akan membahas mengenai latar belakang masalah, perumusan
masalah, maksud dan tujuan, batasan masalah, metodologi penelitian yang
digunakan, serta sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan
budidaya tanaman hortikultura, pengertian budidaya tanaman, jenis-jenis tanaman
hortikultura, panen, waktu panen, penentuan waktu panen, kecerdasaan buatan,
perbandingan kecerdasan buatan dan alamiah, teknik dasar pencarian, masalah
pencarian, algoritma pencarian, AI yang digunakan, Algoritma Gentika,
Fuzzy
Logic,Genetic Fuzzy System,
OOP, UML, C#.
BAB III ANALISIS DAN KEBUTUHAN ALGORITMA
Berisi Analisis Masalah, Analisis Sistem, Analisi Algoritma, Analisis
Kebutuhan Fungsional, Analisis Kebutuhan Non-Fungsional, dan Perancangan
Sistem.
BAB IV ANALISIS HASIL PENELITIAN
Bab ini berisi tentang implementasi dan pengujian sistem yang telah
dikerjakan, yang terdiri dari menerapkan rencana implementasi, melakukan
kegiatan implementasi, dan tindak lanjut implementasi. Selain itu juga berisi
pengujian aplikasi yang dikerjakan.
BAB V KESIMPULAN DAN SARAN
7 2.1. Budidaya Tanaman Holtikultura
Kata hoktikultura (horticulture) berasal dari bahasa latin, yakni hortus yang berarti kebun dan colere yang berarti menumbuhkan (terutama sekali mikroorganisme) pada suatu medium buatan. Secara harfiah, hortikultura berarti ilmu yang mempelajari pembudidayaan tanaman kebun. Akan tetapi, pada umumnya para pakar mendefinisikan hortikultura sebagai ilmu yang memperlajari budidaya tanaman sayura, buah-buahan, bunga-bungaan, atau tanaman hias [12].
Pada umumnya, isi kebun di Indonesia adalah berupa tanaman buah-buahan, tanaman sayuran, tanaman hias dan wangi-wangian, tanaman bumbu masak, tanaman obat-obatan, dan tanaman penghasil rempah-rempah. Sementara itu, di Negara-negara maju budidaya tanaman hortikultura sudah merupakan susatu usaha tani berpola komersial, yakni diusahakan secara monokultur di ladang produksi yang luas, misalanya perkebunan apel, anggur, tomat, dan pear( Pyrus Communis) di Amerika; perkebunan mangga dan kelengkeng di Queensland, Australia; serta perkebunan tomat hidroponik di New Zeland.
Seiring dengan semakin pentingnya kedudukan hortikultura dalam kehidupan sehari-hari sebagai sumber berbagai vitamin dan mineral di samping sebagai bahan baku berbagai produk olahan, pengusahaan hortikultura, khususnya buah-buahan, di Indonesia kini mulai dikelola dengan pola agribisnis.
2.1.1. Jenis – Jenis Tanaman Holtikultura
1. Tanaman Buah-buahan, kelompok tanaman ini memiliki keanekaragaman morfologi, seperti ada yang berbentuk pohon (misalnya rambutan, mangga, durian, jeruk, dan sebagainya), bentuk semak (markisa).
2. Tanaman sayuran, tanaman ini merupakan tanaman hortikultura yang utama. Beberapa jenis sayuran ada yang berasal dari buah (tomat), daun (bayam), akar (wortel), biji (buncis), bunga (kembang kol) dan sebagainya. Berbeda dengan tanaman buah-buahan, sayuran memiliki umur yang relatif singkat. Tanaman ini umumnya dikonsumsi dalam bentuk segar, oleh karenanya proses penanganannya lebih spesifik dibandingkan dengan hortikultura lainnya.
3. Tanaman Hias, manfaat dari tanaman hias ini adalah meningkatkan aestetika lingkungan. Budidaya tanaman ini dapat dilakukan pada ruang terbuka maupun didalam ruangan.
2.1.2. Ekologi Tanaman Hortikultura
Budidaya tanaman hortikultura menghendaki perhatian yang serius, khusunya dalam penentuan persyaratan ekologinya. Hal ini dikarenakan pertumbuhan dan perkembangan tanaman sangat tergantung ekologi atau lingkungan di mana tanaman tersebut tumbuh. Apabila tanaman diusahakan pada lingkungan yanga memenuhi kebutuhan syarat tumbuhnya, dapat dipastikan tanaman tersebut akan tumbuh dan berproduksi secara maksimal. Hal sebaliknya akan terjadi apabila tanaman tersebut tumbuh ada lingkungan yang tidak atau kurang mendukung.
Faktor-faktor lingkungan yang mempengaruhi pertumbuhan dan produksi tanaman hortikultura dapat dikelompokan atas faktor iklim (cahaya, suhu, dan keadaan udara) dan faktor medium tumbuh (tanah dan air).
2.1.3. Panen
upaya memisahkan bagian tanaman yang memiliki nilai ekonomi dati tanaman induknya. Pada tanaman buah-buahan, bagian yang dipisahkan tersebut sudah tentu adalah buah, sedangkan pada tanaman sayuran, bagian-bagian tersebut dapat berupa daun, batang, akar, maupun buah. Sementara itu pada tanaman hias, bagian tanaman yang dipanen dapat berupa bunga berikut tangkainya (tanaman hias berbunga) atau daun berikut tangkainya (tanaman hias tidak berbunga) [12].
2.1.4. Perhitungan Waktu Panen Hortikultura
Waktu panen sangat ditentukan jenis (varietas) tanaman, hari tanam atau hari berbunga, dan kondisi lingkungan selama musim tanam. Selain itu, beberapa kriteria fisikologis juga telah digunakan untuk menentukan saat panen, seperti kekerasan, warna, dan kandungan karbohidrat. Pada sejumlah tanaman adakalanya digunakan kriteria lain, misalnya terbentuknya daerah absisi pada tangkai buah (misalnya pada labu dan blewah), tingkat perkembangan kuncup bunga (misalnya pada tanaman hiasa seperti mawar), warna buah (misalnya pada tomat, cabai, rambutan, dan nanas), rasio gula : asam (misalnya pada jeruk), bunyi kalau dipukul atau ditepuk (misalnya pada semangka dan nangka). Sedangkan pada tanaman durian, jatuhnya buah merupakan petunjuk yang paling tepat untuk pemanenan.
Penentuan tingkat kematangan buah yang tepat akan sangat nyata mengurangi kemerosotan kualitas buah yang dipanen. Apabila buah dipanen sebelum memasuki fase matang fisiologis, maka kualitasnya akan cepat sekali turun di dalam penyimpanan dan pengankutan karena tingginya laju tranpirasi yang mengakibatkan buah menjadi keriput akibat penuruan turgiditas.
Tabel 2.1 Tingkat Kematangan Buah dah Sayuran [1][ 2][ 3] Index Kematangan Tanaman
Hari setelah berbunga Apple, Pir
Rata-rata panas selama pertumbuhan Apple, jagung manis
Ukuran Kebanyakan buah dan sayuran
warna Kebanyakan buah dan sayuran
Bentuk Pisang, brocoli
Sedangkan kematangan pada hortikultura [1] adalah ketika tanaman atau bagian tanaman memiliki prasyarat pemanfaatan oleh konsumen untuk tujuan tertentu.
1. Tahap buah dan sayuran di mana konsumen menginginkan buah dan sayuran atau buah-buahan dan sayuran yang dibutuhkan oleh pasar. tingkat kematangan hortikultura tergantung pada tujuan yang dipanen. Contoh: kacang polong Perancis okra polong matang bila lembut dengan ukuran maksimum, sesuai dengan kematangan hortikultura.
2. Tahap muncul setiap saat antara pembangunan dan pertumbuhan setiap tanaman pada buah.
3. Hal ini dapat diprediksi dengan menggunakan terminologi yang berbeda seperti belum matang, matang dan terlalu matang.
4. Tidak ada keharusan penuaan.
2.2. Kecerdasan Buatan
dan teknik pemrograman yang digunakan dalam mengimplementasikannya. Berdasarkan sudut pandang, AI dapat dipandang sebagai berikut:
1. Sudut pandang kecerdasan, AI adalah bagaimana membuat mesin yang cerdas dan dapat melakukan hal -hal yang sebelumnya hanya dapat dilakukan manusia.
2. Sudut pandang bisnis, AI adalah sekelompok alat bantu yang berdaya guna dan metodologi yang menggunakan alat -alat bantu tersebut untuk menyelesaikan masalah-masalah bisnis.
3. Sudut pandang pemrograman, AI meliputi studi tentang pemrograman simbolik, pemecahan masalah dan proses pencarian.
4. Sudut pandang penelitian:
a. Riset tentang AI dimulai pada awal tahun 1960-an, percobaan Pertama adalah membuat program permainan catur, membuktikan teori dan general problem solving.
b. AI adalah nama pada akar dari studi area. Kecerdasan buatan memiliki sejumlah sub disiplin ilmu yang sering digunakan untuk pendekatan yang esensial bagi penyelesaian suatu masalah dan dengan aplikasi bidang AI yang berbeda. Berikut gambar bidang-bidang tugas dari AI yaitu [5]:
Aplikasi penggunaan AI dapat dibagi ke dalam tiga kelompok yaitu: 1. Expert Task
AI dibentuk berdasarkan pengalaman dan pengetahuan yang dimiliki oleh para ahli. Penggunaan ini dapat membantu para ahli untuk menyampaikan ilmu -ilmu yang dimiliki. Contohnya adalah:
a. Analisis finansial. b. Analisis medikal.
c. Analisis ilmu pengetahuan.
d. Rekayasa (desain, pencarian, kegagalan, perencanaan, manufaktur). 2. Formal Task
AI digunakan untuk melakukan tugas-tugas formal yang selama ini manusia biasa lakukan dengan lebih baik. Contohnya adalah:
a. Game.
b. Matematika (geometri, logika, kalkulus, integral). 3. Mundane Task
Secara harfiah mundane adalah keduniaan. AI digunakan untuk melalukan hal-hal yang sifatnya duniawi atau melakukan kegiatan yang dapat membantu manusia. Contohnya adalah:
a. Persepsi. b. Bahasa alami. c. Robot control.
Aplikasi kecerdasan buatan memiliki dua bagian utama yaitu:
1. Basis Pengetahuan (Knowledge Base): berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya.
2. Motor Inferensi (Inference Engine): kemampuan menarik kesimpulan berdasarkan pengalaman.
2.2.1. Kecerdasan Buatan yang digunakan
2.2.1.1. Algoritma Genetika
Algoritma genetika adalah algoritma pencarian heuristik yang didasarkan atas mekanisme evolusi biologis. Keberagaman pada evolusi biologis adalah variasi dari kromosom antar individu organisme. Variasi kromosom ini akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap hidup. Pada dasarnya ada empat kondisi yang sangat mempengaruhi proses evaluasi yaitu:
1. Kemampuan organisme untuk melakukan reproduksi
2. Kebeeradaan populasi organisme yang bisa melakukan reproduksi 3. Keberagaman organisasi dalam suatu populasi
4. Perbedaan kemampuan untuk survive
Individu yang lebih kuat atau (fit) akan memiliki tinggkat survival dan tingkat reproduksi yang lebih tinggi jika dibandingkan dengan individu yang kurang fit. Pada kurun waktu tertentu (sering dikenal dengan istilah generasi), poulasi secara keseluruhan akan lebih banyak memuat organisme yang fit.
Algoritma genetika pertama kali dikembangkan oleh John Holland pada tahun 1975. John Holland mengatakan [5] bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi genetika. Algoritma genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom.
2.2.1.1.1. Stuktur Algoritma Genetika
Generasi berikut dikenal dengan istilah anak (offspring) terbentuk dari gabungan dua kromosom generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator penyilangan (crossover). Selain operator penyilangan, suatu kromosom juga dapat dimodifikasi dengan menggunakan operator mutasi. Generasi baru dibentuk dengan menyeleksi nilai fitness sehingga ukuran populasi konstan. Setelah beberapa generasi, maka algoritma ini akan konvergen ke kromosom terbaik.
2.2.1.1.2. Teknik Penyandian
Teknik penyandian disini meliputi penyandian gen dari kromosom. Gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili satu variabel.
Gen dapat dipresentasikan dalam bentuk: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi lainnya yang dapat diimplementasikan untuk operator genetika.
Beberapa skema pengkodean yang paling umum digunakan:
1. Binary Encoding, setiap kromosom adalah suatu string dari bit 0 atau 1 Koromosom A 101 100 011 100
Koromosom B 110 111 111 011
2. Permutation Encoding, setiap kromosom merupakan string dari sejumlah angka/nomor yang merepresentasikan suatu posisi dalam suatu urutan. Koromosom A 1 2 3 4 6 7 5 9 8
Koromosom B 2 4 6 7 8 9 1 5 3
3. Value Encoding, setiap kromosom adalah suatu urutan dari beberapa nilai. Nilai tersebut bergantung pada permasalahan, seperti bilangan real, karakter dan objek lainnya.
2.2.1.1.3. Prosedur Inisialisasi
Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut. Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada.
2.2.1.1.4. Fungsi Evaluasi
Suatu individu dievaluasi berdasarkan fungsi tertentu sebagai ukuran performansinya. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Pada masalah optimasi, jika solusi yang dicari adalah memaksimalkan sebuah fungsi h (dikenal dengan masalah maksimasi), maka nilai fitness yang digunakan adalah nilai dari fungsi h tersebut, yakni f=h (dimana f adalah nilai fitness). Tetapi jika masalahnya adalah minimalkan fungsi h (masalah minimasi), maka fungsi h tidak bisa digunakan secara langsung. Hal ini disebakan adanya aturan bahwa individu bernilai fitness tinggi lebih mampu bertahan pada generasi berikutnya. oleh karena itu nilai fitness yang digunakan adalah f=1/h, yang artinya semakin kecil nilai h, semakin besar nilai f. Tetapi hal ini akan menjadi masalah jika h bernilai 0, yang mengakibatkan f bisa bernilai tak hingga. Untuk mengatasinya, h perlu ditambah sebuah bilangan yang dianggap sangat kecil sehingga nilai fitnessnya menjadi f=1/(h=a), di mana a adalah bilangan yang dianggap sangat kecil dan bervariasi sesuai dengan masalah yang akan diselesaikan.
2.2.1.1.5. Seleksi Orang Tua
Pemilihan dua buah kromosom sebagai orang tua, yang akan dipindahsilangkan, biasanya dilakukan secara proporsional sesuai dengan nilai fitnessnya.
1. Seleksi Roulette-wheel
Sesuai dengan namanya, metode ini menirukan permainan roulette-wheel di mana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitnessnya. Kromosom yang memiliki nilai fitness paling tinggi menempati potongan lingkaran yang lebih besar dibandingkan dengan kromosom yang bernilai fitness rendah.
Tabel 2.2 Probabilitas seleksi & nilai fitness [5]
Individu ke- 1 2 3 4 5 6 7 8 9 10 11
Nilai Fitness 2 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0 Probabilitas
Seleski 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02 0.0
Gambar 2.2 Seleksi Roulette Wheel
Metode roullette-wheel sangat mudah diimplementasikan dalam pemrograman. Pertama, dibuat interval nilai kumulatif (dalam interval [0,1]) dari nial fitness masing-masing kromosom dibagi total nilai fitness dari semua kromosom. Sebuah kromosom terpilih jika bilangan random yang dibangkitkan berada pada interval nilai akumulatifnya.
2
1.8
1.6 1.4
1.2 1
0.8 0.6
0.4 0.2
Seleksi
Roulette Wheel
2. Tournament
Pada seleksi alam yang terjadi di dunia nyata, beberapa individu (biasanya individu jantan) berkompetisi dalam sebuah kelompok kecil sampai tersisa hanya satu individu pemenang. Individu pemenang inilah yang bisa kawin (pindah silang), metode tournamen mengadopsi karakteristik alami ini. Dalam bentuk paling sederhana, metode ini mengambil dua kromosom secara random dan kemudian menyeleksi salah satu yang bernilai fitness paling tinggi untuk menjadi orang tua pertama. Cara yang sama dilakukan lagi untuk mendapatkan orang tua yang kedua.
Metode tournament yang lebih rumit adalah dengan mengambil m kromosom secara random. Kemudian kromosom bernilai fitness tertinggi dipilih menjadi orang tua jika nilai random yang dibangkitkan kurang dari p. Apbila lebih maka dipilih kembali kromosom selain kromosom yang bernilai fitness tertinggi. P adalah probabilitas tournament yang biasanya diset sekitar 0,75. sedangkan m atau ukuran grup biasanya diset sebagai nilai yang sangat kecil, misal 4 atau 5.
2.2.1.1.6. Penentuan Parameter
Parameter disini adalah parameter kontrol algoritma genetika, yaitu: ukuran populasi (posize), peluan crossover (Pc), dan peluang mutasi (Pm). Nilai parameter ini ditentukan juga berdasarnya permasalahna yang akan dipercahkan. Ada beberapa rekomendasi yang bisa digunakan, antara lain: 1. Untuk permasalahan yang mewakili kawasan solusi cukup besar, De Jong
merekomendasikan untuk nilai parameter kontrol: (Poposize; Pc; Pm) = (50; 0.6, 0.001)
2. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefensette merekomendasikan:
(Poposize; Pc; Pm) = (30; 0.95, 0.01)
3. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya adalah:
4. Ukuran populasi sebaiknya tidak lebih kecil dari 30, utnuk sembarang jenis permasalahan.
2.2.1.1.7. Pindah Silang
Salah satu komponen paling penting dalam algoritma genetika adalah crossover atau pindah silang. Sebuah kromosom yang mengarah pada solusi yang bagus bisa diperoleh dari proses memindah-silangkan dua buah kromosom. Beberapa metode yang terdapat pada pindah silah yaitu [5]:
1. Penyilangan satu titiik (Single-point Crossover)
Pada penyilangan satu titik, posisi penyilangan k (k=1, 2… N-1) dengan N= panjang kromosom diseleksi secara random. Variabel-variabel ditukar antar kromosom pada titik tersbut untuk menghasilka-kan anak. Contoh ada 2 kromosom dengan panjang 12:
Induk 1 0 1 1 1 0 | 0 1 0 1 1 1 0 Induk 2 1 1 0 1 0 | 0 0 0 1 1 0 1 Setelah penyilangan, diperoleh kromosom- kromosom baru:
Anak 1 0 1 1 1 0 | 0 0 0 1 1 0 1 Anak 2 1 1 0 1 0 | 0 1 0 1 1 1 0 2. Penyilangan banyak titik (Multi-point crossover)
Pada penyilangan banyak titik, m posisi penyilngan ki (k = 1, 2… N-1, i=1,2,….m) dengan N= panjang kromosom diseleksi secara random dan tidak diperbolehkan ada posisi yang sama, serta diurutkan naik. Variabel-variabel ditukar antar kromosom pada titik tersebut untuk menghasilkan anak. Contoh ada 2 kromosom dengan panjang 12:
Induk 1 0 1 1 1 0 0 1 0 1 1 1 0 Induk 2 1 1 0 1 0 0 0 0 1 1 0 1 Posisi penyilangan yang terpilih:
Misalkan (m=3): 2 6 10 Setelah penyilngan, diperoleh kromosom-kromsom baru:
Pindah silang bisa juga berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang sangat kecil, suatu kromosom dengan gen-gen yang mengarah ke solusi akan sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini digunakan suatu aturan bahwa pindah silang hanya bisa dilakukan dengan suatu probabilitas tertentu Pc. Artinya, pindah silang bisa dilakukan hanya jika suatu bilangan random [0,1] yang dibangkitkan kurang dari Pc yang ditentukan. Pada umumnya Pc diset mendekati 1, misalnya 0, 8.
2.2.1.1.8. Mutasi
Setelah mengalami proses penyilangan, pada anak (offspriing) dapat dilakukan mutasi. Variabel anak (offspring) dimutasi dengan menambahkan nilai random yang sangat kecil (ukuran langkah mutasi), dengan probabilitas mutasi yang rendah. Peluang mutasi(Pm) didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak pernah dievaluasi. Tetapi bila peluang mutasi ini terlalu besar, maka akan terlalulu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari berlajar dari histori pencarian. Ada beberapa pendapat mengenai laju mutasi ini. Ada yang berpendapat bahawa, laju mutasi sebesar 1/n akan memberikan hasil yang cukup baik. Ada juga yang beranggapan bahwa laju mutasi tidak tergantung pada ukuran populasinya. Kromosom hasil mutasi harus diperiksa, apakah masih berada pada domain solusi, dan bila perlu bisa dilakukan perbaikan.
1. Mutasi Bilangan Real
Pada mutasi bilangan real, ukuran langkah mutasi biasanya sangat sulit ditentukan. Ukuran yang kecil bisanya sering mengalami kesuksesan, namun adakalanya ukuran yang lebih besar akan berjalan lebih cepat. Operator mutasi untuk bilangan real ini dapat ditetapkan sebagai:
a. Variabel yang dimutasi = variabel ± range*delta; (+ atau – memiliki probalitas yang sama).
b. Range = 0.5 * domain variabel; (interval pencarian).
c. Delta = ∑(ai * 2); ai= 1 dengan probabilitas 1/m, selain itu ai=0, dengan m=20;
Mutasi bilangan real dapat juga di lakukan dengan menggunakan metode non-uniform mutation [2][8]. Operasi mutasi non uniform dilakukan sebagai berikut:
JikaC = ( 1 … )
Adalah sebuah kromosom dimana t=generasi, dan elemen vk dipilih untuk dimutasi maka akan didapat sebuah vectorC = ( 1. . . . ) dimana
v = − ∆( ,+ ∆( , −− )()( 1) 2) (persamaan 2.1)
jika a adalah sebuah bilang random 0 dan 1, maka jika a=0 pilih persamaan ke 1 ke 1, a=1 pilih persamaan ke 2. Fungsi ∆( , ) akan mengembalikan nilai pada rentang [0,y], sehingg peluang Fungsi ∆( , ) mendekati nol akan meningkat seiring dengan bertambahnya nilai t.
∆( , ) = ∗ (1 − ( ) (persamaaan 2.2)
Dimana r adalah sebuah bilangan acak [0...1], T adalah generasi maximum, b adalah sebuah parameter yang ditentukan untuk menyatakan derajat ketergantungan terhadap iterasi.
Cara sederhana untuk mendapatkan mutasi biner adalah dengan mengganti satu beberapa nilai gen dari kromosom. Langkah- langkah mutasi ini adalah:
a. Hitung jumlah gen pada populasi (panjang kromosom dikalikan dengan ukuran populasi).
b. Pilih secara acak gen yang akan dimutasi.
c. Tentukan kromosom dari gen yang terpilih untuk dimutasi.
d. Ganti nilai gen (0 ke 1, atau 1 ke 0) dari kromosom yang akan dimutasi tersebut.
2.2.1.1.9. Penggantian Populasi
Dalam algoritma genetika dikenal skema penggantian populasi yang disebut generational peplacement, yang berarti semua individu (misal N individu dalam suatu populasi) dari suatu generasi digantikan sekaligus oleh N individu baru hasil pindah silang dan mutasi. Skema penggantian ini tidak realistis dari sudut pandang biologi. Di dunia nyata, individu-individu dari generasi berbeda bisa berada pada waktu yang bersamaan. Fakta lainnya adalah individu-individu muncul dan hilang secara konstan, tidak pada generasi tertentu. Secara umum skema pergantian populasi dapat dirumuskan berdasarkan suatu ukuran yang disebut generational gap G. Ukuran ini meunjukan persentase populasi yang digantikan dalam setiap generasi. Pada skema generational replacement, G = 1.
individu orang tua saja atau bisa juga berlaku pada semua individu dalam populasi.
2.2.1.2. Logika Fuzzy
Konsep tentang logika fuzzy diperkenalkan oleh Prof. Lotfi Astor Zadeh pada 1962. Logika fuzzy [5] adalah metodologi sistem kontrol pemecahan masalah, yang cocok diimplementasikan pada sistem, mulai dari sistem yang sederahana, sistem kecil, embedded system, jaringan PC, multi-channel atau workstation berbasis akurasi data, dan sistem kontrol[5]. Metodologi ini dapat diterapkan pada perangkat keras, perangkat lunak, atau kombinasi keduanya. Dalam logika klasik dinyatakan bahwa segala sesuatu bersifat biner, yang artinya adalah hanya mempunyai dua kemungkinan, “Ya atau Tidak”, “Benar atau Salah”, “Baik atau Buruk” dan lain-lain. Oleh karena itu, semua ini dapat mempunyai nilai keanggotaan 0 dan 1. Akan tetapi, dalam logika fuzzy memungkinakan nilai keanggotaan berada diantara 0 dan 1. Artinya, bisa saja suatu keadaan mempunyai dua nilai “Ya dan Tidak”, “Benar dan Salah”, “Baik dan Buruk” secara bersamaan, namun besar nilainya tergantung pada bobot keanggotaan yang dimilikinya. Logika fuzzy dapat digunakan diberbagai bidang, seperti pada sistem diagnosis penyakit (dalam bidang kedokteran), pemodelan sistem pemasaran, riset operasi (dalam bidang ekonomi), kendali kualitas air, prediksi adanya gempa bumi, klasifikasi dan pencocokan pola (dalam bidang teknik) [5].
Konsep himpunan fuzzy memiliki 2 atribut, yaitu [5]:
1. Linguistik, yaitu nama suatu kelompok yang me wakili suatu keadaan tertentu dengan menggunakan bahasa alami, misalnya dingin, sejuk, panas mewakili variable temperatur.
Gambar 2.3 Logika fuzzy [5] 2.2.1.2.1. Basis Pengetahuan Fuzzy
Fakta adalah bagian dari pengetahuan yang memuat informasi mengenai objek, peristiwa, atau situasi. Sedangkan kaidah (Rule base) berisi informasi tentang cara membangkitkan fakta baru atau hipotesa yang suda ada. Dalam pendefinisian tersebut biasanya dilakukan secara subjektif dan didasrkan pada pengalaman dan petimbangan yang menyangkut kerekayasaan, sehingga bergantung penuh pada perancang [5]. Kaidah atau rule base dalam fuzzy biasanya tersusun dengan pernyataan:
IF (antecedent) Then (consequent) atau dapat juga IF x is A Then y is B
Keterangan:
Antecedent: berisi himpunan fakta masukan (sebab) Consequent: berisi himpunan fakta keluaran (akibat).
2.2.1.2.2. Fuzzyfikasi
variabel linguistic menggunakan fungsi keanggotaan yang disimpan dalam basis pengetahuan fuzzy.
2.2.1.2.3. Logika Pengambilan Keputusan
Sering pula disebut sebagai Fuzzy Inference System (FIS) merupakan bagian terpenting dalam logika fuzzy. Logika pengambil keputusan merupakan kerangka komputasi yang didasarkan pada teori hmpunan fuzzy, aturan berbentuk IF-THEN, dan penalaran fuzzy. Fuzzy Infrerence system(FIS) menerima masukan crisp. Masukan ini kemudian dikirim ke basis pengetahuan yang berisi n aturan fuzzy berbentuk IF-THEN. Apabila jumlah aturan ebih dari satu, maka akan dilakukan agregasi dari semua aturan. Suatu aturan juga dapat mempunyai beberapa kondisi masukan, yang satu sama lainnya dihubungkan dengan AND atau OR untuk mendapatkan rule keluaran. Selanjutnya pada hasil agregasi akan dilakukan untuk mendapatkan nilai crisp sebagai keluaran sistem. Pada Fuzzy Inference system(FIS) dikenal adanya metode Sugeno dan metode Mamdani[5].
Metode sugeno diperkenalkan oleh Takagi-Sugeno Kang pada tahun 1985. Keluaran (output) yang diproses dengan metode ini adalah berupa konstanta atau persamaan linear.
Metode Mamdani sering juga dikenal dengan Metode Max-Min. Metode ini diperkenalkan oeleh Ebrahim Mamdani pada tahun 1975. Pada metode mamdani keluaran(output) yang dihasilkan berupa himpunan fuzzy.
2.2.1.2.4. Defuzzyfikasi
Merupakan proses mengubah output fuzzy yang diperoleh dari mesin inferensi menjadi nilai tegas menggunakan fungsi keanggotaan yang sesuai dengan saat dilakukan fuzzyfikasi.
2.2.1.2.5. Fungsi keanggotaan (Member Function)
akurat. Terdapat banyak sekali fungsi keanggotaan yang dapat digunakan, diantaranya adalah [5]:
1. Fungsi sigmoid
Sesuai dengan namanya, fungsi ini berbentuk kurva sigmoidala seperti huruf
[image:32.595.143.496.255.671.2]S. Setiap nilai x (anggota crips set) dipetakan ke dalam interval [0,1]. Grafik dan notasi matematika untuk fungsi ini adalah sebagai berikut [5] :
Gambar 2.4 Fungsi sigmoid
(Persamaan 2.9)
2. Fungsi Segitiga
Gambar 2.5 Fungsi Segitiga
(Persamaan 2.10)
3. Fungsi Trapesium
Berbeda dengan fungsi segitiga, pada fungsi ini terdapat beberapa nilai x yang memiliki derajat keanggotaan sama dengan 1, yaitu ketika ≤ ≥
[image:33.595.156.484.109.426.2]Tetapi, derajat keanggotaan untuk ≤ ≥ memiliki karakteristik yang sama dengan fungsi segitiga. Grafik dan notasi matematika dari fungsi Trapesium adalah sebagai berikut [5]:
(Persamaan 2.11)
4. Fungsi Linear
Pada fungsi linear, pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus. Bentuk kurva ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. Ada 2 keadaan himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan nol [0] bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi
Gambar 2.7 Fungsi linear derajat 0 ke 1
Kedua, merupakan kebalikan dari yang pertama. Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah
Gambar 2.8 Fungsi linear derajat 1 ke 0
(Persamaan 2.13)
2.2.1.3. Genetic Fuzzy System
memodifikasi parameter himpunan fuzzy dari variabel input sehingga sistem dapat memberikan output yang mendekati data training yang diberikan.
2.2.2. Pemrograman Berorientasi Objek (Object Oriented Programming)
Pemrograman berorientasi objek adalah metode implementasi dimana pemogram diorganisasaikan sebagai komunitas objek yang bekerja sama berinteraksi.Masing-masing merepresentasikan instan suatu kelas yang menyediakn sejumlah layanan yang relatif sederhana.Objek-objek saling berkomunikasi untuk mempertukarkan informasi.Prilaku kompleks diperolah dengan kerjasama antar objek-objek.Kelas-kelas dapat merupakan anggota hirarki yang disatukan lewat hubungan pewarisan.
Tiga aspek penting dalam pemrograman beriorientasi objek:
1. Menggunakan objek-objek bukan algoritma-algoritma sebagai blok-blok bangunnan logik dasar (hirarki “part of”).
2. Masing-masing objek adalah instan suatu kelas.
3. Kelas-kelas saling berhubungan lewat keterhubungan perwarisan (“is a”).
Stroustrup mendeskripsikan permograman beriorientasi objek sebagai penggabungan abstraksi data dengan pewarisan. Fitur-fitur penting untuk mendukung abstraksi data adalah constructor dan destructor untuk penciptaan dan pemusnahan objek, tipe berparameter, mekanisme exception, object, coercions dan iteraror. Defenisi tersebut mengarah ke bahasa yang mendukung entitas-entitas independen yang disebut objek. Kelakukan objek harus didefenisikan tipe yang dapat didefenisiskan oleh program menggunakan bahasa.Tipe-tipe ini dapat dihubungkan melalui mekanisme pewarisan.
Tujuan nyata dari pemrogram adalah menciptakan kode yang benar (yaitu seluruhnya memenuhi kebutuhan), sementara kompilator hanya sanggup memeriksa sintaks dan membangkitkan kodek objek.
Unified Modeling Language (UML) adalah bahasa grafis untuk mendokumentasi, menspesifikasikan, dan membangun sistem perangkat lunak. UML berorientasi objek, menerapkan banyak level abstraksi, tidak bergantung proses pengembangan, tidak tergantung bahasa dan teknologi, pemaduan beberapa notasi di beragam metodologi, usaha bersama dari banyak pihak, didukung oleh kakas-kakas yang diintegrasikan lewat XML.Standar UML dikelola oleh OMG (Object Management Group).
UML adalah bahasa pemodelan untuk menspesifikasikan, memvisualisasikan, membangun dan mendokumentasikan artifak-artifak dari sistem
1. Di dalam system intensive process, metode diterapkan sebagai proses untuk menurunkan atau mengevolusikan sistem.
2. Sebagai bahasa, UML digunakan untuk komunikasi yaitu alat untuk menangkap pengetahuan (semantiks) mengenai satu obyek dan mengekspresikan pengetahuan (sintaks) yang mempedulikan subyek untuk maksud berkomunikasi. Subyek adalah sistem yang dibahas.
3. Sebagai bahasa pemodelan, UML fokus pada pemahaman subyek melalui formulasi model dari subyek (dan konteks yang terhubung).Model memuat pengetahuan pada subyek, dan aplikasi dari pengetahuan ini berkaitan dengan intelejensia.
4. Berkaitan dengan unifikasi, UML memadukan praktek rekayasa terbaik sistem informasi dan industri, meliputi beragam tipe sistem (perangkat lunak dan non perangkat lunak), domain (bisnis, perangkat lunak) dan proses siklus hidup.
5. Begitu diterapkan untuk menspesifikasikan sistem. UML dapat digunakan untuk mengkomunikasi “apa” yang diperlukan dari sistem dan “bagaimana” sistem dapat direalisasikan.
6. Begitu diterapkan untuk memvisualisasikan sistem, UML dapat digunakan untuk menjelaskan sistem secara visual sebelum direalisasikan.
8. Begitu diterapkan untuk mendokumentasikan sistem, UML dapat digunakan untuk menangkap pengetahuan mengenai sistem pada selururh siklus hidup.
2.2.3.1. Tujuan UML
Tujuan utama perancanagn UML adalah:
1. Menyediakan bahasa pemodelan visual yang ekspresif dan siap pakai untuk mengembangkan dan pertukaran model-model yang berarti.
2. Menyediakan mekanisme perluasan dan spesialisasi untuk memperluas konsep-konsep inti.
3. Mendukung spesifikasi independen bahasa pemrograman dan proses pengembangan tertentu.
4. Menyediakan basis formal untuk pemahaman bahasa pemodelan. 5. Mendorong pertumbuhan pasar kakas berorientasi objek.
6. Mendukung konsep-konsep pengembangan level lebih tinggi seperti komponen, kolaborasi, framework dan pattern.
2.2.3.2. Diagram UML
Kegunaan diagram pada pemodelan adalah untuk formulisasi ekspresi model objek secara koheren, presisi dan mudah dirumuskan. Pemodelan berorientasi objek memerlukan kakas untuk mengekspresikan model. UML menyediakan sejumlah diagran untuk mengekspresikan pemodelan berorientasi objek yang dilakukan.
1. Use case diagram
Pemodelan ini biasa dilakukan lewat proses berulang interaksi antara pengembang dan pemakai untuk memperoleh spesifikasi kebutuhan yang sama-sama disepakati. Pemodelan use-case diciptakan oleh Ivar Jacobson.
Tujuan utama pemodelan use-case adalah:
a. Memutuskan dan mendeskripsikan kebutuhan-kebutuhan fungsional sistem.
b. Memberikan deskripsi jelas dan konsisten dari apa yang seharusnya dilakukan, sehingga model use case digunakan di seluruh proses pengembangan untuk komunikasi dan menyediakan basis untuk pemodelan berikutnya yang mengacu sistem harus memberikan fungsionalitas yang dimodelkan pada use-case.
c. Menyediakan basis untuk melakukan pengujian sistem yang memverifikasi sistem.Menguji apakah sistem telah memberikan fungsionalitas yang diminta.
d. Menyediakan kemampuan melacak kebutuhan fingsionalitas menjadi kelas-kelas dan operasi-operasi aktual di sistem.Untuk menyederhanakan perubahan dan ekstensi ke sistem dengan mengubah model use-case dan kemudian melacak use-case yang dipengaruhi ke perancangan dan implementasi sistem.
Elemen diagram use-case adalah: a) Aktor
Aktor adalah pemakai sistem, dapat berupa manusia atau sistem terotomatisasi lain.Aktor adalah sesuatu atau seseorang yang berinteraksi dengan sistem, yaitu siapa atau apa yang menggunakan sistem.Yang dimaksud dengan berinteraksi adalah aktor mengirim atau menerima pesan ke atau dari sistem, atau mempertukarkan informasi dengan sistem. Dalam perspektif aktor, use-case melakukan sesuatu yang berharga bagi aktor.
b) Use-Case
Use-case adalah cara spesifik penggunaan sistem oleh aktor.Ciri-ciri dari use-case adalah:
1. Pola perilaku yang harus dipenuhi oleh sistem.
2. Sekuen transaksi terhubung yang dilakukan aktor dan sistem. 3. Memberikan sesuatu yang berharga bagi aktor.
c) Hubungan antar use-case.
Keterhubungan antar use-case dengan user-case lain berupa generalisasi antar use-case, yaitu:
1. Include, perilaku use-case merupakan bagian dari use-case yang
lain. Sehingga sebuah use-case yang di include oleh use-case lain akan ikut di eksekusi pada saat use-case tersevut dijalankan.
2. Extend, perilaku use-case memperluas perilaku use-case yang lain. Use-case yang diextend akan menjadi sebuah pilihan (optional), use-Use-case yang diextend akan tetap ditampilkan oleh sistem akan tetapi prosesnya tidak akan dilakukan.
2. Activity Diagram
Activity diagram menggambarkan berbagai allur aktifitas dalam sistem yang sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Aktivity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
Activity diagram merupakan state diagram khusus, dimana sebagian besar state adalah action dan sebagian besar transisi di-triger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behavior internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur aktivitas dari level atas secara umum.
3. Sequence diagram
Sequence diagram mendeskripsikan komunikasi di antara objek-objek, meliputi pesan-pesan yang ada dan urutan pesan tersebut muncul.
1. Overview perilaku sistem.
2. Menunjukkan objek-objek yang diperlukan.
3. Mendokumentasikan skenario dari suatu diagram use case 4. Memeriksa jalur-jalur pengaksesan
Diagram kelas merupakan diagram paling umum dipakai di semua pemodelan berorientasi objek. Pemodelan kelas merupakan pemodelan paling utama di pendekatan berorientasi objek.Pemodelan kelas menunjukkan kelas-kelas yang ada di sistem dan hubungan antar kelas-kelas-kelas-kelas itu, atribut-atribut dan operasi-operasi di kelas-kelas.
2.2.4. C#
C# merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. C# adalah Java versi Microsoft, sebuah bahasa multi flatform yang didesain untuk bisa berjalan diberbagai mesin. C# memiliki kekuatan bahasa C++ dan portabilitas seperti Java. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyerdehanaan terhadap pewarisan jamak (multiple inheritances).
Bahasa pemrograman C# dibuat sebgai bahasa pemrograman yang bersifat genaral-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana. C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem client-server (hosted system) maupun sistem embedded (embbeded system), mulai dari program aplikasi yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada program aplikasi yang sangat kecil.
37
3.1
Analisis Sistem
Analisis sistem bertujuan untuk memberikan gambaran mengenai system
yang nantinya akan dibangun. Sistem yang akan dibangun adalah sistem
penentuan waktu panen dengan menggunakan algoritma genetika dan logika
fuzzy
.
3.1.1
Analisis Masalah
Dalam penentuan waktu panen dari tanaman hortikultura bergantung
kepada tingkat kematangan dan tujuan pemanfaatan dari tanaman tersebut.
Sehingga waktu panen dari tanaman dapat disesuaikan dengan permintaan dari
konsumen ataupun pasar. Sebagai contoh tanaman tomat yang akan di pasarkan ke
pasar yang jauh, maka tanaman tomat di panen saat memasuki fase hijau masak
dan sedikit warna merah. Dan untuk tomat yang dikonsumsi maka di panen pada
saat fase matang warna merah dominan. Kata sedikit dan dominan pada penentuan
panen tersebut menimbulkan ketidakpastian, karena hanya bersisat perkiraan saja.
Oleh karenan itu perlu adanya sebuah ukuran nilai yang dibuat untuk
merepresentasikan tingkat kematangan dari tanaman. Cara yang dapat dilakukan
dengan melakukan proses komputasi, ialah dengan menggukur sendiri kelapangan
dimulai dari tanaman ditanam ditanah kemudian dihitung total harinya. Namun
bisa saja hasil pengukuran yang didapat akan berbeda-beda disetiap musim tanam,
Karena pertumbuhan tanaman sendiri dipengaruhi oleh berbagai faktor seperti
yang telah disebutkan pada bab sebelumnya.
lingkungan yang tidak pasti dan tidak tepat. Karena disini yang dihitung bukan
hanya satu jenis tanaman saja. Maka dalam pembuatan aturan fuzzy dan fungsi
keanggotaanya akan menjadi sulit dan membutuhkan waktu yang tidak sedikit.
Oleh karena itu digunakan juga algoritma genetika yang berfungsi untuk
membangkitkan nilai fungsi keanggotaan dan aturan fuzzy.
3.1.2
Analisis Data Masukan
[image:44.595.152.472.295.519.2]Data masukan disini adalah berupa data index kematangan untuk tanaman
hortikultura dan data curah hujan.
Tabel 3.1 Parameter waktu panen
No Nama Tanaman
Parameter waktu panen
Index Kematangan
Curah hujan
1
Tomat Merah
Warna buah
-
Hijau
-
Kuning
-
Merah
-
Rendah
-
Sedang
-
Tinggi
2
Cabai Merah
Warna buah
-
Hijau
-
Merah
3.1.3
Analisis Metode
3.1.3.1
Analisis Algoritma Genetika
Algoritma Genetika digunakan untuk mengoptimalkan fungsi keanggotaan
dan aturan fuzzy. Adapun beberapa hal yang harus diperhatikan pada penggunaan
algoritma genetika yaitu :
3.1.3.2
Parameter Algoritma Genetika
Pada penelitian ini parameter genetika ditentukan sebagai berikut.
1.
Peluang crossover= 0.95
2.
Peluang mutasi = 0.01
3.
Generasi = 1000
4.
Populasi =30
5.
Seleksi menggunakan seleksi
roulete wheel
6.
Metode crossover yang digunakan
multi-point crossover
7.
Metode mutasi yang digunakan
non-uniform mutation
3.1.3.3
Pembentukan Popolasi Awal
Populasi awal dibentuk dengan menggunakan skema penggodean.
Populasi berupa sekumpulan solusi yang pada kasus ini adalah fungsi
keanggotaan dan aturan
fuzzy
.
1.
Pembentukan Kromosom
Gambar 3.1 Contoh grafik variabel fuzzy
Fungsi keanggotan trapezoid memiliki 4 titik untuk setiap nilai
linguistiknya maka dapat dibentuk sebuah representasi fungsi keanggotaanya
sebagai berikut:
Input warna(x)∈ [ , ]
a= nilai min
b= nilai max
misal X∈ [50,91]
maka x=[50,50,55,60,55,60,65,70,65,70,90,90]
Pada kebanyakan kasus fungsi trapezoid memiliki titik perpotongan yang
memiliki nilai yang sama. Sehingga untuk mempermudah proses maka nilai x
dapat dibuat menjadi
x= [0, 0, 55, 60, 65, 70, 90, 90]
Maka fungsi keanggotan untuk input warna(x) dapat di baca sebagai berikut:
Rendah = x0, x1, x2, x3
Sedang = x2, x3, x4, x5
Tinggi = x4, x5, x6, x7
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0 10 20 30 40 50 60 70 90
untuk nilai x0,x1,x6,7 nilainya bersifat statis karenan merupakan batas awal dan
akhir fungsi keanggotaan. Nilai x2, x3, x4, x5 akan dibangkitkan secara acak
dengan menggunakan persamaan sebagai berikut:
X (i) = rand (a, b)
(Persamaan 3.1)
Sedangkan merepresentasikan aturan fuzzy kedalam kromosom maka variabel
linguistik fuzzy diubah kedalam bentuk bilangan integer Sebagai contoh:
input_warna memiliki 3 variable lingusitik rendah, sedang, dan tinggi maka nilai
ini Akan diubah kedalam bilangan
integer
yaitu 1, 2, 3.
Maka Akan didapat sebuah kromosom dengan panjang = jumlah panjang
variable
fuzzy
. Misalkan sistem fuzzy dengan 2
input
dan 1
output
.
Input
1
memiliki 3 variables,
input
2 memiliki 5 variable dan
output
memiliki 3 variabel.
Panjang representsi fungsi keanggotaan fuzzy, yaitu:
Panjang representasi= (axb)-(a-c)
(Persamaan 3.2)
a= jumlah variabel
b= 4, curva
trapezoid
memiliki 4 titik
c= jumlah curva
trapezoid
sempurna (curva diantara curva ke 1 dan akhir)
Input 1= (3x4)-(3+1) =8
Input 2= (5x4)-(5+3) =12
Output= (3x4)-(3+1) =8
Panjangkromosom = 8+12+8 =28
Adapun susanan fungsi keanggotaan dan aturan
fuzzy
dalam kromsom adalah
sebagai berikut:
Kita misalkan kromosom adalah sebuah
array
3 dimensi dengan panjang
array
28
Kromosom= [i, j, k]
i = posisi individu (i=0… populasi-1)
j= posisikromosom (j=0… panjangkromosom-1)
k= sebuah array berjumlah 4 buah, k=0, 1, 2, 3
Dimana
k=0, nilai representasi fungsi keanggotaan
Contoh: sebuah sistem
fuzzy
untuk menghitung waktu panen tanaman tomat,
memiliki 2 variable input (Warna, Curah Hujan) dan output (Waktu Panen).
Dengan variable linguistiknya yaitu Warna (hijau, kuning, merah), Curah Hujan
(sedang, rendah, tinggi) dan Waktu Panen (pendek, sedang, panjang). Fungsi
keanggotaan Warna memiliki batas (50-91) hari, Curah Hujan memiliki batas
(20-150) mm dan Waktu Panen (1-7) hari. Maka representasi kromosomnya untuk
individu 1-10 adalah sebagai berikut:
Tabel 3.2 Hasil Pembangkitan Nilai Individu
Indvidu Kromosom
Individu Kromosom
1
Kromosom 1 = 50,1,2,1 Kromosom 2 = 50,1,0,1 Kromosom 3 = 58,0,0,3 Kromosom 4 = 64,2,1,3 Kromosom 5 = 56,1,2,2 Kromosom 6 = 79,1,0,2 Kromosom 7 = 91,1,1,1 Kromosom 8 = 91,0,1,1 Kromosom 9 = 20,1,0,3 Kromosom 10 = 20,2,0,2 Kromosom 11 = 102,1,1,2 Kromosom 12 = 104,2,0,1 Kromosom 13 = 136,1,0,3 Kromosom 14 = 131,1,2,3 Kromosom 15 = 150,0,1,3 Kromosom 16 = 150,1,2,3 Kromosom 17 = 1,1,1,3 Kromosom 18 = 1,0,1,1 Kromosom 19 = 2,1,0,2 Kromosom 20 = 3,1,2,1 Kromosom 21 = 2,0,1,2 Kromosom 22 = 1,1,1,1 Kromosom 23 = 7,2,0,1 Kromosom 24 = 7,1,1,36
Kromosom 1 = 50,0,2,3 Kromosom 2 = 50,2,2,3 Kromosom 3 = 71,0,2,1 Kromosom 4 = 83,0,0,2 Kromosom 5 = 77,2,1,2 Kromosom 6 = 71,0,1,2 Kromosom 7 = 91,0,1,3 Kromosom 8 = 91,0,2,2 Kromosom 9 = 20,0,1,2 Kromosom 10 = 20,2,0,3 Kromosom 11 = 53,2,2,2 Kromosom 12 = 104,2,1,1 Kromosom 13 = 47,1,0,2 Kromosom 14 = 138,0,0,1 Kromosom 15 = 150,1,0,2 Kromosom 16 = 150,2,1,3 Kromosom 17 = 1,1,2,1 Kromosom 18 = 1,1,1,2 Kromosom 19 = 1,0,1,2 Kromosom 20 = 4,1,2,3 Kromosom 21 = 2,0,2,3 Kromosom 22 = 5,2,0,3 Kromosom 23 = 7,2,0,3 Kromosom 24 = 7,0,2,32
Kromosom 1 = 50,2,1,2Kromosom 2 = 50,2,1,2 Kromosom 3 = 80,0,1,1 Kromosom 4 = 73,2,1,3 Kromosom 5 = 60,0,1,1 Kromosom 6 = 69,0,2,1 Kromosom 7 = 91,0,2,1 Kromosom 8 = 91,1,1,1 Kromosom 9 = 20,2,1,3 Kromosom 10 = 20,2,2,3 Kromosom 11 = 90,0,2,2 Kromosom 12 = 21,0,1,3 Kromosom 13 = 107,2,1,2 Kromosom 14 = 136,1,1,1 Kromosom 15 = 150,1,0,1 Kromosom 16 = 150,2,1,3
Kromosom 17 = 1,2,1,2 Kromosom 18 = 1,0,1,3 Kromosom 19 = 5,2,2,3 Kromosom 20 = 1,1,1,2 Kromosom 21 = 2,1,1,3 Kromosom 22 = 5,1,0,1 Kromosom 23 = 7,1,1,3 Kromosom 24 = 7,0,2,3
Kromosom 17 = 1,2,2,3 Kromosom 18 = 1,2,2,3 Kromosom 19 = 3,2,0,3 Kromosom 20 = 3,1,0,3 Kromosom 21 = 2,0,1,2 Kromosom 22 = 5,2,0,1 Kromosom 23 = 7,1,2,1 Kromosom 24 = 7,2,0,2
3
Kromosom 1 = 50,1,2,1Kromosom 2 = 50,2,2,2 Kromosom 3 = 57,2,2,1 Kromosom 4 = 54,0,0,3 Kromosom 5 = 52,2,1,3 Kromosom 6 = 58,1,0,1 Kromosom 7 = 91,2,1,2 Kromosom 8 = 91,1,2,3 Kromosom 9 = 20,2,2,3 Kromosom 10 = 20,1,0,2 Kromosom 11 = 99,0,2,1 Kromosom 12 = 65,0,1,1 Kromosom 13 = 109,0,2,1 Kromosom 14 = 129,1,2,3 Kromosom 15 = 150,1,2,1 Kromosom 16 = 150,2,0,2 Kromosom 17 = 1,1,0,1 Kromosom 18 = 1,0,0,2 Kromosom 19 = 5,2,1,2 Kromosom 20 = 6,2,2,1 Kromosom 21 = 3,2,2,2 Kromosom 22 = 4,2,1,1 Kromosom 23 = 7,0,0,1 Kromosom 24 = 7,2,1,1
8
Kromosom 1 = 50,2,2,2 Kromosom 2 = 50,2,2,2 Kromosom 3 = 78,2,0,2 Kromosom 4 = 65,0,0,3 Kromosom 5 = 72,0,2,2 Kromosom 6 = 73,1,2,3 Kromosom 7 = 91,1,1,3 Kromosom 8 = 91,1,1,1 Kromosom 9 = 20,2,1,3 Kromosom 10 = 20,0,1,2 Kromosom 11 = 23,1,2,2 Kromosom 12 = 71,2,2,1 Kromosom 13 = 107,2,2,3 Kromosom 14 = 33,1,1,1 Kromosom 15 = 150,2,1,2 Kromosom 16 = 150,1,0,2 Kromosom 17 = 1,1,2,2 Kromosom 18 = 1,0,0,1 Kromosom 19 = 2,2,0,2 Kromosom 20 = 4,1,2,3 Kromosom 21 = 5,1,2,1 Kromosom 22 = 6,0,1,2 Kromosom 23 = 7,1,0,2 Kromosom 24 = 7,1,0,14
Kromosom 1 = 50,0,2,3Kromosom 2 = 50,1,0,3 Kromosom 3 = 87,0,2,3 Kromosom 4 = 66,2,1,1 Kromosom 5 = 83,2,0,1 Kromosom 6 = 86,1,2,3 Kromosom 7 = 91,1,0,2 Kromosom 8 = 91,2,0,2 Kromosom 9 = 20,0,0,2 Kromosom 10 = 20,1,0,2 Kromosom 11 = 24,1,0,2 Kromosom 12 = 38,1,2,1 Kromosom 13 = 67,2,0,3 Kromosom 14 = 119,0,0,2 Kromosom 15 = 150,1,2,2 Kromosom 16 = 150,2,0,1 Kromosom 17 = 1,2,1,1 Kromosom 18 = 1,2,0,1 Kromosom 19 = 2,0,0,2 Kromosom 20 = 5,2,1,1 Kromosom 21 = 6,2,0,3 Kromosom 22 = 4,2,2,2 Kromosom 23 = 7,1,2,3 Kromosom 24 = 7,0,0,2
9
Kromosom 1 = 50,2,2,3 Kromosom 2 = 50,1,0,1 Kromosom 3 = 77,0,2,1 Kromosom 4 = 62,1,1,3 Kromosom 5 = 77,0,0,1 Kromosom 6 = 52,2,1,2 Kromosom 7 = 91,2,0,2 Kromosom 8 = 91,1,1,3 Kromosom 9 = 20,2,0,2 Kromosom 10 = 20,0,2,3 Kromosom 11 = 61,1,1,3 Kromosom 12 = 131,0,1,1 Kromosom 13 = 100,2,0,3 Kromosom 14 = 82,2,2,2 Kromosom 15 = 150,0,2,3 Kromosom 16 = 150,2,0,3 Kromosom 17 = 1,2,0,2 Kromosom 18 = 1,1,0,1 Kromosom 19 = 6,2,2,2 Kromosom 20 = 2,2,1,2 Kromosom 21 = 1,0,1,2 Kromosom 22 = 2,0,0,2 Kromosom 23 = 7,1,0,1 Kromosom 24 = 7,0,1,15
Kromosom 1 = 50,2,2,1Kromosom 2 = 50,1,2,3 Kromosom 3 = 84,2,0,2
Kromosom 4 = 52,1,0,3 Kromosom 5 = 70,0,1,1 Kromosom 6 = 87,2,1,2 Kromosom 7 = 91,1,2,2 Kromosom 8 = 91,2,1,1 Kromosom 9 = 20,2,1,2 Kromosom 10 = 20,0,0,3 Kromosom 11 = 113,1,2,2 Kromosom 12 = 90,2,0,3 Kromosom 13 = 56,0,1,3 Kromosom 14 = 49,1,0,1 Kromosom 15 = 150,0,2,2 Kromosom 16 = 150,1,2,2 Kromosom 17 = 1,1,0,1 Kromosom 18 = 1,0,2,1 Kromosom 19 = 1,2,0,1 Kromosom 20 = 6,0,0,3 Kromosom 21 = 1,0,0,2 Kromosom 22 = 2,2,0,1 Kromosom 23 = 7,0,1,1 Kromosom 24 = 7,1,0,3
Kromosom 4 = 76,2,1,1 Kromosom 5 = 54,1,2,3 Kromosom 6 = 62,2,0,1 Kromosom 7 = 91,2,2,3 Kromosom 8 = 91,1,0,1 Kromosom 9 = 20,0,1,1 Kromosom 10 = 20,2,2,2 Kromosom 11 = 50,1,2,3 Kromosom 12 = 141,0,2,1 Kromosom 13 = 54,1,0,2 Kromosom 14 = 103,1,0,1 Kromosom 15 = 150,2,1,1 Kromosom 16 = 150,2,1,1 Kromosom 17 = 1,1,2,3 Kromosom 18 = 1,1,1,1 Kromosom 19 = 5,0,2,2 Kromosom 20 = 6,0,0,3 Kromosom 21 = 5,2,0,3 Kromosom 22 = 2,0,1,1 Kromosom 23 = 7,2,1,1 Kromosom 24 = 7,2,0,3
Dari kromosom diatas didapat representasi
fuzzy
dengan fungsi
keanggotan
trapezoid
dan jumlah aturan sebanyak panjang kromosom.
Selanjutnya setiap kromosom akan dievaluasikan untuk mendapatkan fungsi
keanggotaan dan aturan fuzzy yang optimum.
3.1.3.4
Evaluasi Kromosom
Pada tahap ini kromosom akan dievaluasi, untuk dapat mengevaluasi suatu
system fuzzy dibutuhkan setidaknya minimal 1 kombinasi nilai input dan output
dari tujuan yang akan dicari dengan menggunakan system fuzzy. Misalkan kita
ambil contoh tanaman tomat, dapat dikatakan matang bila tanaman setidaknya
memiliki warna Kuning pada hari ke 60, dengan curah hujan pada 1 minggu
kedepan 70 mm. Kemudian akan dihitung nilai erornya (E) dengan persamaan
E= 1/N(∑
− )
(persamaan 3.3)
Dengan
N = jumlah kombinasi input output yang diketahui
y = output system fuzzy
t = data output yang diketahui
f= 1/ (E+const+1)
(persamaan 3.4)
Dimana const di gunakan untuk menjada interval antara nilai dari fungsi
keanggotaan, agar interval yang didapat tidak terlau jauh dan tidak terlalu dekat,
const= 0 jika nilai interval terpenuhi, dan 1 jika tidak terpenuhi. Dari table 3.2
maka akan di dapatkan fungsi keanggotaan
fuzzy
, aturan dan nilai fitnessnya
sebagai berikut:
Tabel 3.3 Fungsi Keanggotaan Tiap Individu
Individu Warna
Curah Hujan
Waktu Panen
1
Hijau:50,50,56,58Kuning:56,58,64,79 Merah:64,79,91,91 Rendah:20,20,102,104 Sedang:102,104,131,136 Tinggi:131,136,150,150 Panjang:1,1,1,2 Sedang:1,2,2,3, Panjang:2,3,7,7
2 Hijau:50,50,60,69
Kuning:60,69,73,80 Merah:73,80,91,91 Rendah:20,20,21,90 Sedang:21,90,107,136 Tinggi:107,136,150,150 Panjang:1,1,1,2 Sedang:1,2,5,5, Panjang:5,5,7,7
3 Hijau:50,50,52,54
Kuning:52,54,57,58 Merah:57,58,91,91 Rendah:20,20,65,99 Sedang:65,99,109,129 Tinggi:109,129,150,150 Panjang:1,1,3,4 Sedang:3,4,5,6, Panjang:5,6,7,7
4 Hijau:50,50,66,83
Kuning:66,83,86,87 Merah:86,87,91,91 Rendah:20,20,24,38 Sedang:24,38,67,119 Tinggi:67,119,150,150 Panjang:1,1,2,4 Sedang:2,4,5,6, Panjang:5,6,7,7
5 Hijau:50,50,52,70
Kuning:52,70,84,87 Merah:84,87,91,91 Rendah:20,20,49,56 Sedang:49,56,90,113 Tinggi:90,113,150,150 Panjang:1,1,1,1 Sedang:1,1,2,6, Panjang:2,6,7,7
6 Hijau:50,50,71,71