Anda di halaman 1dari 103

1

INSTALASI

Dalam tutorial ini akan dijelaskan tentang pemrograman Java, baik di Linux maupun
di Windows. Pertama kali akan dipaparkan cara-cara instalasi program. Kemudian
setelah itu baru dijelaskan tentang beberapa program sederhana (Hallo), berupa
aplikasi sederhana, aplikasi dengan frame, dan applets.

INSTALASI di LINUX

Dalam instalasi ini, kita pakai Linux dari distro Mandrake 9.0. JDK akan kita
letakkan di direktori /usr, dan kita harus bekerja sebagai root. Di sistem operasi
Linux, /usr digunakan untuk meletakkan program-program, sehingga sangatlah tepat
kalau JDK kita letakkan di sana. Tetapi kita tidak harus sebagai root jika JDK ini
ingin kita letakkan di direktori home kita.

Versi Java yang digunakan di sini adalah Java 1.4, yang di download dari alamat:
http://www.blackdown.org, dengan file hasil download adalah j2sdk-1.4.1-01-linux-
i586-gcc3.2.bin. Dalam tulisan ini, JDK akan diletakkan di /usr/java. Pertama kali
harus dibuat subdirektori java di bawah /usr, kemudian file hasil download
(j2sdk-1.4.1-01-linux-i586-gcc3.2.bin) diletakkan di /usr/java.

$ su
Password:
# cd /usr/java
java]# ls
j2sdk-1.4.1-01-linux-i586-gcc3.2.bin

File ini harus diubah mode-nya menjadi file eksekusi agar bisa dieksekusi. Jika tidak
maka akan terdapat pesan kesalahan pada waktu diinstall. Kemudian untuk meng-
install, jalankan atau eksekusi file tersebut. Berikut ini langkah-langkah mengubah
mode file dan kemudian mengeksekusinya.

java]# chmod a+x j2sdk-1.4.1-01-linux-i586-gcc3.2.bin


java]# ./j2sdk-1.4.1-01-linux-i586-gcc3.2.bin
Sun Microsystems, Inc.
Binary Code License Agreement

READ THE TERMS OF THIS AGREEMENT AND ANY


PROVIDED
SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY
"AGREEMENT")
:
:
:

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
2

Do you agree to the above license terms? [yes or no]


y
Verifying archive integrity...OK
Uncompressing Blackdown Java 2 Standard Edition SDK v1.4.1-01 for
Linux/i586..................................................................................................
....................................................................................................................
..............................................................................................................

Setelah terinstall, terlihat subdirektori baru, yaitu : /j2sdk1.4.1/

java]# ls
j2sdk1.4.1/ j2sdk-1.4.1-01-linux-i586-gcc3.2.bin*

Setelah itu, buatlah file untuk menset CLASSPATH untuk JAVA_HOME, misal
dengan nama setjava.sh. Isi file setjava.sh adalah sebagai berikut ini:

#!/bin/bash

JAVA_HOME=/usr/java/j2sdk1.4.1
CLASSPATH=./
PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

Simpan file ini ke dalam : /etc/profile.d/setjava.sh. Untuk mengaktifkan, jalankan


file setjava.sh tersebut. Atau jika komputer di-restart, maka setjava.sh ini akan
otomatis akan dijalankan.

Perhatian:
Instalasi J2SDK dari Blackdown Java di atas juga berhasil dikakukan pada RedHat
9.0, tetapi pada saat eksekusi program, terdapat kesalahan (warning) pada waktu
program sudah selesai dan akan kembali ke prompt. Dan ini cukup mengganggu.

Untuk itu pada RedHat 9.0, instalasi Java tidak menggunakan J2SDK dari
Blackdown Java, tetapi didownload dari Sun Microsystem, dengan alamat:
http://java.sun.com. File hasil download adalah: j2sdk-1_4_0_02-fcs-linux-
i586.rpm.

Instalasi dilakukan dengan mudah. Letakkan file tersebut di /usr/java, kemudian


lakukan perintah

/]# cd usr/java
java]# rpm -ivh j2sdk-1_4_0_02-fcs-linux-i586.rpm

Tunggu sampai instalasi selesai. Setelah terinstall, terdapat subdirektori baru, yaitu :
/j2sdk1.4.0_02

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
3

java]# ls
j2sdk1.4.0_02 j2sdk-1_4_0_02-fcs-linux-i586.rpm

File setjava.sh pun harus dimodifikasi sedikit dari yang di atas. Letak JAVA_HOME
berubah menjadi berada di: usr/java/j2sdk1.4.0_02. Lebih jelasnya berikut ini isi file
setjava.sh di RedHat 9.0:

#!/bin/bash

JAVA_HOME=/usr/java/j2sdk1.4.0_02
CLASSPATH=./
PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

Aplikasi Sederhana, Hello Sayang


Untuk membuat suatu aplikasi program Java, terdapat tiga langkah yang perlu
dilakukan, yaitu: menulis program, kompilasi, dan yang terakhir mengeksekusi
program tersebut. Pada saat membuat program, kita tidak harus bekerja sebagai root,
cukup sebagai user biasa.

Contoh berikut ini adalah suatu aplikasi yang akan menampilkan tulisan Hello
Sayang di layar. Tulislah program seperti pada program 1. Program bisa ditulis
dengan editor text standard di Linux, seperti emacs, joe, vi, dan sebagainya.

Program 1. HelloSayang.java
public class HelloSayang {
public static void main(String[] args){
System.out.println("Hello Sayang.....");
}
}

Sebaiknya sebelum bekerja, kita terlebih dahulu membuat direktori kerja sebagai
tempat menyimpan file-file program java ini. Sebagai contoh, misalnya kita buat
subdirektori : /myjava di direktori home kita. Simpanlah HelloSayang.java ini ke
dalam direktori kerja tersebut, sehingga menjadi: /myjava/HelloSayang.java

Selanjutnya untuk kompilasi dilakukan dengan perintah javac diikuti nama file yang
dikompilasi (javac HelloSayang.java). Hasil proses kompilasi dalam contoh ini
adalah file : HelloSayang.class. File HelloSayang.class inilah yang dieksekusi
dengan perintah java diikuti nama file class-nya(java HelloSayang), untuk
menghasilkan keluaran yang diinginkan.

myjava]$ javac HelloSayang.java


myjava]$ java HelloSayang
Hello Sayang.....

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
4

Catatan:
Untuk eksekusi, ekstensi file class tidak usah diketikkan. Dalam contoh, yaitu :
java HelloSayang (bukan : java HelloSayang.class)

Sekarang akan dibuat program HelloSayang2.java yang menampilkan tulisan yang


sama, tetapi program dibuat di dalam paket (package), misal paket bernama hello.
Program 2. berikut ini adalah baris program HelloSayang2.java.

Program 2. HelloSayang2.java
package hello;
public class HelloSayang2 {
public static void main(String[] args){
System.out.println("Hello Sayang.....");
}
}

Hasil kompilasi diletakkan di direktori yang sama. Setelah proses kompilasi berhasil,
akan muncul subdirektori baru bernama hello, sesuai dengan nama paket yang
didefinisikan di dalam program (package hello;). File class (HelloSayang2.class)
akan terletak di dalam subdirektori hello tersebut. Perintah-perintah berikut ini
adalah untuk mengkompilasi dan mengeksekusi program.

myjava]$ javac -d . HelloSayang2.java


myjava]$ java hello.HelloSayang2
Hello Sayang.....

Kalau kita lihat struktur subdirektori dan file, akan terlihat seperti berikut,

myjava/HelloSayang2.java
myjava/hello/HelloSayang2.class

Aplikasi Hello Sayang dengan Frame


Berikut ini kita akan membuat suatu aplikasi yang akan menampilkan tulisan Hello
Sayang di suatu frame. Baris program ertulis seperti program 4. Ketikkan program
ini dengan editor text.

Program 3. HelloSayang03.java
package frame01;

import java.awt.*;
import java.awt.event.*;

public class HelloSayang03 extends Frame {


Label label1 = new Label();

public HelloSayang03() {
try {
this.setSize(100,100);
label1.setText("Hallo Sayang....");

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
5

this.addWindowListener(new
HelloSayang03_this_windowAdapter(this));
this.add(label1, BorderLayout.CENTER);
this.setVisible(true);
}
catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {


HelloSayang03 helloSayang03 = new HelloSayang03();
}

void this_windowClosing(WindowEvent e) {
this.dispose();
System.exit(0);
}
}

class HelloSayang03_this_windowAdapter extends


java.awt.event.WindowAdapter {
HelloSayang03 adaptee;

HelloSayang03_this_windowAdapter(HelloSayang03 adaptee) {
this.adaptee = adaptee;
}
public void windowClosing(WindowEvent e) {
adaptee.this_windowClosing(e);
}

Sama seperti contoh-contoh sebelumnya, Hellosayang03.java dikopimpilasi. Setelah


itu akan muncul subdirektori baru bernama frame01. File-file class
(HelloSayang03.class dan HelloSayang03_this_windowAdapter.class ) akan terletak
di dalam subdirektori frame01. tersebut. Di sini terdapat dua buah file class karena di
dalam program terdapat dua buah class, yaitu HelloSayang03 dan
HelloSayang03_this_windowAdapter. Perhatikan dengan seksama program 3.

Perintah-perintah berikut ini adalah untuk mengkompilasi dan mengeksekusi


program.

myjava]$ javac -d . HelloSayang03.java


myjava]$ java frame01.HelloSayang03

Hasilnya akan tampak berupa frame yang bertuliskan : Hallo Sayang....

Sedangkan struktur subdirektori dan file terlihat seperti berikut,

myjava//HelloSayang03.java
myjava/frame01/HelloSayang03.class
HelloSayang03_this_windowAdapter.class

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
6

Aplikasi Hello Sayang dengan Applets

Rasanya belum lengkap tulisan ini jika belum menerangkan bagaimana membuat
aplikasi Java applets. Berikut ini kita akan membuat suatu aplikasi yang akan
menampilkan tulisan Hello Sayang dengan applets. Aplikasi applets ini dapat
dipanggil/dijalankan dengan suatu Web browser seperti HotJava, Netscpape, Internet
Explorer, dan sebagainya. Baris program tertulis seperti program 5. Ketikkan
program ini dengan editor text..

Program 5. HelloSayang04.java
package applet01;

import java.applet.*;
import java.awt.*;

public class HelloSayang04 extends Applet {


public void paint(Graphics g) {
g.drawString("Hello Sayang....", 50, 25);
}
}

Kita juga perlu untuk membuat file html untuk mendukung applets di atas. Berikut
ini file html tersebut, misal diberi nama Hello.html.

Program 6. Hello.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>The Hello Sayang Applet</title>

</head>
<body>
<applet code="applet01.HelloSayang04.class" width="150" height="200">
</applet>
<br>
</body>
</html>

Setelah HelloSayang04.java dikompile, muncul subdirektori baru bernama applet01.


File class (HelloSayang04.class) terletak di dalam subdirektori applet01 tersebut.
Untuk mengeksekusi program dilgunakan appletviewer yang akan mengeksekusi
file html yang mendukung applet tersebut. Perintah-perintah berikut ini adalah untuk
mengkompilasi dan mengeksekusi program.

myjava]$ javac -d . HelloSayang04.java


myjava]$ ls
applet01/ hello/ HelloSayang03.java* HelloSayang2.java*
frame01/ Hello.html* HelloSayang04.java* HelloSayang.java*
myjava]$ cd applet01
applet01]$ ls
HelloSayang04.class*

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
7

applet01]$ cd..
myjava]$ appletviewer Hello.html

myjava]$ appletviewer applet01.HelloSayang04

Kita bisa saja menge-test hasil program ini dengan memakai Web Browser. Web
Browser yang dipakai dalam contoh ini adalah Netscape 7.1 dan Mozilla 1.4.
Sebelumnya Netscape/Mozilla ini di-set terlebih dahulu agar mendukung plugin,
supaya applets yang kita buat bisa muncul di browser kita. Caranya, cari letak file
hasil instalasi Netscape/Mozilla. Dalam contoh ini : /usr/local/netscape atau
/usr/local/mozilla, selanjutnya ditulis <Netscape> atau <Mozilla>.

Catatan:
Jika kita menggunakan Web browser Mozilla bawaan dari Mandrake (9.0) atau
RedHat (9.0), maka letak <Mozilla> kemungkinan besar tidak berada di subdirektori
yang disebutkan di atas. Sebagai contoh <Mozilla> bawaan RedHat 9.0 berada di
usr/lib/mozilla-1.2.1.

Selanjutnya:

<Netscape >#cd plugins


# pwd
/usr/local/netscape/plugins
plugins]# ln -s <JAVA_HOME>/jre/plugin/i386/netscape/javaplugin_oji.so

Jika kita menggunakan j2sdk1.4.0_02 dari Sun, maka nama dan letak library plugin
agak berbeda.

plugins]# ln -s /usr/java/j2sdk1.4.0_02/jre/plugin/i386/ns610/libjavaplugin_oji.so

Dengan Netscape (atau Mozilla) ketikkan alamat file Hello.html. Akan kelihatan
hasilnya.

INSTALASI di WINDOWS
File JDK versi 1.4. untuk Windows dapat dilihat dan di download di
http://java.sun.com/j2se/1.4.1/download.html. Dalam contoh ini nama file hasil
download adalah : j2sdk-1_4_1_01-windows-i586.exe

Untuk menginstall, double-klik file tersebut, J2sdk akan terinstall dengan sendirinya.
Setelah terinstall, misalnya diinstall di C:\, maka hasil instalasi akan terlihat sebagai
berikut,

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
8

Selanjutnya kita akan men-set PATH, agar Java kita bisa dipanggil dari mana saja.
Untuk setting PATH di Windows, akan dijelaskan untuk Windows 98 dan Windows
2000.

Microsoft Windows 98
Untuk men-set PATH secara permanen, perlu modifikasi file AUTOEXEC.BAT.
Caranya sebagai berikut:

Dari Sistem editor, pilih "Start", "Run" dan ketikkan sysedit, kemudian klik OK.
Akan muncul beberapa jendela (window). Pilih satu jendela yang menampilkan
AUTOEXEC.BAT

Lihatlah di perintah (statement) PATH (jika tidak ada, tambahkan sendiri). Untuk
mudahnya, tambahkan setting path di bagian yang paling belakang. Penambahan
direktori BIN di dalam PATH adalah sebagai berikut:

PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\J2SDK1.4.1_<version
number>\BIN

Di sini tidak ada masalah dengan huruf besar atau huruf kecil. Setiap setting
PATH dipisahkan dengan tanda titik koma (;). Microsoft Windows akan melihat
program di dalam direktori PATH secara berurutan dari kiri ke kanan.

Agar hasil setting masuk ke dalam sistem komputer, restart Komputer atau
eksekusi AUTOEXEC.BAT dengan perintah berikut

