Wednesday, 8 February 2012

MERANCANG DAN MEMBUAT AUTOMATA (bagian II)



Mainan mekanis dan automata seringkali tampil dengan tingkah polah yang menyerupai karakter aslinya, komponen-komponen mekanis yang sederhana itu nampaknya harus menciptakan respon ajaib terhadap objek yang digerakannya. Automata hadir dalam berbagai ukuran dan tingkat kerumitan. Beberapa diantaranya akan mampu membuat Anda tetap interest selama beberapa menit sementara yang lainnya mungkin akan mudah terabaikan. Apa yang membuat automata tampak bagus sifatnya subyektif. Kita semua menyukai hal-hal yang samasekali berbeda dan kita pun tidak selalu menganggap lucu terhadap sesuatu yang sama. Apa yang menurut kita menarik atau menggelikan, belum tentu menurut orang lain. Seperti kata pepatah kuno: “Anda tidak bisa memuaskan semua orang sekaligus dalam suatu waktu”. Jadi, dari mana kita memulai?
Ada dua “golden rules” yang wajib kita tanam saat memulainya:
  1. Usahakan untuk membuatnya sesederhana mungkin.
  2. Buatlah sesuatu yang menarik perhatian.
Saat Anda sudah mendapat gagasan automata seperti apa yang akan dibuat, kerjakan menurut check list ini:
  1. Apakah sudah menarik secara visual?
  2. Akan cukup lucukah jadinya?
  3. Cukup menarik minat pemerhatinyakah?
  4. Akankah tidak mudah membosankan?
  5. Apakah terlalu kompleks?
  6. Apakah kandungan humornya terlalu vulgar?
  7. Akankah saya enjoy membuatnya?
Selanjutnya, Anda perlu melakukan sebuah riset terhadap subyek yang akan dibuat. Usahakan untuk mendapatkan informasi visual sebanyak mungkin. Ada dua tipe riset yang utama:
  1. Riset Primer: Dimana Anda menuangkan subyeknya dalam bentuk gambar dari subyek aslinya.
  2. Riset Sekunder: Referensi berdasarkan gambar yang sudah ada, foto, fotokopi, dan sebagainya.
Berikut ini adalah panduan singkat untuk membantu Anda bagaimana menemukan gagasan yang bisa dipikirkan saat memulai perancangan.
  1. Siapa yang menjadi sasaran minat automata kita? Balita, anak 12-14 tahun, ataukah remaja?
  2. Seberapa ukuran jadinya? Automata bisa dibuat dalam bentuk miniatur untuk rumah boneka hingga ukuran segenggaman tangan atau pun dengan skala yang besar.
  3. Simpel, atau kompleks? Salahsatu dari golden rule adalah untuk menjaga segalanya serba simpel, namun automata sesimpel apa pun dapat menimbulkan kerumitan.
  4. Material apakah yang akan dipakai? Automata bisa saja terbuat dari bahan karton, kayu, atau logam. Terkadang kita bisa saja menggunakan beragam materi.
  5. Deadline: Berapa lama waktu yang diperlukan untuk menyelesaikannya?
Setelah membuat model awal, ada gunanya untuk melakukan evaluasi evektivitas karya kita dan mencurahkan perhatian pada setiap permasalahan desain yang mungkin perlu mendapatkan perbaikan.
  1. Sudahkah karya kita sesuai dengan harapan?
  2. Mungkinkah masih bisa ditingkatkan atau lebih disederhanakan?
  3. Apakah sudah bisa diandalkan?
Pada evaluasi akhir Anda perlu mengkaji-ulang tujuan awal pembuatan karya Anda dengan melakukan serangkaian prosedur di bawah ini:
  1. Sudah bisakah karya Anda menarik minat audiens yang Anda maksudkan?
  2. Sudahkah segala sesuatunya bekerja sesuai keinginan?
  3. Cukup amankah bagi golongan usia yang menjadi target Anda?
  4. Apakah masih bisa lebih dioptimalkan dengan cara lain?
  5. Cukup bisa diandalkankah karya Anda?
  6. Apakah beberapa komponen didalamnya tidak terlalu awet atau aus?
  7. Akankah mudah jika harus mengalami perbaikan?
  8. Apakah bahan yang lebih cocok sebagai bahan hasil akhirnya nanti?
  9. Mungkinkah bahan alternatif lain bisa diterapkan?
  10. Masih dapatkah diadaptasikan dalam berbagai cara berbeda?
 tulisan dan gambar dikutip dari situs turtle motion multimedia

