Studi Kasus : PROLOG

12.1 Membahas Contoh Program
suami(muktar,kiyah). // muktar adalah suami dari kiyah
isteri(kiyah,muktar). // kiyah adalah isteri dari muktar
ibu(kiyah,ani). 
ibu(kiyah,kholik).
ibu(kiyah,mutia). // kiyah adalah ibu dari mutia
ayah(muktar,ani).
ayah(muktar,kholik). // muktar adalah ayah dari kholik
ayah(muktar,mutia).
adik(kholik,ani).
adik(mutia,ani). // mutia adalah adik dari ani
adik(mutia,kholik).
kaka(ani,kholik).
kaka(ani,mutia). // ani adalah kaka dari mutia
kaka(kholik,mutia).
//melakukan pengambilan kesimpulan, pernyataan baru
anak(Y):- // akan benar anak si Y apabila
 ibu(kiyah,Y),ayah(muktar,Y). // ibunya adalah kiyah dan ayahnya adalah muktar
menikah(X,Y):- //akan benar menikah si X dengan Y apabila
 suami(X,Y),isteri(Y,X). // suami (X,Y) dan isteri (Y,X)
menikah(Y,X):-
 suami(X,Y),isteri(Y,X).
saudara(X,Y):-
 adik(X,Y),kaka(Y,X).
saudara(Y,X):-
 adik(X,Y),kaka(Y,X).


OUTPUT :



12.2 Membuat Program Sederhana
Dengan menggunakan bahasa pemrograman Prolog kita akan terbantu dalam memecahkan suatu masalah karena bahasa pemrograman Prolog dapat bekerja secara otomatis yang kemampuannya sama dengan manusia. Berikut adalah contoh sederhana dari bahasa pemrograman Prolog

Bahasa Manusia
Keterangan :
Panji mempunnyai isteri bernama Nani, mereka mempunyai 3 orang anak yaitu: Bobi, Nina dan Tino. Tino mempunyai isteri bernama Sari, mereka mempunyai 2 orang anak yang bernama Dida dan Dodo. Dida dan Dodo adlah cucu dari Panji dan Nani, mereka juga keponakan dari Bobi dan Nina. Bobi mempunyai dua orang adik yang bernama Nina dan Tino. Nina mempunyai 1 orang kakak yaitu Bobi dan 1 orang adik yaitu Tino. Sari adalah menantu dari Panji dan Sari.

Bahasa Prolog
Domains
Kakek,nenek,ayah,ibu,anak,suami,istri,kakak,adik,cucu,paman,
bibi,keponakan,mertua,menantu=symbol
namakakek,namacucu,namanenek,namaayah,namaibu,namaanak,
namasuami,namaistri,namakakak,namaadik,namapaman,namabibi,
namakeponakan,namamertua,namamenantu=symbol
Predicates
kakek(namakakek,namacucu)
nenek(namanenek,namacucu)
ayah(namaayah,namaanak)
ibu(namaibu,namaanak)
suami(namasuami,namaistri)
istri(namaistri,namasuami)
kakak(namakakak,namaadik)
adik(namaadik,namakakak)
paman(namapaman,namakeponakan)
bibi(namabibi,namakeponakan)
mertua(namamertua,namamenantu)
menantu(namamenantu,namamertua)
Clauses
ayah(panji,bobi).
ayah(panji,nina).
ayah(panji,tino).
ayah(tino,dida).
ayah(tino,dodo).
ibu(nani,bobi).
ibu(nani,nina).
ibu(nani,tino).
ibu(sari,dida).
ibu(sari,dodo).
kakek(panji,dida) :- ayah(panji,tino) and ayah(tino,dida).
kakek(panji,dodo) :- ayah(panji,tino) and ayah(tino,dodo).
nenek(nani,dida).
nenek(nani,dodo).
suami(panji,nani).
suami(tino,sari).
istri(nani,irham).
istri(sari,tino).
kakak(bobi,nina).
kakak(bobi,tino).
kakak(dida,dodo).
adik(nina,bobi).
adik(tino,bobi).
adik(dodo,dida).
paman(bobi,dida).
paman(bobi,dodo).
bibi(nina,dida).
bibi(nina,dodo).
mertua(panji,sari).
mertua(nani,sari).
menantu(sari,panji).
menantu(sari,nani).