C:> c:\autoexec.bat

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
9

Microsoft Windows NT, 2000, and XP


Untuk men-set PATH secara permanen, caranya sebagai berikut:

Dari Sistem editor, pilih "Start", "Settings, Control Panel. Kemudian double-
click System. Pada Microsoft Windows NT, pilih Environment tab. Pada
Microsoft Windows 2000 pilih Advanced tab, dan setelah itu Environment
Variables.
Carilah "Path" di dalam User Variables dan System Variables. Tambahkan setting
path di bagian paling kanan (belakang) di PATH dalam User Variables.
Penambahannya adalah seperti berikut ini

C:\j2sdk1.4.1_<version number>\bin

Di sini tidak ada masalah dengan huruf besar atau huruf kecil. Klik "Set", "OK"
atau "Apply". Setiap setting PATH dipisahkan dengan tanda titik koma (;).
Microsoft Windows akan melihat program di dalam direktori PATH secara
berurutan dari kiri ke kanan.
Hasil setting PATH akan masuk ke dalam sistem komputer.

Aplikasi Sederhana di Windows


Membuat aplikasi program Java di sistem operasi Windows tidak berbeda dengan
yang di Linux. Contoh untuk di Linux di atas bisa kita kerjakan juga di Windows
dengan cara yang sama. Untuk aplikasi pertama, program 1., tulislah program
dengan editor text standard yang ada di Windows, misalnya NotePad. Setelah selesai,
simpanlah HelloSayang.java (program 1.) di dalam direktori kita, misalnya :
D:\myjava\HelloSayang.java

Lihatlah bahwa penamaan direktori pun bisa dibuat sama dengan yang Linux.
Selanjutnya untuk kompilasi dan eksekusi dilakukan dengan cara yang sama juga
dengan yang di Linux.

D:\myjava\ javac HelloSayang.java


D:\myjava\ java HelloSayang
Hello Sayang.....

Untuk program 2., program 3., contoh di atas bisa dicobakan di Windows dengan
cara yang sama seperti di Linux. Setelah program ditulis dan disimpan di D:\myjava
(sama seperti di Linux), kompilasi dan eksekusinya terlihat berikut ini.

D:\myjava\javac -d . HelloSayang2.java
D:\myjava\java hello.HelloSayang2
Hello Sayang.....

Dan,
D:\myjava\javac -d . HelloSayang03.java
D:\myjava\java frame01.HelloSayang03

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
10

Aplikasi applets juga dikerjakan sama dengan di Linux. Setelah program 5., dan
program 6. selesai diketik dan disimpan, maka berikut ini adalah kompilasinya,

D:\myjava\javac -d . HelloSayang04.java

Struktur subdirektori adalah seperti berikut,

D:\myjava\dir
applet01/ hello/ HelloSayang03.java HelloSayang2.java
frame01/ Hello.html HelloSayang04.java HelloSayang.java
D:\myjava\cd applet01
D:\myjava\applet01\dir
HelloSayang04.class

Hasilnya terlihat dengan Internet Explorer seperti gambar berikut.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
11

CLASS

Class merupakan konstruksi logical di mana Java program dibuat. Class ini
mendefinisikan bentuk, rupa, dan karakter suatu obyek. Class merupakan template
dari obyek, sedangkan obyek merupakan wujud dari class. Berikut ini adalah
contoh class dalam program Java.

package kelas;

public class Box01 {


private static double panjang;
private static double lebar;
private static double tinggi;

public Box01() {
panjang = 10;
lebar = 5;
tinggi = 2;
}
public static void main(String[] args) {
Box01 box011 = new Box01();
double volume = panjang*lebar*tinggi;
System.out.println("Volume adalah "+volume);
}
}

Latihan :
Tuliskan program di atas, compile, dan run
Ubahlah panjang, lebar, dan tinggi.

Variabel dan metode


Pada suatu class, terdapat variable, dan bisa terdapat operasi. Dalam Java operasi
dalam class biasa disebut metode (ini identik dengan prosedure dalam Pascal, atau
fungsi dalam C/C++). Baik variabel maupun metode bisa bersifat private, atau
public. Private artinya variabel (atau metode) itu hanya khusus bisa digunakan
oleh class itu, dan tidak bisa diakses secara langsung oleh class yang lain.
Sedangkan public berarti variabel (atau metode) itu bisa diakses secara langsung
oleh class yang lain. Suatu class dapat dipanggil atau digunakan oleh class yang
lain sehingga program bisa terdiri atas banyak class (obyek) yang masing-masing
class mempunyai tugas sendiri-sendiri. Berikut ini adalah contoh dari class
memanggil class yang lain.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
12

package kelas;

public class Box02 {


private double panjang;
private double lebar;
variabel
private double tinggi;

public Box02(double p,double l,double t) {


this.panjang = p;
this.lebar = l;
this.tinggi = t;
}
public double volume() { metode
return panjang*lebar*tinggi;
}
}

package kelas;

public class BoxAppl01 {

public static void main(String[] args) {


Box02 box = new Box02(10,10,10);
double vol;
vol = box.volume();
System.out.println("Volume kotak = "+vol);
}
}

Latihan :
Buat class-class di atas, masing-masing dengan file tersendiri. Caranya
: Click File -> new Class, dst.
Ubahlah sifat private/public pada variabel panjang, lebar, tinggi, dan
metode pada class Box01. Kemudian coba akses dari Class BoxAppl01.

Konstruktor
Konstruktor adalah metode yang menginisialisasi obyek suatu class segera setelah
obyek tersebut dibuat. Nama metode pada konstruktor harus sama dengan nama
class-nya. Sekali suatu obyek didefinisikan, maka konstruktor ini secara otomatis
dipanggil untuk menginisialisasi obyek tersebut. Walaupun pada umumnya suatu

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
13

class hanya punya satu konstruktor, tetapi suatu class sebenarnya bisa mempunyai
konstruktor lebih dari satu. Hal ini memungkinkan kita untuk menginisialisasi
suatu obyek dengan berbagai cara. Berikut ini adalah contoh konstruktor lebih
dari satu, dan cara menginisialisasikannya.

package kelas;

public class Box01 {


double panjang;
double lebar;
double tinggi;

public Box01(double p,double l,double t) { konstruktor


this.panjang = p;
this.lebar = l;
this.tinggi = t;
}

public Box01() {
this.panjang = 1; konstruktor
this.lebar = 1;
this.tinggi = 1;
}

public Box01(double cub) {


this.panjang = cub; konstruktor
this.lebar = cub;
this.tinggi = cub;
}

public Box01(Box01 clone) {


this.panjang = clone.panjang; konstruktor
this.lebar = clone.lebar;
this.tinggi = clone.tinggi;
}

public double volume() {


return panjang*lebar*tinggi;
}
}

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
14

package kelas;

public class BoxAppl01 {

public static void main(String[] args) {


Box01 box01 = new Box01(30,20,10);
Box01 box02 = new Box01();
Box01 box03 = new Box01(10);
Box01 box04 = new Box01(box01);
double vol;
vol = box01.volume();
System.out.println("Volume kotak 1 = "+vol);
vol = box02.volume();
System.out.println("Volume kotak 2 = "+vol);
vol = box03.volume();
System.out.println("Volume kotak 3 = "+vol);
vol = box04.volume();
System.out.println("Volume kotak 4 = "+vol);
}
}

Latihan :
Buat class-class di atas, masing-masing dengan file tersendiri. Caranya
: Click File -> new Class, dst.

Inheritans
Inheritans adalah konsep yang memetakan hubungan antar class secara hirarkis, di
mana suatu class merupakan turunan dari class yang lain. Class yang merupakan
turunan disebut sub-class, sedangkan class induk disebut super-class. Suatu sub-
class mewarisi semua variable dan metode class induknya. Di samping itu sub-
class tersebut dapat mendefinisikan variable dan metodenya sendiri yang berlaku
untuk class-nya. Untuk mendefinisikan bahwa suatu class merupakan sub-class
yang lain digunakan perintah extends. Berikut ini adalah contoh program
inheritans, di mana Box02 adalah sub-class Box01.

package kelas;

public class Box02 extends Box01{


double berat;

public Box02(double p,double l,double t, double b) {


panjang = p;

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
15

lebar = l;
tinggi = t;
this.berat = b;
}
}

package kelas;

public class BoxAppl01 {

public static void main(String[] args) {


Box01 box01 = new Box01(30,20,10);
Box02 box02 = new Box02(20,20,10,5);
double vol;
double ber;
vol = box01.volume();
System.out.println("Volume kotak 1 = "+vol);
vol = box02.volume();
ber = box02.berat;
System.out.println("Volume kotak 2 = "+vol);
System.out.println("Berat kotak 2 = "+ber);
}
}

Outputnya :
Volume kotak 1 = 6000.0
Volume kotak 2 = 4000.0
Berat kotak 2 = 5.0

Latihan :
Dengan Class Box01 yang telah ada, modifikasi Class BoxAppl01,
seperti program di atas
Buat Class Box02
Compile dan run

Super
Perintah super digunakan untuk mengambil inisialisasi superclass, sehingga
inisialisasi sub-class menjadi lebih singkat.

package kelas;

public class Box01 {

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
16

private double panjang;


private double lebar;
private double tinggi;

public Box01(double p,double l,double t) {


this.panjang = p;
this.lebar = l;
this.tinggi = t;
}

public Box01() {
this.panjang = 1;
this.lebar = 1;
this.tinggi = 1;
}

public Box01(double cub) {


this.panjang = cub;
this.lebar = cub;
this.tinggi = cub;
}

public Box01(Box01 clone) {


this.panjang = clone.panjang;
this.lebar = clone.lebar;
this.tinggi = clone.tinggi;
}

public double volume() {


return panjang*lebar*tinggi;
}
}

package kelas;

public class Box02 extends Box01{


double berat;

public Box02(double p,double l,double t, double b) {


super(p, l, t);
this.berat = b;
}
public Box02() {
super();
this.berat = 1;
}
public Box02(double cub, double b) {
super(cub);
this.berat = b;
}
public Box02(Box01 box, double b) {
super(box);
this.berat = b;
}
}

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
17

package kelas;

public class BoxAppl01 {

public static void main(String[] args) {


Box02 box01 = new Box02(20,20,10,5);
Box02 box02 = new Box02();
Box02 box03 = new Box02(10,5);
Box02 box04 = new Box02(box01,5);
double vol;
double ber;
vol = box01.volume();
ber = box01.berat;
System.out.println("Volume kotak 1 = "+vol+" beratnya = "+ber);
vol = box02.volume();
ber = box02.berat;
System.out.println("Volume kotak 2 = "+vol+" beratnya = "+ber);
vol = box03.volume();
ber = box03.berat;
System.out.println("Volume kotak 3 = "+vol+" beratnya = "+ber);
vol = box04.volume();
ber = box04.berat;
System.out.println("Volume kotak 4 = "+vol+" beratnya = "+ber);
}
}

Outputnya :
Volume kotak 1 = 4000.0 beratnya = 5.0
Volume kotak 2 = 1.0 beratnya = 1.0
Volume kotak 3 = 1000.0 beratnya = 5.0
Volume kotak 4 = 4000.0 beratnya = 5

Latihan :
Modifikasi Class Box01, Box02, BoxAppl01, seperti program di atas
Perhatikan variable Box01 dapat bersifat private
Compile dan run

Method Overriding
Metode pada subclass akan mengkonsumsi semua metode yang telah ada di super-
class. Kecuali jika di subclass telah mendefinisikan metode itu sendiri. Jika
metode di sub-class sama dengan metode di superclass, maka metode yang
dieksekusi oleh program adalah metode pada sub-class. Perhatikan contoh berikut
ini,
package kelas;

public class BoxAppl01 {

public static void main(String[] args) {


Box02 box01 = new Box02(20,20,10,5);
double vol;

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
18

double ber;
String war;
vol = box01.volume();
ber = box01.berat;
war = box01.warna();
System.out.println("Volume kotak 1 = "+vol+" beratnya = "+ber);
System.out.println("Warna kotak 1 = "+war);
}
}

Latihan :
Tambahkan metode pada class Box01 berikut ini

public String warna() {


return "merah";
}

Compile dan run, perhatikan hasilnya.

Volume kotak 1 = 4000.0 beratnya = 5.0


Warna kotak 1 = merah

Tambahkan metode pada class Box02 berikut ini

public String warna() {


return "hijau";
}

Compile dan run, perhatikan hasilnya.

Volume kotak 1 = 4000.0 beratnya = 5.0


Warna kotak 1 = hijau

Interface
Interface berbentuk seperti class dalam Java, tetapi tanpa variabel dan metodenya
dideklarasikan tanpa isi. Kita mendefinisikan interface tanpa menuliskan rincian
implementasinya. Class-lah nanti yang akan merinci implementasi Interface.
Sebuah class dapat mengimplementasikan beberapa interface sekaligus. Berikut
ini adalah contoh program yang menggunakan interface.

package iface;

public interface Hitung {


double Luas ();
}

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
19

package iface;

public class Lingkaran implements Hitung {


private double jari;

public Lingkaran(double r) {
this.jari = r;
}

public double Luas() {


double A;
A = jari*jari*22/7;
return A;
}
}

package iface;

public class SegiEmpat implements Hitung{


private double panjang;
private double lebar;

public SegiEmpat(double p, double l) {


this.panjang = p;
this.lebar = l;
}

public double Luas () {


double L = panjang*lebar;
return L;
}
}

package iface;

public class ClassAppl {


public static void main(String[] args) {
SegiEmpat segiempat = new SegiEmpat(10,5);
Lingkaran lingkaran = new Lingkaran(10);
double A;
A = segiempat.Luas();
System.out.println("Luas segiempat = "+A);
A = lingkaran.Luas();
System.out.println("Luas lingkaran = "+A);
}
}

Luas segiempat = 50.0


Luas lingkaran = 314.2857142857143

Interface dapat di-extends seperti halnya pada class. Sub-interface akan mewarisi
semua metode induknya. Di samping itu sub-interface tersebut dapat

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
20

menambahkan metode tambahan. Berikut ini adalah contoh program dengan sub-
interface.
package iface;

public interface Hitung02 extends Hitung{


double Keliling();
}

public class SegiEmpat implements Hitung02{


private double panjang;
private double lebar;

public SegiEmpat(double p, double l) {


this.panjang = p;
this.lebar = l;
}

public double Luas () {


double L = panjang*lebar;
return L;
}
public double Keliling () {
double K = 2*(panjang+lebar);
return K;
}
}

package iface;

public class ClassAppl {


public static void main(String[] args) {
SegiEmpat segiempat = new SegiEmpat(10,5);
Lingkaran lingkaran = new Lingkaran(10);
double A,K;
A = segiempat.Luas();
K = segiempat.Keliling();
System.out.println("Luas segiempat = "+A);
System.out.println("Keliling segiempat = "+K);
A = lingkaran.Luas();
System.out.println("Luas lingkaran = "+A);
}
}

