Rabu, 25 November 2020

SEARCHING, REASONING, PLANNING DAN LEARNING PADA AI (ARTIFICIAL INTELLIGENCE)

1. Searching bisa dimaknai sebagai proses pencarian data dari sekian banyaknya data yang tersedia di suatu mesin pencari. Searching didalam AI (artificial Intelegence) adalah salah satu metode penyelesaian masalah dengan pencarian solusi pada suatu permasalahan yang dihadapi. Metode searching pada kecerdasan buatan merupakan searching teerhadap problem space bukan searching data (e, g, angka, karakter, string) tertentu. Ada dua teknik pencarian yang dipakai, yaitu blind search (pencarian buta) dan heuristic search (pencarian terbimbing).

A. Blind Search (pencarian buta)
Pada metode blind search umumnya menggunakan 2 metode yang digunakan, antara lain:

(a) Breadth-First Search (Pencarian Melebar Pertama)

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 hingga ditemukannya solusi.

(b) Depth-First Search (Pencarian Mendalam Pertama)

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

B. Heuristic Search (pencarian terbimbing)

Pada metode ini terdapat 4 metode dalam pencarian heuristic, antara lain:

(a) Generate and Test (Pembangkit dan Pengujian)

Ini merupakan penggabungan antara depth-first search dengan backtracking (pelacakan mundur), yaitu bergerak ke belakang menuju suatu keadaan awal. Nilai pengujian berupa jawaban baik ‘ya’ atau ‘tidak’

(b) Hill Climbing (Pendakian Bukit)

Pada metode ini hampir sama seperti metode pembangkitan dan pengujian, namun proses pengujian ini dilakukan dengan fungsi heuristik. Pembangkitan kondisi yang berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes fungsi heuristik akan menunjukkan seberapa baiknya nilai perkiraan yang diambil terhadap kondisi-kondisi lainnya yang mungkin terjadi.



(c) Best First Search (Pencarian Terbaik Pertama)

Metode best-first search merupakan metode yang mengambil kelebihan dari kedua metode kombinasi dari metode depth-first search dengan metode breadth-first search. Apabila ada pencarian dengan metode hill climbing tidak dapat untuk balik ke node pada level yang lebih rendah walaupun node pada level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain halnya dengan metode best-first search ini. Pada metode best-fisrt search, pencarian dapat mengunjungi node-node pada level yang lebih tinggi memilki nilai heuristic yang lebih buruk.



(d) Simulated Annealing

Ide dasar terbentuk simulated annealing yaitu dari pemrosesan logam. Annealing (memanaskan kemudian mendinginkan) dalam pemrosesam logam adalah sutau proses bagaimana membuat bentuk cair yang sedikti demi sedikit menjadi bentuk yang lebih padat seiring dengan penurunan pada temperatur. Simulated annealing umumnya digunakan dalam penyelesaian masalah yang dimana perubahan dari suatu kondisi ke kondisi yang lainnya membutuhkan ruang yang sangat besar, misalkan perubahan gerakan dengan menggunakan permutasi pada masalah Travelling Salesman Problem.



• Contoh Breadth-First Search

Dapat dilihat pada contoh dibawah ini bahwa gerakan ke bawah meproses tingkat demi tingkat hinggga tujuannya tercapai. Maka urutan proses searching Braedth-First Search ditunjukan pada gambar adalah dimulai dari S-A-D-B-D-A-E-C-E-E-B-B-F-D-F-B-F-D-E-A-C dan berakhir pada G.

• Contoh Depth-First Search

Dibawah ini merupakan contoh depth-first search dimana hanya satu alternatif dipilih dan didesak pada setiap simpul sampai tujuan tercapai atau simpul tercapai bila gerak yang jauh kebawah tidak memungkinkan. Pada saat gerak yang jauh lebih kebawah itu tidak mungkin, maka dalam pencariannya dimulai kembali pada simpul nenek moyang yang terdekat memilki anak-anak yang tidak diselidiki. Pada urutan proses searching depth-first seasrch ditunjukkan pada gambar adalah dimulai dari S-A-B-C-E-D-F- dan berakhir di G.

