RSS

Operator ann Arithmetic in Prolog (Resume)

Operators

• Sampai sekarang notasi digunakan sebagai predikat dan standart nama predikat diikuti oleh beberapa argumen dalam tanda kurung. Contoh : likes(john,mary).
• Sebagai alternatif, banyak pengguna yang mendefiisikan predikat dengan dua argumen (binary predicate) yang dapat dikonversikan ke dalam infix operator. Nama predikat ditulis diantara dua argumen tanpa tanda kurung. Contoh : john likes mary
• Beberapa pengguna mendsefinisikan predikat dengan sebuah argumen yang dapat dikonversikan kedalam prefix operator. Nama predikat ditulis sebelum argumen tanpa tanda kurung.
Contoh : isa_dog fred
Sebagai pengganti
isa_dog (fred)
• Sebagai alternatif , unary predicate dapat dikonversikan kedalam postfix operator. Nama predikat ditulis setelah argumen. Contoh : fred isa_dog
• Notasi operator dapat digunakan dengan peraturan untuk membantu memudahkan membaca. Beberapa peraturannya adalah :
o likes(john,X):-is_female(X),owns(X,Y),isa_cat(Y).
Lebih mudah dibaca jika ditulis :
john likes X:- X is_female, X owns Y, Y isa_cat.
• Standart notasi nama predikat dan argumen dalam kurung, seprti likes(john,X) dapat digunakan dengan operator jika lebih disukai.
• Perpaduan notasi juga diizinkan
Contoh : jika likes/2, is_female/1, owns/2 and isa_cat/1 semuanya adalah operator
Maka likes(john,X):-is_female(X),X owns Y,isa_cat(Y)adalah bentuk yang valid dari peraturan yang sebelumnya.
• Beberapa pengguna mendefinisiakan predikat dengan satu atau dua argumen yang dapat dikonversikan kedalam operator dengan menggunakan predikat op pada sistem prompt. Predikat ini memerlukan tiga argumen.
Contoh : ?-op(150,xfy,likes).
o Argumen pertama adalah ‘operator precedence’, yaitu integer mulai 0 keatas.
 Jarak angka yang digunakan tergantung implementasi khusus.Lebih rendah dari angka, lebih tinggi dari precedece.
 Operator precedence value digunakan untuk menentukan operator yang akan digunakan ketika lebih dari satu digunakan dalam sebuah istilah.
 Yang paling penting digunakan adalah operator untuk aritmatika.
o Argumen kedua merupakan argumen yang biasa digunakan dari ketiga argumen, yaitu:
 xfy => predikat binary dan dikonversikan ke infix operator
 fy => predikat unary dan dikonversikan ke prefix operator
 xf => predikat unary dan dikonversiakan ke postfix operator
o Argumen ketiga merupakan spesifikasi nama dari predikat yang dikonversikan kedalam operator.

• Predikat dapat juga dikonversikan kedalam operator dengan mengubah seperti:
o ?-op(150,xfy,likes).
• Dalam program prolog file akan diproses menggunakan consult atau reconsult. Prompt (karakter ?-) harus ada. Directive harus ditempatkan di file sebelum clausa pertama yaitu operator likes.
• Beberapa pembangun predikat telah didefinisikan sebagai operator, seperti : relational operator untuk membandingkan data numeric, yaitu <‘kurang dari’ dan > ‘lebih dari’.
Contoh : X>4
Y(X,4)sebagai pengganti X>4

Arithmetic

• Penggunaan predikat is/2 yang didefinisikan sebagai infix operator dan ditulis diantara dua argumen. Penggunaan yang umum adalah argumen pertama merupakan bound variabel.
Contoh : X is -6.5
 X adalah bound angka -6.5
• Argumen kedua dapat berupa angka atau tanda aritmatik.
Contoh : X is 6*Y+Z-3.2+P-Q/4
 Eksekusi akan berhasil dan variabel yang membentuk argumen pertama akan menjadi bound dari hasil operasi aritmatika. Jika tidak akan terjadi error.
