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.
7
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)
9
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):
11
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.
13
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.
15
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.
17
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.
Gambar 2.1 Model Single-Input Neuron.
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
dan masing masing weight pada setiap input direpresentasikan
sebagai .
Gambar 2.2 Arsitektur Multi-Layer.
19
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.
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.
(2.1)
21
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.
(2.2)
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.
(2.3)
23
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.
(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.
(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.
25
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.
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
27
Gambar 2.9 Arsitektur Recurrent Neural Network. (Hagan, Demuth, Beale, & Jesús, 2014, p. 67)
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.
29
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.
31
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).
(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, &
33
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:
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,
35
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.
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.
37
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)
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).
39
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).
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)
41
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)
43
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.
45
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.
(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.
(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.
(2.9)
(Powers, 2015, p. 3)
47
Top Related