2. Reasoning (penalaran) yang merupakan teknik penyelesaian masalah dengan cara merepresentasikan masalah kedalam basis pengetahuan (knowledge base) menggunakan logic atau bahasa formal (bahasa yang dipahami computer). Contohnya yaitu apel adalah buah-buahan. Itu merupakan fakta yang benar dan nyata.
Semantic network adalah bentuk link yang memilki arah atau representasi garis deklaratif yang dapat digunakan baik untuk mewakili pengetahuan atau pendukung penalaran pengetahuan sistem otomatis.

Contoh dari analogi sematic network yaitu ada seorang petani, srigala, ayam dan padi. Petani tersebut ingin pindah dengan membawa seekor srigala, ayam dan padi untuk menyebrangi sungai. Sayangnya perahunya terbatas. Yang dapat petani lakukan yaitu dengan membawa 1 objek. Petani tersebut tidak bisa meninggalkan ayam dan srigala dalam satu tempat karena ayam tersebut akan dimakan oleh srigala. Demikian pula petani tidak bisa meninggalkan ayam dan padi dalam satu tempat karena padi akan dihabiskan oleh ayam. Dari permasalahan tersebut kita dapat menggunakan semantic network untuk mempresentasikannya.


Contoh hasil dari implementasi pembuatan app seperti pada permasalahan diatas yaitu:

Kesimpulannya reasoning merupakan fakta yang benar dan nyata sedangkan semantic network merupakan representasi garis deklaratif sebagai pendukung sistem otomatis.

3. Planning (perencanaan) adalah proses yang mendefinisikan tujuan dari organisasi, membuat strategi yang digunakan untuk mencapai tujuan dari organisasi, serta mengembangkan rencana aktivitas kerja organisasi. Perencanaan merupakan proses-proses yang penting dari semua fungsi manajemen sebab tanpa perencanaan (planning) fungsi perorganisasian, pengontrolan maupun pengaarahan tidak akan dapat berjalan. Dalam AI (Artificial Intelegence) sendiri planning mempunyai arti suatu metode penyelesaian masalah dengan cara memecah masalah ke dalam sub-sub masalah yang lebih kecil, menyelesaikan sub-sub masalah satu demi satu, kemudian menggabungkan solusi-solusi dari sub-sub masalah tersebut menjadi sebuah solusi lengkap dengan tetap mengingat dan menangani interaksi yang terdapat pada sub-sub masalah tersebut.



4. Learning adalah bagian dari ilmu kecerdasan buatan atau dikenal juga sebagai AI (Artificial Intelligenci). Konsep dari learning ini adalah pada pengembangan sistem yang dapat belajar “sendiri” tanpa perlu di program oleh manusia berulang kali. Saat ini ilmu pembelajaran mesin sendiri telah menjadi salah satu bagian penting dalam industri bagian di bidang lainnya. Terdapat banyak sekali metode yang terdapat dalam teknik learning dengan berbagai variasinya yang telah diusulkan dan diimplementasikan diantaranya yaitu : decision tree learning, jaringan saraf tiruan, dan algoritma genetika.

Sebagai contoh, perhatikan data penerimaan pegawai pada table di bawah ini. Terdapat 11 orang pelamar kerja dengan 3 paramater / atribut penilaian : IPK (Indeks Prestasi Kumulatif), hasil tes psikologi, dan hasil tes wawancara. IPK dikelompokkan dalam tiga kategori (Bagus, Cukup, Kurang). Hasil tes psikologi dikelompokkan dalam tiga kategori (Tinggi, Sedang, Rendah). Hasil tes wawancara dalam dua kategori (Baik dan Buruk). Untuk data yang lengkap, seharusnya 3 × 3 × 2 = 18 kombinasi sampel data.Tetapi pada tabel tersebut hanya terdapat 11 sampel data. Artinya, masih ada 7sampel data lainnya yang tidak kita ketahui. Misalnya, untuk sampel data : [ IPK = ‘Kurang’, Psikologi = ‘Tinggi’, Wawancara = ‘Buruk’ ], kita tidak memiliki pengetahuan untuk memutusakan: Diterima = ‘Ya’ atau ‘Tidak’.

