Anda di halaman 1dari 16

291

BAB V
STUDI KASUS

5.1 Model Kasus


Dalam Praktikum ini kami menggunakan model kasus sebagai berikut :

Gambar 5.1 Model Kasus 1F

5.2 Analisis Kasus


Berdasarkan kasus 1F yang terdapat pada Gambar 5.1 didapatkan
penyelesaian sebagai berikut :
1. Data Kasus
P1 = 10 T a = 6m
P2 = 14 T b = 6m
Q1 = 4 T/m c = 6m
L = 18 m
2. Perhitungan reaksi tumpuan
∑MB = 0
1
0 = 𝑅𝐴𝑉. 𝐿 − ((𝑄1. 𝑎). (2 𝑎 + 𝑏 + 𝑐)) − 𝑃1. (𝑏 + 𝑐) − 𝑃2. (𝑐)
1
((𝑄1.𝑎).( 𝑎+𝑏+𝑐))+𝑃1.(𝑏+𝑐)+𝑃2.(𝑐)
2
RAV = 𝐿
1
((4.6).( 6+6+6))+10.(6+6)+14.(6)
2
RAV = 18

RAV = 31,33 T
292

∑MA = 0
1
0 = −𝑅𝐵𝑉. 𝐿 + ((𝑄1. 𝑎). 2 𝑎 + 𝑃1. 𝑎 + 𝑃2. (𝑎 + 𝑏)
1
((𝑄1.𝑎). 𝑎+𝑃1.𝑎+𝑃2.(𝑎+𝑏)
2
RBV = 𝐿
1
((4.6). 6+10.6+14.(6+6)
2
RBV = 18
= 16,67 T

3. Perhitungan SFD
SFD0 = 0T
SFD1 = RAV
= 31,33 T
SFD2 = 𝑅𝐴𝑉 − 𝑄1. 𝑎
= 31,33 − 4.6
= 7,33 T
SFD3 = 𝑅𝐴𝑉 − 𝑄1. 𝑎 − 𝑃1
= 31,33 − 4.6 − 10
= -2,67 T
SFD4 = 𝑅𝐴𝑉 − 𝑄1. 𝑎 − 𝑃1 − 𝑃2
= 31,33 − 4.6 − 10 − 14
= -16,67 T
SFD5 = 𝑅𝐴𝑉 − 𝑄1. 𝑎 − 𝑃1 − 𝑃2
= 31,33 − 4.6 − 10 − 14
= -16,67 T
SFD6 = 𝑅𝐴𝑉 − 𝑄1. 𝑎 − 𝑃1 − 𝑃2 − 𝑅𝐵𝑉
= 31,33 − 4.6 − 10 − 14 − 16,67
= -33,34 T

Setelah menghitung nilai SFD pada kasus tersebut maka diagram gaya
geser dapat dilihat pada Gambar 5.2 berikut.

Gambar 5.2 Shear Force Diagram


293

4. Perhitungan BMD
BMD 0 = 0 KNM
Dikarenakan gaya RAV – Q . jarak A tidak lebih kecil dari 0 dan lebih kecil
dari nol saat ditambah gaya P1, maka didapatkan nilai X sebesar jarak A,
yaitu 6m. Untuk hasilnya dapat dilihat pada perhitungan sebagai berikut.

Maka,
1
BMDX = 𝑅𝐴𝑉. 𝑥 − 𝑄1. 𝑥. ( 2 𝑥)
1
= 31,33 . 6 – 4 . 6. 26
= 115,98 kNm
1
BMDC = 𝑅𝐴𝑉. 𝑎 − 𝑄1. 𝑎. ( 2 𝑎)
1
= 31,33 . 6 – 4 . 6 . 6
2
= 115,98 KNm
BMDD = 𝑅𝐵𝑉 . 6
= 16,67 . 6
= 99,96 kNm

Setelah menghitung nilai BMD pada kasus tersebut maka diagram momen
gaya dapat dilihat pada Gambar 5.3 berikut.

Gambar 5.3 Banding Momen Diagram

5.3 Pembuatan Kasus


Dalam menggunakan program dibutuhkan langkah langkah untuk
menjalankan program. Berikut langkah langkah dalam menjalankan program
Analisa Struktur Statis Tertentu :
294

1. Class Global Variabel


Disini kita menghidupkan code yang sebelumnya tulisannya berwarna
hijau ketika diaktifkan menjadi tulisan berwarna biru misalnya code
sebelumnya ‘Public Shared Model1F As String = Model1
& " TIPE 6" ketika mau diaktifkan tanda petik (‘) dihapus, jika tanda
petiknya sudah dihapus code ini sudah aktif seperti pada gambar 5.4 berikut
ini.

Public Shared Model1A As String = Model1 & " TIPE 1"


Public Shared Model1B As String = Model1 & " TIPE 2"
Public Shared Model1C As String = Model1 & " TIPE 3"
'Public Shared Model1D As String = Model1 & " TIPE 4"
'Public Shared Model1E As String = Model1 & " TIPE 5"
Public Shared Model1F As String = Model1 & " TIPE 6"

Gambar 5.4 Koding Pengaktifan Class Global Variabel


2. Form Model Struktur
Dikoding bagian pbModelStruktur kita menambahkan gambar kasus yang
sebelumnya belum muncul ditampilan form Model Struktur misalnya code
sebelumnya '.gbSubModelStruktur4 ketika mau diaktifkan tanda
petik (‘) dihapus lalu code menjadi .gbSubModelStruktur4 dan
menambahkan code baru seperti gambar 5.5 berikut ini.

.gbSubModelStruktur6.Text = Model1F
.pbSubModelStruktur6.Image = My.Resources.Model1_F
.pbSubModelStruktur6.SizeMode = PictureBoxSizeMode.StretchImage
.gbSubModelStruktur6.Show()
.pbSubModelStruktur6.Show()

Gambar 5.5 Koding Pengaktifan Form Model Struktur


3. Form Sub Model Struktur
Dikoding pada bagian pbSubModelStruktur4 kita menghidupkan dan
mematikan text kolom yang kita butuhkan sesuai dengan kasus kita.
Sesuai dengan gambar 5.6 seperti berikut ini.
295

Gambar 5.6 Koding Pengaktifan Form Sub Model Struktur


4. Form Input Nilai
Dikoding pada bagian Tampil Model kita menghidupkan code yang
sebelumnya tulisannya berwarna hijau ketika diaktifkan menjadi tulisan
berwarna biru misalnya code sebelumnya

'ElseIf FormUtama.txtNamaModel.Text = Model1F Then

Lalu tanda petiknya (‘) dihapus agar terbaca saat di running

ElseIf FormUtama.txtNamaModel.Text = Model1F Then

dan menambahkan code seperti pada gambar 5.7 berikut ini.

ElseIf FormUtama.txtNamaModel.Text = Model1F Then


mdlGambar.Tumpuan_Sendi()
mdlGambar.Tumpuan_Roll()
mdlGambar.Batas_Garis_Jarak_Beban_C()
mdlLabel.label_Jarak_Beban_C()
mdlBeban.Beban_Titik_1_A()
mdlBeban.Beban_Titik_1_B()
mdlBeban.Beban_Merata_0A()

Gambar 5.7 Koding Pengaktifan Form Input Nilai


5. Form Reaksi Tumpuan
Dikoding bagian btnHitung kita menghidupkan code yang sebelumnya
tulisannya berwarna hijau ketika diaktifkan menjadi tulisan berwarna biru
misalnya code sebelumnya

'Elself FormUtama.txtNamaModel.Text = Model1F Then


296

' RAV =

' RBV =

Lalu tanda petiknya (‘) dihapus agar terbaca saat di running

Elself FormUtama.txtNamaModel.Text = Model1F Then

' RAV =

' RBV =

dan menambahkan code seperti pada gambar 5.8 berikut ini.

ElseIf FormUtama.txtNamaModel.Text = Model1F Then


RAV = (((P1 * (B + C)) + (P2 * C) + ((Q1 * A * ((B + C) + ((1 / 2) *
A)))))) / L
RBV = ((P1 * A) + (P2 * (A + B)) + (Q1 * A * ((1 / 2) * A))) / L
txtRAV.Text = String.Format("{0:n2}", RAV)
txtRBV.Text = String.Format("{0:n2}", RBV)

Gambar 5.8 Koding Rumus Form Input Nilai

6. mdl SFD
Diform ini kita menambahkan code di bagian SFD_MODEL1F, seperti
gambar 5.9 berikut ini.

SFDPath.AddLines(TitikSFD)

'' --> Masking


ClipSFD.SetClip(SFDPath, CombineMode.Replace)
Background_2Warna()
GrafikSFD.DrawPath(PenSFD, SFDPath)

Gambar 5.9 Koding Rumus Modul SFD


297

''--> Gambar Titik SFD


For Each Pt As Point In TitikSFD
Rect = New Rectangle(CInt(Pt.X - 2), CInt(Pt.Y - 2), 4, 4)
GrafikSFD.DrawRectangle(Pens.LightGray, Rect)
Next Pt
''--> Label SFD
Dim textSFD0 = 0
Dim textSFD1 = RAV
Dim textSFD2 = RAV
Dim textSFD3 = (RAV - P1)
Dim textSFD4 = (RAV - P1)
Dim textSFD5 = 0
SFDStringFormat.LineAlignment = StringAlignment.Near
SFDStringFormat.Alignment = StringAlignment.Center
GrafikSFD.DrawString(FormatNumber(textSFD1, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(1), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD2, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(2), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD3, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(3), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD4, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(4), SFDStringFormat)

Dim textSFD() As Double = {textSFD0, textSFD1, textSFD2, textSFD3, _


textSFD4, textSFD5}

frmSFD.txtGayaGeserMaks.Text = FormatNumber(textSFD.Max, 2)
frmSFD.txtGayaGeserMin.Text = FormatNumber(textSFD.Min, 2)
frmSFD.txtV0.Text = FormatNumber(textSFD0, 0)
frmSFD.txtV1.Text = FormatNumber(textSFD1, 2)
frmSFD.txtV2.Text = FormatNumber(textSFD2, 2)
frmSFD.txtV3.Text = FormatNumber(textSFD3, 2)
frmSFD.txtV4.Text = FormatNumber(textSFD4, 2)
frmSFD.txtV5.Text = FormatNumber(textSFD5, 0)
frmSFD.txtV6.Enabled = False
frmSFD.txtV7.Enabled = False
frmSFD.txtV8.Enabled = False

GrafikSFD.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

'' --> Titik SFD


Dim TitikSFD(7) As Point
TitikSFD(0) = New Point(CInt(TitikBentangXAwal), _
CInt(TitikYTengah))
TitikSFD(1) = New Point(CInt(TitikBentangXAwal), _
CInt(JarakRAV))
TitikSFD(2) = New Point(CInt(KonversiTitikA), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY))))
TitikSFD(3) = New Point(CInt(KonversiTitikA), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1)))
TitikSFD(4) = New Point(CInt(KonversiTitikB), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1)))

