Anda di halaman 1dari 93

BAB I PENDAHULUAN 1.

1 LATAR BELAKANG Seringkali kita jumpai populasi antar makhluk hidup yang tidak merata dalam suatu lingkungan, hal tersebut dipengaruhi oleh cara makhluk hidup tersebut beradaptasi terhadap lingkungannya. Seperti yang kita ketahui mahkluk hidup memiliki karakter dan sifat yang berbeda-beda dengan makhluk hidup lainnya. Hal itu dipengaruhi oleh faktor-faktor lingkungan dan posisinya dalam siklus kehidupan makhluk hidup. Di proyek akhir ini dibuat sebuah simulasi kontrol perilaku dari mahkluk hidup dalam siklus kehidupan. Dalam kehidupan sebenarnya, Hal tersebut dimisalkan suatu lingkungan sawah terdapat padi, burung sawah, dan burung elang, dimana burung sawah membutuhkan padi sebagai makanannya, dan disamping itu juga elang memembutuhkan burung sawah untuk dimangsa. Sehingga burung sawah tersebut dihadapkan pada pilihan memakan padi atau menghindari elang. Dan juga ada hubungan kausal antara ketiga komponen tersebut (padi, burung sawah, elang). Misalnya faktor jumlah makanan sangat berpengaruh terhadap makhluk hidup jika makanan tersaji dalam jumlah yang relatif banyak maka tidak menutup kemungkinan makhluk hidup tersebut akan berkembang biak. Tetapi disisi lain jumlah makanan akan semakin berkurang atau bahkan habis. 1.2 RUMUSAN DAN BATASAN MASALAH Permasalahan pada penelitian ini terletak pada : Bagaimana cara memberi hubungan kausal pada karater . Bagaimana cara memprogam simulasi dengan visual basic. Bagaimana cara mengontrol simulasi dengan Radio Frekuensi. Membuat peta mapping untuk menggambarkan 1

2|h a l a m a n

hubungan kausal antar karakter. Batasan masalah dari penelitian ini adalah : Animasi terdiri dari Predator, individu, lawan jenis, dan makanan, sedangkan yang dikontrol oleh RF adalah Predator. Ada hubungan kausal antara tiap karakter serta menggunakan metode FCM sebagai kontrol prilaku karakter pada program. Menggunakan Modul TLP RLP sebagai sistem kontrol. Menggunakan Visual Basic dalam memprogam simulasi.

Hubungan antara variabel bersifat dinamis.

Parameter pengukuran dari proyek akhir ini adalah : keberhasilan kontrol karakter dengan menggunakan kontrol secara wireless dan mendapatkan hubungan (lapar, libido dan takut, energi, dan jumlah makanan) dan sesuai dengan peta mapping yang telah dibuat. 1.3 TUJUAN Tujuan dari penulisan tugas akhir ini adalah untuk mengaplikasikan metode FCM untuk menggambarkan hubungan sebab akibat antar karakter serta dapat dikendalikan melalui RF. 1.4 1.4.1 METODOLOGI Perancangan Sistem Pada perancangan sistem menggunakan mikrokontroler melalui Radio Frekuensi dipancarkan melalui Tx selanjutnya data yang dikirim diterima oleh Rx dan data yang diterima tersebut digunakan untuk mengontrol animasi yang ada pada PC

1.4.2

Pembuatan Sistem Pada tahap ini dilakukan pembuatan hardware dan program seperti yang telah dirancang sebelumnya.

h a l a m a n |3

1.4.3

Implementasi Sistem Pada implementasi sistem ini meliputi pembuatan desain animasi yaitu jumlah karakter yang dibuat berupa 1 buah karakter animasi (konsumen), 1 buah karakter animasi (predator) dan 1 buah animasi (produsen), kemudian membuat peta mapping hubungan kausal antar karakter animasi. Selanjutnya melakukan pemrograman untuk karakter animasi tersebut, kemudian diimplementasikan metode yang dipakai yaitu metode Fuzzy Cognitive Map menggunakan visual basic sebagai sarana pembuatan program simulasi. Setelah itu dilakukan pembuatan sistem pemancar dan penerima untuk mengontrol animasi yang telah dibuat dari jarak jauh. Untuk mengontrol animasi tersebut digunakan Radio Frekuensi. Peralatan yang digunakan untuk radio frekuensi ini adalah TLP/RLP. Selanjutnya dilakukan pemrograman mikrokontroler. Setelah selesai pemrograman dilakukan pengetesan sistem yaitu dengan pengiriman dan pembacaan data. 1.4.4 Pengambilan Data Pada tahap ini dilakukan pengambilan data dari pengujian sistem yang telah dilakukan pada tahap sebelumnya yang meliputi pengambilan data pada TLP/RLP, serta jarak jangkaunya. 1.4.5 Analisa Sistem Pada tahap ini dilakukan analisa terhadap hasil program kendali visual dan kecocokan perintah yang dikeluarkan oleh RF(Radio Frequency) sebagai alat pengontrol animasi serta mengambil suatu kesimpulan dari hasil uji coba. 1.4.6 1.5 Kesimpulan dan Saran Membuat kesimpulan dan saran dari data yang terpoleh.

SISTEMATIKA PENULISAN Sistematika pembahasan yang akan diuraikan pada buku laporan tugas akhir ini terbagi dalam bab-bab yang akan dibahas sebagai berikut : BAB 1 : PENDAHULUAN

4|h a l a m a n

Bab ini berisi tentang pendahuluan yang terdiri dari latar belakang, perumusan masalah, batasan masalah, tujuan dan sasaran, kontribusi proyek akhir, metodologi, serta sistematika pembahasan dari proyek akhir ini BAB 2 : TEORI PENUNJANG Bab ini membahas mengenai teori-teori yang berkaitan dengan penyelesaian proyek akhir, yang didapatkan dari berbagai macam buku serta sumber-sumber terkait lainnya yang berhubungan dengan pembuatan proyek akhir ini. BAB 3 : PERENCANAAN DAN PEMBUATAN SISTEM Bab ini membahas mengenai perancangan sistem, perancangan pengambilan data, dan perancangan proses pengolahan data. BAB 4 : PENGUJIAN DAN ANALISA DATA Berisi pengujian dan analisa sistem yang meliputi pengujian dan analisa implementasi sistem yang telah dibuat, serta analisa dari metode yang telah digunakan. BAB 5 : PENUTUP Bab ini berisi tentang kesimpulan dari pembahasan bab-bab sebelumnya dan saran serta beberapa kemungkinan pengembangan dan penyempurnaan proyek akhir ini.

h a l a m a n |5

BAB II TEORI PENUNJANG

2.1

Fuzzy Logic

2.1.1 Pengertian Fuzzy Logic


Fuzzy logic adalah suatu metode yang merupakan pengembangan boolean logic. Dimana pada boolean logic hanya terdapat dua buah pernyataan, yaitu logika 1 untuk benar dan logika 0 untuk salah. Jika ada sebuah kondisi yang terdapat di antara keduanya, maka akan dilakukan pendekatan menuju ke kondisi benar atau kondisi salah. Berbeda dengan logika fuzzy yang merupakan pengembangan dari logika boolean di atas. Pada logika boolean, kondisi dibedakan menjadi tiga hal, benar, salah, dan diantara benar dan salah. Sehingga output yang dihasilkan dari logika fuzzy ini lebih presisi dibandingkan dengan metode boolean. Proses yang dilakukan ketika mengkategorikan suatu kondisi dengan alogika fuzzy adalah sebagai berikut : sebuah nilai acuan dimasukkan, kemudian diambil nilai input. Setelah itu, dilakukan proses iterasi dan komparisasi nilai input terhadap nilai acuan tadi. Hal itu menyebabkan toleransi error pada logika fuzzy lebih rendah daripada aljabar boolean. 2.1.2 Himpunan Crisp

6|h a l a m a n

Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan A[x], memiliki 2 kemungkinan, yaitu: satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau

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

Contoh 1: Jika diketahui: S = {1, 2, 3, 4, 5, 6} adalah semesta pembicaraan. A = {1, 2, 3} B = {3, 4, 5} bisa dikatakan bahwa: - Nilai keanggotaan 2 pada himpunan A, A[2]=1, karena 2A. - Nilai keanggotaan 3 pada himpunan A, A[3]=1, karena 3A. - Nilai keanggotaan 4 pada himpunan A, A[4]=0, karena 4A. - Nilai keanggotaan 2 pada himpunan B, B[2]=0, karena 2B. - Nilai keanggotaan 3 pada himpunan B, B[3]=1, karena 3B. Contoh 2: Misalkan variabel umur dibagi menjadi 3 kategori, yaitu: MUDA umur < 35 tahun PAROBAYA 35 umur 55 tahun TUA umur > 55 tahun Nilai keanggotaan secara grafis, himpunan MUDA, PAROBAYA dan TUA ini dapat dilihat pada gambar berikut :

Gambar 2.1 Himpunan Muda, Parobaya dan Tua Pada Gambar 21 di atas dapat dilihat bahwa:

h a l a m a n |7

Apabila seseorang berusia 34 tahun, maka ia dikatakan MUDA (MUDA[34]=1); Apabila seseorang berusia 35 tahun, maka ia dikatakan TIDAK MUDA (MUDA[35]=0); Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK MUDA (MUDA[35 th -1hr]=0); Apabila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA (PAROBAYA[35]=1); Apabila seseorang berusia 34 tahun, maka ia dikatakan TIDAK PAROBAYA (PAROBAYA[34]=0); Apabila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA (PAROBAYA[35]=1); Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK PAROBAYA (PAROBAYA[35 th - 1 hr]=0);

Dari sini bisa dikatakan bahwa pemakaian himpunan crisp untuk menyatakan umur sangat tidak adil, adanya perubahan kecil saja pada suatu nilai mengakibatkan perbedaan kategori yang cukup signifikan. Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut. Seseorang dapat masuk dalam 2 himpunan yang berbeda, MUDA dan PAROBAYA, PAROBAYA dan TUA, dan sebagainya. Seberapa besar eksistensinya dalam himpunan tersebut dapat dilihat pada nilai keanggotaannya. Gambar berikut yang menunjukkan himpunan fuzzy untuk variabel umur.

8|h a l a m a n

Gambar 2.2 Himpunan Fuzzy Untuk Umur Pada Gambar 2.2 dapat dilihat bahwa: Seseorang yang berumur 40 tahun, termasuk dalam himpunan MUDA dengan MUDA[40]=0,25; namun dia juga termasuk dalam himpunan PAROBAYA dengan PABOBAYA[40]=0,5. Seseorang yang berumur 50 tahun, termasuk dalam himpunan MUDA dengan TUA[50]=0,25; namun dia juga termasuk dalam himpunan PAROBAYA dengan PABOBAYA[50]=0,5. Kalau pada himpunan crisp, nilai keanggotaan hanya ada 2 kemungkinan, yaitu 0 atau 1, pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0 sampai 1.

Apabila x memiliki nilai keanggotaan fuzzy A[x]=0 berarti x tidak menjadi anggota himpunan A, demikian pula apabila x memiliki nilai keanggotaan fuzzy A[x]=1 berarti x menjadi anggota penuh pada himpunan A. Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbulkan kerancuan. Keduanya memiliki nilai pada interval [0,1], namun interpretasi nilainya sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang. Misalnya, jika nilai keanggotaan suatu himpunan fuzzy MUDA adalah 0,9; maka tidak perlu dipermasalahkan berapa seringnya nilai itu diulang secara individual untuk mengharapkan suatu hasil yang hampir pasti muda. Di lain

h a l a m a n |9

pihak, nilai probabilitas 0,9 muda berarti 10% dari himpunan tersebut diharapkan tidak muda. 2.2 Peta Kognitif Deskripsi tentang peta kognitif banyak mengarah ke riset yang pernah dikerjakan oleh seorang ahli ilmu sains politik Robert Axelrod (Axelrod, 1976) untuk menunjukkan bagaimana keputusan politik dibuat dengan skema struktur keputusan politik dalam bentuk peta kognitif. Secara umum peta kognitif element dasarnya sangat sederhana sebuah konsep yang digunakan secara individu dinyatakan sebagai point-point dan hubungan kausalitas antar konsep tersebut dinyatakan dengan menggunakan panah yang terhubung diantara konsep tersebut. Sebagai gambaran dapat dilihat gambar 2.3 berikut :

Gambar 2.3 Contoh peta kognitif (oleh Levi, Tetlock, 1980) Dari gambar 2.3 terlihat bahwa jika Jepang dalam kondisi berdiam diri (Japan remains idle) akan menyebabkan meningkatnya kesiapan Amerika melakukan persiapan yang lebih matang (US prepareness ) sedangkan dengan kondisi persiapan Amerika yang matang menyebabkan menurunnya peluang Jepang untuk menang dalam perang (Japanese success in war). Begitu halnya dengan kondisi kekuatan Jepang akan mengurang (Japanese attrition) jika Jepang

10 | h a l a m a n

juga berdiam diri sehingga mengakibatkan kurangnya peluang Jepang untuk memenangkan perang (Japanese success in war). Dari gambar 2.3 jika ditabelkan akan menjadi Tabel 2.1 berikut: Tabel 2.1 Tabel pemetaan dari gambar 2.3. i\j C1 C2 C3 C4 C1 0 +1 0 +1 C2 0 0 -1 0 C3 0 0 0 0 C4 0 0 -1 0 Kemudian dari tabel tersebut dapat ditransformasikan ke dalam sebuah bentuk matriks dinamakan adjacency matrix atau valency matrix. Adjacency matrix merupakan sebuah matriks persegi dengan sebuah kolom dan sebuah baris untuk setiap konsep dalam suatu peta kognitif. Dengan memberikan notasi C1 untuk Japan remains idle, C2 untuk Japanese attrition , C3 untuk Japanese success in war dan C4 untuk US preparedness seperti berikut :

