Selasa, 22 Desember 2009

FP REPORT

Akhirnya tugas matdis kelompok kami telah selesai...... Terima kasih pada P.Mukhlason telah membing kita semua sehingga dapat menyelasaikan tugas ini... Download file kami di bawah ini.

DOWNLOAD

Selasa, 15 Desember 2009

EXPERT SYSTEM DESIGN

Saat ini perkembangan teknologi sangat pesat sekali . Kita tidak update sebentar sudah ketinggalan banyak mengenai teknologi. Sehingga apabila kita mengenal teknologi mungkin suatu pekerjaan dapat terselesaikan dengan mudah . misalnya saja satpam yang menjaga hunian rumah , kebanyakan satpam penjaga tidak tahu tentang penduduk yang tinggal di perumahan tersebut baik itu nama maupun blok rumah. Dan kebanyakan satpam mencatat di buku nama-nama penduduk dan alamatnya . Maka dari itu kami menciptakan suatu database yang memudahkan dalam pendataan penduduk . Satpam tidak lagi menggunakan buku untuk mencarinya, karena pasti dengan buku sangat lamban.
Langkahnya yaitu :

1. pertama kita bikin rulenya terlebih dahulu dalam notepad tentang penduduk hunian, kemudian jika kita ingin
    mencari data entah nama, blok, nama istri dengan menuliskan variable write.





  
2. Kemudian file save dalam bentuk .pl
3. Setelah itu buka file yang tadi di save dalam bentuk prolog.
4. Kemudian dalam prolog ketikan find untuk mencarinya.




 5. Di sini saya menampilkan nama penghuni. Dan nantinya akan keluar data lengkapnya.


Semoga ini bermanfaat.

Selasa, 08 Desember 2009

INPUT AND OUTPUT in Prolog

Jawaban Soal Practical Exercise 6

Soal No.1

1. Pertama-tama kita buat rulenya terlebih dahulu dalam notepad. Menggunakan rekursi untuk mencari nilai  kuadrat bilangan N1. Dan sampai tidak melebihi N2.



2. Kemudian save dalam format .pl
3. Kemudian buka file yang sudah dalam bentuk format prolog tadi.
4. Tuliskan dalam prolog outsquare(_,_). yang merupakan predikat kita dalam membuat rule tadi.




Soal No.2

1. Pertma-tama kita buat rulenya dulu dalam notepad. Dengan menggunakan predikat go,repeat,geto dan getrest.




2. Kemudian save dalam bentuk .pl
3. Buka file dalam bentuk prolog tadi. Ketik go. Seperti pada gambar di bawah ini.



Soal No. 3

1. Pertama-tama kita buat rulenya dalam notepad.Dengan menggunakan find sebagai predikatnya. Di sini menggunakan metode bactracking with failure. Untuk mencari profesi orang yang berumur lebih dari 40 tahun.
Bisa juga mencari profesi orang yang kurang dari 40 tahun.



2.  Simpan dalam bentuk .pl
3. Kemudian buka file prolog yang anda simpan tadi. Kemudian ketikkan find pada prolog.


Senin, 07 Desember 2009

SUMMARY FOR CHAPTER 6

Looping a Fixed Number of Times

Many programming languages provide 'for loops' which enable a set of instructions
to be executed a fixed number of times. No such facility is available in Prolog
(directly), but a similar effect can be obtained using recursion, as shown in the
example programs below.

Example 1

The following program outputs integers from a specified value down to 1.

loop(0).
loop(N):-N>0,write('The value is: '),write(N),nl,
   M is N-1,loop(M).

The  loop predicate is defined in terms of itself. The second clause can be
thought of as: 'to loop from N, first write the value of N, then subtract one to give
M, then loop from M'. This process clearly needs to be terminated and this is
achieved by the first clause: 'when the argument is zero, do nothing (and hence
stop)'. The first clause can be regarded as a terminating condition for the recursion.

?- 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

Example 2

The next program outputs integers from First to Last inclusive.
/* output integers from First to Last inclusive */
output_values(Last,Last):- write(Last),nl,
   write('end of example'),nl.
output_values(First,Last):-First=\=Last,write(First),
   nl,N is First+1,output_values(N,Last).

Here  output_values  has two arguments, which can be read as 'output the
integers from First to Last inclusive'. The loop terminates when both arguments are
the same.

?- output_values(5,12).
5
6
7
8
9
10
11
12
end of example
yes

Looping Until a Condition Is Satisfied

Many languages have an 'until loop' which enables a set of instructions to be
executed repeatedly until a given condition is met. Again, no such facility is
available directly in Prolog, but a similar effect can be obtained in several ways.

 Recursion

