• Tidak ada hasil yang ditemukan

Listing Program. Sub Hitung() 'Menghitung layer horizontal tulangan yang hrs ditinjau. Universitas Sumatera Utara

N/A
N/A
Protected

Academic year: 2021

Membagikan "Listing Program. Sub Hitung() 'Menghitung layer horizontal tulangan yang hrs ditinjau. Universitas Sumatera Utara"

Copied!
15
0
0

Teks penuh

(1)

Listing Program

'*************************************************************** '*************************************************************** '**** D I A G R A M I N T E R A K S I **** '**** Kolom Bujur Sangkar / Lingkaran **** '**** **** '**** A LGORITMA PEMROGRAMAN : NUMERIK **** '**** **** '**** Tugas Akhir **** '**** A n d R E W _ 5 i h i T e **** '**** Aplikasi Rekayasa Konstruksi dengan Visual Basic 6.0 **** '**** **** '**** email : [email protected] **** '**** Jurusan Teknik Sipil - Universitas Sumatera Utara **** '*************************************************************** '***************************************************************

Dim h, d1, n_tul, D_tul, nlapis, fc, fy, Mn, Cc, y0 Dim Pn0, PnMax, Pnb, Mnb

Dim y(100), f(100), esi(100), Atul(100) Dim ttk_tbh

Dim titik_PM(50, 3), red_PM(50, 3), nttk_kurva Dim Pu, Mu

Dim red_k, red_b Dim Persen_Tul, TipeKol Const regUlt = 0.003

Const phi = 3.14159265358979 'Keterangan Notasi

'h = diameter kolom bulat

'd1 = jarak titik berat tulangan di perimeter thd tepi luar 'n_tul = jumlah tulangna pada perimeter

'nlapis = jumlah lapis horizontal hasil konversi perimeter tul 'fc = kuat tekan beton silinder

'fy = tegangan leleh baja tulangan 'Mn = kuat lentur nominal

'Pnb = kuat tekan nominal pada kondisi balans 'Mnb = kuat lentur nominal pada kondisi balans 'Cc = blok desak beton

'y0 = jarak titik berat Cc ke tepi desak luar

'y(i) = jarak lapis horizontal tulangan ke tepi desak luar 'esi(i) = regangan pada lapis horizontal tulangan

'f(i) = gaya pada tiap lapis horizontal tulangan 'Atul(i)= luas baja pada tiap lapis horizontal tulangan 'titik_PM(i) = titik-titik pada kurva interaksi

'red_PM(i) = titik-titik kurva interaksi dengan faktor reduksi 'ttk_tbh= titik tambahan untuk memperhalus kurva interaksi 'Pu, Mu = beban aksial dan lentur terfaktor utk diplotkan pd kurva 'red_k = strength reduction factor - column

'red_b = strength reduction factor - beam Sub Hitung()

(2)

If Option1.Value = True Then

LayerTul_Kol_Persegi h, d1, n_tul, D_tul, nlapis Else

LayerTul_Kol_Bulat h, d1, n_tul, D_tul, nlapis End If

'Jumlah titik pada kurva interaksi yang dihitung nttk_kurva = 5 + 2 * ttk_tbh

'menyiapkan file untuk menyimpan hasil perhitungan Open "Kolom.out" For Output As #1

Print_Header

'1========================================================| 'Beban aksial tekan maksimum (teori)======================|

If Option1.Value = True Then Ag = h ^ 2

Else

Ag = 0.25 * phi * h ^ 2 End If

Ast = n_tul * 0.25 * phi * D_tul ^ 2 Persen_Tul = Ast / Ag * 100

Pn0 = 0.85 * fc * (Ag - Ast) + Ast * fy titik_PM(1, 1) = Pn0

titik_PM(1, 2) = 0 titik_PM(1, 3) = "Pn0"

'2========================================================| 'Beban aksial tekan maksimum yang diijinkan===============|

Ket = "PnMax dan Mn e-min"

Print #1, "Titik Kurva"; 2; "("; Ket; ")" PnMax = 0.8 * Pn0 Call iterasi_cariM(PnMax, Mn) titik_PM(2, 1) = PnMax titik_PM(2, 2) = Mn titik_PM(2, 3) = Ket '3========================================================| 'Kondisi Balans===========================================| i = 3 + ttk_tbh

