• Tidak ada hasil yang ditemukan

Aplikasi Penjadwalan Laboratorium D3 Teknik Informatika Univeritas Sumatera Utara

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi Penjadwalan Laboratorium D3 Teknik Informatika Univeritas Sumatera Utara"

Copied!
123
0
0

Teks penuh

(1)

A. Forms

1. frmCetakJadwal

Private Sub cmbPilihan_Click()

If cmbPilihan.Text = "PerKelas" Then frKelas.Visible = True

muatKelas

frMK.Visible = False

ElseIf cmbPilihan.Text = "PerMata Kuliah" Then frKelas.Visible = False

frMK.Visible = True muatMK

Else

frKelas.Visible = False frMK.Visible = False End If

End Sub

Private Sub Command1_Click() End Sub

Private Sub cmdCetak_Click()

If cmbPilihan.Text = "PerKelas" Then

sql = "SELECT * FROM jadwal where kelas='" & cmbKls.Text & "'" Set rptKelas.DataSource = Adodc1

'Set rptKelas.DataMember = ""

rptKelas.Sections(1).Controls.Item(1).Caption = cmbKls.Text Adodc1.RecordSource = sql

Adodc1.Refresh rptKelas.Refresh rptKelas.Show

ElseIf cmbPilihan.Text = "PerMata Kuliah" Then

sql = "SELECT * FROM jadwal where mata_kuliah='" & cmbMK.Text & "' ORDER BY kelas"

Set rptMK.DataSource = Adodc1

rptMK.Sections(1).Controls.Item(1).Caption = cmbMK.Text Adodc1.RecordSource = sql

(2)

rptMK.Refresh rptMK.Show Else

MsgBox "Tidak Ada Data yg akan ditampilkan" End If

End Sub

Private Sub Form_Load() Call koneksi

Adodc1.ConnectionString = "Driver={MySQL ODBC 5.2w

Driver};SERVER=localhost;PWD=;UID=root;PORT=3306;DATABASE=db_penjadwalan_lab; "

Adodc1.RecordSource = "jadwal" Adodc1.Refresh

'Set DataGrid1.DataSource = Adodc1 'DataGrid1.AllowUpdate = False 'DataGrid1.TabStop = False 'DataGrid1.Refresh

End Sub

Sub muatMK()

Dim rsMK As New ADODB.Recordset

rsMK.Open "Select * FROM mata_kuliah ", CN, , , adCmdText jlh = 0

Do While Not rsMK.EOF

cmbMK.AddItem rsMK!nama_mk rsMK.MoveNext Loop rsMK.Close End Sub Sub muatKelas()

Dim rsKelas As New ADODB.Recordset

rsKelas.Open "Select * FROM kelas ", CN, , , adCmdText jlh = 0

Do While Not rsKelas.EOF

(3)

Loop

rsKelas.Close End Sub

Private Sub Image1_Click() End Sub

1. frmJadwal

Private DbFile As String

Private CN As New ADODB.Connection Private rs As New ADODB.Recordset

Private rsJadwal As New ADODB.Recordset Private SQLstmt As String

Private RetVal As Variant

Dim tempID As Variant Dim tempWkt As Variant Dim tempMK As Variant Dim tempKelas As Variant Dim tempRuang As Variant

Private Sub cmbKelas_Click() cmbWaktu.Clear

Dim rsWaktu As New ADODB.Recordset

rsWaktu.Open "select hari, jam_mulai, jam_selesai from waktu where not

exists(select waktu from jadwal where left(waktu.hari,3)=left(jadwal.waktu,3) and waktu.jam_mulai=mid(jadwal.waktu,5,5) and

waktu.jam_selesai=right(jadwal.waktu,5))", CN, , , adCmdText

jlh = 0

Do While Not rsWaktu.EOF

cmbWaktu.AddItem Left(rsWaktu!Hari, 3) & "-" & rsWaktu!jam_mulai & "-" & rsWaktu!jam_selesai

rsWaktu.MoveNext Loop

(4)

Private Sub cmbMk_Click() cmbKelas.Clear

Dim rsKelas As New ADODB.Recordset

rsKelas.Open "select nama from kelas where not exists(select kelas,

mata_kuliah from jadwal where kelas.nama=jadwal.kelas and jadwal.mata_kuliah ='" & cmbMK.Text & "')", CN, , , adCmdText

jlh = 0

Do While Not rsKelas.EOF

cmbKelas.AddItem rsKelas!nama rsKelas.MoveNext

Loop

rsKelas.Close End Sub

Private Sub cmbSemester_Click() cmbMK.Clear

If cmbSemester.Text = "Semua" Then 'muatMK

Else

Dim rsMK As New ADODB.Recordset

rsMK.Open "Select * FROM mata_kuliah WHERE semester ='" & cmbSemester.Text & "'", CN, , , adCmdText

jlh = 0

Do While Not rsMK.EOF

cmbMK.AddItem rsMK!nama_mk rsMK.MoveNext Loop rsMK.Close End If End Sub

Private Sub cmdBatal_Click() Adodc1.Refresh

'Form_Load End Sub

(5)

MsgBox "Tidak ada Item yg terpilih" Else

tanya = MsgBox("Yakin akan menghapus Jadwal Kelas" & tempKelas & " ", vbYesNo, "Hapus Jadwal")

If tanya = vbYes Then 'hapus prosedur_hapus cmdBatal_Click End If End If End Sub

Private Sub cmdKeluar_Click() Unload Me

End Sub

Private Sub cmdSimpan_Click() 'Panggil prosedur simpan SimpanJadwal

MsgBox "Berhasil disimpan" Adodc1.Refresh

End Sub

Private Sub DataGrid1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

On Error Resume Next With rs

tempID = !id

tempWaktu.Text = !waktu tempWkt = !waktu

tempRuang = !ruang tempKelas = !kelas End With

End Sub

Private Sub Form_Load() Call koneksi

(6)

Open_cn

Set DataGrid1.DataSource = rs aturTataLetakDgrid

End Sub

Private Sub Open_cn()

Set CN = New ADODB.Connection CN.CursorLocation = adUseClient

CN.ConnectionString = "Driver={MySQL ODBC 5.2w

Driver};SERVER=localhost;PWD=;UID=root;PORT=3306;DATABASE=db_penjadwalan_lab; "

CN.Open

'Once this Connection is opened, it can 'be used throughout the application SQLstmt = "SELECT * FROM jadwal" 'Get the Records

Set rs = New ADODB.Recordset

rs.Open SQLstmt, CN, adLockOptimistic, , adCmdText End Sub

Sub muatWaktu()

Dim rsWaktu As New ADODB.Recordset

rsWaktu.Open "Select * FROM waktu ", CN, , , adCmdText jlh = 0

Do While Not rsWaktu.EOF

cmbWaktu.AddItem Left(rsWaktu!Hari, 3) & "-" & rsWaktu!jam_mulai & "-" & rsWaktu!jam_selesai rsWaktu.MoveNext Loop rsWaktu.Close End Sub Sub muatKelas()

Dim rsKelas As New ADODB.Recordset

rsKelas.Open "Select * FROM kelas ", CN, , , adCmdText jlh = 0

(7)

rsKelas.MoveNext Loop

rsKelas.Close End Sub

Sub muatRuang()

Dim rsRuang As New ADODB.Recordset

rsRuang.Open "Select * FROM ruang ", CN, , , adCmdText jlh = 0

Do While Not rsRuang.EOF

cmbRuang.AddItem rsRuang!nama rsRuang.MoveNext Loop rsRuang.Close End Sub Sub SimpanJadwal()

Set rsJadwal = New ADODB.Recordset

rsJadwal.LockType = adLockOptimistic rsJadwal.CursorType = adOpenDynamic

rsJadwal.Open "SELECT * FROM jadwal", CN, , , adCmdText With rsJadwal

.AddNew !id = Null

!waktu = cmbWaktu.Text !kelas = cmbKelas.Text !ruang = cmbRuang.Text !mata_kuliah = cmbMK.Text .Update

End With End Sub

Sub isiListview()

Dim lstItem As ListItem, A As Integer Set rsJadwal = New ADODB.Recordset

rsJadwal.LockType = adLockOptimistic rsJadwal.CursorType = adOpenDynamic

(8)

Do While Not rsJadwal.EOF A = A + 1

Set lstItem = lstJadwal.ListItems.Add(, , A) lstItem.SubItems(1) = "text"

rsJadwal.MoveNext Loop

End Sub

Sub aturTataLetakDgrid()

DataGrid1.Columns(0).Width = 0

DataGrid1.Columns(1).Caption = " Waktu" DataGrid1.Columns(1).Alignment = dbgCenter DataGrid1.Columns(2).Caption = " Kelas" DataGrid1.Columns(2).Alignment = dbgCenter DataGrid1.Columns(3).Caption = " Mata Kuliah" DataGrid1.Columns(3).Alignment = dbgCenter DataGrid1.Columns(4).Caption = " Ruang" DataGrid1.Columns(4).Alignment = dbgCenter End Sub

Sub prosedur_hapus()

Set rsJadwal = New ADODB.Recordset

rsJadwal.LockType = adLockOptimistic rsJadwal.CursorType = adOpenDynamic

