Anda di halaman 1dari 11

BAB I OVERVIEW

Sumber info: Wikipedia Sistem pakar (expert sistem) adalah software yang menggunakan suatu basis 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 (definisi: wikipedia). 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. Kebutuhan akan keahlian manusia tentunya sangat variatif sesuai dengan bentuk masalah. Misalnya dalam suatu pabrik terjadi kerusakan salah satu mesin produksi. Ketika teknisinya akan dimintai bantuan untuk mereparasi mesin tersebut, ternyata teknisi tersebut sedang sakit, atau ke luar kota, atau ada kepentingan lain. Padahal, selama ini pabrik itu hanya bergantung pada teknisi itu. Di sinilah peran sistem pakar. Sistem pakar bisa menggantikan teknisi yang sedang ada keperluan tersebut dan memberikan solusi sementara di mana solusi yang diberikan tersebut sudah seperti seorang pakar/ahli. Sistem pakar itu dibuat berdasarkan keahlian dari seorang pakar untuk memecahkan suatu permasalahan, masalah yang telah ada beserta indikasi, keterangan, solusi atau saran yang sifatnya sementara. Jadi, suatu sistem pakar itu bersifat dinamis dan up to date. Banyak keuntungan dalam pemanfaatan sistem pakar, antara lain: 1. Memperluas jangkauan dari seorang pakar 2. Arsip yang terpercaya dari sebuah keahlian 3. Dapat menyederhanakan suatu pekerjaan 4. Waktu kerja menjadi lebih efisien 5. Meningkatkan produktifitas karena meningkatnya kualitas hasil pekerjaan 6. Biaya kecil 7. Bisa digunakan untuk development human resousrce P.S: Info keuntungan sistem pakar di atas, kami ambil dari kuliah Sistem Berbasis Pengetahuan. Bimo Adi Pradono 31045 www.digizoneku.com

BAB II SEJARAH DAN PERKEMBANGAN


diterjemahkan dari: http://www.atariarchives.org/deli/expert_sistems.php Pada pertengahan tahun 1960-an, Edward A. Feigenbaum adalah satu-satunya orang dalam penelitian artificial intelligence yang memutuskan bahwa sangat penting kita tahu seberapa banyak sebuah program komputer dapat mengerti, dan cara yang terbaik untuk mengetahuinya adalah dengan membangun suatu artificial expert. Kemudian pada tahun 1965, Feigenbaum melakukan penelitian bersama dengan Joshua Lederberg, seorang pakar dan peraih Nobel dalam bidang biokimia. Kemudian mereka membangun sistem pakar yang pertama di Stanford University. Sistem pakar tersebut gagal untuk melakukan layaknya Joshua Lederberg karena mengalami kegagalan untuk menyediakan kimia organic dengan sebuah alat yang digunakan untuk memprediksi struktur molekul. Seorang ahli kimia tentu tahu bahwa struktur yang memungkinkan dari campuran kimia itu bergantung pada atom-atom dengan tingkat perbedaan tertentu sehingga bisa menyambung satu sama lain. Jika ahli kimia menemukan hasil yang tidak diketahui, mereka bisa menganalisis substansinya. Tapi Feigenbaum tidak punya clue ketika membuat AI pertamanya untuk menuju hal tersebut. Memang membangun program if-then dengan tingkat fleksibilitas yang cukup itu sudah mampu menyeleksi masalah dengan sistem analisis eliminasi, tapi hal itu hanya memecahkan masalah utamanya. Ketika kita akan membuat suatu sistem untuk memanipulasi pengetahuan pakar, maka kita harus menaruh pengetahuan-pengetahuan tersebut ke dalam sistem. Setelah mencapai kesimpulan tersebut, Feigenbaum melakukan interview kepada banyak orang yang ahli dalam bidang kimia dan ingin mengetahui tentang bagaimana mereka bisa mengetahui atau membuat suatu keputusan. Tapi pada fase "knowledge acquisition" ini, terdapat beberapa masalah. Ketika mereka ditanya bagaimana mereka tahu apa yang mereka tahu, mereka tidak bisa menjawab. Hal yang perlu dilakukan dalam keadaan seperti itu adalah menunjukkan kepada para ahli kimia tentang program yang bisa membuat keputusan dan menanyakan pada mereka di mana salahnya dan mengapa?. Proses mengobservasi para pakar, membangun model dari keahlian dan kemampuan dari modelnya sampai mereka (para pakar) setuju bahwa model tersebut bisa bekerja dengan baik disebut dengan knowledge engineering. Pada pertengahan tahun 1970an, MYCIN dikembangkan oleh Edward H. Shortliffe, seorang ahli fisika dan computer di Stanford Medical School. Sistem pakar ini didesain untuk bisa mendiagnosis infeksi pada otak. Pokok konsentrasi sistem adalah dapat mendiagnosis infeksi dalam tingkat tertentu dan menyediakan yang dibutuhkan oleh manusia ketika masalah tersebut terjadi dalam jangka waktu 24-48 jam, karena rentang waktu tersebut merupakan Bimo Adi Pradono 31045 www.digizoneku.com

