TA : Analisa Perbandingan Metode Fuzzy Logic Control dan Metode Virtual Force Field (VFF) Untuk Dynamic Obstacle Avoidance.

(1)

i

OBSTACLE AVOIDANCE

TUGAS AKHIR

Nama : Shochibah Yatimatul Asmak

Nim : 11.41020.0039

Program : S1 (Strata Satu)

Fakultas : Teknologi dan Informatika Jurusan : Sistem Komputer

INSTITUT BISNIS DAN INFORMATIKA STIKOM SURABAYA


(2)

x DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN SYARAT ... ii

MOTTO ... iii

HALAMAN PERSEMBAHAN ... iv

HALAMAN PENGESAHAN ... v

HALAMAN PERNYATAAN ... vi

ABSTRAK ... vii

KATA PENGANTAR ... viii

DAFTAR ISI ... x

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ... xvii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 3

1.4 Tujuan ... 3

1.5Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 6

2.1 Visual Basic.Net ... 6


(3)

xi

2.1.4 Koordinat Form ... 9

2.2 Grafis ... 9

2.2.1 GDI+ ... 9

2.2.2 Koordinat Tampilan Layar ... 10

2.2.3 Gambar Grafis Vektor 2 Dimensi ... 11

2.3 Penampilan Gambar ... 11

2.4 Posisi Awal Robot ... 12

2.5 Kesalahan Arah ... 13

2.6 Obstacle Avoidance ... 15

2.6.1 Metode Analisa Ujung Tepi Object ... 15

2.6.2 Kepastian Gerak Terhadap Obstacle ... 16

2.7 Fuzzy Logic Control ... 17

2.7.1 Himpunan Fuzzy ... 19

2.7.2 Fungsi Keanggotaan ... 19

2.7.3 Operator Dasar ... 19

2.7.4 Penalaran Monoton ... 20

2.7.5 Fungsi Implikasi ... 21

2.7.6 Metode Sugeno ... 21

2.8 Metode Virtual Force Field ... 22

BAB III METODE PENELITIAN ... 25


(4)

xii

3.1.1 Alat Penelitian ... 27

3.1.2 Bahan Penelitian ... 28

3.2.Tahap Penelitian ... 28

3.2.1 Studi Literatur ... 28

3.2.2 Perancangan Perangkat Lunak ... 29

BAB IV PENGUJIAN SISTEM ... 57

4.1.Pengujian Perangkat Lunak ... 57

4.1.1. Pengujian Target Robot ... 57

4.1.2. Pengujian Derajat Sensor ... 60

4.1.3. Pengujian Pergerakan Kemudi ... 63

4.1.4. Pengujian Output Metode Fuzzy Logic Controller ... 65

4.1.5. Pengujian Output Metode Virtual Force Field (VFF) ... 70

4.2.Pengujian Keseluruhan Sistem ... 75

4.2.1 Gerak Robot Terhadap Koordinat Target Menggunakan Metode Fuzzy Logic Controller ... 76

4.2.2 Gerak Robot Terhadap Koordinat Target Menggunakan Metode Virtual Force Field (VFF) ... 85

4.3 Analisa Perbandingan Keseluruhan Sistem Menggunakan Metode Fuzzy Logic Controller (Fuzzy) dan Metode Virtual Force Field (VFF) ... 95

4.3.1 Pengujian Perbandingan Waktu Tempuh Robot ... 95

4.3.2 Pengujian Perbandingan Jarak Tempuh Robot ... 98

BAB V PENUTUP ... 101


(5)

xiii

DAFTAR PUSTAKA ... 104 LAMPIRAN ... 106 BIODATA PENULIS ... 122


(6)

1

BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

Pada era global ini teknologi telah berkembang pesat bahkan dalam segala bidang. Teknologi sering dimanfaatkan guna meringankan pekerjaan manusia, mengatasi kelalaian manusia serta mengerjakan pekerjaan dengan resiko tinggi apabila dikerjakan oleh manusia. Seperti misalnya dalam bidang militer. Sistem pertahanan negara telah mengembangkan teknologi yang memiliki kecerdasan dan keakuratan yang cukup tinggi dalam membantu mempertahankan negara agar lebih optimal. Dalam bidang militer, tentunya dibutuhkan kendaraan tempur yang mampu beradaptasi dengan cepat terhadap lingkungan yang belum diketahui sehingga apabila terdapat halangan, kendaraan tempur tersebut akan dapat menghindar dan menentukan jalur lain untuk menuju target. Namun pekerjaan tersebut tentunya terlalu berbahaya apabila dilakukan oleh manusia. Untuk mengurangi resiko kecelakaan, maka dibuatlah robot yang dapat menggantikan kendaraan tempur, sehingga robot tersebut dapat berjalan tanpa ada manusia di dalamnya.

Untuk menciptakan teknologi yang dapat menggantikan manusia dalam pengoperasian kendaraan tempur tersebut, sebelumnya dibutuhkan adanya simulasi untuk melihat gerak robot menuju target dengan memperhatikan beberapa halangan (obstacle), terutama obstacle bergerak.


(7)

Telah ada penelitian dengan topik sama, yaitu “Simulasi Trajectory Planning dan Pembentukan Formasi pada Robot Obstacle Avoidance”. Simulasi pada penelitian tersebut menggunakan metode Fuzzy Logic Control untuk mengendalikan kecepatan robot apabila mendeteksi adanya halangan. Namun pada penelitian tersebut, hanya dilakukan percobaan untuk obstacle diam saja. Sehingga belum dilakukan percobaan untuk obstacle bergerak. Sedangkan dalam proses pergerakannya, robot harus dapat mendeteksi segala bentuk obstacle, baik obstacle diam maupun bergerak, dan menghindari obstacle tersebut. Robot harus mampu menghindari obstacle dan memilih jalur yang sesuai untuk menuju target. Pada penelitian ini, akan dilakukan analisa perbandingan antara metode Fuzzy Logic Control dan metode Virtual Force Field (VFF) untuk menghindari obstacle bergerak, serta mampu mencapai target yang sudah ditentukan.

1.2 Rumusan Masalah

Dari latar belakang yang telah diuraikan, dapat ditarik beberapa rumusan masalah sebagai berikut :

1. Bagaimana menentukan dan mendesain metode Fuzzy Logic Control dan metode Virtual Force Fiels (VFF) menentukan sudut belok ketika terdapat obstacle.

2. Bagaimana perbandingan waktu yang ditempuh robot ketika menggunakan metode Fuzzy Logic Control dan metode Virtual Force Fiels (VFF).


(8)

3

3. Bagaimana perbandingan jarak yang ditempuh robot menuju target menggunakan metode Fuzzy Logic Control dan metode Virtual Force Fiels (VFF).

1.3 Batasan Masalah

Dalam perancangan dan pembuatan simulasi ini, terdapat beberapa batasan masalah, antara lain :

1. Menggunakan 1 robot simulasi.

2. Menggunakan skala perbandingan ukuran objek simulasi dengan keadaan nyata 1 : 5

3. Dimensi maksimal objek penghalang 60 x 60 pixel. 4. Dimensi robot 10 x 10 pixel.

5. Sensor ultrasonic hanya terdapat pada bagian depan robot. 6. Jarak baca sensor ultrasonic 60 pixel.

1.4 Tujuan

Adapun tujuan dari pembuatan simulasi ini yaitu :

1. Menentukan dan mendesain metode Fuzzy Logic Control dan metode Virtual Force Fiels (VFF) menentukan sudut belok ketika terdapat obstacle.

2. Menentukan perbandingan waktu yang ditempuh robot menggunakan metode Fuzzy Logic Control dan metode Virtual Force Fiels (VFF).


(9)

3. Menentukan perbandingan jarak yang ditempuh robot menuju target ketika menggunakan metode Fuzzy Logic Control dan metode Virtual Force Fiels (VFF).

1.5 Sistematika Penulisan

Laporan Tugas Akhir ini ditulis dengan sistematika penulisan sebagai berikut:

1 BAB I : PENDAHULUAN

Bab ini membahas tentang latar belakang masalah, perumusan masalah, pembatasan masalah, tujuan penulisan laporan tugas akhir, dan sistematika penulisan tugas akhir.

2 BAB II : LANDASAN TEORI

Bab ini membahas tentang berbagai teori yang mendukung tugas akhir ini. Hal tersebut meliputi Visual Basic.Net, Obstacle Avoidance, Odometry, Fuzzy Logic Controller, dan Virtual Force Field (VFF).

3 BAB III : METODE PENELITIAN

Dalam bab ini dijelaskan tentang metode penelitian serta alasan penggunaan metode tersebut dalam penelitian. Pada bab ini dijelaskan pula tentang pembuatan perangkat lunak (software) dengan menggunakan Visual Basic.net sebagai pengontrol grafis pada simulasi, serta penerapan metode penelitian pada simulasi.


(10)

5

4 BAB IV : PENGUJIAN DAN ANALISIS SISTEM

Bab ini berisi tentang pengujian simulasi secara keseluruhan. Pengujian yang dilakukan meliputi sudut peletakan sensor, pergerakan menuju koordinat tujuan, arah belok robot, penentuan parameter Fuzzy dan VFF untuk pergerakan robot, serta analisa perbandingan jarak tempuh dan waktu tempuh robot menuju target menggunakan metode Fuzzy dan VFF.

5 BAB V : PENUTUP

Bab ini berisi tentang kesimpulan penelitian serta saran untuk pengembangan penelitian berikutnya.


(11)

6

BAB II

LANDASAN TEORI 2.1 Visual Basic.Net

Visual Basic.Net 2008 (VBNet 2008) adalah salah satu program berorientasi objek yang diproduksi oleh Microsoft Corp. Program ini biasanya dipaketkan bersama-sama dengan Visual C# 2008 dan Visual C++ 2008 dalam paket Visual Studio 2008. Teknik pemrograman pada VBNet 2008 dapat dibuat lebih terstruktur dibandingkan dengan versinya yang terdahulu, yaitu Visual Basic 6 (VB 6) (Wardana, 2008:11).

2.1.1 Variable

Variable berguna sebagai penyimpan nilai sementara untuk dapat dipergunakan kembali. Dikatakan sementara karena nilai variable akan disimpan dalam memori komputer yang bersifat tidak permanen. Menurut Leong M, (2004:51) Visual Basic Net memiliki beberapa aturan dalam memberikan nama pada sebuah variable, diantaranya :

1. Nama variable harus diawali dengan karakter huruf, dan penamaannya tidak boleh menggunakan tambahan karakter khusus lain kecuali dengan menggunakan underscore (_).

2. Panjang maksimal karakter adalah 255.

3. Sifatnya unik sehingga tidak boleh ada dua deklarasi variable yang sama dalam prosedur.


(12)

7

VBNet menyediakan pustaka yang berisi fungsi konversi untuk mempermudah melakukan konversi variable dengan tipe data tertentu ke tipe data lain. Beberapa fungsi dalam pustaka VBNet tersebut adalah:

