Servlet (Introduction)

July 25th, 2006
ServletServlet adalah program java yang berjalan di web server

1. Struktur Dasar Servlet

Struktur dasar servlet yang menangani method get dan post adalah sebagai berikut :

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class HelloWorldServlet extends HttpServlet

{

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException

{

}

public void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException

{

}

}

Method doGet menerima dan menangani request get dari webserver, sementara request post ditangani oleh method doPost. Parameter req digunakan untuk membaca HTTP header yang datang (misal cookie) dan data dari form HTML. Parameter res digunakan untuk menspesifikasikan respon line dan header misalnya set cookie an set content-type.

Kelas yang akan menjadi servlet harus meng-extend Kelas HttpServlet dan meng-override method doGet atau doPost atau keduanya.

Umumnya servlet mengembalikan halaman HTML. Untuk melakukannya, kita harus memberitahu browser bahwa kita mengirim halaman HTML melalui setting content-type dan kita harus membangun halaman HTML, tag-per tag, melalui perintah println. Contoh :

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWWW extends HttpServlet {

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType(”text/html”);

PrintWriter out = response.getWriter();

out.println(”n” +

“n” +

“n” +

“n” +

Hello WWW

n” +”");

}

}

2. Membaca data dari form

Contoh form yang datanya akan dibaca oleh servlet :

Please Enter your name

Contoh Servlet yang membaca data nama :

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

public class MyNameServlet extends HttpServlet

{

public void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException

{

doPost(req,res);

}

public void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException

{

//*****Read the value of the ‘yourname’ parameter*****

String name=req.getParameterValues(”yourname”)[0];

//*****Construct a response in HTML*****

String reply=”n”+

“n”+

“n”+


n”+

“Hello “+name+”n”+

nn”;

//*****Send the reply*****

res.setContentType(”text/html”);

PrintWriter out=res.getWriter();

out.println(reply);

out.close();

}

}

Hampir sama dengan PHP, servlet membaca variabel dengan cara menggunakan parameter req yang bertipe HttpServletRequest, dengan memanggil method getParameterValues(“yourname�).

3. Penanganan Cookie

Untuk mengeset cookie dapat dilakukan dengan menggunakan method addCookie( ) milik HttpServletResponse, sedangkan untuk membaca cookie menggunakan method getCookie( ) milik HttpServletRequest. Contoh, program diatas dapat dimodifikasi untuk menangani cookie sebagai berikut :

Untuk mengeset cookie : res.addCookie(new cookie(”MyNameServlet_cookie”,name));

Untuk membaca cookie : req.getCookies();

4. Penanganan Session

Penanganan session hampir sama dengan penanganan cookie. Caranya seperti contoh potongan program berikut.

//mengeset session

HttpSession session=req.getSession(true);

session.putValue(”name”, name);

//membaca session

HttpSession session=req.getSession(false);

String output=”No Session”;

if (session!=null)

output=”Hello “+session.getValue(”name”);

Maksud parameter pada method getSession( ) adalah :

True : Jika tidak ada, buat session baru

False : tidak membuat session baru

5. Koneksi database

Untuk membangun koneksi ke database, kita membutuhkan JDBC API. Langkah pertama adalah me-load kelas driver yang spesifik ke JVM. Caranya dengan menggunakan method Class.forName( ). Contoh :

Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”);

Saat driver tersebut di-load ke memori, ia meregistrasi dirinya dengan kelas java.sql.DriverManager. Langkah berikutnya adalah dengan menggunakan kelas DriverManager untuk membuka koneksi. Method yang digunakan adalah DriverManager.getConnection( ) yang mengembalikan kelas yang mengimplementasi interface java.sql.Connection. Contoh :

Connection con =

DriverManager.getConnection(”jdbc:odbc:somedb”, “user”, “passwd”);

Langkah berikutnya setelah koneksi terbangun adalah mengeksekusi query. Cara termudah adalah menggunakan kelas java.sql.Statement. Untuk membuat objek statement yang baru, digunakan method Connection.createStatement( ). Contoh :

Statement stmt = con.createStatement(); //con adalah instance dari kelas Connection.

Query yang mengembalikan dataset dapat dieksekusi dengan method Statement.executeQuery( ) yang mengembalikan java.sql.ResultSet. Contoh :

ResultSet rs = stmt.executeQuery(”SELECT * FROM CUSTOMERS”);

Untuk melakukan iterasi terhadap ResultSet dapat dilakukan seperti contoh berikut :

while(rs.next()) {

String event = rs.getString(”event”);

Object count = (Integer) rs.getObject(”count”);

}

IP Address (Introduction)

July 25th, 2006

IP Address

1. Apa itu IP address?

