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.
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.
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.
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;
- 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;
Anggap d(q, Xi) = (p, Y, R), yaitu pergerakan selanjutnya adalah ke kanan. Maka
- 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
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)
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.
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.
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.
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 à α| β| γ.
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/
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
Contoh :
Diberikan aturan produksi sebagai berikut :
SA
S Aa
AB
B C
Bb
CD
C ab
Db
Lakukan penggantian berurutan mulai dari aturan produksi yang paling dekat menuju ke penurunan
terminal-terminal (" " dibaca "menjadi")
CDCb
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
Bb
Cb
C ab
Db
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
Ad
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
Ad
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.
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 HI HIA, H abc...z, A 012...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/