Pages - Menu

Monday, October 31, 2016

Blind Search



1.      Blind Search

Blind Searching adalah model pencarian buta atau pencarian yang tidak memiliki informasi awal, model pencarian ini memiliki tiga ciri – ciri utama yaitu:

-          Membangkitkan simpul berdasarkan urutan
-          Kalau ada solusi maka solusi akan ditemukan
-          Hanya memiliki informasi tentang node yang telah dibuka (node selanjutnya tidak diketahui).
A. Pencarian Melebar pertama (Breadth-First Search)
Semua node pada level n akan dikunjungi terlebih dahulu sebelum level n+1. BFS (Breadth First Search) juga merupakan salah satu algoritma penelusuran struktur graf / pohon seperti DFS, namun bedanya BFS melakukan pencarian secara melebar atau per level pohon. Simpul ditelusuri dari root kemudian menelusuri semua simpul pada setiap level di bawahnya ( misalnya prioritas penelusuran dari kiri ke kanan ), maka penelusuran dilakukan terus dari simpul paling kiri ke simpul anak – anak tetangganya yang selevel. Jadi, untuk pohon biner :

Maka, urutan penelusurannya adalah : A – B – C – D – E – F – G – H – I – J – K – L
Salah satu cara implementasi BFS adalah dengan bantuan struktur data queue. Sama seperti stack pada DFS, queue yang digunakan adalah queue yang isi elemennya adalah simpul pohon / tree. Berikut ini adalah urutan algoritmanya :
  1. Masukkan simpul root ke dalam antrian
  2. Periksa antrian terdepan apakah memiliki anak simpul
  3. Jika ya, masukan semua anak simpul ke dalam antrian
  4. Hapus antrian terdepan
  5. Jika antrian kosong berhenti, tapi jika tidak kembali ke langkah dua
Untuk gambar pohon biner di atas, urutan langkah dan kondisi queue pada setiap iterasinya adalah sebagai berikut :

Contoh diatas menggunakan prioritas untuk memasukkan anak simpul dari sebelah kiri terlebih dahulu ke dalam queue. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak simpulnya yaitu B dulu, baru C ke dalam stack. Untuk penelusurannya yang dilihat adalah bagian yang berwarna biru, yaitu antrian terdepan yang setiap iterasinya memiliki urutan A – B – C – D – E – F – G – H – I – J – K – L. Sama seperti DFS lagi pada iterasi ke 13 itu kondisi antrian sudah kosong.
B. Pencarian mendalam pertama (Depth-First Search)
Proses pencarian dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian ini dilakukan pada suatu simpul dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.

Dalam implementasinya DFS dapat diselesaikan dengan cara rekursif atau dengan bantuan struktur data stack. Kita akan membahas dengan cara yang menggunakan stack. Stack yang digunakan adalah stack yang isi elemennya adalah simpul pohon / tree. Bagaimana cara kerjanya ? Berikut ini adalah urutan algoritmanya :
  1. Masukkan simpul root ke dalam tumpukan dengan push
  2. Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas
  3. Hapus isi stack teratas dengan prosedur pop
  4. Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul
  5. Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack
  6. Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah dua
Jadi, untuk gambar pohon biner di atas urutan langkah dan kondisi stack-nya setiap iterasi adalah :

Maka, urutan penelusurannya adalah : A – B – D – H – E – I – C – F – G – J – K – L
Contoh diatas menggunakan prioritas untuk memasukkan anak simpul dari sebelah kanan terlebih dahulu ke dalam stack. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak simpulnya yaitu C dulu, baru B ke dalam stack. Selain itu bisa dilihat stack teratas (yang diwarna biru) pada tiap iterasi memiliki urutan A – B – D – H – E – I – C – F – G – J – K – L. Oiya, pada iterasi ke 13 itu kondisi stack sudah kosong karena ketika simpul J dibangkitkan tidak ada anak simpul yang dimasukkan ke stack.

Sumber : 