Luas segiempat = 50.0


Keliling segiempat = 30.0
Luas lingkaran = 314.2857142857143

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
21

SWING

Paket swing adalah bagian dari Java Foundation Class (JFC) dalam Platform java.
JFC membantu user dalam membuat aplikasi berbasis GUIs. Swing menyediakan
semua komponen dari tombol-tombol yang memisahkan panel dan tabel.

1. Latihan 1
Source Code :
import javax.swing.*;

public class Lat_1_Swing { // nama file class adalah Lat_1_Swing


public static void main(String[] args) {
JFrame frame = new JFrame("Latihan 1 Swing"); // form caption atau
frame caption
final JLabel label = new JLabel("Ini Adalah Latihan ke 1
tentang Swing"); //form label
frame.getContentPane().add(label);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //
fungsi tombol exit
frame.pack();
frame.setVisible(true);
}
}

Output :

Latihan anda adalah


a) Ubah nama file .java dengan nama anda, ingat konsekwensinya ke nama
file class anda
b) Ubah nama form caption / label menjadi : nama anda 1 swing (misal :
agus 1 swing)
c) Ubah form label menjadi : Ini dalaha latihan 1 swing punya nama anda
d) Kompile dan dan jalankan
e) Capture hasilnya dan simpan dalam dokumen anda beri nama file misalnya
Latihan_Swing_Agus.doc

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
22

2. Latihan 2
Source Code
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Lat_2_Swing extends JPanel {


static JFrame frame;

static String metal= "Metal";


static String metalClassName =
"javax.swing.plaf.metal.MetalLookAndFeel";

static String motif = "Motif";


static String motifClassName =
"com.sun.java.swing.plaf.motif.MotifLookAndFeel";

static String windows = "Sama dng Windows";


static String windowsClassName =
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

JRadioButton metalButton, motifButton, windowsButton;

public Lat_2_Swing() {

JButton button = new JButton("Contoh Tombol");


button.setMnemonic('h');

metalButton = new JRadioButton(metal);


metalButton.setMnemonic('o');
metalButton.setActionCommand(metalClassName);

motifButton = new JRadioButton(motif);


motifButton.setMnemonic('m');
motifButton.setActionCommand(motifClassName);

windowsButton = new JRadioButton(windows);


windowsButton.setMnemonic('w');
windowsButton.setActionCommand(windowsClassName);

ButtonGroup group = new ButtonGroup();


group.add(metalButton);
group.add(motifButton);
group.add(windowsButton);

RadioListener myListener = new RadioListener();


metalButton.addActionListener(myListener);
motifButton.addActionListener(myListener);
windowsButton.addActionListener(myListener);

add(button);
add(metalButton);
add(motifButton);
add(windowsButton);
}

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
23

class RadioListener implements ActionListener {


public void actionPerformed(ActionEvent e) {
String lnfName = e.getActionCommand();

try {
UIManager.setLookAndFeel(lnfName);
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();
}
catch (Exception exc) {
JRadioButton button = (JRadioButton)e.getSource();
button.setEnabled(false);
updateState();
System.err.println("Could not load LookAndFeel:
" + lnfName);
}

}
}

public void updateState() {


String lnfName =
UIManager.getLookAndFeel().getClass().getName();
if (lnfName.indexOf(metal) >= 0) {
metalButton.setSelected(true);
} else if (lnfName.indexOf(windows) >= 0) {
windowsButton.setSelected(true);
} else if (lnfName.indexOf(motif) >= 0) {
motifButton.setSelected(true);
} else {
System.err.println("Lat_2_Swing mengggunakan L&F: " +
lnfName);
}
}

public static void main(String s[]) {

Lat_2_Swing panel = new Lat_2_Swing();

frame = new JFrame("Latihan 2 Swing");


frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{System.exit(0);}
});
frame.getContentPane().add("Center", panel);
frame.pack();
frame.setVisible(true);

panel.updateState();
}
}

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
24

Output :

Untuk mode sama dengan windows akan menyesuaikan dengan tema


windows yang sedang berjalan.

Latihan anda :
a) Nama file .java adalah nama anda seperti lat1 melanjutkan
b) Label form menjadi nama anda 1 swing (misal : agus 1 swing)
c) Tombol Contoh Tombol Menjadi Tombol Nama Anda
d) Metal menjadi Logam
e) Sama dengan windows menjadi windows
f) Kompile dan jalankan
g) Capture dan simpan di dokumen yang telah anda buat

3. Latihan 3
Source Code
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Lat_3_Swing {


private static String labelPrefix = "Berapa kali tombol di
klik: ";
private int numClicks = 0;

public Component createComponents() {


final JLabel label = new JLabel(labelPrefix + "0 ");

JButton button = new JButton("Tombol Macan!");


button.setMnemonic(KeyEvent.VK_I);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numClicks++;
label.setText(labelPrefix + numClicks);
}
});

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
25

label.setLabelFor(button);

JPanel pane = new JPanel();


pane.setBorder(BorderFactory.createEmptyBorder(
30, //atas
30, //kiri
10, //bawah
30) //kanan
);
pane.setLayout(new GridLayout(0, 1));
pane.add(button);
pane.add(label);

return pane;
}

public static void main(String[] args) {


try {
UIManager.setLookAndFeel(

UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {}

JFrame frame = new JFrame("Latihan 3 Swing");


Lat_3_Swing app = new Lat_3_Swing();
Component contents = app.createComponents();
frame.getContentPane().add(contents,
BorderLayout.CENTER);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}

Output :

Latihan Anda :
a) Nama file .java adalah nama anda
b) Label form menjadi nama anda 3 swing (misal : agus 3 swing)
c) Tombol Contoh Tombol Menjadi Tombol Nama Anda
d) Kompile dan jalankan

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
26

e) Capture dan simpan di dokumen yang telah anda buat

4. Latihan 4
Source Code
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Lat_4_Swing extends JPanel {


JCheckBox chinButton;
JCheckBox glassesButton;
JCheckBox hairButton;
JCheckBox teethButton;

/*
* 4 pilihan (checkbox) yang menyediakan 16 kombinasi
gambar
* Gambar pada masing-masing kombinasi berisi bagian-bagian
gambar
* yang namanya mengindikasikan asesoris
* nama filenya adalah "geek-XXXX.gif"
* dimana XXXX dapat menjadi satu dari 16 pilihan
*

---- // Asesori 0

c--- // Asesori 1
-g--
--h-
---t

cg-- // Asesori 2
c-h-
c--t
-gh-
-g-t
--ht

-ght // Asesori 3
c-ht
cg-t
cgh-

cght // all accessories


*/

StringBuffer choices;
JLabel pictureLabel;

public Lat_4_Swing() {

// Membuat check boxes


chinButton = new JCheckBox("Chin");
chinButton.setMnemonic(KeyEvent.VK_C);
chinButton.setSelected(true);

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
27

glassesButton = new JCheckBox("Glasses");


glassesButton.setMnemonic(KeyEvent.VK_G);
glassesButton.setSelected(true);

hairButton = new JCheckBox("Hair");


hairButton.setMnemonic(KeyEvent.VK_H);
hairButton.setSelected(true);

teethButton = new JCheckBox("Teeth");


teethButton.setMnemonic(KeyEvent.VK_T);
teethButton.setSelected(true);

// Mendaftarkan listener untuk check box


CheckBoxListener myListener = new CheckBoxListener();
chinButton.addItemListener(myListener);
glassesButton.addItemListener(myListener);
hairButton.addItemListener(myListener);
teethButton.addItemListener(myListener);

// indikasi apa yg ada dalam geek


choices = new StringBuffer("cght");

// seting label gambar


pictureLabel = new JLabel(new ImageIcon(
"images/geek/geek-"
+ choices.toString()
+ ".gif"));
pictureLabel.setToolTipText(choices.toString());

// Menyimpan check boxes dalam panel


JPanel checkPanel = new JPanel();
checkPanel.setLayout(new GridLayout(0, 1));
checkPanel.add(chinButton);
checkPanel.add(glassesButton);
checkPanel.add(hairButton);
checkPanel.add(teethButton);

setLayout(new BorderLayout());
add(checkPanel, BorderLayout.WEST);
add(pictureLabel, BorderLayout.CENTER);

setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
}

/** Menuju check boxes. */


class CheckBoxListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
int index = 0;
char c = '-';
Object source = e.getItemSelectable();

if (source == chinButton) {
index = 0;
c = 'c';

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
28

} else if (source == glassesButton) {


index = 1;
c = 'g';
} else if (source == hairButton) {
index = 2;
c = 'h';
} else if (source == teethButton) {
index = 3;
c = 't';
}

if (e.getStateChange() == ItemEvent.DESELECTED)
c = '-';

choices.setCharAt(index, c);
pictureLabel.setIcon(new ImageIcon(
"images/geek/geek-"
+ choices.toString()
+ ".gif"));
pictureLabel.setToolTipText(choices.toString());
}
}

public static void main(String s[]) {


JFrame frame = new JFrame("Latihan 4 Swing");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

frame.setContentPane(new Lat_4_Swing());
frame.pack();
frame.setVisible(true);
}

Output :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
29

Latihan Anda
a) Sama seperti latihan sebelumnya
b) Ubah bahasanya menjadi bahasa sunda
c) Terangkan mengenai kombinasi gambar sehingga seolah-olah sistem
hanya menambahkan bagian dari muka saja.

5. Latihan 5
Source Code
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Lat_5_Swing extends JPanel {


static JFrame frame;

static String birdString = "Bird";


static String catString = "Cat";
static String dogString = "Dog";
static String rabbitString = "Rabbit";
static String pigString = "Pig";

JLabel picture;

public Lat_5_Swing() {
// Membuat tombol radio.
JRadioButton birdButton = new JRadioButton(birdString);
birdButton.setMnemonic(KeyEvent.VK_B);
birdButton.setActionCommand(birdString);
birdButton.setSelected(true);

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
30

JRadioButton catButton = new JRadioButton(catString);


catButton.setMnemonic(KeyEvent.VK_C);
catButton.setActionCommand(catString);

JRadioButton dogButton = new JRadioButton(dogString);


dogButton.setMnemonic(KeyEvent.VK_D);
dogButton.setActionCommand(dogString);

JRadioButton rabbitButton = new


JRadioButton(rabbitString);
rabbitButton.setMnemonic(KeyEvent.VK_R);
rabbitButton.setActionCommand(rabbitString);

JRadioButton pigButton = new JRadioButton(pigString);


pigButton.setMnemonic(KeyEvent.VK_P);
pigButton.setActionCommand(pigString);

// Mengumpulkan tombol radio.


ButtonGroup group = new ButtonGroup();
group.add(birdButton);
group.add(catButton);
group.add(dogButton);
group.add(rabbitButton);
group.add(pigButton);

// Mendeklarasikan listener untuk tombol radio.


RadioListener myListener = new RadioListener();
birdButton.addActionListener(myListener);
catButton.addActionListener(myListener);
dogButton.addActionListener(myListener);
rabbitButton.addActionListener(myListener);
pigButton.addActionListener(myListener);

// seting label gambar


picture = new JLabel(new ImageIcon("images/"
+ birdString
+ ".gif"));

// Program yang benar akan menghitung ini


picture.setPreferredSize(new Dimension(177, 122));

// Menyimpan check boxes dalam panel


JPanel radioPanel = new JPanel();
radioPanel.setLayout(new GridLayout(0, 1));
radioPanel.add(birdButton);
radioPanel.add(catButton);
radioPanel.add(dogButton);
radioPanel.add(rabbitButton);
radioPanel.add(pigButton);

setLayout(new BorderLayout());
add(radioPanel, BorderLayout.WEST);
add(picture, BorderLayout.CENTER);

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
31

setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
}

class RadioListener implements ActionListener {


public void actionPerformed(ActionEvent e) {
picture.setIcon(new ImageIcon("images/"
+
e.getActionCommand()
+ ".gif"));
}
}

public static void main(String s[]) {


frame = new JFrame("Latihan 5 Swing");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{System.exit(0);}
});

frame.getContentPane().add(new Lat_5_Swing(),
BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}

Output :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
32

Latihan Anda
a) Sama seperti latihan sebelumnya
b) Ganti nama bianatang dng bahasa sunda
c) Simpan di file doc
d) Zip file .doc dan semua .java
e) Kirim ke gentayangan

TUGAS II

1. Gabungan latihan 2 dan 3


2. Gabungkan latihan 2 dan 4
3. Gabungkan latihan 2 dan 5

Tugas dalam format Doc dikumpulkan pada pertemuan


berikutnya

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
33

JDBC

Ada 7 langkah untuk mengakses database:


1. Load Driver JDBC
2. Mendefinisikan Koneksi URL yang dipakai
3. Menghubungkan Koneksi tsb.
4. Menciptakan statement object
5. Mengeksekusi query atau update
6. Memproses Hasil
7. Memutuskan Koneksi

try {
// Class.forName("org.gjt.mm.mysql.Driver"); // Langkah 1
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // langkah1
} catch (Exception E) {
E.printStackTrace();
} // end catch

try {
con =
DriverManager.getConnection("jdbc:odbc:Database1");//,"root","");
// langkah 2 and 3

stmt = con.createStatement(); // langkah 4


rs = stmt.executeQuery("SQL Query'"); // langkah 5
while (rs.next()) { // langkah 6
:
:
} // while

stmt.close(); // langkah7
con.close();

Database MS Access

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
34

Setting Access Database

Menset Database yang dipakai sebagai acuan dalam Program


Start -> Control Panel -> ODBC Data Source

Tampil jendela ODBC Data Source Administrator


Click System DSN-> Add-> pilih Driver (Microsoft Access Driver) ->
Finish. Dalam hal ini kita memakai Access Database.
Tentukan Letak File Database yang digunakan

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
35

Click OK
Data base db1 siap diakses oleh Program

JDBC Program
package jdbc01;

import java.sql.*;

public class JDBCTest01 {

public static void main(String[] args) {


Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // langkah 1
} catch (ClassNotFoundException cnfe) {
System.err.println(cnfe);
} catch (Exception E) {
E.printStackTrace();
} // end catch

try {
conn = DriverManager.getConnection("jdbc:odbc:db1");
// langkah 2 and 3
stmt = conn.createStatement(); // langkah 4
rs = stmt.executeQuery("SELECT * FROM tabel02");
while (rs.next()) { // langkah 6
System.out.print(rs.getString("Nomer") + " ");
System.out.print(rs.getString("Judul") + " ");
System.out.print(rs.getString("Pengarang") + " ");
System.out.print(rs.getString("Penerbit") + " ");
System.out.print(rs.getString("harga") + " ");
System.out.println("Oke");
} // while

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
36

stmt.close();
conn.close();
} catch(SQLException sqle) {
System.err.println("SQLException : " + sqle.getMessage());
} // end cacth
}
}

Hasil Program

