Kerangka
Dasar Program
Bahasa
LISP merupakan bahasa ekspresi, karena baik program maupun data dinyatakan
dalam bentuk ekspresi simbolik atau S-Expresion yang berisi mengenai bagaimana
membuat suatu fungsi. Sebagai contoh fungsi ”hello” yaitu fungsi ini tidak
mempunyai argument parameter.
[1] > (defun
hello() (write-string “Hello LISP oke”))
Dalam
badan fungsi, tempat di mana aksi di lakukan, kita memanggil fungsi lain
(mungkin juga makro) yaitu untuk menulis suatu string ke konsol (string di apit
oleh tanda “ “).
Sebuah
program LISP dapat disimpan dalam sejumlah (lebih dari satu) file eksternal.
Jika fungsi utama dari program tersebut mempunyai banyak sekali fungsi antara,
maka fungsi-fungsi antara itu dapat dikelompokkan berdasarkan fungsinya atau
perannya. Sehingga setiap kelompok fungsi antara dapat disimpan dalam sebuah
file eksternal, yang terpisah dari kelompok lainnya. Karenanya, jika program
LISP tersebut akan dieksekusi, maka seluruh file eksternal tersebut harus
di-load dulu ke dalam memori.
Misal,
di simpan pada direktori “c:\lisp\latih”, maka masuk ke interaktif CLISP, dan
ketikan perintah di bawah ini.
>(compile-file
"c:/lisp/latih/helo.lisp"
)
Maka akan muncul informasi sebagai berikut
Compiling
file C:\lisp\latih\helo.lisp
...
Compilation
of
file C:\lisp\latih\
helo.lisp is finished.
0
errors, 0 warnings
#P"C:
\\lisp\\latih\\helo.fas" ; NIL
;
NIL
Setelah LISP melakukan kompilasi (compile-file) maka akan
dihasilkan file .fas atau .fasl, yaitu file hasil kompilasi yang sudah
berbentuk biner (kode mesin). Sehingga kita dapat melakukan function call
terhadap fungsi yang sudah kita buat (hello).
Muatkan program ke memori dengan me-load file
sebagai berikut :
>(load
"c:/lisp/latih/helo")
Maka akan muncul informasi sebagai berikut:
;; Loading
file
C:\lisp\latih\helo.fas ...
;; Loading
of file
C:\lisp\latih\ helo.fas
is finished. T
Jalankan program sebagai berikut :
>
(hello)
Hello
LISP
oke
"Hello
LISP oke”
Expresi
Aritmatika
Berlaku untuk operan
numeric (integer maupun real) dan hasilnya bernilai numeric, yang terdiri dari
operator kali (expt / *), bagi (/), tambah (+), kurang (-). Untuk melakukan
perhitungan selain operator aritmatika, tersedia pula fungsi dasar perhitungan
bilangan integer seperti abs, mod, div.
Di
samping itu juga ada operator minus (-) terhadap suatu nilai numerik yang
memberikan hasil nilai numerik tersebut dikalikan -1 dan operator ”se-per” (/)
terhadap suatu nilai numerik yang memberikan hasil 1 per nilai numerik
bersangkutan.
Contoh
:
v (+ 1 2 3 4 ) hasilnya 10
v (* 1.0
2.0 3.0
4.0 ) hasilnya 24.0
v (1- 24
)
hasilnya 23
v (< 0 3 4 4 6 )
=> salah karena bukan
merupakan ekspresi Aritmatika
Expresi Predikat
Predikat
adalah ekspresi yang akan menghasilkan true atau false bila dievaluasi.
Sebagai
contoh :
1.
Atom : menghasilkan true jika yang
diperiksa adalah atom
Misal : (ATOM 5) T
(ATOM ‘(1 2 3)) NIL
2.
Listp
: menghasilkan true jika symbol
yang diperiksa adalah list
Misal : (LISTP
5) NIL
(LISTP
‘(1 2 3 4)) T
3.
Null
: menghasilkan true jika list
yang diperiksa adalah list kosong
Misal : (NULL
NIL) T
(NULL 5) NIL
Fungsi Matematika
Fungsi matematika digunakan untuk membantu melakukan
perhitungan – perhitungan matematis yang berguna sebagai alat bantu dalam
berhitung pada LISP. Pemrograman
mengasumsikan bahwa fungsi yang sudah
terdefinisi merupakan fungsi dasar.
Contoh :
(floor 0.34) 0; 0.34
(MAX 1 12 -50 ) 12
(ABS 16 ) 16

0 komentar:
Posting Komentar