Cari Blog Ini

Rabu, 29 Oktober 2014

Tugas: Mata Kuliah Knowledge Management System

SOAL:

BUATLAH PROGRAM PROLOG DARI NARASI BERIKUT:

PADA SEMESTER 7 DI STMIK POTENSI UTAMA TERDAPAT 5 MAHASISWA YANG MENGAMBIL MATA KULIAH KNOWLEDGE MANAGEMENT SYSTEM (ANDI,BUDI,CINDY,DEDI,EDI), 5 MAHASISWA MENGAMBIL MATA KULIAH EXPERT SYSTEM (FERI,GERI,HERI,IRI, JERI) DAN 5 MAHASISWA LAGI MENGAMBIL MATA KULIAH SISTEM PENDUKUNG KEPUTUSAN (KELLI, LELI, MELI, NELI, OLI). SETELAH UJIAN SELESAI, MASING-MASING MENDAPAT NILAI(SESUAI URUTAN NAMA YANG ADA PADA MATA KULIAH) : A,D,C,B,C,E,A,D,B,C,D,E,B,A,A. MAHASISWA YANG TIDAK LULUS ADALAH MAHASISWA YANG NILAINYA D DAN E. BUATLAH GOAL UNTUK MENCARI:

  1. NAMA MAHASISWA YANG MENGIKUTI MATA KULIAH KNOWLEDGE MANAGEMENT SYSTEM
  2. NAMA MAHASISWA YANG TIDAK LULUS
  3. NAMA MAHASISWA YANG LULUS
  4. SELURUH MATA KULIAH YANG DIAJARKAN
  5. SELURUH NAMA MAHASISWA YANG ADA


PENYELESAIAN:

domains
    name = symbol
    mk,nilai = string
predicates
    kuliah(name,mk)
    nilai(name,mk,nilai)
    lulus(name,mk,nilai)
    tdk_lulus(name,mk,nilai)
    mhs(name)
    matkul(mk)
clauses
    /*Fakta: Mata Kuliah*/
    matkul("Knowledge Management System").
    matkul("Expert System").
    matkul("Sistem Pendukung Keputusan").
  
    /*Fakta: Mahasiswa dan Mata Kuliah*/
    kuliah(andi,"Knowledge Management System").
    kuliah(budi,"Knowledge Management System").
    kuliah(cindy,"Knowledge Management System").
    kuliah(dedi,"Knowledge Management System").
    kuliah(edi,"Knowledge Management System").

    kuliah(feri,"Expert System").
    kuliah(geri,"Expert System").
    kuliah(heri,"Expert System").
    kuliah(iri,"Expert System").
    kuliah(jeri,"Expert System").

    kuliah(kelli,"Sistem Pendukung Keputusan").
    kuliah(leli,"Sistem Pendukung Keputusan").
    kuliah(meli,"Sistem Pendukung Keputusan").
    kuliah(neli,"Sistem Pendukung Keputusan").
    kuliah(oli,"Sistem Pendukung Keputusan").
  
    /*Fakta: Nilai*/
    nilai(andi,"Knowledge Management System","A").
    nilai(budi,"Knowledge Management System","D").
    nilai(cindy,"Knowledge Management System","C").
    nilai(dedi,"Knowledge Management System","B").
    nilai(edi,"Knowledge Management System","C").

    nilai(feri,"Expert System","E").
    nilai(geri,"Expert System","A").
    nilai(heri,"Expert System","D").
    nilai(iri,"Expert System","B").
    nilai(jeri,"Expert System","C").

    nilai(kelli,"Sistem Pendukung Keputusan","D").
    nilai(leli,"Sistem Pendukung Keputusan","E").
    nilai(meli,"Sistem Pendukung Keputusan","B").
    nilai(neli,"Sistem Pendukung Keputusan","A").
    nilai(oli,"Sistem Pendukung Keputusan","A").
  
    /*Lulus*/  
    lulus(Nama,Matkul,Nilai):-
        kuliah(Nama,Matkul),
        nilai(Nama,Matkul,Nilai),
        Nilai="A".
  
    lulus(Nama,Matkul,Nilai):-
        kuliah(Nama,Matkul),
        nilai(Nama,Matkul,Nilai),
        Nilai="B".
  
    lulus(Nama,Matkul,Nilai):-
        kuliah(Nama,Matkul),
        nilai(Nama,Matkul,Nilai),
        Nilai="C".
  
    /*Tidak Lulus*/  
    tdk_lulus(Nama,Matkul,Nilai):-
        kuliah(Nama,Matkul),
        nilai(Nama,Matkul,Nilai),
        Nilai="D".
  
    tdk_lulus(Nama,Matkul,Nilai):-
        kuliah(Nama,Matkul),
        nilai(Nama,Matkul,Nilai),
        Nilai="E".
  
    /*Nama Seluruh Mahasiswa*/
    mhs(X):-
        kuliah(X,"Knowledge Management System");
        kuliah(X,"Expert System");
        kuliah(X,"Sistem Pendukung Keputusan").


GOAL:


1.  kuliah(Nama,”Knowledge Management System”)
    
     Hasil:

     Nama=andi
     Nama=budi
     Nama=cindy
     Nama=dedi
     Nama=edi


2.  tdk_lulus(Nama,Matkul,Nilai)

     Hasil:

     Nama=budi, Matkul=Knowledge Management System, Nilai=D
     Nama=heri, Matkul=Expert System, Nilai=D
     Nama=kelli, Matkul=Sistem Pendukung Keputusan, Nilai=D
     Nama=feri, Matkul=Expert System, Nilai=E
     Nama=leli, Matkul=Sistem Pendukung Keputusan, Nilai=E


