ROBOT BECAK BERBASIS MIKROKONTROLER ATMEGA 8535 DENGAN LOGIKA FUZZY.

ROBOT BECAK BERBASIS MIKROKONTROLER ATMEGA 8535
DENGAN LOGIKA FUZZY
Disusun Oleh :
Suep Rizal
Dosen Pembimbing I : Basuki Rahmat, S.Si, MT
Dosen Pembimbing II : Fetty Tr i Anggr aeny, S.Kom

Abstraksi

Robot becak beberbasis mikrokontroler ATMega8535 dengan logika fuzzy
merupakan suatu gabungan dari hasil karya seni dengan teknologi modern, sehingga
terbentuk robot bergerak yang sudah terprogram dan dapat bergerak secara otomatis.
Robot becak ini selain bergerak otomatis. Juga memiliki kelebihan untuk menentukan
jarak aman terhadap obstacle, sehingga robot tetap berada di tengah-tengah jalur.
Robot becak ini menggunakan logika fuzzy sebagai program pengendalinya
dan tiga sensor ultrasonic RRF 04 yang berfungsi sebagai pendeteksi rintangan yang ada
pada koordinat y positif dengan cara memancarkan gelombang ultrasonic dari
rangakaian transmiter-nya dan menangkapnya dengan menggunakan rangkaian
receiver-nya. Gelombang pantul yang diterima akan diolah oleh bagian control circuit
kemudian dikirim ke mikrokontroler untuk diubah dari tegangan analog menjadi
tegangan digital melalui port ADC. Hasil konversi akan dikirm ke blok fuzzifikasi untuk

menentukan derajat keanggotaan, hasil dari proses fuzzifikasi akan diolah pada blok
inferen untuk mengevaluasi rule yang sesuai. Hasil inferen akan di teruskan ke blok
defuzzifikasi untuk menghasilkan nilai crisp. Dimana nilai tersebut akan menentukan
arah kemudi becak dan kecepatan putaran motor. Sehingga robot becak dapat melakukan
tracking dengan aman tanpa harus menyentuh rintangan disekitarnya.
Hasil dari percobaan yang dilakukan, robot becak dapat berjalan sesuai
dengan rancangan sistem yang telah dibuat. Antar lain robot dapat mendeteksi
bermacam-macam jenis halangan dan dapat menghindari halangan secara baik.
Kata Kunci : Mikrokontroler, ATMega8535, RRF 04, Logika Fuzzy.

i

KATA PENGANTAR

Dengan mengucapkan puji syukur kehadirat Alloh SWT atas rahmat serta
hidayahnya yang diberikan sehingga dapat menyelesaikan Tugas Akhir ini dengan
baik dan tepat waktu dimana hasilnya disusun dengan bentuk laporan yang
berjudul Robot Becak Berbasis Mokrokontroler ATmega 8535 Dengan Logika
Fuzzy.
Adapun laporan ini disusun yaitu untuk memenuhi syarat mengikuti

seminar TA serta untuk memenuhi syarat kelulusan salah satu mata kuliah “Tugas
Akhir” di Universitas Pembangunan Nasioanal “Veteran” Jawa Timur.
Penulis menyadari bahwa manusia yang serba kurang sempurna, maka di
dalam upaya menyusun Tugas Akhir ini penulis telah banyak memperoleh
bantuan dan bimbingan dari berbagai pihak, mengingat keterbatasan pengalaman
yang dimiliki oleh penulis, sehingga penulis sangat mengharapkan segala kritik
dan saran yang konstruktif dan membangun demi kebaikan maupun sistematika
penulisan akan selalu penulis terima dengan senang hati guna kesempurnaan
Tugas Akhir ini. Harapan penulis mudah – mudahan apa yang penulis lakukan ini
dapat menjadi sumbangan pemikiran dan berguna bagi semuanya, terutama
Universitas Pembangunan Nasional “Veteran” Jawa Timur.

Surabaya, 15 November 2011

Penulis

ii

UCAPAN TERIMA KASIH


Dalam pembuat laporan ini, penulis telah mendapatkan bantuan dan
bimbingan dari berbagai pihak yang terkait, baik secara moril maupun materiil
oleh karena itu pada kesempatan kali ini penulis ingin menyampaikan ucapan
terima kasih kepada:
1.

Bapak Prof. Dr. Ir Teguh Soedarto, MP. Selaku Rektor Universitas
Pembangunan Nasional “Veteran” Jawa Timur Surabaya.

2.

Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri.

3.

Ibu Dr. Ir. Ni Ketut Sari, MT, selaku Kepala Jurusan Teknik
Informatika Universitas Pembangunan Nasional ”Veteran” Jawa
Timur.

4.


Bapak Basuki Rahmat, Ssi, MT dan Ibu Fetty Tri Anggraeny, S.Kom,
sebagai Dosen Pembimbing

yang telah meluangkan waktu dan

memberikan bimbingan serta petunjuk selama menyusun Tugas
Akhir ini.
5.

Para Dosen Penguji Seminar : Dr. Ir. Ni Ketut Sari, MT, Basuki
Rahmat, S.Si, MT yang telah membuka wawasan baru bagi penulis.

6.

Para Dosen Penguji Lisan : Basuki Rahmat, S.Si, MT, Waldy
Permana Agastya, S.Kom, MM, Fetty Tri Anggareny, S.Kom yang
telah memberikan masukan positif kepada penulis.

7.


Kedua Orang Tua tercinta serta keluarga yang telah memberikan doa
dan semangat kepada penulis.

iii

8.

Sahabat baik penulis Astria Rus Andika Susila, terima kasih sudah
memberi banyak masukan dan dukungan selama proses pengerjaan
Tugas Akhir ini. Serta sabar dalam menghadapi penulis.

9.

My special girl thank’s a lot for your love and support. I love you till
here after.

10. Untuk Bang Hisyam terima kasih masukan dan sumbangsih
pemikirannya dalam merakit robot becak.
11. Teman-teman penulis : Untuk teman-teman seangkatan Oshin,

Juzz’Sari, Vera, Trea, Faisol, Nanang, Rizal, Tobib, Gigih, Ardi,
Novan, NyoNyo dan teman seangkatan lainya yang tidak mungkin
ditulis satu per satu terima kasih atas dukungan dan kebersamaanya
selama empat tahun terakhir. Untuk teman-teman KKN kelompok 23
love u all.

iv

DAFTAR ISI

Halaman
Abstraksi
………………………………………………………………
Kata Pengantar
………………………………………………………
Ucapan Terima Kasih
………………………………………………...
Daftar Isi
………………………………………………………………
Daftar Gambar

