• Tidak ada hasil yang ditemukan

Pengertian Sistem Pakar

Dalam dokumen KECERDASAN BUATAN DIKTAT (Halaman 5-33)

BAB 4. SISTEM PAKAR

1.1 Pengertian Sistem Pakar

Kecerdasan Buatan adalah salah satu cabang Ilmu pengetahuan berhubungan dengan pemanfaatan mesin untuk memecahkan persoalan yang rumit dengan cara yang lebih manusiawi. Hal Ini biasanya dilakukan dengan mengikuti/mencontoh karakteristik dan analogi berpikir dari kecerdasan/Inteligensia manusia, dan menerapkannya sebagai algoritma yang dikenal oleh komputer. Dengan suatu pendekatan yang kurang lebih fleksibel dan efisien dapat diambil tergantung dari keperluan, yang mempengaruhi bagaimana wujud dari perilaku kecerdasan buatan.

1.2 Konsep

Kerja

Kecerdasan Buatan (Artificial Intelegence atau AI), biasanya dihubungkan dengan Ilmu Komputer, akan tetapi juga terkait erat dengan bidang lain seperti Matematika, Psikologi, Pengamatan, Biologi, Filosofi, dan yang lainnya. Kemampuan untuk mengkombinasikan pengetahuan dari semua bidang ini pada akhirnya akan bermanfaat bagi kemajuan dalam upaya menciptakan suatu kecerdasan buatan.

Pengertian lain dari kecerdasan buatan adalah bagian ilmu komputer yang membuat agar mesin komputer dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia.

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan di dunia ini karena manusia mempunyai pengetahuan dan pengalaman Pengetahuan diperoleh dari belajar. Semakin banyak bekal pengetahuan yang dimiliki oleh seseorang tentu saja diharapkan akan lebih mampu dalam menyelesaikan permasalahan. Namu bekal pengetahuan saja tidak cukup, manusia juga diberi akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan untuk menalar dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik. Demikian pula dengan kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik.

Agar komputer bisa bertindak seperti dan sebaik manusia, maka komputer juga harus diberi bekal pengetahuan dan mempunyai kemampuan untuk menalar. Untuk itu AI akan mencoba untuk memberikan beberapa metoda untuk membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin pintar.

Lingkup utama kecerdasan buatan:

1. Sistem pakar. Komputer digunakan sebagai saran untuk menyimpan pengetahuan para pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan masalah dengan meniru keahlian yang dimiliki para pakar

2. Pengolahan bahasa alami. Dengan pengolahan bahasa alami ini diharapkan user mampu berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari.

3. Pengenalan ucapan. Melalui pengenalan ucapan diharapkan manusia mampu berkomunikasi dengan komputer dengan menggunakan suara.

4. Robotika dan Sistem sensor

5. Computer vision, mencoba untuk dapat mengintrepetasikan gambar atau objek-objek tampak melalui komputer

6. Intelligent Computer aid Instruction. Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Keuntungan Kecerdasan Buatan :

1. Kecerdasan buatan lebih bersifat permanen. Kecerdasan alami akan cepat mengalami perubahan. Hal ini dimungkinkan karena sifat manusia yang pelupa. Kecerdasan buatan tidak akan berubah sepanjang sistem komputer dan program tidak mengubahnya.

2. Kecerdasan buatan lebih mudah diduplikasi dan disebarkan. Mentransfer pengetahuan manusia dari satu orang ke orang lain butuh proses dan waktu lama. Disamping itu suatu keahlian tidak akan pernah bisa diduplikasi secara lengkap. Sedangkan jika pengetahuan terletak pada suatu sistem komputer, pengetahuan tersebuat dapat ditransfer atau disalin dengan mudah dan cepat dari satu komputer ke komputer lain

3. Kecerdasan buatan lebih murah dibanding dengan kecerdasan alami. Menyediakan layanan komputer akan lebih mudah dan lebih murah dibanding dengan harus mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang sangat lama. 4. Kecerdasan buatan bersifat konsisten. Hal ini disebabkan karena kecerdasan busatan adalah

bagian dari teknologi komputer. Sedangkan kecerdasan alami senantiasa berubah-ubah. 5. Kecerdasan buatan dapat didokumentasikan. Keputusan yang dibuat komputer dapat

