Rabu, 06 Mei 2015

Basis Pengetahuan untuk Sistem Pakar

Basis Pengetahuan untuk Sistem Pakar 

Secara umum, basis pengetahuan (knowledge base) adalah suatu bentuk basis data tertentu yang digunakan dalam manajemen pengetahuan (knowledge management). Basis pengetahuan berperan dalam proses mengumpulkan, mengorganisasikan, maupun mendapatkan kembali suatu pengetahuan (knowledge).
Dalam sistem pakar (expert system), basis pengetahuan merupakan satu komponen yang sangat penting. Basis pengetahuan menyimpan semua pengetahuan yang dimiliki oleh pakar yang berkompeten dalam bidang yang berkaitan. Basis pengetahuan adalah dasar pengambilan keputusan dalam suatu sistem pakar, di mana pengambilan keputusan ini berkaitan dengan proses untuk mendapatkan kembali pengetahuan yang sebelumnya telah dikumpulkan dan disimpan.
Tulisan ini membahas mengenai basis pengetahuan dalam kaitannya dengan sistem pakar, serta hal-hal lain yang berkaitan dengan basis pengetahuan.
1.       Pengetahuan
 Sebelum kita mulai membahas mengenai basis pengetahuan, maka terlebih dulu akan kita tinjau mengenai pengetahuan dan semua hal yang berkaitan dengannya. Menurut Davenport dan Prusak (1998), ada perbedaan pengertian mengenai data, informasi, dan pengetahuan.

1.1.  Data
Data adalah suatu kumpulan fakta-fakta diskrit yang obyektif mengenai suatu kejadian[1]. Dalam contoh yang diberikan oleh Davenport dan Prusak, data merupakan gambaran dari transaksi yang dilakukan seseorang (misalnya di pompa bensin). Data berkaitan dengan berapa uang yang dibayarkan dan berapa liter bensin yang diberikan, namun tidak berlaku lebih jauh lagi. Data tidak dapat menggambarkan bagaimana kualitas pompa bensin tersebut dan kapan si pelanggan tersebut akan kembali ke sana.
1.2.  Informasi
Sementara itu, informasi adalah hasil dari pengolahan data. Informasi adalah data yang membuat suatu perbedaan[2], di mana tujuan informasi adalah untuk mengubah pandangan seseorang atau membuatnya menjadi berbeda (dibandingkan sebelum mendapatkan informasi). Menurut Peter Drucker, informasi memiliki makna (meaning) yang ditimbulkan oleh relevansi dan tujuan yang diberikan oleh penciptanya.
1.3.  Pengetahuan
Pengetahuan merupakan bentuk lebih lanjut dari informasi. Pengetahuan merupakan campuran yang bebas antara informasi konstekstual, nilai-nilai, dan pengalaman yang telah terekspresikan, serta pemahaman pakar, yang memberikan suatu kerangka kerja untuk mengevaluasi dan memasukkan informasi dan pengalaman-pengalaman baru[3].
Ada beberapa ciri-ciri pengetahuan (menurut buku yang ditulis Von Krogh, Ichiyo, serta Nonaka 2000). Yang pertama, pengetahuan merupakan kepercayaan yang dibenarkan (justified true believe). Seseorang membenarkan kepercayaannya berdasarkan pada observasinya terhadap dunia, di mana ia menciptakan suatu pemahaman mengenai situasi baru dengan berpegang pada kepercayaan yang telah dibenarkan tersebut. Dengan demikian, kebenaran lebih merupakan konstruksi akan kenyataan, dan bukannya sesuatu yang benar secara abstrak.
Ciri yang kedua pada pengetahuan adalah sifatnya yang eksplisit sekaligus juga terbatinkan (tacit). Sementara beberapa pengetahuan bersifat eksplisit dan mudah digambarkan, diformulasikan, maupun diekspresikan; ada pula pengetahuan-pengetahuan lain yang berkaitan dengan perasaan, keterampilan dan bentuk bahasa utuh, persepsi pribadi, pengalaman fisik, petunjuk praktis (rule of thumb) dan institusi. Pengetahuan-pengetahuan ini sulit sekali untuk disampaikan kepada pihak lain.
Yang ketiga, penciptaan pengetahuan secara efektif bergantung pada konteks yang memungkinkan terjadinya penciptaan tersebut, yaitu ruang bersama yang dapat memicu hubungan-hubungan yang muncul. Dan yang terakhir, penciptaan pengetahuan melibatkan lima langkah utama. Kelima langkah itu adalah:
  • Berbagi pengetahuan terbatinkan
  • Menciptakan konsep
  • Membenarkan konsep
  • Membangun prototip (prototype)
  • Melakukan penyebaran pengetahuan di berbagai fungsi dan tingkat di organisasi.