Tuesday, September 27, 2016

Sistem Pakar - Tugas Softskill 1


Sistem Pakar

Pengertian sistem pakar (Expert System) menurut para ahli, Martin dan Oxman (1998) Sistem berbasis komputer yang menggunakan pengetahuan, fakta, dan teknik penalaran dalam memecahkan masalah yang biasanya hanya dapat dipecahkan oleh seorang pakar dalam bidang tersebut. menurut Durkin sistem pakar merupakan program komputer yang dirancang untuk memodelkan kemampuan penyelesaian masalah yang dilakukan oleh seorang pakar. Sedangkan menurut Giarratano dan Riley sistem pakar merupakan sistem komputer yang bisa menyamai atau meniru kemampuan seorang pakar.
Sistem pakar merupakan sistem yang menggunakan pengetahuan manusia yang terekam dalam komputer untuk memecahkan persoalan yang membutuhkan keahlian manusia, selain itu sistem pakar juga bisa berarti sistem informasi berbasis komputer yang menggunakan pengetahuan pakar untuk mencapai performa keputusan tingkat tinggi dalam domain persoalan yang sempit.

Sistem pakar sendiri pertama kali dikembangkan oleh komunitas AI pada pertengahan tahun 1960. ES yang muncul pertama kali adalah General-purpose Problem Solver (GPS) yang dikembangkan oleh Newel dan Simon. Dan sampai saat ini sudah banyak model sistem pakar yang sudah dibuat, misal :


Ciri-ciri sistem pakar, diantaranya :
  • Dapat digunakan dalam berbagai jenis komputer
  • Memiliki fasilitas informasi yang handal
  •  Terbatas pada bidang yang spesifik
  • Berdasarkan pada rule atau kaidah tertentu
  • Outputnya bersifat nasihat atau anjuran
  • Output tergantung dari dialog dengan user
  • Mudah dimodifikasi
Keuntungan menggunakan sistem pakar antara lain :
  • Memungkinkan orang awam bisa mengerjakan pekerjaan para ahli
  • Menyimpan pengetahuan dan keahlian para pakar
  • Meningkatkan output dan produktivitas
  • Menghemat waktu dalam pengambilan keputusan
  • Menigkatkan kualitas
Kelemahan dari sistem pakar, antara lain :
  • Biaya yang diperlukan untuk membuat dan memeliharanya sangat mahal
  • Sulit dikembangkan karena pakar (orang yang ahli) sesuai bidangnya terbatas
  • Tidak 100% bernilai benar


Konsep Dasar Sistem Pakar

Menurut Efraim Turban, konsep dasar sistem pakar mengandung beberapa hal yang di antaranya:
a)  Keahlian
Merupakan suatu kelebihan penguasaan pengetahuan di bidang tertentu yang diperoleh dari pelatihan, membaca atau pengalaman. Contoh bentuk pengetahuan ; Strategi-strategi global untuk menyelesaikan masalah
b)  Ahli (Pakar)
Merupakan seseorang yang memiliki pengetahuan, penilaian, pengalaman, metode tertentu, serta mampu menerapkan keahlian dalam memberikan advise untuk pemecahan persoalan, serta mampu menjelaskan suatu tanggapan, mempelajari hal-hal baru seputar topik permasalahan, mengenali & merumuskan permasalahan, menyusun kembali pengetahuan jika dipandang perlu, memecah aturan-aturan jika dibutuhkan, dan mampu menentukan relevan tidaknya keahlian mereka.
c)  Pengalihan Keahlian
Merupakan pengalihan keahlian dari para ahli ke komputer untuk kemudian dialihkan lagi ke orang lain yang bukan ahli, dimana pengetahuan yang disimpan di komputer ini disebut dengan nama basis pengetahuan. Ada 2 tipe pengetahuan, yaitu: fakta dan prosedur (biasanya berupa aturan).
d)     Inferensi
Kemampuan untuk melakukan penalaran dengan menggunakan pengetahuan yang ada untuk menghasilkan suatu kesimpulan atau hasil akhir. dengan menggunakan motor interafe yang merupakan permodelan proses berfikir dan bernalar layaknya manusia.
e)  Aturan
Sebagian besar sistem pakar dibuat dalam bentuk rule-based system, dimana pengetahuan disimpan dalam bentuk aturan-aturan yang biasanya berbentuk IF-THEN
f)  Kemampuan Menjelaskan
Kemampuan untuk menjelaskan dan merekomendasi, yang membedakan sistem pakar dengan sistem konvensional.