1 Java 2 Complete Reference Patrick Naughton McGraw Hill 600000 Oke


2 Distributed Systems Tanenbaum Prentice Hall 500000 Oke
3 Home Networking Bible Plumley IDG Books 375000 Oke

Bandingkan

JDBC Program dengan Access

Setting perlu dilakukan pada Control Panel, untuk menset Database yang
dipakai
Pada Java Program tidak diperlukan setting apapun
Sun telah menyediakan driver secara otomatis untuk Access
Hal ini tidak berlaku untuk Sistem Database yang lain, misal: mysql,
oracle, dll.

Mysql dapat didownload di : www.mysql.com/downloads


Extract dan lakukan instalasi dengan memilih: Setup.exe
Mysql terletak di C:\mysql
Aktifkan mysql admin dengan double click di :
C:\mysql\bin\winmysqladmin

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
37

Mysql Database
Inilah tampilannya

Atau tampak di pojok kanan bawah

Mysql Database

Mysql database : test002


Tabel : tabel02

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
38

JDBC Driver for MySQL dapat di-download di :


www.mysql.com/downloads
dengan nama : MySQL Connector/J 2.0.14
Extract ke C:\
JDBC Driver akan terletak di subdirectory
C:\mysql-connector-java-2.0.14

package jdbc01;

import java.sql.*;

public class JDBCTest01 {

public static void main(String[] args) {


Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

try {
Class.forName("org.gjt.mm.mysql.Driver"); // Langkah 1
} catch (ClassNotFoundException cnfe) {
System.err.println(cnfe);
} catch (Exception E) {
E.printStackTrace();
} // end catch

try {
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test002
","rsn","risanuri");
stmt = conn.createStatement(); // langkah 4
rs = stmt.executeQuery("SELECT * FROM tabel02");
while (rs.next()) { // langkah 6
System.out.print(rs.getString("Nomer") + " ");
System.out.print(rs.getString("Judul") + " ");
System.out.print(rs.getString("Pengarang") + " ");
System.out.print(rs.getString("Penerbit") + " ");
System.out.print(rs.getString("harga") + " ");
System.out.println("Oke");
} // while
stmt.close();
conn.close();
} catch(SQLException sqle) {
System.err.println("SQLException : " +

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
39

sqle.getMessage());
} // end cacth
}
}

1 Core Servlets and JSP Marty Hall Prentice Hall 350000 Oke
2 Java 2 Complete Reference Patrick Naughton McGraw Hill 600000 Oke
3 J2EE Unleashed Bambara Allen Sams 600000 Oke

Bandingkan

Setting tidak perlu dilakukan pada Control Panel


Perlu dilakukan setting pada Java Program
Driver JDBC disediakan oleh mysql dan harus di-download secara
terpisah
Mysql memungkinkan memanggil Database lewat jaringan

con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/pasiendreritta","root"
,"");
stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO catatanpasien VALUES('"+ navn[0]
+"','"+ navn[1] +"','"+ navn[2] +"','"+ navn[3] +"','"+ navn[4] +"','"+ navn[5]
+"');");

Mysql tools
Dbtools
Mysql-front

Setting Classpath, prosesnya sama dengan setting classpath yang lain


Pada Win98, Start ->Run (sysedit), kemudian pada autoexec.bat
tambahkan C:\mysql-connector-java-2.0.14, yang merupakan letak
subdir JDBC Driver

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
40

Compile
myjava>javac JDBCTest01.java
Buat subdir jdbc01 di dalam :\myjava
Letakkan JDBCTest01.class pada subdir :\myjava\jdbc01
Eksekusi
\myjava>java jdbc01.JDBCTest01
Hasilnya :
1 Routing TCP/IP Jeff Doyle null 900000 Oke
2 Top Down Network Design Oppenheimer 0 600000 Oke
3 Java Security Jess Gams 0 500000 Oke

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
41

J2ME

Java 2 Micro Edition merupakan kategori Java yang dirancang untuk


menjalankan program Java pada perangkat-perangkat mobile
PDA atau handphone, yang memiliki karakteristik yang berbeda dengan
sebuah komputer biasa
Keterbatasan memori, keterbatasan input serta layar yang kecil

Arsitektur J2ME
Elemen arsitektur J2ME
J2ME Configurations, mendefinisikan kemampuan dari Java
Virtual Machine dan class-class standar pada suatu devices.
J2ME Profile, Jika J2ME Configuration menyediakan library-
library Java untuk implementasi fitur-fitur standar, J2ME
Profile menyediakan implementasi-implementasi tambahan yang
sangat spesifik dari sebuah devices.
J2ME Configuration
Ada dua kategori J2ME Configuration, yakni :
CLDC (Connected Limited Device Configuration), Nokia,
Samsung Java Phone, Motorola i85s, organizer / PDA (Personal
Data Assistant), Siemens
Ukuran memory 160-512 KiloBytes
CDC (Connected Device Configuration), contoh internet TV,
Nokia Communicator dan car television.
Ukuran memory 2 Mbytes

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
42

CLDC CDC

Mengimplementasikan subset dari Mengimplementasikan seluruh fitur


J2SE pada J2SE

JVM yang digunakan dikenal dengan JVM yang digunakan dikenal dengan
nama KVM (Kilo Virtual Machine) nama CVM (CDC Virtual Machine)

Digunakan pada perangkat handled Digunakan pada perangkat handled


dengan ukuran memori terbatas (160- dengan ukuran memori minimal 2
512 Kbytes) Mbytes

Prosesor: 16 Bit atau 32 Bit Prosesor : 32 Bit

J2ME Profile
J2ME Profile menyediakan implementasi-implementasi tambahan yang
sangat spesifik dari sebuah devices.
Contoh : Siemens bisa menyimpan file MP3, Nokia memiliki game
tersendiri dan lain sebagainya
J2ME Profile dengan basis CDC antara lain :
-Foundation Profile (FP)
-Personal Profile
-RMI Profile
J2ME profile dengan basis CLDC antara lain :
-Personal Digital Assistance Profile (PDA Profile)
-Mobile Information Device Profile (MIDP)
MIDlet
Aplikasi yang berjalan pada sebuah perangkat yang mendukung MIDP
(Mobile Information Device Profile) disebut dengan MIDlet, atau lebih
singkatnya MIDlet merupakan aplikasi dari MIDP

Arsitektur MIDP

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
43

Instalasi
Instalasi JDK
-j2sdk-1 4 0 01-windows-i586.exe
Setelah proses instalasi telah dilakukan. maka perlu dilakukan edit
untuk variabel JAVA_HOME, PATH, serta CLASSPATH.
Instalasi J2ME Wireless Tookit
Download
http://java.sun.com/products/ j2mewtoolkit/download.html
J2ME_WIRELESS_TOOLKIT_1_0_4.exe
Program MIDlet
1.Penulisan kode (coding)
2.Kompilasi (compiling)
3.Preverifying
4.Pemaketan (Packaging)
5.Test pada emulator

Hallo.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Hallo extends MIDlet {
private Display display;
public Hallo(){
display = Display.getDisplay(this);
}
public void startApp() {
TextBox t = new TextBox("Contoh MIDlet","Halo Kawan", 256,0);
display.setCurrent(t);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
}

Kompilasi, preverify yang dapat dilakukan dengan menggunakan


J2ME Wireless Toolkit.

click icon New Project pada Ktoolbar.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
44

Contoh nama Project = Hallo, nama MIDlet class = Hallo. Maka akan
dibuat project baru dengan nama Hallo yang diletakkan pada direktori
e:\J2mewtk\apps\Hallo dengan sub direktori \src, \res dan \lib, yang
mana dalam kasus ini e:\j2mewtk adalah path dimana J2ME Wireless
Toolkit di install

Letakkan file Hallo.java tersebut pada sub direktori \src dari direktori
project Hallo sehingga didapat susunan sebagai berikut :
e:\j2mewtk\appd\
\apps\Hallo\src\Hallo.java
\
Langkah selanjutnya adalah membangun project tersebut, meliputi
kompilasi serta preverify. Langkah ini dilakukan dengan meng-click icon
Build pada Ktoolbar

Test, dengan menjalankan MIDlet dengan menggunakan emulator


-Emulator DefaultColorPhone
-Emulator DefaultGrayPhone
-Emulator MinimumPhone
-Emulator Motorola_i85s
-Emulator PalmOS
-Emulator RIMJavaHandHeld

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
45

Aplikasi ke HP beneran
Ciptakan file .jar (contoh = Hallo.jar) yang merupakan file yang berisi
semua file class dari aplikasi.

APLIKASI KE HP

dihasilkan file .jar (java archive) serta file .jad (java application
descriptor)
MIDlet-Version : versi dari MIDlet
MIDlet-Vendor : provider yang menyediakan MIDlet
MIDlet-Name : nama dari MIDlet tersebut
MIDlet-jar-URL : URL dari mana file .jar diletakkan untuk dapat
didownload.
( http://[host]:[port]/[direktori]/[namafile] )
contoh : http://202.169.227.91:8080/MobileBanking.Hallo.jar
MIDlet-Jar-Size : ukuran bytes dari MIDlet
MIDlet-1 : atribut ini mendefinisikan nama, icon serta class
Instalasi ke handphone, Siemens tipe M50 dan SL45i
Instalasi online, OTA (Over The Air).

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
46

Tahap I : Upload (meletakkan) file .jad dan file .jar ke


server, sehingga file dapat dibrowse melalui internet.
Tahap II : WAP browsing untuk download file .jad
Tahap III : Download file .jar
Instalasi Offline
Instalasi offline dapat dilakukan pada handphone Siemens
SL45i
Instalasi online
Setting internet Siemens M50 dengan SIM Card IM3 (WAP/GPRS).
Setting GPRS :
Masuk Menu Setup Connectivity
Aktifkan GPRS
Pilih WAP Profiles buat profile baru untuk IM3 dengan
pilih salah satu profile yang masih kosong; misal profile
two tekan Edit
Isikan data sebagai berikut :
Profile name
IM3
WAP Parameters
IP Address : 010.019.019.019
Port : 9201
Homepage : http://wap.indosat-m3.net
Linger time : 150 seconds
CSD Settings
Dial-up no : 366
Call type : ISDN
Login name : csd
Password : csd
GPRS Settings
Deactivate GPRS : No
APN : www.indosat-m3.net
Login name : gprs
Password : gprs
Setting JAVA pada Siemens M50 dengan SIM Card IM3
Masuk Menu Setup Connectivity
Pilih JAVA Profiles buat profile java baru untuk IM3 dengan
pilih salah satu profile yang masih kosong; misal profile one
tekan options change settings
Isikan data sebagai berikut
HTTP Parameters
Linger time : 030 seconds
Deactiv. Proxy : Yes
Proxy host : wap.indosat-m3.net
Proxy port : 8080
Proxy login : im3
Proxy password : im3

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
47

CSD Settings
Dial-up no : 366
Call type : ISDN
Login name : csd
Password : csd
GPRS Settings
Deactivate GPRS : No
APN : www.indosat-m3.net
Login name : gprs
Password : gprs

Browsing file .jad melalui menu Surf & Fun Internet Bookmark
tambahkan bookmark untuk alamat contoh :
http://202.169.227.91:8080/ MobileBanking/Hallo .jad
Otomatis file *.jad tersebut akan di download ke handphone (sebagai
contoh: Hallo.jad)
Download file .jar (contoh Hallo.jar).
Masuk menu Surf & Fun Games & more
Pilih file .jad yang telah didownload sebelumnya (Hallo.jad).
Pilih options download.
Instalasi Offline
Menggunakan kabel Data serta software DES (Data Exchange Software)
Instal software DES (Data Exchange Software).
Hubungkan handphone (SL45i) dengan kabel data ke komputer.
Dalam Explorer akan ada tambahan satu drive dengan nama
Mobile. Buat direktori Banking pada direktori java/jam dalam
drive Mobile, serta copy file .jad (Hallo.jad) dan file .jar (Hallo.jar)
ke dalamnya.
Dengan langkah tersebut MIDlet sudah terinstal ke handphone
Siemens SL45i. Untuk menjalankan masuk menu Surf & Fun
Java Hallo.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
48

INTEGRASI APACHE DAN TOMCAT

Mengkonfigurasikan Tomcat
Yakinkan bahwa Tomcat telah siap untuk mendengarkan AJP13 requests;
baik JK maupun JK2 kita dapat menggunakan AJP13 untuk
berkomunikasi dengan Tomcat
Kita membutuhkan elemen tambahan <Connector> yang disimpan pada
berkas server.xml
Yakinkan bahwa elemen tambahan tersebut berada didalam elemen
<Service> dan mengikuti tepat setelah elemen <Connector> yang telah
didefinisikan sebelumnya

Server.xml
:
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="20000"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

<!-- Define an AJP 1.3 Connector on port 8009 -->


<!--
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
port="8009" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0"/>
-->
Elemen <Connector> hanya memiliki dua attribut yakni atribut port dan
atribut className.
Atribut port berperan untuk memberitahukan Tomcat untuk membuka
Connector baru dan untuk mendengarkan request yang masuk dari port
8089
Atribut className memberitahukan Tomcat bahwa semua permintaan
yang masuk harus dilayani oleh Kelas Connector milik Tomcat
org.apache.ajp.tomcat4.Ajp13Connector,
dan keduanya dalam hal ini menggunakan protokol AJP 1.3.

Konfigurasi Apache

Kita akan memulai konfigurasi dengan membuat definisi Tomcat worker


yang akan memberitahukan kepada Apache bagaimana dan kapan
berkomunikasi dengan Tomcat melalui Tomcat Worker
Tomcat worker adalah sebuah proses yang mendefinisikan link
komunikasi antara Apache dan Tomcat Container

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
49

File:workers.properties
Berkat Tomcat Worker pada contoh ini sebaiknya diberi nama
workers.properties
workers.properties kita letakkan di :
Apache_Home/conf
Tambahkan properti dibawah ini pada berkas yang kita ciptakan dan
simpan berkas tersebut.
worker.list=testWorker
worker.testWorker.port=8009 worker.testWorker.host=localhost
worker.testWorker.type=ajp13
worker.list=testWorker
worker.testWorker.port=8009
worker.testWorker.host=localhost
worker.testWorker.type=ajp13

Masukan-masukan diatas mendefinisikan sebuah Tomcat Worker yang


bernama testWorker yang bekerja di sisi Apache server, localhost, dan
akan mendengarkan port 8009 pada Client dengan menggunakan protokol
AJP13. Dan Hal ini dapat diselesaikan dengan menggunakan sekumpulan
properti milik pekerja.
Properti Workers:
port,
host, dan
type.
Ketiga-tiganya cukup mudah untuk dideskripsikan. Tetapi untuk lebih
jelasnya dapat kita amati pada tabel berikut ini
<workername>.port
Properti port mendefinisikan nomor port Tomcat worker. Nilainya
haruslah sama dengan atribut port yang telah didefinsikan elemen
Tomcat <Connector> .
<workername>.host
Properti Host mendefinisikan nama host bagi Tomcat Worker.
Karena dalam hal ini kita mengkonfigurasikan keduanya (Apache
dan Tomcat) dengan host yang sama maka keduanya di set ke
localhost
<workername>.type
Properti type mendefinisikan protokol yang digunakan oleh
Tomcat Worker dan dalam hal ini kita menggunakan protokol
ajp13.

Memodifikasi Apache's httpd.conf


Kita perlu memberotahukan Apache untuk berkomunikasi dengan pekerja.
Kita melakukan ini dengan bebrapa modifikasi pada berkas Apache
berikut
<APACHE_HOME>/conf/httpd.conf

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
50

Prosesnya terbagi menjadi beberapa langkah:

1. Copy module mod_jk yang telah kita download sebelumnya dan letakkan
pada direktori <APACHE_HOME>/libexec. Jika kita memakai Apache
versi 1.3.27, maka mod_jk yang dipakai adalah mod_jk-1.3.27.dll.
Rename file ini menjadi mod_jk.dll
2. Beritahukan apache untuk me-load module mod_jk. Kita dapat melakukan
ini dengan menambahkan direktif LoadModule dan AddModule pada
bagian bawah httpd.conf file, seperti dibawah ini:
LoadModule jk_module libexec/mod_jk.dll
AddModule mod_jk.c
Catatan : jika kita bekerja di Unix maka kita melakukan pointing
ke berkas mod_jk-1.3-eapi.so tetapi jika kita bekerja di Windows
maka kita haruslah menunjuk pada berkas mod_jk-1.3.26.dll.
3. Selanjutnya kita pakai file konfigurasi mod_jk.conf. File mod_jk.conf
harus kita panggil (include) dari httpd.conf. Perintahnya adalah
Include conf/mod_jk.conf

Kita harus memberitahukan mod_jk lokasi berkas workers.properties. Di


dalam mod_jk.conf baris pertama.
JkWorkersFile conf/workers.properties

mod_jk.conf
4. Langkah ini opsional namun akan amat berguna. Buat berkas baru yang
akan mencatat aksi-aksi mod_jk's. Hal ini dapat kita lakukan dengan
memberi dua properti tambahan pada berkas httpd.conf .
Properti yang pertama adalah, JkLogFile, Yang mengidentifikasikan lokasi
berkas log tersebut.
Sementara yang kedua, JkLogLevel, mendefinisikan tingkat logging yang
hendak kita catat. Terdapat tiga tingkat yakni debug, error, or info, yang
ketiganyaberbeda dalam hal detail informasi saja .
JkLogFile logs/mod_jk.log
JkLogLevel error
5. Beritahukan kepada Apache bahwa kita menginginkan semua isi yang kita
minta dari direktori /examples yang didapat dari direktori
<CATALINA_HOME>/webapps/examples.
Alias /examp "C:\Program Files\Apache Group\Tomcat
4.1\webapps\examples"

5. Beritahukan pada Apache bahwa kita hendak mengolah semua permintaan


dengan pola pada /examples/servlet/* dan /examples/*.jsp untuk di-reroute
dan dilayani oleh oleh pekerja dengan nama testWorker.
JkMount /examples/servlets/* testWorker
JkMount /examples/*.jsp testWorker
7. Halangi semua permintaan ke aplikasi /example pada direktori WEB-INF.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
51

Hal ini dapat dilakukan dengan memberitahukan Apache untuk menolak


semua permintaan ke direktori /examples/WEB-INF. elemen <Location>
dibawah ini yang akan melakukannya :

<Location "/examples/WEB-INF/">
AllowOverride None
deny from all
</Location>
Selain cara diatas kita juga dapat melakukannya dengan menambah
beberapa baris pada berkas httpd.conf.
LoadModule jk_module libexec/mod_jk.dll
AddModule mod_jk.c
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
Alias /examp C:/...../webapps/examples
JkMount /examples/servlet/* testWorker
JkMount /examples/*.jsp testWorker
<Location "/examples/WEB-INF/">
AllowOverride None
deny from all
</Location>

Apache startup
Pada saat Apache startup:
1. Apache akan me-load modul mod_jk.
2. Lalu beritahukan pada modul mod_jk bahwa semua workers didefinisikan
pada berkas worker.properties, yang dalam hal ini kita mendefinisikan
worker tunggal, testWorker.
3. Apache akan mengasosiasikan semua permintaan dengan pola-pola
/examples/servlet/* dan /example/*.jsp dengan worker testWorker.
4. Ketika ada permintaanyang diterima dari salah satu pola
/examples/servlet/* atau /example/*. maka
1. Apache akan memberikan permintaan tersebut ke modul mod_jk.
2. mod_jk akan mengirimkan permintaan tersebut ke Tomcat
Connector org.apache.ajp.tomcat4.Ajp13Connector, yang
mendengarkannya melalui port 8009.
3. Connector jenis ini akan mengambil semua layanan dan
permintaan yang tengah bekerja di Tomcat container.
4. Ketika permintaan tersebut telah dilayani, maka
org.apache.ajp.tomcat4.Ajp13Connector akan mengembalikannya
ke modul mod_jk dan semua kendali dikembalikan ke Apache.
Pengujian
Pertama aktifkan Tomcat dan kemudian aktifkan pula Server Apache.
Ketika keduanya telah aktif. Buka browser dan isikan salah satu alamat
dibawah ini:

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
52

http://localhost/examples/servlets/index.html atau
http://localhost/examples/jsp/index.html dan menjelajahlah untuk
mengecek integrasi yang telah kita lakukan.
Hal diatas hanya melakukan sesuatu yang dasar bagi konfigurasi
Apache/Tomcat. Yang patut mnjadi perhatian adalah semua permintaan
tidak lagi menggunakan port 8080. tetapi menggunakan port localhost. Hal
ini dikarenakan Tomcat mendengarkan port 8080, sementara Apache
melayani permintaan yang mengunakan port default 80, dan semuanya
dilayani oleh Apache.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
53

JAVA untuk JSP

A. MENGAPA JAVA
Bahasa Java sebagai tulang punggung penulisan sript JSP sehingga
mempelajari bahasa Java adalah penting untuk membuat halaman web dengan
JSP

B. KARAKTER
Pada setiap bahasa pemrograman istilah karakter sangat familiar, yang disebut
karakter dalam JAVA adalah :
Huruf (a - z , A - Z)
Angka (0 - 9)
Simbol (misal * dan !)

C. KATA KUNCI
Java memiliki beberapa buah kata yang termasuk dalam kata kunci atau kata
bercabang, kata kunci memiliki makna khusus dan tidak bisa digunakan
sebagai pengenal.
Beberapa kata kunci dalam JAVA
Abstarct else interface super
booelan extends long swtich
break final native this
byte finaly new throw
case float null throws
catch for package try
char goto private void
class if protected while
Dan masih banyak lagi......Carilah?

D. PENGENAL
Pengenal atau identifier adalah nama yang diciptakan oleh pemrogram yang
digunakan didalam program untuk memberi nama seperti kelas atau variable
dalam program.
Aturan pemberian nama program adalah sebagai berikut :
Karakter pertama berupa huruf, tanda garisbawah (_), atau tanda dolar ($).
Karakter kedua dan seterusnya bisa berupa sembarang huruf atau angka.
Panjang pengenal bebas bisa sepanjang apa saja.
Huruf kapital dan kecil diperlakukan beda (case-sensitif)
Pengenal harus dalam satu kata (tidak mengandung spasi)

E. TIPE-TIPE DATA PRIMITIF


Tipe data primitif dibagi 4 :
a) TIPE BILANGAN BULAT
Type Ukuran Jangkauan Nilai

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
54

byte 8 bit
short 16 bit
int 32 bit
long 64 bit

b) TIPE BILANGAN TITIK MENGAMBANG


c) TIPE DATA CHAR
Tipe data char dapat berupa tipe data apa saja untuk menyaatakan
sebuahkarakter.
d) TIPE DATA BOOELAN
Tipe data ini digunakan untuk menyatakan kondisi dari dua kemungkinan,
nilai yang dapat digunakan adalah true dan false

F. LITERAL
Nilai yang di buat dalam source code java disebut literal, misal anda
menuliskan 5 untuk menyatakan bilangan bulat 5 dan Selamat Datang di
Praktikum JSP untuk menyatakan deretan karakter string.
Literal dalam java dibedakan menjadi :
Literal bilangan
Literal karakter
Literal booelan
Literal string

a) LITERAL BILANGAN
Literal bilangan bulat tergolong sebagai long, simbol L atau l dapat
ditambahkan dibelakang bilangan
Literal Keterangan
4L Bilangan 4 betype long
-4L Bilangan -4 betype long

Suatu bilangan bulat bisa dinyatakan dalam bentuk oktal (bilangan


berbasis 8) atau heksadesimal (bilangan berbasis 16). jika suatu Literal
bilangan bulat diawali dengan 0 (nol) maka bilangan akan diberlakukan
sebagai bilangan oktal. sedngakan kalau diawali dengan 0x (nol dan huruf
X- kecil maupun kapital) akan dianggap berbasisi 16.

Contoh :
Literal Keterangan
021 21 oktal
0x21 21 heksadesimal
21 21 desimal (basis 10)
0xA A heksadesimal (=10 desimal).

Buat direktori baru sejajar dengan direktori latihan dengan nama latihan2.
Buatlah coding (source code untik menampilkan data pada tabel diatas
sehingga hasilnya seperti pada laihan 15

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
55

Latihan15 (lat15.jsp)

b) LITERAL KARAKTER
Literal digunakan untuk menyatakan sebuah karakter. karakter ditulis
dengan tanda petik tunggal. Contoh
LITERAL KETERANGAN
agus Karakter huruf : agus
# Karakter simbol : #
8 Karakter angka : 8
Didalam java dikenala istilah kode escape yaitu kode kaeakter yang
penulisannya diawali dengan \.
Misal : out.prinln(select * from nama tabel where nama=\agus\;);

c) LITERAL BOOELAN
Litearal yang dapat berupa kata kunci TRUE dan FALSE
TRUE = BENAR
FALSE = SALAH

d) LITERAL STRING
STRING merupakan kombinasi karakter artinya bisa berupa huruf, simbol
dan angka. String pada java bukan tipe data primitif melainkan sebagai
instant kelas bernama STRING
Buatlah script untuk menampilkan kalimat seperti pada contoh di bawah
Latihan 16(lat16.jsp)

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
56

e) DEFINISI KONSTANTA
Java memungkinkan pendefinisian melalui kata-kata kunsi final.
Contoh :
final double PI = 3.14;
Menyatakan bahwa PI adalah konstanta bertipe double dengan nilai 3.14.
Kata final menyatakan bahwa PI tidak dapat diubah setelah didefinisikan.
NB : Konstatnta dapat ditulis dengan huruf kapital
Contoh script :
<html>
<head><h2><b>KONSTANTA</b></h2> </head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%
final double PI = 3.14;
double radiusna = 30;

out.println("Keliling lingkaran = 2 * PI * radiusna<br>");


out.println("Luas lingkaran = 0.5 * PI *
radiusna*radiusna");
%>
</body>
</html>
Script diatas terdapat bug atau error, perbaiki eroronya sehingga
tanpil seperti pada gambar dibawah.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
57

OUTPUTNYA :

G. VARIABLE
Variable merupakan suatu lokasi didalam memori komputer yang digunakan
untuk menyimpan suatu nilai dan nilai yang ada didalamnya bisa diubah.
Variabel dapat dibayangkan sebagai sebuah kotak. Kotak dapat diisi suatu saat
dan pada saat yang lain dapat diubah
a) MENDEKLARASIKAN VARIABLE
Suatu variabel harus dideklarasikan terlebih dahulu sebelum digunakan,
(ingat ....... variabel jangan sama dengan kata-kata kunci dalam
JAVA). di dalam pendeklarasian nama variable dan tipe yang dikandung
harus disebutkan.
tipe namaVar[,namavar]
Tanda [] dalam [,namavar], berarti bahwa yang ada dalam tanda [] bersipat
opsional atau pilihan.
contoh :
VARIABEL KETERANGAN
int namaBarang; Variabel namaBarang bertipe int
float bilPecahan; Variabel bilPecahan bertipe float
char huruf; Variabel huruf bertipe char
booelan kredit; Variabel huruf bertipe booelan
Pada contoh diatas tipe data masing-masing variabel berupa tipe data
primitif, selain tipe data primitif tipe data variable dapat berupa nama
kelas.
Contoh :
String kalimat;
pada sontoh diatas, String adalah nama kelas yang disediakan oleh java

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
58

yang memungkinkan instatnt kelas tersebut menampung deretan karakter.


Dengan demikian variabel kalimat dapat mengandung string.
Pendeklarasian dua buah variable atau lebih dapat dituliskan sebagai
berikut :
int bilangan1, bilangan2;

b) MEMBERIKAN NILAI TERHADAP VARIABLE


Setelah dideklarasikan variabel dapat diberi nilai. Caranya dengan
menggunakan operator =. Penulisannya.

variabel = nilai;
Nilai yang diberikan dapat berupa literal, variabel atau bahkan suatu
ekpresi yang melibatkan operator
contoh :
PENUGASAN KETERANGAN
jumlahBarang = 10; Variabel diisi dengan bilangan bulat10
bilReal = 2.5f; Variabel diisi dengan bilangan 2.5 bertipe
float
huruf = A; Variabel diisi dengan karakter A
kalimat = Halo, agus; Variabel diisi dengan kalimat Halo, agus
Penugasan sejumlah variabel dengan sejumlah nilai yang sama dapat juga
didekalrasikan sebagai berikut :
x = y = z = 0;

c) VARIABEL PRIVATE
Pada JSP anda bisa mendeklarasikan suatu variabel yang diawali dengan
kata prvate. Variabel seperti ini membuat isi variable akan diingat terus
sampai Web Service dimatikan (Shut Down).
Contoh :
Latihan 18 (lat18.jsp)
<html>
<head><h2>PRIVATE</h2> </head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%!
private int hitung = 0;
%>

<%
hitung++;
out.println("Hit Counter : "+ hitung);
%>
</body>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
59

</html>

Outputnya :

Bahkan ketika web browser ditutup pun operasi penjumlahan pada


variable hitung di halaman lat18.jsp akan tetap dilakukan melanjutkan
hasil terakhir. Script ini biasa digunakan untuk mengetahui jumlah
pengunjung yang mengakses halaman situs tertentu.

H. EKSPRESI
Ekspresi atau ungkapan adalah suatu bentuk yang menghasilkan suatu nilai.
Dalam bentuk yang sederhana, ekspresi berupa sebuah literal atau variabel .
Dalam bentuk yang lebih kompleks, suatu ekspresi melibatkan operator atau
operand. Sebagai contoh :
2+3
Suatu bentuk ekspresi yang menghasilkan nilai 5. Dalam hal ini 2 dan 3
merupakan operand dan + merupakan operator dan gabungan dari operator dan
operand disebut ekspresi.
Salah satu contoh pemakaian ekspresi adalah pernyataan yang menggunakan
println(). sebagai contoh :
out.println(1 + 2 * 3);
akan menampilkan hasil ekspresi dari 1 + 2 * 3

I. OPERATOR
Operator merupakan simbol atau karakter khusus yang digunakan dalam suatu
ekspresi untuk menghasilkan suatu nilai. Beberapa kelompok operator :
Operator Aritmetika
Operator penambahan dan penguruangan
Operator penugasan
Operator pembandingan

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
60

Operator logika dan


Operator bit
menurut jumlah operand yang dilibatkan, operator diklarifikasikan menjadi :
Operator unary operator yang hanya melibatkan satu operand
Operator binary operator yang hanya melibatkan dua operand
Operator tertiary operator yang hanya melibatkan 3 operand
a) OPERATOR ARITMETIKA
OPERATOR KETERANGAN
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa pembagian

Latihan 19 (lat19.jsp)
<html>
<head><h2>ARITHMETIKA</h2> </head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>

<%

out.println("1 + 2 + 3 = "+(1+2+3));
out.println("<br>");
out.println("13 % 5 = "+(13 % 5));
out.println("<br>");
out.println("13 % 5.2 = "+(13 % 5.2));
out.println("<br>");
out.println("13 / 5 = "+(13 / 5));
out.println("<br>");
out.println("13 / 5.2 = "+(13 / 5.2));

%>
</body>
</html>
Outputnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
61

Latihan 19b(lat19b.jsp)
Buatlah tampilan sehingga bentuk operasi aritmetika seperti pada gambar
dibawah ini :

b) OPERATOR PENAMBAHAN DAN PENGURANGAN

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
62

<html>
<head><h2>ARITHMETIKA</h2> </head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>

<%
int x, y;
x = 5;
y = 8 - x++;

out.println("Contoh 1:");
out.println("<br>");
out.println("x = "+ x + " y = " + y);;
out.println("<br>");
out.println("<br>");

out.println("Contoh 2:");
x = 5;
y = 8 - ++x;
out.println("<br>");
out.println("x = "+ x + " y = " + y);;
out.println("<br>");
out.println("<br>");

out.println("Contoh 3:");
x = 5;
y = 8 - x--;
out.println("<br>");
out.println("x = "+ x + " y = " + y);;
out.println("<br>");
out.println("<br>");

out.println("Contoh 4:");
x = 5;
y = 8 - --x;
out.println("<br>");
out.println("x = "+ x + " y = " + y);;
out.println("<br>");
out.println("<br>");

%>
</body>
</html>

Outputnya

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
63

Latihan 20b(lat20b.jsp)
Ubah tampilan menjadi bentuk tabel
Contoh 1 Contoh 2 Contoh 3 Contoh 4
x=6y=3 x=6y=2 x=4y=3 x=4y=4

c) OPERATOR PENGGABUNGAN
<html>
<head><h2>Contoh Operator</h2> </head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%
String hasil;
hasil = "2" + 4;

out.println("Hasil = "+ hasil);


%>
</body>
</html>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
64

Outputnya :

d) OPERATOR BIT
Java mendukung 7 buah operator yang beroperasi pada level bit (0 dan 1),
yaitu :
& (dan untuk biner)
| (atau untuk biner)
^ (atau eklusif)
- (bukan untuk biner)
<< (geser kiri)
>> (geser kanan)
>>> (geser kanan tak bertanda)

Operator &
kondisi 1 jika dan hanya jika kedua bit bernilai 1 dan kondisi 0 jika salah
satu atau kedua bit bernilai salah.
Bit1 Bit2 Hasil
0 0 0
0 1 0
1 0 0
1 1 1

Contoh :
9 & 10 akan memberikan hasil 8
19 & 7 akan menghasilkan 5
Ingat rumus dari kiri ke kanan 256 128 64 32 16 8 4 2 1
9= 1001
10 = 1100
1000
1000 = 8

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
65

Begitu juga operasi untuk or (jika dan hanya jika salah satu bit ada yang
bernilai 1) dan ekslusif (jika dan hanya jika salah satu bit bernilai 1)

e) OPERATOR PENUGASAN
berfungsi untuk memberikan nilai terhadap variabel. Operator yang
tergolong ke dalam operator penugasan :
Operator Keterangan
= Pemberian Nilai
+= Penambahan Bilangan
-= Pengurangan Bilangan
*= Pengalian Bilangan
/= Pembagian Bilangan
%= Pemerolehan sisa bagi

Latihan 23 (lat23.jsp)
<html>
<head><h2>Operator Penugasan</h2></head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%
int a = 5;
int b = 10;
int c = a + b;
out.println("<br>");
out.println(a+" +");
out.println(b+" = "+c+"<br>");
/* ubah penugasan dengan /= dan %= menjadi lat23b.jsp dan
la23c.jsp */
a -=2 ;
out.println(a+"<br");

%>
</body>
</html>

J. URUTAN PENGERJAAN OPERATOR


Jika 1 + 2 * 3 = 7 maka ueurtan pengerjaan adalah (2*3) + 1. Dalam java ada
prioritas pengerjaan operator seperti pada tabel di bawah :
Operator Keterangan
. [] {} Prioritas Tinggi
++, -- ! ~ instanceof
New (type) ekspresi
- (negatif), + (plus), ~, !
*/%

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
66

+-
<< >> >>>
-e, -r
< <= > >=
== !=
&
^
|
&&
||
?:
= += -= *= /= %= ^=
&= |= <<= >>= >>>= Prioritas Rendah

K. PENGARAH TIPE (TYPE-CASTING)


Untuk mengubah tipe data menjadi tipe data yang ain maka diperlukan proses
pengarahan tipe yang lebih dikenala dengan type-casting
misal :
int a = 5;
akad diubah menjadi karakter.
int a = 5;
char huruf = (char) a;

Latihan 24 (lat24.jsp)
<html>
<head><h2>Operator Penugasan</h2></head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%
int a = 67;
char huruf = (char) a;

out.println(huruf);
%>
</body>
</html>

Outpnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
67

Nilai 67 menjadi C jika diubah ke char karena kode ascii 67 untuk karakter
adalah C
L. MENGENAL KELAS
Sebagai pemrogaraman berorientasi objek, pada java dikenal istilah kelas dan
objek. Analogi untuk kelas dan objek dianalogikan sebagai berikut :
Kelas adalah cetakan kue dan objek adalah objek adalah hasil cetakan kue.
a) METODE
Setiap kelas memiliki data dan metode. Metode adalah suatu prosedur
(kompulan kode) yang ditujukan untuk mengakses data. Data yang
terdapat dalam kelas sering disebut variable instatnt atau field.
Kelas yang sudah diperkenalkan adalah GregorianCalendar
Misalnya :
GregorianCalendar sekarang = new
GregorianCalendar();
Pada contoh tersebut new GregorianCalendar(); adalah untuk menciptakan
objek berkelas GregorianCalendar yang selanjutnya diberi nama variabel
sekarang.
Selanjutnya variabel sekarang dideklarasikan dengan mengambil metode
yang terdapat dalam kelas GregorianCalendar
int kode_hari =
sekarang.get(Calendar.Day_Of_Week);
b) MEMBUAT KELAS
Sebuah kelas dibuat dengan menggunakan kata kuci class. Contoh :
class tabel_mahasiswa {
int no_mhs;
String nama;
String alamat;
}
Script diatas menunjukkan bahwa kita telah membuat kelas bernama

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
68

tabel_mahasiswa dengan viariable instant / field bernama no_mhs, nama


dan alamat.
Pengembangan kelas tabel_mahasiswa dengan menggunakan 3 buah
metode adalah sebagai berikut :
latihan 25 (lat25.jsp)
<html>
<head><h2>Buat Kelas</h2></head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>
<%!
class tabel_mahasiswa {
int no_mhs;
String nama;
String alamat;
// konstruktor
public tabel_mahasiswa(int no_mhs, String nama, String
alamat)
{
this.no_mhs = no_mhs;
this.nama = nama;
this.alamat = alamat;
}
// metode
public int npm() {
return(no_mhs);
}
public String nami() {
return(nama);
}
public String imah() {
return(alamat);
}
}

%>
<br>
<br>
<%
tabel_mahasiswa mahasiswa = new
tabel_mahasiswa(32040040,"Agus Ramdhani Nugaraha",
"Jl Tentara Pelajar Gg H Idi No 19 Tasikmalaya");
out.println("No MHS : "+mahasiswa.npm()+"<br>");
out.println("Nama : "+mahasiswa.nami()+"<br>");
out.println("Alamat : "+mahasiswa.imah()+"<br>");

%>

</body>
</html>

Outputnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
69

Rapihkan tampilan sehingga menjadi :


Latihan 25b (lat25b.jsp)

public tabel_mahasiswa(int no_mhs, String nama,


String alamat)
{
this.no_mhs = no_mhs;
this.nama = nama;

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
70

this.alamat = alamat;
}
Merupakan konstruktor dari kelas tabel_mahasiswa yang digunakan untuk
menciptakan metode khusus untuk memberikan nilai awal saat objek
diciptakan. Metode ini akan otomatis dipanggil saat new digunakan untuk
menciptakan instant kelas. Sifat konstruktor adalah namanya sama dengan
nama kelas.
This mengacu pada kelas tabel_mahasiswa :
this.no_mhs = no_mhs;
Berarti variabel instant no_mhs (milik kelas tabel_mahasiswa) diisi
dengan parameter no_mhs

Pernyataan :
tabel_mahasiswa mahasiswa = new
tabel_mahasiswa(32040040,"Agus Ramdhani Nugraha",
"Jl Tentara Pelajar Gg H Idi No 19 Tasikmalaya");
Digunakan untuk menciptakan objek berkelas tabel_mahasiswa dan objek
yang dirujuk oleh tabel_mahasiswa bernama mahasiswa.

out.println("Alamat : "+mahasiswa.imah()+"<br>");
Diginakan untuk memanggil metode yang terdapat dalam kelas
tabel_mahasiswa

M. MENKONVERSI STRING KE TIPE LAIN


Kelas Integer, Float dan Double yang tersedia dalam java berguna untuk
mengkonversi dari satu tipe ke tipe lain yaitu dengan menggunakan metode
yang bernama valueOf
Misal :
Integer.valueOf(nilaiString).intValue()
Contoh :
Latihan 26 (lat26.jsp)
<html>
<head><h2><b>Konversi String</b></h2> </head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<form>
Masukan sebuah bilangan bulat : <br>
<input type= text name=bil size="15" maxlenght="15"><br>
<input type= Submit value="Proses">
</form>
<%
String strBilBulat = request.getParameter("bil");
if(strBilBulat != null)
{
int BilBaru = Integer.valueOf(strBilBulat).intValue();
out.println("50% dari bilangan "+BilBaru+" adalah "+(0.5

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
71

* BilBaru));
}
%>
<body>

</body>
</html>

Outputnya

PRAKTIKUM JSP

1. Mengenal tag Scriplet


Tag pada JSP dimulai dengan tanda <% dan diakhiri dengan %>

2. Mengenal Ekspresi JSP


Penulisan
<% out.print(new java.util.Date()); %>
Bisa disingkat menjadi
<%= new java.util.Date() %>
Latihan01 (lat01.jsp)
<HTML>
<BODY>
<%

System.out.println( "Melihat waktu " );


java.util.Date date = new java.util.Date();
%>
Hai ! waktu sekarang adalah <%= date %>
</BODY>
</HTML>

3. Mengenal Direktif JSP


Jika anda telah mengenal java anda akan mengenal penulisan
new Date()
daripada
new java.util.Date()

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
72

Penulisan java.util adalah mengacu pada paket util.java yang menggunakan


class date. Ingat ketika anda menggunakan class Driver untuk koneksi ke
mysql (org.gjt.mm.mysql.Driver) dimana Driver merupakan class yang di
import oleh program.
Dalam JSP pengimporan suatu paket dilakukan dengan menggunakan tag
direktif misalnya seperti berikut :
<%@ page import=java.util.* %>
Yang berati mengimport semua kelas yang berada pada paket java.util

Latihan 2 (lat02.jsp)
<html>
<head><h2><b>Latihan Kedua</b></h2> </head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>

<body>

</body>
</html>

4. Mengenal tag Deklaratif


Tag deklaratif diawali dengan <%! dan diakhiri dengan %>
<%! ................ %>
Contoh
<%!
String buku;
int harga =6000;
%>
String buku menyatakan pendeklarasian variable buku dengan tipe string
(deretan karakter) dan tidak diberi nilai awal
int harga mendeklarasikan variable harga dengan tipe int (bil bulat) dan diberi
nilai awal sama dengan 6000

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
73

Latihan 3 (lat03.jsp)
<html>
<head><h2><b>Latihan Ketiga</b></h2> </head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%!
String buku;
int harga =6000;
%>
Setelah di deklarasikan : <br>
<%
buku = "Buku JSP";
out.println("Judul Buku :"+buku+"<br>");
out.println("Pangaos :"+harga+"<br>");
%>
<body>
</body>
</html>

Beri nilai awal buku = Pemrograman Web Dengan JSP


Hasilnya harus seperti gambar di bawah dan apa yang harus anda buang ?

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
74

Selain dengan menggunakan tag deklaratif variable juga dapat dideklarasikan


dengan menggunakan tag sriptlet

Latihan 4 (lat04.jsp)
<html>
<head><h2><b>Latihan Keempat</b></h2> </head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<br>
<%
String buku = "Pemrograman WEB dengan JSP";
int harga =6000;

out.println("Judul Buku :"+buku+"<br>");


out.println("Pangaos :"+harga+"<br>");
%>
<body>

</body>
</html>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
75

5. Menangkap parameter dari formulir


Menangkap parameter dari formulir artinya manangkap variable yang
dikirimkan oleh form yang mengirim variable.

String nama = request.getParameter("nama_user");

Merupakan pernyataan untuk mendeklarasikan variable nama yang bertipe


string dan sekaligus mengisinya dengan nilai dari
request.getParameter("nama_user");
dan mengisinya dengan nilai parameter bernama
nama_user

out.println("Nama Yang Dimasukan : "+nama);


Menampilkan variable nama yang merupakan variable yang ditangkap dari
form lat05-b.jsp

Buat file untuk scrip dibawah dengan nama lat05-a.jsp


<html>
<head><h2><b>Latihan Kelima</b></h2> </head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<form action=lat05-b.jsp method=get>
Masukan nama anda : <br>
<input type= text name=nama_user size="15"
maxlenght="15"><br>
<input type= Submit value="Kirim">
</form>
<body>

</body>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
76

</html>

