BAB II TINJ AUAN PUSTAKA
2.9 Pemrograman Bahasa C
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 Utama fungsi_lain() { statemen_statemen; } Fungsi-fungsi lain
yang ditulis oleh pemrogram komputer
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 eksekusi program.
5. Di dalam tanda { } bias tergantung sejumlah unit yang disebut pernyataan (statment). Umumnya pernyataan berupa instruksi untuk :
• Memerintah computer melakukan proses menampilkan string ke layar.
• Menghitung operasi matematik.
Bab ini menjelaskan tentang tahapan-tahapan pembuatan tugas akhir yang berjudul “Robot Becak Berbasis Mikrokontroler ATmega 8535 Dengan Logika Fuzzy” diantaranya terkait tentang perencanaan sistem, pernagkat keras (meliputi mekanik dan perangkat elektronika) dan perangkat lunak (meliputi algoritma sistem dan perencanaan fuzzy).
Tugas akhir ini juga membuat alat, berupa module robot sebagai obyek implementasi dari metode yang dibuat. Namun sesuai dengan dengan judulnya, maka pada bab ini lebih difokuskan pada pembahasan perangkat lunak yang menjadi pokok dalam tugas akhir ini berupa implementasi metode fuzzy logic.
3.1 Blok Diagram Sistem
Perancangan sistem dadri tugas akhir ini mempunyai konfigurasi blok diagram sistem seperti gambar 3.1 dengan alur kerja sistem sebagai berikut.
a. Servo digunakan sebagai penggerak kemudi, apabila robot mendeteksi
keberadaan benda di depan, samping kanan dan kiri.
b. Motor DC digunakan sebagai penggerak robot, dimana sebagai pengendalian
c. Ultrasonik RRF 04 diguanakn sebagai detector halangan, diolah oleh ATmega 8535 untuk mendapatkan path menghindari halangan.
d. Path menghindari halangn dijadikan sebagai masukan yang diolah oleh ATmega 8535 menggunakan fuzzy decision untuk menjadikan keputusan aksi motor servo dan motor dc sebagai penggerak utama.
Gambar 3.1 Blok Diagram Sistem
Dari sistem tersebut diketahui bahwa sistem terintegrasi antara mekanik, actuator, sensor dan kontroler. Sehingga setiap adanya hambatan atau kesalahan pada salah satu bagian tersebut membuat sistem tidak dapat berjalan dengan semestinya.
Untuk lebih detailnya maka dibuat sub-sub sistem, antara lain sub sistem
avoids obstacle dan sub sistem fuzzy decision maker. Dan titik berat pengerjaan tugas
akhir ini terletak pada sub sistem fuzzy decision maker yang digunakan untuk menentukan pergerakan mobile robot.
3.1.1 Sub Sistem Obstacle Avoidance
Sub sistem ini bertugas untuk mengolah data dari sensor, berupa tiga buah sensor ultrasonic RRF 04 menggunakan mikrokontroler ATmega 8535 dan data keluaran informasi berupa data path obstacle avoidance, yakni posisi halangan dan
Ult rasonic Obst acle Avoidance Fuzzy Decision M aker M ot or Servo
jarak halangan. Informasi tersebut nantinya akan digunakan pula sebagai masukan data kedua dalam proses fuzzy.
Gambar 3.2 Blok Diagram Sistem Obstacle Avoidance
Dengan adanya ultrasonic, sub sistem ini dapat mendeteksi adanya benda atau obyek sebagai halangan di depan, samping kanan dan kiri dengan jangkauan 180° pada sumbu y positif, berdasarkan pantulan ultrasonic yang dipancarkan oleh
transmitter dan diterima oleh receiver, kemudian diolah oleh RRF 04 sehingga dapat
diambil datanya dalam satuan waktu (nilai TCNT). Sehingga mikrokontroler dapat mengkalkulasi data-data respon hindar dari jarak bebas yang nantinya digunakan sebagai data masukan di mikrokontroler utama. Setelah data diolah maka mikrokontroler akan menginstruksikan pada bagian aktuator untuk melakukan aksi.
Pada sub bab sistem obstacle avoidance ini data drai sensor akan diupdate serta diulang dan datanya dikirim ke mikro utama sub sistem fuzzy decision maker sebagai data matang dari halanganan, sehingga akan meringankan dan mempercepat kerja dari mikro utama.
3.1.2 Sub Sistem Fuzzy Decision Maker
Sub sistem ini akan menjadi titik fokus pengerjaan dalam tugas akhir ini, dimana tugasnya mengolah data masukan dari path obstacle avoidance agar dapat di proses menjadi keluaran aksi gerakan mobile robot.
Gambar 3.3 Blok Diagram Sistem Fuzzy Decision Maker
Karena kenyataanya dalam kehidupan sehari-hari manusia jarang
menggunakan hitungan numeric, tetapi lebih sering menggunakan hitungan kira-kira. Semisal seorang sopir sedang mengemudi, ketika ada belokan dia harus memutar setir mobilnya, namun dia hanya berusaha menjaga agar mobil tidak keluar jalur atau menabrak, dengan cara memutar setir secukupnya.
Selain itu, pengguna logika fuzzy dalam sistem tidak memerlukan tingkat kepastian yang tinnggi, karena selalu bergerak atau berubah (dinamis), tetapi yang dibutuhkan adalah kecepatan respon proses dan kemudahan user untuk memprogram robot menjadi cerdas yang memiliki kemampuan untuk memutuskan aksi gerak berdasarkan dua masukan berupa target dan halangan secara seimbang. Karena
kebanyakan sistem yang sudah ada, seperti pada tinjauan pustaka, menggunakan
behavior base, priority base maupun heuristic base.
Dengan menggunakan fuzzy, data masukan asli (crisp input) dari path menghindari halangan, dijadikan masukan fuzzy (fuzzy input) terlebih dahulu berdasarkan membership function yang dirancang, kemudian masukan fuzzy tersebut, diproses dengan fuzzy inferen system (FIS) yang disesuaikan dengan aturan (rule) yang dibuat untuk menghasilkan keluaran fuzzy (fuzzy output), setelah didapat keluaran fuzzy, maka dilakukan defuzzifikasi menggunakan single tone agar didapatkan keluaran asli (crisp output) yang bias digunakan sebagai data uuntuk mengontrol servo sehingga menjadikan aksi gerakan robot.
Semakin banyak fungsi keanggotaannya, seharusnya semakin halus dan baik pula pergerakanya karena jangkauan toleransinya kecil, jika pembuatan aturanya sesuai. Namun untuk tahapan pembuatan sistem ini, dilakukan melalui pengujian dengan membership function yang minim terlebih dahulu, karena mudah dalam membuat implementasi program dan eksekusi nantinya, baik merubah banyak
membership function, merubah bentuk membership function atau jangkauan untuk
tiap membership function.
Begitu juga untuk pembuatan aturan (rule base) yang bias ditabelkan juga akan dikaji lebih lanjut dengan menanmbahkan kondisi-kondisi tertentu ataupun dengan menghilangkan beberapa kondisi yang tidak terlalu signifikan agar proses
eksekusinya lebih cepat dan ringan serta lebih baik. Karena masukan fuzzy berjumlah tiga masukan yaitu :
1. Masukan jarak bebas halangan dari ultrasonic satu 2. Masukan jarak bebas halangan dari ultrasonic dua 3. Masukan jarak bebas halangan dari ultrasonic tiga
Maka diperlukan tabel bertingkat untuk pembuatan rule base dalam bentuk tabel standart, namun tidak terbatas sampai disini, karena dapat dilakukan pengembangan (baik berupa penambahan, pengurangan atau perubahan beberapa kondisi, jika diperlukan) agar perfoma lebih maksimal dan respon lebih cepat dan ringan.
Digunakanya metode single tone dalam tahap defuzifikasi dikarenakan metode tersebut tidak terlalu rumit, selain itu juga single tone lebih mudah implementasi programnya dan lebih cepat dalam proses eksekusinya serta memerlukan memori yang tidak terlalu banyak dalam aplikasi di mikrokontroler yang terbatas dengan memori dan kecepatan proses setiap intruksi yang ada. Nantinya
membership output juga akan disesuaikan agar sistem berjalan lebih optimal,
perancangan sistem dengan membership output yang lebih banyak, seharusnya menghasilkan keluaran yang lebih baik dan halus. Karena semakin halus langkah robot bergerak semakin baik dan semakin banyak pula kombinasi aturan yang dibuat. Untuk lebihh detail mengenai perancangan fuzzy itu sendiri akan dibahas tersendiri, dalam pokok bahasan perangkat lunak khususnya dibagian perencanaan sistem logika fuzzy.