Inverted Index Tabel Hash HashTable

yang muncul beberapa kali dan menuliskan kembali jumlah kemunculan istilah tersebut dengan menunjuk kumpulan dokumen yang memiliki istilah tersebut. Gambar 2.5 Proses Pengindeksan

2.3.1 Inverted Index

Salah satu cara dalam melakukan pengindeksan adalah dengan cara Inverted Index . Indeks yang sebenarnya adalah pemetaan kembali istilah terms pada suatu dokumen dimana mereka muncul Manning et al, 2009. Gambaran untuk indeks dapat dilihat pada Gambar 2.5. Pada Gambar 2.6 dapat dilihat bahwa konsep Inverted Index memiliki dua bagian, bagian pertama adalah Dictionary dan bagian kedua adalah Posting. Dictionary adalah istilah yang kemudian menunjuk pada Posting. Posting adalah kumpulan dokumen dengan suatu istilah terdapat. Gambar 2.6 Inverted Index

2.3.2 Tabel Hash HashTable

Tabel Hash adalah struktur data yang sangat cepat dalam melakukan penyisipan dan pencarian. Tidak tergantung berapa data yang terdapat, penyisipan dan pencarian dan terkadang penghapusan dapat memakan waktu yang hampir sama yaitu O1 dalam notasi O Sommerville, 2011. 2.3.3 Kelas ArrayList Objek ArrayList dapat juga dianggap sebagai perkembangan dari larikarray satu dimensi. Sama seperti larik, objek ArrayList juga mendukung untuk melakukan random access element, dimana setiap elemennya dapat diakses dalam waktu yang konstan. Tetapi tidak seperti larik yang ukuran dari objek ArrayList dapat secara otomatis dapat dikelola saat program sedang berjalan Sommerville et al, 2009. Di sini akan menjelaskan sifat pada ArrayList itu sendiri: 1. Posisi relatif pada setiap elemen dalam objek ArrayList diberikan oleh indeks yang dari bilangan bulat dengan rentang dari 0 sampai n-1, dimana n mewakili jumlah dari elemen dalam objek ArrayList. 2. Elemen pada indeks dalam objek ArrayList dapat diakses dalam waktu yang konstan. 3. Untuk menghapus elemen pada indeks yang sudah diberikan, worstTimen adalah On. Untuk lebih spesifik, worstTimen, indeks adalah On - indeks, sehingga penghapusan di sekitar awal dari ArrayList memakan waktu lebih lama dibandingkan penghapusan di sekitar pertengahan, dan keduanya memakan waktu lebih lama dibandingkan penghapusan di sekitar akhir. 4. Untuk penyisipan di sekitar akhir dari objek ArrayList yaitu, pada indeks n, avarageTimen adalah konstan. Tetapi jika elemen dari objek ArrayList sudah menempati seluruh alokasi ruang untuk objek ArrayList dan penyisipan pada indeks n akan tetap diusahakan, alokasi ruang akan secara otomatis menambahkan ukurannya dan penyisipan akan dilakukan. Sejauh ini penambahan ruang yang disertai penyisipan, worstTimen adalah On, tetapi untuk n pada akhir penyisipan, worstTimen tetap sama dengan On. 5. Untuk penyisipan pada indeks, jika penyisipan tidak membutuhkan penambahan ruang, maka worstTimen sama dengan On. Untuk lebih spesifik, worstTimen, indeks sama dengan On - indeks. Dengan kata lain, penyisipan di sekitar awal objek ArrayList lebih lama dibandingkan penyisipan di sekitar tengah dan keduanya memakan waktu lebih lama daripada penyisipan sekitar akhir. Melihat bahwa larik memiliki seluruh sifat yang sama, kecuali bagian keempat: penambahan ruang untuk larik yang penuh tidak akan bertambah secara otomatis. Maka dari itu larik sudah dibuat dengan ruang cukup untuk menampung sejumlah n elemen. Jika elemen n telah tersimpan pada indeks 0 sampai dengan n – 1 dan berusaha untuk menyisipkan elemen baru pada indeks n, maka akan menimbulkan ArrayIndexOutOfBound. Untuk menghindari pengecualian tersebut, jelas pengubah ukuran dibutuhkan.

2.4 Searching