LAPORAN PRAKTIKUM KECERDASAN BUATAN DATA OBJECT SEDERHANA DAN JAMAK (SIMPLE DAN COUMPOUND DATA OBJECT)

26
                LAPORAN PRAKTIKUM
KECERDASAN BUATAN
DATA OBJECT SEDERHANA DAN JAMAK
(SIMPLE DAN COUMPOUND DATA OBJECT)








Disusun Oleh :

HERI PURNAMA
125410101
TI 04


UPT LABORATORIUM
Sekolah Tinggi Manajemen Informatika dan Komputer
AKAKOM
Yogyakarta
2013



DARTAR ISI

Judul.………………………………………………………………………………………..       01

Daftar isi..…………………………………………………………………………………        02

Bab 1  : Pendahuluan………………………………………………………….......        03
              A.Tujuan……………………………………………………………………………..     03
               B.Dasar Teori………………………………………………………………………..     03

Bab 2  : Hasil Praktikum………………………………………………….…………       04

Bab 3  : Analisa Hasil Praktikum………………………………………………..       07
              A.Praktikum  1……………………….……………………………………………….………       07
              B.Praktikum  2……………………………..…………………………………………………       08
              C.Praktikum  3……………………..………………………………………………………..        11

Bab 4  : Kesimpulan…………………………………………………………………         12

Bab 5  : Tugas…………………………………………………………………………..        13










Bab 1
Pendahuluan

A.Tujuan
   Mahasiswa mampu :
1.       Mengerti dan dapat mengimplementasikan data object sederhana dan jamak.
2.       Mengerti apa yang dimaksud functor pada data object jamak.
3.       Mengerti proses unifikasi pada data object jamak.

B.DASAR TEORI

SIMPLE DAN COUMPOUND DATA OBJECT
1)      Data Object Sederhana
Data object sederhana terdiri dari 2 yaitu variabel atau konstanta :
·         Variabel
Variabel harus dimulai dengan sebuah huruf kapital (A ..Z) atau sebuah underscore ( _ ). Variabel dalam prolog bersifat lokal bukan global, oleh karena itu jika ada dua klausa yang mengandung sebuah variabel X maka X pada kedua klausa  tersebut adalah variabel yang berbeda.
·         Konstanta 
Konstanta meliputi karakter, angka, dan atom. Suatu nilai konstanta juga merupakan nama dari konstanta tersebut.  Konstanta yang dimaksud tidak sama dengan konstanta simbolis yang ditulis di section constans pada bagian program. Yang dimaksud konstanta disini adalah apapun yang diidentifikasikan sebagai sebuah object bukan subject yang nilainya bisa bervariasi, seperti sebuah :
v  karakter (char),
v  angka (integer atau real),
v  atom (symbol atau string).
2)      Data Object Jamak
Data object jamak memperlakukan beberapa informasi sebagai sebuah item tunggal. Contohnya : tanggal 1 Desember 1993 memiliki 3 informasi yaitu ; hari, bulan, dan tahun.
3)      Deklarasi Domain-Campuran Jamak (Compound Mix-Domain)
Deklarasi Domain-Campuran Jamak bermaksud :
a)      Memilikisebuah argumen dengan kemungkinan lebih dari satu tipe argumen,
b)      Memiliki beberapa macam argumen, masing-masing dengan tipe yang berbeda,
c)       Memiliki beberapa macam argumen, beberapa diantaranya dengan kemungkinan lebih dari satu tipe argumen.
Agar suatu predikat Visual Prolog dapat menerima suatu argumen yang memberikan informasi dengan tipe yang berbeda maka functor tersebut harus dideklarasikan. Contoh berikut memperlihatkan klausa umur yang dapat menerima suatu argumen usia dengan tipe yang berbeda yaitu string, real atau integer.



Bab 2
Hasil Praktikum
Heri Purnama
125410101
                                                                                  
A).Praktikum 01
Listing
DOMAINS
benda = buku(judul,pengarang);
       kuda(nama); kapal;
       bukubank(saldo)
judul,pengarang,nama = symbol
saldo = real

PREDICATES
nondeterm milik(nama,benda)

CLAUSES
 milik(erwin, buku("Markesot Bertutur","Emha Ainun Najib")).
 milik(erwin,kuda(buraq)).
 milik(erwin,kapal).
 milik(erwin,bukubank(1000)).

 GOAL
 milik(erwin,Benda).



Running

B).Praktikum 02
LISTING
DOMAINS
  nama = orang(symbol,symbol) /* (Pertama , Kedua) */
  hari_lahir = tanggal_lahir(integer,symbol,integer) /* (Hari, Bulan, Tahun) */
  telepon = symbol  /* Nomor telepon */

PREDICATES
  nondeterm daftar_telepon(nama,symbol,hari_lahir)
  yang_ulang_tahun_bulan_ini
  konversi_bulan(symbol,integer)
  cek_bulan_ulang_tahun(integer,hari_lahir)
  cetak_orang(nama)

CLAUSES
  yang_ulang_tahun_bulan_ini:-
       write("**** Daftar Orang Yang Ulang Tahun Bulan Ini ****"),nl,
       write(" Nama Pertama\t\t Nama Kedua\n"),
       write("******************************************************"),nl,
       date(_, Bulan_ini, _),  /* Ambil bulan pada sistem komputer */
       daftar_telepon(Orang, _, Tanggal),
       cek_bulan_ulang_tahun(Bulan_ini, Tanggal),
       cetak_orang(Orang),
       fail.

  yang_ulang_tahun_bulan_ini:-
       write("\n\n Tekan sembarang tombol..."),nl,
       readchar(_).

  cetak_orang(orang(Pertama,Kedua)):-
       write("  ",Pertama,"\t\t\t   ",Kedua),nl.

  cek_bulan_ulang_tahun(Bul,tanggal_lahir(_,Bulan,_)):-
       konversi_bulan(Bulan,Bulan1),
       Bul = Bulan1.

  daftar_telepon(orang(erwin,effendy),"767-8463",tanggal_lahir(3,jan,1955)).
  daftar_telepon(orang(pramudya,kurniawan),"438-8400",tanggal_lahir(5,feb,1985)).
  daftar_telepon(orang(kusdiar,prihatin),"555-5653",tanggal_lahir(3,mar, 1935)).
  daftar_telepon(orang(ui,yansen),"767-2223",tanggal_lahir(29,apr,1951)).
  daftar_telepon(orang(roland,hutagalung),"555-1212",tanggal_lahir(12,may,1962)).
  daftar_telepon(orang(andi,nuruddin),"438-8400",tanggal_lahir(17,jun,1980)).
  daftar_telepon(orang(syarif,musadek),"767-8463",tanggal_lahir(20,jun,1986)).
  daftar_telepon(orang(lidya,widyawati),"555-5653",tanggal_lahir(16,jul,1981)).
  daftar_telepon(orang(yusida,andriani),"767-2223",tanggal_lahir(10,aug,1981)).
  daftar_telepon(orang(slamet,riyadi),"438-8400",tanggal_lahir(25,sep,1981)).
  daftar_telepon(orang(nur,harjanto),"438-8400",tanggal_lahir(20,oct,1952)).
  daftar_telepon(orang(dian,marlini),"555-1212",tanggal_lahir(9,nov,1984)).
  daftar_telepon(orang(teguh,heni),"767-2223",tanggal_lahir(15,nov,1987)).
  daftar_telepon(orang(eka,ardiyanti),"438-8400",tanggal_lahir(31,dec,1981)).

  konversi_bulan(jan, 1).
  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.

RUNNING
C).Praktikum 03
Ø  Menambah beberapa klause daftar_telepon untuk orang yang bernama “yayak”,”mukti”,”herii”,”desi”  dan pada predikat tanggal_lahir sesuai dengan waktu praktikum.
Listing
daftar_telepon(orang(yayak,mukti),"541-44400",tanggal_lahir(20,nov,1955)).
daftar_telepon(orang(herii,desi),"4445-14542",tanggal_lahir(15,nov,1986)).

Running















Bab 3
Analisa Hasil Praktikum

A).Praktikum 01
Listing
DOMAINS
benda = buku(judul,pengarang);
       kuda(nama); kapal;
       bukubank(saldo)
judul,pengarang,nama = symbol
saldo = real

Ø  Pada Section DOMAINS digunakan untuk mendeklarasikan objek yang diperlukan dalam suatu data, yaitu :
1.       Domain bendamenggunakakan object jamak yang mana memiliki beberapa object yaitu:
a)      Object buku dengan 2 argumen yakni argument judul dan pegarang
b)      Object kuda dengan 1 argumen yakni nama
c)       Object kapal dengan tanpa argument
d)      Object bukubank dengan  argument yakni saldo.
2.    Domain “judul,pengarang,nama menggunakan data object jamak dengan  konstanta atom yakni (symbol)”,konstanta atom itu bisa simbol atau string , lalu pada data object ini menggunakan data object jamak, karena untuk menuliskan 3 jenis informasi   seperti  : judul,pengarang , serta nama.
3.    Domain saldo”menggunakan data object sederhana karena dengan konstanta,konstanata disisni adalah objek saldo.Objek ini bertipe angka yakni real.

PREDICATES
nondeterm milik(nama,benda)

Ø  Pada Section PREDIKAT digunakan untuk mendeklarasikan perintah-perintah yang nanti akan  digunakan dalam section Clauses, seperti :
1.       Predikat milik mempunyai 2 argumen yakni nama dan benda yang mana dari predikat tersebut pada awal predikat diberi kata nondeterm.nondeterm disisini digunakan untuk memberitahukan kepada prolog bahwa predikat milik memiliki lebih dari 1 kemungkinan jawaban.

CLAUSES
 milik(erwin, buku("Markesot Bertutur","Emha Ainun Najib")).
 milik(erwin,kuda(buraq)).
 milik(erwin,kapal).
 milik(erwin,bukubank(1000)).

Ø  Pada Section CLAUSES digunakan untuk mendeklarasikan aturan dan fakta. Aturan merupakan suatu konklusi diketahui benar jika satu atau lebih konklusi atau fakta lain ditemukan benar.
Ø   Simbol (  :- ) dapat dibaca dengan “jika”, simbol (  , ) dapat dibaca dengan “dan” dan  pada akhir bagian clauses ini harus diakhiri tanda titik (.)
Ø  Pada section CLAUSES ini prolog akan melakukan perintah-perintah yang digunakan  untuk mencari GOAL.
Ø  Pada clause ini ada tiga clausa yaitu
1.       Milik  yang mana mempunyai fakta bahwa object “Erwin” memiliki buku “markesot bertutur”dengan nama pengarang Emha Ainun Najib.
2.       Milik yang mana memiliki fakta bahwa object “erwin” memiliki kuda dengan nama “buraq”.
3.       Milik yang mana memeiliki kapal
4.       Milik mempunyai fakta bahwa Erwin memiliki bukubank dengan nilai saldo “1000”.

 GOAL
 milik(erwin,Benda).
Ø  Pada Section GOAL ini diggunakan untuk memanggil  data atau fakta bahwa Benda apakah yang dipunyai erwin,yang manasudah diseklarasikan dengan perintah diatas.

Running
Ø  Dari hasil GOAL yang telah dituliskan diatas ternyata Erwin mempunyai semua benda yang telah dideklarasikan diatas.

B).Praktikum 02
LISTING
DOMAINS
  nama = orang(symbol,symbol) /* (Pertama , Kedua) */
  hari_lahir = tanggal_lahir(integer,symbol,integer) /* (Hari, Bulan, Tahun) */
  telepon = symbol  /* Nomor telepon */