Diagram Struktur Sistem Pakar

Struktur Sistem Pakar

Sistem pakar disusun oleh dua bagian utama, yaitu lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation environment) (Turban, 1995). Lingkungan pengembangan system pakar digunakan untuk memasukkan pengetahuan pakar ke dalam lingkungan sistem pakar, sedangkan lingkungan konsultasi digunakan oleh pengguna yang bukan pakar guna memperoleh pengetahuan pakar.



—Basis pengetahuan : Berupa pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasi, dan memecahkan masalah. Diaman basis pengetahuan tersusun atas 2 elemen dasar:
  1. Fakta, misalnya: situasi, kondisi, dan kenyataan dari permasalahan yang ada, serta teori dalam bidang itu
  2. Aturan, yang mengarahkan penggunaan  pengetahuan untuk memecahkan masalah yang spesifik dalam bidang yang khusus
Ada 2 bentuk pendekatan basis pengetahuan yang sangat umum digunakan, yaitu:
  1. Penalaran berbasis aturan (Rule-Based Reasoning) : pengetahuan direpresentasikan dengan menggunakan aturan berbentuk: IF-THEN.
  2. Penalaran berbasis kasus (Case-Based Reasoning) dimana pada penalaran berbasis kasus, basis pengetahuan akan berisi solusi-solusi yang telah dicapai sebelumnya, kemudian akan diturunkan suatu solusi untuk keadaan yang terjadi sekarang (fakta yang ada). Bentuk ini digunakan apabila user menginginkan untuk tahu lebih banyak lagi pada kasus-kasus yang hampir sama (mirip). Selain itu, bentuk ini juga digunakan apabila kita telah memiliki sejumlah situasi atau kasus tertentu dalam basis pengetahuan
—  Mesin inferensi: Merupakan otak dari Sistem Pakar yang juga dikenal sebagai penerjemah aturan (rule interpreter). Komponen ini berupa program komputer yang menyediakan suatu metodologi untuk memikirkan (reasoning) dan memformulasi kesimpulan.
Kerja mesin inferensi meliputi: Menentukan aturan mana akan dipakai, Menyajikan pertanyaan kepada pemakai, ketika diperlukan. Menambahkan jawaban ke dalam memori Sistem Pakar. Menyimpulkan fakta baru dari sebuah aturan dan Menambahkan fakta tadi ke dalam memori.
—  Blackboard : Merupakan area dalam memori yang digunakan untuk merekam kejadian yang sedang berlangsung termasuk keputusan sementara
—  Antarmuka pengguna : Media komunikasi antara user dan program, Pertanyaan – jawaban, Menu, formulir, grafik.
—  Subsistem penjelasan : Digunakan untuk melacak respon dan memberikan penjelasan tentang kelakuan sistem pakar secara interaktif melalui pertanyaan
Mengapa suatu pertanyaan ditanyakan oleh sistem pakar?
Bagaimana konklusi dicapai?
Rencana apa yang digunakan untuk mendapatkan solusi?
—  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.

Inferensi Sistem Pakar

