PENDAHULUAN TINJAUAN PUSTAKA ANALISIS DAN PERANCANGAN SISTEM IMPLEMENTASI DAN PENGUJIAN SISTEM KESIMPULAN DAN SARAN ANALISIS DAN PERANCANGAN SISTEM

I.6 Sistematika Penulisan

Sistematika penulisan yang terdapat dalam penelitian ini adalah:

BAB I PENDAHULUAN

Bab I akan membahas tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian yang kemudian diikuti dengan pembatasan masalah, asumsi, serta sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Bab II akan membahas berbagai konsep dasar, hal-hal yang mengenai perangkat lunak dodo kids browser dan hal-hal yang berguna dalam proses analisis pengembangan perangkat lunak dodo kids browser.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab III akan membahas tentang analisis sistem yang berjalan pada perangkat lunak dodo kids browser, analisis serta perancangan sistem untuk pengembangan yang akan dilakukan pada perangkat lunak dodo kids browser.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab IV akan memaparkan hasil implementasi dari analisis yang dilakukan sebelumnya dan perancangan sistem yang dilakukan, serta hasil pengujian sistem untuk mengetahui apakah perangkat lunak yang dibangun sudah memenuhi kebutuhan.

BAB V KESIMPULAN DAN SARAN

Bab V berisi kesimpulan dan saran untuk perbaikan dan menindaklanjuti hasil penelitian yang nantinya akan berguna bagi dodo project tim. 7

BAB II TINJAUAN PUSTAKA

II.1. Perangkat Lunak Dodo Kids Browser

Dodo kids browser adalah perangkat lunak untuk mengontrol dan mengawasi anak-anak dalam kegiatan menggunakan internet, dimana anak-anak dapat mengeksplorasi internet dengan aman dan orang tua tidak merasa khawatir tentang bahaya penggunaan internet yang dilakukan oleh anak. . Dodo Kids Browser berbentuk Extension yang dipasang pada web browser desktop, hal tersebut digunakan sebagai fungsi tambahan pada aplikasi web browser untuk melakukan filtering dengan menggunakan algoritma Naïve bayes. Ketika anak melakukan pencarian dengan menggunakan keyword yang mengandung kata negative, maka aplikasi ini akan melakukan blocking website, sehingga memungkinkan mengamankan aktivitas browsing yang dilakukan anak.

II.1.1 Fitur Dodo Kids Browser

Dodo kids browser memiliki beberapa fitur utama, yaitu : 1. Surfior Fitur untuk menyaring penggunaan internet anak-anak. 2. Notifior Fitur untuk memberikan pemberitahuan ketika anak-anak terindikasi mengakses konten yang negatif. 3. Reportior Fitur reportior berpua laporan tentang penggunaan internet anak-anak, laporan tersebut berupa tabel.

II.2. Landasan Teori

Landasan teori merupakan penjelasan berbagai konsep dasar dan teori-teori yang berkaitan dalam analisis peningkatan akurasi pada perangkat lunak dodo kids browser.

II.2.1 Web browser

Web browser adalah perangkat yang digunakan untuk mengakses halaman website dan menampilkan informasi yang disediakan server web. Informasi yang ditampilkan pada Web browser dapat berupa text, gambar, suara maupun video [5]. Web browser biasanya sudah tersedia di sistem operasi yang digunakan, seperti pada sistem operasi windows, sudah tersedia web browser internet explorer, namun menurut data statistik w3school pada tahun 2015, web browser yang sering digunakan untuk browsing adalah google chrome, firefox, dan opera [7].

II.2.2 Extension Browser

Extension browser adalah perangkat lunak kecil yang ditanamkan pada web browser untuk menambah fungsionalitas tertentu dari web browser. Extension browser berinteraksi dengan halaman web yang dibuka melalui skrip tertentu yang dapat digunakan untuk membaca address bar maupun isi dari halaman web. Beberapa Extension browser ditulis menggunakan teknologi web seperti html, javascript, dan css. Extension browser dapat mengubah antarmuka yang ditampilkan di web browser melalui proses yang tidak terlihat atau proses yang berjalan dibelakang layar [6].

II.2.3 JSON

JSON kepanjangan dari JavaScript Object Notation adalah format data interchange-ringan yang sangat mudah dibaca dan ditulis. Hal ini didasarkan pada subset dari bahasa pemrograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang benar-benar bahasa independen tetapi menggunakan konvensi yang akrab bagi programmer dari C, termasuk C , C ++, C , Java, JavaScript, Perl, Python, dan banyak lainnya. Properti ini membuat JSON menjadi bahasa data interchange yang ideal. JSON dibentuk oleh dua struktur, yaitu collection dari nama atau value pairs. Dalam berbagai bahasa, ini direalisasikan object, record, struct, dictionary, hash table, keyed list, atau associative array. Selain itu ordered list dari value. Dalam kebanyakan bahasa, ini dinyatakan sebagai array, vector, list, atau sequence. Berikut merupakan bentuk dari JSON. Object merupakan unordered set dari nama atau value pairs dimulai dengan {kurung kurawal kiri dan diakhiri dengan} kurung kurawal kanan. Setiap nama diikuti dengan: titik dua dan nama atau value pairs dipisahkan oleh, koma. Gambar II.1 Object Pada JSON Array merupakan ordered list dari value. Array dimulai dengan [kurung siku kiri dan diakhiri dengan] kurung siku kanan. Value dipisahkan oleh, koma. Gambar II.2 Array Pada JSON Value dapat menjadi string dalam tanda kutip ganda, number, true, false, null, object, ataupun array. Selain itu struktur ini dapat berupa nested. Gambar II.3 Value Pada JSON Sebuah string adalah urutan nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda, menggunakan escape backslash. Sebuah karakter yang direpresentasikan sebagai string karakter tunggal. Sebuah string sangat mirip seperti C atau Java string. Gambar II.4 Unicode Pada JSON Number sangat mirip C atau Java number, terkecuali format oktal, dan heksadesimal yang tidak digunakan[7].

II.2.4 Web Service

Web Service adalah teknologi yang diisi sekumpulan method. Web service terletak pada server yang terhubung ke internet dan dapat diakses oleh berbagai piranti dengan menggunakan perantara tertentu. Teknologi tersebut digunakan untuk memudahkan beberapa aplikasi atau komponennya untuk saling berhubungan dengan aplikasi lain, tanpa terikat bahasa pemrograman yang digunakan [8].

II.2.5 Microsoft Azure

Microsoft Azure merupakan platform cloud computing yang disediakan oleh Microsoft. Microsoft Azure menyediakan berbagai macam layanan yang dapat digunakan pengembang perangkat lunak untuk menyelesaikan tugas-tugas yang mungkin tidak sesuai dalam lingkungan lokal. Misalkan komputasi, storage, termasuk web service. Dengan menggunakan Windows Azure, pengembang dapat membuat aplikasi web, tempat penyimpanan data suatu aplikasi, jembatan koneksi antar platform, dan melakukan push notification yang disimpan dan diproses di cloud [9].

II.2.6 Preprocessing

Preprocessing adalah tahap yang dilakukan sebelum proses klasifikasi teks. Tujuan preprocessing tersebut adalah untuk lebih memudahkan dan mengefektifkan proses mining. Tahap yang dilakukan pada preprocessing adalah Cleansing, Case Folding, Tokenizing, Stopping dan Stemming. Berikut ini penjelasan tahap-tahap yang dilakukan pada preprocessing [11]: 1. Cleansing Data cleansing adalah proses membersihkan data dari item data yang tidak memberikan informasi berguna dalam analisis selanjutnya. Selain simbol seperti slash , “http:www”, domain dan angka akan dihapus, karena hal-hal tersebut dianggap tidak memberikan informasi yang berguna. 2. Case Folding Case Case Folding disini merupakan tahapan merubah semua inputan huruf menjadi lower case. Hal tersebut dilakukan agar mempermudah dalam proses langkah-langkah selanjutnya seperti stopping, dan stemming. 3. Stopping Proses ini adalah proses menghilangkan kata yang tidak relevan, agar tidak menimbulkan kerancuan dalam proses pengklasifikasian. Proses penghilangan kata dilakukan dengan cara melakukan pencocokan kata yang dimasukan dengan stoplist. Jika ditemukan kata yang termasuk pada stoplist ,maka kata tersebut akan dihilangkan. 4. Tokenizing Tokenizing merupakan tahapan melakukan pemecahan suatu gabungan dua kata atau lebih atau dapat disebut juga seperti suatu frasa atau kalimat sehingga menjadi persatu satu. 5. Stemming Kata-kata yang muncul pada dalam dokumen sering kali mengandung imbuhan. Oleh karena itu, setiap kata yang tersisa dari proses hasil tahapan stopword removal dibentuk ke dalam kata dasar dengan cara menghilangkan imbuhannya.

II.2.7 Pembobotan TF-IDF