MERANCANG DAN MEMBUAT AUTOMATA

Mengolah Gagasan
Adalah hal yang cukup penting bahwa gerakan pada automata mengacu pada karakter sesungguhnya. Jika figurnya berupa binatang, gerakannya harus berdasar pada kenyataan gerak-gerik dan tingkah laku binatang tersebut. Misalkan, seekor anjing menggoyang-goyangkan ekornya dengan cepat sementara mulutnya menganga dan mengatup seolah-olah sedang mengonggong. Jika seekor kucing, gerakan ekornya lebih lambat, bergoyang ke kiri dan kanan, sementara mulutnya menganga dan mengatup lebih lambat untuk membedakan antara mengeong dengan menggonggong.
Ada baiknya untuk memulainya dengan melakukan pengamatan pada hewan dan manusia agar Anda bisa menentukan gerakan yang Anda kehendaki. Tentu saja, Anda pun bisa membuat automata Anda menggelikan dengan menampilkan gerakan yang tidak biasa. Contohnya Anda membuat binatang yang berperilaku seperti manusia. Hal ini seringkali cukup berhasil.
Merancang Mekanisme
Saat Anda sudah mendapatkan ide skenario gerakan yang Anda ingini, selanjutnya adalah merancang mekanisme yang dibutuhkan untuk mewujudkan gerakan yang dikehendaki itu. Anda bisa memanfaatkan pertanyaan-pertanyaan di bawah ini untuk membantu Anda melukiskan mekanisme yang diperlukan.

INPUT
OUTPUT
  • Apa tipe gerakannya?


  • Bagaimana arah gerakannya?


  • Bagaimana bentuk poros rotasinya?


  • Bagaimana pembagian gerakannya?


  • Bagaimana kecepatan geraknya?


  • Bagaimana ukuran daya yang diperlukan?


Menopang Mekanisme dan Figurnya
Automaton Anda akan membutuhkan suatu bingkai atau kotak sebagai tempatnya berdiri. Kotak tersebut memiliki dua fungsi. Pertama, sebagai wadah rangkaian mekanik, karena itu Anda harus benar-benar menentukan ukurannya dengan hati-hati. Anda juga perlu mempertimbangkan dimana Anda akan memasang poros-poros dan pegas dan dimana batang pendorong atau kawat akan terpasang kemudian bisa menembus ke atas sampai menyentuh rangkaian automatonnya.
Keselarasan yang akurat sangat penting dan memerlukan rencana pembuatan yang teliti agar bisa memenuhinya. Anda akan menemukan manfaatnya nanti jika Anda membuat mekanisme yang mudah disesuaikan. Jadi jika Anda telah merangkainya, Anda masih bisa sedikit menggeser dan menyesuaikannya hingga mendapatkan performa yang paling baik.
Kedua, penopang bisa untuk menunjukkan atau pun menyembunyikan rangkaian mekanismenya. Keputusannya terserah Anda, apakah mekanisme di dalamnya tertutup atau untuk berbagi rahasianya dengan penikmat automata karya Anda.
Karena penopang ini termasuk bagian dari keseluruhan karya automata Anda dan akan terlihat oleh penikmat atau penggunanya, pastikan untuk membuatnya dengan rapid an menarik.
Membuatnya Berfungsi
Banyak automata modern dioperasikan dengan tangan. Dengan cara ini, pengguna bisa mengatur kecepatan pengoperasiannya sendiri dan terlibat langsung dengan mesinnya. Penggunaan motor jam memungkinkan pengguna untuk terlibat dan menyaksikan apa yang terjadi dari jauh. Anda bisa memanfaatkan dynamo bertenaga baterai dan mengendalikannya dengan saklar.
Anda bisa menambahkan rangkaian listrik untuk melengkapinya dengan lampu atau suara seperti untuk kedipan mata atau raungan binatang. Beberapa desainer juga telah memanfaatkan curahan air atau embusan uap panas untuk memutar turbin sebagai sumber tenaga penggerak.
Pertanyaan-pertanyaan di bawah ini akan membantu Anda memutuskan metoda mana yang terbaik untuk karya automata Anda.
  • Bagaimana caranya Anda memastikan bahwa metoda yang Anda pakai cukup andal?
  • Bagaimana caranya Anda memastikan karya Anda tidak mudah rusak?
  • Apa yang mungkin disukai pengguna untuk mengerakkan automata, dengan menarik tuas, memutar kemudi, menekan atau memutar dan menggeser sakelar, atau dengan kunci penggulung pita pegas?
  • Bagaimana membuat pengguna tahu apayang harus dilakukan untuk menggerakkannya?

