Logic Programming Language

 

  1. Logic programming merupakan suatu program yang menggunakan bahasa logika, dan kemudian bahasa logika tersebut di ekspresikan dengan bentuk symbol – symbol logika. Logic programming menggunakan proses inferensi logika untuk membuat hasil.
  2. Logic programming hanya bersifat deklaratif artinya hanya spesifikasi dari hasil yang dinyatakan bukan proses detail untuk memproduksi mereka.
  3. Proposisi merupakan statement logika yang dapat bersifat benar atau tidak benar. Poposisi terdiri dari berbagai macam objek dan hubungan dari suatu objek dengan objek lainnya.
  4. Merupakan suatu logika yang dapat digunakan sebagai cara yang dasar untuk logika yang lebih formal. Simbol logika berfungsi untuk :
  • Mengekspresikan proposisi.
  • Mengekspresikan hubungan diantara dua proposisi.
  • Mendeskripsikan bagaimana suatu proposisi yang baru dapat disimpulkan dari proposisi yang lain.
  1. Bentuk tertentu dari suatu symbol logika yang digunakan untuk logic programming disebut predicate calculus.
  2. Objek dalam suatu proposisi direpresentasikan dalam dua bentuk sederhana yaitu :
  • Konstan : suatu simbol yang merepresentasikan objek
  • Variabel : suatu simbol yang dapat merepresentasikan objek yang berbeda dalam waktu yang berbeda juga.
  1. Atomic proposisi ada proposisi yang mengandung compound term .Compound term merupakan elemen dari suatu relasi matematika yang cara penulisannya mirip dengan penulisan dalam fungsi matematika (dapat ditulis dalam bentuk tabel dan fungsi matematika adalah pemetaan). Bentuk compound tersusun dari dua bagian, yaitu :
  • Functor : Simbol fungsi yang menamai suatu hubungan
  • Tuple : Daftar parameter yang sudah tersusun
  1. Proposisi dapat dinyatakan dalam dua bentuk, yaitu :
  • Fact : Proposisi yang telah dianggap benar
  • Query : Kebenaran dari suatu proposisi masih belum ditentukan
  1. Proposisi compound harus memiliki dua atau lebih proposisi atomic dan proposisinya dihubungkan oleh operator.
  2. PROLOG adalah kependekan dari PROgramming in LOGic, yang berarti pemrograman logika. Pemrograman Prolog menggunakan bahasa deklaratif, dimana pemrogram memberi faktadan aturan untuk selanjutnya diselesaikan oleh Prolog secara deduktif sehingga menghasilkan suatu kesimpulan.
  3. Hal ini berbeda dengan bahasa prosedural seperti Pascal, Fortran, C, atau yang sejenis, dimana pemrogram memberi perintah atau penugasan untuk memecahkan persoalan langkah demi langkah, sehingga sering disebut sebagai programming with assignment. Disamping itu, berbeda dengan pemrograman fungsional, pemrograman logika ini menggunakan relasi, bukan fungsi sehingga sangat.
  4. sesuai untuk implementasi sistem pakar.Selain itu, Programmingnya tidak procedural artinya program tidak menyatakan hasilnya akan dikomputasi, tapi lebih ke menyatakan bentuk dari hasilnya.
  5. Terms merupakan suatu konstan, variabel, atau struktur. Konstan merupakan suatu atom atau integer. Atom merupakan nilai simbol dari prolog. Atom bisa terdiri dari suatu string kata, digit, dan kata yang bersifat lowercase atau dari string suatu karakter ASCII yang dapat diprint. Terms dapat dibedakan menjadi dua jenis yaitu Variabel dan Struktur.
  1. Goal Statements digunakan untuk membuktikan suatu teorema, tapi teorema nya dalam bentuk proposisi yang kita ingin sistemnya buktikan atau tidak. Format nya sama dengan Klaus Headless Horn, yaitu:
  • man(fred)
  • Proposisi conjunctive dan proposisi dengan variabel juga dapat digunakan
  • father(X, mike)
  1. Jika suatu goals merupakan proposisi compound, maka setiap facts merupakan subgoal. Untuk membuktikan suatu goal itu benar, kita harus menemukan hubungan aturan dan/atau fakta inferensi.
  2. Proses untuk membuktikan suatu subgoal disebut matching, satisfying, atau resolution. Matching merupakan proses membuktikan suatu proposisi. Satisfying merupakan proses membuktikan subgoal. Bottom-up resolution disebut forward chaining, Top-down resolution disebut backward chaining. Pengimplementasian prolog menggunakan backward chaining.
  3. Ketika suatu goal memiliki lebih dari satu subgoal, maka kita dapat menggunakan
  • Pencarian depth-first : Mencari bukti lengkap subgoal pertama sebelum mencari bukti lengkap untuk subgoal berikutnya;atau
  • Pencarian breadth-first : Mengerjakan semua subgoal secara parallel
  1. Bactracking, Ketika suatu goal memiliki banyak subgoal, dan ketika gagal membuktikan suatu subgoal, maka menggunakan subgoal sebelumnya untuk mencari solusi alternatifnya merupakan pengertian dari backtracking. Bactracking bisa memakan banyak waktu dan tempat karena harus mencari semua bukti yang memungkinkan untuk setiap subgoal.
  2. Aritmatika Sederhana, prolog mensupport variabel integer dan juga aritmatika integer. Operator is: menggunakan ekspresi aritmatika sebagai operand kanan dan variabel sebagai operand kiri. Contoh :
  • isB / 17 + C
  1. Trace merupakan struktur built-in yang menampilkan instantiasi dari setiap langkah. Tipe pelaksanaan model tracing :
  • Call
  • Exit
  • Redo
  • Fail
  1. Struktur data basic lain yang bukan merupakan proposisi atomic yang sudah pernah kita lihat merupakan suatu list. List merupakan urutan dari berbagai macam elemen. Elemen dapat terdiri dari atom, proposisi atomik, atau terms lain.
  2. Kekurangan Prolog:
  • Resolusinya bersifat order control
  • Asumsi yang bersifat closed-world
  • Masalah negasi
  • Terbatasnya intrinsik
  1. Penggunaan Logic Programming:
  • Sistem manajement relasi database
  • Sistem expert
  • Proses bahasa natural

 

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *