← Back to list

Tugas Pemograman dan Data Raya Lanjutan

Dosen Pengampi : Sabo Hermawan, S.Kom, M.Si

Sitiarterina · 2026-04-22 03:43 · 0 claps · 11.3 min read
#digital-bisnis #data-raya #feb #pemograman #teknologi
Open on Medium ↗

Tugas Pemograman dan Data Raya Lanjutan

Dosen Pengampi : Sabo Hermawan, S.Kom, M.Si

Nama : Siti Arterina Annisa Hasanah Bisnis Digital Universitas Negeri Jakarta

A. Mengubah Data Mentah Menjadi Informasi Bermakna dengan Pandas

Jika kita melihat perkembangan dunia digital saat ini, data sudah menjadi aset yang sangat berharga. Namun data mentah pada dasarnya belum memiliki makna jika belum diolah dengan baik. Di Bab 2, saya mulai memahami bahwa proses manipulasi data adalah tahap yang sangat krusial sebelum data tersebut bisa digunakan untuk pengambilan keputusan.

Disinilah peran Pandas menjadi penting. Pandas adalah library Python yang dirancang untuk mengelola data dalam bentuk tabel, mirip excel, tetapi dengan kemampuan yang jauh lebih kompleks dan fleksibel. Dengan Pandas, kita bisa membaca berbagai jenis data seperti CSV, Excel, bahkan data dari database, lalu mengelolahnya dengan cepat dan effisien.

Dengan Series dan DataFrame sebagai konsep dasar. Series merupakan struktur data satu dimensi yang bisa diibaratkan seeperti satu kolom dalam tabel. Sedangkan DataFrame adalah struktur dua dimensi yang terdiri dari banyak Series, sehingga membentuk tabel lengkap dengan baris dan kolom. Indeks ini dapat memiliki berbagai tipe, seperti :

  • Integer (0, 1, 2, …)
  • String (“Jakarta”, “Bandung”, …)
  • Datetime (2024–01–01, 2024–01–02, …)
  • MultiIndex untuk struktur hierarki yang lebih kompleks

Series memiliki beberapa atribut penting yang mendukung pengolahan data. ada yang namanya Index, berfungsi untuk menyimpan label atau penanda setiap baris dan dapat dimodifikasi untuk mengatur sistem pengindeksan. Values berisi data dalam bentuk array NumPy yang memungkinkan pemrposesan numerik lebih cepat. Selain itu, dytpe menunjukan tipe data dari elemen dalam series ( seperti int64 atau float64) yang penting untuk edisiensi, dan size menunjukan jumlah total elemen, termasuk nilai yang kosong (NaN).

Dalam pengunaanya, series mendukung berbagai operasi dasar. Data dapat diakses melalui seleksi berdasarkan indeks, baik menggunakan label maupun posisi. series juga mendukung operasi aritmetika seperti penjumlahan dan pengurangan yang dapat dilakukan langsung antar Series atau dengan nilai skalar. Selain itu, tersedia berbagai fungsi statistik seperti mean, median, sum, min, max dan standar deviasi. Semua operasi ini dilakukan secara vektorisasi, sehingga lebih cepat dan efisien tanpa perlu menggunakan perulangan manual. Dengan memahami dua konsep ini, saya merasa mulai mengerti bagaimana data diorganisir dalam sistem analisis modern.

DataFrame merupakan struktur data utama dalam Pandas yang berbentuk tabel dua dimensi, terdisi dari baris dan kolom seperti spreadsheet. Struktur ini memungkinkan penyimpanan berbagai tipe data dalam satu tempat, sehingga sangat fleksibel untuk analisis data.

Komponen utama DataFrame meliputi index sebagai label baris, columns sebagai nama variabel, dan values sebagai isi datanya. Setiap baris merepresentasikan observasi, sedangkan kolom menunjukkan atribut, dan pertemuannya disebut sel. DataFrame juga dapat dibuat dari berbagai sumber seperti dictionary, NumPy array, maupun file seperti CSV dan Excel, sehingga memudahkan proses pengolahan data secara praktis dan efisien.

