ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
FUZZY LOGIC
A. Definisi Fuzzy Logic

     Fuzzy logic pertama kali dikenalkan kepada publik oleh Lotfi Zadeh, seorang profesor
di University of California di Berkeley. Fuzzy logic digunakan untuk menyatakan hukum
operasional dari suatu sistem dengan ungkapan bahasa, bukan dengan persamaan matematis.

      Banyak sistem yang terlalu kompleks untuk dimodelkan secara akurat, meskipun
dengan persamaan matematis yang kompleks. Dalam kasus seperti itu, ungkapan bahasa yang
digunakan dalam Fuzzy logic dapat membantu mendefinisikan karakteristik operasional
sistem dengan lebih baik.




       Ungkapan bahasa untuk karakteristik sistem biasanya dinyatakan dalam bentuk
implikasi logika, misalnya aturan Jika – Maka. Pada teori himpunan klasik yang disebut
juga dengan himpunan crisp (himpunan tegas) hanya dikenal dua kemungkinan dalam fungsi
keanggotaannya, yaitu kemungkinan termasuk keanggotaan himpunan (logika 1) atau
kemungkinan berada di luar keanggotaannya (logika 0). Namun dalam teori himpunan fuzzy
tidak hanya memiliki dua kemungkinan dalam menentukan sifat keanggotaannya tetapi
memiliki derajat kenaggotaan yang nilainya antara 0 dan 1. fungsi yang menetapkan nilai ini
dinamakan fungsi keanggotaan yang disertakan dalam himpunan fuzzy.
B. Aplikasi Logika Fuzzy dalam kehidupan sehari-hari
 1. Logika Fuzzy untuk Sistem Pengaturan Suhu Ruangan

         Untuk menentukan suhu dalam suatu ruangan, kita dapat menentukannya
menggunakan Logika Fuzzy. Aturan dalam kontrol, mudah didefinisikan menggunakan kata-
kata misalkan :

-       jika suhu dalam suatu ruangan dingin maka naikkan suhu penghangat.

-       jika suhu dalam suatu ruangan panas maka naikkan suhu pendingin.

    2. Logika Fuzzy untuk Sistem Pengaturan Lampu Lalulintas

        Logika fuzzy dalam pengaturan lampu lalulintas amat diperlukan untuk memperlancar
arus lalulintas. Dengan adanya system yang bekerja secara otomatis diharapkan angka
kecelakaan yang disebabkan oleh masalah lampu lalulintas dapat berkurang. Selain itu
dengan adanya lampu lalulintas yang otomatis tentu saja akan mengurangi tugas polisi
lalulintas, sehingga mereka bisa mengerjakan hal-hal lain yang belum teratasi.

         Sedangkan sebagai dasar pengendalian dari sistem yang dijalankan, digunakan
algoritma logika fuzzy. Untuk memudahkan pengendalian lampu lalulintas, ada beberapa
istilah yang digunakan dalam pengendaliannya antara lain :

Untuk kepadatan jumlah kendaraan adalah :

-       Tidak Padat (TP),

-       Kurang Padat (KP),

-       Cukup Padat (CP),

-       Padat (P) dan

-       Sangat Padat (SP).

Sedangkan untuk lama nyala lampu adalah :

-       Cepat (C),

-       Agak Cepat (AC),

-       Sedang (S),

-       Agak Lama (AL) dan

-       Lama (L).
Jelas istilah-istilah tersebut dapat menimbulkan makna ganda (ambiguity) dalam
pengertiannya. Logika Fuzzy dapat mengubah makna ganda tersebut ke dalam model
matematis sehingga dapat diproses lebih lanjut untuk dapat diterapkan dalam sistem kendali.

      Untuk menyelesaikan masalah tersebut digunakan teori himpunan Fuzzy, logika bahasa
dapat diwakili oleh sebuah daerah yang mempunyai jangkauan tertentu yang menunjukkan
derajat keanggotaannya (fungsi keanggotaan). Untuk kasus disini, sebut saja derajat
keanggotaan itu adalah u(x) untuk x adalah jumlah kendaraan.

C. Contoh Program Fuzzy Logic

Pemrograman dengan bahasa Assembly
      Setelah kita menemukan rumus untuk normalisasi dan denormalisasi, maka program
