Jumat, 30 April 2010 |
KECERDASAN BUTAN MENGENAI ACTIFICIAL INTELEGENT (AI) DAN VISUAL PROLOG

1. Pengertian Prolog
Sejarah Prolog
Prolog menggunakan teknik pencarian yang disebut heuristik (heuristic) dengan menggunakan pohon logika. prolog banyak dikembangkan di University of Melbourne oleh Lee Naish dan John Loyd. Prolog dalam perkembangannya telah dikombinasikan dengan berbagai bahasa pemrograman terutama functional programming. Bahasa prolog ini secara intensif digunakan pada proyek komputer generasi ke-5 di Jepang. Walaupun demikian sebetulnya penggunaannya tidak terbatas untuk AI saja.

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 dijalankan komputer.
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl sebagai teknik pencariannya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebut heuristik (heutistic) dengan menggunakan pohon logika.

Pendahuluan tentang Prolog :

a. Sejarah Prolog :

1. Prolog singkatan dari Programming in Logic.
2. Dikembangkan oleh Alain Colmenraurer dan P.Roussel di Universitas Marseilles Perancis,
tahun1972.
3. Prolog populer di Eropa untuk aplikasi artificial intelligence, sedangkan di Amerika peneliti
mengembangkan aplikasi yang sama, yaitu LISP.

b. Ciri-ciri bahasa prolog :

1. Bahasa pemrograman yang non sequential.
2. Bahasa pemrograman yang deklaratif.
3. Simbolik.
4. Berdasarkan first order logic.

  • Beda Bahasa Prolog dengan bahas lainnya
Bahasa Pemrograman yang Umum (Basic, Pascal, C, Fortran) :
1. Diperlukan algoritma/prosedur untuk memecahkan masalah (procedural languange)
2. Program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang
berbeda-beda.
3. Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan
sesuai dengan prosedur yang telah dibuat.

c. Bahasa Pemrograman Prolog :

1. Object oriented languange atau declarative languange.
2. 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
3. Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai
tujuan tersebut serta mencari jawabannya.
4. Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan
relasinya.
5. Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya
tidak diketahui, khususnya untuk memecahkan masalah non numerik.
6. Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang
masalah menuju suatu tujuan (jawaban tertentu).
Contoh : Pembuatan program catur dengan Prolog

d. Beberapa Aplikasi Prolog :

1. Sistem Pakar (Expert System)
Program menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya
seorang ahli.
Contoh dalam mendiagnosa penyakit
2. Pengolahan Bahasa Alami (Natural Languange Processing)
Program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia
sehari-hari, layaknya penterjemah.
3. Robotik
Prolog digunakan untuk mengolah data masukanyang berasal dari sensor dan mengambil
keputusan untuk menentukan gerakan yang harus dilakukan.
4. Pengenalan Pola (Pattern Recognition)
Banyak digunakan dalam image processing, dimana komputer dapat membedakan suatu objek
dengan objek yang lain.
5. Belajar (Learning)
Program belajar dari kesalahan yang pernah dilakukan, dari pengamataqn atau dari hal-hal
yang pernah diminta untuk dilakukan.

e. Program Visual Prolog :

Secara umum, program Visual Prolog terdiri dari empat section dasar, yaitu section clauses, section predicates, section domains, dan terakhir section goal. Berikut akan dijelaskan secara singkat masing-masing section tersebut.
  • Section Clauses
Section clauses merupakan section yang paling penting pada program Visual Prolog. Pada section inilah kita meletakkan fakta dan aturan. Ketika mencari jawaban, Visual Prolog akan mencari dari bagian paling atas dari section clauses, melihat setiap fakta dan aturan untuk mendapat jawaban benar, hingga ke bagian paling bawah dari section ini.

  • Section Predicates
Sebelum mendefinsikan predikat di section clauses, maka predikat tersebut harus dideklarasikan terlebih dahulu di section predicates. Kalau tidak, Visual Prolog tidak akan mengenal predikat yang kita tuliskan tersebut. Ketika mendeklarasikan suatu predikat, kita memberitahu Visual Prolog domain dari argumen yang dimiliki predikat tersebut. Visual Prolog mempunyai perpustakaan predikat yang kalau dipakai tidak perlu dideklarasikan, karena sudah built-in. Untuk melihat predikat apa saja serta manfaatnya yang ada di perpustakaan Visual Prolog dapat melihat help dari Visual Prolog (Help | Contents).

  • Deklarasi Predikat
