Oleh :
KETUT SULYA ARYA WASIKA
(1404505045)
BAB I
PENDAHULUAN
1.1
Latar Belakang
1.2 kepentingan
Sistem
pakar
(expert
adalah
software
yang
menggunakan
suatu
masalah
konsultasi
dari
kata
lain,
tersebut.
1.8
memadukan
praktis.
Suatu
jawaban,
sistem
dan
menyimpan
1.14
Pengetahuan
tersebut
kemudian
digunakan
oleh
siapa
saja
yang
memerlukan.
1.15
suatu
tentunya
kerusakan
mereparasi
mesin
1.21
Padahal,
selama
lain.
inisistem)
pabrik
itusoftware
hanya
bergantung
pada
teknisi
itu.
Sistem
pakar
(expert
sistem)
adalah
yang
menggunakan
suatu
basisbasis
pengetahuan
(knowledge base) dari keahlian manusia untuk melakukan pemecahan masalah (problem solving)
atau mengklarifikasikan hal-hal yang tidak pasti di mana perlu konsultasi dari manusia yang ahli
pada bidang yang diklarifikasikan. Dengan kata lain, expert sistem berguna untuk melakukan
klarifikasi dan memberikan solusi terhadap suatu masalah seperti sedang berkonsultasi oleh
seorang pakar/ahli dalam bidang/masalah tersebut. Sistem pakar juga merupakan sebuah teknik
inovatif dalam menangkap dan memadukan pengetahuan yang kekuatannya terletak dalam
memecahkan masalah-masalah praktis. Suatu sistem pakar umumnya dapat menimbulkan suatu
dialog setelah diberikan jawaban, sistem pakar dapat memberikan solusi atau saran. Sistem pakar
dapat mengumpulkan dan menyimpan pengetahuan seorang pakar atau beberapa orang pakar ke
dalam komputer. Pengetahuan tersebut kemudian digunakan oleh siapa saja yang memerlukan.
Sistem pakar pada dasarnya dibuat dan digunakan untuk membantu memecahkan suatu masalah,
tanpa tergantung dari seorang pakar. Kemudian untuk membuat system pakar tersebut
menggunakan bahasa pemrograman salah satunya yaitu bahasa pemrograman List Processing
(LISP) yang akan dapat membantu dalam proses pembuatan.
1.2
Rumusan Masalah
Berdasarkan latar belakang permasalahan diatas, dapat dirumuskan suatu permasalahan
Manfaat
Manfaat dari penulisan makalah ini yaitu untuk menambah wawasan pembaca mengenai
BAB II
PEMBAHASAN
2.1
2.2
Misalnya,
mengalami
Andi
masalah
sedang
pada
lambungnya,
tidak
tahu
tapi
dia
dideritanya.
Lalu,
Andi
pergi
diperiksa.
ke
dokter
Andi
diperiksa
dan
dan
keluhannya
lambung,
seperti
pada
Apa
diperiksa,
Andi
mual?,
dsb.
Setelah
bahwa
Andi
terkena
maag.
memberi
Dokter
resep
kemudian
obat
dan
solusinya.
bagaimana
kalau
kita
bisa
membuat
yang
mampu
suatu
software
dokter
dalam
hal
konsultasi
penyakit
perut
keluhan
Andi?
Tentunya
akan
untuk
Andi),
ke
dan
dokter
dokter
(bagi
bisa
mengehemat
waktu
dari
akan
expert
menggantikan
sistem.
Iapara
ahli
untuk
memberikan
layaknya
Untuk
lebih
seorang
jelasnya,
ahli.
perhatikan
logika
contoh
alur
indikasi
penyakit
maag
di
bawah:
1.
Misalnya, Andi sedang mengalami masalah pada lambungnya, tapi dia tidak tahu
penyakit apa yang dideritanya. Lalu, Andi pergi ke dokter dan diperiksa. Andi diperiksa dan
ditanya berbagai keluhannya pada lambung, seperti Apa Andi mual?, dsb. Setelah diperiksa,
dokter mengindikasi bahwa Andi terkena maag. Dokter kemudian memberi resep obat dan
solusinya.
Dari cerita di atas, bagaimana kalau kita bisa membuat suatu software yang mampu
menggantikan peran dokter dalam hal konsultasi keluhan penyakit perut Andi? Tentunya akan
lebih menghemat biaya untuk ke dokter (bagi Andi), dan dokter bisa mengehemat waktu periksa.
Nah, itulah peran dari expert sistem. Ia akan menggantikan para ahli untuk memberikan solusi
atau klarifikasi layaknya seorang ahli. Untuk lebih jelasnya, perhatikan contoh alur logika
sederhana program indikasi penyakit maag di bawah:
Program
indikasi
sakit
maag
sederhana,
di
atas
tapi
itusudah
memang
menggambarkan
sistem,
solving.
yaitu
Pemecahan
problem
expert
dipakai
untuk
memecahkan
di
perusahaan
masalah
mengklarifikasi
dengan
pertanyaan
seperti
contoh
di
atas.
Program indikasi sakit maag di atas itu memang sederhana, tapi sudah menggambarkan
kinerja umum dari expert sistem, yaitu problem solving. Pemecahan masalah dengan expert
sistem juga banyak dipakai di perusahaan untuk memecahkan masalah dengan mengklarifikasi
jawaban dari pertanyaan-pertanyaan seperti contoh di atas.
2.
(defun y-maag-def2 ()
(print-spacer 2)
(print-list *y-maag-list2*)
(print-spacer 4))
;fungsi untuk memanggil var *no-maag-list*
(defun no-maag-def ()
(print-spacer 2)
(print-list *no-maag-list*)
(print-spacer 4))
;fungsi untuk memanggil var *no-maag-list2*
(defun no-maag-def2 ()
(print-spacer 2)
(print-list *no-maag-list2*)
(print-spacer 4))
;interface yang ditampilkan di konsol (defvar *ci-welcome-header*
(defvar
(listkesimpulan
*ci-i-main-menu*
"
=================================================================="
||"
||---------------------------------------------------------------||"
A.P/31045)||"
=================================================================="))
;pesan
*y-maag-list*
dari
tiap
percabangan
if
menderita
sakit
maag."))
*y-maag-list2*
sakit,
tapi
tidaksakit
sakit
maag."))
*no-maag-list*
"Perut
Anda
mual,
tapi
tidak
maag."))
*no-maag-list2*
"Anda
masih
sehat."))
;notifikasi
*ci-imenu-helper*
program
*ci-imenu-wrong-choice*
*ci-imenu-message*
-----"))
(defvar
*ci-i-main-menu*
(list " =================================================================="
" ||
MENU UTAMA
||"
" ||
Silakan masukkan angka yang sesuai dengan pilihan Anda
||"
" ||---------------------------------------------------------------||"
" ||
1. Pendeteksi Sakit Maag
||"
" ||---------------------------------------------------------------||"
" ||
9. Kembali ke Menu Utama
||"
" ||
0. Keluar
||"
" ||---------------------------------------------------------------||"
;pesan kesimpulan dari tiap percabangan if
(defvar *y-maag-list*
(list "Anda menderita sakit maag."))
(defvar *y-maag-list2*
(list "Perut Anda sakit, tapi tidak sakit maag."))
(defvar *no-maag-list*
(list "Perut Anda mual, tapi tidak sakit maag."))
(defvar *no-maag-list2*
(list "Anda masih sehat."))
;notifikasi program (
defvar *ci-imenu-helper*
(list " ---- Silakan masukkan pilihan Anda
(defvar *ci-imenu-wrong-choice*
(list " ----Maaf, pilihan Anda salah, mohon coba lagi
(defvar *ci-imenu-message*
(list " ---------"))
-----"))
-----"))
welcome
untuk
memanggil
var
*ci-welcome-header*
dan
*ci-welcome-footer*
(print-spacer
*ci-welcome-header*)
25)
(print-list
*ci-welcome-footer*))
quit
(SB-EXT:QUIT))
quit
()
;fungsi
(defun
generate1
percabangan
()
pertama
sakit?"))
*maag-q*
(prompt-integer
(y-maag)
"Masukkan
no.
pilihan
Anda:")))
*maag-q*
2)
(no-maag)
yes
y-maag
()
*y-maag-q*
(prompt-integer
"Masukkan
no.
pilihan
Anda:")))
*y-maag-q*
1)
2)
(y-maag-def)
(y-maag-def2)
;percabangan
no-maag
ketika
()
dijawab
no
(print-spacer
(progn
2)
"Apakah
perut
Anda
mual?"))
"Pilih
"==============================="))
Angka:
([1]
Yes
/
[2]
No)"))
(setq
*no-maag-q*
(prompt-integer
1)
(no-maag-def)
"Masukkan
no.
pilihan
Anda:")))
(if
(print-list
(equal
*no-maag-q*
(list
"no.
2)
yang
(no-maag-def2)
anda
masukkan
tidak
ada
dalam
daftar")))))
(defun
;fungsi
imenu-message-selector
untuk
memilih
message
yang
(menu)
ditampilkan
di
bawah
menu
(if
(equal
*im-choice*
9999)
menu)
25)
(print-spacer
(print-list
*ci-imenu-wrong-choice*))
1)
(progn
(if
(equal
*ci-imenu-message*
"##MENU-NAV##")
(setf
*ci-imenu-message*
*ci-imenu-helper*)
(list
(print-list *ci-imenu-wrong-choice*))
(progn
(if (equal *ci-imenu-message* "##MENU-NAV##")
(setf *ci-imenu-message* *ci-imenu-helper*)
(prompt-read "Tekan tombol [ENTER] untuk melanjutkan"))
(print-spacer 25)
(print-list menu)
(print-spacer 1)
(print-list *ci-imenu-message*))))
;fungsi untuk menampilkan menu utama
(defun imenu-main ()
(print-spacer 25)
(print-list *ci-i-main-menu*)
(print-spacer 1)
(print-list *ci-imenu-helper*)
(print-spacer 1)
(setq *im-choice* (prompt-integer "Pilihan Anda" 999))
(loop
(cond
((= *im-choice* 0) (quit))
((= *im-choice* 1) (generate1))
((= *im-choice* 2) (generate2))
((= *im-choice* 3) (generate3))
((= *im-choice* 9) (progn (setf *ci-imenu-message* "##MENUNAV##") (welcome)
(return)))
(t (setf *im-choice* 9999)))
(print-spacer 1)
(imenu-message-selector *ci-i-main-menu*)
(print-spacer 1)
(setf *im-choice*
(prompt-integer "Pilihan Anda" 999))))
(if (equal *im-active* 1)
(imenu-main)
(welcome))
2.3
BAB III
PENUTUP
3.1
Kesimpulan
LISP (LISt Processing) digunakan sebagai model komputasi alternatif berdasarkan teori
fungsi/persamaan rekursif. Tujuannya untuk menyediakan definisi sintaks dan simantiks bahasa
yang bersih. Selain sebagai formalisasi matematika, LISP merupakan bahasa pemrograman yang
praktis dirancang untuk menyediakan kemampuan manipulasi simbol untuk menangani masalah
pemrograman yang melibatkan banyak manipulasi simbolik. Bahasa LISP menjadi media yang
luar biasa untuk mempelajari bentukan-bentukan pemrograman dan struktur data serta
menghubungkannya ke fitur-fitur bahasa yang mendukungnya. Fitur paling berarti adalah
deskripsi proses di LISP yang disebut procedure dapat direpresentasikan dan dimanipulasi
sebagai data. Dalam kaitannya bahasa pemrograman LIST cocok digunakan dalam mendesain
system pakar sehingga hasil memenuhi tujuan dari system pakar tersebut.
DAFTAR PUSTAKA
https://hendrachristiandika.wordpress.com/2012/04/20/lisp-bahasa-pemrograman/
http://anakjadul.blogspot.co.id/p/program-menggunakan-lisp.html
http://alogoritmapemrograman.blogspot.co.id/
https://hendrachristiandika.wordpress.com/2012/04/20/lisp-bahasa-pemrograman/
http://dokumen.tips/documents/makalah-kecerdasan-buatan-artificial-intelligenceprogram-sederhana-dengan-bahasa-lisp-wwwdigizonekucom.html