Program Bahasa prolog diatas mempunyai banyak sekali kemungkinan solusi/jawaban yang bisa diketahui melalui Goal kotak dialog.
Beberapa contoh diantaranya adalah:
1.      Keponakan dari Bobi
Goal:paman(bobi,Namakeponakan).
Namakeponakan=dida
Namakeponakan=dodo
Dapat diketahui bahwa keponakan dari Bobi adalah Dida dan Dodo
1.      Anak dari Panji
Goal:ayah(panji,Namaanak).
Namaanak=bobi
Namaanak=nina
Dapat diketahui bahwa anak dari Panji adalah Bobi, Nina dan Tino
1.      Mertua dari Sari
Goal:menantu(sari,Namamertua).
Namamertua=panji
Namamertua=nani
Dapat diketahui bahwa mertua dari Sari adalah Panji dan Sari
1.      Keponakan dari Nina
Goal:bibi(nina,Namakeponakan).
Namakeponakan=dida
Namakeponakan=dodo
Dapat diketahui bahwa keponakan dari Nina adalah Dida dan Dodo.
Masih banyak sekali terdapat kemungkinan dan peluang jika program dalam bahasa prolog dikembangkan lebih lanjut.


Daftar Pustaka :

Bahasa Pemrograman untuk Aplikasi Inteligensi Buatan : PROLOG

Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis, programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankankomputer.
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl sebagai teknik pencariannya seperti pada DelphiPascalBASICCOBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebutheuristik (heutistic) dengan menggunakan pohon logika.

Sejarah Prolog
Prolog merupakan singkatan dari “Programing In Logic” pertama kali dikembangkan oleh Alain Colmetrouer dan P.Roussel di Universitas Marseilles Prancis tahun 1972. Selama tahun 70-an, prolog menjadi populer di Eropa untuk aplikasi AI. Sedangkan di Amerika Serikat, para peneliti juga mengembangkan bahasa lain untuk aplikasi yang sama yaitu LISP. LISP mempunyai kelebihan dibandingkan prolog , tetapi LISP lebih sulit dipelajari.
Pada mulanya, Prolog adalah bahasa yang sangat murni yang didasarkan pada keindahan logika. Sejak ditemukannya pada tahun 1970-an oleh ketiga orang di atas, Prolog berkembang dengan lambat dan hanya digunakan oleh para peneliti dari universitas-universitas terkenal karena hanya merekalah yang dapat mengerti arti dari pentingnya Prolog. Dalam masa pengembangannya, para peneliti banyak menemukan kebutuhan-kebutuhan baru yang perlu ditambahkan di Prolog.
Pada awalnya, Prolog dan LISP sangat lambat dalam eksekusi program dan memakan memori yang besar sehingga hanya kalangan tertentu yang menggunakannya. Dengan adanya Compiler Prolog, kecepatan eksekusi program dapat ditingkatkan, namun Prolog masih dipandang sebagai bahasa yang terbatas (hanya digunakan di kalangan perguruan tinggi dan riset).
Pada awal tahun 1980-an, dunia industri mulai menyadari kelebihan-kelebihan yang dimiliki oleh Prolog dibandingkan dengan bahasa konvensional lainnya. Dengan terlibatnya dunia industri, maka timbul tuntutan-tuntutan baru, misalnya tuntutan akan eksekusi waktu yang lebih cepat, kebutuhan memori yang lebih kecil dan kebutuhan praktis lainnya. Namun hal ini justru menimbulkan 2 kelompok yang mempunyai filosofi yang berbeda.
Di 1 pihak, mereka menganggap bahwa Prolog adalah bahasa penelitian sehingga mereka menginginkan banyak hal tercakup dalam Prolog sehingga Prolog dapat digunakan secara luwes untuk berbagai keperluan penelitian. Di pihak lain, mereka yakin bahwa Prolog seharusnya dapat menjadi bahasa yang berguna untuk mengembangkan berbagai macam aplikasi yang bukan penelitian.
Pandangan umum Prolog, hanya digunakan di kalangan perguruan tinggi dan riset, tiba-tiba berubah di tahun 1981 pada konverensi internasional I dalam system generasi kelima di Tokyo, Jepang. Jepang yang saat itu mengalami kesulitan bersaingdalam pemasaran komputer dengan Amerika Serikat, mencanangkan rencana pengembangan teknologi hardware dan software untuk tahun 1990-an. Dan bahasa yang dipilih adalah Prolog.
Sejak saat itu, banyak orang menaruh minat pada prolog dan saat itu telah dikembangkan versi prolog yang mempunyai kecepatan dan kemampuan yang lebih tinggi, lebih murah dan lebih mudah digunakan, baik untuk komputer mainframe maupun komputer pribadi sehingga Prolog menjadi alat yang penting dalam program aplikasi kecerdasan buatan (AI) dan pengembangan system pakar (expert system).