Forward Chaining : Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kiri (IF dulu). Dengan kata lain, penalaran dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesis.
Backward Chaining : Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kanan (THEN dulu). Dengan kata lain penalaran dimulai dari hipotesis terlebih dahulu, dan untuk menguji kebenaran hipotesis tersebut harus dicari fakta-fakta yang ada dalam basis pengetahuan.
Contoh :
R1 : IF suku bunga turun THEN harga obligasi naik
R2 : IF suku bunga naik THEN harga obligasi turun
R3 : IF suku bunga tidak berubah THEN harga obligasi tidak berubah
R4 : IF dolar naik THEN suku bunga turun
R5 : IF dolar turun THEN suku bunga naik
R6 : IF harga obligasi turun THEN beli obligasi
Apabila diketahui bahwa dolar turun, maka apakah akan membeli obligasi atau tidak?
Forward Chaining
  • Dari fakta dolar turun, berdasarkan Rule 5, diperoleh konklusi suku bunga naik.
  • Dari Rule 2 suku bunga naik menyebabkan harga obligasi turun.
  • Dengan Rule 6, jika harga obligasi turun, maka kesimpulan yang diambil adalah membeli obligasi.
Backward Chaining
  • Dari solusi yaitu membeli obligasi, dengan menggunakan Rule 6 diperoleh anteseden harga obligasi turun.
  • Dari Rule 2 dibuktikan harga obligasi turun bernilai benar jika suku bunga naik bernilai benar .
  • Dari Rule 5 suku bunga naik bernilai memang bernilai benar karena diketahui fakta dolar turun.


Perbandingan Kemampuan Seorang pakar dengan Sistem Pakar

Factor
Human expert
Expert system
Time Availbility
Hari kerja
Setiap saat
Geografis
Lokal/tertentu
Di mana saja
Keamanan
Tidak tergantikan
Dapat diganti
Perishable/dapat habis
Ya
Tidak
Performansi
Variable
Konsisten
Kecepatan
Variable
Konsisten
Biaya
Tinggi
Terjangkau

Ada beberapa alasan mendasar mengapa sistem pakar dikembangkan untuk menggantikan seseorang pakar, di antaranya:
1.      Dapat menyediakan kepakaran setiap waktu dan di berbagai lokasi.
2.      Secara otomatis mengerjakan tugas-tugas rutin yang membutuhkan seorang pakar.
3.      Seorang pakar akan pensiun atau pergi.
4.      Seorang pakar adalah mahal.
5.      Kepakaran dibutuhkan juga pada lingkungan yang tidak bersahabat.

Perbandingan antara sistem konvensional dan sistem pakar



Tujuan dari sebuah sistem pakar adalah untuk mentransfer kepakaran yang dimiliki seorang pakar ke dalam komputer, dan kemudian kepada orang lain (nonexpert). Aktivitas yang dilakukan untuk memindahkan kepakaran adalah:
1.      Knowledge Acquisition (dari pakar atau sumber lainnya)
2.      Knowledge Representation (ke dalam computer)
3.      Knowledge Inferencing
4.      Knowledge Transfering   
Ada beberapa keunggulan sistem pakar, di antaranya:
1.      Menghimpun data dalam jumlah yang snagat besar.
2.      Menyimpan data tersebut untuk jangka waktu yang panjang dalam suatu bentuk tertentu.
3.      Mengerjakan perhitungan secara cepat dan tepat dan tanpa jemu mencari kembali data yang tersimpan dengan kecepatan tinggi.
Sementara kemampuan sistem pakar, di antaranya:
1.      Menjawab berbagai pertanyaan yang menyangkut bidang keahliannya.
2.      Bila diperlukan dapat menyajikan asumsi dan alur penalaran yang digunakan untuk sampai ke jawaban yang dikehendaki.
3.      Menambah fakta kaidah dan alur penalaran sahih yang baru ke dalam otaknya.
Menurut Turban (1995), terdapat tiga orang yang terlibat dalam lingkungan sistem pakar, yaitu:
1.      Pakar, adalah orang yang memiliki pengetahuan khusus, pendapat, pengalaman dan metode, serta kemampuan untuk mengaplikasikan keahliannya tersebut guna menyelesaikan masalah.
2.      Knowledge engineer (Perekayasa Sistem), adalah orang yang membantu pakar dalam menyusun area permasalahan dengan menginterplementasikan dan mengintegrasikan jawaban-jawaban pakar atas pertanyaan yang diajukan, menggambarkan analogi, mengajukan counter example dan menerangkan kesulitan-kesulitan konseptual.
3.      Pemakai, sistem pakar memiliki beberapa pemakai, yaitu: pemakai bukan pakar, pelajar, pembangun system pakar yang ingin meningkatkan dan menambah basis pengetahuan, dan pakar.

