PERTEMUAN KE-5
DATA OBJECT SEDERHANA DAN JAMAK
(SIMPLE AND COMPOUND DATA OBJECT)
Disusun Oleh :
Nama : MHD Syaiful Adnan
NIM : 125410115
SEKOLAH TINGGI MANAJEMEN DAN
INFORMATIKA
PEMBAHASAN PRAKTIKUM
write("**** Daftar Orang Yang Ulang Tahun Bulan Ini ****"),nl, write(" Nama Pertama\t\t Nama Kedua\n"),
write("*******************************************************"),nl, date(_,Bulan_ini,_),
daftar_telepon(Orang,_,Tanggal),
cek_bulan_ulang_tahun(Bulan_ini,Tanggal), cetak_orang(Orang),
fail.
write("\n\n Tekan sembarang tombol..."),nl, readchar(_).
write(" ",Pertama,"\t\t\t ",Kedua),nl.
konversi_bulan(Bulan,Bulan1),
konversi_bulan(dec, 12). GOAL
yang_ulang_tahun_bulan_ini.
Output
1.) Visual Prolog memanggil goal yang_ulang_tahun_bulan_ini., lalu dibaca
subgoal pertama dari predikat yang_ulang_tahun_bulan_ini yaitu date.
Subgoal yang dibaca pertama adalah date karena ketiga subgoal diatas
date tidak membutuhkan proses pencarian, karena perintahnya adalah
mencetak.
2.) Date mengambil Bulan pada sistem komputer, dalam hal ini adalah Bulan
Desember. Sehingga Desember diikatkan pada variabel Bulan_ini. Proses
berhasil lalu lanjut subgoal berikutnya.
3.) Subgoal berikutnya yaitu daftar_telepon(Orang, _, Tanggal) didalam sub
goal ini terdiri dari 1 data. Dilakukan pengecekkan unifkasi pada data
yang telah ada.
4.) Data pertama pada daftar_telepon adalah daftar_telepon(orang(eka,
ardiyanti), _, tanggal_lahir(31, dec, 1981)), maka orang(eka, ardiyanti)
diikatkan ke variabel Orang, dan tanggal_lahir diikatkan ke variabel
Tanggal. Proses sukses dilaksanakan. Lalu lanjut ke subgoal berikutnya.
5.) Subgoal berikutnya yaitu cek_bulan_ulang_tahun(Bulan_ini, Tanggal).
Bulan_ini telah diisi oleh Februari, dan Tanggal telah diisi oleh
tanggal_lahir(31, dec, 1981), maka dilakukan pencocokan apakah
cek_bulan_ulang_tahun(December, tanggal_lahir(31, dec, 1981)) hasil
tidak cocok lalu dilakukan pencocokkan kembali data menggunakan
lacakbalik dimulai dari subgoal berikutnya yaitu daftar_telepon(Orang, _,
Tanggal) dengan unifkasi maka data teratas berikutnya akan dibaca.
6.) Terdapat predikat fail pada subgoal yang terakhir untuk memaksa lacak
balik meski pun telah didapat solusi.
PEMBAHASAN PRAKTIKUM
write("**** Daftar Orang Yang Ulang Tahun Bulan Ini ****"),nl, write(" Nama Pertama\t\t Nama Kedua\n"),
write("*******************************************************"),nl, date(_,Bulan_ini,_),
daftar_telepon(Orang,_,Tanggal),
cek_bulan_ulang_tahun(Bulan_ini,Tanggal), cetak_orang(Orang),
fail.
write("\n\n Tekan sembarang tombol..."),nl, readchar(_).
write(" ",Pertama,"\t\t\t ",Kedua),nl.
konversi_bulan(Bulan,Bulan1),
konversi_bulan(feb, 2). konversi_bulan(mar, 3). konversi_bulan(apr, 4). konversi_bulan(may, 5). konversi_bulan(jun, 6). konversi_bulan(jul, 7).
konversi_bulan(aug, 8). konversi_bulan(sep, 9). konversi_bulan(oct, 10). konversi_bulan(nov, 11). konversi_bulan(dec, 12). GOAL
yang_ulang_tahun_bulan_ini.
Output
Disini saya menemukan 5 solution daftar orang yang ulang tahun bulan
ini. Yaitu eka ardiyanti,sri sugiarti,aldi badwin, gigi gilang, dan titi coklat.
Mengapa bisa 5 orang yang ditemukan karena dalam data fakta di Claukses
orang yang berulang tahun untuk bulan December ada 5.
daftar_telepon(orang(eka,ardiyanti),"438-8400",tanggal_lahir(31,dec,1981)). daftar_telepon(orang(sri,sugiarti),"438-8459",tanggal_lahir(2,dec,1952)). daftar_telepon(orang(aldi,badwin),"555-1818",tanggal_lahir(19,dec,1984)). daftar_telepon(orang(gigi,gilang),"911-1234",tanggal_lahir(17,dec,1987)). daftar_telepon(orang(titi,coklat),"439-7409",tanggal_lahir(30,dec,1981)).
TUGAS
1.) Apa perbedaan data object sederhana dan jamak?
Jawab:
Data Object Sederhana terbagi menjadi dua bagian yaitu Variabel (setiap
penulisan variable harus dengan huruf capital atau dengan sebuah underscore)
dan Constanta (apapun yang diidentifkasikan sebaagai sebuah object yang
nilainya bisa bervariasi), sedangkan
Data Object Jamak memperlakukan beberapa informasi sebagai sebuah item
tunggal, data object dimulai dengan sebuah nama yang biasa disebut functor
yang diikuti oleh tiga argumen. Functor tidak melakukan apa-apa, hanya sebuah
nama yang mengidentifkasi sebuah jenis data objek jamak yang didalamnya
terdapat argument.
Jawab:
Input
DOMAINS
alamat_asal = alamat(symbol,symbol,symbol) nama_mahasiswa,jenis_kelamin,nim = symbol
nama_matkul,nama_dosen,program_studi,ruang = symbol PREDICATES
write("\t************* MAHASIAWA YANG MENGIKUTI MATAKULIAH INTELEGENSI BUATAN *************"),nl, write("NIM\t\t Nama Mahasiswa\t\t Nama Dosen\tRuang\t\t Alamat\n"),
mahasiswa("Intelegensi Buatan",_,_,_,_),
write("\n\n Tekan sembarang tombol..."),nl, readchar(_).
cetak_mahasiswa(nama_mahasiswa,nama_dosen,ruang,alamat(symbol,symbol,symbol)):-write("2002001","\t\t ","Sugeng Riyadi","\t\t ","Abdul Kadir","\t ","1","\t ","Jl. Sudirman No. 2","Pontianak","Kalimantan Barat"),nl,
write("2002002","\t\t ","Yulia Sugondo","\t\t "," Abdul Kadir","\t ","1","\t ","Jl. A. Yani No. 10","Klaten","Jawa Tengah"),nl,
write("2002003","\t\t ","Budiman Sejati","\t\t "," Abdul Kadir","\t ","1","\t ","Jl. Slamet Riyadi No. 45","Solo","Jawa Tengah"),nl.
matakuliah_yang_diajarkan_pada_semester_tersebut("Intelegensi Buatan","Sugeng Riyadi","1","Abdul Kadir").
matakuliah_yang_diajarkan_pada_semester_tersebut("Intelegensi Buatan","Yulia Sugondo","1","Abdul Kadir").
matakuliah_yang_diajarkan_pada_semester_tersebut("Intelegensi Buatan","Budiman Sejati","1","Abdul Kadir").
matakuliah_yang_diajarkan_pada_semester_tersebut("PDE","Laksamana Sukardi","2","Indra Yatini").
matakuliah_yang_diajarkan_pada_semester_tersebut("PDE","Rini Suwandi","2","Indra Yatini").
matakuliah_yang_diajarkan_pada_semester_tersebut("PDE","Kwik Kian Gie","2","Indra Yatini").
matakuliah_yang_diajarkan_pada_semester_tersebut("Teknik Antar Muka","Riri Reza","3","Sigit Anggoro").
matakuliah_yang_diajarkan_pada_semester_tersebut("Teknik Antar Muka","Rachel Maryam","3","Sigit Anggoro").
mahasiswa("Intelegensi Buatan","Yulia Sugondo",perempuan,"2002002",alamat("Jl. A. Yani No. 10","Klaten","Jawa Tengah")).
mahasiswa("Intelegensi Buatan","Budiman Sejati",lakilaki,"2002003",alamat("Jl. Slamet Riyadi No. 45","Solo","Jawa Tengah")).
mahasiswa("PDE","Laksamana Sukardi",lakilaki,"2002004",alamat("Jl. MT. Haryono No. 10","Palembang","Sumatera Selatan")).
mahasiswa("PDE","Rini Suwandi",perempuan,"2002005",alamat("Jl. Letjen Suprapto No. 12","Surabaya","Jawa Timur")).
mahasiswa("PDE","Kwik Kian Gie",lakilaki,"2002006",alamat("Jl. WR Supratman No. 100","Makasar","Sulawesi Selatan")).
mahasiswa("Teknik Antar Muka","Riri Reza",lakilaki,"2002007",alamat("Jl. RW Monginsidi No. 30","Purwokerto","Jawa Tengah")).
mahasiswa("Teknik Antar Muka","Rachel Maryam",perempuan,"2002008",alamat("Jl. Otista No. 112","Bandung","Jawa Barat")).
mahasiswa("Teknik Antar Muka","Garin Nugroho",lakilaki,"2002009",alamat("Jl. Tanjung Pura No. 101","Jaya Pura","Papua")).
matakuliah("Intelegensi Buatan","Abdul Kadir","Manajemen Informatika","1"). matakuliah("PDE","Indra Yatini","Teknik Informatika","2").
matakuliah("Teknik Antar Muka","Sigit Anggoro","Teknik Komputer","3").
Goal untuk pertanyaan ke-1
GOAL
mahasiswa_yang_mengikuti_matakuliah_intelegensi_buatan.
Output
Penjelasan :
Pada Section GOAL ini digunakan untuk memenggil data atau fakta dari
mahasiswa yang mengikuti matakuliah Intelegensi Buatan, dimana
sudah diseklarasikan dengan perintah diatas.
Goal untuk pertanyaan ke-2
GOAL
matakuliah_yang_diajarkan_pada_semester_tersebut(A,B,C,D).
Output
Penjelasan