1. Spesifikasi software dan hardware project

advertisement
1. Spesifikasi software dan hardware project
1.1. Pengendalian I/O melalui Paralel Port
1.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
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)
1
berfungsi sebagai input, yang dapat dijadikan untuk mendeteksi status
peralatan luar.
Gambar 3. Signal dan fungsi parallel printer port.
1.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.
2
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 UAS
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.
3
1.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
Web Server
I/O Hardware
Database
Server
Request
Web Client
File HTML
Gambar 5. Alur request dari web browser pada server
Untuk mendukung aplikasi CGI pada Borland 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:
1.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
4
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.
1.2.2. PHP (PHP Hypertext Preprocessor) :
PHP adalah bahasa pemrograman (scripting) yang menyatu dengan
HTML dan berada pada server. Artinya sintaks dan perintahperintah yang diberikan sepenuhnya dijalankan di server namun
disertakan pada halaman web biasa. Tujuan dari bahasa
pemrograman PHP adalah untuk membuat aplikasi-aplikasi yang
dijalankan di atas teknologi web, dalam hal ini seluruh proses
dijalankan seluruhnya pada server yang kemudian hasil proses
tersebut dikirimkan dan ditampilkan pada web browser.
Kelebihan PHP adalah mempermudah aplikasi web melakukan
koneksi dengan database.
5
1.2.3. MySQL Database Server
MySOL merupakan sebuah server database yang banyak
digunakan karena kehandalannya dan juga bersifat shareware.
Bahasa yang digunakan dalam MySQL sama dengan bahasa yang
dipakai oleh server database lainnya yaitu bahasa SQL. SQL
(Structured Query Language) adalah bahasa standar yang digunkan
untuk mengkases server database. Dalam konteks bahasa SQL,
pada umumnya informasi tersimpan dalam tabel-tabel yang secara
logik merupakn struktur 2 dimensi yang terdiri atas baris-baris data
(row atau record) yang berada pada satu atau lebih kolom
(column). Baris pada tabel sering disebut sebagai field.
Keseluruhan tabel tersebut dihimpun dalam satu kesatuan yang
disebut database.
Keunggulan dari MySQL adalah :

Speed : MySQL bekerja dengan cepat

Easy to use : merupakan system database yang sederhana
dengan performa tinggi dan sangat mudah di-setup dan
sanagt mudah dalam pengaturan

Cost : MySQL disediakan gratis

Query language support : MySQL memahami SQL,
bahasa yang umum digunkanan pada hamper semua
system database modern.

Capability : banyak client yang dapat membuka koneksi
ke server pada saat yang bersamaan.

Connectivity and security : MySQL memiliki kontrol
akses sehingga siapa saja tidak diperbolehkan melihat data
tidak bias melihat data.

Portability : MySQL dapat berjalan di banyak varian dari
UNIX dan sistem lainnya seperti Windows dan OS/2.

Open distribution : source MySQL mudah didapat.
6
Perlengkapan yang tersedia dalam MySQL :
Pada
semua
distribusi
MySQL
sudah
terdapat
beberapa
perlengkapan antara lain :

SQL Server, program utama (engine) dari MySQL yang
menyediakan akses dengan database.

Client Library, library yang disediakan untuk mempermudah
pemrograman, terutama dalam bahasa C.

Client Program, program interaktif klien yang digunakan
untuk melakukan berbagai perintah pada database MySQL,
antara lain :
 Program untuk melakukan queries secara langsung pada
