SISTEM PAKAR

Definisi Sistem Pakar
            Sistem Pakar adalah sebuah sistem komputer yang mencoba meniru pengetahuan (knowledge) dan ketrampilan (skill) seorang pakar. Sistem tersebut akan memecahkan masalah sesuai dengan kepakarannya. Sistem pakar merupakan salah satu aplikasi dari Kecerdasan Buatan (Artificial Intelligence) yaitu suatu cabang ilmu komputer yang merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan.
            Sejarah Sistem Pakar
1943
Post E.L. membuktikan bahwa permasalahan-permasalahan komputasi dapat diselesaikan dengan aturan IF-THEN.
1961
General Problem Solver (GPS) oleh A. Newell and H. Simon. adalah sebuah program yang dibangun untuk menyelesaikan permasalahan mulai dari games sampai matematika integral.
1969
DENDRAL. Dibangun di Stamford University atas permintaan NASA (Buchanan and Feigenbaum) untuk melakukan analisis kimiawi terhadap kondisi tanah di planet Mars.
1970
MCYN. Dibuat untuk diagnosa medis oleh Buchanan dan Shortliffe
1982
R1/XCON adalah sistem pakar pertama yang dibuat oleh para peneliti di Carnegie Melon University (CMU).


Konsep Sistem Pakar


Konsep sistem pakar secara umum adalah sebagai berikut :

Knowledge Acquisition
Proses untuk memperoleh pengetahuan dari pakar secara langsung maupun sumber lain (sumber terdokumentasi, buku, sensor, file komputer, data statistik, dll.) yang kemudian diolah menjadi suatu pengetahuan.
Knowledge Representation
Proses penyimpanan dan pengolahan pengetahuan dalam komputer.
Inference
Proses pengambilan kesimpulan dari pengetahuan yang telah tersimpan dalam komputer.
Explanation
Proses penjelaskan kepada pengguna sistem mengenai apa dan bagaimana solusi yang dihasilkan.


Karakteristik Sistem Pakar
           Sistem pakar berbeda dengan sistem konvensional lainnya. Berikut adalah beberapa karakteristik sistem pakar :
1.     Memiliki kemampuan menalar.
2.     Keahlian-keahlian tersimpan sebagai basis pengetahuan.
3.     Pengetahuan tersimpan dalam bentuk aturan-aturan.
4.     Aturan tersimpan dalam bentuk IF-THEN.
5.     Memiliki kemampuan untuk merekomendasi.
Berikut adalah perbedaan antara sistem pakar dan sistem konvensional :
Sistem Pakar
Sistem Konvensional
Fokus pada permasalahan
Fokus pada solusi
Team-work
Bekerja sendiri
Iterative
Sequencial


Bentuk Sistem Pakar
            Berikut adalah bentuk-bentuk sistem pakar :
Berdiri Sendiri / Mandiri
Sistem pakar jenis ini merupakan software yang berdiri sendiri tidak tergantung dengan software  yang lainnya.
Tergabung
Sistem pakar jenis ini merupakan bagian program yang terkandung di dalam suatu algoritma (konvensional), atau merupakan program dimana di dalamnya memanggil algoritma subrutin lain (konvensional).
Terhubung ke software lain
Bentuk ini biasanya merupakan sistem pakar yang menghubungkan ke suatu paket program tertentu, misalnya DBMS.
Sistem Mengabdi
Sistem pakar merupakan bagian dari komputer khusus yang dihubungkan dengan suatu fungsi tertentu. Misalnya sistem pakar yang digunakan untuk membantu menganalisis data radar.


Struktur Sistem Pakar
          Secara umum struktur sebuah sistem pakar terdiri atas 3 komponen utama, yaitu: knowledge base, working memory, dan inference engine.