Ket = "Kondisi Balans"

Print #1, "Titik Kurva"; i; "("; Ket; ")" Call Hitung_Balans(Pnb, Mnb) titik_PM(3 + ttk_tbh, 1) = Pnb titik_PM(3 + ttk_tbh, 2) = Mnb titik_PM(3 + ttk_tbh, 3) = Ket '2a=======================================================| 'Titik tambahan pada daerah keruntuhan tekan==============|

If ttk_tbh > 0 Then Print #1, String(59, "_")

Print #1, "Ada"; ttk_tbh; "titik tambahan di zona tekan" P = (PnMax - Pnb) / (ttk_tbh + 1)

For i = 1 To ttk_tbh

Print #1, "Titik Kurva"; 2 + i; "(--)" Pn = PnMax - P * i

Call iterasi_cariM(Pn, Mn) titik_PM(2 + i, 1) = Pn

(3)

titik_PM(2 + i, 2) = Mn titik_PM(2 + i, 3) = "--" Next i End If '3a=======================================================| 'Titik tambahan pada daerah keruntuhan tarik==============|

If ttk_tbh > 0 Then Print #1, String(59, "_")

Print #1, "Ada"; ttk_tbh; "titik tambahan di zona tarik" P = Pnb / (ttk_tbh + 1)

For i = 1 To ttk_tbh ii = 3 + ttk_tbh + i

Print #1, "Titik Kurva"; ii; "(++)" Pn = Pnb - P * i Call iterasi_cariM(Pn, Mn) titik_PM(3 + ttk_tbh + i, 1) = Pn titik_PM(3 + ttk_tbh + i, 2) = Mn titik_PM(3 + ttk_tbh + i, 3) = "++" Next i End If '4========================================================| 'Beban lentur pada kondisi tanpa beban aksial ============|

i = 4 + 2 * ttk_tbh Ket = "Balok Murni"

Print #1, "Titik Kurva"; i; "("; Ket; ")" Call iterasi_cariM(0, Mn) titik_PM(4 + 2 * ttk_tbh, 1) = 0 titik_PM(4 + 2 * ttk_tbh, 2) = Mn titik_PM(4 + 2 * ttk_tbh, 3) = Ket '5========================================================| 'Beban aksial tekan maksimum yang diijinkan===============|

PnT = -Ast * fy

titik_PM(5 + 2 * ttk_tbh, 1) = PnT titik_PM(5 + 2 * ttk_tbh, 2) = 0

titik_PM(5 + 2 * ttk_tbh, 3) = "Full tarik"

'6========================================================| 'konversi ke kN dan m , sekaligus cetak ke file Kolom.OUT |

Print #1, String(59, "_")

Print #1, "KURVA INTERAKSI KOLOM tanpa reduksi" Print #1, "Titik Kurva", " Pn (kN)", "Mn (kN-m)", "Keterangan" For i = 1 To nttk_kurva

titik_PM(i, 1) = titik_PM(i, 1) / 1000# titik_PM(i, 2) = titik_PM(i, 2) / 1000000# Print #1, FrmAngka(i, 5, 0),

Print #1, FrmAngka(titik_PM(i, 1), 8, 1),

Print #1, FrmAngka(titik_PM(i, 2), 8, 1), titik_PM(i, 3) Next i

'7========================================================| 'memasukkan parameter reduksi kekuatan====================|

batas = 0.1 * fc * Ag / 1000# Pnb = titik_PM(3 + ttk_tbh, 1) If batas > Pnb Then

(4)

End If

For i = 1 To nttk_kurva P = titik_PM(i, 1) If P > batas Then

red_PM(i, 1) = titik_PM(i, 1) * red_k red_PM(i, 2) = titik_PM(i, 2) * red_k red_PM(i, 3) = red_k

ElseIf P > 0 Then

red = (red_b - red_k) / batas * P red = red_b - red

red_PM(i, 1) = titik_PM(i, 1) * red red_PM(i, 2) = titik_PM(i, 2) * red red_PM(i, 3) = red

