Sabtu, 19 November 2011

contoh Aplikasi Metode Mamdani dan Tsukamoto


1. PENENTUAN JUMLAH PRODUKSI DENGAN APLIKASI METODE FUZZY – MAMDANI
Metode Mamdani sering juga dikenal dengan nama Metode Max-Min. Metode ini diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Untuk memperoleh output, diperlukan 4 tahapan yaitu :
1. Pembentukan himpunan fuzzy;
pada metoda mamdani, baik variabel input maupun variabel output dibagi menjadi satu atau lebih himpunan fuzzy.
2. Aplikasi fungsi impliksi (aturan);
pada metode mamdani, fungsi implikasi yang digunakan adalah MIN
3. Komponen aturan;
Pada tahapan ini sistem terdiri dari beberapa aturan, maka inferensi diperoleh dari kumpulan dan korelasi antar aturan. Ada 3 metode yang digunakan dalam melakukan inferensi sistem fuzzy, yaitu : max, additive dan probabilistik OR.
Pada metode max, solusi himpunan fuzzy diperoleh dengan cara mengambil nilai maksimum aturan, kemudian menggunakannya untuk memodifikasi daerah fuzzy, dan mengaplikasikanya ke output dengan menggunakan operator OR (union). Secara umum dapat ditulis
µdf (x­i) max (µdf(xi,) µkf(x­i))

Pengolahan Data
Pengolahan data dilakukan dengan menentukan variabel dan semesta
pembicaraan, dilanjutkan dengan membentuk himpunan fuzzy. Penentuan variabel dan
semesta pembicaraan dari hasil pengambilan data dapat diperoleh pada tabel 2. Sedang
himpunan fuzzy ditampilkan pada tabel 3.
Langkah selanjutnya adalah membuat fungsi keanggotaan untuk tiap variabel
permintaan, persediaan dan jumlah produksi.
Fungsi keanggotaan variabel persediaan, meliputi kurva bentuk S penyusutan
untuk himpunan sedikit dan kurva bentuk S pertumbuhan untuk himpunan banyak.
Sedangkan kurva PI untuk himpunan sedang. Hal ini dapat dilihat pada gambar 1.
Fungsi keanggotaan variabel permintaan, meliputi kurva bentuk S penyusutan
untuk himpunan sedikit dan kurva bentuk S pertumbuhan untuk himpunan banyak.
Sedangkan kurva PI untuk himpunan sedang. Hal ini dapat dilihat pada gambar 2.
Fungsi keanggotaan variabel jumlah produksi, meliputi kurva bentuk S
penyusutan untuk himpunan sedikit dan kurva bentuk S pertumbuhan untuk himpunan
banyak. Sedangkan kurva PI untuk himpunan sedang. Hal ini dapat dilihat pada
gambar 3 