assembly dapat dibuat. Jika kita ingin membuat suatu fuzzy system untuk aplikasi yang lain,
tidak perlu harus sama dengan program yang telah ada, tetapi yang perlu diketahui sebelum
membuat suatu fuzzy sistem adalah bagaimana cara untuk menormalisasikan input dan
mendenormalisasikan output-nya sebelum data dapat diolah. Hal ini dilakukan agar nilai-nilai
tersebut dapat diterima oleh DT-51 PetraFuz.
      Routine fuzzify dari PetraFuz terletak di alamat 0900h, untuk menjalankannya kitaa
harus menggunakan perintah LCALL 0900h. Berikut ini adalah contoh format yang
digunakan dalam menggunakan DT-51 PetraFuz.

                                    Fuzzify EQU 0900H
                                   Current_ins EQU 0BH
                                   Cog_Outs EQU 0DH
Keterangan:
- Fuzzify : Routine PetraFuz
- Current_ins : Crisp Input PetraFuz
- Cog_Outs : Crisp Output PetraFuz

Jika kita mau memakai internal RAM maka kita harus memakai dengan alamat minimal
063H. Karena 08H – 62H digunakan oleh routine PetraFuz Engine.
Contoh program perhitungan error:

MOV A, SP ; memasukkan nilai SP (kecepatan yang diminta)
MOV R0, PV ; memasukkan nilai PV (kecepatan sekarang)
SUBB A, R0
MOV ERROR, A

Contoh program perhitungan dError:
MOV A, ERROR ; Error(n)
MOV R0, ERROR-1 ; Error(n-1)
SUBB A, R0
MOV DERROR, A

Di dalam aplikasi ini yang dinormalisasikan adalah hasil dari Error dan dErrror (bukan Error
dan dError), setelah itu baru dimasukkan sebagai input ke DT-51 PetraFuz. Nilai Error yang
sesungguhnya harus disimpan ke dalam suatu register, karena Error yang belum dinormalisasi
akan digunakan dalam perhitungan denormalisasi yaitu untuk nilai Error(n-1).
Contoh program untuk memasukkan data Error dan dError ke dalam DT-51 PetraFuz, setelah
itu memanggil prosedur Fuzzify dan melihat hasilnya di register accumulator.
MOV CURRENT_INS,ERROR
MOV CURRENT_INS+1,DERROR
LCALL FUZIFY
MOV A,COG_OUTS

Hasil dari register accumulator di atas adalah nilai crisp output dan nilai tersebut harus
didenormalisasikan. Contoh di atas bukanlah contoh program secara khusus melainkan
contoh program secara garis besar. Hal ini dikarenakan tidak adanya program untuk
normalisasi dan denormalisasi. Sebelum nilai crisp input dimasukkan ke dalam DT-51
PetraFuz, nilainya harus dinormalisasikan terlebih dahulu. Nilai crisp output yang telah
diperoleh di register accumulator pada contoh di atas juga belum didenormalisasikan.
Di dalam pembuatan suatu program assembly, kalau bisa hindari pembuatan program
aritmatika yang cukup kompleks, misalnya perkalian atau pembagian 16 x 16 bit. Hal ini
dilakukan agar proses fuzzifikasi tidak memakan banyak waktu.
Ini adalah contoh pemrograman aplikasi pengaturan kecepatan motor DC dengan sistem
Fuzzy.

Proses kerjanya adalah sebagai berikut:
1. Pertama kali dilakukan proses inisialisasi de KITS SPC DC Motor dan komunikasi serial.
2. Terima data serial dari PC dan tunggu sampai karakter J dikirimkan. Lalu ambil nilai SP
   Low Byte.
3. Terima data serial lagi dari PC dan tunggu sampai karakter K dikirimkan, lalu ambil nilai
   SP High Byte.
4. Setelah itu baca nilai RPM sekarang dan kirimkan ke PC.
5. Hitung nilai Error dan dError, tetapi jangan lupa untuk menormalisasikan nilai tersebut.
6. Setelah normalisasi dilakukan maka masukkan kedua nilai yaitu Error dan dError ke dalam
   DT-51 PetraFuz.
7. Panggil prosedur fuzzify, lalu ambil hasilnya.
8. Setelah hasil didapatkan, maka hasil itu harus didenormalisasi sehingga akan muncul nilai
   crisp output yang sebenarnya.