Perbedaan Prolog dengan Bahasa Lain

Hampir semua bahasa pemrograman yang ada pada saat ini seperti Pascal, C, Fortran, disebut procedural language untuk menggunakan bahasa tersebut diperlukan algoritma atau procedure yang dibuat untuk menyelesaikan masalah. Program dapat menjalankan procedure yang sama berulang-ulang dengan data masukkan yang berbeda-beda. Procedure serta pengendalian program sepenuhnya ditentukan oleh programmer dan perhitungan yang dilakukan sesuai dengan procedure yang telah dibuat. Dengan kata lain, Pemrograman harus memberi tahu komputer bagaimana komputer harus menyelesaikan masalah.
Prolog mempunyai sifat-sifat yang berbeda dengan bahasa yang disebutkan di atas, prolog disebut sebagai object oriented language atau declarative language. Dalam prolog tidak terdapat prosedur, tapi hanya tampilan data-data object (fakta) yang akan diolah dengan relasi antar object tersebut yang membentuk suatu aturan. Aturan-aturan ini disebut HEURISTIK dan diperlukan dalam mencari suatu jawaban, dengan kata lain, prolog dalam prolog adalah database.
Pemrogram menentukan tujuan (Goal) dan komputer akan menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. Caranya dengan menggunakan “Formal Reasoning” yaitu membuktikan cocok tidaknya tujuan dengan data-data yang telah ada dan relasinya. Prolog memecahkan masalah seperti yang dilakukan oleh fikiran manusia.
Dengan demikian, Prolog sangat ideal untuk memecahkan masalah yang tidak terstruktur dan yang prosedur pemecahannya tidak diketahui, khusunya untuk memecahkan masalah non numeric.

Bahasa Pemrograman yang Umum (Basic, Pascal, C, Fortran):
Bahasa Pemrograman Prolog :
1. diperlukan algoritma/prosedur untuk memecahkan masalah (procedural languange)
2. program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang berbeda-beda.
Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan sesuai dengan prosedur yang telah dibuat.
Object oriented languangeatau declarative languange.
Tidak terdapat prosedur, tetapi  hanya kumpulan data-data objek (fakta) yang akan diolah, dan relasi antar objek tersebut membentuk aturan yang diperlukan untuk mencari suatu jawaban
Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan relasinya.
Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.
Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang masalah menuju suatu tujuan (jawaban tertentu). Contoh : Pembuatan program catur dengan Prolog