3.  lulus(Nama,Matkul,Nilai)

     Hasil:

     Nama=andi, Matkul=Knowledge Management System, Nilai=A
     Nama=geri, Matkul=Expert System, Nilai=A
     Nama=neli, Matkul=Sistem Pendukung Keputusan, Nilai=A
     Nama=oli, Matkul=Sistem Pendukung Keputusan, Nilai=A
     Nama=dedi, Matkul=Knowledge Management System, Nilai=B
     Nama=iri, Matkul=Expert System, Nilai=B
     Nama=meli, Matkul=Sistem Pendukung Keputusan, Nilai=B
     Nama=cindy, Matkul=Knowledge Management System, Nilai=C
     Nama=edi, Matkul=Knowledge Management System, Nilai=C
     Nama=jeri, Matkul=Expert System, Nilai=C


4.  matkul(Matkul)

     Hasil:

     Matkul=Knowledge Management System
     Matkul=Expert System
     Matkul=Sistem Pendukung Keputusan


5.  mhs(Nama)

     Hasil:

     Nama=andi
     Nama=budi
     Nama=cindy
     Nama=dedi
     Nama=edi
     Nama=feri
     Nama=geri
     Nama=heri
     Nama=iri
     Nama=jeri
     Nama=kelli
     Nama=leli
     Nama=meli
     Nama=neli
     Nama=oli

Rabu, 01 Oktober 2014

Knowledge Management System: Membuat Silsilah Keluarga dengan Pemrograman Turbo Prolog 2.0

Gambar: Silsilah Keluarga

Berikut adalah sintaks yang untuk membuat silsilah keluarga dengan Turbo Prolog 2.0:

domains
    name = symbol
predicates
    uyut(name,name)
    kakek(name,name)
    nenek(name,name)
    ayah(name,name)
    ibu(name,name)
    anak(name,name)
    cucu(name,name)
    cicit(name,name)
clauses
    uyut(purwa,komeng).
    uyut(purwa,luntung).
    kakek(purwa,surya).
    kakek(purwa,vivi).
    kakek(purwa,robin).
    kakek(purwa,alex).
    nenek(niswa,komeng).
    nenek(niswa,luntung).
    ayah(purwa,maya).
    ayah(purwa,niswa).
    ayah(robin,komeng).
    ayah(alex,luntung).
    ibu(maya,surya).
    ibu(maya,vivi).
    ibu(niswa,robin).
    ibu(niswa,alex).
    anak(maya,purwa).
    anak(niswa,purwa).
    anak(surya,maya).
    anak(vivi,maya).
    anak(robin,niswa).
    anak(alex,niswa).
    anak(komeng,robin).
    anak(luntung,alex).
    cucu(surya,purwa).
    cucu(vivi,purwa).
    cucu(robin,purwa).
    cucu(alex,purwa).
    cucu(komeng,niswa).
    cucu(luntung,niswa).
    cicit(komeng,purwa).
    cicit(luntung,purwa).

Sintaks di atas akan menghasilkan Goal seperti ditampilkan pada gambar di bawah ini:


Dari gambar di atas dapat dilihat apabila Goal kita masukkan premis yang sesuai maka akan menghasilkan kesimpulan "Yes", apabila tidak sesuai akan menghasilkan kesimpulan "No".

Penggunaan Logika "AND" dan "IF" pun dapat diterapkan, di mana "AND" dapat disimbolkan dengan tanda koma "," sedangkan "IF" dapat disimbolkan dengan tanda titik dua minus ":-". Berikut contoh sintaks dengan variasi "AND" dan "IF".

domains
    name = symbol
predicates
    uyut(name,name)
    kakek(name,name)
    nenek(name,name)
    ayah(name,name)
    ibu(name,name)
    anak(name,name)
    cucu(name,name)
    cicit(name,name)
clauses
    uyut(purwa,komeng).
    uyut(purwa,luntung).
    kakek(P,surya):-uyut(P,luntung).
    kakek(P,vivi):-kakek(P,surya).
    kakek(P,robin):-kakek(P,vivi).
    kakek(P,alex):-kakek(P,robin).
    nenek(niswa,komeng).
    nenek(niswa,luntung).
    ayah(P,maya):-uyut(P,luntung),kakek(P,robin).
    ayah(P,niswa):-ayah(P,maya).
    ayah(robin,komeng).
    ayah(alex,luntung).
    ibu(maya,surya).
    ibu(maya,vivi).
    ibu(niswa,robin).
    ibu(N,alex):-ibu(N,robin).
    anak(maya,purwa).
    anak(niswa,P):-anak(maya,P).
    anak(surya,maya).
    anak(vivi,maya).
    anak(robin,N):-ibu(N,alex).
    anak(alex,niswa).
    anak(komeng,robin).
    anak(luntung,alex).
    cucu(surya,P):-kakek(P,surya),ayah(P,maya).
    cucu(vivi,purwa).
    cucu(robin,purwa).
    cucu(alex,purwa).
    cucu(komeng,niswa).
    cucu(luntung,niswa).
    cicit(komeng,purwa).
    cicit(luntung,purwa).

Sintaks di atas akan menghasilkan Goal seperti ditampilkan pada gambar di bawah ini:


Dari gambar di atas juga menghasilkan Goal yang sama, tetapi apabila premis yang kita masukkan adalah inisialnya maka akan mencari kesimpulan yang sesuai dengan fakta. Contohnya kita ketikkan kakek(P,alex) maka inisial "P" akan disesuaikan dengan fakta yang ada yaitu "P=purwa".


by: M. Rhifky Wayahdi (1120000120)