Jika kita membuka halaman https://modi.esdm.go.id/, maka akan kita dapatkan banyak data minerba disitu antara lain:
- Penerimaan Negara
- Dana Bagi Hasil
- Investasi
- Dana Pengembangan Masyarakat
- Produksi Batubara
- Penjualan Batubara
- Logam Timah dll
Sebelum sedot update dulu ke versi 07 Agustus 2022
Disini kita akan mencoba menarik data perusahaan yang terdaftar di Minerba untuk keperluan Galpot
I. Cara Sedot
- Klik dulu link
- https://modi.esdm.go.id/portal/dataPerusahaan
- Cara mencarinya coba cek Links
- Klik kanan di Bawah/Pagination, klik aja no. 2, pilih Open in new Tab
- Ternyata ini linknya
- https://modi.esdm.go.id/portal/dataPerusahaan?page=2
- Berarti tinggal kita buat saja rumus atau fitur fill itu biar ketarik ampe halaman 284
- Lalu kita tarik gunakan Collect Multiple Links
- Pilih Sedot As HTML Formatted
- Jika sudah maka hasilnya kita merge gunakan Merge worksheet
- Kita pilih Sheet List 1-284
- Gunakan Range saja karena bentuknya terstruktur rapi
- Kita pilih salah satu sheet List pilih lalu range A16:E35
- Lalu klik Merge
- Kita rapikan hasilnya karena kita akan menarik link detil
- Ini Tampilan Link detil
- Dari Gambar diatas kita tidak bisa sedot as text/HTML karena sedot as text hanya menyedot tampilan saja sementara link tersebut menyimpan text yang tersembunyi, yang baru akan muncul jika kita klik link dibawah profil
- Kita bisa sedot gunakan HTML kode, cuman masalahnya agak susah mengubah kode HTML menjadi Tabel
- Kita bisa gunakan Powerquery untuk Convert data tersebut karena jauh lebih mudah
- Oleh karena itu kita sebaiknya sedot as Text file saja, nanti bisa diolah oleh PQ sekaligus satu folder tidak satu2
- Kita buat dulu Link dan Nama File
- Kita gunakan Rumus untuk ambil link dari suatu Text
- =Link_address
- Untuk filename kita gunakan id sebagai nama file
- Kita tambahkan "Data Perusahaan" sebagai subfolder
- ="Data Perusahaan\"&SUBSTITUTE(LEFT(H1,FIND("?",H1)-1),"https://modi.esdm.go.id/portal/detailPerusahaan/","")
- Intinya kita ambil text sampai karakter "?" lalu buang kata sebelum karakter "/"
- Sedot Gunakan Collect Multiple links
- Gunakan Sedot as textfile
- Karena Jumlah List besar lebih dari 1000 maka kita uncheck Loaded List
- Klik Run
- Ini Hasilnya
- Hampir 1 GB
II. Cara Convert
- Kita gunakan Powerquery
- Klik Data - From File - From Text
- Atau Data - From Text
- Browse ke salah satu file di hasil sedotan
- Akan muncul Jendela PQ
- Lalu klik kanan pada file
- Pilih HTML
- Akan muncul table dengan data sbb
- semua table perlu kita ambil satu2
- Klik tabel di kolom data baris 1
- Bewrdasarkan tampilan awal dimana field ada dikiri maka perlu kita transpose tabelnya
- Sebelumnya kita kita remove kolom :
- Lalu kita transpose
- Trus field/baris 1 kita jadikan header
- Kita ganti nama queries menjadi "Profil Perusahaan"
- Ulangi langkah2 diatas untuk tabel lainnya
- Caranya untuk tabel2 yang lain jauh lebih gampang,
- Jangan Keluar dari PQ Editor
- Klik Kanan pada panel sebelah kiri (dimana ada nama2 queries)
- Pilih new query -From File - From Text
- Browse ke salah satu file di hasil sedotan
- Lalu pilih tabel berikutnya
- Lalu ganti Nama sesuai sesuai gambar berikut
- Lanjut ke tabel setelahnya
- Tabel lain abaikan saja karena tidak penting
- ini hasilnya
- Nah kan gak mungkin semua file hasil sedotan kita ambil satu2, ada 5ribuan file
- Tenang kita gunakan fungsi merge JSON
- Caranya Panjang tapi baca saja :
- http://eoditor.com/2021/08/cara-meng-convert-data-json-satu-folder-sekaligus/
- Jika sudah maka ini hasilnya
-
'Untuk bisa megconvert 1 folder Profil perusahaan kita gunakan step sbb 'Kita ubah source yang sebelumnya file menjadi folder, lau kita ambil dari masing2 file table ke 1 (data 0) 'Setelahnya kita remoce kolom yg berisi ":", trus kita transpose lalu kita jadikan baris 1 sebagai header (FileBinary as binary) as table => let Source = Web.Page(FileBinary), Data = Source{0}[Data], #"Removed Columns" = Table.RemoveColumns(Data,{"Column2"}), #"Transposed Table" = Table.Transpose(#"Removed Columns"), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]) in #"Promoted Headers"
- Fungsi diatas akan diterapkan ke folder "Data Perusahaan"
-
'Kita add colum dari fungsi di langkah 38 'lalu kita buang yang error dari file2 di folder "Data Perusahaan" hasil dari fungsi di atas 'Lalu kita Extract field2 dari tiap file 'kita buang kolom2 yang gak penting 'Kolom Nama jangan dibuang karena ia adalah ID perusahaan, sebagai Identitas dari data tersebut 'Kita ubah typenya semua menjadi text let Source = Folder.Files("D:\Badjoe\MODI-ESDM\Data Pengusaha"), #"Invoked Custom Function" = Table.AddColumn(Source, "fProfilPerusahaan", each fProfilPerusahaan([Content])), #"Removed Errors" = Table.RemoveRowsWithErrors(#"Invoked Custom Function", {"fProfilPerusahaan"}), #"Expanded fProfilPerusahaan" = Table.ExpandTableColumn(#"Removed Errors", "fProfilPerusahaan", {"Kode Perusahaan", "Nama Perusahaan", "Jenis Badan Usaha", "No. Akte", "Tgl. Akte"}, {"Kode Perusahaan", "Nama Perusahaan", "Jenis Badan Usaha", "No. Akte", "Tgl. Akte"}), #"Removed Columns" = Table.RemoveColumns(#"Expanded fProfilPerusahaan",{"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}), #"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"Kode Perusahaan", type text}, {"Nama Perusahaan", type text}, {"Jenis Badan Usaha", type text}, {"No. Akte", type text}, {"Tgl. Akte", type text}}) in #"Changed Type"
- Nah masalahnya PQ ini kalo folder berbeda akan error, sementara folder penulis dengan anda kan pasti beda
- Biasanya kalo saya males saya suruh aja anda edit folder tersebut
- Tapi sekarang akan saya tambahin fungsi biar data otomatis menyesuaikan dengan folder anda
- Kalo mau tau caranya baca
- http://eoditor.com/2021/01/membuat-powerquery-bisa-menggunakan-data-parameters-yang-dinamis/
- Jadi jika nanti anda download maka data di jamin tidak error
- Sebaiknya jangan direfresh kecuali ada data baru karena proses convert cukup lama
- Jika sudah maka semua data akan digabung menjadi satu tabel
- Kita gunakan Merge di Powerquery atau anda bisa gunakan Vlookup cuman kan gak lucu
- Tabelnya akan kita namai MODI-DataPengusaha
- Ini Hasilnya
- Data bisa lebih besar dari jumlah perusahaan (profil 5665 sementara data 32519) karena data pemegang saham/Direksi satu perusahaan biasanya lebih dari satu
- Pokoknya semua table di sheet tersebut diawali dengan ID yang merujuk ke kolom Kode Perusahaan di Table/sheet Profil Perusahaan
Catatan:
- Buat Folder, namai saja MOBI-ESDM
- Lalu donlot dan extract disitu
- Kalo hanya ingin lihat database maka cukup buka file excel database, tidak perlu diresfresh karena lama prosesnya
- Kalo mo sedot e-Audit Utilities update dulu ke versi 07 Agustus 2022
- File Link dan cara sedot : Sedot MODI-ESDM v2.xlsx
- File Database Jadi : Database Perusahaan MODI-ESDM .xlsx
- File Detil Hasil Sedot : Data Pengusaha.rar
- Jika pengen delete semua queries tapi data tidak hilang begini caranya
- Blok semua Queries
- Klik Kanan
- Pilih Delete
- Klik OK
- Donlot Hasilnya Database Perusahaan MODI-ESDM vNoPQ.xlsx
- Lebih enteng namun tidak bisa ditambah lagi datanya