BAB II TINJAUAN PUSTAKA Pada bab ini akan dijelaskan lebih lanjut mengenai hal-hal yang diperlukan untuk pembuatan aplikasi ini. Teori-teori ilmu terkait yang digunakan merupakan penjelasan lebih rinci mengenai tata Bahasa Indonesia, teori Graph, teknik stemming dan stopword removal, algoritma pencarian, dan perangkat yang akan digunakan. Tujuannya agar sistem ini mempunyai pijakan pustaka yang dapat dipertanggungjawabkan. 2.1. Pengertian dan Penulisan Kata Kata adalah rangkaian bunyi terkecil yang memiliki arti dan merupakan unsur kalimat (Badudu & Mohammad Zain, 1994). Suatu bentuk yang memiliki arti atau sering disebut morfem sudah merupakan suatu kata, tetapi sebaiknya konsep tentang kata tidak hanya meliputi morfem bebas melainkan juga semua bentuk gabungan antara morfem bebas dan morfem terikat, atau morfem dasar dengan morfem dasar. 2.1.1. Kata Dasar Kata dasar adalah kata yang merupakan dasar pembentukan kata turunan atau kata berimbuhan (Alwi, 1998). Kata yang berupa kata dasar ditulis sebagai satu kesatuan. Misalnya: a. Saya yakin bahwa engkau mengerti. b. Bus kota penuh sesak. c. Kue ini sangat enak. 5 6 2.1.2. Kata Turunan Kata Turunan adalah perubahan pada kata dasar yang disebabkan karena adanya afiks atau imbuhan baik di awal (prefiks atau awalan), tengah (infiks atau sisipan), maupun akhir (sufiks atau akhiran) kata. a. Imbuhan (awalan, sisipan, akhiran) ditulis serangkaian dengan kata dasarnya. Misalnya: bergeletar, dikelola, penetapan, menengok, mempermainkan. b. Awalan (prefiks) adalah suatu unsur struktural yang dikaitkan di depan sebuah kata dasar. Yang dimaksud di dalam awalan adalah ber-, me-, pe-, di-, ke-, ter-, dan se-. Dalam menambahkan awalan pada kata dasar, ada proses yang terkadang ikut andil di dalamnya, yaitu proses nasalisasi. Proses nasalisasi adalah proses mengubah atau memberi karakter pada kata. Proses nasalisasi inilah yang akan menyebabkan bervariasinya bentuk awalan (alomorf). Bentuk-bentuk alomorf dari imbuhan diatas dapat dilihat pada tabel 2.1. Tabel 2.1: Bentuk-bentuk Alomorf dari Imbuhan No. Imbuhan 1 be- 2 me- 3 pe- 4 ter- Alomorf bebelbermememmenmengmengemenypepempenpengpengepenypertetelter- c. Sisipan (Infiks) adalah semacam morfem terikat yang disisipkan pada sebuah kata antara konsonan pertama dengan vokal pertama. Jenis morfem ini pemakainya 7 terbatas pada beberapa kata saja. Sisipan yang terdapat dalam bahasa Indonesia adalah -el-, -er-, dan -em-. d. Akhiran (Sufiks) adalah semacam morfem terikat yang dilekatkan di belakang suatu morfem dasar. Akhiran yang terdapat dalam bahasa Indonesia adalah -an, kan, dan –i. e. Jika bentuk dasar berupa gabungan kata, awalan, atau akhiran ditulis serangkai dengan kata yang langsung mengikuti atau mendahuluinya. Misalnya: bertepuk tangan, garis bawahi, menganak sungai, sebar luaskan f. Jika bentuk dasar yang berupa gabungan kata, awalan atau akhiran sekaligus, unsur gabungan kata itu ditulis serangkai. Misalnya: menggarisbawahi, menyebarluaskan, dilipatgandakan, penghancurleburan 2.1.3. Kata Ulang Kata ulang adalah kata dasar atau bentuk dasar yang mengalami perulangan baik seluruh maupun sebagian sedangkan kata majemuk adalah gabungan beberapa kata dasar yang berbeda membentuk suatu arti baru. Bentuk ulang ditulis secara lengkap dengan menggunakan tanda hubung. Misalnya: anak-anak, mata-mata, hatihati, kupu-kupu, huru-hara, terus-menerus. 2.2. Pengertian Kalimat Klausa yaitu satuan gramatikal berupa kelompok kata yang mengandung subyek (S) dan predikat (P). Kalimat adalah susunan kata atau kelompok kata (klausa) yang teratur dan mengandung maksud atau pikiran yang jelas. Kalimat adalah satuan bahasa terkecil yang mengungkapkan pikiran yang utuh. Dalam wujud lisan kalimat diucapkan dengan suara naik turun, dengan keras lembut, disela jeda, dan diakhiri dengan intonasi akhir. Dalam wujud tulisan berhuruf latin kalimat dimulai dengan huruf capital dan diakhiri dengan tanda titik (.), tanda tanya (?), dan tanda seru (!). 8 2.2.1. Kalimat Pernyataan (Deklaratif) Kalimat pernyataan dipakai jika penutur ingin menyatakan sesuatu dengan lengkap pada waktu ingin menyampaikan informasi kepada lawan berbahasanya. Biasanya intonasi menurun, tanda baca titik. Misalnya: Positif a. Seorang ayah membelikan putrinya sebuah boneka panda. b. Anak kecil itu memberi sekarung beras kepada sang pengemis. Negatif a. Dalam keramaian, aku tidak mendapat secercah ide untuk menulis puisi. b. Tidak sembarang orang yang dapat memasuki pesta di gedung itu. 2.2.2. Kalimat Pertanyaan (Interogatif) Kalimat pertanyaan dipakai jika penutur ingin memperoleh informasi atau reaksi yang diharapkan. Pertanyaan sering menggunakan kata tanya seperti apakah, dimana, mengapa, kapan, bagaimana. Misalnya: Positif a. Bagaimana proses terbentuknya awan panas gunung Merapi? b. Mengapa daun putri malu menutup ketika disentuh? Negatif a. Mengapa tidak semua anak terlantar di Negara ini dapat dijamin pendidikannya oleh Negara? b. Mengapa sekolah ini dibangun tidak sesuai dengan bahan bangunan yang disepakati? 2.2.3. Kalimat Perintah dan Permintaan (Imperatif) Kalimat perintah dipakai jika penutur ingin “menyuruh” atau “melarang” orang berbuat sesuatu. Misalnya: Positif a. Tolong ambilkan buku tulis di mejaku. 9 b. Sudikah kamu disuruh mengantarkan kue ini ke Bu Halimah! Negatif a. Janganlah kita menjadi orang yang pelit jika sudah tergolong orang mampu. b. Sebaiknya kita tidak membeli daging goreng di pasar. 2.3. Pengertian Paragraf Paragraf adalah bagian wacana yang mengandung satu tema pokok, ditandai dengan permulaan baris yang agak menjorok ke dalam atau spasi yang lebih besar dengan paragraf berikutnya jika digunakan tulisan bentuk lurus (Badudu & Mohammad Zain, 1994). Sebuah paragraf mungkin terdiri atas sebuah kalimat, mungkin terdiri atas dua kalimat, mungkin juga lebih dari dua kalimat. Topik paragraf adalah pikiran utama di dalam sebuah paragraf. Semua pembicaraan dalam paragraf itu terpusat pada pikiran utama ini. Pikiran utama itulah yang menjadi topik persoalan atau pokok pembicaraan. Oleh sebab itu, pikiran utama disebut juga sebagai gagasan pokok di dalam sebuah paragraf. Dengan demikian, apa yang menjadi pokok pembicaraan dalam sebuah paragraf, itulah topik paragraf. 2.3.1. Pembagian Paragraf Menurut Jenisnya Dalam sebuah karangan (komposisi) biasanya terdapat tiga macam paragraf jika dilihat dari segi jenisnya. a. Paragraf Pembuka Paragraf ini merupakan pembuka atau pengantar untuk sampai pada segala pembicaraan yang akan menyusul kemudian. Oleh sebab itu, paragraf pembuka harus dapat menarik minat dan perhatian pembaca kepada masalah yang akan disajikan selanjutnya. Salah satu cara untuk menarik perhatian ini ialah dengan mengutip pernyataan yang memberikan rangsangan dari para orang terkemuka atau orang yang terkenal. 10 b. Paragraf Pengembang Paragraf pengembang ialah paragraph yang terletak antara paragraf pembuka dan paragraf yang terakhir sekali di dalam bab atau anak bab itu. Paragraf ini mengembangkan pokok pembicaraan yang dirancang. Dengan kata lain, paragraf pengembang mengemukakan inti persoalan yang akan dikemukakan. Oleh sebab itu, satu paragraf dan paragraf lain harus memperlihatkan hubungan yang serasi dan logis. Paragraf itu dapat dikembangkan dengan cara ekspositoris, dengan cara deskriptif, dengan cara naratif, atau dengan cara argumentatif. c. Paragraf Penutup Paragraf penutup ialah paragraf yang terdapat pada akhir karangan atau pada akhir suatu kesatuan yang lebih kecil di dalam karangan itu. Biasanya, paragraf penutup berupa simpulan semua pembicaraan yang telah dipaparkan pada bagianbagian sebelumnya. 2.3.2. Struktur Sebuah Paragraf Struktur sebuah paragraf terdiri atas sebuah kalimat topik dan beberapa kalimat penjelas. Dengan kata lain, apabila dalam sebuah paragraf terdapat lebih dari sebuah kalimat topik, paragraf itu tidak termasuk paragraf yang baik. Kalimat-kalimat dalam paragraf itu harus saling mendukung, saling menunjang, kait-berkait satu dengan lainnya. Kalimat topik adalah kalimat yang berisi topik yang dibicarakan pengarang. Pengarang meletakkan inti maksud pembicarannya pada kalimat topik. Karena topik paragraf adalah pikiran utama dalam sebuah paragraf, kalimat topik merupakan kalimat utama dalam paragraf itu. Kalimat utama bersifat umum. Namun apabila paragraf itu diperluas, adakalanya sebuah kalimat yang dianggap umum akan berubah menjadi kalimat khusus. 11 2.3.3. Letak Kalimat Utama Penempatan kalimat utama dalam pengembangan sebuah paragraf bermacammacam. Ada empat cara meletakkan kalimat utama pada paragraf, antara lain: a. Pada awal paragraf Paragraf dimulai dengan mengemukakan persoalan pokok atau kalimat utama. Kemudian diikuti oleh kalimat-kalimat penjelas yang berfungsi menjelaskan kalimat utama. Paragraf ini biasanya disebut paragraf deduktif, yaitu dari yang umum ke khusus. b. Pada akhir paragraf Paragraf ini dimulai dengan mengemukakan penjelasan-penjelasan atau perincian-perincian, kemudian ditutup dengan kalimat utama. Paragraf jenis ini sering disebut paragraf induktif, yaitu dari yang khusus ke umum. c. Pada awal dan akhir paragraf Kalimat utama dapat pula diletakkan pada awal dan akhir paragraf. Fungsi kalimat utama pada akhir paragraf adalah untuk menekankan kembali pikiran utama dengan kalimat yang bervariasi. d. Tanpa kalimat utama Paragraf ini tidak mempunyai kalimat utama. Berarti pikiran utama tersebar di seluruh kalimat yang ada dalam paragraf tersebut. Bentuk ini biasanya digunakan dalam karangan yang berbentuk narasi atau deskripsi. Pikiran utama didukung oleh semua kalimat. 2.4. Ringkasan Ringkasan diartikan sebagai penyajian singkat dari suatu karangan asli tetapi tetap mempertahankan urutan isi dan sudut pandang pengarang asli. Sedangkan perbandingan bagian atau bab dari karangan asli secara proposional tetap dipertahankan dalam bentuknya yang singkat itu (Keraf 1984: 262). Dengan kata lain, ringkasan adalah suatu cara yang efektif untuk menyajikan suatu karangan yang panjang dalam bentuk singkat. 12 Ringkasan merupakan penyajian singkat tentang isi tulisan dengan memperlihatkan urutan dari isi atau bab-bab yang terdapat dalam tulisan. Dalam bentuknya yang singkat itu, urutan tentang isi atau bab-bab tulisan disajikan secara proporsional. Pada prinsipnya di dalam ringkasan, gagasan dan pendekatan penulis telah tampak dan problematika berikut upaya pemecahan yang ada dalam tulisan disajikan berurutan sesuai bab-bab yang ada. Adakalanya ilustrasi juga disertakan dalam ringkasan. Bagi orang yang sudah terbiasa membuat ringkasan, mungkin kaidah yang berlaku dalam menyusun ringkasan telah tertanam dalam benaknya. Meski demikian, tentulah perlu diberikan beberapa patokan sebagai pegangan dalam membuat ringkasan terutama bagi mereka yang baru mulai atau belum pernah membuat ringkasan. Berikut ini beberapa pegangan yang dipergunakan untuk membuat ringkasan yang baik dan teratur. a. Membaca Naskah Asli Bacalah naskah asli sekali atau dua kali, kalau perlu berulang kali agar dapat mengetahui kesan umum tentang karangan tersebut secara menyeluruh. Penulis ringkasan juga perlu mengetahui maksud dan sudut pandang penulis naskah asli. b. Mencatat Gagasan Utama Jika sudah menangkap maksud, kesan umum, dan sudut pandang pengarang asli, silakan memperdalam semua hal itu. Bacalah kembali karangan itu bagian demi bagian, alinea demi alinea sambil mencatat semua gagasan yang penting dalam bagian atau alinea itu. Pokok-pokok yang telah dicatat dipakai untuk menyusun sebuah ringkasan. c. Mengadakan Reproduksi Pakailah kesan umum dan hasil pencatatan untuk membuat ringkasan. Urutan isi disesuaikan dengan naskah asli, tapi kalimat-kalimat dalam ringkasan yang dibuat adalah kalimat-kalimat baru yang sekaligus menggambarkan kembali isi dari karangan aslinya. 13 d. Ketentuan Tambahan Setelah melakukan langkah ketiga, terdapat beberapa hal yang perlu diperhatikan agar ringkasan itu diterima sebagai suatu tulisan yang baik. 1. Susunlah ringkasan dalam kalimat tunggal daripada kalimat majemuk. 2. Ringkaskanlah kalimat menjadi frasa, frasa menjadi kata. Jika rangkaian gagasan panjang, gantilah dengan suatu gagasan sentral saja. 3. Besarnya ringkasan tergantung jumlah alinea dan topik utama yang akan dimasukkan dalam ringkasan. Ilustrasi, contoh, deskripsi, dapat dihilangkan, kecuali yang dianggap penting. 4. Pertahankan susunan gagasan dan urutan naskah. Tapi yang sudah dicatat dari karangan asli itulah yang harus dirumuskan kembali dalam kalimat ringkasan. Jagalah juga agar tidak ada hal yang baru yang dimasukkan dalam ringkasan. 5. Dalam sebuah meringkaskan ringkasan suatu buku ditentukan yang pula tebalnya panjangnya. 250 Jika halaman harus menjadi sepersepuluhnya, perhitungan yang harus dilakukan adalah sebagai berikut: i. Panjang karangan asli (berupa kata) adalah: Jumlah halaman x Jumlah baris per halaman x Jumlah kata per baris = 250 x 35 x 9 kata = 78.750 kata. ii. Panjang ringkasan berupa jumlah kata adalah: 78.750 : 10 = 7.875 kata. Panjang ringkasan berupa jumlah halaman ketikan adalah: jika kertas yang dipergunakan berukuran kuarto, jarak antar baris dua spasi, tiap baris rata-rata sembilan kata, pada halaman kertas kuarto dapat diketik 25 baris dengan jarak dua spasi, maka: Jumlah kata per halaman adalah: 25 x 9 kata = 225. Jumlah halaman yang diperlukan adalah: 7.875 : 225 = 35 halaman. 2.5. Teori Graph Tahun 1736 seorang matematikawan Swiss, Leonhard Euler, mengungkap misteri Jembatan Konigsburg. Di kota tersebut terdapat sungai Pregel yang mengalir mengitari pulau Kneiphof lalu bercabang menjadi dua buah anak sungai, tujuh buah jembatan yang 14 menghubungkan daratan yang dibelah oleh sungai tersebut. Misteri pada jembatan Konigsberg adalah : Apakah mungkin melalui ketujuh buah jembatan itu masing-masing tepat satu kali dan kembali ke tempat semula? Leonhard Euler berhasil memecahkan dan mempresentasikan masalah ini dalam bentuk graph. Daratan direpresentasikan dalam bentuk titik (vertex) dan jembatan direpresentasikan dalam bentuk garis (edge). Sebuah graph didefinisikan sebagai pasangan himpunan (V,E), dimana V adalah himpunan dari titik-titik (vertex) dan E adalah himpunan garis (edge) yang menghubungkan antara satu titik dengan titik lainnya. Terdapat beberapa macam bentuk dari graph, yaitu: a. Simple graph, adalah graph yang tidak memiliki edge ganda (dalam satu pasangan vertex) b. Null graph, adalah sebuah graph yang tidak memiliki edge c. Digraph atau Directed Graph, adalah sebuah graph dimana pada tiap edge-nya diberi arah. 2.6. Algoritma Pencarian (Searching Algorithm) Algoritma ini merupakan teknik dasar dari searching dimana dicari semua solusi yang memungkinkan. Kemudian semua solusi yang memungkinkan yang telah ditemukan tadi dibandingkan untuk mendapatkan solusi yang terbaik. Metode pencarian dikatakan penting untuk menyelesaikan permasalahan karena setiap state(keadaan) menggambarkan langkah-langkah untuk menyelesaikan permasalahan. Metode pencarian dikatakan penting untuk perencanaan karena dalam sebuah permainan akan menentukan apa yang harus dilakukan, dimana setiap state menggambarkan kemungkinan posisi pada suatu saat. Metode pencarian adalah bagian dari kesimpulan, dimana setiap state menggambarkan hipotesis dalam sebuah rangkaian deduktif. Dalam bab ini akan dipelajari metode pencarian sederhana yang hanya berusaha mencari kemungkinan penyelesaian. Metode yang termasuk pada bagian ini adalah Breadth-First Search, Depth-First Search, Hill Climbing, dan Best-First Search. 15 2.6.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 akan terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan sampai ditemukannya solusi. Lihat gambar 2.1. Gambar 2.1. Tree untuk Breadth-First Search Algoritma 1. Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree. 2. Bila node pertama, jika ≠ GOAL, diganti dengan anak-anaknya dan diletakkan di belakang PER LEVEL. 3. Bila node pertama = GOAL, selesai. Lihat gambar 2.2. Gambar 2.2. Algoritma Breadth-First Search Lintasan yang didapat : S – B – C – E – Z Keuntungan: 1. Tidak akan menemui jalan buntu. 16 2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan. Kelemahan: 1. Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon. 2. Kemungkinan ditemukan optimal lokal, yaitu suatu keadaan yang lebih baik daripada semua tetangganya namun masih belum baik dari suatu keadaan lain yang jauh letaknya darinya. 2.6.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 dilakukan terus hingga ditemukannya solusi. Gambar 2.3. Tree untuk Depth-First Search Algoritma 1. Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree 2. Bila node pertama, jika ≠ GOAL, node dihapus diganti dengan anak-anaknya dengan urutan LChild 3. Bila node pertama = GOAL, selesai. 17 Gambar 2.4. Algoritma Depth-First Search Lintasan yang didapat: S – A – B – C – E – Z Keuntungan: 1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan. 2. Menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan. Kelemahan: 1. Kemungkinan terjebak dalam optimal lokal. 2. Hanya akan menemukan 1 solusi pada setiap pencarian. 2.6.3. Pencarian dengan Mendaki Bukit (Hill Climbing) Hill Climbing merupakan salah satu metode pencarian untuk mencari kemungkinan penyelesaian. Teknik Hill Climbing dapat digunakan untuk memecahkan persoalan yang memiliki banyak alternatif solusi untuk kemudian memilih solusi yang terbaik. 18 Gambar 2.5. Tree untuk Hill Climbing Cara kerjanya dimulai dengan memilih solusi acak, kemudian dilakukan perubahan sedikit demi sedikit, setiap perubahan menghasilkan solusi yang lebih baik. Saat perubahan yang dilakukan tidak lagi mendapatkan solusi yang lebih baik, algoritma Hill Climbing akan berhenti mencari dan menentukan solusi terakhir sebagai solusi yang optimal. Algoritma 1. Buat solusi usulan pertama, lalu periksa apakah solusi usulan tersebut merupakan sebuah solusi. Jika ya, berhentilah. Jika tidak, lanjutkan ke langkah berikutnya. 2. Dari solusi ini, terapkan sejumlah aturan yang dapat diterapkan untuk membuat sekumpulan solusi usulan yang baru. 3. Kirimkan elemen usulan ini ke fungsi uji. Jika elemen ini merupakan sebuah solusi, berhentilah. Jika tidak, periksa apakah elemen ini merupakan yang terdekat dengan solusi yang telah diuji 4. Ambil elemen terbaik yang ditemukan lalu gunakan sebagai solusi usulan berikutnya. 5. Kembali ke langkah awal. 19 Gambar 2.6. Algoritma Hill Climbing Sebagai contoh penerapan prosedur Hill Climbing dapat dilihat pada uraian berikut ini. Pertama adalah menentukan usulan solusi pertama yang akan diambil dari nilai bobot-bobot kalimat pada tabel 2.2. Tabel 2.2 Bobot kalimat sebagai usulan solusi Kalimat Bobot Memutuskan untuk menyekolahkan anak pada usia yang masih sangat dini saat ini telah menjadi trend di 31 kalangan masyarakat. Dengan alasan ingin sedari dini memberikan berbagai ilmu dan kepandaian kepada sang anak, orang tua rela 47 merogoh kocek dalam-dalam untuk biaya sekolah yang tidak bisa dibilang murah. Bahkan tidak jarang ada bayi usia dibawah satu tahun yang disekolahkan dengan standar internasional 33 Bila dilihat dari sudut pandang psikologis anak, memasukkan mereka ke dalam sekolah pada usia yang 51 sangat dini dipandang belum begitu perlu. Dari hasil pembobotan diperoleh usulan solusi pertama yaitu (31,47,33,51) dengan nilai jarak = 48. Solusi (goal) yang dtuju adalah urutan bobot dari besar ke kecil (51,47,33,31). Kombinasi yang dapat dihasilkan dari 4 nilai bobot adalah: 4! / 2!(4- 20 2)! = 6 kombinasi. Keenam kombinasi ini akan kita pakai semuanya sebagai operator, yaitu: * Tukar 1, 2 (menukar urutan posisi bobot ke-1 dengan bobot ke-2). * Tukar 1, 3 (menukar urutan posisi bobot ke-1 dengan bobot ke-3). * Tukar 1, 4 (menukar urutan posisi bobot ke-1 dengan bobot ke-4). * Tukar 2, 3 (menukar urutan posisi bobot ke-2 dengan bobot ke-3). * Tukar 2, 4 (menukar urutan posisi bobot ke-2 dengan bobot ke-4). * Tukar 3, 4 (menukar urutan posisi bobot ke-3 dengan bobot ke-4). Gambar 2.7 Contoh Prosedur Hill Climbing Dari 6 kombinasi kemungkinan solusi, terdapat 2 kombinasi dengan nilai terkecil yang sama yaitu 20, namun yang paling mendekati dengan solusi tujuan (goal) adalah yang menggunakan operator ‘tukar 1,4’. Karena prosedur telah menemukan solusi terbaik, maka proses pencarian berhenti. Secara umum penerapan algoritma Hill Climbing memiliki keuntungan: 21 1. Membutuhkan memori yang lebih relatif kecil, karena hanya node-node pada lintasan aktif saja yang disimpan. 2. Metode Hill Climbing Search akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan. Kelemahan: 1. Algoritma akan berhenti kalau mencapai nilai optimum lokal. 2. Perlu menentukan aturan yang tepat. 2.6.4. Pencarian terbaik pertama (Best-First Search) Best-First Search merupakan suatu cara yang menggabungkan kelebihan dari pencarian Breadth-First Search dan Depth-First Search. Pada setiap langkah proses Best-First Search, kita memilih node-node dengan menerapkan fungsi heuristik yang memadai pada setiap node/simpul yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan penggantinya. Gambar 2.7. Tree untuk Best-First Search Algoritma 1. Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree 2. Bila node pertama, jika ≠ GOAL, node dihapus & diganti dengan anakanaknya 3. Bila node pertama = GOAL, selesai. 22 Gambar 2.8. Algoritma Best-First Search Lintasan yang didapat: S – A – B – C – E – Z Keuntungan 1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan 2. Secara kebetulan, metode ini akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keaadaan Kelemahan 1. Algoritma akan berhenti kalau mencapai nilai optimum lokal 2. Tidak diijinkan untuk melihat satupun langkah sebelumnya. 2.7. Proses Pemisahan Kata dan Stemmer Proses pemisahan kata adalah proses penguraian artikel yang semula berupa kumpulan kalimat menjadi kata-kata saja baik itu berupa kata-kata penting maupun kata-kata tidak penting. Tahapan dalam proses ini adalah sebagai berikut: a. Isi artikel akan diuraikan menjadi kata-kata saja baik kata penting maupun kata tidak penting. b. Proses penguraian akan dilakukan sampai isi dari keseluruhan artikel selesai diproses. 23 Proses stemmer adalah proses perubahan bentuk suatu kata menjadi bentuk kata dasarnya. Proses tersebut akan membuang imbuhan yang terkandung dalam suatu kata yang diproses. Proses ini akan mendukung tingkat ketelitian dalam perhitungan daftar keyword pada proses berikutnya. Tahapan dalam proses stemmer antara lain sebagai berikut: a. Daftar kata yang telah dihasilkan dalam proses pemisahan kata akan diproses. b. Setiap kata akan diperiksa keberadaannya di dalam daftar kata dasar. c. Bila kata tersebut terdapat dalam daftar kata dasar maka kata tersebut tidak mengalami perubahan bentuk. 2.8. Proses Stopword Removal Setiap bahasa yang resmi memiliki berbagai kata fungsi dan kata sambung yang hampir selalu muncul dalam penerapannya. Biasanya kata-kata ini tidak memiliki arti yang lebih dalam memenuhi kebutuhan seseorang dalam mencari informasi. Dalam bahasa Inggris, kata-kata tersebut (misalnya a, an, the, on) disebut sebagai stopwords (Chakrabarti, 2003, p 48). Sedangkan dalam bahasa Indonesia stopwords dapat disebut sebagai kata tidak penting misalnya, “di”, “oleh”, “pada”, “sebuah”, “karena”. Sebelum proses stopword removal dilakukan, terlebih dahulu dibuat daftar stopword list (stoplist). Preposisi, kata hubung dan partikel biasanya merupakan kandidat stoplist. Stopword removal adalah proses penghilangan kata tidak penting melalui pengecekan kata-kata hasil stemmer pada abstrak, apakah termasuk dalam daftar kata tidak penting (stoplist) atau tidak. Jika termasuk di dalam stoplist maka kata-kata tersebut akan dihilangkan dari abstrak sehingga kata-kata yang tersisa dianggap sebagai kata penting atau keywords. Tahapan dalam proses stopword removal antara lain sebagai berikut: a. Daftar kata yang dihasilkan pada proses divide to word dan stemmer akan diproses. b. Setiap kata yang dihasilkan akan dibandingkan dengan daftar stoplist. 24 c. Bila kata tersebut ditemukan, maka kata tersebut diasumsikan bukan keyword dari artikel Bila kata tersebut tidak ditemukan dalam daftar stoplist maka kata tersebut diasumsikan sebagai keyword dari artikel yang bersangkutan. Kemudian jumlah dari kata tersebut akan dihitung keberadaannya dalam paragraf yang bersangkutan. 2.9. TF-TDF (Terms Frequency – Inverse Document Frequency) Metode ini merupakan metode untuk menghitung nilai/bobot suatu kalimat terhadap artikel. Metode ini akan mengabaikan kata-kata yang tergolong tidak penting. Oleh sebab itu sebelum menjalankan metode ini, sistem harus melakukan proses stemmer dan stopword removal terlebih dahulu. Metode ini memiliki empat proses yang berbeda untuk perhitungan nilai suatu kalimat (Sjobergh Jonas & Araki Kenji, 2005), antara lain: a. Kecocokan kata-kata dalam kalimat dengan daftar kata kunci/keyword. Idenya adalah semakin suatu kalimat memiliki nilai yang tinggi, maka kalimat tersebut semakin penting keberadaannya di dalam suatu artikel. b. Menghitung frekuensi kata-kata suatu kalimat terhadap keseluruhan artikel dan hasilnya akan dibagi dengan jumlah kata dalam suatu artikel. Alasannya adalah semakin tinggi frekuensi kata tersebut di dalam suatu artikel, maka kalimat yang memiliki kata tersebut semakin penting keberadaannya di dalam suatu artikel. c. Melihat posisi kalimat di dalam suatu artikel. Dalam program ini digunakan konsep metode deduktif induktif seusai kaidah bahasa Indonesia. Kalimat pertama dan terakhir dari setiap paragraf akan diberi nilai 2 sedangkan kalimat yang lain akan diberi nilai 1. d. Bagian ini sangat berhubungan dengan hasil pemetaan artikel karena akan dihitung jumlah relasi (yang disimbolkan dengan edge) suatu kalimat di dalam artikel. Idenya adalah semakin suatu kalimat memiliki relasi yang banyak dengan kalimat lainnya maka kalimat tersebut kemungkinan mendiskusikan topik utama suatu artikel sehingga kalimat tersebut semakin penting keberadannya di dalam artikel tersebut. 25 Kemudian hasil dari empat perhitungan diatas akan dikalikan dan menjadi nilai dari tf, seperti terlihat pada persamaan berikut : tf = bobot 1 * bobot 2 * bobot 3 * bobot 4 Nilai dari tf akan dikalikan dengan nilai idf seperti pada persamaan dibawah ini (Intan Rolly & Defeng Andrew, 2005): w = tf x idf w = tf x log N/n Keterangan : w = bobot kalimat terhadap dokumen tf = jumlah kemunculan kata dalam dokumen N = jumlah semua dokumen yang ada dalam database n = jumlah dokumen yang mengandung kata Berdasarkan rumus diatas, berapapun nilai tf, apabila N = n maka akan didapatkan hasil 0 (nol) untuk perhitungan idf. Untuk itu dapat ditambahkan nilai 1 (satu) pada sisi idf sehingga perhitungan bobotnya menjadi sebagai berikut: w = tf x (log(N/n)+1) Untuk perhitungan bobot edge akan digunakan persamaan berikut (Sjobergh Jonas & Araki Kenji, 2005): Cost[i,j] = (i - j)² Overlap[i,j]*weight[j] Nilai overlap[i,j] diperoleh dengan menghitung jumlah kata yang sama antara kalimat ke-i dan kalimat ke-j dengan mengabaikan stopword yang ada di dalam 26 kalimat-kalimat tersebut. Kemudian hasil dari kalimat diatas akan digunakan untuk menentukan nilai relasi dari setiap kalimat berdasarkan hasil pemetaan dari artikel. 2.10. Model Pengembangan Perangkat Lunak Pengembangan perangkat lunak ini menggunakan pendekatan model proses Prototype. Tahapan yang dilakukan adalah sebagai berikut: 1. Pengumpulan kebutuhan Mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat. 2. Membangun prototyping Membuat perancangan sementara yang berfokus pada penyajian kepada pengguna (misalnya dengan membuat input dan format output) 3. Evaluasi prototyping Evaluasi ini dilakukan oleh pengguna apakah prototyping yang sudah dibangun telah sesuai dengan yang diharapkan. Jika sudah maka langkah 4 akan diambil. Jika tidak prototyping akan direvisi dengan mengulang langkah 1, 2, dan 3. 4. Mengkodekan sistem Dalam tahap ini prototyping yang sudah disepakati diterjemahkan ke dalam bahasa pemrograman. 5. Menguji sistem Setelah sistem menjadi suatu perangkat lunak yang siap pakai, harus dites dulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, dan lain-lain. 6. Evaluasi sistem Pengguna mengevaluasi apakah sistem yang sudah jadi sesuai dengan yang diharapkan. Jika ya, langkah 7 dilakukan. Jika tidak, ulangi langkah 4 dan 5. 7. Menggunakan sistem Perangkat lunak yang telah diuji dan diterima pengguna siap untuk digunakan. 27 2.11. PHP Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs Personal). Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang PHP: Hypertext Preprocessing. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. Fungsi PHP secara umum adalah untuk membuat sebuah web yang interaktif dan dinamis. Untuk dapat menjalankan PHP pada sebuah web server, diperlukan sebuah web server. PHP 4 bukan merupakan versi terakhir yang sudah dikeluarkan oleh PHP, tapi versi ini masih banyak digunakan oleh para programmer website. PHP 5 merupakan kelanjutan dari evolusi yang berjalan pada PHP. PHP 5 menawarkan peningkatan dari fungsionalitas dan penambahan beberapa fitur, antara lain: a. Peningkatan dari kemampuan pemrograman berorientasi obyek. b. Exception handling, yang menstandarisasi logika atas pemberitahuan kesalahan pemrograman. c. Peningkatan terhadap penanganan string. d. Peningkatan dukungan terhadap XML dan Web Service, yang menggunakan libxml2. e. Dukungan terhadap SQLite database server. Berikut adalah beberapa kelebihan PHP dibandingkan dengan bahasa pemrograman web lainnya : 1. Praktis dalam penulisan buat para penggunanya. 2. Cepat dan Powerful. 3. Harga yang murah. 28 4. Cross Platform atau dapat dipakai di hampir semua web server dengan konfigurasi yang relatif mudah untuk dijalankan pada berbagai sistem operasi, seperti Linux, Unix, Windows, dan Mac. 5. Selalu up to date mengikuti perkembangan teknologi internet. Salah satu kelemahan PHP dibandingkan dengan bahasa pemrograman web lainnya adalah PHP memiliki kelemahan pengamanan (security) tertentu apabila programmer tidak jeli dalam melakukan pemrograman dan kurang memperhatikan isu dan konfigurasi PHP.