Anda di halaman 1dari 18

PENDAHULUAN

Pada tahun 1990, D. Hilbert mengeluarkan 23 pertanyaan yang terkenal dalam bidang
Matematika. Salah satu yang terkenal adalah Hilbert’s tenth problem (H10) yaitu menemukan algoritma
untuk menyelesaikan masalah multivariable polynomial dengan koefisien integer. Untuk menanggapi
pertanyaan yang di ajukan oleh Hilbert, maka pada tahun 1936 Alan Turing memperkenalkan definisi
pertama pengertian dari algoritma. Dalam makalah yang berjudul : “On Computable Numbers, with an
Application to the Entscheidungsproblem”. Dia merumuskan konsep algoritma dan komputasi dengan
mesin atau yang lebih dikenal dengan Turing Machine. Dalam konsep ini turing menggambarkan sebuah
mesin yang mampu membaca rangkaian beberapa "nol dan satu" (binary digit) yang akan menjelaskan
cara penyelesaian masalah matematika, dan menyediakan jawaban yang dibutuhkan. Inti dari mesin ini
yang dikemudian hari dikenal sebagai ide tentang sebuah komputer.
Mesin ini masih berupa konsep, sampai kemudian diwujudkan dalam bentuk nyata beberapa
tahun kemudian. Konsep Mesin turing inilah yang menjadi dasar dari teori modern komputabilitas.
Sehingga Alan Turing dikenal juga secara luas sebagai bapak dari Ilmu Komputer dan Kecerdasan
buatan.
Konsep Turing Machine ini sebenarnya adalah “Stored program” yaitu suatu intruksi dapat
diterjemahkan kedalam angka biner yang dapat disimpan, dibaca dan ditulis, dimana merupakan konsep
yang sangat penting untuk pembuatan komputermodern saat ini.. Akan tetapi pada tahun 1936 komputer
fisik belum ditemukan, sehingga konsepnya hanya sebatas imaginasi matematika saja. Pada tahun yang
sama, Turing mendapatkan “Smith’s Prize”(penghargaan dari Cambridge University) untuk pekerjaannya
dalam teori probabilitas. Dari September 1936 sampai Juli 1938 ia menghabiskan waktunya belajar
dibawah gereja di Universitas Princeton. Sebagai tambahan untuk pekerjaan matematikanya, ia
mempelajarai kriptologi dan membuat tiga dari empat tahap perkalian biner elektro-magnetik.
Pada Juni 1938 ia memperoleh gelar PhD dari Princeton; Disertasinya, “Systems of Logic Based
on Ordinals”, memperkenalkan konsep Logika Ordinaldan Relative Computing, dimana mesin Turing
diaugmentasikan dengan Oracle, sehingga dapat mempelajari soal yang tidak dapat diselesaikan oleh
mesin Turing. Kembali ke Cambridge, ia mengikuti kuliah oleh Ludwig Wittgenstein tentang dasar dasar
matematika. Keduanya berdebat dan saling tidak setuju, dimana Turing membela formalism sementara
Wittgenstein mendorong pandangannya bahwa matematika tidak menemukan kebenaran mutlak tetapi
menciptakannya. Ia juga mulai bekerja paruh waktu di Government Code and Chyper School(GCCS).
Pada saat pecah perang dunia II ia mengambil pekerjaan penuh waktu di kantor pusatnya, Bletchley Park.
Disana dia memimpin sebuah tim yang merancang sebuah mesin yang dikenal sebagai “Bombe”
yang berhasil menterjemahkan pesan Jerman.
Dia menjadi tokoh terkenal dan eksentrik di Bletchley. Turing juga mempunyai minat yang
sangat besar dalam pengembangan "Artificial Intelligence". Untuk itu dia menghabiskan satu tahun di
Cambridge untuk mempelajari Neurologi dan Fisiologi. Di tahun 1947 dia menulis sebuah paper (tidak
pernah diterbitkan selama hidupnya) mengenai konsep yang sekarang dikenal dengan "jaringan neural",
dimana serangkaian system kompleks mampu memiliki kemampuan belajar.
Kemudian tahun 1950 mengeluarkan paper yang berpengaruh besar berjudul "Computing
Machinery and Intelligence". Dalam papernya ini Turing mengusulkan "Tes Turing" sebagai sebuah
metode untuk menentukan apakah sebuah mesin memiliki "Artificial Intelligence". Hingga tahun 1990-an
Tes ini masih dianggap sebagai cara yang paling baik untuk menentukan intelegensia dari sebuah mesin.

Contex Free Grammar diperkenalkan oleh Chomsky (1956) sebagai bagian dari pembelajaran
bahasa alami. CFG / Bahasa Bebas Konteks adalah suatu metode rekursif yang paling sederhana untuk
menspesifikan aturan-aturan dalam menyusun string dari bahasanya. CFG dapat pula menspesifikasikan
bahasa-bahasa non reguler tertentu, misalnya aturan tingkat dari bahasa pemerograman serta dari bahasa
formal lainnya
SUMMARY
Mesin turing dapat dimanfaatkan untuk mengidentifikasi ketidakmungkinan penulisan sebuah
program komputer. Sejauh ini kita dapat meyakini bahwa jika suatu persoalan tidak dapat dimodelkan
oleh mesin turing, maka persoalan tersebut tidak akan mungkin dapat diselesaikan secara komputatif oleh
mesin komputasi apapun.
Mesin Turing adalah perangkat teoritis yang memanipulasi simbol-simbol pada strip pita sesuai
dengan tabel aturan. Meskipun sederhana, mesin Turing dapat disesuaikan untuk mensimulasikan logika
dari setiap komputer algoritma , dan sangat berguna dalam menjelaskan fungsi sebuah CPU di dalam
sebuah komputer.
Mesin Turing tidak dimaksudkan sebagai teknologi komputasi praktis, melainkan
sebagai eksperimen pemikiran yang mewakili mesin komputasi. Mesin Turing membantu para ilmuwan
komputer memahami batas-batas perhitungan mekanik.
Mesin Turing juga sering disebut sebagai Mesin Cerdas karena kemampuaanya yang bisa
membuat komputer itu bisa membaca atau menulis data serta mengakses data dari mana saja.
Mesin Turing menggunakan notasi seperti ID-ID pada PDA untuk menyatakan konfigurasi dari
komputasinya. Mesin terdiri dari sebuah finite control, yang dapat berada dalam sebuah himpunan
berhingga dari state. Terdapat sebuah tape yang dibagi ke dalam kotak-kotak atau sel-sel. Setiap sel dapat
menampung sebuah dari sejumlah berhingga dari simbol. Pada awalnya, input yang merupakan string
dari simbol dengan panjang berhingga dipilih dari input alphabet, ditempatkan pada tape. Sel-sel tape
yang lain, perluasan secara infinite ke kiri dan ke kanan, pada awalnya menampung simbol khusus yang
dinamakan blank.
- Blank bukan sebuah input symbol, dan mungkin terdapat simbol tape yang lain
- disamping input symbol dan blank.
- Terdapat sebuah tape head yang selalu ditempatkan pada salah satu dari sel-sel tape.
- Mesin turing dikatakan men-scan sel tersebut. Pada awalnya, tape head berada pada sel paling
kiri yang menampung input.
- Sebuah pergerakan mesin Turing adalah sebuah fungsi dari state dari finite control dan tape
symbol yang di-scan.
Dalam satu pergerakan, mesin Turing akan :
Merubah state. Next state dapat sama dengan current state. Menulis sebuah tape symbol
dalam sel yang di-scan. Tape symbol ini mengganti symbol apapun yang ada dalam sel
tersebut. Secara opsional, simbol yang dituliskan dapat sama dengan simbol yang sekarang
ada dalam tape. Memindahkan tape head ke kiri atau ke kanan.
Fungsi transisi yang terjadi pada mesin turing banyak pita, lebih sedikit dari pada dilakukan pada
mesin turing satu pita.