Keunggulan Prolog
Keunggulan Prolog terletak pada kemampuannya untuk mengambil kesimpulan (jawaban) dari data-data yang ada. Karena program dalam bahasa prolog tidak memerlukan prosedur (algoritma). Prolog sangat ideal untuk memecahkan masalah yang tidak terstruktur dan yang prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non-numerik.
Misalnya, dalam pembuatan program catur dengan prolog untuk menentukkan gerakan catur anda tidak perlu menganalisa semua kemungkinan atau menentukkan suatu prosedur tertentu untuk untuk menentukan gerakan berikutnya. Tetapi anda cukup menuliskan aturan umum permainan catur dan lebih baik lagi jika ditambah dengan aturan yang diperoleh dari pengalaman. Prolog akan menentukan sendiri langkah yang akan diambil berdasarkan data-data yang ada saat itu dan aturan-aturan yang diberikan.

Aplikasi Prolog

1. Sistem Pakar (Expert System).

Sistem Pakar (Expert System) adalah program yang menggunakan teknik pengambilan kesimpulan dari data-data yang didapat seperti yang dilakukan oleh seorang ahli dalam memecahkan masalah. Komputer dapat diprogram untuk berbuat seperti orang yang ahli dalam bidang tertentu. Komputer yang demikian dapat dijadikan seperti konsultan atau tenaga ahli di bidang tertentu yang dapat menjawab pertanyaan dan memberikan nasehat yang dibutuhkan. Tujuan utama sistem pakar bukan untuk menggantikan kedudukan seseorang ahli atau pakar tetapi hanya untuk memasyarakatkan pengetahuan dan pengalaman pakar-pakar tersebut. System pakar memungkinkan orang lain meningkatkan produktifitasnya, memperbaiki kualitas keputusannya, sistem pakar bias memecahkan masalah yang rumit meskipun tidak ada seorang ahli.

2.   Pengolahan bahasa alami (Natural Language processing).
Natural Language Processing adalah program yang dibuat agar pemakai dapat berkomunikasi dengan computer dalam bahasa manusia sehari-hari (bahasa apapun). Sebagai contoh adalah Lotus HAL, yaitu program Bantu untuk Lotus 1-2-3 agar dapat menerima perintah bahasa inggris seperti bahasa biasa. Program pengolahan bahasa alami menggunakan teknik AI dalam analisis input bahasa yang dimasukan melalui keyboard, program tersebut berusaha mengidentifikasi sintak, semantil dan konteks yang terkandung dalam suatu kalimat agar bias sampai pada kesimpulan untuk bias memberikan jawaban.

3.  Robotik
Dalam robotik, Prolog digunakan untuk mengolah data masukan yang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan. Apalagi kalau robot menemukan peristiwa yang tidak diharapkan atau situasi yang berbeda.

4.  Pengenalan Pola (Pattern Recognition).
Pengenalan pola banyak diterapkan dalam bidang robotic dan pengolahan citra (image processing). Misalkan, bagaimana computer dapat membedakan gambar sebuah benda dan gambar benda yang lain, atau sebuah obyek yang berada diatas obyek lain.

5.  Belajar
Bidang ini berkaitan dengan program yang dapat belajar dari kesalahan yang pernah dilakukan, dari pengamatan atau dari hal-hal yang pernah dilakukan. Secara singkat, berarti membuat sebuah computer mampu untuk mengambil manfaat dari pengalaman yang pernah ditemuinya.

6.  Game
suatu cara belajar yang digunakan dalam menganalisa interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategi-strategi yang rasional. Game adalah permainan video yang dimainkan pada komputer, dan bukan pada konsol permainan. Game dibuat berdasarkan logika yang dikembangkan dan diterapkan ke dalam bentuk visual.
Macam-macam Prolog
1.  Strawberry prolog
2.  Visual prolog
3.  SWI prolog
4.  Turbo prolog

Daftar Pustaka :