………………………………………………………
Daftar Tabel ………………………………………………………………

i
ii
iii
v
viii
x

BAB I

PENDAHULUAN
………………………………………
1.1 Latar Belakang
………………………………………
1.2 Rumusan Masalah ………………………………………
1.3 Batasan Masalah
………………………………………
1.4 Tujuan

………………………………………………
1.5 Manfaat
………………………………………………
1.6 Metodologi Penelitian
………………………………
1.7 Sistematika Penulisan
………………………………

1
1
2
3
3
4
4
5

BAB II

TINJ AUAN PUSTAKA ………………………………………

2.1 Sejarah dan Perkembangan Robot ………………………
2.2 Mikrokontroler ATMega 8535
………………………
2.2.1 Konfigurasi Pin ATMega 8535
………………
2.2.2 Peta Memori Mikrokontroler ATMega 8535 ………
2.3 Sistem Minimum (Minimum System)
………………
2.4 Ultrasonik Sebagai Sensor Halangan
………………
2.5 Motor DC Sebagai Aktuator Roda ………………………
2.6 Motor Servo Standart Sebagai Aktuator Kemudi ………
2.7 Roda Gigi (Gear)
………………………………………
2.8 Logika Fuzzy (Fuzzy Logic)
………………………
2.8.1 Pendahuluan Fuzzy ………………………………
2.8.2 Metode Sugeno
………………………………
2.8.3 Komponen Dasar Fuzzy

………………………
2.8.4 Fungsi Keanggotaan ………………………………
2.9 Pemrograman Bahasa C
………………………………
2.9.1 Alasan Menggunakan Bahasa C
………………
2.9.2 Struktur Penulisan Bahasa C ………………………

7
7
9
12
16
18
20
21
23
24
25
25

26
28
29
33
34
35

v

Halaman
BAB III

ANALISIS DAN PERANCANGAN SISTEM ………………
3.1 Blok Diagram Sistem ………………………………………
3.1.1 Sub Sistem Obstacle Avoidance
………………
3.1.2 Sub Sistem Fuzzy Decision Maker ………………
3.2 Perancangan Perangkat Keras
………………………
3.2.1 Desain Mekanik
………………………………
3.3 Perancangan Perangkat Lunak
………………………
3.3.1 Blok Diagram Fuzzy ………………………………
3.3.2 Fungsi Keanggotaan ………………………………
3.3.3 Fuzzifikasi
………………………………………
3.3.4 Inferen Engine ………………………………………
3.3.5 Defuzzifikasi ………………………………………

37
37
38
40
43
44
48
49
50
54
55
56

BAB VI

IMPLEMENTASI SISTEM
………………………………
4.1 Perakitan Robot Becak
………………………………
4.1.1 Perakitan Minim Sistem
………………………
4.2 Implementasi Logika Fuzzy ………………………………
4.2.1 Proses Fuzzifikasi
………………………………
4.2.2 Proses Inferen Rule Base
……………………….
4.2.1 Proses Defuzzifikasi ………………………………
4.3 Pemrograman C dengan Code Vision AVR
…………
4.4 Implementasi Hardware
………………………………

58
58
58
62
62
63
64
66
69

BAB V

UJ I COBA DAN EVALUASI ………………………………
5.1 Respon Sensor Ultrasonik Terhadap Jenis Halangan ……
5.1.1 Peralatan
……………………………………...
5.1.2 Parameter
……………………………………...
5.1.3 Prosedur
……………………………………...
5.1.4 Hasil Dan Evaluasi
…………………………...
5.1.4.1 Pengujian Pada Halangan Styrofoam …….
5.1.4.2 Pengujian Pada Halangan Balok Kardus …..
5.1.4.3 Pengujian Pada Halangan Botol Air Mineral
5.1.4.4 Evaluasi Percobaan ……………………..
5.2 Respon Robot Terhadap Kondisi Jalur
………………
5.2.1 Peralatan
……………………………………...
5.2.2 Parameter
……………………………………...
5.2.3 Prosedur
……………………………………...
5.2.4 Hasil Dan Evaluasi
…………………………...
5.2.4.1 Pengujian Pada Lebar Jalur Lebih Dari 40 cm .
5.2.4.2 Pengujian Pada Lebar Jalur Kurang Dari 40 cm
5.2.4.3 Evaluasi Percobaan …………………………
5.3 Respon Robot Terhadap Halangan Secara Acak
……....
5.3.1 Peralatan
……………………………………...

72
72
72
73
73
74
74
74
75
76
77
77
78
78
78
79
80
82
82
82

vi

Halaman

BAB VI

5.3.2 Parameter
……………………………………...
5.3.3 Prosedur
...........................................................
5.3.4 Hasil Dan Evaluasi
...........................................
5.3.4.1 Pengujian Pada Robot Dengan Obstacle Acak .
5.3.4.2 Evaluasi Percobaan .......................................

83
83
83
84
84

PENUTUP
………………………………………………
6.1 Kesimpulan ………………………………………………
6.2 Saran ………………………………………………………

86
86
87

DAFTAR PUSTAKA

………………………………………………

vii

88

BAB I
PENDAHULUAN

1.1

Latar Belakang
Perkembangan Ilmu Pengetahuan dan Teknologi robotika telah membuat

kualitas kehidupan manusia semakin tinggi, hampir dalam setiap aspek kehidupan
masyarakat selalu menggunakan teknologi robotika untuk dapat memanfaatkan waktu
se-efisien mungkin.
Salah satu pengaplikasian teknologi robotika yang berkembang cepat adalah
pada bidang transportasi. Kerena masalah transportasi banyak dibahas baik di Negara
berkembang atau Negara maju, salah satu masalah tersebut adalah kemacetan yang
dikarenakan bertambahnya populasi kendaraan dimana hal ini dipicu oleh
bertambahnya pengguna dalam setiap tahunnya. Sehingga memerlukan terobosan
inovasi serta pengaplikasian teknologi terbaru yang sesuai dengan kondisi saat ini.
Untuk mengupayakan terciptanya kendaraan yang sesuai dengan kondisi saat
ini, maka perusahaan otomotif Honda mengembangkan robot becak Hi-Tech. Dimana
robot ini diharapkan dapat melintasi di jalan yang macet dan sempit serta ramah
terhadap lingkungan [7].
Oleh sebab itu pada tugas akhir kali ini, membahas tentang pengembangan
robot becak berbasis mikrokontroller dengan logika fuzzy sebagai pengendalinya,
karena logika fuzzy (logika samar) ini merupakan logika yang berhadapan langsung

