Minggu, 20 Desember 2009

REVISI Expert System..

Sebelumnya kami membut Expert system mengenai absen sidik jari dan pemindaian mata. Tapi, hal itu sangat sulit untuk di buat ke dalam Prolog. Maka dari itu, kami membuat konsep Expert System yang baru. Expert System kali ini lebih simple, yaitu mengenai Pencarian Resep-Resep Kue Tradisional Indonesia.

Kami membuat Expert System bertajuk Development of Simple Expert System for Finding Recipe of Traditional Indonesian Cake. 


Untuk pembuatan dalam prolognya, sebelumnya anda mendeklarasikannya ke dalam notepad seperti ini


Setelah itu consult dalam prolog, dan apabila ingin mencari resep, tuliskan find(resepkue). ,contoh : find(serabi).



DOWNLOAD

Oke, berikut link untuk mendownload Final Project yang telah kami buat.

berikut adalah link untuk mendownload Report dari Final Project kami, yaitu








Dan berikut merupakan project kami yang berada di prolog, yaitu kue.pl
kue.pl


Dan yang terakhir merupakan project kami yang berada di notepad yang berisi rule dari final project kami
kue1.txt

Selasa, 08 Desember 2009

INPUT AND OUTPUT in PROLOG.. (Exercise 6)



Exercise 6

SOAL 1
Define a predicate to output the values of the squares of the integers from N1 to
N2 inclusive and test it with N1 = 6 and N2 = 12.
JAWAB
Deklarasikan dalam bentuk notepad, kemudian simpan dengan format .pl

consult dalam prolog, lalu ketikkan outsquare(7,15). akhiri dengan tanda titik (.) lalu akan keluar hasilnya

SOAL 2
 Define and test a predicate to read in a series of characters input by the user and
output all of those before the first new line or ? character.
JAWAB
Deklarasikan dalam bentuk notepad, kemudian simpan dengan format .pl

consult dalam prolog, lalu ketikkan go. akhiri dengan tanda titik (.) kemudian tulis sesuai keinginan anda lalu akan keluar hasilnya

SOAL 3
Using the  person clauses given in Section 6.3.1, find the professions of all
those over 40.
JAWAB
Deklarasikan dalam bentuk notepad, kemudian simpan dengan format .pl

consult dalam prolog, lalu ketikkan find. akhiri dengan tanda titik (.) lalu akan keluar hasilnya



Senin, 07 Desember 2009

INPUT AND OUTPUT in PROLOG.. (Summary chapter 6)

 SUMMARY CHAPTER 6


Sekarang, kita akan membahas tentang Looping dalam Prolog. Seperti kita ketahui, sebagian besar bahasa pemrograman konvensional memiliki fasilitas yang memungkinkan perulangan satu set instruksi ke b dilaksanakan untuk beberapa kali, atau sampai suatu kondisi terpenuhi. Meskipun, Prolog tidak memiliki fasilitas perulangan, perulangan efek serupa dapat dilakukan dalam beberapa beberapa cara, menggunakan backtracking, rekursi, built-in predikat, atau kombinasi dari itu.  
  • Looping a Fixed Number of Times
Tidak seperti java, yang memiliki fasilitas untuk-loop untuk mengaktifkan satu set instruksi yang akan dieksekusi nomor tetap kali, Prolog tidak tersedia untuk melakukan hal itu (langsung), tapi efek yang sama dapat diperoleh dengan menggunakan rekursi, seperti:
testloop(0).
testloop(N) :- N>0, write(‘Number : ‘), write(N), nl, M is N-1, testloop(M)
Testloop predikat yang didefinisikan sebagai 'loop dari N, tulis nilai N, kemudian kurangi satu untuk diberikan kepada M, kemudian loop dari M'. "Dan oleh klausa pertama, didefinisikan sebagai 'jika argumen adalah nol, melakukan apa-apa (stop!)'.
uji program:

?- testloop(3).
Number : 3
Number :2
Number :1
yes

  • Looping until a Condition is Satisfied