Tabel 2.1. Fungsi dalam Pustaka VBNet Fungsi Hasil Konversi Cbool Boolean

Cbyte Byte

Cchar Char

Cdate Date

CDbl Double

Cint Integer

CLng Long

CObj Object

2.1.2 Tipe Data

Tipe data adalah jenis nilai yang tersimpan dalam variable, bisa berupa huruf, angka, ataupun tanggal. Tipe data diperlukan agar VBNet dapat mengenali jenis data yang tersimpan dalam variable. Menurut Leong M, (2004:48) berikut beberapa jenis tipe data dan jangkauan nilai yang didukung oleh VBNet:

Tabel 2.2. Nilai dan Tipe Data Tipe Data Range

Boolean Hanya dapat diisi dengan TRUE (benar) atau FALSE (salah) Byte 0 – 255

Char 0 – 65535 Date

Merupakan nilai sebuah tanggal dan waktu 1 januari 0001 – 31 desember 9999, contoh: Dim Tgl as Date

Tgl = #9/16/2008 19:20:20#

Decimal

0 - +/- 79.228.162.514.264.337.593.543.950.

335 (tanpa bilanagn decimal di blakang koma) atau 0 - +/- 7,9228162514.264337593543950

335 (dengan bilangan decimal di blakang koma), contoh: Dim Nilai as Decimal

Nilai = 100,5

Double -1,79769313486231570E+308 - 1,7976931348 6231570E+308.


(13)

Tipe Data Range

Integer -2.147.483.648 - 2.147.483.648.

Long -9.223.372.036.854.775.808 - 9.223.372.036.854.775.807 Sbyte -128 – 127.

Short -32.768 - 32.767.

Single -3,4028235E+38 - -1,401298E-45 (untuk bilangan negatif) 1,401298E-45 - 3,4028235E+38 (untuk bilangan positif). String 0 – 2 milyar karakter.

Object Tipe data umum (sama seperti varian) yang dapat menampung berbagai tipe data lainnya.

2.1.3 Operator Matematika

Menurut Leong M (2004:163) VBNet telah merangkum fungsi matematika secara lengkap dalam class khusus yaitu class Math. Di dalam class Math dapat ditemukan banyak fungsi matematika yang berguna, misalnya fungsi trigonometri, logaritma, dan lain-lain. Beberapa fungsi pada class Math dapat dilihat pada Tabel 2.3.

Tabel 2.3. Fungsi pada Class Math E Bilangan natural atau e = 2,7182818284590452354

PI Konstanta diameter lingkaran yaitu phi = 3,14159265358979323846 Abs Fungsi absolut dari bilangan

Acoc Fungsi sudut dari cosinus bilangan Asin Fungsi sudut dari sinus bilangan Atan Fungsi sudut dari tangent bilangan

Atan2 Fungsi sudut dari tangen yang ditetapkan dari 2 bilanagn spesifik Ceiling Fungsi mencari bilangan terkecil dari angka yang lebih besar atau

sama dengan angka yang ditentukan Cos Fungsi cosines

Cosh Fungsi cosinus hiperbola dari suatu sudut Exp Fungsi eksponensial

Floor Fungsi mencari bilangan terbesar dari angka yang lebih besar atau sama dengan angka yang ditentukan

Log Fungsi log Log10 Fungsi log10

Max Mencari nilai maksimum atau terbesar Min Mencari nilai minimum atau terkecil Round Fungsi pembulatan


(14)

9

Sign Mencari tanda dari bilangan Sin Fungsi sinus

Sinh Fungsi sinus hiperbola dari sudut Sqrt Akar kuadrat dari bilangan Tan Fungsi tangent

Tanh Fungsi tangent hiperbola dari sudut 2.1.4 Koordinat Form

Seluruh form pada VBNet memiliki sebuah koordinat yang berguna untuk menentukan posisi gambar atau graphic pada form. Koordinat tersebut terdiri atas dua bagian yaitu koordinat horizontal dan koordinat vertikal yang biasa dilambangkan sebagai x dan y. Satuan yang digunakan dalam korrdinat form adalah pixel. Koordinat dimulai dari bagian kiri atas form yang merupakan koordinat dasar dari form yang memiliki nilai 0 pada koordinat x dan nilai 0 pada koordinat y (Priyanto, 2009:226).

2.2 Grafis

Grafis pada VBNet membutuhkan sistem operasi GDI+ (Graphic Device Interface) yang digunakan digunakan sebagai media yang dapat menjadi kanvas untuk menampilkan atau membuat gambar.

2.2.1 GDI+

GDI+ (Graphic Device Interface) adalah suatu class yang berfungsi untuk memproses sebuah grafis pada VBNet. GDI+ mampu mengolah grafis vektor dua dimensi (garis), imaging (bitmap) dan typography (font) pada layar maupun printer. Menurut Hendra, dengan adanya GDI+ programmer tidak perlu


(15)

mengetahui detail masing-masing peralatan untuk menampilkan grafis diatasnya, tetapi cukup menggunakan fasilitas yang telah disediakan oleh GDI+ class.

2.2.2 Koordinat Tampilan Layar

GDI+ menggunakan sistem koordinat, sehingga koordinat tersebut akan ditampilkan di layar (x, y), mulai dari titik koordinat 0, 0.

Gambar 2.1. Koordinat x,y (0, 0) (Hendra, 2011).

Tampilan pada layar komputer koordinat tersebut terbentuk dari pixel yang terdapat pada layar komputer.


(16)

11

Gambar 2.3. Proses Pembuatan Garis Koordinat 4,2 sampai 12,8

2.2.3 Gambar Grafis Vektor 2 Dimensi

Grafis vektor 2D merupakan proses penggambaran bentuk-bentuk seperti garis, kurva dan bentuk berdasarkan sekumpulan titik tertentu (pixel). Penggambaran objek 2D pada VBNet dapat menggunakan Object Pen dimana pen dibuat untuk proses pembentukan garis.

2.3 Penampilan Gambar

Proses penampilan gambar pada VBNet dari file gambar ke layer, dapat menggunakan objek yang berada pada VBNet yang berupa bitmap dan objek graphics. Objek bitmap (class bitmap) hanya mendukung beberapa format seperti BMP, GIF, JPEG, PNG, dan TIFF.

Contoh pemrograman :

Dim bitmap As New Bitmap (“Grapes.jpg”) E Graphics DrawImage (bitmap, 60, 10)


(17)

Gambar 2.4. Tampilan Contoh Program (Hendra, 2011)

2.4 Posisi Awal Robot

Posisi awal atau proses memperkirakan posisi robot, pada dasarnya menggunakan perhitungan dengan mengakumulasikan data jarak tempuh robot, yang dihasilkan dari sensor robot berupa rotary encoder di mana pulsa dari sensor tersebut akan digunakan untuk memperhitungkan jarak tempuh robot. Misalnya dengan menggunakan satuan milimeter. Untuk mendapatkan jumlah pulsa setiap satu kali putaran roda, digunakan rumus sebagai berikut (Ardilla, 2011):

... (2.1) pulsa_per_mm = resolusi encoder / K roda ... (2.2)

Pada sistem penggerak differential terdapat dua roda yaitu roda kanan dan roda kiri dan dimisalkan jumlah pulsa_per_mm untuk roda kanan adalah right_encoder dan roda kiri adalah left_encoder dan jarak antara dua roda adalah wheel_base, maka didapatkan jarak tempuh (distance) dan sudut orientasi ( ). Rumusnya adalah sebagai berikut.

distance = (left_encoder+right_encoder)/2 ... (2.3)


(18)

13

Karena θ adalah sudut dalam radian maka untuk mengetahui sudut dalam derajat (heading) digunakan rumus sebagai berikut :

... (2.5). Dari ketentuan di atas didapatkan bahwa nilai heading akan bernilai negatif (-) ketika robot berputar melawan arah jarum jam dan akan bernilai positif (+) ketika robot berputar searah dengan jarum jam. Dengan mengetahui jarak dan sudut (distance dan θ) maka kita dapat mengetahui koordinat x dan koordinat y dengan persamaan trigonometri sebagai berikut :

distan ce

(Xpos, Ypos)

Gambar 2.5. Panjang Jarak Koordinat.

Dari ilustrasi pada Gambar 2.5, koordinat dari robot dapat kita ketahui dengan rumus:

... (2.6) ... (2.7) 2.5 Kesalahan Arah

Dalam menentukan error arah hadap dari robot terhadap titik tujuan maka digunakan theorema phytagoras yang akan menghasilkan posisi (path) saat ini dan jarak terhadap titik tujuan (Ardilla, 2011). berikut perhitungannya:


(19)

X = X_tujuan – X_pos ... (2.8) Y = Y_tujuan – Y_pos ... (2.9) Target_distance = ... (2.10)

Dari heading robot yang telah diketahui kita dapat menghitung error arah hadap (heading error) robot terhadap titik tujuan.

Gambar 2.6. Sudut α, β, dan £ (Ardilla, 2011).

Gambar 2.6 menunjukkan ilustrasi untuk mencari heading error (α) di mana β adalah target bearing yaitu sudut antara posisi robot saat ini terhadap titik tujuan. Sedangkan garis berwarna biru adalah garis bantu yang masing-masing sejajar dengan sumbu x dan sumbu y. Untuk mendapat nilai β, digunakan rumus sebagai berikut :

... (2.11)


(20)

15

2.6 Obstacle Avoidance

Bagian ini menjelaskan tentang metode yang digunakan untuk menghindari halangan dengan cukup relevan yaitu menggunakan deteksi ujung tepi object, tahap kepastian pergerakan terhadap obstacle, metode yang support terhadap relevansi obstacle avoidance.

2.6.1 Metode Analisa Ujung Tepi Object

Metode obstacle avoidance yang lebih umum dan sering digunakan untuk menghindari rintangan adalah deteksi ujung tepi. Dalam metode ini, algoritma dicoba untuk menentukan posisi dari sisi kendala vertikal dan kemudian mengarahkan robot pada salah satu sisi ujung tepi obstacle. Metode ini digunakan dalam penelitian, serta beberapa proyek lainnya semua menggunakan sensor jarak meliputi sensor sharp dan sensor ultrasonic untuk mendeteksi obstacle. Kelemahan dalam menghindari rintangan yang berbasis pendeteksian ujung tepi adalah robot akan berhenti terlebih dahulu di depan halangan karena proses pengeksekusian perintah terlalu lama. Untuk menanggulangi kelemahan dari pendeteksian tersebut sebaiknya komputer yang digunakan lebih cepat dalam pengeksekusian program agar robot tidak berhenti terlebih dahulu ketika pengambilan data.

Kelemahan lebih lanjut dari metode deteksi ujung tepi adalah sensitivitas untuk sensor akurasi seperti sensor ultrasonic, yang sebagian besar digunakan dalam aplikasi mobile robot. Dimana posisi minimal untuk batas benda dengan sensor pada posisi spasial adalah 10-50 cm, tergantung pada jarak kendala dan sudut antara permukaan benda.


(21)

