BINA NUSANTARA | Library & Knowledge Center



BAB II

TINJAUAN REFERENSI

2.1 Teori Umum

2.1.1 Data

2.1.1.1 Pengertian Data

Kumpulan informasi terutama berbentuk fakta atau angka yang dikumpulkan untuk diperiksa dan dipertimbangkan serta digunakan untuk mengambil sebuah keputusan atau sebuah informasi dalam bentuk elektronik yang dapat digunakan dan disimpan di komputer.

Informasi ini bisa dalam bentuk dokumen, gambar, suara, perangkat lunak, dan tipe-tipe data lain. Data biasanya diolah oleh CPU dan disimpan dalam media penyimpanan Hard Disk di dalam komputer.

2.1.1.2 Pengertian Data Penting

Merupakan kumpulan informasi sensitif yang aksesnya dibatasi oleh hukum atau sekelompok orang di dalam suatu organisasi. Untuk mengakses dan menangani informasi sensitif ini dibutuhkan izin keamanan formal dari pihak terkait. Ada berbagai macam tingkatan sensitivitas dan izin tersendiri untuk mengakses masing-masing tingkatan informasi. Sistem hirarki untuk informasi sensitif ini digunakan oleh hampir seluruh pemerintahan di dunia untuk menangani informasi sensitif yang ada. Teknik untuk menggolongkan informasi sensitif ini disebut klasifikasi data.

Tabel 2.1 Tingkatan Akses Informasi Sensitif

|Tingkatan |Pengertian |

|Top Secret |Merupakan tingkatan paling tinggi. Dokumen yang diberikan |

| |label Top Secret merupakan dokumen yang dapat membuat |

| |kerusakan luar biasa jika sampai diakses oleh pihak yang |

| |tidak berwenang |

|Secret |Merupakan dokumen-dokumen yang jika sampai diakses oleh |

| |pihak tidak berwenang maka dapat menimbulkan kerusakan |

| |serius pada sebuah organisasi, kebanyakan data penting |

| |digolongkan pada tingkatan ini |

|Confidential |Merupakan tingkatan paling rendah pada dokumen-dokumen |

| |rahasia, akan tetapi jika diakses oleh pihak tidak berwenang|

| |dapat menimbulkan kerusakan |

|Public Trust |Bukan merupakan tingkatan izin keamanan untuk mengakses |

| |suatu dokumen. Akan tetapi dokumen yang dilabelkan Public |

| |Trust masih mengandung informasi sensitif dan pihak-pihak |

| |yang dapat mengaksesnya harus menjalani pemeriksaan latar |

| |belakang terlebih dahulu |

| | |

| | |

|Unclassified |Secara teknis, dokumen yang diberikan label Unclassified |

| |bukan merupakan klasifikasi keamanan, akan tetapi merupakan |

| |pilihan default untuk sebuah dokumen yang dapat dirilis ke |

| |pihak-pihak walaupun tanpa izin keamanan |

2.1.1.3 Pengertian Data Umum

Semua informasi tanpa peduli bentuk dan formatnya yang dibuka, disebarluaskan, dan dibuat tersedia untuk diakses oleh publik. Data yang dapat diklasifikasikan sebagai data publik merupakan data yang jika diakses, diubah, dan dirusak oleh pihak lain akan mengakibatkan kerugian yang sangat tidak signifikan. (Public Information Law and Legal Definition, 2018; Information Security Office, 2018)

2.1.2 Aturan Dasar Keamanan Informasi

Dalam dunia keamanan siber terdapat 3 serangkai dasar yang menjadi pusat untuk keamanan informasi, 3 serangkai tersebut adalah confidentiality, integrity, dan availability.

2.1.2.1 Confidentiality

Confidentiality merupakan aspek yang membatasi akses terhadap informasi dimana hanya pihak-pihak yang berwenang saja yang dapat mengakses suatu informasi agar tidak terjadi kebocoran informasi penting. (Andress, 2014, p. 240; Beckers, 2015; Boritz, 2011; Loukas & Oke, 2010)

2.1.2.2 Integrity

Integrity merupakan aspek yang merujuk kepada tingkat kepercayaan kepada suatu informasi yang diterima. Tingkatan kepercayaan informasi berdasarkan akurasi serta konsistensi terhadap suatu informasi yang sudah diterima. Aspek ini memproteksi jika suatu informasi yang diterima telah dimodifikasi oleh pihak-pihak yang tidak berwenang. (Andress, 2014, p. 240; Beckers, 2015; Boritz, 2011; Loukas & Oke, 2010)

2.1.2.3 Availability

Availability merupakan aspek yang merujuk kepada jika informasi dibutuhkan oleh pihak-pihak yang berwenang maka informasi tersebut harus selalu tersedia secara cepat. (Andress, 2014, p. 240; Beckers, 2015; Boritz, 2011; Loukas & Oke, 2010)

2.2 Teknik Pengumpulan Data

Penelitian ini menggunakan 3 teknik pengumpulan data yang saling berkaitan satu sama lain, ketiga teknik tersebut merupakan web crawling, web scraping dan google dorking.

2.2.1 Web Crawling

Web Crawling merupakan suatu proses dimana sebuah program berjalan memasuki sebuah halaman website lalu mengambil seluruh link di dalam website tersebut dan memasukkan seluruh link tersebut ke dalam antrian untuk dilakukan proses web crawling pada setiap halaman tersebut. Program ini disebut juga dengan nama crawler, sedangkan antrian link disebut juga sebagai seed (Olston & Marc, 2010). Web crawler umumnya merupakan sebuah komponen utama dalam sebuah search engine atau mesin pencarian. Pada penelitian ini, web crawling digunakan untuk mengumpulkan link-link artikel yang diambil dari halaman indeks berita sebuah situs berita online. Terdapat banyak algoritma yang dapat digunakan pada teknik web crawling, algoritma-algoritma tersebut mengacu pada algoritma dasar dari web crawling, yaitu (Kausar, Dhaka, & Singh, 2015, pp. 1-7):

1. Memilih salah satu URL dari seed (kumpulan URL).

2. Mengakses halaman URL yang terpilih.

3. Mengambil seluruh link yang berada pada halaman tersebut.

4. Memasukkan seluruh link tersebut kedalam seed.

5. Memberi tanda URL terpilih dari seed bahwa URL telah dikunjungi.

6. Kembali ke langkah pertama.

Dari algoritma tersebut, dapat kita simpulkan bahwa tugas utama sebuah web crawler adalah mengumpulkan link-link dari seluruh halaman. Pada penelitian ini seluruh link tersebut akan diproses lebih lanjut pada teknik pengumpulan data berikutnya yaitu web scraping.

Terdapat beberapa tantangan dalam melakukan web crawling, tantangan- tantangan tersebut merupakan (Ahuja, Bal, & Varnica, 2014, pp. 132-137):

