Lihat Contoh :
Nah kemudian aku menemukan satu jurus nih .. kalian silahkan unduh di sini ...
FITUR - FITURNYA
Widget ini memiliki banyak kustomisasi dan Anda dapat:
And on the next page, please customize you widget, and once you finish please click Save
Perbedaan Prolog dengan Bahasa Lainnya :
a. Bahasa Pemrograman yang Umum (Basic, Pascal, C, Fortran):
-Diperlukan algoritma/prosedur untuk memecahkan masalah (procedural languange)
-Program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang berbeda-beda.
-Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan sesuai dengan prosedur yang telah dibuat.
b. Bahasa Pemrograman Prolog :
-Object oriented languange atau declarative languange.
-Tidak terdapat prosedur, tetapi hanya kumpulan data-data objek (fakta) yang akan diolah, dan relasi antar objek tersebut membentuk aturan yang diperlukan untuk mencari suatu jawaban
-Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
-Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan relasinya.
-Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.
-Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang masalah menuju suatu tujuan (jawaban tertentu).
- Contoh : Pembuatan program catur dengan Prolog
Aplikasi Prolog :
* Sistem Pakar (Expert System)
Program menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya seorang ahli.
Contoh dalam mendiagnosa penyakit
* Pengolahan Bahasa Alami (Natural Languange Processing)
Program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia sehari-hari, layaknya penterjemah.
* Robotik
Prolog digunakan untuk mengolah data masukanyang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan.
* Pengenalan Pola (Pattern Recognition)
Banyak digunakan dalam image processing, dimana komputer dapat membedakan suatu objek dengan objek yang lain.
* Belajar (Learning)
Program belajar dari kesalahan yang pernah dilakukan, dari pengamatan atau dari hal-hal yang pernah diminta untuk dilakukan.
Fakta dan Relasi
* Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta.
* Fakta dibedakan 2 macam :
- Menunjukkan relasi.
- Menunjukkan milik/sifat.
* Penulisannya diakhiri dengan tanda titik “.”
- Contoh :
Fakta | Prolog |
Slamet adalah ayah Amin | ayah (slamet, amin). |
Anita adalah seorang wanita | wanita (anita). |
Angga suka renang dan tenis | suka(angga, renang). dan suka(angga,tenis). |
Jeruk berwarna jingga | jngga(jeruk). |
Aturan (“Rules”)
- Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan.
- Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat.
- Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau disimbolkan dengan “:-”.
- Contoh :
Fakta dan Aturan | Prolog |
F : Tino suka apel A : Yuli suka sesuatu yang disukai Tino | suka(tino, apel). suka(yuli,Sesuatu) :- suka(tino,Sesuatu). |
- Aturan memiliki sifat
- Setiap aturan terdiri dari kesimpulan(kepala) dan tubuh.
- Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan dihubungkan dengan logika “and“.
then/if conditional
“Kepala(head) benar jika tubuh (body) benar”.
- Contoh : Silsilah keluarga :
aturan terdiri dari kesimpulan(kepala) dan tubuh.
- Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan dihubungkan dengan logika “and”.
then/if conditional
“Kepala(head) benar jika tubuh (body) benar”.
- Contoh : Silsilah keluarga :
Fakta dan Aturan | Prolog |
F : Slamet adalah ayah dari Amin F : Amin adalah ayah dari Badu F : Slamet adalah kakek dari Badu A : Slamet adalah benar kakek Badu jika Slamet adalah benar ayah Amin dan Amin adalah benar ayah Badu. | ayah(slamet,amin). ayah(amin,badu). kakek(slamet,badu). kakek(slamet,amin) :- ayah(slamet,amin) and ayah(amin,badu). |
F : Amin adalah saudara kandung Anang F : Amin mempunyai ayah Slamet F: Anang mempunyai ayah Slamet. A : Amin adalah benar saudara kandung Anang, jika Amin mempunyai ayah Slamet dan Anang juga mempunyai ayah Slamet. | saudara_kandung(amin,anang). ayah(slamet,amin). ayah(slamet,anang). saudara_kandung(amin,anang) :- ayah(slamet,amin) and ayah(slamet,anang). |
Pertanyaan (“Query”)
- Setelah memberikan data-data berupa fakta dan aturan, selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang ada.
- Penulisannya diawali simbol “?-” dan diakhiri tanda “.“.
- Contoh :
Pertanyaan | Prolog dan Jawaban Program |
Apakah Tini suka boneka ? | ?- suka(tini,boneka). Yes ……. (jika faktanya Tini suka boneka) No………..(jika tidak sesuai fakta). |
Apakah yang disukai Tini ? | ?- suka(tini,Apa). Apa=boneka |
Siapakah yang suka boneka ? | ?- suka(Siapa,boneka). Siapa=tini |
Dari contoh silsilah keluarga di atas : Siapakah kakek Budi ? Siapakah cucu Slamet ? | ?- kakek(Siapa,budi). Siapa=slamet ?- kakek(slamet,Cucu). Cucu=budi ; Cucu=badu (jika kemungkinan ada lebih dari satu jawaban gunakan tanda “;” pada akhir setiap jawaban). |
Predikat (“Predicate”)
- Predikat adalah nama simbolik untuk relasi.
- Contoh : ayah(slamet,amin).
Predikat dari fakta tersebut ditulis : ayah(simbol,simbol).
dimana ayah adalah nama predikat, sedangkan slamet dan amin adalah menujukkan argumen.
Sebuah predikat dapat tidak memiliki atau memiliki argumen dengan jumlah bebas. Jumlah argumen suatu predikat disebut aritas (arity).
ayah(nama) …… aritas-nya 1
ayah(nama1,nama2) ….. aritasnya 2
- Syarat-syarat penulisan nama predikat :
o Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
o Panjang nama predikat maksimum 250 karakter.
o Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.
Variabel
- Varibel adalah besaran yang nilainya dapat berubah-ubah.
- Tata cara penulisan variabel :
1. Nama varibel harus diawali huruf besar atau garis bawah(_)
2. Nama variabel dapat terdiri dari huruf, bilangan, atau simbol dan merupakan kesatuan dengan panjang maksimum 250 karakter.
3. Nama variabel hendaknya mengandung makna yang berkaitan dengan data yang dinyatakannya.
- Contoh : dari silsilah di atas :
?- ayah(slamet,Anak).
Anak=budi ;
Anak=badu
No
Dari query di atas akan dicari siapakah anak dari ayah yang bernama Slamet. Karena mempunyai relasi yang sama (yaitu ayah), variabel Anak akan mencari nilai dari konstanta suatu fakta/aturan yang sepadan.
Tanda “;” digunakan bila terdapat kemungkinan ada lebih dari satu jawaban.
“No” berarti tidak ada lagi kemungkinan jawaban.
Contoh : dari silsilah di atas :
?- ayah(slamet,X),ayah(X,Y).
X=amin
Y=budi ;
X=amin
Y=badu ;
X=anang
Y=didi ;
X=anang
Y=didi
No
Contoh : Silsilah Keluarga
%% FAKTA */
%%orang tua */
ayah(slamet,amin).
ayah(slamet,anang).
ayah(amin,budi).
ayah(amin,badu).
ayah(anang,didi).
ayah(anang,dadi).
ayah(santoso,bu_amin).
ayah(supardi,bu_anang).
ibu(bu_slamet,amin).
ibu(bu_slamet,anang).
ibu(bu_amin,budi).
ibu(bu_amin,badu).
ibu(bu_anang,didi).
ibu(bu_anang,dadi).
ibu(bu_santoso,bu_amin).
ibu(bu_santoso,bu_anang).
/* ATURAN */
/*Kakek adalah kakek Cucu */
kakek(Kakek,Cucu) :-
ayah(Ayah,Cucu),
ayah(Kakek,Ayah).
kakek(Kakek,Cucu) :-
ibu(Ibu,Cucu),
ayah(Kakek,Ibu).
%% Nenek adalah nenek Cucu */
nenek(Nenek,Cucu) :-
ayah(Ayah,Cucu),
ibu(Nenek,Ayah).
nenek(Nenek,Cucu) :-
ibu(Ibu,Cucu),
ibu(Nenek,Ibu).
%% Nama1 adalah saudara kandung Nama2
saudara_kandung(Nama,Name) :-
ayah(Ayah,Nama),
ayah(Ayah,Name),
ibu(Ibu,Nama),
ibu(Ibu,Name),
Nama \= Name.
%% Sdr1 adalah saudara sepupu Sdr2
saudara_sepupu(Sdr1,Sdr2) :-
ayah(Ayah1,Sdr1),
ayah(Ayah2,Sdr2),
saudara_kandung(Ayah1,Ayah2).
saudara_sepupu(Sdr1,Sdr2) :-
ayah(Ayah,Sdr1),
ibu(Ibu,Sdr2),
saudara_kandung(Ayah,Ibu).
saudara_sepupu(Sdr1,Sdr2) :-
ibu(Ibu,Sdr1),
ayah(Ayah,Sdr2),
saudara_kandung(Ibu,Ayah).
saudara_sepupu(Sdr1,Sdr2) :-
ibu(Ibu1,Sdr1),
ibu(Ibu2,Sdr2),
saudara_kandung(Ibu1,Ibu2).
Download software installer prolog 2.0 klik disini
Query
Adalah perintah SQL yang dirancang untuk memnggil kelompok record tertentu dari 1 tabel atau lebih.
Bahasa Query mulai dikembangkan oleh IBM pada tahun 1970 yang hingga saat ini telah digunakan pada hampir semua produk DBMS (Database Management System) yaitu Structure Query Language yang dikenal dengan standar SQL.
contoh :
SELECT * FROM [TABLE] WHERE [KOLOM]=[KONDISI YANG INGIN DICARI]
atau
SELECT [NAMA JUDUL] FROM [TABLE] WHERE [KOLOM]=[KONDISI]
Materi yang dapat dipelajari, Download disini :
- Materi1.ppt
- Materi2.ppt
- Materi3.ppt
- Materi4.ppt
- Materi5.ppt
State sistem merupakan ringkasan informasi yang berkaitan dengan masukan-masukan sebelumnya yang diperlukan untuk menentukan perilaku sistem pada masukan-masukan berikutnya.
Finite Automata menggunakan prosedur yang saat diberikan masukan "string berhingga" akan berhenti
Finite Automata menyatakan "ya" dengan sejumlah berhingga komputasi jika string tersebut merupakan elemen bahasa sehingga lebih berfokus pada pengenalan dimana bila diberikan suatu program (string) akan menyatakan apakah string tersebut termasuk di bahasa atau tidak.
Model Finite Automata
Model Finite Automata memiliki ciri-ciri:
- Memori 'infinite'-nya adalah null (tidak ada memori sementara).
- head hanya bergerak 1 arah.
- Hanya berisi memori masukan berupa tape berisi string masukan dan sejumlah kendali berhingga.
Properti Finite Automata
Finite Automata memiliki:
- 1 himpunan state kendali berhingga
- Simbol-simbol masukan yang dibolehkan/diijinkan
- State mula (initial state)
- Himpunan state akhir (set of final states)
State-state yang menandai diterimanya masukan.
- Fungsi transisi state (state transition function)
Adanya fungsi yang memberikan state saat itu (current state) dan simbol masukan saat itu (current input symbol). Selain itu juga fungsi memberikan/menyatakan semua state berikutnya yang dimungkinkan.
Semua kemungkinan transisi dipandang dijalankan secara paralel. Bila terdapat transisi yang menuju/sampai state akhir, berarti string masukan diterima otomata.
Cara Kerja Finite Automata
Finite Automata bekerja dengan cara mesin membaca memori masukan berupa tape yaitu 1 karakter tiap saat (dari kiri ke kanan) menggunakan head baca yang dikendalikan oleh kotak kendali state berhingga dimana pada mesin terdapat sejumlah state berhingga.
Finite Automata selalu dalam kondisi yang disebut state awal (initial state) pada saat Finite Automata mulai membaca tape. Perubahan state terjadi pada mesin ketika sebuah karakter berikutnya dibaca.
Ketika head telah sampai pada akhir tape dan kondisi yang ditemui adalah state akhir, maka string yang terdapat pada tape dikatakan diterima Finite Automata (String-string merupakan milik bahasa bila diterima Finite Automata bahasa tersebut).
Implementasi Finite Automata
Sistem dengan state berhingga diterapkan pada:
- Sistem elevator
- Mesin pengeluar minuman kaleng (vending machine)
- Pengatur lampu lalu lintas (traffic light regulator)
- Sirkuit penyaklaran (switching) di komputer dan telekomunikasi
- Protokol komunikasi (communication protocol)
- Analisis Leksikal (Lexical analyzer)
- Neuron nets
- sistem Komputer
Finite State Diagram (FSD)
Perilaku Finite Automata dimodelkan dengan Finite State Diagram (FSD) dapat juga disebut State Transition Diagram.
Finite State Diagram terdiri dari:
1. Lingkaran menyatakan state
Lingkaran diberi label sesuai dengan nama state tersebut.
Adapun pembagian lingkaran adalah:
- Lingkaran bergaris tunggal berarti state sementara
- Lingkaran bergaris ganda berarti state akhir
2. Anak Panah menyatakan transisi yang terjadi
Label di anak panah menyatakan simbol yang membuat transisi dari 1 state ke state lain
1 anak panah diberi label start untuk menyatakan awal mula transisi dilakukan
Contoh :
Gambar dibawah menggambarkan perilaku FA untuk penerimaan bilangan nyata (riil) yang paling tidak mempunyai 1 digit setelah titik desimal adalah sebagai berikut:
Simpul-simpul (berbentuk lingkaran) pada FSD dibawah mengambarkan state-state dari FA, yaitu :
- Simpul S
- Simpul A
- Simpul B
Busur dari 1 simpul ke simpul lainn menandakan transisi state. Karakter samping atau diatas busur menandakan karakter yang menyebabkan terjadinya transisi state.
Simpul dengan garis ganda menunjukkan state akhir.
Digit adalah nilai 0,1,2,3,4,5,6,7,8,9
Gambar: FSD Bilangan Nyata Dengan Minimal Satu Angka di Belakang Titik Desimal
Contoh string : 9.8765
*Dasar-dasar teori bahasa dan automata
Teori bahasa dan automata merupakan salah satu komponen ilmu informatika, teori ini merupakan ide dan model fundamental yang mendasari sebuah system komputasi, teori ini juga bisa disebut sebagai sebuah teknik rekayasa untuk perancangan system komputasi.
Beberapa bidang ilmu lain yang mendukung pengembangan metode komputasi :
1. Biologi
Mempelajari jaringan neuron yang mengilhami ditemukanannya finite automata.
2. Rangkaian Elektronika
Mempelajari teori switching sebagai perancangan perangkat keras menggunakan finite automata.
3. Matematika
Mengembangkan system logika yang berguna untuk masalah pembuktian automata.
* Beberapa model komputasi dalam automata:
1. Finite automata (FA)
Sering juga disebut dengan Finite State Automata (FSA). Terdiri dari Deterministic Finite Automata (DFA) dan Non Deterministik Finite Automata (NDFA). Teori dasar dari FA sangat umum yaitu system pada saat berada di salahsatu state dari sejumlah state bergerak diantara state-state secara dapat diproduksi yang bergantung pada masukan ke system. Salah satu penerapannya adalah kompilasi/translasi bahasa pemograman tingkat tinggi menjadi bahasa mesin yang ekivalen. Finite automata merupakan jenis otomata yang tidak memiliki memori sementara, FA adalah kelas mesin dengan kemampuan paling terbatas.
2. Pushdown Automata (PA)
Terdiri dari Deterministic Pushdown Automata (DFA) dan Non Deterministik Pushdown Automata (NDFA). PA memiliki memori sementara dengan mekanisme stack LIFO (Last In First Out).
3. Turing Machine (TM).
Memiliki mekanisme Random Access Memory.
Dalam teori bahasa dan Automata digunakan model state (State Machine Model). atau biasa disebut model transisi (State Transition Model), pengembangan teori automata difasilitasi dengan perkembangan bidang Psycho Linguistik.
Teori bahasa dan automata merupakan salahsatu komponen ilmu informatika, teori ini merupakan ide dan model fundamental yang mendasari sebuah system komputasi, teori ini juga bisa disebut sebagai sebuah teknik rekayasa untuk perancangan system komputasi.
Beberapa bidang ilmu lain yang mendukung pengembangan metode komputasi :
1. Biologi
Mempelajari jaringan neuron yang mengilhami ditemukanannya finite automata.
2. Rangkaian Elektronika
Mempelajari teori switching sebagai perancangan perangkat keras menggunakan finite automata.
3. Matematika
Mengembangkan system logika yang berguna untuk masalah pembuktian automata.
Beberapa model komputasi dalam automata:
1. Finite automata (FA)
Sering juga disebut dengan Finite State Automata (FSA). Terdiri dari Deterministic Finite Automata (DFA) dan Non Deterministik Finite Automata (NDFA). Teori dasar dari FA sangat umum yaitu system pada saat berada di salahsatu state dari sejumlah state bergerak diantara state-state secara dapat diproduksi yang bergantung pada masukan ke system. Salah satu penerapannya adalah kompilasi/translasi bahasa pemograman tingkat tinggi menjadi bahasa mesin yang ekivalen. Finite automata merupakan jenis otomata yang tidak memiliki memori sementara, FA adalah kelas mesin dengan kemampuan paling terbatas.
2. Pushdown Automata (PA)
Terdiri dari Deterministic Pushdown Automata (DFA) dan Non Deterministik Pushdown Automata (NDFA). PA memiliki memori sementara dengan mekanisme stack LIFO (Last In First Out).
3. Turing Machine (TM).
Memiliki mekanisme Random Access Memory.
Dalam teori bahasa dan Automata digunakan model state (State Machine Model). atau biasa disebut model transisi (State Transition Model), pengembangan teori automata difasilitasi dengan perkembangan bidang Psycho Linguistik.
http://prayoga.wordpress.com/
Rizka Manarul Fuadah (060616) » Blog Archive » Teori Bahasa dan Automata (lihat di Google Wikipinggir)
Materi Automata dapat didownload disini:
- Materi1.pdf
- Materi2.pdf
- Materi3.pdf
- Materi4.pdf
- Materi5.pdf
- Materi6.pdf
- Materi7.pdf
- Materi8.pdf
- Materi9.ppt
- Materi10.ppt