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.vb

  Public 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