1. Scale, perkembangan sebuah website saat ini terus meningkat, crawler harus mampu mengikuti perkembangan dari sebuah website secara menyeluruh dengan performa yang baik.

2. Content Selection Tradeoff, tujuan utama sebuah crawler adalah untuk memperoleh konten dengan nilai yang tinggi dengan waktu yang cepat dan mengumpulkan informasi yang relevan, crawler harus mampu mengabaikan konten-konten yang tidak relevan dalam pengumpulan data.

3. Social Obligations, crawler harus mengkuti mekanisme keamanan agar tidak dianggap spam atau dianggap melakukan serangan terhadap suatu website.

4. Adversaries, terdapat beberapa konten dari sebuah website yang menampilkan konten berupa iklan, crawler harus mampu menghindari konten-konten tersebut.

5. Copyright, pada dasarnya crawler melakukan hal yang ilegal, karena secara permanen mengambil sebuah data atau material dari sebuah halaman dan menyimpannya. Crawler harus mampu menangani masalah copyright dari sebuah halaman website.

6. Privacy, crawler harus mampu mengatasi masalah privasi, terdapat beberapa aturan dimana masalah privasi akan terjadi apabila beberapa data digunakan dengan cara tertentu.

7. Cost, crawler bisa saja menimbulkan masalah dari segi bandwidth untuk sebuah website karena mengunjungi halaman website tersebut terus menerus secara berkala. Crawler harus mampu memberikan performa terbaik dalam melakukan crawling di sebuah website.

Dari beberapa masalah di atas, masalah utama yang harus diperhatikan pada penelitian ini adalah bagaimana mengumpulkan seluruh link yang relevan untuk digunakan pada teknik scraping dan bagaimana melakukan pengumpulan data tersebut dengan menggunakan performa yang terbaik.

2.2.2 Web Scraping

Web scraping merupakan suatu proses dimana sebuah program berjalan mengambil seluruh halaman dari sebuah URL yang diberikan, program tersebut disebut juga dengan web scraper atau scraper (Schrenk, 2012, p. 37). Web scraper mengunjungi link hasil dari web crawling, seluruh halaman yang diambil dari hasil web scraping nantinya akan diproses untuk dilakukan ekstraksi informasi yang dibutuhkan dari halaman tersebut. Proses ekstraksi informasi ini disebut juga dengan proses parsing. Dalam proses parsing sebuah halaman, beberapa komponen yang dianggap tidak penting akan dibuang, lalu proses parsing akan mencari elemen-elemen dari halaman yang menampung informasi yang dibutuhkan dan menyimpan informasi tersebut kedalam memory.

2.2.3 Google Dorking

Google Dorking adalah sebuah teknik yang memanfaatkan search engine Google. Dengan memberikan query khusus, pengguna mendapatkan hasil yang lebih terarah dari response search engine Google. Penulis menggunakan teknik ini untuk membuat seed untuk di scrape. (Toffalini, Abbà, Carra, & Balzarotti, 2016, p. 3)

2.3 Data Loss Prevention

2.3.1 Pengertian Data Loss Prevention

Data Loss Prevention merupakan kumpulan teknologi, produk, dan teknik yang dirancang untuk mencegah informasi sensitif keluar dari suatu organisasi.

Data Loss Prevention juga seringkali digunakan sebagai salah satu teknik untuk mencegah terjadinya Data Breach atau kebocoran data.

2.3.2 Pengertian Data Breach

Data Breach adalah sebuah insiden dimana informasi dicuri atau diambil tanpa sepengetahuan atau otorisasi dari pemilik sistem. Data yang dicuri mungkin berisi informasi sensitif, hak milik, atau informasi penting seperti nomor kartu kredit, data konsumen, rahasia dagang, atau rahasia negara.

2.4 Data Mining dan Text Mining

Terdapat beberapa konsep yang perlu dipahami dalam penelitian ini, yaitu konsep mengenai data mining dan text mining. Konsep ini merupakan konsep dasar dalam proses klasifikasi dan pemrosesan teks yang nantinya akan diimplementasikan.

2.4.1 Data Mining

Data mining merupakan ekstraksi informasi dari data yang disimpan dalam database (Han, Kamber, & Pei, 2012, p. 33). Dapat disimpulkan bahwa data mining merupakan proses menganilisis data dalam jumlah yang banyak untuk mendapatkan informasi yang berguna. Menurut Roiger, data mining menggunakan beberapa algorima untuk mengidentifikasi sebuah trend dan pattern dari sebuah kumpulan data, proses ini disebut juga proses learning (Roiger, 2016, p. 127). Roiger juga menjelaskan bahwa terdapat 4 tingkatan dalam proses learning yang digunakan untuk membedakan kesulitan dalam proses learning, tingkatan tersebut adalah:

1. Facts (fakta), merupakan pernyataan sederhana tentang kebenaran data.

2. Concepts (konsep), merupakan sekumpulan objek, simbol, atau kejadian yang digabung menjadi satu karena memiliki karakteristik yang sama.

3. Procedures (prosedur), merupakan langkah-langkah dari sebuah aksi untuk mencapai sebuah tujuan.

4. Principles (prinsip), merupakan representasi dari tingkatan tertinggi sebuah proses learning, prinsip merupakan pernyataan kebenaran atau aturan yang memiliki dasar dari kebenaran data lainnya.

Dalam implementasi data mining terdapat beberapa proses yang dilakukan untuk mendapatkan informasi yang relevan dari kumpulan data (Witten, Frank, Hall, & Pal, 2016, p. 3), proses tersebut merupakan:

1. Business Understanding, menentukan kebutuhan dan objektif yang akan diproses menggunakan data mining. Selain itu, pada proses ini jenis dan bentuk data yang dihasilkan juga harus ditentukan.

2. Data Understanding, merupakan proses inisialisasi kumpulan data yang cocok dan tidak cocok untuk diproses pada proses selanjutnya.

3. Data Preparation, Modeling and Evaluating, merupakan pemrosesan data mentah yang akan digunakan dan dijadikan model data. Beberapa proses juga terjadi pada proses ini, seperti iterasi dan transformasi data.

4. Evaluation, merupakan proses evaluasi hasil dari proses sebelumnya. Proses ini juga menandakan proses data mining telah berhasil dilakukan.

Inti dari data mining terjadi pada proses data preparation, modeling dan evaluating. Pada proses inilah ekstraksi informasi dilakukan. Proses ekstraksi informasi memiliki beberapa sub-proses, yaitu (Han, Kamber, & Pei, 2012, p. 33):

1. Data Cleaning, merupakan proses menghilangkan noise dan data yang tidak relevan, serta data yang tidak konsisten.

2. Data Integration, merupakan penggabungan data dari berbagai data ke dalam suatu kumpulan data baru.

3. Data Selection, merupakan seleksi data pada suatu kumpulan data yang akan dianalisis, karena tidak semua data dapat dianalisis.

4. Data Transformation, merupakan proses pengubahan atau penggabungan data kedalam format data yang sesuai atau format data yang sama.

5. Application of Techniques, merupakan proses utama dimana terdapat suatu metode yang diterapkan untuk menemukan informasi dari kumpulan data.

6. Pattern Evaluation, merupakan proses untuk mengidentifikasi pola yang direpresentasikan ke dalam knowledge base.

7. Knowledge Presentation, merupakan visualisasi dan penyajian informasi yang diperoleh dari kumpulan data.

2.4.2 Text Mining

Text mining merupakan proses ekstraksi informasi terhadap dokumen teks atau kumpulan teks untuk menghasilkan pola atau informasi yang berguna (Witten, Frank, Hall, & Pal, 2016, p. 4). Text mining umumnya digunakan pada pemodelan dokumen, visualisasi dokumen dan analisa tren.

2.4.3 Bag of Words

Bag of Words (BoW) merupakan sebuah model yang digunakan pada Natural Language Processing (NLP) dimana model ini menghitung jumlah kemunculan suatu kata pada sebuah dokumen berdasarkan corpus atau kumpulan kata yang telah ditentukan (Manning, Raghavan, & Schütze, 2009, p. 154)..

2.5 Artificial Intelligence

2.5.1 Pengertian Artificial Intelligence

Kecerdasan buatan yang biasa disingkat AI (Artificial Intelligence) merupakan ilmu tentang bagaimana membangun suatu sistem komputer yang menunjukkan kecerdasan dalam berbagai cara. AI merupakan area penelitian yang dinamis dalam topik riset ilmu komputer. Sampai saat ini, telah banyak penelitian mengenai perkembangan AI diantaranya neural network, evolutionary computing, machine learning, natural language processing, dan object-oriented programming. (Teahan, 2010, p. 13)

2.5.2 Pengertian Machine Learning

Machine Learning didefinisikan sebagai bidang studi yang memberikan komputer kemampuan untuk belajar tanpa diprogram secara eksplisit. Arthur Samuel terkenal dengan program bermain caturnya.

Definisi yang lebih formal diberikan oleh Tom Mitchell, program komputer dikatakan belajar dari pengalaman (E) berhubungan dengan beberapa tugas (T) dan beberapa ukuran kinerja (P). Jika kinerjanya pada T, yang diukur dengan P, meningkat dengan pengalaman E, maka program tersebut disebut program Machine Learning. (Saad, 2016, p. 14)

2.5.3 Pengertian Klasifikasi

“Klasifikasi diartikan sebagai proses untuk memperoleh model ataupun fungsi yang melukiskan dan membedakan kelas data maupun konsep yang mempunyai tujuan memprediksikan kelas untuk data yang tidak dikenali kelasnya” (Han, Kamber, & Pei, 2012, p. 327). “Ada banyak teknik yang dapat dilakukan untuk mengklasifikasikan data, diantaranya adalah decision tree, naive bayesian classifier, bayesian belief network dan rule-based classifier” (Han, Kamber, & Pei, 2012, p. 327). Setiap algoritma klasifikasi tersebut memiliki kelebihan dan kekurangan, tetapi prinsip dari masing-masing algoritma tersebut sama, yaitu melakukan suatu pelatihan sehingga di akhir pelatihan model dapat memprediksi setiap vector masukan ke label kelas output dengan tepat.

2.5.4 Pengertian Training Set

Training Set adalah sekumpulan data dari dataset yang digunakan untuk melatih model. Dengan demikian, jika training set diberi label dengan benar maka model dapat belajar dari training set yang telah diberikan.

2.5.5 Pengertian Test Set

Test set adalah sekumpulan data dari dataset yang digunakan untuk memverifikasi hasil dari training set. Hasil dari test set akan menjadi penilaian apakah proses machine learning telah berjalan dengan baik atau tidak.

2.5.6 Pengertian Artificial Neural Network

Artificial Neural Network (ANN) merupakan sebuah sistem model matematika yang meniru persis sistem neuron biologis makhluk hidup (Russell & Norvig, 2009, p. 727), seperti halnya neuron biologis, neuron pada model matematika ini memiliki 3 komponen utama, yaitu:

1. Input Signal yang merepresentasikan dendrites pada neuron biologis, pada model matematika komponen ini bertujuan sebagai input signal dimana data seperti feature atau variables masuk melalui komponen ini.

2. Activation Function yang merepresentasikan cell body pada neuron biologis, komponen ini berfungsi untuk melakukan proses komputasi berdasarkan input yang diterima.

3. Output Signal yang merepresentasikan axon pada neuron biologis, komponen ini memberikan hasil dari proses komputasi dari komponen cell body yang akan diterima oleh input signal pada node atau neuron berikutnya.

Saat ini ANN dinilai dapat memecahkan beberapa tantangan seperti pattern classification, clustering, modeling, forecasting, optimization, association, dan control. ANN terdiri dari 2 model yaitu single-input neuron dan multiple-input neuron (Abambres & Ferreira, 2018, p. 9):

1. Single-Input Neuron

Single-input neuron merupakan skalar masukan yang dikalikan dengan scalar bobot w yang menghasilkan wp, kemudian dikirim ke linear combination. Selain itu, terdapat juga masukan bias b yang dikirim langsung ke linear combination, hasil dari linear combination n merupakan masukan dari transfer function f atau fungsi aktifasi f, yang menghasilkan a.

[pic]

2. Multiple-Input Neuron

Multiple-input neuron pada dasaranya sama dengan single-input neuron, namun model ini memiliki lebih dari 1 input, masing-masing input direpresentasikan sebagai [pic] dan masing masing weight pada setiap input direpresentasikan sebagai [pic].

[pic]

Dari kedua model di atas, dapat kita simpulkan neural network memilki beberapa elemen inti, yaitu:

1. Input (p), merupakan features yang akan diproses pada linear combination.

2. Weight (w), merupakan indikator keeratan antar neuron.

3. Bias (b), merupakan konstan input sama seperti weight.

