DINAMIS BERBASIS JSP
Bagi kalian yang sering berselancar di internet gambar seperti di
atas hampir pasti sering kalian jumpai. Gambar hasil pencarian dari
Google di atas dapat digolongkan dalam halaman-halaman web dinamis. Hal
ini karena apa yang akan ditampilkan berubah-ubah tergantung pada apa
yang kita inputkan. Bab ini membahas tiga standar kompetensi yaitu
membuat halaman web dinamis dasar, membuat halaman dinamis tingkat
lanjut dan membuat program aplikasi web berbasis JSP. Penggabungan tiga
kompetensi ini karena kedekatan isi kompetensi dasar. Penyusunan sub bab
tidak mengacu langsung pada kompetensi dasar, namun lebih mengacu pada
urutan dan kedekatan pokok bahasan. Rangkuman diletakkan pada akhir bab
dilanjutkan dengan soal-soal latihan yang disusun dari soal-soal yang
mudah hingga soal-soal yang sulit. Latihan soal ini digunakan untuk
mengukur kemampuan terhadap kompetensi dasar ini. Sebelum mempelajari
kompetensi ini ingatlah kembali dasar sistem komputer, sistem operasi,
algoritma pemrograman dasar, pemrogaman Java, web statis dan HTML.
DASAR WEB DINAMIS
Pengertian tentang web dinamis telah disinggung secara
ringkas pada Bab 13. Pada bab ini kita akan lebih dalam mempelajari web
dinamis.
Kebutuhan Lingkungan Teknis
Ada perbedaan
yang penting dalam kebutuhan lingkungan pengembangan antara web statis
dan web dinamis. Pada bab sebelumnya kalian telah mengetahui bahwa ada
beberapa kebutuhan perangkat untuk membuat halaman web statis, antara
lain perangkat komputer personal, sistem operasi, text editor atau
perangkat lunak pembuat halaman web, dan web browser. Beberapa kebutuhan
tersebut dapat digunakan untuk lingkungan web statis, namun beberapa
perangkat tambahan juga diperlukan.
Perangkat keras
Pengembangan
web dinamis membutuhkan perangkat keras yang lebih
tinggi spesifikasinya dibanding web statis. Umumnya pengembang akan
melakukan pembuatan web dinamis pada satu komputer yang berperan
sekaligus sebagai server dan client. Tapi, seringkali juga dibutuhkan
lebih dari satu komputer, dimana satu komputer berperan sebagai server
dan yang lainnya sebagai client. Pada komputer yang berperan sebagai
server maka spesifikasi teknisnya harus lebih tinggi dari komputer
client. Kebutuhan prosesor yang lebih cepat dan
memori utama yang lebih besar merupakan kebutuhan mutlak.
Perangkat lunak
Sistem
operasi yang digunakan pada pengembangan web dinamis lebih baik
jika menggunakan versi yang mendukung. Biasanya pembuat sistem operasi
akan menyediakan versi yang memang khusus diperuntukkan bagi server.
Versi ini biasanya memiliki tingkat keamanan dan stabilitas yang lebih
tinggi dari versi desktop-nya. Sebagai contoh, pada Linux ada distro
Ubuntu versi server, SuSe menyediakan versi Enterprise Server, dan
demikian juga distro-distro lainnya. Sedangkan pada Windows tersedia
Windows NT, Windows Server 2000, Windows Server 2003 dan yang terbaru
Windows Server 2008. Kebutuhan perangkat lunak yang sangat membedakan
antara web statis dan web dinamis adalah bahasa pemrograman sisi server.
Bahasa pemrograman ini diinstall untuk digunakan web server
menerjemahkan perintah-perintah tertentu dalam bahasa tertentu. Sebagai
contoh jika kita hanya menginstall web server Apache saja, maka kita
tidak dapat menjalankan halaman web dinamis yang kita tulis dengan
bahasa pemrograman PHP atau JSP. Agar dapat menjalankan halaman web
dinamis tersebut kita perlu menginstall PHP atau Tomcat. Perangkat
pengembang web dinamis saat ini sudah banyak tersedia, meskipun beberapa
memiliki harga yang relative mahal. Beberapa diantaranya
adalah Microsoft Visual Studio, Borland Delphi Studio, Adobe
Dreamweaver, dan lainlain. Perangkat lunak ini selain dapat sebagai HTML
Editor juga mendukung bahasa pemrograman server seperti ASP.Net, PHP,
JSP, dan ColdFusion. Perangkat lunak pengembang yang gratis juga
tersedia, antara lain NetBeans
yang mendukung penuh JSP,
Eclipse yang mendukung banyak bahasa pemrograman, Komodo Editor, dan
lain-lain. Meskipun gratis, tetapi fasilitas yang disediakan tidak kalah
dengan yang tidak gratis.
Perangkat lunak lain yang
dibutuhkan adalah DBMS. Hal ini karena biasanya web dinamis menggunakan
basis data sebagai tempat penyimpanan data. DBMS personal seperti
Microsoft Access bukan pilihan yang baik untuk web dinamis, karena
factor keamanan dan kinerjanya yang tidak sesuai dengan sifat-sifat
web dinamis. Basis data berbasis SQL yang bersifat server seperti MySQL,
Oracle, Microsoft SQL Server, dan lain-lain merupakan pilihan yang
cocok untuk digunakan dalam web dinamis.
Pemrograman Web Dinamis
Pemrograman
web merupakan usaha untuk membuat halaman web dengan menggunakan bahasa
pemrograman web (script). Pemrograman web (web programming) dikenal
juga dengan istilah pengembangan web (web development). Istilah lain
yang mungkin juga cukup terkenal adalah web design. Web design lebih
memfokuskan bagaimana merancang tampilan halamanhalaman web menjadi
menarik bila dilihat. Atau boleh dikatakan web design lebih pada aspek
visualnya sedangkan web programming lebih fokus pada aspek logika proses
yang terjadi di dalam halaman-halaman web. Seorang web programmer
mungkin juga seorang web designer, namun biasanya pekerjaan
ini dipisahkan orangnya karena perbedaan fokus penekanannya.
Untuk
membuat interaksi yang baik, dibutuhkan beberapa model pemrograman web.
Model pemrograman yang umum digunakan adalah client-side dan
serverside. Client dan server dalam kasus ini menunjukkan dua tempat
yang berbeda. Server adalah komputer yang bertindak sebagai pihak yang
melayani permintaan data atau informasi. Sedangkan Client adalah
komputer pengguna yang hendak mengakses program ke server untuk meminta
data atau informasi dengan menggunakan alamat yang unik. Secara umum
interaksi dan pertukaran data antara client dan server dalam internet
tampak pada gambar 14.2. Pada gambar tersebut, tampak bahwa segala
proses dilakukan di web-server (serverside) sedangkan client hanya akan
menerima hasil olahan dari webserver yaitu berupa halaman-halaman dalam
format HTML.
Biasanya
perangkat komputer yang bertindak sebagai server akan berjalan
terusmenerus tanpa henti dan berperan sebagai tempat dimana file/program
dari aplikasi web ditempatkan. Secara umum, untuk dapat mengakses
layanan ke server dibutuhkan browser seperti Internet Explorer (IE),
Opera, Mozilla dan Netscape.
Bahasa Skrip untuk Pemrograman Web
Seperti
dijelaskan di atas ada dua model pemrograman web yaitu client-side
dan server-side. Bahasa pemrograman untuk membuat web dinamis juga
terbagi menjadi dua yaitu client-side script dan server-side
script. Bahasa pemrograman yang digunakan dalam membuat aplikasi pada
sisi client biasa disebut sebagai client-side script. Client-side script
yang umum digunakan adalah JavaScript dan VBScript. Keuntungan utama
dari client-side script adalah waktu prosesnya yang jauh lebih cepat
dibanding server-side. Hal ini karena seluruh permintaan pengguna akan
diproses pada komputer pengguna sendiri. Namun masalah terbesar dari
aplikasi dengan client-side script adalah keamanan kode dan data. Hal
karena pengguna dapat dengan mudah membuka dan melihat kode program.
Contoh penggunaan client-side script adalah :
aplikasi web untuk kalkulator, tanggal atau permainan.
pemeriksaan event pada browser, jika mouse diklik kanan maka akan muncul keterangan yang dibutuhkan.
validasi isi form yang diinputkan oleh pengguna, sebelum isi form tersebut dikirim ke server.
Bahasa pemrograman yang digunakan dalam membuat aplikasi pada sisi server biasa disebut sebagai server-side script.
Ada beberapa keuntungan pada penggunaan server-side script, yaitu :
Keamanan kode
Script
yang kita buat tidak akan dapat dibaca oleh user karena seluruhnya
akan disimpan dan dijalankan di web server. Yang akan dikirim ke client
(pengguna) adalah hasil pengolahan yang berupa dokumen dalam format HTML
saja. Koneksi dengan basis data Kemampuan koneksi dengan basis data
merupakan keuntungan terbesar dari server-side script. Dengan kemampuan
ini informasi yang dihasilkan oleh web server menjadi sangat dinamis
bukan lagi halaman-halaman statis. Informasi yang disampaikan ke user
tergantung dari apa yang diinginkan oleh user tersebut.
Dapat melakukan tracking (pelacakan) pengguna
Dengan server-side script, dapat diketahui siapakah user yang sedang akses ke aplikasi web dengan menggunakan fasilitas session.
Saat
ini ada tiga teknologi utama yang digunakan dalam server side script,
yaitu ASP (termasuk ASP.Net), PHP, dan JSP. JSP akan kita bahas pada
bagian lain dari bab ini.
ASP
ASP sebenarnya bukan
bahasa pemrograman karena ASP adalah mesin (engine) untuk server side
script yang ditanamkan pada IIS. Bahasa pemrograman yang dipakai adalah
VBScript. Namun orang lebih sering menyebut ASP saja. Secara default ini
adalah server side script pada web server Microsoft Windows.
Seperti halnya bahasa pemrograman web lainnya, untuk menandai bahwa
suatu kode dalam halaman web merupakan VBScript maka digunakan tag
sebagai penanda.
Berikut ini suatu contoh VBScript:
<html>
<body>
<% Response.Write("Hello World!") %>
</body>
</html>
Atau sebagai berikut:
<html>
<body>
<%= "Hello World!" %>
</body>
</html>
Pada
kode di atas bagian yang ditandai dengan <% dan %> merupakan
bagian yang memuat kode VBScript. VBScript merupakan bahasa yang sangat
mirip dengan Visual Basic. Namun telah disesuaikan dengan lingkungan
web. Dokumen berisi kode ini dapat disimpan dalam bentuk html atau
dengan ekstensi .asp. Namun yang paling penting adalah dokumen tersebut
harus diletakkan pada direktory yang dapat dibaca dan dieksekusi oleh
web server IIS. ASP.Net merupakan versi lanjutan dari ASP, namun dengan
teknologi yang sangat berbeda. ASP.Net dibangun berdasarkan pada
teknologi .Net yang dikembangkan oleh Microsoft. Bahasa yang digunakan
tidak lagi VBScript namun telah menggunakan kemampuan penuh dari salah
satu dari bahasa-bahasa dalam kelompok .Net yaitu Visual Basic.NET, C#,
Visual J. Dengan teknologi .Net memungkinkan tag-tag HTML digantikan
secara penuh oleh script-script yang ditulis dengan bahasa-bahasa .Net.
PHP
PHP
adalah bahasa pemrograman yang didesain khusus untuk membuat halaman
web. PHP adalah singkatan dari PHP Hypertext Preprocessor.
Singkatan
yang agak aneh. Awalnya, PHP adalah singkatan dari Personal Home Page
yang pertama kali diciptakan oleh Rasmus Lerdorf. PHP diciptakan
pertama kali untuk keperluan mencatat jumlah pengunjung homepagenya.
Perkembangan php saat ini dapat dilihat pada www.php.net.
PHP
adalah salah satu bahasa server-side yang paling populer.
Kepopulerannya disebabkan kelebihan-kelebihannya dibanding bahasa
sejenis, seperti Perl dan CGI. PHP mampu menutupi kekurangan pada bahasa
pemrograman web pada umumnya. PHP mudah dibuat dan cepat dijalankan.
PHP dapat berjalan dalam web server yang berbeda, seperti Apache, PWS,
IIS dan sebagainya. PHP juga dapat berjalan dalam sistem operasi yang
berbeda pula, seperti UNIX, Windows, Mac OS X dan Linux. PHP diterbitkan
secara gratis. Source code PHP dapat didownload tanpa perlu megeluarkan
uang. PHP juga termasuk bahasa yang embedded (bisa diletakkan di dalam
tag HTML).
Persiapan Membuat Halaman Web Dinamis
Persiapan yang perlu dilakukan sebelum membuat halaman web dinamis antara lain adalah:
Memeriksa apakah web server sudah terinstal dengan benar dan berjalan sebagaimana mestinya.
Pada
system operasi windows, kita dapat memeriksa apakah web server
berjalan atau tidak melalui jendela Service. Buka Control Panel,
kemudian klik ganda pada ikon Administrative Tools. Pilih ikon Service
dan klik ganda pada ikon tersebut sampai terbuka jendela seperti pada
Gambar 14.3.
Pada
jendela Services tersebut cari nama servis web server kalian. Jika
kalian menggunakan IIS cari nama Internet Information Services pada
kolom nama.
Jika kalian memakai Apache, cari juga nama Apache.
Jika belum ada mungkin belum terinstal atau belum didaftarkan sebagai
servis. Jika sudah ada maka periksalah apakah sudah dijalankan apa belum
dengan cara memeriksa kolom status apakah sudah started atau belum.
Jika belum, klik start untuk menjalankan servis tersebut. Setelah itu
ujilah dengan menjalankan web browser kalian. Ketikkan pada bagian
alamat :
http://localhost/ kemudian tekan enter. Pada beberapa konfigurasi web server, pemanggilan alamat mungkin harus menyertakan nomor port seperti
http://localhost:8080/.
Jika kalian mendapati halaman muka web server kalian tampil (lihat
Gambar 14.4) berarti web server telah dapat berjalan. Tetapi jika tidak
muncul atau terjadi pesan kesalahan berarti web server belum dapat
berjalan dengan baik.
Memeriksa apakah bahasa pemrograman server yang akan digunakan sudah terinstall dan dapat dipanggil oleh web server.
Pemeriksaan
dapat dilakukan dengan cara memeriksa daftar perangkat lunak yang sudah
diinstal di dalam sistem. Pada Windows dapat dilakukan dengan cara
membuka jendela Add and Remove Programs seperti pada Gambar 14.5.
Jika perangkat lunak bahasa pemrograman kalian sudah terinstal maka akan terdaftar pada jendela ini.
Mempersiapkan lokasi penyimpanan file-file kode program.
File-file
yang berisi kode-kode server-side script harus diletakkan dalam
direktori yang bisa dibaca oleh web server. Sebagai contoh pada beberapa
distribusi Linux file-file PHP disimpan pada direktori /usr/var/www/
dibeberapa distribusi yang lain disimpan di direktori /svr/www/. Pada
Microsoft Windows demikian juga. Lokasi ini dapat diubah dengan cara
mengedit file konfigurasi Apache Web Server (httpd.conf). Contoh lokasi
penyimpanan file-file PHP dapat dilihat pada Gambar 14.6.
Pembuatan dan Pengujian Halaman Web Dinamis
Pada
bagian ini kita akan mencoba membuat halaman dinamis sederhana dengan
bahasa PHP pada web server Apache. Buka teks editor kalian (bisa
menggunakan Notepad) kemudian ketikkan kode berikut ini.
<?php
echo “Hallo, ini PHP. Salam kenal ya..!!!”;
?>
Simpan
file dengan nama 21_1.php dan simpan di direktori yang bisa diakses web
server Apache (pada kasus ini disimpan di direktori
c:\appserv\www\scripts\).
Bukalah web browser kalian kemudian ketikkan di halaman alamat:
http://localhost:8080/scripts/21_2.php.
Localhost adalah nama server-nya dan 8080 adalah port dimana Apache
dijalankan. Perhatikan bagaimana menuliskan alamat ini dan bandingkan
dengan lokasi asli dari file tersebut. Jika semuanya lancar maka kalian
akan mendapati tampilan seperti pada Gambar 14.7.
Halaman
web dinamis harus dipanggil dengan cara tersebut. Karena memang hanya
bisa dijalankan oleh web server. Kalau dengan file halaman web
statis, kalian bisa langsung klik ganda pada file tersebut dan web
browser akan menampilkan hasilnya. Tetapi dengan halaman web dinamis
tidak bisa dengan cara tersebut. Cobalah klik ganda pada halama web
dinamis yang telah kalian buat di atas. Bagaimanakah outputnya?
SEKILAS TENTANG JSP
Seperti
telah dijelaskan di atas, Java Server Pages (JSP) adalah bahasa
scripting untuk web programming yang bersifat server side seperti halnya
PHP dan ASP.
JSP dapat berupa gabungan antara baris HTML dan fungsi-fungsi dari JSP itu sendiri.
JSP
adalah suatu teknologi web berbasis bahasa pemrograman Java dan
berjalan di Platform Java, serta merupakan bagian teknologi J2EE (Java 2
Enterprise Edition). Teknologi JSP menyediakan cara yang lebih mudah
dan cepat untuk membuat halaman-halaman web yang menampilkan isi secara
dinamik. Teknologi JSP didesain untuk mempermudah dan mempercepat
pembuatan aplikasi berbasis web yang bekerja dengan berbagai macam web
server, application server, browser dan development tool.
Java dan JSP
Ada
tiga cara untuk menggunakan teknologi Java dalam lingkungan web,
yaitu applet, servlet dan JSP. Applet merupakan program Java yang
disisipkan pada halaman HTML dengan menggunakan tag <APPLET>. Kita
dapat membuat sebuah program yang kompleks dengan menggunakan bahasa
Java kemudian jika ingin ditampilkan dalam halaman web, kita menyimpan
program tersebut dalam bentuk applet dan menyisipkannya pada
halaman-halaman HTML. Applet ini akan dieksekusi oleh Java Virtual
Machine (JVM) pada browser. Sayangnya seringkali komputer client tidak
didukung oleh JVM, sehingga applet tersebut tidak dapat dijalankan.
Servlet
adalah program yang ditulis dengan bahasa Java yang dijalankan
pada server yang terkoneksi web. Pada servlet, komputer client tidak
membutuhkan JVM, karena semua kode program akan dieksekusi di sisi
server. Output yang akan disampaikan kepada browser client adalah murni
HTML. Servlet ini akan dikompilasi dalam bentuk class. Servlet secara
umum mampu meningkatkan sisi interaktif dan dinamis halaman web.
Kelemahan dari servlet adalah teks-teks HTML yang berisi tampilan
halaman harus dibuat dengan menggunakan bahasa pemrograman Java. Hal ini
menyulitkan jika kita ingin mengubah tampilan bagian HTML-nya, karena
berarti kita harus membuka kembali kode program java di servlet.
JSP
merupakan solusi dari servlet. Kita tidak perlu mengkodekan teks-teks
HTML pada program, tapi cukup menyisipkan kode JSP pada teks HTML.
Artinya bagian static yang berupa tag-tag HTML akan terpisah dari kode
JSP. Kita dapat membuat halaman web static dengan HTML / Web editor,
kemudian kita sisipi dengan kode JSP untuk membuat halaman menjadi web
dinamis.
Mekanisme Kerja Aplikasi Web Berbasis JSP
Secara
umum aplikasi web berbasis JSP akan mengikuti mekanisme seperti Gambar
14.8. Halaman-halaman web yang mengandung kode JSP akan dikirim ke web
server. Kemudian web server akan memanggil perangkat lunak penerjemah
JSP. Oleh penerjemah ini kode JSP akan dirubah menjadi file sumber
berekstensi .Java. file ini akan dikompilasi untuk menghasilkan
class. Hasil dari kompilasi ini akan dijalankan kemudian hasilnya akan
disampaikan kepada web server untuk diteruskan pada browser client.
Sekilas
proses di atas terlihat bertele-tele. Pada awalnya, memang
untuk menampilkan halaman yang mengandung JSP terasa lambat karena
proses kompilasi harus dilakukan. Tetapi ketika memanggil untuk yang
kedua kali maka proses penampilan halaman akan sangat cepat. Hal ini
karena proses kompilasi
tidak perlu dilakukan lagi.
Kebutuhan Perangkat Lunak dan Konfigurasi
Untuk
membangun aplikasi web berbasis JSP, diperlukan perangkat lunak
yang hampir sama dengan web dinamis lainnya. Namun ada kekhususan
dibanding dengan ASP atau PHP. Hal ini karena perbedaan mekanisme proses
antara JSP dengan ASP atau PHP. Selain perangkat lunak yang telah
disebutkan di bagian awal berikut ini adalah kebutuhan perangkat lunak
tambahan untuk JSP. Java Development Kit (JDK). Karena JSP berdasarkan
bahasa Java, maka JDK harus terinstal di dalam komputer. JDK telah
dibahas secara singkat pada bab 8. Tomcat. Tomcat adalah servlet
container dan implementasi JSP. Dibutuhkan untuk mensimulasi komputer
personal menjadi web server. Tomcat biasanya diinstalkan di atas web
server Apache, sehingga orang sering menyebut sebagai Apache Tomcat.
Perangkat lunak ini dapat didownload gratis di situs
http://jakarta.apache.org.
Aplikasi
pengembang terpadu (IDE) seperti NetBeans atau Eclipse.
Meskipun membuat halaman JSP bisa dengan menggunakan teks editor biasa
namun disarankan untuk menggunakan aplikasi seperti NetBeans untuk
mempermudah pembuatan halaman web. Bahkan pada versi 6.1. (dapat
didownload di
http://www.netbeans.org)
selain mendapatkan IDE kita juga mendapatkan web server dan servlet
container (Apache Tomcat) terpadu (Gambar 14.9). Kita juga bisa
menggunakan aplikasi server yang sangat kuat yaitu SUN Java
Application Server (Gambar 14.10) yang juga terintegrasi pada paket
penuh NetBeans. Pada buku ini kita akan banyak menggunakan fasilitas
dari NetBeans baik untuk konfigurasi maupun untuk membuat
halaman-halaman JSP.
Setelah
semua terinstal dengan benar, maka langkah yang kedua
adalah konfigurasi, terutama lokasi penyimpanan file. Buka NetBeans,
kemudian setelah terbuka pilih menu Tools kemudian pilih Options. Pada
jendela Options (Gambar 14.11), pilih tab Miscellaneous. Klik Add
Directory untuk untuk membuka jendela Add Lo al Directory. Pilih lokasi
kemudian tekan OK. Pada klik Ok pada jendela Options untuk keluar.
Untuk
menguji apakah halaman JSP dapat dijalankan, pada halaman
awal NetBeans, klik menu File dan pilih New Project. Jendela New Project
seperti Gambar 14.12. akan terbuka. Pada bagian Choose Project pilih
kategori Web dan pada Projects pilih Web Application. Klik Next untuk
melanjutkan pada menentukan nama dan lokasi penyimpanan project (Gambar
14.13). klik Next untuk melanjutkan menentukan tipe dan setting server
(Gambar 14.14). Pada bagian ini kita dapat memilih apakah menggunakan
Apache Tomcat atau GlassFish (Java Application Server). Klik Finish
untuk menyelesaikan konfigurasi aplikasi web.
Perhatikan
pada jendela Project klik Files kemudian cermati struktur direktori
pada direktori JSP-01 (Gambar 14.16). Struktur direktori aplikasi JSP
harus mengikuti aturan yang ketat. Di bawah direktori JSP-01 terdapat
direktori dengan penting yaitu web. direktori ini tempat kita menyimpan
file dengan ekstensi .jsp. Di bawah direktori web terdapat direktori
WEB-INF. Direktori ini harus ditulis namanya seperti ini, jika
tidak maka aplikasi tidak akan jalan. Direktori ini berisi file-file
konfigurasi yang penting bagi jalannya aplikasi web dengan JSP.
Coba
kalian jalankan halaman JSP yang telah otomatis dibuatkan oleh
NetBeans dengan cara pilih menu Run, kemudian pilih Run Main Project.
Kode program yang dibuatkan otomatis oleh NetBeans ini seperti berikut:
Document : index
Created on : Jun 21, 2008, 9:42:26 AM
Author : Aunur R. Mulyarto
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
Jika
web browser kalian telah berhasil menampilkan halaman seperti
pada Gambar 14.17, berarti kalian telah siap untuk membuat aplikasi
dengan JSP. Perhatikan pada alamat URL-nya, halaman ini dipanggil dengan
alamat
http://localhost:8080/JSP-01/.
Karena file yang kita panggil adalah file index.jsp, maka kita
dibolehkan memanggil halaman tersebut tanpa menyebut nama
file. Konfigurasi pada server telah membuat server mengenali bahwa
halaman dengan nama index adalah halaman awal.
DASAR-DASAR JSP
JSP
menyediakan empat kategori tag, yaitu directive, elemen
scripting, komentar, dan action. Pada bagian ini kita tidak akan
mempelajari tentang deklarasi variabel, struktur kontrol program, class
dan method. Hal ini karena JSP didasarkan pada java, sehingga
bagian-bagian tersebut sama dengan apa yang kalian pelajari pada bab
tentang pemrograman Java (Bab 8).
Directive
Directive
adalah sekumpulan tag yang menentukan bagaimana dokumen yang berisi
direktif ini akan diproses. Directive digunakan JSP untuk
mengirimkan “pesan” ke JSP container. Directive berguna untuk melakukan
setting nilai global seperti deklarasi class atau method. Setting yang
dilakukan oleh directive berlaku pada seluruh halaman (hanya halaman itu
saja).
Secara umum sintaks directive adalah sebagai berikut :
<%@ nama_directive atribut1=”nilai1” atribut2=”nilai2” . .
%>
Directive pada JSP terdiri atas tiga jenis tentu saja dengan fungsi yang berbedabeda.
Page :
digunakan untuk mendefinisikan atribut-atribut yang terdapat
pada halaman JSP. Atribut-atribut ini misalnya atribut language, import,
info, errorpage dan lain-lain. Cara penulisannya dengan menggunakan
tanda @ setelah tag JSP (<%) diikuti kata page dan atributnya.
Contoh : <%@ page language=”java” %>
Include :
digunakan untuk menyisipkan suatu berkas atau mengimpor suatu kelas.
Cara penulisannya dengan menggunakan tanda @ setelah tag JSP (<%)
diikuti kata include dan atributnya.
Contoh : <%@ include file="/header.html" %>
Taglib :
digunakan untuk mendefinisikan tag-tag yang dibuat sendiri
oleh pemrogram. Cara penulisannya dengan menggunakan tanda @ setelah tag
JSP (<%) diikuti kata taglib dan atributnya.
Elemen Scripting
Elemen
scripting digunakan untuk menggabungkan instruksi-instruksi pemrograman
Java ke dalam halaman web. Instruksi tersebut akan dieksekusi setiap
kali halaman diproses sebagai permintaan. Ada tiga jenis scripting
yaitu deklarasi, scriplet dan ekspresi.
Deklarasi
JSP
menyediakan tag yang secara khusus ditujukan untuk
melakukan pendeklarasian variable yang berlevel halaman. Variabel
seperti ini akan dikenali di sepanjang halaman. Tag yang dimaksud
dinamakan tag deklarasi. Tag ini berbentuk sebagai berikut :
<%!.....%>
Contoh 14.1. Penggunaan tag deklarasi.
Ketikkan kode berikut dan simpan dengan nama contoh14-1.jsp.
<html>
<head>
<title>Tag Deklarasi</title>
</head>
<body>
<%!
String baju;
int harga = 60000;
%>
Setelah Deklarasi : <br>
<%
baju = "John Mc Roe";
out.println("Merek baju : " + baju + "<BR>");
out.println("Harga baju : " + harga + "<BR>");
%>
</body>
</html>
Jalankan
program tersebut maka tampilan hasil akan tampak seperti pada Gambar
14.18. Pada contoh kode ini tag deklarasi digunakan
untuk mendeklarasikan dua variabel yaitu baju dengan tipe data string
dan harga dengan tipe data int. Perhatikan juga cara mengisi, memanggil
dan menampilkan kembali isi dari variabel dengan pernyataan out.println.
Scriplet
Scriplet
merupakan sekumpulan kode program Java uang dijalankan setiap
kali halaman JSP dipanggil. Pada bagian ini kalian bisa memasukkan
kode-kode program Java yang telah kalian pelajari pada Bab 8. Cara
penulisannya adalah dengan memberikan tag <% kode %>.
Contoh 14.2. Penggunaan tag scriplet.
<html>
<head>
<title>Contoh Println</title>
</head>
<body>
<%
out.print("Ini keluar dari tag scriplet");
out.print("Coba saja kalau tidak percaya”);
%>
</body>
</html>
Simpan file dengan nama yang diakhiri .jsp. Jalankan kode progam tersebut dan periksalah hasilnya.
Ekspresi
Ekspresi
adalah satu baris perintah yang digunakan untuk mengeksekusi perintah
sekaligus menampilkan dalam halaman web. Eskpresi ini mirip
seperti ketika kita memanggil fungsi/method pada Java. Cara penulisannya
adalah dengan menggunakan tag <%= kode %>
Contoh 14.3. Penggunaan tag ekspresi.
Ketikkan kode di bawah ini kemudian simpan sebagai file jsp.
<%! //Deklarasi variabel
int jmlUser=3;
//Deklarasi method
public String Hello(String nama) {
return "Hallo " + nama;
}
%>
<HTML>
<HEAD>
<TITLE>Contoh tag ekspresi JSP</TITLE>
</HEAD>
<BODY>
<H3>
<% for (int i=1; i<=jmlUser; i++) {
//Contoh scriplets
%>
<i><%=Hello("User "+ i + "!")%> </i> <br>
<%}%>
</H3>
</BODY>
</HTML>
Jalankan kode program di atas. Tampilan output akan tampak seperti pada Gambar 14.19.
Komentar
Komentar
digunakan untuk memberikan keterangan pada kode-kode JSP. Ada tiga
jenis komentar yang dapat disisipkan dalam halaman JSP, yaitu
komentar content, komentar JSP dan komentar bahasa script.
Komentar
content ditulis dengan tag <!-- komentar -->. Komentar model
ini tidak menampilkan output ke browser. Tapi tertulis pada source
HTML. Komentar JSP merupakan tipe komentar yang hanya tampak pada kode
program JSP. Ketika kode JSP dikompilasi, komentar tersebut akan
dilewati dan tidak ikut dikompilasi. Komentar ini dituliskan dengan cara
<%-- komentar -->. Komentar bahasa script sama dengan yang
digunakan pada Java (lihat kembali bab 8). Komentar ini disisipkan pada
scriplet. Pada contoh 14.3 kita telah menggunakan salah satu cara
komentar bahasa script. Perhatikan pada baris yang diawali dengan tanda
//. Cara yang lain adalah dengan tanda /* komentar */.
Action
Action
mendukung beberapa aksi yang berbeda-beda. Hampir mirip
dengan scripting, action akan dieksekusi setiap kali ada permintaan.
Fungsi penting dari action adalah memungkinkan terjadinya transfer
kontrol antar halaman, mendukung penggunaan applet Java dan memungkinkan
JSP terintegrasi dengan komponen JavaBeans.
JSP mengenal tag
action standar dan custom tag. Tag standar adalah tag yang didefinisikan
dalam spesifikasi JSP, sedangkan custom tag adalah tag baru yang dapat
didefinisikan sendiri. Pada bagian ini hanya dibahas mengenai tag
action standar. Tag action standar JSP adalah sebagai berikut :
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>
<jsp:param>
<jsp:include>
<jsp:forward>
<jsp:plugin>
Pada
buku ini kita akan mempelajari penggunaan action standard forward
dan param. Forward action ini digunakan untuk mentransfer kontrol dari
sebuah halaman JSP ke halaman lain pada server lokal. Saat proses
berlangsung, barisbaris kode sesudah forward action pada JSP asal tidak
akan diproses lagi oleh JSP container. Proses berpindah pada halaman
tujuan. Cara penulisannya adalah dengan menggunakan tag <jsp:forward
page=”localURL” />.
Forward action biasanya digunakan bersama-saman dengan Param action.
Perhatikan contoh berikut.
Contoh 14.4. Penggunaan forward action untuk operasi login.
Buat tiga file masing-masing bernama login.html, testlogin.jsp, dan validlogin.jsp.
Isi dari masing-masing file adalah sebagai berikut.
File login.html
<html>
<head>
<title>Login </title>
</head>
<body>
<FORM ACTION="testlogin.jsp" METHOD="post">
Silakan masukkan nama dan password anda : <BR>
Nama :<INPUT TYPE="text" NAME="nama"> <BR>
Password :<INPUT TYPE="text" NAME="pass"> <BR>
<INPUT TYPE="SUBMIT" VALUE="Login">
</FORM>
</body>
</html>
File testlogin.jsp
<html>
<head>
<title>Test Login </title>
</head>
<body>
<%
String nama = request.getParameter("nama");
String pass = request.getParameter("pass");
if ((nama.equals("aunurrm")) &&
(pass.equals("arm"))) {
%>
<jsp:forward page='validlogin.jsp' >
<jsp:param name='id' value='<%= nama %>' />
</jsp:forward>
<% }
else {
%>
<jsp:forward page='login.html' />
<% }
%>
</body>
</html>
File validlogin.jsp
<html>
<head>
<title>Login OK</title>
</head>
<body>
<H3>
Selamat <%=request.getParameter(“id”) %> <BR>
Anda berhasil login<BR>
</H3>
</body>
</html>
Jalankan
halaman login.html maka kalian akan mendapatkan tampilan seperti pada
Gambar 14.20. Isikan sembarang nama dan password kemudian tekan tombol
Login. Kalian tidak akan mendapatkan hasil apa-apa. Nama dan password
anda akan hilang. Demikian berulang-ulang. Sekarang masukkan pada nama
‘aunurrm’ dan passwordnya ‘arm’ (tanpa tanda petik). Tekan tombol Login,
maka kalian akan mendapatkan hasil seperti pada Gambar 14.21.
Pada
contoh di atas file login.html merupakan file untuk menerima input
nama dan password. Pada file ini kita menggunakan fitur form pada HTML.
Formulir dibentuk dengan menggunakan pasangan tag <FORM> dan
</FORM>. Dua atribut utama dari FORM yang sering digunakan adalah
ACTION dan METHOD. ACTION menentukan alamat yang akan dijalankan dan
menerima semua masukan pada FORM. Jika ACTION tidak disebutkan,
informasi akan dikirim ke alamat yang sama dengan halaman FORM itu
sendiri.
METHOD digunakan untuk menentukan bagaimana informasi
dikirim ke alamat yang disebutkan dalam ACTION. Nilai yang umum
digunakan adalah GET dan POST. POST membuat informasi akan dikirim
secara terpisah dengan alamat, sedangkan GET akan membuat informasi
dikirim menjadi satu dengan alamat yang dituju.
Contoh di atas
menggunakan action=”testlogin.jsp” dan metode penyampaiannya adalah
post. Artinya data pada form akan dikirim ke file dengan nama
testlogin.jsp yang berada satu direktori dengan file login.html.
File
kedua yang testlogin.jsp adalah file yang digunakan untuk menangkap
input kemudian memeriksa apakah input tersebut valid atau tidak.
Perintah request.getParameter digunakan untuk menerima input sesuai
dengan variabel input yang ditetapkan. Sebagai contoh
request.getParameter(‘nama’) berarti akan menangkap isi dari variabel
nama dari file login.html. Isi dari nama dan pass ini kemudian di
masukkan pada variabel string dengan nama yang sama. Kemudian dicocokkan
apakah nama = ‘aunurrm’ dan pass=’arm’. Jika benar maka action forward
dilakukan yaitu membawa isi yang didefinisikan di action param yaitu
variabel ‘id’ ke file loginvalid.jsp. Jika tidak maka action
forward juga dilakukan tetapi kembali ke file login.html.
File
ketiga hanya dipanggil jika syarat nama dan pass dipenuhi. File ini
juga menggunakan request.getParameter untuk menangkap variabel
‘id’. Keamanan dalam Web Dinamis Web termasuk layanan internet yang
paling rentan terhadap ancaman dan pelanggaran. Ada beberapa cara yang
bisa dilakukan oleh pihak yang tidak bertanggung jawab terhadap suatu
situs, antara lain:
Pemanfaatan bug sistem. Para penyerang
menggunakan bug (kesalahan) yang dikandung oleh sistem operasi, web
server, bahasa pemrograman web, atau kode-kode lain yang terinstal di
komputer server. Jika ini berhasil ditembus, maka penyerang dapat
mengambil alih sistem secara keseluruhan. Pemanfaatan bug pada aplikasi
client. Kadang-kadang kita tidak terlalu memperhatikan bug pada aplikasi
client, misalnya adanya fitur berbahaya pada web browser yang dapat
dijadikan batu loncatan oleh para penyerang.
Pengaksesan tidak
sah. Cara ini dilakukan dengan mendapatkan hak akses (user name dan
password) secara tidak sah. Dengan menggunakan perangkat lunak tertentu,
seperti password cracker, penyerang berusaha mengintip apa
yang dilakukan pengguna saat login pada aplikasi web. Setelah memperoleh
hak akses tersebut, mereka menggunakan untuk mengakses dan
mengganggu system secara tidak sah.
Penyadapan transmisi
informasi (eavesdropping). Informasi di internet seperti mobil yang
berlalu lalang di jalan-jalan. Teknik ini termasuk tingkat
tinggi. Dilakukan dengan cara mencegat dan menyadap informasi yang
ditransmisikan antara web server dan web browser. Biasanya yang dituju
adalah data-data rahasia seperti password, nomor account, nomor kartu
kredit, dan rekaman transaksi online.
Penyerangan dengan
Denial of Service (DOS). Bentuk penyerangan ini lebih mengarah pada
lingkungan jaringan bukan pada system. Serangan ini ditujukan untuk
melumpuhkan suatu system dengan cara membanjiri jaringan dengan trafik
yang sangat tinggi dan terus menerus melebihi kapasitas yang
didukung. Hal ini mengakibatkan system jaringan berhenti bekerja dan
tidak dapat melayani permintaan pengguna.
Secara
umum tidak ada perangkat lunak yang seratus persen menjamin bebas dari
gangguan keamanan. Hal ini karena celah-celah keamanan selalu muncul
di sana sini yang memungkinkan penyerangan. Namun ada beberapa
langkah yang dapat digunakan untuk mengurangi resiko terserang gangguan,
antara lain:
Menjalankan server secara aman, misalnya dengan
tidak memberikan kesempatan pada pengguna untuk mengakses melalu shell,
membuat fasilitas perekam kesalahan (log) dari web server. Menerapkan
permissions atau hak akses pada direktori dan file secara ketat (buka
Bab 4 untuk mempelajari lagi permissions). Permissions ini juga
harus diterapkan pada file-file konfigurasi web server. Menuliskan
program aplikasi web secara aman. Sering kali kesalahan yang
tidak disengaja pada pembuatan aplikasi web menjadikan aplikasi menjadi
tidak aman. Ada baiknya aplikasi diperiksa dan diuji berulangkali untuk
memastikan celah keamanannya sangat minimal.
Mencegah dan
memproteksi informasi dengan cara melakukan enkripsi (penyandian) agar
tidak dapat dibaca oleh penyadap. Mengontrol akses ke web server. Cara
ini dilakukan untuk melindungi data-data internal yang tidak bisa
diakses dari luar. Beberapa cara dapat dilakukan seperti membatasi akses
berdasarkan alamat IP atau domain, membatasi pengguna berdasarkan
kategori tertentu, dan lain-lain.
Pemrograman
web merupakan usaha untuk membuat halaman web dengan menggunakan bahasa
pemrograman web (script). Ada dua model pemrograman web yaitu
client-side dan server-side. Bahasa pemrograman untuk membuat web
dinamis juga terbagi menjadi dua yaitu client-side script dan
server-side script. Untuk membangun aplikasi web dinamis, diperlukan
persiapan pada web server, bahasa pemrograman web, lokasi penyimpanan
web dinamis, dan konfigurasi dari aplikasi. Java Server Pages (JSP)
adalah bahasa scripting untuk web programming yang bersifat server side
dan berjalan di Platform Java. JSP menyediakan empat kategori tag, yaitu
directive, elemen scripting, komentar, dan action.
Web
termasuk layanan internet yang paling rentan terhadap ancaman
dan pelanggaran oleh karena itu upaya pencegahan dan pengamanan web
adalah sangat penting.