makalah vb
DESCRIPTION
New makalah about pemrograman visual basicTRANSCRIPT
MAKALAHPEMROGRAMAN PORT PARALEL MENGGUNAKAN SOFTWARE VISUAL BASIC Dosen Pengampu : Yunifa Miftachul Arif, M.T.
Disusun Oleh :
Irvan Ariyanto (13650104)
M. Rizal Maftukhin (13650122)
Weni Rizki A.(13650017)
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM MALANG
2015BAB IPENDAHULUAN
A. Latar Belakang Perkembangan teknologi semakin pesat dan merata di seluruh aspek kehidupan. Pekerjaan-pekerjaan di industri, kantor, dan rumah sekarang dimudahkan dengan adanya komputer yang mampu meringankan sebagian pekerjaan. Komputer dapat dimanfaatkan sebagai pengendali peralatan, karena komputer mempunyai kemampuan yang besar antar lain: komputer mampu untuk mengintegrasikan antara peralatan yang satu dengan peralatan yang lain, komputer mampu menyediakan sistem keamanan yang multi level, mampu untuk diseting supaya dapat berjalan manual atau otomatis, dapat menampilkan laporan dari hasil kerja alat terkendali bila diperlukan, dapat diprogram dengan pilihan menu yang banyak karena mempunyai kapasitas penyimpanan yang besar.Dengan begitu besar kemampuan komputer yang telah disebutkan di atas dan kemampuan-kemampuan tersebut, computer membutuhkan bermacam macam peripheral pendukung untuk mengeksplor kinerjanya. Salah satunya adalah port parallel. Pada makalah ini kami akan memaparkan bagaimana cara untuk mengetahui kinerja port parallel DB 25 dengan aplikasi visual basic, sehingga nantinya bisa kita dapatkan mekanisme penyaluran data dalam DB 25.B. Rumusan Masalah
Dari latar belakang di atas, dapat dirumuskan beberapa masalah sebagai berikut :
1. Apakah port parallel itu?
2. Bagaimanakah pemrograman port parallel menggunakan software visual basic 6?
C. Tujuan
1. Mengetahui port parallel2. Mengetahui cara memprogram port parallel menggunakan visual basic 6
BAB II PEMBAHASAN
1. Port Paralel
Ada dua macam konektor parallel port, yaitu 36 pin dan 25 pin. Konektor 36 pin dikenal dengan nama Centronics dan konektor 25 pin dikenal dengan DB25. Centronics lebih dahulu ada dan digunakan dari pada konektor DB-25. DB-25 diperkenalkan oleh IBM (bersamaan dengan DB-9, untuk serial port), yang bertujuan untuk menghemat tempat. Karena DB-25 lebih praktis, maka untuk koneksitor parallel port pada komputer sekarang hanya digunakan DB-25. Berikut gambarannya.
Gambar 1. Port Paralel
Keterangan gambar dapat dilihat pada tabel di bawah ini:
Nomor pinNama sinyalTugasRegisterKomplemen
1-StrobeIn/OutControl bit 0Ya
2+Data Bit 0OutData bit 0
3+Data Bit 1OutData bit 1
4+Data Bit 2OutData bit 2
5+Data Bit 3OutData bit 3
6+Data Bit 4OutData bit 4
7+Data Bit 5OutData bit 5
8+Data Bit 6OutData bit 6
9+Data Bit 7OutData bit 7Ya
10-AcknowledgeInStatus bit 6
11+BusyInStatus bit 7
12+Paper EndInStatus bit 5
13+Select InInStatus bit 4
14-Auto FeedIn/OutControl bit 1Ya
15-ErrorIn/Status bit 5
16-InitializeIn/OutControl bit 2
17-SelectIn/OutControl bit 3Ya
18-25GroundGround
Fungsi dari paralel port dengan membuat program aplikasi komputer beserta peralatan yang nantinya dapat digunakan dalam hal pengendalian perangkat listrik..Di komputer, konektor parallel port yang terpasang adalah DB-25 betina , sehingga kabel penghubung keluar adalah DB-25 jantan. Susunan/bentuk DB-25 tampak seperti gambar.
Gambar 2. Susunan Bentuk DB-25
Dari 25 pin konektor DB-25 tersebut, hanya 17 pin yang digunakan untuk saluran pembawa informasi dan yang berfungsi sebagai ground 8 pin. Ketujuh belas saluran informasi itu terdiri dari tiga bagian, yakni data 8 bit; status 5 bit; dan control 4 bit. Bit control dan status berfungsi dalam jabat tangan dalam proses penulisan data ke paralel port. Berikut ini tabel fungsi dari pin konektor DB-25.
Gambar 3. Komunikasi Data Komputer dan Parallel Port
Parallel Port atau port printer pada umumnya terdiri atas tiga bagian yang masing-masing diberi nama sesuai dengan tugasnya dalam melaksanakan pencetakan pada printer. Ketiga bagian tersebut adalah Data Port (DP), Port Control (PC), dan Port Status (PS). Data Port (DP) adalah port yang dapat digunakan untuk mengirimkan data 8 bit ke perangkat keras.
Paralel port dapat mengirimkan 8 bit data sekaligus/serentak dalam satu waktu, lebih cepat dibanding serial port. Paralel port ini menggunakan konektor DB25. Panjang kabel maksimum yang diperlukan / diperbolehkan adalah 15 feet. Contoh peralatan yang menggunakan parallel port adalah: printer, scanner, external driver dsb. Standar port paralel yang baru ialah IEEE 1284 dimana dikeluarkan tahun 1994.
Standar ini mendefinisikan 5 mode operasi sebagai berikut :1. Mode kompatibilitas2. Mode nibble
3. Mode byte4. Mode EPP (enhanced parallel port)5. Mode ECP (Extended capability port)Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya (SPP) yangn diluncurkan tahun 1981. Mode Compatibilitas, nibble dan byte digunakan sebagai standar perangkat keras yang tersedia di port paralel orisinal dimana EPP dan ECP membutuhkan tambahan hardware dimana dapat berjalan dengan kecepatan yang lebih tinggi. Mode kompatibilitas atau (Mode Centronics ) hanya dapat mengirimkan data pada arah maju pada kecepatan 50 KBytes per detik hingga 150 KBytes per detik. Untuk menerima data, anda harus mengubah mode menjadi mode nibble atau byte. Mode nibble dapat menerima 4 bit (nibble) pada arah yang mundur, misalnya dari alat ke computer. Mode byte menggunakan fitur bi-directional parallel untuk menerima 1 byte (8 bit) data pada arah mundur. IRQ (Interrupt Request ) pada port paralel biasanya pada IRQ5 atau IRQ7.6. Cara Memprogram DB25 dengan Visual Basic
Dalam mengakses port parallel DB25 VB tidak bisa mengakses hardware secara langsung dalam system operasi windows, maka semua permintaan pengaksesan hardware harus melalui windows.Oleh karena itu harus menggunakan program eksternal untuk melakukan pengaksesan hardware secara langsung pada program. Program tersebut berupa file DLL (Dynamic Link Library).
Langkah-langkah
1. File DLL ini harus diletakkan (di copy-kan) ke direktori / folder //windows/system atau diikutkan dalam satu folder program yang kita buat. 2. File DLL yang akan digunakan nanti adalah "inpout32.dll Sebelum kita menggunakan fungsi fungsi yang ada dalam file DLL ini terlebih dahulu harus di deklarasikan di VB kedalam module.Public Declare Function PortIn Lib "inpout32.dll" Alias "Inp32" _
(ByVal PortAddress As Integer) _
As Integer
Public Declare Sub PortOut Lib "inpout32.dll" Alias "Out32" _
(ByVal PortAddress As Integer, _
ByVal Value As Integer)
3. Jika file DLL tersebut telah dideklarasikan seperti diatas, maka fungsi PortOut (untuk mengeluarkan data) dan PortIn (untuk membaca data) siap digunakan pada VB. Untuk emengirim data pada port parallel, digunakan fungsi Out.
4. Sintak penulisannya sebagai berikutPortOut [Alamat Port], [Nilai] Perintah diatas membutuhkan dua parameter, yaitu alamat port dan nilai data yang dikirimkan pada port tersebut.Karena tiap port hanya 8 jalur data, maka hanya bisa mengirim nilai maksimum = 255 (FFh/11111111b) ke port yang diinginkan.
5. Buat project baru kemudian tambahkan 8 shape untuk simulasi lednya, 1 label untuk judul kemudian 28 commandbutton dan 8 buah timer.6. Kemudian desain lah menjadi seperti gambar berikut :
7. Atur properties masing-masing komponen seperti untuk shape backstyle ubah menjadi 1-opaque kemudian backcolornya pilih warna putih kemudian unutk timer semua interval beri nilai 100 dan dalam keadaan false. 8. Atur properties command dengan caption on ubah namanya menjadi Cmd1on sampai Cmd8on, begitu juga command dengan caption off ubah namanya menjadi Cmd1off sampai Cmd8ff9. Atur nama tiap komponen sesuai code program dibawah10. Save project dan Form di folder yang sama lalu copykan inpout32.dll pada folder tempat penyimpanan tersebut.
11. Masukkan kode program seperti dibawah ini :Private Sub Cmd1off_Click(Index As Integer)
Nil_Bit 888, 0 'mengganti warna shape menjadi hitam
SL1(0).BackColor = vbBlack
End Sub
Private Sub Cmd1on_Click(Index As Integer)
Send_Bit 888, 0 'mengganti warna shape menjadi merah
SL1(0).BackColor = vbBlue
End Sub
Private Sub Cmd2off_Click(Index As Integer)
Nil_Bit 888, 1 'mengganti warna shape menjadi hitam
SL1(1).BackColor = vbBlack
End Sub
Private Sub Cmd2on_Click(Index As Integer)
Send_Bit 888, 1 'mengganti warna shape menjadi merah
SL1(1).BackColor = vbBlue
End Sub
Private Sub Cmd3off_Click(Index As Integer)
Nil_Bit 888, 2 'mengganti warna shape menjadi hitam
SL1(2).BackColor = vbBlack
End Sub
Private Sub Cmd3on_Click(Index As Integer)
Send_Bit 888, 2 'mengganti warna shape menjadi merah
SL1(2).BackColor = vbBlue
End Sub
Private Sub Cmd4off_Click(Index As Integer)
Nil_Bit 888, 3 'mengganti warna shape menjadi hitam
SL1(3).BackColor = vbBlack
End Sub
Private Sub Cmd4on_Click(Index As Integer)
Send_Bit 888, 3 'mengganti warna shape menjadi merah
SL1(3).BackColor = vbBlue
End Sub
Private Sub Cmd5off_Click(Index As Integer)
Nil_Bit 888, 4 'mengganti warna shape menjadi hitam
SL1(4).BackColor = vbBlack
End Sub
Private Sub Cmd5on_Click(Index As Integer)
Send_Bit 888, 4 'mengganti warna shape menjadi merah
SL1(4).BackColor = vbBlue
End Sub
Private Sub Cmd6off_Click(Index As Integer)
Nil_Bit 888, 5 'mengganti warna shape menjadi hitam
SL1(5).BackColor = vbBlack
End Sub
Private Sub Cmd6on_Click(Index As Integer)
Send_Bit 888, 5 'mengganti warna shape menjadi merah
SL1(5).BackColor = vbBlue
End Sub
Private Sub Cmd7off_Click(Index As Integer)
Nil_Bit 888, 6 'mengganti warna shape menjadi hitam
SL1(6).BackColor = vbBlack
End Sub
Private Sub Cmd7on_Click(Index As Integer)
Send_Bit 888, 6 'mengganti warna shape menjadi merah
SL1(6).BackColor = vbBlue
End Sub
Private Sub Cmd8off_Click(Index As Integer)
Nil_Bit 888, 7 'mengganti warna shape menjadi hitam
SL1(7).BackColor = vbBlack
End Sub
Private Sub Cmd8on_Click(Index As Integer)
Send_Bit 888, 7 'mengganti warna shape menjadi merah
SL1(7).BackColor = vbBlue
End Sub
Private Sub Command1_Click()
Send_Bit 888, 8
SL1(0).BackColor = vbBlue
SL1(1).BackColor = vbBlue
SL1(2).BackColor = vbBlue
SL1(3).BackColor = vbBlue
SL1(4).BackColor = vbBlue
SL1(5).BackColor = vbBlue
SL1(6).BackColor = vbBlue
SL1(7).BackColor = vbBlue
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
End Sub
Private Sub Command2_Click()
Nil_Bit 888, 8
SL1(0).BackColor = vbBlack
SL1(1).BackColor = vbBlack
SL1(2).BackColor = vbBlack
SL1(3).BackColor = vbBlack
SL1(4).BackColor = vbBlack
SL1(5).BackColor = vbBlack
SL1(6).BackColor = vbBlack
SL1(7).BackColor = vbBlack
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
Command7.Enabled = True
End Sub
Private Sub Command3_Click()
Timer1.Enabled = True
Timer2.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
Command4.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command5.Enabled = True
End Sub
Private Sub Command4_Click()
Timer4.Enabled = True
Timer3.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command5.Enabled = True
End Sub
Private Sub Command5_Click()
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer8.Enabled = False
Timer1.Interval = 100
Timer2.Interval = 100
Timer3.Interval = 100
Timer4.Interval = 100
Timer5.Interval = 100
Timer6.Interval = 100
Timer7.Interval = 100
Timer8.Interval = 100
Nil_Bit 888, 8
SL1(0).BackColor = vbBlack
SL1(1).BackColor = vbBlack
SL1(2).BackColor = vbBlack
SL1(3).BackColor = vbBlack
SL1(4).BackColor = vbBlack
SL1(5).BackColor = vbBlack
SL1(6).BackColor = vbBlack
SL1(7).BackColor = vbBlack
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
Command7.Enabled = True
End Sub
Private Sub Command6_Click()
Timer6.Enabled = True
Timer5.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command7.Enabled = False
Command5.Enabled = True
End Sub
Private Sub Command7_Click()
Timer8.Enabled = True
Timer7.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command6.Enabled = False
Command5.Enabled = True
End Sub
Private Sub Exit_Click()
End
End Sub
Private Sub Form_Activate()
SL1(0).BackColor = vbBlack
SL1(1).BackColor = vbBlack
SL1(2).BackColor = vbBlack
SL1(3).BackColor = vbBlack
SL1(4).BackColor = vbBlack
SL1(5).BackColor = vbBlack
SL1(6).BackColor = vbBlack
SL1(7).BackColor = vbBlack
End Sub
Sub Send_Bit(Alamat_Port, Nomor_Bit)
Dim Nilai, Status_Port, Nilai_Baru As Byte
Select Case Nomor_Bit
Case 0: Nilai = 1
Case 1: Nilai = 2
Case 2: Nilai = 4
Case 3: Nilai = 8
Case 4: Nilai = 16
Case 5: Nilai = 32
Case 6: Nilai = 64
Case 7: Nilai = 128
Case 8: Nilai = 255
Case Else
GoTo out_range
End Select
Status_Port = PortIn(Alamat_Port)
Nilai_Baru = Status_Port Or Nilai
PortOut Alamat_Port, Nilai_Baru
out_range:
End Sub
Sub Nil_Bit(Alamat_Port, Nomor_Bit)
Dim Nilai, Status_Port, Nilai_Baru As Byte
Select Case Nomor_Bit
Case 0: Nilai = 254
Case 1: Nilai = 253
Case 2: Nilai = 11 '251
Case 3: Nilai = 247
Case 4: Nilai = 239
Case 5: Nilai = 223
Case 6: Nilai = 191
Case 7: Nilai = 127
Case 8: Nilai = 0
Case Else
GoTo out_range
End Select
Status_Port = PortIn(Alamat_Port)
Nilai_Baru = Status_Port And Nilai
PortOut Alamat_Port, Nilai_Baru
out_range:
End Sub
Private Sub Timer2_Timer()
Dim a As Integer
a = Timer1.Interval
Timer1.Interval = a + 100
Select Case a
Case 100
Send_Bit 888, 0
SL1(0).BackColor = vbBlue
Case 200
Nil_Bit 888, 0
Send_Bit 888, 1
SL1(0).BackColor = vbBlack
SL1(1).BackColor = vbBlue
Case 300
Nil_Bit 888, 1
Send_Bit 888, 2
SL1(1).BackColor = vbBlack
SL1(2).BackColor = vbBlue
Case 400
Nil_Bit 888, 2
Send_Bit 888, 3
SL1(2).BackColor = vbBlack
SL1(3).BackColor = vbBlue
Case 500
Nil_Bit 888, 3
Send_Bit 888, 4
SL1(3).BackColor = vbBlack
SL1(4).BackColor = vbBlue
Case 600
Nil_Bit 888, 4
Send_Bit 888, 5
SL1(4).BackColor = vbBlack
SL1(5).BackColor = vbBlue
Case 700
Nil_Bit 888, 5
Send_Bit 888, 6
SL1(5).BackColor = vbBlack
SL1(6).BackColor = vbBlue
Case 800
Nil_Bit 888, 6
Send_Bit 888, 7
SL1(6).BackColor = vbBlack
SL1(7).BackColor = vbBlue
Case 900
Nil_Bit 888, 7
SL1(7).BackColor = vbBlack
Timer1.Interval = 100
End Select
End Sub
Private Sub Timer3_Timer()
Dim b As Integer
b = Timer4.Interval
Timer4.Interval = b + 100
Select Case b
Case 100
Send_Bit 888, 3
Send_Bit 888, 4
SL1(4).BackColor = vbBlue
SL1(5).BackColor = vbBlue
Case 200
Send_Bit 888, 2
Nil_Bit 888, 3
Send_Bit 888, 5
Nil_Bit 888, 4
SL1(2).BackColor = vbBlue
SL1(3).BackColor = vbBlack
SL1(5).BackColor = vbBlue
SL1(4).BackColor = vbBlack
Case 300
Send_Bit 888, 1
Nil_Bit 888, 2
Send_Bit 888, 6
Nil_Bit 888, 5
SL1(1).BackColor = vbBlue
SL1(2).BackColor = vbBlack
SL1(6).BackColor = vbBlue
SL1(5).BackColor = vbBlack
Case 400
Send_Bit 888, 0
Nil_Bit 888, 1
Send_Bit 888, 7
Nil_Bit 888, 6
SL1(0).BackColor = vbBlue
SL1(1).BackColor = vbBlack
SL1(7).BackColor = vbBlue
SL1(6).BackColor = vbBlack
Case 500
Nil_Bit 888, 0
Nil_Bit 888, 7
SL1(0).BackColor = vbBlack
SL1(7).BackColor = vbBlack
Timer4.Interval = 100
End Select
End Sub
Private Sub Timer5_Timer()
Dim c As Integer
c = Timer6.Interval
Timer6.Interval = c + 100
Select Case c
Case 100
Send_Bit 888, 0
SL1(0).BackColor = vbBlue
Case 200
Nil_Bit 888, 0
Send_Bit 888, 4
SL1(0).BackColor = vbBlack
SL1(4).BackColor = vbBlue
Case 300
Nil_Bit 888, 4
Send_Bit 888, 1
SL1(4).BackColor = vbBlack
SL1(1).BackColor = vbBlue
Case 400
Nil_Bit 888, 1
Send_Bit 888, 5
SL1(1).BackColor = vbBlack
SL1(5).BackColor = vbBlue
Case 500
Nil_Bit 888, 5
Send_Bit 888, 2
SL1(5).BackColor = vbBlack
SL1(2).BackColor = vbBlue
Case 600
Nil_Bit 888, 2
Send_Bit 888, 6
SL1(2).BackColor = vbBlack
SL1(6).BackColor = vbBlue
Case 700
Nil_Bit 888, 6
Send_Bit 888, 3
SL1(6).BackColor = vbBlack
SL1(3).BackColor = vbBlue
Case 800
Nil_Bit 888, 3
Send_Bit 888, 7
SL1(3).BackColor = vbBlack
SL1(7).BackColor = vbBlue
Case 900
Nil_Bit 888, 7
SL1(7).BackColor = vbBlack
Timer6.Interval = 100
End Select
End Sub
Private Sub Timer7_Timer()
Dim d As Integer
d = Timer8.Interval
Timer8.Interval = d + 100
Select Case d
Case 100
Send_Bit 888, 7
SL1(7).BackColor = vbBlue
Case 200
Send_Bit 888, 6
Nil_Bit 888, 7
SL1(7).BackColor = vbBlack
SL1(6).BackColor = vbBlue
Case 300
Send_Bit 888, 5
Nil_Bit 888, 6
SL1(6).BackColor = vbBlack
SL1(5).BackColor = vbBlue
Case 400
Send_Bit 888, 4
Nil_Bit 888, 5
SL1(5).BackColor = vbBlack
SL1(4).BackColor = vbBlue
Case 500
Send_Bit 888, 3
Nil_Bit 888, 4
SL1(4).BackColor = vbBlack
SL1(3).BackColor = vbBlue
Case 600
Send_Bit 888, 2
Nil_Bit 888, 3
SL1(3).BackColor = vbBlack
SL1(2).BackColor = vbBlue
Case 700
Send_Bit 888, 1
Nil_Bit 888, 2
SL1(2).BackColor = vbBlack
SL1(1).BackColor = vbBlue
Case 800
Send_Bit 888, 0
Nil_Bit 888, 1
SL1(1).BackColor = vbBlack
SL1(0).BackColor = vbBlue
Case 900
Nil_Bit 888, 0
SL1(0).BackColor = vbBlack
Timer8.Interval = 100
End Select
End Sub
7. Sekarang run programnya.
BAB III
PENUTUP
Kesimpulan
Dari materi yang kita pelajari diatas kami dapatkan bahwa cikal bakal tranfer data antar komputer bisa kita lihat dengan menggunakan port DB 25, menggunakan ISE Visual Basic kita bisa membuat simulasi bagaimana cara kerja port DB 25, yang dahulunya kita hanya tahu tranfer data dengan hanya copy paste pada komputer, sekarang kita bisa mengetahui bagaimana mekanisme tranfer data secara nyata yang sangat sederhana.Saran
Setelah mengetahui mekanisme pembuatan alikasi visual basic yang mengimplementasikan port DB 25, kedepannya diharapkan kita bisa mengembangkan penelitian yang bisa membuat tranfer data lebih cepat dan efisien.
DAFTAR PUSTAKA
Marzuki, Much. 2010. Mengakses Parallel Port Menggunakan Visual Basic 6.0. http://much-marzuki.blogspot.com/2010/08/mengakses-parallel-port-menggunakan.html. Diakses tanggal 22 April 2015.Fitriana, Noor. 2009. Contoh Rangkaian Dan Program Aplikasi Dengan Konektor Db9, Db25, Dan Usb. http://terminaltechno.blog.uns.ac.id/2009/11/07/contoh-rangkaian-dan-program-aplikasi-dengan-konektor-db9-db25-dan-usb/. Diakses tanggal 22 April 2015.Sutrisno, Andi. 2012. Visual Basic for Electrical Engineering. https://www.academia.edu/8261420/Visual_Basic_for_Electrical_Engineering. Diakses tanggal 22 April 2015.