Else

red_PM(i, 1) = titik_PM(i, 1) * red_b red_PM(i, 2) = titik_PM(i, 2) * red_b red_PM(i, 3) = red_b

End If Next i

'mencetak hasil setelah direduksi ke file "Kolom.OUT" Print #1,

Print #1, "KURVA INTERAKSI KOLOM dengan Faktor reduksi" Print #1, "Titik Kurva", " "; Chr(216); "Pn (kN)", Chr(216); Print #1, "Mn(kN-m)", Chr(216); "-Faktor" For i = 1 To nttk_kurva Print #1, FrmAngka(i, 5, 0), Print #1, FrmAngka(red_PM(i, 1), 8, 1), Print #1, FrmAngka(red_PM(i, 2), 8, 1), Print #1, FrmAngka(red_PM(i, 3), 4, 2) Next i

'menutup file "Kolom.OUT" Close #1

'simpan data yang baru diproses dan menampilkan ke layar saveData Tabulasi Plot_Penampang Plot_KurvaINT Command1.Caption = "O K" End Sub

'Algoritma ini didasarkan bagan alir pada Gambar 6.16 dan 6.17 Sub iterasi_cariM(Pn, Mn) 'estimasi awal xa = h * 3 xb = 0 Do c = (xa + xb) / 2

'hitung resultante tekan pada blok beton a = Beta1(fc) * c

If Option1.Value = True Then BlokDesakKolPersegi a, h, Cc, y0 Else BlokDesakKolBulat a, h, Cc, y0 End If residu = -Cc + Pn Mn = -Cc * y0

'hitung gaya-gaya pada tulangan For i = 1 To nlapis

(5)

If y(i) > c Then 'tulangan tarik

esi(i) = regUlt * (y(i) - c) / c f(i) = fSteel(esi(i)) * Atul(i) Else

'tulangan tekan

esi(i) = regUlt * (c - y(i)) / c f(i) = fSteel(esi(i)) * -Atul(i) End If

residu = residu + f(i) Mn = Mn + f(i) * y(i) Next i If residu < 0 Then xa = c Else xb = c End If

Loop Until Abs(residu) < 0.0001 Mn = Mn + Pn * h / 2

Call Tabel_Teg_Reg(Cc, Pn, c) End Sub

Sub Hitung_Balans(Pnb, Mnb)

'kondisi balans nilai ditentukan oleh regangan terluar 'cari serat terluar tulangan, sekaligus mengkonversi 'perimeter tulangan ke layer horizontal

If Option1.Value = True Then

LayerTul_Kol_Persegi h, d1, n_tul, D_tul, nlapis Else

LayerTul_Kol_Bulat h, d1, n_tul, D_tul, nlapis End If

d = y(nlapis)

'hitung c balans dan tinggi blok desak cb = 600 / (600 + fy) * d

ab = Beta1(fc) * cb

If Option1.Value = True Then BlokDesakKolPersegi ab, h, Cc, y0 Else BlokDesakKolBulat ab, h, Cc, y0 End If Pnb = -Cc Mnb = -Cc * y0

'hitung gaya-gaya pada tulangan For i = 1 To nlapis

If y(i) > cb Then 'tulangan tarik

esi(i) = regUlt * (y(i) - cb) / cb f(i) = fSteel(esi(i)) * Atul(i) Else

'tulangan tekan

esi(i) = regUlt * (cb - y(i)) / cb f(i) = fSteel(esi(i)) * -Atul(i) End If Pnb = Pnb + f(i) Mnb = Mnb + f(i) * y(i) Next i Pnb = Abs(Pnb) Mnb = Mnb + Pnb * h / 2

(6)

Call Tabel_Teg_Reg(Cc, Pnb, cb) End Sub

Sub Tabel_Teg_Reg(Cc, Pn, c)

Print #1, "Regangan-tegangan Lapis Baja Tulangan (c = "; Print #1, Format(c, "0.00 mm)")

'123456789012345678901234567890 Print #1, "Lapis y(i) Regangan "; Print #1, Tab(30); "fs(MPa)";

Print #1, Tab(40); "As(mm2)"; Print #1, Tab(50); "Gaya(kN)" For i = 1 To nlapis

Print #1, FrmAngka(i, 3, 0);

Print #1, Tab(10); FrmAngka(y(i), 5, 1); Print #1, Tab(20); FrmAngka(esi(i), 7, 5); Print #1, Tab(33); FrmAngka(fSteel(esi(i)), 3, 0); Print #1, Tab(42); FrmAngka(Atul(i), 4, 0); Print #1, Tab(50); FrmAngka(f(i) / 1000#, 7, 0) Next i

Print #1, Tab(52); "--- +" Print #1, Tab(40); "F Baja:";

Print #1, Tab(50); FrmAngka((Cc - Pn) / 1000#, 7, 0); " kN" Print #1, Tab(40); "F Beton:";

Print #1, Tab(50); FrmAngka(-Cc / 1000#, 7, 0); " kN" End Sub

' fungsi modifikasi format angka agar rata kanan Function FrmAngka(angka, number, digit) FrmAngka = FormatNumber(angka, digit) T = Len(FrmAngka)

If T < number Then ii = number - T

FrmAngka = String(ii, " ") + FrmAngka End If End Function Function LuasTul(d) LuasTul = (d / 2) ^ 2 * phi End Function Function Arccos(x)

Arccos = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1) End Function

'============================================================| 'Menghitung blok desak beton berbentuk segmen persegi =======|

Sub BlokDesakKolPersegi(a, h, Cc, y0) Ac = a * h

y0 = a / 2

Cc = Ac * 0.85 * fc End Sub

'============================================================| 'Menghitung blok desak beton berbentuk segmen lingkaran =====|

Sub BlokDesakKolBulat(a, h, Cc, y0) If a > h Then

'suatu kondisi jika penampang desak seluas lingkaran Ac = phi / 4 * h ^ 2

(7)

y0 = h / 2

ElseIf a > 0.5 * h Then x = (a - h / 2) / (0.5 * h)

teta1 = phi - Arccos(x) ' dalam radian lho Else

x = (h / 2 - a) / (0.5 * h)

teta1 = Arccos(x) ' dalam radian lho End If

If a < h Then

Ac = h ^ 2 * (teta1 - Sin(teta1) * Cos(teta1)) / 4 y_ = h ^ 3 * Sin(teta1) ^ 3 / (12 * Ac) y0 = h / 2 - y_ End If Cc = Ac * 0.85 * fc End Sub '============================================================| 'Konversi Tulangan Perimeter Bulat ke lapis horizontal=======|

Sub LayerTul_Kol_Bulat(h, d1, nbar, dbar, n_layer) phi1 = 360 / nbar

alfa = phi1 / 2 r = 0.5 * h - d1 k = nbar Mod 2 If k = 0 Then

'jumlah tulangan genap n_layer = nbar / 2 Else n_layer = (nbar + 1) / 2 alfa = 0 End If For i = 1 To n_layer teta1 = alfa + phi1 * (i - 1)

y(i) = 0.5 * h - r * Cos(teta1 * phi / 180) If k = 1 And i = 1 Then Atul(i) = LuasTul(D_tul) Else Atul(i) = 2 * LuasTul(D_tul) End If Next i End Sub '============================================================| 'Konversi Tulangan Perimeter Bulat ke lapis horizontal=======|

Sub LayerTul_Kol_Persegi(h, d1, nbar, dbar, n_layer) n_layer = nbar / 4 + 1 r = h - (2 * d1) spasi = r / (n_layer - 1) For i = 1 To n_layer y(i) = d1 + spasi * (i - 1) If i = 1 Or i = n_layer Then

Atul(i) = LuasTul(D_tul) * n_layer Else Atul(i) = 2 * LuasTul(D_tul) End If Next i End Sub '============================================================|

(8)

'konstanta beton desak ultimate bentuk persegi equivalent ===| Function Beta1(fc) If fc <= 30 Then Beta1 = 0.85 ElseIf fc > 58 Then Beta1 = 0.65 Else Beta1 = 0.85 - (fc - 30) * 0.05 / 7 End If End Function '============================================================| 'fungsi tegangan-regangan baja tulangan bi-linier ===========|

