• About
  • Advertise
  • Privacy Policy
  • Contact
Sabtu, September 26, 2026
  • Login
No Result
View All Result
YOUTUBE
Kutarajapost - Berita Aceh dan Nasional
  • Home
  • Daerah
    • All
    • Aceh Barat
    • Aceh Besar
    • Aceh Selatan
    • Aceh Singkil
    • Aceh Tengah
    • Aceh Utara
    • Banda Aceh
    • Bener Meriah
    • Gayoe Lues
    • Nagan Raya
    • Sabang
    • Subulussalam

    Wali Nanggroe Bawa Pengalaman Perdamaian Aceh ke Global Town Hall 2026

    Tiga Ahli Perkuat Keterangan M. Nasir, Juanda Akui Tak Tahu Kebenaran Tuduhan Rp132 Miliar

    Terima Audiensi Angkasa Pura, Wagub Dek Fadh Dukung Penguatan Layanan dan Konektivitas Bandara SIM

    Terima Audiensi Angkasa Pura, Wagub Dek Fadh Dukung Penguatan Layanan dan Konektivitas Bandara SIM

    Wagub Dek Fadh Pimpin Rapat Tim Revisi UUPA, Pastikan Kewenangan dan Kekhususan Aceh Tetap Terjaga

    Wagub Dek Fadh Pimpin Rapat Tim Revisi UUPA, Pastikan Kewenangan dan Kekhususan Aceh Tetap Terjaga

    Dek Fadh Ikuti Rakor Perkembangan Rehabilitasi dan Rekonstruksi Pascabencana Sumatera

    Dek Fadh Ikuti Rakor Perkembangan Rehabilitasi dan Rekonstruksi Pascabencana Sumatera

    Bunda Salma Serahkan Kursi Roda untuk Warga Lumpuh

    Bunda Salma Serahkan Kursi Roda untuk Warga Lumpuh

    Aksara Jawi atau Arab Melayu Bersiap Masuk ke Ruang Digital dan Internet

    Lembaga Wali Nanggroe Dorong Penguatan Konservasi Berbasis Adat untuk Menjaga Hutan dan Keseimbangan Alam Aceh

    Tambahan TKD Rp1,65 Triliun untuk Aceh, Anggaran Bencana Harus Bergerak

    Tambahan TKD Rp1,65 Triliun untuk Aceh, Anggaran Bencana Harus Bergerak

    • Banda Aceh
    • Aceh Barat
    • Aceh Barat Daya
    • Aceh Besar
    • Aceh Jaya
    • Aceh Selatan
    • Aceh Singkil
    • Aceh Tamiang
    • Aceh Tengah
    • Aceh Utara
    • Pidie
    • Sabang
    • Simeulue
    • Subulussalam
  • Nasional
  • Internasional
  • Ekonomi
  • Olahraga
  • Opini
  • Lainnya
    • Teknologi
    • Pendidikan
    • Hukum
    • Sosial
    • Budaya & Gaya Hidup
  • Home
  • Daerah
    • All
    • Aceh Barat
    • Aceh Besar
    • Aceh Selatan
    • Aceh Singkil
    • Aceh Tengah
    • Aceh Utara
    • Banda Aceh
    • Bener Meriah
    • Gayoe Lues
    • Nagan Raya
    • Sabang
    • Subulussalam

    Wali Nanggroe Bawa Pengalaman Perdamaian Aceh ke Global Town Hall 2026

    Tiga Ahli Perkuat Keterangan M. Nasir, Juanda Akui Tak Tahu Kebenaran Tuduhan Rp132 Miliar

    Terima Audiensi Angkasa Pura, Wagub Dek Fadh Dukung Penguatan Layanan dan Konektivitas Bandara SIM

    Terima Audiensi Angkasa Pura, Wagub Dek Fadh Dukung Penguatan Layanan dan Konektivitas Bandara SIM

    Wagub Dek Fadh Pimpin Rapat Tim Revisi UUPA, Pastikan Kewenangan dan Kekhususan Aceh Tetap Terjaga

    Wagub Dek Fadh Pimpin Rapat Tim Revisi UUPA, Pastikan Kewenangan dan Kekhususan Aceh Tetap Terjaga

    Dek Fadh Ikuti Rakor Perkembangan Rehabilitasi dan Rekonstruksi Pascabencana Sumatera

    Dek Fadh Ikuti Rakor Perkembangan Rehabilitasi dan Rekonstruksi Pascabencana Sumatera

    Bunda Salma Serahkan Kursi Roda untuk Warga Lumpuh

    Bunda Salma Serahkan Kursi Roda untuk Warga Lumpuh

    Aksara Jawi atau Arab Melayu Bersiap Masuk ke Ruang Digital dan Internet

    Lembaga Wali Nanggroe Dorong Penguatan Konservasi Berbasis Adat untuk Menjaga Hutan dan Keseimbangan Alam Aceh

    Tambahan TKD Rp1,65 Triliun untuk Aceh, Anggaran Bencana Harus Bergerak

    Tambahan TKD Rp1,65 Triliun untuk Aceh, Anggaran Bencana Harus Bergerak

    • Banda Aceh
    • Aceh Barat
    • Aceh Barat Daya
    • Aceh Besar
    • Aceh Jaya
    • Aceh Selatan
    • Aceh Singkil
    • Aceh Tamiang
    • Aceh Tengah
    • Aceh Utara
    • Pidie
    • Sabang
    • Simeulue
    • Subulussalam
  • Nasional
  • Internasional
  • Ekonomi
  • Olahraga
  • Opini
  • Lainnya
    • Teknologi
    • Pendidikan
    • Hukum
    • Sosial
    • Budaya & Gaya Hidup
