Saturday, November 18, 2017

Sistem Pakar: Sebuah Pembahasan Singkat

Pada post kali ini, penulis akan membahas tentang sistem pakar (expert system), yang dimana pembahasannya meliputi sejarah singkat dan tujuan dari pembuatan sistem

A. Sejarah Singkat Sistem Pakar

Komputer Symbolics 3640 yang menjadi salah satu platform pengembangan sistem pakar pada masa dahulu kala | Original Author: Michael L. Umbricht and Carl R. Friend (displayed on https://en.wikipedia.org/wiki/Expert_system)
Sistem pakar secara umum dapat dipahami sebagai sebuah sistem yang dibuat untuk dapat mengemulasikan kemampuan pengambilan keputusan dari seorang pakar dalam suatu bidang (terutama ilmu pengetahuan) ke dalam sebuah komputer. Perkembangannya sendiri dimulai sejak era 1970an, dimana pengembangan tahap lebih lanjut dilakukan sejak 1980an. Awalnya sistem pakar dibuat pertama kali oleh Edward Feigenbaum bersama dengan rekan-rekannya yang tergabung dalam Stanford Heuristic Programming Project dalam rangka mengidentifikasi bidang ilmu yang menjunjung tinggi keberadaan pakar yang memiliki keahlian di bidang ilmu tersebut. Meskipun sistem yang dibuat oleh Feigenbaum dan timnya menggunakan prinsip berupa penggunaan kemampuan yang didasarkan pada pengetahuan yang dimiliki dibandingkan dengan mekanisme yang ada pada sistem konvensional, namun sistem tersebut menciptakan sebuah batu loncatan dalam pengembangan sistem pakar di tahun-tahun berikutnya. Adapun sistem pakar sendiri merupakan salah satu bentuk nyata dari perwujudan paling awal untuk konsep kecerdasan buatan (artificial intelligence, AI) pada era tersebut.

Pada saat yang bersamaan, pengembangan sistem pakar juga dilakukan di Perancis. Namun berbeda dengan sistem buatan ilmuwan Amerika yang mengandalkan sistem berbasis aturan (rule-based system) dan menggunakan bahasa pemrograman Lisp sebagai dasar dari pengembangannya, sistem yang dikembangkan di Perancis menggunakan Prolog (dikembangkan pertama kali oleh Alain Colmerauer dan Philippe Roussel pada tahun 1972). Jika keduanya dibandingkan, sistem yang dikembangkan oleh ilmuwan di Perancis memiliki tingkat kesempurnaan yang lebih tinggi dibandingkan konsep sistem pakar yang dikembangkan oleh ilmuwan Amerika. Hal ini dikarenakan prinsip bahasa yang dimiliki oleh Prolog tidak semata berfokus kepada prinsip "if - then" saja, melainkan kepada berbagai pertimbangan-pertimbangan maupun kondisi lainnya. Maka secara umum dapat dikatakan bahwa sistem pakar yang menggunakan Prolog memberikan perwujudan dari logika predikat tingkat pertama (First-order Logic) yang digunakan dalam dunia matematika maupun dunia komputer secara lebih sempurna untuk menyelesaikan masalah-masalah yang membutuhkan keberadaan pakar dari bidang yang bersesuaian dengan masalah tersebut.

Pada era 1980an, kemunculan dari konsep sistem pakar memicu berbagai universitas untuk menawarkan pendidikan yang berkaitan dengan pengembangan sistem pakar kepada mahasiswanya. Bahkan pada saat itu pula perusahaan-perusahaan ikut menerapkan teknologi komputer (termasuk pula sistem pakar) di dalam pola kerja sehari-harinya. Namun pada saat yang sama IBM PC yang dilengkapi dengan sistem operasi IBM PC DOS diperkenalkan pada tahun 1981, yang dimana kemampuan pemrosesannya yang relatif setara dengan mainframe pada saat itu (meskipun ukuran dari chip yang dipergunakan jauh lebih kecil dibandingkan yang ada di mainframe) membuat perkembangan sistem pakar menjadi sangat berubah. Kemunculan dari arsitektur client-server yang bersamaan dengan diperkenalkannya IBM PC membuat perusahaan pengembang sistem pakar memilih untuk mengubah orientasi pengembangan produknya dari yang semula ditujukan untuk lingkungan sistem mainframe berbasis Lisp ke sistem yang berbasis PC. Meskipun begitu, pada tahun 1982 sebuah program sistem pakar berbasis Lisp yang bernama SID (Synthesis of Integral Design) berhasil dikembangkan, dimana ujicobanya dilakukan pada komputer VAX 9000 buatan Digital Equipment Corporation (DEC). Sayangnya, kesuksesan itu tidak bertahan lama karena program tersebut dihentikan pasca selesainya proyek ujicoba sistem tersebut sebagai akibat dari rumitnya struktur program SID. Bahkan istilah sistem pakar (bersama dengan konsep AI yang dapat berdiri sendiri) kemudian tidak lagi dipergunakan di dalam kamus bahasa dunia IT sejak era 1990an dikarenakan pengembang sistem pakar kemudian memilih untuk mengubah konsep pengembangan sistem pakar menjadi pengembangan komponen berbasis pengetahuan untuk program-program standar, seiring dengan semakin pesatnya perkembangan komputer kelas PC dan juga komputer server yang dapat dijangkau oleh perusahaan dengan harga yang lebih murah ketimbang komputer mainframe pada saat itu.

B. Tujuan, Cara Merancang dan Basis Dasar Sistem Pakar

Struktur dasar dari sistem pakar | Original: pubs.cs.uct.ac.za
Sebuah sistem pakar dibuat dengan tujuan yaitu untuk membantu pengalihan sebuah keahlian atau ilmu pengetahuan dari seorang pakar yang menguasai bidang keahlian atau ilmu tersebut ke mereka yang bukan ahlinya. Hal ini dalam rangka untuk menjaga agar keahlian atau ilmu yang disimpan di dalam sistem tersebut dapat terjaga dan terus dapat diturunkan dari generasi ke generasi. Definisi dari pakar sendiri yaitu seseorang yang mampu memberikan penjelasan tentang berbagai hal yang berkaitan dengan suatu masalah maupun mempelajari hal-hal baru seputar topik masalah tersebut, serta menyusun sebuah pengetahuan yang baru (jika kondisinya diperlukan untuk menyelesaikan masalah). Adapun suatu pengetahuan yang disimpan di dalam sistem pakar disebut sebagai basis pengetahuan, dimana basis pengetahuan tersebut terdiri dari fakta dan aturan. Dalam merancang sebuah sistem pakar, tahapan-tahapan yang harus dilalui adalah sebagai berikut:
  1. Mengidentifikasi masalah dan kebutuhan
  2. Menentukan problema yang cocok
  3. Menentukan alternatif pilihan sistem
  4. Menghitung pengembalian biaya investasi pembuatan sistem pakar
  5. Memilih alat untuk pengembangan sistem pakar
  6. Merekayasa pengetahuan
  7. Merancang dasar dari sistem
  8. Melengkapi pengembangan sistem
  9. Menguji, mencari dan memperbaiki kesalahan pada sistem
  10. Memelihara sistem secara keseluruhan
Berbagai tahapan di atas sangat menentukan kesuksesan dari sistem pakar yang dibuat, karena apabila salah satu tahap terlewatkan maka sistem pakar tersebut tidak akan dapat bekerja dengan baik. Bahkan apabila tahap paling awal yaitu mengidentifikasi masalah dan kebutuhan tidak dilalui dengan baik (misalkan masalah yang telah dikaji ternyata tidak cocok untuk diselesaikan dengan bantuan sistem pakar), sebuah sistem pakar tidak dapat dibuat sama sekali. Oleh karenanya dalam proses merancang sistem pakar kesepuluh tahapan tersebut harus dilalui agar sistem pakar yang dirancang dapat bekerja secara maksimal. Terutama ketika menghitung pengembalian biaya investasi pembuatan sistem pakar hingga ke merekayasa pengetahuan, dibutuhkan ketelitian dan kehati-hatian yang sangat tinggi saat melakukan eksekusi dari tahap-tahap tersebut. Hal ini demi mewujudkan sebuah sistem pakar yang berfungsi secara maksimal dan juga bermanfaat bagi penggunanya, tanpa menghasilkan masalah baru di belakang hari.

Sebuah sistem pakar pada dasarnya memiliki dua jenis basis pengetahuan, yaitu:
  1. Penalaran berbasis aturan - di sini sistem dibuat untuk melakukan penalaran terhadap suatu hal dengan berdasarkan aturan yang telah dibuat. Aturannya sendiri berbentuk If - Then, yang dimana ketika dijalankan sistem akan terlebih dahulu memeriksa apakah fakta yang ada sudah sesuai dengan aturan tersebut atau tidak. Jika sesuai, maka sistem akan menampilkan hasil yang menyatakan bahwa fakta yang dimasukkan adalah benar. Namun jika tidak sesuai, sistem akan menampilkan hasil berupa pesan bahwa faktat tersebut salah. Adapun basis pengetahuan jenis ini dibuat jika terdapat beberapa pengetahuan pakar yang dijadikan acuan dalam penyelesaian suatu masalah, dan juga apabila dibutuhkan langkah-langkah yang berkaitan dengan penjelasan tentang pencapaian solusi terhadap masalah yang diselesaikan dengan sistem pakar tersebut.
  2. Penalaran berbasis kasus - untuk jenis ini solusi yang diisikan ke dalam basis pengetahuan dari sistem pakar adalah semua solusi yang telah dicapai sebelumnya untuk kemudian diturunkan menjadi sebuah solusi baru yang relevan dengan fakta yang sedang dikonsultasikan ke sistem pakar tersebut. Biasanya basis pengetahuan yang didasarkan pada penalaran berbasis kasus dibutuhkan ketika pengguna menginginkan adanya perbandingan antara fakta yang sedang dikonsultasikan dengan fakta-fakta lain yang memiliki kemiripan dengan fakta tersebut. Selain itu, bentuk ini juga dipergunakan jika sudah ada contoh situasi atau fakta tertentu yang telah dimasukkan di dalam basis pengetahuan tersebut.
Maka dapat dikatakan bahwa pola kerja dari sebuah sistem pakar dalam menyelesaikan masalah yang dikonsultasikan ke sistem tersebut bergantung dari jenis basis pengetahuan yang dipergunakan dalam menyusun sistem pakar tersebut. Tentunya basis pengetahuan sendiri berisi pengetahuan-pengetahuan yang dibutuhkan dalam menyelesaikan sebuah masalah, dan apa yang dimasukkan ke dalam basis pengetahuan tersebut menentukan bagaimana hasil dari proses penyelesaian masalah yang sedang dikonsultasikan ke sistem pakar tersebut.

C. Contoh Penerapan Sistem Pakar

Tampilan SWI-Prolog
Salah satu contoh paling sederhana dari program sistem pakar yang dapat ditemui dan dipergunakan oleh pengguna awam secara gratis yaitu program SWI-Prolog (SWI merupakan akronim dari Sociaal-Wetenschappelijke Informatica atau bahasa Inggrisnya yaitu Social Science Informatics). Program ini dirancang dan dibuat dengan menggunakan bahasa pemrograman Prolog yang telah teruji sebagai salah satu bahasa pemrograman yang mudah dipergunakan dalam membangun sebuah sistem kecerdasan buatan (Artificial Intelligence / AI). Secara umum pola kerja dari SWI-Prolog mengikuti teknik dasar dari Prolog itu sendiri, dimana program sistem pakar yang dirancang dengan menggunakan SWI-Prolog akan dieksekusi dengan cara menjalankan query di atas hubungan-hubungan fakta dan aturan yang telah didefinisikan di dalam program tersebut. Adapun SWI-Prolog sendiri juga dapat dipergunakan untuk membangun sebuah aplikasi berbasis web yang menggunakan web framework berbasis definition clause grammar. Ini memungkinkan seorang pengembang sistem pakar untuk dapat membangun sebuah sistem pakar yang berbasis online dan juga dapat diakses oleh siapapun, dimana saja dan kapan saja.

Selain itu sistem pakar juga semakin banyak dipergunakan pada tingkat yang lebih luas. Salah satunya yaitu pada perpustakaan, dimana sejak tahun 2004 akhir mulai banyak perpustakaan yang menggunakan sistem pakar untuk membantu pengunjung perpustakaan dalam mencari buku yang ingin dibaca tanpa harus menyebutkan judulnya secara lengkap, yang dimana sistem akan mencari judul buku yang memiliki kata-kata yang cocok dengan input pencarian yang diberikan oleh pengunjung perpustakaan. Penggunaan sistem pakar untuk perpustakaan sendiri tidak hanya ditemukan di Indonesia saja, namun penggunaan sistem pakar untuk perpustakaan juga marak di berbagai perpustakaan yang ada di seantero dunia. Hal ini disebabkan oleh prinsip logika yang dimiliki oleh sistem pakar yang memungkinkan adanya pemberian output berupa suatu solusi meskipun data yang dimasukkan sebagai input untuk proses pencarian solusinya sendiri tidaklah lenglap. Maka dapat dikatakan bahwa sistem pakar memberi kemudahan dalam mencari dan mendapatkan solusi dari suatu masalah dengan menggunakan pengetahuan yang tertanam di dalamnya.

D. Sumber:

1. Magdalena, Merry. 2005. Kecerdasan Buatan Kini Hadir di Perpustakaan. http://lipi.go.id/berita/kecerdasan-buatan-kini-hadir-di-perpustakaan/731. 2 November 2017.
2. Jackson, Peter (1998), Introduction To Expert Systems (3 ed.), Addison Wesley, p. 2, ISBN 978-0-201-87686-4
3. Russell, Stuart; Norvig, Peter (1995). Artificial Intelligence: A Modern Approach. Simon & Schuster. pp. 22–23. ISBN 0-13-103805-2.
4. University of Missouri-St.Louis. Expert Systems and Applied Artificial Intelligence. 2 November 2017. http://www.umsl.edu/~joshik/msis480/chapt11.htm
5. Carl S. Gibson, et al, VAX 9000 SERIES, Digital Technical Journal of Digital Equipment Corporation, Volume 2, Number 4, Fall 1990, pp118-129.
6. Leondes, Cornelius T. (2002). Expert systems: the technology of knowledge management and decision making for the 21st century. pp. 1–22. ISBN 978-0-12-443880-4.
7. Durkin, J. Expert Systems: Catalog of Applications. Intelligent Computer Systems, Inc., Akron, OH, 1993.
8. A. Michiels. Introduction A Prolog: Et Au Traitement Du Langage Naturel. http://promethee.philo.ulg.ac.be/engdep1/download/prolog/htm_docs/prolog.htm. 3 November 2017
9. Kowalski, R. A. (1988). "The early years of logic programming". Communications of the ACM. 31: 38.
10. Colmerauer, A.; Roussel, P. (1993). "The birth of Prolog". ACM SIGPLAN Notices. 28 (3): 37.

11. Orfali, Robert (1996). The Essential Client/Server Survival Guide. New York: Wiley Computer Publishing. pp. 1–10. ISBN 0-471-15325-7.
12. Dahria, Muhammad. 2011. Pengembangan Sistem Pakar Dalam Membangun Suatu Aplikasi. https://lppm.trigunadharma.ac.id/public/fileJurnal/hp633-Jurnal-DAR-Sistem%20Pakar.pdf. 5 November 2017.
13. Clocksin, William F.; Mellish, Christopher S. (2003). Programming in Prolog. Berlin ; New York: Springer-Verlag.
14. Ogborn, Anne. 2015. "Tutorial — Creating Web Applications in SWI-Prolog". http://www.pathwayslms.com/swipltuts/html/index.html. 8 November 2017
15.  Lloyd, J. W. (1984). Foundations of Logic Programming. Berlin: Springer-Verlag.