Anda di halaman 1dari 25

Data Computational Journalism

Conference Indonesia 2022


29 Juli 2022

FOR

LAKSONO HARI WIWOHO


laksonohw@gmail.com
08118484495
Basic Python untuk

PENT!NG
SUPER web scraping saja
beloem tjoekoep!
• Mustahil tanpa paham HTML
karena ini dasar membangun web
• Python itu powerfull, belajarnya
enggak mudah. Pengamanan web
juga makin ketat. Yakin cuma
untuk scraping kecil-kecilan?
Jangan tanggung, bestie!
DCJI 2022
DON’T
QUIT!!
Mulailah belajar otodidak dari
w3schools.com
HTML CSS Python

DCJI 2022
KENAPA PYTHON ?
• Python merupakan bahasa Apa bedanya dengan R?
pemrograman multifungsi
(web apps, data science, • R difokuskan untuk olah
mesin otomatisasi, hingga data/statistik
bikin game). • Integrasi terbatas dengan
• Bisa integrasi dengan aplikasi/platform lain
aplikasi/platform lain • Butuh memori besar
• Banyak forum & library

DCJI 2022
Demo dikit boleh, yah

Tarik data channel Youtube & Tiktok


From this… …to this!
From this… …to this!
From this… …to this!

JEO Kompas.com
From this… …to this!
Animasi menggunakan Tableau
Scraping

DCJI 2022
Server berisi:
• html, css, js, php, asp, dll…
• jpg, gif, png, mp4, dll… Sisi server
• csv, json, pdf, database, dll…

logo.gif
3
Server mencari file header.png
& merespons
dengan HTTP
gambar2.jpg
response
gambar1.jpg
index.html
Server kirim
default file
Oops, no file HTML
2 Jika file tak ada di 5
Browser server, akan muncul Layout halaman
kirim HTTP pesan eror ditampilkan di browser
1 request
Ketik URL
di browser
4
Browser membaca
kode HTML. Jika ada
Sisi klien gambar atau file
tambahan, browser
minta lagi ke server
DCJI 2022
Target
• Buka https://maindata.web.id/webscraping
– Cermati dulu strukturnya
– Telusuri satu per satu halamannya
– Tentukan bagian mana yang mau ditarik
• Kembali ke halaman utama, klik kanan browser, pilih
Inspect
• Bandingkan isinya dengan View Source

Di sinilah pentingnya memahami HTML sebelum scraping

DCJI 2022
Bagian HL Kenali cangkang atau kontainer dari
berisi 1 artikel masing-masing komponen yang
menjadi target scraping
Bagian HL 2 Pelajari isi dari masing-masing
berisi 2 artikel kontainer tadi dan tentukan bagian
mana yang perlu diambil datanya

Bagian indeks
berisi 5 artikel

DCJI 2022
Mari mulai Python
Instalasi Python
Ada beberapa alternatif instalasi:
1. Unduh dan instal dari www.python.org
2. Cari dan instal Python basic dari Microsoft Store
3. Unduh dan instal aplikasi Anaconda. Jalankan Python
melalui apps Jupyter

Kebutuhan library
1. Requests *  HTTP library
2. JSON *  konversi & kelola data format json
3. BeautifulSoup (bs4)  web scraping
4. Pandas  olah data tabel, ekspor data ke Excel/csv
* biasanya sudah tersedia dalam paket Python
Jika sudah instal aplikasi Python:
1. Buka jendela Command Prompt di PC
2. Ketik python lalu Enter
Panduan selanjutnya
menggunakan
Jika belum instal Python: online console ini
1. Jalankan web browser dan bukalah
research.google.com
2. Muncul boks, klik New notebook di bagian bawah
3. Ubah nama file di kiri atas (Untitled1.ipynb)
4. Klik baris kosong di bawah + Code, mari mulai
menuliskan perintah berikutnya
Basic Python
Menambahkan library
import requests
from bs4 import BeautifulSoup
import pandas

Jika belum menginstal library, Anda harus menginstalnya lebih


dulu di Command Prompt dengan perintah berikut
pip install requests
pip install bs4
pip install pandas

DCJI 2022
Basic Python
Sintax
>>>print("Halo, Ferguso") Ini baris perintah
Halo, Ferguso Ini hasil eksekusi perintah

Indentation
>>>if 5 > 2: >>>if 5 > 2:
... print("Benar, 5 > 2") ...print("Benar, 5 > 2")
Benar, 5 > 2 IndentationError: expected
an indented block

DCJI 2022
Basic Python
Variabel
>>>x = 5 # x bertipe integer (numerik)
>>>y = "Namaku Pitung" # y bertipe string (teks)
>>>nama, usia, kelas = "Pitung", 12, "8C"

>>>X = str(3) # 3 menjadi '3' (string)


>>>Y = int('03') # 3 menjadi 3 (numerik)
>>>Z = float(3) # 3 menjadi 3.0 (desimal)

Nama variabel bersifat case sensitive, tidak boleh pakai spasi,


tidak bisa diawali dengan angka
DCJI 2022
Basic Python
Tipe data
x = "Apa kabar?" # string
y = 20 # integer
z = 20.5 # float
a = ["apel", "brokoli", "caisim"] # list
B = ("apel", "brokoli", "caisim") # tuple
c = range(6) # range
d = {"nama" : "Pitung", "usia" : 36} # dict
_ = {"Andini", "Bambang", "Cahyono"} # set
p = True # boolean (True/False)
k = b"Halo Pitung" # bytes
D = None # NoneType

DCJI 2022
Basic Python
Tipe data
x = "Apa kabar?"
print(x) # bagaimana hasilnya?
Apa kabar?

x = {"nama" : "Pitung", "usia" : 36}


print(x) # bagaimana hasilnya?
{'nama': 'Pitung', 'usia': 36}

DCJI 2022
Basic Python
Komparasi Jenis Operator:
Komparasi
== sama dengan
x = 1
>= lebih besar sama dengan
if x == 1:
print("x = 1") > lebih besar dari
elif x == 2: != tidak sama dengan
print("x = 2")
else: Logika
print("entahlah") and dan
# bagaimana hasilnya? or atau
x = 1 not kebalikan

dan lain-lain
DCJI 2022
Basic Python
Pengulangan (looping)
for x in range(5):
print(x) #bagaimana hasilnya?
0 Urutan indeks SELALU diawali
dengan 0 (nol), bukan 1
1
2
3
4

DCJI 2022
ke sungai cari kepiting,
mari mulai scraping
Praktik Scraping

Bukalah ini dan praktikkan*


https://s.id/dcji-scraping

* Untuk praktik, salinlah kode pada halaman di atas ke Notebook


milik Anda sendiri. Jalankan kode di Notebook Anda, bukan pada
tautan di atas

DCJI 2022

Anda mungkin juga menyukai