No Result
View All Result
Kutarajapost - Berita Aceh dan Nasional
No Result
View All Result
Home Internasional

Cara Membuat Detektor Email Spam dengan Python dan Naive Bayes Classifier

Jimmy Maulana by Jimmy Maulana
in Internasional
0
159
SHARES
1.9k
VIEWS
Share on FacebookShare on Twitterkutarajapost.com

Cara Membuat Detektor Email Spam

Pernahkah Anda bertanya-tanya bagaimana Gmail tahu bahwa email yang menjanjikan $10 juta adalah spam? Atau bagaimana cara menangkap pesan “Anda memenangkan iPhone gratis!” sebelum mencapai inbox Anda?

Dalam tutorial ini, Anda akan membuat classifier email spam sendiri dari awal menggunakan algoritma Naive Bayes. Pada akhirnya, Anda akan memiliki model yang berfungsi dengan akurasi lebih dari 97%—dan Anda akan memahami dengan tepat bagaimana cara kerjanya.

Apa yang Akan Anda Pelajari

  • Bagaimana filter spam email sebenarnya bekerja
  • Intuisi di balik algoritma Naïve Bayes
  • Teknik preprocessing teks untuk machine learning
  • Cara mengevaluasi model klasifikasi
  • Membangun pipeline deteksi spam lengkap dengan Python

Prasyarat

Anda harus memiliki pemahaman dasar tentang Python dan beberapa pemahaman tentang konsep fundamental machine learning. Jangan khawatir jika Anda masih belajar—saya akan menjelaskan semuanya seiring berjalannya waktu.

RelatedPosts

Presiden Prabowo Gemakan “Free Palestine” dari Gontor

Wagub Aceh Dukung Dua Atlet Menembak Aceh Berlaga di Asian Games 2026

Misteri lima bayi orang utan di hutan India, korban perdagangan satwa dari Indonesia atau Malaysia?

Mengapa Naive Bayes untuk Deteksi Spam?

Sebelum kita menyelami kode, mari pahami mengapa Naive Bayes sangat cocok untuk tugas ini.

Bayangkan Anda menerima email yang berisi kata-kata seperti “gratis,” “pemenang,” “klik di sini,” dan “penawaran waktu terbatas.” Otak Anda langsung menandai ini sebagai mencurigakan. Algoritma Naive Bayes melakukan sesuatu yang serupa—algoritma ini menghitung probabilitas bahwa sebuah email adalah spam berdasarkan kata-kata yang dikandungnya.

