See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/357884105
Laporan Praktikum Sistem Digital Modul 8 - State Machine
Experiment Findings · January 2022
DOI: 10.13140/RG.2.2.35912.85760
CITATIONS
0
READS
1,665
1 author:
Eka Putra Prasetya Universitas Islam Indonesia 135PUBLICATIONS 1CITATION
SEE PROFILE
All content following this page was uploaded by Eka Putra Prasetya on 17 January 2022.
The user has requested enhancement of the downloaded file.
Laporan Praktikum Sistem Digital
Modul VIII – State Machine
Eka Putra Prasetya/18524057 Asisten: Muh. Arjun Tanggal praktikum: 15 Juni 2020
Teknik Elektro – Fakultas Teknologi Industri Universitas Islam Indonesia
Abstrak—Sistem perangkat elektronik kita saat ini semakin lama semakin canggih. Sistem tersebut dibuat agar mempermudah pekerjaan manusia. FSM (Finite State Machine) merupakan dasar dari AI yang dapat membantu pekerjaan manusia. Praktikum kali ini bertujuan untuk mempelajari lebih lanjut tentang FSM. Hasil dari praktikum ini adalah Percobaan 1 hingga 3 merupakan tipe FSM yang mempunyai output dan menggunakan metode Moore State Machine yang mana output didapatkan karena statenya. Percobaan 1 merupakan FSM simpel dengan state dalam bentuk huruf dengan masing – masing keluaran menggunakan bilangan biner 1 bit dengan syarat transisi bilangan biner 1 bit. Percobaan 2 merupakan modifikasi dari percobaan 1 namun dengan state dalam bentuk biner 2 bit, nilai output dan syarat biner 1 bit yang berbeda. Percobaan 3 merupakan FSM yang dipraktikan dalam menghitung FPB dari 2 bilangan biner 4 bit.
Kata kumci—FSM, Finite State Machine, AI I. PENDAHULUAN
Sistem perangkat elektronik kita saat ini semakin lama semakin canggih. Sistem tersebut dibuat agar mempermudah pekerjaan manusia. Tidak hanya mempermudah, namun diharapkan dapat dikerjakan sebaik manusia lakukan bahkan dapat melakukan yang tidak bisa dilakukan oleh manusia.
Contohnya saja adalah AlphaGO. AlphaGo merupakan AI catur buatan google yang dapat mengalahkan juara dunia catur. Salah satu dasar ilmu dari AI adalah FSM. FSM digunakan sebagai representasi dari aliran eksekusi yang diterapkan AI dalam permainan. FSM digunakan sebagai otak NPC (Non-Playable Character) dimana dalam state FSM terdapat beberapa state yang harus dilakukan NPC seperti menyerang dan bertahan. Karena banyaknya pemakaian FSM dalam perkembangan teknologi saat ini, Praktikum kali ini bertujuan untuk mempelajari lebih lanjut tentang Finite State Machine.
II. TINJAUAN PUSTAKA A. FSM (Finite State Machine)
Finite State Machine atau FSM adalah suatu algoritma yang menggambarkan cara kerja sistem kontol dengan menggunakan 3 hal penting seperti berikut: Event (kejadian), Action (aksi), dan State (keadaan). Pada saat tertentu, sistem dapat berada pada salah satu state yang aktif. Sistem dapat berpindah ke state yang lain jika input yang diberikan memenuhi syarat untuk sistem melakukan perpindahan ke state lainnya, baik masukan tersebut berasal dari luar maupun dari
dalam sistem itu sendiri. Transisi state ini juga disertai keluaran atau output sebagai tanggapan sistem atas terjadinya transisi dari state yang satu ke state lainnya. Bagian – bagian Finite State Machine (FSM) dapat dilihat pada gambar 1 di bawah ini.
Gambar 1 Bagian - bagian FSM
FSM dibagi menjadi dua jenis yaitu, FSM ber-output dan FSM tidak ber-output. FSM tidak beroutput biasanya digunakan untuk media pembelajaran dalam bahasa pemograman komputer. Conoth penggunaan FSM ber-output adalah compiler. FSM ber-output biasa digunkan untuk merancang suatu sistem.
Metode utama dalam menggunakan FSM dibagi menjadi 2 metode utama yaitu,Moore State Machine dan Mearly State Machine. Moore State Machine adalah FSM yang mempunyai output berasal dari state. Mearly State Machine adalah FSM yang mempunyai keluaran atau output berasal dari transisi atas state.
FSM memiliki keuntungan dan kekurangan. Keuntungan FSM diantaranya sederhana, bisa diprediksi responnya, komputasi ringan, fleksibel, dan mudah ditransfer dari abstrak menjadi kode program. Sementara itu, kekurangan dari FSM diantaranya kondisi untuk transisi state adalah tetap dan lebih sulit jika diimplementasikan pada sistem yang besar.
III. METODE PRAKTIKUM
Alat dan bahan yang dipakai pada praktikum unit 8 state machine adalah laptop atau komputer, Software Quartus II, dan Software simulasi ModelSIM. Praktikum ini memiliki 3 percobaan yaitu, FSM simpel, FSM simpel modifikasi, dan FSM pencari nilai FPB dari kedua inputan.
Percobaan pertama yang dilakukan adalah membuat percobaan FSM simpel. Hal pertama yang perlu dilakukan adalah membuat project wizzard dengan nama simpleFSM.
Kemudian membuat file VHDL baru dengan source code yang telah diberikan pada modul praktikum bagian percobaan 1.
Lalu yang terakhir adalah melakukan simulasi dan hasilnya dituliskan pada tabel pengamatan.
Percobaan kedua yang dilakukan adalah membuat modifikasi source code FSM simpel untuk kasus yang disediakan pada modul praktikum percobaan 2. Dalam hal ini saya membuat project wizzard baru dengan nama simpleFSM2.
Kemudian file VHDL yang berisi modifikasi VHDL dibuat.
Lalu yang terakhir adalah disimulasikan dan hasilnya dituliskan pada lembar pengamatan.
Percobaan terakhir adalah percobaan untuk menentukan nilai FPB dari dua input bilangan biner. Hal pertama yang perlu dilakukan adalah membuat project wizzard baru dengan nama gcd. Kemudian file VHDL dibuat dengan isi source code menentukan FPB seperti yang telah tersedia pada modul praktiku. Disini praktikan hanya perlu mencontoh programnya.
Kemudian membuat file VHDL baru yang berisi testbenchnya.
Source code test bench sudah tersedia juga pada modul praktikum, namun perlu sedikit dimodifikasi agar sesuai dengan input pada tabel pengamatan. Kemudian jika sudah sesuai, dilakukan simulasi dan hasilnya ditulis pada lembar pengamatan.
IV. HASIL DAN ANALISIS A. Percobaan 1
Tabel 1 Hasil simulasi percobaan 1
n Clock Reset Input (P) State Output(R)
1 1 U A 0
2 0 0 A 0
3 0 1 B 0
4 0 0 B 0
5 0 1 C 0
6 0 0 C 0
7 0 1 D 1
8 0 0 A 0
9 0 1 B 0
10 0 1 C 0
11 0 1 D 1
12 0 1 B 0
13 1 0 B 0
14 1 1 C 0
Tabel 2 Tabel resource percobaan 1
Aspek resource Yang digunakan
Total logic component 5
Logic element usage by number of LUT inputs -- 4 input functions
-- 3 input functions -- <=2 input functions
0 2 2
I/O register 0
I/O pin 4
Finite State Machine atau FSM yang bekerja pada source code ini simpel untuk mempermudah memahami kinerja dari FSM itu sendiri. FSM pada percobaan ini termasuk pada FSM beroutput karena memiliki keluaran dan menggunakan metode Moore State Machine yang mana keluaran terjadi karena statenya. FSM ini dimulai dari state A yang memiliki output
berlogika 0. Hal tersebut dapat terlihat pada data ke 1 dimana untuk membuat FSM berada pada state A maka nilai reset harus berlogika 1. Jika reset berlogika 1 maka state akan berada pada state A untuk apapun input P.
State pada FSM juga bisa berpindah. Perpindahan state harus memenuhi syarat yang ditentukan. Contohnya adalah pada data ke 9, 10, dan 12. Pada data ke 9, diketahu bahwa keadaan sebelumnya adalah berada pada state A dengan output 0, kemudian karena input p berlogika 1 dan logika tersebut memenuhi syarat untuk berpindah state(syarat A->B adalah P=1), maka state pada data ke 9 berubah menjadi B dengan output pada state B berlogika 0.
Pada data ke 10, diketahui bahwa keadaan sebelumnya adalah berada pada state B dengan output 0, kemudian karena input p berlogika 1 dan logika tersebut memenuhi syarat untuk berpindah state(syarat B->C adalah P=1), maka state pada data ke 10 berubah menjadi C dengan output pada state C berlogika 0.
Ada yang menarik pada state D. State D dapat berpindah ke dua state berbeda yaitu dapat berpindah ke state A atau berpindah ke state B. Syarat logika input untuk berpindah ke state A adalah P berlogika 0 dan untuk berpindah ke state B adalah P berlogika 1. Pada data ke 12, diketahui bahwa keadaan sebelumnya berada pada state D dengan output 0, kemudian karena input p berlogika 1 dan logika tersebut memenuhi syarat untuk berpindah state (syarat D->B adalah P
= 1), maka state pada data ke 12 berubah menjadi B dengan output B berlogika 0.
B. Percobaan 2
Tabel 3 Hasil simulasi percobaan 2
n Clock Reset Input (P) State Output(R)
1 1 NC 00 1
2 0 0 00 1
3 0 1 00 1
4 0 0 01 0
5 0 0 01 0
6 0 1 10 0
7 0 1 10 0
8 0 0 11 0
9 0 0 11 0
10 0 1 00 1
11 1 0 00 1
12 1 1 00 1
Tabel 4 Tabel resource percobaan 2
Aspek resource Yang digunakan
Total logic component 5
Logic element usage by number of LUT inputs -- 4 input functions
-- 3 input functions -- <=2 input functions
0 2 2
I/O register 0
I/O pin 4
FSM pada percobaan ini termasuk dalam FSM beroutput dan menggunakan metode Moore State Machine. Pada modul tidak diberitahu state awal dari FSM ini sehingga saya mengasumsikan bahwa state awal dari FSM ini adalah state 00 dengan output berlogika 1. Setiap logika reset bernilai 1 maka state akan berada pada state A untuk apapun input pada P.
Perpindahan state dapat terjadi jika berpindah dari state 00 ke state 01 maka nilai P harus berlogika 0. Kemudian juka state 01 berindah ke state 10 maka nilai P harus 1. Lalu jika state 01 berpindah ke state 11 maka nilai P harus berlogika 0.
Kemudian jika state 11 berpindah ke state 00 maka P harus berlogika 1. Namun jika syarat P tidak terpenuhi maka state tidak dapat berpindah dan dengan output pada state yang tidak berpindah.
Contoh cara kerja FSM ini ada pada data 6 dan 7. Pada data ke 6, diketahui bahwa keadaan sebelumnya adalah berada pada state 01 dengan output 0, kemudian karena input p berlogika 1 dan logika tersebut memenuhi syarat untuk berpindah state(syarat 01->10 adalah P=1), maka state pada data ke 6 berubah menjadi 10 dengan output pada state 10 berlogika 0.
. Pada data ke 7, diketahui bahwa keadaan sebelumnya adalah berada pada state 10 dengan output 0, kemudian karena input p berlogika 1 dan logika tersebut tidak memenuhi syarat untuk berpindah state(syarat 10->11 adalah P=0), maka state pada data ke 6 tiddak berubah menjadi 11 dan logika output tetap berlogika 0.
C. Percobaan 3
Tabel 5 Hasil simulasi percobaan 3 n inA
(biner)
inA (desimal)
inB (biner)
inB (decimal)
O (biner)
O (decimal)
1 1100 12 1000 8 0100 4
2 1111 15 0101 5 0101 5
3 1100 12 0110 6 0110 6
4 1111 15 0111 7 0001 1
5 0010 2 0011 3 0001 1
FSM ketiga berisi tentang proses perhitungan FPB dari dua bilangan biner, A dan B. Inti dari proses penentuan FPB dari kedua bilangan adalah pengurangan diantara kedua bilangan hingga menemukan nilai A = B.
FSM dimulai pada keadaan state INIT. State dapat berganti ke state READIN jika input start berlogika 1, jika input start berlogika 0 maka akan tetap pada state INIT. Ketika start berlogika 1, state berada pada READIN kemudian bilangan biner yang ingin dicari FPB nya dapat di inputkan. Misalnya diambil contoh menggunakan data ke 1 dimana nilai biner 1100 menjadi input pada A dan nilai biner 1000 menjadi input pada B. Kemudian masuk ke state COMPARE tanpa memerlukan syarat input apapun. Dalam state COMPARE memerlukan syarat untuk masuk ke DECA, DECB, dan FINISH. DECA memerlukan syarat A > B, DECB memerlukan syarat B > A, dan FINISH memerlukan syarat A=B. Karena nilai inputan A 1100 lebih besar dari pada nilai inputan B 1000, state berpindah ke state DECA. Dalam state DECA terdapat proses mencari nilai A yang baru dengan cara mengurangkan nilai A lama dengan nilai B lama. Pengurangan tersebut menghasilkan nilai biner A baru adalah 0100. Lalu state berpindah kembali ke COMPARE tanpa syarat apapun.
Nilai biner A sekarang adalah 0100 dan nilai biner B adalah 1000. Nilai B lebih besar dari A sehingga memenuhi syarat untuk berpindah ke state DECB. . Dalam state DECB terdapat proses mencari nilai B yang baru dengan cara mengurangkan nilai B lama dengan nilai A lama. Pengurangan tersebut
menghasilkan nilai biner B baru adalah 0100. Lalu state berpindah kembali ke COMPARE tanpa syarat apapun.
Nilai biner A dan B sekarang adalah 0100 untuk A dan 0100 untuk B. Nilai A dan B sudah sama, sehingga syarat untuk berpindah ke state FINISH terpenuhi. Pada state FINISH akan menghasilkan done berlogika 1. State dapat berpindah dari FINSIH ke INIT dengan syarat START berlogika 0, namun jika START berlogika 1 maka state akan tetap berada pada state FINISH. Ketika START berlogika o, maka state berpindah ke state INIT dan memulai proses perhitungan FPB dari inputan A dan B yang baru.
V. KESIMPULAN
Finite State Machine atau FSM menggunakan 3 hal penting seperti berikut: Event (kejadian), Action (aksi), dan State (keadaan). Percobaan 1 hingga 3 merupakan tipe FSM yang mempunyai output dan menggunakan metode Moore State Machine yang mana output didapatkan karena statenya.
Percobaan 1 merupakan FSM simpel dengan state dalam bentuk huruf dengan masing – masing keluaran menggunakan bilangan biner 1 bit dengan syarat transisi bilangan biner 1 bit.
Percobaan 2 merupakan modifikasi dari percobaan 1 namun dengan state dalam bentuk biner 2 bit, nilai output dan syarat biner 1 bit yang berbeda. Percobaan 3 merupakan FSM yang dipraktikan dalam menghitung FPB dari 2 bilangan biner 4 bit.
DAFTAR PUSTAKA
[1] W. Simanjuntak, "Finite State Machine (FSM)", Blog.ub.ac.id, 2016. [Online]. Tersedia:
http://blog.ub.ac.id/wellysimanjuntakblog/2016/04/18/fin ite-state-machine-fsm/. [Diakses: 19- Juni- 2020].
[2] Modul Praktikum Sistem Digital. Jurusan Teknik Elektro Universitas Islam Indonesia, 2020.
[3] E. Ariyanto, "Finite State Machine", Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom, 2015. [Diakses 16 Juni 2020].
[4] A. Hadisuwito and S. Maharani, "Penerapan Metode Finite State Machine Pada Game “The Relationship”", Jurnal Ilmiah Ilmu Komputer, vol. 11, no. 14, 2016.
[Diakses 26 Juni 2020].
[5] F. Bevilacqua, "Mesin Finite-State: Teori dan
Implementasi", Game Development Envato Tuts+, 2013.
[Online]. Tersedia:
https://gamedevelopment.tutsplus.com/id/tutorials/finite- state-machines-theory-and-implementation--gamedev- 11867. [Diakses: 20- Juni- 2020].
LAMPIRAN
View publication stats