Penalaran

Penalaran adalah proses kegiatan berfikir manusia melalui data, fakta atau empiris untuk pengambilan kesimpulan. Dengan kata lain penalaran adalah proses penafsiran fakta sebagai dasar untuk menarik kesimpulan
Terdapat dua jenis penalaran :
1.      Penalaran Induktif
Adalah proses menarik kesimpulan yang berupa prinsip atau sikap yang berlaku umum berdasarkan fakta-fakta yang bersifat khusus.
Dalam penalaran induktif pun masih terdiri dari 3 bentuk penalaran :
1.      Generalisasi
Adalah proses penalaran yang tidak sesuai dengan peristiwa individual dalam menuju kesimpulan umumnya.
Contoh :
–          Bunga mawar terlihat cantik, dan baunya harum.
–          Bunga melati bunga yang cantik dan baunya harum.
Generalisasi : Semua bunga cantik berbau harum
Pernyataan “Semua bunga cantik berbau harum” hanya memiliki tingkat kebenaran yang masih mungkin, karena kebenarannya pun juga belum diselidiki. Contoh kesalahan : Bunga bangkai juga cantik, namun baunya tidak harum.
Jenis-jenis generalisasi :
– Generalisasi tanpa loncatan induktif
Adalah generalisasi dimana seluruh fenomena yang menjadi atas dasar penyimpulan yang telah diselidiki.
Contoh: data survey LSM
– Genrealisasi dengan loncatan induktif
Adalah generalisasi dimana kesimpulan diambil dari sebagian fenomena yang diselidiki
diterapkan juga untuk semua fenomena yang belum diselidiki.
contoh: Hampir seluruh partai mendapat pendapatan dari hasil korupsi
2. Analogi
Adalah cara penarikan kesimpulan dari sebuah penalaran dengan membandingkan dua hal yang mempunyai sifat sama. Analogi memiliki empat fungsi, yakni :
1)   Membandingkan beberapa orang yang memiliki kesamaan sifat
2)   Meramalkan kesamaan
3)   Menyingkapkan kekeliruan
4)   Mengklasifikasi
Contoh :
Jangan kita seperti katak dalam tempurung, yang kita merasa hebat dalam wilayah kita sendiri, namun sebenarnya kita belumlah apa-apa karena masih banyak yang belum kita ketahui di luar sana.
Ada 2 macam analogi,yaitu :
1. Analogi Induktif
Analogi induktif, yaitu analogi yang disusun berdasarkan persamaan yang ada pada dua fenomena, kemudian ditarik kesimpulan bahwa apa yang ada pada fenomena pertama terjadi juga pada fenomena kedua. Analogi induktif merupakan suatu metode yang sangat bermanfaat untuk membuat suatu kesimpulan yang dapat diterima berdasarkan pada persamaan yang terbukti terdapat pada dua barang khusus yang diperbandingkan.
Contoh analogi induktif :
Timnas Indonesia lolos dalam semifinal piala asia dengan demikian timnas Indonesia akan masuk piala dunia di tahun mendatang dengan berlatih setiap hari.
2. Analogi Deklaratif
Analogi deklaratif merupakan metode untuk menjelaskan atau menegaskan sesuatu yang belum dikenal atau masih samar, dengan sesuatu yang sudah dikenal. Cara ini sangat bermanfaat karena ide-ide baru menjadi dikenal atau dapat diterima apabila dihubungkan dengan hal-hal yang sudah kita ketahui atau kita percayai.
contoh analogi deklaratif :
deklaratif untuk penyelenggaraan negara yang baik diperlukan sinergitas antara kepala negara dengan warga negaranya. Sebagaimana manusia, untuk mewujudkan perbuatan yang benar diperlukan sinergitas antara akal dan hati.
3. Hubungan Kausal (Hubungan sebab-akbat)
Adalah penalaran yang didapat dari gejala-gejala yang saling berhubungan. Penalaran hubungan kausal masih terdiri dari tiga macam lagi :
1)      Sebab – akibat : Andi tidak hati-hati dalam mengendarai sepeda motor, sehingga menjadikan ia mengalami kecelakaan.
2)      Akibat – sebab : Perut Ani sakit karena tadi pagi ia tidak sarapan.
3)      Akibat – akibat : Pak guru yang mengajar sejarah tidak berangkat ke sekolah, sehingga nanti pelajaran sejarah akan kosong.
2.      Penalaran Deduktif
Adalah suatu penalaran yang bermula dari peristiwa umum, yang telah diketahui dan diyakini kebenarannya, dan menghasilkan kesimpulan baru yang bersifat lebih khusus. Bentuk sederhana dari penalaran adalah silogisme, yaitu proses penalaran dimana dari dua pernyataan ditarik dalam satu pernyataa baru yang disebut konklusi.
Contoh :
Premis 1 : Jika matahari terik, maka jemuran akan kering
Premis 2 : Sekarang jemuran kering
Konklusi : Maka matahari terik
Jenis-jenis penalaran deduktif :
a) SILOGISME
Penalaran deduksi biasanya sering digunakan adalah silogisme. Silogisme adala penalaran secara tidak langsung. Dalam silogisme kita terdapat dua premis dan satu premis kesimpulan. Kedua premis itu adalah premis umum/premis mayor dan premis khusus/premis minor. Dari kedua premis tersebut kesimpulan dirumuskan.
Rumus menentukan kesimpulan sebagai berikut :
PU : semua A = B
PK : C = A
K : C = B
Contoh : PU : Semua hewan yang mempunyai telinga berkembang biak dengan melahirkan
PK : Rusa memiliki telinga
K : Rusa tentu berkembang biak dengan
B.  ENTINEM
Entinem adalah silogisme yang dipersingkat, hanya terdiri dari premis khusus dan kesimpulan. Entimen mengandung penyimpulan sebab akibat dari kedua preposisi tersebut, yaitu preposisi khusus (premis khusus) merupakan sebab bagi apa yang terkandung di dalam preposisi kesimpulan
Contoh :
Silogisme kategorial : PU : Semua dosen (A) adalah lulusan perguruan tinggi (B)
PK : Bapak Budi C adalah seorang dosen (A)
K : Bapak Budi C adalah seorang dosen (B)
Entinem : Bapak Budi adalah lulusan perguruan tinggi ia seorang dosen