Tipe Pengetahuan dalam Penjelasan Sistem Pakar

1.      Reasoning Domain Knowledge (RDK), merupakan domain pengetahuan yang dikodekan oleh domain pakar dalam system pakar yang sesuai.
2.      Communication Domain Knowledge (CDK), merupakan pengetahuan tentang domain yang diperlukan untuk komunikasi tentang domain itu.
3.      Domain Communication Knowledge (DCK), merupakan pengetahuan tentang bagaimana cara mengkomunikasikan domain itu.  

Ciri-ciri dan Kategori Masalah Sistem Pakar

            Sistem pakar merupakan program-program praktis yang menggunakan strategi heuristik yang dikembangkan oleh manusia untuk menyelesaikan permasalahan-permasalahan yang spesifik. Disebabkan oleh keheuristikannya dan sifatnya yang berdasarkan pada pengetahuan, maka umumnya sistem pakar bersifat:
1.      Memiliki informasi yang handal, baik dalam menampilkan langkah-langkah antara maupun dalam menjawab pertanyaan-pertanyaan tentang proses penyelesaian.
2.      Mudah dimodifikasi, yaitu dengan menambah atau menghapus suatu kemampuan dari basis pengetahuannya.
3.      Heuristic dalam menggunakan pengetahuan untuk mendapatkan penyelesaiannya.
4.      Dapat digunakan dalam berbagai jenis komputer.
5.      Memiliki kemampuan untuk beradaptasi, 
Secara umum ada beberapa kategori dan area permasalahan sistem pakar, yaitu:
1.      Interpretasi, yaitu pengambilan keputusan tingkat tinggi dari sekumpulan data mentah (pengawasan, pengenalan ucapan, analisis citra, analisis kecerdasan).
2.      Proyeksi, yaitu memprediksi akibat-akibat yang dimungkinkan dari situasi-situasi tertentu (peramalan, prediksi demografis, peramalan ekonomi, prediksi lalulintas, estimasi hasil, militer, pemasaran, peramalan keuangan).
3.      Diagnosis, yaitu menentukan sebab malfungsi dalam situasi kompleks yang didasarkan pada gejala-gejala yang teramati (medis, elektronis, mekanis dan diagnosis perangkat lunak).  
4.      Perencanaan, yaitu merencanakan serangkaian tindakan yang akan dapat mencapai sejumlah tujuan dengan kondisi awal tertentu (perencanaan keuangan, komunikasi, militer, pengembangan produk, routing, manajemen proyek).
5.      Desain, yaitu menentukan konfigurasi komponen-komponen sistem yang cocok dengan tujuan-tujuan kinerja tertentu yang memenuhi kendala-kendala tertentu (layout sirkuit dan perancangan pembangunan).
6.       Monitoring, yaitu membandingkan tingkah laku suatu sistem yang teramati dengan tingkah laku yang diharapkan darinya (Computer Aided Monitoring System).
7.       Debugging dan Repair, yaitu menentukan dan mengimplementasikan cara-cara untuk mengatasi malfungsi (memberikan resep obat terhadap suatu kegagalan).
8.       Instruksi, yaitu mendeteksi dan mengoreksi defisiensi dalam pemahaman domain subjek (melakukan instruksi untuk diagnosis, debugging dan perbaikan kinerja).
9.       Pengedalian, yaitu mengatur tingkah laku suatu environment yang kompleks (prediksi, perbaikan dan monitoring kelakuan sistem).
10.    Seleksi, mengidentifikasikan pilihan terbaik dari sekumpulan (list) kemungkinan.
11.    Simulasi, pemodelan interaksi antara komponen-komponen sistem.  
Penerapan Sistem pakar dalam Industri / Manufaktur

