Pemrograman Silsilah Menggunakan Prolog
-
Upload
alves-thegreensoul -
Category
Documents
-
view
227 -
download
7
Transcript of 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).
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
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
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
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
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.
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”)
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:
Untuk mengakses dan mendownload tugas kuliah ini
selengkapnya anda harus berstatus Paid Member