database dan menampilkannya secara langsung.
 Program untuk mengatur akses dengan database (export dan
import database).
1.2.4. HTML
Program dalam bentuk HTML hanya sebagai halaman pertama saja
yang diberi nama 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="c:\apache\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">
7
WEB BASED, I/O CONTROL</MARQUEE>
</FONT></BIG>
</TD></TR></TBODY>
</TABLE>
<BR><BR>
<FORM
METHOD=POST
ACTION="http://localhost/data_masuk.php">
Username :
<BR><INPUT TYPE=TEXT NAME=User>
<BR>Masukkan Password :
<BR><INPUT TYPE=PASSWORD NAME=Pass>
<INPUT TYPE=SUBMIT NAME=Enter VALUE=Enter>
</FORM>
</BODY></HTML>
1.2.5. Pemrograman dengan Borland 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
1.2.6. 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 sangat kompatibel
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.
2. Perancangan
14
Untuk menjalankan pengendalian Input Output melalui parallel port komputer
berbasis web maka akan diperlukan spesifikasi tertentu baik itu berada di client
ataupun pada server.
Client
Server
Request
CGI Expert
Web Browser
Windows
Respons
e
PHP Engine +
MySQL
(Database)
Apache
Web Server
Windows
Gambar 8. Arsitektur Client dan Server
2.1. Hardware
Setelah UTS hardware untuk mata kuliah project dengan judul Web Based
I/O Control mulai dirangkai. Rangkaian yang dibuat adalah rangkaian
dengan tujuh buat output berupa led dan satu buah output yang
menggunakan relay sebagai saklar lampu AC 5 watt. Selain rangkaian
output dirangkai pula empat buah rangkaian input.
2.1.1 Rangkaian Output
Rangkaian output yang digunakan adalah delapan buah output. Tujuh buah
adalah output berupa led yang berfungsi sebagai simulasi saja. Sedangkan
satu buah output lainnya adalah output lampu AC.
Rangkaian lampu ac maksudnya adalah paralel port yang dikendalikan
melalui web akan mengendalikan sebuah relay. Pin 9 dari parallel port
digunakan untuk mengendalikan relay ini. Diawali dengan sebuah
optocoupler yang berfungsi sebagai saklar bagi transistor. Selanjutnya
digunakan sebuah transistor yang berfungsi sebagai saklar. Transisitor
inilah yang berfungsi sebagai saklar bagi relay. Saat led pada opto coupler
menyala maka arus dari sumber tegangan dc 12 volt akan mengalir menuju
ground melalui relay sehingga mengaktifkan atau dapat menarik relay.
15
Dalam hal ini fungsi relay adalah sebagai saklar tegangan AC 220 volt,
sehingga pada saat relay aktif maka lampu akan menyala dan mati pada
kondisi sebaliknya.
Gambar 9. Rangkaian Relay
Komponen yang digunakan :
Opto Coupler
1 buah
Transistor 2N222
1 buah
Resistor 470 ohm
1 buah
Resistor 4700 ohm
1 buah
Sumber dc 12 volt
1 buah
Relay 12 volt
1 buah
Parallel port
Pin 9
Ground
Pin 25
Sumber dc 5 volt
1 buah
Berikut ini adalah data sheet dari transistor 2N2222
Transistor
Vcb max
Vce max
Veb max
Ic max
16
NPN
2N222
60 v
30 v
5v
800 mA
Hfe bias
50mA
Rangkaian ouput led adalah Rangkaian yang menggunakan led, resistor
dan sebuah sumber dc 5 volt. Logikanya saat logic satu pada paralel port
maka tidak ada perbedaan tegangan antara paralel port dan sumber dc
sehingga tidak ada arus mengalir. Sedangkan pada saat logic nol pada
paralel port maka arus akan mengalir dari sumber dc ke paralel port
melewati led sehingga led akan menyala. Rangkaian simulasi led ini hanya
untuk menunjukan cara untuk mengaktifkan dan mematikan led melalui
paralel port yang dikendalikan melalui jaringan web. Pada prinsipnya
dengan menggunakan rangkaian output relay maka dapat dikendalikan
semua peralatan yang menggunakan tegangan ac ataupun dc dengan
menggunakan relay sehingga paralel port dapat digunakan untuk
mengendalikan delapan buah rangkaian relay.
Gambar 10. Rangkaian Output Led
2.1.2 Rangkaian input
17
Rangkaian 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 11. Rangkaian input parallel port
2.2. Program PHP dan CGI
Dalam project periode UAS, penulis menggunakan database untuk
menyimpan beberapa data pada komputer server. Dan sebagai server
database digunakan MySQL. Sebelum menjalankan semua program hal
yang pertama kali harus kita lakukan adalah membentuk sebuah database
dan table-tabel, dan untuk melakukannya kita hanya satu kali
mengeksekusi file create_tbl.php yang terdapat pada folder htdocs.
Berikut skrip create_tbl.php :
18
<?
$sambung=mysql_connect("localhost");
if ($sambung)
echo ("koneksi berhasil");
else
echo ("koneksi gagal");
$buat=mysql_create_db("login");
if ($buat)
echo ("<BR><BR>Database login berhasil dibuat");
else
echo ("<BR><BR>Database login gagal dibuat");
$perintah1="CREATE TABLE data_login
(nomor int(10) AUTO_INCREMENT PRIMARY KEY,
username char(100),
password varchar(255), tanggal date, jam time)";
$buat_tabel=mysql_db_query("login",$perintah1);
if ($buat_tabel)
echo ("<BR><BR>Tabel data_login berhasil dibuat");
else
echo ("<BR><BR>Tabel data_login gagal dibuat");
?>
Setelah skrip tersebut dijalankan maka akan terbentuk database dengan
nama login yang terdiri dari tabel data_login (nomer, user , password,
tanggal, jam).
nomor
Username
Password
tanggal
jam
Tabel 1 . Tabel data_login pada database login
Pada project software periode UAS, penulis mengadakan penambahan
berupa input bernama username dan password tiap-tiap user yang nantinya
harus diisikan pada form index.html sebelum masuk pada pengontrolan
Input Output.
Username
Password
19
Hendrawan
elektro1
Johan
elektro2
Dhanny
elektro3
Adry
elektro4
Tabel 2. Tabel username dan password
Terdapat file HTML yang merupakan halaman awal situs Web Based I/O
Control dengan nama index.html.
Gambar 12. 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="c:\apache\cgi-bin\ukplogo.gif" width=89></P></TD>
<TD
bgColor=#9AC8AA
height=16
face="Bookman Old Style">
20
width=629><BIG><FONT
<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>
<FORM METHOD=POST ACTION="cgi-bin/welcome.exe">
Username :
<BR><INPUT TYPE=TEXT NAME=User>
<BR>Masukkan Password :
<BR><INPUT TYPE=PASSWORD NAME=Pass>
<INPUT TYPE=SUBMIT NAME=Enter VALUE=Enter>
</FORM>
</BODY></HTML>
Setelah username dan password diisi dengan benar dan kemudian tombol
enter
ditekan
maka
tampilan
grafis
akan
merujuk
pada
file
data_masuk.php.
Berikut skrip data_masuk.php :
<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="c:\apache\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>
21
<?
mysql_connect("localhost");
mysql_select_db("login");
$jam=date("H:i:s");
$tanggal=date("Y-m-d");
$perintah="INSERT
INTO
data_login
(username,password,tanggal,jam)
VALUES
('$User','$Pass','$tanggal','$jam')";
$hasil=mysql_query($perintah);
if ($hasil) {
echo ("<BR><BR>Input login berhasil dibuat");
echo
("<br><a
href=http://localhost/cgi-
bin/welcome.exe?User=$User&Pass=$Pass&Enter=$Enter>nex
t..</a>");
} else {
echo ("<BR><BR>Input login gagal dibuat");
echo
("<br><a
href=http://localhost/cgi-
bin/welcome.exe>back..</a>");
}
?>
</BODY></HTML>
Apabila koneksi pada database gagal maka akan muncul tampilan seperti
pada gambar 12. Penekanan link back mengembalikan tampilan grafis
pada welcome.exe.
Gambar 13. Tampilan data_masuk.php
22
Jika input data user dan password pada database berhasil maka akan
muncul tampilan seperti pada Gambar 13.
Gambar 14. Tampilan data_masuk.php
Ada 2 macam link yaitu next dan lihat tabel pengakses website.
Dengan penekanan link lihat tabel pengakses website maka akan muncul
tampilan seperti pada gambar 14.
Gambar 15. Tampilan cari.php
23
Dalam halaman cari.php muncul tabel pengakses website dan juga terdapat
fasilitas searching/pencarian.
Dengan penekanan link next maka tampilan menunjuk pada halaman
welcome.exe dimana 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.
Gambar 16. Tampilan welcome.exe
Berikut adalah listing program FormInput.exe :
unit FormInputD;
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;
24
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;
procedure
TulisPort(PortAddress:Word;
ByteToWrite:Byte);
begin
asm
mov
DX, PortAddress
mov
AL, ByteToWrite
out
DX, AL
25
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>');
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;
26
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.
27
Gambar 17. Tampilan FormInput.exe
Kolom value menunjukan status dari rangkaian input. Apabila client
memilih
link
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);
28
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;
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;
29
Method:=AnsiUppercase(FormVar('Method','post'));//POST
method !!!
//Header
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);
30
if EntryName='INPUT1' then
begin
S:=FormVar('INPUT1','');
if S='' then
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.
31
Gambar 18. Tampilan FormOutput.exe
3. Tabel Perencanaan dan Realisasi Kerja Project
No. Materi
Target
Realisasi
1.
Revisi Laporan UTS
27/10/2002
19/11/2002
2.
Inventarisasi hardware
28/10/2002
29/10/2002
Inventarisasi data software
3.
Penyelesaian hardware
29/10/2002-12/11/2002
03/12/2002
4.
Penyelesaian software
29/10/2002-19/11/2002
03/12/2002
5.
Evaluasi sementara
12/11/2002
19/11/2002
6.
Tes
sinkronisasi 19/11/2002
03/12/2002
alat
dan
hardware dan software
7.
Demo
8.
Penyusunan materi presentasi
26/11/2002
32
03/12/2002
Evaluasi akhir
3/12/2002
10/12/2002
Latihan presentasi
No.
Materi
22/10
29/10
05/11
12/11
19/11
26/11
03/12
1.
Revisi
****
****
****
****
***#
****
***#
****
***#
****
****
****
****
****
****
***#
****
****
****
****
****
****
***#
10/12
18/12
Laporan UTS
2.
Inventarisasi
hardware
3.
Inventarisasi
data software
4.
Penyelesaian
hardware
5.
Penyelesaian
software
6.
Evaluasi
sementara
7.
Tes alat dan
***#
sinkronisasi
hardware dan
software
8.
Demo
***#
9.
Penyusunan
****
***#
materi
presentasi
10.
Evaluasi akhir
***#
11.
Latihan
***#
presentasi
Keterangan: **** : tahap pengerjaan
***# : tahap penyelesaian
4. Kesimpulan
33
Keterangan
1. Penggunaan database dalam project web based i/o control memungkinkan user
untuk menyimpan data-data yang penting. Salah satu contohnya adalah
penggunaan database sebagai penyimpan data-data yang mengakses web based
i/o control.
2. Dengan hardware yang ada yang dipadukan dengan software maka dapat
mengendalikan system input output menggunakan jaringan web.
34
Download