Algoritma ini disebut “naive” (naif) karena membuat asumsi penyederhanaan: memperlakukan setiap kata sebagai independen dari kata lainnya. Pada kenyataannya, kombinasi kata penting (pikirkan “uji coba gratis” vs “uang gratis”), tetapi penyederhanaan ini bekerja dengan sangat baik dalam praktik.

Mengapa Memilih Naive Bayes?

  • Kecepatan: Melatih dengan sangat cepat, bahkan pada dataset besar
  • Efisiensi: Membutuhkan data pelatihan minimal untuk menghasilkan hasil yang andal
  • Kesederhanaan: Mudah diimplementasikan dan diinterpretasikan
  • Performa: Meskipun sederhana, sering mengungguli algoritma yang lebih kompleks untuk klasifikasi teks

Menyiapkan Lingkungan

Pertama, instal library yang diperlukan:

%pip install regex wordcloud numpy pandas seaborn matplotlib scikit-learn

Berikut ringkasan singkat tentang apa yang dilakukan setiap library:

  • regex / re — untuk membersihkan teks menggunakan pencocokan pola
  • wordcloud — untuk memvisualisasikan kata-kata yang paling sering muncul
  • numpy & pandas — untuk pemuatan dan manipulasi data
  • seaborn & matplotlib — untuk bagan dan visualisasi
  • scikit-learn — menyediakan classifier Naive Bayes, vectorizer, dan alat evaluasi

Setelah instalasi selesai, impor semua library:

# Manipulasi dan analisis data
import pandas as pd
import numpy as np

# Visualisasi data
import seaborn as sns
import matplotlib.pyplot as plt

# Pemrosesan bahasa alami
import nltk
import re
from nltk.corpus import stopwords

# Machine learning
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score

# Visualisasi word cloud
from wordcloud import WordCloud

Memuat dan Menjelajahi Dataset

Kami akan menggunakan dataset email yang berlabel. Anda dapat mengunduhnya dari Kaggle.

message_dataset = pd.read_csv('emails.csv')
message_dataset.head()

Dataset berisi 5.728 email dengan dua kolom: text (konten email) dan spam (1 untuk spam, 0 untuk email yang sah).

Memvisualisasikan Distribusi Data

plt.rcParams["figure.figsize"] = [8, 10]
message_dataset.spam.value_counts().plot(kind="pie", autopct="%1.0f%%")

Distribusi Data Spam

Sekitar 24% email dalam dataset adalah spam, sementara 76% adalah email sah.

Menganalisis Pola Kata dengan Word Clouds

stop = stopwords.words("english")

message_dataset["text_without_sw"] = message_dataset["text"].apply(
    lambda x: " ".join([item for item in x.split() if item not in stop])
)

Word Cloud Email Spam:

Word Cloud Email Spam

Word Cloud Email Sah:

Word Cloud Email Sah

Observasi Utama:

  • Email spam: “free,” “money,” “offer,” “click,” “please”
  • Email sah: “company,” “time,” “thanks”

Preprocessing Data Teks

def clean_text(doc):
    document = re.sub('[^a-zA-Z]', ' ', doc)
    document = re.sub(r'\s+[a-zA-Z]\s+', ' ', document)
    document = re.sub(r'\s+', ' ', document)
    return document

Mengonversi Teks ke Fitur Numerik

Kita menggunakan TF-IDF (Term Frequency-Inverse Document Frequency):

vectorizer = TfidfVectorizer(
    max_features=2500,
    min_df=5,
    max_df=0.7,
    stop_words=stopwords.words('english')
)

X = vectorizer.fit_transform(X_sentences).toarray()

Melatih Classifier Naive Bayes

X_train, X_test, y_train, y_test = train_test_split(
    X, y,
    test_size=0.20,
    random_state=42
)

spam_detector = MultinomialNB()
spam_detector.fit(X_train, y_train)