The first example below shows the use of recursion to read terms entered by the
user from the keyboard and output them to the screen, until end is encountered.

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).

?- 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

Using the 'repeat' Predicate

Although it can often be used to great effect, recursion is not always the easiest
way to provide the types of looping required in Prolog programs. Another method
that is often used is based on the built-in predicate repeat.
The name of this predicate is really a misnomer. The goal  repeat  does not
repeat anything; it merely succeeds whenever it is called. The great value of repeat
is that it also succeeds (as many times as necessary) on backtracking. The effect of
this, as for any other goal succeeding, is to change the order of evaluating goals
from 'right to left' (i.e. backtracking) back to 'left-to-right'. This can be used to
create a looping effect, as shown in the examples below.
This program repeatedly prompts the user to enter a term until either yes or no
is entered. It is an alternative to the recursive program shown at the end of the
previous section. In this case it is debatable whether using  repeat is an
improvement on using recursion, but the example is included for purposes of
illustration.

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).

The first five goals in the body of get_answer will always succeed. Evaluating
the fifth goal: read(Ans) will prompt the user to enter a term. If the term input is
anything but yes or no, say unsure, the following goal valid(Ans) will fail. Prolog
will then backtrack over read(Ans) and write('answer yes or no'), both of which
are unresatisfiable, i.e. will always fail on backtracking.
Backtracking will then reach the predicate  repeat and succeed, causing
evaluation to proceed forward (left-to-right) again, with write('answer yes or no')
and read(Ans) both succeeding, followed by a further evaluation of valid(Ans).
Depending on the value of Ans, i.e. the user's input, the valid(Ans) goal will
either fail, in which case Prolog will backtrack as far as repeat, as before, or it will
succeed in which case the final three goals write('Answer is'), write(Ans) and nl
will all succeed. The overall effect is that the two goals write('answer yes or no')
and read(Ans) are called repeatedly until the terminating condition valid(Ans) is
satisfied, effectively creating a loop between repeat and valid(Ans).

?- 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

Goals to the left of  repeat in the body of a clause will never be reached on
backtracking.

Backtracking with Failure

As the name implies, the predicate  fail always fails, whether on 'standard'
evaluation left-to-right or on backtracking. Advantage can be taken of this,
combined with Prolog's automatic backtracking, to search through the database to
find all the clauses with a specified property.

 Searching the Prolog Database

Supposing the database contains clauses such as
dog(fido).
dog(fred).
dog(jonathan).

Each dog clause can be processed in turn using the alldogs predicate defined
below.

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

Calling alldogs will cause dog(X) to be matched with the dog clauses in the
database. Initially X will be bound to  fido and 'fido is a dog' will be output. The
final goal in the first clause of the alldogs predicate will then cause evaluation to
fail. Prolog will then backtrack over nl and the two write goals (all of which are
unresatisfiable) until it reaches dog(X). This goal will succeed for a second  time
causing X to be bound to fred.
This process will continue until  fido, fred and  jonathan have all been output,
when evaluation will again fail. This time the call to dog(X) will also fail as there
are no further  dog clauses in the database. This will cause the first clause for
alldogs to fail and Prolog to examine the second clause of  alldogs. This will
succeed and evaluation will stop.
The effect is to loop through the database finding all possible values of X that
satisfy the goal dog(X).

?- alldogs.
fido is a dog
fred is a dog
jonathan is a dog
yes

Note the importance of the second clause of the alldogs predicate. It is there to
ensure that, after the database has been searched, the goal succeeds. With only the
first line, any call to alldogs will eventually fail.

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

?- alldogs.
fido is a dog
fred is a dog
jonathan is a dog
no

Finding Multiple Solutions

Backtracking with failure can also be used to find all the ways of satisfying a goal.
Suppose that a predicate  findroute(Town1,Town2,Route) finds a route  Route
between two towns Town1 and Town2. The details of this predicate are irrelevant
here. It may be assumed that Town1 and Town2 are atoms and that Route is a list.
Backtracking with failure can then be used to find all possible routes between
Town1 and Town2 and write out each one on a separate line, as follows:

find_all_routes(Town1,Town2):-
   findroute(Town1,Town2,Route),
   write('Possible route: '),write(Route),nl,fail.
find_all_routes(_,_).

Rabu, 25 November 2009

INPUT DAN OUTPUT dalam Prolog (5)






























1. Buat variabel dalam notepad dan file yang untuk di compare.
2. Kemudian simpan dalam drive C atau yang lainnya.
3. Consult di prolog. Ketik perintahnya '?-compare('C:/nomor5.txt','C:/nomor51.txt','C:/output5.txt').'

