Senin, 30 Mei 2016

Finite State Machines (FSM)

Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan Action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks. Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keuntungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state. Selain untuk bidang kontrol, Penggunaan metode ini pada kenyataannya juga umum digunakan sebagai basis untuk perancangan protokol-protokol komunikasi, perancangan perangkat lunak game, aplikasi WEB dan sebagainya.
Dalam bahasa pemrograman prosedural seperti bahasa C, FSM ini umumnya direalisasikan dengan menggunakan statemen kontrol switch case atau/dan if..then. Dengan menggunakan statemen-statemen kontrol ini, aliran program secara praktis akan mudah dipahami dan dilacak jika terjadi kesalahan logika.
Finite State Machine di dunia AI Game Programming, merupakan salah satu teknik yang paling sering digunakan. Alasannya yaitu:


§  Implementasinya mudah dan cepat


§  Memudahkan proses debugging. Karena telah dipecah menjadi kepingan yang lebih kecil, proses debugging kalau terjadi behavoiur yang tidak semestinya, menjadi lebih mudah


§  Proses komputasi yg minimal, karena sejatinya FSM hanyalah conditional statement yang dikemas dalam bentuk yang lebih elegan.


§  Fleksibel, dapat dikombinasikan dengan teknik AI lain misalnya fuzzy logic dan neural network


Kekurangannya:


§  Behaviour dari agen mudah diprediksi, karena tidak ada searching dan atau learning di dalam agen tersebut


§  Karena mudah diimplementasi, kadang programmer langsung tembak di eksekusi tanpa melakukan desain FSM terlbih dahulu. Biasanya akan terjadi FSM yang terfragmentasi


§  Timbul apa yang dinamakan dengan State Oscillation yaitu ketika batasan antara dua buah state terlalu tipis


Bentuk Implementasi
Ada beberapa bentuk FSM, diantaranya:

§  Naive Approach

Menggunakan conditional statement (if-else atau switch-case) tanpa memecah object menjadi object2x yang lebih kecil sesuai state nya. 


§  State Transition Table

Bentuk ini sudah mengimplementasikan State Pattern, dengan menempatkan transition logic di context. Bentuk ini juga sering disebut sebagai Classic FSM.

§  Embedded Rules
Bentuk ini adalah kebalikan dari bentuk Classical Approach, yang berarti state transition didefinisikan di state itu sendiri. Dan sama dengan Classical Approach, bentuk ini juga akan menawarkan fleksibilitas dan skalabilitas yang baik, namun dengan efek samping agak sulit untuk di-mantain karena aturan2x transisi diletakkan di state sehingga ketika terjadi penambahan atau pengurangan state, maka harus dilakukan update juga terhadap state2x yang terkait.


Sumber :

Arduino


