BukuPythonProgramminguntukCivil Engineer
BukuPythonProgramminguntukCivil Engineer
01 November 2024
Kata Pengantar
Tentang Penulis
Mayoritas pengalaman penulis adalah andil sebagai design dan construction engineer pada proyek infrastruktur
laut seperti pelabuhan, jetty, dan reklamasi. Untuk riwayat pendidikan terakhir diraih dari Nanyang
Technological University ([Link]) serta program profesi insinyur yang diselenggarakan oleh Persatuan Insinyur
Indonesia (PII) dari Universitas Gadjah Mada (Ir.). Setelah lulus S1 pada tahun 2013, penulis bekerja sebagai
geotechnical engineer untuk perusahaan konsultan Witteveen+bos selama kurang lebih 4 tahun kemudian
bekerja sebagai in-house designer dan project engineer pada perusahaan kontraktor McConnell Dowell selama
kurang dari 2 tahun. Saat ini penulis sedang belajar untuk menjadi edukator.
Contact Me
Saran dan bug report email me at [Link]@[Link]
TABLE OF CONTENTS
1 INTRODUCTION 7
6.3 Contoh 2: Konversi tabel pada file pdf ke excel menggunakan Python. 71
10.1 Bagian - bagian website dan fundamental webscrapping & automation 109
10.1.1 Contoh 1 Mencari text sederhana pada suatu website 109
10.1.2 Contoh 2 Melakukan input text pada prosesi login 111
12 REFERENCES 119
APPENDICES Number of
pages
1 INTRODUCTION
Dalam prakteknya di dunia kerja, mahir dalam pengoprasian software khusus teknik sipil (seperti SAP2000,
Staad Pro, Plaxis) merupakan hal yang wajib bagi para insinyur milenial sesuai bidang ilmunya. Selain software
khusus tersebut, software lain seperti Microsoft excel juga wajib dikuasai, karena realitanya konsultan,
kontraktor, dan akademisi akan banyak menggunakan Microsoft excel dalam pekerjaannya. Penggunaan
Microsoft excel dapat diibaratkan seperti piring atau mangkok dalam menyantap suatu hidangan makanan,
yang sudah melekat dalam menunjang performa pekerjaan. Microsoft excel bagi banyak orang bersifat basic
yang sangat mudah dipelajari, sampai pada tahap advanced dimana pengoprasian excel juga dapat
digabungkan dengan bahasa pemrogramman bawaan dari software yaitu visual basic (VBA). Pengaplikasian
Bahasa pemrogramman ini dapat memaksimalkan potensi excel dan dapat membantu meningkatkan efisiensi
pekerjaan.
Dilansir dari [Link] [1], Top10 Bahasa pemrograman yang dapat dipelajari adalah Python. Berbeda
dengan VBA, Python merupakan general purpose programming language dan bukan merupakan bahasa
pemograman bawaan Microsoft Excel sehingga harus di install secara mandiri. Selain sifatnya untuk umum
atau apa saja (general purpose), Python juga dapat digunakan untuk mengganti VBA pada excel, dan dapat
digunakan untuk membuka potensi MS Excel. Penggantian VBA dengan Python pada excel ini ada maksudnya,
yang antara lain:
1. Python jauh lebih powerful dari pada VBA. Python memilik banyak libraries/add-on/packages yang
dapat digunakan dalam pemrogramman. Sebagai contoh analogi, adalah web browser google
chrome. Google chrome hanyalah sebatas internet browser biasa namun dapat di install banyak sekali
extension khusus yang berguna untuk suatu fungsi tertentu, misalkan adblock, VPN, download
manager, dan sebagainya. Dalam hal ini, Python merupakan induk bahasa pemrogrammannya namun
dapat juga di install dengan banyak sekali package baru yang dapat digunakan untuk urusan tertentu.
2. Python lebih mudah dipelajari dari pada VBA dan lebih mudah untuk di aplikasikan tidak hanya untuk
excel, namun juga untuk kegunaan lainnya. Sehingga, mempelajari pemrograman Python akan
sangat bermanfaat kedepannya untuk urusan lain diluar operasi excel.
3. Python mempunyai prospek yang dinilai cukup baik dalam 1 dekade kedepan. Sehingga mempelajari
Python dinilai tidak sia - sia dan akan bermanfaat bagi pelajar baik di dalam maupun di luar bidang
disiplin masing - masing.
Skenario pembelajaran dari buku ini adalah mengangkat tema tentang aplikasi Python untuk bidang ilmu
teknik sipil dengan juga menunjukkan kemampuan Python yang dapat di aplikasikan ke dalam ilmu teknik
sipil. Empat bab pertama pada buku ini merupakan core skill yang harus dikuasai oleh pembaca yang ingin
belajar Python. Dengan menguasai 4 bab pertama dalam buku ini, maka pembaca kedepannya akan
memudahkan pembaca dalam melakukan pengembangan skill secara mandiri.
Buku ini akan mengajarkan pembaca untuk menguasai basic operation Python dan aplikasi Python sebagai
imperative dan functional programming. Terlepas dari itu, Python juga dapat digunakan sebagai object-
oriented programming (OOP). Dari tingkat kesulitan, OOP merupakan style pemrogramman paling kompleks
dari yang lain. Untuk pembelajaran, pemula harus memulai belajar programming dengan imperative dan
functional programming. Jika telah terbiasa dengan style imperative dan functional, maka pelajar dapat
meningkatkan skillnya dengan mempelajari style object-oriented programming. Pada bab 1 - 4, script - script
yang diberikan untuk pembelajaran ditulis dengan style imperative dan functional sedangkan OOP dibahas
pada bab 9. Gambaran umum overview buku ini dapat dilihat pada Figure 1.1.
7 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Figure 1.1 Konten pada buku ini sekaligus jenjang yang harus dilalui untuk belajar Python untuk Mahasiwa dan praktisi Teknik Sipil
Imperative programming merupakan cara coding klasik dimana code harus ditulis secara step by step dan
straight forward. Sedangkan functional programming merupakan cara coding dengan menggunakan functions
yang dapat di declare di awal dan function tersebut dapat dipanggil pada posisi line mana saja. Ciri khas
8 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
pemanfaat function pada Python dapat dilihat pada penulisan kata “def” pada tubuh kode-nya. Kata def ini
merupakan function yang di definisi pada penulisan. Contoh perbandingan simple imperative dan functional
programming adalah Figure 1.2. Pada gambar tersebut, juga diberikan contoh sederhana object-oriented
programming (OOP). Ciri khas penulisan OOP adalah adanya “class” pada tubuh script-nya. Pemrogramman
dengan style OOP dibahas lebih lanjut pada bab 9.
Pada gambar bagian atas, dengan cara imperative penulisan kalimat ‘selamat datang di bab 1’ dapat di
eksekusi langsung menggunakan fitur print pada Python. Sedangkan jika ditulis dengan cara functional, seperti
yang terlihat pada gambar bagian tengah, maka function yang diinginkan harus di define terlebih dahulu, yang
diikuti dengan memanggil function tersebut beserta input variablenya untuk di eksekusi.
Figure 1.2 Imperative programming (atas), functional programming (tengah) dan object-oriented programming (bawah)
Software editor untuk melakukan Python programing disebut dengan Python IDE (Integrated development
environment). Pada buku ini, coding dilakukan dengan menggunakan Pycharm professional sebagai Python
IDE. Pembaca juga bisa mengunakan Anaconda - Spyder dan Jupyter atau menggunakan Microsoft Visual
Studio. Untuk langkah awal belajar Python gunakan Jupyter Notebook, Python IDE yang support dengan
Jupyter Notebook dapat dilihat pada Table 1.1.
Table 1.1 Rekomendasi Python IDE yang support dengan Jupyter Notebook
Tujuan utama belajar Python adalah menggali potensi Python untuk dapat di aplikasikan pada profesi anda,
khususnya dalam hal ini adalah sebagai praktisi teknik sipil. Untuk itu diharapkan buku ini dapat menginspirasi
pembaca yang tertarik untuk mengaplikasikan Python pada profesinya. Pada buku ini diberi 20 contoh script
yang sudah ditulis dengan berbagai variasi tingkat kesulitan. Hal itu untuk mengukur beberapa parameter
dengan maksud:
• Analoginya adalah Ibarat orang belajar bahasa tertentu, misalkan bahasa Jepang. Ada orang yang
paham jika mendengar conversation dalam bahasa Jepang namun tidak dapat berbicara dan menulis
kanji. Setidaknya, buku ini semoga dapat menginspirasi dan membantu anda dalam mengetahui
bahasa Python meskipun tidak dapat aktif membuat script Python dari awal (from scratch).
9 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
• Tingkat yang lebih tinggi dari memahami bahasa adalah setidaknya, user yang belajar suatu bahasa
pemrogramman, mampu memodifikasi dan improvisasi dari script yang sudah ditulis di buku ini atau
script dari sumber yang lain seperti internet yang mungkin dapat di aplikasikan di dunia anda.
• Pemahaman yang paling tinggi adalah membuat script secara mandiri untuk anda aplikasikan dan
dapat mengetahui apa yang anda butuhkan untuk tercapainya tujuan anda. Buku ini semoga dapat
menjadi batu loncatan awal, untuk mengeksplorasi potensi Python lebih dalam pada profesi anda.
Table 1.2 Contoh script pada buku ini dengan tingkat kesulitan (skala 1 - 10)
Contoh 4 Perhitungan SFD dan BMD pada simply supported beam 7 Bab 2
Contoh 7 Perhitungan effective stress suatu soil profile menggunakan dataframe pandas 6 Bab 3
Contoh 12 Animasi perhitungan gaya tiang pancang karena terjangan ombak di laut 10 Bab 4
Contoh 15 Integrasi python dengan excel: melakukan rekap excel dari data table pdf 6 Bab 6
Contoh 20 Pembuatan module Python dengan OOP. Contoh kasus perhitungan iterasi dengan 7 Bab 9
secant method
Contoh 21 Melakukan otomasi dan webscrapping respons spektra dan PGA pada Aplikasi Lini 7 Bab 10
PU
10 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
1.5 Python dan package version yang dipakai pada buku ini
Untuk melihat versi software dan package dapat dilihat pada table di bawah.
Table 1.3 Python packages version yang dipakai pada buku ini
Deskripsi Versi
Python 3.11
pandas 2.2.2
xlwings 0.32.1
handcalcs 1.6.5
forallpeople 2.6.7
plotly 5.24.1
11 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
2 BASIC OPERATION PADA PYTHON
Setelah anda melakukan installasi yang telah dijelaskan pada bab 1, untuk belajar programming anda dapat
langsung mencoba code - code yang disajikan pada bab ini secara berurutan. Pada bab ini akan dijelaskan
mengenai operasi dasar pada Python. Untuk pertama kali gunakan Jupyter Notebook untuk memulai belajar
python programming.
• Pada Jupyter Notebook, tekan ctrl + enter untuk mengeksekusi code yang telah ditulis untuk melihat
output.
• Buat code block baru untuk setiap code baru dengan menekan tombol + .
• Full Input code beserta output yang digunakan pada buku ini dapat dilihat pada Appendix.
Masukkan code - code berikut secara berurutan pada Jupyter notebook anda.
Untuk menulis string dapat menggunakan ‘kata’ atau “kata“. Penggunaan ‘ ‘ atau “ “ tergantung pada selera
dan kebiasaan masing - masing.
Python memiliki 4 jenis data yaitu integer, float, string dan boolean. Untuk melakukan checking jenis data
suatu variable dapat menggunakan code: type(variable_yang_ditinjau).
Sedangkan jenis data string hanya dapat ditambahkan dengan jenis data string yang sama. Sehingga
diperlukan konversi jika ingin menambahkan angka (baik int atau float) dengan string.
2.1.3 List
List pada Python dapat dibuat dengan melakukan assign dengan [ ]. List merupakan fitur Python yang sangat
- sangat penting yang nantinya dapat digunakan untuk berbagai kegunaan. Pelajari lebih lanjut tentang list
"[Link] .
12 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
List pada Python
Pada subbab ini akan dijelaskan fitur statements yang sangat penting pada Python.
Gunakan in sebagai statement untuk menanyakan apakah suatu variable terdapat pada suatu list.
13 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Statement if dan else sangat berguna untuk menanyakan dua opsi yang akan terjadi.
Pada Python memungkinkan untuk setup multiple statement dengan if, elif (else if) dan else. Gunakan and
untuk melakukan multi kriteria.
Pada Python, untuk melakukan operasi matematika sangat straight forward. Pada sub bab ini akan diberikan
beberapa contoh sangat basic operasi matematika dasar.
Contoh trigonometri.
14 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Untuk melakukan matematika dasar tertentu, user dapat menggunakan beberapa addon/packages pada
Python seperti numpy, scipy, dan simply. Pada sub bab ini diberikan contoh penggunaan numpy untuk operasi
matematika.
3 6 1 2
Contoh matrix 1 [ ]×[ ]
2 4 4 5
10 11
1 2 3
Contoh matrix 2 [ ] × [20 21]
4 5 6
30 31
Pada subbab ini dijelaskan mengenai Python general operation lanjutan dari subbab sebelumnya.
Melakukan loop merupakan hal yang akan sering dilakukan dalam programming. Pada buku ini akan dijelaskan
beberapa cara melakukan loop yang nantinya akan berguna dalam pemrogaman. Pada fitur loop ini, jumlah
putaran loop harus ditentukan di awal.
Pada contoh dibawah dilakukan loop pada variable i. dimana nilai awal i adalah 1. Kemudian nilai i akan
ditambah dengan angka 3 selama 7x putaran.
Pada contoh di atas penggunaan variable loop menggunakan kata “angka”. Pada prinsipnya, setelah for dapat
diganti dengan variable apa saja. Dalam contoh dibawah, kata angka diganti menjadi x. Kemudian operasi
i = i + 3 dapat disederhanakan menjadi i += 3 . Penyederhanaan ini juga berlaku pada operasi
matematika yang lain seperti pengurangan (-=), perkalian (*=), dan pembagian (/=).
15 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Di dalam loop juga dapat digunakan untuk mengupdate suatu list tertentu.
Loop juga memungkinan untuk memulai tidak dari angka 0. Contoh dibawah x awal adalah 2.
Loop juga dapat dilakukan dengan interval tertentu. Pada contoh dibawah akan menghasilkan deret 0 , 2 , 4, .
. . . ,16, 18.
Selain angka, variable loop juga memungkinan untuk menghasilkan string. Pada contoh dibawah, semua
element pada list akan di print satu per satu.
Jumlah putaran pada loop in list sebanyak jumlah element pada list tersebut. Dalam contoh di bawah, jumlah
element list_belanjaan adalah 4 buah item, sehingga loop akan dilakukan 4x.
16 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Modifikasi menggunakan in range dan len suatu list akan sering dilakukan pada kasus tertentu seperti contoh
di bawah.
Contoh lain adalah dengan memanfaat variable loop (i) untuk memanggil element pada suatu list. Hal ini akan
sangat sering dilakukan pada banyak kasus pemrograman.
Loop juga bisa digunakan untuk membuat global variable baru. Pada contoh di bawah, dilakukan pembuatan
global variable baru dengan format nama_i . Penjelasan mengenai global dan local variable akan dijelaskan
pada subbab function.
Penggunaan enumerate() untuk meningkatkan efisiensi loop anda. Coba code di bawah.
17 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Practical Example 1: fc beton dan Modulus beton
Suatu list kuat tekan beton (fc) dengan nilai 15 MPa, 20 MPa, 30 MPa, 40 MPa, 50 MPa, dan 60 MPa.
Jika 𝐸𝑏𝑒𝑡𝑜𝑛 = 4700 √𝑓𝑐 , berapa modulus beton dan buat list nya.
Practical Example 2: List ganjil dan genap dengan loop (pengenal konsep modulo)
Suatu list angka dari 1 sampai 1000 akan dilakukan grouping antara angka ganjil dan angka genap. Buat list
dari pengelompokan tersebut.
Maksud operasi matematika == diatas memiliki makna “sama dengan”. Sedangkan != memiliki makna “tidak
sama dengan”. Pada Python Jika anda ingin menyatakan suatu if statement dengan nilai “sama dengan” tidak
bisa menggunakan satu buah =.
2.3.3 Dictionary
Selain dari pada list, fitur Python yang penting untuk melakukan grouping adalah dictionary. Dictionary terdiri
dari “key” dan “value” dimana posisi key dan value terletak di dalam curly bracket dan dipisah dengan titik dua
( : ).
Contoh dictionary. Jika code dibawah di run maka akan menhasilkan nilai 50. Berbeda dengan list, untuk
memanggil value pada dictionary, maka diharuskan untuk menggunakan string ‘key’ dictionary nya.
Untuk menambah data dictionary berbeda dengan penambahan list. Penambahan data, pada dictionary
seperti pada contoh di bawah.
18 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
2.3.4 Nested List dan Dictionary
Penggunaan antara list dan dictionary dapat digabungkan, biasa dinamakan dengan nesting. Bisa dimulai
dengan dictionary dahulu atau sebaliknya.
Contoh pertama. Loop akan dilakukan sampai suatu batas tertentu sudah tercapai.
19 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Contoh kedua. Loop akan dihentikan jika kondisi terpenuhi dengan statement yang jelas.
Penggunaan function pada Python dimulai dengan menulis def kemudian judul serta variable dalam function
tersebut.
Pada contoh dibawah dibuat 4 function dengan judul f dan variable x. Lakukan restart kernel pada Jupyter
pada setelah running pada tiap-tiap contoh function untuk melihat perbedaannya. Untuk memanggil function,
tuliskan f(variable).
• Contoh 1A akan memberikan nilai error, hal ini karena global variable c belum ter-define. Error ini
terjadi karena pada print f-string dipanggil nilai variable c sedangkan nilai c yang tersedia adalah
variable local yang terisolasi pada function. Jika kalimat print terakhir dihapus, maka tidak terjadi error
selama nilai c tidak dipanggil.
• Contoh 1B berbeda dengan function contoh 1A, dan disini tidak terjadi error. Hal ini karena nilai local
variable c pada function tersebut telah di angkat sebagai global variable dengan cara menuliskan
global variable_yg_diinginkan di dalam function. Sehingga proses print berhasil.
• Contoh 1C. Terdapat dua nilai c pada posisi local dan global. Dapat dilihat bahwa nilai dari f(x)
adalah 30 dimana telah digunakan local variable c =10 untuk menghitung f(x), namun pada hasil
print digunakan global c =5.
• Contoh 1D memberikan nilai f(x) adalah 25 dan nilai global c=5. Hal ini karena tidak di define local
variable c dalam program.
Contoh 1A
Contoh 1B
20 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Contoh 1C
Contoh 1D
Faktor adalah angka atau bilangan yang dapat membagi suatu angka hingga habis. Jika ditanya faktor dari
angka 25 adalah 1, 5, 25 (karena 1 × 25 = 25, 5 × 5 = 25, 25 × 1 = 25). Tulis sebuah script dengan python
untuk mencari factor dari suatu angka.
Diketahui bahwa bilangan prima adalah 2 , 3, 5, 7, 11 dan 13. Suatu bilangan tertentu adalah komposisi dari
bilangan – bilangan prima. Sebagai contoh, komposisi faktorisasi prima dari angka 84 adalah 2 × 2 × 3 × 7 =
81, Tulis sebuah script python untuk penentuan faktorisasi prima sebuah angka.
Tips:
n//=1 adalah n = n / i dengan hasil integer
n/=1 adalah n=n / i dengan hasil float
21 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
2.5.3 Bilangan pangkat
Untuk menyelesaikan problem ini dapat digunakan metode iterasi seperti secant, Newton, Brentq, dsb. Namun
perlu diketahui bahwasanya nilai x akan bervariasi seperti yang di ilustrasikan pada Figure 2.1. Untuk itu, user
harus menentukan range nilai x yang masuk akal untuk digunakan dalam iterasi.
Sebagai contoh, carilah nilai 𝑥 jika (1.19𝑥 2 + 3.66𝑥)5 − 515(3.11𝑥 + 3.66)2 = 0. Equation ini adalah equation
yang di dapat dalam penentuan tinggi penampang dari hidrolika saluran terbuka [2]. Kemungkinan, nilai range
yang masuk akal adalah berkisar 0 < 𝑥 < 10m.
22 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Figure 2.1 Ilustrasi temuan nilai x yang bervariasi pada suatu problem iterasi [3]
Tips:
Hati – hati dalam penentuan nilai x awal yang
digunakan untuk iterasi karena nilai x bisa tidak
sesuai ekspektasi ! !
Metode Newton
Metode Secant
Metode Brentq
23 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
2.5.8 Hitungan tangan
Python memungkinan untuk mengexpresikan hitungan tangan dengan module handcalc. Di bawah diberikan
contoh penulisan tulisan tangan dengan modul handcalc untuk rumus bearing capacity fondasi dangkal.
Penggunaan modul ini dijelaskan lebih detail pada bab 7.
Practical Example 4. Perhitungan shear force dan bending moment pada simply supported beam
Buatlah sebuah program tentang uniform load simple beam, dengan teori dibawah. Pada contoh ini, abaikan
pembuatan grafik SFD dan BMD terlebih dahulu. Namun, berikan summary hasil hitungan SFD dan BMD
sebagai list dengan hasil perhitungan dengan interval 0.1 m sepanjang bentang.
Jawaban:
Dibuat 3 functions yang memiliki perbedaan cara penulisan pada variable assignments-nya. Pada contoh ini,
perbedaan ini tidak menimbulkan masalah karena code ditulis dengan menggabungkan imperative
programming dengan functions. Berbeda halnya jika code harus ditulis murni menggunakan functional
programming, maka variable assignments harus dimodifikasi yang akan di bahas pada Practical Example 10.
Pure functional programming dengan chart.
24 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
25 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
2.5.9 Input prompt
Pada Python juga memungkinkan untuk menggunakan input prompt dalam mengisi suatu variable. Input
prompt merupakan jendela yang muncul ketika program di run. Sebagai contoh pada
Practical Example 4. Input geometry dapt di modifikasi sebagai berikut. Sehingga setelah program di run maka
akan muncul pop-up window untuk mengisi variable - variable tersebut. Penting digaris bawahi bahwa jenis
data pada input prompt adalah string sehingga jika dibutuhkan sebagai input angka maka harus dikonversi
sebagai float atau integer.
Buat sebuah program sederhana menggunakan input prompt yang digunakan untuk menghitung time factor
(Tv) dari nilai derajad konsolidasi (U, %) gunakan rumus pada Figure 2.2.
Figure 2.2 Rumus perhitungan Tv berdasarkan derajad konsolidasi (diambil dari [4]).
Jawaban:
26 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Practical Example 6. Perhitungan korelasi γd;max untuk tanah cohesive
Buat sebuah program sederhana untuk menghitung γd;max pada tanah berbutir halus menggunakan metode
korelasi yang terdapat pada
Figure 2.3 Rumus perhitungan korelasi γd;max dengan parameter Atterberg Limits (diambil dari [4]).
Jawaban:
Berdasarkan Das and Sobhan (2013) [4] halaman 161.
27 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
3 DATAFRAME ANALYSIS PADA PYTHON
Pada bab sebelumnya telah dipelajari dasar - dasar pengropasian Python. Kemampuan tersebut dapat
digunakan untuk analysis lebih lanjut dengan melakukan data analisis menggunakan table/dataframe. Proses
analisis maupun hasil analisis akan lebih mudah dilakukan dan dipahami jika dilakukan dengan menggunakan
melakukan tabulasi.
Salah satu addon Python untuk melakukan tabular data analysis adalah menggunakan pandas. Pandas
mempunyai ratusan functions dalam mengolah data table.
• Pada bab ini akan diberikan contoh - contoh pilihan operasi Python menggunakan pandas.
• Hasil output dapat dilihat di Appendix.
• Dalam proses pembelajaran coding. Browsing dengan google merupakan hal yang wajib dilakukan
untuk mencari solusi pada setiap masalah. Solusi dari hampir semua masalah Python coding dapat
dicari pada website seperti [Link], [Link], dsb.
Tiap - tiap kolom pada dataframe / table dapat dibuat dengan melakukan assign satu per-satu seperti yang
terlihat pada kotak di bawah.
• Pada dasarnya pembuatan kolom baru dapat dengan mudah dilakukan dengan menggunakan code
dataframe_anda[“nama_kolom_baru”] = list_nilai
Cara1: satu persatu
28 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Cara 2: bulk
Di bawah ini merupakan contoh template pembuatan data frame dengan dictionary. Pembuatan dataframe
dengan dict, harus mengikuti format yang bisa dibaca oleh Pandas. Salah satu formatnya dapat dilihat pada
kotak di bawah,
Dari proses yang sudah dilalui dari sub bab sebelumnya, hasil dari pada dataframe df_belanjaan dapat dilihat
pada Figure 3.1. Pada sub bab ini akan dilakukan data analisis dengan beberapa fitur pandas terpilih yang
telah tersedia.
Figure 3.1 Hasil pembuatan dataframe df_belanjaan. Dibuat dengan Jupyter Notebook memakai Pycharm professional
Dibuat kolom baru dengan nama kolom [“jumlah x harga_satuan”]. Kolom ini dibuat dari mengalikan
kolom “jumlah” dengan kolom “harga_satuan”.
29 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Contoh operasi Analisa dasar dari hasi dataframe.
Untuk melakukan filtering dataframe yang sudah dibuat dapat menggunakan fitur query pada pandas.
Contoh Filtering data: Tampilkan data dengan nilai lebih dari 5 pada kolom jumlah.
Contoh Filtering data: Dengan multi kriteria dimana harga satuan > 2700 dan jumlah > 2.
30 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
3.2.3 Pandas groupby
Fitur pandas yang penting juga adalah penggunaan function groupby. Dimana dataframe dapat
dikelompokkan menggunakan parameter/value dari suatu kolom tertentu.
Contoh groupby: Pengelompokkan dataframe berdasarkan jenis barang “alami” atau “pabrikan”
Untuk mengetahui data teratas atau terbawah pada suatu dataframe dapat digunakan feature nlargest dan
nsmallest.
Figure 3.2 index pada df_belanjaan original yang didapat dari sub bab sebelumnya.
31 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Penggunaan iloc dan loc sebagai data slicing memiliki kemiripan. Untuk mengetahui nilai baik sebuah nilai,
rombongan row atau kolom maka dapat menggunakan:
• data_frame_anda.iloc [ row_awal:row_akhir , kolom_awal:kolom_akhir ] dimana
koordinat iloc dalam bentuk index angka dari row atau kolom
• data_frame_anda.iloc [ row_awal:row_akhir , kolom_awal:kolom_akhir ] dimana
koordinat loc dalam bentuk “nama” dari index row atau kolom
Jika posisi iloc menggunakan [ : , : ], maka akan menampilkan semua data frame
Jika posisi loc menggunakan [ : , : ], maka akan menampilkan semua data frame
Jika dilakukan operasi iloc dengan posisi [3,4], hasilnya adalah 15000.
Jika dilakukan operasi loc dengan posisi [3, “harga_satuan”], hasilnya sama yaitu 15000.
Jika dilakukan operasi iloc atau loc dengan satu angka akan memberikan nilai row pada posisi angka tersebut.
32 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Jika posisi koordinat kolom di hapus maka, akan memberikan dataframe dengan range row seperti di bawah.
Koordinat kolom juga dapat di isi sebuah angka dengan separator koma seperti yang terlihat pada kotak di
bawah. Dengan iloc, koordinat angka 1 pada kolom adalah kolom “jenis”. Untuk loc, harus ditulis dengan nama
dari index nya.
33 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Pandas juga memungkinkan untuk menampilkan kolom - kolom pilihan saja.
Pada dataframe df_belanjaan sebelumnya , index kolom menggunakan nama angka. Pandas memungkinkan
untuk merubah posisi index kolom menjadi kolom yang lain.
Berikut adalah contoh merubah posisi index kolom menjadi “belanjaan”. Dataframe yang sudah di rubah index
kolomnya dapat di assign dengan variable baru jika diperlukan.
34 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Jika ingin mereplace dataframe yang lama tanpa membuat dataframe dengan variable baru gunakan feature
inplace=True.
Karena index kolom sudah berubah maka koordinat data slicing dengan feature loc juga berubah.
35 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
3.2.7 Melakukan sort pada dataframe
Dataframe dapat di urutkan ascending atau descending yang mengacu pada suatu kolom tertentu.
Pada contoh ini, akan di inplace dataframenya dengan mengurutkan harga satuan.
36 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
3.2.8 Melakukan reset index
Pada subab 3.2.6, index kolom sudah di inplace dengan nama belanjaan. Untuk mereset index ke semula dapat
menggunakan reset_index lalu inplace. Maka dataframe akan Kembali seperti format index default.
37 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
3.2.10 Merubah cell value dengan iloc dan loc
Iloc dan loc dapat digunakan untuk merubah nilai cell pada suatu dataframe. Pada kotak dibawah ini, cell
koordinat 2, 4 dirubah menjadi 7000, namun hasil dari pada jumlah x harga_satuan masih 24000 karena code
yang lama tidak di run ulang.
Sebagai contoh nilai jumlah x harga_satuan tomat dari 24000 diganti menjadi 28000 secara manual dengan
feature loc seperti Nampak pada kotak di bawah ini.
Fitur pandas yang juga bermanfaat untuk digunakan adalah cumsum. Dimana pandas akan menghitung nilai
kumulatif suatu kolom tertentu.
38 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
3.2.12 Pandas “index – match” seperti excel
Untuk melakukan index-match dari dua data yang berbeda pada pandas, maka dapat digunakan fitur merge
yang contohnya adalah sebagai berikut.
Diketahui:
Table 1. Daftar Belanjaan diambil dari contoh – contoh sebelumnya
Jika diinginkan bahwa table bekal toni harus diupdate dengan harga satuan yang diambil dari table 1. Maka
Langkah pertama adalah memfilter table 1 yang menyisakan kolom yang dicari dengan kolom patokan, yang
mana disini hanya kolom “belanjaan” dan “harga_satuan”. Setelah itu dapat digunakan fitur merge seperti pada
illustrasi di bawah.
Pada sub bab ini, digunakan dataframe yang berbeda dari sebelumnya. Contoh kali ini akan menggunakan
data dari file csv dari hasil soil investgasi suatu daerah.
• Terdapat dua data, data pertama merupakan summary soil profile dan data kedua adalah data SPT
• Misi utamanya adalah membuat dataframe yang mendetail dari hasil soil profile dengan membreak
down soil profile tersebut ke interval yang lebih kecil yaitu 0.01 m (1 cm).
• Selain itu, jika kedalaman air adalah 1 m, hitung effective stressnya sampai kedalaman 12 m.
• Ingat bahwasanya, untuk mengerjakan ini dengan Python tentunya ada banyak jalan/cara dan logika
masing - masing untuk menyelesaikannya. Pada contoh ini diberikan contoh dua buah tipe pandas
39 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
function terpilih yang sering digunakan pada analisis teknik sipil. Pandas functions baik assign dan
lambda apply pada contoh di bawah merupakan template yang sudah pakem. Teliti dan pelajari
dengan seksama untuk mengasah skill programming anda.
Langkah 1. Import data csv dan hitung jumlah layer. Dua file csv yang di import akan langsung dirubah
menjadi dataframe
depth dalam meter, gsat = saturated unit weight (kN/m3), gunsat = unsaturated unit weight (kN/m3)
Langkah 2. Membuat general parameter untuk batas kedalaman dan membuat dataframe soil_top. Dataframe
soil_top merupakan benchmark data dan merupakan batas transisi antara layer yang satu dengan layer yang
lain yang nanti akan digabung dengan dataframe yang lain.
Langkah 3. Membuat dataframe utama dengan nama df_calculation. Dapat dilihat bahwa total row adalah
1200 buah, Hal ini karena interval data adalah 1 cm dengan kedalaman total 12 m. Lakukan pembulatan pada
kedalaman, hal ini penting dilakukan guna mencegah numerikal problem yang sering terjadi pada numpy (e.g
0.21 m ditulis 0.2099999999999999999999).
40 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 4. Menggabungkan dataframe utama, soil_top, dan spt, dengan feature pandas join. Penggunaan
fitur join memerlukan benchmark pada tiap - tiap dataframe. Untuk dijadikan benchmark, kolom acuan perlu
dijadikan sebagai index kolom (set_index). Dalam contoh ini digunakan benchmark depth_top sebagai
acuan penggabungan semua data. Cell value pada tiap - tiap kolom dataframe akan otomatis di assign ke
kedalaman depth_top yang sama dengan data asal.
Langkah 5. Mengisi cell yang kosong dengan fillna-ffill method. Dengan ffill ini pandas akan
otomatis mengisi NaN value suatu cell dengan cell diatasnya. Sebagai contoh pada bagian soil_type, pada
kedalaman 0 - 3 akan di isi sebagai sand - medium dense karena posisi dataframe soil_top yang telah dijadikan
benchmark diantara data kosong. Selain itu, karena nilai N-SPT berawal dari kedalaman 1 m, maka nilai N-SPT
pada permukaan tidak terisi.
41 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 6. Untuk itu nilai NSPT harus dimodifikasi dengan asumsi bawah nilai N-SPT permukaan sama dengan
nilai N-SPT yang muncul pertama pada kedalaman 1 m, lalu ulangi proses ffill.
Langkah 7. Membuat kolom baru berjudul status untuk dilakukan checking posisi kedalaman apakah di atas
atau di bawah muka air. Proses checking menggunakan metode apply lambda. (Tipe function 1)
42 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 8. Membuat kolom untuk perhitungan Δtotal stress. Proses perhitungan Δtotal stress menggunakan
metode pandas assign sesuai interval kedalaman. (Tipe function 2)
43 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Practical Example 7. Pembuatan table/dataframe untuk database SNI beton.
Pada Practical Example 3, telah dibuat sebuah data base dictionary campuran beton berdasarkan SNI. Buat
dataframe menggunakan dictionary tersebut.
Jawaban:
Secant method:
44 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Jawaban:
45 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
4 PEMBUATAN CHART/GRAFIK PADA PYTHON
Hasil analysis yang telah dilakukan menggunakan pandas dapat di visualisasikan pada Python. Untuk
memvisualisasi data, maka dibutuhkan juga module/addon pendukung seperti plotly, seaborn, matplotlib dan
lain sebagainya. Pada buku ini digunakan plotly dan matplotlib sebagai modul visualisasi. Untuk melakukan
visualisasi, ada point - point penting yang harus diketahui:
• Plotting grafik menggunakan plotly dan matplotlib dapat mengikuti contoh template yang tersedia
online kemudian dapat di modifikasi sesuai keinginan. Untuk dapat memodifikasi suatu chart, maka
user harus terbiasa dan harus melakukan trial error dalam memodifikasi code yang ada.
• Solusi, variasi contoh code, dan cara memodifikasi grafik, biasanya sudah tersedia online dari website
seperti [Link], [Link], dsb.
• Contoh kode yang diberikan akan nampak rumit di awal, namun jika sudah terbiasa akan sangat
mudah untuk di aplikasikan.
Pada buku ini diberikan 2 contoh pembuatan grafik yang sering digunakan pada analisis excel yaitu scatters
plot dan lines chart.
Pada dasarnya, baik menggunakan plotly ataupun matplotlib, pembuatan grafik jenis scatters plot memerlukan
data sumbu x dan data sumbu y. Data sumbu x dan y dapat berupa Python list ataupun numpy functions,
selama jumlah element dalam list sama, akan meminimalisir masalah.
Figure 4.2 Data shear force dan bending moment sebagai sumbu y
46 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
4.1.1 Single plot Matplotlib
47 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
4.1.2 Subplot dengan Matplotlib
Contoh template subplot atau multi plot dengan matplotlib (dimodifikasi dari [5])
• Pada plot dengan subplot, sketsa pembebanan juga ditambahkan dengan sumbu x adalah
surcharge_x dan sumbu y adalah surcharge_y
• Plotting dengan subplot mengharuskan kita untuk men-define posisi grafik dengan row dan column:
o Row 1: grafik sketsa beban
o Row 2: grafik shear force diagram
o Row 3: grafik bending moment diagram
48 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
4.1.3 Single plot dengan Plotly
Penggunaan plotly sebagai add on visualisasi dinilai lebih mudah dari pada menggunakan matplotlib. Alur
logika template ploltly lebih mudah dipahami, dan lebih mudah untuk di lakukan editing.
• Figure dibawah telah di invert sumbu y nya. Pada plotly ada beberapa cara untuk melakukan inversi
salah satunya adalah mendefine range pada y axis seperti range = [Mmax , 0]. Edit range tersebut
sebagai range = [0, Mmax] lalu lihat perbedaannya.
• Interval tick daripada grafik ini adalah linear, bisa juga dirubah menjadi logaritmic dengan mudah
dengan merubah tickmode = “log” .
• Lakukan trial dan error sehingga grafik yang di inginkan tercapai.
• Info lebih lanjut dapat mengunjungi [Link]
49 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
50 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
4.1.5 Row dan Kolom pada subplot
Informasi tambahan mengenai adjustment komposisi subplot pada plotly dan matplotlib memiliki logika yang
sama. Diberi contoh ilustrasi pada Figure 4.3, terlihat bahwa komposisi memiliki row = 3 dan kolom = 2.
Figure 4.3 Komposisi row dan kolom pada subplot pada matplotlib dan plotly
51 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Gathering Data:
Pergi ke [Link] , lalu digitasi tiap-tiap coeffient C1, C2, dan C3 dari grafik tersebut. Setelah itu, copy
Python list dengan menekan tombol yang dilingkari merah.
Jawaban:
Pada grafik, terlihat bahwa grafik mempunya 2 sumbu Y yang berbeda. Sumbu Y1 untuk C1 dan C2 dan sumbu
Y2 untuk C3. Plotting grafik akan menggunakan Plotly.
52 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Plotly code:
53 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Output:
54 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
55 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
4.2 Animated images menggunakan matplotlib
Konsep dari pada animasi visual dengan matplotlib yang diberikan pada buku ini adalah melakukan plot dari
hasil semua hitungan secara bertahap menggunakan dataframe - dataframe yang telah dibuat dari hasil semua
hasil perhitungan.
Pada sub bab ini akan divisualisasikan gaya yang terjadi pada tiang pancang ketika diterjang ombak di laut.
Datangnya gelombang merupakan suatu yang periodik, dimana pada suatu t tertentu merupakan puncak
ketinggian ombak (Hmax) yang menimbulkan gaya terbesar pada tiang pancang. Fenomena ini bisa di
visualisasikan dengan Python.
Figure 4.5 ilustrasi besarnya gaya yang terjadi pada tiang pancang ketika diterjang ombak
Baca: [7]
56 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Semakin komplek suatu program untuk dibuat maka untuk memudahkan proses pemrogramman ada baiknya
dibuatkan design flow rencana (flow chart) sebelum memulai coding. Pada contoh ini, design flow coding
dapat dilihat pada Figure 4.6.
Figure 4.6 Design flow contoh animasi gaya pada pancang karena ombak.
57 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
58 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Link youtube: youtube video
59 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
5 PEMROGRAMMAN PURE PYTHON
Perlu dipahami bahwasanya programming tidak serta merta harus membuat software kongkrit yang di-install
pada komputer. Pada dasarnya, programming adalah sebuah cara/metode/code yang ditulis untuk komputer
untuk membantu menyelesaikan masalah kita. Dalam mempelajari core knoweldge yang sudah dibahas pada
4 bab sebelumnya, telah digunakan Jupyter notebook dalam pembelajaran. File notebook memiliki format
.ipynb dimana jenis file ini adalah file extension Jupyter notebook asli. Perlu digaris bawahi bahwa Jupyter
notebook merupakan platform turunan pada Python yang umumya digunakan sebagai Python IDE yang
berbasis web, interactive dan user friendly sehingga sering digunakan untuk platform pembelajaran [8].
Berbeda dengan Jupyter, sebenarnya format file asli (native) Python adalah .py yang mana file extension ini
berbeda dengan Jupyter notebook. Sehingga pada dasarnya, pemrogramman Python bisa dilakukan
menggunakan Python murni tanpa notebook yang akan di bahas pada bab ini.
Untuk melakukan pemrogramman dengan pure Python, maka dapat digunakan Anaconda Spyder, Pycharm,
atau MS Visual Studio sebagai Python IDE (Figure 5.1). Jika menggunakan Pycharm dan Spyder maka otomatis
anda akan melakukan coding pada format .py by default.
Pada dasarnya bahasa yang ditulis jika menggunakan Python murni adalah sama dengan bahasa notebook.
Jika ingin memindahkan code yang ditulis pada .ipynb ke .py maka semua code pada notebook harus
disatukan pada editor. Pada contoh dibawah telah diambil contoh dari Practical Example 8. Perhitungan iterasi
menggunakan secant method menggunakan format .py. Tidak ada perbedaan yang besar antara code
sebelumnya dengan code di bawah, hanya saja untuk menampilkan dataframe dapat dilakukan dengan 3 cara:
• print(df_recap) secara langsung
• display(df_recap) menggunakan [Link].
• Modul tabulate
60 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
61 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
6 INTEGRASI PYTHON DENGAN EXCEL
Pada bab sebelumnya telah dipelajari dasar - dasar coding dengan Python, dimana semua input dan analysis
hitungan dilakukan di dalam Python. Pada bab ini akan di tunjukkan bagaimana integrasi Python dengan Excel.
Idenya adalah merubah input pada Python menggunakan Excel yang nantinya input tersebut akan di analisis
dengan menggunakan Python, lalu hasil analisis akan dikembalikan/ditunjukkan kedalam Excel. Pada buku ini
digunakan modul xlwings untuk menggabungkan Python dengan Excel .
Figure 6.1 Excel sebagai input/frontend (kiri) dan Python sebagai data processing/backend (kanan)
Penggunaan modul xlwings dapat digunakan untuk membaca file excel baik dengan format .xlsx ataupun
.xlsm. File excel yang dibaca juga dapat di update dengan modul xlwings melalui Jupyter Notebook. Jika tanpa
menggunakan Jupyter, misalkan ingin menggunakan tombol VBA excel untuk memproses data, maka untuk
melakukan hal itu diperlukan persiapan khusus pada file excel yang akan digunakan. Baik menggunakan
Jupyter atau tidak, untuk dapat read-writing menggunakan xlwings pada excel secara realtime, diperlukan
modul xlwings serta kaleido yang terinstall pada komputer anda. Selain itu, jika excel yang dibuat dengan
xlwings ini ingin di kirim ke orang lain, maka orang tersebut juga harus menginstall Python dan modul - modul
pendukung terlebih dahulu. Cara menggunakan xlwings pada komputer memerlukan dua modul utama untuk
diinstall antara lain:
• Modul xlwings (e.g. ketik pip install xlwings pada Anaconda Prompt)
• Modul kaleido (e.g. ketik pip install kaleido pada Anaconda Prompt)
Diberikan data template yang dapat dilihat pada Figure 6.3. Data pertama nerupa table general parameters
berisi nama, tanggal dan koordinat. Data kedua, tabel hasil sondir. Ditanyakan:
• Visualisasikan hasil tes sondir yang diberikan dengan menggunakan metode non-normalized SBT [9].
• Pindahkan hasil plot CPT dengan Python ke dalam excel sheet ke-1 dengan nama “start”
• Pindahkan hasil analisis SBT dengan Python berupa dataframe ke dalam excel sheet ke-2 dengan
nama “summary”
• Rencana design flow chart dapat dilihat pada Figure 6.2.
62 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Figure 6.2 Design flowchart
63 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
6.2.1 Menggunakan Jupyter Notebok
Jawaban:
Langkah 1. Pastikan nama sheet pada excel sudah sesuai. Jika belum lakukan rename/buat sheet data CPT
dengan nama start dan buat worksheet baru dengan nama summary
Langkah 2. Import data pada excel ke dalam Python dengan modul xlwings.
Cara membaca table pada excel dapat dilakukan dengan dua cara:
Cara 1: metode options yaitu menentukan range tertentu pada excel untuk dirubah menjadi pandas
dataframe. Pada contoh di bawah, general parameters range[“B3:D8”] dirubah menjadi pandas
dataframe dengan metode options.
Cara 2: metode expand yaitu merubah data excel menjadi pandas dataframe dengan menentukan suatu
titik benchmark yang nantinya dataframe akan dibuat secara otomatis dari titik benchmark dengan
melakukan expansi ke tepi bawah dan tepi kanan table pada excel. Pada contoh di bawah, digunakan
titik [”B10”] sebagai benchmark expansi data dalam pembuatan data frame. Metode 2 ini mempunyai
kelemahan yaitu jika data kolom benchmark (dalam hal ini “depth”) lebih pendek dari pada kolom yang
lain maka besarnya ukuran dataframe akan sesuai dengan ukuran kolom benchmarknya.
64 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 3. Mengaplikasikan metode soil behaviour type (baca: [9]) pada data hasil sondir.
65 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 4. Memindahkan hasil analysis ke Excel
66 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 5. Pembuatan grafik CPT
67 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Output graphics:
68 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
6.2.2 Menggunakan tombol VBA
Contoh pada subbab 6.2.1 menggunakan Jupyter Notebook untuk melakukan analisis menggunakan Python.
Dengan menggunakan format template xlwings ( yang akan di jelaskan pada sub bab 6.2.3), penggunaan
Jupyter notebook bisa dihilangkan.
Jawaban:
Langkah 1. Buat sebuah Python file dengan nama tertentu pada root folder yang sama dengan file excelnya.
Pada contoh ini diberi nama CPT_PLOT.py. Selain itu file excel template xlwings sudah diberi nama dengan
CPT [Link].
Langkah 2. Copy paste semua code yang ditulis pada Jupyter Notebook pada contoh 6.2.1 kedalam
CPT_PLOT.py. Lalu hapus [Link]() pada code tersebut.
69 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 3. Buka excel file CPT [Link], lalu tekan alt+f11. Klik Insert module.
Langkah 4. Pada module yang telah dibuat (Module 1), copy paste code berikut. Save and close.
Keterangan: Format default vba code untuk memanggil Python script adalah seperti pada kotak di bawah.
Karena pada script yang ditulis pada CPT_PLOT.py tidak menggunakan function khusus untuk dipanggil, maka
digunakan kotak kedua. Kotak kedua berfungsi untuk mengeksekusi script yang ditulis di dalam file .py
70 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 5. Buat tombol VBA pada developer tab. Tekan insert > button. Lalu gambarkan tombol di lokasi
yang dinginkan. Setelah digambar maka akan muncul pop up script, targetkan pada Python script yang tadi
dibuat pada Module1. Setelah tombol terbuat, rename tombol tersebut dengan nama yang diinginkan. Jika
developer tab tidak ditemukan maka fitur ini pada excel perlu di aktifkan terlebih dahulu, yang caranya dapat
dilihat di link ini.
6.3 Contoh 2: Konversi tabel pada file pdf ke excel menggunakan Python.
Pada contoh kedua, dilakukan pemindahan tabel dari banyak pdf file ke dalam sebuah excel secara otomatis.
Sering terjadi kasus di dunia praktisi teknik sipil bahwa hasil soil test yang diterima dari kontraktor masih dalam
bentuk pdf, namun kita membutuhkan data tersebut untuk di analisis sehingga diperlukan digitasi ke format
excel, misalkan hasil lab test atau hasil uji lapangan seperti sondir. Selain xlwings, untuk melakukan ini
diperlukan modul tambahan yang disebut dengan tabula-py (pip install tabula-py). Narasi pada
contoh pada sub bab ini adalah sebagai berikut:
• Diterima 4 buah file pdf hasil uji point load batuan. Anda diminta oleh manajer anda untuk
menganalisis dan melihat gambaran umum dari hasil uji batuan tersebut. Untuk itu anda harus
merekap semua data hasil uji di sebuah excel file.
• Lakukan dengan menggunakan Python.
71 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Jawaban:
Penjelasan mengenai code yang ditulis di bawah dapat dilihat pada video di sini.
Untuk melakukan import file path dari pdf yang diinginkan digunakan pemrogramman GUI (graphical user
interface) menggunakan Tkinter. Code function get_file dibawah berguna untuk melakukan import path
beberapa jenis file antara lain pdf, xlsx, xls, xlsm secara khusus dan semua jenis file secara umum. Anda juga
bisa menambahkan type file yang diinginkan dengan menuliskan type file yang diinginkan sesuai polanya
contoh (‘jenisfile’, ‘*.extensions’)
72 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
7 HAND CALCULATION MENGGUNAKAN JUPYTER NOTEBOOK
Python merupakan bahasa pemrogramman yang terus berkembang pesat sampai saat ini. Semakin banyaknya
users non computer science, membuat modul - modul Python makin berkembang dan bervariasi jenis dan
kegunaannya. Pada bab ini, akan dikenalkan dua module yang sangat berguna bagi aplikasi teknik sipil yaitu:
• Module handcalcs. Module ini berguna untuk mimmicking style penulisan tangan terutama rumus -
rumus perhitungan yang sering digunakan pada perhitungan science dan engineering (source: Link )
• Module forallpeople. Module ini berguna untuk menambahkan units atau satuan pada variable yang
diingkan. (source: Link)
Import module [Link] dan forallpeople seperti di bawah, untuk setting teknik sipil ketik
[Link] (‘structural’, top_level = True). Untuk menampilkan satuan yang tersedia
ketik [Link]()
73 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Hal umum yang pertama dilakukan dalam melakukan handcalculation adalah men-define parameter awal.
Dalam hal ini adalah geometry penampang bajanya. Masukkan input seperti di bawah. code %%render
params 2 berguna merender variable yang dimasukkan. Kata params berguna untuk merender parameter.
Sedangkan angka 2, berguna untuk membulatkan variable dua angka decimal.
• Format penulisan variable contoh: A_1 akan menghasilkan hasil renderan A1
Di bawah ini adalah perhitungan, luas geometry penampang. Untuk melakuan rendering bisa digunakan code
lain yaitu %%render long. Bandingkan penggunaan %%render long dengan %%render biasa. Angka
dua dibawah memiliki fungsi yang sama yaitu membulatkan decimal.
74 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
75 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
7.1.1 Cara melakukan export “ready print output” pada Jupyter Notebook
Setelah perhitungan handcalculation dilakukan. Jika dibutuhkan, untuk melakukan save dapat File > Download
as > HTML hide input (Figure 7.2). Setelah itu buka file HTML nya, lalu print (ctrl+P) seperti biasa.
Geotechnical parameters
ϕ' = 30 °
γsoil = 19 kN/m3
allowable bearing = 120 kPa
Structural parameters
γconcrete = 24 kN/m3
fcu = 35 Mpa
fy = 500 Mpa
cover wall = 35 mm
cover base = 50 mm
76 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Jawaban:
77 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
78 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
79 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
80 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
81 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
82 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
83 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
84 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
85 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
86 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
87 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
(optional)
88 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
89 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
90 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
91 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Output Graphics:
92 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
8 REGRESI MENGGUNAKAN PYTHON
Ada berbagai cara melakukan analisis regresi pada Python dari melakukan regresi mandiri dengan menghitung
secara manual hingga penggunaan module khusus untuk melakukan regresi secara semi otomatis bahkan full
otomatis. Pada buku ini, diajarkan cara dengan semi otomatis, dimana user akan menganilisis data untuk dicari
parameter statistik nya terlebih dahulu lalu. Lalu hasil statistik akan diplot menggunakan module plotly atau
matplotlib. Pada buku ini tidak dijelaskan detail mengenai dasar matematis aplikasi regresi, untuk itu user
harus sudah memiliki sedikit pemahaman dasar tentang mata kuliah statistik. Misi utama aplikasi regresi adalah
mencari formulasi variable dan constanta (e.g. b dan c pada rumus di bawah) untuk melakukan curve fitting.
Buku ini memberikan dua contoh regresi dasar yang secara sederhana dapat dijelaskan:
• Regresi linear, dimana formulasi yang dicari adalah y=bx + c
• Regresi polynomial, dimana:
o Untuk polinomial orde 2, dimana y= b1x2 + b2x + c
o Untuk polinomial orde 3, dimana y= b1x3 + b2 x2 + b3 x + c
o Dan seterusnya.
Pada Figure 8.1, dapat dilihat flow chart cara melakukan regresi pada Python. Untuk melakukan regresi
dibutuhkan module antara lain:
• Numpy dan Pandas digunakan untuk dataframe analisis
• Statsmodel dan Scikit digunakan untuk mencari formulasi b dan c pada tiap - tiap jenis regresi yang
akan dilakukan. Module statsmodel ini juga digunakan untuk menghitung prediction interval dan
confidence interval suatu data set.
• Plotly dan Matplotlib digunakan untuk plotting
Pada subbab ini dilakukan regresi linear menggunakan Python. Diketahui sebuah dataset rocket propellant vs.
shear strength materialnya berdasarkan umur manufacture-nya yang dapat dilihat pada Table 8.1. Lakukan:
• Plot grafik data tersebut berdasarkan umur propellant sebagai sumbu X dan shear strength sebagai
sumbu Y
• Lakukan regresi linear y = bx + c lalu plot grafiknya
• Plot lower bound dan upper bound dari prediction interval dengan tingkat konfidensi 95%
• Plot lower dan upper confidence interval dengan tingkat konfidensi 95%.
93 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Table 8.1 Data rocket proppelant [12]
2158.7 15.5
1678.15 23.75
2316 8
2061.3 17
2207.5 5.5
1708.3 19
1784.7 24
2575 2.5
2357.9 7.5
2256.7 11
2165.2 13
2399.55 3.75
1779.8 25
2336.75 9.75
1765.3 22
2053.5 18
2414.4 6
2200.5 12.5
2654.2 2
1753.7 21.5
Jawab:
Langkah 2. Buat pandas dataframe dari data propellant pada Table 8.1. Pada contoh ini tabel dibaca dari
excel file yang berisi data yang sama dengan tabel di atas.
Langkah 3. Sortir dataframe propellant berdasarkan nilai X. Hal ini wajib dilakukan untuk mencegah error.
94 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 4. Tentukan sumbu X dan Y dari dataframe untuk mempermudah plotting. Untuk melakukan regresi
y=bx+c lakukan setting seperti kotak di bawah. Diperlukan variable x2 dummy, dalam contoh ini diberi nama
x_reg. Lalu untuk melakukan permodelan regresi linear gunakan [Link](data_y,data_x2).fit()
Langkah 5. Dari hasil permodelan pada Langkah 4, dapat dilakukan rekapitulasi hasil sesuai tingkat confidence
yang diinginkan. Module statsmodel akan melakukan rekapitulasi sesuai tingkat konfidensi yang diinginkan.
Karena tingkat konfidensi adalah 95%. Maka value alpha adalah 5% atau 0.05. Untuk melakukan rekapitulasi
hasil model regresi, gunakan nama_model.get_prediction().summary_frame(alpha=value).
Assign pada suatu variable baru, dalam contoh ini diberi nama df_statistical_result. Tabel rekapitulasi
ini sangat penting yang nantinya digunakan untuk plotting grafik prediction dan confidence interval.
Langkah 6. Secara lebih spesifik, untuk melihat nilai b dan c pada rumus y=bx+c, adalah dengan code
nama_model.params. Maka akan muncul tabel berisikan variable dan constanta yang dibutuhkan dari hasil
curve fitting regresi. Pada table di bawah const adalah nilai c. dan Age of Propellant (weeks) adalah nilai b.
Langkah 7. Jika telah diketahui b dan c, jika y=bx+c maka dapat dilakukan assignment variable b dan c dari
dataframe params. Setelah itu dapat di deklarasi sebuah code untuk memprediksi nilai y nya,
Langkah 8A. Pelajari pola di bawah untuk melakukan plotting dengan matplotlib. Code di bawah
diperuntukkan untuk plotting data mentah dan hasil regresi (x,y_pred).
95 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Lalu untuk melakukan plotting prediction dan confidence interval, pelajari pola code di bawah.
96 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 8B. Pelajari pola di bawah untuk melakukan plotting dengan Plotly.
97 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
8.2 Polynomial regression menggunakan Python
Selain menggunakan statsmodel, dibutuhkan module tambahan yaitu scikit untuk melakukan regresi polinom.
Pada contoh di subbab ini, pembelajaran regresi polinom menggunakan data lab test natural water content
(wn) vs. saturated unit weight (gsat) tanah. Dari sudut pandang geoteknika, sebenarnya korelasi teoritis antara
wn dan gsat sudah ada (lihat video ini). Namun untuk memberi contoh aplikasi regresi polinom menggunakan
Python, kita akan me-regresi data set tersebut dari sudut pandang statistika.
Diketahui 1400 data hasil berbagai macam lab test khususnya wn dan gsat yang tersebar diberbagai kedalaman
disuatu daerah. Lakukan regresi polinom dengan orde 3 pada dataset tersebut.
Langkah 1. Import module yang dibutuhkan. Untuk regresi polinom dibutuhkan scikit sklearn seperti kotak di
bawah,
98 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 3. Tentukan nilai X dan Y dari dataframe yang sudah dibuat. Khusus untuk regresi polinom, data X
harus dirubah dari pandascore menjadi [Link] dengan rumus di bawah.
Langkah 4. Pelajari template pola setting regresi polynom pada kotak di bawah. Pada regresi polinom kita
dapat men-setting derajad/orde yang diinginkan. Dalam hal ini kita akan set orde sebagai 3. Lalu transform
data X kita dengan code di bawah, dan assign dengan variable baru. Lakukan permodelan regresi dengan
feature [Link] mirip dengan apa yang sudah dilakukan saat melakukan regresi linear. Setelah model regresi
dibuat, maka data dapat di plot.
Langkah 5. Untuk membuat rekapitulasi data analisis regresi yang nantinya digunakan untuk plot grafik
prediction dan confidence interval dapat ditulis seperti code di bawah. Karena tingkat konfidensi adalah 95%.
Maka value alpha adalah 5% atau 0.05
99 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Langkah 6. Pelajari code di bawah untuk melakukan plotting grafik full menggunakan Matplotlib.
100 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Practical Example 12. Data clustering pada aplikasi regresi
Lakukan data cluster pada contoh di subbab 8.2 dengan memisahkan data dengan kedalaman 15 m ke bawah
dengan 15 m ke atas. Plot grafik menggunakan Plotly.
Jawab.
Untuk plot regresi polinom menggunakan Plotly, convert ulang dataset X menjadi pandas dataframe dengan
melakukan re-assigning seperti kotak di bawah.
Untuk melakukan data clustering pada dataset dapat menggunakan fitur pandas query. Catatan penting untuk
melakukan query:
• Jika nama kolom anda mempunyai spasi dan/atau special symbol seperti dalam kurung ( ) atau
bracket [ ] (e.g. Depth (m), depth_(m), depth[m], dsb) gunak backtick ` diantara parameter query anda
seperti kode di bawah untuk mencegah error (e.g. ` Depth (m) `)
101 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Lakukan plot dengan Plotly, pelajari pola code di bawah.
102 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Output:
103 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
9 OBJECT-ORIENTED PROGRAMMING (OOP)
Pada buku ini akan diberikan secara singkat dasar - dasar programming menggunakan OOP pada Python.
Untuk lebih mudah menjelaskan tentang OOP maka akan dibuat script sederhana contoh kasus perhitungan
geometry suatu balok.
Suatu balok memiliki properties/attribute dimensi panjang (a), lebar (b) dan tinggi (t). Misi utamanya adalah
membuat sebuah program untuk menghitung luas alas, luas permukaan dan volume dari properties dimensi
dengan metode OOP. Telah ditulis sebuah skrip pada Figure 9.1 yang dapat dijelaskan sebagai berikut:
• Ciri utama object-oriented programming adalah penggunaan “class” pada awal script yang di ikuti
dengan judul class. Berbeda dengan function, penulisan judul class baiknya menggunakan huruf
kapital. Hal ini merupakan kebiasaan/adab para programmer yang ingin membedakan function dan
class. Pada kasus ini, class dinamai dengan nama Geometry. Python class ini nantinya akan digunakan
untuk membuat “object” baru yang akan di tulis setelah Python class selesai dibuat.
• Basic OOP memiliki dua tubuh utama yaitu constructor dan method. Constructor adalah function awal
(initial) yang digunakan untuk menentukan parameter awal dari object yang akan dibuat yang akan
digunakan untuk analisis pada method functions. Method merupakan function yang akan digunakan
dalam suatu analisis tertentu. Pada contoh ini, attribut awal adalah dimensi balok dan method
functions yang ditulis adalah untuk menghitung luas alas, luas permukaan dan volume. Untuk dapat
di oper kedalam function yang lain, maka dibutuhkan “self.” pada variable yang diinginkan.
• Untuk membuat object baru, panggil class yang telah dibuat. Pada contoh ini, object baru dibuat
dengan nama bentuk1 dengan attribut panjang = 4 m, lebar = 3 m dan tinggi = 6 m.
104 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
• Setelah object dibuat, maka object dapat digunakan untuk analisis lanjutan. Pada contoh di bawah,
bentuk1 akan dihitung luas permukaanya dengan melakukan chaining object tersebut dengan
method function yang diinginkan. Chaining adalah proses menyambung kode dengan “tanda titik”.
• Sebagai tambahan, di atas constructor terlihat ada sebuah kode bertuliskan shape =”balok”. Segala
sesuatu yang ditulis diatas constructor merupakan attribute yang dapat diakses pada semua instance
methods dengan melakukan chaining pada nama class dengan variablenya.
Class Geometry yang ditulis pada Figure 9.1, telah dikembangkan dengan code yang ditulis pada Figure 9.2.
Penjelasan tambahan adalah sebagai berikut:
• Pada Figure 9.1 dan Figure 9.2 dapat dilihat ada bebera kode ditulis dengan dua garis bawah (e.g.
self.__Abase, def __display_3d(self)). Penggunaan dua garis bawah berguna untuk
menyembunyikan kode baik variable maupun function agar tidak terlihat di editor saat pengetikan.
• Pada method summary(), functions dari method sebelumnya juga dapat dipanggil dengan
menggunakan self.nama_functions.
105 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Practical Example 13. Pembuatan program solver iterasi menggunakan OOP
Buat sebuah program solver untuk menghitung iterasi menggunakan metode OOP. Lalu:
• Problem 1: Hitung ulang Practical Example 8. Perhitungan iterasi menggunakan secant method
• Problem 2: jika x3 - x - 1 = 0 , hitung x.
Jawab:
Lakukan modifikasi pada contoh Practical Example 8. Perhitungan iterasi menggunakan secant method
106 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Problem 1.
Problem 2.
Hasil coding OOP dapat digunakan untuk modul pribadi anda. Sebelumnya kita lihat karakteristik pemanggilan
modul Python misalkan pandas. Pada kotak di bawah pembuatan dataframe dengan module pandas di import
dengan dua cara. Cara1 menggunakan class Dataframe() dengan pd untuk membuat table/dataframe.
Sedangkan pada cara 2, inisial pd sudah dihilangkan pada class Dataframe().
Cara1:
Cara2:
Dari karakteristik di atas, hasil pembuatan code anda dengan OOP juga dapat dipindah menjadi modul pribadi
pada PC anda. Sebagai contoh pada Practical Example 13. Pembuatan program solver iterasi menggunakan
OOP, hasil solver dapat dibuat seperti pada contoh pandas di atas. Dibuat sebuah module dengan nama
solver_module dari hasil practical example 13.
Illustrasi 1.
107 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Illustrasi 2.
Untuk membuat code OOP yang ditulis sebagai module caranya cukup mudah. Caranya adalah sebagai
berikut.
1. Cukup copy-paste code dari contoh Practical Example 13. Pembuatan program solver iterasi
menggunakan OOP ke dalam file pure Python baru dengan nama solver_module.py
2. Untuk memanggil module tersebut, masukkan file solver_module.py pada folder yang sama dengan
working file anda (Figure 9.3).
3. Untuk kemungkinan cara yang lain dapat dilihat pada link berikut di sini.
Figure 9.3 Penempatan solver_module.py pada folder root yang sama dengan working file anda.
108 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
10 TEKNIK WEB SCRAPPING DAN WEB AUTOMATION
Aplikasi Python yang sering dilakukan adalah melakukan teknik web scrapping. Pada dasarnya teknik ini
hanyalah menggunakan Python untuk mengambil data dari sebuah website yang sudah di buka dari browser.
Untuk melakukan web scrapping, pada buku ini digunakan beberapa tool penting antara lain:
Sebelum memulai praktek webscrapping, akan dijelaskan singkat cara scrapping suatu website. Sebagai
contoh, kita akan buka [Link] lalu akan kita pelajari bagian - bagian penting dalam melakukan
webscrapping & automation. Pada dasarnya webscrapping adalah menelusuri code - code html pada website
yang diinginkan lalu mengambil informasi dari padanya.
Figure 10.1 Melakukan inspect pada Chrome untuk melihat code mentah suatu element pada sebuah website.
109 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Berikut adalah template code Python untuk membukan web [Link] dengan Python. Copy Paste code di
bawah, pada option argument akan digunakan Profile 1 chrome anda. Untuk mengganti profil gunakan format
“Profile 2”, “Profile 3” dst. tidak peduli email/nama profil anda yang telah dipakai/dibuat, Format nama profile
Chrome yang telah anda buat sebelumnya/existing adalah seperti tersebut.
Cara 1: menggunakan relatif Xpath. Nilai Xpath dapat dicari menggunakan extension selectorshub.
Keterangan: Relatif xpath didapat dengan klik kanan target lalu pilih selectorshub. Dalam contoh ini, nilai xpath
pada kalimat nya adalah “//h2[@class='_8eso']”
110 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Cara 2 adalah menggunakan beautifulsoup dengan melakukan parsing website yang sudah dibuka.
Cara 3 adalah dengan menggunakan data mentah hasil inspeksi code html, lalu dilakukan pembersihan data
yang didapat.
Keterangan: Jika anda cermati maka kalimat tersebut memiliki class_='_8eso' dan memiliki kepala h2. Gunakan
jenis kepala dan nama class pada code [Link].
111 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Cara 1. Menggunakan relatif Xpath. Nilai Xpath dapat dicari menggunakan selectorshub.
112 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Practical Example 14. Melakukan otomasi dan webscrapping respons spektra dan PGA pada Aplikasi Lini PU
Untuk mempermudah pembuatan script nya maka:
1. Sebelum menjalankan script anda harus sudah melakukan login pada aplikasi lini.
2. Script yang ditulis hanya untuk gempa dengan probabilitas 7% dalam 75 tahun
3. Script yang ditulis tidak untuk daerah patahan
4. Koordinat proyek sudah diketahui dan akan dimasukkan langsung pada script yang ditulis
a. Longitude : '110,31615132650818'
b. Latitude : '-7,8368450296518635'
Jawab:
113 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
114 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
115 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
116 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
11 STUDY TOUR: MODUL PYTHON UNTUK TEKNIK SIPIL
Pada bab ini akan diberikan referensi modul - modul pilihan Python Teknik Sipil yang sangat bagus. Dengan
memahami logika pengoprasian Python yang sudah dipelajari pad bab sebelumnya, maka diharapkan akan
mempermudah pengoprasian mandiri modul python yang sudah dibuat oleh orang lain.
Berguna untuk melakukan analisis struktur yang dapat di kunjungi pada link berikut anastruct manual.
Berguna untuk melakukan analisis dan checking penampang struktur yang dapat dilihat pada link berikut
concrete-properties.
117 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Figure 11.2 Hasil permodelan menggunakan concrete properties
118 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
12 REFERENCES
119 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
120 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
121 | 121 Merdeka Sandi Tazakka | Basic Python Programming Untuk Teknik Sipil
Appendices
I APPENDIX: GITHUB REPOSITORY