Finite Automata

Finite Automata

Finite Automata

Finite automata adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan secara nyata dimana sistem dapat berada disalah satu dari sejumlah berhingga konfigurasi internal disebut state.

State sistem merupakan ringkasan informasi yang berkaitan dengan masukan-masukan sebelumnya yang diperlukan untuk menentukan perilaku sistem pada masukan-masukan berikutnya.

Finite Automata menggunakan prosedur yang saat diberikan masukan "string berhingga" akan berhenti

Finite Automata menyatakan "ya" dengan sejumlah berhingga komputasi jika string tersebut merupakan elemen bahasa sehingga lebih berfokus pada pengenalan dimana bila diberikan suatu program (string) akan menyatakan apakah string tersebut termasuk di bahasa atau tidak.


Model Finite Automata

Model Finite Automata memiliki ciri-ciri:
- Memori 'infinite'-nya adalah null (tidak ada memori sementara).
- head hanya bergerak 1 arah.
- Hanya berisi memori masukan berupa tape berisi string masukan dan sejumlah kendali berhingga.


Properti Finite Automata

Finite Automata memiliki:

- 1 himpunan state kendali berhingga

- Simbol-simbol masukan yang dibolehkan/diijinkan

- State mula (initial state)

- Himpunan state akhir (set of final states)
State-state yang menandai diterimanya masukan.

- Fungsi transisi state (state transition function)
Adanya fungsi yang memberikan state saat itu (current state) dan simbol masukan saat itu (current input symbol). Selain itu juga fungsi memberikan/menyatakan semua state berikutnya yang dimungkinkan.

Semua kemungkinan transisi dipandang dijalankan secara paralel. Bila terdapat transisi yang menuju/sampai state akhir, berarti string masukan diterima otomata.


Cara Kerja Finite Automata

Finite Automata bekerja dengan cara mesin membaca memori masukan berupa tape yaitu 1 karakter tiap saat (dari kiri ke kanan) menggunakan head baca yang dikendalikan oleh kotak kendali state berhingga dimana pada mesin terdapat sejumlah state berhingga.

Finite Automata selalu dalam kondisi yang disebut state awal (initial state) pada saat Finite Automata mulai membaca tape. Perubahan state terjadi pada mesin ketika sebuah karakter berikutnya dibaca.

Ketika head telah sampai pada akhir tape dan kondisi yang ditemui adalah state akhir, maka string yang terdapat pada tape dikatakan diterima Finite Automata (String-string merupakan milik bahasa bila diterima Finite Automata bahasa tersebut).


Implementasi Finite Automata

Sistem dengan state berhingga diterapkan pada:
- Sistem elevator
- Mesin pengeluar minuman kaleng (vending machine)
- Pengatur lampu lalu lintas (traffic light regulator)
- Sirkuit penyaklaran (switching) di komputer dan telekomunikasi
- Protokol komunikasi (communication protocol)
- Analisis Leksikal (Lexical analyzer)
- Neuron nets
- sistem Komputer


Finite State Diagram (FSD)

Perilaku Finite Automata dimodelkan dengan Finite State Diagram (FSD) dapat juga disebut State Transition Diagram.

Finite State Diagram terdiri dari:

1. Lingkaran menyatakan state
Lingkaran diberi label sesuai dengan nama state tersebut.

