Tuesday, December 22, 2009

Wednesday, November 25, 2009

Input dan Output

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.

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

Monday, November 23, 2009

Sistem Pakar ( Expert System ) pada Pengelolaan SDA


Bacground Masalah

Negara kita Republik Indonesia adalah salah satu negara kepulauan terbesar di dunia yang memiliki kekayaan dari sumber daya alam (SDA) yang sangat banyak sekali, dari hasil laut, hutan yang hijau dan lebat, sungai, pertanian, mineral, perikanan, pertambakan, pertambangan emas, baik yang ada di papua dan daerah lainnya, dan yang paling terlihat tambang minyak bumi kita yang setiap hari bisa menghasilkan berbarel-barel minyak mentah yang siap diolah.
Kami sebagai salah satu generasi muda bangsa, kami merasa senang yang bercampur dengan prihatin, bagaimana tidak??
1. Kami merasa senang, karena negara kita memiliki kekayaan melimpah, yang hal itu tidak dimiliki oleh bangsa lainnya.
2. Kami juga merasa susah, karena kekayaan itu tidak bisa kita manfaatkan dengan sebaik-baiknya.
3. Kami juga merasa sedih, karena sebagian besar kekayaan itu dieksplorasi oleh negara lain, jadi keuntungannya berada di tangan mereka.
Semoga dengan adanya teknologi sistem pakar ini, negara kita bisa memaksimalkan pemanfaatan sumber daya alamnnya dengan tangan kreatifnya dan tidak lagi mengikutcampurkan tangan asing, karena kami yakin generasi bangsa kita bisa melakukan hal itu.

Permasalahan
Pengembangan signifikan di dalam teknologi ruang angkasa, mampu menyediakan berbagai sensor dan platform, teknik penginderaan jauh (remote sensing) dan teknik pengolahan data (digital image processing) memungkinkan untuk mengoleksi, analisa dan interpretasi data secara cepat dan efisien.
Saat ini, teknik penginderaan jauh yang dilengkapi dengan teknik pengolahan data telah banyak diaplikasikan di dalam pengelolaan sumber daya alam (SDA). Teknik ini berbasis pada pemrosesan informasi (information processing) dengan pendekatan statistik yang oleh para ahli biasa disebut dengan sistem konvensional. Dalam perjalanannya, ditemukan begitu kompleksnya permasalahan yang dihadapi di dalam pengelolaan sumber daya alam, sehingga menyebabkan keterbatasan sistem konvensional dalam penerapannya. Untuk itu dengan dilandasi kesadaran tinggi, para ahli berupaya keras untuk mengembangan teknologi baru yang mampu memberi kontribusi di dalam memecahkan permasalahan yang dihadapi oleh sistem konvensional diatas.
Kehadiran teknologi knowledge-based expert system yang fokus pada pemrosesan pengetahuan (knowledge processing), merupakan suatu paradigma baru di dalam memberi solusi pengelolaan sumberdaya alam. Prosesnya sebagai berikut :

1. Identifikasi obyek (object identification) merupakan suatu teknik untuk meng-identifikasi obyek di permukaan bumi dengan menggunakan satelit penginderaan jauh. Proses klasifikasi dapat dilakukan menggunakan pendekatan fuzzy-neural network model. Parameter-parameter jaringan saraf tiruan (artificial neural network) diestimasi dengan proses pembelajaran (learning process) secara supervisi untuk daerah yang telah diketahui (known-sites).

2. Parameter-parameter yang sudah di estimasi selanjutnya digunakan untuk meng-identifikasi jenis-jenis obyek, seperti hutan, sumberdaya air, lahan pertanian, sumberdaya kelautan, mineral, dan lainnya. Pada tahapan pemodelan (modeling stage), obyek yang telah diidentifikasi digunakan untuk kalibrasi model matematika, model berbasis pengetahuan dan keluarannya merupakan model estimasi untuk pengelolaan dan perencanaan sumber daya alam.