didokumentasikan dengan mudah dengan melacak setiap aktivitas dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi.

6. Kecerdasan buatan dapat mengerjakan pekerjaan lebih cepat dibanding dengan kecerdasan alami

7. Kecerdasan buatan dapat mengerjakan pekerjaan lebih baik dibanding dengan kecerdasan alami.

Keuntungan kecerdasan alami:

1. Kreatif. Kemampuan untuk menambah ataupun memenuhi pengetahuan itu sangat melekat pada jiwa manusia. Pada kecerdasan buatan, untuk menambah pengetahuan harus dilakukan melalui sistem yang dibangun

2. Kecerdasan alami memungkinkan orang untuk menggunakan pengalaman secara langsung. Sedangkan pada kecerdasan buatan harus bekerja dengan input-input simbolik

3. Pemikiran manusia dapat digunakan secara luas, sedangkan kecerdasan buatan sangat terbatas.

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Beberapa program AI (1956 – 1966)

- Logic Theorist, diperkenalkan pada Dartmouth Conference, dapat membuktikan teorema-teorema matematika •Sad Sam (Robert K Lindsay – 1960), dapat mengetahui kalimat sederhana yang ditulis dalam bahasa Inggris dan mampu memberikan jawaban berdasarkan fakta yang didengar dalam sebuah percakapan.

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

1.1 Definisi

Masalah dalam kecerdasan buatan adalah masalah yang dapat dikonversi ke dalam

ruang keadaan (mempunyai keadaan awal dan keadaan tujuan) menggunakan

sekumpulan aturan tertentu.

Sedangkan ruang keadaan adalah suatu ruang yang berisi semua keadaan yang mungkin.

Untuk membangun system yang mampu menyelesaikan masalah, perlu dipertimbangkan 4 hal : 1. Mendefinisikan masalah dengan tepat

Spesifikasi yang tepat mengenai keadaan awal Solusi yang diharapkan

2. Menganalisis masalah serta mencari beberapa teknik penyelesaian masalah yang sesuai 3. Merepresentasikan pengetahuan yang perlu untuk menyelesaikan masalah

4. Memilih teknik penyelesaian masalah yang terbaik

Posisi Awal : Selalu sama

Aturan Legal : Aturan – aturan sangat berguna untuk menentukan gerak suatu bidak

Untuk mempermudah,

Horisontal = Huruf (a,b,c,d,e,f,g,h) Vertical = Angka (1,2,3,4,5,6,7,8)

Sebagai contoh : bidak (e,2) ke (e,4)

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

–IF Bidak putih pada Kotak(e,2), •AND Kotak(e,3) Kosong, •AND Kotak(e,4) Kosong

–Then Gerakkan bidak dari (e,2) ke (e,4)

Tujuan/Goal :

Posisi pada papan catur yang menunjukkan kemenangan seseorang terhadap lawannya. Ditandai posisi Raja yang sudah tidak bisa bergerak lagi.

Untuk mendeskripsikan masalah dengan baik, kita harus :

Mendefinisikan suatu ruang keadaan

Menetapkan satu atau lebih keadaan awal

Menetapkan satu atau lebih tujuan

Menetapkan kumpulan aturan

2.2 Refresentasi Ruang Keadaan

Graph Keadaan

Terdiri dari node – node yang menunjukkan keadaan yaitu keadaan awal dan keadaan baru yang akan dicapai dengan menggunakan operator . Node – node saling dihubungankan dengan

menggunakan arc (busur) yang diberi anak panah untuk menunjukkan arah.

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

M-A-B-C-E-T, M-A-B-C-E-H-T, M-D-C-E-T, M-D-C-E-H-T Yang tidak sampai

M-A-B-C-E-F-G, M-A-B-C-E-I-J, M-D-C-E-F-G, M-D-C-E-I-J, M-D-I-J

Pohon Pelacakan

Struktur pohon digunakan untuk menggambarkan keadaan secara hirarkis Terdiri dari beberapa node, level 0 disebut akar atau keadaan awal

Node akar : menunjukkan keadaan awal & memiliki beberapa percabangan yang terdiri atas beberapa node yg disebut ‘anak‘.