Contoh di bawah ini menunjukkan penggunaan istilah rekursi untuk membaca dimasukkan oleh pengguna dari keyboard dan output mereka ke layar, sampai akhir adalah sebuah kata yang dihadapi, dengan menggunakan ‘disjunctive goal’(word=end).
test :- write(‘Type the word : ‘), read(word), write(‘Input was ‘), write(word), nl, (word=end; test).
?- test.
Type the word : Hello.
Input was Hello
Type the word : ITS.
Input was ITS
Type the word : end.
Input was end.
yes
 
  • Backtracking with failure
 Seperti namanya, predikat gagal, selalu gagal, apakah pada 'standar' evaluasi kiri ke kanan atau pada kemunduran. Dengan menggabungkan dengan otomatis Prolog backtracking, untuk mencari database untuk menemukan semua klausa dengan properti khusus, kita dapat memiliki perulangan otomatis.

Contoh program di bawah ini dirancang untuk mencari database yang berisi klausul yang mewakili nama, umur, tempat tinggal, dan pekerjaan dari sejumlah orang.

Database berisi nilai-nilai ini:

person(john,smith,45,london,doctor).
person(martin,williams,33,birmingham,teacher).
person(henry,smith,26,manchester,plumber).
person(jane,wilson,62,london,teacher).
person(mary,smith,29,glasgow,surveyor).

predikat Somepeople di bawah ini adalah untuk pencarian orang dalam database yang merupakan nama keluarga smith
somepeople :- person(Forename, Surname, _, _, _), Surname =smith, write(Forename), write(‘ ‘), write(Surname), nl, fail.
somepeople.
Yang gagal dalam predikat somepeople digunakan sebagai kemunduran, yang menemukan semua database dalam program.

Output program ini adalah:

?- somepeople.
john smith
henry smith
mary smith
yes

Rabu, 25 November 2009

INPUT AND OUTPUT in PROLOG..

SOAL 1

Define a predicate makelower/0 which reads in a line of characters from the
keyboard and outputs it again as a single line with any upper case letters converted
to lower case. (The ASCII values of the characters a, z, A and Z are 97, 122, 65 and
90, respectively.)
Thus the following would be a typical use of makelower:
?- makelower.
: This is an Example 123 inCLUDing numbers and symbols +-*/@[] XYz
this is an example 123 including numbers and symbols +-*/@[] xyz
yes

JAWAB
1. deklarasikan dan simpan dengan format .pl



2. lalu buka file tadi


3. lalu ketikkan kata makelower. (akhiri dengan tanda titik), setelah itu tuliskan kata-kata terserah anda, huruf besar kecil juga boleh

hasilnya adalah, semua huruf besar yang ditulis menjadi kecil

SOAL 2
Define a predicate  copyterms which reads all the terms in a text file and
outputs them as terms to another text file one by one on separate lines.
The output file should be in a format suitable for use as the input file in a
subsequent call of copyterms. Thus for example if the input file contained
'first term'. 'second term'.
'third term'.
fourth. 'fifth term'.
sixth.
The output file would contain
'first term'.
'second term'.
'third term'.
fourth.
'fifth term'.
sixth.


JAWAB
1. deklarasikan dan simpan dengan format pl

2. buat file baru bernama Infile.txt, isinya seperti berikut

3. Lalu buka file berformat .pl tadi


4. Setelah itu ketikkan copyterms('Infile.txt','Outfile.txt').


5. hasilnya akan keluar di file baru bernama Outfile.txt, yang berisi seperti ini



SOAL 3
Create a text file testa.txt containing two lines, each of five characters followed
by a new line, e.g.
abcde
fghij
Define a predicate readfile that will read  fifteen characters from this file one by
one and output the ASCII value of each character. Use this to establish whether the   Input and Output  83
representations of 'end of file' and 'end of record' for your version of Prolog are as
suggested in Sections 5.9.1 and 5.9.2, respectively.