Pada penelitian yang dilakukan oleh Bruno Trstenjak, Sasa Mikac dan Dzenana Donko pada penelitian “KNN with TF-IDF Based Framework for Text Categorization” menunjukan, dengan mengkombanasikan algoritma klasifikasi KNN dan menggunakan metode pembobotan kata TF-IDF, menunjukan hasil klasifikasi yang baik [13]. Metode TF-IDF adalah metode yang dapat digunakan untuk mendapatkan bobot dari data training yang akan menentukan pengklasifikasian pada data testing [10]. Formula yang digunakan untuk menghitung bobot adalah W d,t =Tf d,t Idf t dengan, W = bobot dokumen ke-d Tf = frekuensi dari kemunculan sebuah term Idf = Nilai invers document frequency Rumus mencari nilai Idf adalah logddf dengan, Df = banyak term yang muncul pada dokumen ke-d D = dokumen ke d. Sebagai contoh, Tabel II-1 adalah dokumen-dokumen yang telah memiliki klasifikasi. Tabel II-1 Data Training Data Training Teks Term Klasifikasi d1 porn teen fuck sexy porn porn teen fuck sexy Bad d2 milf fuck porn fuck learn fuck milf fuck porn learn Bad d3 learn physics learn mathematics learn physics mathematics Good d4 porn massage hardcore porn massage sexy Bad Dari data training pada Tabel II-1 akan dilakukan klasifikasi dokumen baru, sebagai contoh data testing pada Tabel II-2 adalah dokumen yang akan diklasifikasikan. Tabel II-2 Data Testing Data Testing Teks Klasifikasi t1 learn fuck milf ? Tahap pertama yang dilakukan adalah menghitung Term frequency tf dan Document frequency df. Term frekuensi adalah frekuensi dari kemunculan sebuah term dalam yang bersangkutan, dan Document frequency df adalah jumlah file yang mengandung term yang bersangkutan, dimana nilai df selanjutnya digunakan untuk menghitung Nilai invers document frequency idf dari sebuah term. Proses perhitungan nilai Tf dan Idf dapat dilihat pada Tabel II-3. Tabel II-3 Proses Perhitungan TfIdf Term Df Ida test tf1 tf2 tf3 tf4 Learn 2 0.3010 1 1 2 Fuck 2 0.3010 1 1 3 Milf 1 0.6021 1 1 Porn 3 0.1249 2 1 1 Teen 1 0.6021 1 Sexy 2 0.3010 1 1 Physics 1 0.6021 1 mathematics 1 0.6021 1 Massage 1 0.6021 1 Setelah nilai tf dan idf ditemukan, proses penghitungan bobot dilakukan dengan mengalikan setiap nilai dengan mengalikan masing-masing nilai tf terhadap nilai idf. Sehingga didapatkan bobot pada masing-masing dokumen seperti pada . Tabel II-4 Hasil Pembobotan Term wtest w1 w2 w3 w4 Learn 0.3010 0.3010 0.6021 Fuck 0.3010 0.3010 0.9031 Milf 0.6021 0.6021 Porn 0.2499 0.1249 0.1249 Teen 0.6021 Sexy 0.3010 0.3010 Physics 0.6021 Mathematics 0.6021 Massage 0.6021

II.2.8 Algoritma K-Nearest Neighbor

Algoritma k-nearest neighbor KNN adalah algoritma yang digunakan untuk melakukan klasifikasi terhadap suatu objek, berdasarkan k buah data latih yang jaraknya paling dekat dengan objek tersebut. Syarat nilai k adalah tidak boleh lebih besar dari jumlah data latih, dan nila k harus ganjil dan lebih dari satu. Dekat atau jauhnya jarak data latih yang paling dekat dengan objek yang akan diklasifikasi, dapat dihitung dengan menggunkan metode cosine similiarity [11]. Cosine similiarity merupakan salah satu cara atau metode yang dapat digunakan untuk melihat sejauh mana kemiripan isi antar dokumen. Dalam hal ini cosine similiarity berfungsi untuk menguji ukuran yang dapat digunakan sebagai interpretasi kedekatan jarak berdasarkan kemiripan dokumen. Berikut ini adalah rumus untuk menghitung jarak pada algoritma KNN dengan metode cosine similiarity: ��� �� = ∑ � � √∑ � √∑ � Dengan, ��� �� = jarak antara dokumen � dan � � = nilai bobot pada dokumen k = jumlah tetangga terdekat Langkah pertama yang dilakukan untuk mengetahui jarak antar dokumen adalah dengan melakukan penghitungan perkalian skalar antara data testing dengan setiap data training. Setelah perkalian skalar dilakukan, hasil perkalian dari setiap data training dijumlahkan, dan panjang setiap dokumen dapat pun dapat ditentukan dengan cara menguadratkan bobot setiap term dalam setiap dokumen. Hasil perhitungan perkalian skalar antara data testing dengan setiap data training dengan menggunakan data yang ada pada Tabel II-4, dapat dilihat pada Tabel II-5. Hasil perhitungan cosine similiarity untuk menentukan kemiripan antar dokumen pada Tabel II-6. Tabel II-5 Hasil Perkalian Skalar Data Testing Dengan Data Training td i panjang vektor d1 d2 d3 d4 T d1 d2 d3 d4 0.0000 0.0906 0.1812 0.0000 0.0906 0.0000 0.0906 0.3625 0.0000 0.0906 0.2718 0.0000 0.0000 0.0906 0.0906 0.8156 0.0000 0.0000 0.0000 0.3625 0.0000 0.0000 0.3625 0.0000 0.3625 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0625 0.0156 0.0000 0.0156 0.0000 0.0000 0.0000 0.0000 0.0000 0.3625 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0906 0.0000 0.0000 0.0906 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.3625 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.3625 0.0000 Σ 0.0906 0.7250 0.1812 0.0000 0.5437 0.6062 1.2843 0.3625 0.0156 0.7374 0.7786 1.1333 1.0429 0.6864 Langkah selanjutnya adalah menerapkan rumus cosin similiarity. Rumus tersebut digunakan untuk mendapatkan tingkat kemiripan antara data testing dengan data training. Cost,d1 = 0.0 0 . ∗ . = 0.1578 Cosr,d2 = 0. . ∗ . = 0.8675 Cosr,d3 = . . ∗ . = 0.2357 Cosr,d4 = . . ∗ . = 0 Hasil perhitungan pengukuran tingkat kemiripan antara data testing dengan data training dapat dilihat pada tabel Tabel II-6. Tabel II-6 Hasil Perhitungan Kemiripan Data Testing Dengan Data Training Data training Jarak Klasifikasi d1 0.1578 Bad d2 0.8675 Bad d3 0.2357 Good d4 Bad Setelah didapatkan hasil perhitungan pengukuran jarak antara data testing dengan data training, maka langkah selanjutnya adalah mengurutkan data hasil perhitungan dari yang terbesar hingga yang terkecil. Data yang telah diurutkan dapat dilihat pada Tabel II-7. Tabel II-7 Hasil Pengurutan Data training Jarak Klasifikasi d2 0.8675 Bad d3 0.2357 Bad d1 0.1578 Good d4 Bad Langkah yang dilakukan setelah mengurutkan data hasil perhitungan dari yang terbesar hingga yang terkecil, adalah menentukan jumlah tetangga terdekat atau disimbolkan dengan k. pengambilan nilai k dilakukan secara bebas, asalkan nilai k yang diambil adalah angka ganjil, nilai k lebih dari satu dan nilai k tidak lebih besar dari data training. [11] sebagai contoh nilai k yang diambil disini adalah 3. Dengan k=3, maka didapat dokumen yang menjadi tetangga terdekat adalah D2 dengan klasifikasi bad, D3 dengan klasifikasi bad, dan D1 dengan klasifikasi good. Setelah diketahui sejumlah k objek yang terdekat dengan data yang diuji. Nilai kelas yang paling banyak muncul pada sejumlah k objek yang termasuk tetangga terdekat dijadikan hasil klasifikasi pada data testing. Karena data tetangga terdekat “Dt” memiliki dua buah dokumen yang memiliki kelas bad dan satu buah yang memiliki kelas good, maka dari itu “Dt” diklasifikasikan sebagai dokumen dengan kelas bad.

II.2.9 Object Oriented Analysis and Design

Object-Oriented Analysis and Design OOAD adalah suatu metode analisis dalam pembangunan perangkat lunak yang berorientasi pada objek yang saling berinteraksi satu sama lain untuk menyelesaikan suatu tugas. Analisis dilakukan dengan memeriksa kebutuhan berdasarkan sudut pandang kelas dan objek yang terdapat pada ruang lingkup permasalahan. OOAD dirancang untuk menutup kelemahan dari pemrograman berorientasi prosedural yang sulit untuk dikelola dan debug ketika kode yang dibuat telah mencapai beribu-ribu baris. Dengan pendekatan ini kode-kode program dipecah ke dalam beberapa segmen atau biasa disebut prosedur atau fungsi, sehingga memudahkan analis untuk melakukan analisis dalam membangun suatu perangkat lunak. Dalam memodelkan suatu analisis yang menggunakan metode OOAD, terdapat tools yang biasa digunakan untuk menggambarkan analisis yang dibuat, yaitu UML Unified Modeling Languages.

II.2.10 UML