Function fSteel(reg) Es = 200000 If reg < fy / Es Then fSteel = reg * Es Else fSteel = fy End If End Function

Private Sub Command1_Click() 'check validitas data

If d1 < D_tul / 2 + 20 Then T = Round(D_tul / 2 + 20)

Msg = "Jarak titik berat tulangan terlalu kecil "

Msg = Msg + "sebaiknya berjarak >= " + Str(T) + " mm" Title = "Evaluasi jarak titik berat tulangan ketepi " d1 = InputBox(Msg, Title, T)

Text2.Text = d1 End If

If h < 5 * d1 Then T = Round(5 * d1)

Msg = "Ukuran kolom terlalu kecil "

Msg = Msg + "sebaiknya >= " + Str(T) + " mm" Title = "Evaluasi ukuran kolom "

h = InputBox(Msg, Title, T) Text1.Text = h

End If

If Option1.Value = True Then 'Persyaratan untuk kolom persegi If n_tul Mod 4 <> 0 Then

Msg = "Jumlah tulangan harus kelipatan 4 " Title = "Evaluasi jumlah tulangan yang dipasang" qa = Round(n_tul / 4, 0)

qa = qa * 4

n_tul = InputBox(Msg, Title, qa) End If

Else

'Persyaratan untuk kolom bulat If n_tul < 4 Then

Msg = "Jumlah tulangan minimum 4 "

Title = "Evaluasi jumlah tulangan yang dipasang" n_tul = InputBox(Msg, Title, 4)

End If End If

(9)

Hitung End Sub

Private Sub Form_Load()

'menetapkan parameter-parameter pertama kali

T = "Diagram Interaksi Kolom Bujur Sangkar & Lingkaran" Form1.Caption = T Picture2.Height = Picture1.Height * 0.25 Picture2.Width = Picture2.Height k = Picture1.Width - Picture2.Width Picture2.Left = k + Picture1.Left * 2 / 3 Picture2.Top = Picture1.Top + 50 Picture2.BorderStyle = 0 bacaData If TipeKol = 1 Then

Option1.Value = True ' kolom bujur sangkar Else

Option2.Value = True ' kolom lingkaran End If Text1.Text = h Text2.Text = d1 Text3.Text = n_tul Text4.Text = D_tul Text5.Text = fy Text6.Text = fc Text7.Text = ttk_tbh Text8.Text = Pu Text9.Text = Mu Text10.Text = red_k Text11.Text = red_b Hitung Plot_KurvaINT End Sub Sub bacaData()

Open "default.txt" For Input As #1

Input #1, h, d1, n_tul, D_tul ' geometri penampang Input #1, fy, fc ' properti material

Input #1, red_k, red_b Input #1, ttk_tbh Input #1, Pu, Mu Input #1, TipeKol Close #1 End Sub Sub saveData()

Open "default.txt" For Output As #1

Write #1, h, d1, n_tul, D_tul ' geometri penampang Write #1, fy, fc ' properti material

Write #1, red_k, red_b Write #1, ttk_tbh Write #1, Pu, Mu Write #1, TipeKol Close #1 End Sub Sub ChangeInterface()

(10)

End Sub

Private Sub Option1_Click()

If Option1.Value Then TipeKol = 1 ChangeInterface

Plot_Penampang End Sub

Private Sub Option2_Click()

If Option2.Value Then TipeKol = 0 ChangeInterface

Plot_Penampang End Sub

Private Sub Text1_Change() h = Val(Text1.Text) ChangeInterface End Sub

Private Sub Text2_Change() d1 = Val(Text2.Text)

If d1 > 0 Then ChangeInterface End Sub

Private Sub Text3_Change() n_tul = Val(Text3.Text) ChangeInterface End Sub

Private Sub Text4_Change() D_tul = Val(Text4.Text)

If D_tul > 0 Then ChangeInterface End Sub

Private Sub Text5_Change() fy = Val(Text5.Text)

If fy > 0 Then ChangeInterface End Sub

Private Sub Text6_Change() fc = Val(Text6.Text)

If fc > 0 Then ChangeInterface End Sub

Private Sub Text7_Change() ttk_tbh = Val(Text7.Text) ChangeInterface

End Sub

Private Sub Text8_Change() Pu = Val(Text8.Text)

If Pu > 0 Then ChangeInterface End Sub

Private Sub Text9_Change() Mu = Val(Text9.Text)

If Mu > 0 Then ChangeInterface End Sub

(11)

Private Sub Text10_Change() red_k = Val(Text10.Text) ChangeInterface

End Sub

Private Sub Text11_Change() red_b = Val(Text11.Text) ChangeInterface End Sub '============================================================| '=== P L O T P E N A M P A N G T U L A N G A N ====| '============================================================| Sub gbrTul(x, y) Picture2.DrawWidth = 1 Picture2.FillColor = vbRed

Picture2.Circle (x, y), D_tul / 2, vbRed End Sub

Sub Plot_Penampang()

'Mengatur bidang gambar , kira-kira 108% dari objek 'sekaligus mengatur agar sumbu (0,0) ada di tengah xa = -h * 1.08 / 2

xb = -xa ya = xa yb = -ya

Picture2.Scale (xa, ya)-(xb, yb) Picture2.Cls

'Mengatur agar setiap gambar lingkaran adalah solid Picture2.FillColor = vbWhite

Picture2.FillStyle = 0

If Option1.Value = True Then Gambar_Kolom_Persegi Else Gambar_Kolom_Lingkaran End If End Sub '============================================================| 'Gambar potongan kolom di pojok kanan atas ==================|

Sub Gambar_Kolom_Lingkaran() '==================| 'Gambar Penampang Lingkaran

Picture2.DrawWidth = 2 Picture2.Circle (0, 0), h / 2 'Gambar sengkang

sengkang = h / 2 - d1 + D_tul / 2 Picture2.DrawWidth = 1

Picture2.Circle (0, 0), sengkang, vbBlue 'Gambar Tulangan phi1 = 360 / n_tul alfa = phi1 / 2 r = 0.5 * h - d1 k = n_tul Mod 2 If k = 0 Then

'jumlah tulangan genap n_layer = n_tul / 2 Else

(12)

n_layer = (n_tul + 1) / 2 alfa = 0

End If

For i = 1 To n_layer teta1 = alfa + phi1 * (i - 1) y_ = -r * Cos(teta1 * phi / 180) x_ = y_ * Tan(teta1 * phi / 180) If k = 1 And i = 1 Then

'untuk jumlah tulangan ganjil 'dan khusus yang paling atas Call gbrTul(0, y_)

Else

'untuk jumlah tulangan genap Call gbrTul(-x_, y_)

Call gbrTul(x_, y_) End If Next i Picture2.CurrentX = -25 Picture2.CurrentY = -20 T = Format(Persen_Tul, ".0") + "%" Picture2.Print T End Sub '============================================================| 'Gambar potongan kolom di pojok kanan atas ==================|

Sub Gambar_Kolom_Persegi() '==================| 'Persyaratan untuk kolom persegi

If n_tul Mod 4 <> 0 Then

Msg = "Jumlah tulangan harus kelipatan 4 " Title = "Evaluasi jumlah tulangan yang dipasang" qa = Round(n_tul / 4, 0)

qa = qa * 4

n_tul = InputBox(Msg, Title, qa) End If

'Gambar Penampang Persegi Picture2.DrawWidth = 2 Picture2.Line (-h / 2, h / 2)-(h / 2, -h / 2), , B 'Gambar sengkang hs = h / 2 - d1 + D_tul / 2 Picture2.DrawWidth = 1 Picture2.Line (-hs, hs)-(hs, -hs), vbBlue, B 'Gambar Tulangan r = 0.5 * h - d1 n_layer = n_tul / 4 + 1 spasi = 2 * r / (n_layer - 1) For i = 1 To n_layer x_ = -r + spasi * (i - 1) For j = 1 To n_layer y_ = r - spasi * (j - 1)

If i = 1 Or i = n_layer Or j = 1 Or j = n_layer Then Call gbrTul(x_, y_)