critical time supaya perawatan infeksi otak dapat ditangani dengan baik. Dengan potensi kemapuan yang menjanjikan tersebut, MYCIN terus dikembangkan oleh para ilmuwan di Stanford and Pacific Medical Center untuk memproduksi Puff, yaitu sistem pakar yang membantu dalam diagnosis kelaianan paru-paru dalam jenis tertentu. Sekarang perkembanganya sudah mencapai Carduceus, sistem pakar terbaru yang memiliki knowledge base yang lebih besar dibanding para dokter karena sudah sekitar 80% dari medical literature yang sudah tertanam di dalam sistem pakar ini. Saat ini, sistem pakar sudah dikomersilkan dan masih terus dikembangkan dalam pemanfaatannya dalam berbagai bidang: KAS (Knowledge Acquisition Sistem) and Teiresias membantu para knowledge engineer untuk membangun sistem pakar. ONCOCIN membantu ahli fisika dalam me-manage rejimen obat yang rumit untuk perawatan pasien yang menderita kanker Molgen membantu para pakar biologi dalam perencanaan eksperimen DNA. Guidon berperan sebagai pakar pembelajaran yang mengajarkan kepada siswa dengan membetulkan jawaban ke bentuk pertanyaan teknis. Genesis membantu para ilmuwan dalam perencanaan eksperimen cloning. TATR digunakan oleh angkatan udara dalam perencanaan penyerangan pada pangkalan markas udara lawan.

Bimo Adi Pradono 31045

www.digizoneku.com

BAB III CONTOH APLIKASI


A. Alur Logika dan Screenshot Aplikasi Sederhana
P.S: Contoh aplikasi ini, kami ambil dari tugas mata kuliah Sistem Berbasis Pengetahuan yang sudah kami ambil sebelumnya. Ditulis dalam bahasa LISP. 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:

Gambar 1. Alur logika program indikasi sakit maag Penjelasan singkat logika pengindikasiannya: Pasien akan ditanya, Apakah Anda sakit perut? Jika pasien menjawab ya, maka logikanya akan berjalan ke sebelah kiri (lihat gambar). Jika pasien menjawab tidak, maka alur logika akan berjalan ke sebelah kanan. Pasien akan ditanya lagi, Apakah Anda mual? Jika ya, maka software akan memberi kesimpulan dari konfirmasinya terhadap pasien, dan memunculkan kalimat Anda menderita sakit maag. Bimo Adi Pradono 31045 www.digizoneku.com

Alur Logika Ya Tidak Ya Tidak 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0

Kesimpulan Masih sehat Hanya mual Hanya sakit perut biasa Sakit maag

Tabel 1. Alur logika dan kesimpulan dari program indikasi sakit maag 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. Main Menu Pilihan 1: Pendeteksi Sakit Maag

Gambar 2. Menu Utama Apakah perut Anda sakit? [1] Yes