Knowledge base
Bagian dari sebuah sistem pakar yang mengandung/menyimpan pengetahuan (domain knowledge). Terdapat dua bentuk pendekatan knowledge base yang umum digunakan, yaitu :
a.     Penalaran Berbasis Aturan (Rule-Based Reasoning)
Pada penalaran berbasis aturan, pengetahuan direpresentasikan dengan menggunakan aturan berbentuk : IF-THEN. Bentuk ini digunakan apabila sistem memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan pakar dapat menyelesaikan masalah tersebut secara berurutan. Bentuk ini juga digunakan apabila diperlukan penjelasan tentang langkah-langkah dalam mendapatkan solusi.
b.     Penalaran Berbasis Kasus (Case-Based Reasoning)
Pada penalaran berbasis kasus, knowledge base akan berisi solusi-solusi yang telah didapat sebelumnya, kemudian akan diturunkan suatu solusi untuk keadaan yang terjadi sekarang berdasarkan fakta yang ada). Bentuk ini digunakan apabila pengguna sistem ingin mengetahui lebih banyak lagi kasus-kasus yang hampir sama. Selain itu, bentuk ini juga digunakan apabila sistem telah memiliki sejumlah situasi atau kasus tertentu dalam knowledge base.
Working memory
Bagian sistem pakar yang mengandung/menyimpan fakta-fakta yang ditemukan selama proses konsultasi dengan sistem pakar
Inference engine
Bagian sistem pakar yang bertugas mencari padanan antara fakta yang ada di dalam working memory dengan fakta-fakta tentang domain knowledge tertentu yang ada di dalam knowledge base, selanjutnya inference engine akan menarik/mengambil kesimpulan dari permasalahan yang diajukan kepada sistem. Terdapat dua cara yang dapat dilakukan oleh inference engine, yaitu :
a.   Forward Chaining
Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kiri (IF dulu), yaitu penalaran dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesis.
b.   Backward Chaining
Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kanan (THEN dulu), yaitu penalaran dimulai dari hipotesis terlebih dahulu. Untuk menguji kebenaran hipotesis tersebut harus dicari fakta-fakta yang ada dalam knowledge base.
 

Berikut adalah struktur dasar dari sistem pakar :



Tahapan Pengembangan Sistem Pakar
            Dalam membangun dan mengembangkan suatu sistem pakar terdapat beberapa tahap yang perlu dilakukan. Sistem pakar merupakan salah satu sistem komputer yang cukup rumit, sehingga diperlukan persiapan yang cukup matang. Terdapat dua cara dalam mengembangkan sistem pakar, yaitu :
1.     Membangun sendiri semua komponen dari awal.
2.     Menggunakan komponen-komponen yang sudah tersedia (shell), kecuali knowledge base.
Berikut adalah tahap-tahap dalam mengembangkan suatu sistem pakar :
1.     Mengidentifikasi permasalahan dan kebutuhan
2.     Menentukan permasalahan yang tepat
3.     Mempertimbangkan alternative solusi lainnya
4.     Memperhitungkan pengembalian investasi dengan kemungkinan untung dan ruginya
5.     Memilih alat pengembang sistem pakar, yaitu bahasa pemrograman dan Shell
6.     Merekayasa pengetahuan
7.     Merancang sistem dan melengkapinya
8.     Testing dan debugging
9.     Pemeliharaan sistem



Knowledge Acquisition
            Knowledge acquisition merupakan suatu upaya untuk mendapatkan knowledge base dari pakar secara langsung (expert domain) maupun dari sumber-sumber lainnya (rule induction) seperti sumber terdokumentasi, buku, sensor, file komputer, data statistik, dll, yang kemudian diolah menjadi knowledge base. Ada beberapa hal yang menyebabkan proses knowledge acquisition dari pakar secara langsung tidak dapat dilakukan. Hal tersebut adalah :
