Di sini kita juga masih menggunakan looping dalam prolog, dengan input-an user sebagai batas bawah dan baris baru ataupun? sebagai batasan atas. Nilai yang akan diharapkan muncul adalah nilai sebelum batas atas.
Nah sekarang saatnya mencoba soal kedua yaitu bagaimana caranya membuat dan mencoba predikat agar mampu membaca serangkaian karakter yang di input oleh user dengan hasil berupa semua inputa-an sebelum dimulai baris baru ataupun sebelum “?”. Baris baru ini bisa diartikan sebagai blank character jika dalam ASCII nilainya adalah 13, sedangkan ? dalam ASCII code memiliki nilai 63.
Bagaimana caranya? Mari kita buat coodingannya :
go:- repeat,get0(X),stop(X).
stop(13):- nl.
stop(63):- nl,repeat,get0(X),X=:=13.
stop(X):- put(X),fail.
Apasih maksudnya coodingannya? Begini maksudnya sob :
Baris pertama artinya get0(X) mendapatkan nilai inputan yaitu (X) yang akan di ulang dan akan berhenti dengan nilai (X). Lalu pada baris kedua dan ketiga artinya proses akan berhenti apabila user memasukkan blank character / baris baru atau tanda “?” dan pada baris ke empat program akan menampilan nilainya, nilai yang akan di ambil adalah nilai sebelum user memasukkan karakter-karakter tersebut.
Nah sekarang kita lakukan perekaman cooding tersebut ke dalam prolog dengan format namafile.pl seperti contoh pada gambar di bawah ini :
Setelah itu, kita masukkan coodingan tersebut dalam Prolog melalui consult,
Lalu saatnya kita lakukan ujicoba terhadap coodingan yang kita buat dengan cara mengetikkan :
go.
Jika tidak ada masalah kita lanjutkan dengan mengetikkan sebuah kalimat atau nama atau sebarang.
Motor.
Kita lihat hasilnya, jika tidak ada masalah lalu kita lanjutkan dengan mengetikkan dua kalimat yang dibatasi dengan “?” antara dua kalimat tersebut seperti :
Honda?Yamaha.
He5 bila tidak ada masalah maka hasil akhirnya adalah seperti pada gambar di bawah ini :
Nah dari gambar di atas sudah dapat dilihat bahwa setelah user memilih untuk memasukkan baris baru maka nilai yang di munculkan adalah nilai sebelum user memilih baris baru, dan nilai yang dihasilkan pada saat user melakukan input data dua kalimat yang dibatasi dengan “?” maka nilai yang di hasilkan adalah nilai sebelum “?”. Berarti…… Alhamdulilah….. berhasil kembali…. Huf…huf…huf….. Selanjutnya kita coba soal ke tiga he5….. masih ada toh?