• ?- X is 10.5+4.7*2.
X = 19.9
?- Y is 10,Z is Y+1.
Y = 10 ,
Z = 11
o Simbol-simbol seperti + - * / dalam operasi aritmatika termasuk infix operator yang diketahui sebagai operator aritmatika. Namun mereka bukan operator tetapi fungsi yang menghasikan data numerik.
• Angka, variabel dan operator, operasi aritmatika dapat tergolong fungsi aritmatik, yang ditulis dengan argumen di dalam tanda kurung (tidak sebagai operator).
Contoh : untuk mencari akar dari 36 =>
?-X is sqrt(36).
X = 6
• Operator aritmatika tidak hanya dapat digunakan sebagai binary infix operator untuk mendeskripsikan selisih dari dua data numerik (X-6), tetapi juga sebagai unary prefix operator untuk mendeskirpsikan bentuk negatif dari data numerik.
Contoh : -X is 10, Y is –X-2.
X = 10, Y = -12
• Operator aritmatik dan fungsi aritmatik
X+Y the sum of X and Y
X-Y the difference of X and Y
X*Y the product of X and Y
X/Y the quotient of X and Y
X//Y the 'integer quotient' of X and Y (the result is truncated to the
nearest integer between it and zero)
X^Y X to the power of Y
-X the negative of X
abs(X) the absolute value of X
sin(X) the sine of X (for X measured in degrees)
cos(X) the cosine of X (for X measured in degrees)
max(X,Y) the larger of X and Y
sqrt(X) the square root of X
Contoh :

?- X is 30,Y is 5,Z is X+Y+X*Y+sin(X).
X = 30 ,
Y = 5 ,
Z = 185.5
o Meskipun predikat is biasa digunakan dalam pendeskripsian, argumen pertama juga dapat berupa angka atau variabel bound dengan nilai numerik. Sehingga nilai numerik dari dua argumen terhitung. Program akan berhasil jika sama dan gagal jika tidak sama.
Contoh : ?- X is 7,X is 6+1.
X = 7
?- 10 is 7+13-11+9.
no
?- 18 is 7+13-11+9.
yes


Unification

The previous description can be simplified by saying that the second argument of
the is/2 operator is evaluated and this value is then unified with the first argument.
This illustrates the flexibility of the concept of unification.
(a) Jika argumen pertama unbound variabel, maka merupakan bound nilai dari argumen kedua dan tujuan berhasil.
(b) Jika argumen pertama angka, atau variabel bound dengan nilai numerik akan dibandingkan dengan nilai argumen kedua. Jika sama, maka berhasil dan jika tidak akan gagal.

X is X+1 maka akan selalu gagal, jika X bukan bound.
?-X is 10,X is X+1
No
• Untuk meningkatkan hasil diperlukan perbedaan approach
/* Incorrect version */
increase(N):-N is N+1.
?- increase(4).
no
/*Correct version */
increase(N,M):-M is N+1.
?- increase(4,X).
X = 5


Operator Precedence in Arithmetic Expressions
• Jika ada lebih dari satu operator dalam operasi aritmatika
Contoh : A+B*C-D
o Pertama mengeksekusi B dan C
o Derajad kepentingannya : * dan /, + dan –
o Jika ada tanda kurung maka didahulukan

Relational Operators
• Merupakan infix operator, yaitu =:= =\= >>= < =< • Untuk membandingkan nilai dua operasi aritmatik • Akan berhasil jika nilai dari operasi pertama sama, kirang dari atau kurang dari dan sama dengan operasi kedua. • Kedua argumen haarus angka, variabel bound atau operasi aritmatik. Contoh : ?- 88+15-3=:=110-5*2. yes ?- 100=\=99. Yes

Equality operators

Ada 3 tipe operasi relasi untuk menidentifikasi persamaan dan pertidaksamaan yg sesuia dengan prlog. Tpe pertama membandingkan nilai aritmetika
E1=:=E2 succeeds if the arithmetic expressions E1 and E2 evaluate to the same
value.

Contoh
?- 6+4=:=6*3-8.
yes
?- sqrt(36)+4=:=5*11-45.
Yes
Arithmetic Expression Inequality =\=
E1=\=E2 succeeds if the arithmetic expressions E1 and E2 do not evaluate to the
same value
?- 10=\=8+3.
yes

Operasi logika

Menghubungkan 2 operator yang disebut goal.
-operator not
Menandakan negasi dari goal tersebut.
Goal yang telah dinegasi akan sukses jika goal asli gagal dan gagal jika goal asli sukses.
Contoh dengan klausa tunggal
?- not dog(fido).
no
?- dog(fred).
no
?- not dog(fred).
yes

-operator disjungsi( ;/2)
Untuk menerangkan operator infix yang mengambil 2 argument, dan keduanya merupakan goal.
Goal 1;goal2 sukses jika keduanya goal 1 atau goal 2 sukses.
Contoh :
?- 6<3;7 is 5+2.
yes