Node-node yg tidak memiliki anak disebut ‘daun‘menunjukkan akhir dari suatu pencarian, dapat berupa tujuan yang diharapkan (goal) atau jalan buntu (dead end).

Contoh :

Petani, Sayur, Kambing dan Serigala

Seorang petani akan menyeberangkan seekor kambing, seekor serigala, dan sayur-sayuran dengan sebuah boat yang melalui sungai.

Boat hanya bisa memuat petani dan satu penumpang yang lain (kambing, serigala atau sayur-sayuran).

Jika ditinggalkan oleh petani tersebut, maka sayur-sayuran akan dimakan oleh kambing, dan kambing akan dimakan oleh serigala.

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Penyelesaian masalah secara umum Mendefinisikan suatu ruang keadaan; Menetapkan satu atau lebih keadaan awal; Menetapkan satu atau lebih tujuan;

Menetapkan kumpulan aturan.

Penyelesaian

Identifikasi ruang keadaan

Permasalahan ini dapat dilambangkan dengan (JumlahKambing, JumlahSerigala, JumlahSayuran, JumlahBoat).

Sebagai contoh: Daerah asal (0,1,1,1) berarti pada daerah asal tidak ada kambing, ada serigala, ada sayuran, dan ada boat.

Keadaan Awal Daerah asal: (1,1,1,1) Daerah seberang: (0,0,0,0) Tujuan Daerah asal: (0,0,0,0) Daerah seberang: (1,1,1,1)

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Aturan-aturan :

Penyelesaian :

2.3 Metode Pencarian dan Pelacakan

Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.

Pencarian = suatu proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space).

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Untuk mengukur perfomansi metode pencarian, terdapat empat kriteria yang dapat digunakan :

Completeness : apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada?

Time complexity : berapa lama waktu yang diperlukan? Space complexity : berapa banyak memori yang diperlukan

Optimality : apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda?

2.4 Jenis Metode Pencarian dan Pelacakan Dua teknik pencarian dan pelacakan Pencarian buta (blind search)

Pencarian melebar pertama (Breadth –First Search) Pencarian mendalam pertama (Depth –First Search) Pencarian terbimbing (heuristic search)

Pendakian Bukit (Hill Climbing)

Pencarian Terbaik Pertama (Best First Search)

Pencarian Melebar Pertama (Breadth-First Search)

Semua node pada level n akan dikunjungi terlebih dahulu sebelum level n+1 Mulai dari akar terus ke level 1 dari kiri ke kanan

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Keuntungan

Tidak akan menemui jalan buntu

Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik

Jika ada satu solusi maka bread-first search akan menemukannya Kelemahannya

Membutuhkan memori yang cukup banyak Membutuhkan waktu yang cukup lama

Pencarian mendalam pertama (Depth-First Search)

Proses pencarian dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel

Keuntungan

Memori yang relatif kecil

Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi

Pencarian buta (Blind search) Kekurangan

Memungkinkan tidak ditemukannya tujuan yang diharapkan Hanya akan mendapatkan 1 solusi pada setiap pencarian

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Solusi Tugas

3 Kanibal & 3 Misionaris

Meyebrangkan semuanya ke sebrang

Jika terdapat lebih banyak kanibal pada satu sisi, maka misionaris akan dimakan oleh kanibal

Jika

M = Misionaris K = Kanibal

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

1.1 Definisi

Searching di dalam AI (Artificial Intelligence) adalah salah satu motode penyelesaian masalah dengan pencarian solusi pada suatu permasalahan yang dihadapi. Pelacakan adalah teknik untuk pencarian. Didalam pencarian ada dua kemungkinan hasil yang didapat yaitu menemukan dan tidak menemukan. Sehingga pencarian merupakan teknik yang penting dalam AI. Hal penting dalam menentukan keberhasilan sistem berdasarkan kecerdasan adalah kesuksesan dalam pencarian dan pencocokan. Pencarian adalah suatu proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state place). Ruang keadaan merupakan suatu ruang yang berisi semua keadaan yang mungkin.

Untuk mengukur performansi metode pencarian, terdapat empat kriteria yang dapat digunakan :

Completeness (Kelengkapan) : apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada ?

Time compexity (Kekompleksan waktu) : berapa lama waktu yang diperlukan ?