4. Linear Combination ((), merupakan proses kalkulasi p dengan w dan b.

5. Activation Function (f), mengandung persamaan yang menghasilkan output a.

2.5.7 Komponen Neural Network

Neural network terdiri dari kumpulan beberapa neuron unit yang saling terhubung. Masing-masing neuron mentransformasikan informasi yang telah diterima menuju neuron lain melalui sambungan atau link. Pada neural network, hubungan ini disebut dengan bobot. Gambar 2.3 menunjukkan struktur neuron pada neural network. Informasi masukan bagi neuron, atau input, dikirim ke neuron dengan bobot kedatangan tertentu. Input ini diproses dengan suatu fungsi yang menjumlahkan nilai berbobot dari semua input yang datang. Hasil penjumlahan kemudian dikenakan fungsi aktivasi untuk menentukan apakah neuron tersebut akan diaktifkan atau tidak. Biasanya hal ini dilakukan dengan cara membandingkan dengan threshold atau ambang nilai tertentu. Apabila neuron tersebut diaktifkan, maka neuron tersebut mengirimkan output melalui bobot-bobotnya ke semua neuron selanjutnya yang berhubungan.

[pic]

Gambar 2.3 Satu unit neuron pada JST

2.5.8 Fungsi Aktivasi

Fungsi aktivasi merupakan sebuah fungsi yang menentukan aktif tidaknya neuron. Fungsi yang dipakai bisa berupa fungsi linear dengan nilai ambang atau ReLu, atau fungsi non-linear seperti fungsi Sigmoid dan fungsi Tanh.

2.5.8.1 Fungsi ReLu (Rectified Linear Unit)

Fungsi yang digunakan untuk aktivasi pada ReLu adalah sebagaimana ditunjukkan pada Gambar 2.4. Secara umum, fungsi ReLu dinyatakan dalam persamaaan (2.1). Dari gambar dan persamaan tersebut, maka nilai output dari neuron bisa dinyatakan sebagai 0 jika input nya adalah negatif. Jika nilai input dari fungsi aktivasi adalah positif, maka output dari neuron adalah nilai input aktivasi itu sendiri.

[pic] (2.1)

[pic]

Gambar 2.4 Fungsi Aktivasi ReLu

2.5.8.2 Fungsi Sigmoid

Fungsi sigmoid adalah fungsi non-linear yang mempunyai persamaan matematika sebagaimana ditunjukkan pada persamaan (2.2). Masukan untuk fungsi aktivasi tersebut adalah nilai real dan keluaran dari fungsi tersebut adalah nilai antara 0 dan 1. Jika masukannya sangat negatif, maka keluaran yang didapatkan adalah 0, sedangkan jika masukan sangat positif maka nilai keluaran yang didapatkan adalah 1. Nilai masukan dan keluaran dari fungsi sigmoid dapat dinyatakan dalam grafik pada Gambar 2.5.

[pic] (2.2)

[pic]

Gambar 2.5 Fungsi Aktivasi Sigmoid

Fungsi sigmoid mempunyai dua kekurangan utama, yang pertama yaitu bahwa fungsi ini mempunyai gradien mendekati nilai nol jika nilai input sangat negatif atau sangat positif. Hal ini tidak diharapkan karena nilai gradien digunakan dalam proses pelatihan. Kelemahan kedua adalah bahwa fungsi ini tidak terpusat pada nilai 0 (zero centered).

2.5.8.3 Fungsi Tanh

Fungsi Tanh mengubah masukan yang bernilai real menjadi nilai antara -1 dan 1 sebagaimana ditunjukkan pada Gambar 2.6. Pada gambar tersebut, ditunjukkan bahwa nilai yang sangat negatif diubah menjadi nilai -1 dan nilai yang sangat positif diubah menjadi nilai 1. Fungsi ini merupakan fungsi yang nilainya terpusat pada nilai 0 sehingga lebih dipilih dibandingkan dengan fungsi sigmoid. Persamaan untuk fungsi Tanh ditunjukkan pada Persamaan (2.3), dimana nilai fungsi Tanh merupakan dua kali nilai sigmoid dikurangi satu.

[pic] (2.3)

[pic]

Gambar 2.6 Fungsi Aktivasi Tanh

2.5.8.4 Fungsi Softmax

Softmax merupakan bentuk lain dari algoritma Logistic Regression yang dapat kita gunakan untuk pengklasifikasian. Standar klasifikasi yang biasa dilakukan oleh algoritma Logistic Regression adalah tugas untuk klasifikasi kelas biner. Pada Softmax bentuk persamaan yang muncul adalah sebagai berikut.

[pic] (2.4)

Notasi S menunjukkan hasil fungsi untuk setiap elemen ke-j pada vektor keluarankelas. Argumen Yi adalah hipotesis yang diberikan oleh model pelatihan agar dapat diklasifikasi oleh fungsi Softmax.

Softmax juga memberikan hasil yang lebih intuitif dan juga memiliki interpretasi probabilistik yang lebih baik dibanding algoritma klasifikasi lainya. Softmax memungkinkan kita untuk menghitung probabilitas untuk semua label. Dari label yang ada akan diambil sebuah vektornilai bernilai riil dan merubahnya menjadi vektor dengan nilai antara nol dan satu yang bila semua dijumlah akan bernilai satu.

(Goodfellow, Bengio, & Courville, 2016, p. 96)

2.5.9 Fungsi Loss

Fungsi Loss merupakan teknik untuk mengukur suatu kejadian sebuah variabel menjadi nilai riil yang berhubungan dengan sebuah cost. Fungsi Loss digunakan sebagai teknik pengukuran perfoma sebuah model yang telah dibuat serta inkonsistensi dari hasil prediksi model tersebut. (Murugan, 2018, p. 6)

2.5.9.1 Cross-Entropy

Fungsi Loss yang paling sering digunakan adalah fungsi Loss Cross-Entropy. Fungsi ini menghitung seberapa jauh hasil prediksi model yang telah dibuat dengan hasil sebenarnya. Hasil yang telah diprediksi akan dimasukkan kedalam rumus Cross-Entropy lalu hasilnya dapat dibandingkan dengan hasil sebenarnya. Semakin rendah hasil perhitungan Cross-Entropy maka semakin baik model yang telah dibuat.

[pic] (2.5)

2.5.10 Arsitektur Artificial Neural Network

Terdapat 3 arsitektur utama dalam ANN, ketiga arsitektur tersebut merupakan (Hagan, Demuth, Beale, & Jesús, 2014, p. 63):

a. Single-Layer Feedforward

Merupakan bentuk sederhana dari neural network, dimana terdapat input layer yang secara langsung mengarah ke output layer dan tidak terhubung sebaliknya, seperti yang terdapat pada Gambar 2.7.

[pic]

Gambar 2.7 Arsitektur Single-Layer Feedforward (Hagan, Demuth, Beale, & Jesús, 2014, p. 63)

b. Multi-Layer Feedforward

Multi-layer feedforward pada dasarnya sama dengan single-layer feedforward, namun multi-layer memiliki hidden layer yang merupakan kumpulan neuron atau node yang terhubung di antara input layer dan output layer seperti pada Gambar 2.8.

[pic]

Gambar 2.8 Arsitektur Multi-Layer Feedforward. (Hagan, Demuth, Beale, & Jesús, 2014, p. 65)

c. Recurrent Networks

Recurrent networks memiliki sifat yang sama dengan kelas feedforward network, syarat utama pada recurrent network ini adalah setidaknya ada 1 feedback loop seperti yang digambarkan pada Gambar 2.9.

Penggunaan arsitektur bergantung pada masalah yang akan diselesaikan. Terdapat beberapa spesifikasi yang dapat membantu dalam menetapkan arsitektur (Hagan, Demuth, Beale, & Jesús, 2014, p. 67), yang pertama adalah jumlah dari input sama dengan jumlah dari problem input, kedua adalah jumlah neuron pada output layer sama dengan jumlah output, dan yang ketiga adalah aktifasi fungsi yang dipilih setidaknya ditentukan dari problem output.

2.5.11 Neural Network Layer

Neural Network Layer merupakan jaringan saraf tiruan yang memiliki satu lapisan input, satu atau lebih lapisan tersembunyi (hidden) dan satu lapisan output. Setiap lapisan memiliki satu atau lebih neuron tiruan yang memiliki fungsi aktifasi yang berbeda sesuai dengan tujuan lapisan dalam jaringan tersebut. (Patterson & Gibson, 2017, p. 68)

Sedangkan menurut (Haykin, 2009, p. 132). Neural Network Layer merupakan generalisasi dari struktur SLP dengan adanya lapisan tersembunyi yang berarti secara tidak langsung tidak terlihat baik dalam lapisan input maupun lapisan output. Fungsi dari lapisan tersembunyi ini adalah untuk ikut campur dalam input-an luar dan hasil dari jaringan saraf tiruan tersebut dalam berbagai cara yang bermanfaat. Pada gambar 2.10 terdapat 15 buah node input, 4 buah node tersembunyi dan 2 buah node output, jaringan saraf tiruan tersebut adalah contoh dari Neural Network Layer.

Gambar 2.10 Contoh Neural Network Layer. (Haykin, 2009, p. 132)

\

a. Input Layer

Pada input layer, input document yang sudah di extract text-nya akan di ambil beberapa informasi yang akan menghasilkan sebuah nilai.

b. Hidden Layer

Nilai yang di hasilkan oleh input layer akan masuk kedalam hidden layer dan akan di proses oleh hidden layer dengan melipat gandakan nilai-nilai yang terkirim ke hidden layer. Setelah itu hidden layer akan mengubah nilai-nilai tersebut menjadi satu nilai.

c. Output Layer

Output layer akan menerima nilai yang sudah di proses oleh hidden layer dan akan di lanjutkan ke proses selanjutnya.

Neural network dapat mempunyai jumlah layer yang tidak terbatas dan jumlah node pada setiap layer.

2.5.12 Algoritma Neural Network

Terdapat banyak algoritma yang dapat digunakan dalam penerapan ANN, berikut adalah beberapa algoritma yang sering digunakan:

a. Rosenblatt’s Perceptron Algorithm

Algoritma ini merupakan algoritma pertama yang ada pada neural network, ditemukan oleh Rosenblatt pada tahun 1958. Algoritma ini digunakan untuk memecahkan masalah linearly separable, algoritma ini merupakan algoritma yang digunakan untuk arsitektur single-layer feedforward.

b. Least Mean Square Algorithm

Algoritma ini dikembangkan oleh Widrow dan Hoff pada tahun 1960. Algoritma ini merupakan algoritma pertama yang menggunakan adaptive-filtering untuk pemecahan masalah, algoritma ini dikembangkan untuk arsitektur single-layer feedforward.

c. Backpropagation Neural Network Algorithm

Algoritma ini merupakan teknik spesifik untuk menerapkan gradient descent pada bobot untuk arsitektur multi-layer feedforward, tujuan utama dari algoritma ini adalah untuk memproses secara efisien partial derivative dari sebuah fungsi.

Dari beberapa algoritma di atas dalam penerapan ANN dapat menggunakan algoritma berdasarkan arsitektur yang digunakan dan problem dari pemecahan masalah.

2.5.13 Backpropagation Learning

Neural network menggunakan cara kerja otak manusia dalam prosesnya, oleh karena itu diperlukan sebuah pembelajaran atau learning. Pembelajaran dilakukan untuk menentukan nilai bobot yang tepat untuk masing-masing input. Bobot akan bertambah jika informasi yang diberikan oleh neuron yang bersangkutan dapat tersampaikan. Dan sebaliknya, bobot akan berubah secara dinamis sehingga dicapai suatu nilai yang seimbang jika informasi tidak disampaikan. Proses pembelajaran dapat dihentikan apabila nilai-nilai ini mampu mengidentifikasikan hubungan antara input dan output. Terdapat dua metode utama dalam melakukan pembelajaran, yaitu:

1. Pembelajaran tak terawasi (Unsupervised learning)

Pada metode ini target output tidak diperlukan dan hasil yang diinginkan tidak dapat ditentukan dari awal. Tujuan dari pembelajaran metode ini adalah mengelompokan unit-unit yang hampir sama dalam suatu kelompok tertentu.

2. Pembelajaran terawasi (Supervised learning)

Metode pembelajaran pada neural network disebut terawasi jika output yang diharapkan telah diketahui sebelumnya. Pada proses pembelajaran, satu pola input diberikan ke neuron pada lapisan input. Pola ini dirambatkan sepanjang lapisan neural network tersebut hingga sampai pada neuron pada lapisan output. Lapisan output membangkitkan pola output yang nantinya dicocokkan dengan pola output targetnya. Contoh metode ini adalah backpropagation.

Backpropagation learning merupakan sebuah metode atau algoritma yang digunakan dalam artificial neural networks untuk menghitung gradien yang akan digunakan sebagai weight dalam neural network. backpropagation merupakan singkatan dari the backward propagation of errors dikarenakan algoritma ini menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi yang dapat diturunkan, seperti fungsi sigmoid.

Arsitektur jaringan backpropagation seperti ditunjukkan pada Gambar 2.11. Gambar tersebut menunjukkan neural network yang terdiri dari tiga unit neuron pada lapisan input (x1, x2, dan x3), dua neuron pada lapisan tersembunyi (Z1dan Z2), dan satu unit neuron pada lapisan output (Y). Bobot yang menghubungkan x1, x2, dan x3 dengan neuron pertama pada lapisan tersembunyi adalah V11, V21, dan V31. b11 dan b12 adalah bobot bias yang menuju neuron pertama dan kedua pada lapisan tersembunyi. Bobot yang menghubungkan Z1 dan Z2 dengan neuron pada lapisan output adalah w1 dan w2. Bobot bias b2 menghubungkan lapisan tersembunyi dengan lapisan output.

[pic]

Gambar 2.11 Jaringan Backpropagation. (Haykin, 2009, p. 135)

Algoritma backpropagation untuk jaringan dengan satu lapisan tersembunyi sebagaimana pada Gambar 2.11. bekerja sebagai berikut:

a. Inisialisasi bobot (menetapkan nilai bobot awal untuk semua parameter).

b. Tetapkan kondisi berhenti yang berupa maksimum epoch, iterasi, atau target error. Satu epoch adalah satu putaran training untuk semua data latih yang ada.

c. Tetapkan learning rate(α).

d. Inisialisasi epoch=0.

e. Kerjakan selama kondisi berhenti belum terpenuhi (epoch < maksimum epoch dan error < target error):

1. epoch=epoch+1.

2. Untuk tiap-tiap pasangan elemen yang dilakukan pembelajaran, lakukan feedforward.

3. Hitung kesalahan (error) antara hasil klasifikasi dan label kelas, dan gunakan informasi ini untuk mencari gradien kesalahan terhadap parameter-parameter yang ada.

4. Lakukan update bobot dengan informasi gradien yang didapatkan sebelumnya dengan Persamaan (2.6).

[pic] (2.6)

Pada persamaan tersebut, w(t+1) adalah bobot yang baru, w(t) adalah bobot lama, η adalah learning rate dan E(w(t)) adalah gradien dari ∇ error.

2.5.14 Algoritma Optimisasi

1. Limited-Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) Metode Limited-Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) merupakan metode optimisasi yang digunakan dalam pemrograman non-linier untuk menemukan nilai global minimal. Metode ini adalah salah satu varian dari metode Quasi-Newton yang dibuat berdasarkan metode Newton yang sulit dan memiliki waktu komputasi yang lama. Karena kelemahan tersebut, dikembangkanlah L-BFGS yang memiliki keunggulan di waktu komputasi yang lebih sedikit dibandingkan metode BFGS (limited memory pada L-BFGS berarti memerlukan memori yang sedikit).