1

2

dengan konsep kebenaran sebagian, dimana logika klasik menyatakan bahwa segala
hal dapat di eksperimenkan dalam binary 0 atau 1. Logika fuzzy memungkinkan nilai
keanggotaan atara 0 dan 1. Dengan logika fuzzy kita dapat menentukan rule-rule
sebagai acuan langkah robot yang akan dibuat. Keuntungan dari logika fuzzy antara
lain mudah dimengerti, pemodelan matematik sederhana, toleransi data-data yang
tidak

tepat,

dapat

memodelkan

fungsi-fungsi

non

liner

yang

kompleks,

mengaplikasikan pengalaman tanpa proses pelatihan dan didasarkan pada bahasa
alami. Dengan memanfaatkan logika ini maka robot tidak harus berbelok 90° ke
kanan atau ke kiri. Sehingga setiap perubahan gerakan dari robot dapat terlihat lebih
halus dan dinamis.

1.2

Rumusan Masalah
Adapun permasalahan yang akan dibahas adalah sebagai berikut :
1. Bagaimana membuat rangkaian minimal sistem yang setabil dengan
memanfaatkan mikrokontroler ATMega 8535.
2. Bagaimana mengimplementasikan logika fuzzy pada pemrograman
mikrokontroller.
3. Bagaimana menjadikan hasil karya seni menjadi lebih memiliki
sentuhan teknologi.

3

1.3

Batasan Masalah
Adapun batasan-batasan masalah yang dibuat agar dalam pengerjaan tugus

akhir ini dapat berjalan degan baik adalah sebagai berikut :
1. Pengujian robot ini pada sebuah bidang datar.
2. Sensor hanya mampu mendeteksi halangan di depan dengan sudut
jangkauan 180° dan mempunyai tinggi tidak kurang dari tinggi sensor
terhadap lapangan.
3. Halangan bersifat rigid dan tidak memancarkan gelombang ultrasonic.
4. Halangan tidak bergerak (diam) dan berada di depan robot (halangan
berada pada range koordinat y positif) .
5. Bahasa pemrograman yang digunakan adalah Bahasa C.

1.4

Tujuan
Tujuan utama dari tugas akhir ini adalah merencanakan dan merealisasikan

sebuah robot dari hasil karya seni dengan kemampuan menghindari halangan baik
berupa obstacle maupun robot lain dengan tetap mencapai target diam. Mengacu pada
tujuan utama pada tugas akhir ini maka terdapat beberapa tujuan khusus antara lain :
1. Membuat

rangkaian

minimal

sistem

yang

setabil

dengan

memanfaatkan mikrokontroler ATMega 8535.
2. Mengimplementasikan
mikrokontroler

logika

fuzzy

pada

pemrograman

4

3. Bagaimana menjadikan hasil karya seni menjadi lebih memiliki
sentuhan teknologi.

1.5

Manfaat
Adapun manfaat yang dapat diambil dari pembuatan Robot Becak dengan

menggunakan ATmega 8535 ini adalah :
1. Digunakan sebagai bahan media pembelajaran di Laboratorium
Robotika UPN Veteran Jawa Timur.
2. Sebagai bahan motivator mahasiswa UPN Veteran khusunya dan para
pelaku pendidikan untuk lebih mengembangkan robot yang lebih
canggih.

1.6

Metodologi Penelitian
Metodologi yang digunakan pada penelitian ini adalah sebagai berikut :
1. Studi literature mengenai pengendalian motor DC menggunakan
ATmega 8535 serta pendalaman tentang logika fuzzy
2. Merancang serta menguji rangkaian penggerak motor DC yang
merupakan aktuator robot.
3. Merancang serta menguji sistem minimal Mikrokontroler ATMega
8535 sebagai pengendali sistem secara keseluruhan.

5

4. Merancang perangkat lunak yang berfungsi untuk membangkitkan dan
mengendalikan gerakan robot secara keseluruhan.
5. Menguji kinerja sistem secara keseluruhan serta mengambil data dari
hasil perancangan.
6. Menganalisa hasil dan membuat kesimpulan.

1.7

Sistematik Penulisan
Adapun Sistematika Tugas Akhir ini adalah:
BAB I

:

PENDAHULUAN
Bab ini menjelaskan tentang latar belakang, rumusan
masalah, batasan masalah, tujuan, manfaat, metodologi
penelitian dan sistematika penulisan.

BAB II

:

TINJ AUAN PUSTAKA
Pada bab ini dijelaskan tentang teori-teori serta penjelasanpenjelasan yang dibutuhkan dalam pembuatan robot becak
dengan menggunakan Atmega 8535.

BAB III

:

ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisis dan perancangan sistem
dalam pembuatan Tugas Akhir robot becak dengan
menggunakan ATmega 8535.

6

BAB IV

:

IMPLEMENTASI SISTEM
Bab ini berisi penjelasan hasil Tugas Akhir serta
pembahasannya tentang robot becak dengan menggunakan
ATmega 8535.

BAB V

:

UJ I COBA DAN EVALUASI
Bab ini berisi pengujian program Tugas Akhir.

BAB VI

:

PENUTUP
Bab ini berisi kesimpulan dan saran-saran penulis.

DAFTAR PUSTAKA
LAMPIRAN

BAB II
TINJ AUAN PUSTAKA

2.1

Sejarah dan Per kembangan Robot
Istilah ’Robot’ dan ’Robotics’ adalah istilah yang baru pada abad ke-20, tetapi

idenya didasarkan pada sejarah yang sama. Kata robot pertama kali digunakan oleh
suatu grup drama ’Czechoslovakia Dramatist, Karel Capek pada tahun 1921 sewaktu
bermain Rossum’s Universal Robots’. Rancangan robot ini sepenuhnya digerakkan
secara manual. Istilah robotics oleh Isaac Asimov diartikan sebagai ilmu pengetahuan
tentang robot, mulai dari desainnya, manufaktur hingga penggunaannya [1].
Istilah robot sekarang secara populer diartikan sebagai apa saja yang dapat
membentuk mesin–mesin robot yang diletakkan bersamaan dan bekerja secara
mandiri. Pada umumnya bagian–bagian yang menunjang pembentukan suatu robot
adalah :


Central Computer atau Control Circuitry, bagian ini sebagai otak yang
mengolah dan mengatur segala sesuatu yang menyebabkan robot itu dapat
kelihatan hidup. Dia mengolah apa yang diberikan oleh bagian input dan
mengontrol apa yang akan dilakukan pada bagian outputnya.

7

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

8