Evaluasi Performa Model

y_pred = spam_detector.predict(X_test)

print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
print(accuracy_score(y_test, y_pred))

Hasil:

Akurasi Model: 97.82%

Predicted: SahPredicted: Spam
Actual: Sah849 (TN)7 (FP)
Actual: Spam18 (FN)272 (TP)

Menguji Email Individual

print(spam_detector.predict(vectorizer.transform([X_sentences[56]])))

Output: [1] ✅ Model dengan benar mengidentifikasi email promosi sebagai SPAM!

Kesimpulan

Anda telah membangun classifier email spam yang mencapai lebih dari 97% akurasi menggunakan algoritma Naïve Bayes. Di sepanjang jalan, Anda belajar tentang:

  • ✅ Preprocessing teks
  • ✅ Ekstraksi fitur dengan TF-IDF
  • ✅ Teknik evaluasi model

Langkah Selanjutnya

  • Bereksperimen dengan vectorizer berbeda: Coba CountVectorizer atau word embeddings (Word2Vec, GloVe)
  • Tangani ketidakseimbangan kelas: Gunakan teknik seperti SMOTE atau sesuaikan class weights
  • Feature engineering: Tambahkan fitur seperti panjang email, jumlah link, atau domain pengirim
  • Coba algoritma lain: Bandingkan dengan SVM, Random Forest, atau gradient boosting
  • Deploy model: Bangun API sederhana menggunakan Flask atau FastAPI

Sumber: freeCodeCamp – Diterjemahkan ke Bahasa Indonesia

Previous Post

Dinsos Aceh: Distribusi Logistik Penanganan Bencana Capai 925.193 Ton

Next Post

Dari Tempat Suluk Hingga Disabilitas Berat, Yahdi Hasan Salurkan Bantuan Gubernur Aceh

Jimmy Maulana

Jimmy Maulana

Penulis dan wartawan yang konsisten mengangkat isu sosial, pembangunan daerah, dan dinamika kebijakan publik dengan pendekatan naratif yang kuat serta berbasis data.Bagi saya Menulis adalah medium tanggung jawab sosial sebuah ruang untuk membangun kesadaran publik dan mendorong perbaikan sistem secara konstruktif.

Related Posts

Presiden Prabowo Gemakan “Free Palestine” dari Gontor

Presiden Prabowo Gemakan “Free Palestine” dari Gontor

by Husni Anwar
23/09/2026
0

Jawa Timur - Ada satu momen yang membuat suasana Resepsi Kesyukuran 100 Tahun Pondok Modern Darussalam Gontor (PMDG), Kabupaten Ponorogo...

Wagub Aceh Dukung Dua Atlet Menembak Aceh Berlaga di Asian Games 2026

Wagub Aceh Dukung Dua Atlet Menembak Aceh Berlaga di Asian Games 2026

by Husni Anwar
18/09/2026
0

Banda Aceh — Wakil Gubernur Aceh, Fadhlullah atau Dek Fadh, memberikan dukungan kepada dua atlet menembak asal Aceh, Derli Amalia Putri...

Misteri lima bayi orang utan di hutan India, korban perdagangan satwa dari Indonesia atau Malaysia?

Misteri lima bayi orang utan di hutan India, korban perdagangan satwa dari Indonesia atau Malaysia?

by Husni Anwar
10/09/2026
0

India  - Foto dan video yang dibagikan secara luas di internet menunjukkan lima bayi orang utan duduk bersama di hutan...

Presiden Prabowo Lepas Kontingen Indonesia Menuju Asian Games XX Aichi-Nagoya 2026

Presiden Prabowo Lepas Kontingen Indonesia Menuju Asian Games XX Aichi-Nagoya 2026

by Husni Anwar
10/09/2026
0

Jakarta - Presiden Prabowo Subianto secara resmi melepas kontingen Indonesia yang akan berlaga pada Asian Games XX Aichi-Nagoya 2026 di...

Pemerintah Aceh Pacu Aturan Payung Hukum Rute Kapal Krueng Geukueh–Penang

