Tuesday, December 22, 2009

Development of Our Simple Expert System

Below is the development of our simple expert system!!!
To see it, please click this FILE !!!

Wednesday, December 9, 2009

Looping in Prolog

Loops
Sebagian besar bahasa pemrograman mempunyai fasilitas looping. Akan tetapi, fasilitas ini tidak terdapat di prolog. Sebagai penggantinya, kita dapat menggunakan backtracking, rekursi, built-in predikat, atau mengkomninasikannya.

Looping a Fixed Number of Times
Dalam prolog tidak ada fasilitas ‘for loops’ sebagaimana bahasa pemrograman lain. Sebagai penggantinya, kita dapat menggunakan rekursi.
Contoh :
Program ini mengeluarkan bilangan bulat mulai dari angka yang dimasukkan hingga 1.
Notepad :
loop(0).
loop(N):-N>0,write('The value is: '),write(N),nl,
M is N-1,loop(M).

Prolog :
?- loop(6).
The value is: 6
The value is: 5
The value is: 4
The value is: 3
The value is: 2
The value is: 1
yes

Looping Until a Condition Is Satisfied

Dalam prolog tidak ada fasilitas ‘until loops’ sebagaimana bahasa pemrograman lain. Sebagai penggantinya, kita dapat menggunakan :
1. Rekursi
Contoh :
Notepad :
go:-loop(start). /* start is a dummy value used to get
the looping process started.*/
loop(end).
loop(X):-X\=end,write('Type end to end'),read(Word),
write('Input was '),write(Word),nl,loop(Word).

Prolog :
?- go.
Type end to end: university.
Input was university
Type end to end: of.
Input was of
Type end to end: portsmouth.
Input was portsmouth
Type end to end: end.
Input was end
Yes

2. ‘Repeat’ predikat
Contoh :
Notepad :
get_answer(Ans):-
write('Enter answer to question'),nl,
repeat,write('answer yes or no'),read(Ans),
valid(Ans),write('Answer is '),write(Ans),nl.
valid(yes). valid(no).

Prolog :
?- get_answer(X).
Enter answer to question
answer yes or no: unsure.
answer yes or no: possibly.
answer yes or no: no.
answer is no
X = no

Backtracking with Failure

Berikut adalah fungsi-fungsi backtracking dalam prolog.
1. Mencari database prolog
Contoh :
Notepad :
dog(fido).
dog(fred).
dog(jonathan).

alldogs:-dog(X),write(X),write(' is a dog'),nl,fail.
alldogs.

Prolog :
?-alldogs
fido is a dog
fred is a dog
jonathan is a dog
yes
2. Menemukan solusi ganda
Contoh :
find_all_routes(Town1,Town2):-
findroute(Town1,Town2,Route),
write('Possible route: '),write(Route),nl,fail.
find_all_routes(_,_).

Looping in Prolog

Below is tutorial to learn looping in prolog :
Please click this file
thank you :)