1.     Terdapat anggapan bahwa sistem pakar dapat menggantikan seorang pakar dalam menyelesaikan masalah dengan lebih baik.
2.     Pakar terkadang tidak memberikan alasan terhadap pendekatan yang digunakan, serta ada pakar yang terkadang tidak mengerti bagaimana mereka membuat keputusan.
Sehingga terdapat alternatif lain untuk melakukan knowledge acquisition, yaitu dengan cara rule induction. Rule induction merupakan metode untuk mendapatkan knowledge base dengan cara mengubah database yang ada kedalam kumpulan production rule, dengan syarat bahwa database harus berisikan data-data yang meliputi keseluruhan permasalahan yang ada.
Algoritma C4.5 merupakan salah satu algoritma yang digunakan untuk klasifikasi yang bersifat prediktif. Algoritma ini merupakan pengembangan dari algoritma ID3. Berikut adalah langkah-langkah mendapatkan knowledge base menggunakan Rule Induction dengan algoritma Decision Tree C4.5 untuk menentukan bermain tenis atau tidak :
1.     Atribut-atribut yang akan digunakan adalah Cuaca, Suhu, Kelembaban, dan Angin. Serta memiliki kelas untuk target atribut yaitu Main, dengan nilai Ya dan Tidak.
2.     Data histori dalam tabel dibawah ini akan digunakan untuk membuat decision tree dalam menentukan bermain tenis atau tidak :
No
Cuaca
Suhu
Kelembaban
Berangin
Main
1
Cerah
Panas
Tinggi
Salah
Tidak
2
Cerah
Panas
Tinggi
Benar
Tidak
3
Berawan
Panas
Tinggi
Salah
Ya
4
Hujan
Sejuk
Tinggi
Salah
Ya
5
Hujan
Dingin
Normal
Salah
Ya
6
Hujan
Dingin
Normal
Benar
Ya
7
Berawan
Dingin
Normal
Benar
Ya
8
Cerah
Sejuk
Tinggi
Salah
Tidak
9
Cerah
Dingin
Normal
Salah
Ya
10
Hujan
Sejuk
Normal
Salah
Ya
11
Cerah
Sejuk
Normal
Benar
Ya
12
Berawan
Sejuk
Tinggi
Benar
Ya
13
Berawan
Panas
Normal
Salah
Ya
14
Hujan
sejuk
Tinggi
Benar
Tidak

3.     Langkah selanjutnya yaitu menghitung Entropy dan Gain untuk setiap atributnya.
a.   Rumus Entropy
Keterangan :
S adalah himpunan (dataset) kasus
k adalah banyaknya kejadian S
pj adalah probabilitas dari Sum(Ya) dibagi Total Kasus.

b.   Rumus Gain
Keterangan
S = data yang digunakan untuk training.
A = atribut.
|Si| = jumlah data untuk nilai V.
|S| = jumlah seluruh data.
Entropy(Si) = entropy untuk data yang memiliki nilai i

Total Kasus
Sum(Ya)
Sum(Tidak)
Entropy
14
10
4
0.863120569

Setelah menghitung nilai Entropy selanjutnya adalah menghitung nilai Gain.
 


Sehingga didapatkan decision tree node 1.


4.     Berdasarkan pembentukan decision tree node 1, node 1.1 akan dianalisis lebih lanjut. Dengan memfilter tabel dan mengambil data yang memiliki nilai “Kelembaban” = Tinggi.
No
Cuaca
Suhu
Kelembaban
Berangin
Main
1
Cerah
Panas
Tinggi
Salah
Tidak
2
Cerah
Panas
Tinggi
Benar
Tidak
3
Berawan
Panas
Tinggi
Salah
Ya
4
Hujan
Sejuk
Tinggi
Salah
Ya
5
Cerah
Sejuk
Tinggi
Salah
Tidak
6
Berawan
Sejuk
Tinggi
Benar
Ya
7
hujan
Sejuk
Tinggi
Benar
Tidak

Kemudian menghitung nilai entropy atribut Kelembaban=Tinggi serta entropy dan gain setiap atribut.
Kelembaban = Tinggi
Sum(Ya)
Sum(Tidak)
Entropy
7
3
4
0.985228136




Sehingga didapatkan decision tree untuk node 1.1


5.     Berdasarkan pembentukan decision tree node 1.1, node 1.1.2 akan dianalisis lebih lanjut. Dengan memfilter tabel dan mengambil data yang memiliki nilai “Kelembaban” = Tinggi & “Cuaca” = Hujan.
No
Cuaca
Suhu
Kelembaban
Berangin
Main
1
Hujan
Sejuk
Tinggi
Salah
Ya
2
Hujan
Sejuk
Tinggi
Benar
Tidak

Kemudian menghitung kembali nilai entropy atribut “Kelembaban” = Tinggi & “Cuaca” = Hujan serta entropy dan gain untuk setiap atribut.
Kelembaban = Tinggi & Hujan
Sum(Ya)
Sum(Tidak)
Entropy
2
1
1
1

 