Pada script diatas variable yang akan dikirim ke lat05-b.jsp


adalah data yang diiputkan oleh user dengan nama variable
nama_user.

Latihan 5 (lat05-b.jsp)
<html>
<head><h2><b>Latihan Kelima Menangkap Parameter</b></h2>
</head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>
<br>
<%
String nama = request.getParameter("nama_user");
out.println("Nama Yang Dimasukan : "+nama);
%>
<body>

</body>
</html>

Untuk dipraktekan :
Modifikasi script diatas sehingga variable yang ditangkap oleh lat05-b.jsp di
beri font bold

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
77

Latihan untuk dikerjakan


Buatlah form pengirim dan penerima dengan metode radio button dan
combobox

Source code dibuat dalam format dokumen contoh :


11020034_lat5.doc
Kirim ke server mobile gentayangan

Tampilan dengan menggunakan Radio Button dan combobox

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
78

6. Pernyataan Berkondisi
Pernyataan kerkondisi adalah suatu kejadian dimana terdapat lebih dari satu
kondisi. Jika satu kondisi tidak terpenuhi maka akan berlanjut ke kondisi
berikutnya .

Latihan 6 (lat06.jsp)
<html>
<head><h2><b>Latihan Keenam</b></h2> </head>
<title>Praktikum JSP </title>
<body>

<%@ page import="java.util.*" %>


<%

java.util.Date date = new java.util.Date();

out.println( String.valueOf( date ));


out.println( "<BR>Alamat komputer anda : " );
out.println( request.getRemoteHost());
out.println( "<BR>");
%>
Hari ini :
<%
// Pernyataan berkondisi

GregorianCalendar sekarang = new GregorianCalendar();


int kode_hari = sekarang.get(Calendar.DAY_OF_WEEK);

if (kode_hari == 7)
out.println("<b>Hari Sabtu</b>");
else
out.println("<b>Bukan Hari Sabtu</b>");
%>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
79

</body>
</html>

Output

Pada latihan diimport GregorianCalendar dari java.util dengan objek


DAY_OF_WEEK dimana urutan dimulai dari minggu untuk nomor 1
Pernyataan :
out.println( request.getRemoteHost());
Digunakan untuk mengetahui nama komputer
Pada hari saat penulis menjalankan script ini harinya adalah rabu dan jika anda
praktikum hari sabtu maka sistem harus menyatakan kondisi true yaitu hari
sabtu

Latihan untuk anda?


Jawablah pertanyaan berikut
Jika script ini <%@ page import="java.util.*" %>
dibuang
Wed May 10 08:59:46 ICT 2006
Alamat komputer anda : localhost
Hari ini : Bukan Hari Sabtu

Dari ketiga output


Manakah yang akan tidak berfungsi ? Jelaskan ?

Modifikasi pernyataan berkondisi. yang menghasilkan output yang sama


Latihan 6 (lat06-b.jsp)
<html>
<head><h2><b>Latihan Keenam</b></h2> </head>
<title>Praktikum JSP </title>
<body>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
80

<%@ page import="java.util.*" %>


<%

java.util.Date date = new java.util.Date();

out.println( String.valueOf( date ));


out.println( "<BR>Alamat komputer anda : " );
out.println( request.getRemoteHost());
out.println( "<BR>");
%>
Hari ini :
<%
// Pernyataan berkondisi

GregorianCalendar sekarang = new GregorianCalendar();


int kode_hari = sekarang.get(Calendar.DAY_OF_WEEK);

if (kode_hari == 7){
%>
<b>Hari Sabtu</b>
<% }
else {
%>
<b>Hari Sabtu</b>
<% }
%>
</body>
</html>

Pernyataan kondisi hari lengkap


Latihan 6 (lat06-c.jsp)
<html>
<head><h2><b>Latihan Keenam</b></h2> </head>
<title>Praktikum JSP </title>
<body>

<%@ page import="java.util.*" %>


<%

java.util.Date date = new java.util.Date();

out.println( String.valueOf( date ));


out.println( "<BR>Alamat komputer anda : " );
out.println( request.getRemoteHost());
out.println( "<BR>");
%>
Hari ini :
<%
// Pernyataan berkondisi

GregorianCalendar sekarang = new GregorianCalendar();


int kode_hari = sekarang.get(Calendar.DAY_OF_WEEK);

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
81

if (kode_hari == 1)
out.println("<b>Hari Minggu</b>");
else
if (kode_hari == 2)
out.println("<b>Hari Senin</b>");
else
if (kode_hari == 3)
out.println("<b>Hari Selasa</b>");
else
if (kode_hari == 4)
out.println("<b>Hari Rabu</b>");
else
if (kode_hari == 5)
out.println("<b>Hari Kamis</b>");
else
if (kode_hari == 6)
out.println("<b>Hari Jumat</b>");
else
out.println("<b>Hari Sabtu</b>");
%>
</body>
</html>

Outputnya

7. Pengulangan / Looping
Pengulangan sering digunakan dalam setiap pemrograman untuk
memperpendek proses coding

Latihan 7 (lat07.jsp)
<html>
<head><h2><b>Latihan Ketujuh</b></h2> </head>
<title>Praktikum JSP </title>
<body>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
82

<%@ page import="java.util.*" %>


<%

java.util.Date date = new java.util.Date();

out.println( String.valueOf( date ));


out.println( "<BR>Alamat komputer anda : " );
out.println( request.getRemoteHost());

%>
<br>
<br>

<TABLE WIDTH=10% BORDER=2>


<%
int n = 7; // Jumlah pengulangan

for ( int i = 0; i < n; i++ ) {


%>
<TR>
<TD>Nomor Ke </TD>
<TD><%= i+1 %></TD>
</TR>
<%
}
out.println(n+" Kali");
%>
</TABLE>
</body>
</html>

Outputnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
83

8. Mendeklarasikan metode
Pada bagian 4 (tag deklaratif ) disebutka bahwa <%! ......%> digunakan untuk
mendeklarasikan variable. Pada bagian ini akan dijelaskan penggunaatag
deklaratif untuk mendeklarasikan metode
Latihan 8 (lat08.jsp)
<html>
<head><h2><b>Latihan Kedelapan</b></h2> </head>
<title>Praktikum JSP </title>

Waktu Sekarang Adalah


<%@ page import="java.util.*" %>
<%= new Date() %>

<br>

<%!
public int jumlah(int x, int y){
return(x+y); //mendeklarasikan jumlah
}
%>
<%
out.println("Nama Host :");
out.println( request.getRemoteHost());
// penggunaan metode jumlah
out.println(" <br>Hasil pertambahan metode jumlah =
"+"<b>"+jumlah(1, 2)+"</b><br>");
int var_baru = jumlah (10, 2);
out.println("Variabel baru : <b>"+var_baru+"</b>");
%>
<body>
</body>
</html>

Outputnya:

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
84

Pernyataan
public int jumlah(int x, int y){
return(x+y);}
Public menyatakan bahwa metode bersifat public (dapat di akses di mana
saja). Kata int terletak didepan jumlah untuk menyatakan bahwa metode
jumlah mempunyai nilai bertipe int (bilangan bulat), selanjutnya int x dan int y
memiliki dua buah parameter yaitu x dan y, dengan masing-masing bertipe
integer.
Pernyataan return(x+y) merupakan perintah untuk memberikan nilai pada
metode jumlah berupa penjumlahan nilai x dan y.
Pernyataan
int var_baru = jumlah (10, 2);
Variable baru (var_baru) adalah pemanggilan metode jumlah, untuk
menjumlahkan int 10 dan 2

Untuk Dikerjakan sebagai latihan tambahan


1) Modifikasi lat5-b.jsp sehingga,
Jika memasukan nama agus hasil seperti gambar di bawah

Jika tidak memasukan nama maka hasilnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
85

Dan jika memasukan nama bukan agus

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
86

AKSES DATABASE

Mengakses database via JSP

Interface Untuk koneksi ke database


Interface Keterangan
Connection Mendefinisikan koneksi ke database
Driver Mendefinisikan driver yang melakukan
koneksi ke database. Kelas yang
mengimplementasikan interface ini juga juga
terdapat pada paket java.sql dengan nama
DriverManager
Statement Mendefinisikan sejumlah metode yang
berhubungan dengan pernyataan sql
ResultSet Interface yang mendefinisikan pangaksesan
hasil pernyataan SQL

Latihan 9 (lat9.jsp)
<html>
<head><h2><b>Latihan Ke-9 (Tes Koneksi)</b></h2> </head>
<title>Praktikum JSP </title>
<body>

<%@ page import="java.util.Date, java.sql.Connection,


java.sql.DriverManager" %>
<%

java.util.Date date = new java.util.Date();

out.println( String.valueOf( date ));


out.println( "<BR>Alamat komputer anda : " );
out.println( request.getRemoteHost());
out.println( "<BR>");
boolean ada_kesalahan = false;

try {
Class.forName("com.mysql.jdbc.Driver");
}

catch(Exception ex){
out.println( "Kesalahannya :" + ex);
ada_kesalahan = true;
}

if (!ada_kesalahan){
// script koneksi
Connection koneksi = null;

try {
koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/forum","java","java");

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
87

out.println( "<b> Koneksi Berhasil</b>");


}
catch(Exception ex){
out.println( "Kesalahannya : " + ex);
}
}
%>
</body>
</html>

Output :

Untuk dipraktekan :
1. Matikan mysql server ? Apa yang terjadi ?
2. Ubah user atau password dengan user atau password
yang tidak terdaftar di Mysql server !! Apa yang
terjadi?
koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/
forum","java","java");

Menampilkan data di MySQL ke web browser.


Simpan file dibawah dengan nama java.sql
Restore java.sql, gunakan perintah \. (lokasi file)
DROP DATABASE IF EXISTS JAVA; /* menghapus database java
jika ada */
CREATE DATABASE JAVA; /* membuat database java */
USE JAVA; /* mengaktifkan database java */

/* membuat tabel huruf, kolom dan type datanya */


CREATE TABLE huruf (

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
88

nilai char(1) NOT NULL default '',


angka smallint(1) NOT NULL default '0',
PRIMARY KEY (nilai)
);

/* memasukan data ke dalam tabel huruf */


INSERT INTO huruf VALUES ('A',4);
INSERT INTO huruf VALUES ('B',3);
INSERT INTO huruf VALUES ('C',2);
INSERT INTO huruf VALUES ('D',1);
INSERT INTO huruf VALUES ('E',0);
INSERT INTO huruf VALUES ('T',0);

/* membuat tabel mahasiswa, kolom dan type datanya */


CREATE TABLE mahasiswa (
no_mhs int(8) NOT NULL default '0',
nama varchar(25) NOT NULL default '',
alamat varchar(100) NOT NULL default '',
PRIMARY KEY (no_mhs)
);

/* memasukan data ke dalam tabel mahasiswa */


