finite state machine

Finite State Machine : Pengertian, Karakteristik dan Cara Kerja

Finite State Machine (FSM), atau yang dikenal juga sebagai mesin keadaan terbatas, adalah sebuah model matematika yang digunakan untuk menjelaskan perhitungan yang berdasarkan pada keadaan.

Dalam artikel ini, kita akan membahas secara detail dan jelas mengenai pengertian, karakteristik, jenis dan cara kerja dari finite state machine.

Apa itu Finite State Machine ?

Finite State Machine adalah model matematis yang digunakan untuk menjelaskan perilaku sistem yang memiliki keadaan atau state yang terbatas. Dalam model ini, sistem dianggap sebagai mesin yang dapat berada dalam satu dari beberapa keadaan (state) yang berbeda pada waktu tertentu. Finite state machine digunakan untuk menjelaskan berbagai jenis sistem, seperti sistem kontrol, perangkat lunak dan jaringan.

FSM terdiri dari beberapa elemen, yaitu keadaan (state), input, output dan fungsi transisi. Keadaan adalah kondisi dari sistem pada saat tertentu. Input adalah data yang diberikan kepada sistem. Output adalah hasil yang dihasilkan oleh sistem setelah melakukan pemrosesan input. Sedangkan fungsi transisi adalah fungsi yang mengatur perpindahan keadaan dari satu keadaan ke keadaan lainnya.

Dalam teknologi informasi, FSM digunakan dalam pembangunan compiler untuk memeriksa sintaks kode sumber dan menghasilkan kode objek yang sesuai. Compiler adalah program yang digunakan untuk mengubah kode sumber menjadi kode objek yang dapat dijalankan pada sistem komputer. Dalam proses ini, FSM digunakan untuk memeriksa sintaks kode sumber dan menentukan langkah-langkah yang harus dilakukan untuk menghasilkan kode objek yang benar.

Karakteristik Finite State Machine

Ada beberapa karakteristik dari Finite State Machine, di antaranya adalah:

  • Memiliki state yang dapat berubah ketika sistem berinteraksi dengan lingkungannya.
  • Memiliki transition atau perpindahan dari satu state ke state lainnya.
  • Memiliki input dan output.
  • Hanya dapat berada pada satu state pada satu waktu tertentu.
  • Memiliki start state yang merupakan state awal dari sistem.
Baca juga :   Cross Validation Adalah: Jenis dan Cara Implementasi

Cara Kerja Finite State Machine

cara kerja finite state machine

Setelah kita memahami pengertian dan karakteristik, mari kita bahas tentang cara kerja dari sistem ini. FSM bekerja dengan melakukan transisi dari satu keadaan ke keadaan yang lain tergantung pada input yang diberikan. Dalam kasus FSM sederhana, transisi antara keadaan dapat diprogram secara langsung. Contoh sederhana dari FSM adalah mesin yang hanya dapat berada dalam dua keadaan, yaitu “hidup” atau “mati”.

Untuk lebih memahami cara kerja FSM, mari kita lihat contoh implementasi sederhana. Misalkan kita ingin membuat sebuah sistem pintu otomatis yang akan membuka pintu jika sensor mendeteksi gerakan dan menutup pintu ketika sensor tidak mendeteksi gerakan. Sistem ini dapat diimplementasikan dengan menggunakan FSM.

Terdapat tiga keadaan dalam sistem pintu otomatis ini, yaitu “buka”, “tutup” dan “tunggu”. Keadaan “buka” dan “tutup” sesuai dengan fungsi yang diinginkan, sedangkan keadaan “tunggu” digunakan saat sistem menunggu input dari sensor gerakan. Saat mesin berada pada keadaan “tunggu”, ia terus memeriksa apakah sensor gerakan telah mendeteksi gerakan atau tidak. Jika sensor mendeteksi gerakan, mesin akan beralih ke keadaan “buka” untuk membuka pintu. Setelah pintu dibuka, mesin akan kembali ke keadaan “tunggu” untuk menunggu input berikutnya. Jika tidak ada gerakan yang terdeteksi, mesin akan beralih ke keadaan “tutup” untuk menutup pintu.