Bagaimana komputer-komputer yang terhubung ke jaringan internet saling berhubungan dan mengirimkan pesan? Masalah ini analog dengan masalah pengiriman surat di dunia nyata. Misalkan saya yang berdomisili di Aquarius 16 Bandung ingin mengirim surat kepada Hifni yang beralamat di jalan xxx no 100 Condongcatur Sleman. Pertama, saya akan menuliskan isi surat saya dalam sebuah kertas. Lalu surat tersebut akan saya masukkan ke dalam amplop. Mengapa saya masukkan ke dalam amplop? Agar surat saya terlindung. Dengan menggunakan amplop, resiko kerusakan surat saya akan lebih kecil daripada tidak menggunakan amplop. Setelah itu akan saya tuliskan alamat Hifni pada amplop surat tersebut, dan tak lupa nama Hifni, karena jika tidak dituliskan namanya, surat tersebut bisa nyasar ke kakak atau adiknya. Saya juga menuliskan nama dan alamat saya pada bagian belakang amplop, agar apabila Hifni ingin membalas surat saya, dia mengetahui alamat saya. Apabila alamat surat tersebut benar, prangkonya cukup, dan rute menuju rumah Hifni bisa dilalui, surat tersebut pasti akan sampai.

Pada kuliah pertama ini kita akan membahas salah satu komponen penting dalam jaringan komputer. Komponen itu adalah IP (Internet Protocol) address, yang analog dengan alamat rumah pada pengiriman surat di atas. IP address (versi 4) tersusun atas bilangan biner (0 dan 1) sepanjang 32 bit (binary digit) yang terbagi atas empat segmen. Tiap segmen terdiri atas 8 bit. Artinya memiliki nilai desimal 0 (00000000) sampai 255 (11111111). Jadi secara kasar dapat disimpulkan bahwa jumlah alamat yang bisa dipakai oleh komputer di seluruh dunia yang terhubung ke internet sebanyak 232 buah (walaupun ada IP tertentu yang tidak dipakai dengan alasan khusus). Untuk mempermudah pembacaan, alamat IP tersebut biasanya dituliskan dalam bilangan desimal misalnya 167.205.35.31. Struktur alamat IP dibagi menjadi dua bagian yaitu Network ID dan Host ID. Sesuai namanya, Network ID berfungsi mengidentifikasi pada jaringan mana suatu komputer berada, sementara Host ID berfungsi mengidentifikasi suatu komputer (host) pada suatu jaringan. Dalam satu jaringan, host ID harus unik, sebagaimana analogi dalam satu jalan, tidak boleh ada rumah dengan nomor sama. Jaringan yang berbeda network idnya dipisahkan oleh router.

2. Kelas-kelas IP address

IP address dibagi menjadi lima kelas, A sampai E. IP address yang dipakai secara umum dibagi dalam 3 kelas, sementara 2 kelas lainnya dipakai untuk kepentingan khusus. Ini untuk memudahkan pendistribusian IP address ke seluruh dunia.

Kelas A :

- Format : 0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh

- Bit pertama : 0

- Panjang Network ID : 8 bit

- Panjang Host ID : 24 bit

- Byte pertama : 0 – 127

- Jumlah : 126 kelas A (0 dan 127 dicadangkan)

- Range IP : 1.xxx.xxx.xxx sampai 126.xxx.xxx.xxx

- Jumlah IP : 16.777.214 IP address pada tiap kelas A

IP address kelas ini diberikan kepada suatu jaringan yang berukuran sangat besar, yang pada tiap jaringannya terdapat sekitar 16 juta host.

Kelas B :

- Format : 10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh

- 2 bit pertama : 10

- Panjang Network ID : 16 bit

- Panjang Host ID : 16 bit

- Byte pertama : 128 – 191

- Jumlah : 16.384 kelas B

- Range IP : 128.0.xxx.xxx sampai 191.155.xxx.xxx

- Jumlah IP : 65.535 IP address pada tiap kelas B

IP address kelas ini diberikan kepada jaringan dengan ukuran sedang-besar. Contohnya adalah jaringan kampus ITB yang mendapat alokasi IP address kelas B (terima kasih kepada Onno W. Purbo), dengan network id 167.205.

Kelas C :

- Format : 110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh

- 3 bit pertama : 110

- Panjang Network ID : 24 bit

- Panjang Host ID : 8 bit

- Byte pertama : 192 – 223

- Jumlah : 2.097.152 kelas C

- Range IP : 192.0.0.xxx sampai 223.255.255.xxx

- Jumlah IP : 254 IP address pada tiap kelas C

IP kelas ini dialokasikan untuk jaringan berukuran kecil.

IP kelas D digunakan sebagai alamat multicast yaitu sejumlah komputer memakai bersama suatu aplikasi. Contohnya adalah aplikasi real-time video conference yang melibatkan lebih dari dua host, seperti yang diadakan di ITB dalam program SOI (School on Internet) bersama beberapa universitas di Asia. Ciri IP kelas D adalah 4 bit pertamanya 1110. IP kelas E (4 bit pertama 1111) dialokasikan untuk keperluan eksperimental.

3. Yang perlu diperhatikan dalam pemilihan IP address

Aturan dasar pemilihan Network ID dan Host ID :

- Network ID tidak boleh bernilai 127. Karena Network ID 127 digunakan sebagai alamat loopback yaitu alamat yang digunakan komputer untuk menunjuk dirinya sendiri.