Secara fundamental, Series dan DataFrame dibedakan melalui dimensionalitas dan kompleksitas strukturnya, di mana Series merupakan objek satu dimensi yang hanya terdiri dari satu kolom data berindeks, sementara DataFrame adalah struktur dua dimensi yang lebih kompleks karena menggabungkan banyak kolom (Series) dalam satu indeks bersama. DataFrame menawarkan fleksibilitas tinggi untuk analisis data tabular yang luas, sedangkan Series lebih unggul dalam kesederhanaan untuk menangani nilai tunggal atau urutan data mandiri. Secara teknis, DataFrame dapat dipandang sebagai sebuah kamus (dictionary) dari berbagai Series yang memungkinkan operasi data antar-kolom berjalan secara konsisten, efisien, dan terintegrasi.

  1. Metode Seleksi (loc vs iloc):
  • **loc digunakan untuk memilih data berdasarkan label* (nama baris/kolom) dan bersifat inclusive* (batas akhir ikut terbawa).
  • **iloc digunakan untuk memilih data berdasarkan posisi indeks angka* (0, 1, 2, dst.) dan bersifat exclusive* (batas akhir tidak terbawa).

2. Slicing: Teknik untuk mengambil potongan baris atau kolom secara berurutan menggunakan notasi [start:stop:step]. Ini sangat berguna untuk mengekstrak rentang data tertentu dalam jumlah banyak sekaligus.

3. Boolean Masking: Cara memfilter data berdasarkan kondisi logika (seperti Populasi > 100 juta). Sistem akan mengecek setiap baris (True/False) dan hanya menampilkan data yang memenuhi syarat. Teknik ini bisa dikombinasikan dengan operator logika seperti & (AND), | (OR), dan ~ (NOT).

B. Eksplorasi dan Manipulasi Data: Menemukan Pola diBalik Angka

Selain pembersihan data, saya juga belajar bahwa struktur DataFrame sangatlah dinamis; kita bisa dengan mudah melakukan manipulasi kolom, baik menambah kolom baru hasil perhitungan maupun menghapus kolom yang tidak relevan. Fleksibilitas ini semakin terasa saat kita mulai masuk ke operasi statistik dan agregasi. Melalui fungsi seperti groupby(), kita bisa mengelompokkan data berdasarkan kategori tertentu dan melihat tren secara kolektif, seperti menghitung rata-rata populasi per benua hanya dengan satu perintah. Hal ini memberikan gambaran yang jauh lebih informatif dibandingkan hanya melihat angka mentah secara individual.

Lebih jauh lagi, materi ini mengajarkan pentingnya pengorganisasian data melalui sorting dan penggabungan. Saya belajar cara mengurutkan data agar lebih sistematis menggunakan sort_values(), serta bagaimana menyatukan potongan-potongan informasi dari sumber berbeda melalui fungsi concat() dan merge(). Proses menggabungkan data ini sangat krusial karena dalam dunia nyata, informasi seringkali tersebar di beberapa tabel. Dengan menguasai teknik relational join ala SQL di Pandas, saya menyadari bahwa kita bisa membangun dataset yang jauh lebih kaya dan komprehensif untuk mendapatkan insight yang lebih dalam.

Lanjutan dari refleksi sebelumnya, aspek lain yang sangat menarik bagi saya adalah kemampuan Pandas dalam melakukan reshaping data melalui teknik pivot() dan melt(). Saya menyadari bahwa seringkali kita perlu mengubah struktur data dari format "lebar" ke "panjang" atau sebaliknya agar lebih mudah dibaca atau diproses oleh algoritma machine learning. Pemahaman ini diperkaya dengan konsep MultiIndex, yang memungkinkan kita bekerja dengan data multidimensi dalam struktur tabel 2D yang tetap terorganisir. Kemampuan navigasi tingkat lanjut ini memberikan kontrol penuh bagi saya untuk membedah data yang kompleks sekalipun.