2.6.2 Kepastian Gerak Terhadap Obstacle

Sebuah metode untuk merepresentasikan probabilitas halangan dalam jenis model jaringan telah dikembangkan di Carnegie-Mellon University (CMU). Model metode ini sering disebut dengan kepastian jaringan (certainty grid). Secara khusus metode ini sangat cocok untuk akomodasi data sensor yang kurang akurat seperti jarak pengukuran dari sensor ultrasonic.

Dalam metode jaringan, area kerja robot diwakili oleh array dua dimensi, yang dilambangkan sebagai sel. Setiap sel berisi nilai yang pasti (CV) nilai tersebut menunjukkan bahwa halangan berada dalam wilayah sel tersebut. Dalam perkembangannya metode ini dikembangkan oleh CMU, dengan memperbarui nilai kepastian CV dengan fungsi probabilitas yang memperhitungkan karakteristik sensor yang diberikan. Sebagai contoh sensor ultrasonic, yang memiliki pandangan seperti bidang yang berbentuk kerucut. Sebuah sensor ultrasonic hanya akan memantulkan gelombang untuk mendapatkan jarak ke objek dalam bidang baca berbentuk kerucut, dan sensor tidak dapat menentukan lokasi sudut objek. (Gambar menunjukkan area A di mana sebuah obstacle harus berada dalam range untuk menghasilkan pengukuran jarak d).


(22)

17

Jika benda terdeteksi oleh sensor ultrasonic, hal ini dimungkinkan bahwa objek ini lebih dekat dengan sumbu akustik (gelombang) sensor, daripada bidang kerucut pembacaan sensor ultrasonic. Dengan alasan tersebut CMU membuat nilai fungsi Cx dengan meningkatkan nilai CV pada sel yang terdekat pada sumbu akustik lebih dari nilia CV pada sel-sel yang terdapat di pinggir bidang kerucut (pembacaan sensor).

Dalam aplikasi metode CMU ini, mobile robot akan diam saat pembacaan panorama lingkungannya dengan 24 sensor ultrasonic. Selanjutnya, fungsi Cx diterapkan pada masing-masing sensor ultrasonic dalam upayanya memperbarui informasi jaringan pergerakan. Sehingga, robot dapat bergerak menuju lokasi baru, dan robot akan berhenti kembali untuk mengulangi prosedur tersebut. Setelah robot melintasi ruangan dengan cara ini, kepastian jaringan yang dihasilkan merupakan jalur atau peta yang cukup akurat dari ruangan.

2.7 Fuzzy Logic Controler

Logika fuzzy adalah cabang dari sistem kecerdasan buatan (Artificial

Intelegent) yang memanipulasi kemampuan manusia dalam berpikir ke dalam bentuk

algoritma yang kemudian dijalankan oleh mesin. Logika fuzzy merupakan cara yang tepat untuk memetakan ruang input ke dalam ruang output. Sebagai contoh: a. Manajer pergudangan mengatakan pada manajer produksi, seberapa

banyak persediaan barang pada akhir minggu ini, kemudian manajer produksi akan menetapkan jumlah barang yang harus diproduksi esok hari.


(23)

b. Pelayan restoran memberikan pelayanan terhadap tamu, kemudian tamu akan memberikan tip yang sesuai atas baik tidaknya pelayan yang diberikan.

c. Anda mengatakan pada saya seberapa sejuk ruangan yang anda inginkan, saya akan mengatur putaran kipas yang ada pada ruangan ini.

d. Penumpang taksi berkata pada sopir taksi seberapa cepat laju kendaraan yang diinginkan, sopir taksi akan mengatur pijakan gas taksinya.

Contoh pemetaan input-output dalam bentuk grafis terlihat pada Gambar 2.8 berikut.

Gambar 2.8 Pemetaan Input Output .

Ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain: a. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari

penalaran fuzzy sangat sederhana dan mudah dimengerti. b. Logika fuzzy sangat fleksibel.

c. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat.

d. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.


(24)

19

e. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. f. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara

konvensional.

2.7.1 Himpunan Fuzzy

Pada himpunan tegas (crisp), nilai keanggotan suatu item x dalam himpunan A yang sering ditulis dengan μA[x], memiliki 2 kemungkinan yaitu:

1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan.

2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

2.7.2 Fungsi Keanggotaan

Fungsi keanggotaan adalah kurva yang menunjukkan pemetaan titik – titik input data kedalam nilai keanggotaannya (derajat keanggotaan) yang memiliki interval antara 0 sampai 1.

2.7.3 Operator Dasar

Seperti halnya himpunan konvensional, ada beberapa operasi yang didefinisikan secara khusus untuk mengkombinasi dan memodifikasi himpunan fuzzy.


(25)

a. Operator AND

Operator ini berhubungan dengan operasi interseksi pada himpunan. α -predikat sebagai hasil operasi dengan operator AND diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen pada himpunan – himpunan yang bersangkutan.

μA∩B = min(μA[x], μB[y]) ... (2.13)

b. Operator OR

Operator ini berhubungan dengan operasi union pada himpunan. α -predikat sebagai hasil operasi dengan operator OR diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen pada himpunan – himpunan yang bersangkutan.

μAUB = max(μA[x], μB[y]) ... (2.14)

c. Operator NOT

Operator ini berhubungan dengan operasi komplemen pada himpunan. α -predikat sebagai hasil operasi dengan operator NOT diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen pada himpunan – himpunan yang bersangkutan.

μA’= 1-μA[x] ... (2.15)

2.7.4 Penalaran Monoton

Metode ini digunakan sebagai dasar untuk teknik implikasi fuzzy. Jika 2 daerah fuzzy direalisasikan dengan implikasi sederhana sebagai berikut:


(26)

21

IF x is A THEN y is B transfer function:

Y = f ((x, A), B)

Maka system fuzzy dapat berjalan tanpa harus melalui komposisi dan dekomposisi fuzzy. Nilai output dapat diestimasi secara langsung dari nilai keanggotaan yang berhubungan dengan antesedennya.

2.7.5 Fungsi Implikasi

Bentuk umum aturan yang digunakan dalam fungsi implikasi: IF x is A THEN y is B

Dengan x dan y adalah skalar, A dan B adalah himpunan fuzzy. Proposisi yang mengikuti IF disebut anteseden, sedangkan proposisi yang mengikuti THEN disebut konsekuen. Secara umum, ada dua fungsi implikasi, yaitu:

1. Min (minimum), fungsi ini akan memotong output himpunan fuzzy 2. Dot (product), fungsi ini akan menskala output himpunan fuzzy.

2.7.6 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 linear. Metode ini diperkenalkan oleh Takagi-Sugeno Kang pada tahun 1985.


(27)

1. 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

Dengan Ai adalah himpunan fuzzy ke-i sebagai anteseden, dan k adalah suatu konstanta (tegas) sebagai konsekuen.

2. Model Fuzzy Sugeno Orde-Satu

Secara umum bentuk model fuzzy SUGENO Orde- Satu adalah: IF (x1 is A1) • ... • (xN is AN) THEN z =p1 * x1 + … + pN * xN + q

Dengan Ai adalah himpunan fuzzy ke-i sebagai anteseden, dan pi 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.

2.8 Metode Virtual Force Field

Gambar 2.9. Konsep Metode Virtual Force Field yang disederhanakan (Purnomo, 2011)


(28)

23

Metode Virtual Force Field (VFF) yang disederhanakan adalah berbasis vektor, bukan grid, sehingga dari metode VFF diambil konsepnya sebagian, yaitu pada perhitungan vektor. Perhitungan vektor digunakan untuk mengetahui arah yang harus dituju robot. Sedangkan untuk pemetaan obstacle, digunakan range tertentu untuk menentukan apakah pada area tersebut terdapat halangan atau tidak. Jika terdapat halangan maka robot akan bergerak ke arah resultan antara halangan dan target. Jika tidak, maka ia akan langsung bergerak menuju target. Untuk perhitungan besar dan arah resultan digunakan perhitungan vektor dengan metode jajar genjang dengan persamaan seperti di bawah ini.

Gambar 2.10. Metode Jajar Genjang (Jonifan, 2008)

... (2.16) ... (2.17) ... (2.18) ... (2.19)

A

B

F

( )

( )

( ) Y

X = 0


(29)

Dimana, dan merupakan koordinat (x,y) dari vektor A. Sedangkan dan adalah koordinat (x,y) dari vektor B. Karena , maka akan bernilai 1, dan akan bernilai 0.

... (2.20) ... (2.21)

Dimana, merupakan penjumlahan koordinat x kedua vektor, dan merupakan penjumlahan koordinat y kedua vektor.

... (2.22) Dimana F merupakan besar vektor hasil penjumlahan vektor A dan vektor B. Hasil penjumlahan tersebut memiliki arah vektor yang dapat diketahui nilainya dengan rumus sebagai berikut :

... (2.23) Sehingga,


(30)

25

BAB III

METODE PENELITIAN

Metode penelitian yang digunakan meliputi studi kepustakaan dan penelitian laboratorium. Studi kepustakaan merupakan pengumpulan materi atau teori yang berkaitan dengan permasalahan, terutama metode penelitian yang akan digunakan, yang diperoleh dari buku, jurnal, maupun informasi dari internet. Dari informasi studi kepustakaan yang diperoleh, maka dilakukan penelitian laboratorium. Penelitian laboratorium adalah perancangan sistem keseluruhan seperti pada Gambar 3.1 dan Gambar 3.2, uji coba dan pengambilan data sistem yang akan dibahas pada Bab IV.

Gambar 3.1. Blok Diagram Sistem Menggunakan Metode Fuzzy Logic Control

Gambar 3.2. Blok Diagram Sistem Menggunakan Metode Virtual Force Field (VFF)


(31)

Dari blok diagram pada Gambar 3.1 dan Gambar 3.2 dapat dijelaskan bahwa robot memiliki sensor ultrasonic, sensor posisi, dan sensor tujuan sebagai masukan. Dimana masukan-masukan ini akan disimulasikan pada program. Untuk sensor ultrasonic yang dimanfaatkan untuk sensor jarak, akan digambarkan sebagai suatu garis yang memiliki koordinat-koordinat dan membentuk suatu vektor garis yang telah ditentukan (x1, y1, z1).

Gambar 3.3. Pembentukan koordinat sensor Ultrasonic

Pada gambar 3.3, terdapat garis vektor yang berwarna hijau, merah, dan biru (x1, y1, z1). Garis-garis tersebut merupakan range 3 sensor ultrasonic yang terdapat pada robot yang nilainya ditentukan menggunakan rumus theorema phytagoras. Ketiga garis tersebut akan menghasilkan nilai yang kemudian akan diolah menggunakan metode Fuzzy Logic Control dan metode Virtual Force Field (VFF), sehingga robot dapat menentukan sudut belok robot ketika terdapat obstacle, serta sebagai sensor yang dapat mendeteksi adanya obstacle. Selain sensor ultrasonic, terdapat pula sensor posisi, digambarkan dengan letak


(32)

