Sabtu, 07 April 2012

BELAJAR LISP SEDERHANA






LISP merupakan bahasa pemrograman yang suadah tua tetapi masih populer hingga saat ini. Kelebihan dari LISP adalah terletak pada kemudahan dalam memanipulasi simbol dan hubungan antar simbol.

Elemen Dasar LISP
Dalam bahasa pemrograman LISP terdapat dua elemen dasar. Elemen dasar tersebut adalah:
    List
List merupakan segala sesuatu yang dimulai dan diakhiri dengan tanda kurung.
Contoh :
()  => merupakan list kosong.
(5 4 3 2 1) => merupakan list integer.
(a b c d e) => merupakan list karakter.
(List (x y z)) => merupakan list dalam list.

      Atom
Atom merupakan elemen-elemen yang berada di dalam List. Syarat utama dari atom adalah diawali dan diakhiri spasi. Terdapat 2 jenis atom, diantaranya adalah :
  1.  Numerik (angka), merupakan atom berupa integer atau real.
  2. Simbolik (simbol), merupakan atom berupa karakter atau string.

Operator dan Operan
Operator merupakan simbol atau karakter yang biasa dilibatkan untuk melakukan sesuatu operasi atau manipulasi. Dalam ekspresi fungsional terdapat 3 jenis operator, yaitu:
           Operator Aritmatika (+, -, *, / , mod, expt)
           Operator Rasional (=, /=, <, >, <=, >=)
           Operator Boolean (true, false)
Operan merupakan angka atau simbol yang akan diproses atau dimanipulasi.
Susunan :
( <operator>  <operan>  <operan> )

Form
Form merupakan sesuatu yang akan dicari nilainya. Form dapat berupa list atau atom. Penanganan form sangat sederhana jika yang terlibat merupakan atom. Jika atom terdiri dari angka atau numerik, maka hasilnya adalah angka itu sendiri.
Contoh :
     >69
]69

       >-5.6454
 ]-5.6454

       >7/9
 ]7/9


Yuk Praktek yuk !!!!!!
Berikut ini merupakan beberapa contoh fungsi matematika yang sering digunakan dalam LISP :
     > (+ 6  2)
] 7
     > (- 6  2)
] 4
     > (mod 7 3)  (sisa pembagian saaat 7 dibagi 3)
] 1
    > (expt 3 2)  (artinya 3 pangkat 2)
] 9


Kita dapat melakukan perhitungan yang kompleks dengan memanfaatkan list dalam list.
Contoh :
     > (* 2 (- 7 2) )  (artinya 2*(7 - 2) )
] 10
     > (*  (- 7 2)  (+ 3 2) )  (artinya (7 - 2) (3 + 2) )
] 25


Selain itu kita juga dapat menggunakan simbol yang telah diberi nilai sebelumya. Artinya suatu simbol dapat berisi integer pada suatu waktu, namun di waktu lain dapat berisi data dengan tipe lain (contohnya list). Kita dapat memberikan nilai ke simbol dengan menggunakan fungsi setq.
Contoh :
            > (setq  b  75)  (memasukkan nilai 75 ke simbol b)
] 75
            > (setq  c  50)  (memasukkan nilai 50 ke simbol c)
] 50
Jadi  telah kita masukkan nilai ke simbol b = 75 dan c = 50 , maka
> (- b  c)  (artinya  b  dikurangi  c)
] 25

Contoh Kasus :
Sebagai contoh, misalkan kita ingin mencari penyelesaian dari 2x2-5x-3=0. Kita akan menggunakan rumus abc, jadi pertama-tama kita akan memberikan nilai pada simbol a, b, dan c.
> (setq a 2)
] 2 
> (setq b -5)
] -5
> (setq c -3)
] -3
Selanjutnya kita akan memberikan nilai ke diskriminannya d, yaitu b2-4ac.
> (setq d (- (* b b) (* 4 a c)) )
] 4
Karena d positif, pasti kita akan mendapat dua penyelesaian riil.
> (/ (+ (- b) (sqrt d)) (* 2 a) ) ( (- b) sama dengan (- 0 b) )
] 3
> (/ (- (- b) (sqrt d)) (* 2 a) )
] -1/2

Permasalahan
Tetapi perlu kita ketahui juga bahwa tipe data angka terdapat beberapa macam. Pada tipe data float atau bentuk desimal dapat terjadi underflow ( jika nilai mutlak pecahannya terlalu kecil) dan juga overflow (jika nilai mutlak pecahannya terlalu besar)
Contoh :
>0.000000000000000000000000000000000000000000000000001
]*** - floating point underflow

>999999999999999999999999999999999999999999999999999.0
]*** - floating point overflow

Solusi
Untuk mengatasi saat terjadi error seperti underflow ataupun overflow adalah dengan mengetikkan “quit” (tanpa tanda petik) saaat berada di mode debug. Hal ini dimaksudkan mengabaikan inputan terakhir yang bermasalah.
Contoh :
>999999999999999999999999999999999999999999999999999.0
]*** - floating point overflow
Break 1> quit
>(kita dapat melanjutkan penulisan program dengan mengabaikan inputan terkhir yang bermasalah)

"Nah itu merupakan sedikin info bagaimana menggunakan LISP......Semoga Bermanaat!!!!!!!!!!!"

2 komentar:

  1. sangat membantu..nice info gaiss

    BalasHapus
  2. Yuk Praktek yuk !!!!!!
    Berikut ini merupakan beberapa contoh fungsi matematika yang sering digunakan dalam LISP :
    > (+ 6 2)
    ] 7
    > (- 6 2)
    ] 4
    > (mod 7 3) (sisa pembagian saaat 7 dibagi 3)
    ] 1
    > (expt 3 2) (artinya 3 pangkat 2)
    ] 9


    Mohn Diralt Sedikt Gan,,,
    Itu Prakteknya > (+ 6 2) Kenapa Bisa 7, Kan Sehrsnya 8,,,

    BalasHapus