4. Kemudian muncul beberapa macam statement dan muncul statement lagi menyatakan YES.




INPUT DAN OUTPUT dalam Prolog (4)






1. Pertama kita membuat di dalam notepad variabel in1 dulu,
2. Kemudian simpan dalam bentuk txt.
3. Ketik lagi perintah dalam notepad untuk in2.




4. Kemudian simpan dalam bentuk txt.
5. Buatlah variabel dalam prolog yang menggunakan combine sebagai predikat untuk mengabungkan kedua file tersebut. Kemudian simpan dalam bentuk .pl

 
6. Consult di prolog. Ketik perintah yaitu?- combine('in1.txt','in2.txt','out.txt').
7. Lalu akan muncul statement yang menyatakan YES






8. Kemudian dengan sendirinya output akan tersimpan dalam drive dimana anda simpan tadi dalam bentuk
    notepad.


INPUT DAN OUTPUT dalam Prolog (3)















1. Buatlah variabelnya dulu dalam notepad.
2. Kemudian simpan dalam drive C atau yang lainnya dalam bentuk .pl
3. Bikin lagi inputanya dalam notepad simpan dengan nama input3 atau yang lain dalam bentuk txt.




4. Consult di program prolog variabel yang pertama tadi. Ketik perintahnya seperti pada gambar.



5. Akan muncul hasil  berbagai macam angka dan statement dengan dinyatakan  YES.


INPUT DAN OUTPUT dalam Prolog (2)





1. Pertama kita ketikan variabel terlebih dahulu dalam notepad sebagai inputannya.
2. Setelah itu simpan dalam local disk c atau yang lain dalam bentuk txt.
3. Setelah itu bikin rulenya dalam notepad juga dengan menggunakan copyterms.



4. Simpan dalam bentuk .pl
5. Consult di program prolog. kemudian ketik perintahnya.
6. Setelah itu munculah kalimat yes.




7. Hasil  output akan tersimpan langsung di dalam tempat yang anda simpan tadi.














INPUT DAN OUPTUT

INPUT dan OUTPUT adalah dua istilah yang sangat umum ketika berbicara tentang menggunakan komputer. Yang kami maksud dengan INPUT adalah informasi yang diberikan untuk sebuah program (baik itu sistem operasi, aplikasi seperti pengolah kata program, atau program yang Anda tulis sendiri). OUTPUT keprihatinan yang menghasilkan komputer sebagai hasil dari menjalankan program. Agak membingungkan, pengguna komputer selalu merujuk pada saluran input dan output sebagai "masukan" dan "output" juga.

Biasanya, Anda memberikan masukan ke program dari terminal (apa yang Anda ketik pada keyboard) atau dari sebuah file. Yang pertama sering disebut sebagai STANDAR INPUT (dalam arti kanal input). Misalnya, ketika anda mengetik perintah untuk Unix atau untuk SICStus pada tingkat atas meminta Anda menggunakan standard input. Ketika Anda meminta kompiler Prolog untuk berkonsultasi file, saluran masukan Anda adalah file.

Output dari program-program ini biasanya dikirim ke terminal (ditampilkan pada layar), tetapi Anda juga dapat mengirim output ke file, atau perintah lain. Ini adalah apa yang Anda lakukan di Unix bila Anda menggunakan> perintah untuk mengarahkan kembali output dari perintah ke file, atau pipa | perintah untuk mengirim output dari perintah ke perintah lain (lebih misalnya).

Sejauh ini, bila Anda telah menjalankan program Prolog, Anda hanya menggunakan terminal untuk input dan output. Tetapi ada cara untuk memberitahu Prolog untuk mengambil input dari sebuah file, atau untuk mengirim output ke satu. Hal ini berguna misalnya ketika Anda ingin menguji sebuah program, atau jika itu menghasilkan suatu kumpulan data yang ingin Anda menganalisis kemudian.

Ouput


built-in predikat utama yang disediakan untuk istilah output write/ 1, yang d gunakan dalam resume ini
write/ 1 predikat mengambil satu argumen, yang harus yang valid dengan syarat prolog.  Evaluasi predikat menyebabkan syarat akan ditulis ke current output stream, , yang secara default adalah layar user.
Built-in predikat nl / 0 juga telah digunakan berkali-kali sebelumnya dalam hal ini
buku. Tanpa membutuhkan argumen. Mengevaluasi sebuah tujuan nl menyebabkan baris baru untuk menjadi output untuk
output stream.
Contoh
? – write(26), nl.
26
ya
? – write( ’string karakter’), nl.
string karakter
ya
? – write([a, b, c, d, [x, y, z]]), nl.
[a, b, c, d, [x, y, z]]
ya
? – write (mypred (a, b, c)), nl.
mypred (a, b, c)
ya
? – write( ‘Contoh useran nl’), nl, nl, write( ‘akhir contoh’), nl.
Contoh useran nl
contoh akhir
ya

Input

Built-in predikat membaca disediakan untuk masukan istilah. Dibutuhkan satu argumen, yang harus menjadi variabel.
Mengevaluasi itu menyebabkan istilah berikutnya untuk dibaca dari input arus sungai,
yang secara default adalah pengguna keyboard. (Yang dimaksud dengan arus input). Dalam input stream, istilah harus diikuti oleh sebuah titik ('.') dan setidaknya satu spasi, seperti spasi atau baris baru. Titik dan spasi karakter dibaca dalam tetapi tidak dianggap bagian dari istilah. Perhatikan bahwa untuk masukan dari keyboard (hanya) sebuah prompt karakter seperti titik dua biasanya akan ditampilkan untuk menunjukkan bahwa input pengguna diperlukan. Mungkin perlu untuk tekan tombol 'kembali' tombol sebelum Prolog akan menerima input. Kedua tidak berlaku untuk masukan dari file. Ketika sebuah tujuan membaca dievaluasi, istilah input disatukan dengan argumen variabel. Jika variabel tidak terikat (yang biasanya terjadi) itu adalah terikat pada masukan nilai.

Contoh
? - Read (X).
: Jim.
X = jim
? - Read (X).
: 26.
X = 26
? - Read (X).
: Mypred (a, b, c).
X = mypred (a, b, c)
? - Read (Z).
: [A, b, mypred (p, q, r), [z, y, x]].
Z = [a, b, mypred (p, q, r), [z, y, x]]
? - Read (Y).
: 'String karakter'.
Y = 'string karakter'

Jika variabel argumen sudah terikat (yang bagi sebagian besar pengguna adalah jauh lebih mungkin terjadi karena kesalahan daripada desain), tujuan berhasil jika dan hanya jika masukan istilah adalah identik dengan nilai terikat sebelumnya.


Dalam Prolog :
? - X = fred, read (X).
: Jim.
tidak
? - X = fred, read (X).
: Fred.
X = fred


INPUT dan OUTPUT KARAKTER
Meskipun input dan output sangat mudah,tapi useran tanda kutip dan titik dapat menjadi rumit dan tidak selalu sesuai.Sebagai contoh, akan membosankan untuk menentukan predikat (menggunakan baca) yang akan membaca serangkaian karakter dari keyboard dan menghitung jumlah huruf vokal.
untuk mengetahui tentang nilai ASCII karakter.
Semua mencetak karakter dan banyak karakter non-cetak (seperti ruang dan
tab) memiliki sesuai ASCII (American Standard Code for  Information
Interchange) nilai, yang merupakan integer 0-255.

Output Karakter
 

Karakter adalah output dengan menggunakan built-in predikat meletakkan / 1. Predikat mengambil
argumen tunggal, yang harus menjadi nomor 0-255 atau ekspresi yang
mengevaluasi ke integer dalam jangkauan.
Mengevaluasi tujuan put menyebabkan satu karakter untuk menjadi output untuk saat ini
output stream. Ini adalah karakter yang sesuai dengan nilai numerik (ASCII
nilai) dari argumen, misalnya
?- put(97),nl.
a
yes
?- put(122),nl.
z
yes
?- put(64),nl.
@
Yes


 INPUT KARAKTER
 
Dua predikat built-in disediakan untuk memasukkan satu karakter: get0 / 1 da n get/ 1.
Get0 predikat yang mengambil satu argumen, yang harus menjadi variabel. Mengevaluasi
tujuan get0 menyebabkan karakter untuk dibaca dari input saat ini stream. Variabel
kemudian disatukan dengan nilai ASCII karakter ini.
Mengasumsikan argumen variabel tak terikat (yang biasanya akan terjadi), itu
terikat ke nilai ASCII karakter input.
? – Get0 (N).
: A
N = 97
? – Get0 (N).
: Z
N = 90
Logika Pemrograman Dengan 74 Prolog
? – Get0 (M)
)
M = 41
Jika variabel argumen sudah terikat, tujuan berhasil jika dan hanya jika memiliki
nilai numerik yang sama dengan nilai ASCII karakter input.
?- get0(X).
: a
X = 97
?- M is 41,get0(M).
: )
M = 41
?- M=dog,get0(M).
: )
no
?- M=41.001,get0(M).
: )
No
predikat mengambil satu argumen, yang harus menjadi variabel. Mengevaluasi
get berikutnya menyebabkan tujuan non-white-space karakter (yaitu ASCII karakter dengan
nilai kurang dari atau sama dengan 32) untuk dibaca dari input saat ini stream. Itu
variabel ini kemudian disatukan dengan nilai ASCII karakter ini dengan cara yang sama seperti
untuk get0.
?- get(X).
: Z
X = 90
?- get(M).
: Z
M = 90

