LAPORAN SKRIPSI
Oleh :
Riansi
19220006
N UJIAN PENDADARAN
UNIVERSITAS RESPATI YOGYAKARTA
Riansi
19220006
Disetujui oleh :
Pembimbing I Pembimbing II
Marselina Endah Hiswati, S.T., M.Cs. Sri Hasta Mulyani, S.Kom., M.Kom.
NIDN : 0501067101 NIDN : 0531107102
Mengetahui :
Ketua Prodi Informatika Program Sarjana
i
HALAMAN PENGESAHAN
PENGESAHAN SKRIPSI
Oleh :
Riansi
19220006
Yogyakarta, 09-03-2023
Pembimbing I Pembimbing II
Mengetahui
Dekan Fakultas Sains dan Teknologi Ketua Prodi Informatika Program Sarjana
UK SKRIPSI
ii
UNIVERSITAS RESPATI YOGYAKARTA
Nama : Riansi
Nomor Induk Mahasiswa : 19220006
Program Studi : Informatika
Jenjang Pendidikan : Strata Satu (S1)
Judul Skripsi : Deteksi serangan Internet Of Thing (IoT)
menggunakan algoritma Generative Adversarial
Network (GAN)
Demikian pernyataan ini saya buat dalam keadaan sehat dan tanpa tekanan
dari pihak manapun.
Yogyakarta, 09-03-2023
Riansi
NIM : 19220006
iii
PERSETUJUAN DEMO PROGRAM
Nama : Riansi
Nomor Induk Mahasiswa : 19220006
Program Studi : Informatika
Jenjang Pendidikan : Strata Satu (S1)
Judul Skripsi : Deteksi serangan Internet Of Thing (IoT)
menggunakan algoritma Generative Adversarial
Network (GAN)
Program telah disetujui dan didemokan sesuai dengan judul Skripsi dihadapan
Dosen Pembimbing Program Studi Informatika Program Sarjana Fakultas Sains
dan Teknologi Universitas Respati Yogyakarta pada tanggal 09 Maret 2023 untuk
selanjutnya akan dilaksanakan proses ujian pendadaran setelah memenuhi
persyaratan akademik yang berlaku.
Disetujui oleh :
Pembimbing I Pembimbing II
Mengetahui :
Ketua Program Studi Informatika Program Sarjana
iv
TANDA LULUS UJIAN SKRIPSI
Pada hari kamis, tanggal 09 Maret 2023 telah dilaksanakan ujian sidang skripsi
atau pendadaran oleh Program Studi Informatika Program Sarjana Fakultas Sains
dan Teknologi Universitas Respati Yogyakarta.
Nama : Riansi
Nomor Induk Mahasiswa : 19220006
Judul Skripsi :
Deteksi serangan Internet Of Thing (IoT)
menggunakan algoritma Generative Adversarial
Network (GAN)
1. Penguji I
2. Penguji II
3. Penguji III
Hamzah, S.T.,M.T.
NIDN : 0531017102
………………………………………..
Mengetahui ,
v
Ketua Program Studi Informatika Program Sarjana
ABSTRAK
Serangan IoT merupakan salah satu ancaman serius yang ada pada
jaringan. Serangan tersebut dapat menyebabkan suatu server menjadi sibuk
dengan banyaknya permintaan permintaan sehingga pengguna yang sah atau
normal tidak dapat mengakses jaringan tersebut. Ada beberapa masalah mengenai
penyerangan IoT yang membuat ancaman keamanan dalam penggunaan jaringan
salah satunya tentang ransomwhere.
Tujuan penelitian ini adalah untuk merancang dan membangun model
deteksi serangan IoT yang mengadopsi Generative Adversarial Network (GAN)
untuk membangun model dengan fitur dari kumpulan data besar yang digunakan
untuk memprediksi deteksi serangan pada IoT.
Hasil dari penelitian ini menghasilkan model deteksi serangan IoT yang
dibangun menggunakan Algoritma Generative Adversarial Network (GAN),
didapatkan nilai akurasinya 0,99 dengan epoch 500. Hal ini menunjukan bahwa
model yang dibangun dapat secara akurat mendeteksi serangan IoT pada masa
sekarang, model ini dapat membantu masyarakat luas khususnya pada
perkantoran.
vi
_____________________________
1
Mahasiswa Program Studi Informatika
2
Pembimbing I
3
Pembimbing II
iii
RESPATI UNIVERSITY OF YOGYAKARTA
ABSTRACT
IoT attack is one of the serious threats that exist on the network. This
attack can cause a server to become busy with so many requests that legitimate or
normal users cannot access the network. There are several problems regarding
IoT attacks that create security threats in network use, one of which is about
ransomwhere.
The purpose of this research is to design and build an IoT attack detection
model that adopts a Generative Adversarial Network (GAN) to build a model with
features from large data sets that are used to predict attack detection on IoT.
The results of this study resulted in an IoT attack detection model that was
built using the Generative Adversarial Network (GAN) Algorithm, obtained an
accuracy value of 0.99 with an epoch of 500.This shows that the model built can
accurately detect IoT attacks today, this model can help the wider community,
especially in offices.
______________________________
1
Student at Informatics Engineering
2
Supervisor 1
3
Supervisor 2
vii
HALAMAN MOTTO DAN PERSEMBAHAN
Kita tidak harus mengikuti dan berlomba-lomba mengikuti proses orang lain
sebab proses yang kamu jalani dan alami kamu sendiri yang tau takaranmu sampai
mana.
viii
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha
Esa, yang telah memberikan rahmat dan karunia-Nya sehingga penulisan Skripsi
(GAN)” sebagai salah satu syarat untuk melengkapi jenjang Program Sarjana
Yogyakarta.
perhatian, doa masukan dan kesempatan dan dorongan dari berbagai banyak
pihak. Oleh karena itu pada kesempatan ini penulis mengucapkan terimakasih
ixi
4. Ibu Sri Hasta Mulyani, S.Kom.,M.Kom. selaku Pembimbing II atas
Skripsi.
5. Bapak dan ibu dosen beserta staf karyawan Program Studi Informatika
6. Keluarga tercinta Ayah dan Ibu serta adik-adik yang selalu memberi
Penulis menyadari bahwa laporan skripsi ini masih belum sempurna banyak
kekurangan oleh sebab itu penulis mengharapkan saran dan kritik yang bersifat
Riansi
19220006
iii
DAFTAR ISI
HALAMAN JUDUL..............................................................................................................
HALAMAN PENGESAHAN
ABSTRAKSI
ABSTRACT
KATA PENGANTAR
DAFTAR ISI
DAFTAR TABEL
DAFTAR GAMBAR
DAFTAR SCRIPTi
BAB I PENDAHULUAN
xi
2.2. Teori Dasar
2.2.1 Deteksi
2.2.2 Serangan
2.2.7 Hyperparameter
2.2.8 Python
2.2.9 Anaconda
2.2.10 Vanilla
3.1. Analisa2
xiii
4.2.2 Pengujian Model
BAB V PENUTUP
5.1 Kesimpulan
5.2 Saran
DAFTAR PUSTAKA
LAMPIRAN
xii
DAFTAR TABEL
Halaman
xvi
DAFTAR GAMBAR
Halaman
xv
DAFTAR SCRIPT
Halaman
xvi
1
BAB I
PENDAHULUAN
teknologi modern yang ada saat ini. Dengan adanya IoT setiap perangkat
Serangan IoT merupakan salah satu ancaman serius yang ada pada jaringan.
banyaknya permintaan permintaan sehingga pengguna yang sah atau normal tidak
IoT yang membuat ancaman keamanan dalam penggunaan jaringan salah satunya
menyerang perangkat dengan mengenkripsi file atau data sehingga tidak dapat
dibaca oleh perangkat yang digunakan. Agar perangkat dapat membaca file atau
data-data tersebut membutuhkan kode enkripsi. Oleh karena itu, perlu adanya
Dimana GAN dipilih karena algoritma tersebut sangat optimal dalam proses
deteksi serangan dengan jumlah data yang besar. Selain itu IoT juga rentan
mendeteksi serangan pada sebuah komputer atau server atau jaringan komputer.
2
pada IoT.
Dari uraian latar belakang masalah di atas, dapat dirumuskan masalah yaitu:
2. Dataset yang digunakan adalah dataset IoT Attack Detection diperoleh dari
3. Jumlah dataset yang digunakan sejumlah 62.485 data berupa data dengan
format CSV.
Anaconda.
1. Bagi peneliti
3. Bagi Mahasiswa
penelitian ini, maka penulis membagi menjadi lima bab, dimana setiap bab terdiri
dari beberapa sub bab, Berikut gambaran secara garis besar sistematika
penulisan:
BAB I PENDAHULUAN
Pada bab ini akan dibahas hal-hal yang bersifat umum yang meliputi:
laporan.
5
Pada bab ini akan dibahas mengenai tinjauan pustaka dari penelitian-
penelitian ini.
Bab ini akan membahas tentang uji coba model yang dibangun.
BAB V PENUTUP
BAB II
LANDASAN TEORI
yang dapat diproses, besar memori yang digunakan, maupun juga ketahanannya
SPECK memiliki kinerja yang lebih baik pada perangkat Arduino Uno
pada sistem IoT bersumber daya rendah untuk pembuatan layanan keamanan
Penelitian dengan judul “Deteksi Serangan DoS pada IoT Berbasis Protokol
MQTT dengan Metode Support Vector Machine (SVM)”, penelitian ini berfokus
terhadap trafik jaringan. Penelitian ini menerapkan metode SVM sebagai metode
klasifikasi. Hasil model yang diperoleh adalah akurasi 98.865% dan akurasi
Farantino, 2020).
7
sebesar 60% tetapi dengan waktu yang tidak signifikan (Fery Antony, 2021).
menggunakan Algoritma Random Forest yang dapat bekerja dengan baik dalam
melakukan deteksi terhadap serangan botnet. Dimana pada fitur attack didapat
nilai accuracy sebesar 99.27% sedangkan pada fitur category nilai accuracy
sebesar 99.43% dan fitur subcategory nilai accuracy sebesar 98.86%, category
97.97% dan subcategory 83.77%, dengan pembagian data train 80%, data test
memiliki 21 fitur yang merupakan skema dataset baru, yang dibuat secara mandiri
baru yaitu algoritma GAN yang juga merupakan kumpulan data fitur besar.
Penelitian ini mengumpulkan berbagai fitur deteksi mengenai seranga pada IoT
500.
Teori dasar berisi tentang bahasan mengenai teori yang berkaitan dengan
terdahulu yang termuat di dalam jurnal ilmiah dan internet. Berikut ini beberapa
2.2.1 Deteksi
2.2.2 Serangan
atau ”things” yang dipasang dengan menggunakan sensor, software dan juga
teknologi lain dengan tujuan agar bisa terhubung dan menukarkan data antar
divisi dan sistem lain yang menggunakan internet. (Rifqi Dharma, 2021)
11
domain machine learning (Syahid, 2016). Deep neural network adalah neural
network yang mempunyai jumlah hidden layer lebih dari satu. Salah satu
sangat berkaitan erat dengan jumlah hidden layer dan jumlah hidden neuron.
Penentuan jumlah hidden layer dan jumlah neuron sangat penting dan memiliki
machine learning (Youcheng Zhang, 2019). GAN memiliki dua jaringan yang
Teknik ini digunakan untuk menghasilkan data baru dengan statistik yang sama
dengan training set. Nilai masukan atau masukan dari GAN berupa gambar nyata
dibedakan mana gambar yang asli dan mana yang palsu. Kemudian nilai asli
menjadi pembeda kerugian, dan nilai palsu menjadi pembangkit kerugian. Hasil
yang diperoleh kemudian diulang sampai sesuai dengan jumlah iterasi yang
1. Diskriminator
asli atau palsu. Akibatnya, diskriminator dalam GAN pada dasarnya adalah
data yang sulit semacam ini (Youcheng Zhang 2019). Memiliki Mode
Keterangan:
G = Generator
2. Generator
Dari namanya sendiri sudah cukup jelas. Komponen generator dari GAN
sampel input dan membuat gambar baru dengan dimensi yang sama dengan
data pelatihan (Youcheng Zhang 2019). Ini sebagian besar harus terdiri dari
Keterangan:
G = Generator
confusion matrix dapat dianalisa seberapa baik classifier dapat mengenali record
dari kelas-kelas yang berbeda (Resika Arthana, 2019). Tabel 2.2 confusion matrix
Prediksi
Positif Negatif
Tabel
2.2 Positif TP FN
Aktual
Negatif
FP TN
Confusion matrix
Keterangan :
juga berlaku.
Prediksi
Positif Negatif Netral
Positif
d. TN (True Negative) merupakan total dari seluruh kolom dan baris selain
confusion matrix.
1. Akurasi
antara nilai prediksi dengan nilai aktual. Dengan mengetahui jumlah data
TP+TN
𝐴kurasi ¿ ×100% (2. 3)
TP+ TN + FP+ FN
2. Presisi
informasi yang terambil oleh sistem baik yang relevan maupun tidak.
TP
Presisi ¿ (2. 4)
TP+ FP
3. Recall
relevan yang ada dalam koleksi informasi (baik yang terambil atau tidak
TP
Recall ¿ (2. 9)
TP+ FP
4. F1-Score
algoritma jika dataset memiliki jumlah data False Negatif dan False Positif
2× recall × presisi
F1-Score = (2.10)
recall+ presisi
18
2.2.7 Hyperparameter
hyperparameter tidak diubah selama model dioptimasi. Dengan kata lain, nilai
hyperparameter tidak bergantung pada data dan selalu diatur saat pendefinisian
model. Dua model dengan jenis yang sama namun hyperparameter berbeda bisa
berikut:
1. Epoch
Dalam satu epoch terdiri dari satu atau lebih batch. Sebagai contoh, suatu
epoch yang memiliki satu batch disebut batch gradient descent learning
algorithm. Jumlah epoch dalam proses training biasanya besar, hal ini
2. Batch Size
19
sebelumnya. Batch merupakan iterasi for-loop pada satu atau lebih sampel
variabel Output yang diharapkan dan error dihitung. Dari error ini,
2.2.8 Python
lain dan alat-alat bantu lainnya. Python hadir dengan pustaka-pustaka standar
yang dapat diperluas serta dapat dipelajari hanya dalam beberapa hari. Bahasa
2.2.9 Anaconda
aplikasi, pustaka, dan konsep yang dirancang untuk pengembangan ilmu data
20
dengan python. Pada garis umum distribusi anaconda adalah distribusi python
2.2.10 Vanilla
saling terhubung (fully-connected) dan tidak memiliki banyak layer (deep neural
network). Pada definisi ini, perceptron adalah unit pehitungan sederhana yang
(Flow) di dalam program atau prosedur sistem secara logika flowchart menolong
khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut (Rejeki, M,
Simbol Fungsi
Simbol Fungsi
tertentu.
aliran proses.
22
BAB III
3.1. Analisa
yang ada. Menganalisis tahapan-tahapan yang dilalui penelitian ini menjadi objek
kajian model deteksi serangan IoT. Kemudian topik yang digunakan adalah
(GAN).
Keamanan IoT adalah area fokus utama dan merupakan tantangan paling
berdampak yang dihadapi IoT di lapisan aplikasi. Selain itu, keamanan IoT juga
harus mencakup tiga lapis keamanan untuk keseluruhan sistem. Salah satu
masalah keamanan paling menarik dalam keamanan IoT adalah deteksi dan
pencegahan intrusi. Intrusi mengacu pada aktivitas jahat apa pun yang dapat
23
Tantangan penelitian yang layak dalam jaringan IoT adalah melindunginya dari
penelitian ini. Populasi yang digunakan dalam penelitian ini adalah serangan pada
jaringan IoT. Populasi yang digunakan merupakan sebuah dataset yang sudah
data.
untuk training 80% dan testing 20% Mengikuti konsep dari model training di
training data yang lebih sedikit, estimasi dari parameter ini akan ada variansi yang
lebih besar sedangkan jika menggunakan testing data yang lebih sedikit, estimasi
dari hasil model akan ada variansi yang lebih besar. Teknik sampling digunakan
untuk menentukan kriteria dari populasi yang digunakan dalam penelitian ini
menjadi dataset training yang digunakan untuk membangun atau melatih model
sebanyak 49.988 (80%) data, dan dataset testing untuk mengevaluasi kinerja atau
keakuratan model sebanyak 12.497 (20%) data. Tabel 3.1 menunjukkan jumlah
Dataset Sample
Jumlah 62.485
3.2. Perancangan Model
rancangan Output.
BitcinAddresses Benign
0 1
0 1
0 1
0 1
0 1
proses ke proses yang lain. Gambar 3.1 menunjukkan desain model deteksi
Pengambilan
dataset deteksi
serangan IoT
dataset yang kemudian data tersebut akan masuk ke tahap prepocessing. Setelah
itu, data pendeteksian akan mulai di training. Ketika selesai pada tahapan training
data akan di proses pada tahap testing. Selanjutnya pada tahap terakhir yaitu
penentuan model sudah optimal atau tidak. Jika model tidak optimal maka input
akan kembali ke input dataset dan mengulang proses training model sampai
Rancangan Output berisi hasil dari model yang dibangun untuk dapat
berupa Arsitektur deteksi serangan IoT, Arsitektur tersebut dapat dilihat pada
acak (Noise) untuk menjalankan tujuan utama dari generator yaitu membuat
data palsu yang semirip-miripnya dengan data asli yaitu pada deteksi serangan
IoT. Setelah membuat data yang semirip-miripnya dengan data asli maka
data yang masuk merupakan data asli atau data palsu. Pada saat generator
28
melakukan pembuatan data yang sama disaat yang bersamaan diskriminator juga
sedang melakukan pengenalan data asli dari dataset yang diimpor. Hal yang
yang masuk, jika itu terjadi maka umpan balik akan merubah penyesuaian antar
\dd
BAB IV
model telah siap untuk diterapkan pada keadaan nyata. Jika sebuah model
melewati tahap pengujian layak guna. Tujuan dari pengujian layak guna
mungkin terjadi sampai sesedikit mungkin. Model dan hasil haruslah sesuai
yang terkait dengan kestabilan pada deteksi serangan IoT dengan format
contoh dataset yang akan digunakan dapat dilihat pada gambar 4.1.
29
30
Gambar 4.1 memperlihatkan dataset dari data stabil dan tidak data tidak
dengan melatih data atau biasa disebut training data, ini bertujuan untuk
mendapatkan hasil dari model, beberapa dari library yang digunakan adalah
sebagai berikut.
1. import psutil ;
print(list(psutil.virtual_memory())[0:2])
2. import numpy as np
3. import pandas as pd
4. import matplotlib.pyplot as plt
5. %matplotlib inline
6. plt.style.use('ggplot')
7. import xgboost as xgb
8. import pickle
9. import gc
10. gc.collect()
11. print(list(psutil.virtual_memory())[0:2])
berfungsi untuk untuk mengakses detail sistem dan utilitas proses. Baris 2
berfungsi untuk membantu program untuk bekerja dengan array fungsi lainnya
juga dapat bekerja dalam domain aljabar liniear, transformasi fourier, dan
31
lain sebagainya fungsi lain dari library tersebut adalah dapat memudahkan
untuk menampilkan data secara visual agar lebih mudah dipahami. Baris 5
bertujuan untuk menyematkan gambar plot statis dalam program model yang
menjadi aliran byte dalam format pkl untuk disimpan ke dalam penyimpanan
data. Baris ke 9 dan 10 berfungsi untuk alokasi objek yang tidak terpakai lagi
Jika di atas kita telah melihat skrip untuk memanggil library maka
2. import importlib
3. importlib.reload(RunGAN)
2. Akses Data
dataset dengan format data CSV dan data berada di folder yang sama dengan
program.
1. data = pd.read_csv('data_file.csv')
2. data = data.drop(['FileName', 'md5Hash'], axis=1)
3. data.head()
format data CSV dan data berada di folder yang sama dengan program. Di
script 2 ada bagian data yang memang tidak diperlukan karena bercampur
3. Data Frame
Pada proses ini data kolom yang terdiri dari 16 kolom berdasarkan
1. data_cols = ['Machine','DebugSize','DebugRVA',
'MajorImageVersion','MajorOSVersion','ExportRVA',
'ExportSize','LatVRA','MajorLinkerVersion',
'MinorLinkerVersion','NumberOfSection','SizeOfStackReserve',
'DIICharacteristics',' ResourceSize','BitcinAddresses',
'benign']
2. label_cols = ['benign']
33
untuk membagi kolom menjadi fitur dari data yang dimasukkan. Pada baris
angka.
4. Prepocessing
memastikan apakah dataset kestabilan pada model deteksi serangan IoT sudah
matang sebelum dilakukan pemrosesan oleh model pada data. Data yang
matang adalah data yang memiliki tipe sama dan sebisa mungkin harus
berupa jenis data yang dapat dihitung oleh komputer. Pada peneltian ini
outliner atau data yang berbeda jauh dengan data yang lain. Dalam
ini.
x−min
F ( x )= x dimana 0 ≤ F ( x ) ≤ 1[4.1]
max−min
dilakukan pada data label. Preprocessing yang dilakukan pada data label
adalah melakukan pengubahan jenis data label yang tadinya berupa data
menunjukkan data tidak stabil dan angka 0 menunjukkan jenis data yang stabil.
Pada tahap ini program dibuat dengan tujuan membuat sampel train
3. algorithm = cluster.Kmeans
8. obj_classes['target'] = labels
Pada script 4.7 di atas menunjukkan perintah pembagian data dari data
kolom fitur untuk menjadi data training. Ini bertujuan agar tidak semua data
menjadi data training melainkan hanya sebagian besar saja karena sebagian
GAN yang pertama dilakukan adalah tahap traing data dan model. Tujuan
dari tahap ini untuk melatih model sebelum masuk ke tahap pengujian.
Pada script 4.8 di atas menunjukkan jumlah epoch atau iterasi atau
pada script juga terdapat nilai yang bernama batch size yaitu jumlah data asli
yang digunakan dalam satu kali batch pengulangan atau epoch. Setelah
setiap 100 epoch maka akan mendapatkan hasil data yang kemudian data
tersebut akan dimasukkan kedalam folder benama cache yang sudah dibuat
element yang sangat penting dalam algoritma GAN yaitu generator dengan
random, di dalam script disebut seed. Pada algoritma ini terdapat 2 element
penting yang memiliki tujuan yang bertolak belakang, pada tahap training
generator bertugas membuat data yang semirip-miripnya dengan data asli dari
dangan tahap training. Diskriminator dilatih untuk mengenali data asli yaitu
data kestabilan pada model deteksi serangan IoT yang di masukkan pada
membedakan data asli dan data palsu yang dari generator dengan lebih
efektif. Dari script yang sudah dipaparkan di atas maka penelitian ini
Penjelasan gambar 4.2 diatas menunjukkan bahwa nilai loss yang terdapat
pada generator dan discriminator adalah sebagai berikut. Generator loss (G)
adalah sebesar 1.6414, loss pada diskriminator saat mendeteksi data palsu
dalam mendeteksi data asli adalah sebesar 0,5912, kemudian loss pada program
untuk mendeteksi Xbg adalah sebesar 1.000 dan terakhir loss yang didapatkan
Setelah training model maka proses selanjunya adalah testing model atau
penujian pada model. Tahap ini bertujuan untuk Tindakan lebih lanjut oleh model kepada
data setelah model mengalami pelatihan. Setiap pengulangan yang dilakukan oleh
model menjadikan model lebih yang lebih baik dan lebih pintar lagi baik di elemen
generator maupun discriminator. Dalam hal pengujian model terdapat beberapa jenis
1. Testing model
menguji data palsu, data asli dan pengklasifikasian. Sedangkan generator akan
menerima hasil gagal dari generator dan akan Kembali melakukan training data
2. Pengecekan akurasi
Proses ini akan menunjukkan perbedaan antara data asli dan data yang
berikut.
Pada gambar 4.3 dapat dilihat nilai akurasi yang didapatkan adalah
hyperparameter pada jumlah epoch yaitu 100, 200, 300, 400 dan 500 epoch pada
proses training model. Perbandingan epoch dan hasil validasi dapat dilihat pada
tabel 4.1.
hasil adalah agar hasil yang didapatkan mudah dipahami. Ada bemacam-macam
1. Confusion Matrix
Confusion matrix untuk mengevaluasi dan melihat hasil dari model yang
dirancang pada script python dapat dituliskan script seperti yang ada di
bawah ini.
menggunakan confusion matrix, dalam script dapat dilihat pada baris pertama
script selanjutnya bertujuan untuk merancanng isi dan bentuk confusion matrix
42
dibagian nilai 543 menunjukkan hasil deteksi data asli tidak stabil, data
dengan nilai 6 merupakan data palsu tidak stabil, data 0 merupakan data asli
2. Classification Report
recall, F1 score dari data yang diambil dari nilai confusion matrix. Pada
Pada gambar 4.5 menunjukkan hasil dari data di atas. Kemudian hasil
di bawah ini.
44
a. Akurasi
543+549
𝐴kurasi¿ ×100% = 0,99 (4.2)
543+549+0+6
b. Presisi
543
Presisi ¿ =1 (4.3)
543+0
c. Recall
543
Recall ¿ = 0,97 (4.4)
549+6
d. F1-Score
2× 0 , 97 ×1
F1-Score =
0 , 97+ 1
= 0,98 (4.5)
45
4. Fitur importance
pemrosesan data baik training dan testing. Untuk script dapat dilihat pada
Kemudian dari script 4.13 hasil yang didapatkan dari data script
sebagai berikut.
kepada responden yag terdiri dari 20 mahasiswa dalam bentuk lembaran kertas
dengan menjabarkan pernyataan dan hasil dapat dilihat pada Tabel 4.2.
Keterangan:
Dari tabel 4.2 tersebut dapat diketahui hasil pengujian yang dilakukan,
kemudian dari data tersebut diolah kembali menjadi perhitungan persentase hasil
pengujian model dengan cara nilai persen = jumlah data / jumlah kuesioner *
Setuju (SS), Setuju (S), Kurang Setuju (KS), dan Tidak Setuju (TS) dipersenkan.
dengan menjabarkan pernyataan dan hasil dapat dilihat pada tabel 4.3.
75
3 Model dapat di proses pada waktu 5% 20% 0 100%
yang cepat. %
setuju (S) 74%, kurang setuju (KS) 6%, tidak setuju (TS) 1%. Dengan demikian
responden yang menjawab sangat setuju (SS), setuju (S), kurang setuju (KS),
tidak setuju (TS) adalah 100%. Sehingga dapat disimpulkan bahwa model
menggunakan GAN
PENUTUP
5.1 Kesimpulan
berikut:
(GAN).
https://www.kaggle.com/datasets/jmessiasalves/ufpi-ncad-iot-attacks.
5.1 Saran
Adapun saran untuk pengembangan selanjutnya adalah :
50
nilai 0.99 pada saat pengujian.
DAFTAR PUSTAKA
51
LAMPIRAN
52
Data Personal
NIM : 19220006
Nama Lengkap : Riansi
Tempat, Tanggal Lahir : Baina’a, 23 April 2001
Jenis Kelamin : Perempuan
Status : Mahasiswa
Alamat : Gang Sastrosentono No. 34
No. Handphone : 082246433483
No. WhatsApp : 082246433483
Instagram : _sssiisii
Email : riariansi204@gmail.com
Riansi
53
54
1. Import Library
1. import psutil ;
print(list(psutil.virtual_memory())[0:2])
2. import numpy as np
3. import pandas as pd
4. import matplotlib.pyplot as plt
5. %matplotlib inline
6. plt.style.use('ggplot')
7. import xgboost as xgb
8. import pickle
9. import gc
10. gc.collect()
11. print(list(psutil.virtual_memory())[0:2])
2. Pemanggil modul
2. import importlib
3. importlib.reload(RunGAN)
3. Pemanggil dataset
1. data = pd.read_csv('data_file.csv')
2. data = data.drop(['FileName', 'md5Hash'],
axis=1)
3. data.head()
4. Pembagian data fitur dan label
1. data_cols = ['Machine','DebugSize','DebugRVA',
'MajorImageVersion','MajorOSVersion','ExportRVA',
'ExportSize','LatVRA','MajorLinkerVersion',
'MinorLinkerVersion','NumberOfSection','SizeOfStackReserve'
, 'DIICharacteristics',' ResourceSize','BitcinAddresses',
'benign']
2. label_cols = ['benign']
5. Prepocessing
7. Menentukkan data
3. algorithm = cluster.Kmeans
5. labels = algorithm(*args,
**kwds).fit_predict(trai n[data_cols ])
6. print(pd.DataFrame([[np.sum(labels==i)] for i in
n p.unique(labels)], columns=['count'],
index=np.un ique(labels) ) )
7. obj_classes = train.copy()
8. obj_classes['target'] = labels
57
58
9. Mendeteksi kestabilan
59
60