Belajar CLISP
1.
Kerangka Dasar
Program: Adalah
bagian-bagian dasar dari suatu program yang
harus ada sehingga membuat program
tersebut dapat dijalankan atau
dioperasikan.
Contoh:
·
Tulis pada text
editor (Notepad++) :
(defun helo()(write-string “Hello LISP oke”))
·
Simpan dengan
menyertakan “.lisp” dibelakang nama file dan type file adalah “All Files”
·
Compile file tadi dengan
cara :
>(compile-file
"c:/lisp/latih/helo.lisp" )
Hingga terdapat output “NIL”
pada LISP
·
Load file tadi dengan
cara :
>(load
"c:/lisp/latih/helo.lisp")
Hingga keluar output “………… is finished.”
·
Panggil fungsi tadi
dengan cara
> (helo)
2.
Ekspresi: Adalah sebuah teks yang terdiri dari: nama, simbol,
operator, fungsi, ( ), yang dapat menghasilkan suatu nilai berkat evaluasi dari ekspresi.
Ekspresi aritmatika (numerik), adalah ekspresi dengan
operator aritmatika ‘*’, ‘/’, ‘+, ‘-’ dapat dituliskan dalam bentuk infix, prefix atau postfix. Pada
notasi fungsional khususnya untuk program LISP
sendiri, jenis
ekspresi yang dipakai adalah Prefix.
Contoh:
Jenis Ekspresi
|
Ekspresi Aritmatika
|
Ekspresi Boolean
|
Prefix
|
(+
(* 3 5) 5)
|
<
3 5
|
Infix
|
(3
* 5) + 5
|
3
< 5
|
Postfix
|
((
3 5 *) 5 +)
|
3 5
<
|
1.
Predikat: Adalah
suatu fungsi yang digunakan untuk
menentukan karakteristik suatu nilai dan atau untuk pemeriksaan suatu besaran.
Contoh:
·
Atom dipakai untuk mencari
tahu apakah inputan hanyalah 1 elemen saja.
Contoh :
(atom 3) hasilnya T.
(atom '(1 2 3))
hasilnya NIL.
·
LISTP dipakai untuk mencari tahu
apakah inputan adalah suatu list.
Contoh :
(listp 1) hasilnya
NIL.
(listp '(1 2))
hasilnya T.
·
NUMBERP dipakai untuk mencari tahu apakah inputan adalah angka. Sebaliknya SYMBOLP dipakai untuk char/huruf.
Contoh :
(numberp 1)
hasilnya T.
(symbolp 'a)
hasilnya T.
·
ODDP dipakai untuk mencari tahu apakah inputan adalah angka ganjil.
Sebaliknya EVENP dipakai untuk angka genap.
Contoh :
(oddp 1) hasilnya
T.
(evenp 2) hasilnya
T.
·
INTEGERP dipakai untuk mencari tahu
apakah inputan adalah bilangan bulat. Sebaliknya FLOATP dipakai untuk bilangan
desimal.
Contoh:
(integerp 1)
hasilnya T.
(floatp 2.0)
hasilnya T.
·
NULL bila dipakai dalam list akan mencari tahu apakah list tersebut kosong.
Akan tetapi dapat dipakai sebagai negasi juga.
Contoh :
(null '()) hasilnya
T.
(null '(1 2))
hasilnya NIL.
·
PLUSP untuk mengindikasikan suatu input bilangan bernilai positif atau
tidak.
Contoh :
(plusp 1) hasilnya
T.
(plusp -3)hasilnya
NIL.
2.
Fungsi Matematika: Adalah suatu
fungsi yang sifatnya seperti predikat yaitu untuk menentukan suatu keluaran
dari sebuah nilai hanya saja nilai keluaran yang dihasilkan adalah hasil dari
suatu pengoperasian aritmatika.
Contoh :
·
MAX dipakai untuk mencari elemen tertinggi dalam inputan. MAX tidak dapat
dipakai untuk list ataupun char. Dan MIN dipakai untuk mencari elemen terendah
dalam inputan.
Contoh:
(max 1 2 3)
hasilnya 3.
(min 1 2 3)
hasilnya 1.
·
EVAL dipakai untuk mengevaluasi pernyataan.
Contoh :
Bila kita menulis
'(+ 3 2) maka hasilnya bukanlah 5 melainkan (+ 3 2) karena adanya tanda '
membuat CLISP mengira (+ 3 2) adalah sebuah list. Karena itu kita dapat
menuliskan (eval '(+ 3 2)) dan hasilnya adalah 5. EVAL akan error bila
menginputkan list tanpa operator seperti (eval '(a 1 2)).
·
FLOOR dipakai untuk memisahkan suatu bilangan dengan bilangan desimalnya.
Contoh
:
(floor
2.89) hasilnya 0.89
·
CEILING dipakai untuk menghitung nilai untuk membuat genap suatu bilangan.
Digenapkan pada bilangan diatasnya. TRUNCATE untuk menghitung nilai untuk
membuat genap sutau bilangan pada bilangan dibawahnya. Sedangkan ROUND untuk menghitung
suatu nilai bilangan yang digenapkan. Dengan syarat n > 0.5 dibulatkan diatasnya, n< 0.5
dibulatkan dibawahnya .
Contoh
: (ceiling 3.5) hasilnya -0.5, digenapkan bilangan 4
(truncate 3.5) hasilnya 0.5, digenapkan
bilangan 3
(round 3.6) hasilnya -0.4 digenapkan
diatsnya sebab n > 0.5
·
(EXPT b e) dipakai mengembalikan pangkat dari e dengan basis b
logaritma asli
Contoh :
(EXPT 10 2) hasilnya 100
·
(LOG bil [b]) : Mengembalikan
bilangan logaritma bilangan bil
dalam basis b.
Contoh : (log 8 2) hasilnya 3
·
ABS : Untuk memberi nilai positif pada semua
bilangan yang diinput.
Contoh :
(abs -8) hasilnya 8
·
(SIGNUM bil) : mengembalikan -1,
nol atau 1 tergantung bil
tersebut positif, nol atau
negatif.
Contoh :
(signum 16) hasilnya 1
(signum -16) hasilnya -1
·
SQRT dipakai untuk mencari akar 2
dari bilangan yang diinput.
Contoh : (sqrt 4) hasilnya 2
·
ISQRT number : untuk mencari lebih
besar atau kurang dari positif akar dari
suatu bilangan.
Contoh :
(isqrt 40) hasilnya 6
(isqrt 10) hasilnya 3
0 comments:
Post a Comment