Hubungan antara data, informasi, dan pengetahuan dapat dilihat pada gambar berikut.

Gambar 1. Data, Informasi, dan Pengetahuan.

2.       Basis Pengetahuan
Menurut Gondran (1986) dalam Utami (2002), basis pengetahuan merupakan representasi dari seorang pakar, yang kemudian dapat dimasukkan kedalam bahasa pemrograman khusus untuk kecerdasan buatan (misalnya PROLOG atau LISP) atau shell sistem pakar (misalnya EXSYS, PC-PLUS, CRYSTAL, dsb.)
Basis pengetahuan berisi pengetahuan-pengetahuan pakar berupa fakta-fakta, konsep, aturan, prosedur, dan hubungan di antaranya, yang telah direpresentasikan dalam bentuk yang dimengerti oleh sistem. Basis pengetahuan dibutuhkan untuk memahami, memformulasikan, dan memecahkan masalah yang dihadapi oleh sistem, di sini basis pengetahuan berfungsi sebagai sumber referensi untuk mengambil suatu tindakan. Semakin banyak pengetahuan yang dimiliki oleh suatu basis pengetahuan, maka sistem tersebut akan semakin mendekati sifat “cerdas”, dengan kata lain kemampuan sistem akan semakin mendekati kemampuan pakar.

Gambar 2. Basis Pengetahuan sebagai salah satu komponen Sistem Pakar.
Feigenbaum (1977) menyatakan bahwa kesuksesan dari suatu sistem pakar tidaklah bergantung pada kecanggihan strategi penalaran ataupun inferensinya, namun pada jumlah informasi yang dikandungnya mengenai bagaimana simbol-simbol diinterrelasikan, yaitu jumlah pengetahuan yang dimilikinya[4]. Prinsip ini adalah prinsip pengetahuan (knowledge principle), yang merupakan perluasan dari hipotesis simbol fisik (physical symbol hypothesis) dari Newell dan Simon (1981). Hipotesis simbol fisik menganggap bahwa pengetahuan terdiri dari simbol-simbol realitas dan relasi antara simbol-simbol ini, serta bahwa inteligensi adalah manipulasi logis yang sesuai terhadap simbol-simbol dan relasinya[5].
Basis pengetahuan menyimpan pengetahuan yang terdiri dari dua elemen dasar. Elemen dasar pertama adalah fakta, yang dalam hal ini merupakan situasi, kondisi, dan kenyataan dari permasalahan, serta juga teori dalam bidang yang berkaitan serta informasi dari obyek. Yang kedua adalah spesial heuristik yang merupakan informasi mengenai cara untuk membangkitkan fakta baru dari fakta yang sudah diketahui. Dalam sistem berbasis-aturan (rule-based system), elemen kedua ini berupa kaidah atau aturan (rule).
Meskipun seringnya fakta dan aturan dalam basis pengetahuan memiliki nilai kebenaran yang tegas (crisp), namun ada kalanya representasi seperti ini tidaklah dapat mencerminkan pengetahuan secara baik. Dalam hal ini, ada kalanya pengetahuan yang dipakai dibentuk dengan suatu nilai kepastian (certainty value), yang nilainya berkisar dari nol (pasti salah) hingga satu (pasti benar). Nilai kepastian ini menggunakan konsep yang sama dengan yang ada dalam Logika Fuzzy.
Pengembangan suatu basis pengetahuan dimulai dari pembelajaran ontologi, atau konstruksi ontologi, yang bertujuan menangkap pengetahuan menjadi format yang dapat digunakan dalam sistem. Langkah selanjutnya adalah mempopulasikan basis pengetahuan, yaitu mendapatkan instans-instans untuk mengisi basis pengetahuan. Ini merupakan langkah yang penting, yang mana tujuannya menggunakan ontologi sebagai indeks untuk memori organisasi.


