Membuat Gambar FSM

Saya sedang membuat soal untuk kuliah Sistem Digital. Salah satu yang membuat repot adalah menggambar FSM (Finite State Machine). Kalau mau melakukan manual, bisa dengan Microsoft Visio, tapi repot sekali menggambarnya.

Salah satu solusinya adalah GraphViz. Dengan sedikit menuliskan kode, compile, selesai.

Misalkan saya mau membuat gambar FSM dari state table berikut:

screenshot_153

Maka saya tinggal membuat file .gv yang isinya kurang lebih mencerminkan tabel tersebut:

digraph finite_state_machine {
    rankdir=LR;
    size="8,5"

    "P/0" -> "Q/0" [ label = "0" ];
	"P/0" -> "P/0" [ label = "1" ];
	"Q/0" -> "P/0" [ label = "0" ];
	"Q/0" -> "R/0" [ label = "1" ];
	"R/0" -> "S/1" [ label = "0" ];
	"R/0" -> "Q/0" [ label = "1" ];
	"S/1" -> "S/1" [ label = "0" ];
	"S/1" -> "P/0" [ label = "1" ];
	"T/0" -> "P/0" [ label = "0" ];
	"T/0" -> "S/1" [ label = "1" ];
}

Nah, selanjutnya tinggal dicompile dengan dot milik si GraphViz:

dot -Tpng soal1fsm.gv -o soal1fsm.png

Ini akan menghasilkan file gambar dengan format PNG seperti ini:

soal1fsm

Hanya saja saya belum belajar bagaimana merapikannya. Tapi cukup sih kalau hanya sekedar membuat soal ujian.