Modul 02 Otomata
Modul 02 Otomata
Modul 02 Otomata
Teori Bahasa
Otomata
Finite Automata
02
Teknik Program 190641006 - Sukenda, S.Kom., M.T.
Studi Informatika [e] Teori Ari Purno Wahyu Wibowo,
Bahasa & S.Kom., M.Kom.
Otomata
Abstract Kompetensi
Pada teknik Automata mahasiswa Mahasiswa memahami pengertian dan
diajarkan untuk memahi dan mengerti kedudukan Teori Bahasa dan Otomata
pengguna variable dan komponen (TBO) pada ilmu komputer, mampu
pemograman lainnya serta menjelaskan sebuah kebutuhan
menurunkannya pada bahasa dengan mendeskripsikan cara kerja
pemograman atau dengan kata lain sistem tersebut dalam bentuk simbol
mampu membuat sebuah rekayasa dan contoh produk tepat guna serta
program berbasiskan matematika. dapat mendefinisikan langkah-
Kemampuan lain yang diperlukan langkah algoritmik dalam pemrosesan
adalah mahasiswa bisa tata bahasa.
mendiskripsikan kebutuhan sistem
dalam membuat sebuah program atau
produk serta mampu membuat sebua
dokumentasi hasil rekayasa sistem.
Finite Automata
Finite automata adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran
diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan
secara nyata dimana sistem dapat berada di salah satu dari sejumlah berhingga konfigurasi internal
disebut state.
Beberapa contoh sistem dengan state berhingga antara lain pada mesin minuman otomatis atau vending
machine, pengatur lampu lalu lintas dan lexical analyser. Suatu finite automata terdiri dari beberapa
bagian. Finite automata mempunyai sekumpulan state dan aturan-aturan untuk berpindah dari state
yang satu ke state yang lain, tergantung dari simbol nya. Finite automata mempunyai state awal,
sekumpulan state dan state akhir. Finite automata merupakan kumpulan dari lima elemen atau dalam
bahasa matematis dapat disebut sebagai 5-tuple. Definisi formal dari finite automata dikatakan
bahwa finite automata merupakan list dari 5 komponen : kumpulan state, input, aturan perpindahan,
state awal, dan state akhir.
Dalam DFA sering digunakan istilah fungsi transisi untuk mendefinisikan aturan perpindahan,
biasanya dinotasikan dengan δ. Jika finite automata memiliki sebuah panah dari suatu state x ke suatu
state y,dan memiliki label dengan simbol input 0, ini berarti bahwa, jika automata berada pada state x
ketika automata tersebut membaca 0, maka automata tersebut dapat berpindah ke state y dapat
diindikasikan hal yang sama dengan fungsi transisi dengan mengatakan bahwa δ(x, 0) = y.
Definisi 2.1.1 Sebuah finite automata terdiri dari lima komponen (Q, Σ, δ, q0, F ), di mana :
Definisi 2.1.2 Hopcroft et al. (2007) Suatu finite automata M = (Q,Σ,δ,q0,F) akan
menerima sebuah string w jika kumpulan states r0r1 · · · rn dalam Q memenuhi tiga
kondisi :
‘20 Teknik Automata Biro Akademik dan Pembelajaran
2 Sukenda | Ari Purno Wahyu W http://www.widyatama.ac.id
1. r0 = q0.
2. δ(ri, wi+1) = ri+1 untuk i = 0, · · · , n – 1.
3. rn □ F.
Pada definisi 2.1.2 kondisi yang pertama dinyatakan bahwa suatu finite automata dimulai dari start
state. Pada kondisi yang kedua dinyatakan bahwa finite automata akan berpindah dari satu state ke
state yang lain berdasarkan fungsi transisi, dan kondisi yang ketiga menyatakan bahwa finite automata
akan menerima string apabila tersebut berakhir pada final state. Dapat dinyatakan bahwa M
mengenali bahasa A jika A = {w | M menerima w}.
Menyatakan suatu finite automata dengan menggunakan notasi 5-tuple akan sangat merepotkan.
Cara yang lebih dianjurkan dalam menuliskan finite automata, yaitu dengan menggunakan :
1. Diagram transisi (transition diagram), yaitu berupa suatu graf.
2. Tabel transisi (transition table), yaitu daftar berbentuk tabel untuk fungsi δ, yang
merupakan hubungan antara himpunan states dengan alfabet input.
Contoh Pemograman
#include <Servo.h>
void setup()
{
void loop()
{
int flexPosition; // input nilai servo
int servoPosition; // Output nilai servo
flexPosition = analogRead(flexPin);
servoPosition = map(flexPosition, 600, 900, 0, 180);
servoPosition = constrain(servoPosition, 0, 180);
servo1.write(servoPosition);
Serial.print("sensor: ");
Serial.print(flexPosition);
Serial.print(" servo: ");
Serial.println(servoPosition);
delay(20); // menunggu delay pada servo selama 20 detik untuk pergantian produk
yang di pilih
}
Daftar Pustaka