Gambar 2.4 Adjacency matriks hubungan kausal dari gambar 1 (oleh Levi, Tetlock, 1980) 2.3 FCM (fuzzy cognitive map) Peta Kognitif fuzzy (FCM) adalah graf berarah dengan konsep-konsep kualitas yang disusun sebagai anggota himpunan fuzzy berupa keputusan, kejadian dan sebagainya yang digambarkan sebagai titik dan sifat kausal yang menggambarkan keterhubungan antar konsep tersebut sebagai sisi. Fuzzy cognitive map (FCM)

h a l a m a n | 11

merupakan pengembangan dari Fuzzy logic. Tetapi pada FCM ini lebih ditekankan pada pemetaannya dan hubungan kausalitas antar titik/ agent yang menjadi parameternya. FCM dapat memodelkan prilaku secara periodik dengan limit cycle yang terus berulang-ulang sesuai dengan urutan dan kejadiannya atau membuat suatu rantai dari aksi dan respon lingkungan Dengan FCM kejadian-kejadian yang saling berpengaruh dalam lingkungan dapat dipetakan menjadi suatu aturan-aturan yang sifatnya fuzzy (fuzzy rule) Secara garis besar dapat dikatakan bahwa diagram kausal dan sistem dinamik memberikan kesempatan reasoning yang lebih baik dengan dimungkinkannya dilakukan berbagai simulasi atas model yang kita implementasikan sesuai dengan keahlian dan pengalaman yang dimiliki. Simulasi sistem dinamik dengan sistem diagram kausal mendasarkan diri pada persamaan diferensial dan keketatan logika tradisional antara yang benar dan salah. Yang lebih ditengahkan adalah bentuk lebih jauh, yakni bentuk-bentuk diagram kausal yang titik-titiknya disusun dengan elemen-elemen logika fuzzy, yakni logika yang tidak bersandar pada absolutisme benar dan salah dengan menggunakan konsep agak benar atau agak salah. Peta kognitif fuzzy ini dikenalkan oleh guru logika fuzzy, Bart Kosko (1986), sebagai perpaduan antara logika fuzzy dan model jaring saraf. 2.3.1 Aspek-aspek Fuzzy Cognitive Mapping (FCM) Sebagai contoh, kita akan mengkonstruksi sebuah model dengan Hubungan sebab-akibat sebagai berikut: Karena A maka terjadi B Karena B maka terjadi C dan D Karena C maka terjadi D Karena D maka terjadi A

Hal ini digambarkan dalam gambar 2.5 berikut :

12 | h a l a m a n

Gambar 2.5 Contoh diagram berarah dari pemetaan kognitif Hubungan kausal antara tiap titik dalam FCM (A dan B, dst.) dapat berhubungan lurus (biasanya diberi tanda +1 atau + saja. Artinya jika kualitas dari konsep A membesar maka kualitas konsep B juga membesar, sebaliknya jika kualitas konsep A mengecil maka kualitas konsep B juga mengecil. Di sisi lain, hubungan kausal ini pun dapat berkebalikan, biasanya diberi tanda -1 atau - saja. Dalam hal ini, jika kualitas konsep A membesar maka kualitas B mengecil dan sebaliknya. Hubungan antara titik-titik dalam FCM yang tidak diberi garis tepi (keterhubungan) dikatakan sebagai tidak memiliki hubungan sebab-akibat secara langsung. Keterhubungan ini biasanya diberikan tanda 0. Namun tentu saja, keterhubugan antara dua konsep dalam FCM tidak melulu {-1,0,1}.Keterhubungan tersebut pada dasarnya dapat berupa anggota bilangan riil antara 0 dan 1 dan lawannya. FCM dengan hubungan kausalitasnya ditentukan sebagai anggota himpunan {-1,0,1}disebut sebagai FCM sederhana. Dalam FCM sederhana, dua titik Ci dan Cj yang dihubungkan memiliki tiga kemungkinan bobot tepi (eij), yaitu: eij>0, artinya kedua konsep memiliki kausalitas positif (berhubungan lurus) membesarnya dan mengecilnya nilai kualitas Ci akan mengakibatkan membesarnya dan mengecilnya nilai kualitas Cj sekaligus.

eij<0, artinya kedua konsep memiliki kausalitas negatif (berlawanan) membesarnya dan mengecilnya nilai

h a l a m a n | 13

kualitas Ci akan mengakibatkan mengecilnya membesarnya nilai kualitas Cj sekaligus.

dan

eij=0, artinya kedua konsep tidak memiliki hubungan kausalitas langsung.

Dalam contoh kita di atas, tiap titik digambarkan sebagai A, B, C, dan D. Keterhubungan (kausal) antara konsep-konsep ini pada dasarnya dapat kita ubah ke dalam matriks keterhubungan FCM yang kita definisikan sebagai: Misalkan tiap titik dalam graf FCM kita simbolkan sebagai X1, X2, Xn, dan keterhubungannya masing-masing diboboti oleh bobot tepi eij, maka matriks keterhubungan FCM, kita simbolkan M, didefinisikan sebagai M=(eij) di mana nilai eij adalah bobot kausal antara Ci dengan Cj. Dari sini kita dapati matriks keterhubungan FCM dari contoh di atas sebagai matriks dengan diagonalnya selalu bernilai 0 kareba diasumsikan tidak ada sebab sekaligus sebagai akibat bagi dirinya sendiri.

Gambar 2.6 contoh bentuk matriks dari peta kognitif 2.4 KARAKTER ANIMASI 2.4.1 PREDATOR Predator yaitu disebut juga sebagai pemangsa, merupakan istilah asing untuk menyebut hama pengganggu hewan peliharaan, dalam hal ini adalah benih ikan. Predator pada dasarnya adalah merupakan hewan carnivora (pemakan daging) yaitu memangsa dengan mengintai targetnya. Predator benih ikan ada yang berasal/datang dari luar dan ada yang hidup bersama dengan benih ikan yang dipelihara. Umumnya predator yang memangsa benih ikan yaitu merupakan hewan tingkat tinggi yang bisa langsung mengganggu

14 | h a l a m a n

atau mengancam kehidupan benih ikan yang dipelihara pembudidaya ikan. Predator benih ikan dapat dibagi kedalam beberapa kelompok, yaitu : 1.Predator Kelompok hewan besar Burung Laba-laba kepiting/ketam Berang-berang biawak ular katak Kadal 2. predator ikan buas ikan gabus belut 3. predator kelompok hewan kecil (serangga Air) ucrit (larva cybister) notonecta kini-kini 2.4.2 KONSUMEN/MANGSA Jika ada pemangsa maka pasti tentu ada mangsa juga. Mangsa atau konsumen ini membutuhkan makanan untuk bertahan hidup serta beradaptasi terhadap lingkungannya dari gangguangangguan lingkungan seperti, Predator, kebersihan, serta gangguangangguan lainnya. Konsumen bisa mencakup : Ikan-ikan kecil Rusa Tikus Hewan-hewan kecil yang menjadi makanan bagi predator. 2.4.3 PRODUSEN/ MAKANAN Produsen adalah penghasil sumber makanan bagi Makhluk hidup. Produsen dapat diasumsikan sebagai kepala piramida makanan karena produsen sangat berpengaruh terhadap komponen-

h a l a m a n | 15

komponen lainnya karena jika tidak ada produsen makan tentunya kelangsungan suatu makhluk hidup akan punah. Produsen dapat mencakup : Padang Rumput Lumut Plankton Serta makhluk hidup lainnya yang dapat memproduksi makanan bagi konsumen. 2.4.4 HUNGRY/LAPAR Semua makhluk hidup tentu saja memerlukan makanan untuk dimakan demi kelangsungan hidupnya sebagai contoh manusiamemakan sepiring nasi agar memiliki energi untuk melakukan aktifitas sehari-hari, ikan memakan lumut agar tetap hidup. Faktor hungry ini bisa saja meliputi : Energi Makanan Nafsu makan Kecepatan Waktu terahkir makan 2.4.5 LIBIDO/HASRAT

Libido dalam penggunaannya secara umum berarti gairah seksual namun dalam definisi yang bersifat lebih teknis mengartikan libido sebagai energi psikis yang dimiliki individu untuk digunakan bagi perkembangan pribadi atau individuasi. Menurut psikolog Swiss libido diidentifikasi sebagai energi psikis. Pertentangan yang menghasilkan energi (atau libido) dari psikis, menurut Jung, mengekspresikan diri hanya melalui simbolsimbol: "Adalah energi yang memanifestasikan diri dalam proses kehidupan dan dipersepsi secara subjektif sebagai usaha atau hasrat." Didefinisikan secara lebih sempit, libido juga merujuk pada keinginan individual untuk terlibat dalam aktivitas seksual. Faktor libido dapat mempengaruhi : Tingkat kelaparan Waktu terakhir dia kawin

16 | h a l a m a n

2.4.6

Dan seterusnya

FEAR/KETAKUTAN Ketakutan adalah suatu tanggapan emosi terhadap ancaman. Takut adalah suatu mekanisme pertahanan hidup dasar yang terjadi sebagai respons terhadap suatu stimulus tertentu, seperti rasa sakit atau ancaman bahaya. Faktor yang mempengaruhi rasa Ketakutan adalah : Jarak terhadap musuh/lawan Kecepatan Dst 2.5 MIKROKONTROLER AVR ATMega16 AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. ATMega16. ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses. Beberapa keistimewaan dari AVR ATMega16 antara lain: 1. Advanced RISC Architecture 130 instruksi kekuatan Most Single Clock Cycle Execution 32 x 8 General Purpose Fully Static Operation Throughput Lebih dari 16 MIPS pada 16 MHz On-chip 2-cycle Multiplier 2. Nonvolatile Program and Data Memories 8K Bytes of In-System Self-Programmable Flash Optional Boot Code Section with Independent Lock Bits 512 Bytes EEPROM 512 Bytes Internal SRAM

h a l a m a n | 17

Programming Lock for Software Security 3. Peripheral Features 8-bit Timer/Counters dengan Separate Prescalers and Mode kompare 8-bit Timer/Counters with Separate Prescalers and Mode kompare 16-bit Timer/Counter dengan Separate Prescaler, mode Compare , and mode Capture Real Time Counter dengan Separate Oscillator 4 PWM Channels 8-channel, 10-bit ADC Byte-oriented Two-wire Serial Interface Serial USART 4. Special Microcontroller Features Power-on Reset and deteksi Programmable Brown-out kalibrasi RC Oscillator External dan Internal Interrupt Sources 5. I/O and Package 32 jalur Programmable I/O 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF 6. Operating Voltages 2.7 - 5.5V untuk Atmega16L 4.5 - 5.5V untuk Atmega16

18 | h a l a m a n

Gambar 2.7 Pin-pin ATMega16 kemasan 40-pin Pin-pin pada ATMega16 dengan kemasan 40-pin DIP (dual inline package) ditunjukkan oleh gambar 2.7. Guna memaksimalkan performa, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Inisialisasi USART USART harus diinisialisasi sebelum komunikasi manapun dapat berlangsung. Proses inisialisasi normalnya terdiri dari pengesetan baud rate, penyetingan format frame dan pengaktifan pengirim atau penerima tergantung pada pemakaian. Untuk interrupt menjalankan operasi USART, global interrupt flag (penanda) sebaiknya dibersihkan (dan interrupt global disable) ketika inisialisasi dilakukan. Sebelum melakukan inisialisasi ulang dengan mengubah baud rate atau format frame, untuk meyakinkan bahwa tidak ada transmisi berkelanjutan sepanjang periode register yang diubah. Flag TXC dapat digunakan untuk mengecek bahwa pemancar telah melengkapi semua pengiriman, dan flag RXC dapat digunakan untuk mengecek bahwa tidak ada data yang tidak terbaca pada buffer penerima. Tercatat bahwa flag TXC harus dibersihkan sebelum tiap transmisi (sebelum UDR ditulisi) jika itu semua digunakan untuk tujuan tersebut.

h a l a m a n | 19

Port sebagai input/output digital ATMega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf xmewakili nama huruf dari port sedangkan huruf n mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0). Tabel 2.2 Konfigurasi pin port

Bit 2 PUD : Pull-up Disable Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).

20 | h a l a m a n

2.6

Visual Basic Visual Basic adalah salah suatu development tools untuk membangun aplikasi dalam lingkungan Windows. Dalam pengembangan aplikasi, Visual Basic menggunakan pendekatan Visual untuk merancang user interface dalam bentuk form, sedangkan untuk kodingnya menggunakan dialek bahasa Basic yang cenderung mudah dipelajari. Visual Basic telah menjadi tools yang terkenal bagi para pemula maupun para developer dalam pengembangan aplikasi skala kecil sampai ke skala besar. Dalam lingkungan Window's User-interface sangat memegang peranan penting, karena dalam pemakaian aplikasi yang kita buat, pemakai senantiasa berinteraksi dengan User interface tanpa menyadari bahwa dibelakangnya berjalan instruksi-instruksi program yang mendukung tampilan dan proses yang dilakukan.Pada pemrograman Visual, pengembangan aplikasi dimulai dengan pembentukkan user interface, kemudian mengatur properti dari objek-objek yang digunakan dalam user interface, dan baru dilakukan penulisan kode program untuk menangani kejadian-kejadian (event). Tahap pengembangan aplikasi demikian dikenal dengan istilah pengembangan aplikasi dengan pendekatan Bottom Up. IDE Visual Basic Langkah awal dari belajar Visual Basic adalah mengenal IDE (Integrated Developement Environment) Visual Basic yang merupakan Lingkungan Pengembangan Terpadu bagi programmer dalam mengembangkan aplikasinya. Dengan menggunakan IDE programmer dapat membuat user interface, melakukan koding, melakukan testing dan debuging serta menkompilasi program menjadi executable. Penguasaan yang baik akan IDE akan sangat membantu programmer dalam mengefektifkan tugas-tugasnya sehingga dapat bekerja dengan efisien.

2.7 Transmisi Menggunakan Modul TLP RLP


TLP RLP adalah sebuah perangkat transmisi data dengan menggunakan media nirkabel atau lebih dikenal dengan transmisi secara wireless. TLP RLP terdiri dari sebuah perangkat transmitter sebagai pengirim data dan sebuah perangkat receiver sebagai penerima data yang dikirim.