Ada satu pertanyaan menarik, pada masalah penerimaan pegawai diatas, bisakah kita membuat aturan yang benar dan lengkap seandainya kita mengetahui 18 kombinasi data secara lengkap?

Tentu saja secara manual kita bisa dengan mudah menemukan aturan yang benar dan lengkap karena hanya terdapat 3 atribut dengan 18 kombinasi data, Jika kita mengetahui data secara lengkap, system yang kita bangun tentu saja mampu memberikan keputusan yang 100% akurat. Tetapi, jika parameter yang diperhitungkan lebih dari 3, misalnya 30 atribut dan masing-masing atibut memilki 3 nilai berbeda, maka terdapat 205.891.132.094.649 kombinasi data. Dari kombinasi data yang sangat banyak (lebih dari 200 triliun) seperti ini, bisakah kita menemukan aturan yang benar dan lengkap secara manual? Tentu saja hal ini akan sangat sulit atau bahkan tidak mungkin dilakukan.

Bisakah kita membuat suatu program komputer yang secara otomatis bisa menemukan aturan-aturan yang kita harapkan? Jawabnya adalah bisa. Tetapi untuk kasus dimana kombinasi datanya tidak lengkap, maka kita tidak bisa berharap program komputer akan menemukan aturan yang benar dan lengkap, maka kita tidak bisa berharap program komputer akan menemukan aturan yang benar dan lengkap. Bagaimanapun, program komputer yang sanggup belajar seperti ini akan sangat membantu, meskipun akurasinya tidak 100%. Tetapi, kita bisa membuat program komputer yang juga bisa mempelajari data-data baru (sebagai pengalaman) sehingga membuatnya semakin “pintar” (performansinya menigkat). Secara luas, definisi untuk program komputer yang sanggup meningkatkan performasinya melalui pengalaman (experience).



Contoh Dari Studi Kasus


Dibawah ini terdapat studi kasus dimana sebuah graf simetris tak berarah yang menggambarkan kondisi jalan raya disuatu kota.
Terdapat 8 simpul yang menyatakan persimpangan jalan dengan posisi-posisi koordinat dua dimensi (x,y). setiap busur memiliki 2 atribut, angka pertama menyatakan panjang jalan sebenarnya (dalam satuan kilometer), dan angka yang berada dalam kurung, menyatakan kecepatan maksimum yang diperbolehkan untuk setiap kendaraan yang melalui jalan tersebut (dalam satuan km/jam). Seorang pimpinan satuan pemadam kebakaran, yang berada di persimpangan S, bermaksud memadamkan api di sebuah gedung yang terletak di persimpangan G. dia menggunakan mobil pemadam kebakaran dengan kecepatan maksimum 90 km/jam. Bantulah petugas tersebut menemukan rute jalan dengan total waktu tercepat dari S ke G dengan menggunakan metode A*.

Menghitung Heuristik Karena h(n) nya belum diketahui maka kita harus mencari atau menghitung jarak dari dua titik indeks, rumus jarak dua titik adalah sebagai berikut:

Dengan menggunakan rumus diatas maka perhitungan dari semua titik dapat dilihat sebagai berikut :


Table rute 1
No Titik Indeks Rute 1 Hasil
1 S(1,6) ke A (4,10) 5
2 A(4,10) ke D (16,10) 12
3 D(16,10) ke G(19,6) 5
4 D(16,10) ke E (16,6) 4
5 E(16,6) ke G(19,6) 3
6 E(16,6) ke F(16,2) 4
7 F(16,2) ke G(19,6) 2,6
8 A(4,10) ke B(4,6) 4
9 B(4,6) ke E(16,6) 12
10 E(16,6) ke G(19,6) 3
11 E(16,6) ke D(16,10) 4
12 D(16,10) ke G(19,6) 5
13 E(16,6) ke F(16,2) 4
14 F(16,2) ke G(19,6) 3
15 A(4,10) ke B(4,6) 4
16 B(4,6) ke C(4,2) 4
17 C(4,3) ke F(16,2) 12
18 F(16,2) ke G(19,6) 2,6
19 F(16,2) ke E(16,6) 4
20 E(16,6) ke G(19,6) 3
21 E(16,6) ke D(16,10) 4
22 D(16,10) ke G(19,6) 5


Table rute 2
No Titik Indeks Rute 2 Hasil
1 S(1,6) ke B (4,6) 3
2 B(4,6) ke E (16,6) 12
3 E(16,6) ke G(19,6) 3
4 E(16,6) ke E (19,6) 4
5 D(16,10) ke G(19,6) 5
6 E(16,6) ke F(16,2) 4
7 F(16,2) ke G(19,6) 2,6
8 B(4,6) ke A(4,10) 4
9 A(4,10) ke D(16,10) 12
10 D(16,10) ke G(19,6) 5
11 D(16,10) ke E (16,6) 4
12 E(16,6) ke G(19,6) 3
13 E(16,6) ke F(16,2) 4
14 F(16,2) ke G(19,6) 2,6
15 B(4,6) ke C(4,2) 4
16 C(4,2) ke F(16,2) 12
17 F(16,2) ke G(19,6) 2,6
18 F(16,2) ke E(16,6) 4
19 E(16,6) ke G(19,6) 3
20 E(16,6) ke D(16,10) 4
21 D(16,10) ke G(19,6) 5


Table rute 3
No Titik Indeks Rute 3 Hasil
1 S(1,6) ke C(4,2) 2,6
2 C(4,2) ke F(16,2) 12
3 F(16,2) ke G(19,6) 2,6
4 F(16,2) ke E(16,6) 4
5 E(16,6) ke G(19,6) 3
6 E(16,6) ke D(16,10) 4
7 D(16,10) ke G(19,6) 5
8 C(4,2) ke B(4,6) 4
9 B(4,6) ke E(16,6) 12
10 E(16,6) ke G(19,6) 3
11 E(16,6) ke D(16,10) 4
12 D(16,10) ke G(19,6) 5
13 E(16,6) ke F(16,2) 4
14 F(16,2) ke G(19,6) 2,6
15 C(4,2) ke B(4,6) 4
16 B(4,6) ke A(4,10) 4
17 A(4,10) ke D(16,10) 12
18 D(16,10) ke G(19,6) 5
19 D(16,10) ke E (16,6) 4
20 E(16,6) ke G(19,6) 3
21 E(16,6) ke F(16,2) 4
22 F(16,2) ke G(19,6) 2,6


Langkah algoritma A* Heuristic

Langkah selanjutnya mencari nilai f(n) menggunakan algoritma A* dengan rumus : f(n) = h(n) + g(n)

Tentukan starting point : S

Tentukan nilai f(n) dari setiap suksesor sehingga :
f(A) = 5 + 5 = 10, f(B) = 10 + 3 = 13, f(C) = 5 + 2,6 = 7,6
dari nilai f(n) pada titik diatas lalu tentukan best node yang merupakan jarak terpendek dari graf yang ditemukan, yaitu node C dengan nilai 7,6.
Simpan best node yang sudah ditemukan dalam Closed List dan simpan node yang lainnya pada Opened List. Sehingga dari langkah pertama didapatkan :
Closed List : [S], Opened List :[A, B, C]

Starting point : C, karena terpilih sebagai best node dan dimasukkan ke Clossed List Bangkitkan node suksesor : B dan F f(B) = jika starting point dari C = SC + CB + h(B) = 5 + 4 + 4 = 13 f(B) sebelumnya saat Starting Point B adalah S yaitu 13 maka sama-sama mendapatkan hasil yang sama. f(F) = SC + CF + h(F) = 5 + 12 + 12 = 29 Hasil akhir dari tahap 2 yaitu : Closed List : [S, C], Opened List : [A, B, F]. Cek nilai Opened List yang baru yaitu : f(A) = 5 + 5 = 10, f(B) = 10 + 3 = 13, f(F) = 29 Best Node adalah node A karena nilai terkecil dari pilihan di atas, sehingga titik A dipilih sebagai Starting Point untuk graf ke 3