Gambar 3.Suatu Siklus Dasar untuk  Pengembangan Basis Pengetahuan.
Rekayasa pengetahuan (knowledge engineering) melibatkan beberapa  proses, yaitu akuisisi pengetahuan (knowledge acquisition), validas
i pengetahuan (knowledge validation), representasi pengetahuan (knowledge representation), inferensi pengetahuan (knowledge inferencing), dan transfer pengetahuan (knowledge transferring). Dari semua proses ini, yang merupakan pembentukan basis pengetahuan adalah akuisisi pengetahuan dan representasi pengetahuan, beserta validasi pengetahuan yang berfungsi untuk menjaga kualitas pengetahuan yang disimpan.
Gambar 4.Proses Rekayasa Pengetahuan.
Akuisisi pengetahuan merupakan proses pengumpulan informasi dari sumber-sumber yang tersedia, yang dapat berupa kepakaran seseorang maupun kepakaran laten (yang tersimpan dalam bentuk materi cetakan). Sementara representasi pengetahuan merupakan proses untuk mengilustrasikan pengetahuan yang telah didapat dari proses akuisisi pengetahuan.

3.       Akuisisi Pengetahuan
Dalam akuisisi pengetahuan, perekayasa (engineer) bertindak sebagai jembatan antara pakar (expert) dengan basis pengetahuan. Perekayasa mendapatkan pengetahuan dari pakar, dan bersamanya menaruhnya pengetahuan tersebut dalam basis pengetahuan.
Ada beberapa cara untuk melakukan akuisisi pengetahuan. Yang pertama adalah dengan cara manual, di mana dalam cara ini perekayasa mendapatkan pengetahuan dari sumber, dan lalu mengkodekannya ke dalam basis pengetahuan. Cara ini merupakan cara yang mahal dan tidak efisien, serta juga kadangkala tidak akurat.
Cara yang kedua adalah cara semi-otomatik. Di sini terdapat peran komputer untuk mendukung pakar, di mana pakar diizinkan untuk membangun basis pengetahuan tanpa (atau dengan sedikit) bantuan dari perekayasa. Komputer di sini juga berperan untuk membantu perekayasa dalam kerjanya membangun basis pengetahuan.
Sementara yang ketiga adalah cara otomatik. Di sini peran pakar, perekayasa, maupun pembangun basis pengetahuan atau sistem (system builder) digabung. Contohnya adalah metode induksi.

Gambar 5.Metode Akusisi Pengetahuan dengan (a) manual, (b) akuisisi terkendali-pakar, dan (c) induksi.
Kesulitan dalam proses akuisisi pengetahuan adalah kesulitan pakar untuk mengkomunikasikan pengetahuan-pengetahuan dasarnya. Ini berkaitan dengan sifat pengetahuan itu sendiri (yang seperti telah dijelaskan di atas, adalah eksplisit sekaligus terbatinkan). Seperti yang dikatakan oleh Waterman (1981): “… suatu pengetahuan dasar diasumsikan dan dikombinasikan begitu cepatnya sehingga sulitlah baginya (pakar) untuk mengambarkan prosesnya”[6]. Beberapa teknik canggih telah dikembangkan untuk memfasilitasikan proses untuk mendapatkan dasar pengetahuan, seperti AQUINAS, Boose dan Bradsaw 1987; dan NEXTRA dari Neuron Data, Rappaport dan Gaines 1988.

4.       Representasi Pengetahuan
Representasi pengetahuan merupakan kelanjutan dari proses akuisisi pengetahuan. Setelah pengetahuan berhasil disarikan dari pakar, maka selanjutnya yang dilakukan adalah merepresentasikan bentuk-bentuk pengetahuan tersebut menjadi bentuk yang dikenali oleh sistem (komputer).
 Beberapa cara yang dapat digunakan untuk merepresentasikan bentuk ini antara lain jaringan semantik (semantic net), bingkai (frame), aturan produksi (production rule), logika (logic), bahasa natural (natural language), dan sistem basis data (database system).
Representasi pengetahuan dimaksudkan untuk menangkap sifat-sifat penting suatu pengetahuan agar dapat diakses dan digunakan dalam metode pemecahan masalah. Bahasa representasi haruslah mampu membuat seorang pemrogram mengekspresikan pengetahuan yang diperlukan untuk mendapatkan solusi permasalahan.
Representasi pengetahuan yang baik haruslah memiliki sifat-sifat berikut:
  • Mengemukakan hal secara eksplisit
  • Membuat masalah menjadi transparan
  • Komplit dan efisien
  • Menampilkan batasan-batasan alami yang ada
  • Menekan dan menghilangkan detil-detil yang diperlukan
  • Dapat dilakukan komputasi terhadapnya (memiliki batasan).
Representasi pengetahuan dikelompokkan ke dalam empat jenis, yaitu:
  • Representasi Logika
Representasi jenis ini menggunakan ekspresi-ekspresi logika formal dalam melakukan representasi.
  • Representasi Prosedural