Space complexity (Kekompleksan ruang) : berapa banyak memori yang di perlukan ?

Optimality (Optimal) : apakah metode tersebut menjamin menemukan solusi yang terbaik jika beberapa solusi berbeda ?

Ada beberapa teknik pelacakan :

Pencarian Buta (Blind Search)

1. Pencarian Melebar Pertama (Breadth-First Search) 2. Pencarian Mendalam Pertama (Depth-First Search)

Pencarian Terbimbing/Heuristik (Heuristic Search)

1. Pembangkitan dan Pengujian (Generate And Test) 2. Pendakian Bukit (Hill Climbing)

3. Pencarian Terbaik Pertama (Best-First Search) 4. Simulated Annealing

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

1.2 Pencarian Buta (Blind Search)

Blind Searching adalah model pencarian buta atau pencarian yang tidak memiliki inforamasi 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).

Blind Search dan Heuristic Search merupakan sub bahasan yang sifatnya fundamental dalam mata kuliah Kecerdasan Buatan (Artificial Intelligence). Bahkan dalam dunia nyata, kita sering dituntut untuk berpikir dengan cara-cara tersebut. Seperti ketika bermain puzzle, catur, kubus cerdas, atau mengira-ngira rute perjalanan mana yang akan kita tempuh. Semua itu terkait dengan otak kita yang sudah otomatis berpikir dengan algoritma blind search atau heuristic search, atau bahkan lebih kompleks lagi.

Lalu apa yang membedakan Blind Search dan Heuristic Search?

Blind Search merupakan pencarian asal ketemu. Jika solusi sudah ketemu, maka pencarian akan dihentikan. Jika dibuat skemanya, pencarian buta hanya mengenal tiga bagian, [masalah]-[pencarian]-[solusi]. Misalkan dalam kotak ada 3 kelereng warna merah, 3 biru, dan 3 kuning. Masalahnya adalah, ambillah satu kelereng yang berwarna merah. Solusi, setelah melakukan pencarian, kemudian didapat satu kelereng warna merah, nah, itulah solusinya.

Berbeda dengan Heuristic Search, Heuristic Search adalah pencarian bersyarat (terbimbing). Artinya, solusi yang diperoleh adalah solusi yang terbaik, bukan solusi sekali ketemu. Bagian-bagiannya adalah [masalah]-[pencarian]-[syarat]-[solusi]. Misal contoh masalah pada kasus di atas, Ambillah kelereng merah yang tidak pecah dan tidak lonjong. Sehingga ketika ketemu kelereng merah dan ada pecahnya, itu masih bukan solusi karena tidak sesuai dengan syarat (tidak pecah dan tidak lonjong).

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Sehingga perbedaan mendasar dari Blind Search dan Heuristic Search adalah :

Blind Search merupakan pencarian biasa, sedangkan Heuristic Search adalah pencarian bersyarat

Variabel data pada Blind Search tidak mempunyai atribut / informasi tambahan, sedangkan pada Heuristic Search memiliki. Contoh pada kasus di atas, "pecah" dan "lonjong" merupakan atribut dari "kelereng".

Konsep Blind Search dan Heuristic Search memiliki beberapa penerapan algoritma. Algoritma yang termasuk Blind Search yaitu Breadth First Search (BFS), Depth First Search (DFS), Uniform Cost Search (UCS), Depth-Limited Search (DLS), Iterative-Deeping Search (IDS), dan Bi-directional search (BDS). Hanya saja yang paling banyak dibahas adalah Breadth First Search (BFS) dan Depth First Search (DFS). Sedangkan untuk contoh algoritma Heuristic Search yaitu Generate and Test, Simple Hill Climbing, Steepest-Ascent Hill Climbing, Simulated Annealing, Greedy, Best-First Search, dan A* (A Star).

1.3 Algoritma Pencarian Buta

Pencarian buta merupakan sekumpulan prosedur yang digunakan dalam melacak ruang keadaan. Pencarian berlangsung sampai solusi terakhir ditemukan. Idenya adalah menguji seluruh kemungkinan yang ada untuk menemukan solusi. Adapun algoritma untuk masing-masing pencarian buta adalah :

1). Pencarian Melebar Pertama (Breadth-First Search)

