Welcome to my blog, hope you enjoy reading
RSS

Rabu, 23 Desember 2009

Development of Simple Expert System for Event Register at East Java

Fenomena banyaknya pasien rumas sakit jiwa saat ini mengundang kita untuk lebih mendalami tentang fenomena tersebut. Setelah kami membaca beberapa resensi dan artikel, ternyata penyebab utama banyaknya pasien rumah sakit jiwa tersebut adalah karena stress. Stress dan kesibukan yang tinggi akan menjadikan seseorang menjadi terbebani karena kurangnya refreshing. Maka kami membuat ekspert system tentang panduan even-even yang berlangsung dalam satu tahun sebagai panduan untuk berlibur dan melepaskan penat, meliputi nama event, kota, tanggal penyelenggaraan, klasifikasi, dan genre-nya.

We have three facts: daftarEven, jarak, and foodAvailableAt, shown below:

/*******************************************************
 * daftarEven(Name, Place, Month, Start-Date, *
 *               End-Date, Classification, Genre)      *
 *******************************************************/
daftarEven(shopping-festival, surabaya, 5, 1, 31, family, shopping).
daftarEven(bromo-bike-festival, probolinggo, 8, 26, 31, adult, sport).
daftarEvent(valentineday-party, surabaya, 2, 14, 14, adolescent, party).
daftarEvent(pimits, surabaya, 11, 10, 17, student, science).
daftarEvent(sesindo, surabaya, 12, 12, 12, profesional, seminar).
daftarEvent(persebaya-vs-psm, surabaya, 12, 16, 16, family, sport).
daftarEvent(computer-expo, surabaya, 7, 16, 31, family, exibition).
daftarEvent(konser-ultah, surabaya, 5, 31, 31, adolescent, music).
daftarEvent(kbs, surabaya, -1, -1, -1, family, zoo).
daftarEvent(pandan-wangi, surabaya, -1, -1, -1, family, food).
daftarEvent(karapan-sapi, madura, 8, 17, 20, family, culture).
daftarEvent(reog, ponorogo, -1, -1, -1, family, culture).

foodAvailableAt(shopping-festival,expensive).
foodAvailableAt(persebaya-vs-psm,cheap).
foodAvailableAt(kbs,medium).
foodAvailableAt(pandan-wangi,medium).
foodAvailableAt(valentineday-party,expensive).

jarak(surabaya,probolinggo,100).
jarak(surabaya,madura,50).
jarak(surabaya,ponorogo,125).
jarak(madura,probolinggo),150).
jarak(madura,ponorogo,175).
jarak(probolinggo,ponorogo,200).


Then we make rules :

/*************************************
 * U T I L I T Y   F U N C T I O N S *
 *************************************/
dekat(X,Y)           :- X = Y ;
                 (jarak(X,Y,D), D =< 150) ;
                 (jarak(Y,X,D), D =< 150).

/*E=event,M=month,Ds=date start,De=date-end*/
getDates(E,M,Ds,De)  :- daftarEvent(E,_,M,Ds,De,_,_).
allYearEvent(E)      :- daftarEvent(E,_,-1,-1,-1,_,_).
suitableForKids(E)   :- daftarEvent(E,_,_,_,_,family,_).

/*P=place,c=classification,G=genre*/

getEvent(E,P,C,G)    :- daftarEvent(E,P,_,_,_,C,G).

nearEvents(E,P)      :- dekat(P,Y), getEvent(E,Y,_,_).

/*T=tarif*/

foodAvailable(E,T)   :- foodAvailableAt(E,T) ;
                       (getEvent(E,_,T,G), G = food).

Facts and rules di atas kita simpan dalam file event.pl. Kemudian file pl tersebut kita consult dalam program prolog.



Testing Result
* mencari apakah ada tempat makan di pandan-wangi dan seberapa mahal?
   ? foodAvailable(pandan-wangi, P).


* mencari event pada tempat yang dekat dengan surabaya
   ? nearEvents(E,surabaya).















* mencari adult events di surabaya untuk adult.
        ? getEvents(E,surabaya,adult,_).



 Not the best, but  may useful for u :)

Rabu, 09 Desember 2009

LOOPS IN PROLOG

1. Looping a Fixed Number of Times
Example 1
The following program outputs integers from a specified value down to 1.

Note: Must be M is N-1, loop (M). Because loop(N-1) will not work.
 The result is like this:
?- 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


Selasa, 24 November 2009

INPUT AND OUTPUT in Prolog

