16 BAB 2 LANDASAN TEORI 2.1 Definisi Sistem Pakar Sistem pakar adalah suatu program komputer yang mengandung pengetahuan dari satu atau lebih pakar manusia mengenai suatu bidang spesifik. Jenis program ini pertama kali dikembangkan oleh periset kecerdasan buatan pada dasawarsa 1960-an dan 1970an dan diterapkan secara komersial selama 1980-an. Bentuk umum sistem pakar adalah suatu program yang dibuat berdasarkan suatu set aturan yang menganalisis informasi (biasanya diberikan oleh pengguna suatu sistem) mengenai suatu kelas masalah spesifik serta analisis matematis dari masalah tersebut. Tergantung dari desainnya, sistem pakar juga mampu merekomendasikan suatu rangkaian tindakan pengguna untuk dapat menerapkan koreksi. Sistem ini memanfaatkan kapabilitas penalaran untuk mencapai suatu kesimpulan.
17 Tabel 2.1 Tabel Sistem Pakar Sistem Pakar Kegunaan MYCIND Diagnosa Penyakit DENDRAL Mengidentifikasi struktur mo-lecular campuran yang tidak dikenal XCON & XSEL Membantu konfigurasi system computer besar SOPHIE Analisis sirkuit elektronik PROSPECTOR Digunakan di dalam geologi untuk membantu mencari dan menemukan deposit FOLIO Membantu memberikan keputusan bagi seorang manajer dalam hal stok broker dan investasi DELTA Pemeliharaan lokomotif listrik diesel
2.1.1 Konsep Dasar Sistem Pakar Menurut Efraim Turban, konsep dasar sistem pakar mengandung keahlian, ahli, pengalihan, aturan dan kemampuan menjelaskan. Keahlian adalah suatu kelebihan penguasaan di bidang tertentu yang diperoleh dari pelatihan membaca dan pengalaman. Contoh bentuk pengetahuan yang merupakan pengalaman : 1. Fakta-fakta pada lingkup permasalahan tertentu. 2. Teori-teori pada lingkup permasalahan tertentu. 3. Prosedur-prosedur dan aturan yang berkenaan dengan lingkup permasalahan tertentu. 4. Strategi-strategi global untuk menyelesaikan masalah. 5. Meta-Knowledge (pengetahuan tentang pengetahuan) Bentuk-bentuk ini memungkinkan para ahli mengambil keputusan yang lebih cepat dan lebih baik daripada seorang yang bukan ahli. Seorang ahli adalah seorang yang mampu menjelaskan suatu tanggapan, mempelajari hal-hal seputar topik permasalahan, menyusun kembali pengetahuan, memecah aturan-aturan, dan menentukan relevan tidaknya keahlian mereka. Pengalihan keahlian dari para ahli ke komputer untuk kemudian dialihkan lagi ke orang yang bukan ahli merupakan tujuan utama dari sistem pakar. Proses ini membutuhkan beberapa aktivitas seperti tambahan pengetahuan (dari para ahli atau sumber lainnya), representasi pengetahuan (ke komputer), inferensi pengetahuan, dan
19 pengalihan pengetahuan ke user. Pengetahuan yang disimpan di komputer disebut dengan nama basis pengetahuan (knowledge base). 2.1.2 Sifat Umum Sistem Pakar Sistem pakar mempunyai beberapa sifat utama yang menjadi karakteristik yang sangat kuat yang menunjukkan identitas sebuah sistem dan kepakarannya. Artinya seseorang bisa dengan sangat mudah berinteraksi dengan sistem ini sekaligus menjadi pakar dalam waktu yang singkat. 2.1.3 Struktur Dasar Sistem Pakar Long-term memory Gambar 2.1. Human Expert Problem Sistem Domain Knowlegde Advisee Reasoning Short-term memory Case Facts conclusions Case/inferred Facts Conclusions Gambar 2.1 Struktur Sistem Pakar Gambar di atas menjelaskan sistem penyelesaian masalah yang dilakukan oleh manusia dimana fakta dan kasus yang ditangkap pada saat konsultasi akan di simpan pada short-term memory. Kemudian manusia akan berpikir (reasoning) untuk menyesuaikan dengan pengetahuan yang dimilki dan merupakan domain knowledgenya hingga akhirnya sang ahli memberikan suatu kesimpulan, saran, dan solusi.
20 Expert System Knowledge base Interference User eqine Case fact Working memory Case/inferred fact Gambar 2.2. Sistem Penanganan Masalah Working memory merupakan bagian dari sistem pakar yang berisi fakta-fakta masalah yang ditemukan dalam suatu sesi. Berisi fakta-fakta tentang suatu masalah yang ditemukan dalam proses konsultasi. Sedangkan interfence engine merupakan prosesor pada sistem pakar yang menyesuaikan fakta-fakta yang ada pada working memory dengana domain pengetahuan yang terdapat pada knowledge base untuk menarik kesimpulan dari masalah yang dihadapi. 2.1.4 Bentuk Sistem Pakar Ada empat bentuk sistem pakar, yaitu : 1. Berdiri sendiri. Sistem pakar merupakan software yang berdiri sendiri, tidak tergabung dengan software yang lainnya. 2. Tergabung. Sistem pakar jenis ini merupakan bagian program yang terkandung di dalam suatu algoritma, atau program dimana fungsinya memanggil algoritma subrutin lain.
21 3. Menghubungkan ke software lain. Bentuk ini biasanya merupakan sistem pakar yang menghubungkan ke suatu paket program tertentu, misalnya DBMS (Database Management System) 4. Sistem mengabdi. Sistem pakar merupakan bagian dari komputer khusus yang dihubungkan dengan suatu fungsi tertentu. Misalnya sistem pakar yang digunakan untuk membantu menganalisa data radar. 2.1.5. Struktur Sistem Pakar Sistem pakar terdiri dari dua bagian pokok, yaitu lingkungan pengembangan (development environment). Lingkungan pengembangan digunakan sebagai pembangun sistem pakar baik dari segi pembangun komponen meupun basis pengetahuan. Lingkungan konsultasi digunakan oleh seorang yang bukan ahli untuk konsultasi.
22 USER Basis Pengetahuan. Fakta-fakta. Aturan-aturan Fasilitas penjelasan INTERFACE Mesin inferensi Aksi yang direkomendasikan Rekayasa pengetahuan. Intepreter.Scheduler. Const.Enf Penambahan Pengetahuan Pengetahuan pakar BLACKBOARD Solusi rencana Agenda Deskripsi Penyaring pengetahuan Gambar 2.3 Struktur Sistem Pakar Komponen-komponen yang ada pada sistem pakar : 1. Subsistem penambahan pengetahuan. Bagian ini digunakan untuk memasukkan pengetahuan, mengkonstruksikan atau memperluas pengetahuan dalam basis pengetahuan. 2. Basis pengetahuan. Pada bagian ini berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan menyelesaikan masalah. 3. Akusisi Pengetahuan Akusisi pengetahuan adalah akumulasi, transfer dan transformasi keahlian dalam menyelesaikan masalah dari sumber pengetahuan ke dalam program
23 computer. Pada tahap ini, akusisi pengetahuan berusaha menyerap pengetahuan untuk selanjutnya ditransfer ke dalam basis pengetahuan. 4. Mesin inferensi (inference engine), merupakan program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasiinformasi dalam basis pengetahuan dan blackboard, serta digunakan untuk memformulasikan konklusi. 1) Forward Chaining a. Forward chaining merupakan grup dari multiple inferensi yang melakukan pencarian dari suatu masalah kepada solusinya. b. Jika klausa premis sesuai dengan situasi (bernilai TRUE), maka proses akan meng-assert konklusi. c. Forward chaining adalah data-driven karena inferensi dimulai dengan informasi yang tersedia dan baru konklusi diperoleh. d. Jika suatu aplikasi mengahasilkan tree yang lebar dan tidak dalam, maka digunakan forward chaining. 2) Backward Chaining a. Menggunakan pendekatan goal-driven, dimulai dari ekspektasi apa yang diinginkan terjadi (hipotesis), kemudian mengecek pada sebabsebabyang mendukung (ataupun kontradiktif) dari ekspektasi tersebut. b. Jika suatu aplikasi menghasilkan tree yang sempit dan cukup dalam, maka gunakan backward chaining.
24 5. Workspace Workspace merupakan area dari sekumpulan memori kerja. Workspace digunakan untuk merekam hasil-hasil antara dan kesimpulan yang dicapai. Ada tiga tipe keputusan yang dapat direkam, yaitu : a. Rencana : bagaimana menghadapi masalah. b. Agenda : aksi-aksi yang potensial yang sedang menunggu untuk dieksekusi. c. Solusi : calon aksi yang akan dibangkitkan. 6. Fasilitas Penjelasan Fasilitas penjelasan adalah komponen tambahan yang akan meningkatkan kemampuan sistem pakar. Komponen ini menggambarkan penalaransistem kepada pemakai. 7. Perbaikan Pengetahuan Pakar memiliki kemampuan untuk menganalisis dan meningkatkan kinerjanya serta kemampuan untuk belajar dari kinerjanya. 2.1.6 Pembangunan Sistem Pakar Proses pembangunan suatu sistem pakar yang dikenal juga sebagai rekayasa pengetahuan. Pembangunan sistem pakar melibatkan pembinaan pangkalan pengetahuan dengan melibatkan pakar atau sumber yang didokumentasikan. Pengetahuan dalam sistem pembangunan, biasanya dibagi atas deklaratif (fakta) dan prosedural. Untuk pembangunan sistem pakar, langkah-langkah yang perlu dilakukan secara garis besarnya seperti Gambar 2.2. Pada Gambar 2.2 menjelaskan bahwa
25 sebelum membangun suatu sistem pakar maka sistem analisis mengkaji terlebih dahulu domain permasalahan yang akan dibuat sistem pakarnya. Langkah selanjutnya melakukan pendefinisian masalah dan menjelaskan kaidah-kaidahnya atau rule-rule yang akan dibuat bersama-sama dengan pakar. Setelah kaidah disusun dalam suatu kumpulan maka prototype sistemnya diuji, jika prototipnya tidak layak maka kembali ke langkah 2 hingga prototypenya dapat digunakan. Berikutnya, membangun suatu antarmuka dan kemudian dilanjutkan ke tahap uji coba oleh pengguna. Jika kurang memadai maka sistem analisis dan pakar kmbali mengulangi langkah 2 sampai 6 hingga memperolah suatu sistem yang baik. Selanjutnya, untuk kesempurnaan sistem yang dibangun maka sistem analis dan pakar secara berkelanjutan melakukan pengujian-pengujian terhadap sistem yang dibuat. 2.1.7 Mengembangkan Sistem Pakar Pada pengembangan sistem pakar diperlukan beberapa tahapan agar dapat menghasilkan suatun sistem yang berhubungan dengan tahapan hingga suatu sistem terwujud. Tahapan-tahapan tersebut dapat dilihat pada gambar berikut ini. Secara garis besar pengembangan sistem pakar pada gambar dibawah ini adalah sebagai berikut : 1. Mengidentifikasi masalah dan kebutuhan. Mengkaji situasi dan memutuskan dengan pasti tentang masalah yang akan dikomputerisasi dan apakah dengan sistem pakar bisa lebih membantu atau tidak. 2. Menentukan masalah yang sesuai.
26 3. Mempertimbangkan alternatif, misalkan menggunakan sistem pakar atau komputer tradisional. 4. Menghitung pengembalian investasi, termasuk diantaranya : biaya pembuatan sistem pakar, biaya pemeliharaan dan biaya training. 5. Memilih alat pengembangan. Bisa digunakan software pembuat sistem pakar (seperti SHELL) atau dirancang dengan bahasa pemrograman sendiri. 6. Rekayasa pengetahuan, perlu dilakukan penyempurnaan terhadap aturanaturan yang sesuai. 7. Merancang sistem, termasuk pembuatan prototype, serta menterjemahkan pengetahuan menjadi aturan-aturan. 8. Melengkapi pengembangan, termasuk pengembangan protptype apabila sistem yang telah ada sudah sesuai dengan keinginan. 9. Menguji dan mencari kesalahan. 10. Memelihara sistem, hal yang harus dilakukan yaitu : memperbaharui pengetahuan. Mengganti pengetahuan yang sudah ketinggalan dan meluweskan sistem agar bisa lebih baik lagi dalam menyelesaikan masalah. 2.1.8 Bahasa Pemrograman Visual Basic Visual Basic merupakan salah satu bahasa pemrograman yang bekerja pada Ms.windos yang dimiliki beberapa keunggulan diantaranya kemudahan mendesain form secara Visual, menghasilkan data yang sangat akurat, secara visual basic juga memiliki kemampuan yang sangat baik dalam mengelaola database. Karena Visual Basic merupakan bahasa pemrograman maka didalamnya berisi perintah-perintah atau
27 intruksi yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Tugastugas tersebut dapat dijalankan apabila ada respon dari pemakai. Respon tersebut berupa kejadian tertentu misalnya memilih tombol, memilih menu dan sebagainya. Visual basic banyak dipakai oleh programmer dan pengembang aplikasi, karena kemudahan yang sangat ditawarkan. Dalam pengembangan aplikasi para progremmer tidak terlalu dipusingkan dengan tampilan dari program, karena visual basic menyediakan banyak komponen kontrol untuk desain tampilan dari program. Dengan visual basic dapat dikembangkan berbagai jenis aplikasi seperti aplikasi database, jaringan, internet, multimedia, grafik dan lain-lain. Tampilan grafis yang menarik dan interaktif, sangat mudah dan sangat mudah untuk membuat suatu tombol perintah, toolbar, kotak dialog dan aneka objek lainnya.
28 Gambar 2.4 Tampilan Awal Visual Basic 1 Menu Bar Menampilkan daftar menu yang berisi daftar perintah-perintah yang dapat digunakan saat bekerja pada Visual Basic. Terdiri dari menu File, Edit, View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-Ins, Window dan Help. Gambar 2.5 Menu Bar 2 Toolbar Digunakan untuk mengakses perintah-perintah dalam menu yang sering dipakai secara cepat.
29 Gambar 2.6 Toolbar 3 Toolbox Merupakan daftar komponen-komponen yang dapat digunakan untuk mendesain tampilan program aplikasi yang akan dibuat. Gambar 2.7 Tollbox 4 Project Explorer Menampilkan daftar form dan module yang ada dalam project yang sedang aktif.
30 Gambar 2.8 Project Explorer 5 Property Window Digunakan untuk mengatur properti dari komponen-komponen yang sedang diaktifkan. Property merupakan karakteristik dari sebuah objek. Gambar 2.9 Property Window
31 6 Form Designer Merupakan jendela yang digunakan untuk melakukan perancangan tampilan dari aplikasi yang akan dibuat. Gambar 2.10 Form Designer 7 Code Window Merupakan jendela yang digunakan untuk menuliskan kode program. Gambar 2.11 Code Window