- Network ID dan Host ID tidak boleh seluruhnya bernilai 255 (seluruh bit diset 1). Nework ID atau Host ID yang seluruhnya bernilai 255 adalah alamat broadcast jaringan tersebut. Apabila dikirimkan pesan kepada alamt broadcast maka seluruh host pada jaringan tersebut akan menerima pesan itu.

- Network ID dan Host ID tidak boleh seluruhnya bernilai 0 (seluruh bit diset 0). Alamat IP dengan host id semuanya bernilai 0 diartikan sebagai alamat network yang menunjuk ke jaringan, bukan ke host.

- Host ID harus unik dalam satu network.

4. Penutup

Jadi, dengan semakin berkembangnya pengguna internet, alamat IP yang tersedia pun semakin sedikit. Perancang IP address dulu tidak menyangka bahwa perkembangan internet akan sedemikian pesat. Lalu bagaimana solusinya? Ada beberapa alternatif yang kini tengah dilakukan. Pertama melakukan penghematan pemakaian IP address dengan cara Subnetting, Supernetting, NAT, dll. Kedua, melakukan migrasi dari IP versi 4 ke IP versi 6 yang mempunyai alokasi sampai 3,4 x 1038.

Untuk melihat konfigurasi IP Anda, buka command prompt (Windows) lalu ketikkan ipconfig /all, lalu tekan enter. Untuk UNIX, buka shell/terminal lalu ketikkan ifconfig lalu tekan enter. IP address pada komputer dapat ditentukan secara static maupun dynamic. Penentuan secara static dilakukan dengan mengeset alamat IP pada komputer secara langsung. Sedangkan penentuan secara dynamic dilakukan dengan menggunakan dial up ke ISP (internet service provider) atau dengan cara menghubungkan diri dengan server DHCP (Dynamic Host Configuration Protocol). Sebagai contoh, komputer di lab Informatika Dasar I Teknik Informatika ITB mendapatkan IPnya secara dynamic melalui server ns.if.itb.ac.id sehingga alamat IPnya pada suatu saat bisa berubah secara otomatis. Keuntungan menggunakan DHCP adalah mampu mencegah IP conflict atau terdapatnya IP address yang sama pada satu jaringan.

5. Referensi

- Onno W. Purbo, Adnan Basalamah, Ismail Fahmi, Achmad Husni Thamrin. TCP/IP Standar, Desain, dan Implementasi.2002.Elex Media Komputindo:Jakarta.

- Aulia K. Arif, Onno W. Purbo. Konsep IP Address di Internet.

- Wahyu Hidayat, Affan Basalamah, Dikshie Fauzie. IPv6 di ITB.

Cinta Laut dan Langit

July 25th, 2006
Dahulu kala, langit dan laut saling jatuh cinta.
Mereka sama2 saling menyukai 1 sama lain. Saking
sukanya laut terhadap langit, warna laut = langit,
saking sukanya langit terhadap laut, warna langit
= laut.Setiap senja datang, si laut dengan lembut sekali
membisikkan “aku cinta padamu� ke telinga langit.
Setiap langit mendengar bisikan penuh cinta laut
pun, langit tidak menjawab apa2 hanya tersipu2
malu wajahnya semburat kemerahan.

Suatu hari, datang awan… begitu melihat
kecantikan si langit, awan seketika itu juga jatuh
hati terhadap langit. Tentu saja langit hanya
mencintai laut, setiap hari hanya melihat laut
saja. Awan sedih tapi tak putus asa, mencari cara
dan akhirnya menemukan akal bulus.

Awan mengembangkan dirinya sebesar mungkin dan
menyusup ke tengah2 langit dan laut, menghalangi
pandangan langit dan laut terhadap 1 sama lain.

Laut merasa marah karena tidak bisa melihat
langit, sehingga dengan gelombangnya, laut
berusaha menyibak awan yang mengganggu pandangannya.

Tapi tentu saja tidak berhasil.

Lalu datanglah angin, yang sejak dulu mengetahui
hubungan laut dan langit merasa harus membantu
mereka menyingkirkan awan yang mengganggu.

Dengan tiupan keras dan kuat, angin meniup awan
… Awan terbagi2 menjadi banyak bagian, sehingga
tidak bisa lagi melihat langit dengan jelas, tidak
bisa lagi berusaha mengungkapkan perasaan terhadap
langit.

Sehingga ketika merasa tersiksa dengan perasaan
cinta terhadap langit, awan menangis sedih. Hingga
sekarang, kasih antara langit dan laut tidak
terpisahkan.

Kamu juga bisa melihat di mana mereka menjalin
kasih. Setiap ke laut, di mana ada 1 garis antara
laut dan langit, di situlah mereka sedang bersatu.

(dikutip dari bajaklaut.org)

Bayangan

July 25th, 2006

aku hanya bayangan
pada kota dimana telah singgah para pencari jalan

aku hanya gelap
diantara cahaya lampu
yang terus bersinar tiada henti
menyilaukan aku yang kedinginan
berhari-hari

aku diam dan kelu
pada ramainya mereka yang tertawa
yang mengingkari keberadaan
angin yang bertiup lemah
di sekitar mereka