2. Adam merupakan algoritma optimisasi stokastik berdasarkan perkiraan adaptif dari momen order rendah. Algoritma Adam pertama kali diperkenalkan oleh Kingma & Ba. Metode ini dapat diimplementasikan dengan mudah, memiliki komputasi yang efisien, memiliki kebutuhan memori yang kecil, invarian terhadap skala gradien dan cocok diterapkan pada data atau parameter dengan jumlah yang besar. Algoritma Adam cocok diterapkan pada permasalahan data yang sangat berderau atau gradien yang menyebar. (Chong & Żak, 2014, pp. 1-15; Kingma & Ba, 2014)

2.6 Unified Modeling Language (UML)

Unified Modeling Language (UML) merupakan bahasa standar untuk menuliskan blueprints dari perangkat lunak. UML dapat digunakan dalam membuat model, membuat visual, menyusun, dan mendokumentasi sebuah arsitektur dari suatu sistem perangkat lunak (Seidl, Scholz, Huemer, & Kappel, 2015, p. 11). Dari pengertian sebelumnya dapat disimpulkan bahwa Unified Modeling Language (UML) merupakan suatu standarisasi pemodelan atau bahasa standar dalam membuat rencana, membuat visual, mendokumentasi dan merancang dari sebuah sistem software. Berikut Merupakan komponen - komponen dari UML:

2.6.1 Activity Diagram

Activity diagram digunakan untuk menggambarkan rangkaian aliran aktivitas baik proses bisnis atau use-case dan memodelkan tindakan yang akan dilakukan saat sebuah operasi dieksekusi (Seidl, Scholz, Huemer, & Kappel, 2015, p. 141). Activity diagram lebih menekankan pada alur dari control didalam pelaksanaan dari suatu action pada sistem yang berjalan. Contoh activity diagram seperti pada Gambar 2.12. berikut:

[pic]

Gambar 2.12 Komponen activity diagram. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 141)

2.6.2 Use-case Diagram

Diagram use-case digunakan untuk menggambarkan interaksi antara sistem, sistem eksternal, dan pengguna. Dengan kata lain, secara grafis menjelaskan apa yang dilakukan sistem serta secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan dalam cara apa pengguna mengharapkan interaksi dengan sistem ini (Seidl, Scholz, Huemer, & Kappel, 2015, p. 23). Berikut ini adalah konsep pemodelan use-case yang digunakan:

1. Use-case:

Use-case merupakan urutan langkah – langkah yang secara tindakan saling terkait (skenario), baik terotomatisasi maupun secara manual, untuk tujuan melengkapi satu tugas bisnis tunggal.

2. Actor:

Pelaku adalah segala sesuatu yang perlu berinteraksi dengan sistem untuk pertukaran inforamasi. Pelaku menginisiasi kegiatan sistem, yakni sebuah use-case. Ada 4 macam tipe pelaku yaitu:

a. Primary business actor (Pelaku bisnis utama), merupakan stakeholder yang terutama mendapat keuntungan dari pelaksanaan use-case dengan menerima nilai yang terukur. Jenis pelaku ini kemungkinan tidak menginisiasi kejadian bisnis. Sebagai contoh, dalam kejadian bisnis dari seorang karyawan menerima gaji (nilai terukur) dari sistem penggajian setiap awal bulan, karyawan tidak menginisiasi kejadian tersebut, tetapi merupakan penerima utama dari suatu yang bernilai.

b. Primary system actor (Pelaku sistem utama), merupakan stakeholder yang secara langsung berhadapan dengan sistem untuk menginisiasi atau memicu kejadian kegiatan atau sistem. Contohnya, dalam kejadian bisnis penggajian karyawan maka staf keuangan lah yang langsung berhadapan dengan sistem dan memicu kejadian.

c. External server actor (Pelaku server eksternal), merupakan stakeholder yang melayani kebutuhan pengguna use-case, misalnya biro kredit yang memiliki kuasa atas perubahan kartu kredit.

d. External receiving actor (Pelaku penerima eksternal), merupakan stakeholder yang bukan pelaku utama, tetapi menerima nilai yang terukur atau output dari use-case, misalnya bagian gudang menerima paket permintaan untuk menyiapkan pengiriman sesudah seorang pelanggan memesannya.

3. Relationship (Hubungan):

Pada diagram use-case, hubungan digambarkan sebagai sebuah garis antara dua simbol. Berikut ini adalah penjelasannya:

a. Association (Gabungan), merupakan hubungan antara seorang pelaku dan satu use-case, terbentuk kapan pun use-case menggambarkan interaksi antara keduanya.

b. Extends, merupakan use-case yang terdiri dari langkah – langkah diekstrak dari use-case yang lebik kompleks untuk menyederhanakan masalah orisinal dan karena itu memperluas fungsinya.

c. Include, merupakan penggabungan use-case, dimana salah satu use-case akan selalu membutuhkan use-case lainnya.