Aplikasi penyederhanaan tata bahasa bebas konteks ke dalam bentuk normal Chomsky telah
berhasil dibangun untuk membantu pengguna dalam melakukan penyederhanaan tata bahasa bebas
konteks (CFG) dan mengubah CFG yang sudah disederhanakan ke dalam bentuk normal Chomsky(CNF).
Penyederhanaan tata bahasa bebas konteks (CFG) memiliki tiga proses yang harus dilakukan
secara berurut yaitu, penghilangan produksi epsilon, penghilangan produksi unit, dan produksi useless.
Setiap produksi unit selesai di subtitusi akan dihasilkan produksi useless.
Bentuk normal Chomsky hanya dapat dilakukan apabila tata bahasa bebas konteks (CFG) sudah
disederhanakan.
Selama proses pembentukan normal Chomsky dimungkinkan akan menghasilkan aturan produksi
dan simbol variabel baru.
Mesin Turing
Perkembangan komputer saat ini memang sangat luar biasa. Berbagai processor jenis baru terus
lahir yang membuat kemampuan komputer terus meningkat dengan pesat. Kecepatan komputasi
komputer modern meningkat tapi konsepnya tetap sama yaitu menggunakan mesin turing sebagai
"ibunya".
Mesin Turing adalah model komputasi teoritis yang ditemukan oleh Alan Turing, berfungsi
sebagai model ideal untuk melakukan perhitungan matematis. Walaupun model ideal ini diperkenalkan
sebelum komputer nyata dibangun, model ini tetap diterima kalangan ilmu komputer sebagai model
komputer yang sesuai untuk menentukan apakah suatu fungsi dapat selesaikan oleh komputer atau tidak
(menentukan computable function). Mesin Turing terkenal dengan ungkapan " Apapun yang bisa
dilakukan oleh Mesin Turing pasti bisa dilakukan oleh komputer."
Sebuah mesin turing terdiri atas barisan sel tersusun berupa pita yang dapat bergerak maju
mundur, komponen aktif baca/tulis pita yang memiliki status perhitungan serta dapat mengubah/menulisi
sel aktif yang ada di pita tadi, dan suatu kumpulan instruksi bagaimana komponen baca/tulis ini harus
melakukan modifikasi terhadap sel aktif pada pita, serta bagaimana menggerakkan pita tersebut. Pada
setiap langkah dalam komputasi, mesin ini akan dapat mengubah isi dari sel yang aktif, mengubah status
dari komponen baca/tulis, dan mengubah posisi pita kekiri atau kekanan.
Mesin Turing adalah model yang sangat sederhana dari komputer.  Secara esensial, mesin Turing
adalah sebuah finite automaton yang miliki sebuah tape tunggal dengan panjang tak terhingga yang dapat
membaca dan menulis data.  Mesin Turing menggunakan notasi seperti ID-ID pada PDA untuk
menyatakan konfigurasi dari komputasinya. Stack pada PDA memiliki keterbatasan akses.  Elemen yang
dapat diakses hanya elemen yang ada pada top stack. Pada Mesin Turing, memori akan berupa suatu tape
yang pada dasarnya merupakan array dari sel-sel penyimpanan.

Visualisasi dari sebuah mesin Turing diberikan oleh gambar berikut:

Mesin terdiri dari sebuah finite control, yang dapat berada dalam sebuah himpunan berhingga
dari state.  Terdapat sebuah tape yang dibagi ke dalam kotak-kotak atau sel-sel.  Setiap sel dapat
menampung sebuah dari sejumlah berhingga dari simbol.  Pada awalnya, input yang merupakan string
dari simbol dengan panjang berhingga dipilih dari input alphabet, ditempatkan pada tape. Sel-sel tape
yang lain, perluasan secara infinite ke kiri dan ke kanan, pada awalnya menampung simbol khusus yang
dinamakan blank. Blank bukan sebuah input symbol, dan mungkin terdapat simbol tape yang lain
disamping input symbol dan blank.  Terdapat sebuah tape head yang selalu ditempatkan pada salah satu
dari sel-sel tape.  Mesin turing dikatakan men-scan sel tersebut. Pada awalnya, tape head berada pada sel
paling kiri yang menampung input. Sebuah pergerakan mesin Turing adalah sebuah fungsi dari state dari
finite control dan tape symbol yang di-scan.

Dalam satu pergerakan, mesin Turing akan:


- Merubah state.  Next state dapat sama dengan current state.
- Menulis sebuah tape symbol dalam sel yang di-scan.  Tape symbol ini mengganti symbol apapun
yang ada dalam sel tersebut.  Secara opsional, simbol yang dituliskan dapat sama dengan simbol
yang sekarang ada dalam tape.
- Memindahkan tape head ke kiri atau ke kanan.

Notasi formal Mesin Turing


Mesin Turing dijelaskan oleh 7-tuple: M = (Q, S, G, d, q0, B, F) Komponen-komponennya
adalah:
Q:  Himpunan berhingga dari state dari finite control.
S: himpunan berhingga dari simbol-simbol input.
G: Himpunan dari tape symbol.  S merupakan subset dari G.

Fungsi transisi. 
Argumen d(q, X) adalah sebuah state q dan sebuah tape symbol X.  Nilai dari d(q, X), jika nilai
tersebut didefinisikan, adalah triple (p, Y, D), dimana:
- p adalah next state dalam Q
- Y adalah simbol, dalam G, ditulis dalam sel yang sedang di-scan, menggantikan simbol apapun
yang ada dalam sel tersebut.
- D adalah arah, berupa L atau R, berturut-turut menyatakan left atau right, dan menyatakan arah
dimana head bergerak.
- q0: start state, sebuah anggota dari Q, dimana pada saat awal finite control ditemukan.
- B: simbol blank.  Simbol ini ada dalam G tapi tidak dalam S, yaitu B bukan sebuah simbol input.
- F: himpunan dari final state, subset dari Q.