rsJadwal.Open "DELETE FROM jadwal WHERE id='" & tempID & "'", CN, , , adCmdText

End Sub

2. frmKelas

Private Sub cmdBatal_Click() txtKls.Text = ""

txtJmhs.Text = "" txtKls.SetFocus End Sub

(9)

Private Sub cmdSimpan_Click() SimpanKls

MsgBox "Sukses" cmdBatal_Click End Sub

Sub SimpanKls()

Set rsKls = New ADODB.Recordset

rsKls.LockType = adLockOptimistic rsKls.CursorType = adOpenDynamic

rsKls.Open "SELECT * FROM kelas", CN, , , adCmdText With rsKls

.AddNew !id = Null

!nama = txtKls.Text !jlh_mhs = txtJmhs.Text .Update

End With End Sub

Private Sub Form_Load() Call koneksi

End Sub

3. frmMK

Private Sub cmdBatal_Click() txtMK.Text = ""

cmbSemester.Text = "" cmbSks.Text = "" txtDP.Text = "" End Sub

Private Sub cmdKeluar_Click() Unload Me

(10)

Private Sub cmdSimpan_Click() simpanMK

MsgBox "Sukses" cmdBatal_Click Adodc1.Refresh End Sub

Private Sub Form_Load() Call koneksi

End Sub

Sub simpanMK()

Set rsMK = New ADODB.Recordset

rsMK.LockType = adLockOptimistic rsMK.CursorType = adOpenDynamic

rsMK.Open "SELECT * FROM mata_kuliah", CN, , , adCmdText With rsMK

.AddNew !id = Null

!nama_mk = txtMK.Text

!semester = cmbSemester.Text !sks = cmbSks.Text

!dosen = txtDP.Text .Update

End With End Sub

4. frmWaktu

Dim indeks As Integer Dim A As Boolean

Dim arrHari(5) As String Dim arrHari2(5) As String Dim indeks2 As Integer

(11)

arrHari2(4) = ""

End If End Sub

Private Sub chkKam_Click() If chkKam.Value = 1 Then arrHari2(3) = "Kamis" Else

arrHari2(3) = "" End If

End Sub

Private Sub chkRab_Click() If chkRab.Value = 1 Then arrHari2(2) = "Rabu" Else

arrHari2(2) = "" End If

End Sub

Private Sub chkSab_Click() If chkSab.Value = 1 Then arrHari2(5) = "Sabtu" Else

arrHari2(5) = "" End If

End Sub

Private Sub chkSel_Click() If chkSel.Value = 1 Then arrHari2(1) = "Selasa" Else

arrHari2(1) = "" End If

End Sub

(12)

If chkSemua.Value = 1 Then chkSen.Value = 1

chkSel.Value = 1 chkRab.Value = 1 chkKam.Value = 1 chkJum.Value = 1 chkSab.Value = 1

chkSemua.Caption = "Lepas semua" Else

chkSen.Value = 0 chkSel.Value = 0 chkRab.Value = 0 chkKam.Value = 0 chkJum.Value = 0 chkSab.Value = 0

chkSemua.Caption = "Semua" End If

End Sub

Private Sub chkSen_Click() If chkSen.Value = 1 Then arrHari2(0) = "senin" Else

arrHari2(0) = "" End If

End Sub

Private Sub chkSen_DragOver(Source As Control, X As Single, Y As Single, State As Integer)

chkSen.Top = Me.Top chkSen.Left = Me.Left End Sub

Private Sub cmbJAM_Change() If Len(cmbJAM.Text) > 2 Then

(13)

cmbJAM.Text = 23 cmbJAM.SelStart = 2 End If

jam = Val(cmbJAM.Text) + 1 cmbMnt.Text = "00"

If Len(jam) < 2 Then

cmbjam2.Text = "0" & jam Else

cmbjam2.Text = jam End If

End Sub

Private Sub cmbJAM_Click() If Len(cmbJAM.Text) > 2 Then

cmbJAM.Text = Left((cmbJAM.Text), 2) cmbJAM.SelStart = 2

ElseIf Val(cmbJAM.Text) > 23 Then cmbJAM.Text = 23

cmbJAM.SelStart = 2 End If

jam = Val(cmbJAM.Text) + 1 cmbMnt.Text = "00"

If Len(jam) < 2 Then

cmbjam2.Text = "0" & jam Else

cmbjam2.Text = jam End If

End Sub

Private Sub cmbMnt_Change() If Len(cmbMnt.Text) > 2 Then

cmbMnt.Text = Left((cmbMnt.Text), 2) cmbMnt.SelStart = 2

ElseIf Val(cmbMnt.Text) > 59 Then cmbMnt.Text = 59

cmbMnt.SelStart = 2 End If

(14)

If Len(jam) < 2 Then

cmbmnt2.Text = "0" & jam Else

cmbmnt2.Text = jam End If

End Sub

Private Sub cmbMnt_Click() jam = Val(cmbMnt.Text) If Len(jam) < 2 Then

cmbmnt2.Text = "0" & jam Else

cmbmnt2.Text = jam End If

End Sub

Private Sub cmbpil_Click() If cmbpil.Text = "Hari" Then pil1.Visible = True pil2.Visible = False pil1.Clear pil1.AddItem "Senin" pil1.AddItem "Selasa" pil1.AddItem "Rabu" pil1.AddItem "Kamis" pil1.AddItem "Jumat" pil1.AddItem "Sabtu"

ElseIf cmbpil.Text = "Jam" Then pil1.Visible = True

pil2.Visible = True pil1.Clear

pil2.Clear Setjam2

ElseIf cmbpil.Text = "Hari dan Jam" Then End If

(15)

On Error Resume Next

LV.ListItems.Remove LV.SelectedItem.Index Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset Set conn = New ADODB.Connection Set rs = New ADODB.Recordset

conn.Open "Driver={MySQL ODBC 5.2w

Driver};SERVER=localhost;PWD=;UID=root;PORT=3306;DATABASE=db_penjadwalan_lab; "

conn.Execute "DELETE FROM waktu where hari='" & Hari & "' AND jam_mulai='" & jam_mulai & "' "

End Sub

Private Sub cmdTambah_Click() If Len(cmbJAM.Text) > 0 Then Dim lst As ListItem

Dim Dup(5) As String 'variabel array yg digunakan untuk mengecek duplikasi data

jam_m = cmbJAM.Text & ":" & cmbMnt.Text jam_m2 = cmbjam2.Text & ":" & cmbmnt2.Text 'MsgBox jam_m

For hh = 0 To 5

If Len(arrHari2(hh)) <> 0 Then

Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Set conn = New ADODB.Connection Set rs = New ADODB.Recordset

conn.Open "Driver={MySQL ODBC 5.2w

Driver};SERVER=localhost;PWD=;UID=root;PORT=3306;DATABASE=db_penjadwalan_lab; "

rs.Open "SELECT * FROM waktu WHERE hari='" & arrHari2(hh) & "' AND jam_mulai='" & jam_m & "'", conn

If rs.EOF Then

'MsgBox "data ditemukan"

conn.Execute "INSERT INTO waktu (id, hari, jam_mulai,