Starting Point : A Bangkitkan Node Suksesor dari A : B dan D f(B) = jika starting point dari A = SA + AB + h(B) = 5 + 4 + 4 = 13 f(B) sebelumnya saat Starting Point B adalah S yaitu 13 maka sama – sama mendapatkan hasil yang sama. f(D) = SA + AD + h(D) = 5 + 14 + 12 = 31 Hasil akhir dari tahap 3 yaitu: Closed List : [S, C, A], Opened List : [B, F, D]. Cek nilai Opened List yang baru yaitu: f(B) = 10 + 3 = 13, f(F) = 29, f(D) = 31 Best Node adalah node B karena nilai terkecil dari pilihan di atas, sehingga titik B dipilih sebagai Starting Point untuk graf ke 4

Starting Point : B Bangkitkan Node Suksesor dari B : A, C dan E
Cari nilai f(n) yang belum diketahui yaitu nilai f(E) dan cek kembali nilai f(A) dan f(C) karena nilai B jadi punya 3 parent yaitu S, A, dan C. E belum pernah ada di open/closed list, maka langsung hitung nilai f(E) = SB + BE + h(E) = 10 + 15 + 12 = 37 Hitung nilai f(A) dan f(C) karena A dan C telah ada di closed list maka perlu dicek terlebih dahulu parent dari B perlu diganti atau tidak.
Ternyata jarak dari S ke B melalui C (S – C – B) adalah (5 + 4 = 9) dan jarak dari S ke B melalui A (S – A – B) adalah (5 + 4 = 9) juga. Karena menghasilkan nilai yang sama, maka dilihat dari kecepatan maksimum yang diperbolehkan untuk setiap kendaraan yang melalui jalan tersebut. Sehingga parent B diganti dari S ke A karena kecepatan maksimum yang diperbolehkan melalu jalan tersebut ialah 90 dan mobil pemadam kebakaran dengan kecepatan maksimum 90km/jam. A memiliki node suksesor yaitu B dan D, maka nilai f(B) dan f(D) dapat dicek kembali dengan Starting Pointnya dari A yaitu:
f(B) = SA + AB + h(B) = 13
f(D) = SA + AD + h(D) = 5 + 14 + 12 = 31
Closed List : [S, C, A], Opened List : [B, F, D, E].
Maka hasil dari f(n) untuk opened list adalah:
f(B) = 13, f(F) = 29, f(D) = 31, f(E) = 36

Maka yang menjadi best node adalah titik B. Titik B akan menjadi parent untuk langkah selanjutnya dengan menuju titik E.

Dari titik E dengan Node parentnya B maka E memilik suksesor D, F, dan G
f(D) = SB + BE + ED + h(D) = 10 + 15 + 4 + 4 = 33
f(G) = SB + BE + h(G) = 10 + 15 + 3 = 28
f(F) = SB + BE + EF + h(F) = 10 + 15 + 4 + 4 = 33
Maka hasil akhir dari tahap 5 yaitu
Closed List : [S, A, B, C], Opened List : [D, E, F].
Dari hasil akhir didapatkan bahwa jalur terpendek dilalui melalui titik : S > B > E> G dengan nilai 28

Rabu, 07 Oktober 2020

PENERAPAN ALGORITMA DEPTH FIRST SEARCH PADA SISTEM PENCARIAN DOKUMEN

Abstrak

Implementasi algoritma depth first search pada sistem pencarian dokumen sangat diperlukan oleh pihak tertentu yang membutuhkan data di dalam dokumen tersebut. Pencarian Kembali terhadap data di dalam dokumen menggunakan Algoritma Depth First Search menjadi fokus dalam pembahasan. Pembahasan ini bertujuan untuk menghasilkan aplikasi pencarian yang relevan terhadap kata kunci pencarian yang diharapkan meningkatkan efisiensi waktu bagi pengguna. Metode pengembangan sistem yang digunakan adalah Waterfall yang terdiri dari beberapa tahapan diantaranya, Analysis, Design, Code, Testing, dan Maintenance. Dengan menggunakan alat bantu flowchart untuk membuat rancangan sistem yang akan dibangun.

Pendahuluan

