Anda di halaman 1dari 14

LAPORAN KECERDASAN BUATAN PERTEMUAN KE 7

Disusun Oleh : Nama Nim Jurusan : Mohamad Hanafi : 095410134 : TEKNIK INFORMATIKA

LABOROTARIUM TERPADU
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AKAKOM YOGYAKARTA
2010

LIST

A. PEMBAHASAN Pada Prolog, yang dimaksud dengan list adalah sebuah object yang di dalamnya mengandung sejumlah object yang lain (jumlahnya dapat berubah-ubah). List dalam bahasa pemrograman lain bisa disamakan dengan tipe data pointer (C dan Pascal). Berikut ini cara penulisan list pada Prolog. [ 1, 2, 3 ] /* list yang mengandung integer 1, 2 dan 3 */ [ kucing, anjing, tikus ] /* list yang terdiri dari 3 buah symbol */ [ Syarif Musadek, Yusida Andriani, Diana Putri ] /* list yang terdiri dari 3 buah string */

Untuk mendeklarasikan list yang elemennya bertipe integer dapat dilakukan seperti berikut ini. DOMAINS integerlist = integer*

Tanda asterik (*) berarti domain tersebut merupakan sebuah list. Tanda asterik juga dipakai di bahasa C untuk pendeklarasian tipe data pointer. Pada Pascal pendeklarasian pointer menggunakan tanda ^. Elemen list bisa berupa apapun, termasuk suatu list yang lain, namun semua elemen dari suatu list harus berasal dari domain yang sama.

Head dan Tail (Kepala dan Ekor) List adalah suatu data object jamak rekursif (recursive compound object). List terdiri dari 2 bagian yaitu head, yang merupakan elemen pertama dari list dan tail, elemen sisanya. Tail dari list adalah juga merupakan sebuah list, sedangkan head dari list merupakan sebuah elemen.

Jika kita selalu mengambil elemen pertama dari suatu list maka pada akhirnya kita akan mendapat sebuah list kosonng (empty list) yang dtulis dengan tanda [ ] (kurung siku buka dan kurung siku tutup). List kosong tidak bisa dipecah lagi menjadi head dan tail. Prolog juga menyediakan cara untuk secara eksplisit memisahkan antara bagian head dan tail dari suatu list. Pemisah tersebut menggunakan tanda vertical bar ( | ). Contoh: [a, b, c] ekivalen dengan [a|[b, c]] ekivalen juga dengan [a|[b|[c]]] dan ekivalen juga dengan [a|[b|[c|[]]]]

Di bawah ini adalah pembahasan dari Modul 7 yang telah dipraktekkan dengan menggunakan VPE pada saat praktikum:

1. Pertama adalah membuka jendela editor yang baru, dan kemudian menggetikkan program contoh 1 seperti dibawah ini:

DOMAINS list=integer*

PREDICATES cetak_list(list)

CLAUSES cetak_list([]).

cetak_list([H|T]):write(H),nl,

cetak_list(T).

GOAL cetak_list([1,2,3]).

Penjelasan Pada CLAUSES cetak_list([]). digunakan untuk mencetak sebuah list yang berada dalam kurung [] tersebut.

cetak_list([H|T]):write(H),nl, cetak_list(T). digunakan untuk mencetak dari head (H) atau kepala dan tail atau ekor (T). Maka ditulis head bagian kepala dulu, ganti baris lalu ekor (T) Penjelasan pada GOAL cetak_list([1,2,3]). Yaitu adalah mencetak elemen list untuk mencetak ke layar setiap elemen dari suatu list tersebut (1, 2, 3). Hasil GOAL diatas diperoleh dari yaitu mencetak dari head (H) atau kepala adalah 1 dan tail atau ekor (T) adalah 3. Maka ditulis head bagian kepala dulu, ganti baris lalu ekor (T)

Selanjutnya adalah program contoh 2

DOMAINS list=integer*

PREDICATES jumlah_elemen(list,integer,integer)

