PENERAPAN ALGORITMA GENETIKA BERBASIS FUZZY INFERENCE SYSTEM UNTUK PENGUJIAN PERANGKAT LUNAK METODE BLACK-BOX Arochman Program Studi Teknik Informatika,STMIK Widya Pratama Jl. Patriot 25 Pekalongan Telp (0285)427816 email :
[email protected]
ABSTRAK Pengujian black-box sangat penting karena teknik tersebut mampu mengidentifikasi kesalahan dalam fungsi, antar muka, model data, dan akses kesumber data eksternal. Dalam pelaksanaan sering timbul masalah penguji tidak perna yakin apakah perangkat lunak yang diuji telah benar-benar lolos dalam pengujian.Hal ini terjadi karena kemungkinan masih ada beberapa jalur eksekusi yang belum perna teruji. Penguji seharusnya membuat setiap kemungkinan kombinasi data masukan untuk pengujian. Pemilihan data masukan untuk menemukan kesalahan menjadi masalah bagi penguji karena memiliki probabilitas yang tinggi. Pendekatan dalam pengujian black-box yang digunakan adalah boundary value. Penyusunan dan pengeksekusian cakupan uji secara otomatis dapat menjadi solusi. Untuk menghasilkan cakupan uji secara otomatis dibutuhkan sebuah teknik Artificial Intelligence. Komputasi cerdas yang digunakan dalam optimasi penyusunan cakupan uji adalah algoritma genetika. Algoritma genetika adalah suatu algoritma pencarian yang berbasis pada mekanisme seleksi alam dan genetika. Terkait dengan pengujian black-box algoritma genetika dapat digunakan dalam pencarian kemungkinan-kemungkinan data masukan untuk penyusunan cakupan uji yang optimal.untuk mengeksekusi cakupan uji digunakan Sikuli, Sikuli adalah teknologi visual untuk mengotomatisasi dan menguji antarmuka pengguna grafis (GUI) dengan menggunakan gambar (screenshot) dari perangkat lunak yang diuji. Algoritma genetika merupakan algortima yang paling optimal dan efisien untuk penyusunan cakupan uji. Akan tetapi pada penentuan parameter probabilitas crossover dan probabilitas mutationtidak optimal.Peningkatan kinerja algorima genetika digunakan fuzzy inference system. Cakupan uji yang tersusun menggunakan algoritma genetika berbasis fuzzy inference system(GAFIS) dieksekusi secara otomatis menggunakan Sikuli IDE. Evaluasi dilakukan dengan membandingkan kinerja algoritma genetika standart (GA) dengan algoritma genetika berbasis fuzzy inference system (GAFIS) dalam penyusunan cakupan uji. Hasil penunjukan adanya peningkatan kinerja algoritma genetika berbasis fuzzy inference system (GAFIS) sekitar 18.35%. Kata Kunci : algoritma genetika, fuzzy inference system, black-box testing 1. PENDAHULUAN 1.1 Latar Belakang Pengujian adalah serangkaian kegiatan yang dapat direncanakan sebelumnya dan dilakukan secara sistematis. Kegiatan yang terkait dengan pengujian meliputi proses menganalisis item dan program serta fitur dari item perangkat lunak [1]. Tujuan Pengujian perangkat lunak adalah mendeteksi perbedaan antara hasil keluaran perangkat lunak dengan kondisi yang diharapkan dan menemukan kesalahan. Dengan pengujian kualiatas dan kepercayaan dalam berfungsinya perangkat lunak akan meningkat. Pengujian black-box sangat penting karena teknik tersebut mampu mengidentifikasi kesalahan dalam fungsi, antar muka, model data, dan akses kesumber data eksternal. Dalam pelaksanaan sering timbul masalah penguji tidak perna yakin apakah perangkat lunak yang diuji telah benar-benar lolos dalam pengujian. Hal ini terjadi karena kemungkinan masih ada beberapa jalur eksekusi yang belum perna teruji. Penguji seharusnya membuat setiap kemungkinan kombinasi data masukan untuk pengujian [3]. Pemilihan data masukan untuk menemukan kesalahan menjadi masalah bagi penguji karena memiliki probabilitas yang tinggi [1]. Penyusunan dan pengeksekusian cakupan uji secara otomatis dapat menjadi solusi.Untuk menghasilkan cakupan uji secara otomatis dibutuhkan sebuah teknik Artificial Intelligence [5]. Komputasi cerdas digunakan untuk membuat formulasi dan optimasi pemilihan atau penyusunan cakupan uji. Adapun komputasi cerdas yang dapat digunakan antara lain, Fuzzy logic, Neural network, Algoritma genetika, Case Based Reasoning dan algoritma yang lain. Dari beberapa komputasi cerdas tersebut yang sangat tepat dalam penyelesaian masalah optimasi kompleks, yang sulit dilakukan oleh metode konvensional adalah algoritma genetika. Algoritma genetika adalah suatu algoritma pencarian yang berbasis pada mekanisme seleksi alam dan genetika [6]. Terkait dengan pengujian [Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
1
black-box algoritma genetika dapat digunakan dalam pencarian kemungkinan-kemungkinan data masukan untuk penyusunan cakupan uji yang optimal. Dengan pertimbangan bahwa algoritma genetika mampu mengoptimasi menyusunan cakupan uji pada pengujian GUI, maka akan dipilih algoritma genetika untuk optimasi dan efisiensi penyusunan cakupan uji pada pengujian black-box. Akan tetapi pada penentuan parameter probabilitas crossover dan probabilitas mutation tidak optimal, karena terlihat pada saat perubahan parameter jumlah populasi dan jumlah generasi, parameter probabilitas crossover dan mutation tidak dapat beradaptasi untuk memperoleh nilai yang tepat. Dengan menerapkan fuzzy inference system, parameter probabilitas crossover dan mutation dapat beradaptasi secara otomatis sehingga nilai fitness dapat diperoleh dengan maksimal. Cakupan uji yang telah tersusun akan dieksekusi dengan menggunakan Sikuli. Sehingga tester yang awalnya diperankan manusia kini dapat dilakukan oleh perangkat lunak. 1.2 Landasan Teori 1. Tinjauan Studi (Related Research) Penelitian yang dilakukan oleh Lionel C. Briand, Yvan Labiche, and Zaheer Bawar pada tahun 2008. Permasalahan dalam penelitian tersebut antara lain, keterbatasan testerdalam memahami test suite dan adanya redudansi test suite pada pengujian black-box untuk perangkat lunak open source. Lionel menggunakan metode algoritma C4.5 dalam mengatasi permasahan diatas. Dengan pendekatan sebagai berikut: mengidentifikasi masalah pada keputusan C4.5 dan menghubungkannya dengan test suite potensial atau CP spesifikasi kekurangan. Kemudian menambah strategi untuk test suite. Hasil penelitian Lionelyang tersebut diatas adalah Algoritma C4.5 membantu tester perangkat lunak menganalisiskelemahan dan redundansi spesifikasi pengujian dantest suite dan iteratif diperbaiki. Hasil analisis menunjukan pengurangan test suit mencapai 50%[7]. Berikutnnya penelitian yang dilakukan oleh Abdul Rauf, Sajid Anwa, M. Arfan Jaffer, and Arshad Ali Shahid pada tahun 2010. Abdul rauf menyatakan bahwa setiap pengembang perangkat lunak selalu ingin untuk menguji perangkat lunak secara menyeluruh untuk mendapatkan kepercayaan yang maksimal tentang kualitas. Tapi ini memerlukan upaya besar untuk menguji GUI karena kompleksitas yang terlibat dalam aplikasi tersebut. Abdul Rauf menggunakan Algoritma genetika dalam mengatasi permasalahannya. Dengan algoritma genetika dilakukan pencarian kombinasi tes yang sebaik mungkin dengan parameter beberapa kriteria uji yang telah ditetapkan. Hasil penelitian Abdul Rauf yang tersebut diatas adalah Algoritma genetika mampu mengoptimasi “fungsi cakupan” yang memenuhi kriteria tes atau pengujian. Analisis cakupan uji funsi fitness menunjukan bahwa sistem mampu mencapai lebih dari 85% cakupan[8]. Penelitian terkait berikutnya dilakukan oleh Tsung-Hsiang Chang, Tom Yeh, and Robert C. Miller, pada tahun 2010.Tsung-Hsiang melihat bahwa pengujian GUI membutuhkan perilaku manusia. Dalam penelitiannya TsungHsiang memperkenalkan pendekatan baru pada mengujian GUI secara otomatis dengan menggunakan alat bantu berupa perangkat lunak yaitu Sikuli. Dengan menuliskan perilaku dan menempelkan gambar yang akan mendapatkan perilaku tersebut akan mampu memberikan umpan balik visual. Dari penelitian tersebut pengujian GUI yang dulunya membutuhkan perilaku manusia kini dapat dilakukan oleh komputer (otomatis) sehingga hal ini akan dirasa lebih efisien [9]. Penelitian ini menerapkan algoritma genetika untuk penyusunan cakupan uji pada pengujian black-box.Hal ini juga dilakukan oleh Abdul Rauf yang menerapkan algoritma genetika untuk pengujian GUI.Akan tetapi dalam penelitian ini adanya peningkatan algoritma genetika dengan menerapkan fuzzy inference system. Eksekusi hasil cakupan uji menggunakan Sikuli hal yang sama juga perna dilakukan oleh Tsung-Hsiang yang menggunakan Sikuli untuk pengujian GUI. Akan tetapi Tsung-Hsiang tidak melakukan perencanaan cakupan uji sehingga tidak optimal. 2. Tinjauan Pustaka Algoritma Genetika adalah suatu algorima pencarian yang berbasi pada mekanisme seleksi alam dan genetika. Algoritma genetika merupakan salah satu algoritma yang sangat tepat digunakan dalam menyelesaikan masalah optimasi kompleks, yang sulit dilakukan oleh metode konvensional [6]. Algoritma genetika diciptakan oleh John Holland pada tahun 1960. Pada tahun 1960-an dan 1970-an John Holland bersama mahasiswa dan koleganya mengembangkan algoritma genetika untuk mepelajari fenomena dan adaptasi yang terjadi seperti di alam dan untuk mengembangkan cara-cara di mana mekanisme adaptasi alami mungkin diimport kedalam sistem computer [11]. Dalam pemrograman, algoritma genetika diimplementasikan dengan menggunakan array yang berisi bit atau karakter untuk mewakili kromosom. Flow chart dari genetika algoritma dapat digambarkan sebagai berikut [13].
2
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
Menginitialisasi populasi
Evaluasi fitness
Solusi ditemukan ?
Reproduksi
Tidak
Seleksi
Ya
End
Gambar 1 Siklus Algoritma Genetika Komponen utama dalam algoritma genetika [12]: • Teknik penyandian • Prosedur inisialisasi • Fungsi evaluasi • Seleksi • Operator genetika • Penentuan parameter Proses untuk menggambarkan kesimpulan berdasarkan data yang ada disebut inferensi [16], proses menyimpulkan dari kebenaran lama ke kebenaran yang baru. Logika proposisi klasik hanya memiliki dua nilai kebenaran, benar dan salah, proses untuk menyimpulkan hasil lebih mudah dibandingkan dengan logika fuzzy dimana tidak hanya fokus pada proposisi saja tetapi juga pada nilai kebenaran. Sistem inferensi fuzzy merupakan suatu kerangka komputasi yang didasarkan pada teori himpunan fuzzy, aturan fuzzy bertentuk IF-THEN, dan penalaran fuzzy. Secara garis besar proses inferensi fuzzy dapat dilihat pada gambar 1.
Gambar 2 Proses Inferensi Fuzzy [Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
3
Sistem inferensi fuzzy menerima input berupa himpunan crips. Input ini kemudian dikirimkan ke basis pengetahuan yang berisi n aturan fuzzy dalam bentuk IF – THEN. Fire strengthakan dicari pada setiap aturan. Apabila jumlah aturan lebih dari satu, maka akan dilakukan agregasi dari semua aturan. Selanjutnya, pada hasil agregasi akan dilakukan defuzzifikasi untuk mendapatkan nilai crips sebagai output sistem [17]. 3.
Kerangka Teoritis Adjusment Parameter
Metode yang diusulkan
Objective
Measurement
Rule base
Jumlah populasi
Fuzzyfication
Jumlah generasi
Defuzzyfication
Inference system
Kinerja algoritma genetika meningkat
Susunan cakupan uji
Perbandingan rata-rata fietness algoritma genetika standart dengan algortima genetika berbasis fuzzy inference system
Algoritma Genetika Probabilitas crossover Probabilitas Mutasi Sikuli (Tester)
Software Yang diuji
Gambar 3 Kerangka Teoritis 2. METODE PENELITIAN 2.1 Jenis Penelitian Penelitian yang digunakan adalah Eksperimen dengan tujuan meningkatkan kinerja algoritma genetika dengan penerapan fuzzy inference system untuk penyusunan cakupan uji pada pengujian perangkat lunak metode blackbox. 2.2 Populasi dan Sampel Perancangan pengujian black-box yang akan dibahas sebagai studi kasus adalah sebuah aplikasi yang berfungsi untuk membandingkan 3 masukan yaitu a, b dan c. Adapun tampilan aplikasi tersebut adalah sebagai berikut: tersebut adalah sebagai berikut:
Gambar 4 Tampilan aplikasi yang akan diuji
4
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
Logic program yang ada pada aplikasi diatas sebagai berikut: private void comparation(byte a, byte b, byte c){ if (a>b){ if (a>c){ to.setText(byte.toString(a)); }else{ to.setText(byte.toString(c)); } }else{ if (b>c){ to.setText(byte.toString(b)); }else{ to.setText(byte.toString(c)); } } } Kode program 1 Function comparation
2.3 Metode Pengumpulan Data Pada tahap persiapan dan penelitian awal, pelaksanaan pengumpulan data menggunakan jenis data sekunder. Data sekunder dikumpulkan dari beberapa buku, jurnal ilmiah dan website. Pengumpulan data sekunder dilakukan berdasarkan pemahaman yang lebih lengkap mengenai masalah pengujian black-box, algoritma genetika untuk optimasidan fuzzy inference system. 2.4 Teknik Pengolahan dan Analisa Data 1. Analisis data Pengujian black-box hanya memfokuskan atau memperhatikan kepada faktor fungsionalitas [1] [3]. Perancangan pengujian yang harus dilakukan adalah bagai mana membuat kombinasi masukan agar dapat melewati kondisi yang bernilai “true” dan bernilia “false”. Pada kode program 1 masukan bertipe byte, dalam bahasa pemrograman java tipe data byte memiliki range dari -127 sampai dengan 128 sehingga ada kemungkinan untuk melakukan kombinasi sebanyak 255 * 3 atau 765. Sebuah nilai kombinasi yang tinggi untuk memastikan semua seleksi terlewati. 2.
Perancangan boundary value Perancangan boundary value untuk kode program 1 sebagai berikut: • 3 kombinasi bilangan bulat dengan range -127 sampai dengan 128 untuk menyatakan batas tengah atau sama dengan. • 3 kombinasi bilangan bulat dengan range -127 sampai dengan 128 untuk menyatakan batas bawah atau lebih kecil. • 3 kombinasi bilangan bulat dengan range -127 sampai dengan 128 untuk menyatakan batas atas atau lebih besar. • Dari 3 pernyataan diatas akan tersusun dalam satu set cakupan uji. Sebagai contoh: {5, -15, 20}, {16, 128, 128}, {-1, -15, 6}.
3.
Metode yang Diusulkan
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
5
Gambar 5 Model algortima gentika berbasis fuzzy inference system dalam penyusunan cakupan uji 3. HASIL DAN PEMBAHASAN 3.1 Hasil 1. Penyusunan cakupan uji dengan algoritma genetika berbasis fuzzy inference system
6
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
Gambar 6 Hasil penyusunan cakupan uji dengan algoritma genetika berbasis fuzzyinference system Gambar 6 merupakan hasil penyusunan cakupan uji menggunakan algoritma genetika berbasis fuzzy inference system pada running 1. Ukuran populasi: 30, jumlah generasi: 100, probabilitas crossover: 0.717, probabilitas mutation: 0.198 menghasilkan tiga cakupan uji terbaik dengan nilai fitness terbaik: 7.1315. Tiga cakupan uji terbaik yaitu: • Cakupan uji 1: {-124; 127; -123} • Cakupan uji 2: {100; 32; -82} • Cakupan uji 3: {111; 117; -76} Nilai-nilai dari tiga cakupan uji tersebut akan dijadikan data masukan dalam melakukan pengujian black-box. Berikutnya hasil sembilan kali running dengan parameter berbeda akan di tampilkan dalam bentuk tabulasi. Tabel 1 Hasil penyusunan cakupan uji terbaik dengan algoritma genetika berbasis fuzzy inference system No.
Nilai fietness terbaik
1
7.1315
2
6.0179
3
7.3590
4
7.0603
5
6.5682
6
6.8454
7
6.6517
8
5.7470
9
6.5214
Cakupan uji optimal
• • • • • • • • • • • • • • • • • • • • • • • • • • •
Cakupan uji 1: {-124; 127; -123} Cakupan uji 2: {100; 32; -82} Cakupan uji 3: {111; 117; -76} Cakupan uji 1: {126; -48; -110} Cakupan uji 2: {79; 78; 75} Cakupan uji 3: {-50; -92; -69} Cakupan uji 1: {98; -127; 76} Cakupan uji 2: {123; 113; -102} Cakupan uji 3: {-88; -31; 109} Cakupan uji 1: {119; -91; 114} Cakupan uji 2: {122; 114; -98} Cakupan uji 3: {-87; 106; 65} Cakupan uji 1: {86; 26; -127} Cakupan uji 2: {-105; 119; -9} Cakupan uji 3: {-114; -102; 24} Cakupan uji 1: {101; -97; 44} Cakupan uji 2: {-107; 105; 40} Cakupan uji 3: {-104; -99; 49} Cakupan uji 1: {-71; -34; 119} Cakupan uji 2: {108; -67; 74} Cakupan uji 3: {-27; 122; -104} Cakupan uji 1: {53; 109; -88} Cakupan uji 2: {71; 96; -93} Cakupan uji 3: {-79; 70; 54} Cakupan uji 1: {100; -118; 22} Cakupan uji 2: {117; 102; 111} Cakupan uji 3: {92; -56; -45}
2. Eksekusi cakupan uji dengan Sikuli Pada tabel 1 hasil penyusunan cakupan uji yang diujikan adalah cakupan uji yang memiliki nilai fitness tertinggi: 7.3590. Fitness tertinggi tersebut terjadi pada running ketiga dengan data susunan cakupan uji sebagai berikut:
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
7
No. Uji 1 2 3
Tabel 2 Hasil eksekusi susunan cakupan uji dengan Sikuli Keluaran Data masukan Keluaran aktual Keterangan seharusnya a= 98, b= -127, c= 76 98 98 Sesuai a= 123, b= 113, c= -102 123 123 Sesuai a= -88, b= -31, c= 109 109 109 Sesuai
Tabel 2 menunjukan hasil pengujian black-box dengan menggunakan Sikuli sebagai tool. Karena dengan tool yang digunakan adalah Sikuli maka proses pengujian pun berjalan secara otomatis. 3.2 Pembahasan Untuk mengetahui seberapa besar peningkatan kinerja algoritma genetika berbasis fuzzy inference system (GAFIS) dilakukan perbandingan hasil running algoritma genetika standart (GA) dengan algoritma genetika berbasis fuzzy inference system (GAFIS). Berikut hasil nilai fitness terbaik untuk sembilan kali running:
No. 1 2 3 4 5 6 7 8 9
Tabel 3 Perbandingan hasil fietness terbaik algoritma Nilai fietness terbaik Nilai fietness terbaik Algoritma genetika berbasisFuzzy inference Algoritma genetika standart(GA) system (GAFIS) 7.1315 5.7226 6.0179 4.7800 7.3590 6.1504 7.0603 5.1043 6.5682 5.9364 6.8454 6.2766 6.6517 6.2994 5.7470 5.5245 6.5214 4.8220 Rata-rata = 6.6558 Rata-rata = 5.6240
Dari tabel 3 dapat dilakukan perhitungan peningkatan nilai fietness terbaik pada algoritma genetika berbasis fuzzy inference system(GAFIS). Berikut perhitungannya: Peningkatan fietness terbaik
= ( (6.6558 – 5.6240)/5.6240) * 100% = 18.35%
Dari perhitungan diatas dapat disimpulkan bahwa peningkatan kinerja algoritma genetika dengan menerapkan fuzzy inference systempada penentuan parameter probabilitas crossover dan probabilitas mutation sebasar sekitar 18.35%. 4. Kesimpulan Dari hasil penelitian, dengan penerapan fuzzy inference systempada algoritma genetika, maka dapat diambil kesimpulan bahwa algoritma genetika berbasis fuzzy inference system (GAFIS) lebih optimaldibandingkan dengan algoritma genetika standar (GA) untuk penyusunan cakupan uji dalam pengujian black-box. Penerapan fuzzy inference system mampu meningkatkan nilai fietness terbaik sehingga terjadi peningkatan kinerja sekitar 18.35%. Berdasarkan hasil penelitian penerapan fuzzy inference system pada probabilitas crossover dan probabilitas mutation dapat meningkatkan kinerja algoritma genetika, namun masih banyak terdapat hal-hal yang mesti perlu peneliti sarankan bagi pengembangan sistem ini: 1. Dengan penerapan fuzzy inference system pada penentuan operator genetika selain pada probabilitas crossover dan probabilitas mutation kinerja algoritma genetika lebih meningkat. 2. Metode atau pemodelan yang telah diusulkan dapat dikembangkan dan dikemas menjadi sebuah tool/ atau perangkat lunak tersendiri, sehingga memudahkan penggunaan dalam pengujiaan perangkat lunak yang lebih nyata secara black-box.
8
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
5. Daftar Pustaka [1] Agarwal, B. B.; Tayal, S.P.; Gupta, M., Software Engineering & Testing. Sudbury, Massachusetts: Johanes and Bartlett Publishers, 2010. [2] Bertolino, Antonia, "Software Testing Research Achievements Challenges Dreams," Future of Software Engineering, pp. 85-103, June 2007. [3] Hendraputra, Ade; Pratondo, Agus; wijaya, Dedy Rahman; dkk;, Jaminan Mutu Sistem Informasi, Guntur Prabawa Kusuma, Ed. Bandung, Indonesia: Politeknik Telkom, 2009. [4] Bau, Jason; Bursztein, Elie; Gupta, Divij; Mitchell, John, "State of the Art Automated Black-BoxWeb Application Vulnerability," Security and Privacy (SP), pp. 332 - 345, July 2010. [5] Dick, S.; Kandel, A., Computational Intelligence In Softeware Quality Assurance. 5 Toh Tuck Link, Singapore: World Scientific Publishing, 2005. [6] Desiani, Anita; Arhami, Muhammad, Konsep Kecerdasan Buatan, Dhewiberta Harjono, Ed. Yogyakarta, Indonesia: CV. Andi Offset, 2006. [7] Briand, Lionel C.; Labiche, Yvan; Bawar, Zaheer, "Using Machine Learning to Refine Black-Box Test Specifications and Test Suites," Quality Software, 2008. QSIC '08, pp. 135 - 144, August 2008. [8] Rauf, Abdul; Anwa, Sajid; Jaffer, M. Arfan; Shahid, Arshad Ali, "Automated GUI Test Coverage Analysis using GA," Information Technology: New Generations (ITNG), pp. 1057 - 1062, July 2010. [9] Chang, Tsung-Hsiang; Yeh, Tom; Miller, Robert C., "GUI Testing Using Computer Vision," in Proceedings of the 28th international conference on Human factors in computing systems , April 2010. [10] Sikuli Doc Team. (2012) Project SIKULI. [Online]. http://sikuli.org/ [11] Mitchell, Melanie, An Introduction to Genetic Algorithm. London, England: Massachusetts Institute of Technology, 1999. [12] Kusumadewi, Sri, Artificial Intelligence. Yogyakarta, Indonesia: Graha Ilmu, 2003. [13] Nedjah, Nadia; Abraham, Ajith; Mourelle, Luiza de Macedo, Genetic Systems Programming, Prof. Janusz Kacprzyk, Ed. Berlin Heidelberg, New York: Springer, 2006. [14] Kusumadewi, Sri; Purnomo, Hari, Aplikasi Logika Fuzzy untuk Pendukung Keputusan. Yogyakarta: Graha Ilmu, 2010. [15] Zimmerman, H.J., Fuzzy Sets Theory and Its Applications.: Kluwer Publishing Company, 1985. [16] Siler, William; Buckley, James J., Fuzzy Expert System and Fuzzy Reasoning. New Jersey, Hoboken: Jhon Willey and Son, Inc., 2005. [17] Sinavandam, S.N., et.al, Introduction to Fuzzy Logic Using MATLAB. Berlin: Springler-verlag, 2007. [18] Turban, Efraim; Aronson, Jay E.; Liang, Ting Peng, Decision Support System and Intelligent Systems, 2nd ed. Yogyakarta, Indonesia: Andi, 2005. [19] Suyanto, Algoritma Genetikan dalam Matlab. Yogyakarto, Indonesia: Andi Offsite, 2005.
[Jurnal Ilmiah ICTech Vol.7 No.2 Mei 2012]
9