Prolog menyediakan fasilitas untuk menampilkan output dan menginput suatu pernyataan (term) atau karakter baik melalui keyboard maupun dari media lain seperti hard disk atau CD-ROM. Penjelasan mengenai hal tersebut akan kami bahas dalam postingan kali ini.
*   Menampilkan output pernyataan
Untuk menampilkan output berupa pernyataan dapat digunakan predikat bawaan dari prolog, yaitu write, writeq, dan nl. Predikat write/1 (satu argumen) digunakan untuk menampilkan output tanpa tanda petik. Predikat writeq sama dengan predikat write, hanya saja writeq menampilkan pernyataan dengan disertai tanda petik (quote), kecuali jika pernyataan yang ditulis hanya satu kata saja, maka tanda petik tidak tertampilkan. Sedangkan predikat nl/0 (tanpa argumen) berfungsi sama dengan tombol enter, yaitu untuk membuat baris baru (new line).
Contoh penggunaan dari predikat-predikat tersebut adalah sebagai berikut.

1. Outputting Terms
The main built-in predicate provided for outputting terms is write/1. Examples:

?- write(26),nl.
26
yes
?- write('a string of characters'),nl.
a string of characters
yes

2. Inputting Terms
The built-in predicate read/1 is provided to input terms. It takes a single argument, which must be a variable. Example:

?- read(X).
: jim.
X = jim

Sabtu, 21 November 2009

Expert System Design (Examples)

We have examples about practiced rule-based expert system in daily life. You can add your experience in comments, of course :).
As known before rule-based is have model If....Then...., like this:
1. IF it’s a rainy day THEN advise people to bring umbrellas when they go out.

2. IF the road is slippery THEN warn people to drive more carefully.

3. IF red light THEN stop.

4. IF green ligth THEN go.

5. IF gejala1 = sakit kepala AND gejala2 = pilek AND gejala3 = demam THEN  penyakit = influenza

6. JIKA seorang pasien terkena gejala dengan ciri-ciri sebagai berikut:
- Nyeri pipi dengan frekuensi ”sangat sering sekali” dan intensitas rasa sakitnya ”sangat sakit sekali”
- Nyeri kepala dengan frekuensi ”sangat sering sekali” dan intensitas rasa sakitnya ”sangat sakit sekali”
- Hidung buntu dengan frekuensi ”sangat sering sekali” dan intensitas rasa sakitnya ”sangat sakit sekali”
MAKA kemungkinan pertama pasien tersebut menderita Sinusitis maksilaris Akut.
 
7.  Diketahui sistem pakar dengan aturan-aturan sebagai berikut:
    R1 : IF suku bunga turun
            THEN harga obligasi naik
    R2 : IF suku bunga naik
          THEN harga obligasi turun
    R3 : IF suku bunga tidak berubah
           THEN harga obligasi tidak berubah
    R4 : IF dollar naik
           THEN suku bunga turun
    R5 : IF dollar turun
           THEN suku bunga naik
    R6 : IF harga obligasi turun
           THEN beli obligasi

Apabila diketahui bahwa dollar turun, maka buatlah keputusan apakah akan membeli obligasi atau tidak ?
Solusi:

Minggu, 08 November 2009

OPERATOR AND ARITHMETIC in Prolog

Now we have a program like this:

















Then we will convert the seven predicates used to operator form which will result the same as output from the program above.

Below is our new program:

Minggu, 18 Oktober 2009

Fact, Rules, Predicate, and Variable in Prolog

It's the Problem

(1) Type the following program into a file and load it into Prolog.
/* Animals Database */
animal(mammal,tiger,carnivore,stripes).
animal(mammal,hyena,carnivore,ugly).
animal(mammal,lion,carnivore,mane).
animal(mammal,zebra,herbivore,stripes).
animal(bird,eagle,carnivore,large).
animal(bird,sparrow,scavenger,small).
animal(reptile,snake,carnivore,long).
animal(reptile,lizard,scavenger,small).

Devise and test goals to find
(a) all the mammals,
(b) all the carnivores that are mammals,
(c) all the mammals with stripes,
(d) whether there is a reptile that has a mane.

and it's the Solution
1. First,You have to type all those words in notepad and then save it with .pl in the end of it's name.

Rule – Based Expert System

Definition:
Rule Based:
Using "if-this, do that" rules to perform actions. Rules-based products implies flexibility in the software, enabling tasks and data to be easily changed by replacing one or more rules.
Expert System:
An expert system is a computer program that simulates the judgement and behavior of a human or an organization that has expert knowledge and experience in a particular field.
Rule Based Expert System:
Rule-based Expert System: An expert system based on a set of rules that a human expert would follow in diagnosing a problem.

Benefits of Expert Systems

Sabtu, 10 Oktober 2009

How to list all possible combination of set that consist of two elements.

We will use PROLOG to solve our problem about "how to list all possible combination of set that consist of two elements". PROLOG is Logical Programming that usual in studying Discrete Math. . A set is an unordered collection of “objects”, usually called “elements”.

First, we create predicates consist of two sets called “books” and “sports” with notepad. Members of The Set of books are "math" and "art". Members of the set of sports are "swim" and "run".

Creating of sets shown below:

Save file as "set.pl". Don't forget the file's extention is "pl" and file's type is "all files".

Biodata Ayyub




