LISP Encyclopedia : Fungsi Pernyataan Bersyarat
Dalam AutoLISP, Fungsi Pernyataan Bersyarat (Conditional Statement Function) adalah fungsi yang menentukan jalannya pemrograman berdasarkan pengecekan suatu nilai pada syarat tertentu. Jika pengecekan memenuhi syarat, maka pemrograman akan menjalankan suatu komando, dan jika pengecekan tidak memenuhi syarat, maka komando tidak dijalankan atau menjalankan komando lain.
Contoh dari fungsi pernyataan bersyarat ini seperti:
- Jika bola warna merah, maka ambil. Selain itu, jangan ambil.
- Jika lantai kotor, maka bersihkan. Selain itu, biarkan.
- Jika nyawa sudah habis, maka permainan selesai. Selain itu, lanjutkan permainan.
Terdapat 4 jenis fungsi pernyataan bersyarat dalam AutoLISP, berikut pemaparannya:
1. if
Fungsi if adalah fungsi yang menjalankan suatu komando jika fungsi memenuhi syarat tertentu. Fungsi ini hanya akan menjalankan satu komando saja.
Sintaks fungsi ini adalah:
(if testexpr thenexpr [elseexpr])
testexpr - Nilai: Integer, Real, String, List, Entity Name, T, nil. Syarat yang menentukan jalan pemrogramman.
thenexpr - Nilai: Integer, Real, String, List, Entity Name, T, nil. Komando jika testexpr benar atau tidak menghasilkan nilai nil.
elseexpr - Nilai: Integer, Real, String, List, Entity Name, T, nil. Komando jika testexpr salah atau menghasilkan nilai nil.
Return - Nilai: Integer, Real, String, List, Entity Name, T, nil. Fungsi ini mengembalikan nilai dari thenexpr. Jika testexpr dan elseexpr kosong, maka nilai yang dikembalikan adalah nil.
Contoh penggunaan:
(if (= 1 1) "benar" "salah")
benar
;(= 1 1) mengembalikan nilai T, maka hasilnya adalah "benar"
(if (= 1 0) "benar" "salah")
salah
;(= 1 0) mengembalikan nilai nil, maka hasilnya adalah "salah"
(if 1 "ada" "tidak ada")
satu
;ada nilaidalam testexpr, maka hasilnya adalah "ada"
(if nil "ada" "tidak ada")
tidak ada
;tidak ada nilai dalam testexpr, maka hasilnya adalah "tidak ada"
2. progn
progn adalah fungsi tambahan dalam fungsi if yang dapat menjalankan lebih dari satu komando. Efeknya, nilai nil tidak akan menjalankan komando lain.
Sintaks dari fungsi ini adalah:
(progn [expr ...])
expr - Nilai: Integer, Real, String, List, Symbol, File, Entity Name, T, nil. Satu atau lebih komando
Return - Nilai: Integer, Real, String, List, Symbol, File, Entity Name, T, nil. Hasil semua komando yang telah dijalankan.
Contoh penggunaan:
(if (= 1 1)
(progn
(setq a 10)
(princ "berhasil")
)
)
10
berhasil
3. cond
cond adalah fungsi yang dapat mengecek lebih dari satu syarat. Fungsi ini adalah versi lanjutan dari fungsi if. Fungsi ini membutuhkan setidaknya satu syarat yang menghasilkan nilai selain nil.
Sintaks dari fungsi ini adalah:
(cond
((test)(result))
(...)
(t elseresult)
)
test - Nilai: List. Syarat-syarat yang menentukan jalan pemrogramman.
result - Nilai: List. Komando jika salah satu test benar atau tidak menghasilkan nilai nil.
t - Biasa disebut dengan default condition. Syarat bahwa semua test tidak menghasilkan nilai apapun.
elseresult - Nilai: Integer, Real, String, List, Symbol, File, Entity Name, T, nil. Komando jika semua test tidak menghasilkan nilai apapun.
Return - Nilai: T, nil. Maksudnya adalah tiap test bisa menghasilkan T atau nil tergantung pemenuhan syarat. Jika result tidak dicantumkan, maka hasil dari test akan dikembalikan.
Contoh penggunaan:
(cond
((= 1 1) (princ "1"))
((= 2 2) (princ "2"))
((= 3 3) (princ "3)))
(t (princ "no"))
)
1
;Komando yang tampil di layar adalah komando benar yang paling atas
(cond
((= 1 2) (princ "1"))
((= 2 2) (princ "2"))
((= 3 3) (princ "3)))
(t (princ "no"))
)
2
(cond
((= 1 2) (princ "1"))
((= 2 3) (princ "2"))
((= 3 1) (princ "3)))
(t (princ "no"))
)
no
;Semua syarat tidak memenuhi, maka komando terakhir dijalankan
Begitulah penjelasan mengenai Fungsi Pernyataan Bersyarat dari saya. Atas perhatiannya, saya ucapkan terima kasih.
Komentar
Posting Komentar