Selain urusan teknis pengolahan, Pandas ternyata memiliki integrasi yang sangat kuat untuk visualisasi data. Saya tidak menyangka bahwa hanya dengan satu baris perintah seperti .plot(), kita sudah bisa menghasilkan berbagai jenis grafik mulai dari line chart untuk tren hingga box plot untuk mendeteksi pencilan (outliers). Hal ini sangat mempermudah proses eksplorasi data karena kita bisa langsung melihat pola atau anomali secara visual tanpa harus berpindah ke library lain yang lebih rumit.

Terakhir, saya memahami bahwa meskipun Pandas sangat perkasa, kita tetap harus memperhatikan performa dan limitasi. Untuk data berukuran raksasa (Big Data) yang melebihi kapasitas memori, saya belajar bahwa ada alternatif seperti Polars atau PySpark. Namun, sebagai fondasi dalam ekosistem data science Python, Pandas tetap menjadi pintu gerbang utama dalam alur kerja profesional — mulai dari data loading, preprocessing, hingga tahap persiapan untuk machine learning. Kesadaran akan adanya potensi kesalahan umum seperti SettingWithCopyWarning atau index mismatch membuat saya lebih waspada dalam menulis kode yang efisien dan minim error.

C. Eksplorasi dan Manipulasi Data: Menemukan Pola diBalik Angka

Pada Bab 3, Materi didalamnya membahas dengan detail mengenai fondasi dan praktik Akuisisi Data Web ( Web Scraping ), mulai dari pemahaman teknis struktur halaman hingga batasan etika dan legalitas yang berlaku. Web scraping didefinisikan sebagai proses ekstraksi data dari halaman web, di mana penguasaan terhadap HTML (HyperText Markup Language) dan CSS Selector menjadi kunci utama. HTML berfungsi sebagai tulang punggung web yang menyusun konten dalam struktur hierarkis atau DOM Tree, sementara CSS Selector digunakan sebagai alat presisi untuk menargetkan elemen data yang ingin diambil.

Dalam praktiknya, seorang pelaku scraping menggunakan fitur Inspect Element pada browser untuk membedah struktur situs secara real-time dan mengidentifikasi lokasi data. Setelah struktur dipahami, library Python seperti BeautifulSoup digunakan untuk melakukan parsing atau menguraikan kode HTML tersebut menjadi objek yang mudah dikelola secara otomatis. Namun, kekuatan teknis ini harus dibarengi dengan tanggung jawab moral dan kepatuhan hukum, mengingat aktivitas scraping bersinggungan langsung dengan hak cipta, privasi data, dan stabilitas server pihak lain.

1. Struktur HTML dan CSS Selector

  • HTML sebagai Fondasi: HTML adalah bahasa markup standar untuk menyusun halaman web menggunakan elemen yang disebut tag. Struktur ini bersifat hierarkis (seperti pohon), yang memudahkan navigasi data.

Komponen Elemen:

  • Tag: Elemen dasar seperti <div> (kontainer), <p> (paragraf), dan <a> (hyperlink).
  • Class: Atribut untuk mengelompokkan banyak elemen dengan karakteristik serupa.

  • ID: Atribut unik yang hanya boleh muncul satu kali dalam satu halaman untuk identifikasi spesifik.

  • CSS Selector: Alat utama untuk memilih elemen. Terdiri dari Selector Tag, Selector Class (menggunakan titik .), Selector ID (menggunakan pagar #), dan Selector Gabungan untuk target yang lebih kompleks. 1. Selector Tag Memilih semua elemen dengan tag tertentu. Contoh: div, p, h1 akan memilih semua elemen div, paragraf, atau heading 1. 2. Selector Class Memilih elemen berdasarkan class menggunakan titik (.). Contoh: .artikel akan memilih semua elemen dengan class=”artikel”. 3. Selector ID Memilih elemen berdasarkan ID menggunakan tanda pagar (#). Contoh: #judul akan memilih elemen dengan id=”judul”. 4. 4. Selector Gabungan Kombinasi selector untuk target lebih spesifik. Contoh: div.artikel > p memilih paragraf yang merupakan anak langsung dari div dengan class artikel.
  • Visualisasi Struktur HTML dan CSS Selektor
  1. Root HTML, Elemen html sebagai akar dolumen
  2. Container, div.container membungkus konten halaman
  3. Head & Body, head dan body sebagai cabang utama
  4. Artikel & Paragraf, dua div.artikel masing-masing dengan p.text
  • Referensi Struktur HTML dan CSS Selector Web Scraping atau akuisisi data web merupakan teknik krusial dalam dunia pemrograman dan data raya untuk mengumpulkan informasi secara otomatis dari internet. Proses ini sangat bergantung pada pemahaman mendalam tentang HTML sebagai kerangka halaman web dan CSS Selector sebagai instrumen navigasi untuk menentukan lokasi data yang tepat di dalam struktur hierarkis dokumen atau DOM tree.

2. Teknik Inspect Element pada Browser

Inspect Element adalah fitur bawaan pada browser modern yang digunakan untuk melihat, menganalisis, dan mencoba mengubah struktur HTML serta CSS suatu halaman web secara langsung. Fitur ini tersedia di berbagai browser seperti Google Chrome, Mozilla Firefox, Microsoft Edge, Safari, dan Opera melalui Developer Tools.

Dalam konteks web scraping, Inspect Element sangat penting karena membantu kita memahami struktur halaman (DOM), menemukan elemen target, serta menentukan selector yang tepat. Perlu diingat, semua perubahan yang dilakukan hanya bersifat lokal di browser dan tidak mempengaruhi data asli di server.

Cara Membuka Inspect Element

Ada beberapa cara untuk mengakses Inspect Element:

  • Klik kanan pada elemen → pilih Inspect
  • Shortcut Windows: Ctrl + Shift + I
  • Shortcut Mac: Cmd + Option + I
  • Melalui menu browser → Developer Tools

Shortcut keyboard biasanya menjadi cara tercepat, terutama saat sering digunakan.

Panel Utama Inspect Element

Developer Tools memiliki beberapa panel utama dengan fungsi berbeda:

  • Elements / Inspector → melihat struktur HTML dan CSS halaman
  • Console → menjalankan JavaScript serta melihat error atau log
  • Network → memantau request seperti API, gambar, dan data lainnya
  • Sources → melihat file sumber seperti HTML, CSS, dan JavaScript

Fungsi Inspect Element dalam Analisis Web

Inspect Element berperan sebagai jembatan antara tampilan visual website dan kode di baliknya. Beberapa kegunaannya:

  • Menyorot elemen untuk melihat tag, class, dan ID
  • Melihat dan memahami style CSS yang diterapkan
  • Menganalisis struktur hierarki (parent-child)
  • Melakukan modifikasi sementara pada HTML/CSS untuk eksperimen

Menemukan Selector untuk Web Scraping

Untuk mengambil data dari website, kita perlu menentukan selector yang tepat. Berikut langkah-langkahnya:

  1. Buka halaman target di browser
  2. Klik kanan pada data yang ingin diambil → pilih Inspect
  3. Perhatikan tag, class, atau ID elemen
  4. Tentukan selector CSS yang sesuai
  5. Uji selector di Console

Tips memilih selector:

  • Gunakan class atau atribut yang deskriptif dan stabil
  • Hindari selector yang terlalu panjang atau rapuh
  • Perhatikan pola berulang pada data
  • Gunakan kombinasi selector jika diperlukan

Selector yang baik adalah yang cukup spesifik untuk mengambil data yang tepat, tetapi tidak terlalu bergantung pada struktur yang mudah berubah.

Referensi Belajar

Untuk memperdalam pemahaman, kamu bisa menggunakan:

  • Dokumentasi resmi Chrome DevTools
  • MDN Web Docs (Firefox Developer Tools)
  • CSS Selector Tester untuk latihan dan pengujian selector

3. Ekstraksi Data Web Statis dengan BeautifulSoup

Setelah memahami bagaimana data diolah dengan Pandas dan bagaimana struktur web bekerja, langkah selanjutnya yang sangat krusial adalah memahami cara mengambil data tersebut secara otomatis menggunakan BeautifulSoup. Jika diibaratkan, jika HTML adalah hutan belantara kode, maka BeautifulSoup adalah kompas dan alat tebas yang memungkinkan kita menemukan “buah” informasi yang kita cari dengan sangat efisien.

1. Definisi dan Logika Kerja: Mengubah Kekacauan Menjadi Struktur BeautifulSoup adalah library Python open-source yang dirancang khusus untuk membedah (parsing) dokumen HTML dan XML. Saya menyadari bahwa kekuatan utama library ini terletak pada kemampuannya mengubah markup web yang kompleks menjadi sebuah Python Object Tree (sering disebut DOM Tree) yang mudah dinavigasi.

Logika kerjanya sangat sistematis, mengikuti empat tahapan utama:

  • Dapatkan HTML: Kita memulai dengan melakukan HTTP request ke URL target (biasanya menggunakan library requests) hingga mendapatkan status 200 (sukses).
  • Parsing: BeautifulSoup kemudian memuat kode HTML mentah tersebut dan menguraikannya menggunakan parser seperti lxml atau html5lib.
  • Cari Elemen: Kita menggunakan metode pencarian seperti find() atau select() dengan bantuan CSS Selector untuk menemukan koordinat data.
  • Ekstrak Data: Terakhir, kita mengambil teks atau atribut spesifik, lalu membersihkannya untuk disimpan ke dalam format yang lebih bermakna.

2. Keunggulan: Toleransi dan Kemudahan Navigasi Satu hal yang membuat saya terkesan adalah betapa “pemaafnya” BeautifulSoup terhadap kode HTML yang tidak sempurna atau berantakan. Library ini memiliki toleransi tinggi terhadap error struktur web. Selain itu, navigasi DOM-nya sangat fleksibel; kita bisa berpindah dari elemen “induk” ke “anak” atau antar “saudara” (siblings) dengan sangat intuitif. Penggunaan CSS Selector dan regex di dalamnya membuat proses pencarian elemen menjadi sangat presisi, layaknya menggunakan fitur search yang sangat canggih pada ribuan baris kode.

3. Kelebihan Ekstraksi Data Statis Mengapa kita memilih metode ini? Berdasarkan materi yang saya pelajari, ekstraksi data dari web statis memiliki beberapa keunggulan kompetitif:

  • Cepat dan Efisien: Tidak memerlukan rendering JavaScript yang berat, sehingga konsumsi sumber daya minimal — sangat ideal untuk scraping skala besar.
  • Stabilitas Tinggi: Selama pemilik situs tidak mengubah struktur HTML-nya, selector yang kita buat akan tetap bekerja secara konsisten.
  • Implementasi Sederhana: Kita tidak perlu menggunakan headless browser yang kompleks; cukup dengan library HTTP client dan BeautifulSoup, ekstraksi sudah bisa dilakukan.

4. Batasan dan Solusi Cerdas Namun, saya juga memahami bahwa BeautifulSoup memiliki keterbatasan. Ia tidak bisa mengeksekusi JavaScript, sehingga data yang muncul secara dinamis (seperti hasil scroll atau klik) tidak akan terbaca. Untuk mengatasi ini, saya belajar bahwa kita perlu mengombinasikannya dengan alat lain seperti Selenium atau Playwright untuk merender halaman terlebih dahulu sebelum di-parsing oleh BeautifulSoup.

Selain itu, tantangan seperti struktur web yang berubah-ubah atau tidak adanya fitur interaksi menuntut kita untuk selalu membangun selector yang kuat (robust) dan melakukan monitoring rutin. Dengan memahami batasan ini, saya merasa lebih siap untuk menentukan strategi akuisisi data yang paling efektif sesuai dengan jenis website yang dihadapi.

3. Etika dan Batasan Legal: Menjalankan Teknologi dengan Tanggung Jawab

Selain aspek teknis yang sudah saya pelajari, bagian ini membuka mata saya bahwa kekuatan dalam mengambil data (web scraping) harus dibarengi dengan tanggung jawab moral dan kepatuhan hukum. Web scraping bukan sekadar masalah “bisa” atau “tidak bisa” secara kode, tetapi “boleh” atau “tidak boleh” secara etis dan legal.

1. Prinsip Etika: Menghormati Ekosistem Digital Dalam praktiknya, saya memahami bahwa ada tiga pilar utama etika yang harus dijunjung tinggi:

  • Menghormati Hak Pemilik Website: Kita harus mengakui bahwa konten web adalah hasil karya intelektual. Scraping harus dilakukan dengan mempertimbangkan hak cipta dan kepentingan bisnis pemilik situs.
  • Tidak Membebani Server: Ini adalah kewajiban teknis sekaligus etis. Kita harus menghindari permintaan berlebihan (spamming requests) yang bisa menyebabkan server overload atau bahkan crash. Memberikan jeda (delay) dan membatasi laju permintaan (rate limiting) adalah bentuk sopan santun kita sebagai scraper.
  • Penggunaan Data yang Bertanggung Jawab: Data yang telah diekstrak harus digunakan untuk tujuan yang sah (legitimate). Saya menyadari bahwa menyebarkan informasi pribadi atau merugikan pihak lain melalui data hasil scraping adalah pelanggaran privasi yang serius.

2. Batasan Legal: Payung Hukum di Indonesia dan Dunia Saya juga mempelajari bahwa aktivitas ini diatur oleh regulasi yang sangat ketat. Di Indonesia, payung hukum utamanya adalah UU ITE №19 Tahun 2016, di mana Pasal 30–32 mengatur bahwa akses ilegal ke sistem elektronik — termasuk scraping tanpa izin — bisa dianggap pelanggaran hukum dengan ancaman pidana dan denda yang besar. Selain itu, ada UU №27 Tahun 2022 tentang Pelindungan Data Pribadi yang melarang pengumpulan data tanpa persetujuan subjeknya.

Di ranah internasional, terdapat regulasi seperti GDPR (General Data Protection Regulation) di Eropa yang melindungi data pribadi warga negara Uni Eropa, serta CFAA (Computer Fraud and Abuse Act) di Amerika Serikat. Kita juga harus selalu memperhatikan Terms of Service (ToS) dari setiap website, karena melanggar aturan internal situs tersebut dapat berakibat hukum bagi kita.

3. Visualisasi Proses Scraping yang Etis Untuk memastikan proses ekstraksi data berjalan di jalur yang benar, saya merangkum alur kerja yang etis sebagai berikut:

  1. Tinjau Kebijakan: Langkah pertama bukan menulis kode, melainkan mengecek file robots.txt dan halaman ToS website target.
  2. Batasi Laju: Mengatur kecepatan pengambilan data agar tidak mengganggu performa server pemilik web.
  3. Ambil Secukupnya: Fokus hanya pada data yang benar-benar dibutuhkan untuk riset atau analisis, tidak mengambil seluruh database tanpa alasan.
  4. Simpan Aman: Melindungi data yang sudah diambil dengan enkripsi dan kebijakan akses yang ketat agar tidak bocor atau disalahgunakan.

Melalui materi ini, saya menyadari bahwa menjadi seorang analis data yang profesional di bidang Bisnis Digital berarti harus mampu menyeimbangkan antara efisiensi teknologi dengan integritas moral. Pemahaman mengenai etika ini memastikan bahwa inovasi yang saya kembangkan nantinya tetap berdiri di atas landasan hukum yang kuat.

Referensi Hukum Terkait:


메타데이터
post_id
8ca9ae44dccb
slug
tugas-pemograman-dan-data-raya-lanjutan-8ca9ae44dccb
url
https://medium.com/@sitiarterina26/tugas-pemograman-dan-data-raya-lanjutan-8ca9ae44dccb
canonical_url
https://medium.com/@sitiarterina26/tugas-pemograman-dan-data-raya-lanjutan-8ca9ae44dccb
author_url
https://medium.com/@sitiarterina26
status
ok
fetched_at
2026-06-14 11:28:49