Saya terlahir disebuah desa terpencil dikabupaten Lamongan, nama lengkap saya Ayyub Arwani, panggil saja ayyub, saya anak ke-2 dari 5 bersaudara, sejak kecil saya menerima didikan yang keras oleh ayah saya, beliau ingin anak-anaknya mempunyai mental yang kuat untuk bisa bertahan dizaman yang sudah mulai rusak ini, ayah saya memberikan bekal agama yang kuat kepada saya dan saudara-saudara saya, sehingga dimanapun kami tinggal kelak, kami akan tetap berpegang teguh pada agama, dan dipastikan tidak melenceng, beground pendidikan saya juga tidak jauh diri agama, saya mulai mengenyam pendidikan pada usia 5 tahun, saya mulai masuk TK, setelah itu saya melanjutkan ke Madrasah Ibtidaiyah yang ada di desa saya, kemudian saya melanjutkan di SMP MA’ARIF yang juga ada di desa, tetapi setelah lulus SMP ayah saya menitipkan saya pada sebuah pondok pesantren yang masih ada di wilayah kabupaten Lamongan, Dari sana lah saya mulai mengenal kehidupan, belajar banyak hal yang sebelumnya sama sekali tidak terbayang di benak saya, jauh dari orang tua, tidur dengan banyak orang dalam ruangan yang sempit, makan ala kadarnya, tapi dari sana lah semua berawal, saya mulai mencari jati diri yang sesungguhnya, keinginan untuk menjadi manusia yang berguna bagi bangsa, negara, agama, serta membanggakan orang tua.

Biodata Diego



Saya memiliki nama lengkap Diego Afifudin Syauqi, biasa dipanggil Uki. Saya terlahir disebuah kota kecil namun indah dan memiliki predikat sebagai kota santri yaitu kota Gresik. Saya anak ketiga dari tiga bersaudara. Waktu kecil saya disekolahkan di TK Dharma Wanita Gresik,kemudian setelah dua tahun di TK saya melanjutkan ke SDN Sidokumpul 1 Gresik. Di SD saya bersekolah dengan lancar-lancar saja dan hampir tanpa hambatan. Setelah enem tahun bersekolah di sana, saya pun mengikuti tes masuk ke jenjang SMP. Saya diterima di SMPN 3 Gresik,yang boleh dibilang sebagai SMP negeri terfavorit kedua setelah SMPN 1 Gresik. Kehidupan saya waktu di SMP tidak begitu baik. Saya mendapatkan kenalan anak-anak yang bisa dibilang nakal, namun Alhamdulillah saya bisa menghindarinya. Setelah tiga tahun bergelut di SMP, saya pun lulus dan melanjutkan karir saya di SMA dan alhamdulillah saya diterima di SMAN 1 Gresik. Tiga tahun di SMA saya pun lulus dan mengikuti tes SNMPTN. Setelah belajar tanpa mengenal lelah selama liburan, akhirnya saya memetik buahnya. Saya pun diterima di jurusan Sistem Informasi ITS. Sampai sekarang saya berusaha untuk dapat survive di sini dan lulus tepat waktu. Amin.
Cukup sekian perkenalan dari saya, semoga perkenalan yang agak kurang bermanfaat ini dapat menambah nilai matdis kelompok ini, syukur-syukur dapat nilai A semua. Amin….. hehehehe…..
Wassalam.

About M. Muizzuddin


Muhammad Muizzuddin,

    Lahir di kota yang terkenal akan pendukung sepakbolanya yang fanatik yaitu BonekMania,pada hari ke delapan di Bulan Oktober tahun ’90.Saat ini,hampir tiap hari dia Bolak balik dari LakarSantri-Sukolilo sejauh kira-kira 40 km (PP) untuk menuntut ilmu di PN terbaik ke-3 di Indonesia(untuk sementara ini),Institut Teknologi Sepuluh Nopember tepatnya di Jurusan Sistem Informasi .Cowok ber-NRP 5209100145 yang memiliki hobi main Futsal dan membaca novel fiksi ini sekarang beralamatkan di Dukuh Pesapen 1 kavling 10,Sumurwelut,LakarSantri Surabaya.

Biodata Ali Nasrun





Saya bernama lengkap ali nasrun, biasa dipanggil ali. Pertama kali meghirup udara dunia pada tanggal 11 Maret 1978. Lahir dan dibesarkan di kota Wonosobo. Beragama Islam. Saat ini saya tinggal di Jl. Manukan Tengah H-13 Tandes, Surabaya. Kuliah di Sistem Informasi ITS, selain kuliah saya juga bekerja di Departemen Keuangan, Kanwil Ditjen Perbendaharaan Provinsi Jawa Timur yang bertempat di jalan Indrapura no. 5 Surabaya.Cukup sekian yang dapat saya sampaikan.
Terima kasih.

Rabu, 30 September 2009

Anggota Team

Ayyub Arwani 5209100701
Diego Afifudin Syauqi 5209100165
M. Muizzudin 5209100145
Ali Nasrun 5209108711