27

koordinat (x, y) robot. Koordinat robot digunakan sebagai titik acuan untuk menggerakkan robot.

Gambar 3.4. Pembentukan Garis Bantu Menuju Target

Kemudian masukan selanjutnya adalah koordinat (xt, yt) tujuan. Koordinat tujuan adalah koordinat yang akan dituju robot. Untuk menuju ke target, dibuatlah garis bantu (tu1 dan tu2). Nilai dari garis bantu tersebut akan diolah menggunakan metode Fuzzy Logic Controller dan Virtual Force Field bersama dengan nilai yang terhitung dari sensor ultrasonic. Sehingga robot dapat menentukan sudut belok menuju target maupun untuk menghindar ketika menemukan obstacle.

3.1 Alat dan Bahan Penelitian 3.1.1 Alat Penelitian

Alat yang digunakan untuk proses pengerjaan penelitian ini adalah Personal Computer (PC) / Laptop. Alat tersebut bertujuan untuk membuat simulasi 2 dimensi menggunakan aplikasi Microsoft Visual Studio 2008.


(33)

3.1.2 Bahan Penelitian

Bahan penelitian yang akan diteliti oleh penulis dalam penelitian ini adalah sebagai berikut :

1. Simulasi robot pada Microsoft Visual Studio 2008 dapat bergerak di setiap koordinat layer.

2. Koordinat target difungsikan sebagai titik acuan arah pergerakan dan pemberhentianpergerakan robot.

3. Pembentukan garis sensor ultrasonic pada simulasi sebagai pendeteksi obstacle.

4. Kemampuan robot untuk menghindari obstacle obstacle yang bergerak.

5. Perbandingan hasil perhitungan sudut belok robot ketika mendeteksi adanya obstacle menggunakan metode Fuzzy Logic Controller dan Virtual Force Field untuk menentukan jarak terpendek dan waktu tercepat menuju target.

3.2 Tahap Penelitian

Langkah-langkah yang dilakukan untuk menyelesaikan penelitian ini dibagi menjadi beberapa bagian yaitu:

3.2.1 Studi Literatur

Merupakan langkah yang bertujuan untuk mencari materi/teori dari buku penunjang, jurnal, artikel, maupun informasi dari internet yang berkaitan dengan permasalahan maupun metode penelitian yang digunakan, sehingga membantu dalam pembuatan sistem.


(34)

29

3.2.2 Perancangan Perangkat Lunak

Perancangan perangkat lunak dibagi menjadi beberapa bagian pengerjaan yaitu sebagai berikut :

1. Desain Robot

Pada simulasi ini, robot didesain dengan ukuran 10 x 10 pixel dengan skala perbandingan 1 : 5. Sehingga jika simulasi diterapkan di kehidupan nyata, robot berukuran 50 x 50 cm. Kemudian robot mempunyai 3 sensor ultrasonic yang dipasang pada bagian depan robot yaitu kiri, tengah, dan kanan. Posisi sensor kiri dan kanan mempunyai sudut 300 dari sensor tengah. Setiap sensor didesain dengan jarak baca sensor maksimal sebesar 60 pixel. Artinya, dalam kondisi sebenarnya, jarak baca sensor ultrasonic maksimal 300 cm. Pada penelitian ini sensor digunakan untuk mengetahui adanya obstacle pada sudut dan jarak tertentu dari robot. Hasil tampilan yang diharapkan dapat dilihat pada Gambar 3.8.

2. Perancangan Arena Simulasi

Arena simulasi dibuat dengan menggunakan picture box yang merupakan tools pada toolbox yang disediakan Microsoft Visual Studio 2008. Picture box ini akan digunakan sebagai penampung gambar arena untuk robot. Gambar yang akan dimasukkan ke dalam picture box adalah gambar bertipe file bitmap, karena bitmap akan dapat dibaca oleh semua program grafis.


(35)

Gambar 3.5. Penggambaran Picture Box untuk Arena Simulasi

Hasil dari penggambaran arena menggunakan picture box dapat dilihat pada Gambar 3.5. Langkah-langkah penggambaran tersebut adalah sebagai berikut :

1. Setelah form siap, arahkan kursor pada panel Toolbox. 2. Pilih komponen Picture Box.

3. Arahkan kursor pada lembar form.

4. Klik pada koordinat tertentu, tahan kemudian drag kursor sampai ukuran tententu.

Setelah picture box berhasil tergambar pada form seperti pada Gambar 3.5, langkah selanjutnya adalah mengatur properties dari picture box tersebut yang disesuaikan dengan desain penulis. Untuk ukuran arena, penulis telah


(36)

31

mendesain arena dengan ukuran 1100 x 700 pixel. Artinya, ukuran sebenarnya adalah 5500 x 3500 cm. Ukuran tersebut sudah cukup untuk pergerakan robot dengan ukuran robot 10 x 10 pixel serta sesuai dengan resolusi pada Personal Computer (PC) / Laptop. Selain mengatur ukuran, diperlukan pula pengaturan gambar yang akan disisipkan pada picture box.

Gambar 3.6. Pengaturan Location dan Ukuran Picture Box

Penjelasan untuk pengaturan location dan ukuran picture box dapat dilihat pada Gambar 3.6. Location merupakan koordinat (x, y) dimana picture box akan diletakkan. Disini, penulis mengatur koordinat location untuk picture box adalah pada koordinat (12,12). Berikut adalah langkah-langkah untuk pengaturan location dan ukuran picture box :

1. Klik pada picture box yang telah dibuat dalam form. 2. Arahkan kursor pada panel Properties.


(37)

3. Klik pada item location, dan ubah nilainya menjadi 12:12 seperti yang ditandai dengan poin “a” pada Gambar 3.6.

4. Kemudian tetap pada properties picture box, klik pada item size, dan ubah nilainya menjadi 1100:700 seperti yang ditandai dengan poin “b” pada Gambar 3.6.

Gambar 3.7. Pengaturan Properties Picture Box untuk Menyisipkan Gambar

Berikut adalah langkah-langkah yang dilakukan untuk menyisipkan gambar pada picture box seperti pada Gambar 3.7 :

1. Klik pada picture box yang telah dibuat dalam form. 2. Arahkan kursor pada panel Properties.


(38)

33

4. Kemudian akan muncul jendela Select Resources, pilih Project resources file seperti yang ditandai sebagai poin “b” pada Gambar 3.7.

5. Klik tombol Import pada jendela Select Resources seperti yang ditandai sebagai poin “c” pada Gambar 3.7.

6. Selanjutnya akan muncul jendela Open untuk memilih gambar yang akan disisipkan. Masuk pada directory letak gambar disimpan, kemudian pilih gambar seperti yang ditandai sebagai poin “d” pada Gambar 3.7. kemudian klik tombol Open.

Tampilan arena simulasi yang dimasukkan pada picture box ketika program dijalankan dapat dilihat pada Gambar 3.8.

3. Perancangan Robot

Pembuatan robot pada simulasi ini juga menggunakan picture box sebagai penampung gambar. Langkah-langkah yang dilakukan untuk menampilkan gambar robot sama dengan langkah-langkah yang digunakn untuk menampilkan gambar arena simulasi. Perbedaannya hanya pada location dan ukuran robot. Untuk location, penulis meletakkan robot pada koordinat (276,470). Sedangkan untuk ukuran picture box yang digunakan untuk gambar robot adalah 10 x 10 pixel. Artinya, ukuran sebenarnya adalah 50 x 50 cm. Sehingga ketika program dijalankan, akan terlihat seperti pada Gambar 3.8.


(39)

Gambar 3.8. Tampilan Robot pada Arena Simulasi

4. Perancangan Program untuk Sensor Ultrasonic

Perancangan program untuk sensor ultrasonic merupakan proses penggambaran jarak baca maksimal sensor ultrasonic yang disimulasikan dengan pola garis. Garis tersebut memiliki panjang dan sudut tertentu, dimana garis tersebut akan digunakan untuk menghitung nilai jarak yang terbaca oleh sensor ultrasonic. Kemudian nilai tersebut akan digunakan sebagai titik acuan untuk menentukan sudut belok robot. Terdapat 3 buah sensor ultrasonic yang terpasang pada bagian depan robot. Yaitu sebelah kiri, tengah, dan kanan. Dimana setiap sensor memiliki jarak 300. Dan setiap pola garis memiliki panjang 60 pixel, yang artinya jarak baca maksimal sensor ultrasonic sebenarnya adalah 300 cm.


(40)

35

Gambar 3.9. Penggambaran Sensor Ultrasonic

Penggambaran sensor ultrasonic pada robot adalah seperti Gambar 3.9, dimana terdapat 3 sensor dengan jarak setiap sensor 300. Berikut adalah penulisan program untuk membentuk ketiga sensor tersebut :

Dim TENGAH As Double = VEKTOR(0, X1, Y1, T1) 'GARIS SENSOR DeRAJAT 0

Dim KANAN As Double = VEKTOR(1, X1, Y1, T1) 'GARIS SENSOR DERAJAT 30

Dim KIRI As Double = VEKTOR(2, X1, Y1, T1) 'GARIS SENSOR DERAJAT -30

Variable TENGAH, KANAN, dan KIRI adalah variable yang digunakan untuk menampung nilai jarak baca sensor. Sedangkan VEKTOR merupakan sebuah function yang berisi proses penggambaran jarak baca sensor serta proses perhitungan nilai tiap sensor. Berikut adalah isi program dalam function VEKTOR :

RS = 0

If ID = 0 Then

TS = T

End If

If ID = 1 Then

TS = T + ((30 / 180) * Math.PI)

End If

If ID = 2 Then

300


(41)

TS = T - ((30 / 180) * Math.PI)

End If

Program diatas merupakan proses penentuan sudut peletakan sensor menggunakan rumus radian.

