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