CLAUSES jumlah_elemen([], Hasil, Hasil). jumlah_elemen([_|T], Hasil, Pencacah):PencacahBaru=Pencacah + 1, jumlah_elemen(T, Hasil, PencacahBaru).

GOAL jumlah_elemen([1,2,3],L,0).

Penjelasan Pada CLAUSES jumlah_elemen([], Hasil, Hasil). digunakan untuk menhitung sebuah list yang berada dalam kurung [] tersebut.

jumlah_elemen([_|T], Hasil, Pencacah):PencacahBaru=Pencacah + 1, jumlah_elemen(T, Hasil, PencacahBaru). digunakan untuk menghitung jumlah elemen pada list, pada clauses PencacahBaru=Pencacah +1 yakni suatu jumlah elemen yang

ditentukan adalah pada hasil ekor. Penjelasan pada GOAL jumlah_elemen([1,2,3],L,0). Yaitu adalah menghitung elemen list dari suatu list tersebut (1, 2, 3), dan

menyimpannya dalam variabel L. Hasil GOAL diatas diperoleh dari yaitu menghitung jumlah elemen dari list tersebut, listnya adalah [1, 2, 3]. Maka jumlah elemen list adalah 3 dan disimpan pafa variabe L, jadi Output menjadi (L=3).

2. Selanjutnya adalah program contoh 3

DOMAINS listnama=nama* nama=symbol

PREDICATES nondeterm anggota(nama, listnama)

CLAUSES anggota(Nama, [Nama|_]). anggota(Nama, [_|Ekor]). anggota(Nama, Ekor).

GOAL anggota(susan,[ian,susan,john]).

Penjelasan Pada CLAUSES anggota(Nama, [Nama|_]). digunakan untuk mengetahui keanggotaan suatu objek dari suatu list yang berada dalam kurung [] tersebut.

anggota(Nama, [_|Ekor]). anggota(Nama, Ekor). digunakan untuk mengetahui bahwa objek (Nama) tersebut termasuk anggota di dalam list (yang berada dalam []) atau bukan.

Penjelasan pada GOAL anggota(susan,[ian,susan,john]). Yaitu adalah untuk mengetahui keanggotaan susan dalam list tersebut. Hasil GOAL diatas diperoleh dari yaitu mengetahui keanggotaan susan dalam list tersebut. Didalam list terdapat nama ian, susan dan john, karena dalam list tersebut terdapat nama susan maka hasil goalnya adalah alias Yes. 3. Selanjutnya adalah program contoh 4

DOMAINS integerlist=integer*

PREDICATES tambah(integerlist, integerlist, integerlist)

CLAUSES tambah([],List,List). tambah([H|L1],List2,[H|L3]):tambah(L1,List2,L3).

GOAL tambah([1,2,3],[5,6],L).

Penjelasan Pada CLAUSES tambah([],List,List). digunakan untuk menambahkan suatu list yang berada dalam kurung [] tersebut ke list yang lain.

tambah([H|L1],List2,[H|L3]):tambah(L1,List2,L3). digunakan untuk menambahkan list (L1) dengan list (L3) dan

menggabungkanya

Penjelasan pada GOAL tambah([1,2,3],[5,6],L). Yaitu adalah menambahkan list [1,2,3] dengan [5,6] disimpan pada variabel L. Hasil GOAL diatas diperoleh dari yaitu menambahkan dan menggabungkan list, list pertama [1, 2, 3] dan list kedua [5, 6], dan disimpan pada variable L maka hasil goal akan menjadi L=[1,2,3,5,6]. 4. Kemudian mengganti goal untuk program contoh 4.

DOMAINS integerlist=integer*

PREDICATES tambah(integerlist, integerlist, integerlist)

CLAUSES

tambah([],List,List). tambah([H|L1],List2,[H|L3]):tambah(L1,List2,L3).

GOAL tambah([1,2],[3],L),tambah(L,L,LL).

