Anda di halaman 1dari 78

HALAMAN JUDUL

LAPORAN SKRIPSI

DETEKSI SERANGAN INTERNET OF THING (IoT)


MENGGUNAKAN ALGORITMA GENERATIVE
ADVERSARIAL NETWORK (GAN)

Diajukan Sebagai Syarat Untuk Menyelesaikan


Pendidikan Program Strata Satu (S-1) Pada
Program Studi Informatika Program Sarjana

Oleh :

Riansi
19220006

PROGRAM STUDI INFORMATIKA PROGRAM SARJANA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS RESPATI YOGYAKARTA
2023

N UJIAN PENDADARAN
UNIVERSITAS RESPATI YOGYAKARTA

Fakultas Sains dan Teknologi


Program Studi Informatika Program Sarjana
Skripsi Sarjana Komputer
Semester Genap 2022/2023

Pernyataan Kesiapan Skripsi untuk Ujian Pendadaran.

Saya Riansi, dengan ini menyatakan bahwa Skripsi yang berjudul :


“Deteksi Serangan Internet Of Thing (IoT) Menggunakan Algoritma Generative
Adversarial Network (GAN)” adalah benar hasil karya saya dan belum pernah
diajukan sebagai karya ilmiah, sebagian atau seluruhnya, atas nama saya atau
pihak lain.

Riansi
19220006

Disetujui oleh pembimbing


Saya setuju Skripsi tersebut diajukan untuk ujian pendadaran.

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 Wayan Ordiyasa, S.Kom.,M.T.


NIDN : 0520027001

i
HALAMAN PENGESAHAN
PENGESAHAN SKRIPSI

DETEKSI SERANGAN INTERNET OF THING (IoT)


MENGGUNAKAN ALGORITMA GENERATIVE
ADVERSARIAL NETWORK (GAN)

Oleh :

Riansi
19220006

Yogyakarta, 09-03-2023

Pembimbing I Pembimbing II

Marselina Endah Hiswati,S.T.,M.Cs. Sri Hasta Mulyani,S.Kom.,M.Kom.


NIDN : 0501067101 NIDN : 0531107102

Mengetahui

Dekan Fakultas Sains dan Teknologi Ketua Prodi Informatika Program Sarjana

Dr. Agus Qomaruddin Munir, S.T., M.Cs. I Wayan Ordiyasa, S.Kom.,M.T.


NIDN : 051808301 NIDN : 0520027001

UK SKRIPSI

ii
UNIVERSITAS RESPATI YOGYAKARTA

Fakultas Sains dan Teknologi


Program Studi Informatika Program Sarjana
Skripsi Sarjana Komputer
Semester Genap 2022 /2023

Surat Pernyataan Keaslian Penelitian untuk Skripsi

Yang bertanda tangan dibawah ini saya,

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)

Dengan ini menyatakan bahwa Skripsi yang berjudul: “Deteksi serangan


Internet Of Thing (IoT) menggunakan algoritma Generative Adversarial Network
(GAN)” adalah benar karya saya dan belum pernah diajukan sebagai karya ilmiah,
sebagian atau seluruhnya atas nama saya atau pihak lain.

Apabila dikemudian hari terbukti bahwa penelitian saya adalah hasil


penelitian pihak lain, saya bersedia menerima sanksi yang akan dibebankan
kepada saya, yaitu pembatalan gelar sarjana dan membuat penelitian baru.

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

Marselina Endah Hiswati,S.T.,M.Cs. Sri Hasta Mulyani, S.Kom.,M.Kom.


NIDN : 0501067101 NIDN : 0531107102

Mengetahui :
Ketua Program Studi Informatika Program Sarjana

I Wayan Ordiyasa, S.Kom.,M.T.


NIDN : 0520027001

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

Marselina Endah Hiswati,S.T.,M.Cs

NIDN : 0501067101 ………………………………………..

2. Penguji II

Sri Hasta Mulyani,S.Kom.,M.Kom.

NIDN : 0531107102 ………………………………………..

3. Penguji III

Hamzah, S.T.,M.T.

NIDN : 0531017102

………………………………………..

Mengetahui ,

v
Ketua Program Studi Informatika Program Sarjana

I Wayan Ordiyasa, S.Kom.,M.T.


NIDN : 0520027001

UNIVERSITAS RESPATI YOGYAKARTA

Fakultas Sains dan Teknologi


Program Studi Informatika Program Sarjana
Skripsi Sarjana Komputer
Semester Genap 2022 /2023

DETEKSI SERANGAN INTERNET OF THING (IoT)


MENGGUNAKAN ALGORITMA GENERATIVE
ADVERSARIAL NETWORK (GAN)
Oleh :
Riansi , Marselina Endah Hiswati, S.T.,M.Cs.2,
1

Sri Hasta Mulyani, S.Kom.,M.Kom.3

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.

Kata kunci : Deep Learning, IoT , Deteksi Serangan ,GAN

vi
_____________________________
1
Mahasiswa Program Studi Informatika
2
Pembimbing I
3
Pembimbing II

iii
RESPATI UNIVERSITY OF YOGYAKARTA

Faculty of Science and Technology


Department of Informatics Engineering

DETECTION OF INTERNET OF THING (IoT) ATTACKS USING A


GENERATIVE ADVERSARIAL NETWORK (GAN) ALGORITHM
By :
Riansi1, Marselina Endah Hiswati, S.T.,M.Cs.2,
Sri Hasta Mulyani, S. Kom.,M.Kom.3

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.

Keywords: Deep Learning, IoT , Attack Detection ,GAN

______________________________
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

ini dapat diselesaikan dengan baik dan lancar.

Dalam Skripsi ini penulis mengambil judul “Deteksi Serangan Internet

Of Thing (IoT) Menggunakan Algoritma Generative Adversarial Network

(GAN)” sebagai salah satu syarat untuk melengkapi jenjang Program Sarjana

Program Studi Informatika Fakultas Sains dan Teknologi Universitas Respati

Yogyakarta.

Penulis menyadari selama pendidikan di Universitas Respati Yogyakarta,

khususnya selama penyusunan Skripsi ini, Penulis mendapatkan banyak bantuan,

perhatian, doa masukan dan kesempatan dan dorongan dari berbagai banyak

pihak. Oleh karena itu pada kesempatan ini penulis mengucapkan terimakasih

yang sebesar besarnya, kepada :

1. Bapak Dr. Agus Qomaruddin Munir, S.T., M.Cs. selaku Dekan

Fakultas Sains dan Teknologi Universitas Respati Yogyakarta.

2. Bapak I Wayan Ordiyasa, S.Kom.,M.T. selaku Ketua Program Studi

Informatika Program Sarjana Universitas Respati Yogyakarta.

3. Ibu Marselina Endah Hiswati, S.T.,M.Cs. selaku Pembimbing I yang

telah memberikan dan dukungan selama bimbingan Skripsi.

ixi
4. Ibu Sri Hasta Mulyani, S.Kom.,M.Kom. selaku Pembimbing II atas

ilmu yang diberikan, dukungan dan mengarahkan selama bimbingan

Skripsi.

5. Bapak dan ibu dosen beserta staf karyawan Program Studi Informatika

Program Sarjana yang telah banyak membantu penulis dalam

penyusunan laporan skripsi ini.

6. Keluarga tercinta Ayah dan Ibu serta adik-adik yang selalu memberi

dukungan Doa, semangat, dan motivasi.

7. Seluruh mahasiswa Program Studi Informatika Fakultas Sains dan

Teknologi Universitas Respati Yogyakarta angkatan 2019 dan semua

pihak yang telah membantu penulis dalam penyusunan laporan Skripsi

baik secara langsung maupun secara tidak langsung.

Penulis menyadari bahwa laporan skripsi ini masih belum sempurna banyak

kekurangan oleh sebab itu penulis mengharapkan saran dan kritik yang bersifat

membangun untuk kedepannya.

Yogyakarta, 09 Maret 2023

Riansi
19220006

iii
DAFTAR ISI

HALAMAN JUDUL..............................................................................................................

HALAMAN KESIAPAN SKRIPSI UNTUK UJIAN PENDADARAN

HALAMAN PENGESAHAN

HALAMAN KEASLIAN PENELITIAN UNTUK SKRIPSI

HALAMAN PERSETUJUAN DEMO PROGRAM

HALAMAN TANDA LULUS UJIAN PENDADARAN SKRIPSI

ABSTRAKSI

ABSTRACT

HALAMAN MOTTO DAN PERSEMBAHAN

KATA PENGANTAR

DAFTAR ISI

DAFTAR TABEL

DAFTAR GAMBAR

DAFTAR SCRIPTi

BAB I PENDAHULUAN

1.1. Latar Belakang Masalah

1.2. Rumusan Masalah

1.3. Batasan Masalah

1.4. Tujuan Penelitian

1.5. Manfaat Penelitian

1.6 Metodologi Penelitian

1.7 Sistematika Penulisan

BAB II LANDASAN TEORI

2.1. Tinjauan Pustaka

xi
2.2. Teori Dasar

2.2.1 Deteksi

2.2.2 Serangan

2.2.3 Internet of Things (IoT)

2.2.4 Deep learning

2.2.5 Generative Adversrial Network (GAN)

2.2.6 Confusion matrix

2.2.7 Hyperparameter

2.2.8 Python

2.2.9 Anaconda

2.2.10 Vanilla

2.2.11 Diagram alir

BAB III ANALISA DAN PERANCANGAN

3.1. Analisa2

3.1.1 Identifikasi Permasalahan

3.1.2 Populasi, Sampling, dan Definisi Operasional

3.2. Perancangan Model

3.2.1 Rancangan Input

3.2.2 Rancangan Model

3.2.3 Arsitektur GAN

BAB IV IMPLEMENTASI DAN PEMBAHASAN

4.1. Implementasi Pemodelan

4.1.1 Pengumpulan Dataset

4.1.2 Training Model

4.2. Pengujian Pemodelan

4.2.1 Evaluasi hasil

xiii
4.2.2 Pengujian Model

4.3. Keunggulan Model

4.2. Kelemahan Model

BAB V PENUTUP

5.1 Kesimpulan

5.2 Saran

DAFTAR PUSTAKA

LAMPIRAN

Lampiran A. Biodata Peneliti

Lampiran B. Kartu Bimbingan Skripsi

Lampiran C. Listing Program

xii
DAFTAR TABEL

Halaman

Tabel 2.1 Perbandingan Penelitian..........................................................................8


Tabel 2.2 Confusion Matrix...................................................................................14
Tabel 2.3 Multiclass Confusion Matrix.................................................................15
Tabel 2.4 Simbol Flowchart..................................................................................20
Tabel 3.1 Dataset Training dan Testing................................................................23
Tabel 3.2 Rancangan Input....................................................................................24
Tabel 4.1 Perbandingan Epoch..............................................................................39
Tabel 4.2 Pernyataan Kuisioner............................................................................46
Tabel 4.3 Hasil Pernyataan Kuisioner...................................................................47

xvi
DAFTAR GAMBAR

Halaman

Gambar 3.1 Flowchart proses deteksi serangan IoT...........................................25


Gambar 3.2 Arsitektur GAN................................................................................26
Gambar 4.1 Sampel dataset.................................................................................28
Gambar 4.2 Hasil pelatihan data pada 500 iterasi...............................................36
Gambar 4.3 Pengecekkan akurasi data real dan fake..........................................39
Gambar 4.4 Confusion matrix deteksi kestabilan................................................41
Gambar 4.5 Classification Report.......................................................................42
Gambar 4.6 Receiver Operating characteristic (ROC).......................................44
Gambar 4.7 Fitur Importance..............................................................................45

xv
DAFTAR SCRIPT

Halaman

Script 4.1 Import library......................................................................................29


Script 4.2 Pemanggil modul.................................................................................30
Script 4.3 Pemanggil dataset...............................................................................31
Script 4.4 Pembagian data fitur dan label............................................................31
Script 4.5 Prepocessing........................................................................................32
Script 4.6 Menunjukkan data tidak stabil............................................................33
Script 4.7 Menentukan data train.........................................................................33
Script 4.8 Proses training data.............................................................................38
Script 4.9 Pengecekan Akurasi............................................................................38
Script 4.10 Mendeteksi kestabilan model............................................................40
Script 4.11 Mengevaluasi dan melihat hasil dari model......................................40
Script 4.12 Classification Report.........................................................................41
Script 4.13 Receiver Operating characteristic (ROC)........................................44
Script 4.14 Fitur Importance................................................................................45
BAB I PENDAHULUAN

xvi
1

BAB I
PENDAHULUAN

1.1. Latar Belakang Masalah

Internet Of Things (IoT) merupakan salah satu contoh perkembangan

teknologi modern yang ada saat ini. Dengan adanya IoT setiap perangkat

teknologi berbasis identifikasi seperti sensor yang dapat saling terhubung ke

internet berdasarkan protokol komunikasi standar.

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. Ransomware merupakan salah satu jenis malware yang

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

sistem pendeteksian serangan pada IoT dengan menggunakan algoritma GAN.

Dimana GAN dipilih karena algoritma tersebut sangat optimal dalam proses

deteksi serangan dengan jumlah data yang besar. Selain itu IoT juga rentan

terhadap berbagai macam serangan yang mengakibatkan gangguan dalam proses

komunikasi sehingga dibutuhkan tindakan untuk mencegah serangan yaitu dengan

mendeteksi serangan pada sebuah komputer atau server atau jaringan komputer.
2

Sistem deteksi serangan pada jaringan tersebut dibuat menggunakan algoritma

Deep Learning yaitu Generative Adversarial Network (GAN).

Berdasarkan latar belakang masalah yang telah dijelaskan, maka dalam

penelitian ini diusulkan suatu model deteksi menggunakan Generative

Adversarial Network (GAN) untuk mempermudah dalam mendeteksi serangan

pada IoT.

1.2. Rumusan Masalah

Dari uraian latar belakang masalah di atas, dapat dirumuskan masalah yaitu:

1. Bagaimana merancang model deteksi serangan IoT menggunakan

algoritma Generative Adversarial Network (GAN)?

2. Bagaimana membangun model deteksi serangan IoT menggunakan

algoritma Generative Adversarial Network (GAN)?

3. Dapatkah model mendeteksi serangan IoT menggunakan algoritma

Generative Adversarial Network (GAN)?

1.3. Batasan Masalah

Adapun batasan/ruang lingkup permasalahan yang diteliti yaitu :

1. Model deteksi serangan IoT menggunakan algoritma Generative

Adversarial Network (GAN).

2. Dataset yang digunakan adalah dataset IoT Attack Detection diperoleh dari

situs kaggle https://www.kaggle.com/datasets/jmessiasalves/ufpi-ncad-iot-

attacks dan diproses pada Vanilla GAN.


3

3. Jumlah dataset yang digunakan sejumlah 62.485 data berupa data dengan

format CSV.

4. Bahasa pemrograman yang digunakan adalah Python dengan distributor

Anaconda.

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah :

1. Merancang model deteksi serangan IoT menggunakan Generative

Adversarial Network (GAN).

2. Membangun model yang dapat mendeteksi serangan IoT menggunakan

Generative Adversarial Network (GAN).

3. Model yang dibuat diharapkan nantinya dapat membantu masyarakat

dalam mendeteksi serangan IoT.

1.5. Manfaat Penelitian

Manfaat dari penelitian ini adalah sebagai berikut :

1. Bagi peneliti

Dapat dijadikan sumber referensi untuk peneliti selanjutnya.

2. Bagi Universitas Respati Yogyakarta

Dapat menambah salah satu referensi penelitian untuk mahasiswa lain

yang nantinya akan digunakan sebagai bahan penelitian selanjutnya .

3. Bagi Mahasiswa

Dapat dijadikan sebagai pembelajaran serta referensi untuk mahasiswa

yang mengambil judul terkait tentang IoT.


4

1.6 Metodologi Penelitian

Metode yang digunakan dalam penelitian sebagai berikut:

1. Metode Pengumpulan data

Pengumpulan data dilakukan dengan studi literatur dan studi internet

untuk mencari data yang sesuai dengan Deteksi serangan IoT

menggunakan GAN. Data yang dikumpulkan disebut sebagai dataset.

Dataset ini dikumpulkan melalui situs kaggle.com.

2. Metode Membangun Model

Metode membangun model dimulai dengan pengumpulan dataset,

prepocessing, training model, testing model, hingga menghasilkan output.

Selanjutnya data yang sudah sama ukurannya dapat dimasukkan kedalam

model dengan menetapkan hyperparameter yang akan digunakan.

1.7 Sistematika Penulisan

Untuk mempermudah penulisan dan pemahaman penulisan Laporan

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:

latar belakang, rumusan masalah, batasan masalah, tujuan penelitian,

manfaat penelitian, metodologi penelitian dan sistematika penulisan

laporan.
5

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Pada bab ini akan dibahas mengenai tinjauan pustaka dari penelitian-

penelitian dan teori-teori tentang Generative Adversarial Network

dan Python yang dijadikan landasan teori lain untuk mendukung

penelitian ini.

BAB III ANALISA DAN PERANCANGAN

Bab ini akan membahas mengenai analisis serta rancangan model

sistem deteksi serangan IoT menggunakan algoritma Generative

Adversarial Network (GAN).

BAB IV IMPLEMENTASI DAN PEMBAHASAN

Bab ini akan membahas tentang uji coba model yang dibangun.

BAB V PENUTUP

Bab ini merupakan bagian penutup yang berisi mengenai kesimpulan

yang diperoleh serta saran bagi peneliti selanjutnya.


BAB II LANDASAN TEORI

BAB II

LANDASAN TEORI

2.1. Tinjauan Pustaka

Beberapa artikel telah mengusulkan berbagai penelitian mengenai deteksi

serangan IoT dengan menggunakan beragam metode. Salah satu penelitian

mengenai deteksi serangan IoT dengan judul “Pengamanan Internet Of Things

menggunakan algoritma SIMON dan SPECK untuk layanan kerahasiaan data”,

pada penelitian ini dilakukan pengukuran kinerja algoritma pada sebuah

microcontroller, yang baik berdasarkan waktu eksekusi, maksimal panjang data

yang dapat diproses, besar memori yang digunakan, maupun juga ketahanannya

terhadap aksi serangan. Hasil penelitian ini menunjukkan bahwa algoritma

SPECK memiliki kinerja yang lebih baik pada perangkat Arduino Uno

dibandingkan algoritma SIMON, dan kedua algoritma tersebut dapat diterapkan

pada sistem IoT bersumber daya rendah untuk pembuatan layanan keamanan

kerahasiaan data (Wawan Setyadi, 2019).

Penelitian dengan judul “Deteksi Serangan DoS pada IoT Berbasis Protokol

MQTT dengan Metode Support Vector Machine (SVM)”, penelitian ini berfokus

untuk membangun dan menerapkan algoritma klasifikasi untuk melakukan analisa

terhadap trafik jaringan. Penelitian ini menerapkan metode SVM sebagai metode

klasifikasi. Hasil model yang diperoleh adalah akurasi 98.865% dan akurasi

99.4601 % berdasarkan pada metode serangan DoS yang berbeda (Marchio

Farantino, 2020).
7

Penelitian dengan judul “Mendeteksi Denial of Service Attacks pada

Internet Of Things menggunakan Finite-State Automata”, pada penelitian ini

deteksi Serangan Denial of Service yang menyebabkan delay saat mengaktifkan

atau menonaktifkan peralatan Internet Of Things sedangkan pada serangan ping

flooding dapat menyebabkan error. Implementasi bash-iptables juga berhasil

mengurangi berbagai deteksi serangan synchronize flooding dengan efisiensi

waktu pencegahan sebesar 55,37% dan mengurangi serangan ping flooding

sebesar 60% tetapi dengan waktu yang tidak signifikan (Fery Antony, 2021).

Penelitian dengan judul “Mendeteksi Denial of Service Attacks pada

Internet Of Things menggunakan Finite-State Automata”, penelitian ini

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

30% dan jumlah nestimators 200. (Mohammad Sani Rafsanjani, 2022).

Penelitian dengan judul “Deteksi Serangan Botnet pada Internet of Things

menggunakan algoritma Random Forest (RF)”, penelitian ini mendeteksi

LRDDoS menggunakan machine learning dengan algoritma Random Forest (RF)

sebagai metode klasifikasinya. Dataset yang digunakan dalam penelitian ini

memiliki 21 fitur yang merupakan skema dataset baru, yang dibuat secara mandiri

oleh peneliti dengan memanfaatkan fitur-fitur pada protokol Openflow (Wahyuli

Dwiki Nanda, 2022).


8

Berdasarkan ulasan penelitian tersebut, penelitian ini mengusulkan model

sistem deteksi berdasarkan serangan pada IoT dengan memperkenalkan metode

baru yaitu algoritma GAN yang juga merupakan kumpulan data fitur besar.

Penelitian ini mengumpulkan berbagai fitur deteksi mengenai seranga pada IoT

untuk menbantu mencegah penyerangan serta menjaga keamanan pada jaringan.

Perbandingan penelitian dapat dilihat pada Tabel 2.1.

Tabel 2.1 Perbandingan Penelitian Sebelumnya.


Peneliti Penelitian Teknologi Hasil Penelitian

Wawan Pengamanan SIMON Hasil penelitian ini menunjukkan


Setyadi, Internet Of bahwa algoritma SPECK memiliki
2019 Things kinerja yang lebih baik pada
perangkat Arduino Uno
menggunakan
dibandingkan algoritma SIMON,
algoritma dan kedua algoritma tersebut dapat
SIMON dan diterapkan pada sistem IoT
SPECK untuk bersumber daya rendah untuk
layanan pembuatan layanan keamanan
kerahasiaan kerahasiaan data.
data
Marchio Deteksi Support Hasil penelitian ini membangun
Farantino, Serangan DoS Vector IDS dengan algoritma klasifikasi
2020 pada IoT Machine untuk melakukan analisa terhadap
(SVM) trafik jaringan. Penelitian ini
Berbasis
menerapkan metode SVM sebagai
Protokol metode klasifikasi. Hasil model
MQTT yang diperoleh adalah akurasi
dengan 98.865% dan akurasi 99.4601 %
Metode berdasarkan pada metode serangan
Support DoS yang berbeda.
Vector
Machine
(SVM).
Fery Mendeteksi Finite- Hasil pengujian menunjukkan
Antony, Denial of State bahwa pendekatan finite-state
2021 Service Automata automata berhasil mendeteksi
Attacks pada serangan synchronize flooding sert
Internet Of a juga ping flooding pada sebuah
9

Peneliti Penelitian Teknologi Hasil Penelitian

Things jaringan Internet Of Things, tetapi


menggunaka pencegahan serangan tidak secara
n Finite-State signifikan juga akan mengurangi
Automata penggunaan prosesor dan memori.
Implementasi bash-iptables juga
berhasil mengurangi berbagai
deteksi serangan synchronize
flooding dengan efisiensi waktu
pencegahan sebesar 55,37% dan
mengurangi serangan ping
flooding sebesar 60% tetapi
dengan waktu yang tidak
signifikan.
Mohamma Deteksi Random Algoritma Random Forest dapat
d Sani Serangan Forest bekerja dengan baik dalam
Rafsanjani, Botnet pada melakukan deteksi terhadap
2022 serangan botnet. Dimana pada fitur
Internet of
attack didapat nilai accuracy
Things sebesar 99.27% sedangkan pada
menggunakan fitur category nilai accuracy
algoritma sebesar 99.43% dan fitur
Random subcategory nilai accuracy sebesar
Forest (RF) 98.86%, category 97.97% dan
subcategory 83.77%, dengan
pembagian data train 80%, data
test 30% dan jumlah estimators
200.
Wahyuli Deteksi Random Meningkatkan hasil akurasi
Dwiki Serangan Forest klasifikasi dan juga mengurangi
Nanda, LRDDoS beban komputasi kontroler saat
2022 pada SD-IoT proses emulasi dilakukan.
Menggunakan Algortima RF ini menghasilkan
Random akurasi yang tinggi yaitu 98.7%
Forest dengan pada kecepatan pengiriman paket
Koefisien sebanyak 200 paket per detik
Regresi (ppd).
Logistik
Riansi, Deteksi Generativ Hasil dari penelitian ini
2022 Serangan IoT e menghasilkan model deteksi
menggunakan Advesarial serangan IoT yang dibangun
Generative Network menggunakan Algoritma
Advesarial Generative Adversarial Network
Network (GAN), didapatkan nilai
(GAN) akurasinya 0,99 dengan epoch
10

Peneliti Penelitian Teknologi Hasil Penelitian

500.

2.2. Teori Dasar

Teori dasar berisi tentang bahasan mengenai teori yang berkaitan dengan

permasalahan penelitian. Teori yang diambil dapat berasal dari penelitian

terdahulu yang termuat di dalam jurnal ilmiah dan internet. Berikut ini beberapa

teori dasar yang berkaitan dengan permasalahan penelitian :

2.2.1 Deteksi

Deteksi merupakan suatu proses untuk memeriksa atau melakukan

pemeriksaan terhadap sesuatu. Tujuan dari deteksi adalah memecahkan suatu

masalah dengan berbagai cara tergantung metode yang diterapkan sehingga

menghasilkan sebuah solusi (Rajab, 2017).

2.2.2 Serangan

Serangan adalah aksi yang dilakukan intruder (penyerang) untuk

melemahkan suatu jaringan. (Trivusi, 2022).

2.2.3 Internet of Things (IoT)

Internet of Things adalah suatu deskripsi dari jaringan fisik

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

2.2.4 Deep learning

Deep learning adalah salah satu cabang machine learning yang

menggunakan deep neural network untuk menyelesaikan permasalahan pada

domain machine learning (Syahid, 2016). Deep neural network adalah neural

network yang mempunyai jumlah hidden layer lebih dari satu. Salah satu

tantangan dalam keberhasilan implementasi deep learning adalah pengaturan nilai

untuk berbagai hyper-parameter, salah satunya adalah topologi jaringannya, yang

sangat berkaitan erat dengan jumlah hidden layer dan jumlah hidden neuron.

Penentuan jumlah hidden layer dan jumlah neuron sangat penting dan memiliki

pengaruh besar pada kinerja deep learning (Samuel Sena, 2017).

2.2.5 Generative Adversrial Network (GAN)

Generative Adversarial Networks (GAN) adalah kelas framework

machine learning (Youcheng Zhang, 2019). GAN memiliki dua jaringan yang

berjalan secara bersamaan, jaringan diskriminator dan jaringan pembangkit.

Teknik ini digunakan untuk menghasilkan data baru dengan statistik yang sama

dengan training set. Nilai masukan atau masukan dari GAN berupa gambar nyata

atau gambar mentah, yang kemudian diumpankan ke jaringan generator, yang

kemudian membuat sampel baru, yang selanjutnya masuk ke jaringan

diskriminator. Dua masukan berbeda ke dalam jaringan diskriminator kemudian


12

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

ditentukan (Ferianda Satya, 2019).

1. Diskriminator

Diskriminator adalah pengklasifikasi yang mendeteksi apakah sampel input

asli atau palsu. Akibatnya, diskriminator dalam GAN pada dasarnya adalah

pengklasifikasi. Diskriminator mencoba untuk membedakan antara data asli

dan data yang dihasilkan oleh generator. Disini akan menggunakan

convolutional classifier, hanya saja tanpa maxpooling layer. Disarankan

untuk menggunakan jaringan dalam dengan normalisasi untuk menangani

data yang sulit semacam ini (Youcheng Zhang 2019). Memiliki Mode

matematika seperti berikut:

L ( D )=max [ log ( D ( x ) ) + log ( 1−D ( G ( z ) ) ) ] [2.1]

Keterangan:

L = Loss x = data Asli

D = Diskrominator z = data palsu

G = Generator

2. Generator

Dari namanya sendiri sudah cukup jelas. Komponen generator dari GAN

belajar untuk menghasilkan data palsu dengan memasukkan umpan balik


13

diskriminator. Untuk belajar memanipulasi diskriminator sehingga

keluarannya diklasifikasikan sebagai nyata. Generator harus mengambil

sampel input dan membuat gambar baru dengan dimensi yang sama dengan

data pelatihan (Youcheng Zhang 2019). Ini sebagian besar harus terdiri dari

lapisan konvolusi transpos dengan Output yang dinormalisasi Memiliki

Model matematika sebagai berikut :

L ( D )=min [ log ( D ( x ) ) + log ( 1−D ( G ( z ) ) ) ] [ 2.2 ]

Keterangan:

L = Loss x = data Asli

D = Diskrominator z = data palsu

G = Generator

2.2.6 Confusion matrix

Confusion matrix merupakan alat pengukuran yang dapat digunakan

untuk menghitung kinerja atau tingkat kebenaran proses klasifikasi. Dengan

confusion matrix dapat dianalisa seberapa baik classifier dapat mengenali record

dari kelas-kelas yang berbeda (Resika Arthana, 2019). Tabel 2.2 confusion matrix

ditunjukkan berikut ini.


14

Prediksi
Positif Negatif

Tabel
2.2 Positif TP FN
Aktual

Negatif

FP TN

Confusion matrix

Keterangan :

a. TP (True Positive) merupakan banyaknya data yang kelas aktualny

adalah kelas positif dengan kelas prediksinya merupakan kelas positif.

b. FN (False Negative) merupakan banyaknya data yang kelas aktualnya

adalah kelas positif dengan kelas prediksinya merupakan kelas negatif.

c. FP (False Positive) merupakan banyaknya data yang kelas aktualnya

adalah kelas negatif dengan kelas prediksinya merupakan kelas positif.


15

d. TN (True Negative) merupakan banyaknya data yang kelas aktualnya

adalah kelas negatif dengan kelas prediksinya merupakan kelas negatif.

Selain pada dimensi 2 x 2, penerapan confusion matrix pada multiclass

juga berlaku.

Tabel 2. 3 Multiclass confusion matrix

Prediksi
Positif Negatif Netral
Positif

TPos FPosNeg FPosNet


Negatif
Aktua

FNegPos TNeg FNegNet


l
Netral

FNetPos FNetNeg TNet

Tidak jauh berbeda dengan yang berdimensi 2 x 2, multiclass confusion

matrix juga memiliki elemen TP (True Positive), FN (False Negative), FP (False

Positive), dan TN (True Negative). Berikut adalah ketentuan dalam menetapkan

nilai elemen tersebut:


16

a. TP (True Positive) merupakan banyaknya data yang kelas aktualnya sama

dengan kelas prediksinya.

b. FN (False Negative) merupakan total dari seluruh baris yang ditunjuk

kecuali TP yang dicari.

c. FP (False Positive) merupakan total dari seluruh kolom yang ditunjuk

kecuali TP yang dicari.

d. TN (True Negative) merupakan total dari seluruh kolom dan baris selain

yang ditunjuk. Dibawah ini merupakan perhitungan akurasi pada

confusion matrix.

1. Akurasi

Akurasi merupakan metode pengujian berdasarkan tingkat kedekatan

antara nilai prediksi dengan nilai aktual. Dengan mengetahui jumlah data

yang diklasifikasikan secara benar maka dapat diketahui akurasi hasil

prediksi. Persamaan akurasi seperti pada persamaan berikut.

TP+TN
𝐴kurasi ¿ ×100% (2. 3)
TP+ TN + FP+ FN

2. Presisi

Presisi merupakan metode pengujian dengan melakukan perbandingan

jumlah informasi relevan yang didapatkan sistem dengan jumlah seluruh

informasi yang terambil oleh sistem baik yang relevan maupun tidak.

Persamaan presisi ditunjukkan pada persamaan berikut.


17

TP
Presisi ¿ (2. 4)
TP+ FP

3. Recall

Recall merupakan metode pengujian yang membandingkan jumlah

informasi relevan yang didapatkan sistem dengan jumlah seluruh informasi

relevan yang ada dalam koleksi informasi (baik yang terambil atau tidak

terambil oleh sistem). Persamaan recall sebagai berikut.

TP
Recall ¿ (2. 9)
TP+ FP

4. F1-Score

F1-Score menggambarkan perbandingan rata-rata presisi dan recall

yang dibobotkan. Persamaa dapat digunakan sebagai acuan performasi

algoritma jika dataset memiliki jumlah data False Negatif dan False Positif

yang sangat mendekati (symmetric). Namun jika jumlahnya tidak

mendekati, maka sebaiknya menggunakan F1-Score sebagai acuan.

2× recall × presisi
F1-Score = (2.10)
recall+ presisi
18

2.2.7 Hyperparameter

Hyperparameter adalah variabel yang mempengaruhi Output model. Nilai

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

menghasilkan Output yang berbeda pula (Sutama et al, 2020). Beberapa

hyperparameter yang sering digunakan untuk mengoptimasi model yaitu sebagai

berikut:

1. Epoch

Epoch merupakan hyperparameter yang dapat menentukan jumlah

pembelajaran dalam algoritma akan bekerja mengolah seluruh dataset

training. Satu epoch berarti dataset training setiap sampel memiliki

kesempatan untuk memperbarui parameter dalam satu model internal.

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

memungkinkan algoritma pembelajaran berjalan sampai kesalahan dari

model telah cukup diminimalkan (Brownlee, 2018).

2. Batch Size
19

Batch Size merupakan hyperparameter yang dapat memperbarui parameter

model internal dengan menentukan jumlah sampel untuk dikerjakan

sebelumnya. Batch merupakan iterasi for-loop pada satu atau lebih sampel

dan membuat prediksi. Pada akhir batch, prediksi dibandingkan dengan

variabel Output yang diharapkan dan error dihitung. Dari error ini,

algoritma pembaruan digunakan untuk meningkatkan model, misalnya

bergerak ke bawah sepanjang gradien error. Dataset training dapat dibagi

menjadi satu atau beberapa batch (Brownlee, 2018).

2.2.8 Python

Python merupakan bahasa pemrograman yang berorientasi objek dinamis,

dapat digunakan untuk bermacam macam pengembangan perangkat lunak. Python

menyediakan dukungan yang kuat untuk integrasi dengan bahasa pemrograman

lain dan alat-alat bantu lainnya. Python hadir dengan pustaka-pustaka standar

yang dapat diperluas serta dapat dipelajari hanya dalam beberapa hari. Bahasa

pemrograman yang interpretatif multiguna dengan filosofi perancangan yang

berfokus pada tingkat keterbacaan kode (Fitri et al., 2017).

2.2.9 Anaconda

Anaconda adalah suite sumber terbuka atau yang mencakup serangkaian

aplikasi, pustaka, dan konsep yang dirancang untuk pengembangan ilmu data
20

dengan python. Pada garis umum distribusi anaconda adalah distribusi python

yang berfungsi sebagai pengelola lingkungan, pengelola paket dan pengumpul

data program (Srimulia, 2019).

2.2.10 Vanilla

Vanilla merupakan istilah dari kebanyakan orang menggunakan nama

MLP untuk arsitektur neural network yang sederhana. di mana layer-layernya

saling terhubung (fully-connected) dan tidak memiliki banyak layer (deep neural

network). Pada definisi ini, perceptron adalah unit pehitungan sederhana yang

terjadi pada neuron-neuron (Rian Adam, 2021).

2.2.11 Diagram Alir

Diagram alir (Flowchart) adalah bagan (Chart) yang menunjukkan alir

(Flow) di dalam program atau prosedur sistem secara logika flowchart menolong

analis dalam untuk memecahkan masalah kedalam segmen-segmen yang lebih

kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam

pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah

khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut (Rejeki, M,

2013). Simbol-simbol yang sering digunakan dalam proses pembuatan flowchart

dapat dilihat pada tabel 2.4.

Tabel 2.4 Simbol Flowchart


21

Simbol Fungsi

Simbol Terminal, simbol yang

digunakan untuk menyatakan awal

atau akhir suatu program.

Simbol Input/Output, simbol yang

digunakan untuk menunjukkan

operasi masukan atau keluaran.

Simbol Fungsi

Simbol Proses, simbol yang

digunakan untuk menggambarkan

proses pengolahan data.

Simbol Keputusan, simbol yang

digunakan untuk menyatakan suatu

pilihan berdasarkan suatu kondisi

tertentu.

Simbol Arah aliran, simbol yang

digunakan untuk menunjukkan arah

aliran proses.
22

BAB III

ANALISA DAN PERANCANGAN

3.1. Analisa

Analisis adalah proses mengidentifikasi masalah yang akan terjadi, yang

kemudian menjadi dasar dalam membangun model untuk menyelesaikan masalah

yang ada. Menganalisis tahapan-tahapan yang dilalui penelitian ini menjadi objek

kajian model deteksi serangan IoT. Kemudian topik yang digunakan adalah

Deteksi Serangan IoT menggunakan algoritma Generative Adversarial Network

(GAN).

3.1.1 Identifikasi Permasalahan

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

membahayakan integritas, kerahasiaan, atau ketersediaan sumber daya IoT.

Tantangan penelitian yang layak dalam jaringan IoT adalah melindunginya dari

entitas jahat yang melakukan aktivitas rentan (ancaman atau serangan).

3.1.2 Populasi, Sampling, dan Definisi Operasional

Populasi merupakan keseluruhan gejala atau satuan yang diteliti dalam

penelitian ini. Populasi yang digunakan dalam penelitian ini adalah serangan pada

jaringan IoT. Populasi yang digunakan merupakan sebuah dataset yang sudah

diambil disitus kaggle.com https://www.kaggle.com/datasets/jmessiasalves/ufpi-

ncad-iot-attacks populasi yang digunakan dalam penelitian ini berjumlah 62.485

data.

Sampling merupakan bagian dari populasi yang diteliti. Data sampling

untuk training 80% dan testing 20% Mengikuti konsep dari model training di

machine learning yang sebenarnya hanya adalah aproksimasi dari sejumlah

parameter yang merepresentasikan dataset yang di berikanen. Jika menggunakan

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 training dan testing.

Tabel 3.1 Dataset Training dan Testing


24

Dataset Sample

Dataset training (80%) 49.988

Dataset testing (20%) 12.497

Jumlah 62.485
3.2. Perancangan Model

Pada desain model deteksi serangan IoT dibutuhkan perancangan

perangkat lunak yang akan mempermudah dalam memahami model menggunakan

logika. Perancangan perangkat lunak dibuat menggunakan Diagram Alir

(flowchart). Perancangan model terdiri dari rancangan input, proses dan

rancangan Output.

3.2.1 Rancangan Input

Perancangan input merupakan awal dimulainya proses informasi.

Rancangan input data merupakan rancangan yang akan digunakan untuk

melakukan input pada perancangan model sebelum model diproses. Rancangan

input data dapat dilihat pada tabel 3.2.

Tabel 3.2 Rancangan input


Machine DebugSize DebugRVA MajorImageVersion MajorOSVersion
332 0 0 0 4
34404 84 121728 10 10
332 0 0 0 4
34404 84 19908 10 10
34404 84 97728 10 10

ExportRVA ExportSize LatVRA MajorLinkerVersion MinorLinkerVersion


0 0 8192 8 0
126576 4930 0 14 10
0 0 8192 8 0
21312 252 18160 14 10
105792 1852 70592 14 10

NumberOfSection SizeOfStackReserve DIICharacteristics ResourceSize


25

3 1048576 34112 672


8 262144 16864 1024
3 1048576 34112 672
6 262144 16736 1040
7 262144 16736 1096

BitcinAddresses Benign
0 1
0 1
0 1
0 1
0 1

3.2.2 Rancangan Model

Perancangan model dilakukan dengan menggunakan flowchart . Model

dirancang untuk menggambarkan proses berjalannya suatu program dari satu

proses ke proses yang lain. Gambar 3.1 menunjukkan desain model deteksi

serangan IoT menggunakan GAN.


26

Pengambilan
dataset deteksi
serangan IoT

Gambar 3.1 Flowchart proses deteksi serangan IoT

Berdasarkan gambar 3.1 model pendeteksian dimulai dengan penginputan

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

model menghasilkan hasil yang optimal.


27

3.2.3 Arsitektur GAN

Rancangan Output berisi hasil dari model yang dibangun untuk dapat

mendeteksi serangan IoT menggunakan algoritma GAN. Output yang dihasilkan

berupa Arsitektur deteksi serangan IoT, Arsitektur tersebut dapat dilihat pada

gambar 3.2 Output deteksi serangan pada IoT.

Gambar 3.2 Output deteksi serangan pada IoT.

Pada gambar 3.2 menjelaskan proses dimulai dengan memasukkan data

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

generator selanjutnya mengirim data tersebut kepada diskriminator.

Diskriminator berperan sebagai penentu untuk menilai dan membedakan

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

paling tidak boleh dilakukan diskriminator salah dalam mengklasifikasikan data

yang masuk, jika itu terjadi maka umpan balik akan merubah penyesuaian antar

generator dan diskriminator.

\dd
BAB IV

IMPLEMENTASI DAN PEMBAHASAN

4.1 Implementasi Pemodelan

Implementasi pemodelan adalah tahap untuk menunjukkan bahwa

model telah siap untuk diterapkan pada keadaan nyata. Jika sebuah model

memasuki tahap pengimplementasian maka model tersebut haruslah sudah

melewati tahap pengujian layak guna. Tujuan dari pengujian layak guna

adalah untuk menghindari dan mengurangi kesalahan-kesalahan yang

mungkin terjadi sampai sesedikit mungkin. Model dan hasil haruslah sesuai

dengan dengan rancangan dan analisis yang telah dibahas sebelumnya.

4.1.1 Pengumpulan Dataset


Pengumpulan datatset dimulai dengan mencari data dengan fitur label

yang terkait dengan kestabilan pada deteksi serangan IoT dengan format

Comma Separated Value (CSV) pada situs kaggle.com. Penelitian ini

menggunakan dataset dengan total data 62.485 data. Untuk mengetahui

contoh dataset yang akan digunakan dapat dilihat pada gambar 4.1.

Gambar 4.1 sampel dataset

29
30

Gambar 4.1 memperlihatkan dataset dari data stabil dan tidak data tidak

stabil yang akan dipakai dalam penelitian ini.

4.1.2 Training Model


Setelah dataset dikumpulkan, maka selanjutnya data akan diproses

dengan melatih data atau biasa disebut training data, ini bertujuan untuk

mendapatkan hasil sebuah model deteksi serangan IoT.

1. Import Library dan modul

Penelitian menggunakan beberapa library yang digunakan 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])

Script 4.1 Import library

Penjelasan script 4.1 yang digunakan untuk impor library, baris 1

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

matriks. Baris ketiga berfungsi membantu program untuk pengolahan

data seperti analisis, manipulasi, mengubah dimensi, mengacak data dan

lain sebagainya fungsi lain dari library tersebut adalah dapat memudahkan

dalam membaca file dengan macam macam format. Baris ke 4 berfungsi

untuk menampilkan data secara visual agar lebih mudah dipahami. Baris 5

bertujuan untuk menyematkan gambar plot statis dalam program model yang

dibangun. Baris ke 6 merupakan tindakan untuk menentukan style ggplot

sebagai style visual data. Baris ke 7 menggunakan xgboost sebagai program

pengklasifikasian data. Baris 8 bertujuan untuk mengubah objek python

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

dengan manajemen memori otomatis.

Jika di atas kita telah melihat skrip untuk memanggil library maka

selanjutnya kita akan memanggil modul GAN dengan menggunakan Script

seperti yang di bawah :

1. import Vanila GAN

2. import importlib

3. importlib.reload(RunGAN)

4. from RunGAN import *

Script 4.2 Pemanggil modul

Pada script 4.2 digunakan memanggil modul pada baris 1 dilakukan

pemanggilan modul yang berisikan program perintah algoritma GAN. Baris


32

2, 3 hingga 4 berfungsi untuk memuat ulang kode pada modul GAN.

2. Akses Data

Pengaksesan data pada komputer dapat dilakukan dengan menulis

script di dalam jupyter notebook. script di bawah berfungsi untuk memanggil

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()

Script 4.3 Pemanggil dataset

Penjelasan script 4.3 di atas berfungsi untuk memanggil dataset dengan

format data CSV dan data berada di folder yang sama dengan program. Di

script 2 ada bagian data yang memang tidak diperlukan karena bercampur

string dan numeric maka harus di drop/hapus.

3. Data Frame

Pada proses ini data kolom yang terdiri dari 16 kolom berdasarkan

pembagian data fitur dan label. Untuk pembuatan program dapat

menggunakan kode sebagai berikut

1. data_cols = ['Machine','DebugSize','DebugRVA',
'MajorImageVersion','MajorOSVersion','ExportRVA',
'ExportSize','LatVRA','MajorLinkerVersion',
'MinorLinkerVersion','NumberOfSection','SizeOfStackReserve',
'DIICharacteristics',' ResourceSize','BitcinAddresses',
'benign']
2. label_cols = ['benign']
33

Script 4.4 Pembagian data fitur dan label

Penjelasan script 4.4 tersebut menunjukkan baris pertama bertujuan

untuk membagi kolom menjadi fitur dari data yang dimasukkan. Pada baris

kedua menunjukkan pembagian kolom yang menjadi sebuah label berisi

angka.

4. Prepocessing

Preprocessing pada penelitian ini adalah tahap yang dilakukan untuk

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

dilakukan preprocessing normalisasi dengan nama Min-Max Scaler. Tujuan

dari penggunaan preprosesing data ini adalah untuk menghidari adanya

outliner atau data yang berbeda jauh dengan data yang lain. Dalam

pemrograman python dapat dilihat pada script di bawah.

1. from sklearn.preprocessing import MinMaxScaler


2. ms = MinMaxScaler()
3. dff = ms.fit_transform(dff)
4. dfz = pd.DataFrame(ms.fit_transform(dff), columns=
cols)
Script 4.5 Preprocessing

Pada Script 4.5 jika dihitung secara matematis untuk mengetahui

langkah-langkah normalisasi dataset kestabilan pada deteksi serang IoT dapat

dilakukann dengan menggunakan persamaan Min-Max Schaler di bawah


34

ini.

x−min
F ( x )= x dimana 0 ≤ F ( x ) ≤ 1[4.1]
max−min

Selain melakukan normalisasi pada data fitur preprocessing juga

dilakukan pada data label. Preprocessing yang dilakukan pada data label

adalah melakukan pengubahan jenis data label yang tadinya berupa data

string diubah menjadi data binary yaitu antara 0 dan 1. Angka 1

menunjukkan data tidak stabil dan angka 0 menunjukkan jenis data yang stabil.

Untuk penulisan pada python dapat dilihat pada script di bawah:

1. dfz['target'] = np.where(dfz['target'] == 'unstable ',


1, 0)

Script 4.6 Menunjukkan data tidak stabil

5. Menentukan Data Train

Pada tahap ini program dibuat dengan tujuan membuat sampel train

dari populasi dataset kestabilan ada model deteksi serangan IoT.

1. import sklearn.cluster as cluster

2. train = dfz.loc[dfz['target']==1 ].copy()

3. algorithm = cluster.Kmeans

4. args, kwds = (), {'n_clusters':2, 'random_state':0}

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

9. num_cases = int(0.8 * len(train))


35

Script 4.7 Menentukan data train

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

lainnya akan ditujukan menjadi data test atau data pengujian.

6. Proses training data

Setelah melewati tahap preprocessing dataset kestabilan pada model

deteksi serangan IoT akan menghadapi tahap selanjutnya yaitu tahap

pemrosesan menggunakann algoritma generative adversarial network atau

GAN yang pertama dilakukan adalah tahap traing data dan model. Tujuan

dari tahap ini untuk melatih model sebelum masuk ke tahap pengujian.

Berikut script yang digunakan.


36

1. import sklearn.cluster as cluster


rand_dim = 32 # 32 # needs to be ~data_dim
2. base_n_count = 128 # 128
3. nb_steps = 500 + 1 # 50000 # Add one for logging of the
last interval
4. batch_size = 128 # 64
5. k_d = 1 # number of critic network updates per adversarial
training step
6. k_g = 1 # number of generator network updates per
adversarial training step
7. critic_pre_train_steps = 100 # 100 # number of steps to
pre-train the critic before starting adversarial training
8. log_interval = 100 # 100 # interval (in steps) at which to
log loss summaries and save plots of image samples to disc
9. learning_rate = 5e-4 # 5e-5
10. data_dir = 'cache_vanilagan/'
11. generator_model_path, discriminator_model_path,
loss_pickle_path = None, None, None
12. #show = False
13. show = True
14. # train = create_toy_spiral_df(1000)
15. # train =
create_toy_df(n=1000,n_dim=2,n_classes=4,seed=0)
16. train = obj_classes.copy().reset_index(drop=True) #
fraud only with labels from classification
17. # train = pd.get_dummies(train, columns=['Class'],
prefix='Class', drop_first=True)
18. label_cols = [ i for i in train.columns if 'target'
in i ]
19. data_cols = [ i for i in train.columns if i not in
label_cols ]
20. train[ data_cols ] = train[ data_cols ]#/10 # scale
to random noise size, one less thing to learn
21. train_no_label = train[ data_cols ]

Script 4.8 Proses training data

Pada script 4.8 di atas menunjukkan jumlah epoch atau iterasi atau

pengulangan pelatihan digunakan sebanyak 500 jumlah itu bertujuan untuk

mendapatkan hasil pelatihan pada model yang lebih maksimal. Selanjutnya

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

dan sudah berada satu folder dengan coding. Selanjutnya menginputkan


37

element yang sangat penting dalam algoritma GAN yaitu generator dengan

memasukkan generator ke dalam array yang dibangkitkan dengan cara

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

dataset kestabilan pada model deteksi serangan IoT. Selanjutnya elemen

kedua yaitu Diskriminator juga melakukan tahap pelatihan yang berbeda

dangan tahap training. Diskriminator dilatih untuk mengenali data asli yaitu

data kestabilan pada model deteksi serangan IoT yang di masukkan pada

model. Tujuan dari training adalah agar nantinya discriminator dapat

membedakan data asli dan data palsu yang dari generator dengan lebih

efektif. Dari script yang sudah dipaparkan di atas maka penelitian ini

mendapatkan hasil akhir yaitu di epoch 500 sebagai berikut.

Gambar 4. 2 Hasil pelatihan data pada 500 iterasi


38

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

(D(G(z)) adalah sebesar 0,3625, selanjutnya untuk loss dalam discriminator

dalam mendeteksi data asli adalah sebesar 0,5912, kemudian loss pada program

untuk mendeteksi Xbg adalah sebesar 1.000 dan terakhir loss yang didapatkan

oleh discriminator secara total adalah sebesar 0.2287.

4.2 Pengujian Pemodelan

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

pengujian yang akan kita bahas sebagai berikut.

1. Testing model

Pengujian model dilakukan menggunakan 16 fitur dari sekitar 62.485 data

sebagai data penguji untuk medeteksi kestabilan pada model deteksi

serangan IoT menggunakan algoritma GAN. Pada Bahasa pemrograman

python untuk mendeteksi kestabilan pada model deteksi serangan IoT

menggunakan algoritma GAN dapat ditulis sebagia berikut:


39

1. generator_model, discriminator_model, combined_m


odel = define_models_GAN(rand_dim, data_dim,
bas e_n_count)
2. generator_model.load_weights('cache/GAN_generato
r_model_weights_step_50000.h5')
3. test_size = num_cases # Equal to all of the frau
d cases
4. x = get_data_batch(train, test_size, seed=seed)
5. z = np.random.normal(size=(test_size, rand_dim))
6. g_z = generator_model.predict(z)

Script 4.9 Mendeteksi kestabilan model

Pada script 4.9 algortima GAN dilakukan pengujian oleh dua

elemen yaitu discriminator dan generator. Discriminator bertugas untuk

menguji data palsu, data asli dan pengklasifikasian. Sedangkan generator akan

menerima hasil gagal dari generator dan akan Kembali melakukan training data

Kembali untuk diuji oleh discriminator kembali.

2. Pengecekan akurasi

Proses ini akan menunjukkan perbedaan antara data asli dan data yang

di generator oleh generator. Pada script python dapat dituliskan sebagai

berikut.

1. print( CheckAccuracy( x, g_z, data_cols, label_c


ols, seed=0, data_dim=data_dim ) )

2. PlotData( x, g_z, data_cols, label_cols, seed=0, #


with_class=with_class,
3. data_dim=data_dim)

Script 4.10 Pengecekan akurasi


40

Gambar 4. 3 Pengecekan akurasi data real dan data fake

Pada gambar 4.3 dapat dilihat nilai akurasi yang didapatkan adalah

sebesar 0.994535519125683 dan untuk penelitian ini hasil tersebut sudah

menunjukan hasil yang memuaskan.

Pada penelitian ini juga dilakukan uji coba dengan menggunakan

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.

Tabel 4.1 Perbandingan epoch


Jumlah Nilai
Epoch G_ Loss D_ Loss
0 Epoch 0.6763 0.7163
100 Epoch 1.9531 0.2341
200 Epoch 1.2476 0.4910
300 Epoch 1.4885 0.3722
400 Epoch 1.3930 0.4032
500 Epoch 1.6414 0.3625
41

4.2.1 Evaluasi hasil

Setelah dilakukan pengetesan maka selanjutnya akan dilakukan

pengevaluasian model untuk mendapatkan hasil. Tujuan dari pengevaluasian

hasil adalah agar hasil yang didapatkan mudah dipahami. Ada bemacam-macam

jenis pengevaluasian hasil diantaranya adalah confusion matrix, classification

matrix, Receiver Operating Characteristic( ROC), serta fiture importance.

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.

1. from sklearn.metrics import confusion_matrix


2. import seaborn as sns
3. gru_val = confusion_matrix(y_true, y_pred)
4. f, ax = plt.subplots(figsize=(5,5))
5. sns.heatmap(gru_val, annot=True, linewidth=0.7,
lin ecolor='cyan', fmt='g', ax=ax, cmap="BuPu")
6. plt.title('Confusion Matrix')
7. plt.xlabel('Y predict')
8. plt.ylabel('Y test')
9. plt.show()

Script 4.11 Mengevaluasi dan melihat hasil dari model

Pada script 4.11 di atas menunjukkan bahwa penelitian

menggunakan confusion matrix, dalam script dapat dilihat pada baris pertama

yang menunjukkan adanya perintah untuk memasukkan confision matrix dan

script selanjutnya bertujuan untuk merancanng isi dan bentuk confusion matrix
42

yang diinginkan. Setelah membuat script seperti di atas maka selanjutnya

program yang dijalankan akan menunjukkan hasil seperti berikut.

Gambar 4. 4 Confusion matrix deteksi kestabilan

Pada gambar 4.4 menunjukkan deteksi kestabilan model pada bagian

confusion matrix yaitu 543, 6, 0, dan 549. Pada bagian-bagian tersebut

dibagian nilai 543 menunjukkan hasil deteksi data asli tidak stabil, data

dengan nilai 6 merupakan data palsu tidak stabil, data 0 merupakan data asli

stabil dan data 549 merupakan data palsu stabil.

2. Classification Report

Pengevaluasian classification report adalah penunjuk hasil akurasi,

recall, F1 score dari data yang diambil dari nilai confusion matrix. Pada

script python dapat dituliskan sebagai berikut.


43

1. from sklearn.metrics import classification_repo


rt
2. target_names = ['unstable', 'stable']
3. print(classification_report(y_true, y_pred, tar
get_names=target_names))
Script 4.12 Classification Report

Pada script 4.11 di atas menunjukkan program memberi perintah maupun

petunjuk untuk mengimpor classification report kemudian membagi data

stabil dan tidak stabil selanjutnya menampilkan hasil perhitungan. Untuk

outpot dari script di atas adalah sebagai berikut.

Gambar 4.5 Classification report

Pada gambar 4.5 menunjukkan hasil dari data di atas. Kemudian hasil

data dapat dihitung secara matematis dengan meggunakan rumus persamaan

di bawah ini.
44

a. Akurasi

Penghitungan akurasi dapat menggunakan persamaan 2.2.4

dengan perhitungan dari data confusion matrix sebagai berikut.

543+549
𝐴kurasi¿ ×100% = 0,99 (4.2)
543+549+0+6

b. Presisi

Penghitungan presisi dapat menggunakan persamaan 2.2.4 dengan

perhitungan dari data confusion matrix sebagai berikut.

543
Presisi ¿ =1 (4.3)
543+0

c. Recall

Penghitungan Recall dapat menggunakan persamaan 2.2.4 dengan

perhitungan dari data confusion matrix sebagai berikut.

543
Recall ¿ = 0,97 (4.4)
549+6

d. F1-Score

F1-Score merupakan perbandingan rata-rata presisi dan recall yang

dibobotkan merupakan rumus perbandingan rata-rata yang ada pada 2.2.4.

2× 0 , 97 ×1
F1-Score =
0 , 97+ 1
= 0,98 (4.5)
45

3. Receiver Operating Characteristic (ROC)

Bagian ini menunjukkan akurasi dari hasil pemrosesan untuk script

yang digunakan untuk menampilakan Receiver Operating Characteristic (ROC)

pada pendeteksian kestabilan pada model deteksi serangan IoT

menggunakan script berikut.

1. from sklearn.metrics import roc_curve, auc


2. fpr_keras, tpr_keras, thresholds_keras = roc_c
urve(y_true, y_pred)
3. auc_keras = auc(fpr_keras, tpr_keras)
4. plt.figure(1)
5. plt.plot([0, 1], [0, 1], 'k--')

6. plt.plot(fpr_keras, tpr_keras, label='Keras (a rea


= {:.2f})'.format(auc_keras))
7. plt.xlabel('False positive rate')
8. plt.ylabel('True positive rate')
9. plt.title('ROC curve')
10. plt.legend(loc='best')
11. plt.show()

Script 4.13 Receiver Operating Characteristic

Kemudian hasil dari script 4 . 1 3 di atas dapat dilihat pada

gambar di bawah ini.


46

Gambar 4.6 Receiver Operating Characteristic (ROC)

4. Fitur importance

Pada bagian ini menunjukkan fitur-fitur yang peling berperan selama

pemrosesan data baik training dan testing. Untuk script dapat dilihat pada

bagian bawah berikut.

1. fig, ax = plt.subplots(1, 1, figsize=(8, 8))


2. xgb.plot_importance(xgb_test, max_num_features
=20, height=0.5, ax=ax);

script 4.14 Fitur importance

Kemudian dari script 4.13 hasil yang didapatkan dari data script

sebagai berikut.

Gambar 4.7 Fitur importance

Pada gambar 4.7 di atas menunjukkan tingkat partisipasi masing-


47

masing fitur pada saat pemrosesan berlangsung. Pada gambar tersebut

menunjukkan fitur yang paling berpartisipasi adalah fitur

MajorImageVersion. Sementara untuk fitur yang memiliki partisipasi paling

rendah adalah BitcoinAddresses, SizeOfStackReserve, dan NumberOfSection.

4.2.2 Pengujian Model

Pengujian model prediksi saham menggunakan kuesioner yang disebarkan

kepada responden yag terdiri dari 20 mahasiswa dalam bentuk lembaran kertas

dengan menjabarkan pernyataan dan hasil dapat dilihat pada Tabel 4.2.

Tabel 4.2 Pernyataan Kuesioner


S T
No Pernyataan S KS Jumlah
S S

Model dapat mendeteksi serangan


1 IoT menggunakan algoritma 7 13 0 0 20
Generative Advesarial Network
dengan Optimal
2 Model dapat merancang deteksi 4 16 0 0 20
serangan IoT
3 Model dapat di proses pada waktu 1 15 4 0 20
yang cepat.
Model yang dirancang dapat
4 menampilkan model deteksi 2 17 1 0 20
serangan IoT menggunakan GAN
5 Model menghasilkan hasil akurasi 5 13 1 1 20
dengan nilai 0.99
TOTAL 19 74 6 1 100

Keterangan:

SS: Sangat Setuju KS: Kurang Setuju


48

S: Setuju TS: Tidak Setuju

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 *

100 kemudian hasil penjumlahan keseluruhan dari jawaban responden Sangat

Setuju (SS), Setuju (S), Kurang Setuju (KS), dan Tidak Setuju (TS) dipersenkan.

Hasil persentase uji coba kuesioner pada 20 mahasiswa sebagai responden

dengan menjabarkan pernyataan dan hasil dapat dilihat pada tabel 4.3.

Tabel 4. 3 Hasil Pengisian Kuesioner


No Pernyataan SS S KS TS Jumlah

Model dapat mendeteksi serangan 65


1 IoT menggunakan algoritma 35% 0 0 100%
Generative Advesarial Network %
dengan Optimal
80
2 Model dapat merancang deteksi 20% 0 0 100%
serangan IoT %

75
3 Model dapat di proses pada waktu 5% 20% 0 100%
yang cepat. %

Model yang dirancang dapat 85


4 menampilkan model deteksi 10% 5% 100%
%
serangan IoT menggunakan GAN
65
5 Model menghasilkan hasil akurasi 25% 5% 5% 100%
dengan nilai 0.99 %

TOTAL 19% 74 6% 1% 100%


49

Secara keseluruhan responden yang menyatakan sangat setuju (SS) 19%,

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

deteksi serangan IoT menggunakan algoritma Generative adversarial Network

(GAN) layak digunakan.

4.3 Keunggulan Model

1. Model dapat mendeteksi serangan IoT menggunakan algoritma Generative

Advesarial Network dengan Optimal

2. Model dapat mendeteksi serangan IoT menggunakan Algoritma GAN.

3. Model yang dirancang dapat menampilkan model deteksi serangan IoT

menggunakan GAN

4.4 Kelemahan Model

1. Waktu proses model masih kurang cepat.

2. Model belum secara maksimal menghasilkan hasil akurasi dengan nilai

0.99 pada saat pengujian.


BAB V

PENUTUP

5.1 Kesimpulan

Dari penelitian yang telah dilakukan ditetapkan kesimpulan sebagai

berikut:

1. Telah dilakukan analisa pedeteksian model deteksi serangan IoT dapat

dirancang menggunakan algoritma Generative Adversarial Network

(GAN).

2. Model yang dibangun untuk mendeteksi serangan IoT, menggunakan

sumber dataset yang diambil ada pada situs kaggle.com

https://www.kaggle.com/datasets/jmessiasalves/ufpi-ncad-iot-attacks.

Jumlah dataset yang digunakan 62.485 data. Langkah-langkah

perancangan model dimulai dari pengumpulan dataset, training model,

pengujian pemodelan, evaluasi matriks, dan pengujian model. Hasil

akurasi yang diperoleh dari pengujian sebesar 0,99.

3. Model yang dibangun dapat mendeteksi serangan IoT yang

menggunakan algoritma GAN.

5.1 Saran
Adapun saran untuk pengembangan selanjutnya adalah :

1. Sebaiknya untuk pengembangan model selanjutnya waktu proses model

dapat lebih cepat.

2. Sebaiknya model secara stabil dapat menghasilkan hasil akurasi dengan

50
nilai 0.99 pada saat pengujian.

DAFTAR PUSTAKA

Antony, Fery, 2021. “Mendeteksi Denial of Service Attacks pada Internet Of


Things menggunakan Finite-State Automata”.
Anjani, Sarah, 2022. “Deteksi intrusi pada jaringan algoritma Generative
Adversarial Network (GAN)”.

Anita, 2017. “ Pengertian mengenai apa itu deteksi ”


https://eprints.polsri.ac.id/6909/3/file%20III.pdf
Farantino, Marchio, 2020. “Deteksi Serangan DoS pada IoT Berbasis Protokol
MQTT dengan Metode Support Vector Machine (SVM)”.
Nanda, Wahyuli Dwiki, 2022. “Deteksi Serangan LRDDoS pada SD-IoT
Menggunakan Random Forest dengan Koefisien Regresi Logistik”.
Prabowo, Albertus Christian Noviadi, 2022. “Deteksi Distraksi Pada Pengendara
Mobil Menggunakan Algoritma Generative Adversarial Network (GAN)”.
Rafsanjani, Mohammad Sani, 2022.” Deteksi Serangan Botnet pada Internet of
Things menggunakan algoritma Random Forest (RF)”.
Sena, Samuel, 2017. “Pengenalan Deep Learning Part 1 : Neural Network”
https://medium.com/@samuelsena/pengenalan-deep-learning-
8fbb7d8028ac

Setyadi, Wawan, 2019. “Pengamanan Internet Of Things menggunakan algoritma


SIMON dan SPECK untuk layanan kerahasiaan data”.
Srimulia, 2022. “Mengenal Lebih Jauh Mengenai Anaconda Python”.
https://idmetafora.com/news/read/1281/Mengenal-Lebih-Jauh-Mengenai-
Anaconda-Python.html

Trivusi, 2022. “7 Jenis Serangan pada jaringan komputer dan langkah


pencegahannya”
https://www.trivusi.web.id/2022/08/serangan-jaringan.html

51
LAMPIRAN

Lampiran A. Biodata Peneliti

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

Riwayat Pendidikan dan Kursus


Tahun Pendidikan/Kursus
2007-2013 SD Inpres 1 Sidoan
2013-2016 SMP Negeri 2 Tinombo
2016-2019 SMA Negeri 1 Tinombo
2019-sekarang Universitas Respati Yogyakarta

Yogyakarta, 09 Maret 2023

Riansi

53
54

Lampiran C. Kartu Bimbingan Skripsi


55
56

Lampiran D. Listing Program

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

1. import Vanila GAN

2. import importlib

3. importlib.reload(RunGAN)

5. from RunGAN import *

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

1. from sklearn.preprocessing import MinMaxScaler


2. ms = MinMaxScaler()
3. dff = ms.fit_transform(dff)
4. dfz = pd.DataFrame(ms.fit_transform(dff),
columns= cols)

6. Menunjukkan data tidak stabil

1. dfz['target'] = np.where(dfz['target'] == 'unstable


', 1, 0)

7. Menentukkan data

1. import sklearn.cluster as cluster

2. train = dfz.loc[dfz['target']==1 ].copy()

3. algorithm = cluster.Kmeans

4. args, kwds = (), {'n_clusters':2, 'random_state':0}

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

9. num_cases = int(0.8 * len(train))

57
58

8. Proses Training Data

1. import sklearn.cluster as cluster


rand_dim = 32 # 32 # needs to be ~data_dim
2. base_n_count = 128 # 128
3. nb_steps = 500 + 1 # 50000 # Add one for logging of the
last interval
4. batch_size = 128 # 64
5. k_d = 1 # number of critic network updates per
adversarial training step
6. k_g = 1 # number of generator network updates per
adversarial training step
7. critic_pre_train_steps = 100 # 100 # number of steps to
pre-train the critic before starting adversarial training
8. log_interval = 100 # 100 # interval (in steps) at which
to log loss summaries and save plots of image samples to
disc
9. learning_rate = 5e-4 # 5e-5
10. data_dir = 'cache_vanilagan/'
11. generator_model_path, discriminator_model_path,
loss_pickle_path = None, None, None
12. #show = False
13. show = True
14. # train = create_toy_spiral_df(1000)
15. # train =
create_toy_df(n=1000,n_dim=2,n_classes=4,seed=0)
16. train = obj_classes.copy().reset_index(drop=True) #
fraud only with labels from classification
17. # train = pd.get_dummies(train, columns=['Class'],
prefix='Class', drop_first=True)
18. label_cols = [ i for i in train.columns if 'target'
in i ]
19. data_cols = [ i for i in train.columns if i not in
label_cols ]
20. train[ data_cols ] = train[ data_cols ]#/10 # scale
to random noise size, one less thing to learn
21. train_no_label = train[ data_cols ]

9. Mendeteksi kestabilan

1. generator_model, discriminator_model, combined_m odel


= define_models_GAN(rand_dim, data_dim, bas e_n_count)
2. generator_model.load_weights('cache/GAN_generato
r_model_weights_step_50000.h5')
3. test_size = num_cases # Equal to all of the frau d
cases
4. x = get_data_batch(train, test_size, seed=seed)
5. z = np.random.normal(size=(test_size, rand_dim))
6. g_z = generator_model.predict(z)
10. Pengecekkan akurasi

1. print( CheckAccuracy( x, g_z, data_cols, label_c


ols, seed=0, data_dim=data_dim ) )
2. PlotData( x, g_z, data_cols, label_cols, seed=0, #
with_class=with_class,
3. data_dim=data_dim)

11. Mengevaluasi dan melihat hasil dari model

1. from sklearn.metrics import confusion_matrix


2. import seaborn as sns
3. gru_val = confusion_matrix(y_true, y_pred)
4. f, ax = plt.subplots(figsize=(5,5))
5. sns.heatmap(gru_val, annot=True, linewidth=0.7,
lin ecolor='cyan', fmt='g', ax=ax, cmap="BuPu")
6. plt.title('Confusion Matrix')
7. plt.xlabel('Y predict')
8. plt.ylabel('Y test')
9. plt.show()

12. Classification Report

1. from sklearn.metrics import classification_repo


rt
2. target_names = ['unstable', 'stable']
3. print(classification_report(y_true, y_pred, tar
get_names=target_names))

59
60

13. Receiver Operating characteristic (ROC)

1. from sklearn.metrics import roc_curve, auc


2. fpr_keras, tpr_keras, thresholds_keras = roc_c
urve(y_true, y_pred)
3. auc_keras = auc(fpr_keras, tpr_keras)
4. plt.figure(1)
5. plt.plot([0, 1], [0, 1], 'k--')
6. plt.plot(fpr_keras, tpr_keras, label='Keras (a rea =
{:.2f})'.format(auc_keras))
7. plt.xlabel('False positive rate')
8. plt.ylabel('True positive rate')
9. plt.title('ROC curve')
10. plt.legend(loc='best')
11. plt.show()

14. Fitur Importance

1. fig, ax = plt.subplots(1, 1, figsize=(8, 8))


2. xgb.plot_importance(xgb_test, max_num_features
=20, height=0.5, ax=ax);

Anda mungkin juga menyukai