K PK

Daftar Pustaka :

INFERENSI DALAM LOGIKA ORDER PERTAMA

9.1 Mengubah inferensi order pertama menjadi inferensi proposisi

Inferensi pada logika proposisi dapat dilakukan dengan menggunakan resolusi. RESOLUSI adalah suatu aturan untuk melakukan inferensi yg dapat berjalan secara efisien dalam suatu bentuk khusus yg disebut  Conjunctive Normal Form (CNF).
         CNF ini memiliki ciri-ciri sebagai berikut :
        Setiap kalimat merupakan disjungsi literal
        Semua kalimat terkonjungsi secara implisit
         Dua atau lebih proposisi dapat digabungkan dengan menggunakan operator logika :
            a. Negasi         : Ã˜ (NOT)
            b. Konjungsi    : Ã™ (AND)
            c. Disjungsi     : Ãš (OR)
            d. Implikasi     : ® (IF-THEN)
            e. Ekuivalen    : Ã›
         Operator NOT            : digunakan untuk memberikan nilai negasi (lawan) dari pernyataan yang telah ada.
         Langkah-langkah mengubah kalimat ke dalam bentuk CNF, sebagai berikut :
    > hilangkan implikasi dan ekuivalensi
               mis.  X ® Y menjadi  Ã˜X Ãš Y (hukum implikasi)
                          X Ã› Y menjadi (X=>Y) Ã™ (Y=>X) (hukum bi-implikasi)
                                                   (ØX Ãš Y)Ù(ØY Ãš X) (hukum implikasi)
    > kurangi lingkup semua negasi menjadi satu negasi saja
       mis. Ã˜(Ø X) menjadi X (hukum negasi ganda)
                         Ã˜(X Ãš Y) menjadi (ØX Ã™ Ã˜Y) (hukum de’Morgan)
                         Ã˜(X Ã™ Y) menjadi (ØX Ãš Ã˜Y) (hukum de’Morgan)
