Prolog: Pengenalan Prolog
Prolog adalah bahasa pemrograman logika atau disebut juga sebagai bahasa non-procedural.
Struktur Prolog
Stuktur prolog terdiri atas: Domain, Predicates, Clauses, dan Goals.
Domain
Domain dalam Prolog seperti type dalam C, yaitu untuk menyatakan jenis variabel atau argument. Domain pada prolog:
- char
- integer
- real
- string
- symbol
Contoh:
Domains orang = symbol kota = symbol alamat = string angka = integer
Predicates
Predicates digunakan untuk mendeklarasikan predikat yang digunakan dalam bahasa Prolog, atau bisa juga untuk menggambarkan relasi atau sifat objek. Objek yang terkait oleh predikat disebut argumen.
Contoh:
Predicates lelaki(orang). perempuan(orang). ayah(orang,orang). ibu(orang,orang).
Clauses
Dalam melakukan pemanggilan klausa, Prolog melacaknya berurutan dari atas ke bawah. Bagian ini merupakan inti dari program Prolog, dimana semua fakta dan aturan diimplementasikan di sini.
Notes:
- Yang membedakan value dan variable, variable diawali dengan huruf capital.
- Syntax don’t care variable: “_”
- Syntax IF: “:-“
- Syntax AND: “,”
- Syntax OR: “;”
Contoh:
Clauses lelaki(budi). lelaki(tono). perempuan(ani). ayah(budi,tono). ibu(ani,tono). nenek(X,Y):-orangtua(Z,Y),ibu(X,Z),perempuan(X).
Goals
Merupakan tempat pertanyaan diberikan atau diminta terhadap Prolog untuk dicari tahu jawabannya.
Contoh:
Goal nenek(ria,X) jurusan(X,informatika)
List pada Prolog
List merupakan sebuah struktur data pada prolog. Aturan pembuatan list adalah dimulai dengan tanda “[“ ditutup oleh “]” (square bracket), dan setiap data dipisahkan oleh tanda “,” (comma). Contoh: [a,b,c,d]
Kita dapat menambahkan sebuah tanda | (bar) untuk membedakan data pertama dan selebihnya. Contoh: [first,second,third] ke dalam [A|B] Dimana A = {first} dan B = {second,third}
Contoh:
Domains list = symbol* % tanda * merupakan inisial untuk list elm = symbol Predicates split(list,elm,list). Clauses split([H|T],H,T). Goal split(input_list,X,Y) %missal input_list = [a,b,c,d,e]
Contoh lain (Penjumlahan 2 List):
Domains dlist = integer* Predicates sum(dlist,dlist,dlist). Clauses sum([],[],[]). sum([H1|T1],[H2|T2],[H3|T3]):-H3=H1+H2,sum(T1,T2,T3).
Cut & Fail
Cut
Cut adalah suatu metode dalam prolog untuk mengabaikan salah satu/seluruh bagian dari aturan. Cut terdiri atas dua jenis: Green Cut dan Red Cut.
Green Cut adalah metode cut yang dilakukan untuk melakukan peningkatan efisiensi pemrograman tanpa mengubah output program. Dilakukan dengan untuk melewatkan aturan klausa setelahnya jika aturan klausa yang diberi green cut bernilai benar.
Contoh:

Pada contoh ketika aturan pertama benar secara otomatis aturan kedua salah maka program tidak perlu mengecek aturan kedua. Untuk mencegah program mengecek aturan kedua disaat aturan pertama sudah benar di gunakan green cut.
Sedangkan Red Cut adalah metode cut yang dilakukan untuk mencegah perhatian prolog terhadap alternative sub-goal yang ada.
Contoh:

Fail
Fail adalah suatu metode dalam prolog untuk mengubah nilai dari aturan klausa menjadi not. Dalam artian, aturan klausa yang diberi metode fail akan akan bersifat berlawanan. Misal:
suka (X, sayuran):-!,fail.
Artinya X suka sayuran bersifat fail atau sederhananya X tidak suka sayuran.
Contoh:

Tag:Prolog