Sehingga didapatkan decision tree untuk node 1.1.2



6.     Langkah selanjutnya yaitu membuat rule atau aturan berdasarkan decision tree yang telah terbentuk.
Rule 1
IF Kelembaban = Normal THEN Main = Ya
Rule 2
IF Kelembaban = Tinggi AND Cuaca = Cerah THEN Main = Tidak
Rule 3
IF Kelembaban = Tinggi AND Cuaca = Berawan THEN Main = Ya
Rule 4
IF Kelembaban = Tinggi AND Cuaca = Hujan AND Berangin = Benar THEN Main = Tidak
Rule 5
IF Kelembaban = Tinggi AND Cuaca = Hujan AND Berangin = Salah THEN Main = Ya


Knowledge Representation (Representasi Pengetahuan)
Pengetahuan adalah kemampuan untuk membentuk model mental yang menggambarkan obyek dengan tepat dan merepresantasikan dalam aksi yang dilakukan terhadap suatu obyek. Sedangkan representasi pengetahuan adalah metode yang digunakan untuk mengodekan pengetahuan dalam sebuah sistem pakar yang berbasis pengetahuan. Representasi pengetahuan yang baik harus dapat mengemukakan hal secara eksplisit, membuat masalah menjadi transparan, efisien, enampilkan batasan-batasan alami yang ada, dapat menghilangkan bagian-bagian yang tidak diperlukan, serta dapat dilakukan komputasi.
Representasi pengetahuan dibagi menjadi empat jenis, yaitu :
1.     Representasi Logika.
Representasi logika menggunakan ekspresi-ekspresi dalam logika formal untuk merepresentasikan knowledge base atau basis pengetahuan.
2.     Representasi Prosedural.
Representasi prosedural merepresentasikan pengetahuan sebgai kumpulan instruksi untuk memecahkan suatu masalah.
3.     Representasi Network.
Representasi network merepresentasikan pengetahuan sebagai sebuah graf dimana setiap simpulnya menggambarkan objek atau konsep dari suatu permasalahan yang dihadapi, sedangkan edge­ menggambarkan hubungan atau asosiasi antar objek.
4.     Representasi Terstruktur.
Representasi pengetahuan terstruktur merupakan perluasan representasi network dengan cara membuat setiap simpulnya menjadi sebuah struktur data yang kompleks.


A.    Representasi Logika
Representasi logika merupakan representasi pengetahuan yang paling tua, yang menggunakan ekspresi-ekspresi dalam logika formal untuk merepresentasikan basis pengetahuan. Pada dasarnya proses logika adalah proses membentuk kesimpulan dan menarik suatu inferensi berdasarkan fakta yang ada. Input dari proses logika berupa premis atau fakta-fakta yang diakui kebenarannya sehingga dengan melakukan penalaran pada proses logika dapat dibentuk suatu inferensi atau kesimpulan yang benar.
ü  Terdiri dari: sintaks (simbol), semantik (fakta), dan proses pengambilan keputusan (inferensi)
ü  Proses penalaran:
1)  Deduktif (umum-khusus)
2)  Induktif (khusus-umum
ü  Logika:
1)  Logika Preposisi
Proposisi adalah suatu pernyataan yang dapat bernilai benar atau salah yang ditunjukkan dengan simbol-simbol (contoh: P dan Q). Penggabungan proposisi dilakukan dengan menggunakan operator logika Konjungsi :  Λ (and), Disjungsi : V (or), Negasi : ¬ (not), Implikasi : → (if then), dan Ekuivalensi : ↔ (if and only if).
Contoh :
p = hujan turun
q = saya tidak pergi ke kampus
§  Konjungsi :  Λ (and)
Hujan turun dan saya tidak pergi ke kampus
§  Disjungsi : V (or)
Hujan turun atau saya tidak pergi ke kampus
§  Negasi : ¬ (not)
Tidak benar bahwa hujan turun.
§  Implikasi : → (if then)
Jika hujan turun maka saya tidak pergi ke kampus
§  Ekuivalensi : ↔ (if and only if)
Saya tidak ke kampus jika dan hanya jika hujan turun
2)  Logika Predikat
Logika predikat merupakan representasi fakta dalam bentuk well formed formula. Logika predikat membagi sebuah pernyataan menjadi dua bagian, yaitu :
§  Argumen : individu atau obyek yang membuat keterangan
§  Predikat : berupa kata kerja atau bagian kata kerja yang menerangkan argumen (subjek/objek) seperti pada kalimat
Bentuk umum logika predikat :
Contoh :
Joko suka bahasa inggris
Maka logika predikatnya adalah : Suka(joko, bahasa inggris)
predikat (keterangan) : suka
argumen (objek) : joko, bahasa inggris


