LAPORAN KECERDASAN BUATAN PERTEMUAN KE 7
Disusun Oleh : Nama
: Mohamad Hanafi
Nim Jurusan
: 095410134 : TEKNIK INFORMATIKA INFORMATIKA
LABOROTARIUM TERPADU SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AKAKOM YOGYAKARTA 2010
LIST
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
A. PEMB PEMBAH AHAS ASAN AN
Pada Prolog, yang dimaksud dengan list adalah sebuah sebuah object yang di dalamnya dalamnya mengandung mengandung sejumlah sejumlah object yang yang lain lain (jum (jumla lahny hnya a dapa dapatt berubah-ubah). List dalam dalam bahasa bahasa pemrog pemrogram raman an lain lain bisa bisa disama disamakan kan 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 mendeklar mendeklarasika asikan n list yang yang elem elemen enny nya a bert bertipe ipe inte intege gerr dapa dapatt 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 jamak rekursif ( recursive compound object ). ). List terdiri dari 2 bagian yaitu head, yang merupakan elemen pertama dari
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Jika kita selalu mengambil elemen pertama dari suatu list maka maka pada 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 Pertama adalah adalah membuka membuka jendela jendela editor editor yang yang baru, baru, dan kemudian kemudian menggetikkan program contoh 1 seperti dibawah ini:
DOMAINS list=integer*
PREDICATES cetak_list(list)
CLAUSES cetak_list([]).
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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 Yaitu adalah adalah mence mencetak tak eleme elemen n list untuk untuk mence mencetak tak ke layar layar setiap 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
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
PREDICATES jumlah_elemen(list,integer,integer)
CLAUSES jumlah_elemen([], Hasil, Hasil). jumlah_elemen([_|T], jumlah_elemen([_|T], Hasil, Pencacah):PencacahBaru=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], jumlah_elemen([_|T ], Hasil, Pencacah):PencacahBaru=Pencacah PencacahBaru=Pencacah + 1, jumlah_elemen(T, Hasil, PencacahBaru). digunakan untuk menghitung jumlah elemen pada list, pada clauses Pencac PencacahB ahBaru aru=Pen =Pencac cacah ah
+1
yakni
ditentukan adalah pada pada hasil ekor. ekor. Penjelasan pada GOAL
suatu
jumlah
elemen
yang
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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. Selanju Selanjutny tnya a adalah adalah progra program m contoh 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|_]).
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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 yaitu menge mengetah tahui ui keangg keanggota otaan an susan susan dalam dalam list terseb tersebut. ut. Didala Didalam m list terdapat nama ian, susan dan john, karena dalam list tersebut terdapat nama susan maka hasil goalnya adalah alias Yes. 3. Selanju Selanjutny tnya a adalah adalah progra program m contoh contoh 4
DOMAINS integerlist=integer*
PREDICATES tambah(integerlist, integerlist, integerlist)
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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). digu diguna naka kan n untu untuk k mena menamb mbah ahka kan n list list (L1) (L1) deng dengan an list list (L3) (L3) dan dan menggabungkanya
Penjelasan pada GOAL
tambah([1,2,3],[5,6],L).
Yaitu Yaitu adalah adalah menam menambah bahkan kan list list [1,2,3 [1,2,3]] dengan dengan [5,6] [5,6] disimp disimpan an pada 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 Kemudian menggan mengganti ti goal goal untuk untuk program program contoh contoh 4.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
tambah([],List,List). tambah([H|L1],List2,[H|L3]):tambah(L1,List2,L3).
GOAL tambah([1,2],[3],L),tambah(L,L,LL).
B. KESI KESIMP MPUL ULAN AN
Pada Pada modu modull 7 ini ini yang yang dipe dipela laja jari ri adal adalah ah List, ist, list list ters terseb ebut ut adaa adaah h merupakan suatu cara penulisan program jika terdapat object di dalam suatu suatu object object yang lain yang bersifat bersifat jamak rekursif, rekursif, list dapat disamakan disamakan fungsinya dengan pointer pada bahasa C dan Pascal. List memiliki dua bagian yaitu Tail yang sebenarnya sebenarnya merupakan merupakan sebuah List lain dan Head yang merupakan elemen atas dari sebuah List.
C. LIST LISTIN ING G DOMAINS list=integer*
PREDICATES cetak_list(list)
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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).
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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*
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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 Goal untuk untuk mengetahu mengetahuii nilai-n nilai-nilai ilai yang dimilik dimilikii oleh oleh Supard Supardii beserta beserta mata kuliahnya. GOAL kuliah("Supardi",[Mk, Nilai]).
Hasil outputnya :
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
kuliah(Nama, [Mk, "E"]).
Hasil outputnya: