DMBG #4 Responsi
TAHAPAN WEB CRAWLING BERITA DETIK.COM MENGGUNAKAN R
1. Instalasi dan memuat library yang diperlukan
# Pastikan Anda menginstal paket-paket ini jika belum ada
if (!require("rvest")) install.packages("rvest")
## Loading required package: rvest
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Loading required package: stringr
## Loading required package: lubridate
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
2. Mendefinisikan URL artikel yang akan di-crawl
url <- "https://news.detik.com/internasional/d-7862500/drone-rusia-kembali-hantam-ibu-kota-ukraina-12-orang-luka"
url
## [1] "https://news.detik.com/internasional/d-7862500/drone-rusia-kembali-hantam-ibu-kota-ukraina-12-orang-luka"
3. Membaca konten HTML dari URL
## {html_document}
## <html lang="id-ID">
## [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ...
## [2] <body>\n <div class="sticky-share has-class">\n <div class="sti ...
## [3] <script type="text/javascript" src="https://cdn.detik.net.id/assets/js/zo ...
## [4] <script type="text/javascript" src="https://cdn.detik.net.id/assets/js/li ...
## [5] <script type="text/javascript" src="https://cdn.detik.net.id/assets/js/if ...
4. Ekstraksi elemen-elemen berita
4.1 Mengekstrak judul artikel
## [1] "Drone Rusia Kembali Hantam Ibu Kota Ukraina, 12 Orang Luka"
4.2 Mengekstrak waktu publikasi
waktu_publikasi <- halaman %>%
html_element("div.detail__date") %>%
html_text() %>%
str_trim()
waktu_publikasi
## [1] "Kamis, 10 Apr 2025 13:45 WIB"
4.3 Mengekstrak nama penulis
penulis <- halaman %>%
html_element(".detail__author") %>%
html_text() %>%
str_trim() %>%
str_replace("^.*?-\\s*", "") # Menghapus prefix seperti "Jakarta -"
penulis
## [1] "detikNews"
4.4 Mengekstrak konten artikel
konten <- halaman %>%
html_elements(".detail__body-text") %>%
html_text() %>%
paste(collapse = "\n\n") %>%
str_trim()
konten
## [1] "Jakarta - Serangan drone-drone Rusia kembali menghantam ibu kota Ukraina, Kyiv, dan kota Mykolaiv di Ukraina selatan. Otoritas Ukraina mengatakan bahwa serangan tersebut melukai sedikitnya 12 orang.Dilansir Reuters dan Al-Arabiya, Kamis (10/4/2025), dua wanita terluka di Kyiv akibat serangan drone Rusia pada Rabu (9/4) malam waktu setempat itu. Drone-drone tersebut juga memicu kebakaran di fasilitas penyimpanan dan merusak bangunan tempat tinggal di Kyiv, kata administrasi militer kota Kyiv.Pihak berwenang mencatat 30 drone di wilayah udara di atas ibu kota, 16 di antaranya hancur dan sisanya meninggalkan wilayah udara atau \"hilang.\"\r\n@import url(\"https://cdnstatic.detik.com/live/_rmbassets/scrollpage/scrollpage.css\");\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n googletag.cmd.push(function() { googletag.display('div-gpt-ad-1572507980488-0'); });\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nSCROLL TO CONTINUE WITH CONTENT\r\n\r\n\r\n\r\nBaca juga: Trump Ancam Iran, Rusia Bilang Dunia Mulai Lelah!Serangan itu juga melukai 10 orang di kota Mykolaiv, kata gubernur wilayah tersebut, Vitalii Kim.Serangan drone Rusia itu juga merusak sembilan gedung apartemen, 30 garasi, dan sebuah gedung administrasi, tambah Kim.\r\n\r\nADVERTISEMENT\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n (function(w,q){w[q]=w[q]||[];w[q].push([\"_mgc.load\"])})(window,\"_mgq\"); \r\n \r\n\r\n\r\n\r\nDalam serangan-serangannya, Rusia membantah menargetkan warga sipil, tetapi ribuan orang telah tewas dan terluka dalam invasinya ke Ukraina.Wilayah lainnya yang dihantam serangan drone Rusia adalah Kharkiv, yang berbatasan dengan Rusia. Seorang pejabat setempat melaporkan seorang pria berusia 65 tahun dan seorang wanita berusia 50 tahun mengalami luka-luka dalam serangan yang menghantam perusahaan sipil setempat.Rusia terus membombardir Ukraina, meskipun pemerintahan Presiden AS Donald Trump telah menggelar beberapa putaran perundingan dengan para pejabat Ukraina dan Rusia, dengan harapan dapat menghentikan pertempuran. Sejauh ini, upaya pemerintahan Trump belum membuahkan hasil yang nyata.Baca juga: Zelensky: Rusia Seret China ke Dalam Perang UkrainaLihat Video 'Drone Tempur Rusia Hantam Apartemen di Dnipro, 15 Terluka':[Gambas:Video 20detik] \r\n\t\t\r\n (ita/ita)\r\n \r\n \r\n \t\t\t\tdrone rusia\t\t\t\trusia\t\t\t\tukraina \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Hoegeng Awards 2025\r\n \r\n \r\n Baca kisah inspiratif kandidat polisi teladan di sini\r\n \r\n \r\n \r\n \r\n Selengkapnya"
4.5 Mengekstrak tag atau kategori (jika ada)
## [1] "Internasional"
4.6 Mengekstrak gambar utama (jika perlu)
## [1] "https://akcdn.detik.net.id/community/media/visual/2024/04/23/perang-dengan-ukraina-masih-bergejolak-rusia-kembangkan-drone-militer-3_169.jpeg?w=700&q=90"
5. Menyimpan hasil ekstraksi ke dalam data frame
6. Tampilkan hasil ekstraksi
## judul
## 1 Drone Rusia Kembali Hantam Ibu Kota Ukraina, 12 Orang Luka
## waktu_publikasi penulis kategori
## 1 Kamis, 10 Apr 2025 13:45 WIB detikNews Internasional
## url
## 1 https://news.detik.com/internasional/d-7862500/drone-rusia-kembali-hantam-ibu-kota-ukraina-12-orang-luka
## url_gambar
## 1 https://akcdn.detik.net.id/community/media/visual/2024/04/23/perang-dengan-ukraina-masih-bergejolak-rusia-kembangkan-drone-militer-3_169.jpeg?w=700&q=90
## konten
## 1 Jakarta - Serangan drone-drone Rusia kembali menghantam ibu kota Ukraina, Kyiv, dan kota Mykolaiv di Ukraina selatan. Otoritas Ukraina mengatakan bahwa serangan tersebut melukai sedikitnya 12 orang.Dilansir Reuters dan Al-Arabiya, Kamis (10/4/2025), dua wanita terluka di Kyiv akibat serangan drone Rusia pada Rabu (9/4) malam waktu setempat itu. Drone-drone tersebut juga memicu kebakaran di fasilitas penyimpanan dan merusak bangunan tempat tinggal di Kyiv, kata administrasi militer kota Kyiv.Pihak berwenang mencatat 30 drone di wilayah udara di atas ibu kota, 16 di antaranya hancur dan sisanya meninggalkan wilayah udara atau "hilang."\r\n@import url("https://cdnstatic.detik.com/live/_rmbassets/scrollpage/scrollpage.css");\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n googletag.cmd.push(function() { googletag.display('div-gpt-ad-1572507980488-0'); });\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nSCROLL TO CONTINUE WITH CONTENT\r\n\r\n\r\n\r\nBaca juga: Trump Ancam Iran, Rusia Bilang Dunia Mulai Lelah!Serangan itu juga melukai 10 orang di kota Mykolaiv, kata gubernur wilayah tersebut, Vitalii Kim.Serangan drone Rusia itu juga merusak sembilan gedung apartemen, 30 garasi, dan sebuah gedung administrasi, tambah Kim.\r\n\r\nADVERTISEMENT\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n (function(w,q){w[q]=w[q]||[];w[q].push(["_mgc.load"])})(window,"_mgq"); \r\n \r\n\r\n\r\n\r\nDalam serangan-serangannya, Rusia membantah menargetkan warga sipil, tetapi ribuan orang telah tewas dan terluka dalam invasinya ke Ukraina.Wilayah lainnya yang dihantam serangan drone Rusia adalah Kharkiv, yang berbatasan dengan Rusia. Seorang pejabat setempat melaporkan seorang pria berusia 65 tahun dan seorang wanita berusia 50 tahun mengalami luka-luka dalam serangan yang menghantam perusahaan sipil setempat.Rusia terus membombardir Ukraina, meskipun pemerintahan Presiden AS Donald Trump telah menggelar beberapa putaran perundingan dengan para pejabat Ukraina dan Rusia, dengan harapan dapat menghentikan pertempuran. Sejauh ini, upaya pemerintahan Trump belum membuahkan hasil yang nyata.Baca juga: Zelensky: Rusia Seret China ke Dalam Perang UkrainaLihat Video 'Drone Tempur Rusia Hantam Apartemen di Dnipro, 15 Terluka':[Gambas:Video 20detik] \r\n\t\t\r\n (ita/ita)\r\n \r\n \r\n \t\t\t\tdrone rusia\t\t\t\trusia\t\t\t\tukraina \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Hoegeng Awards 2025\r\n \r\n \r\n Baca kisah inspiratif kandidat polisi teladan di sini\r\n \r\n \r\n \r\n \r\n Selengkapnya
7. Simpan hasil ke file CSV (opsional)
8. Analisis tambahan (opsional)
8.1 Hitung jumlah kata dalam artikel
## Jumlah kata dalam artikel: 269
8.2 Ekstrak tanggal dalam format yang bisa dianalisis
8.3 Ekstrak kata kunci berdasarkan frekuensi (contoh sederhana)
kata_kata <- unlist(str_split(tolower(konten), "\\s+|\\.|,|;|:|\\(|\\)|\\[|\\]|-"))
kata_kata <- kata_kata[nchar(kata_kata) > 3] # Hapus kata-kata yang terlalu pendek
frekuensi_kata <- table(kata_kata)
kata_kunci <- sort(frekuensi_kata, decreasing = TRUE)[1:10]
print("Kata kunci berdasarkan frekuensi:")
## [1] "Kata kunci berdasarkan frekuensi:"
## kata_kata
## rusia drone serangan ukraina juga kota dalam kyiv
## 13 9 7 7 5 5 4 4
## wilayah yang
## 4 4
TAHAPAN WEB CRAWLING BERITA LIPUTAN6.COM MENGGUNAKAN R
1. Instalasi dan memuat library yang diperlukan
# Pastikan Anda menginstal paket-paket ini jika belum ada
if (!require("rvest")) install.packages("rvest")
if (!require("dplyr")) install.packages("dplyr")
if (!require("stringr")) install.packages("stringr")
if (!require("lubridate")) install.packages("lubridate")
# Memuat library
library(rvest) # Untuk web scraping
library(dplyr) # Untuk manipulasi data
library(stringr) # Untuk manipulasi string
library(lubridate) # Untuk manipulasi tanggal
2. Mendefinisikan URL artikel yang akan di-crawl
3. Membaca konten HTML dari URL
4. Ekstraksi elemen-elemen berita
4.1 Mengekstrak judul artikel
## [1] "Daftar Saham Tercuan saat IHSG Melambung 5,02 Persen"
4.2 Mengekstrak waktu publikasi
waktu_publikasi <- halaman %>%
html_element(".read-page--header--author__datetime") %>%
html_text(trim = TRUE)
waktu_publikasi
## [1] "Diterbitkan 10 Apr 2025, 13:24 WIB"
4.3 Mengekstrak nama penulis
penulis <- halaman %>%
html_element(".read-page--header--author__name") %>%
html_text(trim = TRUE)
penulis
## [1] "Agustina Melani"
4.4 Mengekstrak konten artikel
konten <- halaman %>%
html_elements(".article-content-body__item-content p") %>%
html_text(trim = TRUE) %>%
paste(collapse = "\n\n")
konten
## [1] "Liputan6.com, Jakarta - Laju Indeks Harga Saham Gabungan (IHSG) melesat signifikan hingga penutupan perdagangan sesi pertama, Kamis (10/4/2025). Penguatan IHSG sentuh 5 persen usai Presiden Amerika Serikat (AS) Donald Trump tunda penerapan tarif impor selama 90 hari.\n\nMengutip data RTI, IHSG ditutup melonjak 5,02 persen ke posisi 6.267,85. Indeks LQ45 mendaki 5,76 persen ke posisi 707,94. Seluruh indeks saham acuan melonjak.\n\nBaca Juga\n\nPada sesi pertama, IHSG menyentuh level tertinggi 6.310,82 dan level terendah 6.188,67. Sebanyak 546 saham melonjak dan 94 saham melemah. 147 saham diam di tempat. Total frekuensi perdagangan 763.911 kali dengan volume perdagangan saham 14,2 miliar saham. Nilai transaksi harian Rp 9,7 triliun. Posisi dolar Amerika Serikat terhadap rupiah di kisaran 16.769.\n\nAdvertisement\n\nSeluruh sektor saham menghijau. Sektor saham basic menguat 8,92 persen, dan catat penguatan terbesar. Disusul sektor saham consumer siklikal mendaki 6,28 persen dan sektor saham infrastruktur bertambah 5,82 persen.\n\nSementara itu, sektor saham energi menanjak 5,59 persen, sektor saham industri bertambah 3,09 persen, sektor saham consumer nonsiklikal menguat 4,49 persen. Sektor saham kesehatan bertambah 2,57 persen, sektor saham keuangan mendaki 3,36 persen, sektor saham properti melesat 4,7 persen. Lalu sektor saham teknologi melompat 4,25 persen dan sektor saham transportasi menanjak 3,49 persen.\n\nPada sesi pertama perdagangan, saham INDY melambung 11,6 persen ke posisi Rp 1.010 per saham. Harga saham INDY dibuka naik 60 poin ke posisi Rp 965 per saham. Harga saham INDY berada di level tertinggi Rp 1.030 dan level terendah Rp 935 per saham. Total frekuensi perdagangan 2.850 kali dengan volume perdagangan 222.328 saham. Nilai transaksi Rp 21,6 miliar.\n\nSaham ITMG meroket 2,52 persen ke posisi Rp 23.350 per saham. Harga saham ITMG dibuka naik ke posisi Rp 23.300 per saham. Saham ITMG berada di level tertinggi Rp 23.600 dan level terendah Rp 23.075 per saham. Total frekuensi perdagangan 3.635 kali dengan volume perdagangan 21.512 saham. Nilai transaksi Rp 50,1 miliar.\n\nHarga saham AKRA melesat 18,89 persen ke posisi Rp 1.070 per saham. Saham AKRA dibuka naik 60 poin ke posisi Rp 960 per saham. Saham AKRA berada di level tertinggi Rp 1.085 dan level terendah Rp 960 per saham. Total frekuensi perdagangan 6.622 kali dengan volume perdagangan 346.894 saham. Nilai transaksi Rp 35,3 miliar.\n\nSaham HRUM naik 8,26 persen ke posisi Rp 655 per saham. Harga saham HRUM dibuka menguat 20 poin ke posisi Rp 625 per saham. Harga saham HRUM berada di level tertinggi Rp 670 dan level terendah Rp 620 per saham. Total frekuensi perdagangan 1.915 kali dengan volume perdagangan 123.543 saham. Nilai transaksi Rp 8,6 miliar.\n\n\n\n\n\nBursa saham Asia Pasifik menguat seiring harapan lebih banyak stimulus setelah Trump meningkatkan tarif terhadap China menjadi 125 persen. Para pemimpin negara itu bersiap untuk bertemu pada Kamis pekan ini untuk membahas langkah-langkah ekonomi tambahan.\n\nPerubahan sikap Trump terjadi ketika skala aksi jual di pasar obligasi pemerintah dan tekanan keuangan yang meningkat selama berhari-hari mengguncang investor dan memicu peringatan resesi dari CEO JPMorgan Jamie Dimon.\n\nβKami pikir Trump mengalah, dan kemungkinan skenario βkerusakan terkendaliβ meningkat. Kami berharap Eropa dan Asia akan ikuti reli AS,β ujar Senior Macro Strategist Lombard Odier Ltd, Homin Lee, demikian mengutip dari Yahoo Finance.\n\nSetelah USD 10 triliun menguap dari bursa saham global dan obligasi pemerintah AS anjlok, Trump mengumumkan jeda 90 hari terhadap tarif timbal balik yang berlaku pada puluhan mitra dagang setelah tengah malam waktu setempat.\n\nHal itu setelah China membalas dan mengatakan akan menaikkan bea masuk terhadap barang AS menjadi 84 persen.\n\nNegara-negara yang terkena bea masuk timbal balik yang lebih tinggi yang mulai berlaku pada Rabu sekarang akan dikenakan pajak pada tarif dasar 10% yang sebelumnya diterapkan pada negara-negara lain, kecuali Tiongkok, menurut seorang pejabat Gedung Putih.\n\n\n\nTarif baru mulai berlaku pada pukul 12:01 dini hari waktu Washington pada 10 April, menurut panduan bea cukai yang dirilis pada Rabu malam, dan pungutan sebesar 125% pada Tiongkok menetapkan tarif tersebut mencakup Hong Kong dan Makau. \"Investor di seluruh Asia dan sekitarnya bernapas lega,\" kata Ekonom HSBC Holdings Plc, Frederic Neumann.\n\n\"Penundaan tarif timbal balik oleh AS memberi lebih banyak waktu untuk negosiasi. Bagi ekonomi Asia yang berpusat pada ekspor, hal ini sangat penting, mengingat dampak pertumbuhan yang akan ditimbulkan oleh tarif tinggi AS,β ia menambahkan.\n\nSementara ekuitas Tiongkok menguat karena ekspektasi stimulus, yuan dalam negeri jatuh ke level terlemah sejak 2007. Taruhan pada langkah pelonggaran moneter oleh Bank Sentral China untuk mendukung ekonomi juga membebani mata uang tersebut.\n\nKurang dari satu jam sebelum pernyataan Trump, penjualan obligasi 10 tahun senilai USD 39 miliar menarik permintaan yang baik, meskipun ada kekhawatiran oleh beberapa pihak di pasar kebijakannya dapat menghalangi pembeli asing. Hal itu menyusul reaksi suam-suam kuku terhadap penjualan obligasi tiga tahun pada Selasa, dan menggambarkan latar belakang yang lebih cerah untuk lelang obligasi 30 tahun pada Kamis."
5. Menyimpan hasil ekstraksi ke dalam data frame
6. Tampilkan hasil ekstraksi
## judul
## 1 Daftar Saham Tercuan saat IHSG Melambung 5,02 Persen
## waktu_publikasi penulis kategori
## 1 Diterbitkan 10 Apr 2025, 13:24 WIB Agustina Melani Saham
## url
## 1 https://www.liputan6.com/saham/read/5990266/daftar-saham-tercuan-saat-ihsg-melambung-502-persen
## url_gambar
## 1 https://cdn-production-assets-kly.akamaized.net/assets/images/blank.png
## konten
## 1 Liputan6.com, Jakarta - Laju Indeks Harga Saham Gabungan (IHSG) melesat signifikan hingga penutupan perdagangan sesi pertama, Kamis (10/4/2025). Penguatan IHSG sentuh 5 persen usai Presiden Amerika Serikat (AS) Donald Trump tunda penerapan tarif impor selama 90 hari.\n\nMengutip data RTI, IHSG ditutup melonjak 5,02 persen ke posisi 6.267,85. Indeks LQ45 mendaki 5,76 persen ke posisi 707,94. Seluruh indeks saham acuan melonjak.\n\nBaca Juga\n\nPada sesi pertama, IHSG menyentuh level tertinggi 6.310,82 dan level terendah 6.188,67. Sebanyak 546 saham melonjak dan 94 saham melemah. 147 saham diam di tempat. Total frekuensi perdagangan 763.911 kali dengan volume perdagangan saham 14,2 miliar saham. Nilai transaksi harian Rp 9,7 triliun. Posisi dolar Amerika Serikat terhadap rupiah di kisaran 16.769.\n\nAdvertisement\n\nSeluruh sektor saham menghijau. Sektor saham basic menguat 8,92 persen, dan catat penguatan terbesar. Disusul sektor saham consumer siklikal mendaki 6,28 persen dan sektor saham infrastruktur bertambah 5,82 persen.\n\nSementara itu, sektor saham energi menanjak 5,59 persen, sektor saham industri bertambah 3,09 persen, sektor saham consumer nonsiklikal menguat 4,49 persen. Sektor saham kesehatan bertambah 2,57 persen, sektor saham keuangan mendaki 3,36 persen, sektor saham properti melesat 4,7 persen. Lalu sektor saham teknologi melompat 4,25 persen dan sektor saham transportasi menanjak 3,49 persen.\n\nPada sesi pertama perdagangan, saham INDY melambung 11,6 persen ke posisi Rp 1.010 per saham. Harga saham INDY dibuka naik 60 poin ke posisi Rp 965 per saham. Harga saham INDY berada di level tertinggi Rp 1.030 dan level terendah Rp 935 per saham. Total frekuensi perdagangan 2.850 kali dengan volume perdagangan 222.328 saham. Nilai transaksi Rp 21,6 miliar.\n\nSaham ITMG meroket 2,52 persen ke posisi Rp 23.350 per saham. Harga saham ITMG dibuka naik ke posisi Rp 23.300 per saham. Saham ITMG berada di level tertinggi Rp 23.600 dan level terendah Rp 23.075 per saham. Total frekuensi perdagangan 3.635 kali dengan volume perdagangan 21.512 saham. Nilai transaksi Rp 50,1 miliar.\n\nHarga saham AKRA melesat 18,89 persen ke posisi Rp 1.070 per saham. Saham AKRA dibuka naik 60 poin ke posisi Rp 960 per saham. Saham AKRA berada di level tertinggi Rp 1.085 dan level terendah Rp 960 per saham. Total frekuensi perdagangan 6.622 kali dengan volume perdagangan 346.894 saham. Nilai transaksi Rp 35,3 miliar.\n\nSaham HRUM naik 8,26 persen ke posisi Rp 655 per saham. Harga saham HRUM dibuka menguat 20 poin ke posisi Rp 625 per saham. Harga saham HRUM berada di level tertinggi Rp 670 dan level terendah Rp 620 per saham. Total frekuensi perdagangan 1.915 kali dengan volume perdagangan 123.543 saham. Nilai transaksi Rp 8,6 miliar.\n\n\n\n\n\nBursa saham Asia Pasifik menguat seiring harapan lebih banyak stimulus setelah Trump meningkatkan tarif terhadap China menjadi 125 persen. Para pemimpin negara itu bersiap untuk bertemu pada Kamis pekan ini untuk membahas langkah-langkah ekonomi tambahan.\n\nPerubahan sikap Trump terjadi ketika skala aksi jual di pasar obligasi pemerintah dan tekanan keuangan yang meningkat selama berhari-hari mengguncang investor dan memicu peringatan resesi dari CEO JPMorgan Jamie Dimon.\n\nβKami pikir Trump mengalah, dan kemungkinan skenario βkerusakan terkendaliβ meningkat. Kami berharap Eropa dan Asia akan ikuti reli AS,β ujar Senior Macro Strategist Lombard Odier Ltd, Homin Lee, demikian mengutip dari Yahoo Finance.\n\nSetelah USD 10 triliun menguap dari bursa saham global dan obligasi pemerintah AS anjlok, Trump mengumumkan jeda 90 hari terhadap tarif timbal balik yang berlaku pada puluhan mitra dagang setelah tengah malam waktu setempat.\n\nHal itu setelah China membalas dan mengatakan akan menaikkan bea masuk terhadap barang AS menjadi 84 persen.\n\nNegara-negara yang terkena bea masuk timbal balik yang lebih tinggi yang mulai berlaku pada Rabu sekarang akan dikenakan pajak pada tarif dasar 10% yang sebelumnya diterapkan pada negara-negara lain, kecuali Tiongkok, menurut seorang pejabat Gedung Putih.\n\n\n\nTarif baru mulai berlaku pada pukul 12:01 dini hari waktu Washington pada 10 April, menurut panduan bea cukai yang dirilis pada Rabu malam, dan pungutan sebesar 125% pada Tiongkok menetapkan tarif tersebut mencakup Hong Kong dan Makau. "Investor di seluruh Asia dan sekitarnya bernapas lega," kata Ekonom HSBC Holdings Plc, Frederic Neumann.\n\n"Penundaan tarif timbal balik oleh AS memberi lebih banyak waktu untuk negosiasi. Bagi ekonomi Asia yang berpusat pada ekspor, hal ini sangat penting, mengingat dampak pertumbuhan yang akan ditimbulkan oleh tarif tinggi AS,β ia menambahkan.\n\nSementara ekuitas Tiongkok menguat karena ekspektasi stimulus, yuan dalam negeri jatuh ke level terlemah sejak 2007. Taruhan pada langkah pelonggaran moneter oleh Bank Sentral China untuk mendukung ekonomi juga membebani mata uang tersebut.\n\nKurang dari satu jam sebelum pernyataan Trump, penjualan obligasi 10 tahun senilai USD 39 miliar menarik permintaan yang baik, meskipun ada kekhawatiran oleh beberapa pihak di pasar kebijakannya dapat menghalangi pembeli asing. Hal itu menyusul reaksi suam-suam kuku terhadap penjualan obligasi tiga tahun pada Selasa, dan menggambarkan latar belakang yang lebih cerah untuk lelang obligasi 30 tahun pada Kamis.
7. Simpan hasil ke file CSV (opsional)
8. Analisis tambahan (opsional)
8.1 Hitung jumlah kata dalam artikel
## Jumlah kata dalam artikel: 782
8.2 Ekstrak tanggal dalam format yang bisa dianalisis
8.3 Ekstrak kata kunci berdasarkan frekuensi (contoh sederhana)
kata_kata <- unlist(str_split(tolower(konten), "\\s+|\\.|,|;|:|\\(|\\)|\\[|\\]|-"))
kata_kata <- kata_kata[nchar(kata_kata) > 3] # Hapus kata-kata yang terlalu pendek
frekuensi_kata <- table(kata_kata)
kata_kunci <- sort(frekuensi_kata, decreasing = TRUE)[1:10]
print("Kata kunci berdasarkan frekuensi:")
## [1] "Kata kunci berdasarkan frekuensi:"
## kata_kata
## saham persen pada perdagangan sektor level
## 49 20 15 12 12 11
## posisi yang tarif harga
## 11 11 8 7
TAHAPAN WEB CRAWLING BERITA LIPUTAN6.COM MENGGUNAKAN R V2
==================== 1. Install dan Load Library ====================
# Install required packages if not already installed
if (!require("rvest")) install.packages("rvest")
if (!require("dplyr")) install.packages("dplyr")
if (!require("stringr")) install.packages("stringr")
if (!require("tidytext")) install.packages("tidytext")
## Loading required package: tidytext
## Warning: package 'tidytext' was built under R version 4.4.3
## Loading required package: wordcloud
## Warning: package 'wordcloud' was built under R version 4.4.3
## Loading required package: RColorBrewer
## Loading required package: tm
## Warning: package 'tm' was built under R version 4.4.3
## Loading required package: NLP
==================== 2. Fungsi Scraping Artikel ====================
scrape_liputan6_article <- function(url) {
webpage <- read_html(url)
# Ambil judul
title <- webpage %>%
html_element("h1.read-page--header--title") %>%
html_text(trim = TRUE)
# Ambil tanggal (handle jika tidak ada)
published_date <- webpage %>%
html_element("time.read-page--header--date") %>%
html_text(trim = TRUE)
if (is.na(published_date)) published_date <- "Tidak tersedia"
# Ambil penulis (handle jika tidak ada)
author <- webpage %>%
html_element("span.read-page--header--author__name") %>%
html_text(trim = TRUE)
if (is.na(author)) author <- "Tidak tersedia"
# Ambil konten artikel (fallback selector jika gagal)
content <- webpage %>%
html_elements("div.read-page--content--article p") %>%
html_text2()
if (length(content) == 0) {
# Fallback: ambil semua paragraf <p>
content <- webpage %>%
html_elements("p") %>%
html_text2()
}
content <- paste(content, collapse = " ") %>% str_squish()
if (nchar(content) < 50) warning("Konten artikel terlalu pendek atau tidak berhasil diambil.")
return(list(
title = title,
published_date = published_date,
author = author,
content = content
))
}
==================== 3. Fungsi Analisis Artikel ====================
analyze_article <- function(article) {
cat("Judul: ", article$title, "\n")
cat("Tanggal Publikasi: ", article$published_date, "\n")
cat("Penulis: ", article$author, "\n\n")
clean_text <- article$content %>%
str_replace_all("[[:punct:]]", " ") %>%
str_replace_all("[[:digit:]]", " ") %>%
str_replace_all("\\s+", " ") %>%
str_trim() %>%
tolower()
word_count <- str_count(clean_text, "\\S+")
cat("Jumlah kata dalam artikel: ", word_count, "\n\n")
if (word_count == 0) {
warning("Tidak ada kata untuk dianalisis.")
return(NULL)
}
docs <- Corpus(VectorSource(clean_text))
stopwords_id <- c("yang", "dan", "di", "dengan", "untuk", "pada", "adalah", "ini", "dari", "dalam",
"akan", "juga", "ke", "karena", "oleh", "secara", "tersebut", "bahwa", "kata",
"tidak", "itu", "telah", "ada", "hanya", "bisa", "dapat", "sudah", "saat", "seperti")
docs <- tm_map(docs, content_transformer(tolower))
docs <- tm_map(docs, removeWords, stopwords_id)
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, stripWhitespace)
tdm <- TermDocumentMatrix(docs)
m <- as.matrix(tdm)
word_freqs <- sort(rowSums(m), decreasing = TRUE)
top_words <- head(word_freqs, 10)
cat("Kata-kata yang paling sering muncul:\n")
print(top_words)
potential_entities <- c("Prabowo", "Gaza", "Israel", "Palestina", "Mesir", "evakuasi", "Indonesia", "Kemenlu", "DPR")
entity_count <- sapply(potential_entities, function(x) str_count(article$content, regex(x, ignore_case = TRUE)))
cat("\nEntitas yang terdeteksi dalam artikel:\n")
for (i in seq_along(potential_entities)) {
if (entity_count[i] > 0) {
cat(potential_entities[i], ": ", entity_count[i], " kali\n")
}
}
return(list(clean_text = clean_text, word_freqs = word_freqs))
}
==================== 4. Fungsi Word Cloud ====================
plot_wordcloud <- function(word_freqs) {
if (length(word_freqs) == 0) {
warning("Tidak ada kata untuk ditampilkan dalam word cloud.")
return()
}
suppressWarnings({
wordcloud(words = names(word_freqs),
freq = word_freqs,
min.freq = 2,
max.words = 50,
scale = c(3, 0.5),
random.order = FALSE,
rot.per = 0.2,
colors = brewer.pal(8, "Dark2"))
})
}
==================== 5. Eksekusi ====================
# Ganti dengan URL artikel yang ingin dianalisis
url <- "https://www.liputan6.com/news/read/5989757/anggota-komisi-i-dpr-dukung-rencana-prabowo-evakuasi-warga-gaza-ke-indonesia"
article <- scrape_liputan6_article(url)
analysis_result <- analyze_article(article)
## Judul: Anggota Komisi I DPR Dukung Rencana Prabowo Evakuasi Warga Gaza ke Indonesia
## Tanggal Publikasi: Tidak tersedia
## Penulis: Delvira Hutabarat
##
## Jumlah kata dalam artikel: 547
## Warning in tm_map.SimpleCorpus(docs, content_transformer(tolower)):
## transformation drops documents
## Warning in tm_map.SimpleCorpus(docs, removeWords, stopwords_id): transformation
## drops documents
## Warning in tm_map.SimpleCorpus(docs, removePunctuation): transformation drops
## documents
## Warning in tm_map.SimpleCorpus(docs, removeNumbers): transformation drops
## documents
## Warning in tm_map.SimpleCorpus(docs, stripWhitespace): transformation drops
## documents
## Kata-kata yang paling sering muncul:
## indonesia palestina prabowo gaza luka
## 14 12 12 11 11
## anak mereka korban presiden advertisement
## 10 10 9 9 7
##
## Entitas yang terdeteksi dalam artikel:
## Prabowo : 12 kali
## Gaza : 11 kali
## Israel : 3 kali
## Palestina : 12 kali
## Mesir : 2 kali
## evakuasi : 10 kali
## Indonesia : 14 kali
## DPR : 1 kali
# Buat word cloud jika hasil analisis tidak kosong
if (!is.null(analysis_result)) {
plot_wordcloud(analysis_result$word_freqs)
}
==================== Analisis Sentimen Sederhana ====================
positive_words <- c("berhasil", "baik", "setuju", "mendukung", "positif", "sukses", "maju", "efektif")
negative_words <- c("ditolak", "menolak", "kritik", "masalah", "sulit", "buruk", "gagal", "khawatir")
positive_count <- sum(str_count(analysis_result$clean_text , paste(positive_words, collapse = "|")))
negative_count <- sum(str_count(analysis_result$clean_text, paste(negative_words, collapse = "|")))
cat("\nAnalisis Sentimen Sederhana:\n")
##
## Analisis Sentimen Sederhana:
## Kata-kata positif: 4
## Kata-kata negatif: 0
if (positive_count > negative_count) {
cat("π Artikel ini cenderung memiliki **sentimen positif**.\n")
} else if (negative_count > positive_count) {
cat("π Artikel ini cenderung memiliki **sentimen negatif**.\n")
} else {
cat("π Artikel ini memiliki **sentimen netral**.\n")
}
## π Artikel ini cenderung memiliki **sentimen positif**.
Code 1 - Parsing
Teknik Web Scrapping dengan Parsing HTML
Kelebihan
Bisa digunakan untuk mayoritas situs berita
Proses pengumpulan data relatif cepat.
Kelemahan
Untuk website yang menggunakan login, prosesnya agak rumit.
Harus menentukan target css dari website terlebih dahulu.
Sulit digunakan pada website dinamis yang menggunakan javascript.
Library R ralger atau rvest
1. Scrapping Web Berita Online
Studi Kasus: Detik.com
# Jika belum punya library ralger atau rvest, install dulu dengan perintah berikut ini
# install.packages("ralger")
# install.packages("rvest")
url = "https://news.detik.com/internasional/d-7862500/drone-rusia-kembali-hantam-ibu-kota-ukraina-12-orang-luka"
# memanggil library
library("ralger")
## Warning: package 'ralger' was built under R version 4.4.3
## [1] "\n Drone Rusia Kembali Hantam Ibu Kota Ukraina, 12 Orang Luka "
Setelah berhasil mengambil judul, kita akan coba ambil konten artikelnya
## [1] "Serangan drone-drone Rusia kembali menghantam ibu kota Ukraina, Kyiv, dan kota Mykolaiv di Ukraina selatan. Otoritas Ukraina mengatakan bahwa serangan tersebut melukai sedikitnya 12 orang."
## [2] "Dilansir Reuters dan Al-Arabiya, Kamis (10/4/2025), dua wanita terluka di Kyiv akibat serangan drone Rusia pada Rabu (9/4) malam waktu setempat itu. Drone-drone tersebut juga memicu kebakaran di fasilitas penyimpanan dan merusak bangunan tempat tinggal di Kyiv, kata administrasi militer kota Kyiv."
## [3] "Pihak berwenang mencatat 30 drone di wilayah udara di atas ibu kota, 16 di antaranya hancur dan sisanya meninggalkan wilayah udara atau \"hilang.\""
## [4] "\r\nSCROLL TO CONTINUE WITH CONTENT\r\n"
## [5] "Serangan itu juga melukai 10 orang di kota Mykolaiv, kata gubernur wilayah tersebut, Vitalii Kim."
## [6] "Serangan drone Rusia itu juga merusak sembilan gedung apartemen, 30 garasi, dan sebuah gedung administrasi, tambah Kim."
## [7] "Dalam serangan-serangannya, Rusia membantah menargetkan warga sipil, tetapi ribuan orang telah tewas dan terluka dalam invasinya ke Ukraina."
## [8] "Wilayah lainnya yang dihantam serangan drone Rusia adalah Kharkiv, yang berbatasan dengan Rusia. Seorang pejabat setempat melaporkan seorang pria berusia 65 tahun dan seorang wanita berusia 50 tahun mengalami luka-luka dalam serangan yang menghantam perusahaan sipil setempat."
## [9] "Rusia terus membombardir Ukraina, meskipun pemerintahan Presiden AS Donald Trump telah menggelar beberapa putaran perundingan dengan para pejabat Ukraina dan Rusia, dengan harapan dapat menghentikan pertempuran. Sejauh ini, upaya pemerintahan Trump belum membuahkan hasil yang nyata."
## [10] "Lihat Video 'Drone Tempur Rusia Hantam Apartemen di Dnipro, 15 Terluka':"
## [11] "[Gambas:Video 20detik]"
## [12] ""
Berikutnya akan coba kita rapikan
## Drone Rusia Kembali Hantam Ibu Kota Ukraina, 12 Orang Luka Serangan drone-drone Rusia kembali menghantam ibu kota Ukraina, Kyiv, dan kota Mykolaiv di Ukraina selatan. Otoritas Ukraina mengatakan bahwa serangan tersebut melukai sedikitnya 12 orang.
## Dilansir Reuters dan Al-Arabiya, Kamis (10/4/2025), dua wanita terluka di Kyiv akibat serangan drone Rusia pada Rabu (9/4) malam waktu setempat itu. Drone-drone tersebut juga memicu kebakaran di fasilitas penyimpanan dan merusak bangunan tempat tinggal di Kyiv, kata administrasi militer kota Kyiv.
## Pihak berwenang mencatat 30 drone di wilayah udara di atas ibu kota, 16 di antaranya hancur dan sisanya meninggalkan wilayah udara atau "hilang."
## SCROLL TO CONTINUE WITH CONTENT
## Serangan itu juga melukai 10 orang di kota Mykolaiv, kata gubernur wilayah tersebut, Vitalii Kim.
## Serangan drone Rusia itu juga merusak sembilan gedung apartemen, 30 garasi, dan sebuah gedung administrasi, tambah Kim.
## Dalam serangan-serangannya, Rusia membantah menargetkan warga sipil, tetapi ribuan orang telah tewas dan terluka dalam invasinya ke Ukraina.
## Wilayah lainnya yang dihantam serangan drone Rusia adalah Kharkiv, yang berbatasan dengan Rusia. Seorang pejabat setempat melaporkan seorang pria berusia 65 tahun dan seorang wanita berusia 50 tahun mengalami luka-luka dalam serangan yang menghantam perusahaan sipil setempat.
## Rusia terus membombardir Ukraina, meskipun pemerintahan Presiden AS Donald Trump telah menggelar beberapa putaran perundingan dengan para pejabat Ukraina dan Rusia, dengan harapan dapat menghentikan pertempuran. Sejauh ini, upaya pemerintahan Trump belum membuahkan hasil yang nyata.
## Lihat Video 'Drone Tempur Rusia Hantam Apartemen di Dnipro, 15 Terluka':
## [Gambas:Video 20detik]
Kita bisa simpan hasilnya di file teks
2. Scrapping Web Berita Online2
Studi Kasus: Bank Syariah Indonesia (BRIS) di IPOTNEWS
url = "https://health.detik.com/berita-detikhealth/d-7481184/tabel-berat-badan-ideal-dari-kemenkes"
tabel_hasil = table_scrap(url)
## Warning: The `fill` argument of `html_table()` is deprecated as of rvest 1.0.0.
## βΉ An improved algorithm fills by default so it is no longer needed.
## βΉ The deprecated feature was likely used in the rvest package.
## Please report the issue at <https://github.com/tidyverse/rvest/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## # A tibble: 15 Γ 4
## `Tinggi Badan (cm)` `Bentuk Badan Kecil (kg)` `Bentuk Badan Sedang (kg)`
## <int> <chr> <chr>
## 1 157 51-53 54-59
## 2 160 52-56 55-60
## 3 162 54-57 56-62
## 4 165 55-59 58-63
## 5 168 56-60 60-65
## 6 170 58-62 62-68
## 7 173 60-64 63-69
## 8 175 62-66 65-71
## 9 178 64-68 66-73
## 10 180 66-70 68-75
## 11 183 67-72 70-77
## 12 185 68-74 72-80
## 13 188 71-76 74-82
## 14 190 73-78 76-84
## 15 193 75-80 78-86
## # βΉ 1 more variable: `Bentuk Badan Besar (kg)` <chr>
Tabelnya terlalu panjang, dapat kita ringkas saja
Tinggi Badan (cm) | Bentuk Badan Kecil (kg) | Bentuk Badan Sedang (kg) | Bentuk Badan Besar (kg) |
---|---|---|---|
157 | 51-53 | 54-59 | 57-64 |
160 | 52-56 | 55-60 | 59-66 |
162 | 54-57 | 56-62 | 60-67 |
165 | 55-59 | 58-63 | 61-69 |
168 | 56-60 | 60-65 | 63-71 |
170 | 58-62 | 62-68 | 65-73 |
173 | 60-64 | 63-69 | 67-75 |
175 | 62-66 | 65-71 | 69-77 |
178 | 64-68 | 66-73 | 71-79 |
180 | 66-70 | 68-75 | 72-81 |
183 | 67-72 | 70-77 | 75-84 |
185 | 68-74 | 72-80 | 76-86 |
188 | 71-76 | 74-82 | 79-88 |
190 | 73-78 | 76-84 | 80-91 |
193 | 75-80 | 78-86 | 83-93 |
Lalu bisa simpan ke dalam file Excel
3. Scrapping Web Berita Online3
Studi Kasus: Rumah Syariah di OLX
url = "https://finance.detik.com/"
hasil = tidy_scrap(url,c(".media__title", ".media__date"),
c("judul", "waktu"))
## Warning in (function (..., deparse.level = 1) : number of rows of result is not
## a multiple of vector length (arg 2)
judul | waktu |
---|---|
Last updated :Kamis, 10 Apr 2025 13:20 WIB | |
Data is a realtime snapshot, delayed at least 10 minutes | 8 menit yang lalu |
Terungkap Alasan China Tak Gentar Kena Tarif Trump 125% | 23 menit yang lalu |
Berburu Emas, Warga Antre di Butik LM Antam Pulogadung | 28 menit yang lalu |
Trump Geram China Melawan Terus, Langsung Patok Tarif Impor 125% | 37 menit yang lalu |
Sebanyak Ini Orang yang Mau Beli Emas Antam | 1 jam yang lalu |
Tiket Kereta Eksekutif Dijual Mulai Rp 40.000, Ini Rutenya | 1 jam yang lalu |
RI Mau Relaksasi TKDN Gara-gara Tarif Trump 32%, Wamenperin Bilang Begini | 1 jam yang lalu |
Pidato di Hadapan Parlemen Turki, Prabowo: Saya Agak Grogi | 2 jam yang lalu |
Bank DKI Pastikan Data dan Dana Nasabah Aman Usai Gangguan Sistem | 2 jam yang lalu |
Penyerapan Bulog Capai 800 Ribu Ton Selama Panen Raya | 2 jam yang lalu |
Terungkap Alasan China Tak Gentar Kena Tarif Trump 125% | 2 jam yang lalu |
Harga Emas Antam Hari Ini Tertinggi Sepanjang Masa | 2 jam yang lalu |
Trump Tunda Tarif Impor, Wamenkeu Bilang Begini | 2 jam yang lalu |
BSI Bidik Transaksi Ritel UMKM di Pasar Tradisional | 3 jam yang lalu |
Drama Sidang Praperadilan Kedua Hasto Vs KPK | 3 jam yang lalu |
Kisah Pilot Helikopter Banting Setir Jadi Pebisnis Teh | 3 jam yang lalu |
Panen Cuan Layanan Sayang Anabul | 3 jam yang lalu |
Menangkis Serangan Hoaks Tarik Duit dari Bank | 3 jam yang lalu |
Bisnis Kura Kura Darat yang Bikin Dompet Gemuk | 3 jam yang lalu |
Mendulang Kasih dan Rupiah di Hari Raya Lewat Hampers | Minggu, 30 Mar 2025 19:30 WIB |
Ide Bisnis Lilin Aromaterapi dari Rumah, Cetak Omzet Ratusan Juta | Sabtu, 29 Mar 2025 22:09 WIB |
Rahasia Bisnis Batik KEkinian Omzet ratusan Juta | Jumat, 28 Mar 2025 15:13 WIB |
Rahasia Bisnis Batik Kekinian Beromzet Ratusan Juta Rupiah | 4 jam yang lalu |
Berburu Emas, Warga Antre di Butik LM Antam Pulogadung | 4 jam yang lalu |
Trump Geram China Melawan Terus, Langsung Patok Tarif Impor 125% | 4 jam yang lalu |
Sri Mulyani Sebut Tarif Trump Bisa Pangkas Pertumbuhan Ekonomi RI 0,5% | 4 jam yang lalu |
Sri Mulyani Minta Ekonom Tak Bikin Resah soal Ekonomi RI | 4 jam yang lalu |
Budi Arie Sebut Koperasi Merah Putih Bakal Pasok MBG | 4 jam yang lalu |
Bahlil Ungkap 54% Impor LPG Indonesia Berasal dari AS | 4 jam yang lalu |
Tunda Tarif buat Puluhan Negara, Trump Fokus Perang Dagang dengan China | 4 jam yang lalu |
Ekonomi China Diperkirakan Melambat Imbas Tarif Trump | 4 jam yang lalu |
Sempat Meledak, Harga Cabai Diramal Turun 2 Minggu Lagi | 4 jam yang lalu |
Imbas Perang Dagang, Harta Kekayaan Elon Musk-Mark Zuckerberg Merosot | 5 jam yang lalu |
KKP dan PT Garam Uji Stok 240 Ribu Ton Garam untuk Industri Makanan | 5 jam yang lalu |
Tak Pernah Kerja Kantoran, Pria Ini Raup Ratusan Juta dari Kue buat Hampers | 5 jam yang lalu |
Sepenggal Kisah Starling yang Bertahan di Tengah Tren Kopi Kekinian | 5 jam yang lalu |
Modal Oven Hasil Doorprize, Retno Jadi Pengusaha Kue Kering Lebaran | 5 jam yang lalu |
IHSG Melesat, Berakhir di Level 6.254 | 5 jam yang lalu |
Pembentukan Satgas PHK Tunggu Inpres Prabowo | 5 jam yang lalu |
Stok Melimpah, Harga Ikan di Kendari Turun | 5 jam yang lalu |
Pemerintah Klaim Stok Beras RI Tertinggi dalam 20 Tahun | 5 jam yang lalu |
Sri Mulyani Sebut Penyaluran Pupuk Subsidi 1,7 Juta Ton di Awal 2025 | 5 jam yang lalu |
IHSG Bergejolak & Rupiah Loyo, Investasi Emas Cuan Terus | 6 jam yang lalu |
Grab Ungkap Alasan Ada Driver Ojol yang Tak Dapat βTHRβ | 6 jam yang lalu |
Jurus BUMN Kurangi Emisi Karbon dan Transformasi Energi | 6 jam yang lalu |
Soal Pembangunan 80 Ribu Kopdes, Budi Arie: Butuh Waktu, Emang Bikin Martabak? | 6 jam yang lalu |
Tiket Kereta Eksekutif Dijual Mulai Rp 40.000, Ini Rutenya | 6 jam yang lalu |
Wamentan Jelaskan soal Kuota Impor Mau Dihapus Prabowo | 6 jam yang lalu |
Wamenaker Bakal Audit Aplikator yang Beri βTHRβ Driver Ojol Hanya Rp 50.000 | 7 jam yang lalu |
Operator Pelabuhan Buka Suara soal Macet di Tanjung Priok | 7 jam yang lalu |
BI Ungkap Penyebab Indeks Harga Konsumen di Maret Alami Inflasi | 7 jam yang lalu |
Tarif Impor Trump Bikin Pengusaha China di Amazon Khawatir | 7 jam yang lalu |
Prabowo Mau Bikin 80 Ribu Koperasi Merah Putih, Butuh Modal Rp 400 T | 7 jam yang lalu |
Suminto & Suryo Utomo Kompak Mundur dari Dewan Komisaris PT SMI | 7 jam yang lalu |
Sengaja Tak Lapor SPT Pajak Bertahun-tahun Bisa Dipenjara! | 8 menit yang lalu |
18 Ribu Orang Kena PHK Awal Tahun, Paling Banyak di Sektor Manufaktur | 23 menit yang lalu |
Menerka Strategi Baru Pemerintah Soal Manuver Tarif Trump | 28 menit yang lalu |
Driver Ojol Bakal Dapat THR Setiap Tahun, Pemerintah Siapkan Aturannya | 37 menit yang lalu |
Kuota Impor Mau Dihapus Prabowo, Nasib Komoditas Pangan Gimana? | 1 jam yang lalu |
Pasar Saham Global Bangkit Usai Trump Umumkan Penundaan Tarif | 1 jam yang lalu |
Tips Beli Emas Antam di Butik biar Kebagian Stok | 1 jam yang lalu |
Menteri Prabowo Kumpul Bahas Koperasi Merah Putih, Mau Bikin Satgas Khusus | 2 jam yang lalu |
Pengusaha Elektronik Wanti-wanti Pelonggaran TKDN Bisa Bikin Investor Kabur | 2 jam yang lalu |
Prabowo-Erdogan Cari Cara Redam Dampak Perang Dagang | 2 jam yang lalu |
Foto Udara Pembangunan Sentra Kelautan dan Perikanan Terpadu di Sabang | 2 jam yang lalu |
Sebanyak Ini Orang yang Mau Beli Emas Antam | 2 jam yang lalu |
Kemnaker Panggil Aplikator Buntut Ada Driver Ojol Tak Dapat βTHRβ | 2 jam yang lalu |
IHSG Perkasa di Jeda Siang, Menguat 5,02% | 3 jam yang lalu |
Aturan Kemasan Polos Rokok Disebut Mengancam Industri Rokok | 3 jam yang lalu |
tarif impor | 3 jam yang lalu |
ihsg | 3 jam yang lalu |
harga emas | 3 jam yang lalu |
Trump Geram China Melawan Terus, Langsung Patok Tarif Impor 125% | 3 jam yang lalu |
Berburu Emas, Warga Antre di Butik LM Antam Pulogadung | Minggu, 30 Mar 2025 19:30 WIB |
Terungkap Alasan China Tak Gentar Kena Tarif Trump 125% | Sabtu, 29 Mar 2025 22:09 WIB |
Harga Emas Antam Hari Ini Tertinggi Sepanjang Masa | Jumat, 28 Mar 2025 15:13 WIB |
Tiket Kereta Eksekutif Dijual Mulai Rp 40.000, Ini Rutenya | 4 jam yang lalu |
Dua Biang Kerok Trump Balas Indonesia Lewat Tarif Impor 32% | 4 jam yang lalu |
Prabowo Telah Siapkan Tiga Gebrakan Hadapi Tarif Impor Trump | 4 jam yang lalu |
Vietnam Pakai Cara βTak Biasaβ Hadapi Tarif Trump 46% | 4 jam yang lalu |
Lalu bisa simpan ke dalam file Excel
Code 2- User Agent
Teknik Web Scrapping dengan User Agent
Kelebihan
Lebih cepat dan bisa dilakukan untuk website yang sulit di-scraping
Meniru perilaku pengguna di browser, misalnya Google Chrome, bisa diganti untuk browser lainnya.
Kelemahan
- Belum tentu berlaku sama untuk setiap website.
Library R rvest atau RSelenium
Scrapping GoFood
Studi Kasus: Restoran di Yogyakarta
library(rvest)
library(knitr)
# URL target
url <- "https://finance.detik.com/"
# Ambil data
saham <-
read_html(url) %>%
html_nodes(".datafx__item--title") %>%
html_text(trim = TRUE)
nilai <-
read_html(url) %>%
html_nodes(".datafx__item--value") %>%
html_text(trim = TRUE)
# Gabungkan dan tampilkan
knitr::kable(data.frame(saham, nilai))
saham | nilai |
---|---|
LQ45 | 707.11 |
IHSG | 6,254.02 |
JII | 392.69 |
HSI | 20,681.78 |
N225 | 34,599.00 |
USD/IDR | 16,795.00 |
SGD/IDR | 12,589.01 |
JPY/IDR | 115.80 |
EUR/IDR | 18,671.48 |
GBP/IDR | 21,662.19 |
EUR/USD | 1.11 |
GBP/USD | 1.29 |
USD/CNY | 7.34 |
USD/SGD | 1.33 |
USD/JPY | 145.02 |
Emas | 1,689,609.25 |
Silver | 30.90 |
Crude Oil | 59.56 |
Sawit | 4,204.00 |
Nickel | 14,695.00 |
Lalu bisa simpan ke dalam file Excel
Code 3 - API
Teknik Web Scrapping dengan Application Programming Interface (API) resmi
Kelebihan
Legal, resmi, sah
Lebih mudah dan relatif cepat.
Kelemahan
Tidak semua website resmi menyediakan API.
Kadang mesti mendaftar dulu sebagai developer.
Biasanya data hasil scrape memiliki format .json yang jarang dikenal orang awam.
Library R jsonlite, tidyverse
Scrapping Web Resmi Badan Pusat Statistik
Studi Kasus: Press Release Inflasi Bulan Juli Tahun 2022
# Jika belum punya library jsonlite, install dulu dengan perintah berikut ini
# install.packages("jsonlite, tidyverse")
library(jsonlite)
library(tidyverse)
## ββ Attaching core tidyverse packages ββββββββββββββββββββββββ tidyverse 2.0.0 ββ
## β forcats 1.0.0 β readr 2.1.5
## β ggplot2 3.5.1 β tibble 3.2.1
## β purrr 1.0.2 β tidyr 1.3.1
## ββ Conflicts ββββββββββββββββββββββββββββββββββββββββββ tidyverse_conflicts() ββ
## β ggplot2::annotate() masks NLP::annotate()
## β dplyr::filter() masks stats::filter()
## β purrr::flatten() masks jsonlite::flatten()
## β readr::guess_encoding() masks rvest::guess_encoding()
## β dplyr::lag() masks stats::lag()
## βΉ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data = jsonlite::fromJSON("https://webapi.bps.go.id/v1/api/view/domain/0000/model/pressrelease/lang/ind/id/1863/key/0ae03f5adc1cfe6ebc7757af94bd382c/")
Kita bisa merapikan data tersebut dan menyimpan hasilnya di file teks
## List of 3
## $ status : chr "OK"
## $ data-availability: chr "available"
## $ data :List of 11
## ..$ brs_id : int 1863
## ..$ title : chr "Inflasi terjadi pada Juli 2022 sebesar 0,64 persen. Inflasi tertinggi terjadi di Kendari sebesar 2,27 persen."
## ..$ abstract : chr "<div style="text-align: justify;"><ul><li><span style="font-size: 10pt;&quo"| __truncated__
## ..$ rl_date : chr "2022-08-01"
## ..$ updt_date: chr "2022-08-01"
## ..$ pdf : chr "https://webapi.bps.go.id/download.php?f=I8y9paPxEtvjM3hXIVtfIUZET2lCdklsUlpVOVc2UU96cXlyMENiUFpwUVQ5bFN4Sm02Tjl"| __truncated__
## ..$ size : chr "1.86 MB"
## ..$ hit : int 43971
## ..$ thumbnail: chr "https://webapi.bps.go.id/cover.php?f=34cwgmipFLFsBiG7gNi0U010RTMyWUFPME9iQlp1VVVJWmJkS0ZYNU5iSFVOM21Ea0w4Zk5PUG"| __truncated__
## ..$ slide : chr "https://webapi.bps.go.id/download.php?f=0y0x/9mVuX0QTrbl6A2DTU5VSW4vWnNYVDRscFFVMTQvZVZPc0MxcGM1U3V6d0pkR1VPZzV"| __truncated__
## ..$ related :'data.frame': 5 obs. of 5 variables:
## .. ..$ brs_id : int [1:5] 1660 1767 1438 1766 1657
## .. ..$ title : chr [1:5] "Pada Juni 2020 Terjadi Inflasi Sebesar 0,18 Persen. Inflasi Tertinggi Terjadi Di Kendari Sebesar 1,33 Persen." "Inflasi Terjadi Pada Agustus 2021 Sebesar 0,03 Persen. Inflasi Tertinggi Terjadi Di Kendari Sebesar 0,62 Persen." "Oktober 2018 Inflasi Sebesar 0,28 Persen. Inflasi Tertinggi Terjadi Di Palu Sebesar 2,27 Persen." "Inflasi Terjadi Pada Juli 2021 Sebesar 0,08 Persen. Inflasi Tertinggi Terjadi Di Sorong Sebesar 1,51 Persen." ...
## .. ..$ rl_date : chr [1:5] "2020-07-01" "2021-09-01" "2018-11-01" "2021-08-02" ...
## .. ..$ url : chr [1:5] "https://www.bps.go.id/pressrelease/2020/07/01/1660/pada-juni-2020-terjadi-inflasi-sebesar-0-18-persen-inflasi-t"| __truncated__ "https://www.bps.go.id/pressrelease/2021/09/01/1767/inflasi-terjadi-pada-agustus-2021-sebesar-0-03-persen-inflas"| __truncated__ "https://www.bps.go.id/pressrelease/2018/11/01/1438/oktober-2018-inflasi-sebesar-0-28-persen-inflasi-tertinggi-t"| __truncated__ "https://www.bps.go.id/pressrelease/2021/08/02/1766/inflasi-terjadi-pada-juli-2021-sebesar-0-08-persen-inflasi-t"| __truncated__ ...
## .. ..$ thumbnail: chr [1:5] "https://webapi.bps.go.id/cover.php?f=giRBRG7gwMBVMALDn3QZmUg3S2hzWkVlOWxLRFM1b3laWDFEUFB5Q2lQZUdkRGNaZkFMZENLNk"| __truncated__ "https://webapi.bps.go.id/cover.php?f=o3Z50fPCDF9Hwo0priGuGlVDOGZ1RnBWbkRhOUJCdXNNZzJoeW9ZdkdENUxkZng3a3NMQnM1di"| __truncated__ "https://webapi.bps.go.id/cover.php?f=iQGHGuhcp7bWxD8I7IA6fWw2a1dUSW1HeGdMWFlncERTVGxIRElmMEhuMEcxVTBpdlZXcVJ3Qz"| __truncated__ "https://webapi.bps.go.id/cover.php?f=rt/YKciZeWJGDjfBLbfyEFdyQ2JwOUovWk5FWWRXMENkVkJVNjc1RlpIeVErbUVGelFaMUJ1RG"| __truncated__ ...
## Warning in stringi::stri_list2matrix(data, byrow = TRUE, fill = ""): argument
## is not an atomic vector; coercing