1. Abstrak Penggunaan jaringan internet kini telah semakin meluas dan dipergunakan sebagai sarana pertukaran informasi akademis, bisnis, hiburan dan lain-lain, termasuk penggunaan untuk sistem kendali jarak jauh. Pada project “Web Based I/O Control” akan diaplikasikan pengendalian input output melalui jaringan internet. Sebuah rangkaian simulasi input output pada komputer server akan dikendalikan dengan sebuah PC yang terhubung ke jaringan internet. Pengendalian dapat dilakukan secara remote melalui jaringan internet menggunakan web browser seperti Internet Explorer, Netscape.. 2. Pendahuluan Pada masa sekarang, tingkat kesibukan masyarakat semakin meningkat. Batasan ruang dan waktu selalu menjadi kendala untuk melakukan suatu kegiatan yang terkadang sangat penting dan tidak dapat ditunda. Dengan adanya batasan ruang dan waktu tersebut, maka untuk melakukan suatu kegiatan, manusia harus berpindah tempat ke tempat dimana kegiatan tersebut akan dilakukan. Misalnya untuk mengontrol suatu proses produksi dengan adanya batasan ruang dan waktu maka seorang operator harus hadir di tempat proses produksi berlangsung. Tetapi sekarang dengan adanya jaringan internet maka ruang dan waktu tidak lagi menjadi masalah yang cukup penting. Untuk mengendalikan suatu system dapat dilakukan melalui jaringan internet dengan menggunakan web browser. Dengan adanya web browser maka penggunanya dapat lebih mudah mendapatkan dan membaca data sesuatu dari jarak jauh. Proses pengendalian, pengawasan dapat dilakukan dimana saja asalkan terhubung dengan jaringan internet. Saat ini banyak aplikasi internet yang sudah digunakan sehari-hari seperti email, IRC (Internet Relay Chat) dan masih banyak lainnya. Aplikasi yang paling luas cakupannya adalah WWW (World Wide Web), dimana dengan menggunakan web browser seperti Internet Explorer, atau Netscape, pengguna dapat mengakses informasi dengan berbagai tujuan baik untuk pendidikan, akademik, hiburan, bahkan bisnis. Melalui project “Web Based I/O Control” penulis mencoba untuk menggunakan aplikasi web untuk mengendalikan suatu rangkaian input output sederhana. 1 Pengendalian I/O ini dilakukan dari jarak jauh dengan menggunakan jaringan internet. Komputer client akan mengirimkan request ke web server melalui jaringan internet dan web server akan mengolah request yang masuk dan mengirimkan data response ke client. Dalam hal ini karena yang digunakan adalah aplikasi web maka data yang dikirimkan web server ke web client adalah data dalam bentuk HTML, sehingga lebih mudah bagi browser untuk menggunakannya, sedangkan rangkaian yang akan dikendalikan berada di komputer server. 3. Ruang lingkup pembahasan Pada project berjudul “Web Based, I/O Control” disimulasikan pengendalian input output dengan mengakses parallel port pada komputer PC, pengendalian tersebut dilakukan melalui jaringan internet dengan aplikasi CGI (Common Gateway Interface) sebagai interface antara web client dengan web server. Internet Request Web Server Web Client Response Paralel Port I/O Hardware Gambar 1. Pengontrolan I/O Paralel Port melalui internet 4. Spesifikasi software dan hardware project 4.1. Pengendalian I/O melalui Paralel Port 4.1.1. Parallel Printer Port Port yang satu ini, dipastikan selalu ada pada setiap komputer. Tercermin dari namanya, saat ini parallel port lebih banyak dimanfaatkan untuk urusan pencetakan data. Sebenarnya, port inipun bisa dimanfaatkan untuk 2 hal lain, karena memiliki input/output (I/O) data. Tata-letak dari ke-dua puluh lima pin (D-type 25-female) parallel printer port, diperlihatkan dalam Gambar 2. Gambar 2. Tata-letak pin parallel printer port. Adapun tabel signal dan fungsi dari setiap pin pada parallel printer port, terlihat pada Gambar 2. Dari situ diketahui pin 2 s/d 9 (Data D0-D7) berfungsi sebagai output, yang selanjutnya dapat kita manfaatkan untuk mengontrol peralatan luar. Pin 10 s/d 13 dan pin 15 (Status S3-S7) berfungsi sebagai input, yang dapat dijadikan untuk mendeteksi status peralatan luar. 3 Gambar 3. Signal dan fungsi parallel printer port. 4.1.2. Rangkaian input output Untuk keperluan uji-coba, kita bisa menghubungkan LED (Light Emitting Diode) lewat resistor 220 ohm, langsung dihubungkan ke pin output dari parallel port. Bisa juga hanya dengan mengukur tegangan 5 volt yang timbul, saat data port dalam keadaan high (TTL high). Tetapi perlu diperhatikan tegangan yang keluar dari parallel port 5 volt, sedangkan arusnya sangat kecil yaitu 4 mA pada logic 1 dan – 0.4 mA pada logic nol. Nilai arus negative artinya sink ke dalam parallel port. 4 Gambar 4. Skema untuk pengujian sementara. Besarnya resistor yang digunakan tidak boleh terlalu besar karena arus dari parallel port sangat kecil (sekitar 4 mA). Target untuk hardware sampai UTS adalah sebagai berikut : Kendali 8 pin output yang terdiri dari: Lampu AC 5 W dengan menggunakan relay sebagai saklar antara port parallel dengan sumber teganganAC 220 Volt Sebuah motor DC 5 Volt 6 buah LED Deteksi input digunakan 4 saklar DIP. 5 4.2. Software Dalam project ini digunakan 2 macam software Hyper Text Markup Language (HTML) dan bahasa pemrograman Delphi dengan komponen tambahan CGIExpert. Pada saat komputer client mengirimkan data request ke komputer server maka komputer server mengeksekusi program berekstensi EXE pada direktori cgi-bin. Program ini membentuk file dalam bahasa HTML yang berisi data-data yang akan diinformasikan ke browser. File tersebut ditempatkan pada lokasi yang ditentukan oleh server. Dalam hal ini memakai digunakan server Apache dan file exe disimpan dalam direktori cgi-bin. Data tersebut akan dikirimkan kembali ke komputer client untuk diterjemahkan oleh web browser. Seperti ditampilkan pada bagan berikut ini: Internet I/O Hardware Web Server Request Web Client File HTML Gambar 5. Alur request dari web browser pada server Untuk mendukung aplikasi CGI pada Delphi maka diperlukan komponen tambahan yang didapat dari paket program instalasi CGI-expert versi 6.50. Selanjutnya akan dibahas penggunaan masing masing software yang ada sebagai berikut: 4.2.1. Web Server Salah satu bagian terpenting dari seluruh system ini adalah server. Pada tugas ini digunakan server Apache, karena dapat berjalan under windows yang sesuai dengan penggunaan software Delphi sebagai bahasa pemrogramannya. File HTML akan disimpan di folder htdocs, supaya program tersebut dapat diakses oleh web 6 browser dari tempat lain. Sedangkan program CGI yang executable ditempatkan di folder cgi-bin. HTTP (Web) Server : Dalam tugas ini kita memilih Web Server Apache dalam modul PHPTriad ver. 2.2.1. Apache adalah aplikasi Web Server yang tersedia secara gratis dan disebarkan dengan lisensi “open source” dan dapat beroperasi pada berbagai platform sistem operasi seperti Windows NT/9x, Netware, Linux, serta dengan beberapa keuntungan antara lain : mudah dikonfigurasi dan dapat digabung dengan modul lain seperti PHP. Web Server Apache digunakan untuk menjadikan PC sebagai komputer server. Apache menyediakan sarana setting direktori Htdocs sebagai tempat meletakkan program-program HTML yang dapat diakses oleh Web Browser. Sedangkan file-file executable (*.exe) diletakkan pada folder cgi-bin. 4.2.2. HTML Program dalam bentuk HTML hanya sebagai halaman pertama saja yang diberi nama index.html. Dalam halaman ini, user dapat memilih metode apa yang akan digunakannya, apakah metode POST, GET atau PUT. Pemilihan metode ini hanya akan berpengaruh pada window address. Setelah melakukan pemilihan metode, maka yang ditampilkan selanjutnya adalah file exe dalam bahasa Delphi, yang ditempatkan di folder cgi-bin. File exe yang digunakan menampilkan form HTML untuk memilih akan menyalakan led yang mana. Listing program index.html: 7 <HTML> <HEAD> <TITLE>Web Based, Input/Output Control</TITLE> </HEAD> <BODY BGCOLOR=#9AC8AA> <TABLE border=0 cellPadding=0 cellSpacing=0 height=20 style="MARGIN-TOP: -2px" width=779> <TBODY><TR><TD height=16 width=138> <P align=center><IMG alt="ukplogo.gif" height=80 src="cgi-bin/ukplogo.gif" width=89></P></TD> <TD bgColor=#9AC8AA height=16 width=629><BIG><FONT face="Bookman Old Style"> <MARQUEE behavior=alternate style="FONT-FAMILY: Comic Sans height=43 MS; FONT-SIZE: 20pt; FONT-STYLE: oblique" width=621 border="0"> WEB BASED, I/O CONTROL</MARQUEE> </FONT></BIG> </TD></TR></TBODY> </TABLE> <BR><BR> Masukkan Password Anda: <FORM METHOD=POST ACTION="cgi-bin/welcome.exe"> <BR><INPUT TYPE=PASSWORD NAME=Pass> <INPUT TYPE=SUBMIT NAME=Enter VALUE=Enter> </FORM> </BODY></HTML> 4.2.3. Pemrograman dengan Delphi Program bernama FormOuput.exe berfungsi untuk memasukkan input pengendalian yang didapat dari form HTML. Dari form HTML, akan didapatkan perintah led mana yang diinstruksikan untuk menyala. File FormOutput.exe ini yang akan mengeksekusi dan menyalakan led sesuai dengan data yang ada sebelumnya. Berikut ini adalah flowchart dari program FormOutput.exe : 8 START Tampilkan Halaman HTML Tombol View ditekan Tidak Ya Baca led yang akan diaktifkan Data=0 Ya Kirim data 0h ke parallel port Ya Kirim data 0FE ke parallel port Ya Kirim data 0FDh ke parallel port Ya Kirim data 0FBh ke parallel port Ya Kirim data 0F7h ke parallel port Tidak Data=A Tidak Data=B Tidak Data=C Tidak Data=D Tidak 9 Data=E Ya Kirim data 0EFh ke parallel port Ya Kirim data 0DFh ke parallel port Ya Kirim data 0BFh ke parallel port Ya Kirim data07F ke parallel port Tidak Data=F Tidak Data=G Tidak Data=H Tidak FormInput Ditekan ? Tidak Ya END Gambar 6. Flowchart program FormOutput.exe 4.2.4. Komponen CGIExpert Software untuk komunikasi Internet via CGI (Common Gateway Interface) Diperlukan sebuah software yang dapat menangani pembuatan program CGI pada software Delphi 5.0. Karena itu digunakan 10 komponen-komponen CGI Expert 6.5 yang mendukung VCL (Visual Component Library) Delphi 5.0. Proses instalasi CGI Expert 6.5 dilakukan dengan cara mengklik pada CGIExpert_6.50.EXE. Maka komponen-komponen dan file help secara otomatis terinstal pada Delphi. Gambar 7. Icon Setup CGI Expert 6.50 CGIExpert adalah solusi yang dapat kita gunakan untuk membangun aplikasi CGI. Komponen ini sanagat compatible dengan software Delphi dan C++ Builder. Aplikasi CGI yang dihasilkan berupa aplikasi yang berjalan pada lingkungan Windows, sehingga web server yang kita gunakan juga berjalan pada lingkungan Windows, seperti Apache. Komponen yang ada adalah sebagai berikut : TGeneralHttpEngine TGeneralHttpEngine merupakan komponen utama yang secara bersama menggabungkan interface interface-interface shell-CGI, win-CGI, CGI-bin, ISAPI dan NSAPI. Komponen ini merupakan basis untuk semua komunikasi dengan www server, jadi sebuah aplikasi CGI yang kita buat harus mengandung komponen ini. THttpMaster THttpMaster komponen ini menyediakan prpperties yang dapat digunakan untuk tampilan dokumen HTML dari aplikasi CGI yang dibuat. Kita dapat secara langsung mengeset am[pilan dokumen 11 dengan merubah property, seperti text color dan background yang tersedia. Komponen ini akan secara otomatis menghasilkan tag HTML, HEAD, TITLE dan BODY ke dalam aplikasi CGI yang dibuat. Jadi kita dapat mengisikan TITLE atau isi dari BODY dokumen HTML. THttpFileFilter THttpFileFilter dignakan sebagai basis untuk membuat Dynamic HTML. Dengan komponen ini kita bisa membuat sebuah aplikasi CGI dengan menggunakan sebuah file dalam format HTML yang telah kita buat sebelimnya menggunakan editor HTML favorit. THttpMemoFilter Sama seperti komponen ThttpFileFilter, komponen ini juga merupakan basis untuk membuat Dynamic HTML, yang mungkin akan dikirimkan ke client dari aplikasi yang telah dibuat. Bila ThttpFileFilter menggunakan sebuah file, di dalam komponen ini disediakan properties text yang dapat diisi dengan menggunakan format penulisan dokumen HTML. THttpInput Komponen ini mempermudah dalam penambahan pengisian field. THttpSelect Komponen ini mempermudah dalam menyeleksi daftar field. THttpDbSelect Komponen ini mempermudah dalam membangun daftar data terpilih secara dinamis dari isi database. THttpDbGrid Komponen ini akan secara otomatis menghasilkan HTMLTable dari Tdataset (Table atau Tquery) yang diisikan ke dalam THttpDbGrid properties dataset, tanpa mengharuskan untuk menuliskan kode HTML sedikit pun. Komponen ini juga menyediakan properti yang dapat digunakan untuk mempercantik tampilan table. 12 THttpCookie Komponen ini menyediakan alat yang akan memudahkan untuk mengatur Cookies. Alat ini digunakan oleh aplikasi CGI untuk menyimpan informasi pada sistem client, sehingga bila sewaktuwaktu diperlukan, kita dapat membukanya kembali. TSmtpSendMail Komponen ini digunakan untuk mengirimkan smtp mail dari aplikasi kita. Kita juga dapat menyertakan file (attachments) ketika mengirimkan sebuah e-mail. THttpTeeChart Komponen ini digunakan untuk menghasilkan Live Graphical charts di dalam sebuah dokumen HTML. THttpUrlRequest Komponen ini digunakan untuk untuk mendapatkan atau membuka sebuah dokumen dari Web. Contoh Aplikasi Berikut adalah cara pembuatan sebuah aplikasi CGI dengan menggunakan Borland Delphi. 1. Pertama-tama kita buat sebuah tabel bernama Mhs . Kemudian ditentukan nama field dengan “Nama”. 2. Kita buat sebuah project baru dengan nama siswa, lalu tempatkan tiga komponen ke dalam form1 (Gambar 2). 3. Kita beri nama ketiga komponen tersebut sebagai GeneralHttpEngine1, HttpDBGrid1, Query1. 4. Kita isi Dataset Properties HttpDBGrid komponen dengan nama Query1. 5. Kita isi Sql Properties Query komponen dengan: Select Nama from mhs where Nama like :Nama 6. Kita isi tipe data parameter Nama sebagai string, pada parameter properties Query komponen. 13 7. Kita ubah Archive Properties Query komponen menjadi True. 8. Selanjutnya kita isi OnFirstExecRequest Events GeneralHttpEngine komponen dengan: Query1.Databasename:=ExtractFileDir(ExeOrDllPath); (Digunakan untuk mengeset path database dalam direktori yang sama dengan aplikasi kita). 9. Isi OnExecRequest Events GeneralHttpEngine komponen dengan: putline (‘html><body>’); putline (‘<form method=”post” action=http://127.0.0.1/cgi-bin/siswa.exe>’); putline (‘<center>’); putline (‘Nama <input type=textName=”nama”>’); putline (‘<input type=submit Name=”search” value=”search”>’); putline (‘</center></form></body></html>’); if FormVar(‘search’,”)=’search’ then begin input:=’%’+FormVar(‘nama’,”)+’%’; query1.params[0].value:=input; {mengisi parameter nama pada sql} query1.open; httpdbgrid1.put; {Untuk menampilkan tabel} query1.close; end; Jangan lupa menentukan variabel input dengan tipe string. 10. Kita siap untuk mengkompilasi file. 11. Tempatkan file siswa.exe (hasil kompilasi) dan mhs.db (table) dalam direktori /cgi-bin pada web server yang kita gunakan. Kemudian kita coba jalankan apikasi yang telah dibuat dengan menggunakan web browser. 5. Perancangan Untuk menjalankan pengendalian Input Output melalui jaringan internet dengan berbasis web maka akan diperlukan spesifikasi tertentu baik itu berada di client ataupun pada server. 14 Client Server Request Web Browser Windows Respons e CGI Expert Apache Web Server Windows Gambar 8. Arsitektur Client dan Server 5.1. Hardware Digunakan komputer server yang terhubung ke rangkaian led sederhana melalui parallel port. Server terhubung ke jaringan internet melalui Local Area Network (LAN) atau dengan gateway ke jaringan internet luar. Sedangkan komputer client adalah komputer yang terhubung ke jaringan internet sehingga dapat mengakses ke server, dan semua komputer yang terhubung dengan Local Area Network yang sama dengan komputer server. Rangkaian percobaan output terdiri dari Led, Resistor 220 ohm 8 buah, dan VCC 4.5 V. pada saat logic nol dari parallel port maka arus sink ke dalam parallel port sehingga led menyala. Pada saat logic high maka arus kecil sekali karena beda potensial antara parallel port dan Vcc sangat kecil sehingga led tidak menyala. Rangkaian Input digunakan satu saklar VCC 4.5 V dan resistor 470Ω. Pada saat input high maka arus akan masuk ke parallel port, tetapi pada saat input low arus akan langsung ke ground karena tidak memiliki hambatan. 15 Gambar 9. Rangkaian Input Gambar 10. Rangkaian Output 16 5.2. Program CGI Terdapat file HTML yang merupakan halaman awal dengan nama index.html. Gambar 11. Tampilan index.html Listing program index.html : <HTML> <HEAD> <TITLE>Web Based, Input/Output Control</TITLE> </HEAD> <BODY BGCOLOR=#9AC8AA> <TABLE border=0 cellPadding=0 cellSpacing=0 height=20 style="MARGIN-TOP: -2px" width=779> <TBODY><TR><TD height=16 width=138> <P align=center><IMG alt="ukplogo.gif" height=80 src="cgi-bin/ukplogo.gif" width=89></P></TD> <TD bgColor=#9AC8AA height=16 width=629><BIG><FONT face="Bookman Old Style"> <MARQUEE behavior=alternate height=43 style="FONT- FAMILY: Comic Sans MS; FONT-SIZE: 20pt; FONT-STYLE: oblique" width=621 border="0"> WEB BASED, I/O CONTROL</MARQUEE> </FONT></BIG> </TD></TR></TBODY> </TABLE> <BR><BR> Masukkan Password Anda: 17 <FORM METHOD=POST ACTION="cgi-bin/welcome.exe"> <BR><INPUT TYPE=PASSWORD NAME=Pass> <INPUT TYPE=SUBMIT NAME=Enter VALUE=Enter> </FORM> </BODY></HTML> Setelah password diisi dengan benar dan kemudian tombol enter ditekan maka from akan merujuk pada file welcome.exe yang berada pada folder cgi-bin (Gambar 12). Gambar 12. Tampilan welcome.exe Pada halaman welcome.exe terdapat 2 pilihan yaitu Control Input dan Control Output. Pada saat Control Input ditekan maka halaman akan beralih pada file FormInput.exe yang berada pada folder cgi-bin. Berikut adalah listing program FormInput.exe : unit FormInputD; interface uses Windows, Messages, SysUtils, Controls, Forms, Dialogs, HUtils, HttpEng, GenEng; type 18 Classes, Graphics, TDataModule1 = class(TDataModule) GeneralHttpEngine1: TGeneralHttpEngine; HttpMemoFilter1: THttpMemoFilter; procedure GeneralHttpEngine1ExecRequest(Sender: TObject); procedure HttpMemoFilter1HttpEntry(EntryName: String; var Handled: Boolean); private { Private declarations } public { Public declarations } end; var DataModule1: TDataModule1; implementation {$R *.DFM} const AlamatBase = $378; DataPort = AlamatBase + 0; {port 378} StatusPort = AlamatBase + 1; {port 379} ControlPort = AlamatBase + 2; {port 37A} function BacaPort(PortAddress:Word) : Byte; var InValue : Byte; begin asm mov DX, PortAddress in AL, DX and AL,10111000b//masking mov InValue,AL end; BacaPort :=InValue; end; 19 procedure TulisPort(PortAddress:Word; ByteToWrite:Byte); begin asm mov DX, PortAddress mov AL, ByteToWrite out DX, AL end; end; procedure TDataModule1.GeneralHttpEngine1ExecRequest(Sender: TObject); var Method : String; I : Integer; begin GeneralHttpEngine1.AutoTrimFormVar:=True; Method:=AnsiUppercase(FormVar('Method','post')); //POST method !!! //Header PutLine('<HTML><META HTTP-EQUIV="REFRESH" CONTENT="5;url=http://localhost/cgibin/FormInput.exe">'); PutLine('<HEAD><TITLE> Control Input</TITLE></HEAD><BODY BGCOLOR=#9AC8AA>'); Putline('<H2>Form Input Paralel Port</H2><HR>'); //Method form PutLine('<FORM METHOD="POST" ACTION= ScriptName+ '">'); //"POST" method !!! PutLine('</FORM>'); HttpMemoFilter1.Put; //Send form input fields PutLine('<BR><BR>'); 20 "' + PutLine('<A HREF=http://localhost/cgi- bin/FormOutput.exe>Lihat Form Output'); //PutLine('<INPUT NAME="Submit" TYPE=submit SIZE=20 VALUE="View">'); PutLine('</FORM>'); PutLine('</BODY></HTML>'); //Log(GeneralHttpEngine1.ServerVariables.Text); end; procedure TDataModule1.HttpMemoFilter1HttpEntry(EntryName: String; var Handled: Boolean); var S : String; Nilai : Byte; begin Nilai := 0; EntryName:=AnsiUpperCase(EntryName); if EntryName='INPUT2' then begin Put(IntToStr(BacaPort(StatusPort))); {Convert BacaPort dari type Byte ke type String} end else begin Handled:=False; // Default=True; end; end; end. 21 Gambar 13. Tampilan FormInput.exe Kolom value menunjukan status dari rangkaian input. Apabila client memilih untuk melihat form output maka halaman merujuk pada file FormOutput.exe yang juga disimpan dalam folder cgi-bin. Berikut ini listing program FormOutput.exe : unit FormOutputD; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, HUtils, HttpEng, GenEng; type TDataModule1 = class(TDataModule) GeneralHttpEngine1: TGeneralHttpEngine; HttpMemoFilter1: THttpMemoFilter; procedure GeneralHttpEngine1ExecRequest(Sender: TObject); procedure HttpMemoFilter1HttpEntry(EntryName: String; var Handled: Boolean); private { Private declarations } public { Public declarations } 22 end; var DataModule1: TDataModule1; implementation {$R *.DFM} const AlamatBase = $378; DataPort = AlamatBase + 0; StatusPort = AlamatBase + 1; ControlPort = AlamatBase + 2; procedure TulisPort(PortAddress:Word; ByteToWrite:Byte); begin asm MOV DX, PortAddress MOV AL, ByteToWrite OUT DX, AL end; end; procedure TDataModule1.GeneralHttpEngine1ExecRequest(Sender: TObject); var Method : String; I : Integer; begin GeneralHttpEngine1.AutoTrimFormVar:=True; Method:=AnsiUppercase(FormVar('Method','post'));//POST method !!! //Header 23 PutLine('<HTML><HEAD><TITLE>Form OutPut</TITLE></HEAD><BODY BGCOLOR=#9AC8AA>'); Putline('<H2>Form Output Paralel Port</H2><HR>'); //Change method form PutLine('<FORM METHOD="POST" ACTION= "' + ScriptName+ '">'); //"POST" method //Input form PutLine('<INPUT TYPE="HIDDEN" NAME="METHOD" VALUE="'+FormVar('Method','')+'">'); HttpMemoFilter1.Put; //Send form input fields PutLine('<INPUT NAME="Submit" TYPE=submit SIZE=20 VALUE="View/Reset">'); PutLine('<BR><BR>'); PutLine('<A HREF=http://localhost/cgi- bin/FormInput.exe>Lihat Form Input'); PutLine('</FORM>'); PutLine('</BODY></HTML>'); // Log(GeneralHttpEngine1.ServerVariables.Text); end; procedure TDataModule1.HttpMemoFilter1HttpEntry(EntryName: String; var Handled: Boolean); var S : String; I : Integer; Nilai : Byte; begin Nilai:=0; EntryName:=AnsiUpperCase(EntryName); if EntryName='INPUT1' then begin S:=FormVar('INPUT1',''); if S='' then 24 begin Nilai:=0; Put('no value'); end; if S='A' then Nilai := Nilai or $01; if S='B' then Nilai := Nilai or $02; if S='C' then Nilai := Nilai or $04; if S='D' then Nilai := Nilai or $08; if S='E' then Nilai := Nilai or $10; if S='F' then Nilai := Nilai or $20; if S='G' then Nilai := Nilai or $40; if S='H' then Nilai := Nilai or $80; TulisPort(DataPort, Nilai); Put(S); end else begin Handled:=False; // Default=True; end; end; end. Pada bagian awal program dijelaskan prosedur tentang addressing parallel port dan metode untuk mengeluarkan data ke parallel port. Setelah itu dilakukan pengecekan data yang akan dikeluarkan. Setelah memasuki program utama maka akan langsung dijalankan led yang akan menyala seperti yang diinginkan user. 25 Gambar 14. Tampilan FormOutput.exe 6. Pengembangan dan Kerja Lanjutan Setelah mengerjakan tugas matakuliah project sampai periode uts ini, kelompok kami akan melakukan beberapa pengembangan yang berhubungan dengan hardware dan software yang tujuan akhirnya adalah pengendalian Input Output untuk spesifikasi 8 output dan satu input. 6.1. Hardware Untuk pengembangan hardware akan dilakukan dengan mengembangkan output tidak hanya led saja, tetapi dengan delapan buah output yang terdiri dari : 26 6.1.1. Relay sebagai saklar tegangan AC 220 volt. Gambar 15. Rangkaian Relay Gambar 15. diatas adalah rangkaian relay yang menggunakan logic low untuk mengaktifkan relay. Digunakan logic low disebabkan oleh kondisi tegangan parallel port yang tidak stabil pada saat start komputer. Sehingga tegangnnya mengambang dan menyalakan rangkaian. Sedangakan apabila kita menggunakan logic low maka rangkaian akan aktif apabila arus dari parallel port sink sebesar 4 mA seperti TTL. Karena menggunakan logic nol untuk mengaktifkan relay maka digunakan transistor PNP untuk memperkuat arus yang keluar dari parallel port. Untuk hardware ini sudah dilakukan analisa rangkaian tetapi belum merangkai hardware, dan akan diselesaikan untuk periode UAS. 27 Komponen Tipe Jumlah Resistor 1 kΩ 1 Transistor PNP 9012 1 Diode 1N4002 1 Relay 12 V 1 VCC 12 V 1 Beban 220V Tegangan AC 1 220 V 50Hz 1 Tabel 1. Komponen rangkaian Relay PNP Transistor 9012 Vcb max 25 v Vce max 25 v Veb max 3v Ic max 400 mA Power total 400 mW Hfe 64/202 Hfe bias 500mA Tabel 2. Spesifikasi Transistor PNP 9012 6.1.2. Sebagai Saklar motor DC Sebagai saklar motor DC pada prinsipnya hampir sama dengan pengendalian relay. Hanya saja dengan menggunakan penguat arus dan sumber tegangan 12 V dc dan motor dc. 6.1.3. LED Penggunaan led sama saja dengan rangkaian sederhana yang didemokan, hanya akan dicoba untuk dapat menayala lebih dari satu Led pada saat yang bersamaan. Akan dikembangkan juga untuk simulasi Led 28 6.1.4. Input Rankaian input hanya akan menggunakan saklar biasa dengan teganan +5 V dc dan R untuk mengatur besarnya arus. Pada parallel port arus input adalah sebesar 10 mA sehingga dengan VCC 5 volt akan didapatkan perhitungan R =V/I = 5 V / 10 mA , sehingga didapatkan R sebesar 500Ω, dan digunakan resistor 470Ω. Pada saat switch tertutup maka arus akan langsung mengalir ke ground, dan ada juga arus dari parallel port berupa Iil karena parallel port input berlogic low sehingga ada arus input low sebesar -400 uA, atau dengan kata lain arus dari Vcc dan arus dari parallel port akan menuju ground. Sedangkan pada saat switch terbuka maka arus akan mengalir ke parallel port (sink) sebesar 20 uA karena parallel port berlogic high. Gambar 16. Rangkaian input parallel port 6.2. Software Pengembangan software akan mengarah pada penggunaan data base untuk history seperti kapan terakhir diakses, atau untuk menyimpan data yang penting. Akan ditelusuri lebih lanjut apakah akan menggunakan My-SQL atau Delphi dengan komponen CGIexpert untuk pengolahan database. 29 7. Kesimpulan 1. Penggunaan jaringan internet tidak terbatas oleh ruang dan waktu sehingga menjadi salah satu pilihan komunikasi yang menghubungkan seluruh dunia. 2. Alternatif baru dalam perkembangan dunia internet adalah digunakan sebagai pengendalian suatu system, dalam hal ini dihubungkan antara pemanfaatan jaringan internet dengan system input output. 3. Hasil akhir dari tugas ini dapat dikembangkan untuk pengembangan ke arah internet networking controller terutama pada pengontrolan mesin industri. 30