Perkembangan teknologi dewasa ini khususnya internet berkembang sangat pesat. Hal ini diiringi juga dengan semakin berkembangnya Teknologi Informasi yang dibutuhkan oleh pengguna sehingga mengakibatkan munculnya suatu cabang ilmu baru dalam teknologi informasi, yaitu pencarian informasi (information retrieval). Sejalan dengan perkembangan teknologi, maka perkembangan peralatan juga ikut mengambil andil yang besar untuk mendukung perkembangan pertukaran informasi yang semakin hari semakin canggih. Hampir semua kecanggihan teknologi yang memberikan kemudahan kepada user dalam menemukan apa yang diinginkannya. Salah satu kemudahan yang diberikan adalah menyediakan fasilitas searching yang digunakan untuk memberikan kemudahan mendapatkan lebih banyak informasi yang berbentuk dokumen. Pencarian informasi yang tepat dan sesuai kebutuhan menjadi sangat penting dengan semakin mudahnya memperoleh informasi dari seluruh dunia sebagai akibat perkembanga teknologi informasi dan komunikasi yang semakin pesat. Oleh karena itu, teknik untuk memperoleh dokumen dengan isi yang sesuai dengan kebutuhan informasi sangat diperlukan. Dalam penelitian ini digunakan sebuah cara untuk melakukan pencarian kembali dokumen dengan menggunakan Algoritma Depth First Search.

Masalah yang dihadapi

1. Searching dokumen ini tidak membuat pencarian berdasarkan kombinasi katakata penggolongan AND, OR, dan NOT serta penggunaannya yang tidak menggunakan case sensitive

2. Dokumen yang digunakan sebagai data dalam proses pencarian ini berupa beberapa dokumen teks yaitu rtf, doc, pdf dan txt

3. Tidak membahas semantic kata

4. Jumlah kata merupakan penjumlahan kata yang relevan dengan kata kunci di dalam dokumen

Cara menyelesaikan masalah

Dalam penelitian ini digunakan sebuah cara untuk melakukan pencarian kembali dokumen dengan menggunakan Algoritma Depth First Search.

Penjelasan algoritma

Depth First Search adalah salah satu algoritma yang digunakan untuk pencarian jalur. Algoritma ini mirip dengan algoritma BFS (Breadth First Search). Jika algoritma BFS melakukan perhitungan secara terurut, dari urutan pertama sampai urutan terakhir, maka algoritma ini melakukan kebalikannya, yaitu melakukan perhitungan secara terurut dari urutan terakhir, barulah mundur ke titik sebelumnya sampai pada titik pertama.

Alur algoritma yang digunakan

1.1. Information Retrieval

Model sistem IR menentukan detail sistem IR yaitu, meliputi:

1 Representasi dokumen dan query.

2 Fungsi pencarian.

3 Notasi kesesuaian (relevance notation) dokumen terhadap query.

Yang dimaksud dengan fungsi pencarian adalah bagaimana mesin mengolah pertanyaan untuk dicocokkan dengan dokumen, lalu mengambil dokumen yang relevan. Bagian ini terbagi menjadi beberapa bagian, yaitu:

1 Cara memilih kata (term) untuk indeks.

2 Cara menindeks kata.

3 Cara membobot kata.

Bagian yang paling signifikan pengaruhnya adalah pembobotan kata. Cara pembobotan kata mencirikan bagaimana sebuah sistem temu kembali informasi di bangun. Sistem temu kembali informasi digunakan untuk menemukan kembali informasi informasi yang relevan terhadap kebutuhan pengguna dari suatu kumpulan informasi secara otomatis. Kerangka dari sistem temu-kembali informasi sederhana terbagi menjadi dua bagian. Bagian yang pertama adalah bagian si pencari informasi atau pengguna dari sistem. Pengguna dari sistem temu-kembali informasi harus menerjemahkan informasi yang dicarinya agar dapat diproses oleh sistem dengan cara memasukkan kata kunci. Kata kunci tersebut nanti diproses menjadi sebuah query yang dapat dimengerti oleh komputer. Bagian yang kedua adalah bagian dari dokumen. Pada bagian ini dokumen-dokumen direpresentasikan dalam bentuk indeks. Nanti query dari pengguna akan diproses melalui fungsi kesamaan untuk membandingkan query dengan indeks dari dokumen untuk mendapatkan dokumen yang relevan.