Fact, Rules, Predicate, and Variable in Prolog

Number 1

Pertama-tama, kita membuka Notepad dan menuliskan entri sebagai berikut :

animal(mammal,tiger,carnivore,stripes). animal(mammal,hyena,carnivore,ugly). animal(mammal,lion,carnivore,mane). animal(mammal,zebra,herbivore,stripes). animal(bird,eagle,carnivore,large). animal(bird,sparrow,scavenger,small). animal(reptile,snake,carnivore,long). animal(reptile,lizard,scavenger,small). mammals(B):-animal(mammal,B,C,D). carnivore_mammal(B):-animal(mammal,B,carnivore,D). mammals_stripes(B):-animal(mammal,B,C,stripes). reptile_mane(B):-animal(reptile,B,C,mane).


Kemudian, save dengan nama dengan nama animal_exercise.pl

Buka program SWI-Prolog .

Memunculkan semua hewan yang mammals, maka ketikkan

?- mammals(X).

Klik File, kemudian klik Consult dan buka file animal_exercise.pl
Lalu klik Open

Lalu, Enter dan untuk memunculkan semua hasil otuputnya dengan ketik ; hingga mucul pernyataan No
Berarti, output selesai, hasil seperti gambar dibawah ini.


Memunculkan semua hewan yang
carnivore dan mammals, maka ketikkan

?- carnivore_mammals(X).

Karena, kita masih menggunakan nama file yang sama maka tidak perlu Consult lagi, langsung
tekan Enter dan untuk memunculkan semua hasil otuputnya dengan ketik ; hingga mucul pernyataan No

Berarti, output selesai, seprti gambar dibawah ini.


Memunculkan semua hewan yang mammals dan memiliki stripes, maka ketikkan

?- mammals_stripes(X).

Karena, kita masih menggunakan nama file yang sama maka tidak perlu Consult lagi, langsung
tekan Enter dan untuk memunculkan semua hasil otuputnya dengan ketik ; hingga mucul pernyataan No

Berarti, output selesai, seprti gambar dibawah ini.




Memunculkan semua hewan yang reptile dan memiliki mane, maka ketikkan

?- reptile_mane(X).

Karena, kita masih menggunakan nama file yang sama maka tidak perlu Consult lagi, langsung
tekan Enter dan langsung mucul pernyataan No
Hal ini dikarenakan, output yang diminta tidak ditemukan yang sesuai persyaratan yang diminta.

Berarti, output selesai, seprti gambar dibawah ini.


Number 2

Pertama-tama kita membuka notepad dan menuliskan entri sebagai berikut :


person(bill,male).
person(george,male).
person(alfred,male).
person(carol,female).
person(margaret,female).
person(jane,female).

man(A):-person(A,male).
woman(A):-person(A,female).
couple(X,Y):-
man(X),woman(Y),
write(X),write(' is a couple with '),write(Y),nl.

go:-couple(X,Y).

Kemudian, save dengan nama dengan nama exercise2.pl

Buka program SWI-Prolog . Dan ketikkan

?- couple(X,Y).

Klik File, kemudian klik Consult dan buka file exercise2.pl
Lalu klik Open

Lalu, Enter

Kemudian, akan mucul hasil seperti gamabr dibawah ini.



Bila kita mengetik ; maka hasil output akan berulang terus hingga selesai dan muncul No



Definisi Rule Based Expert System

Representasi Pengetahuan dengan Rules (aturan) sering disebut juga dengan Sistem Produksi

Suatu Rule Terdiri dari 2 bagian, yaitu:
> Antacedent, yaitu bagian yang mengekspresikan situasi atau premis (Pernyataan berawalan IF)
> Konsekuen, yaitu bagian yang menyatakan suatu tindakan tertentu atau konklusi yang diterapkan jika situasi atau premis bernilai benar (Pernyataan berawalan THEN).

Misalnya:
IF lalulintas pagi ini macet
THEN saya naik sepeda motor saja

Definisi Expert System

DEFINISI SISTEM PAKAR (EXPERT SYSTEM)
Sebuah program komputer yang dirancang untuk memodelkan
kemampuan menyelesaikan masalah seperti layaknya seorang pakar
(human expert).

