Finite State Machine adalah sebuah model pemrograman yang memanfaatkan struktur matematika dimana kondisi state selanjutnya hanya bergantung dari state sebelumnya dan inputnya. Model pemrograman ini seringkali digunakan dalam pemrograman microcontroller dengan tujuan memudahkan programmer. Pada ilmu komputasi Finite State Machine sendiri tergolong sebuah model dari matematika komputasi, model ini memiliki computational power lebih baik daripada Combinational Logic, namun tidak lebih kuat daripada Push Down Automaton dan Turing Machine.
Finite State Machine memiliki cara kerja yang cukup simple, pada saat program dijalankan pada suatu waktu head akan berada pada state awal, head akan berada pada state awal hingga diberikan suatu input tertentu sehingga head menuju state berikutnya sesuai inputnya. Pada "state" dapat diisi dengan berbagai macam program spesifik yang memberikan perintah pada microcontroller. Untuk lebih mudah mempelajarinya mari kita cermati program berikut secara seksama.
Pada program tersebut setelah suatu kondisi terpenuhi maka state selanjutnya akan dikerjakan seperti terlihat pada video berikut. Setiap lampu nyala merupakan pertanda bahwa state - state yang berurutan sedang dikerjakan. untuk lebih memahami lebih lanjut modifikasilah program tersebut dengan menggunakan push button sebagai input perpindahan statenya. Sekian dari saya semoga tulisan ini dapat bermanfaat bagi kita semua.