Arduino adalah pengendali mikro single-board yang bersifat open-source[1], diturunkan dari Wiring platform[2], dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.
Arduino juga merupakan platform[3] hardware terbuka yang ditujukan kepada siapa saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware dan software yang fleksibel dan mudah digunakan. Mikrokontroler diprogram menggunakan bahasa pemrograman arduino yang memiliki kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya.
Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram mikrokontroler secara langsung melalui port ISP.
Daftar isi
Sejarah Singkat
Semuanya berawal dari sebuah thesis yang dibuat oleh Hernando Barragan, di institute Ivrea, Italia pada tahun 2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama Arduin of Ivrea. Lalu diganti nama menjadi Arduino yang dalam bahasa Italia berarti teman yang berani.
Tujuan awal dibuat Arduino adalah untuk membuat perangkat mudah dan murah, dari perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan membuat perangkat desain dan interaksi. Visi awalnya aja udah mulia kan.

Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino ini, yaitu:
  1. Harga terjangkau
  2. Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Max, dan sebagainya.
  3. Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang teknik saja.
  4. Open Source, hardware maupun software.
Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat. Dan banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino, dan kalau yang lokal ada namanya CipaDuino yang dibuat oleh SKIR70, terus ada MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya adalah Admin Kelas Robot.
Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis Arduino. Mulai dari yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, beebentuk Mini PC. Dan sudah ada ratusan ribu Arduino yang digunakan di gunakan di dunia pada tahun 2011. Dan untuk hari ini, yang bisa kamu hitung sendiri ya. Dan Arduino juga sudah banyak dipaka oleh perusahaan besar. Contohnya Google menggunakan Arduino untuk Accessory Development Kit, NASA memakai Arduino untuk prototypin, ada lagi Large Hadron Colider memakai Arduino dalam beberapa hal untuk pengumpulan data. Dan banyak yang bertanya juga Arduino ini menggunakan bahasa pemograman apa? Arduino sebenarnya menggunakan bahas C, yang sudah disederhanakan. Sehingga orang awam pun bisa menjadi seniman digital, bisa mempelajari Arduino dengan mudahnya...
Jenis-Jenis Arduino
Dan seperti Microcontroller yang banyak jenisnya, Arduino lahir dan berkembang, kemudian muncul dengan berbagai jenis. Diantaranya adalah:
a. Arduino Uno
Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula sangat disarankan untuk menggunakan Arduino Uno. Dan banyak sekali referensi yang membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan ATMEGA328 sebagai Microcontrollernya, memiliki 14 pin I/O digital dan 6 pin input analog. Untuk pemograman cukup menggunakan koneksi USB type A to To type B. Sama seperti yang digunakan pada USB printer.
b. Arduino Due
Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12 pin input analog. Untuk pemogramannya menggunakan Micro USB, terdapat pada beberapa handphone.
c. Arduino Mega Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk pemogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno.
d. Arduino Leonardo. Bisa dibilang Leonardo adalah saudara kembar dari Uno. Dari mulai jumlah pin I/O digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk pemogramannya.
e. Arduino Fio Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan wireless.
f. Arduino Lilypad Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6 pin input analognya.
g. Arduino Nano Sepertinya namanya, Nano yang berukulan kecil dan sangat sederhana ini, menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.
h. Arduino Mini Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.
i. Arduino Micro Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.
j. Arduino Ethernet Ini arduino yang sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu dapat berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O Digital dan Input Analognya sama dengan Uno.
k. Arduino Esplora Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena sudah dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu tambahkan LCD, untuk lebih mempercantik Esplora.
l. Arduino Robot Ini adalah paket komplit dari Arduino yang sudah berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.

Analisa : Menurut Analisa saya,untuk bahasa pemrograman cukup mudah untuk di pahami  karena arduino ini menggunakan bahasa C software arduino pun terdapat kumpulan library cukup lengkap,arduino juga memiliki modul untuk bisa di tanamkan pada papan arduino seperti Modul Ethernet ,GPS,SD card dan lain-lain.

Koputer Sering Restart Sendiri



Penyebab Komputer Sering Restart Sendiri :



§  Processor mengalami overheat atau terlalu panas

Suhu processor yang terlalu panas bisa menyebabkan komputer mangalami blue screen kemudian restart sendiri, bahkan dalam kasus semacam ini bisa menyebabkan komputer mati mendadak dan akhirnya mati total. Apa sebenarnya yang menyebabkan processor terlalu panas, biasanya disebabkan pemasang processor yang kurang pas. Makanya coba cek kembali pemasangan processor dan pemasangan cooler fan processor, bila perlu bongkar dulu kemudian pasang kembali dengan benar dan jangan lupa berikan pasta termal.



§  Daya PSU tidak stabil

PSU atau power supply yang sudah lama biasanya akan mengalami masalah pada catu daya yang dihasilkan. Komputer yang kekurangan daya juga akan mengalami sering restart sendiri. Biasakan anda sering membersihkan atau mengecek PSU anda, karena perangkat keras yang kotor juga dapat menimbulkan kerusakan pada komponen lain.