d. Abstract, merupakan use-case yang mengurangi redudansi antara dua atau lebih use-case lain dengan menggabungkan langkah – langkah yang biasa ditemukan pada use case tersebut.

e. Depends On, merupakan use-case yang memiliki ketergantungan dengan use-case lain sehingga untuk menetapkan rangkaian use-case perlu dikembangkan.

f. Inheritance, merupakan hubungan dua atau lebih pelaku berbagi kelakuan umum. Hal ini dilakukan untuk mengurangi komunikasi pengulangan dengan sistem.

g. Generalization, merupakan hubungan dimana salah satu use-case akan mewarisi dan semua properti dari use-case lainnya.

[pic]

Gambar 2.13 Use Case Diagram. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 23)

2.6.3 Use Case Description

Use Case description merupakan sebuah penjelasan masing - masing case yang digunakan dalam use case diagram. Use case description untuk memperjelas kondisi dan situasi setiap use case yang ada.

[pic]

Gambar 2.14 Contoh Use Case Description. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 36)

2.6.4 Domain Model Class Diagram

Domain Model Class Diagram adalah diagram yang menunjukkan hal - hal yang penting dalam pekerjaan, seperti: masalah domain classes, hubungan antar class, dan atribut dari class. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 49)

[pic]

Gambar 2.15 Domain Model Class Diagram. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 49)

Dalam class diagram, juga dikenal berdasarkan karakteristik kelas yang sama dan hal tersebut berguna untuk menyusun kelas mulai dari karakteristik yang umum hingga karakteristik yang khusus. Kelas yang memiliki karakteristik umum disebut superclass. Sedangkan kelas yang memiliki karakteristik khusus disebut subclass. Sebuah subclass dapat memiliki karakteristiknya superclass-nya dengan penurunan karakteristik atau inheritance. Dalam hirarki class diagram terdapat whole-part hierarchies yang merupakan hirarki yang menyusun kelas-kelas sesuai dengan komponen-komponen yang terkait. Whole-part hierarchies sendiri dapat dibedakan menjadi dua jenis, yaitu:

1. Aggregation: hubungan seluruh-sebagian antara objek dengan bagian-bagiannya di mana setiap bagian dapat terpisah-pisah.

2. Composition: hubungan seluruh-sebagian di mana bagian-bagian yang ada tidak dapat dipisahkan dengan objeknya. Simbol-simbol yang digunakan dalam hierarki class diagram adalah:

a. Generalization (inheritance)

b. Composition

c. Aggregation

2.6.5 First-Cut Class Diagram

First-cut class diagram merupakan perluasan dari Domain Class Diagram yang dikembangkan melalui dua langkah, yaitu dengan menguraikan atribut dengan tipe dan nilai awal serta menambahkan navigation visibility arrows (Seidl, Scholz, Huemer, & Kappel, 2015, p. 49).

[pic]

Gambar 2.16 First-cut DCD for the Create customer account use case. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 49)

2.6.6 Updated Design Class Diagram

Updated design class diagram dapat dikembangkan untuk setiap layer. Pada view dan data access layer, harus ditambahkan beberapa class baru. Demikian pula dengan domain layer juga membutuhkan penambahan class baru sebagai use case controller. Pada Updated Design Class Diagram, method dapat ditambahkan untuk setiap class.

Update Design Class Diagram merupakan Class Diagram yang menggambarkan lanjutan First-Cut Class Diagram di mana terdapat handler yang berfungsi sebagai eksekutor sistem dalam menjalankan fungsi-fungsi operasional pada kelas tersebut. Updated Design Class Diagram dapat dikembangkan untuk setiap layer. Pada view dan data access layer, harus ditambahkan beberapa kelas baru. Demikian pula dengan domain layer juga membutuhkan penambahan kelas baru sebagai use case controller. Pada Updated Design Class Diagram, method dapat ditambahkan untuk setiap kelas. Tiga method umum yang banyak dijumpai pada kelas-kelas Updated Design Class Diagram adalah constructor methods, data get, set methods, dan use case specific method objects (Seidl, Scholz, Huemer, & Kappel, 2015, p. 49).

[pic]

Gambar 2.17 Updated partial DCD for the domain layer. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 49)

2.6.7 Sequence Diagram

Sequence Diagram, sebuah diagram yang menunjukkan urutan pesan antara aktor eksternal dan sistem selama use case atau skenario. System Sequence Diagram digunakan untuk menentukan input, output, dan urutan sekuensial dari input dan output. System sequence diagram digunakan dalam konjungsi dengan penggambaran detail atau dengan activity diagram untuk menunjukkan langkah – langkah dalam proses dan interaksi antara aktor dan sistem. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 107)

[pic]

Gambar 2.18 Sequence Diagram. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 107)

1. First Cut Sequence Diagram dikonstruksikan dengan cara mengembangkan elemen SSD (Simple Sequence Diagram) dengan menggantikan objek: System dengan use-case controller, kemudian menambahkan objek lain yang termasuk dalam use-case. (Seidl, Scholz, Huemer, & Kappel, 2015, p. 107)

2. Completed three-layer design sequence diagram merupakan gambaran lengkap dari sequence diagram dan juga pengembangan dari first-cut sequence diagram. Completed three-layer design sequence diagram menambahkan data layer (Seidl, Scholz, Huemer, & Kappel, 2015, p. 107).

2.6.8 User Interfaces

User Interfaces adalah bagian dari sistem informasi yang memerlukan interaksi dari user atau pengguna untuk membuat input dan output. User Interfaces juga memungkinkan user untuk berinteraksi dengan komputer untuk mencatat berbagai macam transaksi. (Soegaard & Dam, 2013, p. 17) Ada tiga aspek yang harus diperhatikan dalam sebuah User Interfaces yaitu:

1. Aspek Fisik

Aspek fisik meliputi perangkat yang disentuh oleh user, seperti keyboard, mouse, layar sentuh atau keypad serta aspek fisik yang lainnya seperti referensi manual, dokumen yang dicetak, form entri data dan hal lainnya yang digunakan user selama mengerjakan tugas di komputer.

2. Aspek Perseptual

Aspek perseptual meliputi semua hal yang user lihat, dengar atau sentuh (diluar aspek fisik), seperti bentuk, garis, angka dan kata atau komputer yang menghasilkan suara sehingga tampak bahwa sistem dapat berbicara langsung dengan user. Sedangkan apa yang user “sentuh” adalah objek seperti menu, kotak dialog dan button pada layar yang dapat “disentuh” dengan mouse dan juga objek yang dapat disentuh seperti dokumen, atau catatan transaksi.

3. Aspek Konseptual