Obstacle Detectors, Vision System : ini sebenarnya bagian dari input yang
memberikan masukan–masukan variabel guna diolah untuk menentukan
apa yang dilakukan oleh bagian outputnya.



Driver Motor, Arm, Gripper : tidak seluruhnya harus terpasang lengkap,
namun driver motor adalah yang paling dominan banyak dijumpai pada
robot, dan ini adalah bagian dari output sistemnya. Pada umumnya bagian
ini ditunjang oleh seperangkat alat–alat mekanis.



Central Power System : bagian ini amat vital karena merupakan nyawa
bagi robot. Ketiga bagian di atas selalu membutuhkan daya untuk dapat
bekerja, maka bagian ini sangat penting.

Berikut gambar Blok Diagram Robot secara umum yang menggambarkan deskripsi di
atas :

Gambar 2.1 Blok Diagram Robot

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

9

Dari gambar 2.1 dapat terlihat bahwa sebuah robot sebagian besar terdiri dari
rangkaian mekanik yang saling terintegrasi satu dengan yang lainya.

2.2

Mikrokontroler ATMega 8535
Mikrokontroller adalah suatu keping IC dimana terdapat mikroprosesor dan

memori program ROM (Read Only Memory) serta memori serbaguna RAM (Random
Access Memory), bahkan ada beberapa jenis mikrokontroller yang memiliki fasilitas
ADC, PLL, EEPROM dalam satu kemasan. Penggunaan mikrokontroller dalam
bidang kontrol sangat luas dan populer.
Ada beberapa vendor yang membuat mikrokontroller diantaranya Intel,
Microchip, Winbond, Atmel, Philips, Xemics dan lain-lain. Dari beberapa vendor
tersebut, yang paling populer digunakan adalah mikrokontroller buatan Atmel.
Mikrokontroller AVR (Alf and Vegard’s Risc Prosesor) memiliki arsitektur RISC 8
bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian
besar intruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MSC
51 yang membutuhkan 12 siklus clock. Tentu saja itu terjadi karena kedua jenis
mikrokontroller tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC
(Reduced Instruction Set Computing), sedangkan seri MCS 51 berteknologi CISC
(Complex Instruction Set Computing). Secara umum AVR dapat dikelompokkan
menjadi 4 kelas, yaitu keluarga AtTiny, keluarga AT90Sxx, keluarga ATMega dan
AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori,

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

10

peripheral dan fungsinya. Dari segi arsitektur dan instruksi yanng digunakan, mereka
bisa dikatakan hampir sama. Oleh karena itu dipergunakan salah satu AVR produk
Atmel yaitu ATMega 8535. Selain mudah didapatkan dan lebih murah ATMega 8535
juga memiliki fasilitas yang lengkap. Untuk tipe AVR ada 3 jenis yaitu AT Tiny,
AVR klasik dan AT Mega. Perbedaanya haya pada fasilitas dan I/O yang tersedia
serta fasilitas lain seperti ADC, EEPROM dan lain sebagainya. Salah satu contohnya
adalah ATMega 8535. Memiliki teknologi RISC dengan kecepatan maksimal 16
Mhz membuat ATMega 8535 lebih cepat bila dibandingkan dengan ukuran MCS 51.
Dengan fasilitas yang lengkap tersebut menjadikan ATMega 8535 sebagai
mikrokontroler yang handal [4]. Adapun blok diagramnya adalah sebagai berikut.

Gambar 2.2 Blok Diagram ATMega 8535

Gambar 2.3 Fisik ATMega 8535

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

11

Dari gambar 2.2

dapat dilihat bahwa ATMega 8535 memiliki kontruksi bagian

sebagai berikut :
1. ADC 10 bit sebanyak 8 saluran.
2. Tiga buah timer/counter dengan kemampuan pembandingan
3. CPU yang terdiri atas 32 buah register.
4. Watchdog timer dengan osilator internal.
5. SRAM saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C dan Port
D sebesar 512 byte.
6. Memory flash sebesar 8 KB dengan kemampuan Read While Write.
7. Unit interupsi internal dan eksternal.
8. Port antar muka SPI.
9. EEPROM sebesar 512 byte yang dapat di program saat operasi
10. Antarmuka komparator analog.
11. Port USART untuk komunikasi serial fitur ATMega 8535.
Kapabilitas detail dari ATMega 8535 adalah sebagai berikut :
1. Sistem mikroprosesor 8 bit berbasis RISC dan memiliki kecepatan
maksimal 16 Mhz.
2. Kapasitas memori flash 8 KB, SRAM sebesar 512 byte dan EEPROM
(Electrically Eraseble Programable Read Only Memory) sebesar 512
byte.
3. ADC internal dengan fasilitas 10 bit sebanyak 8 chanel.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

12

4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2.5 Mbps.
5. Enam pilihan mode sleep menghemat penggunaan daya listrik.

2.2.1 Konfigurasi Pin ATMega 8535 [9]
Konfigurasi pin ATMega 8535 bisa dilihat pada gambar di bawah ini.

Gambar 2.4 Konfigurasi Pin ATMega 8535
Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin pada
ATMega 8535 sebagai berikut :
1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
2. GND merupakn pin ground.
3. Port A (PA0...PA7) merupakan pin I/O dua arah dan pin masukan ADC.
4. Port B (PA0...PB7) merupakan pin I/O dua arah dan pin fungsi khusus
yaitu Timer/Counter, Komperator analog dan SPI.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

13

5. Port C (PC0...PC7) merupakan pin I/O dua arah dan pin khusus yaitu
TWI, Komperator Analog dan Timer Oscillator.
6. Port D (PD0...PD7) merupakan pin I/O dua arah dan pin fungsi khusus
yaitu komperator analog, interupsi eksternal dan komunikasi serial.
7. RESET merupakan pin yang digunakan untuk mereset mikrokontroller.
8. XTL1 dan XTAL2 merupakan pin masukan clock eksternal.
9. AVCC merupakan masukan untuk tegangan ADC.
10. AREF merupakan pin masukan tegangan refrensi ADC.
Berikut adalah penjelasan fungsi tiap kaki.
1. PORT A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port A dapat
memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register Port A (DDRA) harus disetting terlebih
dahulusebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang bersesuaian sebagai input atau diisi 1
jika sebagai output. Selain itu kedelapan pin port A juga digunakan untuk
memasukan sinyal analog bagi A/D coverter.
2. PORT B
Merupakan 8 bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port B dapat

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

14

memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register Port B (DDRB) diisi 0 jika ingin
memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1
jika sebagai output. Port B juga memiliki untuk fungsi alternatif seperti
yang terlihat pada tabel berikut :
Tabel 2.1 Fungsi Alternatif Port B
Port Pin

Fungsi Khusus

PB0

T0 = timer/counter 0 external counter input

PB1
PB2
PB3
PB4
PB5
PB6
PB7

T1 = timer/counter 0 external counter input
AIN0 = analog comparator positive input
AIN1 = analog comparator negative input
SS = SPI slave select input
MOSI = SPI bus master output/slave input
MISO = SPI bus master input/slave output
SCK = SPI bus serial clock

3. PORT C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port C dapat
memberi arus sebesar 20 mA dan dapat mengendalikan display LED
secara langsung. Daya Direction Register Port C (DDRC) harus disetting
terlebih dahulu sebelum port C digunakan. Bit-bit DDRC diisi 0 jika ingin
memfungsikan pin-pin port C yang sesuai sebagai input atau diisi 1 jika
sebagai output. Selain itu dua pin port C (PC6 dan PC7) juga memiliki
fungsi alternatif sebagai oscilator untuk timer/counter 2.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

15

4. PORT D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port D dapat
diberi arus sebesar 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port D (DDRD) harus disetting terlebih
dahulu sebelum port D digunakan. Bit-bit DDRD diisi 0 jika ingin
memfungsikan pin-pin port D yang bersesuaian sebagai input atau diisi 1
jika sebagai output. Selain itu pin-pin port D juga memiliki fungsi untuk
alternatif khusus seperti yang dapat dilihat dalam tabel berikut :
Tabel 2.2 Fungsi Alternatif Port D
Port Pin

Fungsi Khusus

PD0
PD1

RDX ( UART input line )
TDX ( UART output line )

PD2
PD3
PD4
PD5
PD6
PD7

INT0 ( external interrupt 0 input )
INT1 ( external interrupt 1 input )
OC1B ( timer/counter 1 output compare B match
output
OC1A )( timer/counter 1 output compare A match
output
)
ICP ( timer/counter
1 input capture pin )
OC2 (timer/counter 2 output compare match output
)

5. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi
masukan low selama minimal 2 mechine cycle maka sistem akan di-reset.
Dan akan kembali pada posisi awal.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

16

6. XTAL1
XTAL1 adalah masukan ke inverting oscilator amplifier dan input ke
internal clock operating circuit.
7. XTAL2
XTAL2 adalah output dari inverting oscilator amplifier.
8. Avcc
Avcc adalah kaki masukan tegangan bagi A/D converter. Kaki ini harus
secara eksternal terhubung ke Vcc melalui lowpass filter.
9. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk
operasional ADC, suatu level tegangan antara AGND dan Avcc harus
diberikan kaki ini.
10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND,
kecuali jika board memiliki analog ground yang terpisah.

2.2.2 Peta Memori Mikrokontroler ATMega 8535
AVR ATMega 8535 memiliki ruang pengalamatan memori data dan memori
program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu 32 buah register
umum, 64 buah register I/O dan 512 byte SRAM internal.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

17

Register keperluan umum menempati space data pada alamat terbawah yaitu
$00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan control
terhadap mikrokontroler menempati 64 alamat berikutnya yaitu mulai dari $20 hingga
$5F. Register tersebut merupakan register yang khusus digunakan mengatur fungsi
terhadap berbagai peripheral mikrokontroler, seperti contoh register, timer/counter,
fungsi-fungsi I/O dan sebagainya.
Alamat memori berikutnya digunakan untuk SRAM 512 byte yaitu pada
lokasi $60 sampai $25F. Konfigurasi memori data pada ATMega 8535 ditunjukkan
pada gambar dibawah ini.

Gambar 2.5 Memori Data ATMega 8535
Memori program yang terletak dalam flash Perom tersusun dalam word atau
2 byte karena setiap interuksi memiliki lebar 16-bit atau 32-bit, AVR ATMega 8535
memiliki Kbyte 12-bit program counter (PC) sehingga mampu mengalamati isi flash.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

18

Selain itu AVR ATMega 8535 juga memiliki memori data berupa EEPROM 8-bit
sebanyak 512 byte. Alamat EEPROM dimulai $000 sampai $1FF [8].

2.3

Sistem Minimum ( Minimum System) [2]
Sistem minimum (sismin) mikrokontroller adalah rangkaian elektronika

minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini
kemudian bisa dihubungkan dengan rangkaian lain untuk menjalanankan fungsi
tertentu. Di keluarga mikrokontroller AVR seri 8535 adalah salah satu seri yang
banyak digunakan.

Gambar 2.6 Rangkaian Minimum System ATMega 8535

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

19

Untuk membuat rangkaian sismin ATMega 8535 diperlukan beberapa komponen
antara lain :
1. IC mikrokontroler ATMega 8535.
2. 1 XTAL 4 Mhz atau 8 Mhz (XTAL1).
3. 3 kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4).
4. 1 kapasitor elektrolit 4,7 uF (C12) 2 resistor yaitu 100 Ω

(R1) dan 10 KΩ

(R3).
5. 1 tombol reset push button (PB1).
selain itu tentunya diperlukan sumber tegangan yang bisa memberikan tegangan 5V
DC. Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog
(fasilitas ADC) di port A. Di bawah ini adalah sistem minimum ATMega 8535.

Gambar 2.7 Minimum System ATMega 8535

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

20

Dari gambar 2.7 dapat dilihat bahwa suatu system minimum memiliki 4 port 8 pin
yang masing-masing portnya memiliki fungsi khusus dimana pembagiannya telah
dijelaskan pada sub bab 2.2.1.

2.4

Ultrasonic Sebagai Sensor Halangan
RRF 04 adalah merupakan modul yang berisi transmiter dan reciever

ultrasonic. RRF 04 menghitung selisih waktu antara saat pemancaran sinyal dan saat
penerimaan sinyal pantul. Seperti diketahui, kecepatan rambat suara di udara adalah
34399,22 cm/detik, berarti untuk merambat sejauh 1 cm suara membutuhkan waktu
29 mikro detik. Misalkan waktu antara pengiriman dan penerimaan sinyal ultrasonic
adalah 5800 mikro detik, maka jarak antara sensor dan benda (penghalang) adalah
100 cm (2 x 100 cm x 29 mikro detik/cm = 5800 mikro detik).
RRF 04 hanya menggunakan 2 port I/O untuk berhubungan dengan
mikrokontroler, sehingga sangat ideal untuk aplikasi-aplikasi robotika. RRF 04 dapat
mengukur jarak mulai 3 cm sampai 400 cm, dan dapat mengukur benda dengan
diameter 3 cm pada jarak kurang dari 2 meter.

Gambar 2.8 Sensor Ultrasonic RRF 04

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

21

Pulsa Ultrasonic yang dikirim oleh RRF 04 adalah sinyal ultrasonic dengan
frekuensi 40 Khz sebanyak 8 periode setiap kali pengiriman. Ketika pulsa mengenai
benda penghalang, maka pulsa ini akan dipantulkan kembali dan diterima kembali
oleh penerima Ultrasonic. Dengan mengukur selang waktu antara saat pulsa dikirim
dan pulsa pantul diterima, maka jarak benda penghalang bias dihitung.
Apabila PI (trigger pulse input) diberi logika 1 (high) selama minimal 10 uS
maka RRF 04 akan memancarkan sinyal ultrasonic, setelah itu pin PO (echo pulse
output) akan berlogika high selama 100 uS – 18 mS (tergantung jarak sensor dan
penghalang) dan apabila tidak ada penghalang maka PO akan berlogika 1 selama
kurang lebih 38 mS.
Misalkan lama Echo Pulse adalah T, maka untuk mengetahui jarakya dapat
diketahui dengan cara membagi T dengan 58 (T/58) untuk 1 cm dan dibagi dengan
148 (T/148) untuk satuan inch. Misalkan panjang Echo Pulse adalah 5800 mikro
detik maka jarak benda adalah 1 meter (5800/58 = 100 cm = 1 meter) [8].

2.5

Motor DC Sebagai Aktuator Roda
Struktur robot sebagian besar dibangun berdasarkan konstruksi mekanik.

Sebagian besar kontruksinya memiliki aktuator yang bermacam-macam. Salah satu
aktuator yang sering digunakan ialah motor DC magnet permanen.
Motor DC ialah salah satu peralatan elektronika dasar yang berfungsi untuk
mengubah tenaga listrik menjadi tenaga mekanik. Motor Dc magnet permanen

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

22

merupakan motor DC yang dirancang agar bekerja dalam tegangan sumber DC.
Umumnya motor DC bekerja antara 6-12 Volt. Diluar itu motor DC bekerja antara 24
Volt hingga lebih.
Motor DC menggunakan prinsip magnetic untuk dapat berputar. Motor DC
pada umumnya memiliki 2 buah magnet yang mengelilingi kawat kumparanya. Bila
ada suatu arus mengalir melalui kawat kumparan, maka arus tersebut akan
menciptakan medan magnet yang arahnya berlawanan di sekitar magnet. Jadi motor
dapat berputar.
Ketika kumparan diberi tegangan, medan magnet akan timbul di sekeliling
armature. Sisi kiri armature akan terdorong dari magnet sebelah kiri menuju ke
sebelah kanan sehingga tercipta putaran. Ketika armature menjadi sejajar dengan
magnet, commutator akan mengembalikan arah arus di dalam kumparan, sehingga
membalikkan medan magnet. Hal tersebut akan membuat armature kembali berputar
dari sebelah kiri ke sebelah kanan magnet [8]. Di bawah ini gambar dari motor DC
yang digunakan sebagai aktuator.

Gambar 2.9 Bagian Motor DC Magnet Permanent
Motor DC yang digunakan pada robot lengan ada 3 buah yaitu 2 buah motor
DC dengan gearbox dan sebuah motor wiper.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

23

2.6

Motor Servo Standart Sebagai Aktuator Kemudi
Penggunaan motor servo standart difungsikan untuk pengaturan arah kemudi,

sehingga saat terdapat halangan robot dapat menghindar. Servo adalah sebuauh motor
dengan system umpan balik tertutup dimana posisi dari motor akan diinformasikan
kembali ke rangkaian control yang ada di dalam motor servo. Motor ini terdiri dari
sebuah motor DC, serangkaian gear, potensiometer dan rangkaian control.
Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo.
Sedangakan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang
dikirim melalui kaki sinyal dari kabel motor.

Gambar 2.10 Motor Servo Standart
Pengendalian gerakan batang motor servo dapat dilakukan dengan menggunakan
metode PWM (Pulse Width Modulation). Teknik ini dari sumbu motor servo diatur
berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Tampak
pada gambar dengan pulsa 1,5 ms pada periode selebar 2 ms maka sudut dari sumbu
motor akan berada pada posisi tengah. Semakin lebar pulsa OFF maka akan semakin
besar gerakan sumbu ke arah jarum jam dan semakin kecil pulsa IFF maka akan

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

24

semakin besra sumbu ke arah jarum jam dan semakin kecil pulsa OFF maka akan
semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam [8].
Untuk menggerakkan motor servo ke kanan atau ke kiri, tergantung dari nilai
delay yang akan diberikan. Untuk membuat servo pada posisi center, berikan pulsa
1,5 ms. Untuk memutarkan servo ke kanan, berikan pulsa ≤1,3 ms dan pulsa ≥1,7
ms untuk berputar ke kiri dengan delay 20 ms, seperti ilustrasi berikut.

Gambar 2.11 Ilustrasi Merubah Arah Putaran Servo

2.7

Roda Gigi ( Gear )
Hal mendasar yang perlu diperhatikan dalam desain mekanik robot ialah

perhitungan kebutuhhan torsi untuk menggerakkan sendi atau roda motor, sebagai
penggerak utama (prime-mover) yang paling sering dipakai umumnya akan bekerja
optimal (torsi dan kecepatan putaran yang ideal) pada putaran yang relative tinggi
yang hal ini tidak sesuai bila porosnya dihubungkan langsung ke sendi gerak atau
roda. Sebab kebanyakan gerakan yang diperlukan pada sisi anggota badan robot
adalah relative pelan namun bertenaga. Untuk mencapa hal itu maka sangat
diperlukan sistem roda gigi (gear) yang sesuai, dan pada tugas akhir ini
menggunakan posisi gear medium.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

25

2.8

Logika Fuzzy (Fuzzy Logic)

2.8.1 Pendahuluan Fuzzy
Logika fuzzy merupakan salah satu komponen pembentukan soft computing.
Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A Zadeh pada tahun 1965.
Dasar logika fuzzy adalah teori himpunan fuzyy. Pada teori himpunan fuzzy, peranan
derajat keanggotaan sebagai penentu keberadaan element dalam suatu himpunan
sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau mempership
function menjadi ciri utama dari penalaran dengan logika fuzzy tersebut. Logika
fuzzy dapat dianggap sebagai kotak hitam (blackbox) yang menghubungkan antara
ruang input menuju ke ruang output, seperti yang diilustrasikan gambar berikut [5].