Input and Output Using File
 

Prolog mengambil semua input dari input stream dan menulis semua output ke
output stream. Secara default kedua stream ini bernama user,
menunjukkan user terminal, yaitu untuk input keyboard dan layar untuk memperoleh output.
Fasilitas yang sama yang tersedia untuk input dan output dari dan ke user
terminal kedua istilah tersebut dengan istilah atau karakter demi karakter juga tersedia untuk input
dan output dari dan ke file (misalnya file pada hard disk atau CD-ROM).
User dapat membuka dan menutup streaminput dan output yang terkait dengan
jumlah nama file, tapi hanya ada satu streaminput dan satu
stream output pada setiap saat. Perhatikan bahwa tidak ada file bisa terbuka untuk input maupun
output pada waktu yang sama (kecuali user) dan bahwa user input dan output stream
tidak dapat ditutup.

Mengubah Output Current Stream


Stream output dapat diubah menggunakan tell / 1 predikat. Ini membutuhkan
argumen tunggal, yang merupakan atom atau variabel yang mewakili nama file, misalnya
kirim ( ‘outfile.txt’).
Mengevaluasi sebuah tujuan kirim menyebabkan file bernama untuk menjadi arus output
arus. Jika file belum terbuka, file dengan nama tertentu pertama kali diciptakan
(semua file yang sudah ada dengan nama yang sama akan dihapus).
Perhatikan bahwa file yang sesuai dengan stream output sebelumnya tetap
terbuka ketika arus output baru stream dipilih. Hanya stream output
dapat ditutup (menggunakan predikat kata yang dijelaskan di bawah).
Arus output default stream user, yaitu user terminal. Nilai ini dapat
dikembalikan baik dengan menggunakan kata predikat atau dengan kirim (user).
Built-in predikat tell/ 0 mengambil tanpa argumen. Mengevaluasi sebuah tujuan kepada penyebab
arus output file yang akan ditutup dan arus output stream untuk diatur ulang ke user,
i.e. user.
Built-in predikat tell / 1 memerlukan satu argumen, yang harus menjadi variabel
dan biasanya akan terikat. Mengevaluasi sebuah tujuan memberitahu menyebabkan variabel yang akan
terikat nama output stream.

Mengubah Input Current Stream


Input stream yang aktif dapat diubah dengan menggunakan see/ 1 predikat. Ini membutuhkan
argumen tunggal, yang merupakan atom atau variabel yang mewakili nama file, misalnya
see( ‘myfile.txt’).
Mengevaluasi sebuah tujuan see menyebabkan file bernama input yang menjadi stream.
Jika file ini belum terbuka itu pertama kali dibuka (untuk akses baca saja). Jika tidak
mungkin untuk membuka file dengan nama yang diberikan, kesalahan akan dihasilkan.
Catatan bahwa file yang sesuai dengan arus input yang sebelumnya tetap
terbuka ketika sebuah arus input yang baru dipilih. Hanya arus input
dapat ditutup. Default input stream user, yaitu user. Nilai ini dapat
dipulihkan baik dengan menggunakan dilihat predikat atau dengan see (user).
Built-in predikat see/ 1 memerlukan satu argumen, yang harus menjadi variabel
dan biasanya akan terikat. Mengevaluasi sebuah tujuan see menyebabkan variabel yang akan
terikat nama input stream.

End Of File



Jika akhir file ditemukan ketika mengevaluasi tujuan read (X), variabel X akan
terikat ke atom end_of_file.
Jika akhir file ditemukan saat mengevaluasi tujuan get(X) atau get0 (X),
variabel X akan terikat kepada seorang ‘khusus’ nilai numerik. Sebagai nilai-nilai ASCII harus dalam
kisaran 0-255 inklusif, ini biasanya akan menjadi -1, tetapi dapat bervariasi dari satu
Prolog pelaksanaan lain.

End Of Record


