Pemrograman Silsilah Menggunakan Prolog

12
BAB I PENDAHULUAN 1. 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 awalnya, Prolog dan LISP sangat lambat dalam eksekusi program dan memakan memori yang besar sehingga hanya kalangan tertentu yang menggunakannya. Dengan adanya Compileer Prolog, kecepatan eksekusi program dapat ditingkatkan, namun Prolog masih dipandang sebagai bahasa yang terbatas (hanya digunakan di kalangan perguruan tinggi dan riset. Pandangan tersebut 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

Transcript of Pemrograman Silsilah Menggunakan Prolog

Page 1: Pemrograman Silsilah Menggunakan Prolog

BAB I

PENDAHULUAN

1. 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 awalnya, Prolog dan LISP sangat lambat dalam eksekusi

program dan memakan memori yang besar sehingga hanya kalangan tertentu

yang menggunakannya. Dengan adanya Compileer Prolog, kecepatan

eksekusi program dapat ditingkatkan, namun Prolog masih dipandang sebagai

bahasa yang terbatas (hanya digunakan di kalangan perguruan tinggi dan

riset.

Pandangan tersebut 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).

Page 2: Pemrograman Silsilah Menggunakan Prolog

2. 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 diatas, 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.

3. Keampuhan Prolog

Terletak pada kemampuannya untuk mengambil kesimpulan (jawaban)

dari data-data yang ada. Karena program dalam bahasa prolog tidak

Page 3: Pemrograman Silsilah Menggunakan Prolog

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.

Contoh lain keampuhan prolog:

Permasalahan

Perangkat audio hanya menghasilkan suara disatu sisi speaker

Pemecahan

Memindahkan switch ke radio FM. Bila kedua speaker berbunyi, maka

anda tahu bahwa masalah berasal dari input tape, coba dengan kaset bila

hasilnya tetap, berarti masalah tersebut berasal dari tape dan bukan kaset.

alternatif termudah adalah dengan membersihkan head tape dan sekarang

kedua speakernya berbunyi.

Gambar Diagram Pencarian Jawaban Melalui Ruang Masalah

Page 4: Pemrograman Silsilah Menggunakan Prolog

Dari diagram diatas, ruang masalah ditunjukan dalam simpul (node)

dan penghubung (link). Tiap-tiap simpul merupakan subgoal (tujuan

menengah) yang merupakan langkah menuju jawaban akhir. Dalam prolog

anda hanya mendefinisikan ruang masalah yang ada sedangkan dalam bahasa

procedural, anda harus menentukan jalan tertentu yang harus ditempuh

melalui ruang masalah.

4. Aplikasi Prolog

Prolog digunakan khususnya dibidang kecerdasan buatan

(Artificial Intelegent) meliputi bidang:

Sistem pakar (Expert System)

Pengolahan bahasa alami (Natural Language processing)

Robotik

Logika dan ketidakpastian

Pengenalan pola dan gambar

Belajar

Game

Simulasi pengolahan symbol

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.

Contoh program mendiagnosa penyakit

Pemakai menentukan tujuan (goal) yaitu penyakit yang diderita,

untuk mendapatkan jawaban program akan memberi pertanyaan yang

harus dijawab oleh pemakai program.

Tiap-tiap orang mempunyai keahlian masing-masing yang

mungkin satu orang dengan yang lainnya mempunyai keahlian

berbeda, tergantung dari pengetahuannya masing-masing, ada yang

ahli kimia, fisika, komputer, dokter dan lain sebagainya. Komputer

dapat diprogram untuk berbuat seperti orang yang ahli dalam bidang

Page 5: Pemrograman Silsilah Menggunakan Prolog

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.

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.

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.

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.

Belajar

Page 6: Pemrograman Silsilah Menggunakan Prolog

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.

Game

Alasan perlunya mempelajari games dalam AI adalah diantaranya

kita akan terbiasa dengan merumuskan masalah, kiat tahu dunia nyata,

dapat menetapkan aturan, dapat kesenangan, dapat memodelkan lawan

dll.

AI dalam games komputer sebenarnya tidaklah benar-benar cerdas,

games pada dasarnya merupakan set intruksi computer yang

dimasukan ke program yang sudah memprediksi intelegensi

pemakainya, selain itu isi program tersebut memuat prosedur

pencarian.

Page 7: Pemrograman Silsilah Menggunakan Prolog

BAB II

DASAR-DASAR PROLOG

A. Fakta dan Relasi

Karena fakta menunjukkan suatu keadaan atau situasi nyata maka

fakta selalu benar (“True”).

Dalam ,fakta dapat dibedakan menjadi 2 macam, yaitu:

Menunjukkan relasi

Menunjukkan milik / sifat

Sebagai contoh, sebuah fakta mengatakan :

Slamet adalah ayah Amin

Dalam bahasa prolog, hal ini dituliskan sebagai:

Ayah(slamet,amin).

Dimana ayah menunjukkan relasi antara slamet dan amin.

Penulisan relasi tidaklah baru seperti contoh di atas tetapi bebas

bergantung pada program. Pernyataan di atas dapat pula dituliskan:

Ayah_dari(slamet,amin).

Beberapa contoh lain:

Indonesia : Tini suka boneka

Prolog : suka(tini,boneka).

Indonesia : Angga suka renang dan tennis

Prolog : suka(angga,renang) dan suka(angga,tennis).

Sdangkan sebuah fakta:

Anita adalah seorang wanita

Dapat dituliskan dalam prolog sebagai:

Wanita(anita).

B. Aturan (“Rules”)

Page 8: Pemrograman Silsilah Menggunakan Prolog

Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta

berinteraksi satu dengan yang lain untuk membentuk suatu kesimpulan.

Sebuah aturan dinyatakan sebagai suatu kalimat bersyarat. Misalnya, ada

sebuah fakta:

Tino suka apel

Dan ada sebuah aturan yang berbunyi:

Yuli suka sesuatu yang disukai oleh Tino

Informasi yang didapat dari fakta yang diketahui, maka dapat diambil

kesimpulan (jawaban) dari aturan tersebut yaitu Yuli suka apel.

Dalm prolog, fakta di atas dituliskan sebagai:

Suka(tino,apel).

Sedangkan aturan tersebut dapat dinyatakan juga sebagai:

Yuli suka sesuatu jika Tino suka sesuatu itu juga

Dan ini dituliskan sebagai:

Suka(yuli,sesuatu) if suka(tino,sesuatu).

Kata “if” adalah kata yang dikenal oleh prolog untuk menyatakan kalimat

berkondisi tersebut.

C. Pertanyaan (“Querys”)

Setelah anda memberikan data-data berupa fakta dan aturan, anda dapat

mengajukan pertanyaan berdasarkan fakta dan aturan yang ada. Misalkan:

Apakah Tini suka boneka?

Dalam prolog, pertanyaan ini dituliskan sebagai:

Suka(tini,boneka).

Pertanyaan ini sesuai dengan fakta yang ada, maka prolog akan

memberikan jawaban:

Yes (yang berarti benar)

Sedangkan apabila anda memberikan pertanyaan:

Suka(tini,mobil-mobilan).

Maka prolog akan menjawab:

Page 9: Pemrograman Silsilah Menggunakan Prolog

Untuk mengakses dan mendownload tugas kuliah ini

selengkapnya anda harus berstatus Paid Member