Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio

Mendeteksi Pola Aktivitas Mencurigakan dengan Data Analysis

  • August 28, 2026
  • oleh Avrillia Zahra Khoirun Nisa

Aktivitas jaringan dapat menunjukkan pola yang berbeda antara trafik normal dan trafik yang dikategorikan sebagai serangan. Dengan menganalisis data seperti jumlah paket, jumlah byte, protokol, dan durasi koneksi, kita dapat menemukan karakteristik trafik yang tidak biasa dan menjadikannya sebagai indikasi awal aktivitas mencurigakan.

Pada artikel ini digunakan UNSW-NB15 Testing Set untuk melakukan Exploratory Data Analysis (EDA) terhadap trafik jaringan. Analisis dilakukan menggunakan Python, Pandas, Matplotlib, dan Seaborn dengan melihat struktur dataset, distribusi aktivitas, protokol, karakteristik trafik, outlier, serta perbedaan antara aktivitas normal dan serangan.

Kenapa Kita Tidak Bisa Langsung Menyebut Sebuah Trafik sebagai Serangan?

Ketika melihat trafik jaringan yang sangat besar, kita mungkin langsung berpikir bahwa aktivitas tersebut mencurigakan. Masalahnya, trafik yang besar tidak selalu berarti serangan.

Sebuah server yang sedang digunakan oleh banyak pengguna juga dapat menghasilkan jumlah paket dan byte yang tinggi. Karena itu, diperlukan analisis terhadap data untuk mengetahui apakah aktivitas tersebut memang berbeda dari pola normal.

Mengenal Dataset UNSW-NB15

Dataset yang digunakan adalah UNSW-NB15, khususnya file:

UNSW_NB15_testing-set.parquet

Dataset tersebut berisi record aktivitas jaringan yang memiliki berbagai informasi seperti port, protokol, durasi koneksi, jumlah paket, jumlah byte, serta label yang menunjukkan apakah aktivitas tersebut normal atau termasuk serangan.

Beberapa kolom yang akan digunakan:

KolomKeterangan
sportPort sumber
dsportPort tujuan
protoProtokol jaringan
stateStatus koneksi
durDurasi koneksi
sbytesJumlah byte dari sumber
dbytesJumlah byte dari tujuan
spktsJumlah paket dari sumber
dpktsJumlah paket dari tujuan
serviceLayanan jaringan
rateRate trafik
attack_catKategori aktivitas
labelLabel normal atau serangan

Dengan memahami isi dataset terlebih dahulu, kita tidak hanya melihat angka, tetapi juga mengetahui informasi apa yang sebenarnya sedang kita analisis.

Bagaimana Cara Membaca Dataset yang Digunakan?

Dataset yang digunakan memiliki format .parquet. Untuk membacanya, kita dapat menggunakan Pandas.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_parquet("UNSW_NB15_testing-set.parquet")
df.head()

Melalui df.head(), kita dapat melihat bagaimana data disusun dan informasi apa saja yang terdapat pada setiap record.

Tahap ini memang terlihat sederhana, tetapi penting dilakukan sebelum analisis. Kita perlu mengetahui bentuk data terlebih dahulu sebelum menentukan analisis apa yang akan dilakukan.

Sebanyak Apa Data yang Sedang Kita Hadapi?

Setelah dataset berhasil dibaca, pertanyaan berikutnya adalah: seberapa besar data yang akan dianalisis?

Jumlah data dapat memengaruhi cara kita membaca hasil analisis. Karena itu, kita dapat melihat jumlah baris dan kolom menggunakan shape.

print("Jumlah baris :", df.shape[0])
print("Jumlah kolom :", df.shape[1])

Jumlah baris menunjukkan banyaknya record aktivitas jaringan, sedangkan jumlah kolom menunjukkan banyaknya fitur yang tersedia.

Dari sini kita sudah mendapatkan gambaran awal mengenai ukuran dataset yang akan dieksplorasi.

Apakah Dataset Ini Sudah Bersih untuk Dianalisis?

Sebelum mencari pola serangan, kita perlu memastikan bahwa data yang digunakan tidak memiliki masalah dasar seperti missing value atau data duplikat.

Apakah Ada Data yang Kosong?

Data kosong dapat memengaruhi hasil perhitungan maupun visualisasi. Oleh karena itu, kita perlu memeriksa jumlah missing value pada setiap kolom.

df.isnull().sum()

Jika hasilnya 0, berarti tidak ditemukan data kosong pada dataset.

Jika terdapat data kosong, jangan langsung menghapusnya. Kita perlu melihat terlebih dahulu kolom yang terdampak dan menentukan apakah data tersebut perlu ditangani.

Apakah Ada Data yang Sama?

Selain missing value, kita juga perlu memeriksa apakah terdapat baris yang memiliki isi sama di dalam dataset.

Untuk mengeceknya, gunakan:

df.duplicated().sum()

Artinya, terdapat 32.361 baris yang terdeteksi sebagai duplikat.

Untuk melihat perbandingannya dengan jumlah data awal, kita dapat menjalankan:

print("Jumlah data awal :", len(df))
print("Jumlah data unik :", len(df.drop_duplicates()))
print("Jumlah duplikat  :", df.duplicated().sum())

Dari hasil tersebut, dataset awal memiliki 82.332 baris. Setelah baris yang terduplikasi tidak dihitung, terdapat 49.971 baris unik, sedangkan 32.361 baris terdeteksi sebagai duplikat.

Hasil ini cukup besar sehingga muncul pertanyaan: apakah semua data duplikat tersebut memang harus dihapus?

Tidak selalu.

Dalam analisis data, duplikasi perlu dilihat berdasarkan konteks dataset. Baris yang memiliki nilai sama belum tentu merupakan kesalahan data. Karena dataset merupakan kumpulan record trafik jaringan, kemunculan record dengan karakteristik yang sama dapat menjadi bagian dari data yang memang dikumpulkan.

Oleh karena itu, pada tahap ini kita tidak langsung menghapus data duplikat. Hasil pengecekan tersebut dicatat sebagai bagian dari kondisi dataset, kemudian analisis dilanjutkan menggunakan data yang tersedia.

Apakah Aktivitas Normal Lebih Banyak daripada Serangan?

Dataset UNSW-NB15 memiliki kolom label yang dapat digunakan untuk membedakan aktivitas normal dan aktivitas serangan.

Kita dapat melihat jumlah masing-masing label menggunakan:

df["label"].value_counts()

Kemudian membuat grafik:

df["label"].value_counts().plot(kind="bar")

plt.title("Distribusi Aktivitas Normal dan Serangan")
plt.xlabel("Label")
plt.ylabel("Jumlah Data")
plt.show()

Pada dataset ini:

0 = Normal
1 = Attack

Hasil tersebut memberi kita gambaran mengenai komposisi data.

Tetapi ada hal yang perlu diperhatikan. Mengetahui jumlah serangan belum memberi tahu kita serangan seperti apa yang terdapat di dalam dataset.

Apakah Semua Serangan Memiliki Karakteristik yang Sama?

Aktivitas yang diberi label serangan tidak selalu berasal dari jenis serangan yang sama. Untuk melihat kategorinya, kita dapat menggunakan kolom attack_cat.

df["attack_cat"].value_counts()

Kemudian membuat grafik:

df["attack_cat"].value_counts().plot(
    kind="bar",
    figsize=(10, 5)
)

plt.title("Distribusi Kategori Aktivitas")
plt.xlabel("Kategori")
plt.ylabel("Jumlah Aktivitas")
plt.xticks(rotation=45)
plt.show()

Dari hasil tersebut, kategori Normal memiliki jumlah data paling banyak, yaitu 37.000 record. Di antara kategori serangan, Generic menjadi kategori dengan jumlah terbanyak, yaitu 18.871 record, kemudian Exploits sebanyak 11.132 record dan Fuzzers sebanyak 6.062 record.

Sementara itu, kategori seperti Worms, Shellcode, dan Backdoor memiliki jumlah record yang jauh lebih sedikit.

Hal ini menunjukkan bahwa distribusi setiap kategori tidak sama. Ada jenis aktivitas yang jauh lebih sering muncul dibandingkan jenis lainnya.

Protokol yang Paling Banyak Muncul, Apakah Berarti Paling Mencurigakan?

Protokol merupakan salah satu karakteristik yang menarik untuk dilihat.

Pertama, kita dapat melihat protokol yang paling sering muncul:

df["proto"].value_counts().head(10)

Dari output tersebut kita dapat mengetahui protokol yang paling banyak digunakan.

Namun, apakah protokol yang paling banyak digunakan otomatis merupakan protokol yang mencurigakan?

Tidak.

Sebuah protokol dapat digunakan dalam aktivitas normal maupun serangan. Karena itu, kita perlu membandingkannya berdasarkan label.

pd.crosstab(df["proto"], df["label"])

Visualisasikan hasilnya:

pd.crosstab(
    df["proto"],
    df["label"]
).plot(
    kind="bar",
    figsize=(12, 6)
)

plt.title("Protokol Berdasarkan Label Aktivitas")
plt.xlabel("Protokol")
plt.ylabel("Jumlah Aktivitas")
plt.show()

Sekarang kita tidak hanya melihat protokol yang paling banyak muncul, tetapi juga melihat bagaimana penggunaannya tersebar pada aktivitas normal dan serangan.

Kalau Jumlah Paket Sangat Tinggi, Apakah Itu Serangan?

Jumlah paket merupakan salah satu karakteristik yang dapat membantu kita memahami trafik.

Mau Kuasai Mendeteksi Pola Aktivitas Mencurigakan dengan Data Analysis Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

UNSW-NB15 memiliki kolom spkts untuk jumlah paket dari sumber dan dpkts untuk jumlah paket dari tujuan.

Kita dapat melihat statistiknya:

df[["spkts", "dpkts"]].describe()

Selain melihat angka statistik, kita juga dapat menggunakan boxplot untuk melihat distribusi datanya.

sns.boxplot(data=df[["spkts", "dpkts"]])

plt.title("Distribusi Jumlah Paket")
plt.show()

Dari boxplot, kita dapat melihat penyebaran data dan mengetahui apakah terdapat nilai yang jauh dari kelompok utama.

Nilai yang sangat jauh dari mayoritas data dapat menjadi kandidat outlier.

Kalau Ada Outlier, Apakah Itu Berarti Aktivitas Berbahaya?

Belum tentu.

Outlier hanya menunjukkan bahwa suatu nilai berbeda cukup jauh dari mayoritas data. Dalam trafik jaringan, nilai ekstrem bisa muncul karena aktivitas tertentu yang memang menghasilkan trafik besar.

Untuk melihat contoh lainnya, kita dapat menganalisis sbytes, yaitu jumlah byte yang dikirim dari sumber.

sns.boxplot(x=df["sbytes"])

plt.title("Distribusi Source Bytes")
plt.show()

Jika terdapat nilai yang jauh lebih tinggi dibandingkan mayoritas data, kita dapat melihat record dengan nilai sbytes terbesar.

df.nlargest(10, "sbytes")[
    [
        "proto",
        "sbytes",
        "dbytes",
        "spkts",
        "dpkts",
        "label",
        "attack_cat"
    ]
]

Dari hasil tersebut, kita dapat melihat aktivitas dengan jumlah byte dari sumber yang paling tinggi sekaligus membandingkannya dengan jumlah byte tujuan, jumlah paket, protokol, label, dan kategori aktivitas.

Dengan cara ini, nilai ekstrem tidak hanya dilihat sebagai titik pada boxplot, tetapi dapat ditelusuri kembali ke record yang menghasilkan nilai tersebut.

Hal ini penting karena nilai sbytes yang tinggi belum tentu menunjukkan aktivitas serangan. Kita masih perlu melihat karakteristik lainnya dan membandingkannya dengan label aktivitas.

Apakah Aktivitas dengan Nilai Ekstrem Memang Lebih Banyak Berlabel Serangan?

Sekarang kita dapat menguji dugaan tersebut.

Ambil beberapa aktivitas dengan sbytes terbesar:

df.nlargest(20, "sbytes")[
    [
        "sbytes",
        "spkts",
        "dbytes",
        "dpkts",
        "label",
        "attack_cat"
    ]
]

Kita dapat melihat apakah aktivitas dengan nilai ekstrem lebih banyak memiliki label 1 atau 0.

Pada hasil tersebut, sebagian besar record dengan nilai sbytes tertinggi memiliki label = 1, sehingga terdapat pola yang menarik untuk diperiksa lebih lanjut.

Namun, hasil ini belum cukup untuk menyimpulkan bahwa nilai sbytes yang tinggi selalu menunjukkan serangan.

Apakah Jumlah Paket Normal dan Serangan Memang Berbeda?

Setelah melihat outlier, kita dapat membandingkan karakteristik trafik secara keseluruhan.

Gunakan:

df.groupby("label")[
    ["sbytes", "dbytes", "spkts", "dpkts"]
].mean()

Kemudian visualisasikan:

df.groupby("label")[
    ["sbytes", "dbytes", "spkts", "dpkts"]
].mean().plot(
    kind="bar",
    figsize=(10, 5)
)

plt.title("Karakteristik Trafik Berdasarkan Label")
plt.xlabel("Label")
plt.ylabel("Nilai Rata-rata")
plt.show()

Sekarang pertanyaan yang kita jawab adalah:

Apakah karakteristik trafik normal dan serangan memang memiliki perbedaan?

Jika terdapat perbedaan pada variabel tertentu, variabel tersebut dapat menjadi salah satu karakteristik yang menarik untuk diperiksa lebih lanjut.

Namun, perbedaan rata-rata tidak berarti seluruh aktivitas dalam kelompok tersebut memiliki pola yang sama.

Aktivitas Seperti Apa yang Perlu Diperiksa Lebih Lanjut?

Setelah melakukan beberapa tahap eksplorasi, kita mulai memiliki beberapa karakteristik yang dapat digunakan untuk menemukan aktivitas yang menarik.

Beberapa contohnya:

  • jumlah paket jauh lebih tinggi dibandingkan mayoritas data,
  • jumlah byte memiliki nilai ekstrem,
  • rate trafik sangat tinggi,
  • karakteristik tertentu lebih sering muncul pada aktivitas berlabel serangan,
  • atau beberapa nilai ekstrem muncul secara bersamaan.

Misalnya sebuah aktivitas memiliki kombinasi:

Jumlah paket tinggi
+
Jumlah byte tinggi
+
Rate tinggi
+
Label = 1

Aktivitas seperti ini lebih menarik untuk diperiksa dibandingkan hanya melihat satu karakteristik.

Namun, Data Analysis pada tahap ini belum menjadi sistem pendeteksi serangan otomatis.

Tujuan analisis ini adalah menggunakan data untuk menemukan pola dan membantu menentukan aktivitas mana yang perlu diperiksa lebih lanjut.

Jadi, Pola Apa yang Sebenarnya Kita Cari?

Kita tidak mencari satu angka yang secara otomatis berarti bahwa sebuah aktivitas adalah serangan.

Sebaliknya, kita mencoba menemukan kombinasi karakteristik yang membuat suatu aktivitas terlihat berbeda dari mayoritas data.

Proses analisisnya dapat digambarkan seperti berikut:

Data Trafik
     ↓
Memahami Struktur Dataset
     ↓
Memeriksa Kondisi Data
     ↓
Melihat Aktivitas Normal dan Serangan
     ↓
Menganalisis Protokol
     ↓
Menganalisis Jumlah Paket dan Byte
     ↓
Mencari Nilai Ekstrem
     ↓
Memeriksa Outlier
     ↓
Membandingkan dengan Label
     ↓
Menemukan Pola yang Perlu Diperiksa

Melalui proses tersebut, kita tidak hanya mencari data yang terlihat aneh.

Kita juga mencoba menjawab pertanyaan yang lebih penting

Mengapa data tersebut terlihat berbeda dari aktivitas lainnya?

Pertanyaan inilah yang menjadi bagian penting dari Exploratory Data Analysis.

Kesimpulan

Exploratory Data Analysis dapat diterapkan pada data trafik jaringan untuk membantu menemukan pola aktivitas yang tidak biasa.

Menggunakan dataset UNSW-NB15 Testing Set, kita dapat melihat berbagai karakteristik seperti distribusi aktivitas normal dan serangan, kategori aktivitas, protokol, jumlah paket, jumlah byte, serta nilai ekstrem atau outlier.

Dari proses tersebut, kita dapat menemukan record yang memiliki karakteristik berbeda dari mayoritas data. Namun, nilai yang ekstrem tidak dapat langsung dianggap sebagai serangan.

Sebuah aktivitas baru dapat dipahami dengan lebih baik ketika kita melihat konteks dan menggabungkan beberapa karakteristik sekaligus.

Dengan demikian, tujuan utama analisis ini bukan sekadar mencari data yang terlihat aneh, tetapi menggunakan data untuk memahami:

Pola apa yang membuat sebuah aktivitas berbeda, dan apakah perbedaan tersebut layak diperiksa lebih lanjut?

Pendekatan ini menjadi salah satu contoh bagaimana Data Analysis dan Exploratory Data Analysis dapat diterapkan pada bidang jaringan dan cybersecurity, khususnya untuk memahami karakteristik trafik sebelum melakukan analisis atau pengembangan sistem keamanan yang lebih lanjut.

Dibuat oleh:

Avrillia Zahra Khoirun Nisa

Mau Kuasai Mendeteksi Pola Aktivitas Mencurigakan dengan Data Analysis Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

Previous Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Mendeteksi Pola Aktivitas Mencurigakan dengan Data Analysis
  • Cara Menambahkan Filter Interaktif di Looker Studio Biar Dashboard Bisa Dieksplor Sendiri
  • Cara Memakai Google Apps Script: Panduan Lengkap untuk Pemula
  • Praktik EDA System Monitoring: Analisis CPU, Memory, dan Trafik Jaringan
  • Memilih Jenis Chart yang Tepat untuk Data Kamu

Arsip

  • August 2026
  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP python security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2026 | Privacy Policy | Site Map | Portfolio Magang | Butuh tim kami langsung yang mengerjakan? Lihat layanan implementasi →

All Right Reserved

WhatsApp us