Pemerintah Aceh Pacu Aturan Payung Hukum Rute Kapal Krueng Geukueh–Penang

by Husni Anwar
17/09/2026
0

Banda Aceh — Pemerintah Aceh tengah mengakselerasi penyusunan Rancangan Peraturan Gubernur (Ranpergub) guna mempercepat realisasi pembukaan rute pelayaran internasional dari Pelabuhan...

Penutupan Delapan Bandara Imbas Erupsi Anak Krakatau Diperpanjang hingga 7 September 2026

Penutupan Delapan Bandara Imbas Erupsi Anak Krakatau Diperpanjang hingga 7 September 2026

by Husni Anwar
07/09/2026
0

Jakarta – Kementerian Perhubungan memperpanjang penutupan sementara delapan bandar udara yang terdampak sebaran abu vulkanik Gunung Anak Krakatau hingga Senin 7...

Load More
Next Post

Dari Tempat Suluk Hingga Disabilitas Berat, Yahdi Hasan Salurkan Bantuan Gubernur Aceh

Kak Na: Gekrafs harus Kreatif, Inovatif dan tetap Peduli Sesama

Kak Na: Gekrafs harus Kreatif, Inovatif dan tetap Peduli Sesama

Wagub Aceh Buka Puasa Bersama Warga Matang Drien

Wagub Aceh Buka Puasa Bersama Warga Matang Drien

Gubernur Aceh Buka Puasa Bersama dan Santuni Anak Yatim serta Penyandang Disabilitas

Gubernur Aceh Buka Puasa Bersama dan Santuni Anak Yatim serta Penyandang Disabilitas

Recent News

Wali Nanggroe Bawa Pengalaman Perdamaian Aceh ke Global Town Hall 2026

24/09/2026

Tiga Ahli Perkuat Keterangan M. Nasir, Juanda Akui Tak Tahu Kebenaran Tuduhan Rp132 Miliar

24/09/2026
Terima Audiensi Angkasa Pura, Wagub Dek Fadh Dukung Penguatan Layanan dan Konektivitas Bandara SIM

Terima Audiensi Angkasa Pura, Wagub Dek Fadh Dukung Penguatan Layanan dan Konektivitas Bandara SIM

24/09/2026
  • Pembukaan-Rekrutmen-SDM-Berpengalaman-Special-Hire-dan-Tenaga-Kerja-PKWT-Bank-Indonesia-2024-2025

    Lowongan Rekrutmen Bank Indonesia 2024: Special Hire dan PKWT Terbaru

    1222 shares
    Share 489 Tweet 306
  • Cara Mengatur Ukuran Logo di Word dengan Mudah

    189 shares
    Share 75 Tweet 47
  • Cara Menghubungi Call Center BSI dengan Mudah

    180 shares
    Share 71 Tweet 45
  • Legenda Tapak Tuan: Misteri Jejak Kaki Raksasa di Aceh Selatan

    180 shares
    Share 70 Tweet 44
  • Daftar Smelter Nikel di Indonesia

    175 shares
    Share 70 Tweet 44
Kutarajapost - Berita Aceh dan Nasional

© 2026 KutarajaPost.com - Media Berita dan Informasi Terkini.

  • About
  • Advertise
  • Privacy Policy
  • Contact

Follow Us

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Home
  • Daerah
    • Banda Aceh
    • Aceh Barat
    • Aceh Barat Daya
    • Aceh Besar
    • Aceh Jaya
    • Aceh Selatan
    • Aceh Singkil
    • Aceh Tamiang
    • Aceh Tengah
    • Aceh Utara
    • Pidie
    • Sabang
    • Simeulue
    • Subulussalam
  • Nasional
  • Internasional
  • Ekonomi
  • Olahraga
  • Opini
  • Lainnya
    • Teknologi
    • Pendidikan
    • Hukum
    • Sosial
    • Budaya & Gaya Hidup

© 2026 KutarajaPost.com - Media Berita dan Informasi Terkini.