pada Gambar 1. memperlihatkan bahwa terdapat dua buah alur operasi pada sistem temu kembali informasi. Alur pertama dimulai dari koleksi dokumen dan alur kedua dimulai dari query pengguna. Alur pertama yaitu pemrosesan terhadap koleksi dokumen menjadi pangkalan data indeks dan tidak tergantung pada alur kedua. Sedangkan alur kedua tergantung dari keberadaan pangkalan data indeks yang dihasilkan pada alur pertama.

1.2.Pencarian

Searching berusaha meminta content yang akan menjadi patokan pencarian sebuah dokumen dengan kriteria yang spesifik (biasanya yang berisi kata atau frasa yang kita tentukan) dan memperoleh daftar file yang memenuhi kriteria tersebut. Searching biasanya menggunakan indeks untuk mencari dokumen setelah pengguna memasukkan kriteria pencarian. Metode searching umum akan mencari kata kunci yang Anda masukkan ke semua informasi dalam katalog dan naskah data Pencarian dapat dibagi 2 bagian, yaitu:

1. Pencarian internal adalah pencarian terhadap sekumpulan data yang disimpan di dalam memori utama.

2. Pencarian eksternal adalah pencarian terhadap sekumpulan data yang disimpan di dalam memori sekunder, seperti disk.

1.3.Text Input Stream

Untuk membaca teks dari sebuah file, maka perlu dibuat objek TextInputStream. TextInputStreams memiliki metode yang memungkinkan untuk membaca dari sebuah file yang dimiliki Xojo dan fitur close setelah selesai pada akhir pembacaan file. File yang tidak mendukung UTF-8, maka harus diatur nilai properti Encoding. Ketika membaca sebuah file teks yang berasal dari sistem operasi lain atau dalam bahasa lain (atau campuran bahasa), mungkin perlu untuk menetapkan pengkodean teks yang digunakan ketika file tersebut ditulis. Jika tahu pengkodean, menggunakan modul Encodings untuk mendapatkan encoding dan menggunakannya untuk mengatur nilai properti. Berikut adalah contoh Encoding objek TextInputStream untuk membaca sebuah file teks yang menggunakan pengkodean.

MacRoman:

Dim f As FolderItem =

GetOpenFolderItem("text")

If f <> Nil Then

If f.Exists Then

Dim t As TextInputStream

Try

t = TextInputStream.Open(f)

t.Encoding =

Encodings.MacRoman

TextArea1.Text = t.ReadAll

Catch e As IOException

t.Close

MsgBox("Error accessing file.")

End Try

End If

End If

Seperti kita lihat, variabel f dideklarasikan ke dalam tipe FolderItem dan t sebagai TextInputStream. “t = TextInputStream.Open(f)” menunjukkan bahwa modul TextInputStream untuk membuka file text yang telah disimpan di variabel f. Kemudian di encoding : t.Encoding = Encodings.MacRoman.

1.4. Depth Depth Search

Menurut Erwin [2], Pencarian dengan metode ini dilakukan dari node awal secara mendalam hingga yang paling akhir (deadend) atau sampai ditemukan. Dengan kata lain, simpul cabang atau anak yang terlebih dahulu dikunjungi. Sebagai ilustrasinya dapat dilihat

Berdasarkan Gambar 2., proses pencarian dilakukan dengan mengunjungi cabang terlebih dahulu hingga tiba di simpul terakhir. Jika tujuan yang diinginkan belum tercapai maka pencarian dilanjutkan ke cabang sebelumnya, turun ke bawah jika memang masih ada cabangnya. Begitu seterusnya hingga diperoleh tujuan akhir (goal).

1.5.Waterfall

Metode pengembangan sistem yang digunakan dalam perancangan sistem ini menggunakan Model Waterfall, dikarenakan metode ini mempunyai tahapan-tahapan yang jelas, nyata dan praktis. Setiap tahapan harus diselesaikan terlebih dahulu untuk menghindari terjadinya pengulangan dalam tahapan sehingga pengembangan sistem yang dilakukan dapat memperoleh hasil yang diinginkan.