Sementara jenis kedua ini menggambarkan pengetahuan sebagai kumpulan instruksi untuk memecahkan suatu problema.
  • Representasi Jaringan (Network)
Representasi ini menangkap pengetahuan sebagai suatu graf di mana simpul-simpulnya merupakan obyek atau konsep dari problema yang dihadapi, sementara garisnya (edge)  menggambarkan hubungan di antara mereka.
  • Representasi Terstruktur
Dalam representasi ini, jaringan diperluas dengan cara membuat tiap simpulnya menjadi sebuah struktur data kompleks.
Prinsip representasi pengetahuan adalah jika suatu permasalahan dideskripsikan dengan menggunakan representasi yang tepat, maka dapat dipastikan bahwa masalah tersebut dapat diselesaikan.

5.       Ontologi
Kunci dari suatu basis pengetahuan adalah ontologi, yaitu sistem konsep-konsep yang terorganisir yang menjadikan sesuatu yang ada dalam domain menjadi eksplisit[7]. Ontologi merupakan spesifikasi dari suatu konseptualisasi, atau suatu teori logis yang memberikan suatu akun eksplisit yang parsial dari suatu konseptualisasi[8]; atau bahkan sinonim dari konseptualisasi itu sendiri.
Ontologi digunakan untuk menjelaskan mengenai properti dari suatu domain, dan juga untuk mendefinisikan domain tersebut.
Komponen-komponen dari ontologi antara lain:
  • Konsep (concept) digunakan dalam pemahaman yang luas. Sebuah konsep dapat sesuatu yang dikatakan, sehingga dapat pula merupakan penjelasan dari tugas, fungsi, aksi, strategi, dan sebagainya.
  • Relasi (relation) merupakan representasi sebuah tipe dari interaksi antara konsep dari sebuah domain. Secara formal dapat didefinisikan sebagai subset dari sebuah pruduk dari n set,
contoh dari relasi biner termasuk subclass-of dan connected-to.
  • Fungsi (function) adalah sebuah relasi khusus di mana elemen ke-n dari relasi adalah unik untuk elemen ke-(n-1).
Contohnya adalah Mother-of.
  • Aksioma (axiom) digunakan untuk memodelkan sebuah kalimat yang selalu benar.
  • Instans (instance) digunakan untuk merepresentasikan elemen.
Menurut Tom Gruber dari Stanford University, makna ontologi dalam konteksnya di ilmu komputer adalah “suatu deskripsi konsep dan relasi yang ada dalam suatu agen maupun komunitas agen”[9].
Sebuah ontologi memberikan pengertian untuk penjelasan secara eksplisit dari konsep terhadap representasi pengetahuan pada sebuah basis pengetahuan (Bernaras, proyek KACTUS). Sementara menurut proyek SENSUS, Sebuah ontologi adalah sebuah struktur hirarki dari istilah untuk menjelaskan sebuah domain yang dapat digunakan sebagai landasan untuk sebuah basis pengetahuan.

6.       Sistem Perbaikan Pengetahuan
Sistem Perbaikan Pengetahuan (Knowledge Refining System) merupakan suatu sistem untuk memperbaiki kinerja sistem pakar. Dengan sistem ini, pakar dapat melakukan analisis kinerja, lalu melakukan pembelajaran, dan kemudian meningkatkannya pada konsultasi berikutnya.
Pada pembelajaran mesin, tujuan dari perbaikan basis pengetahuan (knowledge base refinement) adalah meningkatkan performa sistem dengan pembelajaran empiris, di mana performa sistem diukur dari jumlah kesalahan yang terdeteksi ketika sistem dieksekusi untuk kasus-kasus yang ada dalam pustaka sistem.


Kesimpulan:
Basis pengetahuan merupakan jantung dari suatu sistem pakar. Tanpa adanya basis pengetahuan, sistem tidak dapat memberikan rekomendasi yang benar, karena ia tidak memiliki dasar untuk mengambil tindakan.
Basis pengetahuan tergantung dari beberapa konsep dan proses, antara lain pengertian dari pengetahuan serta ontologi dalam basis pengetahuan itu sendiri. Proses akuisisi serta representasi pengetahuan juga berperan memberikan suatu bentuk terhadap basis pengetahuan itu sendiri, yang pada akhirnya semua ini akan menentukan bagaiman kesimpulan yang akan diambil oleh sistem.
Basis pengetahuan yang baik juga dapat melakukan perbaikan dalam dirinya untuk meningkatkan kinerjanya.


Tidak ada komentar:

Posting Komentar