← Back to list

Tabular Data Manipulation and Web Scraping

Tugas Pemrograman dan Data Raya Lanjutan Dosen Pengampu : Sabo Hermawan, S.Kom., M.Si. Nama : Adriansyah Alfaridji Prodi : Bisnis Digital…

Adriansyah Alfaridji · 2026-04-21 09:58 · 1 claps · 3.0 min read
#programming #big-data #python #tabular-data #web-scraping
Open on Medium ↗
Wiki topics: 💻 · Programming

Tabular Data Manipulation and Web Scraping

Tugas Pemrograman dan Data Raya Lanjutan Dosen Pengampu : Sabo Hermawan, S.Kom., M.Si. Nama : Adriansyah Alfaridji Prodi : Bisnis Digital Universitas Negeri Jakarta

Bab 2: Manipulasi Data Tabular dengan Library Pandas

Materi ini memberikan fondasi mendalam mengenai penggunaan library Pandas, yang merupakan standar industri dalam ekosistem data science Python untuk mengolah data terstruktur.

1. Pengantar dan Signifikansi Pandas

  • Asal-usul: Nama “Pandas” berasal dari istilah ekonometrika “Panel Data”, dikembangkan oleh Wes McKinney pada tahun 2008.
  • Keunggulan Utama: Pandas menawarkan efisiensi tinggi karena dibangun di atas NumPy yang teroptimasi, memungkinkan pemrosesan dataset besar secara cepat. Selain itu, ia memiliki skalabilitas dan integrasi seamless dengan berbagai format data seperti CSV, Excel, SQL, JSON, hingga Parquet.

2. Struktur Data Utama

  • Series: Struktur data satu dimensi (1D) yang mirip array namun memiliki indeks eksplisit yang dapat dikustomisasi (seperti string atau datetime).
  • DataFrame: Struktur dua dimensi (2D) yang merupakan inti dari Pandas. DataFrame dapat dipandang sebagai kumpulan Series yang berbagi indeks baris yang sama, membentuk tabel dengan baris (axis=0) dan kolom (axis=1).
  • Panel: Struktur tiga dimensi (3D) yang kini sudah deprecated dan disarankan beralih ke MultiIndex DataFrame.

3. Metode Manipulasi dan Transformasi Data

  • Indexing dan Seleksi: Terdapat dua metode utama, yaitu .loc untuk seleksi berdasarkan label indeks dan nama kolom (bersifat inclusive), serta .iloc untuk seleksi berdasarkan posisi integer (bersifat exclusive).
  • Filtering: Menggunakan Boolean Masking untuk memfilter baris berdasarkan kondisi logika (misalnya menampilkan data dengan populasi > 1 miliar).
  • Penanganan Missing Value: Pandas menggunakan NaN untuk data yang hilang. Strategi penanganannya meliputi deteksi (isnull()), penghapusan (dropna()), pengisian dengan estimasi statistik (fillna()), hingga Interpolasi matematis.
  • Operasi Statistik & Agregasi: Menyediakan fungsi deskriptif seperti mean(), describe(), dan info(). Metode GroupBy digunakan untuk operasi split-apply-combine guna menghitung statistik per kategori.
  • Reshaping & Joining:
  • Joining: concat() untuk penggabungan sederhana (vertikal/horizontal) dan merge() untuk penggabungan gaya database (SQL-style join).
  • Reshaping: pivot() untuk mengubah format long ke wide, dan melt() untuk sebaliknya.

4. Optimasi dan Visualisasi

  • Optimasi Performa: Melalui penggunaan tipe data yang tepat (seperti category untuk string repetitif), Vectorization (menghindari loop Python), dan Chunking untuk memproses file yang lebih besar dari RAM.
  • Visualisasi: Terintegrasi langsung dengan Matplotlib melalui metode .plot(), yang mendukung berbagai tipe grafik seperti line, bar, scatter, dan hist.

Bab 3: Akuisisi Data Web (Web Scraping)

Materi ini membahas metodologi ekstraksi data dari internet, mencakup aspek teknis hingga kerangka etika dan legal.

1. Fondasi Struktur Web

  • HTML (HyperText Markup Language): Bahasa markup standar yang membentuk struktur hierarkis halaman web dalam bentuk pohon DOM (Document Object Model).
  • Elemen Kunci:
  • Tag: Elemen dasar seperti <div>, <p>, <a>.
  • Class: Atribut untuk mengelompokkan elemen dengan gaya serupa (bisa digunakan berulang).
  • ID: Identitas unik yang hanya boleh digunakan satu kali per halaman.
  • CSS Selector: Pola untuk menemukan elemen, seperti menggunakan titik (.) untuk class dan tanda pagar (#) untuk ID.

2. Alat dan Teknik Identifikasi

  • Inspect Element: Fitur pengembang pada browser untuk melihat dan memodifikasi struktur HTML/CSS secara lokal dan real-time. Ini adalah langkah awal untuk menentukan selector yang stabil sebelum menulis kode ekstraksi.
  • Panel Developer Tools: Mencakup panel Elements (struktur DOM), Console (uji coba JavaScript/selector), dan Network (memonitor permintaan HTTP untuk data dinamis).

3. Ekstraksi dengan BeautifulSoup

  • BeautifulSoup: Library Python untuk melakukan parsing dokumen HTML/XML yang bahkan tidak sempurna, mengubahnya menjadi object tree yang mudah dicari.
  • Alur Kerja:
  1. Mengambil HTML melalui HTTP request (misal dengan library requests).
  2. Memuat HTML ke BeautifulSoup.
  3. Mencari elemen target menggunakan find(), find_all(), atau select().
  4. Mengekstrak dan membersihkan data.
  • Keterbatasan: Teknik statis ini tidak dapat menangani konten yang dimuat via JavaScript. Solusinya adalah menggunakan alat seperti Selenium atau Playwright untuk melakukan rendering halaman.

4. Etika dan Aspek Legal

  • Etika Profesional: Meliputi penghormatan terhadap hak kekayaan intelektual, penerapan Rate Limiting agar tidak membebani server (DDoS), dan penggunaan data secara bertanggung jawab.
  • Regulasi di Indonesia:
  • UU ITE: Pasal 30–32 mengatur larangan akses ilegal ke sistem elektronik.
  • UU Pelindungan Data Pribadi (PDP): Melarang pengumpulan data pribadi tanpa persetujuan.
  • Regulasi Internasional: Seperti GDPR (Eropa) yang melindungi data pribadi secara global dan CFAA (Amerika Serikat).
  • Praktik Terbaik: Selalu memeriksa file robots.txt dan Terms of Service (ToS) website sebelum melakukan aksi scraping.

Sebagai ringkasan, penguasaan library Pandas untuk manipulasi data tabular dan teknik Web Scraping yang etis merupakan dua pilar utama dalam siklus pengolahan data raya modern.


메타데이터
post_id
bca7bdc7d3da
slug
tabular-data-manipulation-and-web-scraping-bca7bdc7d3da
url
https://medium.com/@adrianmnvl/tabular-data-manipulation-and-web-scraping-bca7bdc7d3da
canonical_url
https://medium.com/@adrianmnvl/tabular-data-manipulation-and-web-scraping-bca7bdc7d3da
author_url
https://medium.com/@adrianmnvl
status
ok
fetched_at
2026-06-24 18:57:25