Deskripsi Instantaneous (ID) untuk Mesin Turing


ID digunakan untuk mengetahui apa yang mesin Turing kerjakan.  ID direpresentasikan oleh
string X1X2X3… Xi-1qXiXi+1 … Xn, dimana:

–        q adalah state dari TM


–        Tape head men-scan simbol ke-i dari kiri.
–        X1X2 …Xn adalah bagian dari tape di antara nonblank pada sel paling kiri dan paling kanan.

Pergerakan TM M = (Q, S, G, d, q0, B, F) dinyatakan oleh notasi ├ atau ├. ├*M atau ├*


digunakan untuk menunjukkan nol, satu atau lebih pergerakan dari TM.
Anggap d(q, Xi) = (p, Y, L), yaitu pergerakan selanjutnya adalah ke kiri.  Maka

X1X2… Xi-1qXiXi+1 … Xn
├ X1X2… Xi-2pXi-1 YXi+1 … Xn

Pergerakan ini menyatakan perubahan ke state p. Tape head sekarang diposisikan di sel i-1.
Jika i = n dan Y = B maka simbol B yang ditulis pada Xn berhubungan dengan urutan tak hingga dari
blank–blank yang mengikuti dan tidak muncul dalam ID selanjutnya.  Dengan demikian;

X1X2 …Xn-1 q Xn├ X1X2… Xn-2p Xn-1

Terdapat dua pengecualian:


- Jika i=1, maka M bergerak ke blank ke bagian kiri dari X1.  Dalam kasus ini,

qX1X2 …Xn├ pBYX2… Xn

- Jika i = n dan Y = B maka simbol B yang ditulis pada Xn berhubungan dengan urutan tak hingga
dari blank–blank yang mengikuti dan tidak muncul dalam ID selanjutnya. Dengan demikian;

X1X2 …Xn-1 q Xn├ X1X2… Xn-2p Xn-1

Anggap d(q, Xi) = (p, Y, R), yaitu pergerakan selanjutnya adalah ke kanan.  Maka

X1X2… Xi-1qXiXi+1 … Xn ├ X1X2… Xi-1 YpXi+1 … Xn


Tape head telah bergerak ke sel i+1.  Terdapat dua pengecualian:
- Jika i = n, maka sel ke-i+1 menampung sebuah blank, dan sel tersebut bukan bagian dari ID
sebelumnya.  Dengan demikian;

X1X2 … Xn-1 qXn├ X1 X2… Xn-1YpB

- Jika i = 1 dan Y = B maka simbol B yang ditulis pada X1 berhubungan dengan urutan tak hingga
dari blank–blank dan tidak muncul dalam ID selanjutnya.  Dengan demikian

qX1X2 …Xn├ pX2… Xn

Diagram Transisi untuk Mesin Turing


Diagram transisi terdiri dari sebuah himpunan dari node–node yang menyatakan state–state dari
Mesin Turing .sebuah arc dari state q ke state p diberi label oleh satu atau lebih item dengan bentuk X/Y
D, dimana X dan Y adalah tape symbol, dan D adalah arah, kiri (L) atau kanan (R).  Bahwa bila d(q, X) =
(p, Y, D) diperoleh label X/Y D pada arc dari q ke p. Dalam diagram arah D dinyatakan dengan tanda ¬
untuk “left” dan ® untuk “right”.  Start state ditandai dengan kata “start” dan sebuah panah yang masuk
ke dalam state tersebut.  Final state ditandai dengan putaran ganda.

Contoh:
Mesin Turing berikut menghitungan fungsi   , yang dinamakan monus atau proper substraction. 
Fungsi ini didefinisikan oleh  m   n = max(m – n, 0).  Bahwa, m   n = m – n jika m ³ n dan 0 jika
m < n.  Mesin Turing yang melakukan operasi ini adalah
M = ({q0, q1, … , q6}, {0, 1}, {0, 1, B}, d, q0, B)

Aturan untuk fungsi transisi d:

Diagram transisi dari mesin Turing M:

Contoh Mesin Turing Sederhana


Sebuah contoh mesin Turing dapat dibangun untuk melakukan komputasi sederhana yang
didefinsikan seperti ini:
- Tentukan ada berapa angka 1 dalam sebuah string berbentuk 0111...110 (rangkaian angka 1 yang
didahului dengan 0 dan diakhiri juga dengan 0), apakah berjumlah genap atau berjumlah ganjil.
- Jika angka 1 di antara dua angka 0 berjumlah genap, tulis sebuah angka 0 pada salah satu sel dari
tape mesin Turing.
- Jika angka 1 di antara dua angka 0 berjumlah ganjil, tulis sebuah angka 1 pada salah satu sel dari
tape mesin Turing.
Untuk menyelesaikan masalah komputasi ini, kita buat tiga buah State bagi mesin Turing ini, yaitu
Start, Even, dan Odd. Di samping itu kita buat sekumpulan aturan Transisi yang digunakan oleh
mesin Turing ini untuk melakukan proses komputasinya.

Aturan-aturan Transisi tersebut dapat dituliskan demikian:


1. Jika mesin Turing berada pada status Start, dan membaca simbol 0 pada Tape, lakukan hal
berikut: Pindah status menjadi status Even, Ganti simbol 0 pada Tape dengan Blank (atau Hapus
simbol 0 pada Tape), dan Bergerak ke kanan satu sel.
2. Jika mesin Turing berada pada status Even, dan membaca simbol 1 pada Tape, lakukan hal
berikut: Pindah status menjadi status Odd, Ganti simbol 1 pada Tape dengan Blank, dan Bergerak
ke kanan satu sel.
3. Jika mesin Turing berada pada status Odd, dan membaca simbol 1 pada Tape, lakukan hal
berikut: Pindah status menjadi Even, Ganti simbol 1 pada Tape dengan Blank, dan Bergerak ke
kanan satu sel.
4. Jika mesin Turing berada pada status Even, dan membaca simbol 0 pada Tape, lakukan hal
berikut: Pindah status menjadi Halt, Ganti simbol 0 pada Tape dengan 0, dan tetap pada sel
tersebut (tidak perlu berpindah ke kiri maupun ke kanan).
5. Jika mesin Turing berada pada status Odd, dan membaca simbol 0 pada Tape, lakukan hal
berikut: Pindah status menjadi Halt, Ganti simbol 0 pada Tape dengan 1, dan tetap pada sel
tersebut.

Palindrome detector
apa itu Palindrome, Palindrome berasal dari bahasa Yunani yaitu Palindromos A Palindrome.
Palindromos A Palindrome adalah kata atau kalimat yang sama dieja maju atau mundur(bacaan yang
sama dieja pada kedua arah). Sebagai contoh sederhana adalah beberapa kata yang sederhana yaitu rotor,
rotator, civic, madam, racecar, level, dan lain-lain. Untuk contoh lain yaitu kalimat palindrome adalah No
lemon no melon, No devil lived on, Swap God for a janitor  rot in a jar of dog paws, dll.
Graf dari palindrome detector , merupakan sebuah simulasi mesin turing yang berfungsi untuk
mendeteksi kata palindrome yang diinputkan oleh user. Kata atau untai yang dibentuk masih terbatas pada
penggunaan huruf “A” dan “B”. Contoh kata yang dibentuk adalah “ABAABBA” untuk kata yang tidak
termasuk dalam palindrome, dan “BABBAB” untuk kata yang termasuk dalam palindrome.

Pemrograman sederhana jenis mesin Turing ini tidak sesulit yang dibayangkan. Dimana
sebenarnya pemrograman ini akan membentuk graph. Transisi state terdiridari5-tupel rangkaian pada
setiap baris, dengan format seperti ini:
[state],[karakter],[state baru],[karakterbaru],[arah]
    1    ,      _        ,       2        ,         #             ,     >
   2    ,      A       ,       3        ,          A            ,     >
      
Karakter '_' dapat digunakan untuk menunjukkan kosong(blank), 'H' untuk menunjukkan sebagai
state berhenti/Halt (hanya berlaku pada sisi kanan transisi), dan '<' dan '>' untuk menunjukkan arah 
masing-masing bergerak kekiri atau kanan.

Mesin Turing terdiri dari:


1. Sebuah rekaman yang terbagi ke dalam sel, satu di samping yang lain. Setiap sel berisi simbol
dari beberapa alfabet yang terbatas. Alfabet berisi simbol kosong khusus (di sini ditulis sebagai
'B') dan satu atau lebih simbol lainnya. Rekaman dianggap sewenang-wenang diperpanjang ke
kiri dan ke kanan yaitu, mesin Turing adalah selalu disediakan dengan pita sebanyak yang
dibutuhkan untuk perhitungan nya. Sel yang belum ditulis sebelum diasumsikan diisi dengan
simbol kosong. Dalam beberapa model rekaman itu memiliki ujung kiri ditandai dengan simbol
khusus, pita meluas atau tanpa batas extensible ke kanan.
2. Sebuah kepala yang dapat membaca dan menulis simbol pada pita dan memindahkan tape kiri
dan kanan satu (dan hanya satu) sel pada suatu waktu. Dalam beberapa model gerakan kepala dan
pita stasioner.
3. Sebuah tabel yang terbatas (kadang-kadang disebut tabel tindakan atau fungsi transisi) instruksi
(biasanya quintuples [5-tupel]: q i j → q i1 sebuah j1 d k, tapi kadang-kadang 4-tupel) bahwa,
mengingat negara (q i ) mesin saat ini dan simbol (j a) itu adalah membaca pada pita (simbol saat
ini di bawah kepala) memberitahu mesin untuk melakukan hal berikut dalam urutan (untuk 5-
tupel model):
 Entah menghapus atau menulis simbol (bukan j menulis j1), dan kemudian
 Pindahkan kepala (yang digambarkan oleh d k dan dapat memiliki nilai: 'L'
untuk satu langkah kiri atau 'R' untuk satu langkah yang tepat atau 'N' untuk
tinggal di tempat yang sama).
 Asumsikan yang sama atau negara baru seperti yang ditentukan (pergi ke negara

 Dalam 4-tupel model, menghapus atau menulis simbol (a j1) dan memindahkan
kepala kiri atau kanan (d k) ditetapkan sebagai instruksi terpisah. Secara khusus,
meja memberitahu mesin untuk (AGLOCO) menghapus atau menulis
simbol atau (ib) memindahkan kepala kiri atau kanan, dan kemudian (ii)
menganggap sama atau negara baru seperti yang ditentukan, tetapi tidak kedua
tindakan (AGLOCO) dan (ib) dalam instruksi yang sama. Pada beberapa model,
jika tidak ada entri dalam tabel untuk kombinasi saat simbol dan negara maka
mesin akan menghentikan; model lain memerlukan semua entri untuk diisi.

Sebuah negara yang mendaftar menyimpan status dari mesin Turing, salah satu dari finitely


banyak. Ada satu mulai keadaan khusus dengan yang mendaftar negara diinisialisasi. Negara-negara ini,
menulis Turing, menggantikan "keadaan pikiran" orang yang melakukan . Perhatikan bahwa setiap bagian
dari mesin negara-dan simbol-koleksi-dan yang tindakan-mencetak, menghapus dan tape-gerak terbatas,
diskrit dan dibedakan, itu adalah jumlah terbatas berpotensi tape yang memberikan suatu jumlah terbatas
dari ruang penyimpanan.

Contoh Mesin Turing

Definisi FormalHopcroft dan Ullman (1979, hal 148) secara formal mendefinisikan mesin (satu-
tape) Turing sebagai 7 – tupel  mana
- Q adalah, terbatas tidak kosong set Negara
- Γ adalah, terbatas tidak kosong set alfabet tape / symbol
-  adalah simbol kosong (simbol hanya diperbolehkan terjadi pada pita tak
terhingga sering pada langkah apapun selama perhitungan)
-  adalah himpunan simbol masukan
-  adalah keadaan awal
-  adalah himpunan negara akhir atau menerima.

 adalah fungsi parsial disebut di mana L adalah pergeseran


kiri, R adalah benar pergeseran. (Sebuah varian relatif jarang memungkinkan "tidak ada pergeseran",
katakanlah N, sebagai elemen ketiga set kedua.) Apa pun yang beroperasi sesuai dengan spesifikasi ini
mesin Turing.
The 7-tupel untuk 3-negara berang-berang sibuk terlihat seperti ini (lihat lebih lanjut tentang ini
berang-berang sibuk di contoh mesin Turing ):
- Q = {A, B, C, HALT}
- Γ = {0, 1}
- b = 0 = "blank"
- Σ = {1}
- δ = lihat tabel di bawah negara-
- q 0 = Sebuah negara = awal
- F = elemen satu set akhir negara} {HALT
Awalnya semua sel tape ditandai dengan 0.
Negara meja untuk 3 negara, berang-berang sibuk 2 simbol

Rincian tambahan yang dibutuhkan untuk memvisualisasikan atau menerapkan mesin


TuringDalam kata-kata van Emde Boas (1990), hal 6: ". Objek set-teori [formal tujuh tupel deskripsi
mirip dengan di atas] menyediakan informasi hanya parsial pada bagaimana mesin akan berperilaku dan
apa perhitungan nya akan terlihat seperti. Ada perlu beberapa keputusan tentang apa yang sebenarnya
terlihat seperti simbol, dan cara failproof membaca dan menulis simbol tanpa batas.
Pergeseran kiri dan kanan dapat pergeseran operasi menggeser kepala tape di tape, tapi ketika
benar-benar membangun mesin Turing itu lebih praktis untuk membuat slide kaset bolak-balik di bawah
kepala sebagai gantinya.Rekaman itu bisa terbatas, dan secara otomatis diperpanjang dengan kosong yang
diperlukan (yang paling dekat dengan definisi matematika), tetapi lebih umum untuk menganggapnya
sebagai peregangan terbatas pada kedua ujungnya dan menjadi pra-diisi dengan kosong kecuali secara
eksplisit diberikan fragmen yang terbatas kepala tape pada. (Hal ini, tentu saja, tidak diimplementasikan
dalam praktek.) Tape tidak bisa diperbaiki panjang, karena itu tidak akan sesuai dengan definisi yang
diberikan dan serius akan membatasi jangkauan perhitungan mesin dapat melakukan untuk orang-orang
dari otomat dibatasi linier .
Prinsip Kerja mesin Turing
1. Lihat state semula dan simbol yang ditunjuk head
2. Berdasarkan fungsi transisinya,tentukan:
o state berikutnya
o Lakukan penulisan ke pita
o Gerakkan head ke kanan dan ke kiri
3. Bila dari pasangan state dan simbol yang ditunjuk head tidak ada lagi fungsi transisinya,berarti
mesin turing berhenti
4. Bila mesin turing berhenti di dalam state final (F) , berarti input diterima. Sebaliknya jika mesin
berhenti tidak pada state akhir,maka berarti inputan tersebut ditolak.

Model Mesin Turing


Banyak mesin yang mungkin dianggap memiliki kemampuan lebih komputasi dari mesin Turing
sederhana universal dapat terbukti memiliki kekuatan lagi (Hopcroft dan Ullman p. 159, lih Minsky
(1967)). Mereka mungkin menghitung lebih cepat, mungkin, atau menggunakan memori kurang, atau set
instruksi mereka mungkin lebih kecil, tetapi mereka tidak dapat menghitung lebih kuat (yaitu lebih
banyak fungsi matematika). (Ingat bahwa Gereja-Turing tesis hipotesis ini benar untuk setiap jenis mesin:
bahwa apa pun yang dapat "dihitung" dapat dihitung oleh beberapa mesin Turing.)
Sebuah mesin Turing adalah setara dengan otomat pushdown yang telah dibuat lebih fleksibel
dan ringkas dengan relaksasi terakhir-in-first-out persyaratan stack.
Pada ekstrem yang lain, beberapa model yang sangat sederhana berubah menjadi Turing-setara ,
yaitu memiliki kekuatan komputasi yang sama seperti model mesin Turing.
Model yang sama yang umum adalah multi-pita mesin Turing , multi-track mesin Turing , mesin
dengan input dan output, dan non-deterministik mesin Turing (NDTM) sebagai lawan dari mesin
Turingdeterministik (DTM) untuk tabel tindakan yang telah di paling satu entri untuk setiap kombinasi
simbol dan negara.
Read-only, kanan bergerak Mesin Turing yang setara dengan itu NDFA (serta yang DFA dengan
konversi menggunakan NDFA untuk DFA algoritma konversi ).
Untuk tujuan praktis dan didactical setara mesin mendaftar dapat digunakan sebagai
biasa perakitan bahasa pemrograman.

Oracle O-Mesin
Awal dalam makalahnya (1936) Turing membuat perbedaan antara "mesin otomatis"-nya "gerak
sepenuhnya ditentukan oleh konfigurasi" dan "mesin pilihan":Yang gerak hanya sebagian ditentukan oleh
konfigurasi ... Ketika seperti mesin mencapai salah satu dari konfigurasi ini ambigu, tidak bisa pergi
sampai beberapa pilihan sewenang-wenang telah dilakukan oleh operator eksternal. Ini akan terjadi jika
kita menggunakan mesin untuk menangani sistem aksiomatis.
Turing (1936) tidak merinci lebih jauh kecuali dalam catatan kaki di mana ia menjelaskan
bagaimana menggunakan sebuah-mesin untuk "menemukan semua rumus yang dapat dibuktikan dari
[Hilbert] kalkulus" daripada menggunakan mesin pilihan. Dia "kira [s] bahwa pilihan selalu antara dua
kemungkinan 0 dan 1 bukti Setiap kemudian akan ditentukan oleh urutan pilihan i 1, i 2, ...., In (i 1 = 0
atau 1, i 2 = 0 atau 1, ..., i n = 0 atau 1), dan karenanya nomor 2 n + i 1 2 n-1 + i 2 2 n-2 + ... + i n benar-
benar menentukan buktinya. mesin otomatis melakukan berturut bukti 1, bukti 2, bukti 3, ... " (Catatan
kaki ‡, diputuskan, hal 138). Ini memang teknik dimana seorang deterministik (yaitu-) Turing mesin
dapat digunakan untuk meniru aksi dari mesin Turing nondeterministic ; Turing diselesaikan masalah ini
dalam catatan kaki dan muncul untuk memberhentikan dari pertimbangan lebih lanjut.Sebuah mesin
oracle atau o-mesin adalah mesin Turing-bahwa jeda perhitungan tersebut pada sedangkan
negara "o", untuk menyelesaikan perhitungan, itu "menunggu keputusan" dari "oracle"-entitas yang tidak
ditentukan "selain dari mengatakan bahwa itu tidak bisa menjadi mesin "(Turing (1939), hal diputuskan
166-168). Konsep ini sekarang aktif digunakan oleh ahli matematika.
Unniversal Mesin Turing
Hal ini dimungkinkan untuk menciptakan sebuah mesin tunggal yang dapat digunakan untuk
menghitung urutan dihitung. Jika ini U mesin diberikan dengan tape pada awal yang ditulis string
quintuples dipisahkan oleh titik koma dari beberapa M mesin komputasi, maka U akan menghitung urutan
yang sama sebagai M. Temuan ini sekarang diambil untuk diberikan, tapi pada saat (1936) itu dianggap
menakjubkan. Model komputasi yang Turing disebut "mesin universal" nya - "U" untuk pendek dianggap
oleh beberapa (bdk. Davis (2000)) telah menjadi terobosan teoritis mendasar yang menyebabkan
pengertian tentang program yang tersimpan komputer .
Turing kertas mengandung, pada intinya, penemuan komputer modern dan beberapa teknik
pemrograman yang menyertainya. Dalam hal kompleksitas komputasi , multi-pita mesin turing universal,
hanya perlu lebih lambat oleh logaritmik faktor dibandingkan dengan mesin itu mensimulasikan. Hasil ini
diperoleh pada tahun 1966 oleh FC Hennie dan RE Stearns.

Keterbatasan Mesin Turing


Keterbatasan Mesin Turing adalah bahwa mereka tidak model kekuatan dari pengaturan tertentu
dengan baik. Misalnya, modern disimpan-program komputer sebenarnya contoh dari bentuk yang lebih
spesifik mesin abstrak yang dikenal sebagai mesin disimpan mengakses program acak atau model serak
mesin. Seperti mesin Turing Universal serak toko "Program" dalam "memori" eksternal untuk negara
terbatas mesin yang itu "petunjuk".
Berbeda dengan Universal Turing Machine, serak memiliki jumlah tak terbatas dibedakan, namun
nomor terbatas "register"-memori "sel" yang dapat berisi bilangan bulat apapun (lih. Elgot dan Robinson
(1964), Hartmanis (1971), dan di Cook khususnya -Rechow (1973); referensi di mesin akses acak ).
Terbatas-negara mesin parutan adalah dilengkapi dengan kemampuan untuk mengatasi tidak langsung
(misalnya isi dari satu mendaftar dapat digunakan sebagai alamat untuk menentukan mendaftar lain),
dengan demikian "Program" parau bisa alamat setiap mendaftar di urutan mendaftar.
Hasil dari perbedaan ini adalah bahwa ada optimasi komputasi yang dapat dilakukan berdasarkan
indeks memori, yang tidak mungkin dalam Turing Machine umum; sehingga ketika turing Mesin
digunakan sebagai dasar untuk melompat-lompat kali berjalan, 'palsu batas bawah 'dapat terbukti pada
algoritma tertentu' kali berjalan (karena asumsi menyederhanakan palsu dari Turing Machine).
Sebuah contoh dari ini adalah pencarian biner , algoritma yang dapat ditampilkan untuk
melakukan lebih cepat ketika menggunakan model serak perhitungan ketimbang model mesin Turing.

CONTEXT FREE GRAMMAR (CFG)


Context Free Grammar (CFG)/ Bahasa Bebas Konteks adalah sebuah tata bahasa dimana tidak
terdapat pembatasan pada hasil produksinya, Contoh Pada aturan produksi :
α→β
batasannya hanyalah ruas kiri (α) adalah sebuah simbol variabel. Sedangkan contoh aturan produksi yang
termasuk CFG adalah seperti di bawah :
B → CDeFg
D → BcDe
Context Free Grammar ( CFG ) adalah tata bahasa yang mempunyai tujuan sama seperti halnya
tata bahasa regular yaitu merupakan suatu cara untuk menunjukkan bagaimana menghasilkan suatu untai-
untai dalam sebuah bahasa.

Latar Belakang Context Free Grammar ( CFG )


Terinspirasi dari bahasa natural manusia, ilmuwan-ilmuwan ilmu komputer yang
mengembangkan bahasa pemrograman turut serta memberikan grammar (pemrograman) secara formal.
Grammar ini diciptakan secara bebas-konteks dan disebut Context
Free Grammar (CFG). Hasilnya, dengan pendekatan formal ini, kompiler suatu bahasa pemrograman
dapat dibuat lebih mudah dan menghindari ambiguitas ketika parsing bahasa tersebut. Contoh desain CFG
untuk parser, misal : B -> BB | (B) | e untuk mengenali bahasa
dengan hanya tanda kurung {‘(’,’)’} sebagai terminal-nya. Proses parsing adalah proses pembacaan string
dalam bahasa sesuai CFG tertentu, proses ini harus mematuhi aturan produksi dalam CFG tersebut

Komponen Contex Free Grammar


Contex Free Grammar memiliki 4 komponen :
1.      Sekumpilan token yang di kenal sebagai terminal
2.      Sekumpulan nol terminal.
3.      Sekumpulan produksi dimana setiap produksi memiliki nol terminal disebut sebagai bagian
kiri dari produksi, sebuah panah dan seurutan token dan non terminal  atau seurutan token atau
non terminal yang disebut sebagai bagian kanan dari produksi.
4.      Pemilihan dari salah satu non terminal sebagai simbol awal. Simbol CFG (Contex Free
Grammar)
Dalam Contex Free Grammar perlu diketahui beberapa istilah berikut yang berhubungan dengan
grammar untuk bisa membedakan satu symbol dan lainnya:
a. Simbol berikut adalah terminal :
o Huruf kecil, awal dari abjad seperti a, b, c
o Simbol operator seperti  – dll.
o Angka 0,1. . . . . . .9
o Kata tercetak tebal seperti id atau if
b. Simbol beriktu adalah non terminal :
o Huruf besar, awal dari abjad seperti A, B, C
o Huruf S yang ada biasanya sebagai symbol awal.
c. Huruf besar akhir adalah abjad seperti X, Y Z mempresentasikan simbol grammar yaitu
terminal atau non terminal
d.      Huruf kecil akhir dalam abjad, biasanya u, v,…z mempresentasikan sekumpulan terminal.
e.       Huruf yunani kecil, seperti α β sebagai contoh, mempresentasikan sekumpulan umum symbol
grammar. Pada umunya produksi dapat ditulis menjadi A      α, menyatakan bahwa pada produksi itu
ada sebuah non terminal a pada sisi bagian kiri dan sebuah string dari symbol grammar α pada sisi
bagian kanan.
f.       Apabila tidak ada pernyataan lain, maka bagian kiri dari produksi merupakan symbol awal.

Contoh:
Jika CFG  pada polindrom {a,b} dapat di definisikan sebagai contoh sebelumnya, maka CFG
untuk bahasa komplemennya (non polindrom) dapat di defenisikan dengan aturan sebagai berikut :
S à aSa|bSb|D
Dà aAb|bAa
AàA|aA|bA
Suatu contex free grammar CFG adalah G = (V,Σ,S,P) dimana :
Ø  V dan  Σ adalah himpunan disjoin, V disebut himpunan nonterminal, Σ disebut
himpunan terminal
Ø  S simbol awal dan S € V, dan
Ø  P himpunan berhingga aturan produksi berbentuk A à α dengan A € V dan α €
V dan α € (V- Σ)*
Aturan- aturan produksi dari satu variabel yang sama menjadi alternatif string yang berbeda dapat
dipersingkat penulisannya dalam suatu ekspresi aturan produksi dengan setiap alternatif dipisahkan oleh
garis tegak ‘|’. Misalnya Aà α,Aà β, Aàγ, dapat ditulis menjadi A à α| β| γ.

Notasi : =>G’ dan =>G ’