B.     Representasi Prosedural
Representasi pengetahuan tentang bagaimana langkah-langkah mengerjakan sesuatu disebut representasi prosedural. Representasi prosedural merepresentasikan pengetahuan dalam bentuk ekspresi IF-THEN. Terdiri dari antecedent/premis/situasi dan konsekuen/kesimpulan/tindakan. Berikut adalah bentuk-bentuk aturan dalam representasi prosedural :
1)     IF premis THEN kesimpulan
Contoh :
IF pendapatan tinggi THEN pajak yang harus dibayar juga tinggi
2)     Kesimpulan IF premis
Contoh :
Pajak yang harus dibayar tinggi IF pendapatan tinggi
3)     Inclusion of ELSE
Contoh :
IF pendapatan tinggi OR pengeluaran tinggi, THEN pajak yang harus dibayar tinggi
ELSE pajak yang harus dibayar rendah


C.    Representasi Network
Dalam representasi network, berikut adalah beberapa cara untuk menyatakan representasi pengetahuan :
1)     Semantic Network
Pertama kali dikenalkan oleh Ros Quillian, yang merupakan pengetahuan rafis yang menunjukkan hubungan antar objek. Semantic network sangat fleksibel, untuk mendapatkan kesimpulan komputer dapat mencari secara forward maupun backward berdasarkan arc pada node awal. Node merepresentasikan sebuah objek atau peristiwa yang digambarkan dengan lingkaran. Sedangkan arc merepresentasikan sebuah relasi atau hubungan antar node yang digambarkan dengan garis berarah.
Contoh :
  

Contoh di atas adalah sebuah semantic networks yang mengilustrasikan sebuah hubungan keluarga. Diagram di atas dapat dikonversikan ke dalam bentuk predicate calculus (Logika Predikat) sebagai berikut:
mother(john,sue)
age(john,5)
wife(max,sue)
age(max,34)

1)     Tree
Tree adalah salah satu bentuk representasi network suatu struktur data yang berupa node-node yang dibuat secara hirarkis dan hubungannya. Berikut adalah salah satu bentuk umum tree dalam bentuk decision tree :

Berikut adalah contoh tabel yang digunakan untuk membuat decision tree :
No
Gender
Height
Output
1
Female
<1.4 m
Short
2
Female
>=1.4 & <=1.7
Medium
3
Female
>=1.7
Tall
4
Male
<1.5 m
Short
5
Male
>=1.5 & <=1.8
Medium
6
Male
>=1.8
Tall
Berikut adalah bentuk decision tree dari tabel diatas :



D.    Representasi Terstruktur
Representasi terstruktur pada dasarnya adalah perluasan dari konsep representasi network dengan membuat node-nodenya menjadi struktur data yang lebih kompleks. Berikut adalah bentuk-bentuk representasi terstruktur :
1)     List
List merupakan serangkaian struktur data yang dibuat secara berhubungan, list bisa juga menggambarkan relasi dan hirarki.
Contoh :


2)     Frame
Frame pertama kali diperkenalkan oleh Minsky tahun 1975, dimana frame merupakan suatu struktur data yang digunakan untuk merepresentasikan pengetahuan dan situasi-situasi yang telah dipahami, serta memiliki slot yang menggambarkan rincian (atribut) dan karakteristik objek. Biasanya digunakan untuk merepresentasikan pengetahuan yang didasarkan pada karakteristik yang sudah dikenal, yang merupakan pengalaman-pengalaman. Dengan menggunakan frame, sangat mudah untuk membuat inferensi tentang objek, peristiwa, atau situasi baru, karena frame menyediakan knowledge base yang ditarik dari pengalaman. Kebanyakan sistem Kecerdasan Buatan menggunakan kumpulan frame yang saling terkait satu dengan lainnya bersama-sama yang disebut sebagai hirarki frame.
Contoh :

