BAB 2. TINJAUAN PUSTAKA
2.3 Sistem Pakar
Menurut Hidayat dan Merlina (2012:12) ada beberapa definisi tentang sistem pakar menurut beberapa ahli adalah sebagai berikut.
1. Menurut Durkin
Sistem pakar adalah suatu program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan seorang pakar.
2. Menurut Ignizio
Sistem pakar adalah suatu model dan prosedur yang berkaitan, dalam suatu domain tertentu, yang mana tingkat keahliannya dapat dibandingkan dengan keahlian seorang pakar.
3. Menurut Giarratano dan Riley
Sistem pakar adalah suatu sistem komputer yang bisa menyamai atau meniru kemampuan seorang pakar. Sistem pakar adalah suatu perangkat lunak komputer yang menggunakan pengetahuan (aturan-aturan tentang sifat dan unsur suatu masalah), fakta dan teknik inferensi untuk pemecahan suatu masalah sebagaimana yang difikirkan oleh seorang pakar. Tujuan perancangan sistem pakar untuk mempermudah kerja atau bahkan mengganti tenaga ahli, penggabungan ilmu dan pengalaman dari beberapa tenaga ahli, training tenaga ahli baru, penyediaan keahlian yang diperlukan oleh suatu proyek yang tidak ada atau tidak mampu membayar tenaga ahli (Marimin, 2005:20-21).
2.3.1 Manfaat Sistem Pakar
Menurut Hidayat dan Merlina (2012) sistem pakar menjadi sangat populer karena sangat banyak kemampuan dan manfaat yang diberikan, diantaranya sebagai berikut.
1. Meningkatkan produktivitas, karena sistem pakar dapat bekerja lebih cepat daripada manusia.
2. Membuat seorang yang awam bekerja seperti layaknya seorang pakar.
3. Meningkatkan kualitas, dengan memberi nasehat yang konsisten dan mengurangi kesalahan.
4. Mampu menangkap pengetahuan dan kepakaran seseorang.
5. Memudahkan akses pengetahuan seorang pakar.
6. Sistem pakar tidak pernah menjadi bosan dan kelelahan atau sakit.
7. Meningkatkan kemampuan untuk menyelesaikan masalah karena sistem pakar mengambil sumber pengetahuan dari banyak pakar.
2.3.2 Kekurangan Sistem Pakar
Menurut Marimin (2005:22) Selain manfaat, ada juga beberapa kekurangan yang ada pada sistem pakar, diantaranya sebagai berikut.
1. Biaya yang sangat mahal untuk membuat dan memeliharanya.
2. Sulit dikembangkan karena keterbatasan keahlian dan ketersediaan pakar 3. Sistem pakar tidak 100% bernilai benar.
2.3.3 Ciri-Ciri Sistem Pakar
Menurut Marimin (2005:22) ciri-ciri dari sistem pakar adalah sebagai berikut.
1. Terbatas pada domain keahlian tertentu;
2. Dapat memberikan penalaran untuk data-data yang tidak lengkap atau tidak pasti;
3. Dapat menjelaskan alasan-alasan dengan cara yang dapat dipahami;
4. Bekerja berdasarkan kaidah/ rule tertentu dan mudah dimodifikasi;
5. Basis pengetahuan dan mekanisme inferensi terpisah;
6. Keluarannya bersifat anjuran;
7. Sistem dapat mengaktifkan kaidah secara searah yang sesuai, dituntun oleh dialog dengan user.
2.3.4 Struktur Sistem Pakar
Menurut Sutojo et al. (2010:166-169), sistem pakar memiliki bagian penting yaitu lingkungan pengembangan (development environment) dan
lingkungan konsultasi (consultation environment). Lingkungan pengembangan digunakan oleh pembuat sistem pakar untuk membangun komponen- komponennya dan memperkenalkan pengetahuan ke dalam basis pengetahuan (knowledge base). Lingkungan konsultasi digunakan oleh user untuk berkonsultasi sehingga user mendapatkan pengetahuan dan nasehat dari sistem pakar layaknya berkonsultasi dengan pakar. Struktur sistem pakar dapat dilihat pada Gambar 2.1.
Gambar 2.1 Struktur sistem pakar
Keterangan :
1. Akuisisi Pengetahuan
Subsistem ini digunakan untuk memasukkan pengetahuan dari seorang pakar dengan cara merekayasa pengetahuan agar dapat diproses oleh komputer dan menaruhnya ke dalam basis pengetahuan dengan format tertentu (dalam bentuk representasi pengetahuan). Sumber-sumber pengetahuan bisa diperoleh dari pakar, buku, dokumen multimedia, basis data, laporan riset khusus dan informasi yang terdapat di Web.
2. Basis Pengetahuan (Knowledge Base)
Basis pengetahuan mengandung pengetahuan yang diperlukan untuk memahami, memformulasikan, dan menyelesaikan masalah. Basis pengetahuan terdiri atas dua elemen dasar yaitu:
a. Fakta, misalnya situasi, kondisi atau permasalahan yang ada.
b. Rule (aturan), untuk mengarahkan penggunaan pengetahuan dalam memecahkan masalah.
3. Mesin Inferensi (Inference Engine)
Mesin inferensi adalah sebuah program yang berfungsi untuk memandu proses penalaran terhadap suatu kondisi berdasarkan pada basis pengetahuan yang ada, memanipulasi dan mengarahkan kaidah, model dan fakta yang disimpan dalam basis pengetahuan untuk mencapai solusi atau kesimpulan. Dalam prosesnya, mesin inferensi menggunakan strategi pengendalian, yaitu strategi yang berfungsi sebagai panduan arah dalam melakukan proses penalaran. Ada tiga teknik pengendalian yang digunakan yaitu forward chaining, backward chaining dan gabungan dari kedua teknik tersebut.
4. Daerah Kerja (Blackboard)
Untuk merekam hasil sementara yang akan dijadikan sebagai keputusan dan untuk menjelaskan sebuah masalah yang sedang terjadi, sistem pakar membutuhkan blackboard yang area pada memori yang berfungsi sebagai basis data. Tiga tipe keputusan yang dapat direkam pada blackboard yaitu:
a. Rencana : bagaimana menghadapi masalah
b. Agenda : aksi-aksi potensial yang sedang menunggu untuk menunggu dieksekusi.
c. Solusi : calon aksi yang akan dibangkitkan.
5. Antarmuka Pengguna (User Interface)
Digunakan sebagai media komunikasi antara pengguna dan sistem pakar.
Komunikasi ini paling bagus bila disajikan dalam bahasa alami (natural language) dan dilengkapi dengan grafik, menu, dan formulir elektronik. Pada bagian ini akan terjadi dialog antara sistem pakar dan pengguna.
6. Subsistem Penjelasan (Explanation Subsystem/ Justifier)
Berfungsi memberi penjelasan kepada pengguna, bagaimana suatu kesimpulan dapat diambil. Kemampuan seperti ini sangat penting bagi pengguna untuk mengambil proses pemindahan keahlian pakar maupun dalam pemecahan masalah.
7. Sistem Perbaikan Pengetahuan (Knowledge Refining System)
Kemampuan memperbaiki pengetahuan (knowledge refining system) dari seorang pakar diperlukan untuk menganalisis pengetahuan, belajar dari kesalahan masalalu, kemudian memperbaiki pengetahuannya sehingga dapat dipakai pada masa mendatang. Kemampuan evaluasi diri seperti itu diperlukan oleh program agar dapat menganalisis alasan-alasan kesuksesan dan kegagalannya dalam mengambil kesimpulan. Dengan cara ini basis pengetahuan yang baik dan penalaran yang lebih efektif akan dihasilkan.
8. Pengguna (User)
Pada umumnya pengguna sistem pakar bukanlah seorang pakar (non-expert) yang membutuhkan solusi, saran, atau pelatihan (training) dari berbagai permasalahan yang ada.
2.4 Data Flow Diagram (DFD)
Data Flow Diagram (DFD) adalah representasi grafik yang menggambarkan aliran informasi dan tranformasi informasi yang diaplikasikan sebagai data yang mengalir dari masukan (input) dan keluaran (output). DFD dapat digunakan untuk merepresentasikan sebuah sistem atau perangkat lunak pada beberapa level abstraksi. DFD dapat dibagi menjadi beberapa level yang lebih detail untuk merepresentasikan aliran informasi atau fungsi yang lebih detail (Sukamto dan Shalahuddin, 2013:69-71). Notasi-notasi pada DFD disajikan pada Tabel 2.1 berikut ini.
Tabel 2.1 Komponen DFD
Notasi Keterangan
Proses atau fungsi atau prosedur; pada pemodelan perangkat lunak yang akan diimplementasikan dengan pemrograman terstruktur, maka pemodelan notasi inilah yang harusnya menjadi fungsi atau prosedur di dalam kode program.
Catatan: nama yang diberikan pada sebuah proses biasanya berupa kata kerja.
File atau basis data atau penyimpanan (storage); pada pemodelan perangkat lunak yang akan diimplementasikan dengan pemrograman terstruktur, maka pemodelan notasi inilah yang harusya dibuat menjadi tabel-tabel basis data yang dibutuhkan, tabel-tabel ini juga harus sesuai dengan perancangan tabel-tabel pada basis data (Entity Relationship Diagram (ERD)), Conceptual Data Model (CDM), Physical Data Model (PDM).
Catatan: Nama yang diberikan pada sebuah penyimpanan biasanya kata benda.
Entitas luar (external entity) atau masukan (input) atau keluaran (output) atau orang yang memakai/ berinteraksi dengan perangkat lunak yang dimodelkan atau sistem lain yang terkait dengan aliran data dari sistem yang dimodelkan.
Catatan: Nama yang digunakan pada masukan (input) atau keluaran (output) biasanya berupa kata benda
Aliran data: merupakan data yang dikirm antar proses, dari penyimpanan ke proses, atau dan proses ke masukan (input) atau keluaran (output).
Catatan: Nama yang digunakan pada aliran data biasanya berupa kata benda, dapat diawali dengan kata data misalnya “data siswa”
atau tanpa kata data misalnya “siswa”
Berikut ini adalah tahapan-tahapan perancangan dengan menggunakan DFD adalah sebagai berikut.
1. Membuat DFD Level 0 atau sering disebut juga Context Diagram
DFD Level 0 menggambarkan sistem yang akan dibuat sebagai suatu entitas tunggal yang beriteraksi dengan orang maupun sistem lain. DFD Level 0 digunakan untuk menggambarkan interaksi antara sistem yang akan dikembangkan dengan entitas luar.
2. Membuat DFD Level 1
DFD Level 1 digunakan untuk menggambarkan modul-modul yang ada dalam sistem yang akan dikembangkan. DFD Level 1 merupkan hasil breakdown DFD Level 0 yang sebelumnya sudah dibuat.
3. Membuat DFD Level 2
Modul-modul pada DFD Level 1 dapat di-breakdown menjadi DFD Level 2.
Modul mana saja yang harus di-breakdown lebih detail tergantung pada tingkat kedetailan modul tersebut. Apabila modul tersebut sudah cukup detail dan rinci maka modul tersebut sudak tidak perlu untuk di-breakdown lagi.
Untuk sebuah sistem, jumlah DFD Level 2 sama dengan jumlah modul pada DFD Level 1 yang di-breakdown.
4. Membuat DFD Level 3 dan seterusnya
DFD Level 3, 4, 5 dan seterusnya merupakan breakdown dari modul pada DFD Level di-atasnya. Breakdown pada level 3, 4, 5 dan seterusnya aturannya sama persis dengan DFD Level 1 atau Level 2.
Pada satu diagram DFD sebaiknya jumlah modul tidak boleh lebih dari 20 buah. Jika lebih dari 20 buah modul, diagram akan terlihat rumit dan susah untuk dibaca sehingga menyebabkan sistem yang dikembangkan juga menjadi rumit (Sukamto dan Shalahuddin, 2013:69-73).
2.5 Entity Relationship Diagram (ERD)
Model entity-relationship yang berisi komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang mempresentasikan seluruh fakta dari dunia nyata yang ditinjau, dapat digambarkan dengan lebih sistematis dengan menggunakan Digram Entity- Relationship.
Pemodelan awal basis data yang paling banyak digunakan adalah menggunakan Entity Relationship Diagram (ERD). ERD dikembangkan berdasarkan teori himpunan dalam bidang matematika. ERD digunakan untuk pemodelan basis data relasional sehingga jika penyimpanan basis data menggunakan OODBMS maka perancangan basis data tidak perlu menggunakan ERD. ERD memiliki beberapa aliran notasi seperti notasi Chen (dikembangkan oleh Peter Chen), Barker (dikembangkan oleh Richard Barker, Ian Palmer, Harry Ellis), notasi Crow’s Foot, dan beberapa notasi lain. Namun yang banyak digunakan adalah notasi dari Chen (Sukamto dan Shalahuddin, 2013:50-52).
Simbol-simbol yang digunakan pada ERD dengan notasi Chen disajikan pada Tabel 2.2 berikut ini.
Tabel 2.2 Komponen ERD
Simbol Deskripsi
Entitas/entity Entitas merupakan data inti yang akan disimpan; bakal tabel pada basis data; benda yang memiliki data dan harus disimpan datanya agar dapat diakses oleh aplikasi komputer; penamaan entitas biasanya lebih ke kata benda dan belum merupakan nama tabel.
Atribut Field atau kolom data yang butuh disimpan dalam suatu entitas
Atribut kunci primer
Field atau kolom data yang butuh disimpan dalam suatu entitas dan digunakan sebagai kunci akses record yang diinginkan; biasanya berupa id; kunci primer dapat lebih dari satu kolom, asalkan kombinasi dari beberapa kolom tersebut dapa bersifat unik (berbeda tanpa ada yang sama) Atribut multinilai Field atau kolom data yang butuh disimpan dalam suatu
entitas yang dapat memiliki nilai lebih dari satu.
Relasi Relasi yang menghubungkan antar entitas; biasanya diawali dengan kata kerja.
Asosiasi/
association
Penghubung antara relasi dan entitas dimana dikedua ujungnya memiliki multiplicity kemungkinan jumlah pemakaian. Kemungkinan jumlah maksimum keterhubungan antara entitas satu dengan entitas yang lain disebut dengan kardinalitas.
Menurut Ladjamudin (2005:147-148) terdapat 3 macam kardinalitas relasi adalah sebagai berikut.
1. One to One
Tingkat hubungan satu ke satu, dinyatakan dengan satu kejadian pada entitas pertama hanya mempunyai satu hubungan dengan satu kejadian pada entitas yang kedua dan sebaliknya. Yang berarti setiap tupel pada entitas A berhubungan dengan paling banyak satu tupel pada entitas B, dan begitu
sebaliknya setiap tupelo pada entitas B berhubungan dengan paling banyak satu tupelo pada entitas A.
2. One to Many atau Many to One
One to Many adalah sama dengan banyak ke satu. Tergantung dari arah mana hubungan tersebut dilihat. Untuk satu kejadian pada entitas yang pertama dapat mempunyai banyak hubungan dengan kejadian pada entitas yang kedua.
Sebaliknya satu kejadian pada entitas yang kedua hanya dapat mempunyai satu hubungan dengan satu kejadian pada entitas yang pertama.
a. One to Many (satu ke banyak)
One to many adalah satu tupelo pada entitas A dapat berhubungan dengan banyak tupel pada entitas B, tetapi tidak sebaliknya, dimana setiap tupel pada entitas B, berhubungan dengan paling banyak satu tupel pada entitas A.
b. Many to One (banyak ke satu)
Many to one adalah setiap tupel pada entitas A dapat berhubungan dengan paling banyak satu tupel pada entitas B, tetapi tidak sebaliknya, dimana setiap tupelo pada entitas A berhubungan dengan paling banyak satu tupel pada entitas B.
3. Many to Many
Many to many adalah tingkat hubungan banyak ke banyak terjadi jika tiap kejadian pada sebuah entitas akan mempunyai banyak hubungan dengan kejadian pada entitas lainnya. Baik dilihat dari sisi entitas yang pertama, maupun dilihat dari sisi yang kedua. Yang berarti setiap tupel pada entitas A dapat berhubungan dengan banyak tupel pada entitas B, dan demikian juga sebaliknya, dimana setiap tupel pada entitas B dapat berhubungan dengan banyak tupel pada entitas A.