Pada metode Breadth-First Search, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan sampai ditemukannya solusi.

Algoritma :

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

– Bila node pertama, jika ≠ GOAL, diganti dengan anak-anaknya dan diletakkan di belakang per level

– Bila node pertama = GOAL, selesai

Keuntungan :

– Tidak akan menemui jalan buntu

– Jika ada satu solusi, maka breadth first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.

Kelemahan :

– Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon

– Kemungkinan ditemukan optimal local

2). Pencarian Mendalam Pertama (Depth-First Search)

Pada Depth First Search, proses pencarian akan dilaksanakan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi.

Algoritma :

– Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree

– Bila node pertama, jika ≠ GOAL, node dihapus diganti dengan anak-anaknya dengan urutan L Child

– Bila node pertama = GOAL, selesai

Keuntungan :

– Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

Kelemahan :

– Kemungkinan terjebak pada optimal lokal

– Hanya akan mendapatkan 1 solusi pada setiap pencarian

3). Pencarian dengan Mendaki Bukit (Hill Climbing Search) Algoritma :

– Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree

– Bila node pertama, jika ≠ GOAL, node dihapus diganti dengan anak-anaknya dengan urutan yang paling kecil jaraknya

– Bila node pertama = GOAL, selesai

Keuntungan :

– Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan

– Metode hill climbing search akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan

Kerugian :

– Algoritma akan berhenti kalau mencapai nilai optimum lokal – Perlu menentukan aturan yang tepat

4). Pencarian dengan Best-First Search Algoritma :

– Bila sebuah antrian, inisialisasi node pertama dengan Root dari tree

– Bila node pertama, jika ≠ GOAL, node dhapus dan diganti dengan anak-anaknya. Selanjutnya keseluruhan node yang ada di Queu di-sort Ascending

– Bila node pertama = GOAL, selesai

Keuntungan :

– Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan aktif saja yang dismpan

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya

– Secara kebetulan, metode best first search akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan

Kerugian :

– Algoritma akan berhenti kalau mencapai nilai optimum lokal – Tidak diijinkan untuk melihat satupun langkah sebelumnya

1.4 Implementasi Depth First Search

Depth First Search (DFS) merupakan algoritma dasar pada model pencarian Blind Search. DFS termasuk ke dalam model pencarian apa adanya dan asal ketemu. Pada DFS, semua kemungkinan akan dipetakan atau digenerate. Karena solusi yang akan dicapai berbentuk pohon solusi, maka alur pemetaannya adalah diambil dari yang terdalam. Proses pencariannya adalah kebawah dahulu, baru ke samping. Konsep ini kebalikan dari BFS (Breath First Search) yang proses pencariannya kesamping dulu, balu ke bawah (dalam).

Oke kita langsung implementasi dan analisa untuk membuktikan alurnya. Harapannya semoga kita semua lebih memahami bagaimana alur DFS dan menyelaraskan antara teori dan implementasinya. Untuk contohnya sederhana sih, kita membuat struktur organisasi, kemudian kita urutkan data pejabat dalam struktur tersebut menggunakan algoritnya DFS, kita urutkan posisinya sesuai dengan algortma DFS. Perhatikan gambar berikut:

Berdasarkan teori DFS, yang dicari berawal simpul terdalam / paling awal terlebih dahulu. Setelah itu merambat satu-persatu ke simpul paling ujung. Jadi model pnecariannya adalah menurun. Berbeda dengan BFS yang alur pencariannya menyamping. Alur pencarian pada struktur diatas adalah sebagai berikut:

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya Dari Agus, setelah dicek Agus ternyata mempunyai dua bawahan.

Periksa bawahan Agus yang pertama, namanya Novan, setelah dicek, Novan punya dua bawahan juga.

Periksa bawahan Novan yang pertama, namanya Syauqil, setelah dicek, Syauqil adalah posisi paling bawah / ujung.

Periksa bawahan Novan yang kedua, namanya Aji, setelah dicek, dia juga ada di posisi paling bawah sekaligus yang terakhir.

Berikutnya periksa bawahan Agus yang kedua, namanya Budi, setelah dicek, ternyata dia punya tiga bawahan.

Bawahan Budi yang pertama adalah Wildan dan dia tidak punya bawahan lagi (posisi paling bawah).