jam_selesai, ket) VALUES ('','" & arrHari2(hh) & "','" & cmbJAM.Text & ":" & cmbMnt.Text & "', '" & cmbjam2.Text & ":" & cmbmnt2.Text & "', '" &

(16)

'Dim lst As ListItem

'Set lst = LV.ListItems.Add Set lst = LV.ListItems.Add lst.SubItems(1) = arrHari2(hh)

lst.SubItems(2) = cmbJAM.Text & ":" & cmbMnt.Text lst.SubItems(3) = cmbjam2.Text & ":" & cmbmnt2.Text lst.SubItems(4) = txtKet.Text

Else

'redundant data

Dup(hh) = arrHari2(hh) & " " & jam_m & "-" & jam_m2

'MsgBox "Anda menggunakan waktu yg sama, yaitu : " & arrHari2(hh) & " " & jam_m & "-" & jam_m2 & " sistem secara otomatis hanya menyimpan 1 waktu yg sama", vbInformation, "Duplikasi waktu"

End If End If Next hh End If

gabung = vbNewLine & "" No = 1

For R = 0 To 5

If Len(Dup(R)) <> 0 Then

gabung = gabung & No & ". " & Dup(R) & vbNewLine No = No + 1

End If Next R

If UBound(Dup) > 1 Then If Len(gabung) <> 0 Then

'MsgBox "Duplikasi data =>" & gabung + vbNewLine & "Data diatas sudah pernah disimpan sebelumnya", vbInformation, "Duplikasi Data"

End If End If End Sub

Private Sub Command1_Click() LV.ListItems.Clear

(17)

Index = 0 setLV IsiLV setJam

Shape3.Top = LV.Top Shape3.Left = LV.Left Shape3.Width = LV.Width Shape3.Height = LV.Height

arrHari(0) = "" arrHari(1) = "" arrHari(2) = "" arrHari(3) = "" arrHari(4) = "" arrHari(5) = "" End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False Shape2.Visible = False End Sub

Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

'Text1.Text = Frame1.Name Shape1.Visible = True Shape1.Top = Frame1.Top Shape1.Left = Frame1.Left Shape1.Width = Frame1.Width Shape1.Height = Frame1.Height End Sub

Function anim(ctr As Frame) End Function

(18)

Shape1.Visible = True Shape1.Top = Frame2.Top Shape1.Left = Frame2.Left Shape1.Width = Frame2.Width Shape1.Height = Frame2.Height End Sub

Private Sub chksen_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape2.Visible = True Shape2.Top = chkSen.Top Shape2.Left = chkSen.Left Shape2.Width = chkSen.Width Shape2.Height = chkSen.Height End Sub

Private Sub chksel_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape2.Visible = True Shape2.Top = chkSel.Top Shape2.Left = chkSel.Left Shape2.Width = chkSel.Width Shape2.Height = chkSel.Height End Sub

Private Sub chksab_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape2.Visible = True Shape2.Top = chkSab.Top Shape2.Left = chkSab.Left Shape2.Width = chkSab.Width Shape2.Height = chkSab.Height End Sub

Private Sub chkkam_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

(19)

Shape2.Left = chkKam.Left Shape2.Width = chkKam.Width Shape2.Height = chkKam.Height End Sub

Private Sub chkjum_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape2.Visible = True Shape2.Top = chkJum.Top Shape2.Left = chkJum.Left Shape2.Width = chkJum.Width Shape2.Height = chkJum.Height End Sub

Private Sub chkrab_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape2.Visible = True Shape2.Top = chkRab.Top Shape2.Left = chkRab.Left Shape2.Width = chkRab.Width Shape2.Height = chkRab.Height End Sub

Private Sub chksenin_Click() End Sub

Sub setLV() With LV

.View = lvwReport .GridLines = True .MultiSelect = True .FullRowSelect = True .HotTracking = True .HoverSelection = True

' tambahkan kolom2 ke, , Judul,lebar,aligment .ColumnHeaders.Add 1, , "No", 0

(20)

.ColumnHeaders.Add 5, , "Keterangan", 3500

.Width = 7000 End With

End Sub

Sub setJam() For jam = 0 To 23

If Len(jam) < 2 Then

cmbJAM.AddItem "0" & jam cmbjam2.AddItem "0" & jam Else

cmbJAM.AddItem jam cmbjam2.AddItem jam End If

Next jam

For menit = 0 To 59

If Len(menit) < 2 Then

cmbMnt.AddItem "0" & menit cmbmnt2.AddItem "0" & menit Else cmbMnt.AddItem menit cmbmnt2.AddItem menit End If Next menit End Sub Sub Setjam2() For jam = 0 To 23

If Len(jam) < 2 Then

pil1.AddItem "0" & jam pil2.AddItem "0" & jam Else

pil1.AddItem jam pil2.AddItem jam End If

(21)

If Len(menit) < 2 Then

pil1.AddItem "0" & menit pil2.AddItem "0" & menit Else pil1.AddItem menit pil2.AddItem menit End If Next menit End Sub

Private Sub LV_Click() On Error Resume Next cmdHapus.Enabled = True

Text1.Text = LV.ListItems(LV.SelectedItem.Index).ListSubItems(1).Text End Sub

Private Sub txtKet_Change() lblket.Visible = True

End Sub

Private Sub txtKet_LostFocus() lblket.Visible = False

End Sub

Sub IsiLV()

LV.ListItems.Clear On Error Resume Next

Set conn = New ADODB.Connection Set rs = New ADODB.Recordset

conn.Open "Driver={MySQL ODBC 5.2w

Driver};SERVER=localhost;PWD=;UID=root;PORT=3306;DATABASE=db_penjadwalan_lab; "

kueri = "SELECT * FROM waktu order by id" rs.Open kueri, conn

Dim lst As ListItem, NMR As Integer With rs

(22)

Set lst = LV.ListItems.Add lst.SubItems(1) = rs!Hari lst.SubItems(2) = rs!jam_mulai lst.SubItems(3) = rs!jam_selesai lst.SubItems(4) = rs!ket

rs.MoveNext Loop

End With

Set rs = Nothing End Sub

5. menu_utama

Private Sub bg_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False End Sub

Private Sub btnAdmin_Click() End

End Sub

Private Sub btnAdmin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True .Top = btnAdmin.Top .Left = btnAdmin.Left .Width = btnAdmin.Width .Height = btnAdmin.Height End With

End Sub

Private Sub btnCetakJdl_Click() frmCetakJadwal.Show

(23)

Private Sub btnCetakJdl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True

.Top = btnCetakJdl.Top .Left = btnCetakJdl.Left .Width = btnCetakJdl.Width .Height = btnCetakJdl.Height End With

End Sub

Private Sub btnJdl_Click() frmJadwal.Show

End Sub

Private Sub btnJdl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True .Top = btnJdl.Top .Left = btnJdl.Left .Width = btnJdl.Width .Height = btnJdl.Height End With

End Sub

Private Sub btnKelas_Click() frmKelas.Show

End Sub

Private Sub btnKelas_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

(24)

.Left = btnKelas.Left .Width = btnKelas.Width .Height = btnKelas.Height End With

End Sub

Private Sub btnLihJdl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True .Top = btnLihJdl.Top .Left = btnLihJdl.Left .Width = btnLihJdl.Width .Height = btnLihJdl.Height End With

End Sub

Private Sub btnMK_Click() frmMK.Show

End Sub

Private Sub btnMK_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True .Top = btnMK.Top .Left = btnMK.Left .Width = btnMK.Width .Height = btnMK.Height End With

End Sub

Private Sub btnRuangan_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

(25)

.Visible = True

.Top = btnRuangan.Top .Left = btnRuangan.Left .Width = btnRuangan.Width .Height = btnRuangan.Height End With

End Sub

Private Sub btnTentang_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True

.Top = btnTentang.Top .Left = btnTentang.Left .Width = btnTentang.Width .Height = btnTentang.Height End With

End Sub

Private Sub btnwaktu_Click() frmWaktu.Show

End Sub

Private Sub btnwaktu_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Shape1.Visible = False With Shape1

.Visible = True .Top = btnwaktu.Top .Left = btnwaktu.Left .Width = btnwaktu.Width .Height = btnwaktu.Height End With

End Sub

(26)

Private Sub Form_Load()

lblTime.Caption = Hari(DateValue(Now)) & ", " & Format(Now, "dd/MM/yyyy") Label3.Caption = TimeValue(Now)

End Sub

Private Sub imgCetakJdl_Click() frmCetakJadwal.Show

End Sub

Private Sub imgjdl_Click() frmJadwal.Show

End Sub

Private Sub imgkelas_Click() frmKelas.Show

End Sub

Private Sub imgMK_Click() frmMK.Show

End Sub

Private Sub imgwaktu_Click() frmWaktu.Show

End Sub

Private Sub lblCetakJdl_Click() frmCetakJadwal.Show

End Sub

Private Sub lblJdl_Click() frmJadwal.Show

End Sub

Private Sub lblKelas_Click() frmKelas.Show

(27)

Private Sub lblMK_Click() frmMK.Show

End Sub

Private Sub lblwaktu_Click() frmWaktu.Show

End Sub

Private Sub Timer1_Timer()

lblTime.Caption = Hari(DateValue(Now)) & ", " & Format(Now, "dd/MM/yyyy") Label3.Caption = TimeValue(Now)

End Sub

Public Function Hari(ByVal Tanggal As Date) As String Select Case Weekday(Tanggal)

Case 1: Hari = "Minggu" Case 2: Hari = "Senin" Case 3: Hari = "Selasa" Case 4: Hari = "Rabu" Case 5: Hari = "Kamis" Case 6: Hari = "Jum'at" Case 7: Hari = "Sabtu" End Select

End Function

Public Function bulan(ByVal bln As Date) As String Select Case MonthName(bln)

(28)

End Select End Function

B. Modules

1. Koneksi Database

Option Explicit

Public CN As New ADODB.Connection Public CN2 As New ADODB.Connection Dim rsJadwal As ADODB.Recordset Dim rsWaktu As ADODB.Recordset Dim rsMK As ADODB.Recordset Public ID_global As Variant

Sub koneksi()

Dim Reply As VbMsgBoxResult On Error GoTo ERR_CONNECTION Set CN = New ADODB.Connection CN.CursorLocation = adUseClient

CN.ConnectionString = "Driver={MySQL ODBC 5.2w

Driver};SERVER=localhost;PWD=;UID=root;PORT=3306;DATABASE=db_penjadwalan_lab; "

CN.Open Exit Sub

ERR_CONNECTION:

Reply = MsgBox("Error Number:" & Err.Number & vbNewLine & "Description:" & Err.Description, vbExclamation + vbRetryCancel, "Connection Failure") End Sub

Sub ClosemySQL() CN.Close

Set CN = Nothing End Sub

2. Interface

Option Explicit

(29)

'*** the a DataGrid Item must have the Focus. *** '*** This is achieved by Highlighting the left most column *** '*** of the DataGrid Control i.e, where the arrow is on *** '*** program startup. *** '***************************************************************

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Const GWL_WNDPROC = (-4) Public lpPrevWndProc As Long Const WM_MOUSEWHEEL = &H20A Const WHEEL_DELTA = 120 Dim Count As Integer

Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If Msg = WM_MOUSEWHEEL Then Dim Delta As Long