JAWAB
1. deklarasikan lalu simpan dengan fromat .pl

2. lalu buat file testa.txt yang berisi seperti di bawah


3. setelah itu buka file berformat .pl tadi


4. Setelah itu ketikkan readfile('testa.txt'). hasilnya adalah seperti ini





SOAL 4
 Using a text editor, create two text files in1.txt and in2.txt, each comprising a
number of terms terminated by end.
Define and test a predicate combine that takes the names of two input files as its
first two arguments and the name of an output file as its third argument. The output
file should contain the terms in the first input file followed by the terms in the
second, one per line and terminated by end.
JAWAB
1. deklarasikan dan simpan dengan format .pl


2. Buat s file lagi, yang satu bernama In1.txt dan yang kedua bernama In2.txt. Isinya lihat di bawah ini (bisa berubah-ubah)


3. lalu buka file yang berformat .pl tadi


4. Setelah itu tuliskan combine('In1.txt','In2.txt','Out.txt').


5. Hasilnya akan muncul file baru bernama Out.txt dan isinya adalah gabungan antara In1 dan In2 seperti ini






SOAL 5
Define and test a predicate compare that reads in two text files term by term
and for each pair of corresponding terms outputs a message either saying that they
are the same or that they are different. Assume that both files contain the same
number of terms and that the final term in each is end.
JAWAB
1. deklarasikan dan simpan dalam format .pl

2. Lalu buat file bernama Satu.txt dan Dua.txt, isinya seperti di bawah ini





 5. setelah itu buka file berformat .pl tadi, dan ketikkan compare('Satu.txt','Dua.txt'). maka hasilnya akan seperti berikut



Selasa, 24 November 2009

SUMMARY FOR CHAPTER 5

Input dan Output

built-in predikat yang membaca dari dan menulis baik untuk pengguna
terminal (keyboard dan layar) atau file, kedua istilah tersebut dengan istilah dan characterby -
karakter dalam program Anda sendiri. nilai ASCII untuk memanipulasi string karakter. Menggunakan istilah lebih sederhana dan akan dijelaskan terlebih dahulu. Awalnya, maka akan diasumsikan bahwa
semua output ke layar pengguna dan semua input adalah dari pengguna keyboard. Masukan dan keluaran menggunakan file eksternal.

Syarat keluaran
predikat mengambil satu argumen, yang harus yang valid Prolog istilah. Mengevaluasi menyebabkan predikat istilah yang akan ditulis ke arus keluaran
sungai, yang secara default adalah layar pengguna. (Yang dimaksud dengan arus keluaran Dengan Logika Pemrograman Prolog
streaming)

Contoh
? - Menulis (26), nl.
26
ya
? - Menulis ( 'string karakter'), nl.
string karakter
ya
? - Menulis ([a, b, c, d, [x, y, z]]), nl.
[a, b, c, d, [x, y, z]]
ya
? - Tulis (mypred (a, b, c)), nl.
mypred (a, b, c)
ya
? - Write ( 'Contoh penggunaan nl'), nl, nl, write ( 'akhir contoh'), nl.
Contoh penggunaan nl
contoh akhir
ya


Syarat memasukkan
Built-in predikat membaca disediakan untuk memasukkan 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'

Input dan Output Menggunakan Karakter
Meskipun input dan output dari syarat-syarat sangat mudah, penggunaan tanda kutip dan penuh berhenti 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. Sebuah pendekatan yang lebih baik untuk masalah semacam ini adalah untuk masukan sebuah karakter pada satu waktu. Untuk melakukan hal ini, pertama-tama perlu
untuk mengetahui tentang nilai ASCII karakter. Semua mencetak karakter dan banyak karakter non-cetak (seperti ruang dan tab) memiliki sesuai ASCII (American Standard Kode untuk Informasi Interchange) nilai, yang merupakan integer 0-255. Nilai ASCII karakter yang kurang dari atau sama dengan 32 yang dikenal sebagai putih ruang karakter.