UML Unified Modeling Language merupakan salah satu tools untuk memvisualisasikan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis OOP Object Oriented Programming. Diagram yang umum dipakai untuk desain suatu sistem adalah sebagai berikut [12]: 1. Diagram Use Case. Diagram Use case dapat digunakan untuk menggambarkan fungsionalitas dari sebuah sistem. Sebuah Use case diagram dapat merepresentasikan sebuah interaksi antara aktor dengan sistem. 2. Diagram Sequence. Diagram Sequence menggambarkan interaksi pada sistem dan digambarkan terhadap waktu. Oleh karena itu sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan keluaran tertentu. 3. Diagram aktivitas. Diagram aktivitas menggambarkan berbagai alur aktivitas suatu sistem, bagaimana masing-masing aliran berawal, decision yang mungkin terjadi, dan bagaimana akhir dari alur suatu aktivitas. Diagram aktivitas dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang melakukan aktivitas tertentu 4. Diagram kelas. Diagram kelas adalah sebuah diagram yang menggambarkan objek, atribut, dan method pada suatu sistem. Diagram kelas juga digunakan untuk menggambarkan keseluruhan hubungan objek. II.2.11 Confusion Matrix Confusion Matrix berisi informasi tentang klasifikasi aktual dan klasifikasi dari diprediksi. Metode ini menggunakan tabel matriks seperti pada Tabel II-8, jika data set hanya terdiri dari dua kelas, misalkan kelas yang satu dianggap sebagai good dan yang lainnya bad. Tabel II-8 Confusion Matrix Diklasifikasikan sebagai Predicted Class Good Bad Klasifikasi yang benar Actual Class Good True Good False Bad Bad False Good True Bad 2 True Good adalah jumlah record Good yang diklasifikasikan sebagai Good, false Good adalah jumlah record Bad yang diklasifikasikan sebagai Good, false Bad adalah jumlah record Bad yang diklasifikasikan sebagai Good, true Bad adalah jumlah record Bad yang diklasifikasikan sebagai Bad. Setiap kolom dari confusion matrix merupakan contoh di kelas yang telah diprediksi, sedangkan setiap baris mewakili contoh di kelas yang sebenarnya. Setelah didapat true Good, false Good, true Bad dan false Bad, selanjutnya hitung untuk menghitung nilai akurasinya. Berikut persamaan untuk menghitung akurasi. Accuracy = FalseBad TrueBad FalseGood TrueGood TrueBad TrueGood     19

BAB III ANALISIS DAN PERANCANGAN SISTEM