End If Next j Next i Picture2.CurrentX = -25 Picture2.CurrentY = -20 T = Format(Persen_Tul, ".0") + "%" Picture2.Print T

(13)

End Sub

'============================================================| 'plot diagram interaksi kolom termasuk yang tereduksi =======|

Sub Plot_KurvaINT() '=======| 'Mengatur bidang gambar , kira-kira 110% dari objek 'sekaligus mengatur agar sumbu (0,0) ada di tengah ymax = 0

ymin = 0 xmin = 0 xmax = 0

For i = 1 To nttk_kurva

If ymax < titik_PM(i, 1) Then ymax = titik_PM(i, 1) If ymin > titik_PM(i, 1) Then ymin = titik_PM(i, 1) If xmax < titik_PM(i, 2) Then xmax = titik_PM(i, 2) Next i

tinggi = ymax - ymin lebar = xmax - xmin sy = 0.05 * tinggi sx = 0.05 * lebar xkr = xmin - sx xkn = xmax + sx yat = ymax + sy ybw = ymin - sy

Picture1.Scale (xkr, yat)-(xkn, ybw) Picture1.Cls

'=================================================| 'bikin sumbu

Picture1.Line (xkr, 0)-(xkn, 0) Picture1.Line (0, yat)-(0, ybw)

'=================================================| 'gambar daerah kurva nominal sebelum direduksi

Pn0 = titik_PM(1, 1) Mn0 = titik_PM(1, 2) PnMax = titik_PM(2, 1) MnMin = titik_PM(2, 2) Pnb = titik_PM(3 + ttk_tbh, 1) Mnb = titik_PM(3 + ttk_tbh, 2) 'grs diagonal dari puncak ke Mn-min Picture1.DrawWidth = 1

Picture1.DrawStyle = vbDot 'grs diagonal|

Picture1.Line (0, Pn0)-(MnMin, PnMax) 'grs diagonal eksentrisitas

Picture1.Line (0, 0)-(MnMin, PnMax), vbGreen Picture1.Line (0, 0)-(Mnb, Pnb), vbGreen 'grs kurva Picture1.DrawWidth = 1 Picture1.DrawStyle = vbSolid Picture1.CurrentX = 0 Picture1.CurrentY = PnMax For i = 2 To nttk_kurva xb = titik_PM(i, 2) yb = titik_PM(i, 1) Picture1.Line -(xb, yb)

(14)

Next i

Picture1.DrawWidth = 1

'=================================================| '

gambar nomor titik kurva For i = 1 To nttk_kurva xa = titik_PM(i, 2) ya = titik_PM(i, 1) With Picture1 .CurrentX = xa .CurrentY = ya oldColor = .ForeColor .ForeColor = vbBlue Picture1.Print i .ForeColor = oldColor End With Next i '=================================================| 'gambar daerah kurva nominal setelah direduksi

P = red_PM(2, 1) Picture1.DrawWidth = 2 Picture1.DrawStyle = vbSolid Picture1.CurrentX = 0 Picture1.CurrentY = P For i = 2 To nttk_kurva xb = red_PM(i, 2) yb = red_PM(i, 1) Picture1.Line -(xb, yb) Next i Picture1.DrawWidth = 1 '=================================================| 'gambar Pu dan Mu pada kurva

If Pu > 0 Or Mu > 0 Then With Picture1

.DrawWidth = 1 .FillColor = vbGreen tt = lebar * 0.018

Picture1.Circle (Mu, Pu), tt, vbRed .DrawWidth = 1

tt = lebar * 0.04

Picture1.Line (Mu - tt, Pu)-(Mu + tt, Pu) tt = tinggi * 0.04

Picture1.Line (Mu, tt + Pu)-(Mu, Pu - tt) End With

End If End Sub

'============================================================| 'Menyiapkan tampilan MSFlexGrid untuk gaya reaksi tumpuan ===|

Sub Tabulasi() '==================| With MSFlexGrid1

.Visible = True

.Rows = nttk_kurva + 1 ' jml brs termasuk judul .Cols = 3 ' jml kol

.ColWidth(0) = 500 ' lebar kolom pertama 'Menentukan ukuran jendela grid yang ditampilkan If nttk_kurva <= 6 Then