Setelah penentuan fungsi keanggotaan variabel, maka dilakukan pembentukan
aturan logika fuzzy. Berdasarkan data – data yang ada, dapat dibentuk aturan – aturan
sebagai berikut :
1. if (Permintaan is Sedikit) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedikit)
2. if (Permintaan is Sedikit) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedang)
3. if (Permintaan is Sedikit) and (Persediaan is Sedang) then (Jumlah Produksi is Sedikit)
5. if (Permintaan is Sedikit) and (Persediaan is Sedang) then (Jumlah Produksi is Banyak)
6. if (Permintaan is Sedikit) and (Persediaan is Banyak) then (Jumlah Produksi is Sedikit)
7. if (Permintaan is Sedikit) and (Persediaan is Banyak) then (Jumlah Produksi is Sedang)
8. if (Permintaan is Sedang) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedikit)
9. if (Permintaan is Sedang) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedang)
10. if (Permintaan is Sedang) and (Persediaan is Sedikit) then (Jumlah Produksi isBanyak)
11. if (Permintaan is Sedang) and (Persediaan is Sedang) then (Jumlah Produksi isSedikit)
12. if (Permintaan is Sedang) and (Persediaan is Sedang) then (Jumlah Produksi isSedang)
13. if (Permintaan is Sedang) and (Persediaan is Sedang) then (Jumlah Produksi isBanyak)
14. if (Permintaan is Sedang) and (Persediaan is Banyak) then (Jumlah Produksi isSedikit)
15. if (Permintaan is Sedang) and (Persediaan is Banyak) then (Jumlah Produksi isSedang)
16. if (Permintaan is Sedang) and (Persediaan is Banyak) then (Jumlah Produksi isBanyak)
17. if (Permintaan is Banyak) and (Persediaan is Sedikit) then (Jumlah Produksi isSedang)
18. if (Permintaan is Banyak) and (Persediaan is Sedikit) then (Jumlah Produksi isBanyak)
19. if (Permintaan is Banyak) and (Persediaan is Sedang) then (Jumlah Produksi isSedang)
20. if (Permintaan is Banyak) and (Persediaan is Sedang) then (Jumlah Produksi isSedang)
21. if (Permintaan is Banyak) and (Persediaan is Banyak) then (Jumlah Produksi isSedang)
22. if (Permintaan is Banyak) and (Persediaan is Banyak) then (Jumlah Produksi isBanyak)
Langkah terakhir adalah penegasan (defuzzyfikasi). Penegasan dilakukan dengan bantuan software matlab 6.1 toolbox fuzzy. Hasil pengujian dengan metode centroid dengan input jumlah permintaan sebesar 21.945 unit dan jumlah persediaan sebesar1.824 unit menghasilkan output jumlah produksi sebesar 20.300 unit. Penalaran fuzzy
dengan menggunakan metode centroid digambarkan seperti pada gambar 4.
 2. MENENTUKAN HARGA MOBIL BEKAS TOYOTA AVANSA MENGGUNAKAN METODE     TSUKAMOTO

Pada metode penarikan kesimpulan samar Tsukamoto, setiap konsekuen pada aturan yang berbentuk IF-THEN harus direpresentasikan dengan suatu himpunan samar dengan fungsi keanggotaan yang monoton. Sebagai hasilnya, output hasil penarikan kesimpulan (inference) dari tiap-tiap aturan diberikan secara tegas (cnsp) berdasarkan α-predikat (fire strength). Hasil akhir diperoleh dengan menggunakan rata-rata berbobot (weight average).

Implementasi
Harga Mobil Toyota Avanza 1,3 G M/T Baru April 2011(dalam jutaan)
 
μBaruMurah = (152 – x) / 3
μBaruMahal = (x – 149) / 3

Kondisi Mobil Second (dalam persen)

μSedang = (95 – x) / 15
μBagus = (x – 80) / 15

Harga Mobil Toyota Avanza 1,3 G M/T Second April 2011 (dalam jutaan)

 
μSecondMurah = (140 – x) / 10
μSecondMahal = (x – 130) / 10
Rule / Aturan
 IF HargaBaru mahal AND Kondisi bagus THEN HargaSecond mahal
 IF HargaBaru mahal AND Kondisi sedang THEN HargaSecond mahal
 IF HargaBaru murah AND Kondisi bagus THEN HargaSecond Murah
 IF HargaBaru murah AND Kondisi sedang THEN HargaSecond Murah

Aplikasi yang dibangun
Masukkan data harga beli baru dan kondisi seperti yang diminta!





Selasa, 25 Oktober 2011

Contoh Aplikasi SvM yang berbasis Image

1. Aplikasi Pendeteksi Sidik Jari
Teknik klasifikasi atau classifier adalah pendekatan sistematik untuk membangun model klasifikasi dari input data set (Tan et al. 2006). Beberapa Classifier yang sering digunakan dalam proses klasifikasi sidik jari adalah sebagai berikut (Maltoni & Maio 2009):