B. KESIMPULAN Pada modul 7 ini yang dipelajari adalah List, list tersebut adaah merupakan suatu cara penulisan program jika terdapat object di dalam suatu object yang lain yang bersifat jamak rekursif, list dapat disamakan fungsinya dengan pointer pada bahasa C dan Pascal. List memiliki dua bagian yaitu Tail yang sebenarnya merupakan sebuah List lain dan Head yang merupakan elemen atas dari sebuah List.

C. LISTING DOMAINS list=integer*

PREDICATES cetak_list(list)

CLAUSES cetak_list([]).

cetak_list([H|T]):write(H),nl, cetak_list(T).

GOAL cetak_list([1,2,3]). Hasil output :

Program Contoh 2: DOMAINS list=integer*

PREDICATES jumlah_elemen(list,integer,integer)

CLAUSES jumlah_elemen([], Hasil, Hasil). jumlah_elemen([_|T], Hasil, Pencacah):PencacahBaru=Pencacah + 1, jumlah_elemen(T, Hasil, PencacahBaru).

GOAL jumlah_elemen([1,2,3],L,0). Hasil Outputnya:

Program contoh 3: DOMAINS listnama=nama* nama=symbol

PREDICATES nondeterm anggota(nama, listnama)

CLAUSES anggota(Nama, [Nama|_]). anggota(Nama, [_|Ekor]):anggota(Nama, Ekor).

GOAL anggota(susan,[ian,susan,john]). Hasil Outptnya:

Program Contoh 4: DOMAINS integerlist=integer*

PREDICATES tambah(integerlist, integerlist, integerlist)

CLAUSES tambah([],List,List). tambah([H|L1],List2,[H|L3]):tambah(L1,List2,L3).

GOAL tambah([1,2,3],[5,6],L). Hasil Outputnya:

Dan apabila pada GOAL diatas diganti ,aka hasil outputnya akan berbeda GOAL tambah([1,2], [3], L), tambah(L, L, LL). Hasil Outputnya :

TUGAS Domains listnama = nama* nama = symbol

PREDICATES nondeterm kuliah(nama, listnama)

CLAUSES kuliah("Supardi", ["Intelejensi Buatan", "A"]). kuliah("Suradi",["Intelejensi Buatan", "B"]). kuliah("Suyatmi",["Intelejensi Buatan", "C"]). kuliah("Suparni",["Intelejensi Buatan", "D"]). kuliah("Sujiman",["Intelejensi Buatan", "C"]). kuliah("Suharto",["PDE", "B"]). kuliah("Sudirman",["PDE", "C"]).

kuliah("Supardi",["PDE", "C"]). kuliah("Suyatmi",["PDE", "B"]). kuliah("Sutini",["PDE", "D"]). kuliah("Suharto",["Sistem Operasi", "B"]). kuliah("Sutini",["Sistem Operasi", "A"]). kuliah("Supardi",["Sistem Operasi", "A"]). kuliah("Suparni",["Sistem Operasi", "B"]). kuliah("Suripah",["Sistem Operasi", "C"]).

1. Goal untuk mengetahui nilai-nilai yang dimiliki oleh Supardi beserta mata kuliahnya. GOAL kuliah("Supardi",[Mk, Nilai]).

Hasil outputnya :

2. Goal untuk mengecek apakah Suripah mengikuti perkuliahan pada semester tersebut. GOAL kuliah("Suripah",[_, _]). Hasil outputnya :

3. Goal untuk mencari mahasiswa yang tidak lulus (nilai < C) pada semester tersebut beserta mata kuliahnya GOAL kuliah(Nama, [Mk, "D"]);

kuliah(Nama, [Mk, "E"]). Hasil outputnya:

Anda mungkin juga menyukai

  • Pertemuan 3 Dan 4
    Pertemuan 3 Dan 4
    Dokumen14 halaman
    Pertemuan 3 Dan 4
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 5
    Pertemuan Ke 5
    Dokumen7 halaman
    Pertemuan Ke 5
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan 7 Dan 8
    Pertemuan 7 Dan 8
    Dokumen16 halaman
    Pertemuan 7 Dan 8
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan 5 Dan 6
    Pertemuan 5 Dan 6
    Dokumen17 halaman
    Pertemuan 5 Dan 6
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 4
    Pertemuan Ke 4
    Dokumen9 halaman
    Pertemuan Ke 4
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-5 Dan Ke-6
    Pertemuan Ke-5 Dan Ke-6
    Dokumen9 halaman
    Pertemuan Ke-5 Dan Ke-6
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-5 Dan 6
    Pertemuan Ke-5 Dan 6
    Dokumen10 halaman
    Pertemuan Ke-5 Dan 6
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan 1 Dan 2
    Pertemuan 1 Dan 2
    Dokumen16 halaman
    Pertemuan 1 Dan 2
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-7 Dan 8
    Pertemuan Ke-7 Dan 8
    Dokumen8 halaman
    Pertemuan Ke-7 Dan 8
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-3 Dan Ke-4
    Pertemuan Ke-3 Dan Ke-4
    Dokumen12 halaman
    Pertemuan Ke-3 Dan Ke-4
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-1 Dan 2
    Pertemuan Ke-1 Dan 2
    Dokumen12 halaman
    Pertemuan Ke-1 Dan 2
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 3
    Pertemuan Ke 3
    Dokumen9 halaman
    Pertemuan Ke 3
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-3 Dan 4
    Pertemuan Ke-3 Dan 4
    Dokumen13 halaman
    Pertemuan Ke-3 Dan 4
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-7 Dan Ke-8
    Pertemuan Ke-7 Dan Ke-8
    Dokumen10 halaman
    Pertemuan Ke-7 Dan Ke-8
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-1 Dan Ke-2
    Pertemuan Ke-1 Dan Ke-2
    Dokumen15 halaman
    Pertemuan Ke-1 Dan Ke-2
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 7
    Pertemuan Ke 7
    Dokumen13 halaman
    Pertemuan Ke 7
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Tugas Jarkom
    Tugas Jarkom
    Dokumen4 halaman
    Tugas Jarkom
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 6
    Pertemuan Ke 6
    Dokumen11 halaman
    Pertemuan Ke 6
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Tugas Akhir
    Tugas Akhir
    Dokumen2 halaman
    Tugas Akhir
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Tugas Besar
    Tugas Besar
    Dokumen11 halaman
    Tugas Besar
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 1
    Pertemuan Ke 1
    Dokumen14 halaman
    Pertemuan Ke 1
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 2
    Pertemuan Ke 2
    Dokumen14 halaman
    Pertemuan Ke 2
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Tugas Pertemuan Ke-2
    Tugas Pertemuan Ke-2
    Dokumen7 halaman
    Tugas Pertemuan Ke-2
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-7 Dan Ke-8
    Pertemuan Ke-7 Dan Ke-8
    Dokumen12 halaman
    Pertemuan Ke-7 Dan Ke-8
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-3 Dan Ke-4
    Pertemuan Ke-3 Dan Ke-4
    Dokumen19 halaman
    Pertemuan Ke-3 Dan Ke-4
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-5 Dan Ke-6
    Pertemuan Ke-5 Dan Ke-6
    Dokumen13 halaman
    Pertemuan Ke-5 Dan Ke-6
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke-1 Dan Ke-2
    Pertemuan Ke-1 Dan Ke-2
    Dokumen8 halaman
    Pertemuan Ke-1 Dan Ke-2
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 5 Dan 6
    Pertemuan Ke 5 Dan 6
    Dokumen16 halaman
    Pertemuan Ke 5 Dan 6
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 7 Dan 8
    Pertemuan Ke 7 Dan 8
    Dokumen17 halaman
    Pertemuan Ke 7 Dan 8
    Mohamad Hanafi (Mohan)
    Belum ada peringkat
  • Pertemuan Ke 3 Dan 4
    Pertemuan Ke 3 Dan 4
    Dokumen19 halaman
    Pertemuan Ke 3 Dan 4
    Mohamad Hanafi (Mohan)
    Belum ada peringkat