Tergantung pada versi Prolog digunakan, mungkin ada ketidakcocokan untuk
karakter input antara membaca akhir sebuah catatan dari terminal user dan dari sebuah file.
Biasanya akhir baris dari input pada terminal user akan ditunjukkan oleh
karakter dengan nilai ASCII 13. Akhir sebuah catatan dalam sebuah file umumnya akan
ditunjukkan oleh dua nilai ASCII: 13 diikuti oleh 10.
Program berikut menunjukkan bagaimana membaca dalam serangkaian karakter dari
keyboard dan mencetak mereka keluar, satu per baris.
Readline:-get0 (X), proses (X).
proses (13).
proses (X):-X = \ = 13, memakai (X), nl, Readline.
Perhatikan useran meletakkan daripada menulis dan bahwa tes untuk nilai ASCII 13
menghindari kebutuhan untuk karakter seperti * untuk menunjukkan ‘akhir input’.
? – Readline.
: Prolog test
Pr
ol
og
t
est
ya


 



Selasa, 24 November 2009

INPUT DAN OUTPUT dalam Prolog

Sekarang kita akan belajar bagaimana cara mengkonversi huruf besar menjadi huruf kecil atau yang lainnya.



1. Pertama kita harus membuka notepad terlebih dahulu.
2. Kemudian isikan dalam notepad seperti pada gambar diatas.
    Penjelasan :
    - get0 (X):  untuk mengkonversi karakter ASCII.

    -  (V, X): digunakan untuk memeriksa apakah X adalah antara 63-95. Jika betul, maka akan                 mengkonversi huruf besar huruf kecil dengan menambahkan angka ASCII karakter dengan 32.

    - (13) untuk memasukkan karakter kosong dalam proses.
3. Setelah itu, setelah mengetikan dalam notepad.Simpan dalam bentuk .pl
4. Kemudian buka file yang tadi dalam program prolog.
5. Ketikan readline pada prolog.Kemudian tekan enter.
6. Coba ketikan huruf terserah anda.Jangan lupa titik pada akhirnya.Dan tekan enter.
















Jika ingin menampilkan yang Horizontal caranya sama tetapi memakai nl.

Contoh   :













                                Notepad


                               Hasil Horizontal

SMART SCAN

Latar belakang :
Perkembangan tekhnologi membuat manusia semakin banyak kebutuhannya yang berhubungan dengan tekhnologi.
Misal pelajar/mahasiswa sampai dengan saat ini masih banyak yang menggunakan buku sebagai sumber untuk membuat makalah.
Dan kebanyakan mereka ketika ingin merangkum susah-susah membaca bukunya terlebih dahulu kemudian sebagian dari buku itu kata-katanya disalin.
Maka dari itu kelompok kami mempunyai ide tentang bagaimana supaya tidak susah-susah ketika merangkum (mengetik ulang).
Hanya perlu menscan, lalu mengedit melalui program kelompok kami, dan tinggal menambahkan/menghapus kalimat-kalimat yang tidak perlu.
Di sisi lain pada saat ini banyak orang ingin menyelesaikan sesuatu dengan cepat,karena dengan mengetik ulang akan banyak menghabiskan waktu.
Sedangkan jika hanya menscan saja kalimat-kalimat yang tidak diperlukan tidak bisa dihilangkan.

Penjelasan ide :
Aplikasi ini mampu mengedit file digital hasil scan, jika yang kita ketahui selama ini hasil scan hanya dapat dibaca tapi dengan aplikasi ini
hasil scan yang berupa gambar text setiap hurufnya akan dapat diterjemahkan menjadi bentuk text yang dapat di edit seperti dalam microsoft word.
Aplikasi ini juga dilengkapi fitur-fitur seperti dalam microsoft word.Selain itu Aplikasi ini tidak hanya dapat menerjemahkan bentuk text,tetapi juga dapat menerjemahkan hasil scan yang berupa gambar.
Jadi jika file digital scannya berupa gambar sketsa yang biasanya terdiri dari garis-garis hasil freehand maka garis-garis tersebut dapat di edit kembali di dalam aplikasi ini seperti dalam corel draw/autocad.

Manfaat :

- Mempermudah dalam merubah hasil scan seperti yang kita inginkan.
- Memgefisiensi waktu pengetikan data yang diambil dari buku.
- Memudahkan kita untuk merubah hasil gambar freehand menjadi gambar digital yang lebih akurat.

Kesimpulan :

Jadi dengan menggunakan software ini kita akan lebih mudah dalam merubah hasil scan yang kita inginkan.
Dengan software ini juga kita akan lebih mengefisiensi waktu.Semoga ide ini dapat tercipta dan memudahkan kita semua.

Kamis, 12 November 2009

Resume Chapter 4