Persediaan
barang akhir

KOTAK
HITAM

Produksi
barang esok
hari

Pemet aan input -out put pada m asalah produksi

Gambar 2.12 Contoh Pemetaan Input-Output
Dimana Logika fuzzy memiliki tujuh alasan kuat untuk dipakai, yakni karena
konsep logika fuzzy mudah dimengerti dengan menggunakan dasar teori himpunan,
logika fuzzy sangat fleksibel, memiliki toleransi teradap data yang tidak tepat,
mampu memodelkan fungsi–fungsi nonlinier yang sangat kompleks, dapat
membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara
langsung tanpa melalui proses pelatihan, dapat bekerjasama dengan teknik–teknik
kendali secara konvensional, dan yang terpenting adalah logika fuzzy didasarkan

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

26

pada bahasa alami, sehingga mudah dimengerti karena menggunakan bahasa sehari –
hari (Cox, 1994)
Metode Fuzzy yang terkenal ada dua, yakni SUGENO dan MAMDANI.
Dimana keduanya sebenarnya memiliki proses yang sama dari fuzifikasi hingga
inferen rule, bedanya ketika memasuki proses defuzifikasi, dimana keluaran
MAMDANI berupa himpunan fuzzy, sedangkan SUGENO menggunakan keluaran
beruap konstanta atau persamaan. Sehingga, MAMDANI memiliki keuntungan
proses keluaran yang lebih intuitif namun membutuhkan proses yang lama,
sedangkan SUGENO memiliki keuntungan proses yang cepat namun sedikit
kehilangan intuitifnya [5].

2.8.2 Metode Sugeno
Penalaran dengan metode sugeno hampir sama dengan penalaran mamdani,
hanya saja output (konsekuen) sistem tidak berupa himpunan fuzzy, melainkan
berupa konstanta atau persamaan linier. Sugeno mengusulkan penggunaan singleton
sebagai fungsi keanggotaan dari konsekuen. Singleton adalah sebuah himpunan fuzzy
dengan fungsi keanggotaan pada titik tertentu mempunyai sebuah nilai 0 di luar titik
tersebut. Metode ini diperkenalkan oleh Takagi Sugeno Kang pada tahun 1985 [6].
a. Model Fuzzy Sugeno Orde-Nol
Secara umum bentuk model fuzzy Sugeno orde-nol adalah ;
IF (x1 is A1) • (x2 is A2) • (x3 is A3) • ...... • (xN is AN) THEN z=k

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

(2.1)

27

Dengan A1 adalah himpunan fuzzy ke-i sebagai anteseden, dan k adalah suatu
konstanta (tegas) sebagai konsekuen.
b. Model Fuzzy Sugeno Orde-Satu
Secara umum bentuk model fuzzy Sugeno ordo-satu adalah :
(2.2)

IF (x1 is A1) • ...... • (x
N is AN) THEN z = p1*x1 + … + pN*xN + q

Dengan A1 adalah himpunan fuzzy ke-i sebagai anteseden, dan p1 adalah
suatu konstanta (tegas) ke-i dan q juga merupakan konstanta dalam
konsekuen.
Apabila komposisi aturan menggunakan metode sugeno, maka deffuzifikasi
dilakukan dengan cara mencari nilai rata-ratanya.
Pada metode sugeno cara pengevaluasian rule hampir sama dengan metode yang
lainya.
1

1

A3

1

B1
0 .1

0 .0
0

x1

0

X

R u le 1 : IF x is A 3 (0 .0 )

OR

1

0

x1

R u le 2 : IF x is A 2 (0 .2 )

0

A1

y1

A N D y is B 2 (0 .7 )

AND
(m in )

x1

k1

Z

z is k1 (0 .1 )

0 .2
0

Y

TH EN

k2

Z

z is k 2 (0 .2 )
1
0 .5

0 .5

0

X

R u le 3 : IF x is A 1 (0 .5 )

0

1

B2
0

0 .1

THEN
0 .7

0 .2
X

Y

y is B 1 (0 .1 )

1

A2

1

y1

OR
(m a x )

THEN

k3

z is k 3 (0 .5 )

Gambar 2.13 Evaluasi Rule Metode Sugeno

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Z

28

z1

0

Z

Crisp Output
z1

WA =

(k1) × k1 + ( k 2) × k 2 + ( k 3) × k 3 0.1× 20 + 0.2 × 50 + 0.5 × 80
=
= 65
(k1)+ ( k 2)+ ( k 3)
0.1 + 0.2 + 0.5

Gambar 2.14 Defuzzifikasi Metode Sugeno
Dari gambar 2.13 dan 2.14 untuk aturan penggunaan operator logika sama dengan
metode yang lainya, namun pada bagian keluaran dan hasil dari defuzzifikasi metode
sugeno berupa singleton, dimana dengan keluaran ini sangat cocok untuk
diaplikasikan pada mikrokontroler dikarenakan keterbatasan kecepatan eksekusi dan
memori [6].

2.8.3 Komponen Dasar Fuzzy [6]
Dalam pemanfaatannya, fuzzy logic memerlukan tiga proses dasar, yakni
fuzzyfikasi, inferen rule, dan defuzzyfikasi.

Gambar 2.15 Konsep Dasar Logika Fuzzy
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

29

Dimana :
1. Derajat Keanggotaan adalah derajat dimana nilai crisp compatible
dengan fungsi keanggotaan ( dari 0 sampai 1 ), juga mengacu sebagai
tingkat keanggotaan, nilai kebenaran, atau masukan fuzzy.
2. Label adalah nama deskriptif yang digunakan untuk mengidentifikasikan
sebuah fungsi keanggotaan.
3. Fungsi

Keanggotaan

adalah

mendefinisikan

fuzzy

set

dengan

memetakkan masukan crisp dari domainnya ke derajat keanggotaan.
4. Masukan Crisp adalah masukan yang tegas dan tertentu.
5. Lingkup / Domain adalah lebar fungsi keanggotaan. Jangkauan konsep,
biasanya bilangan, tempat dimana fungsi keanggotaan dipetakkan.
6. Daerah Batasan Crisp adalah jangkauan seluruh nilai yang mungkin
dapat diaplikasikan pada variabel sistem.

2.8.4 Fungsi Keanggotaan [5]
Fungsi keanggotaan (membership function) adalah suatu kurva yang
menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering
juga disebut dengan derajat keanggotan) yang memiliki interval antara 0 sampai 1.
Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah
dengan melalui pendekatan fungsi. Pada logika fuzzy terdapat macam-macam fungsi
keanggotaan. Adapun beberapa fungsi yang bisa digunakan.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