Static Travel As Long Delta = HiWord(wParam) Travel = Travel + Delta

MouseWheel Travel \ WHEEL_DELTA, LoWord(lParam), HiWord(lParam) Travel = Travel Mod WHEEL_DELTA

End If

WndProc = CallWindowProc(lpPrevWndProc, hwnd, Msg, wParam, lParam) End Function

Function HiWord(DWord As Long) As Integer

(30)

Function LoWord(DWord As Long) As Integer CopyMemory LoWord, DWord, 2

End Function

Sub MouseWheel(Travel As Integer, X As Long, Y As Long) 'Scroll one row per wheel step.

'To scroll more than 1 row per step change the next 'line to:

'YourFormsName.DataGrid1.Scroll 0, -Travel * NumberOfRowsDesired frmPenjadwalan.DataGrid1.Scroll 0, -Travel * 1

End Sub

C. User Controls 1. UcProgresCircular

Option Explicit

'--- 'Autor: Leandro Ascierto

'Web: www.leandroascierto.com.ar 'Date: 23/11/2010

'---

Private Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hdc As Long, ByRef graphics As Long) As Long

Private Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As Long

Private Declare Function GdiplusStartup Lib "gdiplus" (Token As Long, inputbuf As GDIPlusStartupInput, Optional ByVal outputbuf As Long = 0) As Long

Private Declare Function GdiplusShutdown Lib "gdiplus" (ByVal Token As Long) As Long

Private Declare Function GdipSetSmoothingMode Lib "GdiPlus.dll" (ByVal mGraphics As Long, ByVal mSmoothingMode As Long) As Long

Private Declare Function GdipDrawLine Lib "GdiPlus.dll" (ByVal mGraphics As Long, ByVal mPen As Long, ByVal mX1 As Single, ByVal mY1 As Single, ByVal mX2 As Single, ByVal mY2 As Single) As Long

(31)

Private Declare Function GdipDeletePen Lib "GdiPlus.dll" (ByVal mPen As Long) As Long

Private Declare Function GdipSetPenStartCap Lib "gdiplus" (ByVal pen As Long, ByVal startCap As LineCap) As Long

Private Declare Function GdipSetPenEndCap Lib "gdiplus" (ByVal pen As Long, ByVal endCap As LineCap) As Long

Private Declare Function OleTranslateColor Lib "oleaut32.dll" (ByVal

lOleColor As Long, ByVal lHPalette As Long, ByVal lColorRef As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"

(Destination As Any, Source As Any, ByVal Length As Long)

'---GDI PLUS SAFE MODE (By LaVolpe)

Private Declare Function CreateWindowExA Lib "user32.dll" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal

dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, ByRef lpParam As Any) As Long

Private Declare Sub RtlMoveMemory Lib "kernel32" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)

Private Declare Function VirtualAlloc Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long

Private Declare Function VirtualFree Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long

Private Declare Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As Long

Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long

Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Declare Function SetWindowLong Lib "user32.dll" Alias

"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function GetParent Lib "user32.dll" (ByVal hwnd As Long) As Long

(32)

Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Declare Function VarPtrArray Lib "msvbvm60.dll" Alias "VarPtr" (Ptr() As Any) As Long

Private Const GWL_WNDPROC As Long = -4 Private Const GW_OWNER As Long = 4

Private Const WS_CHILD As Long = &H40000000

'---

Private Type GDIPlusStartupInput

GdiPlusVersion As Long DebugEventCallback As Long SuppressBackgroundThread As Long SuppressExternalCodecs As Long End Type

Public Enum LineCap LineCapFlat = &H0 LineCapSquare = &H1 LineCapRound = &H2 LineCapTriangle = &H3 LineCapNoAnchor = &H10 LineCapSquareAnchor = &H11 LineCapRoundAnchor = &H12 LineCapDiamondAnchor = &H13 LineCapArrowAnchor = &H14 End Enum

(33)

Private Const SmoothingModeAntiAlias As Long = &H4 Private Const UnitPixel As Long = &H2

Private Const PI180 = 3.14159 / 180

'Private GdipToken As Long Private CurrentPos As Long Private mDrawWidth As Long Private mBackColor As OLE_COLOR Private mForeColor As OLE_COLOR Private mLineStart As LineCap Private mLineEnd As LineCap Private mTotalLines As Long

Private mNumberOfLines As enuNumberOfLines Private mInterval As Long

Public Property Get NumberOfLines() As enuNumberOfLines NumberOfLines = mNumberOfLines

End Property

Public Property Let NumberOfLines(ByVal lngNumber As enuNumberOfLines) Select Case lngNumber

Case FortyEightLines: mTotalLines = 7.5 Case TwentyFourLines: mTotalLines = 15 Case TwelveLines: mTotalLines = 30 Case EightLine: mTotalLines = 45 Case SixtLine: mTotalLines = 60 Case FourLine: mTotalLines = 90 Case Else

lngNumber = TwelveLines mTotalLines = 12

End Select

mNumberOfLines = lngNumber PropertyChanged "NumberOfLines" Call Draw

(34)

Public Property Get Interval() As Long Interval = mInterval

End Property

Public Property Let Interval(ByVal lngValue As Long) mInterval = lngValue

PropertyChanged "Interval" If Ambient.UserMode Then

Timer1.Interval = lngValue End If

End Property

Public Property Get ForeColor() As OLE_COLOR ForeColor = mForeColor

End Property

Public Property Let ForeColor(ByVal lngForeColor As OLE_COLOR) mForeColor = lngForeColor

PropertyChanged "ForeColor" Call Draw

End Property

Public Property Get BackColor() As OLE_COLOR BackColor = mBackColor

End Property

Public Property Let BackColor(ByVal lngBackColor As OLE_COLOR) mBackColor = lngBackColor

UserControl.BackColor = mBackColor PropertyChanged "BackColor"

Call Draw End Property

Public Property Get LineStart() As LineCap LineStart = mLineStart

(35)

Public Property Let LineStart(ByVal enuLineStart As LineCap) mLineStart = enuLineStart

PropertyChanged "LineStart" Call Draw

End Property

Public Property Get LineEnd() As LineCap LineEnd = mLineEnd

End Property

Public Property Let LineEnd(ByVal enuLineEnd As LineCap) mLineEnd = enuLineEnd

PropertyChanged "LineEnd" Call Draw

End Property

Public Property Get DrawWidth() As Long DrawWidth = mDrawWidth

End Property

Public Property Let DrawWidth(ByVal lDrawWidth As Long) mDrawWidth = lDrawWidth

PropertyChanged "DrawWidth" Call Draw

End Property

Private Sub UserControl_Initialize() 'InitGDI

CurrentPos = 360

UserControl.ScaleMode = vbPixels UserControl.AutoRedraw = True End Sub

Private Sub UserControl_InitProperties() mLineStart = LineCapRound

mLineEnd = LineCapRound

(36)

mForeColor = Ambient.ForeColor mInterval = 100

mDrawWidth = 6

Me.NumberOfLines = TwelveLines

Call ManageGDIToken(UserControl.ContainerHwnd) End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag) Call ManageGDIToken(UserControl.ContainerHwnd)

With PropBag

mForeColor = .ReadProperty("ForeColor", vbWindowText) mBackColor = .ReadProperty("BackColor", vbButtonFace) mLineStart = .ReadProperty("LineStart", LineCapRound) mLineEnd = .ReadProperty("Lineend", LineCapRound) mDrawWidth = .ReadProperty("DrawWidth", 6)

mInterval = .ReadProperty("Interval", 100) UserControl.BackColor = mBackColor

Me.NumberOfLines = .ReadProperty("NumberOfLines", TwelveLines) 'And call Draw

End With

If Ambient.UserMode Then

Timer1.Interval = mInterval End If

End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag) With PropBag

.WriteProperty "BackColor", mBackColor, vbButtonFace .WriteProperty "ForeColor", mForeColor, vbWindowText .WriteProperty "LineStart", mLineStart, LineCapRound .WriteProperty "LineEnd", mLineEnd, LineCapRound .WriteProperty "DrawWidth", mDrawWidth, 6

.WriteProperty "NumberOfLines", mNumberOfLines, TwelveLines .WriteProperty "Interval", mInterval, 100

(37)

Private Sub UserControl_Resize()

If UserControl.ScaleWidth > UserControl.ScaleHeight Then UserControl.Height = UserControl.Width

Else

UserControl.Width = UserControl.Height End If

Draw End Sub

Private Sub UserControl_Terminate() 'TerminateGDI

End Sub

Private Sub Draw()

Dim lPercent As Long Dim hGraphics As Long Dim hPen As Long Dim i As Long

Dim SL As Single, ST As Single Dim S As Single, C As Single

Dim MidSize As Single, Size As Single UserControl.Cls

If GdipCreateFromHDC(UserControl.hdc, hGraphics) = 0 Then

Call GdipSetSmoothingMode(hGraphics, SmoothingModeAntiAlias)