§  Kerusakan pada RAM atau memory
Memory yang rusak juga menyebabkan komputer sering mengalami restart dengan sendirinya. Kasus yang sering terjadi adalah dengan ditandainya blue screen dengan adanya tanda pemberitahuan Dump Memory. Hal pertama yang bisa dilakukan adalah dengan mencopot memory tersebut kemudian membersihkan kaki-kakinya, dan kemudian pasang kembali.

§  Hardisk mengalami badsector
Badsector para hardisk menyebabkan sistem tidak berjalan dengan lancar. Maka efeknya komputer sering mengalami hang/ macet dan restart dengan sendirinya. Rawatlah harddisk anda dengan benar dan teratur. Hati-hati terhadap harddisk, apabila anda mencopot dan jatuh itu bisa mengakibatkan kerusakan yang serius terhadap harddisk anda.

§  Kerusakan pada VGA Card
Kerusakan pada VGA Card juga sering menimbulkan efek blue screen pada komputer. Selain itu juga bisa di tandai dengan komputer mendadak hang kemudian gambar menjadi tampak pecah-pecah dan akhirnya komputer restart dengan sendirinya. Nah, kalau kondisi semacam ini terjadi maka dapat dipastikan bawah VGA Card komputer rusak.

Sumber

VLSM (Variable Length Subnet Mask)

VLSM adalah pengembangan mekanisme subneting, dimana dalam vlsm dilakukan peningkatan dari kelemahan subneting klasik, yang mana dalam clasik subneting, subnet zeroes, dan subnet ones tidak bisa digunakan. selain itu, dalam subnet classic, lokasi nomor IP tidak efisien.  VLSM juga dapat diartikan sebagai teknologi kunci pada jaringan skala besar. Mastering konsep VLSM tidak mudah, namun VLSM adalah sangat penting dan bermanfaat untuk merancang jaringan.

Metode VLSM hampir serupa dengan CIDR hanya blok subnet hasil dari CIDR dapat kita bagi lagi menjadi sejumlah Blok subnet dan blok IP address yang lebih banyak dan lebih kecil lagi.

Dalam penerapan IP Address menggunakan metode VLSM agar tetap dapat berkomunikasi kedalam jaringan internet sebaiknya pengelolaan networknya dapat memenuhi persyaratan :


§  Routing protocol yang digunakan harus mampu membawa informasi mengenai notasi prefix untuk setiap rute broadcastnya (routing protocol :RIP, IGRP, EIGRP, OSPF dan lainnya, bahan bacaan lanjut protocol routing :CNAP 1-2),


§  Semua perangkat router yang digunakan dalam jaringan harus mendukung metode VLSM yang menggunakan algoritma penerus paket informasi.


 Manfaat dari VLSM adalah:


§  Efisien menggunakan alamat IP, alamat IP yang dialokasikan sesuai dengan kebutuhan ruang host setiap subnet.


§  VLSM mendukung hirarkis menangani desain sehingga dapat secara efektif.


§  Mendukung rute agregasi, juga disebut route summarization.


§  Yang terakhir dapat berhasil mengurangi jumlah rute di routingtable oleh berbagai jaringan subnets dalam satu ringkasan alamat. Misalnya subnets192.168.10.0/24, 192.168.11.0/24 dan 192.168.12.0/24 semua akan dapat diringkas menjadi 192.168.8.0/21.

 Analisa :
menurut saya, VLSM merupakan suatu metode penghitung IP pada suatu jaringan agar lebih tepat dalam penentuan IP  yang digunakan. Pada pengelompokkan IP umumnya terdiri dari 3 kelas yaitu kelas A dengan Prefik 8 (/8), kelas B dengan prefik 16 (/16) dan kelas C dengan prefik 24 (/24). Dalam metode VLSM yang pertama kita lakukan yaitu urutkan host nya dari yang terbesar ke terkecil, lalu menentukan range hostnya, bit network serta blok subnet nya.

Referensi :
Buku Modul Panduan Praktikum JKD