III.1 Analisis Sistem Analisis sistem di sini adalah tahap untuk mengidentifikasi permasalahan yang terjadi pada perangkat lunak dodo kids browser, dan menerapkan solusi yang dapat dimungkinkan untuk diterapkan. III.1.1 Analisis Masalah Permasalahan pada penelitian ini adalah bagaimana membuat fungsional yang dapat membaca halaman website yang akan dibuka, dan menggunakan algoritma KNN untuk klasifikasi website berdasarkan detil halaman yang dibaca. III.1.2 Analisis Perangkat Lunak Dodo Kids Browser Pada penelitian ini analisis sistem yang sedang berjalan dilakukan dengan melakukan wawancara kepada tim leader dodo kids browser. Berikut ini alur sistem pada perangkat lunak dodo kids browser : 1. Anak memasukan alamat website pada web browser 2. Extension browser mencocokan alamat website pada database 3. Extension browser dapat melakukan blok halaman atau membuka halaman berdasarkan kecocokan alamat website. 4. Alamat website yang belum terdapat dalam database disajikan pada platform mobile sebagai notifikasi ke platform mobile. 5. Extension browser dapat melakukan blok halaman atau membuka halaman sesuai dengan aksi yang dikirim dari platform mobile. 6. API digunakan untuk koneksi dan transfer data antar platform Extension browser dan mobile Dodo Kids Browser. III.1.3 Analisis Algoritma Pada bagian ini akan dijelaskan mengenai penggunaan algoritma dan alur proses yang terjadi. Sebelum memproses detail halaman website, pengecekan alamat website dilakukan terlebih dahulu. Pengecekan dilakukan dalam dua proses, yaitu mencocokan url website yang tidak memiliki konten negatif dan mencocokan url dari halaman website memiliki konten negatif. Jika url yang akan dibuka cocok dengan data url yang memiliki status bad pada database, maka halaman web tidak akan ditampilkan, jika cocok dengan data url yang memiliki status good pada database, maka selanjutnya akan dilakukan proses klasifikasi menggunakan algoritma klasifikasi yang mengklasifikasikan data detail halaman website. Algoritma yang digunakan pada untuk melakukan klasifikasi adalah algoritma K- Nearest Neighbour. Sebelum proses klasifikasi teks dengan menggunakan algoritma KNN dilakukan, teks perlu diberikan bobot terlebih dahulu. Hal tersebut karena algoritma KNN hanya bisa melakukan klasifikasi pada data yang sudah berupa angka. Pemberian bobot pada teks dapat dilakukan dengan menggunakan metode TF-IDF. Selain itu tahap preprocessing dilakukan terlebih dahulu sebelum proses pembobotan, agar data yang diberikan bobot lebih relevan. Setelah algoritma klasifikasi mengklasifikasi halaman website, maka sistem akan menampilkan push notification pada smartphone orang tua. Notifikasi tersebut berisi saran dan url yang akan dibuka. Saran yang diberikan untuk orangtua adalah good atau bad. jika hasil klasifikasi good. Setelah notifikasi dikirim akan ada jeda 15 detik untuk menunggu aksi mengizinkan atau tidak dari orang tua, jika orang tua memilih tombol untuk mengizinkan maka halaman web akan tampil, akan tetapi jika orang tua memilih tombol untuk tidak mengizinkan, maka web yang akan dibuka tidak ditampilkan melainkan akan ditampilkan halaman blok. Setelah data aksi dikirim oleh orang tua, maka data aksi ditambahkan ke data training, sehingga data aksi yang dikirim orang tua digunakan pada proses klasifikasi yang akan terjadi selanjutnya. Pada proses jeda menunggu aksi orang tua, terdapat kemungkinan orang tua akan melewatkan jeda tersebut untuk melakukan aksi, maka akan tampil pesan pada anak, yang menyatakan bahwa halaman yang akan dibuka tidak dapat menampilkan website untuk sementara waktu. Pada kondisi tersebut, maka halaman yang menyatakan website tidak dapat dibuka akan ditampilkan hingga orang tua mengklasifikasikan url tersebut pada proses selanjutnya, atau orang tua telah mengklasifikasikan url melalui tampilan untuk mengirim aksi. Data halaman website yang belum diklasifikasi akan tetap disimpan sebagai data testing pada database, dan akan ditampilkan pada bagian report untuk orang tua, untuk diklasifikasi oleh orang tua, setelah data aksi dikirim data aksi ditambahkan ke data Training, sehingga data aksi yang dikirim orang tua digunakan pada proses klasifikasi yang akan terjadi selanjutnya. III.1.4 Analisis Arsitektur Extension Browser Tahap analisis arsitektur ini adalah tahapan untuk mendapatkan gambaran mengenai Extension browser yang akan dibangun. Gambaran arsitektur Extension dapat dilihat pada Gambar III.1. Ekstension Browser Web Service Database 2. Content Script Content scripts merupakan file javascript yang dipanggil pada file manifest.json. Conten scripts digunakan untuk dapat berhubungan dengan web service, sehingga content script dapat mengirimkan detail web page dan dapat menerima hasil klasifikasi yang dilakukan pada web service. 3. Web Page Web Page disini adalah halaman website yang diimasukan dalam proses pada Extension browser. 4. Web Service Tempat dilakukanya proses perhitungan pembobotan teks, klasifikasi data dan komunikasi dengan database dilakukan. III.1.5 Analisis Sumber Data Berdasarkan paper penelitian klasifikasi website yang dilakukan Daniele Riboni, pengambilan sumber data yang digunakan untuk mengklasifikasikan suatu website adalah dengan menggunakan standar document object modelDOM, oleh karena itu pengambilan data dilakukan dengan menggunakan standar document object modelDOM. Sumber data yang diambil berupa teks yang dapat menjadi informasi mengenai halaman website yang dibuka. Berikut ini sumber data yang diambil menggunakan DOM dan digunakan untuk mengklasifikasikan web: 1. Title Title adalah tag pada html yang berisi judul dari suatu halaman website. Pada tag title data yang diambil berupa judul dari suatu website, misalkan pada haaman website “http:www.pornbub.comlearn-fuck-milf.html”, isi dari tag title pada website tersebut adalah “Pornbub”. 2. Body Body adalah tag yang merupakan isi dari halaman website, oleh karena itu tag body digunakan untuk mengambil teks pada halaman website. 3. URL URL didapatkan dari alamat website yang dimasukan pada kolom alamat website pada web browser. Misalkan alamat website yang disubmit pada web browser adalah “http:www.pornbub.comlearn-fuck-milf.html”, maka data yang disubmit tersebut dijadikan data URL, untuk digunakan pada proses selanjutnya. Data-data yang telah diambil selanjutnya disatukan menjadi satu teks. Proses penyatuan data dilakukan menggunakan metode penjumlahan teks pada javascript. Penyatuan menggunakan javascript, karena proses dilakukan pada file contentscript, yang didalam prosesnya menggunakan bahasa javascript. Miskalkan didapat data dari tag title : “Pornbub”, data dari tag body :”Wet Hot American Shower Sex | Story by Schneider | Stephen Schneider I love showering because the one time of day I finally get to be alone with my thoughts. So what the fuck are you doing in here right now? Nothing good ever came out of more than one person showering at the same time. Just ask Hitler. Or one of his campers rather. Whenever I shower with my girlfriend I end up standing there like an asshole ” dan yang didapatkan dari url : “http:pornbub.comLearn-Fuck-Milf.html”. Maka data-data yang diambil disatukan menjadi “http:pornbub.comLearn-Fuck-Milf.html Pornbub Wet Hot American Shower Sex | Story by Schneider | Stephen Schneider I love showering because the one time of day I finally get to be alone with my thoughts. So what the fuck are you doing in here right now? Nothing good ever came out of more than one person showering at the same time. Just ask Hitler. Or one of his campers rather. Whenever I shower with my girlfriend I end up standing there like an asshole ”. III.1.6 Preprocessing Sebelum proses klasifikasi teks, perlu dilakukan preprocessing terlebih dahulu terhadap teks yang akan diklasifikasi. Tujuan preprocessing tersebut adalah untuk lebih memudahkan dan mengefektifkan proses mining. Berikut ini tahap- tahap yang dilakukan pada preprocessing: 1. Cleaning Cleaning adalah proses membersihkan data dari item data yang tidak memberikan informasi berguna dalam analisis selanjutnya. Selain simbol seperti slash , “http:www” dan angka akan dihapus, karena hal-hal tersebut dianggap tidak memberikan informasi yang berguna. Penerapan proses cleanung dapat dilihat seperti pada Tabel III-1. Tabel III-1Penerapan Cleaning 3. Tokenizing Tokenizing di dalam penelitian ini merupakan proses penguraian deskripsi yang semula berupa kalimat-kalimat berisi kata-kata dan tanda pemisah antara kata. Pada kasus spasi digunakan sebagai tanda pemisah. Penerapan alur proses dari tahapan tokenizing: Tabel III-3 Penerapan Tokenizing Input Output pornbub learn fuck milf pornbub wet hot american shower sex story by schneider stephen schneider i love showering because the one time of day i finally get to be alone with my thoughts so what the fuck are you doing in here right now nothing good ever came out of more than one person showering at the same time just ask hitler or one of his campers rather whenever i shower with my girlfriend i end up standing there like an asshole pornbub, learn, fuck, milf, pornbub, wet, hot, american, shower, sex, story, by, schneider, stephen, schneider, i, love, showering, because, the, one, time, of, day, i, finally, get, to, be, alone, with, my, thoughts, so, what, the, fuck, are, you, doing, in, here, right, now, nothing, good, ever, came, out, of, more, than, one, person, showering, at, the, same, time, just, ask, hitler, or, one, of, his, campers, rather, whenever, i, shower, with, my, girlfriend, i, end, up, standing, there, like, an, asshole 4. Stopping Proses ini adalah proses menghilangkan kata yang tidak relevan, agar tidak menimbulkan kerancuan dalam proses pengklasifikasian. Proses penghilangan kata dilakukan dengan cara melakukan pencocokan kata yang dimasukan dengan stoplist. Jika ditemukan kata yang termasuk pada stoplist, maka kata tersebut akan dihilangkan. Penerapan proses stopping dapat dilihat seperti pada Tabel III-4. Tabel III-4 Penerapan Stopping Input Output pornbub, learn, fuck, milf, pornbub, wet, hot, american, shower, sex, story, by, schneider, stephen, schneider, i, love, showering, because , the, one, time, of, day, i, finally, get, to , be, alone, with, my, thoughts, so, what, the , fuck, are, you, doing, in, here, right, now, nothing, good, ever, came, out, of, more, than, one, person, showering, at, the, same, time, just , ask, hitler, or, one, of, his, campers, rather , whenever, i, shower, with, my, girlfriend, i, end, up, standing, there, like, an, asshole pornbub, learn, fuck, milf, pornbub, wet, hot, american, shower, sex, story, schneider, stephen, schneider, love, showering, one, time, day, finally, alone, thoughts, fuck, doing, here, right, now, nothing, good, came, out, more, one, person, showering, same, time, ask, hitler, one, campers, whenever, shower, girlfriend, end, up, standing, asshole 5. Stemming Kata-kata yang muncul pada dalam dokumen sering kali mengandung imbuhan. Oleh karena itu, setiap kata yang tersisa dari proses hasil tahapan stopword removal dibentuk ke dalam kata dasar dengan cara menghilangkan imbuhannya. Contoh proses stemming dapat dilihat seperti pada Tabel III-5. Tabel III-5 Penerapan Stemming Input Output pornbub, learn, fuck, milf, pornbub, wet, hot, american, shower, sex, story, schneider, stephen, schneider, love, showering, one, time, day , finally, alone, thoughts, fuck, doing, here, right, now, nothing, good, came, out, more, one, person, showering, same, time, ask, hitler, one, campers, whenever, shower, girlfriend, end, up, standing, asshole pornbub, learn, fuck, milf, pornbub, wet, hot, american, shower, sex, stori, schneider, stephen, schneider, love, shower, on, time, dai, final, alon, thought, fuck, do, here, right, now, noth, good, came, out, more, on, person, shower, same, time, ask, hitler, on, camper, whenev, shower, girlfriend, end, up, stand, asshol Pada Tabel III-5, kata-kata yang memiliki imbuhan dibentuk ke dalam kata dasar dengan cara menghilakan imbuhan yang ada. Misalkan kata showering dirubah menjadi shower dengan menghilangkan imbuhan –ing, selain itu kata campers dirubah menjadi camper dengan menghilangkan imbuhan –s . III.1.7 Metode TF-IDF Sebelum melakukan klasifikasi dengan algoritma KNN, diperlukan pembobotan pada data training dan data testing yang akan diklasifikasikan. Hal tersebut diperlukan karena algoritma KNN hanya bisa melakukan proses klasifikasi pada data yang berupa angka. Metode TF-IDF adalah metode yang dapat digunakan untuk mendapatkan bobot dari data training yang akan menentukan klasifikasi pada data testing. Berikut ini adalah proses dalam pembobotan teks pada masing-masing data training terhadap data testing, dengan asumsi telah dilakukan preprocessing sebelumnya. Sebagai contoh misalkan terdapat data yang akan dihitung kemiripan seperti pada Tabel III-6 dengan data-data yang sudah diklasifikasi pada Tabel III-7. Tabel III-6 Data Testing Data Testing Teks Klasifikasi t1 porn learn fuck milf pornbub pornbub learn fuck milf ? Tabel III-7 Data Training Data Training Teks Term Klasifikasi d1 porn teen fuck sexi pon porn teen fuck sexi Bad d2 milf fuck porn fuck learn fuck milf fuck porn learn Bad Data Training Teks Term Klasifikasi d3 learn physic learn math learn physic math Good d4 pornbub massag hardcore pornbub massag hardcore Bad d5 count learn book dummi count learn book dummi Good d6 physic learn highschool physic learn highschool Good Tahap yang dilakukan adalah menghitung term frequency tf. Term frekuensi merupakan frekuensi dari kemunculan sebuah term dalam yang bersangkutan, dan document frequency df, yang merupakan jumlah file yang mengandung term yang bersangkutan, di mana nilai df selanjutnya digunakan untuk menghitung nilai invers document frequency idf dari sebuah term. Tabel III-8 Perhitungan tf dan Idf Term Df Idf test tf1 tf2 tf3 tf4 tf5 tf6 Pornubub 3 0.69897 2 1 Learn 7 0.330993 2 1 2 1 1 Fuck 6 0.39794 2 1 3 Milf 3 0.69897 2 1 Porn 4 0.574031 1 2 1 Teen 1 1.176091 0 1 Sexi 1 1.176091 0 1 Physics 2 0.875061 0 1 1 Math 1 1.176091 0 1 Massag 1 1.176091 0 1 Count 1 1.176091 0 1 Hardcore 1 1.176091 0 1 Book 1 1.176091 0 1 Dummi 1 1.176091 0 1 Highschool 1 1.176091 0 1 Pada proses selanjutnya dilakukan perhitungan bobot dari term tertentu dalam sebuah file dengan mengalikan masing-masing nilai tf terhadap nilai idf. Sehingga didapatkan bobot pada masing-masing data seperti pada tabel Tabel III-9. Tabel III-9 Tabel Bobot Term wtest w1 w2 w3 w4 w5 w6 Pornubub 1.3979 0.699 Learn 0.662 0.331 0.662 0.331 0.331 Fuck 0.7959 0.3979 1.1938 Term wtest w1 w2 w3 w4 w5 w6 Milf 1.3979 0.699 Porn 0.574 1.1481 0.574 Teen 1.1761 Sexi 1.1761 Physics 0.8751 0.8751 Math 1.1761 Massag 1.1761 Count 1.1761 Hardcore 1.1761 Book 1.1761 Dummi 1.1761 Highschool 1.1761 ∑ Jumlah Bobot 4.8277 3.8982 2.7978 2.7132 3.0512 3.8593 2.3822 III.1.8 Analisis Penerapan Algoritma K-Nearest Neighbor Algoritma K-Nearest Neighbor merupakan algoritma yang digunakan untuk menentukan hasil akhir dari proses pengklasifikasian teks. Setelah proses pembobotan pada tf-idf selesai dilakukan, pengklasifikasian pada algoritma K- Nearest Neighbour diawali dengan tahap menghitung jarak antara bobot setiap kata pada data testing dan bobot setiap kata pada data training, lalu mengurutkan jarak dari yang terdekat hingga yang terjauh, menentukan tetangga terdekat dan terakhir hasil klasifikasi didapatkan dari kelas yang paling banyak menjadi tetangga terdekat. Berikut ini adalah proses yang dilakukan dalam pengklasifikasian menggunakan algoritma KNN. 1. Menghitung jarak kemiripan pada data testing dengan setiap data training dengan rumus cosine similiarity. Tabel III-10 Cosine Similiarity. panjang vektor T d1 d2 d3 d4 d5 d6 1.9541 0.0000 0.0000 0.0000 0.4886 0.0000 0.0000 0.4382 0.0000 0.1096 0.4382 0.0000 0.1096 0.1096 0.6335 0.1583 1.4252 0.0000 0.0000 0.0000 0.0000 1.9541 0.0000 0.4886 0.0000 0.0000 0.0000 0.0000 0.3295 1.3181 0.3295 0.0000 0.0000 0.0000 0.0000 panjang vektor T d1 d2 d3 d4 d5 d6 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.7658 0.0000 0.0000 0.7658 0.0000 0.0000 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.3832 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.3832 0.0000 ∑ 5.3094 4.2429 2.3528 2.5873 3.2550 4.2592 0.8754 √ 2.3042 2.0598 1.5339 1.6085 1.8042 2.0638 0.9356 Penghitungan jarak dilakukan dengan menggunakan rumus berikut: ∑ � � √∑ � 2 √∑ � 2 a. Penghitungan jarak data testing dengan data training ke-1 = . . ∗ . = 0.8213 b. Penghitungan jarak data testing dengan data training ke-2 = . . ∗ . = 0.7916 c. Penghitungan jarak data testing dengan data training ke-3 = . . ∗ . = 0.7320 d. Penghitungan jarak data testing dengan data training ke-4 = . . ∗ . = 0.7340 e. Penghitungan jarak data testing dengan data training ke-5 = . . ∗ . = 0.8116 f. Penghitungan jarak data testing dengan data training ke-6 = . . ∗ . = 1.1050 2. Mengurutkan jarak yang telah dihitung, mulai dari yang terbesar ke yang terkecil. Tabel III-11 Jarak Sebelum Diurutkan Data training Jarak Klasifikasi d1 0.8213 Bad d2 0.7916 Bad d3 0.7320 Good d4 0.7340 Bad d5 0.8116 Good d6 1.1050 Good Tabel III-12 Jarak Setelah Diurutkan Data training Jarak Klasifikasi d6 1.1050 Good d1 0.8213 Bad d2 0.8116 Bad d5 0.7916 Good d4 0.7340 Bad d3 0.7320 Good 3. Proses yang dilakukan setelah pengurutan adalah menentukan yang mana saja yang termasuk tetangga terdekat. Jumlah tetangga terdekat adalah sebanyak k, di mana k sudah ditentukan sebelumnya dengan disesuaikan sayarat, yakni jumlah k lebih dari satu, nilai k termasuk bilangan ganjil, nilai k lebih dari jumlah kelas dan nilai k tidak melebihi jumlah data training [11]. Berdasarkan hasil penelitian Tri halomoan simanjuntak, nilai k yang semakin kecil akan membuat akurasi yang semakin baik [13]. Oleh karena itu dipilih nilai k=3 karena memenuhi syarat-syarat yang telah disebutkan sebelumnya dan nilai k=3 adalah yang terkecil berdasarkan syarat-syarat tersebut, maka jumlah yang termasuk tetangga dipilih adalah sebanyak 3 buah Tabel III-13 Data Anggota Tetangga Terdekat 4. Pengklasifikasian didasarkan pada nilai yang paling banyak muncul pada atribut klasifikasi dan termasuk tetangga terdekat sebanyak 3 buah 5. Tabel III-13 menunjukan nilai yang paling sering muncul pada atribut klasifikasi adalah kelas bad, maka kelas pada data baru adalah bad. III.1.9 Analisis Kebutuhan Non Fungsional Analisis kebutuhan non fungsional menggambarkan kebutuhan yang diperlukan untuk melakukan pengembangan perangkat lunak dodo kids browser. Kebutuhan non fungsional untuk melakukan pengembangan perangkat lunak dodo kids browser meliputi kebutuhan perangkat lunak dan kebutuhan perangkat keras. III.1.9.1 Analisis Kebutuhan Perangkat Lunak Analisis kebutuhan perangkat lunak merupakan proses analisis yang lebih menekankan kepada aspek pemanfaatan software. Perangkat lunak yang digunakan dalam pembangunan perangkat lunak ini dapat dilihat pada Tabel III-14. Tabel III-14 Spesifikasi Kebutuhan Perangkat Lunak Jenis Kebutuhan Perangkat Keras Spesifikasi Pembangunan Processor Intel Pentium Dual-Core CPU T4400 2.20Ghz Harddisk 320 GB Memory 2 GB Data training Jarak Tetangga Klasifikasi d6 1.1050 Ya Good d1 0.8213 Ya Bad d2 0.8116 Ya Bad d5 0.7916 Tidak Good d4 0.7340 Tidak Bad d3 0.7320 Tidak Good Jenis Kebutuhan Perangkat Keras Spesifikasi VGA On Board 512 MB Monitor Resolusi layar 1366x768 Penggunaan Mobile Processor 800 Mhz Memory RAM 512 MB Harddisk 2 GB III.1.9.2 Analisis Kebutuhan Perangkat Keras Spesifikasi perangkat keras yang digunakan dalam pembangunan perangkat lunak adalah sebagai berikut: Tabel III-15 Spesifikasi Perangkat Keras Jenis Kebutuhan Perangkat Lunak Spesifikasi Pembangunan Sistem Operasi Minimum Windows 10 DBMS Minimum MySQL 5.6.20. Web Server Azure Web Apps IDE Microsoft Visual Studio Community 2013 Code Editor WeBuilder 2014 Penggunaan Sistem Operasi Windows Phone 8.0 Web Browser Desktop Chrome III.1.9.3 Analisis Kebutuhan Perangkat Pikir Analisis kebutuhan perangkat pikir merupakan tahap analisis pengguna yang akan menggunakan sistem. Berikut merupakan karakterisitik dari pengguna perangkat lunak yang dibangun: Tabel III-16 Perangkat Pikir No Pengguna Tingkat Keterampilan yang Dimiliki 1 Orang tua Terbiasa menggunakan smartphone Windows Phoned dan Terbiasa menggunakan web browser 2 Anak Terbiasa menggunakan web browser III.1.10 Analisis Kebutuhan Fungsional Analisis dilakukan dengan pemodelan menggunakan UML Unified Model Language. Tahap-tahap pemodelan dalam analisis tersebut terdiri dari definisi aktor, use case diagram, activity diagram, sequence diagram, dan class diagram. III.1.10.1 Use Case Use case diagram menggambarkan mengenai fungsionalitas pada sistem yang akan dibangun. Use case diagram dapat dilihat pada Gambar III.2. Gambar III.2 Use Case Diagram System Klasifikasi Stopping Cleaning Case Folding Stemming Cek url include include include include Pembobotan include Anak Membuka Website include Orang Tua Penyajian Laporan Login Extension Register Logout Extension Penyajian Notifikasi login Pemilihan Aksi include tokenizing include include extend extend extend cek web extend 1. Definisi Aktor Adapun deskripsi aktor yang ada pada use case diagram sebagai berikut: Tabel III-17 Tabel Definisi Aktor No Aktor Deskripsi 1 Anak Aktor yang melakukan browsing 2 Orang tua Aktor yang menggunakan fungsional untuk mengawasi aktivitas browsing internet anak 2. Definisi Use Case Diagram Berikut adalah deskripsi dari setiap use case yang ada pada use case diagram: Tabel III-18 Tabel Definisi Use Case Diagram No Use Case Deskripsi 1 Membuka Website Proses membuka halaman website 2 Cek Url Proses melakukan pengecekan url yang akan dibuka 3 Klasifikasi Proses mengklasifikasi data halaman website yang akan dibuka oleh anak 4 Pembobotan Proses memberikan bobot pada teks 5 Cleansing Proses membersihkan data dari item data yang tidak memberikan informasi berguna dalam langkah selanjutnya. 6 Case Folding Proses merubah isi teks menjadi lower case 7 Stopping Proses menghilangkan kata-kata yang tidak diperlukan 8 Tokenizing Proses mengubah teks menjadi token-token 9 Stemming Proses mengubah kata yang berimbuhan ke bentuk natural 10 Push notification Proses pengiriman notifikasi 11 Cek Website Proses mengecek website yang diakses anak 12 Pemilihan aksi Proses penerimaan pemberian dan pengiriman jawaban yang dilakukan aktor orangtua 13 Register Proses melakukan registrasi yang dilakukan actor orang tua 14 Login Proses melakukan login data pengguna 15 Login Extension Proses masuk kedalam sistem pada bagian Extension 16 Logout Extension Proses keluar sistem pada bagian Extension 17 Penyajian Laporan Proses menampilkan data laporan 18 Logout Prosees logout pada mobile apps 3. Skenario Use Case Diagram Setiap use case memiliki alur proses yang berbeda satu dengan yang lainnya. Penjelasan mengenai detail dari setiap alur proses use case akan dijelaskan pada skenario use case diagram. Berikut ini penjelasannya: a. Cek URL Proses yang dilakukan pada tahap ini adalah melakukan pengecekan pada url yang akan dibuka. Berikut skenarionya dari use case withdrawal web page. Tabel III-19 Use Case Cek Url Use Case Name Cek URL Related Requirements Membuka Website Goals Mendapatkan hasil apakah url telah ada pada data url yang memiliki konten negative, tidak memiliki konten negative, atau url belum dapat dikategorikan. Preconditions Aktor anak mensubmit alamat website yang dicari. Successful End Condition Berhasil mengeluarkan hasil pengecekan Failed End Condition Hasil pengecekan gagal didapatkan Primary Actors Anak Main Flow Steps Actions 1 Mengambil url yang telah submit actor anak 2 Mencocokan dengan data url pada database 3 Mengeluarkan hasil pengecekan url 4 Menampilkan halaman website Extension Steps Brancing Actions 4.1 Tidak menampilkan halaman website 4.2 Melanjutkan ke proses klasifikasi b. Klasifikasi Proses ini berfungsi untuk melakukan klasifikasi dengan algoritma KNN. Berikut adalah detail dari skenarionya: Tabel III-20 Use Case Klasifikasi Use Case Name Klasifikasi Related Requirements Preprocessing Cleansing, Case Folding, Stopping,Tokenizing, Stemming, Cek url dan Pembobotan Goals Memberi nilai kelas pada teks yang telah selesai dibobotkan Preconditions Cek url Successful End Condition Mengeluarkan hasil klasifikasi Failed End Condition Tidak mengeluarkan hasil klasifikasi Primary Actors Anak Main Flow Steps Actions 1 Mengambil data halaman website yang akan dibuka 2 Include: Pembobotan Menghitung bobot teks pada data yang telah diambil dengan data training 3 Menghitung jarak antara teks pada data training dengan teks yang akan diklasifikasi 4 Mengurutkan jarak dari yang terkecil hingga jarak yang terbesar 5 Menentukan k dan menentukan yang termasuk tetangga 6 Mengklasifikasikan teks tersebut berdasarkan nilai kelas tetangga terdekat yang terbanyak muncul sebagai Extension Steps Branching Actions 6.1 Gagal mengklasifikasikan good dan bad c. Pembobotan Proses ini berfungsi untuk memberikan bobot pada teks yang akan diklasifikasi. Berikut detail skenario pembobotan: Tabel III-21 Use Case Pembobotan Use Case Name Pembobotan Related Requirements Preprocessing Cleansing, Case Folding, Stopping,Tokenizing, Stemming Goals Memberikan bobot pada teks. Preconditions Teks telah melalui proses preprocessing Successful End Condition Teks selesai diberikan bobot. Failed End Condition Teks tidak diberi bobot.. Primary Actors Extension Steps Actions 1 Menerima teks yang akan diberikan bobot 2 Include: Cleansing Membersihkan teks dari karakter yang dianggap tidak diperlukan 3 Include: Case Folding Merubah semua teks menjadi lower Chase 4 Include: Tokenizing Merubah teks menjadi token-token 5 Include: Stopping Menghapus kata stoplist yang ada di dalam teks 6 Include: Stemming Merubah kata yang berimbuhan menjadi bentuk aslinya 7 Mengeluarkan nilai hasil pembobotan d. Cleansing Proses ini menghapus toke-token yang tidak diperlukan untuk proses selanjutnya. Sehingga tingkat noise data berkurang. Berikut detail skenario cleansing: Tabel III-22 Skenario Use Case Cleansing Use Case Name Cleansing Related Requirements - Goals Menghapus token-token non-alfabetis Preconditions Withdrawal Detail Website telah dilakukan Successful End Condition Teks tidak lagi berisi token-token non-alfabetis dan link. Failed End Condition Teks masih terdapat yang berisi token-token non-alfabetis dan link. Primary Actors Extension Browser Main Flow Steps Actions 1 Memuat teks dari halaman detail website 2 Mencari karakter yang tidak diperlukan. 3 Menghapus karakter yang tidak diperlukan Extension Steps Branching Actions 3.1 Tidak menghapus karakter e. Case Folding Proses ini mengubah semua teks menjadi lower case. Berikut skenario detailnya: Tabel III-23 Skenario Use Case Case Folding Use Case Name Case Folding Related Requirements - Goals Mengubah semua teks menjadi lower case. Preconditions Teks telah melewati proses cleansing. Successful End Condition Semua token di dalam teks menjadi lower case. Failed End Condition - Primary Actors Admin Main Flow Steps Actions 1 Memuat teks dari hasil cleansing. 2 Mengubah semua token menjadi lower case.. f. Stopping Proses ini berfungsi untuk menghapus kata yang tidak berpengaruh secara signifikan. Berikut adalah detail skenarionya: Tabel III-24 Skenario Use Case Stopping Use Case Name Stopping Related Requirements - Goals Menghapus kata seperti yang tidak berpengaruh secara signifikan. Preconditions Teks telah melewati proses case folding Successful End Condition Kumpulan kata yang tidak berpengaruh berhasil dihilangkan. Failed End Condition Kumpulan token masih berisi kata yang tidak berpengaruh. Primary Actors Admin Main Flow Steps Actions 1 Memuat kumpulan token dari hasil tokenizing. 2 Mencocokan satu persatu token dengan kumpulan stopping word. 3 Menghapus token yang cocok. Extension Steps Branching Actions 3.1 Tidak menemukan token yang cocok g. Tokenizing Proses merubah teks yang akan diproses menjadi token-token. Berikut detail skenario tokenizing: Tabel III-25 Skenario Use Case Tokenizing Use Case Name Tokenizing Related Requirements - Goals berhasil memecah teks menjadi kata per kata berdasarkan spasi sebagai delimiter. Precondition data telah dilakukan proses case folding Description Fungsional ini digunakan untuk memisahkan tiap kata berdasarkan delimiternya yang dalam hal ini yaitu dipisahkan oleh space. Successful End Condition Berhasil memecah sumber data menjadi kumpulan token Failed End Condition Gagal memecah sumber data menjadi kumpulan token Trigger Proses pembobotan dijslankan Main Flow Step Action 1 Memuat kata kunci pencarian sebagai sumber data hasil case folding 2 Melakukan pemecahan sumber data menjadi kata per kata atau dalam sebuah kumpulan token Extension Step Branching Action Gagal melakukan pemecahan sumber data menjadi kata per kata. h. Stemming Proses ini digunakan untuk memeriksa apakah dari masing-masing token terdapat imbuhan. Apabila ada maka dikembalikan ke dalam bentuk kata aslinya. Berikut ini detail skenarionya: Tabel III-26 Skenario Use Case Stemming Use Case Name Stemming Related Requirements - Goals Mengembalikan kata yang berimbuhan menjadi bentuk kata dasarnya. Preconditions Teks telah melewati proses stopping. Successful End Condition Kumpulan token yang berhasil dipecah dari teks tidak berisi kata berimbuhan. Failed End Condition Kumpulan token masih berisi kata berimbuhan. Primary Actors Anak Main Flow Steps Actions 1 Memuat kumpulan token dari hasil stopping. 2 Memeriksa apakah token tersebut memiliki imbuhan 3 Mengubah kata berimbuhan maka diubah menjadi bentuk kata aslinya. Extension Steps Branching Actions 3.1 Gagal mengubah kata berimbuhan maka diubah menjadi bentuk kata aslinya. i. Push Notification Proses push notification digunakan untuk melakukan pemberitahuan pada actor orang tua. Berikut ini detail skenarionya: Tabel III-27 Use Case Push Notification Use Case Name Push Notification Related Requirements Klasifikasi Goals Mengirim notifikasi berisi url yang akan dibuka pada actor orang tua Preconditions Proses klasifikasi telah dilakukan Successful End Condition Notifikasi berhasil dikirim Failed End Condition Notifikasi tidak berhasil dikirim Primary Actors Orang tua, anak Main Flow Steps Actions 1 Memuat hasil klasifikasi 2 Mengirim data hasil klasifikasi 3 Notifikasi beserta suggest tampil pada orang tua Extension Steps Branching Actions 3.1 Notifikasi tanpa suggest tampil pada orang tua j. Pemilihan aksi Proses untuk melakukan aksi yang dilakukan orang tua. Berikut adalah detail dari skenarionya: Tabel III-28 Skenario Use Case Pemilihan Aksi Use Case Name Pemilihan Aksi Related Requirements Push notification, Klasifikasi ,Pembobotan, Preprocessing Cleansing, Case Folding, Stopping,Tokenizing, Stemming Goals Mengeluarkan data aksi yang harus dilakukan Preconditions Push notification telah dikirim Successful End Condition Mengeluarkan data aksi yang harus dilakukan dan menyimpan data detail web yang telah diklasifikasi beserta data url ke data base Failed End Condition Tidak mengeluarkan data aksi yang harus dilakukan atau tidak menyimpan data detail web ke database Primary Actors Orangtua, Anak Main Flow Steps Actions 1 Menekan tombol toast notification 2 System menampilkan halaman pemilihan aksi 3 Memilih mengizinkan atau tidak untuk membuka website 4 Mengirim aksi 5 Menyimpan data detail web data ke database Extension Steps Branching Actions 2.1 Tidak mengirim aksi k. Login Extension Proses login Extension adalah proses login yang dilakukan actor orang tua pada Extension browser. Berikut detail proses login Extension: Tabel III-29 Skenario Use Case Login Extension Use Case Name Login Extension Goals Berhasil masuk dalam sistem Descriptions Fungsionalitas ini digunakan oleh aktor untuk verifikasi akun yang akan mengirim push notification Successful End Condition Aktor berhasil login Failed End Condition Aktor tidak login masuk kedalam sistem. Primary Actors Orang tua Main Flow Steps Actions 1 Actor memilih tombol login 2 Sistem menampilkan halaman login pengguna 3 Pengguna memasukan data login dan password 4 Pengguna melakukan submit data login 5 Sistem menyimpan status telah login Extension Steps Branching Actions 5.1 Gagal menyimpan status l. Logout Extension Proses logout Extension adalah proses logout dari Extension browser. Berikut detail proses logout Extension Tabel III-30 Skenario Use Case Logout Extension Use Case Name Logout Extension Goals Berhasil logout Descriptions Fungsionalitas ini digunakan oleh pengguna untuk keluar dari perangkat lunak Extension browser Dodo Kids Browser Successful End Condition Akun pengguna tidak terverifikasi Failed End Condition Akun aktor masih terverifikasi. Primary Actors Orang tua Main Flow Steps Actions 1 Sistem menampilkan halaman logout pengguna 2 Pengguna memasukkan data logout berupa password. 3 Pengguna melakukan submit data logout. 4 Mengubah status belum login 5 Sistem akan menampilkan halaman popup Extension browser. Extension Steps Branching Actions 5.1 Sistem tidak menampilkan halaman popup m. Register Proses register adalah proses untuk melakukan pendaftaran data pengguna ke dalam sistem. Tabel III-31 Skenario Use Case Register Use Case Name Register Goal In Context Orang tua berhasil memiliki akun pengguna Description Fungsionalitas ini digunakan oleh orang tua untuk melakukan pendaftaran ke dalam aplikasi Related Use Case - Successful End Condition Aktor berhasil terdaftar kedalam sistem Failed End Condition Aktor gagal terdaftar kedalam sistem Actors Orang Tua Trigger Memilih tombol register pada halaman start Main Flow Step Action 1. Orang tua memilih tombol register pada halaman register 2. Sistem menampilkan halaman register orang tua 3. Orang tua mengisi data register dengan memasukan data register berupa email dan password 4. Orang tua melakukan submit data register 5. Sistem akan melakukan validasi pengisian data registrasi 6. Orang tua berhasil mendaftar ke dalam sistem Extension Step Branching Action 6.1 Orang tua gagal mendaftar ke dalam sistem n. Login Proses melakukan login pada smartphone. Tabel III-32 Skenario Use Case Login Use Case Name Login Goals Memiliki hak akses untuk melihat report dan melakukan labeling Descriptions Fungsionalitas ini digunakan oleh aktor untuk verifikasi akun yang akan menerima push notification dan untuk melihat penyajian report Successful End Condition Aktor berhasil login Failed End Condition Aktor tidak login masuk kedalam sistem. Primary Actors Orang tua Main Flow Steps Actions 1 Actor memilih tombol login 2 Sistem menampilkan halaman login pengguna 3 Pengguna memasukan data login dan password 4 Pengguna melakukan submit data login 5 Data pengguna terverifikasi Extension Steps Branching Actions 5.1 Gagal memverifikasi data pengguna o. Penyajian Laporan Penyajian laporan untuk menyajikan data laporan. Tabel III-33 Skenario Use Case Penyajian Laporan Use Case Name Penyajian Laporan Goal In Context Menampilkan data pencarian dari pengguna anak Description Fungsionalitas ini digunakan oleh orang tua data pencarian dari pengguna anak Related Use Case Login Successful End Condition Aktor berhasil mendapatkan riwayat pencarian pengguna anak Failed End Condition Aktor gagal mendapatkan riwayat pencarian Actors Orang Tua Trigger Orang Tua memilih tap tombol Parent Main Flow Step Action 1. Orang Tua memilih tap tombol Parent 2. include:: Login Orang Tua melakukan login ke dalam aplikasi 3. Sistem menampilkan halaman report yang berisi daftar riwayat pencarian Extension Step Branching Action 3.1 Sistem gagal menampilkan riwayat pencarian p. Membuka Website Proses membuka website disini adalah proses browsing yang dilakukan actor anak. Berikut detail proses browse web: Tabel III-34 Skenario Use Case Browse web Use Case Name Browse Web Related Requirements Cek url Goals Membuka Halaman Website Preconditions Url telah dimasukan ke web browser oleh user. Successful End Condition Halaman website tampil pada browser Failed End Condition Halaman website tidak tampil Primary Actors User Main Flow Steps Actions 1 Submit alamat website 2 Include: Cek url Melakukan proses cek url q. Cek Web Proses Cek Web adalah proses logout dari. Berikut detail proses Cek Web. Tabel III-35 Skenario Use Case Cek Web Use Case Name Cek Web Goals Tampil website yang diakses anak Descriptions Fungsionalitas ini digunakan oleh orang tua untuk menampilkan halaman website yang diakses anak Successful End Condition Tampil website yang diakses anak Failed End Condition Website tidak ditampilkan Primary Actors Orang tua Main Flow Steps Actions 1 Sistem menampilkan halaman action 2 Pengguna menekan tombol cek web. 3 Sistem meload alamat website. 4 Sistem menampilkan halaman website pada halaman Cek Web Extension Steps Branching Actions 4.1 Sistem tidak menampilkan halaman website III.1.10.2 Activity Diagram Activity diagram pada penelitian ini menjelaskan tentang alur kerja tahapan-tahapan aktivitas dari use case. 1. Activity Diagram Process Membuka Website Diagram aktivitas ini menjelaskan proses membuka website. Gambar III.3 Activity Diagram Membuka Website Anak System memasukan alamat website yang akan dibuka melakukan submit alamat website yang akan dibuka Cek Url 2. Activity Diagram Cek URL Diagram aktivitas ini menjelaskan tentang proses pengecekan url. Gambar III.4 Activity Diagram Cek Url Anak System menampilakan halaman blok website Klasifikasi menampilkan halaman website [cocok dengan data good] [cocok dengan data bad] [tidak cocok dengan data pada database] mencocokan alamat website yang disubmit dengan data url yang sudah diklasifikasi membuka website 3. Activity Diagram Klasifikasi Diagram aktivitas ini menjelaskan proses klasifikasi. Gambar III.5 Activity Diagram Klasifikasi Pembobotan Mengambil data teks Menghitung jarak Mengurutkan jarak Menentukan tetangga terdekat Menentukan Kelas Mengeluarkan hasil klasifikasi positif Mengeluarkan hasil klasifikasi negatif Menginisiasi hasil klasifikasi tidak dapat dilakukan hasil klasifikasi positif hasil klasifikasi negatif tidak ada hasil klasifikasi 4. Activity Diagram Pembobotan Diagram aktivitas ini menjelaskan tentang proses pembobotan. Gambar III.6 Activity Diagram Pembobotan Menerima teks yang akan diberikan bobot Case Folding Cleansing Tokenizing Stopping Stemming Mengeluarkan hasil pembobotan 5. Activity Diagram Cleansing Diagram dktivitas ini menjelaskan tentang proses cleansing. Gambar III.7 Activity Diagram Cleansing 6. Activity Diagram Case Folding Diagram aktivitas ini menjelaskan tentang proses case folding. Menerima teks Mencari karakter yang tidak diperlukan Menghaapus karakter yang tidak diperlukan [menemukan] [tidak menemukan] Menerima Output Cleansing Mengubah Semua Token Menjadi Lower Case Gambar III.8 Activity Diagram Case Folding 7. Activity Diagram Tokenizing Diagram aktivitas ini menjelaskan tentang proses tokenizing. Gambar III.9 Activity Diagram Tokenizing 8. Activity Diagram Stopping Diagram aktivitas ini menjelaskan tentang proses stopping. Gambar III.10 Activity Diagram Stopping Menerima output case folding Memecah teks menjadi token-token berdasarkan spasi yang memisahkan 9. Activity Diagram Stemming Diagram aktivitas ini menjelaskan tentang proses stemming. Gambar III.11 Activity Diagram Stemming 10. Activity Diagram Process Push Notification Aktivitas ini menjelaskan tentang proses push notification. Gambar III.12 Activity Diagram Push Notification Menerima Output Stopping Memeriksa Token Yang Masih Memiliki Imbuhan Mengubah Token Ke Bentuk Asli Memiliki Tidak Memiliki memuat data yang akan ditampilkan mengirim notifikasi menampilkan suggest dan data url 11. Activity Diagram Process Pemilihan Aksi Diagram aktivitas ini menjelaskan tentang proses pemilihan aksi. Gambar III.13 Activity Diagram Pemilihan Aksi 12. Activity Diagram Process Register Diagram aktivitas ini menjelaskan tentang proses register yang dilakukan oleh user. Gambar III.14 Activity Diagram Register 13. Activity Diagram Login Diagram aktivitas ini menjelaskan proses login pada smartphone orang tua. Berikut adalah detailnya. Gambar III.15 Activity Diagram Login 14. Activity Diagram Process Login Extension Diagram aktivitas ini menjelaskan alur ketika login dari Extension Gambar III.16 Activity Diagram Login Extension 15. Activity Diagram Process Logout Extension Diagram aktivitas ini menjelaskan alur ketika logout dari Extension. Gambar III.17 Activity Diagram Logout Extension Orang tua Sistem menekan tombol login menampilkan halaman login mengsi data pengguna melakukan validasi data pengguna melakukan submit data pengguna menyimpan status telah login pada ekstension tidak menyimpan status telah login pada ekstension [valid] [tidak valid] Orang Tua System Memasukan data password Menekan Tombol Logout melakukan validasi data pengguna menampilkan halaman popup ekstension menampilkan halaman popup ekstension [tidak valid] [valid] 16. Activity Diagram Process Penyajian Laporan Bagian ini menjelaskan penyajian laporan. Gambar III.18 Activity Diagram Penyajian Laporan 17. Activity Diagram Process Cek Web Bagian ini menjelaskan proses Cek Web pada halaman aksi. Gambar III.19 Activity Diagram Cek Web Orang Tua Sistem Tap Login Menampilkan DataLaporan Login Memilih Salah Satu Laporan Pengiriman Aksi Orang Tua Sistem Tap tombol Cek Web Melakukan data url yang diakses Menampilkan halaman website sesuai url 54 III.1.10.3 Class Diagram Class diagram dapat dilihat pada Gambar III.20. Gambar III.20 Class Diagram cleanning control -clean: string +cleanteks Klasifikasi control +teks: string -casefold: casefolding -clean: cleanning -stop: stopping -token: tokenizing -stem: stemming -tfidf: TfIdf -term: array -jumlah_term: int -data_teks: array -data_testing: string -jumlah_teks: int -hasil_kelas: string -docs: string +knnteks Tfidf control +teks: string +createindex +tf +ndw +idf ekstension control -allteks: string +kelasifikasi: klasifikasi +DetailWebpage: MWebpage -status_url: string -aksi_ortu: string -count_action: int -callin -getaksi -cekaksi +sendnotif -blok -warning +startrequest stemming control -stem: string +stemteks stopping control -stop: string +stopteks MUser entity +id_user: int +email: string +password: string +set_iduser +get_iduser +set_email +get_email +set_password +get_password -Load -selec +btn_L Report entity +id_report: int +teks: string +status: string +get_idreport +get_teks +get_status +set_status +set_teks +set_idreport 1 1 VModelNotif control +teks: string +suggest: string +url: string +aksi: string +PostAksi +openurl +OnNavigatedTo LoginExtension boundary +btn_login LogoutExtension boundary +btn_logout VAction boundary +Loadnotif +btnSend_Tap +btnCek_Web tokenizing control -token: string +tokenteks MUserExtenion entity +id_user: int +email: string +passwrd: string +get_email +get_password +set_email +set_password +get_id +set_id VWebpage boundary +submit_url MWebpage entity +url: string +title: string +teks: string +status: string +get_teks +get_url +get_title +set_teks +get_status VM +ListMod +Down +OnNa +logut 1 1 1 1 1 1 1 1 V +ema +pass +Post +Post +OnN VModelUserExtension control -email: string -password: string +PostLogin +PostLogout +SetLocalstorage casefolding -str: string +casefoldteks 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.. 1 1 1 1 1 1 1 1 1 1 1 1 VCekWeb boundary +LoadPage 1 1 MiniBrowser control 1 1 III.1.10.4 Sequence Diagram Pada bagian ini akan dipaparkan sequence diagram dari setiap usecase utama. Berikut merupakan sequence diagram dari perangkat lunak yang dibangun: 1. Register Gambar III.21 Sequence Diagram Register alt [result valid] [result invalid] [result valid] [result invalid] : Orang tua VRegister boundary VModelUser control MUser entity email password btnRegister_Tap PostRegister set_email set_password get_email email get_password password result msgbox:success OnNavigatedTo msgbox:failed 2. Login Gambar III.22 Sequence Diagram Login alt [result valid] [result invalid] [result valid] [result invalid] : Orangtua VLogin boundary VModelUser control MUser entity email password btnLogin_Tap PostLogin set_iduser set_email set_password get_email email get_password password get_iduser iduser result msgbox:succses OnNavigatedTo msgbox:failed 3. Membuka Website Gambar III.23 Sequence Diagram Membuka Website alt [url good] [url tidak ditemukan] [url bad] [url good] [url tidak ditemukan] [url bad] alt [aksi allow] [aksi not allow] [[aksi kosong]] [aksi allow] [aksi not allow] [[aksi kosong]] Ekstension control : Anak VModelNotif control : Orang tua VAction boundary webpage boundary MWebPage entity MUser entity klasifikasi control url submit_url set_url get_url url cekUrl result callin blok set_title set_teks get_title title get_teks teks knn hasil_kelas set_iduser get_iduser iduser sendnotif suggest,teks, url LoadNotif cekaksi btnSend_Tap aksi PostAksi callin blok warning 4. Penyajian Laporan Gambar III.24 Sequence Diagram Penyajian Laporan 5. Login ekstension Gambar III.25 Sequence Diagram Login Ekstension : Orang tua VReport boundary VModelReport control MReport entity MUser entity Load_Report DownloadListReport set_iduser get_iduser iduser set_idreport get_idreport idreport set_status get_status status set_teks get_teks teks selectReport OnNavigatedTo alt [emailpassword valid] [emailpassword invalid] [emailpassword valid] [emailpassword invalid] : Orangtua VLoginExtension boundary VModelUserExtension control MUserExtension entity password btnLogin PostLogin set_iduser set_email set_password get_email email get_password password get_iduser iduser result msgbox:succsesfull SetLocalstorage msgbox:failed 6. Logout Extension Gambar III.26 Sequence Diagram Logout Extension alt [emailpassword valid] [password invalid] [emailpassword valid] [password invalid] : Orangtua VLoginExtension boundary VModelUserExtension control MUserExtension entity password btnLogout PostLogout set_iduser set_password get_password password get_iduser iduser result SetLocalstorage msgbox:succsesfull msgbox:failed 7. Pemilihan Aksi Gambar III.27 Sequence Diagram Pemilihan Aksi 8. Cek Web Gambar III.28 Sequence Diagram Cek Web : Orang tua VModelNotif control VAction boundary MWebpage entity aksi btnSend_Tap PostAksi set_status get_status status OnNavigatedTo : Orangtua VCekWeb boundary VAction boundary VModelNotif control MWebPage entity MiniBrowser control btnCek_Web get_url url OnNavigate LoadPage MiniBrowser NavigateSite Site III.2 Perancangan Sistem Perancangan dalam pengembangan perangkat lunak ini meliputi perancangan data, perancangan antarmuka, dan perancangan prosedur. III.2.1 Perancangan Data Pada penelitian ini perancangan data yang dimaksud berupa struktur tabel yang digunakan untuk penyimpanan data pada mvp. Perancangan data dipaparkan dalam bentuk skema relasi dan struktur tabel. Skema Relasi dapat dilihat pada Gambar III.29. Gambar III.29 Skema Relasi Berikut ini pemaparan tabel yang digunakan untuk penyimpanan data teks, data testing, data url, data report, data user dan data stopword: 1. Tabel Teks Tabel data teks merupakan tabel yang menampung penyimpanan teks yang sudah diberi label good atau bad. Tabel III-36 Perancangan Tabel Teks Nama Field Tipe Data Ukuran Kunci Keterangan id Int Primary Key Not Null, Auto Increment teks text Not null kelas Varchar 4 Not null 2. Tabel Stopword Tabel stopword merupakan tabel yang menampung kata-kata yang akan dihapus pada proses preprocessing. Tabel III-37 Perancangan Tabel Stopword Nama Field Tipe Data Ukuran Kunci Keterangan stopword Varchar 30 Primary Key Not Null 3. Tabel URL Tabel url merupakan kumpulan url yang telah diklasifikasikan memiliki konten negative atau tidak didalamnya. Tabel III-38 Perancangan Tabel Url Nama Field Tipe Data Ukuran Kunci Keterangan id Int Primary Key Not Null, Auto Increment url text Not null, Unique status varchar 4 4. Tabel User Tabel user digunakan untuk menyimpan data user. Tabel III-39 Perancangan Tabel User Nama Field Tipe Data Panjang Kunci Keterangan id_user Integer 11 Primary Key Auto_Increment, Not Null email Varchar 50 - Not Null, Unique password Varchar 100 - Not Null 5. Tabel Pushuri Tabel Pushuri digunakan untuk menyimpan data url yang digunakan pada proses push notification.. Tabel III-40 Pushuri Nama Field Tipe Data Panjang Kunci Keterangan id_user Integer 11 Foreign Key references tb_user id Not Null uri Varchar 300 - 6. Tabel Report Tabel report digunakan untuk menyimpan data laporan browsing yang dilakukan pada browser. Tabel III-41 Perancangan Tabel Report Nama Field Tipe Data Ukuran Kunci Default id Integer 11 Primary Key - teks teks - - Nama Field Tipe Data Ukuran Kunci Default url Datetime - - aksi Varchar 9 - Kosong id_user Integer 11 Foreign Key references tb_user id - III.2.2 Perancangan Antarmuka Perancangan antarmuka merupakan tahapan perancangan tampilan konten dari sistem yang dibangun yang akan disajikan di layar. Tampilan antarmuka yang dibutuhkan pada perangkat lunak yang akan dibangun adalah tampilan pada halaman blocked yang muncul jika halaman website yang akan dibuka mengandung konten negatif. Berikut perancangan antarmuka; 1. Perancangan Tampilan Awal Pada Smarthphone Gambar III.30 Perancangan Tampilan Awal 2. Perancangan Tampilan Register Gambar III.31 Perancangan Tampilan Register 3. Perancangan Tampilan Login Gambar III.32 Perancangan Tampilan Login 4. Perancangan Tampilan Report Gambar III.33 Perancangan Tampilan Report 5. Perancangan Tampilan Aksi Gambar III.34 Perancangan Tampilan Aksi 6. Perancangan Tampilan Popup Pada Ekstension Browser Tampilan yang digunakan pengguna yang akan login, tampilan muncul pada popup ekstension browser Gambar III.35 Perancangan Tampilan Popup 7. Perancangan Tampilan Login Extension Browser Tampilan untuk memasukan data pengguna yang digunakan untuk verifikasi. Gambar III.36 Perancangan Tampilan Login Extension 8. Perancangan Tampilan Logout Extension Browser Tampilan untuk memasukan password pengguna yang digunakan untuk verifikasi logout. Gambar III.37 Perancangan Tampilan Logout Extension 9. Perancangan Tampilan Warning Tampilan yang muncul ketika tidak ada aksi yang dipilih oleh orang tua dari smartphone. Gambar III.38 Perancangan Tampilan Warning 10. Perancangan Tampilan Antarmuka Halaman Blocked Tampilan antarmuka ini akan muncul ketika halaman yang akan dibuka memiliki konten negatif. Gambar III.39 Perancangan Tampilan Halaman Blocked III.2.3 Perancangan Fungsional Perancangan fungsional pada sistem : a. Pengambilan data dari halaman website yang akan dibuka. b. Dilakukan preprocessing terhadap data yang telah diambil dari halaman website. c. Dilakukan perhitungan jarak antara data pada halaman website dengan data- data pada data training. d. Mengklasifikasikan data berdasarkan jarak yang sudah dihitung. e. Mengirim notifikasi yang berisi suggest dari hasil klasifikasi yang telah dilakukan. f. Menerima aksi dari orang tua. g. Melakukan blok halaman jika aksi orang tua adalah not allow, atau membuka halaman website jika aksi dari orang tua adalah allow. h. Menampilkan halaman warning pada web browser jika orang tua belum melakukan aksi. 69

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM