Setelah pengantar web scraping di tulisan pertama dan dilanjutkan dengan scraping banyak halaman penulis merasa minimal perlu satu tulisan lagi soal scrapy, bagaimana mengambil data yang hanya dapat diakses setelah melakukan login. Yang dimaksud login di sini adalah login sederhana, memasukkan username dan password. Jika terdapat captcha maka perlu pendekatan lain, misalnya menggunakan kecerdasan buatan (mudah-mudahan kita punya kesempatan untuk membahas ini di masa depan). Secara garis besar, setelah kita berhasil login maka server akan membuat sebuah sesi untuk kita, dalam sesi tersebut kita bisa mengakses layanan server tersebut. Agak teknis, sesi itu akan melibatkan session, cookie dan (kadang) token, namun dua yang pertamalah yang lebih banyak ditemui. Seringnya kita tidak perlu mengetahui secara akurat apa dan bagaimana terjadi, seperti[…]

Melanjutkan tulisan sebelumnya kita akan meningkatkan tantangan, mengambil data dari banyak halaman to infinity and beyond. Karena basangdata minim konten dan baru ada dua halaman maka kita perlu mencari web lain dengan banyak konten berhalaman-halaman. Salah satu website yang menyediakan informasi yang menarik dan memiliki banyak halaman adalah inaproc.id yang adalah portal pengadaan (barang dan jasa) pemerintah, diampu oleh LKPP (Lembaga Kebijakan Pengadaan Barang Jasa Pemerintah). Kita akan mengambil data rencana umum pengadaan di sini. Bagi yang belum/tidak pernah bersinggungan dengan pengadaan barang jasa pemerintah, halaman rencana umum pengadaan (rup) menyediakan informasi rencana pengadaan (pembelian) barang yang akan dilakukan oleh institusi pemerintah. Berdasar informasi tersebut penyedia jasa akan mengajukan penawaran kepada institusi pemerintah itu. Jadi jika kita berhasil mengambil semua[…]

Jika ingin mendapatkan bahan belajar lebih banyak, sila gunakan frasa scrapy web scraping pada mesin pencari. Dengan asumsi pembaca telah karib dengan proses instalasi library di python atau telah membaca tulisan ini maka untuk instalasi scrapy cukup mengetikkan. pip install scrapy Jaman now internet adalah sumber utama data dan informasi karenanya sering kita menemui kebutuhan mengambil data dari internet (halaman web). Solusi termudah dan paling sering dilakukan adalah copy dan paste. Namun kita, manusia, cepat capek dan bosan, melakukan copy paste >5x pasti sudah muak, apalagi jika prosedur yang dilakukan sama. Sebab itu web scraping digunakan. Web scraping seperti kita membuka halaman web, lalu menyalin bagian-bagian yang akan diambil dan paste ke file excel, berulang-ulang sampai habis semua halaman yang[…]

Sering kita perlu membaca file txt (teks) dari script Python, misalnya konfigurasi program disimpan dalam teks sederhana, untuk itu script python perlu membaca file teks tersebut. Untuk kebutuhan itu, python telah menyediakan fungsi bawaan (built in) bernama open, lebih lanjut mengenai fungsi ini silahkan merujuk ini. Misal kita memiliki file teks dengan data tahun seperti ini. 2017 2018 2019 File tersebut disimpan sebagai tahun.txt yang disimpan di /home/user/tahun.txt atau d:\tahun.txt. f = open(“/home/user/tahun.txt”, “r”) print(f.read()) f = open(“d:\\tahun.txt”, “r”) print(f.read()) Dua script tersebut akan menampilkan seperti ini. Dapat pula digunakan kode di bawah ini untuk mencapai hal yang sama. with open(“/home/user/tahun.txt”, “r”) as f: print(f.read()) Jika ingin hanya menampilkan 3 karakter pertama. with open(“/home/user/tahun.txt”, “r”) as f: print(f.read(3)) Jika tiap[…]

Khususnya adalah kata (atau kalimat) setelah karakter (tertentu) yang terakhir ditemukan. Misal mengambil judul artikel dari pranala https://basangdata.com/python-menjumlahkan-baris-tertentu-pada-semua-sheet-excel menjadi python-menjumlahkan-baris-tertentu-pada-semua-sheet-excel. setelah mempelajari file Excel ini, kita tahu delimiter (pembatas) dari tiap-tiap informasi adalah tanda / karena itu sebuah formula dapat dibuat dengan syarat mengetahui posisi terakhir tanda tersebut, lalu formula tersebut mengambil semua karakter setelah posisi tersebut. Jika Anda tertarik bagaimana menyelesaikan ini dengan Python, silahkan gunakan Notebook ini. Pada tulisan ini kita akan menggunakan cara yang lebih portable, formula Excel (meski dapat pula diterapkan pada teknologi lain seperti Google Sheets). Kita akan menggunakan formula yang digunakan oleh Excel University di sini. Berikut langkah kerja yang diperlukan. #1. Mengetahui berapa jumlah tanda / pada teks, dengan begitu kita dapat menentukan[…]

Ternyata memilih judul tulisan sulit juga. Masalah yang kita hadapi adalah seperti ini, kita memiliki sebuah file dengan banyak sheet, di tiap sheet terdapat data pada kolom H yang ingin kita jumlahkan, hasil penjumlahan semua sheet kita simpan di sheet bernama Total. Ilustrasi masalah tersebut seperti di bawah ini. File Excel di atas dapat diunduh di sini. Untuk mencapai tujuan menjumlahkan kolom H dari baris 2 sampai baris 18 (atau baris n ke m) kita punya beberapa alternatif solusi formula di sheet Total. =SUM(JAN!H1:H14)+SUM(FEB!H1:H14) namun dengan konsekuensi kita menuliskan sebanyak sheet yang ada =SUM(JAN!H1:H14,FEB!H1:H14) formula ini hanya berlaku di Excel (Google Sheets tidak dapat memproses). =SUM(JAN:APR!H1:H14) lagi, hanya berlaku di Excel, formula ini akan memproses semua sheet antara JAN sampai[…]

Salah satu keunggulan scripting language seperti Python adalah kemudahan eksekusi sehingga tepat digunakan untuk menyelesaikan masalah sehari-hari. Dengan scripting language (baca: Python) kode relatif lebih pendek dan tidak membutuhkan waktu untuk mengkompilasi. Tapi kita simpan pembahasan itu untuk entah kapan, sekarang saatnya menyelesaikan real world problem. Bagaimana memindahkan data dari kolom B ke kolom C pada baris 96 dan 108 dan entah baris berapa lagi, tanpa merubah data kolom C baris 100, 101 dan baris-baris lainnya. Dengan fungsi Excel tentu sulit karena kita tidak tahu akan muncul di baris ke berapa saja, tidak mungkin pula copy and paste formula pada kolom C yang ada isinya. Cut and Paste, sama saja bunuh diri. Jangan worry, Python to the rescue. Kita akan[…]

Jupyter Lab adalah teknologi yang bagus, kegunaan paling terasa adalah kita tak perlu menghadapi layar hitam (Command Prompt/Console) untuk menjalankan kode Python, selain karena dapat memberikan penjelasan soal yang kita kerjakan. Instalasi di Windows cukup melelahkan, sejujurnya itulah alasan saya pindah ke *nix family karena instalasi paket software untuk memprogram jauh lebih mudah, karena butuh banyak bandwith dan instalasi macam-macam. Karena telah memiliki pip awalnya saya pikir cukup melakukan instalasi Jupyter dengan perintah pip install jupyter di Command Prompt. Menunggu cukup lama karena banyak paket program yang perlu diinstal. Oke, hal itu cukup normal. Dan kemudian masalah mulai timbul. Muncul teks merah, blablabla… failed. Alamak. Tepat di atas error message berwarna merah, ada keterangan Get it with “Microsoft Visual C++[…]

Setelah berhasil membuat dan mengubah file Excel menggunakan Python, mari mulai mencari studi kasus yang lebih mudah dikerjakan dengan bantuan Python alih-alih hanya Excel. Selalu menggunakan Python untuk semua kasus atau sebaliknya, menggunakan Excel saja untuk semua masalah yang dihadapi, adalah tidak efisien, gunakan alat yang tepat untuk masing-masing kondisi agar kita dapat segera meninggalkan layar komputer dan melanjutkan hidup. Hehehe. Di grup Excel diberikan soal seperti ini, jika ada nama pada kolom H yang mirip dengan nama pada kolom F, tampilkan nilai kolom I pada kolom G. Jika nama pada kolom H dan F sama maka kita dapat dengan mudah menggunakan fungsi vlookup. Namun vlookup sensitif sekali, beda satu spasi saja tidak akan menghasilkan keluaran yang kita harapkan apalagi[…]

Pada tulisan sebelumnya kita telah mendiskusikan bagaimana membuat file Excel menggunakan Python, pada tulisan berikut kita akan mendiskusikan bagaimana mengubah dan mengolah data pada Excel. Kita akan menggunakan satu kasus yang pernah ditanyakan di Grup Excel Indonesia. Anda dapat mendownload file Excelnya di sini lalu simpan dengan nama contoh_if.xlsx di folder kita sebelumnya d:\latihan_excel_python\. File di atas berisi daftar nilai siswa, tujuan yang akan dicapai adalah menentukan kelulusan tiap siswa dengan syarat. Nilai minimal 4,25 untuk setiap mata pelajaran dengan nilai rata-rata minimal 5,25 atau (LULUS) Boleh nilai minimal 4,00 pada salah satu mata pelajaran dengan nilai mata pelajaran lainnya minimal 6,00 (LULUS) Jika tidak memenuhi syarat tersebut (GAGAL) Jika (if) disebut pula conditional statement, kita akan bertanya pada Google[…]