Keluaran karakter
Karakter adalah output dengan menggunakan built-in predikat meletakkan 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
? - Meletakkan (97), nl.
sebuah
ya
? - Meletakkan (122), nl.
z
ya
? - Meletakkan (64), nl.
@
ya

Output ke sebuah File
Meskipun definisi di atas kirim menyatakan bahwa 'semua file yang sudah ada dengan yang sama Namanya dihapus ', ada kemungkinan lain, yang penting bagi beberapa aplikasi, yaitu bahwa file tersebut tidak dihapus dan setiap output ditempatkan setelah akhir isi yang ada file. Baik 'menimpa' dan 'append' pilihan
kemungkinan besar akan tersedia dalam pelaksanaan praktis Prolog tetapi mungkin melibatkan menggunakan predikat yang berbeda (misalnya terbuka) sebagai pengganti atau serta kirim.

Input: Mengubah Input Current Stream
Input stream yang aktif dapat diubah dengan menggunakan melihat / 1 predikat. Ini membutuhkan argumen tunggal, yang merupakan atom atau variabel yang mewakili nama file, misalnya lihat ( 'myfile.txt'). Mengevaluasi sebuah tujuan melihat menyebabkan file bernama input yang menjadi sungai. 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.

Senin, 23 November 2009

Penerapan Expert System pada Sistem Identifikasi Suara dan Sidik Jari sebagai Absen Kehadiran

Penerapan Expert System dengan Menggunakan Sistem identifikasi suara dan sidik jari sebagai absen kehadiran

Latar belakang
Dewasa ini, sistem absensi dengan cara tandatangan dirasa kurang optimal dalam penjalanannya. Banyak sekali siswa, mahasiswa hingga pegawai karyawan suka membolos dan terlambat masuk. Seperti yang kita ketahui sekarang ini, sistem absensi tandatangan yang diberlakukan di kampus jurusan Sistem Informasi ITS sangat menguntungkan mahasiswa yang biasanya malas kuliah. Banyak dari mereka yang menggampangkan jadwal kuliah, hingga mereka sering sekali datang tidak tepat waktu. Bahkan, parahnya lagi, mereka seringkali titip absen kepada teman mereka yang biasanya rajin masuk kuliah. Hal, ini sangat berpengaruh buruk bagi siswa yang sering titip absen (TA) ini, karena mereka akan ketinggalan materi kuliah dan tidak tahu apa-apa tentang materi yang dibahas. Walaupun absen mereka penuh, tapi mereka tidak mendapatkan apa-apa. Bahkan TA ini lebih buruknya lagi menjadi budaya mahasiswa sekarang ini. Sama halnya dengan mahasiswa, para karyawan baik swasta maupun negeri biasanya sering datang terlambat ke kantor, karena mereka menganggap absensi itu yang penting ada. Beberapa kantor sudah menerapkan sistem absensi check lock yang didalamnya terdapat waktu kedatangan para karyawan tersebut. Hal ini sebenarnya memang sudah bagus, tapi masih ada juga beberapa karyawan yang mengakalinya dengan titip kepada temannya. Apabila hal ini terus menerus dilakukan, maka keterlambatan dan membolos akan menjadi budaya bangsa Indonesia.
Tujuan
Menjadikan disiplin dan tegas dalam bekerja dan belajara merupakan hal yang utama dalam menjalankan keseharian. Supaya keterlambatan dan membolos itu tidak menjadi budaya yang buruk bagi Bangsa Indonesia
Penjelasan
Sistem absensi dengan menggunakan suara dan sidik jari ini diterapkan pada seluruh kantor dan di setiap ruang kelas pada kampus. Setiap ruang dipasang alat pendeteksi suara dan sidik jari yang kemudian dihubungkan ke operator pusat. Fungsi operator pusat ini adalah untuk memantau, mendeteksi serta mencatat kehadiran dari mahasiswa atau pegawai yang datang. Dengan hal ini, maka budaya titip absen atau yang biasa disebut dengan TA tidak akan terjadi lagi.