Anda di halaman 1dari 10

TEORI BAHASA DAN OTOMATA

(Project Turing Machine)


Disusun untuk memenuhi Tugas Mata Kuliah Teori Bahasa dan Otomata
Dosen Pengampu: Aji Purwinarko S.Si., M.Cs.

Disusun Oleh:
1. Fitri Amalia Langgundi (4611417009)
2. Ariatul Khasanah (4611417016)
3. Dany Pradana (4611417021)

JURUSAN ILMU KOMPUTER


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SEMARANG
2018

Turing Machine | 1
TURING MACHINE YANG MENGAMBIL MASUKAN EKSPRESI
MATEMATIKA PENJUMLAHAN BILANGAN BINER DAN
MENAMPILKAN HASILNYA

Mesin turing adalah suatu model yang sangat sederhana dari komputer.
Konsep mesin turing pertama kali di kenalkan oleh Alan Turing pada tahun 1936
dalam papernya yang berjudul “On Computable Numbers, with an Application to
the Entscheidungsproblem”. Konsep mesin turing inilah yang menjadi dasar dari
teori modern komputabilitas. Mesin turing dapat digunakan untuk menyelesaikan
beberapa permasalahan matematis yang sederhana. Contohnya perhitungan pada
bilangan bulat, menyalin simbol, menghitung suatu fungsi bilangan bulat dan lain
lain. Mesin Turing berbeda dari automata lain, mesin turing tidak mengkonsumsi
masukan mereka seperti mereka memproses. Dengan cara ini, mesin turing tidak
hanya bisa untuk memberikan jawaban ya atau tidak, tetapi dapat menggunakan
rekaman sebagai jawaban atau output. Sebelumnya kita telah mengetahui turing
acceptors, yang hanya menghasilkan jawaban ya atau tidak. Alternatif lain mesin
turing adalah sebagai turing transduser, yang dapat mengubah input ke output,
dan mungkin menghasilkan output yang lebih kompleks daripada hanya jawaban
ya atau tidak. Sebagai contoh, transduser mungkin menulis output tape dari
jumlah urutan masukan angka, memanfaatkan semua kata-kata dalam kalimat,
ataupun melakukan beberapa modifikasi lain sebagai masukan. Kami
menggunakan isi rekaman ketika mesin mencapai accepting configuration
menjadi output untuk transduser ini.

Mesin turing adalah suatu alat komputasi ideal yang memiliki head terdiri
baca dan tulis (biasa disebut Finite State Control) dan sebuah tape atau pita yang
akan dilaluinya. Pita dibagi menjadi beberapa sel atau kotak yang memiliki
panjang tak terhingga .dimana batas kiri tetap dan batas kanan tidak terbatas. Sel
pada pita dapat di baca maupun di tulis sedangkan pita yang tidak berisi simbol
masukan akan berisi simbol kosong atau blank (B). Sebuah mesin turing adalah
merupakan model matematis sederhana untuk komputer. Meskipun sederhana,
mesin turing dapat menggambarkan perilaku komputer general purpose.

Gambar 1. Mesin turing.

Turing Machine | 2
Fungsi state dari Finite State Control pada pita yang akan di laluinya,
untuk satu pergerakan akan melakukan :
 Mengganti state.bisa berganti ke state yang lain atau state yang sama.
 Menuliskan simbol pada sel pita yang sedang dilalui. Simbol ini akan
diganti dengan simbol yang menjadi masukkannya.
 Menggerakkan head ke kiri atau ke kanan.

Sebuah mesin turing dapat di gambarkan sebagai 7 buah tuple dimana M


= (Q, Σ, Γ, δ ,q0,B, F):
M = Mesin turing.
Q = Himpunan berhingga state dari finite control state (q0, q1,…atau p0,
p1,...).
Σ = Himpunan semua simbol-simbol masukan.
Γ = Himpunan simbol-simbol yang muncul di pita, Γ selalu menjadi subset dari
Σ q0 = State awal, anggota dari Q.
B = Simbol kosong, anggota dari Γ.
F = Himpunan status akhir.
δ = Fungsi transisi dari state, misalnya δ(q, x) = (p, Y,D) dimana :
 q adalah state dalam sel pita yang dilalui.
 x adalah simbol pada pita yang dilalui.
 p adalah state selanjutnya anggota Q.
 Y adalah simbol masukkan yang akan menggantikan nilai dari simbol sel
pita .
 D adalah arah pergerakkan dari head ke kiri atau ke kanan (L/R).

Nonhalting machines

Gambar 1. Kotak dialog jika kamu ingin continue simulation.

JFLAP dapat mensimulasikan TM yang tidak terhenti. Mesin ini memiliki


status awal q0 tunggal dan tidak ada keadaan akhir, dan memiliki transisi loop
pada simbol pita kosong. Mesin sederhana ini akan loop selamanya jika kepala
rekaman awalnya berakhir. Pilih Input: Fast Run, biarkan kolom input kosong,
dan klik OK. Segera, sebuah dialog yang menyerupai Gambar 1. muncul.
Meskipun JFLAP tidak dapat memecahkan masalah terputus-putus, itu dapat
mengganggu mesin setelah 500 konfigurasi yang telah dibuat untuk menanyakan
apakah Anda ingin tetap mencari. Jika Anda memilih Tidak atau Batal, simulasi

Turing Machine | 3
berhenti. Jika Anda memilih Ya, simulasi berlanjut, tetapi JFLAP bertanya lagi
pada 1000 konfigurasi, kemudian pada 2000, kemudian pada 4000, dan
seterusnya sampai mesin berhenti atau Anda memberi tahu JFLAP untuk berhenti.
Klik Ya beberapa kali untuk mengamati ini, tetapi klik Tidak ketika Anda
mencapai 16000 konfigurasi.