Manufaktur di definisikan sebagai urutan-urutan kegiatan yang saling berhubungan meliputi perancangan, perencanaan, pemilihan material, produksi, pengontrolan kualitas, menajemen serta pemasaran produk. Proses manufaktur yang penyelesaiannya dapat dibantu oleh system pakar antara lain :
– Sistem Pakar Dalam Perancangan PRIDE(Pinch Roll Interactive Design Expert / Environment). Sistem pakar ini digunakan untuk merancang system pengaturan kertas untuk mesin fotocopy. Sistem ini membuat rancangan dengan representasi pengetahuan tentang rancangan berdasarkan kumpulan goal, metoda perancangan, generator dan aturan-aturan yang terstruktur.
– System Pakar Dalam Perencanaan Wood Trus fabrication Application merupakan contoh system pakar dalam proses perencanaan. System ini dibuat dengan menggunakan shell sitem pakar SPS (Semi Intelligent Process Selector).
– Sistem Pakar Dalam Penjadwalan Sistem pakar juga digunakan dalam penjadwalan, dibawah ini adalah beberapan contoh kegunaan system pakar dalam penjadwalan :
– Contionuous Caster Steel Mill Scheduling Application
System pakar ini berbasis fuzzy logic yang dibuat untuk monitoring on line dan penjadwalan continuous caster steel mill.
Continuous caster stell mill mengolah material seperti scrap, pig iron dan refined ore melalui proses tertentu untuk menghasilkan lempeng baja yang memiliki kulitas dan komposisi sesuai kebutuhan.
-Master Production Scheduling Aplication (MPS)
Sistem pakar ini dikembangkan untuk melakukan penjadwalan produksi master untuk manufaktur Integrated Circuit (IC). Master Production Scheduling (MPS) merupakan aktivitas perencanaan yang sangat luas, yang mengatur dan mengkoordinasi fase-fase berurutan proses penjadwalan manufaktur tertentu.
– Sistem Pakar Dalam Proses Kontrol Beberapa contoh penggunaan system pakar dalam proses control adalah sebagai berikut :
–  Aluminium Foil Rolling Flatness control Appilcation
System pakar ini merupakan system pakar yang dibuat mengontrol kekaratan aluminium foil secara otomatis. System ini menyesuaikan bentuk pola target menurut karakteristik material dan kondisi pengoperasiannya.
– Blast Furnace Heat Control Application
System pakar ini dibuat untuk mengontrol tingkat panas blast furnace (tanur).
– Sistem Pakar Dalam Production Planning Dan Production Control Perencanaan produksi dilakukan dalam hal kuantitas, waktu, kapasitas dan biaya pengendalian produksi meliputi penyelesaian pesanan, pengawasan pesanan dan pengamanan kualitas.
Manfaat system pakar dalam proses manufaktur / industry adalaah sebagai berikut :
1)      Meningkatkan produktivitas
2)      Mengambil alih keahlian yang langka
3)      Memudahkan pengoperasian peralatan

4)     Kemampuan bekerja dengan informasi yang tidak pasti dan tidak lengkap

Sumber :
Muhammad Arhami, S.Si., M.Kom. (2006). Konsep Dasar Sistem Pakar. Andi.
http://ira.lecturer.pens.ac.id/SPK/sistem%20pakar.pdf
http://universitaspendidikan.com/wp-content/uploads/2013/11/model-sistem-pakar.png
Yani, Eli. (2005). Pengantar Jaringan Saraf Tiruan. Artikel kuliah.
Puspitaningrum, Diyah. (2006). Pengantar Jaringan Saraf Tiruan. Penerbit Andi. Jogjakarta