Cek isi list dengan PROLOG

Lama juga tidak menulis…😦

Sebenarnya saya ingin menulis tentang Enkripsi dengan Haskell, tetapi berhubung saya sudah janji dengan teman2 di kelas KBP hari senin, maka tulisan Enkripsi harus menunggu🙂

Kali ini saya ingin membahas tentang pengecekan isi list dengan menggunakan PROLOG

(Saya gunakan Turbo Prolog 2.0)

STRUKTUR DATA (LIST)

Dalam Prolog, list dituliskan dengan menggunakan tanda kurung [] dan setiap elemen dipisahkan oleh tanda koma(,). Sebagai contoh:

[]           –>     list kosong

[f, t, i]     –>     list dengan tiga elemen

Setiap list dalam Prolog dapat dituliskan sebagai [H | T] dimana H adalah kepala (head) yang menunjukkan elemen pertama dari suatu list dan T adalah ekor (tail), yaitu list tanpa elemen pertama (sama seperti Haskell! semoga kawan2 masih ingat).

Nilai H dan T ini dapat dibandingkan dengan operasi car dan cdr pada pemrograman fungsional (Haskell atau LISP). Oleh karena itu, list [f, t, i] dapat dituliskan sebagai:

[f,t,i|[]]

[f,t|[i]]

[f|[t,i]]

Sebagai contoh;

GOAL = [H | T ] = [f,t,i].

YES.   H = f, T = [t,i]

Nah sekarang mari kita lihat contoh yang pertama (lihat gambar di bawah), menggabungkan dua buah isi list.

Ketika kita menuliskan tambah([a,b],[c,d],Z) kemudian kita tampilkan Z maka akan muncul list baru yang berisi [“a”,”b”,”c”,”d”] seperti yang di tampilkan pada bagian dialog (kanan atas).

Pada contoh yang kedua, kita akan membuat program untuk melihat apakah elemen yang kita minta ada dalam list. (Lihat gambar di bawah!)

Di bagian GOAL (kolom dialog, kanan atas!) saya menuliskan inlist(a,[a,b,c]) artinya saya mengecek apakah ‘a’ ada di dalam list [a,b,c]. Ketika saya jalankan (enter) maka akan tampil YES! karena memang ‘a’ ada dalam list tersebut. Bandingkan dengan yang saya tulis kemudian inslist(a,[b,c,d]) artinya saya mengecek apakah ‘a’ ada di dalam list [b,c,d], karena tidak ada dalam list maka nilai kembalian dari PROLOG adalah NO!

Bagaimana mudah bukan? Semoga penjelasan sederhana saya tentang LIST dalam PROLOG di atas dapat di pahami…

 

Semoga bermanfaat!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s