Notasi untuk menyatakan “operasi penurunan” dari satu string menjadi string yang lain menjadi
aturan produksi.
Jika satu string α= α1 Aα2 diturunkan menjadi string β= α1 αα 2 dalam satu langkah yang mengikuti
suatu aturan produksi Aà γ dari gambar G maka penurunan itu dinyatakan dengan notasi αà G β
Kita mengatakan bahwa β diturunkan dari α dan sebaliknya α diturunkan menjadi β. Apabila sudah jelas
berdasar grammar mana penurunan itu dilakukan, maka kadang-kadang notasi tersebut disederhanakan
cukup dengan ‘=>’.
 
Bentuk umun dari notasi ‘=>G’ di atas adalah ‘=>*G’ yang berarti penurunan dilakukan dalam nol
langkah atau lebih.
 
Jika menurut grammar G terjadi serangkaian penurunan
Α=> α1 =>α2 =>… β
Maka penulisannya dapat disingkat menjadi
α =>* β

di awal sudah dijelaskan bahwa CFG dapat buat menspefikasikan bahasa-bahasa reguler.

Contoh:
Bahasa L dengan ekspresi reguler (0+1) dapat dinyatakan dengan suatu CFG G=( V,Σ,S,P)
dengan aturan-aturan produksi P
S à 0S | 1S | 10
String 10110 dapat diturunkan sbb.
S => 1S=>101S =>10110/

PENYEDERHANAAN CONTEXT FREE GRAMMAR (CFG)


Penyederhanaan tata bahasa bebas konteks ini memiliki tujuan agar tidak menghasilkan pohon
penurunan yang memiliki kerumitan yang tidak diperlukan atau menghilangkan aturan produksi yang
tidak berarti.
Langkah-langkah penyederhanaan dari tatabahasa bebas konteks ini adalah dengan cara :
1.      Menghilangkan produksi yang useless (tidak berguna)
2.      Menghilangkan produksi unit
3.      Menghilangkan produksi ε

1. Menghilangkan Produksi Useless


Produksi Useless didefinisikan sebagai berikut :
Poduksi yang memuat simbol variable yang tidak memiliki penurunan yang akan menghasilkan terminal-
terminal seluruhnya, Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol
awal, sehingga produk itu redudan (berlebih).

Contoh :
Terdapat aturan produksi sebagai berikut :
S  aBD
B  cD | Ab
D  ef
A  Ed
F dc

Analisa :
1)      Pada aturan produksi A  Ed, E tidak memiliki penurunan. sehingga dapat dihilangkan
2)      Aturan produksi F  dc, redudan. sehingga aturan produksi tersebut dapat dihilangkan
Sisa aturan produksi yang telah disederhanakan adalah sebagai berikut :
S  aBD
B  cD | Ab
D  ef

Analisa kembali :
aturan produksi B  Ab, A tidak memiliki penurunan. sehingga didapat penyederhanaan lagi menjadi
S  aBD
B cD
D  ef
Kesimpulannya adalah bahwa produk useless yang dihilangkan adalah :
A> Ed
F  dc
B Ab

2. Menghilangkan Produksi Unit


Produksi Unit adalah produksi dimana ruas kiri dan kanan aturan produksi hanya berupa satu
simbol variabel. Contoh : A  B, C  D
keberadaan produksi unit ini membuat tata bahasa memiliki kerumitan yang tak perlu. untuk
menyederhanakan produksi unit, dilakukan penggantian aturan produksi unit tersebut.

Contoh :
Diberikan aturan produksi sebagai berikut :
SA
S  Aa
AB
B C
Bb
CD
C  ab
Db
Lakukan penggantian berurutan mulai dari aturan produksi yang paling dekat menuju ke penurunan
terminal-terminal (" " dibaca "menjadi")
CDCb
B  C  B  b | ab,
karena B  b sudah ada maka cukup dituliskan B  ab
A  B  A  ab | b
S  A  S  ab | b
sehingga aturan produksi yang telah disederhanakan dengan menghilangkan produksi unit adalah sebagai
berikut :
S  ab | b
S  Aa
A  ab | b
B ab
Bb
Cb
C  ab
Db

3. Menghilangkan Produksi ε
Produksi ε adalah produksi dalam bentuk α -> ε atau bisa dianggap sebagai produksi kosong
(empty). penghilangan produksi ε dilakukan dengan melakukan penggantian produksi yang memuat
variable yang bisa menuju produksi ε, atau disebut Nullable.
Contoh :
Terdapat CFG sebagai berikut :
S  aB | Cd
Ad
Cε

Variable yang nullable adalah variable C, karena penurunan C -> ε merupakan penurunan
satu2nya dari C. maka qita ganti S -> Cd menjadi S -> d. kemudian produksi C -> ε kita hapus.
Hasil penyederhanaannya adalah :
S  aB | d
Ad

Dalam prakteknya ketiga penyederhanaan tersebut dilakukan bersama pada suatu tata bahasa
bebas konteks, yang nantinya menyiapkan tata bahasa bebas konteks tersebut untuk diubah kedalam suatu
bentuk normal Chomsky (CNF).
Urutan dari penyederhanaan aturan produksi bebas konteks adalah sebagai berikut :
d. Hilangkan produksi ε
e. Hilangkan produksi unit
f. Hilangkan produksi useless
CONTEXT-FREE GRAMMAR (CFG) DAN PARSING
Context Free Grammar ( CFG ) menjadi dasar dalam pembentukan suatu parser/proses analisis
sintaksis. Bagian sintaks dalam suatu kompilator kebanyakan di definisikan dalam tata bahasa bebas
konteks. Pohon penurunan ( derivation tree/parse tree) berguna untuk menggambarkan simbol-simbol
variabel menjadi simbol-simbol terminal setiap simbol variabel akan di turunkan menjadi terminal sampai
tidak ada yang belum tergantikan.

Bentuk umum produksi CFG adalah : , V, (VV)*


Contoh, terdapat CFG dengan aturan produksi sebagai berikut dengan simbol awal S :
S → AB
A → aA | a
B → bB | b
Maka jika ingin dicari gambar pohon penurunan dengan string : ‘aabbb’ hasilnya adalah seperti di bawah:

Context Free Grammar (CFG) - Parse Tree


Proses penurunan / parsing bisa dilakukan dengan cara sebagai berikut :
g. Penurunan terkiri (leftmost derivation): simbol variabel terkiri yang di perluas terlebih dahulu.
h. Penurunan terkanan ( rightmost derivation ) : simbol variabel terkanan yang diperluas terlebih
dahulu.

Misal : Grammar sbb :


S → aAS | a
A → SbA | ba

Untuk memperoleh string ‘aabbaa’ dari grammar  diatas dilakukan dengan cara :
i. Penurunan terkiri: S => aAS => aSbAS => aabAS => aabbaS => aabbaa
j. Penurunan terkanan : S => aAS => aAa => aSbAa => aAbbaa => aabbaa

Analisis sintaks : Penelusuran sebuah kalimat (sentensial) sampai pada simbol awal grammar. Analisis
sintaks dapat dilakukan melalui derivasi atau parsing. Penelusuran melalui parsing menghasilkan pohon
sintaks.

Contoh:
Diketahui grammar G = {I HI HIA, H abc...z, A 012...9} dengan I adalah simbol
awal.Berikut ini kedua cara analisa sintaks untuk kalimat x23b .
Cara 1 (derivasi):
IH I
IAH
IAAH I H
HAAH
xAAH I A b
x2AH
x23H I A 3
x23b

Cara 2 (parsing)
I
IH
|
IAb
|
IA3
||
H2
|
X

Ambiguitas
Ambiguitas terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda untuk memperoleh suatu
string. Misalkan terdapat tata bahasa sebagai berikut :
S→A|B
A→a
B→a
Untuk memperoleh untai ‘a’ bisa terdapat dua cara penurunan sebagai berikut :
 S => A => a
 S => B => a
Contoh ambiguitas lain:
Diketahui grammar G = {S → SOS|A ,  O → *|+,   A → 0|1|2|…|9}
String : 2*3+7 mempunyai dua pohon sintaks berikut  :

      

Sebuah string yang mempunyai lebih dari satu pohon sintaks disebut string ambigu (ambiguous).
Grammar yang menghasilkan paling sedikit sebuah string ambigu disebut grammar ambigu.

Metoda Parsing
Ada 2 metoda parsing : top-down dan bottom-up.
 Parsing top-down :
Parsing dimulai dari simbol awal S sampai kalimat x
 Parsing bottom-up :
Parsing dimulai dari kalimat x sampai simbol awal S

Parsing Top-down
Ada 2 kelas metoda parsing top-down :
1. kelas metoda dengan backup,
Contoh: metoda Brute-Force
2. kelas metoda tanpa backup
Contoh: metoda recursive descent.

Metoda Brute-Force
Kelas metoda dengan backup, termasuk metoda Brute-Force, adalah kelas metoda parsing yang
menggunakan produksi alternatif, jika ada, ketika hasil penggunaan sebuah produksi tidak sesuai dengan
simbol input. Penggunaan produksi sesuai dengan nomor urut produksi.
Metoda Recursive-Descent Kelas metoda tanpa backup, termasuk metoda recursive descent,
adalah kelas metoda parsing yang tidak menggunakan produksi alternatif ketika hasil akibat penggunaan
sebuah produksi tidak sesuai dengan simbol input. Jika produksi A mempunyai dua buah ruas kanan atau
lebih maka produksi yang dipilih untuk digunakan adalah produksi dengan simbol pertama ruas kanannya
sama dengan input yang sedang dibaca. Jika tidak ada produksi yang demikian maka dikatakan bahwa
parsing tidak dapat dilakukan.
Ketentuan produksi yang digunakan metoda recursive descent adalah : Jika terdapat dua atau
lebih produksi dengan ruas kiri yang sama maka karakter pertama dari semua ruas kanan produksi
tersebut tidak boleh sama. Ketentuan ini tidak melarang adanya produksi yang bersifat rekursi kiri.

Metoda Recursive-Descent
Kelas metoda tanpa backup, termasuk metoda recursive descent, adalah kelas metoda parsing
yang tidak menggunakan produksi alternatif ketika hasil akibat penggunaan sebuah produksi tidak sesuai
dengan simbol input. Jika produksi A mempunyai dua buah ruas kanan atau lebih maka produksi yang
dipilih untuk digunakan adalah produksi dengan simbol pertama ruas kanannya sama dengan input yang
sedang dibaca. Jika tidak ada produksi yang demikian maka dikatakan bahwa parsing tidak dapat
dilakukan.
Ketentuan produksi yang digunakan metoda recursive descent adalah : Jika terdapat dua atau
lebih produksi dengan ruas kiri yang sama maka karakter pertama dari semua ruas kanan produksi
tersebut tidak boleh sama. Ketentuan ini tidak melarang adanya produksi yang bersifat rekursi kiri.

Parsing Bottom-Up
Salah satunya adalah grammar preseden sederhana (GPS).
Pengertian Dasar
k. Jika a dan x keduanya diderivasi dari simbol awal grammar tertentu, maka a disebut sentensial
jika a Î (V½ V)*, dan x disebut kalimat jika x Î (V)*
l. Misalkan a = Q1b Q2 adalah sentensial dan A Î VN :
- b adalah frase dari sentensial a jika : S Þ ¼ Þ Q1 a Q2 dan a Þ ¼ Þ b
- b adalah simple frase dari sentensial a jika : S Þ ¼ Þ Q1 a Q2 dan a Þ b
- Simple frase terkiri dinamakan handel
- frase, simple frase, dan handel adalah string dengan panjang ≥ 0
Contoh:
(1) I ⇒ I H Hb adalah sentensial dan b adalah simple frase
⇒ H H (dibandingkan dengan Q1 β Q 2 maka Q1 = H, β = b, dan Q2 = ε)
⇒ H b Perhatikan : simple frase (b) adalah yang terakhir diturunkan
(2) I ⇒ I H Hb adalah sentensial dan H adalah simple frase
⇒ I b (dibandingkan dengan Q 1 β Q 2 maka Q1 = ε, β = H, dan Q 2 = b)
⇒ H b Perhatikan : simple frase (H) adalah yang terakhir diturunkan
Sentensial Hb mempunyai dua simple frase (b dan H), sedangkan handelnya adalah H.
SUMBER
- https://id.wikipedia.org/wiki/Mesin_Turing
- https://nurmnabil27.wordpress.com/2013/06/07/mesin-turing/
- http://tjerdastangkas.blogspot.co.id/2012/09/kuliah-bahasa-pemrograman-komputasi-
dan.html
- http://gunadarmakalimalang.blogspot.co.id/2012/05/mesin-turing.html
- http://dokumen.tips/download/link/makalah-mesin-turing
- http://techno-inmyworld.blogspot.co.id/2014/06/mesin-turing-cara-kerja-mesin-turing.html
- http://informatika.stei.itb.ac.id/~rinaldi.munir/TeoriKomputasi/2014-2015/Makalah2014/
Makalah-IF5110-2014-05.pdf
- https://fairuzelsaid.wordpress.com/2011/06/16/tbo-context-free-grammar-cfg/
- http://al-poenya.blogspot.co.id/2012/05/makalah-penyederhanaan-tata-bahasa.html
- https://umam271089.wordpress.com/2011/01/01/cfg-context-free-grammar/

Anda mungkin juga menyukai