Ø  Pada Section DOMAINS digunakan untuk mendeklarasikan objek yang diperlukan dalam suatu data, yaitu :
1.       Domain namamenggunakan data object jamak dengan  konstanta atom yakni (symbol,symbol)”, pada data object ini menggunakan data object jamak, karena untuk menuliskan 2 jenis informasi orang yakni untuk orang pertama dan orang kedua.
2.       Domain hari_lahirmenggunakan data object jamak campuran dengan  konstanta angka  dan symbol,konstanta atom itu bisa simbol atau string , sedangkan konstanta angka bias real atu integer.lalu pada data object ini menggunakan data object jamak campuran, karena untuk menuliskan 3 jenis informasi yakni hari,bulan,tahun yang mana untuk hari dan tahun dengan tipe integer dan bulan dengan tipe string.
3.       Domain telepon”menggunakan data object sederhana dengan  konstanta atom yakni (symbol)”,pada data object ini menggunakan data object sederhana dengan tipe datanya adalah symbol.
PREDICATES
  nondeterm daftar_telepon(nama,symbol,hari_lahir)
  yang_ulang_tahun_bulan_ini
  konversi_bulan(symbol,integer)
  cek_bulan_ulang_tahun(integer,hari_lahir)
  cetak_orang(nama)

Ø  Pada Section PREDICATES digunakan untuk mendeklarasikan perintah-perintah yang nanti akan  digunakan dalam section Clauses yaitu :
1.       Daftar_telepon mempunyai tiga argument yakni nama,symbol dan hari_lahir.Kata Nondeterm memberitahukan kedapa prolog bahwa predikat mahasiswa memiliki lebih dari 1 kemungkinan jawaban.
2.       yang_ulang_tahun_bulan_ini tidak mempunyai argument.
3.       konversi_bulan mempunyai 2 argumen dengan tipe symbol dan integer.
4.       cek_bulan_ulang_tahun mempunyai 2 argumen yang pertama bertipe integer dan yang kedua adalah argument hari_lahir yang mana tipe datanya telah dideklarasikan pada seksion domain.
5.       cetak_orang mempunyai 1 argumen yakni nama,yang mana nama dengan tipe data yang telah didefinisikan pada seksi domains.

CLAUSES
  yang_ulang_tahun_bulan_ini:-
       write("**** Daftar Orang Yang Ulang Tahun Bulan Ini ****"),nl,
       write(" Nama Pertama\t\t Nama Kedua\n"),
       write("******************************************************"),nl,
       date(_, Bulan_ini, _),  /* Ambil bulan pada sistem komputer */
       daftar_telepon(Orang, _, Tanggal),
       cek_bulan_ulang_tahun(Bulan_ini, Tanggal),
       cetak_orang(Orang),
       fail.

  yang_ulang_tahun_bulan_ini:-
       write("\n\n Tekan sembarang tombol..."),nl,
       readchar(_).

  cetak_orang(orang(Pertama,Kedua)):-
       write("  ",Pertama,"\t\t\t   ",Kedua),nl.

  cek_bulan_ulang_tahun(Bul,tanggal_lahir(_,Bulan,_)):-
       konversi_bulan(Bulan,Bulan1),
       Bul = Bulan1.

Ø  Pada Section CLAUSES
            Digunakan untuk mendeklarasikan aturan dan fakta. Aturan merupakan suatu konklusi diketahui benar jika satu atau lebih konklusi atau fakta lain ditemukan benar.
Ø   Simbol (  :- ) dapat dibaca dengan “jika”, simbol (  , ) dapat dibaca dengan “dan” dan  pada akhir bagian clauses ini harus diakhiri tanda titik (.) .
Ø  Pada section CLAUSES ini prolog akan melakukan perintah-perintah yang digunakan  untuk mencari GOAL.
Ø   Perintah write digunakan untuk menulis didalam GOAL secara langsung tanpa melalui seleksi.
Ø  date(_, Bulan_ini, _),  perintah ini digunakan untuk menggambil data bulan pada system komputer yang digunakan.
Ø  cek_bulan_ulang_tahun(Bulan_ini, Tanggal) perintah ini digunakan untuk mengecek ulang tahun pada data yang berada pada tanggal dan bulan ini.
Ø   cetak_orang(Orang),perintah ini digunakan untuk mencetak data orang yang telah ada pada data komputer.
Ø   fail. Perintah ini digunakan untuk memaksa kegagalan sehingga memicu terjadinya lacakbalik.
Ø yang_ulang_tahun_bulan_ini:-
       write("\n\n Tekan sembarang tombol..."),nl,
       readchar(_).
·         Perintah diatas digunakan untuk mendeklarasikan siapa saja orang yang ulang tahun pada bulan ini.

Ø   cetak_orang(orang(Pertama,Kedua)):-
     write("  ",Pertama,"\t\t\t   ",Kedua),nl.
·         Perintah ini digunakan untuk menampilkan oaring yang ulang tahun pada bulan ini yakni orang pertama dan orang kedua.

Ø  cek_bulan_ulang_tahun(Bul,tanggal_lahir(_,Bulan,_)):-
          konversi_bulan(Bulan,Bulan1),
          Bul = Bulan1.
·         Perintah ini digunakkan untuk daftar orang yang ada dalam computer terhadap bulan yang telah di setting pada computer,lalu melakukan konversi bulan dan melakukan persamaaan antara objek bul dengan bul1.


  daftar_telepon(orang(erwin,effendy),"767-8463",tanggal_lahir(3,jan,1955)).
  daftar_telepon(orang(pramudya,kurniawan),"438-8400",tanggal_lahir(5,feb,1985)).
  daftar_telepon(orang(kusdiar,prihatin),"555-5653",tanggal_lahir(3,mar, 1935)).
  daftar_telepon(orang(ui,yansen),"767-2223",tanggal_lahir(29,apr,1951)).
  daftar_telepon(orang(roland,hutagalung),"555-1212",tanggal_lahir(12,may,1962)).
  daftar_telepon(orang(andi,nuruddin),"438-8400",tanggal_lahir(17,jun,1980)).
  daftar_telepon(orang(syarif,musadek),"767-8463",tanggal_lahir(20,jun,1986)).
  daftar_telepon(orang(lidya,widyawati),"555-5653",tanggal_lahir(16,jul,1981)).
  daftar_telepon(orang(yusida,andriani),"767-2223",tanggal_lahir(10,aug,1981)).
  daftar_telepon(orang(slamet,riyadi),"438-8400",tanggal_lahir(25,sep,1981)).
  daftar_telepon(orang(nur,harjanto),"438-8400",tanggal_lahir(20,oct,1952)).
  daftar_telepon(orang(dian,marlini),"555-1212",tanggal_lahir(9,nov,1984)).
  daftar_telepon(orang(teguh,heni),"767-2223",tanggal_lahir(15,nov,1987)).
  daftar_telepon(orang(eka,ardiyanti),"438-8400",tanggal_lahir(31,dec,1981)).

Ø  Baris-baris perintah diatas adalah baris-baris yang digunakan untuk mengisi fakta-fakta yang ada,yang mana data tersebut akan dimasukkan pada variabel daftar_telepon,dan mempunyai susunan (orang(1,2),nomor_telepon,tanggal_lahir(tanggal,bulan,tahun)).

  konversi_bulan(jan, 1).
  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).
Ø  Perintah diatas adalah perintah yang digunakan untuk memberi tahu visual rolog bahwa konversi_bulan mempunyai struktur seperti terlihat diatas dari bulan januari sampai desember.

GOAL
  yang_ulang_tahun_bulan_ini.
Ø  Pada Section GOAL ini digunakan untuk memanggil  data atau fakta dari yang_ulang_tahun_bulan_ini, dimana sudah dideklarasikan dengan perintah diatas.

RUNNING
Ø  Dari hasil running diatas terlihat bahwa nama yang ulang tahun pada bulan ini adalah orang pertama adalah dian dan teguh dan orang kedua adalah marlini dan heni.
C).Praktikum 03
Ø  Menambah beberapa klause daftar_telepon untuk orang yang bernama “yayak”,”mukti”,”herii”,”desi”  dan pada predikat tanggal_lahir sesuai dengan waktu praktikum.
Listing
daftar_telepon(orang(yayak,mukti),"541-44400",tanggal_lahir(20,nov,1955)).
daftar_telepon(orang(herii,desi),"4445-14542",tanggal_lahir(15,nov,1986)).
Ø  Pada praktikum yang kedua ini cukup menambah data yang tertera diatas pada clause dibagian baris daftar_telepon.
Running
Ø  Dari hasil goal diatas setelah ditambahkan daftar nama orang baru ,maka tampilannya akan berubah sesuai yang ada dilayar tersebut yakni nama keempat orang tersebut akan ikut tampil dibawahnya.



Bab 4
Kesimpulan
Dari Program yang dijalan dalam Visual Prolog diatas saya dapat menggambil kesimpulan bahwa:


1.      Pada data object sederhana terdiri dari :
a)      Variabel,variabel harus dimulai dengan sebuah huruf kapital (A ..Z) atau sebuah underscore ( _ ).
b)      Konstanta ,nilai konstanta juga merupakan nama dari konstanta tersebut.konstanta diidentifikasikan sebagai sebuah object bukan subject .NIlainyapun bervariasi, seperti:
v  karakter (char),
v  angka (integer atau real),
v  atom (symbol atau string).
2.      Pada Data Object Jamak
Data object jamak memperlakukan beberapa informasi sebagai sebuah item tunggal. Contohnya : tanggal 1 Desember 1993 memiliki 3 informasi yaitu ; hari, bulan, dan tahun.
3.      Pada Deklarasi Domain-Campuran Jamak
Deklarasi Domain-Campuran Jamak mempunyai cirri-ciri:
a)      Memilikisebuah argumen dengan kemungkinan lebih dari satu tipe argumen,
b)      Memiliki beberapa macam argumen, masing-masing dengan tipe yang berbeda,
c)       Memiliki beberapa macam argumen, beberapa diantaranya dengan kemungkinan lebih dari satu tipe argumen.












Bab 5
TUGAS

1.       Cari Mahasiswa yang mengikuti mata kuliah “Intelegensi Buatan” dan tampilkan dengan menyertakan nama dosen, ruang kuliah, alamat asal mahasiswa.
LISTING PROGRAM
DOMAINS
alamat_asal = alamat(symbol,symbol,symbol)
nama_matkul,nama_dosen,program_studi,ruang = symbol
nama_mhs,jenis_kelamin,nim,kelompok_jk = symbol

PREDICATES
nondeterm mhs(nama_matkul,nama_mhs,jenis_kelamin,nim,alamat_asal)
nondeterm mhs_mengikuti_matkul_intelegensi_buatan
cetak_mhs(nama_mhs,nama_dosen,ruang,alamat_asal)
nondeterm matkul(nama_matkul,nama_dosen,program_studi,ruang)
nondeterm matkul_yang_diajarkan_pada_semester_tersebut(nama_matkul,nama_mhs,ruang,nama_dosen)

CLAUSES
mhs_mengikuti_matkul_intelegensi_buatan:-
write("\t*************  MAHASISWA YANG MENGIKUTI MATAKULIAH INTELEGENSI BUATAN  *************"),nl,
write("\n"),
write("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"),nl,
write("NIM\t\t Nama Mahasiswa\t\tNama Dosen\tRuang\t\tAlamat\n"),
write("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"),nl,
mhs("Intelegensi Buatan",_,_,_,_),
cetak_mhs(nama_mhs,nama_dosen,ruang,alamat(symbol,symbol,symbol)).

mhs_mengikuti_matkul_intelegensi_buatan:-
readchar(_).    

