Diajukan untuk memenuhi syarat kelulusan mata kuliah SI-3151 Irigasi dan Drainase
Dosen:
Erwin Lim ST, MT, Ph.D.
Asisten:
Jeffersson Yomantara 15015094
Ferry Indra 15015022
Gelasius Galvindy 15015116
Disusun oleh:
Aulia Akhtiar Daenulhaq 15016139
i
PROGRAM STUDI TEKNIK SIPIL
FAKULTAS TEKNIK SIPIL DAN LINGKUNGAN
INSTITUT TEKNOLOGI BANDUNG
LEMBAR PENGESAHAN
Tugas Besar Struktur Beton ini telah diperiksa dan disetujui serta memenuhi ketentuan layak
untuk dikumpulkan guna kelulusan mata kuliah SI-3112 Struktur Beton Semester Ganjil
Tahun Akademik 2018/2019.
ii
KATA PENGANTAR
Puji dan syukur Puji dan syukur penulis ucapkan atas kehadirat Tuhan Yang Maha Esa
karena berkat rahmat-Nya saya dapat menyelesaikan laporan praktikum ini dengan sebaik-
baiknya. Laporan Tugas Besar SI-3112 Struktur Beton ini dibuat sebagai syarat kelulusan Mata
Kuliah SI-3112 Struktur Beton, Program Studi Teknik Sipil, Fakultas Teknik Sipil dan
Lingkungan, Institut Teknologi Bandung. Laporan tugas besar ini merupakan laporan yang
berisi proses dan hasil aplikasi dari Mata Kuliah SI-3112 Struktur Beton yang telah dilakukan
oleh mahasiswa Program Studi Teknik Sipil angkatan 2016.
Penyelesaian laporan tugas besar ini tidak terlepas dari berbagai pihak yang senantiasa
membantu, mendukung, serta memberikan kritik dan saran kepada kami dalam berbagai bentuk.
Sehingga, kami ingin mengucapkan terima kasih kepada:
1. Orang tua yang selalu mendoakan serta memberikan dukungannya dalam proses
penyelesaian laporan ini.
2. Dosen Mata Kuliah SI-3112 Struktur Beton, yaitu Erwin Lim ST, MT, Ph.D.
Penulis menyadari bahwa laporan tugas besar ini masih belum sempurna, baik dari segi
isi dan metode penulisan. Oleh karena itu, penulis tetap mengharapkan kritik dan saran dari
pembaca sekalian apabila memang masih terdapat kesalahan dalam penulisan laporan tugas
besar Irigasi dan Drainase ini. Terakhir, penulis mengucapkan terima kasih yang sebesar-
besarnya kepada pembaca dan semoga laporan tugas besar ini dapat bermanfaat.
Penulis
iii
DAFTAR ISI
DAFTAR ISI............................................................................................................................. iv
1.3 Tujuan.......................................................................................................................... 1
P-M Curve.......................................................................................................................... 2
LAMPIRAN ............................................................................................................................. 14
iv
v
DAFTAR GAMBAR
vi
BAB I
PENDAHULUAN
2.1 Flowchart
P-M Curve
Mulai program
Continue
2
Gambar 2. 1 Flowchart Program (1)
Continued
Perhitungan Ast
Continue
3
Continued
Output berupa:
1) Plot grafik berdasarkan nilai Pn dan Mn dan 𝜙𝑃𝑛 dan
𝜙𝑀𝑛 dari proses sebelumnya
2) Gambar penampang kolom
Dalam format html.
4
Moment-Curvature Diagram
Start
Mencari sumbu
netral Uncracked
Menghitung Mcr
Menghitung sumbu
netral Cracked Section
Selesai
5
2.2 Cara Kerja Program
Dalam tugas besar ini, saya diminta membahas cara kerja program untuk mengetahui
mekanisme kerja program. Maka, diambil sebagian flowchart pada bagian perhitungan untuk
memperjelas bagaimana program yang kami buat dapat menghasilkan output yang diminta.
2.2.1 Fungsi beta
Berdasarkan script diatas, fungsi(c) bertujuan untuk mencari nilai P dan M dengan nilai
X dan Y tertentu. Nilai P dan M ditentukan sebagai berikut.
Langkah 1: Menentukan nilai a
𝑎 = 𝑐 × 𝑏𝑒𝑡𝑎(𝑓𝑐)
beta(fc) merupakan fungsi sebelumnya untuk menentukan nilai 𝛽
6
Langkah 2: Menentukan nilai Cc
𝐶𝑐 = 0,85 . 𝑓𝑐 . 𝑎 . 𝑏
Langkah 3: Menentukan nilai Mc
𝑎
𝑀𝑐 = 𝐶𝑐 (ℎ − 𝑌 − )
2
Langkah 4: Iterasi tulangan
𝐹𝑠(𝑖) = (𝑓𝑠(𝑖) − 0,85𝑓𝑐)𝐴𝑠(𝑖)
𝑃= ∑ 𝐹𝑠(𝑖) + 𝐶𝑐
𝑖=0
𝑛=𝑗𝑢𝑚𝑙𝑎ℎ 𝑡𝑢𝑙𝑎𝑛𝑔𝑎𝑛
𝑀= ∑ 𝑀𝑠(𝑖) + 𝑀𝑐
𝑖=0
Script di atas digunakan untuk menghitung nilai P saat kondisi pure bending. Algoritma
perhitungan pure bending dapat dilihat sebagai berikut.
Langkah 1: Perhitungan nilai a
𝑎 = 𝛽. 𝑐
Langkah 2: Perhitungan nilai Cc
𝐶𝑐 = 0,85. 𝑓𝑐. 𝑎. 𝑏
Langkah 3: Perhitungan nilai εsi, fs, dan Fs
𝑌𝑠𝑖 + 𝑐 − ℎ
𝐸𝑠𝑖 = (𝐸𝑐𝑢)
𝑐
7
𝐸𝑠𝑖
Jika |𝐸𝑠𝑖 | < 𝐸𝑦, 𝑓𝑠𝑖 = 𝐸
𝑦 .𝑓𝑦
𝑃= ∑ 𝐹𝑠 + 𝐶𝑐
𝑖
Berdasarkan script diatas, fungsi “cari_phi(𝜀𝑡 )” bertujuan untuk mencari nilai 𝜙 yang
ditentukan sebagai berikut.
(𝜀𝑡 − 0,002)250
𝜙 = 0,65 +
3
Jika 𝜀𝑡 < 0,002, 𝜙 = 0,65
Jika 𝜀𝑡 > 0,005, 𝜙 = 0,9
8
Fungsi ini akan mengembalikan nilai inersia untuk penampang persegi panjang dengan
lebar b dan tinggi h, yang ditransformasikan sejauh (h/2-sumbu netral)
2
1 ℎ
𝐼𝑏𝑒𝑡𝑜𝑛 = × 𝑏 × ℎ3 + 𝑏 × ℎ × ( − 𝑌̅)
12 2
2.2.7 Fungsi I_Steel
Fungsi ini akan mengembalikan inersia untuk baja dengan penampang yang sudah
ditransformasikan.
2
𝐼𝑏𝑎𝑗𝑎 = 𝐴𝑠𝑖 × 𝑑𝑠𝑖 × (𝑛 − 1)
Fungsi ini akan mengembalikan Inersia untuk baja pada penampang Cracked (sudah
retak). Untuk tulangan tarik:
2
𝐼𝑏𝑎𝑗𝑎 𝑐𝑟𝑎𝑐𝑘𝑒𝑑 = 𝐴𝑠𝑖 × 𝑑𝑠𝑖 ×𝑛
9
BAB III
PERHITUNGAN
Masalah yang dipakai:
10
Analisis Hasil:
1 Untuk pure compression, terdapat perbedaan yang kecil, yaitu:
4616 − 4654
× 100% = 0.816%
4654
11
Perbedaan ini terjadi karena asumsi-asumsi yang dibulatkan pada perhitungan,
misalnya: sebenarnya luas baja D29 adalah 660 mm2 namun di soal diberitahu bahwa
luasnya adalah 645 mm2.
2 Kondisi Balanced:
Saat kondisi Balanced, nilai Pu dan Mu contoh perhitungan maupun dengan program
tidak berbeda jauh. Pu dari perhitungan adalah 150 sedangkan dari program didapat
Pu=149.
Moment Curvature Diagram
12
BAB IV
KESIMPULAN
4.1. Kesimpulan
Program analisis penampang dapat dibuat dengan bahasa Python dengan Input:
1 Geometri penampang (panjang x lebar).
2 Material properties (kuat tekan rencana beton, fc’, dan tegangan leleh baja tulangan, fy).
3 Layout tulangan (posisi dan diameter tulangan).
Dan Output:
4 Kurva hubungan momen-kurvatur dalam format HTML.
5 Kurva hubungan P-M dari penampang yang diberikan dalam format HTML.
Program ini mampu melakukan analisis penampang persegi panjang dengan layout tulangan
sesuai dengan input. Line of Code dari Program ini diberikan pada lampiran. Runtime dari
program ini pada CPU AMD-A10 8700P hanya memakan waktu 15 ms. Karena waktu program
bekerja sudah sangat rendah, maka tidak diperlukan optimasi lebih lanjut.
4.2. Saran
Saran dalam mengerjakan tugas besar SI-3112 Struktur Beton bagian pemrograman ini
antara lain:
1. Kuasai materi terlebih dahulu sebelum memulai pemrograman. Apabila algoritma dan
diagram alirnya sudah jelas, barulah mulai untuk membuat programnya.
2. Kuasai dasar-dasar bahasa pemrograman yang digunakan, dalam Tugas Besar ini
digunakan bahasa Python. Apabila terdapat kesulitan dalam bahasa pemrogramannya,
usahakan untuk membaca dokumentasi yang ada di internet ataupun buku.
3. Usahakan untuk membuat clean code, yaitu kode yang mudah dimengerti dan dibaca.
Sebaiknya tidak menyingkat variabel-variabel agar lebih mudah untuk dipahami.
13
LAMPIRAN
# In[55]:
import numpy as np
import matplotlib as mp
import scipy as sp
from scipy import optimize
from bokeh.plotting import figure, output_file, show
Ecu=0.003
Mod_Elastisitas_Baja=200000
# In[56]:
# In[109]:
Ag=b*h
# In[110]:
14
# In[111]:
# In[112]:
output_file("Penampang.html")
Beton = figure()
# In[113]:
def __beta__(fc):
beta=0.85-0.05*(fc-30)/7
if beta>0.85:
beta=0.85
elif beta<0.65:
beta=0.65
return beta
def fungsi(c):
global Es, fs, Fs, Ms, Xs, Ys, Ecu, Ey, fy, As, h, b, fc, X, Y
a=c*__beta__(fc)
Cc=0.85*fc*a*b
Mc=Cc*(h-Y-a/2)
15
fs[i]=-fy
Fs[i]=(fs[i]-0.85*fc)*As[i]
Ms[i]=(-Y+Ys[i])*Fs[i]
P=sum(Fs)+Cc
M=sum(Ms)+Mc
return P, M
def PureBending(c):
global Es, fs, Fs, Ms, Xs, Ys, Ecu, Ey, fy, As, h, b, fc
a=c*__beta__(fc)
Cc=0.85*fc*a*b
def cari_phi(Et):
if Et<0.002:
Strength_Reduction_Factor=0.65
elif Et>0.005:
Strength_Reduction_Factor=0.9
else:
Strength_Reduction_Factor=0.65+(Et-0.002)*250/3
return Strength_Reduction_Factor
# In[114]:
cari_centroid()
print (X, Y)
# In[115]:
Ast=sum(As)
Pn[0]=0.85*fc*(Ag-Ast)+fy*Ast
Mn[0]=0
Es_min[0]=min(Es)
P_phi[0],M_phi[0]=Reduksi(Pn[0],Mn[0],Es_min[0])
# In[116]:
16
c[1]=d
c[2]=d/(Ecu+Ey/2)*Ecu
c[3]=d/(Ecu+Ey)*Ecu
c[4]=d/(Ecu+0.005)*Ecu
c[5]=optimize.newton(PureBending,c[4])
# In[130]:
Pn[6]=-fy*sum(As)
Ms=(Ys-Y)*fy
Mn[6]=sum(Ms)
P_phi[6],M_phi[6]=Reduksi(Pn[6],Mn[6],Es_min[6])
hitung=np.array([1,2,3,4,5,6,7])
print ("1.Pure Compression,\n 2.Point Between Balanced and Compression 1, \n 3.Point
Between Balanced and Compression 2,\n 4.Balanced,\n 5.Between Balanced and Pure
Bending,\n 6.Pure Bending,\n 7.Pure Tension")
for i,j,k,l,m in zip(Pn,Mn,P_phi,M_phi,hitung):
print (m,"-> Pn= ","%.2f" %i,", Mn= ","%.2f" % j,", P_phi= ","%.2f" % k,", M_phi=
","%.2f" %l)
# In[118]:
# ### Uncracked
# In[131]:
17
centroid=Y
centroid
# In[132]:
# In[133]:
I=np.empty(N)
def I_Steel(centroid):
global Mod_Elastisitas_Baja, fc, h, Ys, As
Ec=4700*(fc**0.5)
K=(Mod_Elastisitas_Baja-Ec)/Ec
I=As*K*((h-centroid-Ys)**2)
return I
def I_Steel_Cracked (centroid):
global Mod_Elastisitas_Baja, fc, h, Ys, As, N
Ec=4700*(fc**0.5)
K=(Mod_Elastisitas_Baja-Ec)/Ec
for i in range (N):
if h-Ys[i]<centroid:
I[i]=As[i]*K*((h-centroid-Ys[i])**2)
else:
I[i]=As[i]*(K+1)*((h-centroid-Ys[i])**2)
return I
# In[134]:
I=I_Steel(centroid)
I_Total=Hitung_I_Beton(b,h,centroid)+ np.sum(I_Steel(centroid))
# In[135]:
I_Total
# In[136]:
fcr=0.62*np.sqrt(fc)
Mcr=fcr*I_Total/(h-centroid)
# In[137]:
Mcr
18
# In[138]:
Curvature=np.empty((6))
Moment=np.empty((6))
Curvature[0]=0
Moment[0]=0
# In[139]:
Ec=4700*(fc**0.5)
epsilon_beton=fcr/Ec
Curvature[1]=epsilon_beton/(h-centroid)
Moment[1]=Mcr
# ## Cracked
# In[140]:
AYs=np.empty(N)
def Centroid_Cracked(c):
global Ys, As, b, Mod_Elastisitas_Baja, fc, N, h
Ec=4700*(fc**0.5)
K=(Mod_Elastisitas_Baja-Ec)/Ec
luas_beton=b*c
y_beton=c/2
AY_beton=luas_beton*y_beton
for i in range (N):
if h-Ys[i]<c:
AYs[i]=As[i]*K*(c-h+Ys[i])
else:
AYs[i]=As[i]*(K+1)*(c-h+Ys[i])
return (AY_beton+np.sum(AYs))
c_cracked=optimize.newton(Centroid_Cracked,Y)
# In[141]:
c_cracked
# In[142]:
I_cracked=1/3*b*c_cracked**3+np.sum(I_Steel_Cracked(c_cracked))
# In[143]:
19
I_cracked
# In[144]:
Ec=4700*(fc**0.5)
Curvature[2]=Mcr/(Ec*I_cracked)
Moment[2]=Mcr
# In[145]:
if Bajaduluan>Betonduluan:
Curvature[3]=curvature_baja
Moment[3]=Bajaduluan
else:
Curvature[3]=curvature_beton
Moment[3]=Betonduluan
# In[146]:
Curvature[4]=0.003/c[5]
Moment[4]=Mn[5]
Curvature[5]=0.006/c[5]
Moment[5]=Mn[5]
# In[147]:
20
show(MomentCurvature)
21