1.6.Flowchart

flowchart adalah suatu bagan alir yang digunakan untuk menunjukkan arus pekerjaan atau proses secara menyeluruh dari bagian sistem dimana bagan ini menjelaskan urutan prosedur-prosedur yang ada dalam sistem.

HASIL DAN PEMBAHASAN Hasil rancangan sistem/aplikasi menggunakan flowchart

1. Flowchart Program

Gambar 4. Flowchart Program merupakan diagaram alir Program dengan menu pilihan Pencarian, Kontak, dan Keluar. Pada menu pencarian terdapat pilihan memasukkan kata kunci yang selanjutnya dilakukan pencarian DFS pada tiap sub folder dan pencarian teks pada tiap dokumen yang ditemukan.

2. Flowchart DFS

Pada Gambar 5. Merupakan flowchart dimana proses diawali dengan pemilihan pencarian apakah pencarian cukup di folder akar atau pilihan ke sub foolder. Jika hanya di folder akar maka dilanjutkan langsung dengan pemrosesan file teks dan menampilkan hasilnya. Dan jika memilih pencarian ke sub folder maka dilakukan penelusuran lokasi, yaitu pemeriksaan kepada setiap folder hingga didapatkan folder terakhir. Pada saat posisi di folder terakhir inilah dilakukan pemrosesan file yaitu pencarian kemiripan kata antara kata kunci dan kata pada dokumen, dilanjutkan pencarian kembali pada lokasi berdampingan. Proses pencarian berhenti ketika lokasi folder telah berada pada akar lokasi.

3. Flowchart REGEX

Pada gambar 6 merupakan flowchart dari proses pencarian kata menggunakan Regex. Teks yang terdapat di dalam dokumen dimasukkan ke dalam variabel textInput menggunakan perintah TextInputStream, yaitu syntac dari Xojo yang berfungsi membaca string/teks dari dokumen. Untuk menghindari kesalahan bentuk tulisan maka diperlukan textInput.encoding yaitu fungsi untuk merubah ke format MacRoman. Teks yang ditemukan dirangking berdasar jumlah teks yang ditemukan. Pencarian teks berhenti sampai akhir dokumen dan diakhiri dengan menampilkan hasil. Berdasarkan analisis dan perancangan menghasilkan sistem/aplikasi sebagai berikut :

1. Form Pencarian

Pada form pencarian terdapat satu textfiled untuk memasukkan kata kunci, sebuah tombol pencarian, dan sebuah listbox untuk menampilkan hasil. Kata kunci dimasukkan di textfield, kata kunci yang dimasukkan berupa kata tunggal atau kalimat. Untuk mengoptimalkan pencarian dapat digunakan fungsi Regex. Pencarian akan dilakukan di dalam folder terpilih, jika di dalam folder terpilih terdapat folder lagi maka tidak dilakukan pencarian ke dalam folder tersebut. Hasil pencarian kata berupa dokumen teks akan ditampilkan pada listbox. Dapat kita lihat pada gambar 7, pada listbox terdiri dari kolom file, lokasi, jumlah dan kata. Kolom File yaitu berisi nama file beserta ekstensinya. Sedangkan Lokasi file menunjukkan posisi keberadaan file tersebut di dalam folder. Untuk Jumlah, yaitu hasil rangking kata yang ditemukan di dalam dokumen.

Kesimpulan

Aplikasi pencarian sangat diperlukan terutama instansi pemerintah yang selalu berhubungan dengan arsip dokumen, kecepatan pecarian tergantung jumlah dokumen, besar dukumen, dan spesifikasi komputer, Pencarian menggunakan RegEx sehingga fungsi-fungsi syntax RegEx dapat digunakan untuk pilihan bantuan agar pencarian kata lebih relevan dan aplikasi ini dapat digunakan oleh orang yang awam fungsi RegEx sekalipun.

Daftar Pustaka

Lailiyah, S., Yusnita, A., & Panotogomo, T. A. (2017). Penerapan Algoritma Depth First Search Pada Sistem Pencarian Dokumen. Snitt, 174–179.