modul ii assignment, input-output, conditional
DESCRIPTION
MODUL IIAssignment, Input-Output, ConditionalTRANSCRIPT
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