> gunakan aturan assosiatif dan distributif untuk mengkonversi menjadi conjunction of    disjunction
       mis.  Assosiatif : (A Ãš B) Ãš C = A Ãš (B Ãš C)
   Distributif : (A Ã™ B) Ãš C = (A Ãš C) Ã™ (B Ãš C)
           
         Algoritma Resolusi
            Input   : serangkaian clauses yang disebut axioma dan tujuannya.
            Output :uji apakah tujuan diturunkan dari axioma
            Begin
            1. Kembangkan serangkaian pernyataan axioma termasuk tujuan yang dinegasikan
            2. Representasikan tiap elemen statemen ke dalam Conjunctive Normal Form (CNF)
                berdasarkan langkah-langkah berikut :
Ø  Hilangkan operator “if-then” dengan  operasi  NEGATION dan OR berdasarkan hukum logika
         Algoritma Resolusi
 Input : serangkaian clauses yang disebut axioma dan tujuannya.
 Output :uji apakah tujuan diturunkan dari axioma
 3. Repeat
a. Pilih dua clauses mana saja dari S, sehingga satu clause berisi literal yang dinegasikan dan clause yang lainnya berisi literal positif yang berhubungan (literal yang tidak dinegasikan)
b. Pisahkan dua clauses ini dan panggil clause yang dihasilkan (resolvent). Hapus parent clause dari S.
Until sebuah clause null dihasilkan atau tidak ada progress lebih lanjut yang bisa dibuat
4. Jika sebuah clause null dihasilkan, maka “tujuan terbukti” atau Pernyataan “valid”

9.2. Unifikasi
Unifikasi adalah usaha untuk mencoba membuat dua ekspresi menjadi identik (mempersatukan keduanya) dengan mencari substitusi-substitusi tertentu untuk mengikuti peubah-peubah dalam ekspresi mereka tersebut. Unifikasi merupakan suatu prosedur sistematik untuk memperoleh peubah-peubah instan dalam wffs. Ketika nilai kebenaran predikat adalah sebuah fungsi dari nilai-nilai yang diasumsikan dengan argumen mereka, keinstanan terkontrol dari nilai-nilai selanjutnya yang menyediakan cara memvalidasi nilai-nilai kebenaran pernyataan yang berisi predikat. Unifikasi merupakan dasar atas kebanyakan strategi inferensi dalam Kecerdasan Buatan. Sedangkan dasar dari unifikasi adalah substitusi.
Suatu substitusi (substitution) adalah suatu himpunan penetapan istilah-istilah kepada peubah, tanpa ada peubah yang ditetapkan lebih dari satu istilah. Sebagai pengetahuan jantung dari eksekusi Prolog, adalah mekanisme unifikasi.
Aturan-aturan unifikasi :
1.     Dua atom (konstanta atau peubah) adalah identik.
2.     Dua daftar identik, atau ekspresi dikonversi ke dalam satu buah daftar.
3.     Sebuah konstanta dan satu peubah terikat dipersatukan, sehingga peubah menjadi terikat kepada konstanta.
4.     Sebuah peubah tak terikat diperssatukan dengan sebuah peubah terikat.
5.     Sebuah peubah terikat dipersatukan dengan sebuah konstanta jika pengikatan pada peubah terikat dengan konstanta tidak ada konflik.
6.     Dua peubah tidak terikat disatukan. Jika peubah yang satu lainnya menjadi terikat dalam upa-urutan langkah unifikasi, yang lainnya juga menjadi terikat ke atom yang sama (peubah atau konstanta).
7.     Dua peubah terikat disatukan jika keduanya terikat (mungkin melalui pengikatan tengah) ke atom yang sama (peubah atau konstanta).