30

1. Representasi Linear
Pada representasi linear, pemetaan input ke derajat keanggotaannya
digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi
pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. Ada dua keadaan
himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada nilai
dominan yang memiliki derajat keanggotaan nol (0) bergerak ke kanan menuju ke
nilai domain yang memiliki derajat keanggotaan lebih tinggi (gambar 2.16).
1

1
derajat keanggot aan µ(x)

derajat keanggot aan

µ(x)

0

0

a

Domain

b

Gambar 2.16 Representasi Linear Naik

a

domain

b

Gambar 2.17 Representasi Linear Turun

Fungsi keanggotaan :
(2.3)
Ke dua, merupakan kebalikan yang pertama. Garis lurus dimulai dari nilai domain
dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak menurun ke
nilai domain yang meimiliki derajat keanggotaan lebih rendah (gambar 2.17).
Fungsi keanggotaan :
(2.4)

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

31

2. Representasi Kurva Segitiga
Kurva segitiga pada dasarnya merupakan gabungan antara dua garis (linear)

1

µ(x)

derajat keanggot aan

seperti terlihat pada (gambar 2.18)

0

a

c

b
domain

Gambar 2.18 Kurva Segitiga
Fungsi keanggotaan :
(2.5)
3. Representasi Kurva Trapesium
Kurva trapesium pada dasarnya seperti bentuk segitiga, hanya saja ada

derajat keanggot aan µ(x)

beberapa titik yang memiliki nilai keanggotaan 1 (gambar 2.19).

1

0

a

b

c
domain

Gambar 2.19 Kurva Trapesium

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

d

32

Fungsi keanggotaan :

(2.6)

4. Representasi Kurva Bentuk Bahu
Daerah yang terletak di tengah-tengah suatu variabel yang direpresentasikan
dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik dan turun (misalkan :
DINGIN bergerak ke SEJUK dan HANGAT bergerak ke PANAS). Tetapi terkadang
salah satu sisi dari variable tersebut tidak mengalami perubahan. Sebagai contoh,
apabila telah mencapai kondisi PANAS, kenaikan temperatur akan tetap berada pada
kondisi PANAS.
Himpunan fuzzy ’bahu’, bukan segitiga digunakan untuk mengakhiri variabel
suatu daerah fuzzy, bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan
bergerak dari salah ke benar. Gambar 2.19 menunjukkan variabel TEMPERATUR
dengan daerah bahunya.
Bahu Kanan

µ(x)

derajat keanggot aan

Bahu Kir i

28

40

Temp (°C)

Gambar 2.20 Daerah ’bahu’ Pada Variabel TEMPERATUR

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

33

Setelah proses fuzzyfikasi selesai, dilakukan evaluasi rule, rule yang akan
dibuat ini, bergantung dari pengalaman dari perancang sistem, semakin banyak
pengalaman, maka semakin baik pula hasil yang didapat.

Gambar 2.21 Prosedur Evaluasi Rule
Tahap terakhir adalah defuzzyfikasi, yang mengambil keluaran fuzzy dari
setiap label, untuk dijadikan output crisp. Menggunakan metode defuzzyfikasi COG,
keluaran nilai single tone dikombinasikan menggunakan bobot rata-rata. Rumus
COG, untuk perhitungan reduksi single tone adalah
(2.7)

2.9

Pemr ograman Bahasa C
Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin

Richard pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang
kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

34

tahun 1970-an di Bell Telephone Laboratories Inc. ( sekarang adalah AT&T Bell
Laboratories).
Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat
untuk komputer mikro. Untuk membuat versi-versi tersebut standar, ANSI (American
National Standards Institute) kemudian menetapkan standar ANSI untuk bahasa C.
Standar ANSI ini didasarkan dari standar UNIX yang diperluas. Standar ANSI
menetapkan sebanyak 32 buah kata-kata kunci (keyword) standar [3]. Ke 32 kata
kunci ini adalah :
Table 2.3 Kata Kunci (Keyword) Pada Bahasa C
auto

break

case

double else
enum
int
long
register
struct switch typedef

char

const

continue default

extern float
for
return short
signed
union unsigned void

do

goto
if
sizeof
static
volatile while

2.9.1 Alasan Menggunakan Bahasa C [3]
Beberapa alasan dapat dicatat mengapa bahasa C banyak digunakan,
diantaranya adalah sebagai berikut :
1. Bahasa C tersedia hampir disemua jenis computer.
2. Kode bahasa C sifatnya adalah portable. Aplikasi yang ditulis dengan
bahasa C untuk suatu computer tertentu dapat digunakan di computer lain
hanya dengan sedikit modifikasi.
3. Bahasa C hanya menyediakan sedikit kata-kata kunci.
4. Proses executable program bahasa C lebih cepat.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

35

5. Dukungan pustaka yang banyak, kehandalan bahasa C dicapai dengan
adanya fungsi-fungsi pustaka.
6. C adalah bahasa terstruktur.
7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat
menengah.
8. Bahasa C adalah compiler, karena C sifatnya adalah compiler, maka akan
menghasilkan executable program yang banyak dibutuhkan oleh programprogram komersial.

2.9.2 Struktur Penulisan Bahasa C
Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari
program harus dimengerti terlebih dahulu, atau sebagai pedoman penulis program.
Struktur dari program C dapat diihat sebagai kumpulan dari sebuah atau lebih
fungsi-fungsi. Fungsi pertama yang harus ada di di program C yang sudah ditentukan
namanya, yaitu fungsi main(). Artinya program C minimal memiliki satu fungsi
(fungsi main()) [3]. Berikut ini adalah struktur dari program C.
main()
{
statemen_1;
statemen_2;
……..
statemen_n;
}
fungsi_lain()
{
statemen_statemen;
}

Fungsi Utama

Fungsi-fungsi lain
yang ditulis oleh pemrogram komputer

Gambar 2.22 Struktur Penulisan Bahasa C

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

36

Keterangan :
1. Dimulai dari tanda { hingga tanda } disebut tubuh fungsi/blok.
2. Tanda () digunakan untuk menggapit argument fungsi, yaitu nilai yang
dilewatkan ke fungsi. Pada fungsi main() tidak ada argument yang
diberikan, maka tidak ada entri di dalam ().
3. Kata void menyatakan bahwa fungsi ini tidak memiliki nilai balik.
4. Tanda { menyatakan awal eksekusi program dan tanda } menyatakan
akhir ekseku