Dalam sistem pintu otomatis ini, FSM dapat diimplementasikan dengan menggunakan bahasa pemrograman seperti Python atau C++. Dalam implementasi, setiap keadaan akan diwakili oleh variabel dan transisi antara keadaan akan diwakili oleh fungsi. Dalam kasus sistem pintu otomatis ini, fungsi yang digunakan adalah “buka_pintu” dan “tutup_pintu”. Saat mesin berada dalam keadaan “tunggu”, sistem akan terus memeriksa input dari sensor dan memanggil fungsi yang sesuai untuk beralih ke keadaan berikutnya.

Baca juga :   Algoritma¬†Levenshtein¬†Distance: Cara Kerja dan Contoh Soal

Demikianlah cara kerja dari FSM dalam implementasi sederhana. Namun, dalam aplikasi yang lebih kompleks, penggunaan FSM dapat jauh lebih rumit. Pemilihan jenis FSM yang tepat dan implementasi yang tepat sangat penting untuk memastikan keandalan dan efisiensi sistem.

Jenis-Jenis Finite State Machine

Terdapat beberapa jenis Finite State Machine, di antaranya adalah:

  1. Mealy Machine:  Mealy Machine menghasilkan output berdasarkan input dan state saat ini. Output ini tidak hanya bergantung pada input, tetapi juga pada state saat ini.
  2. Moore Machine: Moore Machine juga menghasilkan output, tetapi output hanya bergantung pada state saat ini. Input tidak mempengaruhi output yang dihasilkan.
  3. Deterministic Finite Automaton (DFA): DFA memiliki transition yang deterministik, artinya hanya ada satu perpindahan yang mungkin dari satu state ke state lainnya. Setiap simbol input hanya memiliki satu transition yang mungkin.
  4. Non-deterministic Finite Automaton (NFA): Berbeda dengan DFA, NFA memiliki transition yang tidak deterministik. Hal ini berarti satu simbol input dapat memiliki lebih dari satu transition yang mungkin dari satu state ke state lainnya.

Manfaat Finite State Machine

Finite State Machine memiliki manfaat yang besar dalam pengembangan perangkat lunak dan sistem elektronik. Beberapa manfaat utama dari Finite State Machine adalah:

  1. Memudahkan dalam memodelkan sistem yang kompleks
  2. Memudahkan dalam memahami alur kerja suatu program
  3. Meningkatkan efisiensi dalam pengembangan sistem
  4. Mengurangi kesalahan dan bug pada sistem

Dalam pengembangan perangkat lunak, FSM dapat digunakan untuk memodelkan alur kerja suatu program dan mengidentifikasi kesalahan atau bug dalam program tersebut. Selain itu, Finite State Machine juga dapat membantu dalam membuat algoritma yang efisien dan optimal.

Kesimpulan

Pada pembahasan kita di atas dapat kita simpulkan bahwa Finite State Machine adalah alat penting dalam rekayasa perangkat lunak dan ilmu komputer yang digunakan untuk menganalisis dan merancang perilaku sistem dengan memodelkannya sebagai kumpulan keadaan terbatas dan transisi antara keadaan-keadaan tersebut. Ini memudahkan pemahaman dan pengendalian sistem yang kompleks.

Baca juga :   Metode Profile Matching: Pengertian dan Cara Menggunakannya

Dalam FSM, terdapat beberapa komponen penting, yaitu keadaan (state), transisi (transition), input dan output. Keadaan menggambarkan kondisi sistem pada suatu waktu tertentu. Transisi menggambarkan bagaimana sistem berpindah dari satu keadaan ke keadaan lainnya berdasarkan input yang diterimanya. Input adalah sinyal atau peristiwa yang memicu perubahan keadaan dan output adalah hasil dari perubahan tersebut.

Artikel ini merupakan bagian dari seri artikel belajar Kecerdasan Buatan dan jika ada ide topik yang mau kita bahas silahkan komen di bawah ya..