h a l a m a n | 21

TLP RLP digunakan di dalam pengiriman data digital. Pada pengiriman data menggunakan modul TLP dan RLP ini, data yang dikirimkan ke sisi receiver dimodulasikan menggunakan modulasi ASK (Amplitude Shift Keying).Modul TLP dan RLP yang tersedia di pasaran, memiliki frekuensi kerja 433,92 MHz dan kemampuan mentransmisikan data sampai dengan kecepatan 200 Kbps. Yang dikirimkan melalui modul TLP (transmitter), harus dalam bentuk serial. Sehingga perlu adanya sebuah proses encoding di sisi pengirim. Demikian pula halnya pada sisi penerima yang menggunakan modul RLP (receiever), data diterima dalam bentuk bit-bit serial. Sehingga untuk mendapatkan data sesuai dengan data yang dikirim, diperlukan sebuah proses decoding di sisi penerima. Jenis IC encoder dan decoder yang sering digunakan di dalam penggunaan modul TLP dan RLP ini adalah IC HT 12 D untuk decoder dan HT 12 E untuk encoder. Kedua IC tersebut merupakan IC keluaran dari Holtek. Memiliki 7 bit address dan 4 bit data. Mengenai ketahanan transmisi data yang menggunakan modul TLP RLP ini tergolong cukup bagus. Hal tersebut dikarenakan pemakaian bit-bit address pada sisi pengirim dan penerima, sehingga hal tersebut menyebabkan harus adanya sinkronisasi antara bit address pada pengirim dan penerima agar data yang dikirim dapat diterima oleh receiver.

Gambar 2.8 Modul TLP (Transmitter)

Gambar 2.9 Modul RLP (Receiver)

22 | h a l a m a n

2.7.1

Konfigurasi TLP dengan IC HT 12 E Pada sisi pengirim yang menggunakan modul TLP, input data dari perangkat adalah data yang diinputkan ke TLP secara serial. Sehingga sebelum data masuk ke TLP, maka data perlu diserialisasikan dengan menggunakan encoder. Pada penggunaan TLP ini, sering digunakan IC HT 12 E sebagai encoder data pada sisi pengirim. Pada IC ini juga terdapat bit address yang digunakan untuk proses sinkronisasi untuk mendapatkan kembali data yang dikirim pada sisi receiver. Adapun skema rangkaian dari penggunaan IC HT 12 E yang dipasangkan dengan modul TLP adalah seperti pada gambar 2.10 berikut :

Gambar 2.10 Konfigurasi TLP dengan IC HT 12 E 2.7.2 Konfigurasi RLP dengan IC HT 12 D Sedangkan pada sisi receiver, jika melihat proses pengiriman data dengan TLP, di sisi penerima yang menggunakan modul RLP data juga diterima dalam bentuk data serial, sehingga untuk mendapatkan kembali data-data yang dikirimkan, diperlukan sebuah proses decoding. Proses decoding data pada sisi penerima yang menggunakan RLP, sering digunakan IC HT 12 D sebagai unit decodernya. Pada IC HT 12 D ini selain terdapat bit untuk data output juga terdapat bit-bit address untuk melakukan sinkronisasi

h a l a m a n | 23

dengan unit pengirim (transmitter). Adapun konfigurasi rangkaian RLP yang dipasangkan dengan IC HT 12 D adalah sebagai berikut:

Gambar 2.11 Konfigurasi RLP dengan IC HT 12 D 2.8 CVAVR (CODE VISION AVR) 2.8.1 Sekilas Tentang Code Vision AVR CVAVR adalah sebuah C compiler yang mengkonversi bahasa menjadi bahasa assembly atau dinamakan bahasa mesin. Pada era yang semakin berkembang, bahasa C lebih diminati oleh para programmer dibandingkan menggunakan bahasa assembly. Hal tersebut dikarenakan bahasa C memiliki kecepatan yang jauh lebih baik di dalam mengeksekusi sebuah perintah atau command yang dituliskan di dalamnya. AVR, sebuah perusahaan yang bergerak di bidang mikroprosesor dan mikrokntroler terutama di bidang fabrikan IC dimana di dalam pemrogramanya adalah dengan mengintegrasikannya dengan software CVAVR ini. CVAVR merupakan aplikasi 32 bit yang dapat berjalan dengan menggunakan sistem operasi under windows meliputi windows 95, 98, NT 4, 2000 dan XP dimana IDE (Integrated Development Environment) telah ditambahkan di AVR chip InSystem Programmer (ISP) dimana dapat dilakukan download program hasil kompile langsung ke dalam mikrokontroler.

24 | h a l a m a n

BAB 3 PERENCANAAN SISTEM


Pada bab ini akan membahas tentang perancangan dari penelitian yang telah dilakukan. Perancangan ini meliputi perancangan perangkat lunak (software) dan perangkat keras (hardware) dari sistem. Dalam pembuatan suatu sistem, maka yang pertama kali dilakukan adalah dengan mengetahui permasalahannya. Pada penelitian ini akan dibuat sebuah animasi sederhana dengan menggunakan Visual Basic, kemudian Animasi tersebut dapat dikontrol menggunakan joystick secara nirkabel(wireless). Untuk merencanakan system tersebut meliputi proses pembuatan karakter animasi menggunakan Visual Basic, pembuatan program gerak masing masing animasi menggunakan metode Fuzzy Cognitive Map dan pembuatan hardware joystick serta system komunikasinya untuk mengontrol animasi secara wireless. 3.1 ALAT DAN BAHAN Pada bagian ini akan menjelaskan tentang perencanaan pembuatan perangkat lunak (software) dan perangkat keras (hardware) 3.1.1 PERENCANAAN PERANGKAT LUNAK Pada perencanaan perangkat lunak ini ada dua langkah yang akan dilakukan yaitu yang pertama adalah membuat obyek animasi kemudian membuat tampilannya. Sedangkan yang kedua adalah pemrograman untuk gerak animasi dan implementasi metode yang digunakan pada tugas akhir ini yaitu metode Fuzzy Cognitive Map. Dimana pada logika ini akan dilakukan pemetaan dari nilainilai yang mempengaruhi dari kondisi individu. Dalam pembuatan perencanaan perangkat lunak ini digunakan Visual Basic 6 dalam pembuatan tampilan animasi dan pemrogramannya.

h a l a m a n | 25