Gambar 3.10. Radian Dalam Lingkaran. (http://math.rice.edu/).

Sedangkan untuk mengubah nilai dari radian ke derajat dapat menggunakan rumus 3.1 sebagai berikut:

... (3.1) Setelah menentukan sudut baca sensor, langkah selanjutnya adalah membuat pola garis baca sensor. Berikut adalah penulisan program pembuatan pola garis baca sensor :

Do Until WARNA <> WARNA_REF Or PLUS = 300 RS = RS + 0.2

XS = X + RS * Math.Cos(TS) YS = Y + RS * Math.Sin(TS)


(42)

37

PLUS = PLUS + 1 Loop

PLUS = 0

VEKTOR = Math.Sqrt((XS - X) * (XS - X) + (YS - Y) * (YS - Y))

Program diatas merupakan proses pembentukan pola garis jarak baca sensor, pola garis dibentuk berdasarkan titik-titik koordinat yang ditentukan menggunakan rumus trigonometri. Penarikan garis dilakukan setiap 0.2 pixel dan diulang selama 300 kali. Sehingga, panjang garis akan sama dengan 60 pixel. Untuk mengetahui jarak baca masing-masing sensor, digunakan rumus phytagoras seperti pada rumus 2.10. Sedangkan untuk menampilkan pola garis jarak baca sensor, menggunakan penulisan program seperti berikut :

If ID = 0 Then

G.DrawLine(New Pen(Color.Red), CSng(X), CSng(Y), CSng(XS), CSng(YS))

End If

If ID = 1 Then

G.DrawLine(New Pen(Color.Green), CSng(X), CSng(Y), CSng(XS), CSng(YS))

End If

If ID = 2 Then

G.DrawLine(New Pen(Color.Blue), CSng(X), CSng(Y), CSng(XS), CSng(YS))

End If

Perbedaan warna pada penggambaran garis sensor hanya dilakukan untuk mempermudah penulis untuk menyelesaikan penelitian. Proses keseluruhan penggambaran sensor ultrasonic dapat dilihat pada Gambar 3.11.


(43)

Gambar 3.11. Proses Penggambaran Sensor Ultrasonic

5. Perancangan Program Pergerakan Robot

Agar dapat menggerakkan robot, dibutuhkan komponen Timer yang digunakan sebagai penghitung waktu secara otomatis yang disediakan oleh Microsoft Visual Studio 2008. Komponen timer terletak pada panel toolbox, sama seperti picture box. Ada beberapa properties yang harus disesuaikan, seperti yang terlihat pada Gambar 3.12 berikut.

300

300

300

300

300


(44)

39

Gambar 3.12. Tampilan Properties Timer

Properties pada timer yang perlu disesuaikan adalah :

1. Enabled diubah menjadi False, ini dimaksudkan agar pada awal program dijalankan, timer tidak langsung berjalan.

2. Nilai interval diubah menjadi 10 ms atau 0.01 detik. Nilai interval dibuat sekecil mungkin agar pergerakan robot terlihat lebih halus.

Berikut merupakan penulisan program untuk menggerakkan robot menggunakan timer :

X = X + 1 * Math.Cos(TR) Y = Y + 1 * Math.Sin(TR)

Program untuk menggerakkan robot ditulis di dalam function timer. Karena ketika status timer berubah menjadi enabled, program yang dijalankan adalah program yang berada dalam function timer. Untuk menggerakkan robot, dibuatlah titik-titik koordinat yang ditentukan melalui rumus trigonometri seperti


(45)

halnya membuat titik-titik pada pola garis jarak baca sensor ultrasonic. Sehingga robot dapat bergerak mengikuti titik-titik koordinat tersebut.

6. Perancangan Program untuk Menentukan Koordinat Target Robot dan Koordinat Obstacle

Koordinat target yang dituju robot ditentukan oleh user, namun hanya bisa dilakukan sekali saja. Yaitu dengan cara mengarahkan kursor ke koordinat tertentu, kemudian klik kiri pada mouse, maka akan terbentuk objek yang merupakan target yang dituju robot. Berikut adalah penulisan program untuk menentukan koordinat target :

If e.Button = Windows.Forms.MouseButtons.Left Then

c = Color.Red

End If

If e.Button = Windows.Forms.MouseButtons.Right Then

c = Color.White

End If

If c <> Color.Green Then

PictureBox1.Image = ARENA.Clone

TextBox6.Text = CInt(e.X)

TextBox5.Text = CInt(e.Y)

XT = CInt(TextBox6.Text)

YT = CInt(TextBox5.Text)

PictureBox3.BackColor = Color.Red

PictureBox3.Location = UPDATE_LOKASI(XT, YT) TUJUAN = 1

End If

Ketika program dijalankan, hasilnya akan terlihat seperti pada Gambar 3.13.


(46)

41

Gambar 3.13. Penggambaran Koordinat Target

Selanjutnya adalah menentukan koordinat obstacle pada jalur yang akan dilalui oleh robot. Sehingga robot mendapatkan kendala dalam proses bergerak menuju target, selain itu obstacle juga digunakan sebagai sarana untuk mengetahui respon robot terhadap obstacle. Berikut adalah penulisan program untuk menentukan koordinat target dan obstacle diam :

If e.Button = Windows.Forms.MouseButtons.Right Then c = Color.Black

End If

If e.Button = Windows.Forms.MouseButtons.Left Then c = Color.White

End If

If c <> Color.Green Then

g.FillEllipse(New SolidBrush(c), New Rectangle(e.X - 10, e.Y - 10, 60, 60))

XO(j) = e.X YO(j) = e.Y

g.FillEllipse(New SolidBrush(d), New Rectangle(e.X - 10, e.Y - 10, 60, 60))

g.DrawImage(ARENA, 0, 0)

PictureBox1.Image = ARENA.Clone TUJUAN = 3


(47)

End If

Proses pembuatan target dan obstacle diam ini diletakkan pada event mouse move yang dimiliki oleh picture box yang menampung gambar arena simulasi. Mouse move merupakan event yang akan aktif ketika mouse melewati picture box.

. Untuk menentukan koordinat obstacle diam, caranya hampir sama dengan menentukan koordinat terget. Namun, user hanya dapat menentukan koordinat obstacle diam apabila koordinat target sudah ditentukan. Dengan cara mengarahkan kursor ke koordinat yang diinginkan, kemudian klik kanan pada mouse. Apabila user menekan klik kanan pada mouse, maka akan tercipta sebuah objek berwarna hitam. Objek inilah yang disimulasikan sebagai obstacle diam. Sedangkan apabila user klik kiri pada mouse, akan tercipta objek berwarna putih. Tidak akan terlihat karena arena simulasi juga berwarna putih. Sehingga ini berfungsi sebagai penghapus obstacle.

Ketika program dijalankan, hasilnya akan terlihat seperti pada Gambar 3.14.


(48)

43

Gambar 3.14. Penggambaran Koordinat Obstacle

7. Perancangan Program untuk Menentukan Arah yang Dituju Robot Untuk menentukan arah yang dituju robot, penulis memanfaatkan jarak dari koordinat tepi sensor (sensor ultrasonic kanan dan kiri) menuju koordinat target. Untuk lebih jelasnya dapat dilihat pada Gambar 3.15 berikut.

Gambar 3.15. Garis Bantu Menuju Target Garis bantu kiri (jarak ujung

tepi terhadap target)

Garis bantu kanan (jarak ujung tepi terhadap target) Ujung tepi sensor kiri

(koordinat awal (x,y))

Ujung tepi sensor kanan (koordinat awal (x,y))


(49)

Berikut adalah penulisan program untuk membuat garis bantu menuju target :

G = Graphics.FromImage(DIS_ARENA)

If ID = 1 Then

G.DrawLine(New Pen(Color.Green), CSng(X1), CSng(Y1), CSng(XS1), CSng(YS1))

PTR = TARGET1(1, XS1, YS1)

End If

If ID = 2 Then

G.DrawLine(New Pen(Color.Blue), CSng(X1), CSng(Y1), CSng(XS1), CSng(YS1))

PTL = TARGET1(2, XS1, YS1)

End If

Private Function TARGET1(ByVal ID As Integer, ByVal X1 As Double, ByVal Y1 As Double) As Double

TARGET1 = Math.Sqrt((XT - X1) * (XT - X1) + (YT - Y1) * (YT - Y1))

End Function

Cara yang digunakan untuk menarik garis dari setiap ujung sensor kanan dan kiri menuju target adalah menggunakan rumus theorema phytagoras. Setiap ujung sensor akan memiliki nilai koordinat x dan y. Nilai tersebut yang akan dimasukkan ke perhitungan dalam function TARGET1 sebagai X1 dan Y1. Sementara XT dan YT adalah nilai koordinat x dan y dari target.

8. Perancangan Program untuk Menuju Target dan Menghindari Halangan

Perancangan program ditulis dalam bentuk flowchart yang dapat dilihat pada Gambar 3.16 berikut.


(50)

45

START

Inisialisasi: Sensor kanan, kiri, tengah, target kanan,

target kiri

Jarak Target> = 0

Sensor tengah >= 20 Stop Koordinat Target Stop Jalan

Target kanan > Target kiri

Target kanan < Target kiri

Target kanan = Target kiri

Sensor kanan > Sensor kiri

Sensor kanan <Sensort kiri

Sensor kanan = Sensor kiri Belok kanan Belok kiri Belok kanan D D D A

Sensor kanan > Sensor kiri

Sensor kanan <Sensort kiri

Sensor kanan = Sensor kiri Belok kanan Belok kiri Belok kiri D D D B

Sensor kanan > Sensor kiri

Sensor kanan <Sensort kiri

Sensor kanan = Sensor kiri Belok kanan Belok kiri Lurus D D D C A B C D T T T T F F F T T T F F F F F F F F F F F T T T T T T T T

Gambar 3.16. Flowchart Program untuk Menuju Target dan Menghindari Halangan


(51)

Ketika simulasi dijalankan, pertama kali robot melakukan inisialisasi (konfigurasi sensor dan penentuan koordinat tujuan). Setelah inisialisasi, diperoleh nilai yang digunakan sebagai penggerak dan penentuan arah belok robot. Jika jarak dari posisi robot menuju target masih jauh maka robot akan memprioritaskan sensor tengah sebagai acuan pergerakan robot. Robot akan memeriksa arah robot terhadar target tujuan menggunakan jarak dari ujung sensor kanan dan kiri terhadap koordinat target, ketika terdapat obstacle robot akan lebih memprioritaskan sensor kanan dan kiri untuk menentukan arah belok robot guna menghindari obstacle. Setelah robot dapat menghindari obstacle, robot akan kembali menentukan arah dengan menggunakan parameter jarak antara ujung tepi sensor terhadap koordinat target (target kanan dan target kiri). Berikut merupakan program untuk arah target dan proses penghindaran obstacle:

Program menggunakan metode Fuzzy :

eror1 = KANAN1 - KIRI1 eror11 = PTL1 - PTR1

belok1 = belok1 + fuzzy_eror(eror1, eror11) TR1 = (Math.PI / 350) * belok1

XR1 = XR1 + KECEPATAN1 * Math.Cos(TR1) YR1 = YR1 + KECEPATAN1 * Math.Sin(TR1)

Program menggunakan metode VFF :

eror1 = KANAN1 - KIRI1 eror11 = PTL1 - PTR1

belok1 = belok1 + Math.Atan(eror1) + Math.Atan(eror11) TR1 = (Math.PI / 350) * belok1

XR1 = XR1 + KECEPATAN1 * Math.Cos(TR1) YR1 = YR1 + KECEPATAN1 * Math.Sin(TR1)


(52)

47

9. Perancangan Program Kontrol Sistem

Perancangan program kontrol sistem merupakan perancangan program untuk mengontrol jalannya simulasi. Dimana simulasi akan dikontrol oleh 3 tombol. Diantaranya adalah tombol START, STOP, dan CLEAR. Pembuatan 3 tombol tersebut memanfaatkan komponen button yang disediakan oleh Microsoft Visual Studio 2008.

Gambar 3.17. Letak Komponen Button dan Penempatan pada Form

Proses pembuatan 3 tombol pada Gambar 3.17 sama dengan pembuatan picture box, yakni komponen button diambil dari panel toolbox kemudian di klik pada form. Berikut adalah fungsi dari masing-masing tombol :

a. Tombol START

Tombol START merupakan tombol yang digunakan untuk memulai menjalankan robot. Berikut adalah penulisan program pada tombol START :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


(53)

Timer1.Enabled = True End Sub

Terlihat bahwa ketika tombol START di tekan, maka Timer1 dijalankan. Dimana program untuk menjalankan robot telah ditulis di dalam function Timer1. Sehingga, ketika tombol START ditekan, maka robot akan berjalan sesuai dengan interval yang diatur pada Timer1.

b. Tombol STOP

Tombol STOP merupakan tombol yang digunakan untuk menghentikan jalannya robot. Berikut adalah penulisan program pada tombol STOP :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

Timer1.Enabled = False

End Sub

Tombol STOP adalah kebalikan dari tombol START. Jika di dalam tombol START terdapat perintah mengaktifkan Timer1, maka di dalam tombol STOP terdapat perintah untuk menon-aktifkan Timer1. Sehingga ketika tombol STOP ditekan, maka robot akan berhenti bergerak.

c. Tombol CLEAR

Tombol CLEAR berfungsi sebagai reset, yaitu menghapus seluruh objek yang berada di arena, kecuali robot. Serta mengembalikan sistem ke tahap awal seperti program pertama dijalankan. Namun, posisi robot tetap pada koordinat pada saat tombol CLEAR ditekan. Berikut adalah penulisan program pada tombol CLEAR :


(54)

49

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

Picture box1.Image = Picture box1.InitialImage PictureBox5.BackColor = Color.White

ARENA = Picture box1.Image.Clone DIS_ARENA = ARENA.Clone

End Sub

Picturebox1 kembali diisi dengan gambar inisialisasi, dimana gambar inisialisasi adalah gambar arena yang masih kosong tanpa koordinat target. Kemudian picturebox5 yang merupakan picturebox yang menampung obstacle diubah menjadi warna putih yang berarti menghapus obstacle.

10. Perancangan Program untuk Metode Fuzzy Logic Controller

Metode Fuzzy Logic Controller adalah metode yang mempunyai rule, dimana rule tersebut dapat didesain sendiri oleh peneliti. Sehingga sistem dapat berjalan sesuai dengan konsep pemikiran yang dituangkan peneliti ke dalam algoritma Fuzzy Logic Controller. Dalam simulasi ini, Fuzzy Logic Controller dimanfaatkan sebagai metode penelitian untuk menentukan nilai sudut belok robot untuk berjalan menuju target, maupun untuk menghindari obstacle. Terdapat toga langkah dalam pengerjaan metode Fuzzy Logic Controller, diantarana sebagai berikut :

A. Fuzzifikasi

Fuzzifikasi adalah proses mengubah nilai-nilai input yang bersifat pasti (crisp set) ke dalam bentuk fuzzy input. Ada dua input untuk menentukan arah belok robot, yaitu selisih nilai jarak sensor ultrasonic kanan dan kiri


(55)

(selisih_benda) dan selisih jarak dari ujung sensor ultrasonic kanan dan kiri menuju target (selisih_target). Berikut adalah fungsi keanggotaan selisih_benda dan selisih_target :

Gambar 3.18. Fungsi Keanggotaan Input Selisih (Delta) Jarak Sensor

Gambar 3.19. Fungsi Keanggotaan Input Selisih (Delta) Jarak Target

Keterangan :

BSN = Benda Sangat Negatif TSN = Target Sangat Negatif

BN = Benda Negatif TN = Target Negatif

BS = Benda Sedang TS = Target Sedang

BP = Benda Positif TP = Target Positif

BSP = Benda Sangat Positif TSP = Target Sangat Positif

BSN BN BS BP BSP

-100 -60 -15 0 15 60

Selisih_benda (pixel) De raj at Kea n ggo taan 0 1

TSN TN TS TP TSP

-1500 -60 -15 0

De raj at Kea n ggo taa n Selisih_target (pixel) 60 15 1 0


(56)

51

Langkah perhitungannya adalah dengan menghitung selisih antara jarak dari ujung sensor ultrasonic kanan dan kiri menuju target. Kemudian menghitung selisih nilai jarak yang terbaca sensor ultrasonic kanan dan kiri. Selanjutnya, kedua hasil tersebut akan dipetakan dalam fungsi keanggotaan Fuzzy. Berikut adalah penulisan perhitungan dalam program :

selisih_benda = KANAN - KIRI

selisih_target = TKIRI – TKANAN

Setelah mendapatkan kedua nilai input untuk Fuzzy, langkah selanjutnya adalah menghitung nilai derajat keanggotaan dari masing-masing fungsi keanggotaan. Berikut adalah penulisan program untuk proses perhitungan nilai derajat keanggotaan :

‘---selisih_benda---

BSN = FUZZYFIKASI(-100, -70, -60, -15, selisih) BN = FUZZYFIKASI(-60, -15, -15, 0, selisih) BS = FUZZYFIKASI(-15, 0, 0, 15, selisih) BP = FUZZYFIKASI(0, 15, 15, 60, selisih) BSP = FUZZYFIKASI(15, 60, 70, 100, selisih)

‘---selisih_target---

TSN = FUZZYFIKASI(-1500, -1500, -60, -15, dselisih) TN = FUZZYFIKASI(-60, -15, -15, 0, dselisih)

TS = FUZZYFIKASI(-15, 0, 0, 15, dselisih) TP = FUZZYFIKASI(0, 15, 15, 60, dselisih) TSP = FUZZYFIKASI(15, 60, 1500, 1800, dselisih)

Private Function FUZZYFIKASI(ByVal A As Double, ByVal B As Double, ByVal C As Double, ByVal D As Double, ByVal X As Double) As Double


(57)

FUZZYFIKASI = 0

ElseIf A <= X And X <= B Then

FUZZYFIKASI = (X - A) / (B - A) ElseIf B <= X And X <= C Then

FUZZYFIKASI = 1

ElseIf C <= X And X <= D Then

FUZZYFIKASI = (D - X) / (D - C) ElseIf D <= X Then

FUZZYFIKASI = 0

End If

End Function

B. Rule Set

Jumlah variable yang digunakan untuk membuat Fuzzy belok berjumlah dua, dan masing-masing variable memiliki lima himpunan fuzzy dalam fungsi keanggotaannya. Sehingga, terdapat dua puluh lima aturan. Untuk lebih jelasnya dapat dilihat pada Tabel 3.1 :

Tabel 3.1. Rule Set Arah Belok Selisih_target

se

li

sih

_be

n

da TSN TN TS TP TSP

BSN KIB KIB KIB KIB KIB BN KIB KIB KIS KIS KIS

BS KIS KIS T KAS KAS

BP KAS KAS KAS KAB KAB BSP KAB KAB KAB KAB KAB

Keterangan :

KIB = Kiri Besar KIS = Kiri Sedang


(58)

53

KAS = Kanan Sedang KAB = Kanan Besar

C. Defuzzifikasi

Defuzzifikasi merupakan kebalikan dari fuzzifikasi. Jika fuzzifikasi adalah proses mengubah nilai input yang bersifat pasti ke dalam input Fuzzy, defuzzifikasi adalah proses mengubah output himpunan Fuzzy menjadi output pasti atau tegas (crisp). Hal ini perlu dilakukan karena konstanta kendali Fuzzy hanya mengenal nilai tegas sebagai variable sinyal kontrol. Nilai dari crisp output inilah yang menjadi penentu arah robot. Proses pembentukan crisp output menggunakan metode sugeno menjadi bentuk crisp output dapat dituliskan dalam bentuk rumus sebagai berikut :

   i i i i i t FuzzyOutpu axis leton PosisiSing t FuzzyOutpu out Crisp ) (

_ ... (3.2)

Berikut ini adalah output Fuzzy setelah melalui tahap proses defuzzifikasi:

Gambar 3.20. Output Fuzzy Arah Belok

1

0 -6

0 3

KIP KIS S KAS KAP

-3 6

D er a ja t Kea n g g o ta a n Arah Belok (Derajat)


(59)

Output Fuzzy, yang dapat dilihat pada Gambar 3.20, adalah nilai yang akan menjadi sudut belok untuk pergerakan robot menuju target maupun menghindari obstacle.

11. Perancangan Program untuk Metode Virtual Force Field

Metode Virtual Force Field (VFF) yang digunakan dalam penelitian ini adalah metode VFF yang telah disederhanakan. Sehingga hanya diambil konsepnya sebagian yang berkaitan dengan vektor. Untuk mencapai target yang dituju dan dapat menghindari obstacle, ada beberapa parameter input yang akan diolah oleh metode VFF. Diantaranya adalah koordinat sensor kanan, koordinat sensor kiri, koordinat target kanan, dan koordinat target kiri.

Gambar 3.21. Penggambaran Input VFF A

B

C D

(XR, YR) (XS1, YS1)

(XS2, YS2)


(60)

55

Keterangan :

XR = Koordinat X Robot XS1 = Koordinat X Sensor Kiri YR = Koordinat Y Robot YS1 = Koordinat Y Sensor Kiri XT = Koordinat X Target XS2 = Koordinat X Sensor Kanan YT = Koordinat Y Target YS2 = Koordinat Y Sensor Kanan

Dari beberapa nilai input tersebut, akan diolah menggunakan rumus berikut :

... (3.3) ... (3.4) Vektor A merupakan jarak baca sensor kiri, vektor B merupakan jarak baca sensor kanan. Vektor C merupakan jarak dari ujung sensor kiri menuju target, dan vektor D merupakan jarak dari ujung sensor kanan menuju target.

... (3.5) ... (3.6) ... (3.7) ... (3.8) Untuk menentukan arah belok robot ketika robot mendeteksi adanya obstacle, digunakan perhitungan selisih vektor A dan B. Sedangkan untuk menentukan arah belok robot menuju target, digunakan perhitungan selisih vektor C dan D. Sehingga, dapat dimasukkan ke dalam perhitungan berikut.


(61)

Gambar 3.22. Sensor Robot Mendeteksi Obstacle

Untuk menghitung sudut arah belok robot untuk menghindari obstacle : ... (3.9)

Gambar 3.22. Garis Bantu Menuju Target

Untuk menghitung sudut arah belok robot untuk menuju target :

... (3.10)

A

B

R

C

D


(62)

57

BAB IV

PENGUJIAN SISTEM

4.1 Pengujian Perangkat Lunak

Diperlukan tahap pengujian sistem guna mengetahui hasil dari simulasi. Berikut alat dan bahan yang dibutuhkan dalam proses pengujian sistem :

1. Microsoft Visual Studio 2008. 2. Personal Computer (PC) / Laptop.

Berikut merupakan tahap-tahap pengujian sistem : 4.1.1 Pengujian Target Robot

A. Tujuan

Pengujian target robot dilakukan dengan tujuan untuk mengetahui apakah robot berjalan menuju target yang telah ditentukan oleh user atau tidak baik menggunakan metode Fuzzy Logic Controller (Fuzzy) maupun metode Virtual Force Field (VFF).

B. Prosedur Pengujian

1. Run program yang menggunakan metode Fuzzy (user / manual).

2. Arahkan pointer mouse pada koordinat yang diinginkan dalam koordinat arena untuk menentukan koordinat target (user / manual).


(63)

3. Klik kanan pada mouse pada koordinat yang telah ditentukan (akan terlihat titik merah pada koordinat tersebut sebagai koordinat target).

4. Klik button START pada program (user / manual).

5. Robot akan membuat garis bantu kanan dan kiri menuju koordinat target sebagai acuan arah belok robot menggunakan rumus theorema phytagoras (auto).

6. Ulangi langkah nomor 1 sampai langkah nomor 6, namun menggunakan program dengan metode VFF.

C. Hasil Pengujian

Dari hasil pengujian target robot, diperoleh hasil dari pembentukan garis bantu dari ujung sensor kanan dan kiri menuju target. Garis bantu tersebut digunakan untuk menentukan arah belok robot menuju target. Hasil dari pergerakan robot menuju target dengan letak koordinat target yang berbeda-beda menggunakan metode Fuzzy dan metode VFF dapat dilihat pada Tabel 4.1 dan Tabel 4.2.

Tabel 4.1. Pengujian Target Robot Menggunkan Metode Fuzzy Pengujian

Jarak Garis

Bantu (Pixel) Error

Garis Bantu Sudut Tujuan Target Terhadap Robot (Derajat) Sudut Pergerakan (Derajat) Error Arah (Derajat)

Kanan Kiri

1 455 412 43 1 -1 2

2 334 320 14 1 -1 2

3 297 258 39 1 -1 2

4 288 235 53 1 -1 2

5 333 274 59 1 -1 2

6 235 235 0 1 0 1

7 254 279 -25 1 1 0


(64)

59

Pengujian

Jarak Garis

Bantu (Pixel) Error

Garis Bantu Sudut Tujuan Target Terhadap Robot (Derajat) Sudut Pergerakan (Derajat) Error Arah (Derajat)

Kanan Kiri

9 220 220 0 1 0 1

10 131 180 -49 1 1 0

Tabel 4.2. Pengujian Target Robot Menggunkan Metode VFF Pengujian

Jarak Garis

Bantu (Pixel) Error

Garis Bantu Sudut Tujuan Target Terhadap Robot (Derajat) Sudut Pergerakan (Derajat) Error Arah (Derajat)

Kanan Kiri

1 143 167 -24 1 1 0

2 165 115 50 0 0 0

3 300 265 35 1 0 1

4 159 159 0 1 0 1

5 525 561 -36 1 0 1

6 173 121 52 0 0 0

7 190 250 -60 0 1 -1

8 566 523 43 1 0 1

9 337 366 -29 1 0 1

10 130 89 41 0 -1 -1

Gambar 4.1. Tampilan Simulai Robot Menuju Target

Koordinat Robot

Koordinat Target (input user menggunakan klik kanan pada mouse)

Garis bantu dari ujung sensor kanan dan kiri menuju koordinat target


(65)

D. Pembahasan

Dari hasil pengujian pada Tabel 4.1 dan Tabel 4.2, peneliti membuat garis bantu yang digambarkan dari ujung sensor kanan dan kiri menuju target menggunakan theorema phytagoras. Garis bantu tersebut digunakan untuk membantu robot mencapai target. Selanjutnya, dihitung selisih jarak dari ujung sensor kanan dan kiri menuju target. Nilai selisih tersebut yang akan diolah oleh Fuzzy dan VFF untuk mendapatkan arah belok robot menuju target.

4.1.2 Pengujian Derajat Sensor A. Tujuan

Pengujian derajat sensor dilakukan untuk mengetahui sudut dari sensor kanan dan sensor kiri terhadap sensor tengah dalam pendeteksian obstacle. Sehingga robot dapat menentukan sudut belok yang tepat untuk menghindari obstacle.

B. Prosedur Pengujian

1. Run program yang menggunakan metode Fuzzy (user / manual).

2. Arahkan pointer mouse pada koordinat yang diinginkan dalam koordinat arena untuk menentukan koordinat target (user / manual).

3. Klik kanan pada mouse pada koordinat yang telah ditentukan (akan terlihat titik merah pada koordinat tersebut sebagai koordinat target).

4. Klik button START pada program (user / manual).

5. Arahkan pointer mouse pada koordinat tertentu dalam arena untuk meletakkan koordinat awal obstacle bergerak (user / manual).


(66)

61

6. Klik kanan pada mouse (akan terlihat lingkaran hitam yang disimulasikan sebagai obstacle).

7. Amati pergerakan robot serta sudut sensor kanan dan kiri robot terhadap sensor tengah, apakah sudah sesuai dengan yang diharapkan atau belum. 8. Peletakan obstacle dilakukan diulang beberapa kali untuk mengetahui

hasil yang sesuai dari sudut sensor kanan dan kiri terhadap sensor tengah robot.

9. Ulangi langkah nomor 1 sampai langkah nomor 8, namun menggunakan program dengan metode VFF.

C. Hasil Pengujian

Dengan ukuran obstacle bergerak sebesar 60x60 pixel dan jarak baca maksimal sensor sebesar 60 pixel, diperoleh hasil pengujian seperti pada Tabel 4.3 dan Tabel 4.4 berikut :

Tabel 4.3. Pengujian Sudut Sensor Kanan dan Sensor Kiri Menggunakan Metode Fuzzy Pengujian Jarak Baca Sensor Tengah Letak Sudut Sensor (Derajat) Robot Menyentuh Obstacle Bergerak Respon Ketika Obstacle Berada Tepat Didepan Robot (s) Kanan Kiri

1 60 100 -100 Menyentuh 1,1

2 60 200 -200 Menyentuh 0,9

3 60 300 -300 Tidak 1

4 60 400 -400 Tidak 2,8

5 60 500 -500 Tidak 4,1

6 60 600 -600 Tidak 4,8

7 60 700 -700 Tidak 4,9

8 60 800 -800 Tidak 5,1


(67)

Tabel 4.4. Pengujian Sudut Sensor Kanan dan Sensor Kiri Menggunakan Metode VFF

Pengujian

Jarak Baca Sensor Tengah

Sudut Sensor

(Derajat) Robot Menyentuh Obstacle Bergerak

Respon Ketika Obstacle Berada

Tepat Didepan Robot (s) Kanan Kiri

1 60 100 -100 Menyentuh 1

2 60 200 -200 Menyentuh 1,5

3 60 300 -300 Tidak 1,1

4 60 400 -400 Tidak 3,1

5 60 500 -500 Tidak 4,8

6 60 600 -600 Tidak 5

7 60 700 -700 Tidak 5,5

8 60 800 -800 Tidak 5,8

9 60 900 -900 Tidak 6,2

Berdasarkan hasil pengujian yang dicatat pada Tabel 4.3 dan Tabel 4.4, Gambar 4.2 adalah tampilan robot ketika merespon adanya obstacle.

Gambar 4.2. Respon Robot Terhadap Obstacle

D. Pembahasan

Dari hasil pengujian sudut sensor pada Tabel 4.3 dan Tabel 4.4, diperoleh kesimpulan bahwa peletakan sensor kiri pada -300, sensor tengah pada 00, dan

sensor kanan pada 300 sudah sesuai. Karena dengan peletakan sudut sensor pada

Obstacle

Proses penghindaran


(68)

63

posisi tersebut, robot dapat memdeteksi obstacle dan dapat meminimalisasi kegagalan robot menghindari obstacle.

4.1.3 Pengujian Pergerakan Kemudi A. Tujuan

Pengujian pergerakan kemudi dilakukan dengan tujuan untuk mengetahui pergerakan robot ketika menghindari obstacle.

B. Prosedur Penelitian

1. Run program yang menggunakan metode Fuzzy (user / manual).

2. Arahkan pointer mouse pada koordinat yang diinginkan dalam koordinat arena untuk menentukan koordinat target (user / manual).

3. Klik kanan mouse pada koordinat yang telah ditentukan (akan terlihat titik merah pada koordinat tersebut sebagai koordinat target).

4. Klik button START pada program (user / manual).

5. Robot membentuk sensor ultrasonic secara otomatis (auto).

6. Arahkan pointer mouse pada koordinat yang akan dilalui robot dalam arena untuk meletakkan obstacle bergerak(user / manual).

7. Klik kanan pada mouse (akan terlihat lingkaran hitam yang disimulasikan sebagai obstacle).

8. Ulangi langkah nomor 1 sampai langkah nomor 7, namun menggunakan program dengan metode VFF.


(69)

C. Hasil Pengujian

Dengan peletakan sudut sensor kanan dan kiri sebesar 300 terhadap sensor tengah dan sesuai dengan prosedur pengujian yang dilakukan, maka diperoleh hasil pengujian seperti pada Tabel 4.5 dan Tabel 4.6 berikut :

Tabel 4.5. Pengujian Pergerakan Kemudi Menggunakan Metode Fuzzy Sensor Tengah (pixel) Sensor Kanan (pixel) Sensor Kiri

(pixel) Halangan (Obstacle) Kemudi

60 60 60 Tidak ada halangan Lurus

60 40 60 Halangan di kanan Belok Kiri

40

40 60 Halangan depan

kanan Belok Kiri

60 60 40 Halangan di kiri Belok kanan

40 60 40 Halangan depan kiri Belok kanan

10

20 30 Halangan di depan

kiri kanan Belok Kiri 10

30 20 Halangan di depan

kiri kanan Belok Kanan

Tabel 4.6. Pengujian Pergerakan Kemudi Menggunakan Metode VFF Sensor Tengah (pixel) Sensor Kanan (pixel) Sensor Kiri

(pixel) Halangan (Obstacle) Kemudi

60 60 60 Tidak ada halangan Lurus

60 40 60 Halangan di kanan Belok Kiri

40

40 60 Halangan depan

kanan Belok Kiri

60 60 40 Halangan di kiri Belok kanan

40 60 40 Halangan depan kiri Belok kanan

10 20 30 Halangan di depan

kiri kanan Belok Kiri

10 30 20 Halangan di depan

kiri kanan Belok Kanan D. Pembahasan

Dari hasil yang diperoleh dari pengujian pergerakan kemudi pada Tabel 4.5 dan Tabel 4.6, robot dengan menggunakan metode Fuzzy maupun menggunakan metode VFF dapat berbelok ke kanan ketika sensor kiri mengenai


(70)

65

obstacle. Sebaliknya, robot dapat bergerak ke kiri ketika sensor kanan mengenai obstacle. Apabila sensor depan mendeteksi adanya obstacle, robot akan membandingkan jarak sensor kanan dan kiri. Apabila lebih besar jarak sensor kanan, maka robot akan belok ke kanan. Sebaliknya, apabila lebih besar jarak sensor kiri, maka robot akan berbelok ke kiri. Sehingga, dari pengujian pergerakan kemudi, dapat disimpulkan bahwa kemudi dapat berjalan sesuai dengan yang diharapkan.

4.1.4 Pengujian Output Metode Fuzzy Logic Controller A. Tujuan

Pengujian metode Fuzzy Logic Controller (Fuzzy) ini dilakukan untuk mengetahui apakah robot bisa berjalan sesuai harapan apabila arah belok robot ditentukan menggunakan metode Fuzzy.

B. Prosedur Penelitian 1. Run program (user/manual).

2. Arahkan pointer mouse pada koordinat yang diinginkan dalam koordinat arena (user/manual).

3. Klik kanan mouse pada koordinat yang telah ditentukan (akan terlihat titik merah pada koordinat tersebut sebagai koordinat target).

4. Klik button START pada simulasi (user/manual).

5. Arahkan pointer mouse pada koordinat yang akan dilalui robot dalam arena untuk meletakkan obstacle bergerak(user / manual).


(71)

6. Klik kanan pada mouse (akan terlihat lingkaran hitam yang disimulasikan sebagai obstacle).

7. Sensor ultrasonic membaca obstacle yang ada di depannya kemudian memberikan input data pada Fuzzy (auto).

8. Amati pergerakan robot dan parameter data Fuzzy.

9. Lakukan pengujian beberapa kali untuk mengetahui hasil dari parameter Fuzzy yang sesuai.

C. Hasil Pengujian

Sesuai dengan prosedur pengujian, diperoleh hasil output Fuzzy untuk menentukan arah belok robot seperti pada Tabel 4.7 dan Tabel 4.8. Input yang digunakan untuk menentukan arah belok robot adalah delta sensor (selisih nilai jarak sensor kanan dan kiri) dan delta target (selisih nilai garis bantu dari ujung sensor kanan dan kiri menuju target).

Tabel 4.7. Pengujian Output Arah Belok Metode Fuzzy Logic Controller Berdasarkan Sensor Kanan dan Arah Target

No Waktu Delta Sensor Delta Target Output Pergerakan (derajat)

1 0,01 0,000 -41,207 -3,000

2 0,02 0,000 -40,338 -6,000

3 0,03 0,000 -39,448 -9,000

4 0,04 0,000 -38,537 -12,000

5 0,05 0,000 -37,603 -15,000

6 0,06 0,000 -36,647 -18,000

7 0,07 0,000 -35,669 -21,000

8 0,08 0,000 -34,669 -24,000

9 0,09 0,000 -33,646 -27,000

10 0,1 0,000 -32,600 -30,000

11 0,11 0,000 -31,531 -33,000

12 0,12 0,000 -30,440 -36,000

13 0,13 0,000 -29,324 -39,000


(72)

67

No Waktu Delta Sensor Delta Target Output Pergerakan (derajat)

15 0,15 0,000 -27,023 -45,000

16 0,16 0,000 -25,837 -48,000

17 0,17 0,000 -24,628 -51,000

18 0,18 0,000 -23,394 -54,000

19 0,19 0,000 -22,135 -57,000

20 0,2 0,000 -20,853 -60,000

21 0,21 0,000 -19,546 -63,000

22 0,22 -25,800 -34,638 -69,000

23 0,23 -26,200 -32,936 -75,000

24 0,24 -21,400 -27,405 -81,000

25 0,25 0,000 -9,265 -82,853

26 0,26 0,000 -8,374 -84,528

27 0,27 0,000 -7,565 -86,041

28 0,28 0,000 -6,834 -87,408

29 0,29 0,000 -6,172 -88,642

30 0,3 0,000 -5,573 -89,756

31 0,31 -23,800 -23,644 -95,756

32 0,32 -24,400 -21,657 -101,756

33 0,33 -22,800 -17,741 -107,756

34 0,34 -19,600 -12,260 -113,302

35 0,35 0,000 7,833 -111,735

36 0,36 0,000 7,074 -110,320

37 0,37 0,000 6,387 -109,043

38 0,38 -32,600 -22,879 -115,043

39 0,39 -33,600 -21,224 -121,043

40 0,4 -35,600 -20,454 -127,043

41 0,41 -36,400 -18,530 -133,043

42 0,42 -31,200 -10,752 -138,500

43 0,43 0,000 22,315 -135,500

44 0,44 0,000 21,049 -132,500

45 0,45 0,000 19,755 -129,500

46 0,46 0,000 18,432 -126,500

47 0,47 0,000 17,081 -123,500

48 0,48 0,000 15,699 -120,500

49 0,49 0,000 14,288 -117,643

50 0,5 -32,000 -16,634 -123,643

Tabel 4.8. Pengujian Output Arah Belok Metode Fuzzy Logic Controller Berdasarkan Sensor Kiri dan Arah Target

No Waktu Selisih Sensor Selisih Target Output Pergerakan (derajat)

1 0,01 0,000 24,685 3


(1)

100

B. Melewati Satu Obstacle

Rata-rata jarak tempuh menggunakan Fuzzy = = 734,576 pixel

Rata-rata jarak tempuh menggunakan VFF = = 782,939 pixel

Sehingga perbandingan jarak tempuh robot menuju target denga melewati satu obstacle antara kedua metode adalah :

C. Melewati Multiple Obstacle

Rata-rata jarak tempuh menggunakan Fuzzy = = 721,384 pixel

Rata-rata jarak tempuh menggunakan VFF = = 948,937 pixel

Sehingga perbandingan jarak tempuh robot menuju target dengan melewati multiple obstacle antara kedua metode adalah :


(2)

101 BAB V PENUTUP

Berdasarkan seluruh hasil pengujian yang dilakukan pada program simulasi analisa perbandingan metode Fuzzy Logic Controller dan Virtual Force Field untuk Dinamyc Obstacle Avoidance ini, maka diperoleh beberapa kesimpulan dan saran yang dapat disusun sebagai berikut :

4.1 Kesimpulan

Berikut adalah beberapa kesimpulan yang telah disusun berdasarkan hasil seluruh pengujian yang telah dilakukan :

1. Metode Fuzzy dan VFF yang digunakan pada simulasi ini, mempunyai 2

buah parameter input. Diantaranya adalah delta sensor (selisih antara jarak yang terbaca oleh sensor kanan dan sensor kiri) dan delta target (selisih antara jarak dari ujung sensor kanan dan ujung sensor kiri menuju target). Sedangkan output dari pengolahan kedua metode tersebut berupa nilai sudut belok robot yang digunakan robot untuk menuju target serta menentukan arah belok robot untuk menghindari obstacle dan menuju target.

2. Dari seluruh hasil pengujian, diperoleh nilai bahwa VFF memiliki


(3)

102

a. Tanpa Obstacle : sebesar 1,166 kali lebih panjang dibanding Fuzzy.

b. Satu Obstacle : sebesar 1,066 kali lebih panjang dibanding Fuzzy.

c. Multiple Obstacle : sebesar 1,315 kali lebih panjang dibanding Fuzzy.

3. Sedangkan untuk waktu tempuh robot menuju target, VFF memiliki waktu

tempuh:

a. Tanpa Obstacle : sebesar 1,123 kali lebih lama dibandingkan

dengan Fuzzy.

b. Satu Obstacle : sebesar 1,049 kali lebih lama dibandingkan dengan

Fuzzy.

c. Multiple Obstacle : sebesar 1,36 kali lebih lama dibandingkan dengan Fuzzy.

Fuzzy memiliki waktu tempuh lebih cepat karena dengan menggunakan Fuzzy, robot memiliki jarak tempuh yang lebih pendek.

4.2 Saran

Berikut adalah beberapa saran untuk pengembangan penelitian ini selanjutnya :

1. Untuk pembuatan simulasi selanjutnya, dapat menggunakan metode

Fuzzy untuk membuat robot formasi yang dapat menghidari obstacle diam maupun bergerak dengan menggabungkan penelitian ini dan

sebelumnya dengan judul “Simulasi Trajectory Planning dan


(4)

103

2. Penambahan beberapa sensor ultrasonic pada bagian belakang robot,

sehingga robot dapat mendeteksi adanya obstacle yang berada di belakang robot. Karena bukan tidak mungkin obstacle bergerak yang semula berada di depan robot berjalan dan dapat berada di belakang robot.

3. Simulasi dapat disingkronisasikan dengan robot nyata sehingga simulasi


(5)

104

DAFTAR PUSTAKA

Ardilla, Fernando, Bayu Sandi M., dan A. R. Anom B. 2011. Path Tracking Pada Mobile Robot Dengan Umpan Balik Odometry. Electronic Engineering Polytechnic Institute of Surabaya (EEPIS): Surabaya.

Borenstein, J. dan Y. Koren. 1989. Real-time Obstacle Avoidance for Fast Mobile Robots. IEEE Transactions on Systems, Man, and Cybernetics.

Hendra. 2011. Pemograman GDI+ pada VB.Net. http://ocw.stikom.edu/ course/download/2013/05/07-12-2011.10.38.15_970230_410113007_

Pemrograman-Visual-I-SI-KA_P1_Pert12_1.pdf. Diakses tanggal: 20

November 2014.

Jonifan, Iin Lidya, Yasman. 2008. Fisika Mekanika. http://ermach.staff.

gunadarma.ac.id/Downloads/files/16134/Bab+2++Vektor.pdf. Diakses

tanggal 8 Februari 2015

Kariyanto, Jusuf Dwi, Ali H. A., Fernando A., dan Nofria H. 2011. Navigasi Mobile Robot Berbasis Trajektori dan Odometry dengan Pemulihan Jalur Secara Otomatis. Politeknik Elektronika Negeri Surabaya: Surabaya.

Kusumadewi, Sri dan Hari Purnomo, 2010. “Aplikasi Logika Fuzzy Untuk

Pendukung Keputusan,edisi 2”. Yogyakarta, Graha Ilmu.

Leong, Marlon. 2004. Pemograman Dasar Microsoft Visual Basic.NET. Yogyakarta: ANDI.

Priyanto, Rahmat. 2009. Langsung Bisa Visual Basic.Net 2008. Yogyakarta: ANDI.

Purnomo, Sandi. 2011. Implementasi Metode Virtual Force Field (VFF) Yang Disederhanakan Untuk Kontrol Pergerakan Soccer Robot. Politeknik Elektronika Negeri Surabaya: Surabaya.

Supardi, Yuniar. 2011. Semua Bisa Menjadi Programmer VB6 Hingga VB 2008 BASIC. Jakarta: Gramedia.

Suparno, Aditya Prima. 2014. Simulasi Trajectory Planning Dan Pembentukan Formasi Pada Robot Obstacle Avoidance. STMIK STIKOM Surabaya: Surabaya.

Wardana. 2008. Membuat Aplikasi Berbasis Pendekatan Sistem dengan Visual Basic .Net 2008. Jakarta: Gramedia.


(6)

105

Yuswanto. 2002. Visual Basic Pemograman Grafis dan Multimedia. Surabaya: Prestasi Pustaka.