9. Nilai crisp output kita masukkan sebagai nilai PWM untuk mengatur putaran motor DC
   tersebut. Ulangi langkah 4 - 9 sampai nilai RPM yang dinginkan tercapai.

More Related Content

Fuzzy logic

  • 1. FUZZY LOGIC A. Definisi Fuzzy Logic Fuzzy logic pertama kali dikenalkan kepada publik oleh Lotfi Zadeh, seorang profesor di University of California di Berkeley. Fuzzy logic digunakan untuk menyatakan hukum operasional dari suatu sistem dengan ungkapan bahasa, bukan dengan persamaan matematis. Banyak sistem yang terlalu kompleks untuk dimodelkan secara akurat, meskipun dengan persamaan matematis yang kompleks. Dalam kasus seperti itu, ungkapan bahasa yang digunakan dalam Fuzzy logic dapat membantu mendefinisikan karakteristik operasional sistem dengan lebih baik. Ungkapan bahasa untuk karakteristik sistem biasanya dinyatakan dalam bentuk implikasi logika, misalnya aturan Jika – Maka. Pada teori himpunan klasik yang disebut juga dengan himpunan crisp (himpunan tegas) hanya dikenal dua kemungkinan dalam fungsi keanggotaannya, yaitu kemungkinan termasuk keanggotaan himpunan (logika 1) atau kemungkinan berada di luar keanggotaannya (logika 0). Namun dalam teori himpunan fuzzy tidak hanya memiliki dua kemungkinan dalam menentukan sifat keanggotaannya tetapi memiliki derajat kenaggotaan yang nilainya antara 0 dan 1. fungsi yang menetapkan nilai ini dinamakan fungsi keanggotaan yang disertakan dalam himpunan fuzzy.
  • 2. B. Aplikasi Logika Fuzzy dalam kehidupan sehari-hari 1. Logika Fuzzy untuk Sistem Pengaturan Suhu Ruangan Untuk menentukan suhu dalam suatu ruangan, kita dapat menentukannya menggunakan Logika Fuzzy. Aturan dalam kontrol, mudah didefinisikan menggunakan kata- kata misalkan : - jika suhu dalam suatu ruangan dingin maka naikkan suhu penghangat. - jika suhu dalam suatu ruangan panas maka naikkan suhu pendingin. 2. Logika Fuzzy untuk Sistem Pengaturan Lampu Lalulintas Logika fuzzy dalam pengaturan lampu lalulintas amat diperlukan untuk memperlancar arus lalulintas. Dengan adanya system yang bekerja secara otomatis diharapkan angka kecelakaan yang disebabkan oleh masalah lampu lalulintas dapat berkurang. Selain itu dengan adanya lampu lalulintas yang otomatis tentu saja akan mengurangi tugas polisi lalulintas, sehingga mereka bisa mengerjakan hal-hal lain yang belum teratasi. Sedangkan sebagai dasar pengendalian dari sistem yang dijalankan, digunakan algoritma logika fuzzy. Untuk memudahkan pengendalian lampu lalulintas, ada beberapa istilah yang digunakan dalam pengendaliannya antara lain : Untuk kepadatan jumlah kendaraan adalah : - Tidak Padat (TP), - Kurang Padat (KP), - Cukup Padat (CP), - Padat (P) dan - Sangat Padat (SP). Sedangkan untuk lama nyala lampu adalah : - Cepat (C), - Agak Cepat (AC), - Sedang (S), - Agak Lama (AL) dan - Lama (L).
  • 3. Jelas istilah-istilah tersebut dapat menimbulkan makna ganda (ambiguity) dalam pengertiannya. Logika Fuzzy dapat mengubah makna ganda tersebut ke dalam model matematis sehingga dapat diproses lebih lanjut untuk dapat diterapkan dalam sistem kendali. Untuk menyelesaikan masalah tersebut digunakan teori himpunan Fuzzy, logika bahasa dapat diwakili oleh sebuah daerah yang mempunyai jangkauan tertentu yang menunjukkan derajat keanggotaannya (fungsi keanggotaan). Untuk kasus disini, sebut saja derajat keanggotaan itu adalah u(x) untuk x adalah jumlah kendaraan. C. Contoh Program Fuzzy Logic Pemrograman dengan bahasa Assembly Setelah kita menemukan rumus untuk normalisasi dan denormalisasi, maka program assembly dapat dibuat. Jika kita ingin membuat suatu fuzzy system untuk aplikasi yang lain, tidak perlu harus sama dengan program yang telah ada, tetapi yang perlu diketahui sebelum membuat suatu fuzzy sistem adalah bagaimana cara untuk menormalisasikan input dan mendenormalisasikan output-nya sebelum data dapat diolah. Hal ini dilakukan agar nilai-nilai tersebut dapat diterima oleh DT-51 PetraFuz. Routine fuzzify dari PetraFuz terletak di alamat 0900h, untuk menjalankannya kitaa harus menggunakan perintah LCALL 0900h. Berikut ini adalah contoh format yang digunakan dalam menggunakan DT-51 PetraFuz. Fuzzify EQU 0900H Current_ins EQU 0BH Cog_Outs EQU 0DH Keterangan: - Fuzzify : Routine PetraFuz - Current_ins : Crisp Input PetraFuz - Cog_Outs : Crisp Output PetraFuz Jika kita mau memakai internal RAM maka kita harus memakai dengan alamat minimal 063H. Karena 08H – 62H digunakan oleh routine PetraFuz Engine. Contoh program perhitungan error: MOV A, SP ; memasukkan nilai SP (kecepatan yang diminta) MOV R0, PV ; memasukkan nilai PV (kecepatan sekarang) SUBB A, R0 MOV ERROR, A Contoh program perhitungan dError: MOV A, ERROR ; Error(n) MOV R0, ERROR-1 ; Error(n-1) SUBB A, R0 MOV DERROR, A Di dalam aplikasi ini yang dinormalisasikan adalah hasil dari Error dan dErrror (bukan Error dan dError), setelah itu baru dimasukkan sebagai input ke DT-51 PetraFuz. Nilai Error yang sesungguhnya harus disimpan ke dalam suatu register, karena Error yang belum dinormalisasi akan digunakan dalam perhitungan denormalisasi yaitu untuk nilai Error(n-1).
  • 4. Contoh program untuk memasukkan data Error dan dError ke dalam DT-51 PetraFuz, setelah itu memanggil prosedur Fuzzify dan melihat hasilnya di register accumulator. MOV CURRENT_INS,ERROR MOV CURRENT_INS+1,DERROR LCALL FUZIFY MOV A,COG_OUTS Hasil dari register accumulator di atas adalah nilai crisp output dan nilai tersebut harus didenormalisasikan. Contoh di atas bukanlah contoh program secara khusus melainkan contoh program secara garis besar. Hal ini dikarenakan tidak adanya program untuk normalisasi dan denormalisasi. Sebelum nilai crisp input dimasukkan ke dalam DT-51 PetraFuz, nilainya harus dinormalisasikan terlebih dahulu. Nilai crisp output yang telah diperoleh di register accumulator pada contoh di atas juga belum didenormalisasikan. Di dalam pembuatan suatu program assembly, kalau bisa hindari pembuatan program aritmatika yang cukup kompleks, misalnya perkalian atau pembagian 16 x 16 bit. Hal ini dilakukan agar proses fuzzifikasi tidak memakan banyak waktu. Ini adalah contoh pemrograman aplikasi pengaturan kecepatan motor DC dengan sistem Fuzzy. Proses kerjanya adalah sebagai berikut: 1. Pertama kali dilakukan proses inisialisasi de KITS SPC DC Motor dan komunikasi serial. 2. Terima data serial dari PC dan tunggu sampai karakter J dikirimkan. Lalu ambil nilai SP Low Byte. 3. Terima data serial lagi dari PC dan tunggu sampai karakter K dikirimkan, lalu ambil nilai SP High Byte. 4. Setelah itu baca nilai RPM sekarang dan kirimkan ke PC. 5. Hitung nilai Error dan dError, tetapi jangan lupa untuk menormalisasikan nilai tersebut. 6. Setelah normalisasi dilakukan maka masukkan kedua nilai yaitu Error dan dError ke dalam DT-51 PetraFuz. 7. Panggil prosedur fuzzify, lalu ambil hasilnya. 8. Setelah hasil didapatkan, maka hasil itu harus didenormalisasi sehingga akan muncul nilai crisp output yang sebenarnya. 9. Nilai crisp output kita masukkan sebagai nilai PWM untuk mengatur putaran motor DC tersebut. Ulangi langkah 4 - 9 sampai nilai RPM yang dinginkan tercapai.