Notes : ES tidak boleh mengulang pertanyaan untuk obyek pertanyaan yang berbeda.
BAB 2
PEMBAHASAN
2.1. Tinjauan Pustaka
Sistem pakar pertama kali dikembangkan oleh komunitas AI pada pertengahan tahun 1960. Sistem pakar yang muncul pertama kali adalah General-purpose Problem Solver (GPS) yang dikembangkan oleh Newel dan Simon. Secara umum, sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahuan manusia ke komputer, agar komputer dapat menyelesaikan masalah seperti yang biasa dilakukan oleh para ahli.
Konsep dasar sistem pakar menurut Efraim Turban, konsep dasar sistem pakar mengandung: keahlian, ahli, pengalihan keahlian, inferensi, aturan dan kemampuan menjelaskan. Fitur lainnya dari sistem pakar adalah kemampuan untuk merekomendasi. Kemampuan inilah yang membedakan sistem pakar dengan sistem konvensional.
Sistem pakar terdiri-dari 2 bagian pokok, yaitu: lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation environment).
Komponen – komponen yang ada pada sistem pakar yaitu :
1. Subsistem penambahan pengetahuan. Bagian ini digunakan untuk memasukkan pengetahuan, maupun memperluas pengetahuan dalam basis pengetahuan. Pengetahuan itu bisa berasal dari: ahli, buku, basisdata, penelitian, dan gambar.
2. Basis pengetahuan. Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan menyelesaikan masalah.
3. Motor inferensi (inference engine). Program yang berisi metodologi yang digunakan untuk melakukan penalaran terhadap informasi-informasi dalam basis pengetahuan dan blackboard, serta digunakan untuk memformulasikan konklusi. Ada 3 elemen utama:
1) Interpreter: mengeksekusi item-item agenda yang terpilih dengan menggunakan aturan-aturan dalambasis pengetahuan yang sesuai.
2) Scheduler: akan mengontrol agenda.
3) Consistency enforcer: akan berusaha memelihara kekonsistenan dalam merepresentasikan solusi yang bersifat darurat.
4) Blackboard. Merupakan area dalam memori yang digunakan untuk merekam kejadian yang sedang berlangsung termasuk keputusan sementara. Ada 3 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.
5) Antarmuka. Digunakan untuk media komunikasi antara user dan program.
6) Subsistem penjelasan. Digunakan untuk melacak respon dan memberikan penjelasan tentang kelakuan sistem pakar secara interaktif melalui pertanyaan:
a. Mengapa suatu pertanyaan ditanyakan oleh sistem pakar?
b. Bagaimana konklusi dicapai?
c. Mengapa ada alternatif yang dibatalkan?
d. Rencana apa yang digunakan untuk mendapatkan solusi?
7) Sistem penyaring pengetahuan. Sistem ini digunakan untuk mengevaluasi kinerja sistem pakar itu sendiri untuk melihat apakah pengetahuan-pengetahuan yang ada masih cocok untuk digunakan di masa mendatang.
2.2. Programming in Logic
Prolog singkatan dari Programming in Logic yang dikembangkan oleh Alain Colmenraurer dan P.Roussel di Universitas Marseilles Perancis, tahun1972. Prolog populer di Eropa untuk aplikasi artificial intelligence, sedangkan di Amerika peneliti mengembangkan aplikasi yang sama, yaitu LISP. Adapun perbedaan bahasa Prolog dengan Bahasa Pemrograman Umum lainnya (seperti : Basic, Pascal, C, Fortran), yaitu :
1. Tidak diperlukan algoritma / prosedur untuk memecahkan masalah (procedural language).
2. Program tidak menjalankan prosedur yang sama berulang-ulang dengan data masukan yang berbeda- beda.
3. Prosedur dan pengendalian program tidak ditentukan oleh programer dan perhitungan tidak dilakukan sesuai dengan prosedur yang telah dibuat.
Prolog merupakan salah satu bahasa pemrograman dengan paradigma Lojik atau deklaratif. Didalam bahasa pemrograman jenis ini, seorang programer harus menjabarkan atau mendeklarasikan sejumlah, sekumpulan fakta dan juga aturan aturan. Kemudian ketika program di eksekusi, program akan menggunakan aturan yang telah ditetukan tad dan mencocokkan pertanyaan dengan fakta yang ada untuk menjawab pertanyaan.
Prolog mempunyai sifat-sifat yang berbeda dengan bahasa pemrograman lain. Prolog disebut sebagai object oriented language atau declarative language. Dalam prolog tidak terdapat prosedur, tapi hanya tampilan data-data object (fakta) yang akan diolah dengan relasi antar object tersebut yang membentuk suatu aturan. Aturan-aturan ini disebut HEURISTIK dan diperlukan dalam mencari suatu jawaban, dengan kata lain, prolog dalam prolog adalah database.
2.3. Representasi Pengetahuan
Aplikasi ini dibuat dengan mengadopsi sistem pakar yaitu untuk melakukan inventory control, dimana secara berkala atau rutin diperlukan melakukan inventory control untuk menjamin ketersediaan barang atau produk.
Pembuatan sistem pakar dalam melakukan inventory control dibagi 2 jenis, yaitu :
1. Fakta , pada aplikasi ini fakta berisi masalah-masalah yang teridentifikasi.
2. Aturan , aturan pada aplikasi ini terutama untuk menuju kepada hasil diagnosa dari masalah yang ada dalam bentuk Representasi Logika.
Untuk mempermudah melihat fakta dan aturan pada aplikasi ini , dibuat sebuah tabel keputusan seperti berikut :
No | Masalah-masalah | A | B | C |
1 | Jumlah barang yang keluar | * | * | * |
2 | Barang yang keluar darimana | * | * | * |
3 | Barang keluar merupakan barang reject | * | ||
4 | Permintaan barang tinggi | * | * | * |
5 | Barang banyak menumpuk di gudang | |||
6 | Terjadi kekurangan bahan baku | * | * | * |
7 | Sistem forecasting sering meleset | * | * | * |
8 | Terjadi kekurangan SDM | * | * | * |
9 | Gudang tidak mencukupi | * | ||
10 | Mesin produksi terbatas dan overload | * | * | * |
Tabel 2.3.1. Tabel Keputusan
Pada tabel di atas, pada bagian baris menunjukkan ciri-ciri masalah yang teridentifikasi pada inventory control sedangkan pada kolom menunjukkan diagnosa pada masalah yang ada.
Berikut adalah keterangan dari kolom :
A : Stok kurang
B : Kualitas rendah
C : Barang retur tinggi
2.4. Representasi Logika
Dari pendefinisian tabel keputusan yang telah dilakukan sebelumnya kemudian diteruskan dengan melakukan pembuataan aturan dengan menggunakan Representasi Logika.
Representasi Logika ini mengambil dari semua fakta yang telah diidentifikasi sebelumnya, sebagai berikut :
A :- jumlah barang yang keluar,
barang yang keluar darimana,
permintaan barang tinggi,
terjadi kekurangan bahan baku,
sistem forecasting sering meleset,
terjadi kekurangan SDM,
gudang tidak mencukupi,
mesin produksi terbatas dan overload.
B :- jumlah barang yang keluar,
barang yang keluar darimana,
barang keluar merupakan barang reject,
permintaan barang tinggi,
terjadi kekurangan bahan baku,
sistem forecasting sering meleset,
terjadi kekurangan SDM,
mesin produksi terbatas dan overload.
C :- jumlah barang yang keluar,
barang yang keluar darimana,
permintaan barang tinggi,
terjadi kekurangan bahan baku,
sistem forecasting sering meleset,
terjadi kekurangan SDM,
mesin produksi terbatas dan overload.
2.5. Pohon Keputusan
Setelah memetakan masalah-masalah yang ada dengan diagnosanya, maka berikutnay dibuatlah sebuah pohon keputusan. Pohon keputusan ini akan menjadi dasar dari pertanyaan yang akan dilakukan pada program aplikasi.
Pada pohon keputusan semua pertanyaan di awali dari masalah-masalah, jika syarat terpenuhi maka sistem akan menunjuk pada diagonsa atau hipotesa A,B,C.
Gambar 2.5.1. Pohon Keputusan
Berikut adalah tabel daftar pertanyaan yang digunakan pada aplikasi :
No | Pertanyaan |
1 | Jumlah barang yang keluar |
2 | Barang yang keluar darimana |
3 | Barang keluar merupakan barang reject |
4 | Permintaan barang tinggi |
5 | Barang banyak menumpuk di gudang |
6 | Terjadi kekurangan bahan baku |
7 | Sistem forecasting sering meleset |
8 | Terjadi kekurangan SDM |
9 | Gudang tidak mencukupi |
10 | Mesin produksi terbatas dan overload |
Tabel 2.5.1. Daftar Pertanyaan
2.6. Penerapan Program
Berikut merupakan kode program pada aplikasi ini :
go :-
nl,
gotitle,
godata,
gorules(_Nombor,Reason),
goanswer(Reason,Jawab),
write("Outputnya adalah "),
write(Jawab),nl,nl,
retractall(observation(_)),
gorepeat.
gorepeat :-
write("Anda ingin mengulang lagi(y/t)?"),
read(Repeat),nl,
Repeat=y,
go.
gotitle:-
write("Simulasi Inventory Control dengan Sistem Pakar"),nl,
write("Dibuat oleh Ramadhana PD 15118880,"),nl,
write(" Novaldo Gabriel 15118359,"),nl,
write(" Mutiara Bela 15118880"),nl,
write("=========================================="),nl,nl,
write("Jawab dengan y=ya atau t=tidak"),nl,nl.
godata :-
problem(Query,Obs),
write(Query),nl,
read(Answer),
Answer=y,
assert(observation(Obs)),
fail.
godata.
problem('Apakah diketahui jumlah barang yang keluar ?' ,'jumlah barang yang keluar').
problem('Apakah diketahui barang yang keluar darimana ?' ,'barang yang keluar darimana').
problem('Apakah diketahui barang keluar merupakan barang reject ?' ,'barang keluar merupakan barang reject').
problem('Apakah permintaan barang tinggi ?','permintaan barang tinggi').
problem('Apakah barang banyak menumpuk di gudang ?','barang banyak menumpuk di gudang').
problem('Apakah terjadi kekurangan bahan baku ?','terjadi kekurangan bahan baku').
problem('Apakah sistem forecasting sering meleset ?','sistem forecasting sering meleset').
problem('Apakah terjadi kekurangan SDM ?','terjadi kekurangan SDM').
problem('Apakah gudang tidak mencukupi ?','gudang tidak mencukupi').
problem('Apakah mesin produksi terbatas dan overload ?','mesin produksi terbatas dan overload').
gorules(1,'Stok kurang'):-
observation('jumlah barang yang keluar'),
observation('barang yang keluar darimana'),
not(observation('barang keluar merupakan barang reject')),
observation('permintaan barang tinggi'),
not(observation('barang banyak menumpuk di gudang')),
observation('terjadi kekurangan bahan baku'),
observation('sistem forecasting sering meleset'),
observation('terjadi kekurangan SDM'),
observation('gudang tidak mencukupi'),
observation('mesin produksi terbatas dan overload').
gorules(2,'Kualitas rendah'):-
observation('jumlah barang yang keluar'),
observation('barang yang keluar darimana'),
observation('barang keluar merupakan barang reject'),
observation('permintaan barang tinggi'),
not(observation('barang banyak menumpuk di gudang')),
observation('terjadi kekurangan bahan baku'),
observation('sistem forecasting sering meleset'),
observation('terjadi kekurangan SDM'),
not(observation('gudang tidak mencukupi')),
observation('mesin produksi terbatas dan overload').
gorules(3,'Barang Retur tinggi'):-
not(observation('jumlah barang yang keluar')),
observation('barang yang keluar darimana'),
not(observation('barang keluar merupakan barang reject')),
observation('permintaan barang tinggi'),
not(observation('barang banyak menumpuk di gudang')),
observation('terjadi kekurangan bahan baku'),
observation('sistem forecasting sering meleset'),
observation('terjadi kekurangan SDM'),
not(observation('gudang tidak mencukupi')),
observation('mesin produksi terbatas dan overload').
goanswer('Stok kurang','Stok kurang').
goanswer('Kualitas rendah','Kualitas rendah').
goanswer('Barang Retur tinggi','Barang Retur tinggi').
Berikut merupakan hasil output dari 3 diagnosa atau hipotesa pada aplikasi ini :
Gambar 2.6.1. Output Program
BAB 3
PENUTUP
3.1. Kesimpulan
Dari rumusan masalah dan pembahasannya , ada beberapa hal yang bisa disimpulkan dalam pembuatan aplikasi ini :
1. Fakta-fakta yang diidentifikasi bukan fakta sebenarnya pada suatu sistem inventory control karena diperlukan kajian atau referensi khusus yang terkait dengan itu.
2. Aplikasi ini juga belum dibuat dengan standar perancangan dan pembuatan software/aplikasi secara khusus, langkah perancangan dan pembuatan dalam pembahasan hanya diurai yang terkait dengan salah satu metode pada Sistem Pakar.
3. Aplikasi ini berhasil menguji konsep sistem pakar secara umum dari pendefinisian representasi pengetahuan, representasi logika, serta pohon keputusan.
3.2. Saran
Ada beberapa hal yang bisa menjadi perhatian dalam pengembangan aplikasi ini :
1. Karena keterbatasan pengetahuan pemrograman Prolog, aplikasi saat ini sangatlah sederhana, aplikasi ini bisa dikembangkan dengan menggunakan proses input output stream yang diharapkan knowledge based pada aplikasi ini bisa ditambah dengan mudah tanpa memerlukan proses kompilasi ulang pada program.
2. Perancangan dan pembuatan aplikasi dengan metode yang benar akan jauh membuat aplikasi ini menjadi sistematis dan efisien.
DAFTAR PUSTAKA
Kusrini. 2006. Sistem Pakar Teori dan Aplikasi.Yogyakarta : Penerbit Andi.
Junaidi, Khanna Tiara, Nenden DY. 2013. Sistem Pakar Monitoring Inventory Control untuk Menghitung Harga Jual Efektif dalam Meningkatkan Keuntungan. Prosiding Prospek dan Tantangan Mobile Application pada Seminar Teknik Informatika, Yogyakarta : 27 Juni 2013. Hal 8-17.
Amani, Yasir. 2016 Pemodelan Peramalan Dalam Penentuan Persediaan Jenis Spare Part Mesin Kendaraan : Jurnal Teknik Informatika Vol 8, No 1. Lhokseumawe : Universitas Malikussaleh .
Oktapiani, Reny . 2017. Sistem Pakar untuk Menentukan Penyebab Kerusakan CPU dengan Metode Certainty Factor : IJCIT (Indonesian Journal on Computer and Information Technology) Vol.2, No.2 (Hal. 14-23). Tasikmalaya : AMIK BSI.


No comments:
Post a Comment