Tutorial Lengkap Membuat News Aggregator Menggunakan Python

Tutorial Lengkap Membuat News Aggregator Menggunakan Python

id8 min read • 1956 views

Tutorial Lengkap Membuat News Aggregator Menggunakan Python

Halo, bro dan sis yang suka ngulik dunia coding! Hari ini gue bakal ngajakin lo bikin proyek seru: News Aggregator pake Python. Lo bakal belajar banyak teknik mulai dari web scraping, API integration, sampai cara nyimpen data ke database SQLite. Cocok banget buat lo yang pengen asah skill Python sambil bikin aplikasi bermanfaat. Langsung aja yuk kita mulai dari step pertama!

Kenapa News Aggregator Itu Menarik?

Pernah nggak sih lo ngerasa overwhelmed sama banyaknya berita di internet? Dari berita politik sampai gosip selebriti, semuanya berseliweran di timeline. Nah, News Aggregator adalah solusi keren buat ngumpulin berita dari berbagai sumber dalam satu tempat. Bayangin kayak ada asisten pribadi yang nyuapin lo berita paling update setiap hari—keren, kan?

Dengan bikin News Aggregator sendiri, lo bisa:

  1. Mengatur berita sesuai preferensi lo (teknologi, olahraga, finansial).
  2. Mengasah kemampuan Python dengan berbagai teknik coding.
  3. Nambah portofolio proyek keren buat nambah daya tarik di mata recruiter.

Baca Juga

 

Langkah Pertama: Web Scraping dengan BeautifulSoup dan Requests

Kalau website berita nggak punya API, jangan khawatir bro. Lo masih bisa pake web scraping buat ngambil data langsung dari halaman HTML mereka. Kita akan pake dua library favorit: BeautifulSoup buat parsing HTML dan Requests buat HTTP request.

  • Install Library
  • Pertama, buka terminal lo dan ketik:
  • pip install beautifulsoup4 requests
  • Kode Sederhana untuk Web Scraping

Berikut adalah contoh script buat ambil headline dari website berita:

import requests
from bs4 import BeautifulSoup


# URL dari website berita
url = 'https://www.example-news-site.com'


# Kirim request GET ke website
response = requests.get(url)


# Cek apakah request berhasil
if response.status_code == 200:
    # Parse HTML-nya
    soup = BeautifulSoup(response.content, 'html.parser')


    # Cari semua elemen headline
    headlines = soup.find_all('h2', class_='headline')


    # Tampilkan teks dari setiap headline
    for headline in headlines:
        print(headline.get_text(strip=True))
else:
    print(f'Gagal ambil halaman. Status code: {response.status_code}')

Penjelasan Kode

  • requests.get(url): Mengirim request HTTP ke website.
  • BeautifulSoup(response.content, 'html.parser'): Parse konten HTML-nya.
  • find_all('h2', class_='headline'): Cari elemen dengan tag <h2> dan class headline.

Analogi Simpel

  • Bayangin lo dateng ke restoran dan pengen makan makanan enak. Nah, Requests itu kayak pelayan yang ngambilin menu buat lo, sementara BeautifulSoup adalah koki yang ngeracik data HTML biar bisa lo konsumsi dengan enak.

 

Langkah Kedua: Integrasi News API

Kalau lo pengen cara lebih elegan dan legal, pake News API aja. Gampang dan datanya lebih rapi.

  • Daftar di NewsAPI
  • Buka https://newsapi.org dan daftar buat dapetin API key gratis.
  • Kode Mengambil Data Berita

Setelah dapet API key, lo bisa pake script ini:

import requests


api_key = 'YOUR_NEWSAPI_KEY'
url = 'https://newsapi.org/v2/top-headlines'


parameters = {
    'country': 'us',
    'category': 'technology',
    'apiKey': api_key
}


response = requests.get(url, params=parameters)
data = response.json()


if data['status'] == 'ok':
    for article in data['articles']:
        print(article['title'])
else:
    print(f"Error: {data['message']}")

Penjelasan Kode

  • API Key: Kunci buat autentikasi request.
  • Parameters: Filter berita berdasarkan negara dan kategori.
  • Parsing JSON: Ambil informasi artikel dari respons API.

Tips Pro:

  • Jangan lupa jaga API key lo biar nggak bocor ke publik. Simpen di file .env aja, terus load pake library dotenv.

 

Langkah Ketiga: Fetch Data Lewat RSS Feeds

Kalau lo pengen cara yang klasik tapi reliable, bisa pake RSS feeds.

  • Install Feedparser
  • pip install feedparser
  • Kode Fetching RSS
