Welcome to my blog, hope you enjoy reading :)
RSS

Selasa, 24 November 2009

INPUT AND OUTPUT

Outputing terms
prolog mempunyai suatu istilah untuk keluarkan yang dihasilkan, keluaran tersebut sebelumnya didiskripsikan terlebih dahulu. Dalam keluaran digunakan write/1 untuk mengambil predikat pada satu argumen, dimana prolog tersebut bernilai benar. Predikat nl/0 digunakan apabila tidak ada argumen yang diambil. Sedangkan nl digunakan untuk memberikan baris baru pada keluaran.
contohnya:
?-write(26),nl.keluarannya pada baris baru adalah
26 (argumen yang dimasukkan)
yes(argumen bernilai benar)

bisa juga menggunakan writeq yang hasil keluarnnya akan sama dengan menggunakan write.
Bila inputan("paul","hello world") maka output tidak perlu menggunakan write/writeq.

Inputting Terms

Dalam prolog inputan yang benar harus menggunakan tanda titik dibelakang argumen.
Pada inti evaluasi menbaca prolog, istilah dalam input selalu sama dengan variabel argumen.
Contohnya:
?-Read(x).
:Jim
x=Jim
Penjelasan contoh diatas adalah x adalah argumen yang akan dibaca sedangkan jim adalah masukkannya sehingga x tersebut adalah jim.

bisa juga ditulis dalam bentuk
?-x=fred,read(x)
:fred
x=fred

Input and output using characters

Dalam prolog telah ada suatu istilah pada sistem input ataupun output pada prolog, namun dalam prolog juga digunakan karakter. Karakter tersebut memiliki no.seri yang sesuai ASCII, sehingga user tinggal memasukkan no.seri pada argumennya. Untuk itu ada baiknya user menghafal kode karakter agar ,udah mengerjakan prolog.
Contoh Karakter dan no.serienya :
  • 9 untuk tab
  • 32 untuk spasi
  • 65-90 untuk A to Z
  • 97-122 untuk a to z
  • 63 untuk tanda tanya(?)
Outputting Characters
Pengambilan predikat dalam suatu argumen dapat juga menggunakan karakter, contohnya:
?-Put(97),nl.
a
yes
dalam contoh tersebut 97 merupakan no.seri dari karakter yang akan diambil dan pernyataan tersebut bernilai benar.

File input : Changing the Current Input Stream

Mengubah input stream :

- Gunakan “see/1”

- Butuh argumen tunggal berupa atom atau variabel yang mewakili nama file

Misal : see(‘myfile.txt’)

- Evaluasi menyebabkan file yang telah dinamai menjadi input stream. Jika file tidak dapat dibuka akan menghasilkan error

- Untuk file yang sesuai dengan input stream sebelumnya akan membuka ulang ketika sebuah input stream baru dipilih

- Input stream dapat ditutup dengan menggunakan “seen”

- Kesalahan pada input stream(user) dapat diatasi dengan menggunakan “seen “ atau bisa dengan menggunakan “see(user)”.

- Tidak terdapat pernyataan pada “seen/0”. Evaluasi bisa menyebabkkan input file yang telah dipilih akan ditutup dan input file yang dipilih akan direset ualng ke user. Disini user’s terminal

- Terdapat 1 pernyataan pada “seen/1” dan menjadi sebuah variabel yang terikat

Reading from Files : End of file


Jika akhir dari file telah ditemukan ketika “read(X)” sedang dievaluasi, variabel X terkait di atom file tersebut. Ketika get(X) atau get0(X) dievaluasi, variabel X diisi dengan nilai numerik khusus. ASCII berkisar antara 0-255, tapi tidak mesti.

Reading from Files : End of Record

Bisa terjadi ketidakcocokan pada saat membaca karakter dari user’s terminal dan dari sebuah file. Masukan akhir ditunjukkan oleh karakter dengan nilai ASCII 13. Akhir dari record/catatan ditunjukkan oleh karakter dengan nilai ASCII : 13 diikuti dengan 10,

dicetaknya satu per baris. Berikut programnya :

Readline:-get0 (X), proses (X).
proses (13).
proses (X):-X = \ = 13, memakai (X), nl, Readline.

Untuk menghindari put>write gunakan karakter “*” untuk menunjukkan masukan akhir.

?- readline.

: Prolog test

P

R

O

L

O

G

T

E

S

T

yes

Senin, 23 November 2009

FOOD SMART DETECTOR

Dalam kehidupan sehari-hari masyarakat umumnya tidak menghiraukan kandungan makanan yang dimakannya sehari-hari. Orang makan dengan lahapnya makan makanan yang lezat seperti yang dijual di cafe atau restoran. Mereka tidak mengetahui kandungan-kandungan apa saja yang ada dimakanan tersebut. Jika makanan tersebut mengandung lemak yang sangat tinggi hal ini tentu tidak baik bagi kesehatan orang tersebut dan dapat menimbulkan dampak buruk bagi kesehatannya. Maka disini begitu perlunya suatu system pakar dimana bertujuan untuk menginformasikan kandungan lemak yang terdapat dalam makanan yang akan dimakannya. Ini juga berfungsi sebagai pengaturan pola hidup sehat masyarakat dalam mengatur makanannya. Sehingga orang tidak perlu konsultasi ke ahli gizi atau memeriksa zat suatu makanan ke BPOM. Tentu ini akan menjadi suatu cara yang efektif dan efisien bagi masyarakat untuk mengetahui gizi dari suatu makanan yang dikomsumsi. Makanan berlemak umumnya banyak mengandung purin. Purin adalah salah satu senyawa basa organic yang menyusun asam nukleat (asam inti dari sel) dan termasuk dalam kelompok asam amino, unsur pembentuk protein. Secara alamiah, purin terdapat dalam tubuh kita dan dijumpai pada semua makanan dari sel hidup, yakni makanan dari tanaman (sayur, buah, kacang-kacangan) atau pun hewan (daging, jeroan, ikan sarden). Makanan berlemak terdapat 3 macam jenis purin yaitu makanan yang tinggi purin, makanan yang sedang purin dan makanan yang rendah purin.

Sistem pakar ini cara kerjanya jika makanan tersebut dimasukkan dalam alat pendeteksi itu maka dapat ( dengan cepat terlihat kandungan purin yang ada. Untuk itu dalam alat ini ada suatu pendeteksi yang dapat mengidentifikasi. Di dalam system pakar ini sebelumnya disebutkan apa saja bahan makanan yang mengandung purin tinggi, sedang maupun rendah.

Diagnosa kandungan makanan berlemak yang mengandung purin :

Diagnosa makanan kandungan purin tinggi :

- Sardin / ikan kaleng
- Hati otak
- Ginjal
- Paru-paru
- Usus
- Babat
- Pankreas
- Kaldu blok / bubuk
- Daging itik, bebek, angsa merpati, burung unta.

Diagnosa makanan kandungan purin sedang :

- Daging ayam
- Daging sapi
- Ikan
- Kerang-kerangan ( kacang merah, kerang putih, tiram, remis,dsb)
- Kacang-kacangan (kacang merah, kacang hijau, kacang tanah, kedelai)
- Kacang polong
- Kacang panjang
- Asparagus
- Kembang kol
- Brokoli
- Kol kembang
- Bayam jamur

Diagnosa makanan kandungan purin rendah :

- Sayuran segar selain yang disebutkan dalam kelompok
- Buah-buahan segar
- Susu
- Keju
- Telur
- Padi-padian / serealia

Jumat, 13 November 2009

Latihan 2


Exercise 4 number 1




Gambar input dan output

Cara mengerjakan :
  1. buka progam prolog
  2. klik file -> new
  3. beri nama file
  4. ketik data untuk prolog di notepad
  5. klik file ->save
  6. tutup notepad
  7. klik file->consult
  8. buka file
  9. ketik ?-chases(X,Y)
  10. bill is couple with carol
  11. setelah muncul hasil pertama ketik";"
  12. hingga muncul kata "no"

Resume Operator and Aritmathics in Prolog

Operator
Penggunaan Standar Predikat nama(functor) yang diikuti oleh sejumlah argument dalam kurung dapat dikonversi ke operator untuk lebih mudah dibaca pengguna, beberapa diantarnnya yaitu
  1. Untuk dua argument yang diubah menjadi infiks operator,contohnya:Like (john,mary) dapat ditulis menjadi john like mary
  1. Untuk satu argumen yang diubah menjadi prefiks operator,contohnya:Isa dog(fred) menjadi isa_dog fred. Bisa juga menggunakan postfix yang ditulis setelah argument,contohnya: fred isa_dog.
Konversi juga dapat menggunakan op predikat pada sistem prompt, misalnya:
?-op(150,xfy,suka)
Keterangan:
  • Argumen pertama berupa integer,hal ini bertujuan untuk menetukan urutan dari operator yang akan diterapkan apabila operator tersebut lebih dari 1.
  • Argumen yang kedua adalah salah satu dari "xfy",yang merupakan predikat biner yang akan dikonversi ke operator infiks. fy adalah unary yang akan diubah menjadi operator prefix sedangkan xf adalah operator yang akan diubah menjadi postfix operator.
  • Argumen yang ketiga digunakan untuk menentukkan nama yang akan dikonversi.
Tanda Kurang dari(<),lebih besar dari(>),sama dengan(=) juga termasuk dalam operator yang digunakan untuk prolog.

Aritmatika
Pada perhitungan aritmatika menggunakan built in perdikat ,dimana argumen 1 terikat pada argumen 2 sedangkan argumen 2 berupa angka atau tanda aritmatik lainnya. misalnya:
?- X is 10,Z is Y1
Y=10
Z=1
Tanda kurung dalam operator bukan hanya digunakan untuk argumen tetapi juga dapat berfungsi sebagai tempat nilai numerik yang akan dihitung,misalnya :
?- X is sqrt(36) hal ini berarti 36 adalah angka yg akan dibagi dalam perhitungan.

Operator aritmatik ("-") bukan hanya sebagai operator yang menunjukkan perbedaan dalam nilai tetapi juga dapat digunakan sebagai awalan unary untuk menunjukkan nilai negatif.
Suatu argumen juga dapat menjadi suatu variable terikat dengan nilai tertentu,contohnya :
?- X is 7, X is 6+1
yes
dalam hal ini argumen 1 menunjukkan nilai x adalah 7 dan pada argumen 6+1 juga bernilai 7 sehingga pernyataan bernilai benar.

Operator Precedence(operator aritmatika) antara lain +,-,*,/ memiliki kedudukan yang berbeda-beda dalam perhitungan. jika dalam suatu soal terdapat +,-,* dan / maka operator yang didahulukan adalah + dan -,baru mengerjakan * dan /.jika dalam pengerjaan adalh * dan / atau + dan- maka yang dikerjakan dimulai dari kiri ke kanan.
Dalam operator aritmatika dikenal juga Relational operator yang digunakan untuk mengetahui perbandingan dua nila. yang termasuk relational operator adalah =:= , =\=, >,>=,<,=<, tujuan dari simbol tersebut adalah untuk menunjukkan sama dengan,tidak sama dengan,lebih besar sama dengan,dll.

Kesetaraan Operator dan Ketidaksetaraan Operator
Perbandingan suatu nilai dalam operator dapat menggunakan simbol (=:=),yang memiliki tujuan agar kedua nilai sisi kanan dan kiri adalah sama. Namun ada kesetaraan dapat juga menggunakan dua argumen yang memiliki nilai sama,misalnya:
checkeven(N) : -M is N//2,N=:=2*M
?-checkeven (12)
yes
?-checkeven(13)
no

Persyaratan Identik
Tujuan berhasil dari persyaratan identik adalah jika term 1 sama dengan term 2 dan hanya jika term 1 identik dengan term 2.Setiap variable yang digunakan dalam istilah yang mungkin/tidak mungkin telah terikat, tetapi tidak ada variable terikat yang mengevaluasi tujuan. jika term 1=term 2 tidak sama maka disebut gagal.
misalnya: jika pernyataan dog(fido)
?- not dog(fido)
no
?-dog(fred)
no
?-not dog(fred)
yes
Pernyataan pertama salah karena ada not sebelum dog kare fido adalah anjing sedangkan itu tidak anjing adalah fido jadi bernilai salah. Sedangkan pernyataaan ketiga tidak anjing adlah fred,dua-duannya adalah salah sehimgga pernyataan bernilai benar.

The Disjunction Operator
Memberikan jawaban benar jika salah satu dari kedua operator bernilai benar.Misalnya :
?-6<3;7 is 5+2
yes
argumen 1 salah sedangkan yang kedua benar jadi pernyataan bernulai salah.

Senin, 09 November 2009

Rule – Based Expert System

EXPERT SYSTEM
In general, expert systems are systems that try to adopt human knowledge to computer designed to model the ability to solve problems like an expert. With this expert system, ordinary people can solve the problem or just looking for a real quality information can be obtained only with the help of experts in the field. This expert system will also be able to assist the activities of the experts as an experienced assistant and has an experienced assistant and has the necessary knowledge. In composition, combining expert system rules of inference (inference rules) with a specific knowledge base provided by one or more experts in a particular field. The combination of these two things are stored in the computer, which then used in decision-making process for solving a particular problem.
Characteristics of Expert System
A good expert system must meet the characteristics as follows:
• Having reliable information.
• Easily modified.
• Can be used in various types of computers.
• Have the ability to learn to adapt.

Expert System Advantages
In general, many benefits that can be taken by the expert system, among others:
1. Allows ordinary people can do the work of experts.
2. Can do is repeat the process automatically.
3. Store of knowledge and expertise of experts.
4. Increasing output and productivity.
5. Improve quality.
6. Able to take and preserve the skills of experts (especially those including rare skill).
7. Able to operate in dangerous environments.
8. Have the ability to access knowledge.
9. Having reliability.
10. Increasing capabilities of computer system.
11. Have the ability to work with incomplete information and contains uncertainty.
12. As a complement in the media training.
13. Improving capabilities in solving problems.
14. Save time in decision making

Expert System Weaknesses
In addition to having several advantages, expert systems also have several weaknesses, among others:
1. Costs required to create and maintain very expensive.
2. Difficult to develop. This is of course closely related to the availability of experts in the field.
3. Expert systems are not 100% true value.

Expert System Structure
The main components in the structure of expert system according to Hu et al (1987) include:
1. Knowledge Base (Knowledge Base)
Knowledge base is the core of an expert system, namely the representation of expert knowledge. Knowledge base consists of facts and rules. The fact is the information about objects, events, or situations. This rule is a way to generate new facts from facts already known.
2. Machine Inference (Inference Engine)
Inference engine acts as the brain of the expert system. Inference engine serves to guide the reasoning process of a condition, based on the available knowledge base. Inside there is a process of inference engine to manipulate and direct the rules, models, and the fact stored in the knowledge base in order to reach a solution or conclusion. In the process, the inference engine using reasoning strategies and control strategies. Reasoning strategy consists of certain reasoning strategies (Exact Reasoning) and uncertain reasoning strategies (Inexact Reasoning). Exact reasoning will be done if all the data needed to draw a conclusion is available, while inexact reasoning done on state control sebaliknya.Strategi serve as a guide in conducting the reasoning procedure. There are three techniques frequently used controls, ie forward chaining, backward chaining, and the combination of these two control techniques.
3. Base Data (Data Base)
The database consists of all the necessary facts, which facts are the facts used to meet the conditions of the rules in the system. The database stores all the facts, whether the fact early on when the system began operating, and the facts obtained in the inference process is carried out. The database is used to store data observations and other data required for processing.
4. The user interface (User Interface)
This facility is used as an intermediary of communication between the computer user with

Knowledge Representation Techniques
Knowledge representation is a technique to represent the acquired knowledge base into a scheme / diagram that can identify specific relationships / connectedness between a data with other data. This technique helps knowledge engineers in understanding the structure of knowledge that will make the expert system. There are several knowledge representation techniques commonly used in the development of an expert system, namely
a. Rule-Based Knowledge
Knowledge is represented in a form of facts (facts) and rules (rules). This form of representation of premise and conclusion.
b. Frame-Based Knowledge
Knowledge is represented in a form of hierarchy or network frames.
c. Object-Based Knowledge
Knowledge is represented as a network of objects. Object is a data element consisting of data and methods (processes).
d. Case-Base Reasoning
Knowledge is represented in the form of conclusions cases (cases).

With Rule Inferencing: Forward and Backward Chaining
Inference with the rules is the implementation of the component mode, which is reflected in the search mechanism (search). Can also check all of the rule in the knowledge base in the direction forward or backward. Search process continues until there is no rule that can be used, or to a destination (goal) is reached. There are two methods by inferencing rules, the forward chaining or data-driven and backward chaining or goal-driven.
a. Backward chaining
• Using a goal-driven approach, starting from the desired expectations of what happens (hypothesis), then check with the causes that support (or contradictory) of these expectations.
• If an application produces a narrow, tree deep enough, then use backward chaining.
b. Forward chaining
• Forward chaining is a group of multiple inference that a search of a problem to the solution.
• If the premises in accordance with clause situation (TRUE), then the process will be to assert
the conclusion.
• Forward chaining is data-driven because the inference starts with the information available and obtained a new conclusion.
• If an application produces a wide tree and not in, then use the forward chaining.