If mLineEnd = LineCapDiamondAnchor Or mLineEnd = LineCapRoundAnchor Then

MidSize = mDrawWidth Else

MidSize = (mDrawWidth / 2) End If

Size = (UserControl.ScaleWidth / 2) - MidSize - 1 SL = Size + MidSize

ST = Size + MidSize

(38)

For i = 360 To mTotalLines Step -mTotalLines S = Sin(i * PI180)

C = Cos(i * PI180)

lPercent = ((CurrentPos + i + 20) Mod 360) * 100 / 360 lPercent = lPercent * 255 / 100

GdipCreatePen1 CombineColors(mForeColor, mBackColor, lPercent), mDrawWidth, UnitPixel, hPen

GdipSetPenStartCap hPen, mLineStart GdipSetPenEndCap hPen, mLineEnd

Call GdipDrawLine(hGraphics, hPen, SL + (S * MidSize), ST - (C * MidSize), S * Size + SL, -C * Size + ST)

GdipDeletePen hPen Next i GdipDeleteGraphics hGraphics End If UserControl.Refresh End Sub

'Función para combinar dos colores y asignar el color alpha.

Private Function CombineColors(ByVal clrFirst As Long, ByVal clrSecond As Long, ByVal lPercent As Long, Optional ByVal lAlpha As Long = 255) As Long Dim clrFore(3) As Byte

Dim clrBack(3) As Byte Dim clrFinal(3) As Byte

OleTranslateColor clrFirst, 0, VarPtr(clrFore(0)) OleTranslateColor clrSecond, 0, VarPtr(clrBack(0))

clrFinal(0) = (clrFore(2) * lPercent + clrBack(2) * (255 - lPercent)) / 255

clrFinal(1) = (clrFore(1) * lPercent + clrBack(1) * (255 - lPercent)) / 255

clrFinal(2) = (clrFore(0) * lPercent + clrBack(0) * (255 - lPercent)) / 255

clrFinal(3) = lAlpha

CopyMemory CombineColors, clrFinal(0), 4 End Function

(39)

Private Sub Timer1_Timer()

CurrentPos = CurrentPos - 30

If CurrentPos <= 0 Then CurrentPos = 360 Draw

End Sub

'Private Sub InitGDI()

' Dim GdipStartupInput As GDIPlusStartupInput ' GdipStartupInput.GdiPlusVersion = 1&

' Call GdiplusStartup(GdipToken, GdipStartupInput, ByVal 0) 'End Sub

'---

'Private Sub TerminateGDI()

' If GdipToken Then Call GdiplusShutdown(GdipToken) 'End Sub

'---

'GDI Plus Safe Mode (By LaVolpe)

'Avira Antivir detecta este codigo como malicioso, asi que no preocuparse porque es inofencivo.

'puede ser subplantado por las funciones InitGDI y TerminateGDI pero es recomendable avilitarlas solo cuando se compile el proyecto.

Private Function ManageGDIToken(ByVal projectHwnd As Long) As Long If projectHwnd = 0& Then Exit Function

Dim hwndGDIsafe As Long 'API window to monitor IDE shutdown

Do

hwndGDIsafe = GetParent(projectHwnd)

If Not hwndGDIsafe = 0& Then projectHwnd = hwndGDIsafe Loop Until hwndGDIsafe = 0&

' ok, got the highest level parent, now find highest level owner Do

hwndGDIsafe = GetWindow(projectHwnd, GW_OWNER)

(40)

Loop Until hwndGDIsafe = 0&

hwndGDIsafe = FindWindowEx(projectHwnd, 0&, "Static", "GDI+Safe Patch") If hwndGDIsafe Then

ManageGDIToken = hwndGDIsafe ' we already have a manager running for this VB instance

Exit Function ' can abort End If

Dim gdiSI As GDIPlusStartupInput 'GDI+ startup info Dim gToken As Long 'GDI+ instance token

On Error Resume Next

gdiSI.GdiPlusVersion = 1 ' attempt to start GDI+ GdiplusStartup gToken, gdiSI

If gToken = 0& Then ' failed to start If Err Then Err.Clear

Exit Function End If

On Error GoTo 0

Dim z_ScMem As Long 'Thunk base address Dim z_Code() As Long 'Thunk machine-code initialised here

Dim nAddr As Long 'hwndGDIsafe prev window procedure

Const WNDPROC_OFF As Long = &H30 'Offset where window proc starts from z_ScMem

Const PAGE_RWX As Long = &H40& 'Allocate executable memory Const MEM_COMMIT As Long = &H1000& 'Commit allocated memory Const MEM_RELEASE As Long = &H8000& 'Release allocated memory flag

Const MEM_LEN As Long = &HD4 'Byte length of thunk

(41)

If z_ScMem <> 0 Then 'Ensure the allocation succeeded

' we make the api window a child so we can use FindWindowEx to locate it easily

hwndGDIsafe = CreateWindowExA(0&, "Static", "GDI+Safe Patch", WS_CHILD, 0&, 0&, 0&, 0&, projectHwnd, 0&, App.hInstance, ByVal 0&) If hwndGDIsafe <> 0 Then

ReDim z_Code(0 To MEM_LEN \ 4 - 1)

z_Code(12) = &HD231C031: z_Code(13) = &HBBE58960: z_Code(14) = &H12345678: z_Code(15) = &H3FFF631: z_Code(16) = &H74247539: z_Code(17) = &H3075FF5B: z_Code(18) = &HFF2C75FF: z_Code(19) = &H75FF2875

z_Code(20) = &H2C73FF24: z_Code(21) = &H890853FF: z_Code(22) = &HBFF1C45: z_Code(23) = &H2287D81: z_Code(24) = &H75000000: z_Code(25) = &H443C707: z_Code(26) = &H2&: z_Code(27) = &H2C753339: z_Code(28) = &H2047B81: z_Code(29) = &H75000000

z_Code(30) = &H2C73FF23: z_Code(31) = &HFFFFFC68: z_Code(32) = &H2475FFFF: z_Code(33) = &H681C53FF: z_Code(34) = &H12345678: z_Code(35) = &H3268&: z_Code(36) = &HFF565600: z_Code(37) = &H43892053: z_Code(38) = &H90909020: z_Code(39) = &H10C261

z_Code(40) = &H562073FF: z_Code(41) = &HFF2453FF: z_Code(42) = &H53FF1473: z_Code(43) = &H2873FF18: z_Code(44) = &H581053FF: z_Code(45) = &H89285D89: z_Code(46) = &H45C72C75: z_Code(47) = &H800030: z_Code(48) = &H20458B00: z_Code(49) = &H89145D89

z_Code(50) = &H81612445: z_Code(51) = &H4C4&: z_Code(52) = &HC63FF00

z_Code(1) = 0 ' shutDown mode; used internally by ASM

z_Code(2) = zFnAddr("user32", "CallWindowProcA") ' function pointer CallWindowProc

z_Code(3) = zFnAddr("kernel32", "VirtualFree") ' function pointer VirtualFree

(42)

z_Code(5) = gToken ' Gdi+ token

z_Code(10) = LoadLibrary("gdiplus") ' library pointer (add reference)

z_Code(6) = GetProcAddress(z_Code(10), "GdiplusShutdown") ' function pointer GdiplusShutdown

z_Code(7) = zFnAddr("user32", "SetWindowLongA") ' function pointer SetWindowLong

z_Code(8) = zFnAddr("user32", "SetTimer") ' function pointer SetTimer

z_Code(9) = zFnAddr("user32", "KillTimer") ' function pointer KillTimer

z_Code(14) = z_ScMem ' ASM ebx start point

z_Code(34) = z_ScMem + WNDPROC_OFF ' subclass window procedure location

RtlMoveMemory z_ScMem, VarPtr(z_Code(0)), MEM_LEN 'Copy the thunk code/data to the allocated memory

nAddr = SetWindowLong(hwndGDIsafe, GWL_WNDPROC, z_ScMem + WNDPROC_OFF) 'Subclass our API window

RtlMoveMemory z_ScMem + 44, VarPtr(nAddr), 4& ' Add prev window procedure to the thunk

gToken = 0& ' zeroize so final check below does not release it

ManageGDIToken = hwndGDIsafe ' return handle of our GDI+ manager

Else

VirtualFree z_ScMem, 0, MEM_RELEASE ' failure - release memory

z_ScMem = 0& End If

Else

(43)

End If

If gToken Then GdiplusShutdown gToken ' release token if error occurred

End Function

Private Function zFnAddr(ByVal sDLL As String, ByVal sProc As String) As Long zFnAddr = GetProcAddress(GetModuleHandleA(sDLL), sProc) 'Get the

(44)

DAFTAR PUSTAKA

Foxall, James.2006. Visual Basic 2005. USA: Sams Publishing.

qIrvine, Kip.2009. Visual Basic 2008. USA: Pearson Education.

Nazir, Moh, PhD.1999. Metode Penelitian. Jakarta: Ghalia Indonesia.

Pandia, Henry.2002. Visual Basic 6 Tingkat Lanjut. Yogyakarta: Andi.

Siagian, Sondang P.2000. Pengantar Sistem Informasi Manajemen. Bumi Aksara.