import feedparser


feed_url = 'https://www.example-news-site.com/rss'
feed = feedparser.parse(feed_url)


for entry in feed.entries:
    print(f"Title: {entry.title}")
    print(f"Link: {entry.link}")
    print(f"Summary: {entry.summary}\n")

 

Langkah Keempat: Simpen Data ke Database dengan SQLite

Biar data lo nggak hilang pas aplikasi dimatikan, kita bakal nyimpen data ke database SQLite.

Setup Database

import sqlite3


def setup_database():
    conn = sqlite3.connect('articles.db')
    cursor = conn.cursor()
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS articles (
            id INTEGER PRIMARY KEY,
            title TEXT,
            summary TEXT,
            link TEXT,
            source TEXT,
            published DATE
        )
    ''')
    conn.commit()
    conn.close()

Simpan Artikel ke Database

def save_article(title, summary, link, source, published):
    conn = sqlite3.connect('articles.db')
    cursor = conn.cursor()
    cursor.execute('''
        INSERT INTO articles (title, summary, link, source, published)
        VALUES (?, ?, ?, ?, ?)
    ''', (title, summary, link, source, published))
    conn.commit()
    conn.close()

 

Tips Web Scraping yang Aman dan Etis

Web scraping itu keren, bro, tapi jangan sampe lo jadi "perampok data" yang nggak etis. Beberapa situs punya aturan ketat soal siapa aja yang boleh ngambil datanya. Nah, biar lo tetap aman dan nggak kena blacklist, coba ikuti tips berikut:

  1. Baca Robots.txt

Sebelum mulai scraping, selalu cek file robots.txt di website target lo. File ini biasanya bisa diakses dengan nambahin /robots.txt setelah URL utama, contohnya https://www.contoh-website.com/robots.txt.

Di dalam file ini ada informasi soal halaman mana aja yang boleh diakses crawler dan mana yang nggak boleh. Kalau ada perintah Disallow: /admin, artinya lo nggak boleh scraping halaman admin.

Contoh isi robots.txt:

User-agent: *
Disallow: /private

Kalau ngelanggar? Bisa-bisa lo di-ban dari website tersebut, bro.

 

  1. Delay Request

Jangan rakus, bro! Kalau lo kirim request secara brutal tanpa jeda, server bisa overload dan ngira lo bot yang mau bikin kerusuhan. Solusinya adalah kasih delay antar request.

Contoh sederhana dengan Python:

import time
import requests


urls = ["https://site1.com", "https://site2.com"]


for url in urls:
    response = requests.get(url)
    print(response.status_code)
    time.sleep(2)  # Delay 2 detik antar request

Dengan kasih delay kayak gini, lo bantu server tetap sehat dan performa scraping lo jadi lebih stabil.

 

  1. Gunakan Header yang Wajar

Tambahin User-Agent ke request lo biar nggak dicurigai bot. Sebagian besar website bakal nolak request kalau nggak ada User-Agent.

Contoh menambahkan User-Agent di request:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}


response = requests.get("https://example.com", headers=headers)
print(response.content)

Dengan tips-tips ini, lo nggak cuma jadi scraper yang keren, tapi juga etis dan profesional. Happy scraping, bro!

 

Kesimpulan: Coding News Aggregator Itu Seru Banget!

Dari web scraping, integrasi API, sampe nyimpen data ke database, lo udah punya modal buat bikin aplikasi news aggregator yang keren abis. Jangan ragu buat terus eksplorasi dan eksperimen. Kalau lo ngerasa stuck, inget aja bahwa setiap error adalah guru terbaik lo. Keep calm, stay curious, and happy coding, bro dan sis! 

Series: Python
  1. Pengertian dan Kegunaan Bahasa Pemrograman Python
  2. Phyton 1 : Tutorial Pengenalan Dasar
  3. Phyton 2 : Macam Penulisan Sintaks
  4. Phyton 3 : Konsep Variabel dan Data
  5. Phyton 4 - Cara Mengambil Input dan Output
  6. Phyton 5 : Jenis-jenis Operator
  7. Phyton 6 - Percabangan
  8. Phyton 7 - Perulangan
  9. Phyton 8 - Struktur Data List
  10. 4 Variasi Fungsi Print () Pada Phyton
  11. Tutorial Python: Struktur Data Dictionary
  12. Phyton 9 - Struktur Data Tuple
  13. Phyton 9 : Struktur Data Tuple Part 2
  14. 5 Variasi Coding Python dengan Fungsi Concatenate, Yuk, Coba
  15. PyScript: Masa Depan Python di Browser ?
  16. 7 Hal Dasar yang Harus Diketahui Tentang Dictionary pada Python
  17. Memahami Fungsi dan Prosedur pada Python
  18. 6 Proyek Coding Python untuk Meningkatkan Portofolio Anda
  19. Tutorial Python: Membaca dan Menulis File dengan Lebih Mendalam
  20. Cara Baca Dan Parse File CSV di Python
  21. 7 Teknik Membuat Dictionary di Python dengan Data dari Berbagai Sumber
  22. 5 Kesalahan Umum dalam Menggunakan Dictionary di Python dan Cara Menghindarinya
  23. Belajar Python: Proses Data JSON dari File dan API Web
  24. Belajar Python: Buat Fungsi Dengan Lambda Expression
  25. Apa Maksud dari *args dan kwargs pada Python?
  26. Tutorial Membuat 3 Jenis Kalkulator Dengan Python
  27. Panduan Lengkap: Cara Menghapus Item di List Python Tanpa Drama
  28. Cara Bangun Dashboard di Jupyter Pakai Solara
  29. 6 Perintah pip yang Harus Diketahui Setiap Developer Python
  30. Panduan Lengkap Menggunakan pip: Manajer Paket Python yang Wajib Dikuasai
  31. Rekomendasi 6 Framework Terbaik untuk Python: Dari Santai Sampai Superhero!
  32. Benar Nggak Sih Python Ramah untuk Programmer Pemula?
  33. Optimasi Performa Perbandingan Dokumen di Python: Ketika CPU Lo Kerja Rodi!
  34. Mengupas Tuntas Cara Mengiterasi Dictionary di Python: Panduan Lengkap yang Gak Bikin Pusing!
  35. 5 Proyek AI Seru yang Bisa Lo Bangun Weekend Ini dengan Python
  36. Rust vs Python: Duel Sengit Bahasa Pemrograman! Mana yang Cocok Buat Lo?
  37. 6 Trik Python Terbaru 2025 yang Wajib Dicoba Programmer
  38. Tutorial Lengkap Membuat News Aggregator Menggunakan Python
  39. Stop Nulis Function Python Kayak Gini, Bro!
  40. 7 Python Decorators yang Bikin Kode Lo Makin Canggih
  41. Trik Python debugging yang wajib lo coba.
  42. Membangun List di Python: Filosofi, Teknik, dan Tips Anti-Kudet
  43. DERET FAKTORIAL: SI "BAHAN VIRAL" MATEMATIKA YANG BIKIN KODE LO NAIK LEVEL!
  44. Project Python Seru: Bikin Script Otomatisasi Pengorganisir File (Biar Folder Download Nggak Kayak Gudang)
  45. Automating Email Sending Via Phyton – Biar Jempol Lo Pensiun Dini
  46. Project 2: Automating Web Scraping for Data Collection dengan Python
  47. Automatisasi Tugas GUI dengan PyAutoGUI
  48. Cara Lama vs Cara Kekinian: Belajar dataclass Python
  49. Automatisasi Laporan PDF dengan Python
  50. Membongkar Rahasia field() di Python: Kendali Penuh atas Dataclass
  51. Praktik Lanjutan Menulis Kode Python yang Bersih dan Ramah Pemula
  52. Python Function Annotations: Fitur Keren yang Sering Diremehkan, Padahal Bikin Kamu Terlihat Programmer Cerdas
  53. Python Keyword Arguments: Panduan Bad Boy Buat Programmer Biar Nggak Salah Urus Function
  54. Belajar Fungsi Tanpa Parameter Python dari Nol: Panduan Lengkap Buat Pemula Sampai Nyantol di Kepala
  55. Tutorial Coding: Keluar dari Plateau of False Competence di Python
  56. Plotting Graph Menggunakan Seaborn di Python
  57. Mutable vs Immutable Objects di Python: Konsep Dasar yang Sering Diremehkan
  58. Python time.sleep() – Cara Mudah Memberi Jeda pada Program Kamu
  59. Mengapa Saya Berhenti Menggunakan Class di Python (Dan Apa yang Saya Gunakan Sebagai Gantinya)
  60. Different Delay Time of Python sleep() – Mengatur Jeda Sesuai Kebutuhan Program
  61. Mengenal Python math Module: Panduan Lengkap untuk Operasi Matematika di Python
Published on August 26, 2025
Last updated on June 03, 2026

If you like this post and want to support us, you can support us via buymeacoffee or trakteer.