3.1.2 PERENCANAAN PERANGKAT KERAS Dalam perencanaan perangkat keras (hardware) ini ada 2 langkah yaitu pembuatan komunikasi wireless dan perangkat untuk menghubungkan perangkat tadi dengan laptop dan perangkat lunak yang telah dibuat. Peralatan untuk komunikasi wireless yang digunakan adalah TLP/RLP 434. Dan untuk menghubungkan dengan laptop digunakan rangkaian mikrokontroler. Kemudian mikrokontroler dihubungkan pada sebuah rangkaian RS-232 kemudian juga digunakan converter dari db-9 ke USB sebagai input ke laptop. 3.2 CARA KERJA Pada Proyek Akhir animasi ini, animasi bergerak berdasarkan metode Fuzzy Cognitive Map khususnya untuk animasi ikan. Parameter dari gerakan tersebut didasarkan pada tingkat kelaparan, libido dari animasi dan ancaman (tingkat ketakutan dari agen ikan) dari predator. untuk gerak dari predator nanti akan digerakkan penggunakan joystick (perangkat keras (hardware). 3.2.1 PERSIAPAN Pada tahap ini dilakukan studi literatur tentang Visual Basic 6 untuk tampilan animasi dan program dari gerak agen animasi. Perencanaan perangkat keras yaitu TLP/RLP 434. Dan menghubungkan perangkat keras tersebut dengan laptop menggunakan rangkaian mikrokontroler, serta menerima data dari hardware pada laptop. 3.3 PERANCANGAN SISTEM Sistem ini terdiri dari gabungan dua gabungan perangkat yaitu perangkat lunak dengan perangkat keras. Untuk perancangan kedua perangkat tersebut akan dibahas sebagai berikut.

26 | h a l a m a n

IN P U T

R a n g k a ia n T LP

R a n g ka ia n R LP

M ikro o n tr o l ATM ega 16

M a x2 3 2

R a n g ka ia n p o w e r s u p p ly

R a n g ka ia n P o w e r S u p p ly

Gambar 3.1 Blok Diagram Sistem Pada gambar 3.1 diatas dapat dijelaskan bahwa dalam pentransmisian penelitian ini dilakukan secara wireless menggunakan rangkaian TLP dan RLP. Pada bagian pengirim (Tx) menggunakan TLP sebagai sarana transmisi dan memerlukan catu daya sebesar 12v. Kemudian data dikirimkan ke bagian rangkaian penerima (Rx). Pada rangkaian ini juga memerlukan catu daya yang sama seperti pada rangkaian Tx. Data yang diterima oleh RLP diteruskan ke mikrokontroler. Agar dapat melakukan komunikasi pada laptop digunakan rangkaian RS-232 dn setelah itu data dari RS-232(db-9) dikonversikan menjadi USB kemudian data dikenali oleh laptop. 3.3.1 Pembuatan Perangkat Lunak Dalam pembuatan perangkat ini akan dibuat tampilan animasi dan pemrograman untuk gerak animasi. Sebelumnya ditentukan agen apa saja yang akan dibuat. Data tabel 3.1 adalah data agen yang akan dibuat. Agen-agen animasi dibuat dengan program Visual Basic 6. Begitu pula untuk gerak dari agen animasinya. Tabel 3.1. Data agen animasi yang dibuat Jumlah Jenis Warna Ukuran maksimal Makanan Hijau kecil 2 Ikan Kuning sedang 1 Ikan(lawan jenis) Merah muda sedang 1 Predator Biru Besar 1

h a l a m a n | 27

Untuk pembuatan karakter animasi di Visual Basic diawali dengan cara membuat proyek kerja dengan cara mengklik File-new project selanjutnya pilih standard.exe tampilannya seperti berikut:

Gambar 3.2 Tampilan new project

28 | h a l a m a n

Setelah dipilih Standard.EXE akan muncul sebuah form yang digunakan untuk pembuatan karakter animasi. Tampilannya seperti berikut:

Gambar 3.3 Form pembuatan karakter animasi Gambar 3.3 diatas tersusun atas sebuah form sebagai tempat desain pembuatan animasi dan beberapa toolbar. Berikut adalah fungsi dari toolbar yang digunakan:

h a l a m a n | 29

Gambar 3.4 Toolbox Visual Basic 6 dengan semua kontrol intrinsic. Adapun fungsi dari masing-masing kontrol tersebut adalah sebagai berikut : Pointer bukan merupakan suatu kontrol; digunakan ketika ingin memilih kontrol yang sudah berada pada form.

PictureBox adalah kontrol yang digunakan untuk menampilkan image dengan format: BMP, DIB (bitmap), ICO (icon), CUR (cursor), WMF (metafile), EMF (enhanced metafile), GIF, dan JPEG.

Label adalah kontrol yang digunakan untuk menampilkan teks yang tidak dapat diperbaiki oleh pemakai. TextBox adalah kontrol yang mengandung string yang dapat diperbaiki oleh pemakai, dapat berupa satu baris tunggal, atau banyak baris.

30 | h a l a m a n

Frame adalah kontrol yang digunakan sebagai kontainer bagi kontrol lainnya. CommandButton merupakan kontrol hampir ditemukan pada setiap form, dan digunakan untuk membangkitkan event proses tertentu ketika pemakai melakukan klik padanya.

CheckBox digunakan untuk pilihan yang isinya bernilai yes/no, true/false. OptionButton sering digunakan lebih dari satu sebagai pilihan terhadap beberapa option yang hanya dapat dipilih satu. ListBox mengandung sejumlah item, dan user dapat memilih lebih dari satu (bergantung pada property MultiSelect). ComboBox merupakan konbinasi dari TextBox dan suatu ListBox dimana pemasukan data dapat dilakukan dengan pengetikan maupun pemilihan.

HScrollBar dan VScrollBar digunakan untuk membentuk scrollbar berdiri sendiri. Timer digunakan untuk proses background yang diaktifkan berdasarkan interval waktu tertentu. Merupakan kontrol nonvisual.

DriveListBox, DirListBox, dan FileListBox sering digunakan untuk membentuk dialog box yang berkaitan dengan file.

Shape dan Line digunakan untuk menampilkan bentuk seperti garis, persegi, bulatan, oval.

h a l a m a n | 31

Image berfungsi menyerupai image box, tetapi tidak dapat digunakan sebagai kontainer bagi kontrol lainnya. Sesuatu yang perlu diketahui bahwa kontrol image menggunakan resource yang lebih kecil dibandingkan dengan PictureBox

Data digunakan untuk data binding

Dengan toolbar-toolbar diatas dibuat tampilan seperti dibawah ini.

Gambar 3.5 Tampilan desain animasi Keterangan :

Predator :

Individu / Ikan :

Lawan Jenis : Makanan :

32 | h a l a m a n

Gambar 3.5 tersebut menunjukkan tampilan awal dari animasi yang dibuat dalam penelitian ini. Tampilan diatas hanya merupakan tampilan karakter animasi saja. Untuk pembuat karakter animasi tersebut dapat dijalankan perlu adanya pembuatan program gerak masing masing animasi. Setelah dibuat tampilan seperti pada gambar 3.5, langkah selanjutnya dalam penelitian ini adalah pembuatan program untuk gerak dari animasi yang telah dibuat pada bagian sebelumnya.

Gambar 3.6 Tampilan tempat untuk pemrograman

h a l a m a n | 33

Dalam penelitian ini animasi yang dikontrol menggunakan joystick adalah animasi predator. Sedangkan untuk animasi ikan akan bergerak secara otomatis. Untuk gerak dari animasi ikan didasarkan atas tiga buah gerakan yaitu bergerak saat ikan tersebut lapar, saat ingin kawin dan saat ada bahaya yang mengancam dirinya (ancaman predator yang mendekatinya). Dalam pengimplementasian metode Fuzzy Cognitive Map yang dipergunakan, metode ini diimplementasikan pada gerak dari animasi ikan. Sebelumnya harus dibuat rule-rule gerak dari animasi tersebut misalnya: Pada kondisi awal, ikan berada pada kondisi lapar (hungry). Jika pada kondisi lapar, sedangkan ikan belum mencapai makanan, maka tingkat kelaparan akan bertambah sesuai dengan laju pencernaan, waktu terakhir kali makan akan bertambah, jumlah makanan tetap dan energi berkurang. Hal tersebut juga mempengaruhi variabel dari libido, yakni tingkat libido akan naik dan waktu terakhir kawin akan terus bertambah. Setelah ikan mencapai makanan, maka tingkat kelaparan akan menurun sesuai dengan laju pencernaan dan waktu terakhir kali makan akan reset kembali ke 0. Selain itu jumlah makanan berkurang dan energi akan bertambah. Sedangkan nafsu makan ikan berkurang. Akan tetapi tingkat libido akan terus bertambah dan waktu terakhir kawin juga akan terus bertambah. Jika ikan pada kondisi libido, tetapi belum mencapai lawan jenis, maka tingkat libido akan bertambah dan waktu

34 | h a l a m a n

terakhir kawin akan terus bertambah. Hal tersebut juga berpengaruh pada variabel makanan. Tingkat kelaparan akan bertambah dan waktu terakhir kali makan akan bertambah. Selain itu, energi ikan akan berkurang.

Setelah mencapai lawan jenis, maka tingkat libido akan berkurang dan waktu terakhir kawin akan reset menjadi 0. Akan tetapi tingkat kelaparan dan waku terakhir makan juga akan terus bertambah. Hal tersebut juga mengakibatkan energi ikan akan berkurang. Jika predator mendekat ke ikan maka ikan akan berada pada kondisi takut dan akan bergerak menjauh dari predator secara spontan, tanpa menghiraukan makanan dan lawan jenis. Pada kondisi takut, maka tingkat kelaparan, tingkat libido, waktu terakhir makan dan waktu terakhir kawin semuanya akan bertambah. Akan tetapi energi berkurang.

Jika digambarkan dengan menggunakan diagram alir, maka algoritma atau ketentuan dari program yang telah didefinisikan dengan rule seperti di atas adalah sebagai berikut :

h a l a m a n | 35

START

Default : hungry Jumlah makanan : 1 Nafsu makan : 0.005 Energi : 0.5

Apakah jarak predator <=50? YA TIDAK Individu bergerak menuju makanan hungry = berkurang Waktu terakhir makan = 0 Energi = energi + 0.05 Nafsu makan = nafsu makan 0.005 Jumlah makanan=jumlah makanan 0.01 hungry = bertambah Waktu terakhir makan +1 Energi = energi - 0.001 Nafsu makan = nafsu makan + 0.005

Individu makan
YA Apakah kondisi lapar? TIDAK Ikan lari Individu menuju libido libido = bertambah Waktu terakhir kawin = +1 libido = berkurang Waktu terakhir kawin = 0 Energi = energi - 0.005 Energi = energi - 0.005

hungry = bertambah Waktu terakhir makan = +1 Waktu terakhir kawin = +1 Energi = energi - 0.005 Nafsu makan = nafsu makan + 0.005

Individu Kawin
YA Apakah kondisi libido ?

TIDAK YA Apakah jarak predator <=50?

TIDAK TIDAK Keluar? YA END

Gambar 3.7 Diagram alir dari program yang akan dibuat. 3.3.2 Pembuatan Perangkat Keras

36 | h a l a m a n

Dalam bab ini akan dijelaskan pembuatan hardware untuk mengontrol animasi yang telah dibuat pada sub bab sebelumnya. Input dari hardware joystick ditransmisikan secara wireless ke laptop. RF pada joystick/remote yang digunakan adalah jenis TLP/RLP dengan frekuensi kerja 434 MHz. Input dari joystick tadi digunakan untuk mengontrol gerak dari animasi yang telah dibuat, khususnya untuk mengontrol gerak dari predator. Gerakan yang dilakukan adalah gerak ke kiri, ke kanan, ke atas dan ke bawah. Di bawah ini akan dijelaskan bagaimana rangkaian transmitter/receiver menggunakan TLP/RLP 434 dan bagaimana menghubungkan rangkaian tersebut dengan laptop.

3.3.2.1 Rangkaian Transmiter dan Receiver Menggunakan TLP / RLP 434. Rangkaian transmitter menggunakan TLP 434 merupakan rangkaian transmitter yang menggunakan frekuensi kerja 434 MHz. Modulasi yang digunakan adalah modulasi ASK (Amplitude Shift Keying). Pada perancangan dan pembuatan rangkaian transmitter ini, digunakan IC HT12E sebagai enkoder dari data input yang diinputkan melalui 4 dipswitch. Pada IC HT12E, terdapat 8 bit jalur address yang digunakan sebagai identifikasi di sisi penerima. Untuk mengaktifkan transmisi data, maka pin TE harus diberikan input aktif low. Hal tersebut dapat dilakukan dengan mengosongkan jalur yang tersambung dengan pin TE atau dapat dihubungkan dengan jalur GND pada rangkaian. Sedangkan di sisi penerima digunakan modul RLP 434 yang merupakan pasangan dari TLP 434. Sama halnya dengan TLP 434, RLP 434 juga beroperasi di dalam frekuensi 434 MHz. Setelah data diterima oleh RLP, maka data didekoderkan dengan menggunakan IC HT12D yang merupakan pasangan dari HT12E yang digunakan di sisi pengirim.

h a l a m a n | 37

Gambar 3.8 Rangkaian transmitter TLP 434

Gambar 3.9 Skema fisik tranmitter TLP 434

38 | h a l a m a n

Gambar 3.10 Rangkaian penerima RLP 434

Gambar 3.11 Skema fisik receiver RLP 434 Pada blok enkoder dan dekoder, terdapat sebuah frekuensi osilator. Frekuensi osilator mempengaruhi dari pembentukan clock dan berpengaruh terhadap waktu pengiriman dan penerimaan data dari pengirim ke penerima. Untuk ukuran frekuensi osilator di sisi dekoder direkomendasikan sebesar 50 kali dari frekuensi osilator di sisi enkoder. Hal tersebut dipengaruhi dari nilai resistor yang

h a l a m a n | 39

dipakai di kedua sisi, baik dekoder maupun enkoder. Sedangkan untuk mengetahui berapa frekuensi osilator, digunakan grafik yang telah disediakan di dalam datasheet dari ic enkoder maupun ic dekoder, seperti yang terlihat pada gambar 3.12 di bawah ini

Gambar 3.12 Kurva nilai resistansi pada HT12E terhadap frekuensi oscilasi dan tegangan (VDD) Dalam rangkaian, digunakan nilai resistor 820 k dan tegangan VDD sebesar 5 volt. Maka dapat diketahui sesuai karakteristik dari HT12E, nilai frekuensi osilator di sisi enkoder adalah 3,5 KHz. Sedangkan nilai frekuensi osilator di sisi dekoder adalah seperti perhitungan berikut.
FoscD = 50 3,5 KHz FoscD = 175 KHz

40 | h a l a m a n

Dari perhitungan di atas, kita menggunakan kurva karakteristik HT12D untuk menentukan nilai resistor yang digunakan di dalam rangkaian.

Gambar 3.13 Kurva nilai resistansi pada HT12D terhadap frekuensi oscilasi dan tegangan (VDD). Dari grafik 3.13 diketahui, bahwa nilai resistor yang berada pada tegangan kerja 5 volt dan frekuensi 175 KHz adalah resistor dengan nilai 43 K. Akan tetapi, di pasaran resistor dengan nilai tersebut jarang dijumpai. Oleh karena itu, penggunaan nilai resistor di sisi dekoder menggunakan nilai resistor 47 k yang akan menghasilkan frekuensi osilator 135 KHz. 3.3.2.2 Menghubungkan Rangkaian TLP/RLP 434 dengan Laptop Setelah selesai pembuatan rangkaian TLP/RLP yang dilakukan bagaimana menghubungkan rangkaian tersebut ke laptop. Untuk

h a l a m a n | 41

mengkoneksikan rangkaian TLP/RLP yang telah dibuat dibutuhkan rangkaian mikrokontroler. Pada pembuatan rangkaian ini digunakan rangkaian dengan menggunakan ATMega16 dan rangkaian konversi dari standar TTL ke standar RS232 dengan menggunakan IC MAXIM 232. Pada mikrokontroler digunakan komunikasi dengan USART dari mikrokontroler, kemudian output dari mikrokontroler akan dikonversi ke dalam standar RS232 dan kemudian akan digunakan untuk mengontrol gerak dari karakter, sesuai dengan variabel yang dikenali oleh PC dan nantinya diimplementasikan ke program. Skema dari komunikasi serial mikrokontrol ATMega16 dengan PC digambarkan sebagai berikut :

R a n g ka ia n R LP

M ikr o o n tro l AT M ega 16

M a x2 3 2

R a n g ka ia n P o w e r S u p p ly

Gambar 3.14 Skema komunikasi serial antara mikrokontrol dengan komputer. Rangkaian mikrokontroler ATMega16 pada komunikasi serial dengan komputer adalah untuk proses USART dimana pada output mikrokontroler adalah berupa data serial.

42 | h a l a m a n

Gambar 3.15 Mikrokontroler ATMega16 untuk komunikasi USART. Setelah USART pada mikrokontroler diaktifkan, maka output data yang berupa data serial masih berupa standar TTL dimana harus dikonversikan ke dalam standar RS232. Dimana pengkonversian ini dilakukan dengan menggunakan rangkaian RS232.

Gambar 3.16 skema rangkaian RS-232

Gambar 3.17 Skema fisik Rangkaian RS 232. 3.4 Penyambungan Hardware dan software

h a l a m a n | 43

pada bagian ini akan membahas perencanaan interface pada hardware dengan software. Data yang telah diterima oleh RLP yg telah dijelaskan sebelumnya telah diproses hingga karakter bisa diterima oleh laptop berupa karakter. Kemudian pada program ditambahkan MSComm untuk menginterface VB dengan Hyperterminal. Kemudian ketika joystick ditekan (pada Tx TLP) maka animasi akan ikut bergerak sesuai arah joystick yang ditekan. 3.5 TEMPAT DAN WAKTU PENELITIAN Penelitian dari Animasi ini dilakukan di gedung D4 lantai 3, Ruangan Proyek Akhir Lab. Komunikasi Digital,Politeknik Elektronika Negeri Surabaya. Adapun waktu penelitiannya dimulai dari bulan Agustus 2011 sampai Januari 2012. 3.6 METODE ANALISA DAN PENGUMPULAN DATA Setelah proses perancangan selesai, langkah selanjutnya adalah proses pengujian. Dalam hal ini adalah pengujian terhadap kontrol perilaku karakter berdasarkan logika fuzzy cognitive map dengan menggunakan interface Visual Basic. Proses pengujian pada proyek akhri ini meliputi : 3.6.1 Keberhasilan mengontrol karakter dengan menggunakan Visual Basic Pada pengujian ini dilakukan pengujian dengan menggunakan software Visual Basic, dimana pada program dengan menggunakan Visual Basic diberikan suatu panel untuk mengontrol gerak dari karakter yang dipilih.

44 | h a l a m a n

Gambar 3.18 Panel untuk mengontrol predator pada program 3.6.2 Keberhasilan mengimplementasikan logika fuzzy cognitive map pada program serta dikendalikan melalui hardware Pada pengujian ini dilakukan dengan melakukan pengamatan terhadap perilaku karakter sesuai dengan kondisi yang dialami oleh karakter. Pembuatan rule untuk gerak karakter yang digerakkan secara otomatis oleh program dilakukan dengan menggunakan logika fuzzy cognitive map. Hal tersebut berasal dari perhitungan nilai yang menentukan tiap-tiap kondisi pada karakter yang nantinya akan menentukan gerak dari karakter. Untuk pergerakan dari karakter akan dilakukan secara wireless menggunakan rangkaian TLP/RLP.

h a l a m a n | 45

Gambar 3.19 Panel variabel yang menentukan nilai dari logika fuzzy cognitive map yang menentukan gerak karakter.

46 | h a l a m a n

(Halaman ini sengaja dikosongkan)

BAB IV PENGUJIAN DAN ANALISA


Dalam bab ini akan dilakukan pengujian dan analisa mengenai hasil dari perancangan sistem yang telah dilakukan pada bab sebelumnya. Pengujian dan analisa yang akan dilakukan yaitu : 1. Pengujian komunikasi data dengan menggunakan rangkaian TLP RLP pada PC/laptop yang menggunakan standar RS232. 2. Pengujian terhadap tingkah karakter yang telah dibuat dengan menggunakan Visual Basic dan menggunakan metode Logika Fuzzy Kognitif Map dengan memetakan perilaku individu.

h a l a m a n | 47

3. Pengujian

terhadap kontrol perilaku menggunakan hardware yang telah dibuat dengan rangkaian TLP dan RLP.

4.1 Pengujian hasil komunikasi serial dengan menggunakan rangkaian TLP dan RLP. 4.1.1 Tujuan Pengujian ini bertujuan untuk : 1. Mengetahui karakter yang diterima oleh PC/laptop melalui hyperterminal yang telah dikirim dengan menggunakan rangkaian TLP/RLP. 2. Mengetahui prinsip kerja dan faktor yang mempengaruhi komunikasi serial dengan menggunakan RS232 4.1.2 1. 2. 3. 4. 5. 6. 7. 8. 9. 4.1.3 Peralatan Baterai 12 VDC PC atau laptop Minimum Sistem ATmega16 Rangkaian RS232 Kabel USB Software CVAVR Rangkaian TLP/RLP Rangkaian power supply Software putty atau hyperterminal Gambar Rangkaian

IN P U T

R a n g k a ia n TLP

R a n g ka ia n R LP

M ikr o o n tr o l A T M ega 16

M a x2 3 2

R a n g k a ia n p o w e r s u p p ly

R a n g ka ia n P o w e r S u p p ly

Gambar 4.1 Rangkaian pengujian komunikasi dengan menggunakan TLP dan RLP.

48 | h a l a m a n

4.1.4 1. 2.

Langkah-langkah pengujian Menyusun rangkaian seperti pada gambar 4.1. Mengirimkan data dengan menggunakan rangkaian TLP dan mengamati hasil output pada hyperterminal di komputer atau laptop.

4.1.5

Hasil dan analisa Pengujian ini dilakukan untuk mengetahui komunikasi secara wireless dengan menggunakan rangkaian TLP dan RLP dimana menggunakan frekuensi 434Mhz. Pada pengujian ini juga dilakukan pengujian terhadap karakter yang dapat diterima oleh komputer dari data yang dikirim. Nantinya karakter itu yang akan digunakan untuk mengontrol perilaku dari karakter yang akan digerakkan dengan menggunakan rangkaian TLP ini. Dari hasil pengujian terhadap rangkaian ini di dapatkan hasil sebagai berikut : Tabel 4.1 Hasil pengujian dengan menggunakan hyperterminal Tombol yang Karakter yang Baudrate ditekan diterima 2400 1 X 2400 2 X 2400 3 X 2400 4 X 4800 1 X 4800 2 X 4800 3 X 4800 4 X 9600 1 Huruf A 9600 2 Huruf B 9600 3 Huruf C 9600 4 Huruf D 19200 1 X 19200 2 X 19200 3 X 19200 4 X 38400 1 X 38400 2 X

h a l a m a n | 49

38400 3 38400 4 Keterangan : X = Karakter tidak dikenali

X X

Analisa : Pengujian rangkaian transmisi data ini, dilakukan dengan mensetting nilai baudrate pada tiap-tiap pengujian. Pada mikrokontroler, USART yang diaktifkan disetting dengan nilai baudrate 9600, sehingga data yang dikirim ke komputer memiliki laju sebesar 9600. Pada tabel dapat dilihat bahwa kondisi dimana didapatkan suatu output yang baik, dalam artian suatu karakter yang dapat dikenali adalah dengan menggunakan baudarate 9600 pada hyperterminal.

Gambar 4.2 Baudrate yang digunakan pada mikrokontroler ATMega16

Gambar 4.3 Tampilan karakter A yang diterima oleh hyperterminal. Berikut adalah program yang digunakan pada mikrokontroler: while (1) { // Place your code here if (button_0==0){putchar('A'); output_0=1; delay_ms(250);} ;

50 | h a l a m a n

if (button_1==0){putchar('B'); output_1=1; delay_ms(250);} ; if (button_2==0){putchar('C'); output_2=1; delay_ms(250);} ; if (button_3==0){putchar('D'); output_3=1; delay_ms(250);} ; PORTA=0x00; }; Untuk keluaran mikrokontroler, tegangan yang digunakan masih menggunakan tegangan standart TTL. Hal tersebut dikarenakan pada mikrokontroler terdapat suatu kondisi dimana suatu nilai akan bernilai 0 jika tegangan 0 volt dan suatu nilai akan bernilai 1 jika tegangan 5 volt. Namun pada standar komunikasi RS232 memiliki nilai yang berbeda dengan tegangan standart TTL. Agar suatu data dapat melakukan komunikasi dengan komputer secara serial, maka harus digunakan standar RS232 ini. Pada RS232, nilai logika 1 disebut mark, yaitu terletak pada range -3 volt sampai dengan -23 volt. Sedangkan logika 0 disebut dengan logika space, yaitu terletak pada range 3 volt sampai dengan 23 volt, dan terdapat suatu nilai invalid yang berada pada range 3 volt dan -3 volt. Sehingga untuk merubah tegangan ini digunakan rangkaian RS232 dengan menggunakan IC MAX232. Karakter yang diterima dari Rangkaian Penerima nantinya akan digunakan di dalam program dengan Visual Basic untuk mengendalikan gerak dari karakter. Sehingga diperlukan karakter yang dapat dikenali, sehingga dapat diimplementasikan ke dalam program. 4.2. Hasil pengujian terhadap perilaku karakter yang dibuat dengan Visual Basic dengan metode fuzzy kognitif map 4.2.1 Tujuan Pengujian ini bertujuan untuk : 1. Mengetahui dan membuat peta kognitif dari karakteristik individu pada program yang telah dibuat dengan menggunakan fuzzy kognitif map. 2. Memetakan hubungan kausalitas antar variabel dan karakter pada program dengan menggunakan logika fuzzy kognitif map. 4.2.2 Peralatan 1. Hardware (Komputer/laptop yang support dengan VB) 2. Software Microsoft Visual Basic.

h a l a m a n | 51

4.2.3

Gambar pengujian

Gambar 4.4 Simulasi program yang telah dibuat pada Visual Basic 4.2.4 1. 2. 3. 4. 5. 4.2.5 a. Langkah-langkah pengujian. Menyiapkan program yang telah dibuat dengan menggunakan Visual Basic. mengkompail dan menjalankan program dengan menekan tombol start. Diambil nilai dari tiap parameter pada karakter sehingga dapat menentukan suatu keputusan tentang kondisi karakter. Memetakan nilai pada suatu kondisi dari individu. Mengcapture dan mencatat hasil pengamatan dan memberikan gambaran grafik terhadap aturan yang digunakan di dalam program. Hasil dan analisa Data kognitif map (peta perilaku) dari suatu individu pada faktor tingkat kelaparan.

52 | h a l a m a n

Dari program yang telah dibuat berdasarkan logika fuzzy kognitif map, maka dapat diketahui bahwa suatu kondisi dari individu digolongkan berdasarkan nilai dari variabel-variabel yang telah didefinisikan sebelumnya. Variabel tersebut antara lain : tingkat kelaparan, tingkat libido dan tingkat ketakakutan. Pada penggunaan metode fuzzy cogninitive map ini, untuk proses fuzzyfikasi dan defuzzyfikasi sama dengan metode fuzzy logic. Yang membedakan adalah pembentukan dan pengolahan data di dalam pembentukan himpunan crispnya. Jika pada logika fuzzy, himpunan crisp yang terbentuk dari nilai masing-masing variabel dipandang sebagai nilai yang bebas dan tidak memiliki pengaruh terhadap nilai dari variabel lainnya. Dan pada kognitif map ini, nilai dari suatu variabel akan mempengaruhi nilai dari variabel lainnya dan akan berpengaruh terhadap pembentukan anggota dari suatu hmpunan crisp yang terbentuk yang nantinya digunakan untuk proses pengolahan dengan logika fuzzy dan hal itu tentunya akan sangat berpengaruh terhadap proses defuzzyfikasi. Seperti yang kita ketahui, pada program yang menentukan gerak dari individu adalah kondisi dari individu tersebut. Sedangkan kondisi individu itu sendiri merupakan hasil dari proses defuzzyfikasi. Oleh karena itu, peta kognitif merupakan hal yang sangat penting di dalam proses logika fuzzy dengan menggunakan logika fuzzy kognitif map. Untuk penggolongan kondisi dari individu, berasal dari perhitungan dengan menggunakan variabelvariabel tersebut. Sehingga satu sama lain antara variabel-variabel tersebut saling berkaitan. berikut adalah peta kognitif keseluruhan dari animasi :

h a l a m a n | 53

Jumlah makanan

Nafsu makan

+ +
Energi

+ -

Tingkat kelaparan

Tingkat libido

+ + Tingkat ketakutan

Jarak predator

Gambar 4.5 peta kognitif keseluruhan Pada peta kognitif diatas menggambarkan hubungan keseluruhan untuk tiap parameter pada penelitian ini. Dapat diketahui bahwa untuk tiap-tiap parameter memiliki hubungan kausalitas yang menyebabkan perubahan bagi parameter lainnya. Pada peta kognitif tersebut diasumsikan untuk suatu parameter dan kondisi dalam keadaan minus -, misalkan ketika energi bernilai - maka menyebabkan nafsu makan + dan jumlah makanan + serta tingkat libido -. Pada pengujian ini dilakukan dengan menggunakan perhitungan yang digunakan pada program untuk menentukan kondisi dari makhluk hidup. Dari hasil pengujian, didapatkan data sebagai berikut ini :

Tabel 4.2 Hasil pemetaan nilai dari variabel lapar untuk tiap kondisi.

54 | h a l a m a n

dat a ke1 2 3 4 5 36 37 38 39 40

ener gi

jumlah makan an 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5

laju pencerna an 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005

nafsu makan

tingkat kelapar an 0.0025 0.005 0.0075 0.01 0.0125 0.09 0.0925 0.095 0.0975 0.1

SEDANG MENUJU MAKANAN 0.5 0.49 9 0.49 8 0.49 7 0.49 6 0.46 5 0.46 4 0.46 3 0.46 2 0.46 1 0.46 6 0.47 1 0.47 6 0.48 1 0.48 6 0.64 1 0.64 6 0.65 1 0.65 6 0.005 0.01 0.015 0.02 0.025 0.18 0.185 0.19 0.195 0.2

SEDANG MAKAN 41 42 43 44 45 76 77 78 79 0.49 0.48 0.47 0.46 0.45 0.14 0.13 0.12 0.11 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.195 0.19 0.185 0.18 0.175 0.02 0.015 0.01 0.005 0.0975 0.095 0.0925 0.09 0.0875 0.01 0.0075 0.005 0.0025

h a l a m a n | 55

80

0.66 1 0.66 0.65 9 0.65 8 0.65 7 0.65 6 0.62 5 0.62 4 0.62 3 0.62 2 0.62 1 0.61 6 0.61 1 0.60 6 0.60 1 0.59 6 0.44 1 0.43 6 0.43 1 0.42 6

0.1

0.005

SEDANG MENUJU LIBIDO 81 82 83 84 85 116 117 118 119 120 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.01 0.015 0.02 0.025 0.18 0.185 0.19 0.195 0.2 0.0025 0.005 0.0075 0.01 0.0125 0.09 0.0925 0.095 0.0975 0.1

SEDANG LIBIDO 121 122 123 124 125 156 157 158 159 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.205 0.21 0.215 0.22 0.225 0.38 0.385 0.39 0.395 0.1025 0.105 0.1075 0.11 0.1125 0.19 0.1925 0.195 0.1975

56 | h a l a m a n

160

0.42 1 0.41 6 0.41 1 0.40 6 0.40 1 0.39 6 0.24 1 0.23 6 0.23 1 0.22 6 0.22 1

0.1

0.005 FEAR

0.4

0.2

161 162 163 164 165 196 197 198 199 200

0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1

0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005

0.405 0.41 0.415 0.42 0.425 0.58 0.585 0.59 0.595 0.6

0.2025 0.205 0.2075 0.21 0.2125 0.29 0.2925 0.295 0.2975 0.3

Dari data yang didapat di atas, data pertama dari baris ke 1 sampai dengan 40 adalah kondisi dimana individu sedang menuju makanan hal tersebut ditandai dengan meningkatnya variabel tingkat kelaparan disamping itu untuk nafsu makan juga mengalami peningkatan namun berbeda untuk energi yang mengalami penurunan walaupun penurunannya sedikit. Kemudian karena individu sedang tidak berada dalam kondisi makan, maka jumlah makanan pun tetap. Dalam kondisi ini waktu terakhir makan (pada simulasi) terus mengalami counter. Untuk menghitung tingkat kelaparan dapat digunakan persamaan yang digunakan dalam program sebagai berikut :

(1)

Kemudian untuk kondisi kedua yaitu saat individu sedang makan untuk keadaan ini posisi individu sedang berada tepat pada makanan,disaat inilah counter dari waktu terakhir makan mulai reset

h a l a m a n | 57

(menjadi 0) dengan hal ini maka jumlah makanan pun berkurang. Kemudian untuk tingkat kelaparan dan nafsu makan mengalami penurunan sedangkan untuk energi mengalami kenaikan. Selanjutnya untuk kondisi sedang menuju libido, dalam kondisi ini counter untuk waktu terakhir makan akan mulai berjalan lagi dan jumlah makanan akan tetap. Tetapi untuk tingkat kelaparan dan nafsu makan akan mengalami kenaikan kembali karena dia sedang tidak makan begitu juga energi akan mengalami penurunan. Kemudian setelah individu mencapai lawan jenis atau dalam kondisi libido hal ini seperti dalam kondisi sedang menuju libido namun penurunan dari energi menjadi lebih besar. Untuk nafsu makan dan tingkat kelaparannya juga tetap mengalami penaikan. Untuk kondisi saat fear disini diibaratkan jarak individu sedang jauh dari predator maka perubahannya tetap seperti keadaan sebelumnya, Untuk lebih jelasnya dapat dilihat seperti pada gambar 4.6 berikut :

Gambar 4.6 grafik hubungan antar variabel hungry

58 | h a l a m a n

Jumlah makanan

+ Energi

+
Tingkat kelaparan

+
Nafsu makan

Gambar 4.7 Peta kognitif antara variabel pada Hungry. Pada hubungan peta kognitif tersebut diasumsikan untuk sebuah parameter dalam keadaan minus - misalkan ketika energi - maka mengakibatkan jumlah makanan + tingkat kelaparan + dan nafsu makan + Dari peta kognitif tersebut dapat direpresentasikan tabel adjacency matrix hubungan antar variabel seperti berikut : Tabel 4.3 Tabel hubungan adjacency matrix Hungry Tingkat Jumlah Nafsu Energi kelaparan makanan makan Tingkat 0 + kelaparan Energi + 0 + + Jumlah + 0 makanan Nafsu + 0 makan Dari tabel kondisi di atas didapatkan adjacency matrixnya sebagai berikut :

h a l a m a n | 59

Persamaan 4.1 Adjacency matrix dari Hungry. b. Data kognitif map (peta perilaku) dari suatu individu pada faktor tingkat libido. Pada pengujian terhadap faktor libido, didapatkan data seperti pada tabel 4.4 : Tabel 4.4 Tabel hasil pemetaan nilai terhadap variabel libido.
Data keenergi laju libido tingkat kelapar an waktu terakhir kawin tingkat libido

SEDANG MENUJU MAKANAN 1 2 3 4 5 0.5 0.499 0.498 0.497 0.496 36 37 38 39 40 0.465 0.464 0.463 0.462 0.461 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.0025 0.005 0.0075 0.01 0.0125 0.09 0.0925 0.095 0.0975 0.1 0 1 2 3 4 35 36 37 38 39 0 0.001 0.002 0.003 0.004 0.035 0.036 0.037 0.038 0.039

SEDANG MAKAN 41 42 43 44 0.466 0.471 0.476 0.481 0.001 0.001 0.001 0.001 0.0975 0.095 0.0925 0.09 40 41 42 43 0.04 0.041 0.042 0.043

60 | h a l a m a n

45

0.486

0.001 0.001 0.001 0.001 0.001 0.001

0.0875 0.01 0.0075 0.005 0.0025 0

44 75 76 77 78 79

0.044 0.075 0.076 0.077 0.078 0.079

76 77 78 79 80

0.641 0.646 0.651 0.656 0.661

SEDANG MENUJU LIBIDO 81 82 83 84 85 11 6 11 7 11 8 11 9 12 0 12 1 12 2 12 3 12 4 12 5 15 6 0.66 0.659 0.658 0.657 0.656 0.625 0.624 0.623 0.622 0.621 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.0025 0.005 0.0075 0.01 0.0125 0.09 0.0925 0.095 0.0975 0.1 80 81 82 83 84 115 116 117 118 119 0.08 0.081 0.082 0.083 0.084 0.115 0.116 0.117 0.118 0.119

SEDANG LIBIDO 0.616 0.611 0.606 0.601 0.596 0.441 0.001 0.001 0.001 0.001 0.001 0.001 0.1025 0.105 0.1075 0.11 0.1125 0.19 0 0 0 0 0 0 0 0 0 0 0 0

h a l a m a n | 61

15 7 15 8 15 9 16 0 16 1 16 2 16 3 16 4 16 5 19 6 19 7 19 8 19 9 20 0

0.436 0.431 0.426 0.421

0.001 0.001 0.001 0.001

0.1925 0.195 0.1975 0.2 FEAR

0 0 0 0

0 0 0 0

0.416 0.411 0.406 0.401 0.396 0.241 0.236 0.231 0.226 0.221

0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001

0.2025 0.205 0.2075 0.21 0.2125 0.29 0.2925 0.295 0.2975 0.3

1 1 1 1 1 1 1 1 1 1

0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001

Dari data diatas didapatkan bahwa variabel libido juga dipengaruhi oleh variabel-variabel lain. Variabel tersebut antara lain waktu terakhir kawin dan nilai dari tingkat kelaparan. Hal tersebut diketahui dari persamaan yang digunakan pada program sebagai berikut :
(2)

Seperti pada keadaan hungry dibedakan menjadi berbagai kondisi. Kondisi yang pertama yaitu kondisi saat menuju makan, Pada saat kondisi ini belum terjadi aktivitas libido karena individu masih belum mendekati lawan jenis. Pada saat ini tingkat kelaparan

62 | h a l a m a n

meningkat karena energi dari individu mengalami penurunan dan disaat itu juga tingkat dari libido mengalami penaikan. Kemudian untuk keadaan saat individu sedang makan, pada keadaan ini juga masih belum mengalami perubahan untuk variabel libido karena individu masih belum mendekati lawan jenis. Untuk tingkat kelaparan tentu akan menurun karena dia sedang makan maka otomatis energi dari individu akan bertambah. Setelah itu tiba saatnya kondisi dimana individu sedang mendekati lawan jenis. Pada saat ini posisi individu belum bertemu dengan lawan jenis maka untuk tingkat libido belum mengalami perubahan atau tetap meningkat. Untuk tingkat kelaparannya mengalami penurunan kembali karena dia sudah tidak makan begitu juga dengan energi akan mengalami penurunan. Akhirnya setelah individu bertemu dengan lawan jenis maka terjadi kondisi libido. Pada kondisi inilah terjadi perubahan yang pesat pada tingkat libido. Hal ini terjadi karena rumus dari libido sendiri yang bergantung dari waktu terakhir kali dia kawin. Kemudian untuk tingkat kelaparannya akan meningkat dan otomatis energinya akan berkurang. Kemudian untuk keadaan saat individu didekati oleh predator maka terjadi kondisi fear. Pada saat ini maka counter dari waktu terakhir kawin akan mulai menghitung kembali maka mengakibatkan tingkat libido meningkat kembali sedangkan untuk energi akan tetap mengalami penurunan yang mengakibatkan peningkatan tingkat kelaparan. Untuk lebih jelasnya dapat dilihat pada grafik sebagai berikut :

h a l a m a n | 63

Gambar 4.8 Grafik hubungan antar variabel libido


T in g kat kelap a ra n

+
E n e rg i

+ Ting ka t libido

Gambar 4.9 Peta kognitif dari variabel libido. Pada peta kognitife tersebut diasumsikan sutau parameter dalam keadaan minus - misalnya jika energi - maka menyebabkan tingkat kelaparan + dan tingkat libido -. Maka variabel-variabel tersebut dinyatakan sebagai berikut : Tabel 4.5 Tabel adjacancy matrix libido Tingkat Tingkat Libido energi kelaparan 0 +

Tingkat Libido

64 | h a l a m a n

Energi 0 + Tingkat + + 0 kelaparan Dari tabel kondisi di atas didapatkan adjacency matrixnya sebagai berikut :

Persamaan 4.2 Adjacency matrix dari tingkat libido. c. Data kognitif map (peta perilaku) dari suatu individu pada faktor tingkat ketakutan. Pada faktor ketakutan individu, variabel yang berpengaruh adalah jarak individu ke predator. Hal tersebut ditunjukkan dari data hasil pengujian terhadap faktor ketakutan individu seperti berikut : Tabel 4.6 Tabel hasil pengukuran dari variabel ketakutan
nafs u mak an 0.00 5 0.01 0.01 5 0.02 0.02 5 0.18 0.18 5 0.19 tingkat kelapar an jarak predato r (dikalik an 100) jarak minimal (dikalikan 100)

ener gi

tingkat ketakutan

SEDANG MENUJU MAKANAN 0.5 0.49 9 0.49 8 0.49 7 0.49 6 0.46 5 0.46 4 0.46 3 0.0025 0.005 0.0075 0.01 0.0125 0.09 0.0925 0.095 1 0.995 0.99 0.985 0.98 0.825 0.82 0.815 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.502512563 0.505050505 0.507614213 0.510204082 0.606060606 0.609756098 0.613496933

h a l a m a n | 65

0.19 5 0.2 0.19 5 0.19 0.18 5 0.18 0.17 5 0.02 0.01 5 0.01 0.00 5 0 0.00 5 0.01 0.01 5 0.02 0.02 5 0.18 0.18 5 0.19

0.46 2 0.46 1 0.46 6 0.47 1 0.47 6 0.48 1 0.48 6 0.64 1 0.64 6 0.65 1 0.65 6 0.66 1

0.0975 0.1

0.81 0.805 SEDANG MAKAN

0.5 0.5

0.617283951 0.621118012

0.0975 0.095 0.0925 0.09 0.0875 0.01 0.0075 0.005 0.0025 0

0.8 0.795 0.79 0.785 0.78 0.625 0.62 0.615 0.61 0.605

0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5

0.625 0.628930818 0.632911392 0.636942675 0.641025641 . 0.8 0.806451613 0.81300813 0.819672131 0.826446281

SEDANG MENUJU LIBIDO 0.66 0.65 9 0.65 8 0.65 7 0.65 6 0.62 5 0.62 4 0.62 3 0.0025 0.005 0.0075 0.01 0.0125 0.09 0.0925 0.095 0.005 0.01 0.015 0.02 0.025 0.425 0.42 0.415 0.6 0.595 0.59 0.585 0.58 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 1 1 1

66 | h a l a m a n

0.19 5 0.2 0.20 5 0.21 0.21 5 0.22 0.22 5 0.4 0.39 5 0.39 0.38 5 0.38 0.40 5 0.41 0.41 5 0.42 0.42 5 0.58 0.58 5 0.59 0.59 5

0.62 2 0.62 1 0.61 6 0.61 1 0.60 6 0.60 1 0.59 6 0.5 0.5 0.5 0.5 0.5 0.41 6 0.41 1 0.40 6 0.40 1 0.39 6 0.24 1 0.23 6 0.23 1 0.22 6

0.0975 0.1

0.41 0.405 SEDANG LIBIDO

0.5 0.5

1 1

0.1025 0.105 0.1075 0.11 0.1125 1 1 1 1 1

0.4 0.395 0.39 0.385 0.38 0.225 0.22 0.215 0.21 0.205 FEAR

0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5

1 1 1 1 1 1 1 1 1 1

0.2025 0.205 0.2075 0.21 0.2125 0.29 0.2925 0.295 0.2975

0.2 0.195 0.19 0.185 0.18 0.025 0.02 0.015 0.01

0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5

1 1 1 1 1 1 1 1 1

h a l a m a n | 67

0.6

0.22 1

0.3

0.005

0.5

Dari data yang didapat diatas, dapat diketahui bahwa variabel fear dipengaruhi oleh variabel tingkat ketakutan, jarak individu ke predator, tingkat kelaparan, energi, dan nafsu makan. Pada fear ini juga dibedakan menjadi berbagai kondisi. Untuk kondisi pertama yaitu saat individu sedang menuju makanan pada saat ini terjadi perubahan pada tingkat kelaparan energi dan nafsu makan seperti pada keadaan pada hungry dan libido. Pada keadaan ini dimisalkan jarak dari predator masih agak aman jadi tingkat ketakutan dari individu masih belum mencapai puncak. Untuk mencari tingkat ketakutan digunakan persamaan sebagai berikut : (3) Kondisi berikutnya yaitu saat individu sedang makan dan predator lebih didekatkan lagi ke individu. Untuk tingkat kelaparan dia mengalami penurunan karena sedang makan begitu juga untuk nafsu makan dan energi mengalami peningkatan karena individu sedang makan. Dan tingkat ketakutan terus mengalami peningkatan karena jarak dari predator terhadap individu semakin dekat. Jarak minimal individu ke predator adalah sebesar 50 pixel. Maka jika jarak lebih kecil dari 50 pixel, individu akan berada pada kondisi takut. Untuk kondisi berikutnya yaitu sedang menuju libido dalam kondisi ini dimisalkan jarak predator sudah sangat dekat terhadap individu sehingga menyebabkan tingkat ketakutan meningkat pesat hingga 1 sehingga dalam simulasi akan menyebabkan individu menghindar dari predator. Dan perubahan lainnya terjadi pada tingkat kelaparan dan nafsu makan yang meningkat sehingga juga menyebabkan energi menurun. Kemudian saat kondisi pada libido pun terjadi tingkat ketakutan yang tinggi sehingga dia akan lebih memilih menjauh dari pada mendekat lawan jenis. Pada keadaan ini terjadi keadaan yang sama seperti keadaan sebelumnya saat mendekati libido untuk variabel tingkat kelaparan, nafsu makan, dan energi.

68 | h a l a m a n

Kemudian untuk keadaan kondisi fear individu sudah menginjak tingkat ketakutan 1 sehinggan menyebabkan ia lebih memilih menjauh dari pada makan atau kawin. Sehingga menyebabkan perubahan yang lebih meningkat untuk variabel seperti keadaan sebelumnya. Sebagai gambaran dapat dilihat seperti grafik sebagai berikut :

Gambar 4.10 Grafik hubungan antar variabel fear Pada kondisi takut, maka individu akan menjauh dari predator. Sehingga terdapat hubungan antara, tingkat kelaparan, energi, nafsu makan, jarak dari predator, dan tingkat ketakutan. Dimana hubungan diantara ketiganya dapat digambarkan dengan peta kognitif sebagai berikut :

h a l a m a n | 69

+
Energi

Tingkat kelaparan

+ + -

Tingkat ketakutan

+
Nafsu makan

Jarak predator

Gambar 4.11 Peta kognitif dari variabel ketakutan. Pada peta kognitif tersebut diasumsikan sebuah parameter dalam keadaan minus - misalnya saat Jarak predator - maka menyebabkan nafsu makan +, energi - tingkat kelaparan + dan tingkat ketakutan +. Maka variabel-variabel tersebut dapat dinyatakan sebagai berikut : Tabel 4.7 Tabel adjecency matrix ketakutan Jarak Tingkat predator Nafsu Energi ketakutan ke makan individu 0 + + + 0 + + + 0 + + + + 0 -

Tingkat ketakutan Jarak predator ke individu Energi Nafsu makan Tingkat kelaparan

Tingkat kelaparan + + 0

70 | h a l a m a n

Dari tabel kondisi di atas didapatkan adjacency matrixnya sebagai berikut :

Persamaan 4.3 Adjacency matrix dari tingkat ketakutan. 4.3 Pengujian interface hardware dan program Untuk melakukan interface antara hardware dan software digunakan sarana hyperterminal pada OS windows XP atau bisa menggunakan putty untuk OS lainnya, kemudian agar program dapat connect dengan hardware maka ditambahkan perintah dalam program Visual basic sebagai berikut :
Private Sub Form_Load() indah.RThreshold = 1 indah.Settings = "9600,N,8,1" indah.InputLen = 1 indah.CommPort = 1 indah.PortOpen = True End Sub Private Sub indah_OnComm() Dim akugua As Variant akugua = indah.Input If akugua = "A" Then rawon_sapi.Top = rawon_sapi.Top - 500 ElseIf akugua = "B" Then rawon_sapi.Top = rawon_sapi.Top + 500 ElseIf akugua = "C" Then rawon_sapi.Left = rawon_sapi.Left - 500 ElseIf akugua = "D" Then rawon_sapi.Left = rawon_sapi.Left + 500 End If End Sub

Kemudian untuk melakukan koneksi antara hardware dan program diperlukan baudrate, data bits, stop bits, dan port com berapa yang digunakan. Dalam melakukan koneksi ini digunakan baud rate yang sama antara hardware dan software agar pembacaan karakter sesuai

h a l a m a n | 71

dengan karakter yang telah diinputkan dalam mikrokontroler yaitu 9600. Berikut adalah contoh tampilan dari hasil pengujian interface :

Gambar 4.12 sebelum ditekan tombol kiri pada hardware

Gambar 4.13 setelah ditekan tombol kiri beberapa kali

72 | h a l a m a n

BAB 5 PENUTUP

5.1 Kesimpulan Dari proyek akhir ini dapat disimpulkan sebagai berikut : 1. Variabel lapar dipengaruhi oleh variabel tingkat kelaparan, nafsu makan, energi, dan jumlah. Tingkat kelaparan berbanding lurus terhadap nafsu makan dan jumlah makanan namun berbanding terbalik terhadap energi seperti pada tabel 4.2 dari data ke-41 sampai dengan data ke-80 ketika dalam kondisi sedang makan jumlah energi meningkat dari 0,466 hingga 0,661, sedangkan untuk tingkat kelaparan berkurang hingga menjadi 0 kemudian nafsu makan dan jumlah makanan juga berkurang. 2. Variabel Libido dipengaruhi oleh variabel tingkat libido, tingkat kelaparan, dan energi. Tingkat libido ini berbanding lurus terhadap tingkat kelaparan namun berbanding terbalik terhadap energi seperti pada tabel 4.4 dari data ke-121 sampai dengan data ke-160 ketika dalam kondisi Libido jumlah libido menjadi 0 hal ini karena individu sedang

h a l a m a n | 73

libido sehingga waktu terakhir kawin reset menjadi 0. Sedangkan untuk tingkat kelaparan bertambah dan energi mengalami penurunan. 3. Untuk variabel libido ini merupakan faktor yang paling dominan karena jika jarak predator sedang sangat dekat dengan individu makan individu akan lebih memilih menghindar daripada mendekati Libido ataupun Hungry. Untuk Fear ini variabel yang mempengaruhi yaitu tingkat kelaparan, nafsu makan, energi, jarak dari predator, dan tingkat ketakutan. Dapat dilihat pada tabel 4.6 pada saat kondisi fear saat individu sangat dekat dengan predator jarak hingga <50 menyebabkan tingkat ketakutan hingga 1 dan menyebabkan pengurangan untuk variabel energi dan menyebabkan meningkatnya tingkat kelaparan dan nafsu makan. 4 Pada interface hardware dengan program digunakan perintah MsComm yang terletak pada program VB. Kemudian mensetting baudrate yang sama dengan baudrate yang dimasukkan pada hardware yaitu sebesar 9600 agar karakter yang dikirim dapat dikenali dan dapat mengerakkan karakter animasi. 5.2 Saran Pada penelitian ini masih banyak terdapat kekurangan karena pada metode fuzzy cognitive map ini masih rentan terhadap banyaknya jumlah karakter. Apabila diberikan jumlah karakter hingga ratusan akan sangat kesulitan dalam menyusun programnya.mungkin bisa digunakan metode lain yang lebih simple dalam memprogramnya.

74 | h a l a m a n

DAFTAR PUSTAKA [1] Axelrod, R. Structure of decision: The cognitive maps of


political elites.Princeton, NJ: Princeton University Press. (1976). [2] Irawan , Mochamad Hariadi : Pemodelan perilaku Hunter-Prey dengan Fuzzy Cognitive Maps Menggunakan Metode Crips dan Fuzzy weight analysis (2011) [3] Manjula Dissanayake , Simaan M. AbouRizk QUALITATIVE SIMULATION OF CONSTRUCTION PERFORMANCE USING FUZZY COGNITIVE MAPS (2007) [4] LEVI, A. & TETLOCK, P. E.. A cognitive analysis of Japanese 1941 decision for war. Journal of Conflict Resolution , 24, 195-211. (1980) [5] B. CHAIB-DRAA AND J. DESHARNAIS : A relational model of cognitive maps (1998) [6] Hokky Situngkir PENGGUNAAN FUZZY COGNITIVE MAPPING DALAM KONSTRUKSI ANALISIS SOSIAL; Bandung Fe Institute (2003)

h a l a m a n | 75

[7] Muslim Abadi, Akuwan Saleh S.ST : Rancang Bangun Alat


Pengukur Langkah Kaki dengan Sensor Accelerometer dan Fasilitas Komunikasi Wireless 2,4 GHz(2010)

(halaman ini sengaja dikosongkan)

76 | h a l a m a n

LAMPIRAN Listing Program : /********************************************* This program was produced by the CodeWizardAVR V1.24.0 Standard Automatic Program Generator Copyright 1998-2003 HP InfoTech s.r.l. http://www.hpinfotech.ro e-mail:office@hpinfotech.ro Project : Version : Date : 12/9/2011 Author : FD Co, Ltd Company : Comments: Chip type : ATmega16 Program type : Application Clock frequency : 8.000000 MHz

h a l a m a n | 77

Memory model : Small External SRAM size : 0 Data Stack size : 256 *********************************************/ #include <mega16.h> // Standard Input/Output functions #include <stdio.h> #include <delay.h> #include <string.h> //define input #define button_0 #define button_1 #define button_2 #define button_3 //define output #define output_0 #define output_1 #define output_2 #define output_3 PINC.0 PINC.1 PINC.2 PINC.3 PORTA.0 PORTA.1 PORTA.2 PORTA.3

// Declare your global variables here void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTA=0x00; DDRA=0xFF; // Port B initialization

78 | h a l a m a n

// Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=P State1=P State2=P State3=P State4=P State5=P State6=P State7=P PORTC=0xFF; DDRC=0x00; // Port D initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

h a l a m a n | 79

// Input Capture on Falling Edge TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00; UCSRB=0x08; UCSRC=0x86;

80 | h a l a m a n

UBRRH=0x00; UBRRL=0x33; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off // Analog Comparator Output: Off ACSR=0x80; SFIOR=0x00; while (1) { // Place your code here if (button_0==0){putchar('A'); output_0=1; delay_ms(250);} ; if (button_1==0){putchar('B'); output_1=1; delay_ms(250);} ; if (button_2==0){putchar('C'); output_2=1; delay_ms(250);} ; if (button_3==0){putchar('D'); output_3=1; delay_ms(250);} ; PORTA=0x00; }; } ========PROGRAM SIMULASI========= Option Explicit Dim hungry, hungry_1, hungry_2, hungry_3 Dim libido, libido_1, libido_2, libido_3 Dim fear, fear_1, fear_2, fear_3 Dim r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27 Dim out_1, out_2, out_3, out_4, out_5 Dim output Dim def_pemb, def_peny Dim out_o, out_h, out_l, out_f Dim output1 Dim def_pemb1, def_peny1 Dim time_h, time_l Private Sub empat_Click() rawon_sapi.Top = rawon_sapi.Top - 500

h a l a m a n | 81

End Sub Private Sub satu_Click() rawon_sapi.Left = rawon_sapi.Left - 500 End Sub Private Sub tiga_Click() rawon_sapi.Left = rawon_sapi.Left + 500 End Sub Private Sub dua_Click() rawon_sapi.Top = rawon_sapi.Top + 500 End Sub Private Sub Form_Load() indah.RThreshold = 1 indah.Settings = "9600,N,8,1" indah.InputLen = 1 indah.CommPort = 1 indah.PortOpen = True End Sub Private Sub indah_OnComm() Dim akugua As Variant akugua = indah.Input If akugua = "A" Then rawon_sapi.Top = rawon_sapi.Top - 500 ElseIf akugua = "B" Then rawon_sapi.Top = rawon_sapi.Top + 500 ElseIf akugua = "C" Then rawon_sapi.Left = rawon_sapi.Left - 500 ElseIf akugua = "D" Then rawon_sapi.Left = rawon_sapi.Left + 500 End If End Sub Private Sub bomberman_Click() Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Dim doraemon, nobita, shizuka, suneo

82 | h a l a m a n

Dim naruto, sasuke, kakashi Dim conan, ran, kogoro Dim sugab, fea1 nobita = Val(score.Text) shizuka = Val(jarum.Text) suneo = Val(gudang_garam.Text) sasuke = Val(extrajoss.Text) kakashi = Val(kopi_susu.Text) ran = Val(poisonevy.Text) kogoro = Val(robin.Text) doraemon = Sqr(((rawon_sapi.Left - kare_ayam.Left) / 30) ^ 2 + ((rawon_sapi.Top - kare_ayam.Top) / 30) ^ 2) naruto = Val(poisonevy.Text) robin.Text = doraemon sugab = sasuke * kakashi batman.Text = minimal(minimal(naruto / doraemon, 1), 1) spiderman.Text = soto_ayam.Left - kare_ayam.Left marie_jane.Text = soto_ayam.Top - kare_ayam.Top sinchan.Text = sate_ayam.Left - kare_ayam.Left nene.Text = sate_ayam.Top - kare_ayam.Top agung.Text = rawon_sapi.Left - kare_ayam.Left asih.Text = rawon_sapi.Top - kare_ayam.Top Text1.Text = soto_ayam.Left - rawon_sapi.Left Text2.Text = soto_ayam.Top - rawon_sapi.Top Text5.Text = soto_ayam.Left - sate_ayam1.Left Text7.Text = soto_ayam.Top - sate_ayam1.Top hungry = Val(intro.Text) libido = Val(kopi.Text) fear = Val(batman.Text) hungry_1 = trapmin(hungry, 0, 0.4) hungry_2 = segitiga(hungry, 0, 0.4, 0.8)

h a l a m a n | 83

hungry_3 = trapplus(hungry, 0.4, 0.8) libido_1 = trapmin(libido, 0, 0.5) libido_2 = segitiga(libido, 0, 0.5, 1) libido_3 = trapplus(libido, 0.5, 1) fear_1 = trapmin(fear, 0, 0.5) fear_2 = segitiga(fear, 0, 0.5, 1) fear_3 = trapplus(fear, 0.5, 1) r1 = minimal3(hungry_1, libido_1, fear_1) r2 = minimal3(hungry_1, libido_1, fear_2) r3 = minimal3(hungry_1, libido_1, fear_3) r4 = minimal3(hungry_1, libido_2, fear_1) r5 = minimal3(hungry_1, libido_2, fear_2) r6 = minimal3(hungry_1, libido_2, fear_3) r7 = minimal3(hungry_1, libido_3, fear_1) r8 = minimal3(hungry_1, libido_3, fear_2) r9 = minimal3(hungry_1, libido_3, fear_3) r10 = minimal3(hungry_2, libido_1, fear_1) r11 = minimal3(hungry_2, libido_1, fear_2) r12 = minimal3(hungry_2, libido_1, fear_3) r13 = minimal3(hungry_2, libido_2, fear_1) r14 = minimal3(hungry_2, libido_2, fear_2) r15 = minimal3(hungry_2, libido_2, fear_3) r16 = minimal3(hungry_2, libido_3, fear_1) r17 = minimal3(hungry_2, libido_3, fear_2) r18 = minimal3(hungry_2, libido_3, fear_3) r19 = minimal3(hungry_3, libido_1, fear_1) r20 = minimal3(hungry_3, libido_1, fear_2) r21 = minimal3(hungry_3, libido_1, fear_3) r22 = minimal3(hungry_3, libido_2, fear_1) r23 = minimal3(hungry_3, libido_2, fear_2) r24 = minimal3(hungry_3, libido_2, fear_3) r25 = minimal3(hungry_3, libido_3, fear_1) r26 = minimal3(hungry_3, libido_3, fear_2) r27 = minimal3(hungry_3, libido_3, fear_3) out_1 = 10 out_2 = 15

84 | h a l a m a n

out_3 = 30 out_4 = 60 out_5 = 100 def_pemb = r1 * out_1 + r2 * out_3 + r3 * out_5 + r4 * out_2 + r5 * out_2 + r6 * out_5 + r7 * out_5 + r8 * out_3 + r9 * out_5 + r10 * out_2 + r11 * out_3 + r12 * out_5 + r13 * out_2 + r14 * out_3 + r15 * out_5 + r16 * out_4 + r17 * out_3 + r18 * out_5 + r19 * out_5 + r20 * out_3 + r21 * out_5 + r22 * out_5 + r23 * out_3 + r24 * out_5 + r25 * out_4 + r26 * out_3 + r27 * out_5 def_peny = r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8 + r9 + r10 + r11 + r12 + r13 + r14 + r15 + r16 + r17 + r18 + r19 + r20 + r21 + r22 + r23 + r24 + r25 + r26 + r27 If def_pemb = 0 Then def_peny = 1 End If output = def_pemb / def_peny out_o = 0 out_l = 20 out_h = 50 out_f = 90 def_pemb1 = r1 * out_o + r2 * out_f + r3 * out_f + r4 * out_l + r5 * out_f + r6 * out_f + r7 * out_l + r8 * out_l + r9 * out_f + r10 * out_h + r11 * out_f + r12 * out_f + r13 * out_h + r14 * out_f + r15 * out_f + r16 * out_l + r17 * out_l + r18 * out_f + r19 * out_h + r20 * out_h + r21 * out_f + r22 * out_h + r23 * out_h + r24 * out_f + r25 * out_h + r26 * out_h + r27 * out_f def_peny1 = r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8 + r9 + r10 + r11 + r12 + r13 + r14 + r15 + r16 + r17 + r18 + r19 + r20 + r21 + r22 + r23 + r24 + r25 + r26 + r27 If def_pemb1 = 0 Then def_peny1 = 1 End If output1 = def_pemb1 / def_peny1 granny_tsunade.Text = output If output1 < 10 Then kondisi.Text = "no_action"

h a l a m a n | 85

ElseIf output1 >= 10 And output1 < 60 Then kondisi.Text = "libido" ElseIf output1 >= 60 And output1 < 85 Then kondisi.Text = "hungry" ElseIf output1 >= 85 And output1 <= 100 Then kondisi.Text = "fear" End If jiraiya_sama.Text = output1 If kondisi.Text = "hungry" Then 'kare_ayam.FillColor = RGB(1 * 255, 6, 1) If sinchan.Text <= 80 Then If nene.Text <= 140 Then intro.Text = minimal(Abs(intro.Text - 0.001), 1) score.Text = 0 gudang_garam.Text = minimal(Abs(gudang_garam.Text 0.005), 1) Text4.Text = minimal(Abs(Text4.Text + 0.005), 1) Text3.Text = Abs(Text3.Text - 0.01) If Text3.Text = 0 Then sate_ayam.Visible = False If asih.Text <= 1000 And asih.Text >= -1000 Then Shape1.Visible = True Shape2.Visible = False Else Shape2.Visible = True Shape1.Visible = False End If End If Else Text4.Text = minimal(Abs(Text4.Text - 0.001), 1) intro.Text = minimal(Abs(1 ^ 2 * (shizuka * suneo)) * 1000 * kopi.Text, 1) score.Text = score.Text + 1 gudang_garam.Text = minimal(Abs(gudang_garam.Text + 0.005), 1) End If Else

86 | h a l a m a n

intro.Text = minimal(Abs(1 ^ 2 * (shizuka * suneo)) * 1000 * kopi.Text, 1) score.Text = score.Text + 1 gudang_garam.Text = minimal(Abs(gudang_garam.Text + 0.005), 1) End If kopi.Text = minimal(Abs(sugab), 1) kopi_susu.Text = kopi_susu.Text + 1 End If If kondisi.Text = "libido" Then Text4.Text = minimal(Abs(Text4.Text - 0.001), 1) 'kare_ayam.FillColor = RGB(1 * 0, 0, 205) If spiderman.Text <= 50 Then If marie_jane.Text <= 50 Then kopi.Text = Abs(kopi.Text - 0.01) kopi_susu.Text = 0 Text4.Text = minimal(Abs(Text4.Text - 0.005), 1) Else kopi.Text = Abs(kopi.Text + 0.001) kopi_susu.Text = kopi_susu.Text + 1 End If Else kopi.Text = Abs(kopi.Text + 0.001) kopi_susu.Text = kopi_susu.Text + 1 End If intro.Text = minimal(Abs(1 ^ 40 * (shizuka * suneo)) * 1000 * 0.1, 1) score.Text = score.Text + 1 gudang_garam.Text = minimal(Abs(gudang_garam.Text + 0.005), 1) End If If kondisi.Text = "fear" Then Text4.Text = minimal(Abs(Text4.Text - 0.005), 1) 'kare_ayam.FillColor = RGB(1 * 177, 255, 0) kopi.Text = minimal(Abs(sugab), 1) kopi_susu.Text = kopi_susu.Text + 1

h a l a m a n | 87

intro.Text = minimal(Abs(1 ^ 40 * (shizuka * suneo)) * 1000 * 0.1, 1) score.Text = score.Text + 1 gudang_garam.Text = minimal(Abs(gudang_garam.Text + 0.005), 1) End If If Text7.Text <= 100 And Text7.Text >= -100 Then Text8.Text = Text8.Text - 0.005 End If If Text8.Text = 0 Then sate_ayam1.Visible = False End If If Shape1.Visible = True Then Text8.Text = Text8.Text If (Shape1.Left - kare_ayam.Left) < 0 Then kare_ayam.Left = kare_ayam.Left - 50 * 3 ElseIf (Shape1.Left - kare_ayam.Left) > 0 Then kare_ayam.Left = kare_ayam.Left + 50 * 3 End If If (Shape1.Top - kare_ayam.Top) < 0 Then kare_ayam.Top = kare_ayam.Top - 50 * 3 ElseIf (Shape1.Top - kare_ayam.Top) > 0 Then kare_ayam.Top = kare_ayam.Top + 50 * 3 End If If Text8.Text <= 0 Then If (Shape1.Left - soto_ayam.Left) < 0 Then soto_ayam.Left = soto_ayam.Left - 50 * 3 ElseIf (Shape1.Left - soto_ayam.Left) > 0 Then soto_ayam.Left = soto_ayam.Left + 50 * 3 End If If (Shape1.Top - soto_ayam.Top) < 0 Then soto_ayam.Top = soto_ayam.Top - 50 * 3 ElseIf (Shape1.Top - soto_ayam.Top) > 0 Then soto_ayam.Top = soto_ayam.Top + 50 * 3 End If Else

88 | h a l a m a n

If (sate_ayam1.Left - soto_ayam.Left) < 0 Then soto_ayam.Left = soto_ayam.Left - 50 * 3 ElseIf (sate_ayam1.Left - soto_ayam.Left) > 0 Then soto_ayam.Left = soto_ayam.Left + 50 * 3 End If If (sate_ayam1.Top - soto_ayam.Top) < 0 Then soto_ayam.Top = soto_ayam.Top - 50 * 3 ElseIf (sate_ayam1.Top - soto_ayam.Top) > 0 Then soto_ayam.Top = soto_ayam.Top + 50 * 3 End If End If End If If Shape2.Visible = True Then Text8.Text = Text8.Text If (Shape2.Left - kare_ayam.Left) < 0 Then kare_ayam.Left = kare_ayam.Left - 50 * 3 ElseIf (Shape2.Left - kare_ayam.Left) > 0 Then kare_ayam.Left = kare_ayam.Left + 50 * 3 End If If (Shape2.Top - kare_ayam.Top) < 0 Then kare_ayam.Top = kare_ayam.Top - 50 * 3 ElseIf (Shape2.Top - kare_ayam.Top) > 0 Then kare_ayam.Top = kare_ayam.Top + 50 * 3 End If If Text8.Text <= 0 Then If (Shape2.Left - soto_ayam.Left) < 0 Then soto_ayam.Left = soto_ayam.Left - 50 * 3 ElseIf (Shape2.Left - soto_ayam.Left) > 0 Then soto_ayam.Left = soto_ayam.Left + 50 * 3 End If If (Shape2.Top - soto_ayam.Top) < 0 Then soto_ayam.Top = soto_ayam.Top - 50 * 3 ElseIf (Shape2.Top - soto_ayam.Top) > 0 Then soto_ayam.Top = soto_ayam.Top + 50 * 3 End If Else If (sate_ayam1.Left - soto_ayam.Left) < 0 Then soto_ayam.Left = soto_ayam.Left - 50 * 3

h a l a m a n | 89

ElseIf (sate_ayam1.Left - soto_ayam.Left) > 0 Then soto_ayam.Left = soto_ayam.Left + 50 * 3 End If If (sate_ayam1.Top - soto_ayam.Top) < 0 Then soto_ayam.Top = soto_ayam.Top - 50 * 3 ElseIf (sate_ayam1.Top - soto_ayam.Top) > 0 Then soto_ayam.Top = soto_ayam.Top + 50 * 3 End If End If End If '===================///////////MOVE\\\\\\\\\\============ ==== If -1000 <= Text1.Text And Text1.Text <= 1000 Then If 0 <= Text2.Text And Text2.Text <= 1000 Then soto_ayam.Top = soto_ayam.Top + 50 * 5 ElseIf Text2.Text < 0 And Text2.Text >= -1000 Then soto_ayam.Top = soto_ayam.Top - 50 * 5 Else If kondisi.Text = "libido" Then soto_ayam.Left = soto_ayam.Left + Mid((Rnd(10) - 5), 5, 1) soto_ayam.Top = soto_ayam.Top + Mid((Rnd(10) - 5), 5, 1) End If End If End If If -1000 <= Text2.Text And Text2.Text <= 1000 Then If 0 <= Text1.Text And Text1.Text <= 1000 Then soto_ayam.Left = soto_ayam.Left + 50 * 5 ElseIf Text1.Text < 0 And Text1.Text >= -700 Then soto_ayam.Left = soto_ayam.Left - 50 * 5 Else If kondisi.Text = "libido" Then soto_ayam.Left = soto_ayam.Left + Mid((Rnd(10) - 5), 5, 1) soto_ayam.Top = soto_ayam.Top + Mid((Rnd(10) - 5), 5, 1)

90 | h a l a m a n

End If End If End If If kondisi.Text = "fear" Then If (rawon_sapi.Top - kare_ayam.Top) < 0 Then kare_ayam.Top = kare_ayam.Top + 50 * 4 ElseIf (rawon_sapi.Top - kare_ayam.Top) > 0 Then kare_ayam.Top = kare_ayam.Top - 50 * 4 End If If (rawon_sapi.Left - kare_ayam.Left) < 0 Then kare_ayam.Left = kare_ayam.Left + 50 * 4 ElseIf (rawon_sapi.Left - kare_ayam.Left) > 0 Then kare_ayam.Left = kare_ayam.Left - 50 * 4 End If ElseIf kondisi.Text = "libido" Then soto_ayam.Left = soto_ayam.Left + Mid((Rnd(10) - 5), 5, 1) soto_ayam.Top = soto_ayam.Top + Mid((Rnd(10) - 5), 5, 1) If (soto_ayam.Left - kare_ayam.Left) < 0 Then kare_ayam.Left = kare_ayam.Left - 50 * 2 ElseIf (soto_ayam.Left - kare_ayam.Left) > 0 Then kare_ayam.Left = kare_ayam.Left + 50 * 2 ElseIf (soto_ayam.Left - kare_ayam.Left) = 0 Then kare_ayam.Left = kare_ayam.Left End If If (soto_ayam.Top - kare_ayam.Top) < 0 Then kare_ayam.Top = kare_ayam.Top - 50 * 2 ElseIf (soto_ayam.Top - kare_ayam.Top) > 0 Then kare_ayam.Top = kare_ayam.Top + 50 * 2 ElseIf (soto_ayam.Top - kare_ayam.Top) = 0 Then kare_ayam.Top = kare_ayam.Top End If ElseIf kondisi.Text = "hungry" Then If sate_ayam.Visible = True Then If (sate_ayam1.Left - soto_ayam.Left) < 0 Then soto_ayam.Left = soto_ayam.Left - 50 * 3 ElseIf (sate_ayam1.Left - soto_ayam.Left) > 0 Then soto_ayam.Left = soto_ayam.Left + 50 * 3 End If

h a l a m a n | 91

If (sate_ayam1.Top - soto_ayam.Top) < 0 Then soto_ayam.Top = soto_ayam.Top - 50 * 3 ElseIf (sate_ayam1.Top - soto_ayam.Top) > 0 Then soto_ayam.Top = soto_ayam.Top + 50 * 3 End If If (sate_ayam.Left - kare_ayam.Left) < 0 Then kare_ayam.Left = kare_ayam.Left - 50 * 3 ElseIf (sate_ayam.Left - kare_ayam.Left) > 0 Then kare_ayam.Left = kare_ayam.Left + 50 * 3 ElseIf (sate_ayam.Left - kare_ayam.Left) = 0 Then kare_ayam.Left = kare_ayam.Left End If If (sate_ayam.Top - kare_ayam.Top) < 0 Then kare_ayam.Top = kare_ayam.Top - 50 * 3 ElseIf (sate_ayam.Top - kare_ayam.Top) > 0 Then kare_ayam.Top = kare_ayam.Top + 50 * 3 ElseIf (sate_ayam.Top - kare_ayam.Top) = 0 Then kare_ayam.Top = kare_ayam.Top End If Else If (sate_ayam1.Left - soto_ayam.Left) < 0 Then soto_ayam.Left = soto_ayam.Left - 50 * 2 ElseIf (sate_ayam1.Left - soto_ayam.Left) > 0 Then soto_ayam.Left = soto_ayam.Left + 50 * 2 End If If (sate_ayam1.Top - soto_ayam.Top) < 0 Then soto_ayam.Top = soto_ayam.Top - 50 * 2 ElseIf (sate_ayam1.Top - soto_ayam.Top) > 0 Then soto_ayam.Top = soto_ayam.Top + 50 * 2 End If If (sate_ayam1.Left - kare_ayam.Left) < 0 Then kare_ayam.Left = kare_ayam.Left - 50 * 2 ElseIf (sate_ayam1.Left - kare_ayam.Left) > 0 Then kare_ayam.Left = kare_ayam.Left + 50 * 2 ElseIf (sate_ayam1.Left - kare_ayam.Left) = 0 Then kare_ayam.Left = kare_ayam.Left End If If (sate_ayam1.Top - kare_ayam.Top) < 0 Then kare_ayam.Top = kare_ayam.Top - 50 * 2

92 | h a l a m a n

ElseIf (sate_ayam1.Top - kare_ayam.Top) > 0 Then kare_ayam.Top = kare_ayam.Top + 50 * 2 ElseIf (sate_ayam1.Top - kare_ayam.Top) = 0 Then kare_ayam.Top = kare_ayam.Top End If End If Else kare_ayam.Left = kare_ayam.Left + Mid((Rnd(10) - 5), 5, 1) kare_ayam.Top = kare_ayam.Top + Mid((Rnd(10) - 5), 5, 1) End If End Sub

RIWAYAT HIDUP

Bagus Hikmahwan adalah putra kedua dari pasangan M.Choirul Ansyari, dan Sunarti, S.Pd. Setelah lulus dari SMA Negeri 14 Surabaya, penulis melanjutkan studinya di D4 Jurusan Teknik Telekomunikasi Politeknik Elektronika Negeri Surabaya. Pada Bulan Juli 2012 penyusun mengikuti Seminar dan Ujian Tugas

h a l a m a n | 93

Akhir dengan judul Kontrol perilaku multikarakter menggunakan metode Fuzzy Cognitive Map (FCM) bidang studi telekomunikasi sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains Terapan. Nama : Bagus Hikmahwan Tempat, tanggal Lahir : Surabaya, 18 Agustus 1990 Alamat : Wisma Kedung asem indah Blok I No. 15 Surabaya Kec. Rungkut Kab.Surabaya No. Telp : +6285749003004 e-mail : Bagushikmahwan@yahoo.com Riwayat Pendidikan : 1. SD Negeri Penjaringan sari I 2. SMP Negeri 35 Surabaya 3. SMA Negeri 14 Surabaya 4. D4 Teknik Telekomunikasi PENS (1996-2002) (2002-2005) (2005-2008) (2008-2012)