BAB 2 TINJAUAN PUSTAKA 2.1 Teori Umum 2.1.1 PHP Hypertext Preprocessor PHP Hypertext Preprocessor (PHP) merupakan salah satu yang banyak digunakan sebagai server-side scripting language untuk mengembangkan aplikasi berbasis web. PHP adalah backbone dari aplikasi seperti Facebook, Flickr, dan Yahoo. Ada beberapa server-side scripting language yang tersedia untuk mengembangkan aplikasi web, tetapi PHP lebih mudah digunakan bagi pemula karena menyediakan kemudahan dalam banyak hal untuk mengembangkan sebuah web (Lengstorf & Hansen, 2014:xxi). 2.1.2 PHP Framework Framework adalah sekumpulan potongan dari potongan code yang disimpan dalam file terpisah untuk menyederhanakan operasi coding berulang. Dengan kata lain framework merupakan suatu kerangka kerja dimana dapat memudahkan suatu pekerjaan. Jika dihubungkan dengan PHP, maka PHP Framework dapat diartikan sebagai kerangka kerja yang telah terpola dan memberikan kemudahan dalam pembuatan website yang menggunakan script PHP (Upton, 2007:12-13). 2.1.3 Model-View-Controller Model-View-Controller (MVC) adalah metode pengorganisasian file yang dapat membuat sebuah website dengan cara membagi website menjadi bagian-bagian fungsi yang terpisah. Bagian yang dipisahkan meliputi data (model), tampilan (view), dan cara bagaimana memprosesnya (controller) (Upton, 2007:27-28). Arsitektur MVC (Model-View-Controller) digunakan untuk membuat aplikasi yang menargetkan pada perkembangan sistem yang lebih mudah untuk 5 6 di maintainance dan perbaikan yang lebih baik serta memberikan pilihan untuk menambahkan(additional) atau mengurangi (reducing) code. (Utpatadevi, Sudana, & Cahyawan, 2012:1-2). 2.1.4 Code Igniter Code Igniter (CI) merupakan sebuah alat yang dirancang untuk membuat bahasa pemrograman PHP lebih mudah digunakan. Jika kita telah menulis code dalam PHP, Code Igniter akan mengurangi jumlah code yang anda ketik, script akan lebih mudah dibaca, dan di update. Selain itu Code Igniter akan membantu kita untuk membuat sebuah website yang besar dengan struktur yang koheren (Upton, 2007:7). 2.1.5 JavaScript JavaScript adalah bahasa pemrograman yang digunakan dalam pengembangan web browser. JavaScript merupakan bahasa pemrograman yang penting karena bahasa pemrograman ini yang paling populer di dunia. Pada bahasa pemrograman JavaScript, seorang programmer dapat menyelesaikan pekerjaan yang dilakukan tanpa harus mempelajarai atau mengetahui lebih dalam mengenai JavaScript (Crockford, 2008:2). 2.1.6 jQuery jQuery merupakan open source JavaScript library yang digunakan untuk mempermudah interaksi di antara dokumen HyperText Markup Language (HTML). Secara khusus, jQuery dapat mempermudah manipulasi dokumen HTML, browser event handling, DOM animations, Ajax interactions, dan cross-browser JavaScript development (Lindley, 2009:1-2). 7 2.1.7 Asynchronous Javascript And XML Asynchronous Javascript And XML (AJAX) adalah bahasa pemrograman yang lebih dari seperangkat teknologi. Ajax berperan dalam pembuatan serta pengembangan halaman web dan aplikasi ke arah yang lebih baru. Ajax juga merupakan istilah yang digunakan untuk mencakup seperangkat teknologi termasuk HTML, XHTML, SVG, JavaScript, CSS, XSLT, browser objects, dan teknologi lain (Powers, 2007:ix). AJAX merupakan aplikasi web yang digunakan untuk mengambil data dari server secara asynchronous tanpa mengganggu tampilan dan perilaku dari halaman yang ada (Kumar & Aravazhi, 2013:563-568). 2.1.8 JavaScript Object Notation JavaScript Object Notation (JSON) adalah format penukaran data yang ringan. Hal ini berdasarkan pada objek notasi literal JavaScript (JavaScript’s object literal notation) yang merupakan salah satu bagian terbaik dari JavaScript. JSON merupakan bahasa yang berdiri sendiri (independen) meskipun JSON adalah bagian dari JavaScript itu sendiri (Crockford, 2008:136). 2.1.9 HyperText Markup Language HyperText Markup Language (HTML) adalah bahasa pemgrograman yang relative tidak terstruktur (unstructured language) untuk membuat sebuah halaman website. HTML merupakan suatu basis untuk menampilkan sebuah halaman website dengan menggunakan tag-tag atau suatu tanda yang memiliki fungsi tertentu (Robson & Freeman, 2005:x-xv). 2.1.10 eXtensible Markup Language eXtensible Markup Language (XML) merupakan suatu bahasa yang dapat digunakan untuk menggambarkan dan mengelola data dalam berbagai struktur untuk maksud serta tujuan yang diinginkan. Ini merupakan tingkat lanjut dari Hypertext Markup Language (HTML) yaitu bahasa standar untuk 8 internet. XML terletak pada inti web service, yang digunakan untuk mendeskripsikan data. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan komunikasi aplikasi eksternal dengan partner luaran (Fawcett, Quin, & Ayers, 2012:xxvii). 2.1.11 Document Object Model Document Object Model (DOM) merupakan sebuah pohon atau hirarki JavaScript Node Objects. DOM menyediakan Application Programming Interface (API) untuk dokumen eXtensible Markup Language (XML) dan HyperText Markup Language (HTML). DOM bertujuan untuk menyediakan antarmuka program (programmatic interface) untuk scripting (mendefinsikan struktur logika, cara mengakses, menghapus, menambah, mengganti, eventing, dan modifikasi) live document menggunakan JavaScript (Lindley, DOM Enlightenment, 2013:1-2). 2.1.12 Cascading Style Sheets Cascading Style Sheets (CSS) adalah bahasa yang mendefinisikan style constructs seperti ukuran, warna dan posisi yang digunakan untuk menggambarkan informasi pada sebuah format dan tampilan halaman website. Selain itu style sheets berisi style rules yang menerapkan styles untuk elemen dari jenis yang diberikan. Ketika CSS digunakan secara eksternal, style sheet rules ditempatkan dalam sebuah style sheet dokumen eksternal dengan ekstensi “.css”. Style rule merupakan suatu format instruksi yang diterapkan ke sebuah elemen pada halaman website, seperti teks atau link. Style rule terdiri dari satu atau lebih style properties dan nilai-nilai yang terkait. Jika menggunakan internal style sheet, maka ditempatkan langsung dalam halaman website, sedangkan style sheet eksternal terletak dalam dokumen yang terpisah dan secara mudah dapat dihubungkan ke halaman website melalui special tag (Meloni & Morrison, 2009:48). 9 2.1.13 Bootstrap Twitter Bootstrap merupakan CSS framework yang menyediakan banyak elemen user interface, layouts, dan jQuery plugins. Bootstrap bersifat open source dan salah satu proyek yang paling populer di Github. Bootstrap berisi sebuah top-notch, responsive mobile-first grid yang memungkinkan kita untuk menerapkan desain pada sebuah breeze. Selain itu Bootstrap menyediakan styles untuk typography, navigation, tables, forms, buttons dan lainnya. Bootstrap menyediakan beberapa jQuery plugins, seperti Modal, Dropdown, Tooltip, dan Carousel yang sering berguna ketika mendesain sebuah website. Maka dari itu Bootstrap sangat umum dan bermanfaat untuk mendesain halaman sebuah website (Niska, 2014:5-6). 2.1.14 Extreme Programming (XP) Extreme Programming (XP) adalah metodologi berulang, berfokus pada kerja antar tim yang membutuhkan kolaborasi antara pelanggan dan pengembang, dengan adanya umpan balik dari pelanggan didalam siklus akan mendukung dalam pengembangan software lebih cepat (Sohaib & Khan, 2011:51). Pressman (2010:72-77) mengemukakan extreme programming (XP) menggunakan pendekatan berorientasi objek sebagai paradigma pengembangan yang lebih disukai dan mencakup seperangkat aturan dan praktek-praktek yang hadir dengan empat kerangka kerja, yaitu: Gambar 2.1 The XP Process (Pressman 2010:73) 10 1. Planning Planning merupakan tahap mendengarkan dan mengumpulkan kebutuhan untuk perangkat lunak. 2. Design Design merupakan tahap perancangan yang mengikuti prinsip keep it simple. Design yang sederhana lebih dipilih daripada design yang kompleks. Selain itu, design memberikan panduan implementasi rencana yang tidak lebih dan juga tidak kurang. 3. Coding Coding merupakan tahap mengembangkan serangkaian unit tests yang akan melaksanakan setiap rencana yang akan disertakan dalam rilis (software increment). Setelah kode selesai dibuat, kode dapat diuji sehingga memberikan umpan balik kepada para pengembang. 4. Testing Testing merupakan tahap integrasi dan validasi pengujian sistem yang dapat terjadi setiap hari. Pada tahap ini dilakukan customer test yang berfokus pada keseluruhan fitur dan fungsi yang dapat ditinjau oleh customer. Selain itu terdapat acceptance test yang berasal dari umpan balik dari customer yang telah dilakukan sebagai bagian dari software release. 2.1.15 Alpha Testing Alpha Testing merupakan suatu pengujian perangkat lunak (software) oleh beberapa perwakilan dari pengguna akhir (end users). Pengujian dilakukan oleh pengguna yang ahli dalam bidang terkait bersama dengan pengembang (developer) untuk mencatat kesalahan dan masalah pengguna (Pressman, 2010:469). 2.1.16 Beta Testing Beta Testing merupakan suatu pengujian perangkat lunak (software) oleh lebih banyak perwakilan dari pengguna akhir (end users). Pengujian 11 dilakukan oleh end user tanpa didampingi oleh pengembang (developer). End users yang akan mencatat kesalahan yang ditemui sehingga dapat dilaporkan kepada developer secara berkala untuk dilakukan revisi atau perbaikan lebih lanjut (Pressman, 2010:469). 2.1.17 The Eight Golden Rules of Interface Design Shneiderman dan Plaisant (2010:88) mengemukakan delapan aturan emas untuk merancang desain antarmuka (the eight golden rules of interface design) adalah prinsip dasar untuk mendesain suatu pengguna antarmuka (user interface). Prinsip dasar untuk mendesain user interface adalah sebagai berikut: 1. Strive for Consistency Strive for consistency merupakan prinsip dasar agar desain user interface dapat konsisten. Prinsip konsistensi ini dapat digunakan pada prompt, menus, help screens, warna, tata letak, kapitalisasi, ukuran, dan pada hal lain yang dianggap perlu. 2. Cater to Universal Usability Cater to universal usability merupakan prinsip dasar untuk memfasilitasi user dengan informasi yang dibutuhkan melalui shortcut agar meningkatkan kecepatan interaksi. 3. Offer Informative Feedback Offer informative feedback merupakan prinsip dasar untuk memberikan umpan balik (feedback) pada setiap tindakan user. 4. Design Dialogs to Yield Closure Design dialogs to yield closure merupakan prinsip dasar untuk menghasilkan penutupan akhir dari suatu urutan tindakan. 5. Prevent Errors Prevent errors merupakan prinsip dasar untuk merancang sistem agar user tidak membuat kesalahan yang fatal dan menyediakan penanganan kesalahan yang sederhana. 12 6. Permit Easy Reversal of Actions Permit easy reversal of actions merupakan prinsip dasar untuk menyediakan dan memudahkan user untuk kembali ke tindakan sebelumnya. 7. Support Internal Locus of Control Support internal locus of control merupakan prinsip dasar untuk memudahkan user untuk bernavigasi dengan bebas. 8. Reduce Short-Term Memory Load Reduce short-term memory load merupakan prinsip dasar untuk menyediakan interface yang mudah dipahami dan diingat sehingga mengurangi beban ingatan jangka pendek user. 2.1.18 Responsive Web Design Responsive Web Design merupakan suatu cara untuk menyampaikan pengalaman pengguna (user experience) ke seluruh perangkat (device) secara optimal, termasuk tablets, smartphones, feature phones, laptops, dan large screens. Responsive web digunakan untuk membuat sebuah desain yang dioptimalkan untuk menyesuaikan ukuran layar dan kemampuan dari device. Responsive web design memungkinkan kita menampilkan website yang baik untuk seluruh user, terlepas dari device yang mereka gunakan (Peterson, 2014:x). 2.1.19 Object-Oriented Programming Object-Oriented Programming (OOP) merupakan pelaksanaan pemrograman yang baik untuk membuat proyek agar dapat dikelola dengan lebih mudah. OOP menyediakan fasilitas untuk membuat obyek yang dapat digunakan kembali oleh pembuat obyek atau pengembang lain tanpa membuat ulang obyek. OOP dapat mengurangi kesulitan dalam menulis dan mengelola aplikasi besar (Hayder, 2007:9). 13 2.1.20 Unified Modeling Language Whitten dan Bentley (2007:371) mengemukakan unified modeling language (UML) merupakan seperangkat ketentuan yang digunakan untuk merincikan atau menggambarkan suatu sistem perangkat lunak (software system) dalam obyek-obyek. 2.1.21 Use-Case Diagram Whitten dan Bentley (2007:246) mengemukakan use-case diagram merupakan diagram yang menggambarkan interaksi antara sistem, eksternal sistem dan pengguna. Use-case narrative merupakan deskripsi secara teks dari proses bisnis dan bagaimana pengguna (user) akan berinteraksi dengan sistem untuk menyelesaikan tugas. Gambar 2.2 Contoh Use-Case Diagram (Whitten & Bentley 2007:246) Use-Case Diagram diawali oleh pengguna eksternal (external users) yang disebut dengan aktor (actors). Terdapat empat tipe aktor yang utama, yaitu: 14 1. Primary business actor Merupakan stakeholder yang mendapatkan keuntungan dari pelaksanaan use-case. 2. Primary system actor Merupakan stakeholder yang berhubungan langsung dengan suatu sistem dalam memulai suatu use-case. 3. External server actor Merupakan stakeholder yang menanggapi kebutuhan atau permintaan dari use-case. 4. External receiver actor Merupakan stakeholder yang bukan aktor utama, tetapi menerima sesuatu yang bernilai dari use-case. Gambar 2.3 Actor Symbol (Whitten & Bentley 2007:247) Hubungan (relationship) dalam sebuah use-case digambarkan sebagai sebuah garis antara dua simbol pada use-case diagram. Terdapat lima jenis relationship, yaitu: 1. Associations Merupakan relationship yang terjadi antara suatu actor dan use-case yang menggambarkan terjadinya interaksi di antara keduanya. 15 Gambar 2.4 Contoh Association Relationship (Whitten & Bentley 2007:248) 2. Extends Merupakan relationship yang menggambarkan langkah use-case yang lebih kompleks yang bertujuan untuk menyederhanakan masalah asli (original case) dan memperluas fungsionalitasnya. Gambar 2.5 Contoh Extends Relationship (Whitten & Bentley 2007:249) 3. Uses (or Includes) Merupakan relationship yang mengurangi pengulangan (redudancy) di antara dua atau lebih use-case lain dengan menggabungkan beberapa langkah umum yang ditemukan dalam kasus. 16 Gambar 2.6 Contoh Uses Relationship (Whitten & Bentley 2007:249) 4. Depends On Merupakan relationship yang menspesifikasikan suatu use-case lain harus dilakukan sebelum use-case tertentu dilakukan. Gambar 2.7 Contoh Depends Relationship (Whitten & Bentley 2007:250) 5. Inheritance Merupakan relationship yang digunakan untuk mengurangi pengulangan di antara aktor yang memiliki sifat umum yang sama sehingga terlihat lebih sederhana. 17 Gambar 2.8 Contoh Inheritance Relationship (Whitten & Bentley 2007:250) 2.1.22 Class Diagram Whitten dan Bentley (2007:400) mengemukakan class diagram merupakan diagram yang menggambarkan struktur obyek sistem dan menampilkan beberapa kelas obyek (object classes) yang terdiri dari hubungan (relationship) di antara object classes. 18 Gambar 2.9 Contoh Class Diagram (Whitten & Bentley 2007:406) Terdapat beberapa komponen penyusun dari class diagram, yaitu: 1. Dependency Relationships Komponen yang digunakan untuk menggambarkan asosiasi antara dua kelas dalam dua kejadian. (1) untuk menunjukkan ketika suatu perubahan terjadi di dalam satu kelas yang mungkin akan 19 mempengaruhi kelas lainnya, dan (2) untuk menunjukkan asosiasi antara kelas tetap (persistent class) dan kelas sementara (transient class). Gambar 2.10 Contoh Dependency Relationships (Whitten & Bentley 2007:650) 2. Navigability Komponen yang digunakan untuk menggambarkan asosiasi antara dua kelas dan disimbolkan dengan panah yang menunjuk langsung ke arah pesan yang dikirim. Gambar 2.11 Contoh Navigability (Whitten & Bentley 2007:650) 3. Visibility Komponen yang digunakan untuk menggambarkan tingkat akses suatu obyek eksternal yang memiliki sebuah atribut atau metode. Terdapat tiga tingkat (level) dari visibility, yaitu: 1. Public – disimbolkan dengan “+”. 2. Protected – disimbolkan dengan “#”. 3. Private – disimbolkan dengan “__”. 20 Gambar 2.12 Contoh Visibility (Whitten & Bentley 2007:651) 3. Inheritance Merupakan konsep yang mendefinisikan metode atau atribut dalam sebuah kelas obyek yang dapat diturunkan atau dapat digunakan kembali oleh kelas obyek yang lain. Gambar 2.13 Contoh Inheritance (Whitten & Bentley 2007:375) 4. Generalization / Specialization Merupakan teknik atau cara mengelompokkan (atau memisahkan) atribut dan tindakan yang umum dalam beberapa jenis dari kelas obyek ke dalam kelasnya masing-masing yang disebut supertype. 21 Gambar 2.14 Contoh Generalization / Specialization (Whitten & Bentley 2007:376) 5. Aggregation Merupakan suatu hubungan (realtionship) suatu kelas besar “keseluruhan” yang memuat beberapa bagian dari kelas kecil. Gambar 2.15 Contoh Aggregation (Whitten & Bentley 2007:379) 6. Multiplicity Merupakan nilai minimal atau maksimal kejadian dari sebuah kelas obyek untuk setiap satu kejadian dari kelas obyek yang saling berhubungan atau terkait. 22 Gambar 2.16 Contoh Multiplicity (Whitten & Bentley 2007:377) 7. Composition Merupakan sebuah hubungan kesatuan (aggregation relationship) yang “keseluruhan” bertanggung jawab untuk menciptakan dan menghancurkan dari “bagian-bagiannya”. 23 Gambar 2.17 Contoh Composition (Whitten & Bentley 2007:379) 2.1.23 Sequence Diagram Whitten dan Bentley (2007:394) mengemukakan sequence diagram merupakan diagram yang menggambarkan interaksi antara suatu aktor dan sistem untuk sebuah skenario use-case. 24 Gambar 2.18 Contoh Sequence Diagram (Whitten & Bentley 2007:395) Terdapat beberapa notasi dalam sequence diagram, yaitu: 1. Actor Menggambarkan simbol yang digunakan untuk insialisasi pada usecase actor. 2. System Suatu kotak yang mengindikasikan sistem sebagai “kotak hitam” atau sebagai suatu keseluruhan. Simbol titk dua “:” atau colon merupakan suatu standar notasi sequence mengindikasikan suatu sistem yang sedang berjalan. diagram untuk 25 3. Lifelines Merupakan garis vertikal putus-putus yang memanjang kebawah dari pelaku (actor) dan beberapa simbol sistem (system symbols) yang mengindikasikan urutan hidup. 4. Activation bars Merupakan kotak (bar) yang diletakkan di atas garis hidup (lifelines) untuk mengindikasikan periode waktu peserta yang sedang aktif di dalam interaksi. 5. Input messages Merupakan panah mendatar (horisontal) dari aktor ke sistem untuk mengindikasikan pesan yang masuk. 6. Output messages Merupakan panah mendatar (horisontal) dari sistem ke aktor yang digambarkan dengan garis putus-putus. 7. Reciever Actor Merupakan beberapa pelaku lain atau sistem luar (external systems) yang menerima beberapa pesan dari sistem termasuk di dalamnya. 8. Frame Merupakan sebuah kotak (box) yang berisi satu atau lebih pesan untuk membagi bagian (fragment) secara berurutan. 2.1.24 Activity Diagram Whitten dan Bentley (2007:390) mengemukakan activity diagram merupakan diagram yang menggambarkan aliran atau arus dari suatu proses bisnis. Merupakan beberapa langkah dari suatu use-case atau logika dari sebuah tindakan obyek (method). 26 Gambar 2.19 Contoh Activity Diagram (Whitten & Bentley 2007:392) 27 Terdapat beberapa notasi pada class diagram, yaitu: 1. Initial node Merupakan simbol lingkaran penuh yang menggambarkan tahap awal dari sebuah proses. 2. Actions Merupakan simbol elips yang menggambarkan tahapan-tahapan individual. 3. Flow Merupakan simbol panah yang menggambarkan proses dari suatu aksi ke aksi lainnya. 4. Decision Merupakan simbol belah ketupat (diamond shape) dengan satu aliran yang masuk dan dua atau lebih aliran yang keluar. Aliran yang keluar ditandai sebagai untuk mengindikasikan beberapa kondisi. 5. Merge Merupakan simbol belah ketupat (diamond shape) dengan dua atau lebih aliran yang masuk dan satu aliran yang keluar. Merge bertujuan untuk menggabungkan aliran yang sebelumnya dipisahkan oleh decision. 6. Fork Merupakan simbol kotak hitam (black bar) dengan satu aliran yang masuk dan dua atau lebih aliran yang keluar. Action pada garis sejajar berjalan di bawah fork dapat terjadi secara bersamaan. 7. Join Merupakan simbol kotak hitam (black bar) dengan dua atau lebih aliran yang masuk dan satu aliran yang keluar. Sebelum melanjutkan proses, semua action yang masuk ke dalam join harus selesai. 8. Activity final Merupakan simbol lingkaran penuh yang terdapat di dalam lubang lingkaran. Activity final menggambarkan akhir dari proses. 28 2.2.25 Natural Language Processing Natural Language Processing (NLP) merupakan suatu cabang ilmu komputer yang berfokus pada interaksi komputer dengan bahasa manusia (Suhartono, 2013). NLP dapat digunakan untuk memanipulasi bahasa alami (Natural Language). Teknologi NLP kini menjadi semakin luas. Misalnya saja telepon dan laptop sudah mendukung pengenalan tulisan tangan, web search engine memberikan akses ke informasi kunci dalam unstructured text (Bird, Klein, & Loper, 2009:ix). 2.1.26 Frequency Distribution Frequency Distribution adalah teknik menghitung jumlah kata yang muncul dalam sebuah teks kemudian dapat ditandai dengan grammar tagset (Bird, Klein, & Loper, 2009:181-189). 2.1.27 Algoritma Nazief dan Adriani Algoritma Nazief dan Adriani dikembangkan oleh Bobby Nazief dan Mirna Adriani pada tahun 1996 sebagai hasil penelitian internal Universitas Indonesia. Algoritma ini menggunakan metode pemotongan imbuhan serta pencarian kamus yang terdiri atas kata dasar. Algoritma ini memiliki tingkat akurasi stemming pada teks Bahasa Indonesia yang lebih baik dibandingkan dengan algoritma Porter. Proses stemming pada algoritma ini dilakukan dengan cara memotong imbuhan yang dilakukan secara rekursif. Serta mencari kata didalam kamus yang dilakukan sebelum tahap pemotongan (Telkom University, 2013). 2.1.28 Rocchio Relevance Feedback Metode Rocchio relevance feedback adalah strategi reformulasi query paling populer karena sering digunakan untuk membantu user pemula suatu information retrieval systems. Dalam siklus relevance feedback, kepada user disajikan hasil pencarian dokumen, setelah itu user dapat memeriksa dan 29 menandai dokumen yang benar-benar relevan (Yugianus, Dachlan, & Hasanah, 2013:48). Langkah-langkah dalam pengolahan query adalah sebagai berikut: 1) Tokenizing Tokenizing adalah tahap pemrosesan sebuah kata kunci menjadi unit kecil yang disebut token. Unit tersebut dapat berupa suatu kata, suatu angka, atau suatu tanda baca. 2) Filtering Tahap filtering adalah tahap mengambil kata-kata penting dari hasil tokenizing. Pada tahap ini kata-kata yang tidak deskriptif akan dibuang, misalnya “yang”, “dan”, “di”, “dari”. 3) Stemming Tahap stemming adalah tahap mencari kata dasar dari tiap kata hasil filtering. Pada tahap ini dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu representasi yang sama, misalnya kata “menghasilkan” akan menjadi “hasil”. 4) Term Weighting Pada tahap ini akan dilakukan penghitungan bobot tiap term yang dicari pada setiap dokumen sehingga dapat diketahui ketersediaan dan kemiripan suatu term di dalam dokumen. 2.1.29 Stop Word Stop word merupakan kata-kata yang sering muncul dalam dokumen tetapi tidak mempunyai keterkaitan dengan tema tertentu seperti di, oleh, pada, sebuah, dsb (Mustaqhfir, Abidin, & Kusumawati, 2011:137). 2.2 Teori Khusus 2.2.1 Undang-Undang Undang-Undang (UU) adalah Peraturan Perundang-undangan yang dibentuk oleh Dewan Perwakilan Rakyat dengan persetujuan bersama 30 Presiden. Undang-undang memiliki kedudukan sebagai aturan main bagi rakyat untuk konsolidasi posisi politik dan hukum, untuk mengatur kehidupan bersama dalam rangka mewujudkan tujuan dalam bentuk Negara (Kementerian Komunikasi dan Informatika Republik Indonesia, 2012). 2.2.2 Struktur UU (dibaca : UU no 12 tahun 2011) Undang-Undang No 12 Tahun 2011 (UU 12/2011) merupakan hasil penyempurnaan dari Undang-Undang no 10 tahun 2004 tentang pembentukan peraturan perundang-undangan yang telah dinyatakan tidak berlaku. Selain perubahan struktur kalimat dan sistematika, tidak banyak materi muatan baru dalam UU 12/2011 ini. Satu yang paling menarik perhatian adalah pencantuman kembali Ketetapan Majelis Pemusyawaratan Rakyat (TAP MPR) sebagai salah satu sumber hukum di Indonesia. Pasal 7 ayat (1) UU 12/2011 mengatur bahwa TAP MPR memiliki hierarki satu tingkat di bawah UndangUndang Dasar dan di atas peraturan perundang-undangan lainnya (Cahyaningrat, 2013). Dengan susunan sebagai berikut: 1. Undang-Undang Dasar Negara Republik Indonesia 1945 2. Ketetapan Majelis Permusyawaratan Rakyat 3. Undang -Undang / Perautran Pemerintahan Pengganti Undang-Undang (Perppu) 4. Peraturan Pemerintah 5. Peraturan Presiden 6. Peraturan Daerah Provinsi 7. Peraturan Daerah Kabupaten / Kota