modul ii assignment, input-output, conditional

7
Labotarorium Komputasi Program Studi Teknik Informatika Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta MODUL II Assignment, Input-Output, Conditional Assignment Assignment memberikan suatu nilai kepada suatu variable (nilai tersebut bisa bertipe data integer, string, maupun tipe data yang lain). Contoh sederhana untuk tipe data integer : A = 5 berarti ada suatu variable ‘A’ dengan tipe data integer. A = 5 berarti nilai di dalam variable ‘A’ tersebut adalah 5. Di dalam visual prolog, assignment sederhana tersebut dapat dituliskan: (save as program dibawah ini dengan nama demo1.pro) domains angka = integer predicates assign(angka,angka) clauses assign(X,Y) :- Y=X. % X akan di-assign-kan ke Y jika Y=X goal atau bisa juga X=Y assign(5,I). hasil I=5 1 solution penjelasan: Modul 2 : Assignmet, Input-Output, Conditional halaman 1 dari 7

Upload: stefanus-cendra-hogi

Post on 08-Nov-2015

24 views

Category:

Documents


4 download

DESCRIPTION

MODUL IIAssignment, Input-Output, Conditional

TRANSCRIPT

PRAKTIKUM INTELEGENSI BUATAN

Labotarorium Komputasi

Program Studi Teknik Informatika

Fakultas Teknologi Industri

Universitas Atma Jaya Yogyakarta

MODUL II

Assignment, Input-Output, Conditional

Assignment

Assignment ( memberikan suatu nilai kepada suatu variable (nilai tersebut bisa bertipe data integer, string, maupun tipe data yang lain).Contoh sederhana untuk tipe data integer :

A = 5berarti ada suatu variable A dengan tipe data integer.

A = 5 ( berarti nilai di dalam variable A tersebut adalah 5. Di dalam visual prolog, assignment sederhana tersebut dapat dituliskan:

(save as program dibawah ini dengan nama demo1.pro)

domains

angka = integer

predicates

assign(angka,angka)

clauses

assign(X,Y) :- Y=X. % X akan di-assign-kan ke Y jika Y=X goal

atau bisa juga X=Y

assign(5,I).hasil ( I=51 solutionpenjelasan: Mendeklarasikan suatu variable domain angka bertipe integer.

Lalu dibuat suatu predikat berisi dua argumen angka tersebut. Di dalam clauses, X akan di-assign-kan ke Y jika Y = X.

assign(5,I) ( berarti berdasarkan aturan yang sudah ada di clauses, nilai 5 di assign (dimasukkan) ke dalam I.Sehingga jika di test goal akan menghasilkan nilai variable I = 5.Input-Output

Fungsi masukan dan keluaran (I/O atau Input/Output) dalam Prolog yaitu WRITE dan READ. Fungsi WRITE digunakan untuk menulis nilai atau ekspresi, sedangkan fungsi READ digunakan untuk menerima masukan dari keyboard.Contoh :(save as program dibawah ini dengan nama demo2.pro)predicates

eksekusi

clauses

eksekusi:-

write("tuliskan sebuah kata : "),readln(X),

write("kata yang saya ketik tadi adalah "),write(X),nl.

goal

eksekusi.

penjelasan:

eksekusi merupakan deklarasi predikat. Karena goal menjalankan eksekusi, maka program akan menjalankan urutan eksekusi yang ada pada clauses. Saat Test goal, perintah write akan memunculkan tuliskan sebuah kata : pada layar. Setelah user menginputkan suatu kata (dan tekan Enter), maka kata tersebut akan dimasukkan ke dalam variable X. Kemudian pada layar muncul kata yang saya ketik tadi adalah lalu perintah write(X) akan menampilkan isi dari variable X tersebut.NB: syntax nl adalah untuk ganti baris. Conditional

Aksi kondisional mengandung dua aksi, aksi pertama harus suatu pengamatan. Hasil dari pengamatan ini adalah suatu keadaan benar (true) atau salah (false). Aksi kedua menghasilkan kejadian berlangsung sesuai dengan hasil pengamatan. Jika pengamatan memberikan hasil true maka aksi terjadi, jika pengamatan memberikan hasil false maka aksi tidak dilakukan.

Misalnya: seseorang akan pergi ke kampus menggunakan jenis kendaraan tergantung kondisi cuaca saat itu:

Jika cuaca cerah, naik motor

Jika cuaca hujan, naik mobil

Pertama, melakukan pengamatan apakah cuacanya cerah?, jika iya (true), maka melakukan aksi yaitu naik motor,dan sebaliknya.Berikut ini contoh program sederhana untuk membedakan suatu bilangan:(save as program dibawah ini dengan nama demo3.pro)

predicates

nondeterm bilangan(integer)

clauses

bilangan(X):- X>0, write("bilangan positif"),nl.

bilangan(X):- X=0, write("bilangan nol"),nl.

bilangan(X):- X0 maka kemudian ditampilkan pesan bilangan positif, dan seterusnya.

Sehingga output pesan yang ditampilkan akan tergantung kondisi dari bilangan yang diinputkan, baik itu positif, nol, maupun negatif.

Penggunaan underscore ( _ ) sebagai variabel dan penggunaan perintah cut ( ! )

1. Program 1 :

(save as program dibawah ini dengan nama demo4.pro)predicates

nondeterm cuaca(symbol)

clauses

cuaca(X):- X="cerah",

write("naik motor saja!"),nl.

cuaca(X):- X="hujan",

write("naik mobil saja!"),nl.

cuaca(X):- X=_,

write("terserah mau naik apa!"),nl.

goal

write("cuaca hari ini : "),readln(Cuaca),

cuaca(Cuaca).

Program 2 :

(save as program dibawah ini dengan nama demo5.pro)predicates

nondeterm cuaca(symbol)

clauses

cuaca(X):- X="cerah",

write("naik motor saja!"),nl,!.

cuaca(X):- X="hujan",

write("naik mobil saja!"),nl,!.

cuaca(X):- X=_,

write("terserah mau naik apa!"),nl,!.

goal

write("cuaca hari ini : "),readln(Cuaca),

cuaca(Cuaca).

Cobalah test goal dari kedua program untuk inputan cerah, hujan, dan mendung. Maka akan menampilkan hasil yang berbeda antara Program 1 dan Program 2, hal ini karena adanya perintah ! atau cut yang berarti sama dengan break pada bahasa C. Jadi setelah suatu syarat atau suatu kondisi terpenuhi, maka program akan break sehingga tidak melihat syarat-syarat yang lain lagi.GUIDED

1. Cari dan perbaiki error dalam program berikut ini sehingga memberikan hasil yang benar :(save as program dibawah ini dengan nama guided1.pro)

predicates

clauses

go-

write("masukkan angka = "),readInt(X),

write("angka yang saya ketik tadi adalah "),write(X),nl,

Y=Y*X,

readln("kuadrat dari angka tersebut adalah "),write(Y),nl,

goal

go

2. Buatlah program untuk membedakan kondisi suhu yang diinputkan lewat keyboard :

(save as program yang akan dibuat dengan nama guided2.pro)

Jika angka (suhu) yang diinputkan di atas 27 (derajat celcius), maka tampilkan pesan panas, Jika angka (suhu) yang diinputkan di bawah 27 (derajat celcius), maka tampilkan pesan dingin.Modul 2 : Assignmet, Input-Output, Conditional halaman 5 dari 5