(15)

.ColWidth(1) = 1060

.Width = .ColWidth(0) + 2 * .ColWidth(1) + 100 .Height = (nttk_kurva + 1) * .RowHeight(0) + 88 Else

.ColWidth(1) = 970

.Width = .ColWidth(0) + 2 * .ColWidth(1) + 300 .Height = 6 * .RowHeight(0) + 88

End If

.ColWidth(2) = .ColWidth(1)

'Menempatkan label di baris judul horizontal .ColAlignment(0) = flexAlignCenterCenter .ColAlignment(1) = flexAlignCenterCenter .TextMatrix(0, 0) = "No"

.TextMatrix(0, 1) = Space(3) & "Pn (kN)" .TextMatrix(0, 2) = Space(3) & "Mn (kNm)" For i = 1 To nttk_kurva

P = titik_PM(i, 1) M = titik_PM(i, 2) .TextMatrix(i, 0) = i

.TextMatrix(i, 1) = Format(P, "#.0")

.TextMatrix(i, 2) = Format(M, "#.0") & Space(5) Next i

End With End Sub

Sub Print_Header()

Print #1, " Diagram Interaksi================================" Print #1, " ### ### ### ##### ### ###"

Print #1, " ### ### ##### ### ### ### ##### .####" Print #1, " ### ### ### ### ### ### ### ### #######" Print #1, " ### ### ### ### ### ### ### ### #' ###" Print #1, " ### ### ### ### ######## ##### ### ###" Print #1, " ### ### ##### Bujur Sangkar dan Lingkaran" Print #1, " ### ### by AndREW_5ihiTe" Print #1, "Jurusan Teknik Sipil - Universitas Sumatera Utara"

Print #1, "================================================" Print #1,

Print #1, "Beton Berpenampang "; If Option1.Value = True Then

Print #1, "Bujur Sangkar: h = "; Format(h, "0"); " mm , "; Else

Print #1, "Lingkaran: dia. = "; Format(h, "0"); " mm , "; End If

Print #1, "fc "; Format(fc, "0"); " MPa"

Print #1, "Baja Tulangan: "; Format(n_tul, "0"); "-D"; Print #1, Format(D_tul, "0");

Print #1, " , fy "; Format(fy, "0"); " MPa ,"; Print #1, " c-to-c ke tepi: "; Format(d1, "0"); " mm" Print #1, "Jumlah titik pada kurva yang ditinjau :"; Print #1, nttk_kurva

Print #1, End Sub

Referensi

Dokumen terkait

Populasi yang digunakan dalam penelitian ini adalah data tentang Pajak Reklame, Pajak Hiburan dan Pendapatan Asli Daerah pada Dinas Pendapatan dan Pengelolaan Keuangan Kota

Penelitian yang menguji pengaruh aktivitas lindung nilai terhadap agresivitas pajak dimulai oleh Graham dan Smith (1999) yang menemukan bahwa perusahaan yang

menerus ( sustainable beneit ) bagi kemaslahatan umat, sehingga pada saat proyek infrastruktur tersebut telah dapat beroperasi dan mampu menghasilkan keuntungan secara

Dalam mengkategorikan tingkat pengetahuan rendah dan tingkat pengetahuan tinggi, peneliti menggunakan cara nilai tengah (median) sehingga kriteria dalam pengkategorian

Salah satu upaya yang dapat dilakukan oleh dunia pendidikan untuk mampu berkompetisi di era globalisasi adalah dengan mengintegrasikan TIK ke dalam proses belajar.Salah satu

5.The mean scores of post-test cycle 2 were 84 for meaning, 76 for pronunciation, 80 for spelling, and 73 for using words Students’ improvement in teaching and learning

tentang Laporan Penyelenggaraan Pemerintahan Daerah, Laporan Keterangan Pertanggungjawaban Kepala Daerah kepada DPRD dan Informasi Laporan Penyelenggaraan Pemerintahan

Apabila saudara tidak hadir sesuai dengan jadwal tersebut diatas dalam acara pembuktian kualifikasi ini, maka dianggap saudara. menyetujui keputusan yang ditetapkan