Aspek konseptual meliputi segala sesuatu yang user ketahui tentang bagaimana cara menggunakan sistem, termasuk semua masalah utama dalam sistem yang meliputi manipulasi, operasi yang dapat dilakukan dan prosedur yang harus diikuti untuk melaksanakan operasi.

2.7 Python

2.7.1 Pengertian Bahasa Pemrograman Python

Python adalah bahasa pemrograman tingkat tinggi yang dibuat oleh Guido van Rossum dan pertama kali dirilis pada tahun 1991. Python memiliki filosofi desain yang menekankan keterbacaan kode, terutama menggunakan whitespace yang signifikan. Ini memungkinkan untuk membuat clear programming pada skala kecil maupun besar. (Kuhlman, 2013, p. 12)

2.7.2 Pengertian Tensorflow

TensorFlow merupakan sistem machine learning buatan Google, yang juga merupakan penerus dari DistBelief. (Abadi, et al., 2016, pp. 265-283)

2.7.3 Pengertian Keras

Dikutip dari Website Keras, Keras adalah high-level neural network API, yang ditulis dalam bahasa pemrograman Python dan bisa dijalankan di atas Tensorflow, CNTK, atau Theano. Keras dikembangkan dengan fokus untuk memungkinkan eksperimen yang cepat. (Keras Documentation, 2019)

2.7.4 Pengertian Tika

Apache Tika adalah Framework untuk mendeteksi konten dan analisa yang ditulis dalam bahasa pemrograman Java, yang dibuat oleh Apache. Program ini mendeteksi dan mengekstrak metadata dan teks dari berbagai macam tipe file yang berbeda seperti PPT, XLS, PDF, maupun DOCX. (Tika Apache Official Site, 2018)

2.7.5 Pengertian QT

QT adalah kerangka pengembangan aplikasi lintas perangkat untuk komputer, ponsel, dan embedded. QT bukan sebuah bahasa pemrograman melainkan sebuah kerangka yang ditulis dalam bahasa C++ menjadikan QT dan semua aplikasi yang menggunakannya dapat di-compile menggunakan compiler C++ standar seperti, Clang, GCC, ICC, MinGW dan MSVC. (QT About Site, 2018)

2.7.6 Pengertian PyQT5

PyQT5 merupakan penghubung antara QT dengan bahasa pemrograman baik Python v2 maupun v3. PyQT5 dapat berjalan di semua perangkat yang didukung oleh QT seperti, Windows, OS X, Linux, iOS dan Android. penghubung tersebut dibentuk menjadi modul-modul Python yang di dalamnya terdapat lebih dari 1000 class. (PyQT Intro Page, 2018)

2.7.7 Pengertian Watchdog

Watchdog adalah API dari Library Python yang berguna untuk memonitor kejadian-kejadian dari sistem file.

2.7.8 Pengertian Configparser

Merupakan sebuah modul Python yang mengimplementasikan bahasa konfigurasi dasar yang sama dengan file .INI dari Microsoft. Modul ini digunakan untuk mempermudah end user untuk mengkustomisasi file konfigurasi. (Configparser Documentation, 2018)

2.7.9 Pengertian Pywin32

Modul ekstensi Python untuk Microsoft Windows yang menyediakan akses langsung ke Win32API, membuat dan menggunakan COM Objects, serta Pythonwin Environment.

2.7.9.1 Pengertian Win32API

Win32API merupakan antarmuka pemrograman yang terdapat di dalam sistem operasi Windows 32-bit modern. Seperti halnya Win16 API, Win32 API juga sama mengimplementasikan fungsi-fungsi di dalam DLL sistem operasi. DLL inti yang dimiliki oleh Win32 API antara lain kernel32.dll, user32.dll, dan gdi32.dll. Win32 pertama kali muncul pada tahun 1993, saat Windows NT diluncurkan. Windows 95 juga menggunakan Win32 API, dan pada awalnya dikenal dengan sebutan Win32c, di mana huruf "c" di sana merujuk kepada "compatibility", tetapi istilah ini akhirnya ditinggalkan oleh Microsoft demi konsistensi nama "Win32".

Dalam Windows NT 4.0 dan para penerusnya (termasuk di antaranya versi-versi terbaru Windows), panggilan-panggilan Win32 dieksekusi oleh dua modul, yakni csrss.exe (Client/Server Runtime SubSystem) di dalam modus pengguna dan Win32K.sys di dalam modus kernel.

2.8 Metode Testing

Software testing ialah sebuah metode di mana sebuah investigasi dilakukan untuk mengetahui kualitas dari software yang dibuat. Selain itu software testing juga kerap dilakukan agar pemilik program mengetahui bug-bug apa saja yang masih terdapat di dalam program mereka. Ada berbagai cara yang bisa digunakan untuk melakukan testing ini yaitu:

1. Whitebox Testing

Whitebox testing ialah sebuah metode untuk melakukan software testing di mana para pentester diberikan akses penuh kepada program yang akan mereka test. Selain itu dokumentasi dan source code juga akan diberikan apabila pentester membutuhkannya.

2. Blackbox Testing

Blackbox testing ialah sebuah metode untuk melakukan software testing di mana pentester tidak diberikan akses atau diberikan hak akses terendah kepada program yang akan mereka test.

2.9 Teori Evaluasi

Ketika melakukan evaluasi terhadap suatu model, akurasi bukan satu-satunya acuan terhadap tingkat keberhasilan model tersebut. Ada beberapa faktor lain yang berperan penting terhadap tingkat keberhasilan suatu model yaitu Precision dan Recall.

2.9.1 Precision

Salah satu nilai yang berperan dalam tingkatan keberhasilan suatu model adalah precision. Precision merupakan rumusan dari seberapa banyak hasil yang benar-benar relevan (true positive) dari semua hasil prediksi suatu model.

[pic](2.7)

2.9.2 Recall

Recall merupakan nilai yang didapat dari rumusan seberapa banyak nilai yang benar-benar positif yang dilabelkan sebagai relevan (true positive) oleh model yang ada.

[pic] (2.8)

2.9.3 F1 Score

F1 Score merupakan nilai yang didapatkan jika ingin mendapatkan nilai yang seimbang antara Precision dan Recall. Yang membedakan F1 Score dengan akurasi adalah F1 Score tidak memperhitungkan hasil true negative dari prediksi suatu model. Di mana true negative sangat mempengaruhi nilai akhir dari akurasi yang terkadang pada pengimplementasian suatu model true negative bukan menjadi nilai yang diperhitungkan.

[pic] (2.9)

(Powers, 2015, p. 3)

-----------------------

Gambar 2.1 Model Single-Input Neuron.

Gambar 2.2 Arsitektur Multi-Layer.

Gambar 2.9 Arsitektur Recurrent Neural Network. (Hagan, Demuth, Beale, & Jesús, 2014, p. 67)

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download