3. Tahap optimasi (optimization stage) merupakan tahapan untuk pemanfaatan optimal dari sumberdaya alam, untuk itu perlu dikembangkan suatu sistem pendukung keputusan secara cerdas (intelligent decision support system) dengan memformulasikan sebuah fungsi obyektif biaya minimum (cost minimizing objective function), serta bermanfaat secara ekonomi.

Integrasi dari ketiga tahapan tersebut merupakan suatu proses pendekatan dalam memberi solusi penyelesaian permasalahan sumberdaya alam. Baru setelah itu dikembangkan sistem pakar yang sesuai dengan analisis dan riset oleh ilmuwan, yang pengembangan sistem pakarnya sebagai berikut :

Pengembangan Sistem Pakar

Pengembangan sistem pakar melibatkan 4 (empat) pihak yaitu : analis sistem, knowledge engineer, pakar dan pemakai sistem (users). Keempat pihak ini akan terlibat dalam tahapan pengembangan sistemnya sebagai berikut:

1. Studi awal. Bertujuan untuk mempelajari domain dari permasalahannya dan kelayakannya apakah dapat dibuatkan sistem pakarnya atau tidak. Studi ini dilakukan oleh analis sistem.

2. Pemilihan perangkat lunak yang akan digunakan, apakah akan membangun sendiri inference-engine atau menggunakan ES shell. Tahap ini dilakukan oleh analis sistem bersama-sama dengan pemakai sistem.

3. Pemilihan pakar.
4. Pengambilan pengetahuan. Tahap pengambilan pengetahuan (knowledge acquisition) ini dilakukan oleh analis sistem bersama-sama dengan knowledge engineer dan pemakai sistem.

5. Membangun sistem pakar. Membangun sistem pakar melibatkan ke empat pihak dengan langkah-langkah sebagai berikut:
- mengidentifikasi sasaran (goal).
- mengidentifikasi atribut item-item dan nilai-nilainya.
- menderivasi aturan-aturan.
- membuat prototip.

(e). Menguji sistem
(f). Mengimplementasikan sistem
(g). Mengoperasikan sistem
(h). Merawat sistem (maintenance)

Kelebihannya :

Kami rasa banyak sekali keuntungannya, karena pengembangan sumber daya alam yang didukung dengan adanya teknologi yang canggih, seperti halnya sistem pakar (Expert System) ini sangat berpengaruh, apalagi sumber daya alam negara kita yang begitu besar dan melimpah ruah dari sabang hingga merauke. Dengan menggunakan teknologi ini maka :
1. Sumber daya alam yang kita miliki bisa dimanfaatkan dengan baik dengan hasil yang sesuai dengan keinginan kita.

2. Lebih menghemat waktu
Kenapa seperti itu ? karena teknologi ini sudah canggih, dan dalam waktu yang singkat kita bisa mengolah sumber daya alam kita dengan baik dan terstruktur.
3. Lebih menghemat biaya
Daripada kita memanggil seorang pakar yang profesional, yang jelasnya akan menghabiskan dana yang lebih besar daripda menggunakan teknologi sistem pakar.
4. Sistem pakar ini juga dapat diperbanyak, jadi sekali kerja bisa beberapa sistem pakar sekaligus.
5. Ramah lingkungan, karena dalam merancang sistem ini telah ditimbang-timbang dampaknya terhadap lingkungan sekitarnya.

Thursday, November 12, 2009

OPERATOR AND ARITHMETIC

1.buka notepad












simpan file dengan ekstensi .pl

2. buka file, hasilnya















3.menghitung akar dari perkalian 2 angka:








4.menghitung rata-rata dari 2 angka

Fact, Rules, Predicate, and Variable in Prolog.

1.Buka notepad







ingat, save dengan ekstensi .pl

2.buka prolog

3.klik file, consult, pilih file notepad tadi

4.masukkan inputan berupa pertanyaan!

contoh: nama-nama binatang yang tergolong mamalia










contoh 2 : nama-nama hewan mamalia yang memakan daging(karnivora)

Sunday, October 25, 2009



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.

Expert systems were introduced by Edward Feigenbaum, the first truly successful form of AI software. 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.


Explanation system

Another major distinction between expert systems and traditional systems is illustrated by the following answer given by the system when the user answers a question with another question, "Why", as occurred in the above example. The answer is:
A. I am trying to determine the type of restaurant to suggest. So far Chinese is not a likely choice. It is possible that French is a likely choice. I know that if the diner is a wine drinker, and the preferred wine is French, then there is strong evidence that the restaurant choice should include French.

It is very difficult to implement a general explanation system (answering questions like "Why" and "How") in a traditional computer program. An expert system can generate an explanation by retracing the steps of its reasoning. The response of the expert system to the question WHY is an exposure of the underlying knowledge structure. It is a rule; a set of antecedent conditions which, if true, allow the assertion of a consequent. The rule references values, and tests them against various constraints or asserts constraints onto them.

This, in fact, is a significant part of the knowledge structure. There are values, which may be associated with some organizing entity. For example, the individual diner is an entity with various attributes (values) including whether they drink wine and the kind of wine. There are also rules, which associate the currently known values of some attributes with assertions that can be made about other attributes. It is the orderly processing of these rules that dictates the dialog itself.

Expert systems versus problem - solving systems

The principal distinction between expert systems and traditional problem solving programs is the way in which the problem related expertise is coded. In traditional applications, problem expertise is encoded in both program and data structures. In the expert system approach all of the problem related expertise is encoded in data structures only; no problem-specific information is encoded in the program structure. This organization has several benefits.

An example may help contrast the traditional problem solving program with the expert system approach. The example is the problem of tax advice. In the traditional approach data structures describe the taxpayer and tax tables, and a program in which there are statements representing an expert tax consultant's knowledge, such as statements which relate information about the taxpayer to tax table choices. It is this representation of the tax expert's knowledge that is difficult for the tax expert to understand or modify.

In the expert system approach, the information about taxpayers and tax computations is again found in data structures, but now the knowledge describing the relationships between them is encoded in data structures as well. The programs of an expert system are independent of the problem domain (taxes) and serve to process the data structures without regard to the nature of the problem area they describe. For example, there are programs to acquire the described data values through user interaction, programs to represent and process special organizations of description, and programs to process the declarations that represent semantic relationships within the problem domain and an algorithm to control the processing sequence and focus.
The general architecture of an expert system involves two principal components: a problem dependent set of data declarations called the knowledge base or rule base, and a problem independent (although highly data structure dependent) program which is called the inference engine.

Advantages and disadvantages

Advantages:
• Provides consistent answers for repetitive decisions, processes and tasks
• Holds and maintains significant levels of information
• Encourages organizations to clarify the logic of their decision-making
• Always asks a question, that a human might forget to ask
• Can work continuously (no human needs)
• Can be used by the user more frequently
• A multi-user expert system can serve more users at a time.

Disadvantages:
• Lacks common sense needed in some decision making
• Cannot respond creatively like a human expert would in unusual circumstances
• Domain experts not always able to explain their logic and reasoning
• Errors may occur in the knowledge base, and lead to wrong decisions
• Cannot adapt to changing environments, unless knowledge base is changed







A rule - based expert system framework for small water systems: proof-of-concept

Abstract
Expert systems, when implemented with rigorous content and ease of use, are uniquely valuable to small water systems where personnel will frequently be required to function in multiple capacities with diverse skill requirements.
In this study, the potential for using expert systems to supplement the 'breadth versus depth' paradigm prevalent in the operations and management of small water utilities is demonstrated. An expert system framework was constructed using a limited, but extensible set of rules for compliance monitoring decision support. Two expert system shells were incorporated to answer both data- and goal-driven questions.
A native XML database was used to store the rules and to ensure consistency, extensibility and eliminate duplication between inference mechanisms. The Environmental Protection Agency's Total Coliform Rule was codified into the XML rules database and used to demonstrate 'proof-of-concept.