Summary of OPERATOR AND ARITHMETIC (Chp 4)

· Operator

Notasi yang digunakan untuk predikat adalah salah satu dari standar pengguna diikuti oleh sejumlah argumen dalam kurung, misalnya suka (john, mary).

Sebagai alternatif, apapun predikat yang ditetapkan pengguna dengan dua argumen (binary predikat) dapat dikonversi ke operator infiks. Hal ini memungkinkan functor (predikat nama) yang akan ditulis di antara dua argumen tanpa tanda kurung, misalnya john suka mary.

Setiap predikat yang ditetapkan pengguna dengan satu argumen (a unary predikat)dapat diubah menjadi prefiks operator. Hal ini memungkinkan untuk functor ditulis sebelum argumen tanpa tanda kurung. Notasi operator juga dapat digunakan dengan mudah dibaca aturan untuk bantuan. Setiap predikat yang ditetapkan pengguna dengan satu atau dua argumen dapat dikonversi ke operator dengan memasukkan tujuan menggunakan op predikat pada sistem prom.

Ada bentuk lain untuk menulis suatu predikat selain bentuk standar yang sudah dipelajari pada bab sebelumnya. Untuk binary predicate yaitu predikat dengan dua argumen dapat diubah menjadi bentuk infix operator.

bentuk standard tersebut dapat diubah menjadi infix operator

Kemudian untuk bentuk unary predikat (predikat dengan satu argumen) dapat diubah menjadi bentuk prefix operator atau postfix operator.

atau bisa juga diubah menjadi postfix operator

contoh :

main (budi,main)

bentuk standar tersebut dapat diubah menjadi infix operator
budi main bola.

Kemudian untuk bentuk unary predikat yaitu predikat dengan satu argumen dapat diubah menjadi bentuk prefix operator atau postfix operator.

Contoh :

mbois(budi)

bentuk tersebut diubah menjadi prefix operator mbois budi atau bisa juga diubah menjadi postfix operator budi mbois

· Arithmetic

Pada prolog terdapat juga fasilitas penghitungan aritmatika. Pembahasan tentang aritmatik dibagi menjadi beberapa bagian .

a. Arithmetic Operator

Merupakan operator yang digunakan untuk penghitungan aritmatik dalam pemprograman prolog .

Berikut ini contoh penggunaan masing-masing operator ;

X+Y (penjumlahan dari X ditambah Y)

X-Y (selisih dari X dikurangi Y)

X*Y (hasil perkalian dari X dan Y)

X/Y (hasil pembagian dari X dibagi oleh Y)

X//Y (integer hasil bagi dari X dan Y (hasilnya adalah dibagi ke integer terdekat antara hasil dan nol)

X^Y (nilai dari X pangkat Y)

-X (nilai negatif dari X)

b. Arithmetic function

Merupakan fungsi yang biasanya digunakan untuk melakukan penghitungan aritmatik dalam prolog .

Berikut adalah contoh masing-masing penggunaannya :

abs(X) (nilai absolut dari X)

sin(X) (nilai sinus dari X untuk X dalam derajat)

cos(X) (nilai cosinus dari X untuk X dalam derajat)

max(X,Y) (menentukan mana yang lebih besar antara X dan Y)

sqrt(X) (nilai dari X akar pangkat dua)

c. Pengutamaan Operator Dalam Ekspresi Aritmatika

Prolog menggunakan algoritma aljabar biasa dalam pengopersian aritmatika. Contohnya A+B*C-D.

Di dalam ajabar C dan D dikalikan lebih dahulu lalu ditambah dengan A lalu dikurangi dengan D. DI prolog juga demikian. Untuk pengecualian, kita tinggal menggunakan kurung.

Contoh : (A+B)*(C+D).

d. Relational Operators

Operator seperti =, !=, >,>=, <, =dibaca : nilai x tidak sama dengan 0

x >= 0 —>dibaca : nlai x lebih dari sama dengan 0

· Operator Pembanding

Dibawah ini merupakan daftar dari equality operators dalam prolog beserta fungsi dari masing-masing operator.
o Arithmetic Expression Equality =:=
o Arithmetic Expression Inequality =|=
o Terms Identical ==
o Terms Not Identical |==
o Terms Identical With Unification =
o Non-Unification Between Two Terms |=

· Operator Logika

1. Operator Not
Operator not dapat ditempatkan sebelum predikat untuk memberikan negasi. Predikat yang dinegasikan bernilai benar jika predikat yang asli salah dan bernilai salah jika predikat yang asli benar.

berikut contohnya :

?- not dog(fido).
no
?- dog(fred).
no
?- not dog(fred).
yes
?- X=0,X is 0.
X = 0
?- X=0,not X is 0.

no

2. Operator Disjungsi
Operator disjungsi (;) digunakan sebagai operator ‘atau’.

berikut contohnya :

?- 6<3;7 is 5+2.
yes

?- 6*6=:=36;10=8+3.
yes

Leave a comment