Deklarasi predikat dimulai dengan nama predikat diikuti tanda kurung buka, kemudian diikuti nol atau lebih argumen dari predikat (setiap argumen dipisah dengan tanda koma) kemudian ditutup dengan tanda kurung tutup, seperti:

PredicatName(tipe_argumen1, tipe_argumen2,...,tipe_argumenN)
dan tidak seperti section clauses, deklarasi predikati tidak perlu diakhiri tanda titik
  • Nama Predikat
Nama predikat harus dimulai dengan huruf diikuti dengan serangkaian huruf, angka dan atau garis bawah (underscore). Walaupun bisa dimulai huruf besar, namun sangat direkomendasikan untuk memakai huruf kecil diawal nama predikat (beberapa versi Prolog yang lain tidak memperbolehkan nama predikat diawali huruf besar). Panjang nama predikat bisa sampai 250 karakter. Contoh penamaan predikat :

Nama predikat yang legal Nama predikat yang illegal
Fakta [fakta]
pemain_piano *pemain_piano*
milik_umum_atau_pribadi milik_umum/pribadi
polaTindakKriminal Pola-Tindak-Kriminal
pilih_Item_Menu pilih Item Menu
nama_predikat nama
rangking_10_besar #rangking_10_besar

  • Argumen predikat
Argumen predikat harus yang sudah dikenal oleh domain Visual Prolog. Suatu domain bisa merupakan domain standar atau bisa juga domain yang sudah dideklarasikan pada section domains. Contohnya, jika dideklarasikan suatu predikat predikat_ku(symbol, integer) pada section predicates seperti ini:

PREDICATES
predikat_ku(symbol, integer)

maka tidak perlu lagi mendeklarasikan domain dari argumen pada section domains, karena symbol dan integer adalah standar domain.

  • Section Domains
Section domains mempunyai 2 manfaat utama, yaitu pertama, kita dapat memberikan nama yang berarti untuk domain, walaupun secara internal domain tersebut sama tipenya dengan domain yang telah ada; yang kedua, kita dapat mendeklarasi domain khusus yang digunakan untuk mendeklarasikan struktur data yang tidak didefinisikan oleh standar domain. Dengan mendeklarasikan domain juga dapat mencegah kesalahan logika pada program. Contoh:

DOMAINS
nama, jender = symbol
umur = integer

PREDICATES
orang(nama, jender, umur)

  • Standar Domain Visual Prolog
Visual Prolog mempunyai standar domain built-in. Kita dapat menggunakan standar domain ketika mendeklarasikan tipe dari argumen suatu predikat. Standar domain sudah dikenal Visual Prolog dan tidak perlu didefinisikan lagi pada section domains.

f. Fakta

1. Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta.
2. Fakta dibedakan 2 macam :
a.Menunjukkan relasi.
b. Menunjukkan milik/sifat.
3. Penulisannya diakhiri dengan tanda titik “.”

Contoh :
Fakta Prolog
Slamet adalah ayah Amin Ayah (Slamet, Amin).
Anita adalah seorang wanita Wanita (Anita).
Angga suka renang dan tenis Suka (angga, renang).dan suka (angga,tenis).
Jeruk berwarna jingga Jingga (jeruk).

g. Aturan

1. Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu
dengan yang lain untuk membentuk suatu kesimpulan.
2. Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat.
3. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau
disimbolkan dengan “:-“.

Contoh :
Fakta dan Aturan Prolog
F : Tino suka apel suka(tino, apel).
A : Yuli suka sesuatu yang disukai Tino suka(yuli,Sesuatu) :- suka(tino,Sesuatu).

4. Setiap aturan terdiri dari kesimpulan(kepala) dan tubuh.
5. Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan
dihubungkan dengan logika “and”.
6. Aturan memiliki sifat then/if conditional

“Kepala(head) benar jika tubuh (body) benar”.

h. Pertanyaan

Setelah memberikan data-data berupa fakta dan aturan, selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang ada.

a. Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.
contoh :

Pertanyaan Prolog dan Jawaban Program
Apakah Tini suka boneka ? ?- suka(tini,boneka).
Yes ……. (jika faktanya Tini suka boneka)
No……..…(jika tidak sesuai fakta).
Apakah yang disukai Tini ? ?- suka(tini,Apa).
Apa=boneka
Siapakah yang suka boneka ? ?- suka(Siapa,boneka).
Siapa=tini
Dari contoh silsilah keluarga di atas :
Siapakah kakek Budi ?
?- kakek(Siapa,budi).
Siapa=slamet
Siapakah cucu Slamet ?
?- kakek(slamet,Cucu).
Cucu=budi ;
Cucu=badu
(jika kemungkinan ada lebih dari satu jawaban gunakan tanda “;”
pada akhir setiap jawaban).

i. Predikat

1. Predikat adalah nama simbolik untuk relasi.
2. Contoh :ayah(slamet,amin).
Predikat dari fakta tersebut ditulis : ayah(simbol,simbol). dimana ayah adalah nama predikat, sedangkan slamet dan amin adalah menujukkan argumen.
Sebuah predikat dapat tidak memiliki atau memiliki argumen dengan jumlah bebas. Jumlah argumen suatu predikat disebut aritas (arity).
ayah(nama) …… aritas-nya 1
ayah(nama1,nama2) ….. aritasnya 2

3. Syarat-syarat penulisan nama predikat :

a. Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
b. Panjang nama predikat maksimum 250 karakter.
c. Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

j. Variabel

1. Varibel adalah besaran yang nilainya dapat berubah-ubah.
2. Tata cara penulisan variabel :
1. Nama varibel harus diawali huruf besar atau garis bawah(_)
2. Nama variabel dapat terdiri dari huruf, bilangan, atau simbol dan merupakan kesatuan
dengan panjang maksimum 250 karakter.
3. Nama variabel hendaknya mengandung makna yang berkaitan dengan data yang
dinyatakannya.

Contoh : dari silsilah di atas :

?- ayah(slamet,Anak).
Anak=budi ;
Anak=badu
No

Dari query di atas akan dicari siapakah anak dari ayah yang bernama Slamet. Karena mempunyai relasi yang sama (yaitu ayah), variabel Anak akan mencari nilai dari konstanta suatu fakta/aturan yang sepadan.

Tanda “;” digunakan bila terdapat kemungkinan ada lebih dari satu jawaban.
“No” berarti tidak ada lagi kemungkinan jawaban.

Pengertian kecerdasan Buatan Artificial Intelegence ( AI )

Pengertian kecerdasan buatan / Artificial Intelegence ( AI ) adalah salah satu ilmu pengetahuan yang berhubungan dengan pemanfaatan mesin untuk memecahkan persoalan yang rumit dengan cara yang lebih manusiawi. Hal ini biasanya dilakukan dengan mengikuti atau mencontoh karakteristik dan analogi berpikir dari kecerdasan atau intelegensi manusia. Ada pula penertian kecerdasan buatan yaitu, memiliki banyak arti diantaranya adalah :

a. Kecerdasan Buatan merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan
pemrograman computer untuk melakukan suatu hal yang dalam pandangan manusia adalah
cerdas. [ H.A. Simon – 1987 ]
b. Kecerdasan Buatan merupakan sebuah studi tentang bagaimana malakukan hal-hal yang pada
saat ini dapat dilakukan lebih baik oleh manusia. [ Rich & Knight – 1991 ]
c. Kecerdasan Buatan merupakan cabang dari ilmu computer yang dalam merepresentasikan
pengetahuan lebih banyak menggunakan bentuk symbol-simbol daripada bilangan dan
d. Keceradasan Buatan yaitu kecerdasan yang ditunjukkan oleh suatu entitas buatan.
Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin ( computer ) agar dapat
melakukan pekerjaan seperti yang dilakukan oleh manusia. [ Wikipedia ]

0 komentar:

Posting Komentar