Gambar 3. Percabangan Pertama Apakah perut Anda mual? [1] Yes

Gambar 4. Percabangan Kedua

Bimo Adi Pradono 31045

www.digizoneku.com

B. Algoritma Dalam LISP


;fungsi untuk mengubah isi variabel menjadi tipe integer (defun to-integer (var &optional (default 0)) (if (not (equal var nil)) (setf var (or (parse-integer var :junk-allowed t) default)) (setf var default))) ;fungsi untuk membaca prompt (defun prompt-read (prompt) (format *query-io* "~a: " prompt) (force-output *query-io*) (read-line *query-io*)) ;fungsi untuk menampilkan prompt yang mengharuskan input berupa integer (defun prompt-integer (prompt &optional (default 0)) (to-integer (prompt-read prompt) default)) ;fungsi untuk print karakter ke konsol (defun print-list (list) (format t "~{~a~%~}" list)) ;fungsi looping untuk menampilkan baris kosong (defun print-spacer (space) (defvar i 0) (loop for i from 0 to (- space 1) do (format t "~%")))

;definisi variabel (defvar *y-maag*) (defvar *no-maag*) (defvar *maag-q*) (defvar *y-maag-q*) (defvar *no-maag-q*) (defvar *y-maag-def*) (defvar *y-maag-def2*) (defvar *no-maag-def*) (defvar *no-maag-def2*) (defvar *y-maag-list*) (defvar *y-maag-list2*) (defvar *no-maag-list*) (defvar *no-maag-list2*) (defvar *id-cf*) (defvar *id-km*) (defvar *id-mu*) (defvar *im-choice*) (defvar *im-active* 1)

;fungsi untuk memanggil var *y-maag-list* (defun y-maag-def () (print-spacer 2) (print-list *y-maag-list*) (print-spacer 4)) ;fungsi untuk memanggil var *y-maag-list2* (defun y-maag-def2 () (print-spacer 2) (print-list *y-maag-list2*) (print-spacer 4)) ;fungsi untuk memanggil var *no-maag-list*

Bimo Adi Pradono 31045

www.digizoneku.com