cetak_mhs(nama_mhs,nama_dosen,ruang,alamat(symbol,symbol,symbol)):-
write("2002001","\t\t ","Sugeng Riyadi","\t\t ","Abdul Kadir","\t ","1","\t ","Jl. Sudirman No. 2","\tPontianak",",Kalimantan Barat"),nl,
write("2002002","\t\t ","Yulia Sugondo","\t\t ","Abdul Kadir","\t ","1","\t ","Jl. A. Yani No. 10","\tKlaten",",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.


matkul_yang_diajarkan_pada_semester_tersebut("Intelegensi Buatan","Sugeng Riyadi","1","Abdul Kadir").
matkul_yang_diajarkan_pada_semester_tersebut("Intelegensi Buatan","Yulia Sugondo","1","Abdul Kadir").
matkul_yang_diajarkan_pada_semester_tersebut("Intelegensi Buatan","Budiman Sejati","1","Abdul Kadir").

matkul_yang_diajarkan_pada_semester_tersebut("PDE","Laksamana Sukardi","2","Indra Yatini").
matkul_yang_diajarkan_pada_semester_tersebut("PDE","Rini Suwandi","2","Indra Yatini").
matkul_yang_diajarkan_pada_semester_tersebut("PDE","Kwik Kian Gie","2","Indra Yatini").

matkul_yang_diajarkan_pada_semester_tersebut("Teknik Antar Muka","Riri Reza","3","Sigit Anggoro").
matkul_yang_diajarkan_pada_semester_tersebut("Teknik Antar Muka","Rachel Maryam","3","Sigit Anggoro").
matkul_yang_diajarkan_pada_semester_tersebut("Teknik Antar Muka","Garin Nugroho","3","Sigit Anggoro").
  
mhs("Intelegensi Buatan","Sugeng Riyadi",lakilaki,"2002001",alamat("Jl. Sudirman No. 2","Pontianak",",Kalimantan Barat")).
mhs("Intelegensi Buatan","Yulia Sugondo",perempuan,"2002002",alamat("Jl. A. Yani No. 10","Klaten",",Jawa Tengah")).
mhs("Intelegensi Buatan","Budiman Sejati",lakilaki,"2002003",alamat("Jl. Slamet Riyadi No. 45","Solo",",Jawa Tengah")).

mhs("PDE","Laksamana Sukardi",lakilaki,"2002004",alamat("Jl. MT. Haryono No. 10","Palembang",",Sumatera Selatan")).
mhs("PDE","Rini Suwandi",perempuan,"2002005",alamat("Jl. Letjen Suprapto No. 12","Surabaya",",Jawa Timur")).
mhs("PDE","Kwik Kian Gie",lakilaki,"2002006",alamat("Jl. WR Supratman No. 100","Makasar",",Sulawesi Selatan")).

mhs("Teknik Antar Muka","Riri Reza",lakilaki,"2002007",alamat("Jl. RW Monginsidi No. 30","Purwokerto",",Jawa Tengah")).
mhs("Teknik Antar Muka","Rachel Maryam",perempuan,"2002008",alamat("Jl. Otista No. 112","Bandung",",Jawa Barat")).
mhs("Teknik Antar Muka","Garin Nugroho",lakilaki,"2002009",alamat("Jl. Tanjung Pura No. 101","Jaya Pura",",Papua")).

matkul("Intelegensi Buatan","Abdul Kadir","Manajemen Informatika","1").
matkul("PDE","Indra Yatini","Teknik Informatika","2").
matkul("Teknik Antar Muka","Sigit Anggoro","Teknik Komputer","3").

GOAL
mhs_mengikuti_matkul_intelegensi_buatan.
RUNNING PROGRAM

2.       Cari mata kuliah apa saja yang diajarkan pada semester tersebut dan tampilkan dengan menyertakan nama mahasiswa yang mengambil mata kuliah tersebut, ruang dan nama dosen yang mengajar.
Cukup mengganti  GOAL dengan:
LISTING PROGRAM:
GOAL
matkul_yang_diajarkan_pada_semester_tersebut(NamaMatkul,NamaMhs,Ruang,NamaDosen).
RUNNING PROGRAM:

3.       Menampilkan data berdasarkan jenis kelamin.
a)      Berdasarkan jenis kelamin lakilaki
Cukup dengan mengganti GOAL dengan sintak berikut ini:
LISTING PROGRAM:
GOAL
mhs(Matkul,NamaMhs,"lakilaki",_,_).
RUNNING PROGRAM:

b)      Berdasarkan jenis kelamin perempuan.
Cukup dengan mengganti GOAL dengan sintak berikut ini:
LISTING PROGRAM:
GOAL
mhs(Matkul,NamaMhs,"perempuan",_,_).
RUNNING PROGRAM:

SHARE

About heriipurnama

    Blogger Comment
    Facebook Comment

0 komentar:

Post a Comment