wavcal by meddy.docx
DESCRIPTION
tttTRANSCRIPT
Dim k As Single
Dim sudut2 As Single
Dim sdt1 As Single
Dim sdt2 As Single
Dim kr As Single
Private Sub Cmdhapus_Click()
Txtdalam.Text = ""
Txtperiode.Text = ""
Txttinggi.Text = ""
Txtsudut1 = ""
Txtk.Text = ""
Txtpjggel.Text = ""
Txtn.Text = ""
Txtcg.Text = ""
Txtc.Text = ""
TxtKs = ""
Txtsudut2 = ""
Txtkr = ""
Txthcari = ""
Txtnama.Text = ""
TxtEp = ""
TxtEt = ""
Txtflux = ""
Txtub = ""
Txttipegpc.Text = ""
Txtslope = ""
End Sub
Private Sub CmdHitung_Click()
If TxtUA = "" And Txtperiode = "" Or Txtperiode = "" Or Txtsudut1 = "" _
And Txtdalam = "" Or Txtslope = "" Then
MsgBox ("Isikan terlebih dahulu secara lengkap Input Data !")
' Exit Sub
Else
g = 9.81
pi = 22 / 7
deg = pi / 180
rp = 1030 ' rapat massa
Lnol = 1.56 * (Txtperiode.Text) ^ 2 'panjang gelombang di laut dalam
Cnol = Lnol / (Txtperiode.Text)
knol = ((2 * pi / (Txtperiode.Text)) ^ 2) * (Txtdalam.Text) / g
kno = knol ^ (3 / 4)
'menghitung nnol
'sinkh = Exp(2 * k * (Txtdalam.Text)) - Exp(-2 * k * (Txtdalam.Text))
'sinkh = sinkh / 2
'Txtnnol.Text = 0.5 * (1 + 2 * k * (Txtdalam.Text) / sinkh)
nnol = 0.5
'mencari nilai k dengan metode Newton Raphson
tanh = (Exp(kno) - Exp(-kno)) / (Exp(kno) + Exp(-kno))
coth = 1 / tanh
kn = knol * coth ^ (2 / 3)
For i = 1 To 10
th = (Exp(kn) - Exp(-kn)) / (Exp(kn) + Exp(-kn))
ch = (Exp(kn) + Exp(-kn)) / 2
f = knol - kn * th
fprime = -kn / (ch ^ 2) - th
deltak = -f / fprime
If (Abs(deltak / kn) < 0.000001) Then GoTo 9
kn = kn + deltak
Next i
9 k = kn / (Txtdalam.Text)
Txtk.Text = k '2 * pi / (Txtpjggel.Text)
'menghitung panjang gelombang, c, n, cg
Txtpjggel.Text = 2 * pi / k
Txtc.Text = (Txtpjggel.Text) / (Txtperiode.Text)
sinkh = Exp(2 * k * (Txtdalam.Text)) - Exp(-2 * k * (Txtdalam.Text))
sinkh = sinkh / 2
Txtn.Text = 0.5 * (1 + 2 * k * (Txtdalam.Text) / sinkh)
Txtcg.Text = Txtn.Text * Txtc.Text
'menghitung Ks
TxtKs = Sqr((nnol * Cnol) / (Txtn.Text * Txtc.Text))
'menghitung sudut
sudut2 = (Txtpjggel.Text / Lnol) * Sin(deg * Txtsudut1.Text)
'sudut2 = DEGREES(sudut2)
pembagi = Sqr(-sudut2 * sudut2 + 1)
sudut22 = Atn(sudut2 / pembagi) / deg 'hati2
Txtsudut2 = sudut22
'menghitung Kr
sdt1 = Cos(Txtsudut1 * deg)
sdt2 = Cos(Txtsudut2 * deg)
'kalo sudut datang=90 derajat, tidak bisa menghitung
kr = Sqr(sdt1 / sdt2)
Txtkr = kr
'If (Txtkr) = 0# Or (Txtkr) = -0# Then
' Txtkr = "sudut datang harus < 90"
'End If
'menghitung H
hcari = Txttinggi.Text * TxtKs * Txtkr
Txthcari = Str(hcari) + Space(1) + "," + Space(2) + "Belum Pecah"
Txttipegpc.Text = "-"
'menghitung H pecah
If (hcari) > 0.78 * (Txtdalam.Text) Then
hcari = 0.78 * (Txtdalam.Text)
Txthcari = Str(hcari) + Space(1) + "," + Space(2) + "Sudah Pecah"
'menentukan tipe gelombang pecah
slope = Txtslope
epsilon = slope / Sqr(Txttinggi.Text / Lnol)
If (epsilon) > 0 And (epsilon) < 0.5 Then
Txttipegpc.Text = "Spilling"
ElseIf (epsilon) > 0.5 And (epsilon) < 3.3 Then
Txttipegpc.Text = "Plunging"
ElseIf (epsilon) > 3.3 Then
Txttipegpc.Text = "Surging or collapsing"
End If
End If
'menentukan tipe kedalaman lokal (dangkal, intermediate, dalam)
kh = k * (Txtdalam.Text)
If kh > pi / 2 Then
Txtnama.Text = "deep water" + Space(1) + "," + Space(2) + "(Short Wave)"
ElseIf kh < pi / 2 And kh > pi / 10 Then
Txtnama.Text = "intermediate water" + Space(1) + "," + Space(2) + "(Intermediate Wave)"
ElseIf kh < pi / 10 Then
Txtnama.Text = "shallow water" + Space(1) + "," + Space(2) + "(Long Wave)"
End If
'menghitung Energi per satuan panjang
TxtEp = rp * g * (Txttinggi.Text) ^ 2 / 16
TxtEt = rp * g * (Txttinggi.Text) ^ 2 / 8
Txtflux = (1 / 8) * rp * g * hcari * Txtc.Text * Txtn.Text
'menghitung u_b
sigma = 2 * pi / (Txtperiode.Text)
coshkh = ((Exp(k * (Txtdalam.Text)) + Exp(-k * (Txtdalam.Text))) / 2)
Txtub = g * hcari * k / (2 * sigma) / coshkh
End If
End Sub
Private Sub CmdSelesai_Click()
Unload Me
End Sub
Private Sub VScroll1_Change()
prog.Top = -VScroll1.Value
End Sub