PEMINDAHAN KEPAKARAN
Tujuan dari sebuah sistem pakar adalah untuk mentransfer kepakaran yang
dimiliki seorang pakar kedalam komputer, dan kemudian kepada orang lain
(nonexpert).
Aktifitas yang dilakukan untuk memindahkan kepakaran:
1. Knowledge Acquisition (dari pakar atau sumber lainnya)
2. Knowledge Representation (ke dalam komputer)
3. Knowledge Inferencing
4. Knowledge Transfer

A. STRUKTUR DASAR EXPERT SYSTEM


KNOWLEDGE BASE
· Definisi : Bagian dari sistem pakar yang berisi domain pengetahuan
· Berisi pengetahuan yang dibutuhkan untuk memahami, merumuskan dan menyelesaikan masalah.
· Terdiri dari 2 elemen dasar: (1) Fakta, situasi masalah dan teori yang terkait, (2) Heuristik khus us atau rules, yang langsung menggunakan pengetahuan untuk menyelesaikan masalah khusus.

WORKING MEMORY
· Definisi : bagian dari sistem pakar yang berisi fakta-fakta masalah yang ditemukan dalam suatu sesi
· Berisi fakta-fakta tentang suatu masalah yang ditemukan dalam proses konsultasi
INFERENCE ENGINE
· Definisi : Processor pada sistem pakar yang mencocokan fakta-fakta yang ada pada working memori dengan domain pengetahuan yang terdapat pada knowledge base, untuk menarik kesimpulan dari masalah yang dihadapi.
· Proses berpikir pada manusia dimodelkan dalam sistem pakar pada modul yang disebut Inference Engine.

B. STRUKTUR DETAIL SISTEM PAKAR

Terdiri atas 2 bagian :
· Development Environment (Lingkungan Pengembangan)
· Consultation Environment (Lingkungan Konsultasi)

Bagian-bagian yang secara umum ada pada struktur detail sistem pakar
· Knowledge Aqcuisision System
· Knowledge Base
· Inference engine
· User Interface
· User
· Workplace (Blackboard)
· Explanation Subsystem
· Knowledge refining system

KNOWLEDGE AQCUISISTION
Meliputi proses pengumpulan, pemindahan, dan perubahan dari kemampuan pemecahan masalah seorang pakar atau sumber pengetahuan terdokumentasi (buku, dll) ke program komputer, yang bertujuan untuk memperbaiki dan atau mengembangkan basis
pengetahuan (knowledge-base)

KNOWLEDGE ENGINEERING
Definisi : Proses pengembangan suatu sistem pakar
Orang yang mengembangkan suatu sistem pakar disebut: Knowledge


Engineer
Fase pengembangan sistem pakar
1. Assessment
2. Knowledge Aqcuisition
3. Design
4. Test
5. Documentation
6. Maintenance

3 Pemain utama dalam suatu proyek sistem pakar adalah:
- Domain Expert
- Knowledge engineer
- End

Domain expert
Definisi : orang yang memiliki ketrampilan ( skill) dan pengetahuan (knowledge) untuk menyelesaikan masalah khusus dengan cara-cara yang superior dibanding orang kebanyakan.
-Memiliki pengetahuan kepakaran
- Memiliki ketrampilan problem-solving yang efisien
- Dapat mengkomunikasikan pengetahuan
- Dapat menyediakan waktu
- Dapat bekerja sama

Knowledge Engineer
Definisi : orang yang melakukan proses disain, mengembangkan dan menguji suatu sistem pakar
- Memiliki ketrampilan rekayasa pengetahuan (knowledge engineering)
- Memiliki ketrampilan komunikasi yang baik
- Dapat menyesuaikan masalah kepada software
- Memiliki ketrampilan pemrograman sistem pakar

End-User
- Dapat membantu mendefinisikan spesifikasi interface
- Dapat membantu proses akuisisi pengetahuan
- Dapat membantu proses pengembangan sistem

Prolog

This document can't be applied in my blog
So, my group post this in here(4shared.com) or here(mediafire.com)

We're really sorry Mr. Mukhlason
Thank You

Biografi Anggota Kelompok

Rabitha Rahmawati

Full Name : Rabitha Rahmawati
NRP : 5209100132
Nickname : Rabitha
Place, Birth Day : Jakarta, 26 May 1991
From : Bekasi
Address : ITS Doem J-208, Surabaya
E-Mail : anime26_fav@yahoo.co.id
Favorite Teacher : -
Education : -
- Information System, ITS 2009
Hobies : Reading, Watching anime, Playing Computer

You can visit my Facebook