Flowchart

Turing Machine | 4
Mesin turing yang mengambil ekspresi matematika penjumlahan bilangan
biner dan menampilkan hasilnya dapat ditulis sebagai berikut M = (Q, Σ, Γ, δ
,q0,B, F) dimana :
Γ = (0,1,B,+,-,#)
Σ = (0,1)
q0 = q0

Turing Machine | 5
F = q3
B = Simbol blank,
Q = (q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13).

Tabel 1. Transisi
0 1 + - B a b #
q0 q0,0,R q1,1,R q4,+,R q0,B,R q0,0,R
q12,0,R q2,B,L q12,0,R

q1 q1,1,R q1,1,R q5,+,R q2,B,L q0,0,R q1,#,R


q0,0,R
q2 q2,0,L q2,1,L q3,B,R
q1,B,L
q3
q4 q4,0,R q4,1,R q6,+,L q6,B,L q6,a,L q6,b,L
q5 q5,0,R q5,1,R q7,+,L q7,B,L q7,a,L q7,b,L
q6 q8,a,L q8,b,L q13,a,L
q7 q8,b,L q9,a,L q13,b,L
q8 q8,0,L q8,1,L q10,+,L
q9 q9,1,L q13,1,L q10,1,L
q10 q11,#,L q11,#,L q10,#,L
q11 q11,0,L q11,1,L
q12,+,L
q12 q0,0,R q1,1,R q12,B,R q0,0,R q1,1,R q12,B,R
q13 q11,+,L q11,+,L q10,+,L

Jika digambarkan dalam JFLAP table transisi di atas bisa dilihat pada
Gambar 2. di bawah ini.

Turing Machine | 6
Gambar 2. TM yang mengambil masukan ekspresi matematika penjumlahan
bilangan biner dan menampilkan hasilnya.

Digambarkan dalam gambar 1, mesin turing ini diberikan ekspresi


matematika yang mengandung penambahan bilangan biner sebagai masukan dan
menghasilkan jumlah biner sebagai keluaran. Bilangan biner atau binary atau
binary digit (dapat disingkat menjadi bit) adalah salah satu jenis dari system
bilangan yang ada. Bilangan biner hanya terdiri dari angka 0 dan 1.

Tabel 2. Konversi bilangan decimal dalam bentuk biner.


Bit Value
Value
128 64 32 16 8 4 2 1
255 1 1 1 1 1 1 1 1
254 1 1 1 1 1 1 1 0
252 1 1 1 1 1 1 0 0
248 1 1 1 1 1 0 0 0
240 1 1 1 1 0 0 0 0
224 1 1 1 0 0 0 0 0
192 1 1 0 0 0 0 0 0
128 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

Sebagai contoh, input 101 + 10 + 100 (lima ditambah dua ditambah


empat) akan menghasilkan output 1011 (sebelas), dan input 1011 + 1 (sebelas
ditambah satu) menghasilkan output 1100 (dua belas). Mesin ini cukup sederhana,
berulang kali menjumlahkan dua nomor yang paling kiri sampai tepat satu angka
tersisa. Anda dapat memasukkan jumlah dalam simulator langkah untuk melihat
cara kerjanya lebih lengkap, dan mungkin itu akan menjadi lebih menarik, tetapi
jika Anda hanya tertarik pada apakah mesin menghasilkan jawaban yang benar
atau tidak, klik saja step button. Fast simulator atau multiple simulator mungkin
lebih cocok.

Dalam kasus multiple simulator, Anda mungkin telah memperhatikan


pada pilihan menu simulasi bahwa ada dua multiple run simulators yaitu multiple
run dan multiple run (tranducers). Pilihan ini hanya tersedia untuk mesin turing,
dan berguna dalam situasi dimana Anda ingin menjalankan mesin turing sebagai
tranducer dan melihat hasil dari multiple run tersebut.

Turing Machine | 7
Gambar 3. Multiple simulator dengan output pada adding turing transducer.

Pilih input: multiple run (tranducer). Maka akan muncul tampilan seperti
pada gambar 3. Dalam hal penerimaan mesin turing, simulator ini akan mengatur
sel output yang sesuai untuk output dari rekaman itu, seperti ditunjukkan pada
gambar 3. JFLAP menganggap output dari pita menjadi string simbol-simbol dari
simbol di bawah kepala tape, tetapi tidak termasuk yang pertama yang ditemui ke
kanan. Jika kepala tape ada pada a, output dianggap kosong. Jadi, jika Anda
membangun transduser Anda sendiri di JFLAP, pastikan untuk menempatkan
kepala tape simbol paling kiri yang Anda inginkan dalam output.

Hasil

BinaryAddingMachine akan mengubah inputan bilangan desimal ke dalam


bilangan binary. Selanjutnya BinaryAddingMachine menjumlahkannya dan
menampilkan hasilnya. Misalkan kita akan menjumlahkan bilangan 00000001100
(dua belas) dengan 00000001011 (sebelas) maka akan didapatkan hasil
00000010111 (dua puluh tiga)

Turing Machine | 8
Gambar 4. Tampilan pada inputan.

Masukkan bilangan pertama pada kolom pertama dan bilangan kedua pada
kolom kedua. Selanjutnya tekan Click Here To Calculate.

Gambar 5. Tampilan setelah dirubah ke binary.

Disini masukan telah dirubah ke dalam bentuk binary. Gambarnya dapat


dilihat pada Gambar 5. di atas.

Turing Machine | 9
Gambar 6. Hasil

Hasil dari penjumlahan 00000001100 (dua belas) ditambah 00000001011


(sebelas) ditampilkan pada Gambar 6.

Turing Machine | 10

Anda mungkin juga menyukai