Adapun pembagian lingkaran adalah:
- Lingkaran bergaris tunggal berarti state sementara
- Lingkaran bergaris ganda berarti state akhir

2. Anak Panah menyatakan transisi yang terjadi
Label di anak panah menyatakan simbol yang membuat transisi dari 1 state ke state lain

1 anak panah diberi label start untuk menyatakan awal mula transisi dilakukan


Simpul-simpul (berbentuk lingkaran) pada FSD dibawah mengambarkan state-state dari FA, yaitu :
- Simpul S
- Simpul A
- Simpul B

Busur dari 1 simpul ke simpul lainn menandakan transisi state. Karakter samping atau diatas busur menandakan karakter yang menyebabkan terjadinya transisi state.

Simpul dengan garis ganda menunjukkan state akhir.

Digit adalah nilai 0,1,2,3,4,5,6,7,8,9




Gambar: FSD Bilangan Nyata Dengan Minimal Satu Angka di Belakang Titik Desimal


Contoh string : 9.8765

- Busur berlabel Start
Menunjukkan transisi ke state S

- Head membaca nilai "9"
Terdapat kondisi yang menunjukkan kesesuaian dengan aturan kendali pada state S yaitu adanya busur yang menunjukkan digit kembali ke state S (berarti memiliki kesesuaian bahasa)

- pembacaan ke karakter berikutnya adalah "."
Terdapat kesesuaian dengan aturan kendali pada state S, yaitu adanya busur yang menunjukkan nilai "." ke state A (kondisi berada di state A)

- pembacaan karakter berikutnya = "8"
Terdapat kesesuaian dengan aturan kendali yang sekarang sudah berada di state A, yaitu busur ke state B yang menunjukkan digit (kondisi berada di state B)

- pembacaan karakter berikutnya = "7"
Terdapat kesesuaian dengan aturan kendali pada state B, yaitu adanya busur yang menunjukkan digit kembali ke state B (kondisi tetap berada di posisi B)

- pembacaan karakter berikutnya = "6"
Terdapat kesesuaian dengan aturan kendali pada state B, yaitu adanya busur yang menunjukkan digit kembali ke state B (kondisi tetap berada di posisi B)

- pembacaan karakter berikutnya = "5"
Terdapat kesesuaian dengan aturan kendali pada state B, yaitu adanya busur yang menunjukkan digit kembali ke state B (kondisi tetap berada di posisi B)

- penyesuaian aturan kendali
Pada akhir pembacaan dilakukan penyesuaian apakah karakter terakhir berada pada state akhir.

Bila kesesuai kondisi "YA" maka string termasuk di dalam bahasa, dalam hal ini karakter "5" berada pada state B yaitu state dengan lingkaran bergaris ganda yang menandakan state akhir, maka sesuai.

String 9.8765 termasuk di dalam bahasa Finite Automata pada FSD di atas.


Contoh string : a

- Busur berlabel Start
Menunjukkan transisi ke state S

- Head membaca nilai "a"
Terdapat kondisi yang menunjukkan ketidaksesuaian dengan aturan kendali pada state S yaitu tidak adanya busur yang menunjukkan persamaan simbol dengan simbol yang dibaca ("a")

- Ketidaksesuaian simbol
Aturan kendali pada kondisi "TIDAK" menandakan string a tidak termasuk di dalam bahasa FSD di atas.


Klasifikasi Finite Automata

Finite automata dapat berupa:

- Deterministic Finite Automata (DFA)
Terdiri dari 1 transisi dari suatu state pada 1 simbol masukan.

- Nondeterminictic Finite Automata (NDFA)
Lebih dari 1 transisi dari suatu state dimungkinkan pada simbol masukan yang sama

Kedua finite automata tersebut mampu mengenali himpunan reguler secara presisi. Dengan demikian kedua finite automata itu dapat mengenali string-string yang ditunjukkan dengan ekspresi reguler secara tepat.

DFA dapat menuntun recognizer(pengenal) lebih cepat dibanding NDFA.

Namun demikian, DFA berukuran lebih besar dibanding NDFA yang ekivalen dengannya.

Lebih mudah membangun NDFA dibanding DFA untuk suatu bahasa, namun lebih mudah mengimplementasikan DFA diabnding NDFA.