6 BAB 2 LANDASAN TEORI 2.1 Sistem Pakar Sistem pakar adalah sistem berbasis komputer yang menggunakan pengetahuan, fakta, dan teknik penalaran dalam memecahkan masalah yang biasanya hanya dapat dipecahkan oleh seorang pakar dalam bidang tersebut. Sistem pakar dibuat pada wilayah pengetahuan tertentu untuk suatu kepakaran tertentu yang mendekati kemampuan manusia di salah satu bidang. Sistem pakar mencoba mencari solusi yang memuaskan sebagaimana yang dilakukan oleh seorang pakar. Selain itu sistem pakar juga dapat memberikan penjelasan terhadap langkah yang diambil dan memberikan alasan atas saran atau kesimpulan yang ditemukannya. Kemampuan penalaran dan penjelasan terhadap setiap langkah dalam pengambilan keputusan menjadi kelebihan dari kecerdasan buatan (Turban, 1995) 2.2 Sejarah Sistem Pakar Sistem pakar mulai dikembangkan oleh Artificial Intelligence Corporation. Penelitian ini didominasi oleh suatu keyakinan bahwa nalar yang digabung dengan komputer canggih akan menghasilkan prestasi pakar atau bahkan manusia super. Suatu usaha ke arah ini adalah General Purpose Problem-Solver (GPS). GPS yang berupa sebuah prosedur yang dikembangkan oleh Allen Newell, John Cliff Shaw, dan Herbert Alexander Simon dari Logic Theorist merupakan sebuah percobaan untuk menciptakan mesin yang cerdas. GPS sendiri merupakan sebuah predecessor menuju sistem pakar. 7 Pada pertengahan tahun 1960-an, terjadi pergantian dari program serba bisa (generalpurpose) ke program yang spesialis (special-purpose) dengan dikembangkannya DENDRAL oleh E. Feigenbaum dari Universitas Stanford dan kemudian diikuti oleh MYCIN. Pada awal 1980-an, teknologi sistem pakar yang mula-mula dibatasi oleh suasana akademis mulai muncul sebagai aplikasi komersil, khususnya XCON, XSEL (dikembangkan dari R-1 pada Digital Equipment Corp.) dan CATS-1 (dikembangkan oleh General Electric). (Kusrini, 2006) Sistem pakar untuk melakukan diagnosis kesehatan telah dikembangkan sejak pertengahan tahun 1970. Sistem pakar untuk melakukan diagnosis pertama dibuat oleh Bruce Buchanan dan Edward Shortliffe di Stanford University. Sistem ini diberi nama MYCIN. (Heckerman, 1986) 2.3 Inferensi Inferensi merupakan proses untuk menghasilkan informasi dari fakta yang diketahui atau diasumsikan. Inferensi adalah konklusi logis (logical conclusion) atau implikasi berdasarkan informasi yang tersedia dalam hal ini akan digunakan metode inferensi dalam pengambilan kesimpulan. (Kusrini, 2008). Ada dua metode inferensi yang penting dalam sistem pakar untuk menarik kesimpulan, yaitu : 2.3.1 Runut Maju (Forward Chaining) Pelacakan ke depan adalah pendekatan yang dimotori data (data-driven). Dalam pendekatan ini pelacakan dimulai dari informasi masukan dan selanjutnya mencoba menggambarkan kesimpulan. Pelacakan ke depan mencari fakta yang sesuai dengan bagian IF dari aturan IF-THEN. 8 Berikut ini contoh inferensi yang menggunakan runut maju : JIKA penderita terkena penyakit epilepsi idiopatik MAKA berikan obat carbamazepine. 2.3.2 Runut Balik (Backward Chaining) Runut balik adalah pendekatan yang dimotori tujuan (goal-driven). Dalam pendekatan ini pelacakan dimulai dari tujuan, selanjutnya dicari aturan yang memiliki tujuan tersebut untuk kesimpulannya. Selanjutnya proses pelacakan menggunakan premis untuk aturan tersebut sebagai tujuan baru dan mencari aturan lain dengan tujuan baru sebagai kesimpulannya. Proses berlanjut sampai semua kemungkinan ditemukan. (Voni, E.A. 2010). Tujuan inferensi adalah mengambil pilihan terbaik dari banyak kemungkinan. Metode inferensi runut balik ini cocok digunakan untuk memecahkan masalah diagnosis (Schnupp, 1989). Berikut ini contoh inferensi yang menggunakan runut balik : Aturan 1 : Mengalami epilepsi idiopatik lokal JIKA tipe sawan parsial sederhana DAN EEG menunjukkan adanya fokus DAN penyebabnya tidak diketahui Aturan 2 : Mengalami tipe sawan parsial sederhana JIKA mengalami motorik fokal yang menjalar atau tanpa menjalar ATAU gerakan versif, dengan kepala dan leher menengok ke suatu sisi ATAU gerakan sensorik fokal menjalar atau sensorik khusus berupa halusinasi sederhana. 9 2.4 Faktor Kepastian (Certainty Factor) 2.4.1 Pengertian Certainty Factor (CF) Faktor kepastian diperkenalkan oleh Shortliffe Buchanan dalam pembuatan MYCIN. CF merupakan nilai parameter klinis yang diberikan MYCIN untuk menunjukkan besarnya kepercayaan. CF didefinisikan sebagai berikut : CF(H,E) = MB(H,E) – MD(H,E) [1] CF(H,E) : Certainty Factor dari hipotesis H yang dipengaruhi oleh gejala (evidence) E. Besarnya CF berkisar antara -1 sampai dengan 1. Nilai -1 menunjukkan ketidakpercayaan mutlak sedangkan nilai 1 menunjukkan ketidakpercayaan mutlak. MB(H,E) : ukuran kenaikan kepercayaan (measure of increased belief) terhadap hipotesis H yang dipengaruhi oleh gejala E. MD(H,E) : ukuran kenaikan ketidakpercayaan (measure of increased disbelief) terhadap hipotesis H yang dipengaruhi oleh gejala E. (Giarattano, J dan Riley, G 1994). 2.4.2 Kombinasi Aturan Metode MYCIN untuk menggabungkan evidence pada antecedent sebuah aturan ditunjukkan oleh tabel di bawah ini. (Giarattano, J dan Riley, G 1994) Tabel 2.1 Tabel Metode MYCIN 10 Evidence, E Antecedent Ketidakpastian E1 DAN E2 min[CF(H,E1),CF(H,E2)] E1 ATAU E2 max[CF(H,E1),CF(H,E2)] TIDAK E -CF(H,E) Berikut ini adalah contoh ekspresi logika yang mengombinasikan evidence : E = (E1 DAN E2 DAN E3) ATAU (BUKAN E4 DAN BUKAN -E5) Gejala E akan dihitung sebagai : E = max[min(E1, E2, E3), min(-E4, -E5)] Untuk nilai E1 = 0,9 E2 = 0,8 E4 = 0,5 E5 = 0,4 E3 = 0,3 Hasilnya adalah : E = max[min(0,9, 0,8, 0,3), min(-0,5, -0,4)] = max(0,3, -0,5) = 0,3 Bentuk dasar rumus certainty factor sebuah aturan JIKA E MAKA H adalah sebagai berikut : CF(H,e) = CF(E,e) * CF(H,E) [2] Di mana CF(E,e) : certainty factor evidence E yang dipengaruhi oleh evidence e CF(H,E) : certainty factor hipotesis dengan asumsi evidence diketahui dengan pasti, yaitu ketika CF(E,e) = 1 CF(H,e) : certainty factor hipotesis yang dipengaruhi oleh evidence e Jika semua evidence pada antecedent diketahui dengan pasti maka rumusnya akan menjadi : CF(H,e) = CF(H,E) Berikut ini adalah contoh kasus yang melibatkan kombinasi certainty factor : JIKA batuk [3] 11 DAN demam DAN sakit kepala DAN bersin-bersin MAKA influenza, CF : 0,7 Dengan menganggap E1 : ”batuk” E2 : ”demam” E3 : ”sakit kepala” E4 : ”bersin-bersin” H : influenza Maka nilai certainty factor pada saat evidence pasti adalah : CF(H,E) = CF(H, E1 ∩ E2 ∩ E3 ∩ E4) = 0,7 Dalam kasus ini, kondisi pasien tidak dapat ditentukan dengan pasti. Certainty factor evidence E yang dipengaruhi oleh partial evidence e ditunjukkan dengan nilai sebagai berikut : CF(E1,e) : 0,5 (pasien mengalami batuk 50%) CF(E2,e) : 0,8 (pasien mengalami demam 80%) CF(E3,e) : 0,3 (pasien mengalami sakit kepala 30%) CF(E4,e) : 0,7 (pasien mengalami bersin-bersin 70%) Sehingga CF(E,e) = CF(H, E1 ∩ E2 ∩ E3 ∩ E4) = min[CF(E1,e), CF(E2,e), CF(E3,e), CF(E4,e)] = min[0,5, 0,8, 0,3, 0,7] = 0,3 Maka nilai certainty factor hipotesis adalah : CF(H,e) = CF(E,e) * CF(H,E) = 0,3 * 0,7 = 0,21 12 2.5 Internet Perkembangan Teknologi Informasi dan Komunikasi yang fenomenal dan menjadi awal munculnya aplikasi web adalah Internet. Internet yang berawal dari riset untuk pertahanan dan keamanan serta pendidikan berkembang menjadi perangkat pendukung bisnis yang sangat berpengaruh. Berawal pada tahun 1958, melalui Advanced Research Projects Agency (ARPA), Amerika Serikat bertekad mengembangkan jaringan komunikasi terintegrasi yang saling menghubungkan komunitas sains dan keperluan militer. Hal ini dilatarbelakangi oleh terjadinya perang dingin antara Amerika Serikat dengan Uni Soviet (tahun 1957 Soviet meluncurkan sputnik). (Kleinrock, 2010) Perkembangan besar Internet pertama adalah penemuan terpenting ARPA yaitu packet switching pada tahun 1961. Packet switching adalah pengiriman pesan yang dapat dipecah dalam paket-paket kecil yang masing-masing paketnya dapat melalui berbagai alternatif jalur jika salah satu jalur rusak untuk mencapai tujuan yang telah ditentukan. Packet switching juga memungkinkan jaringan dapat digunakan secara bersamaan untuk melakukan banyak koneksi, berbeda dengan jalur telepon yang memerlukan jalur khusus untuk melakukan koneksi. Maka ketika ARPANET menjadi jaringan komputer nasional di Amerika Serikat pada 1969, packet switching digunakan secara menyeluruh sebagai metode komunikasinya menggantikan circuit switching yang digunakan pada sambungan telepon publik. (Kleinrock, 2010) Perkembangan besar Internet kedua yang dicatat pada sejarah internet adalah pengembangan lapisan protokol jaringan yang terkenal karena paling banyak digunakan sekarang yaitu TCP (Transmission Control Protocol). Protokol adalah suatu kumpulan aturan untuk berhubungan antar jaringan. Protokol ini dikembangkan oleh Robert Kahn dan Vinton Cerf pada tahun 1974. Dengan protokol yang standar dan disepakati secara luas, maka jaringan lokal yang tersebar di berbagai tempat dapat saling terhubung membentuk jaringan raksasa bahkan sekarang ini menjangkau seluruh dunia. Jaringan dengan menggunakan protokol internet inilah yang sering disebut sebagai jaringan internet. (Kleinrock, 2010) Perkembangan besar Internet ketiga adalah ditemukannya World Wide Web pada tahun 1990 oleh Tim Berners-Lee. (Berners-Lee, 1999). World Wide Web (WWW) ini menjadi konten 13 yang dinanti semua pengguna internet. WWW membuat semua pengguna dapat saling berbagi bermacam-macam aplikasi dan konten, serta saling mengaitkan materi-materi yang tersebar di internet. Sejak saat itu pertumbuhan pengguna internet meroket. 2.6 PHP PHP adalah sebuah bahasa pemrograman untuk HTML. PHP merupakan singkatan dari PHP: Hypertext Preprocessor, di dalam singkatan PHP terdapat kata PHP lagi, ini merupakan akronim rekursif. Kebanyakan dari sintaksnya diambil dari bahasa C, Java dan Perl dengan beberapa fitur PHP yang unik di dalamnya. Tujuan dari bahasa ini adalah untuk memberikan kemampuan pada para pengembang web untuk menulis halaman-halaman dinamik lebih cepat. Secara garis besar bahasa pemrograman web terdiri atas dua macam. Yang pertama disebut dengan Client Side atau script yang dijalankan di komputer client dan yang kedua biasanya disebut dengan Server Side atau script yang dijalankan pada komputer server. Client Side adalah script atau perintah yang ditujukan pada komputer untuk dijalankan pada komputer milik orang yang mengakses web tersebut. Misalnya kita ingin mengakses halaman web www.indrabt.com. Apabila di dalam halaman web ini memiliki script client side yang berguna untuk menampilkan misalnya gambar logo milik web site ini maka yang menjalankan script tersebut adalah komputer kita atau dengan kata lain browser kita. Apabila script yang berguna untuk menampilkan gambar logo adalah bersifat server side maka pertama tama script tersebut akan diproses di server tempat web site tersebut berada (biasanya disebut dengan hosting), setelah diproses baru hasil pemrosesan tersebut akan dikirimkan pada client yang mengakses web site tersebut. PHP merupakan bahasa programming Server Side. 14 2.7 DBMS MySQL DBMS(Database Management System) MySQL adalah sebuah database open source terpopuler yang dikembangkan dan didistribusikan oleh perusahaan Oracle. Sebuah database adalah kumpulan dari data yang terstruktur. Data dapat merupakan sebuah daftar belanjaan yang sedikit ataupun kumpulan informasi yang rumit di sebuah jaringan perusahaan. Untuk menambah,mengakses dan memproses data yang tersimpan di sebuah database komputer, diperlukan sebuah sistem manajemen database seperti server MySQL. Karena komputer sangat bagus dalam menangani data yang besar jumlahnya, sistem manajemen database memegang peranan yang sangat penting dalam komputer. Sebuah database relasional menyimpan data dalam berbagai tabel daripada menyimpannya dalam sebuah ruangan penyimpanan yang besar. Struktur database disusun sedemikian rupa untuk mengoptimisasi kecepatan. Model logika, dengan objek seperti database, tabel, baris dan kolom memberikan lingkungan programming yang fleksibel. Kita dapat membuat peraturan-peraturan yang mengatur hubungan antara data-data yang ada, seperti satuke-satu, satu-ke-banyak, unik, dan lainnya. Database melakukan peraturan-peraturan ini, sehingga dengan database yang didesain dengan baik, aplikasi kita tidak akan mengalami data duplikat, hilang, inkonsisten, dan lainnya. Kata SQL dari MySQL merupakan singkatan dari ”Structured Query Language”. SQL merupakan bahasa standard yang paling dikenal untuk mengakses database. Tergantung pada lingkungan programming, kita dapat mengakses SQL secara langsung(misalnya untuk membuat laporan), memasukkan perintah SQL dalam kode bahasa pemrograman lain, dan lainnya. SQL ditetapkan oleh ANSI/Standard ISO SQL. Standard SQL telah berkembang sejak 1986 dan memiliki banyak versi. MySQL merupakan sebuah software Open Source. Ini artinya software ini boleh dipakai oleh semua orang dan boleh juga dirubah oleh semua orang. Software ini boleh didownload dan dipakai secara gratis, software MySQL memakai GPL(GNU General Public License).