1 Rule Based Approach
2. Syntactic Approaches
3. Structural Approaches
4. Statistical
5. Neural Network
6. Multiple Classifier
7. Support Vector Machine (SVM

Support Vector Machine (SVM)
Support Vector Machine (SVM) bertujuan untuk menemukan fungsi pemisah (classifier/ hyperplane) terbaik untuk memisahkan dua buah class pada input space. Hyperplane terbaik antara kedua class dapat ditemukan dengan mengukur margin hyperplane tersebut dan mencari titik maksimalnya. Hyperplane dalam ruang berdimensi d adalah affinesubspace berdimensi d-1 yang membagi ruang vector tersebut ke dalam dua bagian yang masing-masing berkorespondensi pada class yang berbeda (Cristianini dan Taylor, 2000). Margin adalah jarak antara hyperplane dengan pattern terdekat dari masing-masing class. Pattern yang paling dekat disebut sebagai support vector.
Dua kondisi yang dapat diselesaikan oleh SVM yaitu kondisi yang dapat dipisahkan secara linear (linearly separable data) dan kondisi yang tidak dapat dipisahkan secara linear.
Linearly Separable Data








Gambar 3 SVM berusaha menemukan hyperplane terbaik yang memisahkan kedua class -1 dan +1.
Linearly separable data merupakan data yang dapat dipisahkan secara linear. Misalkan {x1,…,xn} adalah dataset dan adalah label kelas dari data xi. Pada Gambar 3 garis tebal menunjukkan hyperplane yang terbaik, yaitu yang terletak tepat pada tengah-tengah kedua class. Titik yang berada dalam lingkaran adalah support vector. Usaha untuk mencari lokasi hyperplane ini merupakan inti dari proses pembelajaran (training) pada SVM.
Penentuan bidang pembatas terbaik dapat dirumuskan seperti persamaan 1 (Osuna et al. 1997):






α = adalah vektor non-negatif dari koesifien Lagrange. Dengan meminimumkan L terhadap w dan b, maka diperoleh persamaan 3 dan 4. 








Dengan demikian, dapat diperoleh nilai αi yang nantinya digunakan untuk menemukan w. Terdapat αi untuk setiap data pelatihan. Data pelatihan yang memiliki nilai αi ≥ 0 adalah support vector sedangkan sisanya memiliki nilai αi = 0. Dengan demikian, fungsi keputusan yang dihasilkan hanya dipengaruhi oleh support vector. 

Kelas Target Sidik Jari
Aturan klasifikasi  sidik jari  pertama kali diperkenalkan oleh Purkinje pada tahun 1823
yang mengklasifikasikan sidik jari ke dalam sembilan kategori (transverse curve,  central
longitudinal stria, oblique stripe, oblique loop, almond whorl, spiral whorl, ellipse, circle, dan
double  whorl) berdasarkan konfigurasi  ridge. Penelitian  berikutnya dilakukan oleh Francis
Galton pada tahun 1892  yang membagi sidik jari ke dalam tiga kelas utama (arch,  loop dan
whorl). Selanjutnya setiap kelas utama tersebut dibagi menjadi subkelas.  Sepuluh tahun
kemudian Edward Henry memperbaiki sistem klasifikasi Francis Galton dengan
menambahkan jumlah kelas. Klasifikasi Galton-Henry ini membagi sidik jari ke dalam
lima kelas yaitu:  arch,  tented arch,  left loop, right loop, dan whorl  (Gambar  2). Klasifikasi Galton-Henry inilah yang banyak digunakan di beberapa negara (Maltoni & Maio 2009).







Gambar.1 Kelas target sidik jari.

2. Aplikasi Pengenalan wajah
Detektor Wajah
Bagian detektor wajah menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakan untuk training. Bobot penghubung yang digunakan diambil dari bobot terakhir yang
dihasilkan pada proses training. Hasil deteksi akan diputuskan sebagai wajah jika output dari JST lebih dari 0, dan diputuskan sebagai non-wajah jika output JST kurang dari atau sama dengan 0.

Ekstraksi Subcitra
Posisi wajah bisa berada di mana saja pada citra yang akan dideteksi. Untuk itu digunakan window berukuran 20x20 pixel yang akan digeser melalui seluruh daerah citra. Daerah citra yang
dilewati oleh window tersebut akan diperiksa satu persatu apakah ada wajah atau tidak di area tersebut. Untuk mengantisipasi ukuran wajah yang bervariasi di dalam citra yang dideteksi, citra
diperkecil secara bertahap dengan skalaperbandingan 1:1,2 sebagaimana dilakukan pada
[Rowley, 1998]. Pada setiap ukuran citra yang diperkecil, window 20x20 pixel akan digeser melalui seluruh area citra.

Preprocessing
Sebelum digunakan sebagai training data set, citra akan melalui tahap-tahap preprocessing berikut:
· Histogram Equalization, untuk memperbaiki kontras citra.
· Masking, yaitu menghilangkan bagian sudutsudut citra untuk mengurangi variasi citra sehingga memperkecil dimensi data.
· Normalisasi, yaitu mengkonversi nilai intensitas grayscale citra sehingga memiliki range antara –1sampai dengan 1.










Merging
Pada saat dilakukan deteksi wajah pada citra, biasanya sebuah wajah akan terdeteksi pada
beberapa lokasi yang berdekatan. Lokasi-lokasi ini disebut dengan kandidat wajah. Untuk itu perlu dilakukan proses penggabungan (merging), yaitu menyatukan lokasi kandidat-kandidat wajah yang berdekatan.










Gambar 3. Hasil deteksi sebelum dan sesudah proses penggabungan (merging)
·data set yang digunakan untuk training tidaksama
· jumlah data yang digunakan untuk training tidakSama



3. APLIKASI IDENTIFIKASI KANKER PAYUDARA
 
Sistem ini menawarkan bantuan kepada dokter dalam mendiagnosis kanker payudara, dan memberikan informasi tambahan kepada dokter. Karena dalam mengidentifikasi 
kanker payudara seorang dokter adakalanya membutuhkan beberapa citra  mammogram sebagai masukan untuk  memberikan diagnosisnya.Sistem ini dibuat dengan menggabungkan klasifikasi dan sistem temu kembali citra.
Klasifikasi yang digunakan adalah SVM dan Adaptive SVM. Dalam sistem ini juga diperlukan peran aktif pengguna untuk melakukan diagnosis.  Penggunaan dari Adaptive SVM ini tidak terlepas dari kekurangan SVM. Walaupun SVM dikatakan sebuah klasifikasi yang bagus, namun dalam aplikasinya SVM mempunyai kekurangan terutama dalam masalah data pembelajaran. Data pembelajaran yang digunakan dalam
identifikasi kanker payudara jumlahnya juga terbatas. Terbatasnya jumlah data pembelajaran tersebut akhirnya SVM tidak bisa menggambarkan permasalahan yang sebenarnya. Sehingga ketika pada waktu ujicoba jika diterapkan dengan data lain tingkat akurasinya tidak akan
bagus.  Berangkat dari permasalahan inilah maka perlu dibuatkan sebuah sistem yang mampu mengatasi keterbatasan data. Penggunaan Adaptive SVM dengan menggunakan hasil dari sistem temu kembali citra ini dapat digunakan sebagai alternatif dari permasalahan data yang ada. Adaptive SVM menyesuaikan data pembelajaran berdasarkan data yang akan didiagnosa. Sistem temu kembali citra penggunaannya selain memberikan  informasi tentang  mammogram yang mempunyai kemiripan dengan  mammogram yang didiagnosis kepada dokter, juga digunakan untuk memberikan informasi kepada sistem tentang data mana saja yang dapat digunakan dan sesuai untuk data pembelajaran. Secara keseluruhan sistem akan mengumpulkan data pembelajaran. Kemudian dilakukan sebuah pembelajaran klasifikasi.  Setelah proses pembelajaran selesai sistem dapat digunakan untuk membantu dokter untuk mendiagnosis
kanker payudara. Proses diagnosisnya dengan menginputkan sebuah citra  mammogram kemudian dokter sebagai pengguna akan diberikan informasi berupa sejumlah citra
mammogram yang mempunyai persamaan kasus dengan mammogram yang akan didiagnosis. Dengan hasil pencarian citra yang mirip tersebut diharapkan memberikan gambaran terhadap  mammogram dari hasil yang akan didiagnosis. Proses selanjutnya pengguna akan memasukan jumlah mammogram hasil pencarian yang akan dilibatkan dalam pembelajaran Adaptive SVM. Dilangkah inilah proses perbaikan  data pembelajaran terjadi yaitu dengan
melibatkan citra-citra yang mirip dengan citra yang diujicobakan. Setelah proses pembelajaran selesai sistem akan memberikan bantuan diagnosis terhadap mammogram yang dimasukan.  Diagnosis berupa keputusan apakah citra mammogram yang didiagnosis terkena kanker payudara atau tidak. Selanjutnya untuk diagnosis akhir tetap akan diserahkan kepada dokter sebagai pengguna, karena sistem sifatnya adalah membantu dalam mendiagnosis.







Gambar 5. Aplikasi Sistem Temu Kembali Citra untuk mendapatkan citra mammogram didatabase yang sama dengan citra mammogram ujicoba


Contoh Aplkasi Logika Fuzzy

Contoh Aplikasi Menentukan tingkat kecerdasan seorang mahasiswa berdasarkan criteria Nilai IPK dan Nilai rata-rata.


  • asumsikan fuzzification dari Nilai IPK sbb :
jelek sekali : <>
jelek : 2.00 – 2.50
cukup : 2.50 – 3.00
baik : 3.00 – 3.50
baik sekali : > 3.50

  • asumsikan fuzzification dari Nilai rata-rata NEM SMU sbb :
jelek sekali : <>
jelek : 4.00 – 5.50
cukup : 5.50 – 7.00
baik : 7.00 – 8.50
baik sekali : > 8.50

  • rumuskan fuzzification tingkat kecerdasan kedalam 5 kategori sbb :
§  excellent (E)
§  very good (VG)
§  good (G)
§  fair (F)
§  poor (P)

  • Rules of fuzzy table
Nilai rata-rata NEM SMU

Nilai IPK

Jelek sekali
Jelek
Cukup
Baik
Baik Sekali

Jelek sekali
P
P
F
F
G


Jelek
P
F
F
G
G

Cukup
F
F
G
VG
VG

Baik
F
G
VG
VG
E

Baik sekali
G
G
VG
E
E



  • diambil sampel seorang mahasiswa yang mempunyai :
Nilai rata-rata NEM SMU : 8.25
Nilai IPK : 3.15

berdasarkan criteria di atas, data disubsitusikan ke dalam tabel sehingga :

Nilai rata-rata NEM SMU

Nilai IPK

Jelek sekali
Jelek
Cukup
Baik
Baik Sekali

Jelek sekali
P
P
F
F
G


Jelek
P
F
F
G
G

Cukup
F
F
G
VG
VG

Baik
F
G
VG
8.25 / 3.15
E

Baik sekali
G
G
VG
E
E



Dengan mencocokkan posisi kedua tabel dapat disimpulkan bahwa mahasiswa tersebut Very Good (VG)

 Contoh Aplikasi Sistem Pengembangan Kendali Fuzzy Logic Berbasis Mikrokontroler Keluarga Mcs51 (Petrafuz)

Penggunaan teknik kendali Fuzzy Logic telah cukup meluas pada berbagai aplikasi
mulai dari consummer  electronics, robotics, kendali industri, dan lain- lain.
Implementasi kendali Fuzzy biasanya dilakukan oleh multi -purpose mikropro-
sesor, mikrokontroler maupun prosesor khusus berupa Fuzzy Logic Processor.
Biasanya dibutuhkan alat atau software bantu untuk mengembangkan aplikasi fuzzy
mulai dari tahap perancangan, evaluasi, implementasi dan penalaan (tuning).
  Sistem PetraFuz terdiri dari 2 bagian yaitu sistem software yang berjalan pada 
PC dan sistem target perangkat keras berupa sistem mikrokontroler MCS51. Blok
diagram sistem PetraFuz seperti pada gambar 1.













Proses perancangan, evaluasi, pembentukan program assembly dan proses
downloading MCS51 machine code menuju sistem target dilakukan oleh program yang berjalan pada PC yaitu PetraFuz51 software. Sedangkan   sistem target melakukan proses fuzzy logic yang berinteraksi dengan perangkat I/O ke dunia luar. Proses fuzzy logic yang dilakukan oleh sistem targetkendali, masing-masing input fuzzy logic juga dapat diamati melalui layar monitor. Secara umum kemampuan sistem PetraFuz adalah:
·   Max. 5 Input
·   Max. 3 Output
·   8 Membership Functions per Input
·   8 Membership Functions per Output
·   1024 if- then Rule
·   15 Characters per Name (Input, Output, Member).
·   4 Points per Input Member. (Trapezoid MF)
·   1 Point per Output Member. (Singleton MF)

  CONTOH PENGGUNAAN PETRAFUZ
  
  Program PetraFuz51 meyediakan be-berapa fasilitas yaitu perancangan input dan
output membership function (MF), perancangan fuzzy if- then rules, fuzzy logic
evaluator, control surface,  pembentukan assembly code, downloader ke sistem target
dan data acquisition. Secara umum penggunaan PetraFuz dapat dibagi atas
tahap- tahap berikut yaitu tahap pertama mendisain fuzzy inference system yang
meliputi perancangan input dan output fuzzy beserta membership functionnya dan
perancangan fuzzy if- then rules. Tahap kedua pembentukan database (yang terdiri
dari MF dan if- then rules) dari hasil perancangan tahap pertama dalam bahasa
assembly MCS51 yang akan digabungkan dengan user program. Adapun user program yang dimaksud adalah program yang dibuat
user untuk akses data dari/ke I/O interface baik analog maupun digital sesuai dengan
sistem kendali yang dirancang.  Tahap ketiga adalah user program dicompile
terlebih dahulu untuk menghasilkan machine code, baru kemudian machine code tersebut didownload ke sistem target mikrokontroler MCS51.
 Untuk memberi gambaran yang lebih jelas diambil contoh penggunaan PetraFuz
pada sistem kendali temperatur udara yang menggunakan bola lampu sebagai pemanas dan  kipas sebagai pedingin. Input sistem fuzzy disini adalah Error dan Delta_Error temperatur udara terhadap Setting Point yang diinginkan.   Input Error adalah selisih antara Setting Point dengan Present Value (Error= SP  - PV)sedangkan Delta_Error adalah kecepatan perubahan error yang terjadi,  Delta_Error = Error (n) -  Error (n-1) 
  Pertama dilakukan pengisian spesifikasi  dari crisp input dan crisp output yaitunama, satuan, nilai minimum, nilai  maksimum dan jumlah label membership function. Tampilan menu dapat dilihat pada gambar 2 dan gambar 3.

 

























Dalam  sistem kendali temperatur ini sebagai crisp input adalah Error dan
Delta_Error sedangkan crisp output adalah Lampu dan Kipas. Dari gambar 2 dan 3
dapat dilihat bahwa input Error mempunyai 5 label membership function dengan nilai minimum  –255 dan nilai maksimum 255 dan output lampu mempunyai 5 label membership function dengan nilai minimum  –2 dan nilai maksimum 2. Input Delta_Error mempunyai 5 label  dengan nilai minimum  –255 dan nilai maksimum 255. Output kipas mempunyai 2 fuzzy label dengan nilai minimum –1 dan nilai maksimum 1.