(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* (list " Mata Kuliah " SISTEM BERBASIS PENGETAHUAN " ==================================================================" " " " Program Pendeteksi Sakit Maag ")) (defvar *ci-welcome-footer* (list " " " ===================================================================" " " " ")) (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 ||" " ||---------------------------------------------------------------||" " || (Bimo A.P/31045)||" " =================================================================="))

" "

;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 " ----Selamat datang. Silakan masukkan pilihan Anda

-----"))

-----"))

Bimo Adi Pradono 31045

www.digizoneku.com

;fungsi untuk memanggil var *ci-welcome-header* dan *ci-welcome-footer* (defun welcome () (print-spacer 25) (print-list *ci-welcome-header*) (print-list *ci-welcome-footer*))

;fungsi quit (defun quit () (SB-EXT:QUIT))

;fungsi percabangan pertama (defun generate1 () (progn (print-spacer 2) (print-list (list "===============================")) (print-list (list "Apakah perut Anda sakit?")) (print-list (list "Pilih Angka: ([1] Yes / [2] No)")) (print-list (list "===============================")) (setq *maag-q* (prompt-integer "Masukkan no. pilihan Anda:"))) (if (equal *maag-q* 1) (y-maag) (if (equal *maag-q* 2) (no-maag) (print-list (list "no. yang anda masukkan tidak ada dalam daftar"))))) ;percabangan ketika dijawab yes (defun y-maag () (progn (print-spacer 2) (print-list (list "===============================")) (print-list (list "Apakah perut Anda mual?")) (print-list (list "Pilih Angka: ([1] Yes / [2] No)")) (print-list (list "===============================")) (setq *y-maag-q* (prompt-integer "Masukkan no. pilihan Anda:"))) (if (equal *y-maag-q* 1) (y-maag-def) (if (equal *y-maag-q* 2) (y-maag-def2) (print-list (list "no. yang anda masukkan tidak ada dalam daftar"))))) ;percabangan ketika dijawab no (defun no-maag () (progn (print-spacer 2) (print-list (list "===============================")) (print-list (list "Apakah perut Anda mual?")) (print-list (list "Pilih Angka: ([1] Yes / [2] No)")) (print-list (list "===============================")) (setq *no-maag-q* (prompt-integer "Masukkan no. pilihan Anda:"))) (if (equal *no-maag-q* 1) (no-maag-def) (if (equal *no-maag-q* 2) (no-maag-def2) (print-list (list "no. yang anda masukkan tidak ada dalam daftar")))))

;fungsi untuk memilih message yang ditampilkan di bawah menu (defun imenu-message-selector (menu) (if (equal *im-choice* 9999) (progn (print-spacer 25) (print-list menu) (print-spacer 1) (print-list *ci-imenu-wrong-choice*)) (progn (if (equal *ci-imenu-message* "##MENU-NAV##") (setf *ci-imenu-message* *ci-imenu-helper*)

Bimo Adi Pradono 31045

www.digizoneku.com

(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* "##MENU-NAV##") (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))

Bimo Adi Pradono 31045

www.digizoneku.com

BAB IV KRITIK DAN SARAN


Dalam perkembangannya, sistem pakar di Indonesia sangat jarang dimanfaatkan untuk membantu dalam memecahkan suatu masalah. Salah satu indikasinya, yaitu kurangnya sosialisasi kepada masyarakat umum, serta tingkat kekhawatiran dan ketakutan yang terlalu berlebihan dari para pakar karena akan tersaingi kepakarannya kalau ada sebuah komputer yang telah memiliki tingkat kepakaran yang serupa. Sebenarnya tujuan utama sistem pakar bukan untuk menggantikan kedudukan seorang ahli atau seorang pakar, tetapi untuk memasyarakatkan pengetahuan dan pengalaman pakar yang sangat langka. Sistem pakar memungkinkan orang lain bisa meningkatkan produktifitas, memperbaiki kualitas keputusan dan sederhananya, sistem pakar bisa memecahkan masalah yang rumit, sekalipun tidak ada orang ahli. Masalah perkembangan sistem pakar di Indonesia sebenarnya hanya terletak pada paradigma dari para pakar saja. Saran kami, lebih baik dilakukan sosialisasi yang lebih intens kepada para pakar dan masyarakat tentang manfaat sistem pakar dalam kegiatan sehari-hari. Supaya para pakar dan masyarakat mengerti akan manfaat yang sebenarnya dari sistem pakar dan untuk menjauhkan dari paradigma para pakar yang takut akan digantikannya peran mereka apabila sistem pakar diterapkan. Karena solusi dari sistem pakar hanyalah bersifat sementara saja, sedangkan para pakar berperan sebagai quality control-nya.

Bimo Adi Pradono 31045

www.digizoneku.com

BAB V REFERENSI
Buku: Suyoto, Dr. Intelegensi Buatan, Teori dan Pemrograman. Penerbit Gava Media. Yogyakarta, 2004. P.S: buku ini diperlukan sebagai dasar ilmu untuk penulisan program LISP

File PDF: Hauskrecht, Milos. Knowledge Representation Lecture 2. CS 2740. Tutorial Lisp Dengan Interpreter SBCL dari Papirus. P.S: buku ini diperlukan sebagai dasar ilmu untuk penulisan program LISP

Situs Web: http://www.atariarchives.org/deli/expert_sistems.php http://en.wikipedia.org/wiki/Expert_sistem http://en.wikipedia.org/wiki/Knowledge_base http://agro.web.ugm.ac.id/lisp-tutorial.htm http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html http://www.gigamonkeys.com/book/ http://norvig.com/paip/README.html Sumber utama dari penulisan dan paradigma laporan ini adalah: Ir. Surjono, Mata Kuliah Sistem Berbasis Pengetahuan, UGM.

Bimo Adi Pradono 31045

www.digizoneku.com

Anda mungkin juga menyukai