Perancangan Perangkat Lunak Simulasi Palang Pintu Otomatis Jalan Raya
SURAT KETERANGAN Hasil Uji Program Tugas Akhir
Yang bertanda tangan di bawah ini, menerangkan bahwa mahasiswa Tugas Akhir program Diploma (D3) Teknik Informatika : Nama Mahasiswa : FERDY AGUSMAN Nomor Induk Mahasiswa : 102406197 Program Studi : DIPLOMA (D3) TEKNIK INFORMATIKA
Judul Tugas Akhir : PERANCANGAN PERANGKAT LUNAK
SIMULASI PALANG PINTU OTOMATIS JALAN RAYA Telah melaksanakan tes program Tugas Akhir mahasiswa tersebut di atas pada tanggal: Mei 2013
Dengan hasil : Sukses / Gagal Demikian diterangkan untuk digunakan melengkapi syarat pendaftaran ujian meja hijau Tugas Akhir mahasiswa bersangkutan di Departemen Matematika FMIPA USU Medan.
Medan, Mei 2013 Dosen Pembimbing Program Studi D3 Teknik Informatika Dra.Normalina ,N, M.Sc.
NIP. 196311061989022001
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN UNIVERSITAS SUMATERA UTARA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM Jl. Bioteknologi No. 1 Kampus USU Telp. (061) 8214290, 8211212, 8211414 Fax. (061) 8214290 Medan 20155
Kartu Bimbingan Tugas Akhir Mahasiswa
Nama Mahasiswa : Ferdy Agusman Nomor Induk Mahasiswa : 102406197 Program Studi : Diploma (D3) Teknik Informatika
Judul Tugas Akhir : Perancangan Perangkat Lunak Simulasi Palang
Pintu Otomatis Jalan Raya Dosen Pembimbing : Dra.Normalina ,N, M.Sc. Tanggal Mulai Bimbingan : Februrari 2013 Tanggal Selesai Bimbingan : Juni 2013
No Tanggal Pembahasan Paraf Dosen Keterangan Bimbingan Asistensi Pembimbing Mengenai Bab
1
2
3
4
5
6
7
- Kartu ini harap dikembalikan ke Departemen Matematika bila bimbingan Mahasiswa telah selesai
Diketahui Disetujui, Departemen Matematika FMIPA USU Pembimbing Utama/
Ketua, Penanggung Jawab Prof. Dr. Tulus, M.Si Dra.Normalina ,N, M.Sc.
Script Program
Simulasi.vbPublic Class simulasi Dim kecepatan, jarak1, jarak2, waktutunggu, jaraksensor, waktuoptimal As Double
Dim detik1, menit1, detik2, menit2 As Integer Sub mulai()
Txtkecepatan1.Text = "" txthasil1.Text = "" txtwomenit.Text = "" txtwtmenit.Text = "" txtwodetik.Text = "" txtwtdetik.Text = "" txtjarako.Text = "" txtjarako.Enabled = False txtwodetik.Enabled = False txtwtdetik.Enabled = False txthasil1.Enabled = False txtwomenit.Enabled = False txtwtmenit.Enabled = False Txtkecepatan1.Enabled = True Txtkecepatan1.Focus() cmdsimpan.Enabled = False cmdUlangi.Enabled = False
Me .AxShockwaveFlash1.Visible = False End Sub Private Sub cmdSimulasi_Click( ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdSimulasi.Click Me .AxShockwaveFlash1.Visible = True If Txtkecepatan1.Text = "" Then
MsgBox( "Mohon Inputkan kecepatan kereta api" , MsgBoxStyle.Critical, "Konfirmasi" )
Me .cmdUlangi.Enabled = True ElseIf Val(Txtkecepatan1.Text > 60) Or (Txtkecepatan1.Text <
40) Then MsgBox( "Kecepatan harus diantara 40-60 KM/JAM" , MsgBoxStyle.Critical, "Konfirmasi" )
Me .cmdUlangi.Enabled = True Else cmdsimpan.Enabled = True cmdUlangi.Enabled = True kecepatan = Val(Txtkecepatan1.Text)
'jarak pengukur kecepatan ke palang pintu
jarak1 = 1
'jarak sensor ke pengukur kecepatan
jaraksensor = 0.5
'waktu yg dibutuhkan kereta api sampai di palang pintu
waktutunggu = jarak1 / kecepatan waktutunggu = 3600 * waktutunggu
'waktu tunggu
menit1 = waktutunggu \ 60 detik1 = waktutunggu Mod 60 txthasil1.Text = Val(Txtkecepatan1.Text) txtwtmenit.Text = menit1 txtwtdetik.Text = detik1
'waktu optimal
waktuoptimal = jaraksensor / kecepatan waktuoptimal = 3600 * waktuoptimal menit2 = waktuoptimal \ 60 detik2 = waktuoptimal Mod
60 txtwomenit.Text = menit2 txtwodetik.Text = detik2 jarak2 = kecepatan * (waktuoptimal / 3600) txtjarako.Text = jarak2 If kecepatan = 40 Then
AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\40kmjam.swf"
ElseIf kecepatan = 41 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\41kmjam.swf"
ElseIf kecepatan = 42 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\42kmjam.swf"
ElseIf kecepatan = 43 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\43kmjam.swf"
ElseIf kecepatan = 44 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\44kmjam.swf"
ElseIf kecepatan = 45 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\45kmjam.swf"
ElseIf kecepatan = 46 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\46kmjam.swf"
ElseIf kecepatan = 47 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\47kmjam.swf"
ElseIf kecepatan = 48 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\48kmjam.swf"
ElseIf kecepatan = 49 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\49kmjam.swf"
ElseIf kecepatan = 50 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\50kmjam.swf"
ElseIf kecepatan = 51 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\51kmjam.swf"
ElseIf kecepatan = 52 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\52kmjam.swf"
ElseIf kecepatan = 53 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\53kmjam.swf"
ElseIf kecepatan = 54 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\54kmjam.swf"
ElseIf kecepatan = 55 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\55kmjam.swf"
ElseIf kecepatan = 56 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\56kmjam.swf"
ElseIf kecepatan = 57 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\57kmjam.swf"
ElseIf kecepatan = 58 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\58kmjam.swf"
ElseIf kecepatan = 59 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\59kmjam.swf"
ElseIf kecepatan = 60 Then AxShockwaveFlash1.Movie =
"C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\60kmjam.swf"
Else MsgBox( "Animasi tidak dapat ditampilkan" , MsgBoxStyle.Information)
End If End If
Txtkecepatan1.Enabled = False End Sub Private Sub cmdUlangi_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUlangi.Click mulai()
Me .AxShockwaveFlash1.Stop() Me .AxShockwaveFlash1.Movie = Nothing
End Sub Private Sub Txtkecepatan1_KeyPress( ByVal sender As Object , ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txtkecepatan1.KeyPress
'Definisi validitas input
If Not Char .IsDigit(e.KeyChar) And Not Char .IsControl(e.KeyChar) Then e.Handled = True
End If End Sub Private Sub txtjarako_TextChanged( ByVal sender As Object , ByVal e
As System.EventArgs) Handles txtjarako.TextChanged Dim txt As TextBox = DirectCast (sender, TextBox) txt.Text = Format( CDec (Val(txt.Text)), "0.00" )
End Sub
Private Sub cmdsimpan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsimpan.Click strsql = "INSERT INTO `datalaporan` (`kecepatan`,
`waktutunggu`, `waktuoptimal`, `jarakop`, `tgl`) VALUES ('" &
Trim(Txtkecepatan1.Text) & "','" & Trim(waktutunggu) & "','" & Trim(waktuoptimal) & "','" & Trim(txtjarako.Text) & "','" & Trim(formutama.statusbar3.Text) & "')" comm.CommandText = strsql comm.Connection = conn comm.ExecuteNonQuery()
End Sub Private Sub simulasi_Load( ByVal sender As Object , ByVal e As
System.EventArgs) Handles Me .Load mulai() End Sub
End Class
Login.vb
Public Class Login Dim passwordcoba As Integer Private Sub OK_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK.Click If Me .radiouser.Checked = True Then formutama.status0.Text = "USER"
Me .UsernameTextBox.Enabled = False Me .PasswordTextBox.Enabled = False formutama.cmdlaporan.Enabled = False formutama.cmdgantipass.Enabled = False formutama.Show() formutama.BringToFront()
Else Me .UsernameTextBox.Enabled = True Me .PasswordTextBox.Enabled = True Dim login =
Me .AdminTableAdapter1.usernameinputstring(UsernameTextBox.Text, PasswordTextBox.Text)
If login Is Nothing Then MsgBox( "Username atau password yang anda inputkan
salah !" , MsgBoxStyle.Critical, "Error" )
UsernameTextBox.Text = "" PasswordTextBox.Text = "" UsernameTextBox.Focus() passwordcoba = passwordcoba + 1
If passwordcoba > 3 Then MsgBox( "Anda telah gagal 3 kali, program
dihentikan" , MsgBoxStyle.Critical)
End End If
Else formutama.status0.Text = "ADMIN" formutama.Show() formutama.BringToFront() End If
End If End Sub Private Sub Cancel_Click( ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Cancel.Click Me .Close()
End Sub Private Sub UsernameTextBox_GotFocus( ByVal sender As Object ,
ByVal e As System.EventArgs) Handles UsernameTextBox.GotFocus Me .radioadmin.Checked = True
End Sub End Class
Bantuan.vb
Public Class bantuan Private Sub cmdSimpan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click
Me .rtfpenjelasan.SaveFile( "C:\Users\dhea\Documents\Visual
Studio 2008\Projects\ferdy_102406197\ferdy_102406197\penjelasan.rtf" )
MsgBox( "File berhasil disimpan!" , MsgBoxStyle.Information,
"Konfirmasi" )
End Sub Private Sub cmdTutup_Click( ByVal sender As Object , ByVal e As
System.EventArgs) Handles cmdTutup.Click Me .Close()
End Sub Private Sub Penjelasan_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase .Load
If formutama.status0.Text = "ADMIN" Then Me .cmdSimpan.Visible = True
Else Me .cmdSimpan.Visible = False Me .rtfpenjelasan.Cursor = Cursors.No Me .rtfpenjelasan.ReadOnly = True
End If Me .rtfpenjelasan.LoadFile( "C:\Users\dhea\Documents\Visual
Studio 2008\Projects\ferdy_102406197\ferdy_102406197\penjelasan.rtf" )
End Sub End Class
Formutama.vb
Public Class formutama Private Sub cmdkeluar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkeluar.Click
Me .Close() Login.Close()
End Sub Private Sub cmdbantuan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbantuan.Click bantuan.Show()
End Sub Private Sub formutama_FormClosing( ByVal sender As Object , ByVal e
As System.Windows.Forms.FormClosingEventArgs) Handles Me .FormClosing Dim tanya As Integer tanya = MsgBox( "Anda yakin ingin keluar?" , MsgBoxStyle.Question + MsgBoxStyle.YesNo, "konfirmasi sistem" )
If tanya = MsgBoxResult.Yes Then e.Cancel = False
End Else e.Cancel = True
End If conn.Close()
End Sub Private Sub cmdtentang_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtentang.Click About.Show()
End Sub Private Sub cmdlaporan_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdlaporan.Click previewlaporan.Show() End Sub Private Sub formutama_Load( ByVal sender As Object , ByVal e As
System.EventArgs) Handles Me .Load koneksi.koneksi() Login.Visible = False
Me .status1.Text = Format(Now, "dddd" ) Me .status2.Text = Format(Now, "MM/dd/yyyy" )
End Sub Private Sub cmdsimulasi_Click( ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdsimulasi.Click simulasi.Show()
End Sub Private Sub cmdgantipass_Click( ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdgantipass.Click gantipass.Show()
End Sub End Class
Previewlaporan.vb
Public Class previewlaporan Private Sub Button1_Click( ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click cetaklaporan.Show() cetaklaporan.Focus()
End Sub Private Sub previewlaporan_Load( ByVal sender As Object , ByVal e
As System.EventArgs) Handles Me .Load
'TODO: This line of code loads data into the
'TugasakhirDataSet.datalaporan' table. You can move, or remove it, as
needed.dt = New DataTable strsql = "SELECT ID, kecepatan, waktutunggu, waktuoptimal,
jarakop, tgl FROM datalaporan"
da = New OleDb.OleDbDataAdapter(strsql, conn) da.Fill(dt) Me .DataGridView1.DataSource = dt
End Sub End Class
Cetaklaporan.vb
Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Public Class cetaklaporan
Sub tampil() ds = New DataSet strsql = "SELECT ID, kecepatan, waktutunggu, waktuoptimal,
jarakop, tgl FROM datalaporan"
comm.CommandText = strsql comm.Connection = conn da.SelectCommand = comm da.Fill(ds)
End Sub Private Sub cetaklaporan_Load( ByVal sender As Object , ByVal e As
System.EventArgs) Handles Me .Load tampil() namareport = "laporan1"
Dim pathreport As String = "C:\Users\dhea\Documents\Visual
Studio 2008\Projects\ferdy_102406197\ferdy_102406197" & "\" &
namareport & ".rpt" If Not
IO.File.Exists(pathreport) Then Throw ( New Exception( "Data Laporan tidak ditemukan : " & vbCritical & pathreport))
End If Dim reportdoc As New
CrystalDecisions.CrystalReports.Engine.ReportDocument reportdoc.Load(pathreport) reportdoc.SetDataSource(ds.Tables(0)) CrystalReportViewer1.ShowRefreshButton = False CrystalReportViewer1.ShowCloseButton = False CrystalReportViewer1.ShowGroupTreeButton = False CrystalReportViewer1.ReportSource = reportdoc ds.Clear() ds = Nothing End Sub
End Class
About.vb
Public NotInheritable Class About Private Sub About_Load( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase .Load ' Set the title of the form.
Dim ApplicationTitle As String If My .Application.Info.Title <> "" Then
ApplicationTitle = My .Application.Info.Title Else
ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension( My .Application.Info.Assemb lyName)
End If Me .Text = String .Format( "About {0}" , ApplicationTitle) ' Initialize all of the text displayed on the About Box.
' TODO: Customize the application's assembly information in the "Application" pane of the project ' properties dialog (under the "Project" menu).
Me .LabelProductName.Text = My .Application.Info.ProductName Me .LabelVersion.Text = String .Format( "Version {0}" ,
My .Application.Info.Version.ToString) Me .LabelCopyright.Text = My .Application.Info.Copyright Me .LabelCompanyName.Text = My .Application.Info.CompanyName Me .TextBoxDescription.Text = My .Application.Info.Description
End Sub Private Sub OKButton_Click( ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles OKButton.Click Me .Close()
End Sub End Class
Gantipass.vb
Public Class gantipass Private Sub Button2_Click( ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button2.Click Me .Close()
End Sub Private Sub Button1_Click( ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click If TextBox3.Text <> TextBox4.Text Then
MsgBox( "Password Konfirmasi tidak sama" , MsgBoxStyle.Information) TextBox4.Focus() TextBox4.Text = ""
ElseIf TextBox2.Text = TextBox3.Text Then MsgBox( "Password lama anda sama dengan password baru" ) TextBox2.Focus() TextBox2.Text = "" TextBox3.Text = ""
Else
'Try
dt = New DataTable strsql = "select * from admin where nama = '" & Trim(TextBox1.Text) & "' and pwd = '" & Trim(TextBox2.Text) & "'" da = New OleDb.OleDbDataAdapter(strsql, conn)
If da.Fill(dt) Then MsgBox( "Yakin password akan diganti???" , MsgBoxStyle.YesNo)
If MsgBoxResult.Yes Then strsql = "update admin set pwd = '" & Trim(TextBox4.Text) & "' where nama = '" & Trim(TextBox1.Text) & "'" comm.CommandText = strsql comm.Connection = conn comm.ExecuteNonQuery() MsgBox( "Password berhasil diganti" ) Me .Close()
Else Me .Close()
End If Else
MsgBox( "Username atau Password Tidak terdaftar" ) TextBox1.Focus() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = ""
End If End If
End Sub End Class
Koneksi.vb
Imports System.Data.OleDb Module koneksi
Public comm As New OleDbCommand Public conn As New OleDbConnection Public da As New OleDbDataAdapter Public ds As New DataSet Public dt As New DataTable Public strsql As String Public namareport As String Sub koneksi() conn.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Users\dhea\Documents\Visual Studio 2008\Projects\ferdy_102406197\ferdy_102406197\tugasakhir.mdb"
conn.Open() End Sub
End Module