Bawahan Budi yang kedua adalah Ni'am dan dia juga ada di posisi paling bawah.

Bawahan Budi yang ketiga adalah Bayu dan dia juga di posisi paling bawah sekaligus akhir dari pencarian.

Script di bawah ini adalah contoh dari DFS yang dibuat dengan PHP. Data yang dipakai adalah data array yang sudah diatur seperti struktur jabatan. Data array ini juga bisa digantikan dengan database. Berikut hasil dari script di bawah ini:

1. <?php 2. /* 1 3. * / \ 4. * 2 3___ 5. * / \ | \ \ 6. * 4 5 6 7 8 7. * 8. */ 9. 10. $ar[1]['parent']=0; 11. $ar[1]['value']=1; 12. $ar[1]['nama']='Agus'; 13. $ar[1]['posisi']='Ketua'; 14. 15. $ar[2]['parent']=1; 16. $ar[2]['value']=2; 17. $ar[2]['nama']='Novan'; 18. $ar[2]['posisi']='Wakil 1'; 19. 20. $ar[3]['parent']=1; 21. $ar[3]['value']=3;

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya 22. $ar[3]['nama']='Budi'; 23. $ar[3]['posisi']='Wakil 2'; 24. 25. $ar[4]['parent']=2; 26. $ar[4]['value']=4; 27. $ar[4]['nama']='Syauqil'; 28. $ar[4]['posisi']='Anggota'; 29. 30. $ar[5]['parent']=2; 31. $ar[5]['value']=5; 32. $ar[5]['nama']='Aji'; 33. $ar[5]['posisi']='Anggota'; 34. 35. $ar[6]['parent']=3; 36. $ar[6]['value']=6; 37. $ar[6]['nama']='Wildan'; 38. $ar[6]['posisi']='Anggota'; 39. 40. $ar[7]['parent']=3; 41. $ar[7]['value']=7; 42. $ar[7]['nama']='Ni\'am'; 43. $ar[7]['posisi']='Anggota'; 44. 45. $ar[8]['parent']=3; 46. $ar[8]['value']=8; 47. $ar[8]['nama']='Bayu'; 48. $ar[8]['posisi']='Anggota'; 49. 50. function dfs($arr,$parent,$base){ 51. global $explc; 52. global $explv; 53. $explc++; 54.

55. for($a=1; $a<=count($arr); $a++){ 56. if($parent==0){ 57. $explv[$explc]['parent'] = $arr[$a-1]['parent']; 58. $explv[$explc]['value'] = $arr[$a-1]['value']; 59. $explv[$explc]['nama'] = $arr[$a-1]['nama']; 60. $explv[$explc]['posisi'] = $arr[$a-1]['posisi']; 61. 62. $explv[$explc]['base'] = $base; 63. } 64. if($arr[$a]['parent']==$parent){ 65. $explv[$explc]['parent'] = $arr[$a]['parent']; 66. $explv[$explc]['value'] = $arr[$a]['value']; 67. $explv[$explc]['nama'] = $arr[$a]['nama']; 68. $explv[$explc]['posisi'] = $arr[$a]['posisi']; 69. 70. $explv[$explc]['base'] = $base; 71. $base++; 72. dfs($arr,$arr[$a]['value'],$base); 73. $base--; 74. } 75. }

Diktat Kuliah

Mukmin yang paling sempurna imannya adalah yang paling baik akhlaknya 76. }

77.

78. function menjorok($jumlah,$tanda){ 79. for($a=0;$a<$jumlah;$a++) echo $tanda; 80. } 81. 82. echo "\n"; 83. global $explv,$explc; 84. $explc = -1; 85. dfs($ar,0,0);

86. for($a=0; $a<$explc; $a++){

87. echo menjorok($explv[$a]['base'],' ').$explv[$a]['nama']." (".$explv[$a]['posisi'].")\n"; 88. } 89. unset($explc); 90. unset($explv); 91. ?> 1.5 Pencarian Heuristik

Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinn dan mengorbankan kelengkapan (completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaankeadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan. Jenis-jenis Heuristic

Dalam dokumen KECERDASAN BUATAN DIKTAT (Halaman 5-33)

Dokumen terkait