Lanjutan Gambar 5.9 Koding Rumus Modul SFD


298

TitikSFD(5) = New Point(CInt(KonversiTitikB), _


CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1) +
(KonversiTitikBebanP2)))
TitikSFD(6) = New Point(CInt(KonversiTitikC), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1) +
(KonversiTitikBebanP2)))
TitikSFD(7) = New Point(CInt(TitikBentangXAkhir), _
CInt(TitikYTengah))

SFDPath.AddLines(TitikSFD)
'' --> Masking
ClipSFD.SetClip(SFDPath, CombineMode.Replace)
Background_2Warna()
GrafikSFD.DrawPath(PenSFD, SFDPath)

''--> Gambar Titik SFD


For Each Pt As Point In TitikSFD
Rect = New Rectangle(CInt(Pt.X - 2), CInt(Pt.Y - 2), 4, 4)
GrafikSFD.DrawRectangle(Pens.LightGray, Rect)
Next Pt

''--> Label SFD


Dim textSFD0 = 0
Dim textSFD1 = RAV
Dim textSFD2 = (RAV - (Q1 * A))
Dim textSFD3 = (RAV - (Q1 * A) - P1)
Dim textSFD4 = (RAV - (Q1 * A) - P1)
Dim textSFD5 = (RAV - (Q1 * A) - P1 - P2)
Dim textSFD6 = (RAV - (Q1 * A) - P1 - P2)
Dim textSFD7 = 0
SFDStringFormat.LineAlignment = StringAlignment.Near
SFDStringFormat.Alignment = StringAlignment.Center
GrafikSFD.DrawString(FormatNumber(textSFD1, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(1), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD2, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(2), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD3, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(3), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD4, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(4), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD5, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(5), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD5, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(6), SFDStringFormat)

Dim textSFD() As Double = {textSFD0, textSFD1, textSFD2, textSFD3, _


textSFD4, textSFD5, textSFD6, textSFD7}
frmSFD.txtGayaGeserMaks.Text = FormatNumber(textSFD.Max, 2)
frmSFD.txtGayaGeserMin.Text = FormatNumber(textSFD.Min, 2)
frmSFD.txtV0.Text = FormatNumber(textSFD0, 0)
frmSFD.txtV1.Text = FormatNumber(textSFD1, 2)
frmSFD.txtV2.Text = FormatNumber(textSFD2, 2)

Lanjutan Gambar 5.9 Koding Rumus Modul SFD


299

frmSFD.txtV3.Text = FormatNumber(textSFD3, 2)
frmSFD.txtV4.Text = FormatNumber(textSFD4, 2)
frmSFD.txtV5.Text = FormatNumber(textSFD5, 2)
frmSFD.txtV6.Text = FormatNumber(textSFD6, 2)
frmSFD.txtV7.Text = FormatNumber(textSFD7, 0)
frmSFD.txtV8.Enabled = False

Lanjutan Gambar 5.9 Koding Rumus Modul SFD

7. Form SFD

Dikoding pada bagian btnPreview kita menghidupkan code yang


sebelumnya tulisannya berwarna hijau ketika diaktifkan menjadi tulisan
berwarna biru misalnya code sebelumnya

'ElseIf FormUtama.txtNamaModel.Text = Model1F Then

Lalu tanda petiknya (‘) dihapus agar terbaca saat di running

ElseIf FormUtama.txtNamaModel.Text = Model1F Then

dan menambahkan code SFD seperti pada gambar 5.10 berikut ini.

ElseIf FormUtama.txtNamaModel.Text = Model1F Then


mdlSFD.SFD_MODEL1F()
mdlGambar.Batas_Garis_Jarak_Beban_C()
mdlLabel.label_Jarak_Beban_C()

Gambar 5.10 Koding Form SFD


8. Modul BMD
Diform ini kita menambahkan code di bagian BMD_MODEL1F, seperti
gambar 5.11 berikut ini
300

Public Sub BMD_Model1F()


GrafikBMD.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

Dim V1 = Math.Abs(TitikYTengah - JarakRAV)


Dim VarX = Math.Abs(V1 / Q1)
Dim X = VarX / (KonversiTitikY * 10)
Dim XX = VarX * XY ' Mengubah variable VarX menjadi garis x

MC = ((RAV * A) - ((Q1 * A * (1 / 2) * A)))


MD = RBV * C
MX = ((RAV * X) - ((Q1 * X * (1 / 2) * X)))
JarakMC = ((KonversiTitikTm * MC) * 10)
JarakMD = ((KonversiTitikTm * MD) * 10)
JarakMX = ((KonversiTitikTm * MX) * 10)
KonversiMCY = TitikYTengah + JarakMC
KonversiMDY = TitikYTengah + JarakMD`
KonversiMXY = TitikYTengah + JarakMX
Dim Konversi0XX = TitikBentangXAwal + XX
Dim JarakXCX = JarakA - XX
Dim JarakXCY = JarakMX - JarakMC
Dim textBMD1 = MX
''--> Titik BMD
Dim TitikBMD(4) As Point
TitikBMD(0) = New Point(CInt(TitikBentangXAwal),
CInt(TitikYTengah))
TitikBMD(2) = New Point(CInt(KonversiTitikA), CInt(KonversiMCY))
TitikBMD(3) = New Point(CInt(KonversiTitikB), CInt(KonversiMDY))
TitikBMD(4) = New Point(CInt(TitikBentangXAkhir),
CInt(TitikYTengah))

If (JarakRAV + (Q1 * (JarakA / XY))) < TitikYTengah Then


TitikBMD(1) = New Point(CInt(TitikBentangXAwal + (JarakA / 2)),
_CInt(KonversiMCY - (JarakMC / 4)))
Curve1 = {TitikBMD(0), TitikBMD(1), TitikBMD(2)}
BMDPath.AddCurve(Curve1)
BMDPath.AddLine(TitikBMD(2), TitikBMD(3))
BMDPath.AddLine(TitikBMD(3), TitikBMD(4))
BMDStringFormat2.LineAlignment = StringAlignment.Near
BMDStringFormat2.Alignment = StringAlignment.Center
Else
TitikBMD(1) = New Point(CInt(Konversi0XX), CInt(KonversiMXY))
Curve1 = {TitikBMD(0), _
New Point(CInt(Konversi0XX - (XX / 2)), _
CInt(KonversiMXY - (JarakMX / 4))), _
TitikBMD(1)}
Curve2 = {TitikBMD(1), _
New Point(CInt(Konversi0XX + (JarakXCX / 2)), _
CInt(KonversiMXY - (JarakXCY / 4))), _
TitikBMD(2)}
BMDPath.AddCurve(Curve1)
BMDPath.AddCurve(Curve2)
BMDPath.AddLine(TitikBMD(2), TitikBMD(3))
BMDPath.AddLine(TitikBMD(3), TitikBMD(4))

Gambar 5.11 Koding Rumus Modul BMD


301

BMDStringFormat2.LineAlignment = StringAlignment.Far
BMDStringFormat2.Alignment = StringAlignment.Center
GrafikBMD.DrawString(FormatNumber(textBMD1, 2) & " Tm",
UpdateFont, Brushes.Black, _ TitikBMD(1),
BMDStringFormat)
End If

''--> Fiil BMD


GrafikBMD.FillPath(FillBMD, BMDPath)
GrafikBMD.DrawPath(PenBMD, BMDPath)

For Each Pt As Point In TitikBMD


Rect = New Rectangle(CInt(Pt.X - 2), CInt(Pt.Y - 2), 4, 4)
GrafikBMD.DrawRectangle(Pens.LightGray, Rect)

Next Pt

''--> Label BMD


Dim textBMD0 = 0
Dim textBMD2 = MC
Dim textBMD3 = MD
Dim textBMD4 = 0
BMDStringFormat.LineAlignment = StringAlignment.Near
BMDStringFormat.Alignment = StringAlignment.Center
GrafikBMD.DrawString(FormatNumber(textBMD2, 2) & " Tm", UpdateFont,
Brushes.Black, _TitikBMD(2), BMDStringFormat)
GrafikBMD.DrawString(FormatNumber(textBMD3, 2) & " Tm", UpdateFont,
Brushes.Black, _TitikBMD(3), BMDStringFormat2)

Dim textBMD() As Double = {textBMD0, textBMD1, textBMD2, textBMD3,


textBMD4}
frmBMD.txtMomenMaks.Text = FormatNumber(textBMD.Max, 2)
frmBMD.txtMomenMin.Text = FormatNumber(textBMD.Min, 2)
frmBMD.txtMA.Text = FormatNumber(textBMD0, 0)
frmBMD.txtMB.Text = FormatNumber(textBMD4, 0)
frmBMD.txtMC.Text = FormatNumber(textBMD2, 2)
frmBMD.txtMD.Text = FormatNumber(textBMD3, 2)
frmBMD.txtME.Enabled = False
frmBMD.txtMX.Text = FormatNumber(textBMD1, 2)

End Sub

Lanjutan Gambar 5.11 Koding Rumus Modul BMD

9. Form BMD

Dikoding pada bagian btnPreview kita menghidupkan code yang


sebelumnya tulisannya berwarna hijau ketika diaktifkan menjadi tulisan
berwarna biru misalnya code sebelumnya

'ElseIf FormUtama.txtNamaModel.Text = Model1F Then


302

Lalu tanda petiknya (‘) dihapus agar terbaca saat di running

ElseIf FormUtama.txtNamaModel.Text = Model1F Then

dan menambahkan code BMD seperti pada gambar 5.12 berikut ini.

ElseIf FormUtama.txtNamaModel.Text = Model1F Then


mdlBMD.BMD_Model1F()
mdlGambar.Batas_Garis_Jarak_Beban_C()
mdlLabel.label_Jarak_Beban_C()

Gambar 5.12 Koding Form BMD


10. Modul Report

Dimodul ini kita menambahkan code di bagian SFD_MODEL1F dan


BMD_MODEL1F ke dalam Modul Report , seperti gambar 5.13 dan 5.14
berikut ini

GrafikSFD.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

'' --> Titik SFD


Dim TitikSFD(7) As Point
TitikSFD(0) = New Point(CInt(TitikBentangXAwal), _
CInt(TitikYTengah))
TitikSFD(1) = New Point(CInt(TitikBentangXAwal), _
CInt(JarakRAV))
TitikSFD(2) = New Point(CInt(KonversiTitikA), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY))))
TitikSFD(3) = New Point(CInt(KonversiTitikA), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1)))
TitikSFD(4) = New Point(CInt(KonversiTitikB), _
CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1)))

Gambar 5.13 Koding SFD Pada Modul Report


303

TitikSFD(5) = New Point(CInt(KonversiTitikB), _


CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1) +
(KonversiTitikBebanP2)))

TitikSFD(6) = New Point(CInt(KonversiTitikC), _


CInt((JarakRAV) + _
(Q1 * (JarakA / XY)) +
(KonversiTitikBebanP1) +
(KonversiTitikBebanP2)))
TitikSFD(7) = New Point(CInt(TitikBentangXAkhir), _
CInt(TitikYTengah))
SFDPath.AddLines(TitikSFD)

'' --> Masking


ClipSFD.SetClip(SFDPath, CombineMode.Replace)
Background_2Warna()
GrafikSFD.DrawPath(PenSFD, SFDPath)

''--> Gambar Titik SFD


For Each Pt As Point In TitikSFD
Rect = New Rectangle(CInt(Pt.X - 2), CInt(Pt.Y - 2), 4, 4)
GrafikSFD.DrawRectangle(Pens.LightGray, Rect)
Next Pt

''--> Label SFD


Dim textSFD0 = 0
Dim textSFD1 = RAV
Dim textSFD2 = (RAV - (Q1 * A))
Dim textSFD3 = (RAV - (Q1 * A) - P1)
Dim textSFD4 = (RAV - (Q1 * A) - P1)
Dim textSFD5 = (RAV - (Q1 * A) - P1 - P2)
Dim textSFD6 = (RAV - (Q1 * A) - P1 - P2)
Dim textSFD7 = 0
SFDStringFormat.LineAlignment = StringAlignment.Near
SFDStringFormat.Alignment = StringAlignment.Center
GrafikSFD.DrawString(FormatNumber(textSFD1, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(1), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD2, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(2), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD3, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(3), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD4, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(4), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD5, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(5), SFDStringFormat)
GrafikSFD.DrawString(FormatNumber(textSFD5, 2) & " T", UpdateFont,
Brushes.Black, _ TitikSFD(6), SFDStringFormat)

Dim textSFD() As Double = {textSFD0, textSFD1, textSFD2, textSFD3,


_textSFD4, textSFD5, textSFD6, textSFD7}
frmSFD.txtGayaGeserMaks.Text = FormatNumber(textSFD.Max, 2)
frmSFD.txtGayaGeserMin.Text = FormatNumber(textSFD.Min, 2)

Lanjutan Gambar 5.13 Koding SFD Pada Modul Report


304

frmSFD.txtV0.Text = FormatNumber(textSFD0, 0)
frmSFD.txtV1.Text = FormatNumber(textSFD1, 2)
frmSFD.txtV2.Text = FormatNumber(textSFD2, 2)
frmSFD.txtV3.Text = FormatNumber(textSFD3, 2)
frmSFD.txtV4.Text = FormatNumber(textSFD4, 2)
frmSFD.txtV5.Text = FormatNumber(textSFD5, 2)
frmSFD.txtV6.Text = FormatNumber(textSFD6, 2)
frmSFD.txtV7.Text = FormatNumber(textSFD7, 0)
frmSFD.txtV8.Enabled = False
End Sub

Lanjutan Gambar 5.13 Koding SFD Pada Modul Report

Public Sub BMD_Model1F()


GrafikBMD.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

Dim V1 = Math.Abs(TitikYTengah - JarakRAV)


Dim VarX = Math.Abs(V1 / Q1)
Dim X = VarX / (KonversiTitikY * 10)
Dim XX = VarX * XY ' Mengubah variable VarX menjadi garis x

MC = ((RAV * A) - ((Q1 * A * (1 / 2) * A)))


MD = RBV * C
MX = ((RAV * X) - ((Q1 * X * (1 / 2) * X)))
JarakMC = ((KonversiTitikTm * MC) * 10)
JarakMD = ((KonversiTitikTm * MD) * 10)
JarakMX = ((KonversiTitikTm * MX) * 10)
KonversiMCY = TitikYTengah + JarakMC
KonversiMDY = TitikYTengah + JarakMD
KonversiMXY = TitikYTengah + JarakMX

Dim Konversi0XX = TitikBentangXAwal + XX


Dim JarakXCX = JarakA - XX
Dim JarakXCY = JarakMX - JarakMC
Dim textBMD1 = MX

''--> Titik BMD


Dim TitikBMD(4) As Point
TitikBMD(0) = New Point(CInt(TitikBentangXAwal),
CInt(TitikYTengah))
TitikBMD(2) = New Point(CInt(KonversiTitikA), CInt(KonversiMCY))
TitikBMD(3) = New Point(CInt(KonversiTitikB), CInt(KonversiMDY))
TitikBMD(4) = New Point(CInt(TitikBentangXAkhir),
CInt(TitikYTengah))
If (JarakRAV + (Q1 * (JarakA / XY))) < TitikYTengah Then
TitikBMD(1) = New Point(CInt(TitikBentangXAwal + (JarakA / 2)),
_ CInt(KonversiMCY - (JarakMC / 4)))
Curve1 = {TitikBMD(0), TitikBMD(1), TitikBMD(2)}
BMDPath.AddCurve(Curve1)

Gambar 5.14 Koding BMD Pada Modul Report


305

BMDPath.AddLine(TitikBMD(2), TitikBMD(3))
BMDPath.AddLine(TitikBMD(3), TitikBMD(4))
BMDStringFormat2.LineAlignment = StringAlignment.Near
BMDStringFormat2.Alignment = StringAlignment.Center
Else
TitikBMD(1) = New Point(CInt(Konversi0XX), CInt(KonversiMXY))
Curve1 = {TitikBMD(0), _
New Point(CInt(Konversi0XX - (XX / 2)), _
CInt(KonversiMXY - (JarakMX / 4))), _
TitikBMD(1)}
Curve2 = {TitikBMD(1), _
New Point(CInt(Konversi0XX + (JarakXCX / 2)), _
CInt(KonversiMXY - (JarakXCY / 4))), _
TitikBMD(2)}
BMDPath.AddCurve(Curve1)
BMDPath.AddCurve(Curve2)
BMDPath.AddLine(TitikBMD(2), TitikBMD(3))
BMDPath.AddLine(TitikBMD(3), TitikBMD(4))
BMDStringFormat2.LineAlignment = StringAlignment.Far
BMDStringFormat2.Alignment = StringAlignment.Center
GrafikBMD.DrawString(FormatNumber(textBMD1, 2) & " Tm",
UpdateFont, Brushes.Black, _TitikBMD(1),
BMDStringFormat)
End If

''--> Fiil BMD


GrafikBMD.FillPath(FillBMD, BMDPath)
GrafikBMD.DrawPath(PenBMD, BMDPath)

For Each Pt As Point In TitikBMD


Rect = New Rectangle(CInt(Pt.X - 2), CInt(Pt.Y - 2), 4, 4)
GrafikBMD.DrawRectangle(Pens.LightGray, Rect)
Next Pt

''--> Label BMD


Dim textBMD0 = 0
Dim textBMD2 = MC
Dim textBMD3 = MD
Dim textBMD4 = 0
BMDStringFormat.LineAlignment = StringAlignment.Near
BMDStringFormat.Alignment = StringAlignment.Center
GrafikBMD.DrawString(FormatNumber(textBMD2, 2) & " Tm", UpdateFont,
Brushes.Black, _TitikBMD(2), BMDStringFormat)
GrafikBMD.DrawString(FormatNumber(textBMD3, 2) & " Tm", UpdateFont,
Brushes.Black, _TitikBMD(3), BMDStringFormat2)

Dim textBMD() As Double = {textBMD0, textBMD1, textBMD2, textBMD3,


textBMD4}

Lanjutan Gambar 5.15 Koding BMD Pada Modul Report


306

frmBMD.txtMomenMaks.Text = FormatNumber(textBMD.Max, 2)
frmBMD.txtMomenMin.Text = FormatNumber(textBMD.Min, 2)
frmBMD.txtMA.Text = FormatNumber(textBMD0, 0)
frmBMD.txtMB.Text = FormatNumber(textBMD4, 0)
frmBMD.txtMC.Text = FormatNumber(textBMD2, 2)
frmBMD.txtMD.Text = FormatNumber(textBMD3, 2)
frmBMD.txtME.Enabled = False
frmBMD.txtMX.Text = FormatNumber(textBMD1, 2)
End Sub

Lanjutan Gambar 5.15 Koding BMD Pada Modul Report

Anda mungkin juga menyukai