ISSN: 1693-6 930                                                         18 5                            Pengem ban g an Prog ram  Logika Fuzi (Mu ham m ad Arrofiq )   PENGEMBANGAN PROGRAM  LOGI KA FUZI PADA  MIKROKONTROLER AT89C51      Muhammad Arro fiq   Program Di pl oma  T e kni k  E l ektro, Fa kult as  T e knik  Uni v ersit a s G adj ah Mada   Jln. Sekip Sel a t an,  Y ogya k art a         Email:  r o fiq @ ug m.ac .id rofiqm@yah oo.com          A b st r a Mikrokontrol e r tersu s u n  at as m i krop ro seso yan g  di leng kapi  den gan  pengi ng at, unit  m a suka n/kel uara n  da n pe wa ktu, yan g   dikem a dala m  satu chip.  Mikrokontrol e r telah di ran c ang  untuk m eng endali k an  sebua h proses tert e n tu. Tuntutan  seb uah p enge ndali  yan g   m engim p lementasi k a n  algoritm a  m odern m endo rong untu k  m e m a ksim a lkan kem a m puan   m i krokontrol e r. Deng an  kem a m puan  kom putasi  dan leb a r d a ta terbata s , m i kroko n tro l er  diharap kan  m a m pu m e n g im plem entasikan al go ritm a m odern  sed e rhan a  guna  kepe rluan   peng endali a n .  Penelitian i n i m encob m e realisasi k a n  pro g ram  denga n algo rit m a fuzi pad a   m i krokontrol e r kel uarga A T 8951. Fu zifi ka si  dila ku ka n deng an m e toda m e liha t  tabel, untuk   m e ringan kan  beban  kom putasi m i kro k ontrole r. Un tuk m e m perm udah pro s e s  inferensi  yang   dilakukan m i kro k o n trol er,  aturan ken dali ditetapkan m enggun aka n  seb u a h  kode. Fu ngsi   kea ngg otaan  kel uaran m a sih  terb atas pad a b ent u k  singl eton. Defu zifika si dilakukan de ngan   m e toda cent e r  of gravit y (COG).  Dari  ha sil pe ne litian  didap atka n te rjadi a dan ya  perb eda an h a sil   ke cil a n tara   perhitu nga m anual de ng an p e rhitu n g an  yan g  dila ku kan  m i kro k ontrole r.  Hal  ini  terjadi  ka ren a  ada nya p e m otongan (t runcating) pa da si stem  m i kro k o n trol er.  Wa ktu rata-rata   pen yele saia n  algo ritm a fuzi pada m i kro k ontrole r a dal ah 12 10 tick.  Apbila si stem  m i krokontrol e m engguna ka n kri s tal 12 M H z, m a ka 12 10 tick  seta ra  1,2 m ili detik.    Kata kunci : Logi ka  fuzi, m i krokontrol e AT8951       1. Pendahul uan   Mikrokontrol e r, seba gai su atu terobo sa teknol ogi  mikroproseso r  dan mi kro k ompute r hadir m e men uhi  m a rket n eed  da n teknologi b a ru.  Sebagai te kn ologi ba ru, yaitu teknol og semi kon d u k tor den gan  kandu ngan tra n si stor y ang  lebih banya k  namun ha nya membutuh kan   ruan g yang  kecil serta d a p a t dipro d u ksi  se cara ma sal  sehin gga  ha rganya m enja d i lebih mu ra diban ding kan  deng an mi kropro s e s o r .    Sebagai  keb u tuhan  pa sa r,   mikro k ontroler  hadi r    u n tuk      memen uhi   sele ra   indu stri   dan   p a ra   kon s um en   aka n    kebutuh an da n kein gina n alat   bantu yang lebih baik  dan c a nggih [1] .  Salah s a tu jenis  mik r okontro ler yang umum, mudah  didap at dan  murah a dal ah AT895 1, prod uksi  pe rusa haa n Atmel yang ko mpatibel de n gan  kelu arg a  MCS-51.   Kebutuha n a k an  seb uah  peng endali y ang men g im plementa s i k a n  algoritm a  mode rn  yang di kem a s d a lam  uku r an  ke cil m e rupa ka n t unt utan la pang a n . sa at ini.  Hal i n i suda h   diterap k a n  di peral atan -pe r alatan ru mah  tangga [2].   Penelitian i n i bertuju an  mereali s a s i k an p e ra ng kat luna algoritm a  fuzi pad mikrokontrol e r AT8951  se suai den gan  kemamp uan y ang dimili kiny a.          Evaluation Warning : The document was created with Spire.PDF for Python.
                                    ISSN: 16 93-6 930             TELKOM NIKA   Vol. 3, No. 3, Dese mbe r  2005 :  185-  197   186   2. Logika Fu zi  2.1 Susunan  Dasar Pen g endali Logik a  Fuzi   Pengendali logika fuz i  sec a ra tipik a l m enjadi satu pada  s i s t em pengendali k a lang  tertutup.   Ga mbar 1 m enu njukka n dia g ram ko tak si st em pe nge nda li yang m engi mpleme ntasi k a n   logika fuzi se bagai al gorit ma peng end a lian.      Gamba r  1. Sistem kendali l ogika fuzi tipi kal     Algoritma logi ka fuzi m e mili ki beb era pa t ahap an sepe rti yang ditunjukkan G a mb ar 2.       Gamba r  2. Susu nan d a sar penge ndali l ogika fuzi     Gamba r  2  menunj ukka n  elemen ut ama pen gen dali fuzi. Elemen -elem e n  utama   peng endali  fu zi a dala h  u n it fuzifikasi,  uni t pena ri ke si mpulan,  unit  basi s   pen get ahua n d an  u n it  defuzifi k a s i). Jeni s pe nge n dali fuzi da pa berbed a, tergantun g pad a  tujuan peran can gan.    Basis pe nget ahua n fuzi  b e risi  2 inf o rm asi  ut ama, ya itu ba sis  data  yang m ende finisikan   fungsi  kean g gotan fuzi ya ng digun aka n  seb agai  nil a i pada varia bel sist em d an ba sis atu r an   yang me met a ka n nil a i fu zi ma su ka menjadi  nilai  fuzi  kel uara n . Ada 2  jen i s utam a va ri able  sistem, yaitu  variabel  ma suka n (E) ya n g  dida patkan  dari p r o s e s  y ang di ke ndali k an  dan va ria bel  kelu ara n  yan g  dig una ka n  oleh  pe nge ndali fu zi  un tuk m eng end alika n  p r o s e s . Untuk setiap   variabel  si ste m  yang di gu nakan d a lam  meng eksp re sikan atu r an,  nilai yang  diijinka n h a rus  didefini s kan pada se me sta  pem bicara an  ( uni verse  of disco u rse ). Pend efini s ian  hal te rsebut   meru pa kan l ang kah yang  paling kritis pada  prose s  peran can g an dan da pa t mempeng aruhi  unju k  ke rja si stem. Nilai     2.2. Program Fuzi pada M i krokon trole r    Fuz ifikasi   Proses fuz i fik a s i  pada  mik r ok ontroler  dapat dilakukan dengan 2 c a ra, yaitu  dengan  perhitu nga n dan metod a  melihat tabel  ( look-up tab l e) . Metode  perhitu nga n dapat dila ku kan  apabil a  bent uk fung si ke angg otaan nya sed e rh ana.  Kekang an  metode ini a dalah  kema mpuan   komp utasi  mi kro k o n trol er  yang terbata s , leba d a ta  mikrokontrol e r yan g  ha nya 8-bit se hin gga  tidak mam p u  melaksan akan aritmati ka  y ang kompl e k.  Metoda  melihat tabel ( loo k up ta ble dapat di gun a k an  untu k   se mua b entu k  f ung si k ean gg otaan,  karen a  nilai tin g kat ke angg otaa an  sud ah did e fin i sikan dal am  tabel. Proses fuzifi ka si dil a ku ka n den g an meng amb il besa r nya ni lai  tingkat  kea n ggotaa n pa d a  tabel u n tuk seb uah m a suka n tertentu .  Alamat tabel menu nju k kan   Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA  ISSN:  1693-6 930                       Pengem ban g an Prog ram  Logika Fuzi (Mu ham m ad Arrofiq )   187 besarnya ma su kan, isi tab e l menunj ukkan nilai  tingka t  keangg otaa nnya. Kekura ngan meto de  ini  adala h  ke but uhan me mori  yang lebih b a n yak untu k  m enyimpan tab e l.  Proses fuzifi ka si yang  d i guna ka n sa at ini ad ala h  metod e   melihat tab e l  untuk  ke sed e rh ana an. Secara teori, nil a i tin g kat  ke angg otaan mi nim a l 0 d an m a ksim a l 1.  Da lam   metode tab e l, nilai ke ang g o taan dib uat  minimal 0 d a n  maksim al 2 55d. Gam b a r  3 menu nju k kan   conto h  se bua h fungsi  kea n ggotaa n masuka n error  kel o mpo k  ze ro.       0 , 0 10 0 , 10 / ) 10 ( 0 10 , 10 / ) 10 ( 0 , 0 10 , 0 , 10 ; x x x x x x x T                               (1)        Gamba r  3. F ung si ke ang g o taan ma su kan error  kelo mpok Z e ro      Nilai te ren d a h  da ri m a sukan diteta pkan  –12 8 d an  nil a i terting g i d a r i ma su ka n di tetapka n   127. Adapu n jika terd apat masu ka n yan g  lebih ren d a h  dari –12 8 d apat diset se bagai nilai – 1 28,  begitu  pula  ni lai ma su kan  yang l ebih tin g g i da ri 1 27 di set  seb agai  1 27. Denga cara i n i, jan g kah  masu ka n d a pat ditang ani  deng an j a n g ka h 25 6.  Besa rnya tin g k at  kean gota an pa da ta b e dihitung terl e b ih dah ulu b e rda s a r kan p e rsama an (1 ), disaji kan p ada Ga mba r  4 denga n ni lai  alamat awal tabel 20 0h.       Gamba r  4. Isi  memori tabel   Evaluation Warning : The document was created with Spire.PDF for Python.
                                    ISSN: 16 93-6 930             TELKOM NIKA   Vol. 3, No. 3, Dese mbe r  2005 :  185-  197   188 Berda s a r kan  Gamb ar 4,  masuka n E rro r –1 28 di simpa n  di al amat 200 h.  Den gan   demiki an, u n tuk  nilai m a su kan  erro r=0, tingkat  kean g gotaanya  di si mpan  di al a m at 280 h d a l a hal ini nilain ya FFh. Program yan g  akan mel a ku kan pro s e s  fu zifika si memi liki diag ram  alir  sep e rti ditunj ukkan G a mb ar 5.     mulai inisialisasi penunjuktabel=almt awal tabel countern=8 ambil nilai masukan 1 ambil data di tabel di alamat (128+nilai masukan1+penunjuktabel) simpan data ke nomer fungsi anggota counter = jumlah fungsi keanggotaan masukan1 penunjuktabel=penunjuktabel +256 counter=0? decremen  counter, countern simpan data 0  ke nomer fungsi anggota increment  penunjuk data nomer fungsi anggota increment  penunjuk data nomer fungsi anggota decrement countern countern=0? selesai tidak ya tidak ya     Gamba r  5. Di agra m  alir  pros es  fuz i fik a si    Ev aluasi aturan   Aturan diteta pka n  de nga n  seb uah fo rmat te rtentu.  Proses eval uasi aturan dilakukan  deng an meto da MAXMIN. Diag ram ali r  pro s e s  evalu a si aturan dit unju k kan Ga mbar 6.    Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA  ISSN:  1693-6 930                       Pengem ban g an Prog ram  Logika Fuzi (Mu ham m ad Arrofiq )   189 mulai isi 0 semua var yg akn dipakai baca kode aturan kode aturan keluaran? bandingkan nilai keanggotaan dengan nilai keanggotaan yg ditunjuk aturan nilai keanggotaan=FF lebih kecil? nila keanggotaan=nilai keanggotaan yg ditunjuk aturan nilai keanggotaan=0? Baca aturan berikutnya Kode aturan keluaran? Baca aturan berikutnya Kode aturan masukan? Kode aturan FF? baca keluaran yang ditunjuk aturan bandingkan dengan nilai yang tersimpan lebih besar simpan baca aturan berikutnya kode masukan kode FF selesai tidak ya tidak ya ya tidak ya tidak ya tidak tidak ya tidak ya tidak ya ya ya     Gamba r  6. Di agra m  alir p r ose s  evalu a si  aturan     Defuzi fikasi   Proses d e fuzifikasi dil a kukan den gan m e tode COG ( cente r  of gra v ity ). Seca ra  teoriti s   metoda ini m e mbutuh ka n komp utasi/p e r hitung an  ya ng rumit. Hal  itu terjadi karen a  pen garuh  bentu k  fun g si  ke ang gotaa n  kel u a r an. Pe rhitung an  aka n  me njadi  se derh ana  da dapat  dila ku kan  oleh mi krop rose so r/mikro k ontrole r a p abila b entu k  fung si  kea nggota an  ke luara n  b e ru pa  singl eton . Persama an p r o s es defu z ifikas i ditunjukka n persam aan (2).   Evaluation Warning : The document was created with Spire.PDF for Python.
                                    ISSN: 16 93-6 930             TELKOM NIKA   Vol. 3, No. 3, Dese mbe r  2005 :  185-  197   190 keluaran n keanggotaa anggota C n keanggotaa tingkat keluaran anggota fungsi jumlah n dengan C COG n i i n i i i : . 1 1                                 (2)    Diag ram ali r  pro s e s  defu z i f ikasi ditu nju k kan G a mba r   7.     mulai inisialisasi penunjuk alamat keluaran, variabel, counter2 =0 counter=8 variabel jumlah, kali=0 ambil tingkat keangotaan keluaran jumlah=jumlah+tingkat keanggotaan keluaran kali=kali+(tingkat keanggotaan*besarnya anggota keluaran) counter=0? counter=counter-1 tunjuk anggota keluaran berikutnya cog=kali/jumlah counter=counter2+1 counter2= jumlah keluaran? selesai tidak ya tidak ya     Gamba r  7. Di agra m  alir p r ose s  defu z ifikasi   Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA  ISSN:  1693-6 930                       Pengem ban g an Prog ram  Logika Fuzi (Mu ham m ad Arrofiq )   191   Variab el yan g  menyim pa n jumla h  p e rkalia n ant ara  tingkat kean ggotaa n d a n  ang gota   kelu ara n  (   i .C i ) m e miliki   lebar data  3  byte (24  bit).  Varia bel yan g  menyim pan  jumlah  ting kat  kea ngg otaan (   i ) memiliki lebar  data 2  byte (16 - bit).  Pada p r og ra m pro s e s  d e fuzifikasi, p r o s es  pemba gian a n tara (   i .C i ) denga n (   i ) dapat dila kuka n den gan  menggu na kan pemb agia n  2  byte (16-bit )  atau pemb agi an 3 byte (24 - bit). Pemba g i an 2 byte dapat dilaku ka n  apabila nilai  1   byte tertinggi (bit ke1 6  sam pai 23) d a ri (   i .C i ) nilainya selalu 0. Nilai byte tertinggi selal u  0 a t au  tidak, dip eng aruhi  oleh  at uran  kendali   yang dib uat. Apaka h  pa da  atura n  kend ali tersebut  a da  kemu ng kina n  penjumla han  nilai besar m e lebihi 2 byte     Pengkod ean  Variabel Masukan, Kelu aran dan  Atu r an   Setiap vari ab el ma su ka dibata s i m a ksimal  memili ki 8  fun g si  keang gotaa n.  Angka  8   dalam  pema k aia n  sesun gguh nya dira sa kan l ebih  dari  cu ku p. Sebagai  cont oh pe ng kod e an,  seb uah  si ste m  pen gend ali  fuzi me miliki  2 bua h vari ab el ma su kan y a itu  er ro (E ) dan  p e rubah an  error  (CE)  1 bua h va ri abel  kelu ara n  (CI) d eng an fun g si  keang gotaa masin g -m asi ng  ditunju k kan G a mba r  8, 9, 10. Atur an pen gend alian dit unju k kan Tab e l 1.      Gamba r  8. F ung si ke ang g o taan ma su kan error      Gamba r  9. F ung si ke ang g o taan ma su kan peruba ha n error        Gamba r  10.  Fung si ke ang gotaan  kelu aran       Tabel 1. Aturan ke ndali      Perubah a Error      R   NM PB  NS PM  ZE NS  PS  PS NM  PM NB    Evaluation Warning : The document was created with Spire.PDF for Python.
                                    ISSN: 16 93-6 930             TELKOM NIKA   Vol. 3, No. 3, Dese mbe r  2005 :  185-  197   192 Format p eng kod ean vari a bel masukan  disaji ka n Tab e l 2.  Tabel 2. Fo rmat peng kod ean ma su kan   Varia bel Mas u kan   Kode (8 b i t)  Masukan  F ungsi   Kean gg otaan   Masukan/  kelu aran   No Var   masukan  No fungs i   dlm masuk a Error  NM 0  000   000   NS 0  000   001   Z E  0  000   010   PS 0  000   011   PM 0  000   100   Pe ru ba ha n   Error  N 0  001   000   Z  0  001   001   P 0  001   010     Berda s a r kan  Tabel 2, kod e  dibagi men j adi 3, yaitu  masu ka n/kel uara n , nome r  variabel   masu ka n dan  nomer fun g si  kean ggota a n  dalam ma su kan. Kod e  pa da kol o m ma su kan/ kelu aran   adala h  0 (0 u n tuk ma su ka n dan 1 untu k  kelua r an ).   Berda s a r kan  Gamba r  8  da n 9, terda pat  2 bua h varia bel ma su kan,  yaitu masu kan  erro r   dan ma su ka n peruba han   erro r .  Ma su kan  er ro r   di beri  kod e  0  (3 bit, 000 ) dan m a su kan   peru bah an  e rro dibe ri kode 1 (3 bi t, 001). Vari abel ma su ka error  memiliki 5 fungsi   kea ngg otaan.  Dari  kiri ke kan an ma sin g -ma s in g NM , NS, ZE, PS, PM. Kode  untuk ma sin g - masin g  fung si kean ggota a n  bertu rut-tu rut adalah 0 0 0 , 001, 010, 011, 100.  Variab el ma su kan  peru bah an  e rro m e miliki  3 fung si  ke angg otaan, y a itu N,  Z, P.  Kode  untu k  masi ng-ma sing   fungsi kea n g gotaan  b e rtu r ut-tur ut ad ala h  000, 001, 0 10.   Format p eng kod ean u n tuk variabel kelu aran di saji ka n Tabel 3.     Tabel 3. Pen g ko dea n kel u aran   Kelu aran   Kode (8 b i t)  Kelu aran  Masuka n/kelu a r an   No an gg ota   dlm kel uara n   NB 1  000 0   000   NM 1  000 0   001   NS 1  000 0   010   Z E  1  000 0   011   PS 1  000 0   100   PM 1  000 0   101   PB 1  000 0   110     Berda s a r kan  Tabel 3, kode  dibagi me nja d 2, yaitu masu kan/ kelu aran dan  nome r  fung si   kea ngg otaan  dalam vari ab el kelu ara n . Kode untu k  variab el kel u a r an adal ah 1 (0 untuk va ria bel  masu ka n da n 1 untuk va riable  kelu aran). Nomer f ung si ke ang gotaan di ko d e ka n 3-bit. Pada   Gamba r  10,  terdap at 7 fu ngsi a ngg ota ,  yaitu NB, NM, NS, ZE, PS, PM, PB. Kode no mer   angg ota bert u rut-tu rut 000 , 001, 010, 01 1, 100, 101, 1 10.   Format p eng kod ean atu r a n  dida sarka n  pada ske n a r io aturan p enge ndalia n. Aturan   ken dali logi ka  fuzi se ca ra u m um disajika n  seb agai b e rikut:    IF  kondisi masuka n 1   AND   kondisi masuka n 2                    THEN  keluar a n   atau   IF  kondisi masuka n 1   THEN  keluara n   atau   Evaluation Warning : The document was created with Spire.PDF for Python.
TELKOM NIKA  ISSN:  1693-6 930                       Pengem ban g an Prog ram  Logika Fuzi (Mu ham m ad Arrofiq )   193 IF  kondisi masuka n 2   THEN  keluara n     Format p eng kod ean atu r a n  (den gan  co nt oh di atas) ditetapkan se bagi be rikut:    Kode k ondis i  masukan 1    Kode kondisi masukan 2   Kode k e luar an   atau        Kode kondisi 1  Kode k e luar an   atau   Kode k ondis i  2    Kode k e luar an      Skena rio atu r an ke ndali fu zi berda sa rka n  Tabel 1 me miliki ko de ya ng ditunju k ka n Tabel 4.     Tabel 4. Kod e  aturan  ken d a li se suai  ske nario   Kode   Ke te ra nga 04h   IF   error  adala h   PM   80h   THEN   keluaran  ada la NB      03h   IF   error  adala h   PS   81h   THEN   keluaran  ada la PS      02h   IF   error  adala h   ZE   08h   A ND   per ub ah a n  error  ad ala h   N   82h   THEN   keluaran  ada la NS      02h   IF   error  adala h   ZE   09h   A ND   per ub ah a n  error  ad ala h   Z   83h   THEN   keluaran  ada la ZE      02h   IF   error  adala h   ZE   0ah   A ND   per ub ah a n  error  ad ala h   P   84h   THEN   keluaran  ada la NS      01h   IF   error  adala h   NS   85h   THEN   keluaran  ada la PM      00h   IF   error  adala h   NB   86h   THEN   keluaran  ada la PB      FFh   A K H I R A T UR A N       2.3. Pengujian Program   Pengujia n progra m  dila ku kan d eng an skema fu zi yang ditunju k ka n Gamba r  11.     Evaluation Warning : The document was created with Spire.PDF for Python.
                                    ISSN: 16 93-6 930             TELKOM NIKA   Vol. 3, No. 3, Dese mbe r  2005 :  185-  197   194   Gamba r  11.  Skema lo gika  fuzi conto h     Den gan me n ggun akan Ga mbar 11.b d a n  11.d, is i tabel fungsi  ke angg otaan keluaran alfa dan  aturan seb a g a beri k ut:                         OR G 0170H   SGLTN:   OUT0MF:            DB     1cH                ;                     NM                      DB       67H                ;                    NS                      DB       80H                ;                     Z                       DB       99H                ;                    PS                      DB       0e4H              ;                   PM                      DB       00H                ;                     ~                       DB       00H                ;                     ~                       DB       00H                ;                     ~   A T UR A N _ A W A L :     DB     01                     DB       09H                      DB       82H                      DB       00H                      DB       80H                      DB       02H                      DB       84H                      DB       01H                      DB       08H                      DB       81H                      DB       01H                      DB       0aH                      DB       83H  END_OF_RUL E:    DB      0ffH    Tabel fung si  kea ngg otaan  masu ka n erro r dicu plik  seb agai be rikut:    LOC  OBJ                LINE         SOURCE                                 307       T A BEL :   018 6 F F                      308       n e g :   DB    255   018 7 F F                      309                             DB    255     .                           .                                     .     .                           .                                     .     .                            .                                     .   01 A 2  F F                     336                             DB    255   01 A 3  F C                    337                             DB    252   01 A 4  F A                     338                             DB    250   Evaluation Warning : The document was created with Spire.PDF for Python.