1. Arithmetic
Prolog menyediakan fasilitas untuk melakukan penghitungan aritmatik menggunakan notasi-notasi yang mirip dengan aljabar dasar.
2. Operators
Ada bentuk lain untuk menulis suatu predikat selain bentuk standar yang sudah dipelajari pada bab sebelumnya. Untuk binary predicate (predikat dengan dua argumen) dapat diubah menjadi bentuk infix operator.
Kemudian untuk bentuk unary predikat (predikat dengan satu argumen) dapat diubah menjadi bentuk prefix operator atau postfix operator.
a. Arithmetic Operators
Merupakan operator yang biasanya digunakan untuk melakukan penghitungan aritmatik variabel-variabel di dalam pemrograman menggunakan prolog. Berikut adalah contoh penggunaan dari masing-masing operator.
1. X+Y (penjumlahan dari X ditambah Y)
2.X-Y (selisih dari X dikurangi Y)
3.X*Y (hasil perkalian dari X dan Y)
4.X/Y (hasil pembagian dari X dibagi oleh Y)
5.X//Y the 'integer quotient' of X and Y (the result is truncated to the nearest integer between it and zero)
6.X^Y (nilai dari X pangkat Y)
b. Arithmetic Functions
Merupakan fungsi yang biasanya digunakan untuk melakukan penghitungan aritmatik variabel-variabel di dalam pemrograman menggunakan prolog. Berikut adalah contoh penggunaan dari masing-masing fungsi.
- abs(X) (nilai absolut dari X)
- sin(X) (nilai sinus dari X untuk X dalam derajat)
- cos(X) (nilai cosinus dari X untuk X dalam derajat)
- max(X,Y) (menentukan mana yang lebih besar antara X dan Y)
- sqrt(X) (nilai dari X akar pangkat dua)
c. Pengutamaan Operator Dalam Ekspresi Aritmatika
Prolog menggunakan algoritma aljabar biasa dalam pengopersian aritmatika. Contohnya A+B*C-D. Di dalam ajabar C dan D dikalikan lebih dahulu lalu ditambah dengan A lalu dikurangi dengan D. DI prolog juga demikian. Untuk pengecualian, kita tinggal menggunakan kurung. Contoh : (A+B)*(C+D).
d. Relational Operators
Operator seperti =, !=, >,>=, <, =<, dapat digunakan di Prolog. Digunakan untuk membandingkan dua variabel.

3. Operator Pembanding
Berikut merupakan daftar dari equality operators yang digunakan dalam prolog beserta fungsi dari masing-masing operator.
o Arithmetic Expression Equality =:=
o Arithmetic Expression Inequality =\=
o Terms Identical ==
o Terms Not Identical \==
o Terms Identical With Unification =
o Non-Unification Between Two Terms \=
4. Operator Logika
a. Operator Not
Operator not dapat ditempatkan sebelum predikat untuk memberikan negasi. Predikat yang dinegasikan bernilai benar jika predikat yang asli salah dan bernilai salah jika predikat yang asli benar. Berikut contoh penggunaan operator not :
dog(fido).
?- not dog(fido).
no
?- dog(fred).
no
?- not dog(fred).
yes
?- X=0,X is 0.
X = 0
?- X=0,not X is 0.
no
b. Operator Disjungsi
Operator disjungsi (;) digunakan sebagai operator ‘atau’. Contoh :
?- 6<3;7>
yes

?- 6*6=:=36;10=8+3.
yes

Rabu, 11 November 2009

OPERATOR AND ARITHMETIC

Jawaban Exercise 4 no 1














Rule dalam Notepad

1.Pertama-tama kita bikin rulenya dulu dalam notepad.Seperti pada gambar diatas.
2.Kemudian simpan dalam bentuk .pl
3.Setelah itu buka file yang dalam bentuk .pl td.
4.Kemudian ketik contoh(4,7).
5.Kalimat contoh td bs di ganti dengan pred.














Hasil dalam Prolog


Jawaban Exercise 4 no 2














Rule dalam Notepad

1.Pertama-tama kita bikin rulenya terlebih dahulu dalam notepad.
2.Kemudian kita save dalam bentuk .pl
3.Buka file yang dalam bentuk .pl td dalam prolog.
4.Setelah itu ketikan X chases Y.














Hasil dalam Prolog

Jumat, 23 Oktober 2009

EXPERT SYSTEM

