Escolar Documentos
Profissional Documentos
Cultura Documentos
Hasanuddin Sirait
Program Studi Teknik Elektro Pascasarjana Universitas Hasanuddin Makassar
Dosen STMIK/AMIK Parna Raya Manado
hsirait@telkom.net, hmpsirait@yahoo.com http:www.hsirait.co.cc
ABSTAK
Tulisan ini menunjukkan bahwa suatu peralatan dapat dilakukan pengendalian
secara kontrol remote melalui suatu pemrograman berbasis web yang
pengoperasiannya melalui instruksi servlet java. Sehingga untuk menentukan
nyala atau padamnya suatu LED yang terdiri dari 8 LED sebagai contoh
dikendalikan melalui web browsing oleh client. Program ini menggunakan palalel
port melalui socket printer 0x378 sebagai communication port. Dengan
perpaduan pemrograman java dibantu oleh html dan xml maka sistem kendali
dapat dilakukan melalui web browsing.
Key Word : Servlet Java, Palalel Port, Browser, Remote Control, LED
-1-
httpServlet (Juniar Supardi,2005), serta
pemrograman XML sebagai Input data.
Sehingga suatu aplikasi remote control
dapat berjalan berbasis web.
D. APLIKASI
Dalam pembuatan program dibawah
ini yang menjadi ketentuan adalah, buat
folder seperti struktur folder berikut ini :
-2-
<head><title>Ganti Status LED</title></head> <option value=0>Padam</option>
<body> </select>
<p align=center> </td>
<strong>Ganti Status LED</strong> </tr>
<br><hr> <tr>
</p> <td>LED #6: </td>
<p align=left> <td>
<form method=post action=./myRemote> <select name=LED6>
<input type=hidden name=Status value=tulis> <option value=->Abaikan</option>
<table> <option value=1>Nyala</option>
<tr> <option value=0>Padam</option>
<td>LED #1: </td> </select>
<td> </td>
<select name=LED1> </tr>
<option value=->Abaikan</option> <tr>
<option value=1>Nyala</option> <td>LED #7: </td>
<option value=0>Padam</option> <td>
</select> <select name=LED7>
</td> <option value=->Abaikan</option>
</tr> <option value=1>Nyala</option>
<tr> <option value=0>Padam</option>
<td>LED #2: </td> </select>
<td> </td>
<select name=LED2> </tr>
<option value=->Abaikan</option> <tr>
<option value=1>Nyala</option> <td>LED #8: </td>
<option value=0>Padam</option> <td>
</select> <select name=LED8>
</td> <option value=->Abaikan</option>
</tr> <option value=1>Nyala</option>
<tr> <option value=0>Padam</option>
<td>LED #3: </td> </select>
<td> </td>
<select name=LED3> </tr>
<option value=->Abaikan</option> <tr>
<option value=1>Nyala</option> <td colspan=2 align=center>
<option value=0>Padam</option> <input type=submit value=Ganti>
</select>
</td> <input type=reset value=Reset>
</tr> </td>
<tr> </tr>
<td>LED #4: </td> </table>
<td> </form>
<select name=LED4> </p>
<option value=->Abaikan</option> <hr><br>
<option value=1>Nyala</option> • <a href=index.html>Index</a>
<option value=0>Padam</option> </body>
</select> </html>
</td>
</tr>
<tr>
<td>LED #5: </td> Kemudian file myParalel.java, yang
<td>
<select name=LED5>
diletakkan pada folder class :
<option value=->Abaikan</option>
<option value=1>Nyala</option>
<option value=0>Padam</option>
-3-
/** String myMsg = myTask("w", s);
* @author Hasanuddin Sirait myWriter(out, myMsg);
* @version 1.00 09/01/21 } else
*/ myWriter(out, "Maaf, request-nya salah...");
import javax.servlet.*; }
import javax.servlet.http.*; String myTask(String Status, String s) {
import java.io.*; int[] aSquare = {1, 2, 4, 8, 16, 32, 64, 128};
import java.net.*; String sMsg = "";
import java.util.*; myIO io = new myIO();
public class myParalel extends HttpServlet { int in , i;
public void init() throws ServletException { if(Status.equals("w")){
// inisialisasi -> padamkan semua LED sMsg += ("Tulis: "+s+"<br><br>");
myIO io = new myIO(); int nAND = 255;
io.outputb(0x378, 0); int nOR = 0;
} StringTokenizer st = new StringTokenizer(s, " ");
public void doGet(HttpServletRequest request, int out;
HttpServletResponse response) String sST;
throws IOException, ServletException { i = 0;
PrintWriter out = response.getWriter(); while(st.hasMoreTokens()) {
response.setContentType("text/html"); sST = st.nextToken();
String Status = request.getParameter("Status"); if(sST.equals("0"))
if(Status==null) nAND -= aSquare[i];
myWriter(out, "Maaf, request-nya salah..."); else if(sST.equals("1"))
else if(Status.toLowerCase().equals("baca")){ nOR += aSquare[i];
String myMsg = myTask("r", null); i++;
myWriter(out, myMsg); }
} else out = io.inputb(0x378);
myWriter(out, "Maaf, request-nya salah..."); out = (out | nOR) & nAND;
} io.outputb(0x378, out);
public void doPost(HttpServletRequest request, }i
HttpServletResponse response) in = io.inputb(0x378);
throws IOException, ServletException { for(i=0; i<8; i++) {
PrintWriter out = response.getWriter(); sMsg += ("LED #"+(i+1)+": ");
response.setContentType("text/html"); if((in & aSquare[i]) > 0)
String Status = request.getParameter("Status"); sMsg += " Nyala";
String LED1 = request.getParameter("LED1"); else
String LED2 = request.getParameter("LED2"); sMsg += " Padam";
String LED3 = request.getParameter("LED3"); sMsg += "<br>";
String LED4 = request.getParameter("LED4"); }
String LED5 = request.getParameter("LED5"); return sMsg;
String LED6 = request.getParameter("LED6"); }
String LED7 = request.getParameter("LED7"); void myWriter(PrintWriter out, String myMsg) {
String LED8 = request.getParameter("LED8"); String sMsg = "";
if(Status==null) sMsg += "<html>\r\n";
myWriter(out, "Maaf, request-nya salah..."); sMsg += "<head><title>Status
else if(Status.toLowerCase().equals("tulis")){ LED</title></head>\r\n";
// null -> diabaikan sMsg += "<body>\r\n";
if(LED1==null) LED1 = "-"; sMsg += "<p align=center>\r\n";
if(LED2==null) LED2 = "-"; sMsg += "<strong>Status LED</strong>\r\n";
if(LED3==null) LED3 = "-"; sMsg += "<br><hr>\r\n";
if(LED4==null) LED4 = "-"; sMsg += "</p>\r\n";
if(LED5==null) LED5 = "-"; sMsg += "<p align=left>\r\n";
if(LED6==null) LED6 = "-"; sMsg += myMsg;
if(LED7==null) LED7 = "-"; sMsg += "</p>\r\n";
if(LED8==null) LED8 = "-"; sMsg += "<hr><br>\r\n";
String s = LED1+" "+LED2+" "+LED3+" "+LED4+" "+ sMsg += "• <a
LED5+" "+LED6+" "+LED7+" "+LED8; href=index.html>Index</a>\r\n";
-4-
dihidupkan, BIOS melakukan self-test yang
sMsg += "</body>\r\n"; salah satunya adalah untuk paralel port.
sMsg += "</html>\r\n"; Untuk keperluan itu, gunakan
out.write(sMsg); method init(). Method init() hanya
out.flush();
}
dijalankan sekali ketika servlet dipanggil
} pertama kali sejak server (dalam hal ini
Tomcat) atau dihidupkan.
Untuk menyalakan atau
Sebelum melakukan kompiler program ini memadamkan LED mudah saja, yaitu
file myIO.class copykan ke folder classes dengan memanfaatkan operasi-operasi
dan file _io.dll ke folder C:\windows, logika sederhana. Untuk menyalakan LED
serta atur setting untuk CLASSPATH digunakan operasi OR dengan 1.
sebagai berikut: Sedangkan untuk memadamkan LED
set CLASSPATH= C:\manado-tomcat-3.2.3\lib\servlet.jar;C: dipergunakan operasi AND dengan 0.
Untuk lebih jelasnya, Tabel berikut :
Kemudian kompiler program java diatas
dengan cara : Tabel 1. Logika menyalakan LED dan
javac myParalel.java pemandaman dan LED.
A B A or B A and B
Untuk membuat aliasnya buat prgram 0 0 0 0
dengan file web.xml pada folder web-inf : 0 1 1 0
1 0 1 0
<?xml version="1.0" encoding="ISO-8859-1"?> 1 1 1 1
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.2//EN" Jalankan aplikasi tomcat diatas dengan
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> cara :
<web-app>
<servlet>
C:\manado-tomcat-3.2.3\bin\startup
<servlet-name>
myParalel
</servlet-name>
<servlet-class>
E. ANALISA DAN PENGUJIAN
myParalel Pada tahap analisa dan penujian
</servlet-class> hasil program diatas, anda dapat
</servlet>
<servlet-mapping>
memasang suatu rangkaian berikut pada
<servlet-name> soket untuk printer.
myParalel
</servlet-name>
<url-pattern>
/myRemote
</url-pattern>
</servlet-mapping>
</web-app>
-5-
Jika tidak sempat membuat rangkaian Dapat juga gunakan DEBUG pada DOS
tersebut, Anda dapat memanfaatkan untuk menguji, apakah perubahan pada
DEBUG untuk melakukan pengujian. Data Port terbaca oleh servlet. Sebagai
Ada dua buah perintah untuk contoh pada DEBUG berikan perintah
melakukan pengujian, yaitu: angka 1 untuk o378, aa (Gambar 6), lalu pada browser
membaca dari suatu port address dan 0 lakukan refresh untuk melihat hasilnya
untuk menulis ke suatu port address. (Gambar 7).
Keterangan lengkapnya bisa Anda
dapatkan dengan mengetikkan perintah ?.
Pada address bar ketik
http://localhost/remote (Gambar 3), lalu
pilih, baca status LED (Gambar 4). Yang
perlu diperhatikan adalah semua LED
harus dalam keadaan padam, karena
kondisi tersebut merupakan hasil
inisialisasi (method init()).
Gambar 6. Test Debug pada DOS 1
-6-
DEBUG ketik perintah i378 dan pada F. PENUTUP
(Gambar 10) terlihat perubahan status Dari aplikasi yang disajikan diatas
setelah refresh: memang cukup sederhana dengan maksud
agar pemahaman lebih mudah. Aplikasi ini
dapat dikembangkan lebih luas dalam
penerapannya dengan penggunaan port
serial.
Dalam rangkaian yang digunakan
dapat berbasis microcontroller dengan
memanfaatkan serial port sebagai media
komunikasi antara PC dengan
microcontroller untuk mengerjakan tugas-
tugas yang lebih kompleks dan
permasalahan yang lebih komplek pula.
Karena aplikasi ini menggunakan
protokol HTTP dan XML, maka dengan
sedikit modifikasi kita dapat membuatnya
sebagai aplikasi WAP, sehingga terciptalah
pengendalian jarak jauh ber-basis WAP.
Gambar 8. Ganti Status LED
DAFTAR PUSTAKA :
- Gunawan, Arisona. 2007. Aplikasi Pemantau
Aplikasi Presensi Mahasiswa Dan Dosen,
Jurnal Dasi Stmik Amikom V.8 No.2.
Yokyakarta.
- http://jurnal.unikom.ac.id/prototipe.htm
Friday, March 19, 2006 12:51:32 PM
-7-