Schneider, David.2006. Visual Basic 2005. USA: Pearson Education.

Sihombing, Poltak.2011. Pemrograman Visual Basic 6.0. Medan: Usu Press

Singarimbun, Masri.2002. Metode Penelitian Survei. Jakarta: LP3S.

Sugiri. 2007. Pengelolaan Database MySQL dengan PhpMyAdmin. Yogyakarta:

Graha Ilmu.

Madcoms, 2002. Database Visual Basic 6.0 dengan Crystal Reports. Yogyakarta:

Andi.

Kadir, Abdul, 2008. Dasar Perancangan & Implementasi Database Relasional.

(45)

Kroenke, David M, 2003. Database Processing. Erlangga.

(46)

BAB 3

GAMBARAN UMUM

LABORATORIUM D3 TEKNIK INFORMATIKA UNIVERSITAS

SUMATERA UTARA

3.1 Sejarah Berdirinya Laboratorium Teknik Informatika USU

Setelah MIPA berdiri pada tanggal 25 Agustus 1965 dengan nama FAPIA USU yang

dipimpin oleh rector USU Bpk.drg. Nazir Alwi, dan ketua jurusan matematika

Bpk.drs.P.Siagian. Teknik Komputer sekarang dulunya bernama Ilmu Komputer yang

dibuka secara resmi pada 1969 secara resmi setelah jurusan Farmasi, berdiri diwawah

Departemen matematika sampai sekarang.

Dibukanya jurusan Ilmu Komputer USU bertujuan untuk :

1. Menyelenggarakan proses belajar mengajar dalam bidang ilmu-ilmu dasar

untuk menghasilkan anggota masyarakat yang memiliki kemampuan akademik

atau profesionalisme tinggi dan bertanggung jawab di dalam menerapkan,

(47)

35

2. Menyelenggarakan praktek laboratorium dalam bidang ilmu - ilmu dasar untuk

menghasilkan dan mewujudkan ilmu pengetahuan dan teknologi yang

bermanfaat bagi kemajuan serta kesejahteraan masyarakat

3. Meningkatkan mutu proses penyelenggaraan pendidikan dan praktek

laboratorium secara berkelanjutan melalui peningkatan kualitas sumber daya

manusia, sarana dan prasarana, sumber daya informasi, organisasi dan

manajemen

4. Meletakkan dasar-dasar profesionalisme penyelenggaraan pendidikan,

penelitian dan pengabdian pada masyarakat untuk mewujudkan Fakultas MIPA

Universitas Sumatera Utara sebagai suatu unsur penunjang akademik dengan

akuntabilitas tinggi.

Dengan demikian untuk mencapai tujuan tersebut, jurusan Teknik Komputer

membutuhkan beberapa sarana untuk meningkatkan dan menunjang mutu pendidikan.

Untuk mencapai tujuan tersebut salah satu penunjang mutu pendidikan yang

disediakan adalah Laboratotium Komputer. Ini lah yang akan penulis bahas dalam

Laporan Pelaksanaan Praktek Kerja Lapangan.

3.2 Fungsi Laboratorium

Laboratorium Komputer sebagai salah satu unit penunjang yang melaksanakan tugas

pokoknya melayani mahasiswa dalam melaksanakan praktikum yang menunjang

(48)

36

dalam menyelesaikan Tugas Akhir, serta para dosen dalam pelaksanaan Penelitian dan

Pengabdian Kepada Masyarakat.

Fasilitas yang dimiliki Laboratorium Komputer terbagi dalam 2 ruang

praktikum yang terdiri dari 30 unit computer dalam satu ruangan yang saling

terhubung dengan menggunakan jaringan Local Area Network (LAN), serta

menggunakan LCD-Projector.

Software yang dipakai untuk perkuliahan di sesuaikan dengan kebutuhan

program studi yang memerlukan adanya antara lain ; Microsoft Windows Server,

Microsoft Office, Adobe Acrobat, Adobe Illustrator, Adobe PageMaker, Adobe

Photoshop, Adobe Premier, CorelDraw, Dreamweaver, Macromedia Director, Flash,

Macromedia Freehand, Autodesk/Ardes/Ars/Abs, 3D Studio Max, Symantec

Antivirus dan lain-lain.

Laboratorium Komputer dibuka pada setiap hari kerja pukul 08.00 s/d 16.00

WIB, setiap pengguna diharapkan dapat mematuhi tata tertib penggunaan

Laboratorium Komputer.

3.3 Struktur Organisasi Laboratorium D3 Teknik Informatika USU

Srtuktur organisasi merupakan rangka dan pola hubungan yang sistematis merupakan

bagian-bagian yang saling berkaitan untuk membentuk suatu kesatuan dalam usaha

(49)

37

Dalam mencapai tujuan tersebut setiap manajemen Perusahaan atau Dinas

dituntut untuk membentuk suatu struktur organisasi yang dapat menempatkan seluruh

tugas dan kegiatan perusahaan secara efesien sehingga produktifitasnya dapat efektif.

Struktur organisasi yang tegas mencerminkan adanya pembagian tugas dan tanggung

jawab yang tegas pula.

Sama halnya dengan Laboratorium Komputer USU juga memiliki struktur

organisasi, dari struktur organisasi ini kita juga dapat mengetahui bahwa setiap bagian

atau seksi mempunyai tugas dan wewenang masing-masing yang harus dipertanggung

jawabkan.

Struktur yang terdapat pada setiap organisasi pada dasarnya merupakan

kerangka pembagian tugas, wewenang dan tanggung jawab dari pegawai yang

melaksanakan pekerjaannya. Setiap unsure-unsur harus dirancang dan ditaati

sebaik-baiknya, sebagai pertimbangan tujuan yang akan dicapai oleh perusahaan atau Dinas.

Kejelasan dari struktur ini didapat dalam satu organisasi, dan dapat diketahui

hubungan kerjanya secara fungsional antara satu bagian dengan bagian lainnya.

Struktur organisasi Laboratorium Komputer D3 USU Medan adalah sebagai

berikut :

1. Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam (Dr. Sutarman, M.Sc

(50)

38

2. Ketua Departemen Fakultas Matematika Dan Ilmu Pengetahuan Alam (Prof.

Drs. Tulus Vordipl. Math., M.Si., Ph.D).

3. Dosen atau pegawai yang bersangkutan yang mengelola Laboratorium

Komputer

D3 USU.

4. Kepala Laboratorium Komputer D3 USU (Drs.Suyanto, M.KOM)

5. Pegawai yang Mengelola Laboratorium Komputer D3 USU (Sutrisno)

6. Asisten Laboratorium Komputer D3 USU yang menjalankan proses belajar

dan mengajar mewakili tugas para Dosen yang bersangkutan.

Tugas dan tanggung jawab setiap bidang yang ada pada Laboratorium Komputer D3

USU dapat diuraikan sebagai berikut :

1. Kepala Lab

Tugas Pokok dan Fungsi Kepala Laboratorium Komputer D3 USU adalah mengelola

laboratorium dengan mendayagunakan seluruh sumber daya secara terencana,

terawasi, dan terevaluasi. Karena itu secara manajerial dan organisasi seorang Kepala

Laboratorium mempunyai tugas antara lain sebagai berikut:

1. Merancang sistem mutu prosedur tata kelola Laboratorium Komputer.

2. Menetapkan visi, misi, tujuan, serta kebijakan dan tujuan mutu Laboratorium

Komputer.

(51)

39

4. Merencanakan kegiatan pendidikan penelitian dan pengabdian pada

masyarakat di Laboratorium Komputer Dasar.

5. Memberikan sarana bagi civitas akademika untuk melakukan pengembangan

ilmu pengetahuan dan teknologi.

6. Menyiapkan jadwal kegiatan Laboratorium Komputer.

7. Mengkoordinasikan segala kegiatan yang dilaksanakan dalam Laboratorium

Komputer.

8. Menjalin kerjasama dengan pihak luar dalam rangka resource sharing dan

pemberdayaan Laboratorium Komputer.

9. Melakukan kebutuhan sumber daya, pemantauan dan evaluasi atas

ketersediaan sarana prasarana dan kegiatan dalam Laboratorium Komputer.

10.Selain itu, seorang Kepala Laboratorium dalam pelaksanaan tugas sebagai

pengelola laboratorium dapat dibantu oleh teknisi dan laboran yang secara

langsung bertanggung jawab terhadapnya.

11.Memilih personil laboratorium, dan mengusulkannya kepada Ketua jurusan

untuk mengangkat personil atau pegawai Laboratorium Komputer.

12.Menetapkan tanggung jawab, wewenang, dan uraian tugas semua personil

laboratorium, beserta hirarki tugasnya.

13.Bertanggung jawab kepada Ketua Laboratorium Komputer.

2. Petugas atau Pegawai Laboratorium

Adapun tugas yang harus diemban oleh seorang petugas atau pegawai laboratorium

(52)

40

laboratorium hanya digunakan oleh mahasiswa saat ini, staf pengajar dan staf.

Laporan dan komputer membutuhkan perbaikan ke Koordinator Lab Komputer.

Mengawasi evakuasi pusat selama kebakaran atau cuaca buruk. Pastikan laboratorium

dijamin pada penutupan. Menjaga keamanan umum peralatan laboratorium dan

lingkungan di laboratorium, termasuk penegakan kebijakan dan prosedur. Melakukan

tugas pekerjaan lain yang terkait sebagaimana ditugaskan.

Kemampuan untuk memberikan dukungan teknis dasar untuk pengguna lab.

Kemampuan untuk berkomunikasi secara efektif dengan staf, mahasiswa dan tamu

dari universitas. Kemampuan untuk membuat keputusan dan bekerja secara

independen. Kemampuan untuk memastikan kebijakan dan prosedur yang diikuti

dalam semua keputusan. Kemampuan untuk memanfaatkan teknik-teknik perencanaan

lanjutan dan manajemen waktu untuk memastikan catatan kehadiran yang baik dan

atau memperoleh subs baik dalam lanjutan.

Tugas lain dari petugas atau pegawai laboratorium adalah :

1 Menyusun rencana operasional Unit Laboratorium dan Komputer

2 Menyusun rencana kegiatan dan anggaran unit Laboratorium dan

Komputer

3 menyusun rencana kebutuhan unit Laboratorium dan Komputer

4 Memfasilitasi penyelenggaraan praktikum

(53)

41

6 Melaksanakan tugas-tugas dan tanggung jawab sebagai petugas

Laboratorium.

3. Dosen

Sebagai seorang dosen tentu punya tugas dan tanggung jawab. Dosen sebagai pengajar

yang mempunyai mata kuliah praktikum harus bertanggung jawab dalam mata kuliah

praktikumnya juga. Setiap dosen saling bekerja sama dengan petugas laboratorium,

baik dalam pelaksanaan praktikum maupun dalam tanggung jawab menjalankan

semua yang bersangkutan dengan laboratorium.

Diluar itu dosen juga berperan sebagai pengajar(undergraduate) dan

peneliti(post graduate). Dua peran ini cukup signifikan perbedaannya, meskipun

keduanya bertujuan untuk melahirkan pribadi yang unggul. Karakteristik antara

undergraduate dengan postgraduate baik pelajar, kurikulum serta metode pengajaran

berbeda.

Pendidikan undergraduate lebih banyak berorientasi pembentukan karakter dan

penanaman pemahaman yang dapat digunakan ketika bekerja. Untuk pendidikan

postgraduate, selain orientasi pendidikan undergraduate, pengembangan ilmu dan

publikasi juga menjadi orientasi. Metode pengajaran undergraduate lebih banyak

(54)

42

pada tahun akhir. Akan tetapi, pada pendidikan postgraduate, pelajar sendiri yang

harus mengembangkan dirinya melalui eksperimen dan penulisan hasil temuannya.

Dua dimensi ini tidak dapat dipisahkan dari diri dosen, selain pekerjaan lain

yang telah disebutkan. Bayangkan bila seorang dosen harus mengajar 1-2 mata kuliah

pada S1 dan 1-2 mata kuliah untuk postgraduate sehingga total mengajar adalah

4x3jam (1mata kuliah 3jam)= 12 jam. Ditambah lagi dosen harus melakukan

penilaian-penilaian atas hasil akademik dan bukan akademik (kemampuan

berkomunikasi, presentasi dll) yang dijiwai oleh semangat OBE (Outcome based

Education, terutama untuk pendidikan teknik). Belum lagi penilaian-penilaian

terhadap kemampuan dasar untuk dapat bersaing pada pasar global seperti

kemampuan berdiskusi, bekerja dalam grup. Penilaian kemampuan dasar ini telah

ditetapkan oleh “negara” dan “universitas”. Berapa lembar formulir penilaian yang

harus diisi? Karena pencapaian outcome tersebut mesti dikuantitatifkan dan mesti ada

bukti sehingga pencapaian tersebut dianggap valid.

Di sisi lain, seiringan dengan persaingan ketat untuk meningkatkan peringkat

universitas, para dosen diminta untuk mempublikasikan hasil penelitian pada

majalah-majalah ilmiah yang bergengsi. Konon, universitas yang telah diakui sebagai Research

University harus menerbitkan 4 makalah untuk setiap dosennya pada majalah ilmiah

bertaraf internasional. Kalau disederhanakan, maka setiap 3 bulan harus menulis 1

makalah. Itupun di luar publikasi kelas lokal dan prosiding yang diterbitkan pada

(55)

43

para dosen harus banyak mendapatkan dana penelitian baik yang disediakan

pemerintah atau Internasional. Untuk mendapatkan dana besar maka proposal harus

menarik dan luar biasa. Intinya, untuk mendapatkan dana besar maka pengorbanan

waktu adalah suatu keniscayaan.

Kedua-dua tugas di atas mesti diletakan pada prioritas utama….itu kata

manajemen universitas. Padahal hubungan keduanya adalah Trade-off. Biasanya,

teaching university meletakkan pengajaran sebagai prioritas, tapi research university

berorientasi research dan publikasi. Tidak aneh bila yang menjadi korban adalah para

staf akademis.

Untuk meningkatkan gengsi universitas, dosen juga diminta untuk membina

hubungan dengan industri serta aktif dalam kegiatan konsultasi. Kegiatan ini penting

karena menghasilkan pemasukan untuk universitas selain pemahaman tentang dunia

industri. Tapi pekerjaan ini masih lebih menyenangkan bila dibandingkan dengan

pekerjaan urusan administrasi. Dia tidak kenal waktu, tidak habis-habis dan tidak

menyenangkan sama sekali. Pekerjaan ini terkadang menarik perhatian beberapa

dosen yang memang mempunyai tujuan ke sana seperti posisi dekan, ketua jurusan dll.

Silahkan bayangkan sibuknya seorang dosen yang harus mengerjakan semua

tugas tersebut dan akan dinilai performance seorang dosen atas semua pekerjaan

tersebut. Bisa dikatakan bahwa seorang dosen adalah manusia “super” yang penuh

(56)

44

Masyarakat sekarang ini hanya mengenal dosen sebagai pengajar, jadi pekerjaannya

hanya mengajar.

Inilah sedikit gambaran tugas-tugas seorang dosen, dan dosen yang ideal

adalah dosen yang mampu melaksanakan semua tugas dan tanggung jawab ini.

4. Asisten Laboratorium

Tugas dan tanggung jawab seorang asisten laboratorium adalah menggantikan

pekerjaan seorang dosen jika dosen yang bersangkutan sedang berhalangan. Seorang

asisten laboratorium juga bertanggung jawab dalam pemberian tugas kepada siswa

praktikum.

5. Akses Infrastruktur Teknologi Informasi

Penyediaan layanan teknologi informasi (TI) diselenggarakan oleh Pusat Sistem

Informasi (PSI)., suatu divisi yang mengelola pelayanan akses terhadap infrastruktur

teknologi informasi dan lingkungannya baik di dalam maupun dari luar kampus.

Penyediaan layanan TI dimaksudkan terutama untuk memudahkan sivitas akademika

(mahasiswa dan dosen) mengakses seluruh spektrum sumber daya informasi dan

pengetahuan berbasis elektronik baik yang disediakan oleh Universitas maupun yang

(57)

45

program utama Universitas. Selain itu, infrastruktur TI juga digunakan untuk

mendukung sistem informasi manajemen (SIM) Universitas.

Seluruh aktivitas akademika dan staf Universitas dapat menggunakan layanan

akses jaringan di dalam kampus secara gratis baik melalui jaringan kabel dengan

terminal PC maupun jaringan tanpa kabel (wireless) yang tersedia di seluruh gedung

dan sekitarnya di dalam kampus. Penyediaan fasilitas jaringan tanpa kabel atau WiFi

ditujukan bagi mereka yang memiliki laptop. Layanan akses jaringan Universitas

diberi sticker logo USUNETA untuk memudahkan para sivitas akademika

mengidentifikasi lokasi dimana layanan tersebut tersedia untuk digunakan.

3.4 TATA TERTIB LABORATORIUM

Tata Tertib yang berlaku di Laboratorium Program Teknologi Informasi dan Ilmu

Komputer Universitas Sumatera Utara sebagai berikut:

3. 4.1 Tata Tertib Penggunaan Laboratorium

1. Mahasiswa wajib mengisi buku kunjungan laboratorium(Absensi)

2. Mahasiswa yang meminjam peralatan laboratorium harus memenuhi ketentuan

peminjaman dan pengembalian,

3. Mahasiswa dilarang membuat gaduh di dalam laboratorium.

4. Dilarang makan, minum dan merokok di dalam laboratorium.

(58)

46

6. Semua pengunjung laboratorium wajib menjaga kebersihan laboratorium.

7. Semua mahasiswa yang mengunjungi atau praktek di laboratorium, wajib

merapikan kembali semua inventaris laboratorium.

8. Dilarang membawa peralatan laboratorium keluar ruang laboratorium tanpa

izin dari petugas laboratorium.

9. Dilarang membawa pulang peralatan laboratorium.

10.Semua pengunjung laboratorium harus menjaga keamanan inventaris

laboratorium.

11.Jika terjadi kerusakan dan kehilangan peralatan laboratorium, maka

pengunjung yang merusakkan atau menghilangkan alat tersebut wajib melapor

ke petugas laboratorium dan mengganti alat tersebut.

12.Jika tidak ada yang melapor telah menghilangkan atau merusakkan alat

laboratorium, maka semua mahasiswa yang mengunjungi laboratorium wajib

mengganti 2 kali lipatnya.

3.4.2 Tata Tertib Praktek Laboratorium

1. Setiap mahasiswa wajib mengikuti praktek laboratorium.

2. Berpakaian sopan dan rapi saat masuk ke dalam laboratorium

3. Mahasiswa harus hadir di ruang praktek laboratorium 5 menit sebelum

praktikum dimulai.

4. Sebelum masuk ruang laboratorium, setiap mahasiswa harus sudah

(59)

47

5. Selama praktek di laboratorium dilarang membuat gaduh, makan, minum dan

merokok didalam laboratorium.

6. Selesai praktikum tempat kerja harus dibersihkan dan dirapikan kembali, serta

alat-alat dikembalikan pada tempatnya.

7. Mahasiswa yang tidak dapat mengikuti praktikum harus melapor kepada

asisten praktikum mata kuliah yang bersangkutan.

8. Peralatan laboratorium yang dipakai dalam praktikum, menjadi tanggung

jawab mahasiswa, oleh karenanya harus berhati-hati dalam

mempergunakannya.

9. Mahasiswa yang datang terlambat lebih dari 15 menit tidak diperkenankan

(60)

BAB 4

ANALISIS DAN PERANCANGAN SISTEM

4.1 Analisis Sistem

Analisis sistem adalah penguraian dari suatu sistem yang utuh ke dalam bagian-bagian

komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi

permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan

sehingga dapat diusulkan perbaikan.

Sistem penjadwalan ini merupakan sistem yang bersifat dinamis dimana data

yang terdapat didalamnya dapat berubah sesuai dengan kebutuhan dan seiring

berjalannya waktu sehingga harus dapat dilakukan penambahan, penghapusan,

maupun pembaharuan data yang sudah pernah disimpan sebelumnya. Perubahan

hanya dilakukan pada bagian basis pengetahuan saja sehingga sistem ini dapat

dikembangkan lebih lanjut. Tahapan analisis terhadap suatu sistem dilakukan sebelum

tahap perancangan, hal ini agar perangkat lunak yang dirancang sesuai dengan

(61)

49

4.2 Perancangan Sistem

Pada subbab ini akan diuraikan tahap tahap dalam perancangan apikasi penjadwalan

yang memiliki beberapa komponen utama yaitu: basis data dan antar muka pengguna

(user interface).

4.2.1 Perancangan Output

Output atau keluaran yang dihasilkan dari sistem ini beruapa dokumen laporan berbentuk data report. Berikut ini adalah rancangan output yang dibuat :

a. Output Laporan Jadwal per Kelas

Nama ruang

JADWAL LABORATORIUM D3 TI

UNIVERSITAS SUMATERA UTARA Logo

Kelas : nama_kelas

Mata Kuliah

Nama mata kuliah 1

Nama mata kuliah 2

-

Nama mata kuliah n

Waktu

Waktu mata kuliah 1

Waktu mata kuliah 2

-

Waktu mata kuliah n

Ruangan

Nama Ruang

Nama ruang

(62)

50

b. Laporan Jadwal per Mata Kuliah

4.2.2 Perancangan Input

Perancangan input yang digunakan dalam sistem ini adalah sebagai berikut :

Nama input : data kelas

Sumber : kepala Laboratorium D3 TI USU

Fungsi : Mendata seluruh kelas yang ada di program studi D3 TI USU JADWAL LABORATORIUM D3 TI

UNIVERSITAS SUMATERA UTARA Logo

Mata Kuliah : nama_mata_kuliah

Kelas

Nama kelas

-

Waktu

Waktu mata kuliah 1

-

Ruangan

(63)

51

[image:63.595.212.421.118.369.2]

Rancangan.

Gambar 4.1 Form Input Data Kelas

[image:63.595.113.518.441.694.2]
(64)
[image:64.595.109.525.107.388.2]

52

Gambar 4.3 Fom Input Data Waktu

4.2.3 Peracangan Dialog

User Interface atau tampilan antarmuka merupakan salah satu bagian penting dalam pembangunan perangkat lunak. Sebuah sistem akan terlihat lebih mudah digunakan apalabila didukung dengan antarmuka yg ramah.

(65)
[image:65.595.109.495.84.294.2]

53

Gambar 4.4 Tampilan Menu Utama

[image:65.595.112.525.345.599.2]
(66)

54

4.2.4 Perancangan Database

4.2.4.1 DFD Level Konteks

[image:66.595.124.561.241.626.2]

DFD atau Data Flow Diagram dari sistem penjadwalan ini dapat dilihat sebagai berikut :

Gambar 4.6 DFD Level Konteks

Waktu Mata Kuliah

Penjadwalan Lab

(67)

55

4.2.4.2 Entity Relationship Diagram

4.2.4.2 Struktur Database dan Tabel

Sistem penjadwalan ini terdiri dari satu database dan lima buah tabel. Berikut ini adalah strukur databasenya :

kelas

Id

Nama_kelas

Jlh_mhs Waktu

Id

Hari

Jam_mulai

Jam_selesai

Jadwal

Id

waktu

kelas

Mata_kuliah

ruang Mata_kuliah

Id

Nama_mk

Semester

Sks

Dosen

Ruangan

Id

Nama_ruang

(68)

56

Nama database : db_penjadwalan_lab Nama nama tabel :

1. Tabel Waktu

Nama Field Tipe Data Panjang Keterangan

Id Integer 11 -

Hari Varchar 50 -

Jam_mulai Time - -

[image:68.595.121.522.143.697.2]

Jam_selesai time - -

Tabel 4.1 Tabel Waktu

2. Tabel mata_kuliah

Nama Field Tipe Data Panjang Keterangan

Id Integer 11 -

Nama_mk Varchar 50 Nama Mata

kuliah

semester integer 1 -

Sks integer 2 Jumlah kredit

semester

dosen varchar 50 Nama dosen

[image:68.595.123.521.167.271.2]

pengasuh Tabel 4.2 Tabel mata_kuliah

3. Tabel Kelas

Nama Field Tipe Data Panjang Keterangan

Id Integer 11 -

nama Varchar 50 Nama kelas

Jlh_mhs integer 3 Jumlah

mahasiswa Tabel 4.3 Tabel Kelas

(69)

57

Nama Field Tipe Data Panjang Keterangan

Id Integer 11 -

nama Varchar 50 Nama ruang

[image:69.595.135.523.86.175.2]

kapasitas integer 3 -

Tabel 4.4 Tabel Ruang

4.2.5 Perancangan Program

4.2.5.1 Flowchart

Flowchart digunakan untuk menggambarkan aliran instruksi-instruksi dari sebuah program. Berikut ini adalah diagram aliaran instruksi pada program penjadwalan :

(70)

58

2. Flowchart Pengaturan Waktu Mulai

Tampilan menu utama

Pengaturan waktu

Penjadwalan

Mata Kuliah

Kelas

Cetak Jadwal

Keluar

Per matakuliah

Per kelas

Selesai Kelas Mata Kuliah Penjadwalan

Pengaturan waktu A

B

C

D

E

(71)

59

(72)

Gambar

Gambar 4.1 Form Input Data Kelas
Gambar 4.3 Fom Input Data Waktu
Gambar 4.4 Tampilan Menu Utama
Gambar 4.6 DFD Level Konteks
+7

Referensi

Dokumen terkait

Oleh karena itu, penulis mencoba merancang sebuah Sistem Informasi Perekrutan Dan Pendistribusian Asisen Laboratorium D3 Teknik Informatika FMIPA USU untuk

Tugas Akhir ini merupakan salah satu syarat yang harus dipenuhi untuk menyelesaikan pendidikan Diploma 3 pada Program Studi D3 Teknik Informatika Fakultas Matematika dan

Dalam pembuatan Aplikasi Penginputan Nilai Mahasiswa D3 Teknik Informatika USU Berbasis Android, penulis hanya menggunakan komputer (laptop), telepon mobile atau

Adapun manfaat dari informasi penjadwalan dan rincian nilai pratikum laboratorium berbasis website ini adalah dapat membantu atau memudahkan praktikan, pengajar

Penelitian ini mengkaji tentang suatu sistem informasi yang berdasarkan penjadwalan dan rincian nilai yang ada pada laboratorium D3 Teknik Infomatika, dengan menggunakan

Judul Tugas Akhir : Sistem Pengontrolan Penggunaan Aplikasi Menggunakan Metode Penjadwalan Non-Preemptive Pada Laboratorium Komputer Teknik Informatika UPN “Veteran”

Tugas Akhir ini merupakan salah satu syarat yang harus dipenuhi untuk menyelesaikan pendidikan Diploma 3 pada Program Studi D3 Teknik Informatika Fakultas Matematika dan

Berdasarkan permasalahan tersebut, penulis memiliki ide untuk membuat “perancangan sistem informasi laboratorium teknik informatika universitas narotama” yang bertujuan untuk melakukan