An expert system is software that attempts to provide an answer to a problem, or clarify uncertainties where normally one or more human experts would need to be consulted. Expert systems are most common in a specific problem domain, and is a traditional application and/or subfield of artificial intelligence. A wide variety of methods can be used to simulate the performance of the expert however common to most or all are 1) the creation of a so-called "knowledgebase" which uses some knowledge representation formalism to capture the Subject Matter Expert's (SME) knowledge and 2) a process of gathering that knowledge from the SME and codifying it according to the formalism, which is called knowledge engineering. Expert systems may or may not have learning components but a third common element is that once the system is developed it is proven by being placed in the same real world problem solving situation as the human SME, typically as an aid to human workers or a supplement to some information system.

As a premiere application of computing and artificial intelligence, the topic of expert systems has many points of contact with general systems theory, operations research, business process reengineering and various topics in applied mathematics and management science.


4 Rule-based Expert Systems
A rule-based expert system is an expert system (see intro) which works as a production system in which rules encode expert knowledge.
Most expert systems are rule-based. Alternatives are
frame-based - knowledge is associated with the objects of interest and reasoning consists of confirming expectations for slot values. Such systems often include rules too.
model-based, where the entire system models the real world, and this deep knowledge is used to e.g. diagnose equipment malfunctions, by comparing model predicted outcomes with actual observed outcomes
case-based - previous examples (cases) of the task and its solution are stored. To solve a new problem the closest matching case is retrieved, and its solution or an adaptation of it is proposed as the solution to the new problem.

Rabu, 21 Oktober 2009

Fact,Rules,Predicates, and Variable in Prolog Couple
















" PrintScreen Prolog Couple "













" PrintScreen Notepad Couple "





Langkah- langkah :

1. Buka notepad, kemudian copy data yang ada di modul ke notepad.
2. Kemudian tambahkan perintah couple(L,P):-person(L,male),person(P,female).
di dalam notepad.
3. Save dengan format .pl
4. Buka prolog, lalu file-consult. Buka file yang sudah kita save tadi.
5. Kemudian di dalam prolog ketik couple(L,P). Tekan enter lalu tekan ; sampai muncul no.

Fact,Rules,Predicates, and Variable in Prolog
















" PrintScreen Prolog"


" PrintScreen Notepad "















Langkah-langkah :
1. Copy data yang ada di modul hal 27 ke dalam notepad.
2. Kemudian save as dengan format .pl
3. Buka program prolog kemudian pilih File-Consult. Buka file yang tadi dengan format .pl
4. Kemudian untuk mencari all mammal kita ketik animal(mammal,MAMMAL,_,_). Lalu tekan
enter. Kemudian akan muncul binatang mammal pertama, lalu tekan ; sampai muncul no.
5. Kemudian memunculkan hewan mammal yang juga carnivore ketik
animal(mammal,X,carnivore,_).
Sehingga muncul binatang pertama, lalu tekan ; sampai
no.
6. Untuk memunculkan hewan mammal yang mempunyai strip belang kita ketik
animal(mammal,Y,_,stripes). Lalu akan muncul binatang pertama, lalu tekan ; sampai no.
7. Yang terakhir kita memunculkan hewan reptil yang juga termasuk mane, maka kita ketik
animal(reptile,Z,_,mane). lalu tekan enter. Karena tidak ada maka akan muncul no.

Rabu, 14 Oktober 2009

"TUTORIAL"

















1. ketik di notepad:
hewan(kucing).
hewan(anjing).
hewan(singa).
makanan(ikan).
makanan(daging).
makanan(ayam).

2. di save

3. lalu masuk prolog,pilih consult,ketik hewan(X),makanan(Y).
tekan enter dan tekan ;
sampai habis.

biografi adnan

saya lahir di surabaya 21 agustus 1990,saya sekolah di SD muhammadiyah 4,SMP 19 ,dan SMA muhammadiyah 2 sby,setalah itu kuliah di ITS jurusan sistem informasi
Email : adnan09@mhs.is.its.ac.id

biografi adrian

saya sering di panggil teman saya dengan sebutan cino, saya lahir di Gresik tanggal 16 mei 1991, saya sekolah di SD dan SMP semen gresik,setalah itu SMA Trimurti dan sekarang di ITS jurusan sist.informasi
Email : Cinnochiqy_celz@ymail.com

biografi ryan


Saya lahir di Surabaya 17 tahun yang lalu,tepatnya tanggal 22 november 1991,saya sekolah di SD Ta'miriyah,SMP Muhammadiyah 5,dan SMA Trimurti, setelah itu melanjutkan ke ITS di jurusan Sist.Informasi.
email : ryan.kidss@yahoo.com
no hp : 085656321494

Kamis, 01 Oktober 2009

nama kelompok

ryan handy (5209100039)
m.baihaqi (5209100048)
adrian (5209100057)
adnan (5209100138)