9.3. Generalized Modus Ponens (GMP)
Kaidah dasar dalam menarik kesimpulan  dari dua nilai logika tradisional adalah modus ponens, yaitu kesimpulan tentang nilai kebenaran pada Bdiambil berdasarkan kebenaran pada A. Sebagai contoh, jika A diidentifikasi dengan “tomat itu merah” dan B dengan “tomat itu masak”, kemudian jika benar kalau “tomat itu merah” maka “tomat itu masak”, juga benar. Konsep ini digambarkan sebagai berikut:


premise 1 (kenyataan)       
:
x adalah A,
premise 2 (kaidah)             
:
jika x adalah A maka y adalah B.
Consequence (kesimpulan)
:
y adalah B.


Secara umum dalam melakukan penalaran, modus ponens digunakan dengan cara pendekatan. Sebagai contoh, jika ditemukan suatu kaidah implikasi yang sama dengan “jika tomat itu merah maka tomat itu masak”, misalnya “tomat itu kurang lebih merah,” maka dapat disimpulkan “tomat itu kurang lebih masak”, hal ini dapat dituliskan seperti berikut:


premise 1 (kenyataan)       
:
x adalah A’,
premise 2 (kaidah)             
:
jika x adalah A maka y adalah B.
Consequence (kesimpulan)
:
y adalah B’.


Dengan A’adalah dekat ke A dan B’adalah dekat ke B. Ketika ABA’ dan B’adalah himpunan fuzzy dari semesta yang berhubungan, maka penarikan kesimpulan seperti tersebut dinamakan penalaran dengan pendekatan (approximate reasoning) yang disebut juga dengan generalized modus ponens (GMP).


9.4. Rangkaian Forward dan backward
Forward chaining merupakan metode inferensi yang melakukan penalaran dari suatu masalah kepada solusinya. Jika klausa premis sesuai dengan situasi (bernilai TRUE), maka proses akan menyatakan konklusi. Forward chaining adalah data-driven karena inferensi dimulai dengan informasi yang tersedia dan baru konklusi diperoleh. Jika suatu aplikasi menghasilkan tree yang lebar dan tidak dalam, maka gunakan forward chaining.
Contoh :
Terdapat 10 aturan yang tersimpan dalam basis pengetahuan yaitu :
R1 : if A and B then C
R2 : if C then D
R3 : if A and E then F
R4 : if A then G
R5 : if F and G then D
R6 : if G and E then H
R7 : if C and H then I
R8 : if I and A then J
R9 : if G then J
R10 : if J then K


Fakta awal yang diberikan hanya A dan E, ingin membuktikan apakah K bernilai benar. Proses penalaran forward chaining terlihat pada gambar dibawah :




·       Backward Chaining
Menggunakan pendekatan goal-driven, dimulai dari harapan apa yang akan terjadi (hipotesis) dan kemudian mencari bukti yang mendukung (atau berlawanan) dengan harapan kita. Sering hal ini memerlukan perumusan dan pengujian hipotesis sementara. Jika suatu aplikasi menghasilkan tree yang sempit dan cukup dalam, maka gunakan backward chaining.
Contoh :
Seperti pada contoh forward chining, terdapat 10 aturan yang sama pada basis pengetahuan dan fakta awal yang diberikan hanya A dan E. ingin membuktikan apakah K bernilai benar. Proses penalaran backward chaining terlihat pada gambar berikut :



Daftar Pustaka :



Total Tayangan Halaman

Diberdayakan oleh Blogger.

Pages - Menu