INSERT INTO mahasiswa VALUES (32040001,'Arjuna Dinapraja','Jl
Semar Mesem No 23 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040002,'Rara
Jonggrang','Jl.Ciendog No 11 Gobras Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040003,'Ibnu Sutowo','Perum Cimulu
No 7 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040004,'Imas Wati','Jl Tentapel No
65 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040005,'Damar Wulan','Jl.Cilembang
No 90 Tasikmalaya');

/* membuat tabel mata_kuliah, kolom dan type datanya */


CREATE TABLE mata_kuliah (
kodemk varchar(8) NOT NULL default '',
nama_mk varchar(20) NOT NULL default '',
sks smallint(1) NOT NULL default '0',
PRIMARY KEY (kodemk)
);

/* memasukan data ke dalam tabel mata_kuliah */


INSERT INTO mata_kuliah VALUES ('MI-11101','Agama',2);
INSERT INTO mata_kuliah VALUES ('MI-11102','Pancasila',2);
INSERT INTO mata_kuliah VALUES ('MI-11103','Algoritma',3);
INSERT INTO mata_kuliah VALUES ('MI-11104','Basis Data',3);
INSERT INTO mata_kuliah VALUES ('MI-11105','Java',3);

/* membuat tabel nilai, kolom dan type datanya */


CREATE TABLE nilai (
no_mhs int(8) NOT NULL default '0',
kodemk varchar(8) NOT NULL default '',
nilai char(1) default NULL,
constraint no_mhs foreign key (no_mhs) references
mahasiswa(no_mhs) on delete cascade on update cascade,

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
89

constraint kodemk foreign key (kodemk) references


mata_kuliah(kodemk) on delete restrict on update cascade,
constraint nilai foreign key (nilai) references huruf(nilai) on
delete restrict on update restrict
);

/* memasukan data ke dalam tabel nilai */


INSERT INTO nilai VALUES (32040002,'mi-11101','A');
INSERT INTO nilai VALUES (32040002,'mi-11102','D');
INSERT INTO nilai VALUES (32040003,'mi-11104','C');
INSERT INTO nilai VALUES (32040004,'mi-11102','B');
INSERT INTO nilai VALUES (32040001,'mi-11105','B');
INSERT INTO nilai VALUES (32040003,'mi-11102','E');
INSERT INTO nilai VALUES (32040003,'mi-11102','T');

GRANT ALL ON java.* to java@'%' identified by 'java';

Latihan 10 (lat10.jsp)
<html>
<head><h2><b>Latihan Ke-10 (Ambil Data Dari DB)</b></h2> </head>
<title>Praktikum JSP </title>
<body>

<%@ page import="java.util.Date,


java.sql.Connection,
java.sql.DriverManager,
java.sql.Statement,
java.sql.ResultSet"
%>

<%

java.util.Date date = new java.util.Date();

out.println( String.valueOf( date ));


out.println( "<BR>Alamat komputer anda : " );
out.println( request.getRemoteHost());
out.println( "<BR>");
boolean ada_kesalahan = false;

try {
Class.forName("com.mysql.jdbc.Driver");
}

catch(Exception ex){
out.println( "Kesalahannya :" + ex);
ada_kesalahan = true;
}

// script koneksi
Connection koneksi = null;

try {
koneksi =

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
90

DriverManager.getConnection("jdbc:mysql://localhost/java","java","java");
;
}
catch(Exception ex){
out.println( "Kesalahannya : " + ex);
}

if (!ada_kesalahan){
ResultSet query01 = null;
try {
Statement stm = koneksi.createStatement();
query01 = stm.executeQuery(
"select mahasiswa.no_mhs, mahasiswa.nama,"+
"mata_kuliah.kodemk, nilai.nilai from mahasiswa inner "+
"join nilai on mahasiswa.no_mhs=nilai.no_mhs inner join mata_kuliah
"+
" on mata_kuliah.kodemk=nilai.kodemk");
}
catch(Exception ex){
out.println( "Kesalahannya : " + ex);
ada_kesalahan = true;
}

if (!ada_kesalahan){
out.println("<table border=\"1\">");
out.println(
"<tr><th>No Mhs</th><th>Nama</th><th>Kode MK</th>"+
"<th>Nilai</th>");
try {
while (query01.next()){
String no_mhs = query01.getString("no_mhs");

String nama = query01.getString("nama");

String kodemk = query01.getString("kodemk");

String nilai = query01.getString("nilai");

out.println("<tr><td>"+no_mhs+"</td><td>"+nama+"</td><td>"+
kodemk+"</td><td><center>"+nilai+"</center></td></tr>");
}
}
catch(Exception ex){
out.println("Kesalahan : " + ex);
}
out.println("<table>");
}
}
%>
</body>
</html>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
91

Outputnya :

Untuk dipraktekan :
1. Ubah Nama variable string dibawah menjadi
String no_mhs = query01.getString("no_mhs"); //
menjadi satu

String nama = query01.getString("nama"); // menjadi


dua

String kodemk = query01.getString("kodemk"); //


menjadi tiga

String nilai = query01.getString("nilai"); //


menjadi empat

2. Save as file lat10.jsp menjadi lat11.jsp dan perbaharui perintah sql dan
variable string sehingga tampilan menjadi :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
92

3. Save as file lat11.jsp menjadi lat12.jsp dan perbaharui perintah sql dan
variable string sehingga tampilan menjadi :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
93

4. Simpan script di bawah ini dengan nama java2.sql dan restore ke dlm database
mysql anda.

DROP DATABASE IF EXISTS java2;

CREATE DATABASE java2;


USE java2;

CREATE TABLE huruf (


nilai char(1) NOT NULL default '',
angka smallint(1) NOT NULL default '0',
PRIMARY KEY (nilai)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO huruf VALUES ('A',4);


INSERT INTO huruf VALUES ('B',3);
INSERT INTO huruf VALUES ('C',2);
INSERT INTO huruf VALUES ('D',1);
INSERT INTO huruf VALUES ('E',0);
INSERT INTO huruf VALUES ('T',0);

CREATE TABLE mahasiswa (


no_mhs int(8) NOT NULL default '0',
nama varchar(25) NOT NULL default '',
jurusan char(2) NOT NULL default '',
angkatan tinyint(4) NOT NULL default '0',
alamat varchar(100) NOT NULL default '',
PRIMARY KEY (no_mhs)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO mahasiswa VALUES (11010010,'Ika


Chrisnadewi','ti',127,'Jl.Leuwidahu No 4 Tasikmalaya');
INSERT INTO mahasiswa VALUES (11020011,'Ade
Sena','ti',127,'Jl.Among Rogo No 32 Tasikmalaya');
INSERT INTO mahasiswa VALUES (11040012,'Fatra Jaya
Purnama','ti',127,'Jl.Nukit Panuan No 90 Tasikmalaya');
INSERT INTO mahasiswa VALUES (11040013,'Wulan
Guritno','ti',127,'Jl.Cihiba No 12 Tasikmalaya');
INSERT INTO mahasiswa VALUES (11040014,'Samiadji
Herijanto','ti',127,'Jl.merdeka No 3 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32010007,'Kurniawan
Julianto','mi',127,'Jl.Fatmawati No 6 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32030005,'Damar
Wulan','mi',127,'Jl.Cilembang No 90 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040001,'Arjuna
Dinapraja','mi',127,'Jl Semar Mesem No 23 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040002,'Rara
Jonggrang','mi',127,'Jl.Ciendog No 11 Gobras Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040003,'Ibnu
Sutowo','mi',127,'Perum Cimulu No 7 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32040004,'Imas Wati','mi',127,'Jl
Tentapel No 65 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32050006,'Indah
damayanti','mi',127,'Jl.Cimuncang No 9 Tasikmalaya');

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
94

INSERT INTO mahasiswa VALUES (32050008,'Puput


Novel','mi',127,'Jl.Cimulu No 90 Tasikmalaya');
INSERT INTO mahasiswa VALUES (32050009,'Agus
Ramdhani','mi',127,'Jl.Emapngsari No 66 Tasikmalaya');

CREATE TABLE mata_kuliah (


kodemk varchar(8) NOT NULL default '',
nama_mk varchar(20) NOT NULL default '',
sks smallint(1) NOT NULL default '0',
PRIMARY KEY (kodemk)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO mata_kuliah VALUES ('MI-11101','Agama',2);


INSERT INTO mata_kuliah VALUES ('MI-11102','Pancasila',2);
INSERT INTO mata_kuliah VALUES ('MI-11103','Algoritma',3);
INSERT INTO mata_kuliah VALUES ('MI-11104','Basis Data',3);
INSERT INTO mata_kuliah VALUES ('MI-11105','Java',3);
INSERT INTO mata_kuliah VALUES ('TI-11106','Sistem Operasi',2);
INSERT INTO mata_kuliah VALUES ('TI-11107','Kalkulus',3);
INSERT INTO mata_kuliah VALUES ('TI-11108','Statistik',2);
INSERT INTO mata_kuliah VALUES ('TI-11109','Praktikum Java',3);
INSERT INTO mata_kuliah VALUES ('TI-11110','Internet I',2);

CREATE TABLE nilai (


no_mhs int(8) NOT NULL default '0',
kodemk varchar(8) NOT NULL default '',
nilai char(1) default NULL,
KEY no_mhs (no_mhs),
KEY kodemk (kodemk),
KEY nilai (nilai)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO nilai VALUES (32040002,'mi-11101','A');


INSERT INTO nilai VALUES (32040002,'mi-11102','D');
INSERT INTO nilai VALUES (32040003,'mi-11104','C');
INSERT INTO nilai VALUES (32040004,'mi-11102','B');
INSERT INTO nilai VALUES (32030005,'mi-11105','B');
INSERT INTO nilai VALUES (32010007,'mi-11101','E');
INSERT INTO nilai VALUES (32010007,'mi-11102','T');
INSERT INTO nilai VALUES (32010007,'mi-11103','B');
INSERT INTO nilai VALUES (32010007,'mi-11105','A');
INSERT INTO nilai VALUES (11010010,'ti-11106','A');
INSERT INTO nilai VALUES (11010010,'ti-11110','B');
INSERT INTO nilai VALUES (11040012,'ti-11108','C');
INSERT INTO nilai VALUES (11040012,'ti-11107','B');
INSERT INTO nilai VALUES (11040012,'ti-11109','A');
INSERT INTO nilai VALUES (32040003,'mi-11102','E');
INSERT INTO nilai VALUES (11040014,'ti-11110','D');

ALTER TABLE `nilai`


ADD FOREIGN KEY (no_mhs) REFERENCES mahasiswa (no_mhs) ON DELETE
CASCADE ON UPDATE CASCADE,
ADD FOREIGN KEY (kodemk) REFERENCES mata_kuliah (kodemk) ON
UPDATE CASCADE,
ADD FOREIGN KEY (nilai) REFERENCES huruf (nilai);
GRANT ALL ON java2.* to java@'%' identified by 'java';

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
95

Buat file lat13-a.jsp sebagai pengirim dan lat13-b sebagai penerima.


Outputnya sebagai berikut :

5. Query berdasrkan kriteria tertentu

Hasil query

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
96

Ketentuan sistem
Jika input box bernilai mahasiswa MI dan combobox adalah mahasiswa TI
maka keluaran adalah null berlaku sebaliknya
Perhitungan IPK adalah A=4, B=3, C=2, D=1 dan E=0 jadi untuk kasus
mahasiswa dengan nama Rara Jongrang perhitungannya bisa dilihat di
lat11.jsp yaitu Total nilai = 10 dibagi jumlah semua SKS yang telah
diambilnya yaitu 4 (agama dan pancasila)
8/4 = 2,50
Untuk file lat13-a.jsp dan lat13-b.jsp digunakan database java2

Menambah data mahasiswa dan menyimpan didalam database

Latihan 14 (lat14-a.jsp)
<html>
<head><h4>Tambah Data Mahasiswa</h4>
<title>Menambah Mahasiswa</title>
</head>
<body>
<form action="lat14-b.jsp" method=post>

<td>NPM</td><br>
<td><input name="no_mhs" type="text" id="no_mhs"
value="" size="8" maxlength="8"></td><br>
</tr>
<tr>
<td>Nama</td><br>
<td><input name="nama" type="text" id="nama" value=""
size="25" maxlength="25"></td><br>
</tr>
<tr>
<td>Jurusan</td><br>

<select name="pilihan">
<option value="ti">Teknik Informatika</option>
<option value="mi">Manajemen Informatika</option>

</select><br>
</td>
</tr>
<tr>
<td>Angkatan</td><br>

<input name="angkatan" type="text" id="angkatan"


value="" size="4" maxlength="4"><br>
</td>
</tr>
<tr>
<td>Alamat</td><br>

<input name="alamat" type="text" id="alamat" value=""


size="50" maxlength="100"><br>
</td>
</tr>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
97

<tr>
<input name="Submit" type="submit" id="Submit"
value="Tambah">
<input name="Submit2" type="reset" id="Submit2"
value="Reset">
</form>
<form action="lat14-c.jsp" method=post>
<input name="Submit" type="submit" id="Submit"
value="Lihat Data">
</form>
</font></td>
</tr>

</body>
</html>

lat14-b.jsp
<%@page import="java.sql.*" %>

<%@page import="java.sql.*" %>


<%
String ganti = request.getParameter("no_mhs");
String ganti2 = request.getParameter("nama");
String ganti3 = request.getParameter("pilihan");
String ganti4 = request.getParameter("angkatan");
String ganti5 = request.getParameter("alamat");

String sql = "insert into


mahasiswa(no_mhs,nama,jurusan,angkatan,alamat)
values('"+ganti+"','"+ganti2+"','"+ganti3+"','"+ganti4+"','"+ganti5+"')";

Class.forName("org.gjt.mm.mysql.Driver");
Connection koneksi = null;

koneksi = DriverManager.getConnection("jdbc:mysql://localhost/java2",
"java", "java");
ResultSet hasilquery = null;
Statement stmt = koneksi.createStatement();

stmt.executeUpdate(sql);

stmt.close();
koneksi.close();
}
%>
<jsp:forward page="lat14-c.jsp"/>

lat14-c.jsp
<%@ page contentType="text/html; charset=iso-8859-1"
language="java" import="java.sql.*" errorPage="" %>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
98

<html>
<head><h4> Data Mahasiswa</h4>
<title> Data Mahasiswa</title>
</head>
<body>
<form action="lat14-a.jsp" method=post>

<%

//=============================================================
Class.forName("org.gjt.mm.mysql.Driver");
Connection koneksi = null;
koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/java2",
"java", "java");
ResultSet hasilquery = null;
Statement stmt = koneksi.createStatement();

//=============================================================
%>

<table width="70%" border="2">

<tr>
<td bgcolor=#CCCCCC><center>NPM</center></td>
<td bgcolor=#CCCCCC><center>Nama</center></td>
<td bgcolor=#CCCCCC><center>Jurusan</center></td>
<td bgcolor=#CCCCCC><center>Angkatan</center></td>
<td bgcolor=#CCCCCC><center>Alamat</center></td>
</tr>
<%
int no_mhs = 0;
String sql = "select * from mahasiswa";

hasilquery = stmt.executeQuery(sql);
while(hasilquery.next())
{

out.println("<tr><td>"+hasilquery.getInt("no_mhs")+"</td>" );
out.println("<td>"+hasilquery.getString("nama"
)+"</td>" );

out.println("<td><center>"+hasilquery.getString("jurusan"
)+"</center></td>" );

out.println("<td><center>"+hasilquery.getInt("angkatan") +
"</center></td>" );
out.println("<td>"+hasilquery.getString("alamat"
)+"</td>" );
no_mhs = hasilquery.getInt("no_mhs");
}

stmt.close();
koneksi.close();
%>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
99

</table>
<br>

<td><input name="Submit" type="submit" id="Submit"


value="Tambah Data"></td></tr>
</p>

</tr>
</form>

</body>
</html>

Tugas untuk anda :


1. Ke 3 Script diatas memiliki bug terutama pada proses input di lat16-b dan
lat16-c. Salah satunya adalah ketika menginput dan salah satu form isian
tidak diisikan, proses input form ke dalam database masih diteruskan
2. Gunakan logika if dan abaikan proses input ketika ada satu dan atau
beberapa form ada yang tidak diisi.
3. Modifikasi database anda sehingga ketika input berhasil maka data yang
diinputkan akan berada pada urutan yang paling atas. Gunakan order by
agar data yang baru diinputkan berada paling atas.
4. Gunakan auto_increment pada database anda sehingga pengurutan bisa
dilakukan berdasarkan inputan terbaru dan bukan berdasarkan kolom yang
lain.

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
100

PENGAMBILAN KEPUTUSAN

A. Ekspresi Booelan
Ekspresi booelan adalah ekspresi yang nilai benar(true) dan salah(false).
Ekspresi booelan bisa digunakan dalam kondisi IF dan pernyataan
pengulanagn DO...While

B. Operator Pembanding
Operator Arti Contoh
== Kesamaan A == B
!= Ketidaksamaa A != B
> Lebih dari A>B
< Kurang dari A<B
>= Lebih dari sama dengan A >= B
<= Kurang dari sama dengan A <= B

Latihan 27 (lat27.jsp)
<html>
<head><h2>Operator Pembanding</h2></head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>

<%
int a = 10;
int b = 20;
out.println("<br>");
out.println("<br>");
out.println(a + "==" +b+ " : "+(a==b)+"<br>");
out.println(a + "!=" +b+ " : "+(a!=b)+"<br>");
out.println(a + "<" +b+ " : "+(a<b)+"<br>");
out.println(a + "<=" +b+ " : "+(a<=b)+"<br>");
out.println(a + ">" +b+ " : "+(a>b)+"<br>");
out.println(a + ">=" +b+ " : "+(a>=b)+"<br>");
%>

</body>
</html>
Outputnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
101

C. Operator Logika
Operator Makna Contoh
&& Dan ($a ==$b) && ($c != &d)
|| Atau ($a ==$b) && ($a ==
&c)
! Bukan !($a ==$b)

Latihan 28 (lat28.jsp)
<html>
<head><h2>Operator Logika</h2></head>
<title>Praktikum JSP </title>
<body>
Waktu Sekarang Adalah
<%@ page import="java.util.*" %>
<%= new Date() %>

<%
char kar = 'a';
out.println("<br>");
out.println("<br>");
out.println("Karakter " + kar +"<br>");

out.println("Termasuk digit : ");


out.println((kar >= '0' && kar <= '9') +"<br>");

out.println("Termasuk huruf kecil : ");


out.println((kar >= 'a' && kar <= 'z') +"<br>");

out.println("Termasuk huruf kapital : ");


out.println((kar >= 'A' && kar <= 'Z') +"<br>");

%>

</body>
</html>

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
102

Outputnya :

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya
103

DAFTAR PUSTAKA

Agus Ramdhani Nugraha, MT.


STMIK-DCI Tasikmalaya

Anda mungkin juga menyukai