Gambar diatas merupakan hirarki frame kendaraan, yang terdiri dari 5 frame yaitu frame kereta api, frame sampan, frame mobil, frame pesawat, dan frame kapal. Masing-masing frame masih dapat dipecah lagi menjadi beberapa frame yang rinci, misal frame mobil terdiri dari frame penumpang mobil, frame truk, frame bis. Didalam hirarki pada gambar diatas, masing-masing frame dirinci hubungannya seperti hubungan antara frame orangtua (parent frame) dan anak (child frame).
Contoh :
Parent Frame
Nama : Compact Car
Child Frame
Nama : Mobilnya Jane
Slot
Facets
Slot
Facets
Pemilik
Cek daftar registrasi
Pemilik
Jane
Warna
Daftar per manufaktur
Warna
Biru
No Silinder
Range
Jika dibutuhkan

4 atau 6
Tanya pemilik
No Silinder
6
Buatan
Daftar range
Jika dibutuhkan
Model

Semua manufaktur
Tanya pemilik
Gunakan hubungan frame
Buatan

Model
Honda

Accord
Model (tahun)
Range
Jika dibutuhkan

1950 – 2001
Tanya pemilik
Model (tahun)
1992

Pada tabel frame diatas terdapat Slot dan Facets. Slot merupakan kumpulan atribut yang menjelaskan objek yang direpresentasikan oleh frame, sedangkan Facets adalah kumpulan informasi yang menjelaskan pengetahuan dari atribut pada slot.

3)     Script
Script hampir sama dengan frame yaitu merepresentasikan pengetahuan berdasarkan pengalaman-pengalaman. Frame lebih menggambarkan obyek, sedangkan script menggambarkan urutan peristiwa. Berikut adalah elemen-elemen script :
a)    Kondisi input: start, awal
b)    Track: variasi yang mungkin terjadi
c)     Prop: obyek pendukung
d)    Role: peran yang dimainkan oleh suatu obyek
e)     Scene: adegan yang terjadi
f)      Hasil (result): kondisi akhir yang terjadi
Berikut adalah contoh script :
Pertandingan Tae Kwon Do
Track
Pertandingan Tae Kwon Do
Role
Atlet1, Atlet2, Wasit, Panitia
Prop
Body protector, helm, papan nilai, microphone, arena pertandingan, alat input skor.
Kondisi Input
Atlet telah terdaftar untuk mengikuti pertandingan
Scene 1
Persiapan Atlet1, Atlet2, Wasit, dan Panitia

1)  Panitia menyiapkan daftar nama atlet, papan skor, microphone, dan alat input skor.
2)  Wasit mengetes alat input skor yang telah disediakan panitia.
3)  Atlet1 dan Atlet2 melakukan pemanasan.
Scene 2
Atlet masuk arena

1)  Panitia memanggil Atlet1 dan Atlet2 untuk masuk arena dengan microphone.
2)  Alet1 dan Atlet2 memakai body protector dan helm.
Scene 3
Atlet bertanding

1)  Atlet1 dan Atlet2 melakukan penghormatan.
2)  Atlet1 dan Atlet2 saling melakukan serangan dan menghindar.
3)  Wasit memimpin pertandingan.
4)  Wasit memberikan skor dengan alat input skor
5)  Atlet1 melakukan pelanggaran.
6)  Atlet2 melakukan pelanggaran.
7)  Wasit memberikan hukuman potongan skor kepada Atlet1.
8)  Wasit memberikan hukuman potongan skor kepada Atlet2.
Scene 4
Atlet telah selesai bertanding

1)  Wasit menghentikan pertandingan.
2)  Wasit menghitung skor yang ada di papan skor.
3) Atlet1 dan Atlet2 meninggalkan arena pertandingan.
Hasil
1)  Atlet1 menang
2)  Atlet2 menang
3)  Atlet1 kalah
4)  Atlet2 kalah



Komentar

Postingan populer dari blog ini

Sistem Inferensi Fuzzy

Game My AI Pong Part 2

Lyric Millions - Winner