Outputing terms prolog mempunyai suatu istilah untuk keluarkan yang dihasilkan, keluaran tersebut sebelumnya didiskripsikan terlebih dahulu. Dalam keluaran digunakan write/1 untuk mengambil predikat pada satu argumen, dimana prolog tersebut bernilai benar. Predikat nl/0 digunakan apabila tidak ada argumen yang diambil. Sedangkan nl digunakan untuk memberikan baris baru pada keluaran.
contohnya: ?-write(26),nl.keluarannya pada baris baru adalah
26 (argumen yang dimasukkan)
yes(argumen bernilai benar)
bisa juga menggunakan writeq yang hasil keluarnnya akan sama dengan menggunakan write.
Bila inputan("paul","hello world") maka output tidak perlu menggunakan write/writeq.
Inputting Terms
Dalam prolog inputan yang benar harus menggunakan tanda titik dibelakang argumen.
Pada inti evaluasi menbaca prolog, istilah dalam input selalu sama dengan variabel argumen.
Contohnya:
?-Read(x).
:Jim
x=Jim
Penjelasan contoh diatas adalah x adalah argumen yang akan dibaca sedangkan jim adalah masukkannya sehingga x tersebut adalah jim.
bisa juga ditulis dalam bentuk
?-x=fred,read(x)
:fred
x=fred
Input and output using characters
Dalam prolog telah ada suatu istilah pada sistem input ataupun output pada prolog, namun dalam prolog juga digunakan karakter. Karakter tersebut memiliki no.seri yang sesuai ASCII, sehingga user tinggal memasukkan no.seri pada argumennya. Untuk itu ada baiknya user menghafal kode karakter agar ,udah mengerjakan prolog.
Contoh Karakter dan no.serienya :
9 untuk tab
32 untuk spasi
65-90 untuk A to Z
97-122 untuk a to z
63 untuk tanda tanya(?)
Outputting Characters Pengambilan predikat dalam suatu argumen dapat juga menggunakan karakter, contohnya:
?-Put(97),nl.
a
yes
dalam contoh tersebut 97 merupakan no.seri dari karakter yang akan diambil dan pernyataan tersebut bernilai benar.
File input : Changing the Current Input Stream
Mengubah input stream :
-Gunakan “see/1”
-Butuh argumen tunggal berupa atom atau variabel yang mewakili nama file
Misal : see(‘myfile.txt’)
-Evaluasi menyebabkan file yang telah dinamai menjadi input stream.Jika file tidak dapat dibuka akan menghasilkan error
-Untuk file yang sesuai dengan input stream sebelumnya akan membuka ulang ketika sebuah input stream baru dipilih
-Input stream dapat ditutup dengan menggunakan “seen”
-Kesalahan pada input stream(user)dapat diatasi dengan menggunakan “seen “ atau bisa dengan menggunakan “see(user)”.
-Tidak terdapat pernyataan pada “seen/0”. Evaluasi bisa menyebabkkan input file yang telah dipilih akan ditutup dan input file yang dipilih akan direset ualng ke user. Disini user’s terminal
-Terdapat 1 pernyataan pada “seen/1” dan menjadi sebuah variabel yang terikat
Reading from Files: End of file
Jika akhir dari file telah ditemukan ketika “read(X)” sedang dievaluasi, variabel X terkait di atom file tersebut. Ketika get(X) atau get0(X) dievaluasi, variabel X diisi dengan nilai numerik khusus. ASCII berkisar antara 0-255, tapi tidak mesti.
Reading from Files : End of Record
Bisa terjadi ketidakcocokan pada saat membaca karakter dari user’s terminal dan dari sebuah file. Masukan akhir ditunjukkan oleh karakter dengan nilai ASCII 13. Akhir dari record/catatan ditunjukkan oleh karakter dengan nilai ASCII : 13 diikuti dengan 10,
dicetaknya satu per baris. Berikut programnya :
Readline:-get0 (X), proses (X). proses (13). proses (X):-X = \ = 13, memakai (X), nl, Readline.
Untuk menghindari put>write gunakan karakter “*” untuk menunjukkan masukan akhir.