Anda di halaman 1dari 68

BAHASA PEMROGRAMAN 1AVA

KOMUNIKASI DATA, J2ME DAN J2EE


WINDU GATA, SKOM
PENDAHULUAN
Buku bahasa pemrograman java komunikasi data dan J2ME, penulis akan
membahas komunikasi data lebih dari satu komputer menggunakan sarana jaringan,
kabel serial (rs232) dan sedikit membahas penggunaan Java Mobile (J2ME).
Banyak peralatan yang menyediakan sarana komunikasi data seperti modem,
mesin absen, mesin timbangan dan lainlain yang dapat dihubungkan dengan
komputer melalui kabel serial rs232 (!om" atau !om2) dan jaringan komputer
(#omputer $et%ork). &an banyak dari programmer tidak mengetahui bagaimana
!aranya berinteraksi dengan peralatan tersebut, dengan ditulis buku ini setidaknya
penulis memberikan !ara menggunakannya dengan tujuan apabila programmer java
berhadapan dengan alat tersebut tidak lagi merasa !anggung karena ketidaktahuan
dan dapat menggunakannya se!ara optimal
B'B (
)EM*+,*'M'$ -+M.$(-'/( )'&' -'BE0 /E*('0 (*/232)
*/232
M+&EM
B'B ((
)EM*+,*'M'$ -+M.$(-'/( )'&' J'*($,'$ -+M).1E*
B'B (((
J'2' 2 M(#*+ E&(1(+$
B'B (2
J'2' 2 E$1E*)*(/E E&(1(+$ (J2EE)
BAB I
)EM*+,*'M'$ -+M.$(-'/( )'&' -'BE0
/E*('0 (*/232)
)ada a%al tahun "345, sebuah lembaga yang dikenal dengan Ele!troni!
(ndustries 'sso!iation, mengembangkan peralatan standard untuk komunikasi
data. /aat ini peralatan sering kita kenal dengan nama #om port atau */232, yang
pada tahun "335 dikenal dengan E('232.
Banyak peralatan yang kita lihat pada kehidupan seharihari, salah satunya
adalah modem dialup jika kita ingin menggunakan internet pada komputer.
1erdapat inter6a!e yang menghubungkan modem dengan */232 atau !omm port
yang berada pada belakang komputer.
/e!ara elektornika berkomunikasi se!ara dua arah dan berjalan se!ara
logika voltase seperti gambar ".
,ambar ". 2oltase )ada */232
Jika kita ingin mengirimkan huru6 ' dengan tujuh paritas bit data. 7uru6
' jika dikonversikan ke binary yaitu "5555", ditambah dengan start bit 5, parity
bit 5 dan 2 stop bit "". jika digabungkan maka jika mengirimkan huru6 ' pada
tujuh paritas bit data akan berupa 5"55555"5"".
.ntuk mengirimkan angka binari 5 kurang lebih voltase yang dibutuhkan
adalah 83 sampai dengan 8"9 2. /edangkan angka binari " kurang lebih voltase
yang dibutuhkan adalah 3 2 sampai dengan "9 2.
MACAM-MACAM MODEL RS232
)ada a%alnya */232 dibuat dalam bentuk 29 pin, sejak (BM'1 ()#)
terdapat model */232 dengan bentuk )in 3 (&B3). 7ingga saat ini )in 3 lebih
banyak digunakan.
,ambar 2. */232 : )in 3 (kiri) dan )in 29 (kanan)
/etiap pin pada */232 pin 3 dan pin 29 ada keterangan penggunaannya ;
,ambar 3. )enggunaan )in pada */232 )in 3
.ntuk melakukan konversi dari pin 3 ke pin 29 dapat dilakukan seperti
pada gambar diba%ah ;
,ambar <. -onversi dari )in 3 ke pin 29
)enggunaan */232 dapat juga digunakan untuk pengetesan pada satu
komputer, dimana data akan terkirim ke diri sendiri (loop back).
,ambar 9. 0oop Ba!k
#ara termudah untuk melakukan komunikasi data dengan 2 (dua)
komputer yaitu */232 null modem. /ebagai !ontoh, terdapat 3 (kabel) yang akan
digunakan. -abel pertama adalah /ignal ,round, kabel kedua menghubungkan
pin transive=pengirim ke pin recieve=penerima, dan kabel ketiga terhubung pada
pin recieve=penerima ke pin transive=pengirim.
,ambar 4. */232 $ull Modem )in3
MENGGUNAKAN RS232 DENGAN BAHASA PROGRAM 1AVA
Bahasa pemrograman java mendukung komponen */232 tersebut. >ang
disebut dengan java!ommapi yang terdiri dari !omm.jar, java?.!omm.properties,
dan %in32!om.dll yang dapat diunduh=do%nload pada %eb site
http;==java.sun.!om=produ!ts=java!omm=inde?.jsp.
.ntuk system operasi Ms. @indo%s 2555 dan A), hasil installan sering
kali bermasalah. #ara penanganannya adalah sebagai berikut ;
". #opy !omm.jar pada direktori BinstallanCDjreDlibDe?t
2. #opy %in32!om.dll pada direktori BinstallanCDjreDbin
3. #opy java?.!omm.properties pada direktori BinstallanCDjreDlib
7alhal yang perlu diketahui pada komunikasi yaitu ke!epatan
pengiriman, data bits, parity, stop bits, dan 6lo% !ontrol.
". -e!epatan pengiriman, 355 bps sampai dengan 32"455
2. &ata bits, 9 sampai dengan E bits
3. )arity terdiri dari even, odd dan none
<. /top bits, ", ".9 dan 2
9. Flo% #ontrol $one
,ambar G. )roperties */232
)ada salah satu !ontoh program pada %eb site %%%.sun.!om untuk
menggunakan alat */232 adalah /imple*ead.java dan /imple@rite.java.
/imple*ead.java adalah program untuk memba!a data yang didapatkan dari
*/232 dan /imple@rite.java adalah program untuk mengirimkan data melalui
*/232.
&engan !atatan ke!epatan, data bit, stop bit, dan pariti harus sama antara
satu dengan lainnya. /ebagai !ontoh jalankan program program penerima di
komputer penerima dan program pengirim dikomputer pengirim.
Program Penerima
/*
* @(#)SimpleRead.java 1.12 98/06/25 SMI
* Copyi!"# ($) 1998 S%& Mi$o'y'#em'( I&$. )ll Ri!"#' Re'eved.
* *o!am %&#%+ Me&eima da#a
*/
impo# java.io.*,
impo# java.%#il.*,
impo# java-.$omm.*,
p%.li$ $la'' SimpleRead impleme&#' R%&&a.le( Seial*o#/ve&#0i'#e&e 1
'#a#i$ Comm*o#Ide&#i2ie po#Id,
'#a#i$ /&%mea#io& po#0i'#,
I&p%#S#eam i&p%#S#eam,
Seial*o# 'eial*o#,
3"ead ead3"ead,
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
//Me&!ide&#i2i+a'i+a& j%mla" po# pada +omp%#e
po#0i'# 6 Comm*o#Ide&#i2ie.!e#*o#Ide&#i2ie'(),
7"ile (po#0i'#."a'Moe/leme&#'()) 1
po#Id 6 (Comm*o#Ide&#i2ie) po#0i'#.&e-#/leme&#(),
i2 (po#Id.!e#*o#3ype()
66 Comm*o#Ide&#i2ie.*8R39S/RI)0) 1
//ya&! di.%+a "a&ya po# pe#ama a#a% C8M1
i2 (po#Id.!e#:ame().e;%al'(<C8M1<)) 1
//ji+a me&!!%&a+a& =&i-
//i2 (po#Id.!e#:ame().e;%al'(</dev/#em/a<)) 1
SimpleRead eade 6 &e7 SimpleRead(),
>
>
>
>
p%.li$ SimpleRead() 1
#y 1
'eial*o# 6 (Seial*o#)
po#Id.ope&(<SimpleRead)pp<( 2000),
> $a#$" (*o#I&='e/-$ep#io& e) 1>
#y 1
i&p%#S#eam 6 'eial*o#.!e#I&p%#S#eam(),
> $a#$" (I8/-$ep#io& e) 1>
#y 1
'eial*o#.add/ve&#0i'#e&e(#"i'),
> $a#$" (3ooMa&y0i'#e&e'/-$ep#io& e) 1>
'eial*o#.&o#i2y8&?a#a)vaila.le(#%e),
#y 1
//'peed 9600( da#a.i# 8( '#op.i# 1( pai#y &o&e
'eial*o#.'e#Seial*o#*aam'(9600(
Seial*o#.?)3)@I3S98(
Seial*o#.S38*@I3S91(
Seial*o#.*)RI3A9:8:/),
> $a#$" (=&'%ppo#edComm8pea#io&/-$ep#io& e) 1>
ead3"ead 6 &e7 3"ead(#"i'),
ead3"ead.'#a#(),
>
p%.li$ void %&() 1
#y 1
3"ead.'leep(20000),
> $a#$" (I&#e%p#ed/-$ep#io& e) 1>
>
p%.li$ void 'eial/ve&#(Seial*o#/ve&# eve&#) 1
'7i#$"(eve&#.!e#/ve&#3ype()) 1
$a'e Seial*o#/ve&#.@IB
$a'e Seial*o#/ve&#.8/B
$a'e Seial*o#/ve&#.C/B
$a'e Seial*o#/ve&#.*/B
$a'e Seial*o#/ve&#.C?B
$a'e Seial*o#/ve&#.C3SB
$a'e Seial*o#/ve&#.?SRB
$a'e Seial*o#/ve&#.RIB
$a'e Seial*o#/ve&#.8=3*=39@=CC/R9/M*3AB
.ea+,
$a'e Seial*o#/ve&#.?)3)9)D)I0)@0/B
//Me&a&!+ap da#a ya&! ma'%+ +e +omp%#e
.y#e45 ead@%22e 6 &e7 .y#e4205,
#y 1
7"ile (i&p%#S#eam.availa.le() E 0) 1
i&# &%m@y#e' 6 i&p%#S#eam.ead(ead@%22e),
>
//#ampil+a& +e laya
Sy'#em.o%#.pi&#(&e7 S#i&!(ead@%22e)),
> $a#$" (I8/-$ep#io& e) 1>
.ea+,
>
>
>
Program Pengirim
/*
* @(#)SimpleFi#e.java 1.12 98/06/25 SMI
* Copyi!"# ($) 1998 S%& Mi$o'y'#em'( I&$. )ll Ri!"#' Re'eved.
* *o!am =&#%+ Me&!iim ?a#a
*/
impo# java.io.*,
impo# java.%#il.*,
impo# java-.$omm.*,
p%.li$ $la'' SimpleFi#e 1
'#a#i$ /&%mea#io& po#0i'#,
'#a#i$ Comm*o#Ide&#i2ie po#Id,
'#a#i$ S#i&! me''a!eS#i&! 6 <Gello( 7oldHI&<,
'#a#i$ Seial*o# 'eial*o#,
'#a#i$ 8%#p%#S#eam o%#p%#S#eam,
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
po#0i'# 6 Comm*o#Ide&#i2ie.!e#*o#Ide&#i2ie'(),
7"ile (po#0i'#."a'Moe/leme&#'()) 1
po#Id 6 (Comm*o#Ide&#i2ie) po#0i'#.&e-#/leme&#(),
i2 (po#Id.!e#*o#3ype() 66
Comm*o#Ide&#i2ie.*8R39S/RI)0) 1
// i2 (po#Id.!e#:ame().e;%al'(<C8M1<)) 1
i2 (po#Id.!e#:ame().e;%al'(</dev/#em/a<)) 1
#y 1
'eial*o# 6 (Seial*o#)
po#Id.ope&(<SimpleFi#e)pp<( 2000),
> $a#$" (*o#I&='e/-$ep#io& e) 1>
#y 1
o%#p%#S#eam 6 'eial*o#.!e#8%#p%#S#eam(),
> $a#$" (I8/-$ep#io& e) 1>
#y 1
//'peed 9600( da#a.i# 8(
//'#op.i# 1( pai#y &o&e
'eial*o#.'e#Seial*o#*aam'(9600(
Seial*o#.?)3)@I3S98(
Seial*o#.S38*@I3S91(
Seial*o#.*)RI3A9:8:/),
> $a#$" (=&'%ppo#edComm8pea#io&/-$ep#io& e) 1>
#y 1
//+iim Gello( FoldH
o%#p%#S#eam.7i#e(me''a!eS#i&!.!e#@y#e'()),
> $a#$" (I8/-$ep#io& e) 1>
>
>
>
>
>
RS232 DAN MODEM
'pabila inter6a!e */232 di gunakan se!ara lengkap, maka penggunaannya
lebih !enderung pada penggunaan modem. &an pada modem, umumnya, telah
disediakan perintahperintah yang dapat digunakan oleh pengembang program.
)erintah:perintah tersebut disebut dengan sebutan '1 #ommand. 'dapun
perintah '1, bukan 't atau at, adalah sebagai berikut ;
+++ Mode data dirubah menjadi mode perintah tanpa harus melakukan
pemutusan hubungan. )erintah ini harus disertai dengan Enter
A/ Mengulangi perintah terakhir
ATA Menja%ab panggilan se!ara manual
ATBn Memilih proto!ol Bell or ##(11 ((1.1), model ini hanya
berpengaruh pada modem dengan model 2.22 atau 2.2"
nH5, ##(11 2.22 atau 2.2"
nH", Bell2"2 atau "53
ATDTn Melakukan kontak ke nomor telpon
#ontoh ; '1&152"GGGGGG
ATEn )erintah E!ho. /emua perintah yang dilakukan akan tampil kembali
pada layar
nH5, menonakti6kan e!ho
nH", mengakti6kan e!ho
ATHn 7angup
nH5, 7ang .p
nH", o66
ATIn )endeteksi identitas pabrikan dan setting
nH5, produ!t !ode
nH", pengkalkulasian pertama
nH2..3, prakiraan
nH<, +EM /tring
nH9.."", nilai ok
nH"2, )engkakulasian *+M
nH"3, 2ersi *#
nH"<, $ama )abrik )embuat
nH"9, )ilihan $egara
nH"G, ,/M +ption
nH"E, #ek ,/M /upport
ATLn /peaker 2olume
nH5, /uara 1erke!il
nH", /uara -e!il
nH2, /uara /edang
nH3, /uara -eras
ATMn )engontrolan /peaker
nH5, speaker tidak bersuara
nH", speaker akti6 jika terdapat penerimaan=pengiriman
nH2, speaker selalu akti6
nH3 speaker hanya akti6 jika modem menja%ab
ATQn *espon balik modem ke !omputer
nH5, modem melakukan respon pada !omputer
nH", modem tidak melakukan respon
ATSn Melakukan pengesetan dan memba!a register atau melakukan
autoans%er
'1/nH?, Melakukan pengesetan variable n dengan nilai "
'1/nI, memba!a register n
ATZn *eset modem
nH5, restore ke pro6il 5
nH", restore ke pro6il "
)erintahperintah modem yang terdapat pada tabel merupakan sebagian dari
perintah modem.
Bab II\
PEMROGRAMAN KOMUNIKASI PADA 1ARINGAN
KOMPUTER
Jaringan komputer atau (net%ork) adalah kumpulan komputer atau
peralatan lainya yang dimungkin untuk mengirimkan atau menerima data satu
dengan lainnya.
/aat ini proto!ol jaringan yang paling dikenal adalah proto!ol () ((nternet
)rotokol). () ini dikembangkan pertama kali untuk kepentingan militer 'merika
yang menginginkan komputerkomputer mereka, yang berbedabeda system
operasi, dapat berkomunikasi satu dengan yang lainnya.
)ada perkembangannya proto!ol ini digunakan diseluruh system operasi
seperti .ni?, @indo%s, Ma! dan lain lain dengan jumlah port 49, 939.
Bahkan peralatanperalatan yang menggunakan komunikasi serial (*/232)
telah diterapkan proto!ol (). )enggunaan proto!ol () se!ara global disebut
(nternet sedangkan untuk pemakaian pada internal sebuah organisasi disebut
intranet. /ebagai ilustrasi dapat dilihat pada gambar diba%ah ini ;
,ambar E. Jaringan -omputer
)ada buku ini, pengenalan jaringan komputer tidak mendalam.
)embahasan lebih !enderung pada pemrograman java pada jaringan komputer.
)rogram, yang menggunakan 6alitas jaringan komputer, dapat dilihat pada
komputer seharihari yaitu game online, %eb bro%ser (Ms. (nternet E?plorer,
$ets!ape, FireFo?) dan lainlain.
/aat pengguna komputer membuka salah satu situs %eb, !ontoh ;
%%%.yahoo.!om, komputer pengguna melalui web browser nya melakukan
permintaan koneksi pada komputer server dengan menggunakan proto!ol 1#)=()
melalui port E5. -emudian komputer server melakukan transaksi dan hasil
transaksi tersebut dikirim kembali pada komputer pengguna.
,ambar 3. )engiriman data melalui 1#)=() pada @eb Bro%ser
'dapun halhal yang perlu diketahui mengenai singkatan pada
penggunaan proto!ol ()
1#), 1rans6er #ode )roto!ol, ber6ungsi sebagai Layer mengidentitaskan
pengiriman dan penerimaan paket data
.&), .ser &atagram )roto!ol, ber6ungsi sebagai layer seperti 1#) tetapi
tidak memberikan tanda mengenai sampai atau tidaknya data.
Multi!ast, ber6ungsi sebagai layer pengirim berita ke seluruh komputer se!ara
point to point (Broadcast).
)ort, ber6ungsi sebagai jalur data se!ara logi! pada () .
.*0, be6ungsi sebagai pemberi identitas dari alamat %eb
711), 7yperte?t 1rans6er )rotokol, adalah standarisasi proto!ol komunikasi
antara web browser dan %eb server.
71M0, 7yperte?t Markup 0anguage, adalah 6ormat utama dalam penggunaan
%eb
AM0, adalah pengembangan lanjutan dari 71M0 dimana penggunaannya
lebih baku dibandingkan dengan 71M0
F1), File 1rans6er )roto!ol, ber6ungsi sebagai pengirim atau penerima 6ile
data
Email, Ele!troni! Mail, ber6ungsi sebagai pengirim atau penerima surat
elektronik.
/M1), /imple Mail 1rans6er )rotokol, adalah standar proto!ol untuk
pengiriman surat elektronik
)+)3, )ost +66i!e )roto!ol 2ersi 3, adalah standar penerimaan surat
elektronik.
1elnet, adalah proto!ol yang digunakan untuk perintah interakti6
)ro?y, ber6ungsi sebagai sharing internet.
MENDETEKSI PORT YANG DIGUNAKAN
Fasilitas atau protokol yang terdapat pada server dapat dideteksi oleh
program java. Begitu pula dengan penggunaan port 1#)=() pada komputer.
)rogram test proto!ol ;
//po!am diam.il da& dimodi2i+a'i dai
//.%+% Java :e#7o+ *o!ammi&! "al B195
//Simpa& Cile B *o#o$ol3e'#e.java
//Compile B java$ *o#o$ol3e'#e.java
//Caa Me&jala&+a& B java *o#o$ol3e'#e
impo# java.&e#.*,
p%.li$ $la'' *o#o$ol3e'#e 1
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
S#i&! %l 6 <777..l.a$.id<,
#e'#*o#o$ol (<"##pB//< K %l),
#e'#*o#o$ol (<"##p'B//< K %l),
#e'#*o#o$ol (<2#pB//< K %l),
#e'#*o#o$ol (<!op"eB//< K %l),
#e'#*o#o$ol (<&2'B//< K %l),
#e'#*o#o$ol (<#el&e#B//< K %l),
#e'#*o#o$ol (<mail#oB7i&d%@a&#aa.$o.id<),
>
piva#e '#a#i$ void #e'#*o#o$ol (S#i&! %l) 1
#y 1
=R0 % 6 &e7 =R0(%l),
Sy'#em.o%#.pi&#l&(%.!e#*o#o$ol() K < i' '%ppo#ed<),
> $a#$" (Mal2omed=R0/-$ep#io& e) 1
S#i&! po#o$ol 6 %l.'%.'#i&!(0( %l.i&de-82(LBL)),
Sy'#em.o%#.pi&#l&(po#o$ol K < i' &o# S%ppo#<),
>
>
>
,ambar "5. )roto!ol1ester
)rogram untuk men!ari port yang digunakan oleh server ;
//po!am diam.il da& dimodi2i+a'i dai .%+%
//Java :e#7o+ *o!ammi&!
//"al BM05
//Simpa& Cile B 0o7*o#S$a&&e.java
//Compile B java$ 0o7*o#S$a&&e.java
//Caa Me&jala&+a& B java 0o7*o#S$a&&e
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' 0o7*o#S$a&&e 1
p%.li$ '#a#i$ void mai& (S#i&!45 a!') 1
S#i&! "o'# 6 <777..l.a$.id<,
Sy'#em.o%#.pi&#l&(<3%&!!% 0a!i Me&de#e+'i<),
2o (i&# i 6 1, i N6 102O, iKK) 1
#y 1
So$+e# ' 6 &e7 So$+e#("o'#(i),
Sy'#em.o%#.pi&#l&(<*o# < K i K < ?i!%&a+a& < K "o'#),
>$a#$" (=&+&o7&Go'#/-$ep#io& e)1
Sy'#em.e.pi&#l&(e),
.ea+,
>$a#$" (I8/-$ep#io& e) 1
Sy'#em.o%#.pi&#l&(<*o# < K i K < 3ida+ ?i!%&a+a& <
K "o'#),
>
>
>
>
,ambar "". 0o%)ort/!anner
MENDOWLOAD HALAMAN WEB
Bahasa pemrograman java dapat dengan mudah mendeteksi 6asilitas yang
digunakan sebuah server seperti 711), F1), dll. Begitu juga dengan penggunaan
port () pada server.
/alah !ontoh program ke!il untuk mendo%load sebuah halaman %eb
//*o!am diam.il dai .%+% Java :e#7o+i&! *o!ammi&!P8Qeilly
//Gal B 210
//Simpa& Cile B So%$eDie7e.java
//Compile B java$ So%$eDie7e.java
//Caa Me&jala&+a& B java So%$eDie7e "##pB//777..l.a$.id
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' So%$eDie7e 1
p%.li$ '#a#i$ void mai& (S#i&!45 a!') #"o7' 3"o7a.le 1
i2 (a!'.le&!#" E 0) 1
#y 1
=R0 % 6 &e7 =R0(a!'405), //@%+a +o&e+'i =R0
I&p%#S#eam i& 6 %.ope&S#eam(),

//ji+a =R0 di#em%+a&
//po!am mem.a$a "alama& 7e.
i& 6 &e7 @%22eedI&p%#S#eam(i&),
Reade 6 &e7 I&p%#S#eamReade(i&),
i&# $,
7"ile (($ 6 .ead()) H6 P1) 1
Sy'#em.o%#.pi&#(($"a) $),
>
> $a#$" (Mal2omed=R0/-$ep#io& e) 1
//Ji+a =R0 #ida+ di#em%+a&
Sy'#em.o%#.pi&#(a!'405 K < i' &o# pa'ea.le =R0<),
>
>
>
>
)ada program /our!e2ie%er.java apabila dijalankan, program tersebut
men!oba melakukan koneksi kepada komputer server. -emudian apabila .*0
telah berhasil terkoneksi maka program akan memba!a 6ormat 71M0.
,ambar "2. /our!e2ie%er
MENGIRIMKAN DAN MENERIMA EMAIL
Email atau elektronic mail merupakan aplikasi yang paling banyak
digunakan pada internet hingga sekarang. )roto!ol yang digunakan pada email
adalah /M1) untuk pengiriman dan )+)3 untuk penerimaan.
Email dalam pengiriman maupun penerimaan menggunakan proto!ol
1#)=(). /edangkan port yang digunakan adalah port 29 untuk pengiriman dan
port ""5 untuk penerimaan.
JavaMail ')( adalah standar komponen sejak java "." tetapi
membutuhkan komponen dari java, yaitu mail.jar, imap.jar, mailapi.jar, pop3.jar,
dan smtp.jar yang dapat dido%nload pada http;==java.sun.!om=produ!ts=javamail= .
JavaMail ini dapat diimplementasikan se!ara pemrograman murni java
menggunakan so!ket dan stream.
Program Kirim Email
//*o!am diam.il da& dimodi2i+a'i dai 0R@: ):3)R)
//Simpa& Cile B Se&d/mail.java
//Compile B java$ Se&d/mail.java
//Caa Me&jala&+a& B java Se&d/mail
impo# java-.mail.*,
impo# java-.mail.i&#e&e#.*,
impo# java.%#il.*,
p%.li$ $la'' Se&d/mail 1
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
#y 1
S#i&! :amaGo'# 6 <202.155.SM.26<,
S#i&! Repada 6 <7i&d%@a&#aa.$o.id<,
S#i&! ?ai 6 <e#7i&S6S8@ya"oo.$om<,
*ope#ie' pop' 6 Sy'#em.!e#*ope#ie'(),
pop'.p%#(<mail.'m#p."o'#<( :amaGo'#),
Se''io& 'e''io& 6 Se''io&.!e#I&'#a&$e(pop'( &%ll),
Me''a!e m'! 6 &e7 MimeMe''a!e('e''io&),
m'!.'e#Com(&e7 I&#e&e#)dde''(?ai)),
I&#e&e#)dde''45 adde'' 6 1&e7 I&#e&e#)dde''(Repada)>,
m'!.'e#Re$ipie&#'(Me''a!e.Re$ipie&#3ype.38( adde''),
m'!.'e#S%.je$#(<3e'#i&!<),
m'!.'e#Co&#e&#(<I& po!am &!e#e'#<( <#e-#/plai&<),
3a&'po#.'e&d(m'!),
> $a#$" (/-$ep#io& e) 1
e.pi&#S#a$+3a$e(),
>
>
>
Program Baca Email
//po!am diam.il da& dimodi2i+a'i dai @%+%
//Java :e#7o+i&!
//Simpa& Cile B *8*MClie&#.java
//Compile B java$ *8*MClie&#.java
//Caa Me&jala&+a& B java *8*MClie&#
impo# java-.mail.*,
impo# java-.mail.i&#e&e#.*,
impo# java.%#il.*,
p%.li$ $la'' *8*MClie&# 1
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
*ope#ie' pop' 6 Sy'#em.!e#*ope#ie'(),
S#i&! "o'# 6 <202.155.SM.26<,
S#i&! %'e&ame 6 <7i&d%<,
S#i&! pa''7od 6 <------<, //ma% #a% aja pa''&ya
S#i&! povide 6 <popM<,
#y 1
//Ro&e+'i *8*M mail 'eve
Se''io& 'e''io& 6 Se''io&.!e#?e2a%l#I&'#a&$e(pop'( &%ll),
S#oe '#oe 6 'e''io&.!e#S#oe(povide),
'#oe.$o&&e$#("o'#(%'e&ame(pa''7od),
//.%+a 2olde
Colde i&.o- 6 '#oe.!e#Colde(<I:@8T<),
i2 (i&.o- 66 &%ll) 1
Sy'#em.o%#.pi&#l&(<:o I&.o-<),
Sy'#em.e-i#(1),
>
i&.o-.ope&(Colde.R/)?98:0A),
//3ampil+a& *e'a& S%a#
Me''a!e45 me''a!e' 6 i&.o-.!e#Me''a!e'(),
2o (i&# i 6 0, i N me''a!e'.le&!#", iKK) 1
Sy'#em.o%#.pi&#l&(<PPPP Me''a!e < K (i K 1) K < PPPP<),
me''a!e'4i5.7i#e3o(Sy'#em.o%#),
>
//ja&!a& l%pa #%#%p +o&e+'i
i&.o-.$lo'e(2al'e),
'#oe.$lo'e(),
> $a#$" (/-$ep#io& e) 1
e.pi&#S#a$+3a$e(),
>
>
>
'pabila program )+)3#lient dijalankan maka akan tampil
CBIj2'd+1.O.2905I.i&Ijava.e-e P$la''pa#"
<CBIj2'd+1.O.2905IjeIli.I#.ja,CBIj2'd+1.O.2905Ili.I#ool'.ja,CBIj2'd+1.O.2905
IjavamailP1.M.2Imail.ja,CBIj2'd+1.O.2905IjavamailP
1.M.2Ili.Iimap.ja,CBIj2'd+1.O.2905IjavamailP
1.M.2Ili.Imailapi.ja,CBIj2'd+1.O.2905IjavamailP
1.M.2Ili.IpopM.ja,CBIj2'd+1.O.2905IjavamailP
1.M.2Ili.I'm#p.ja,CBIJ@%ildeTIli.Ia$#iva#io&.ja,CBIda#aI.elajaI.pOI#e'#<
*8*MClie&#
PPPP Me''a!e 1 PPPP
Re#%&P*a#"B Ne#7i&S6S8@ya"oo.$omE
?eliveedP3oB 7i&d%@a&#aa.$o.id
Re$eivedB (;mail 1185S i&vo+ed .y %id 505), 21 Ce. 2005 02BM9B0M P0000
Re$eivedB 2om e#7i&S6S8@ya"oo.$om .y mail.a&#aa.$o.id .y %id 502 7i#" ;mailP
'$a&&eP1.16
($lam'$a&B 0.5O. CleaB.
*o$e''ed i& 0.O581S6 'e$'), 21 Ce. 2005 02BM9B0M P0000
Re$eivedB 2om %&+&o7& (G/08 &o#e.oo+7d!) (192.168.12.5S)
.y mail.a&#aa.$o.id 7i#" SM3*, 21 Ce. 2005 02BM9B02 P0000
Me''a!ePI?B N2S99OM66.1108961OO8S18.JavaMail.)dmi&i'#a#o@&o#e.oo+7d!E
ComB e#7i&S6S8@ya"oo.$om
3oB 7i&d%@a&#aa.$o.id
S%.je$#B 3/'#i&!
MIM/PDe'io&B 1.0
Co&#e&#P3ypeB #e-#/plai&, $"a'e#6%'Pa'$ii
Co&#e&#P3a&'2eP/&$odi&!B S.i#
I& po!am &!e#e'#
FTP CLIENT
)ada Bahasa )rogram Java telah menyediakan -omponen untuk membuat
File 1rans6er )roto!ol #lient. -omponen tersebut adalah impo#
'%&.&e#.2#p.C#pClie&#. )ada !ontoh program diba%ah sebutkanlah nama atau ip
dari server, nama user, password, direktori client, nama 6ile penyimpanan pada
client, dan nama 6ile pada komputer server.
//C#pClie&#?emo.java
//?iam.il dai 777.java2'.$om
impo# java.io.Cile,
impo# java.io.CileI&p%#S#eam,
impo# java.io.Cile8%#p%#S#eam,
impo# java.io.I8/-$ep#io&,
impo# java.io.I&p%#S#eam,
impo# java.io.8%#p%#S#eam,
impo# java.%#il.S#i&!3o+e&iUe,
impo# '%&.&e#.3el&e#I&p%#S#eam,
impo# '%&.&e#.2#p.C#pClie&#,
p%.li$ $la'' C#pClie&#?emo 1
p%.li$ '#a#i$ i&# @=CC/R9SIV/ 6 102O0,
piva#e C#pClie&# m9$lie&#,
// 'e# #"e val%e' 2o yo% 'eve
piva#e S#i&! "o'# 6 <<,
piva#e S#i&! %'e 6 <<,
piva#e S#i&! pa''7od 6 <<,
piva#e S#i&! '?i 6 <<,
piva#e S#i&! m9'0o$alCile 6 <<,
piva#e S#i&! m9'Go'#Cile 6 <<,
p%.li$ C#pClie&#?emo() 1
#y 1
Sy'#em.o%#.pi&#l&(<Co&&e$#i&! #o "o'# < K "o'#),
m9$lie&# 6 &e7 C#pClie&#("o'#),
m9$lie&#.lo!i&(%'e( pa''7od),
Sy'#em.o%#.pi&#l&(<='e < K %'e K < lo!i& 8R<),
Sy'#em.o%#.pi&#l&(m9$lie&#.7el$omeM'!),
m9$lie&#.$d('?i),
Sy'#em.o%#.pi&#l&(<?ie$#oyB < K '?i),
m9$lie&#..i&ay(),
Sy'#em.o%#.pi&#l&(<S%$$e''.<),

//!e#Cile(),
//p%#Cile(),
> $a#$" (/-$ep#io& e-) 1
Sy'#em.o%#.pi&#l&(</oB < K e-.#oS#i&!()),
>
>
po#e$#ed void di'$o&&e$#() 1
i2 (m9$lie&# H6 &%ll) 1
#y 1
m9$lie&#.$lo'eSeve(),
> $a#$" (I8/-$ep#io& e-) 1
>
m9$lie&# 6 &%ll,
>
>
p%.li$ '#a#i$ i&# !e#CileSiUe(C#pClie&# $lie&#( S#i&! 2ile:ame)
#"o7' I8/-$ep#io& 1
3el&e#I&p%#S#eam l'# 6 $lie&#.li'#(),
S#i&! '# 6 <<,
2ile:ame 6 2ile:ame.#o0o7eCa'e(),
7"ile (#%e) 1
i&# $ 6 l'#.ead(),
$"a $" 6 ($"a) $,
i2 ($ N 0 WW $" 66 LI&L) 1
'# 6 '#.#o0o7eCa'e(),
i2 ('#.i&de-82(2ile:ame) E6 0) 1
S#i&!3o+e&iUe #+ 6 &e7 S#i&!3o+e&iUe('#),
i&# i&de- 6 0,
7"ile (#+."a'Moe3o+e&'()) 1
S#i&! #o+e& 6 #+.&e-#3o+e&(),
i2 (i&de- 66 O)
#y 1
e#%& I&#e!e.pa'eI&#(#o+e&),
> $a#$" (:%m.eComa#/-$ep#io& e-) 1
e#%& P1,
>
i&de-KK,
>
>
'# 6 <<,
>
i2 ($ N6 0)
.ea+,
'# K6 $",
>
e#%& P1,
>
po#e$#ed void !e#Cile() 1
i2 (m9'0o$alCile.le&!#"() 66 0) 1
m9'0o$alCile 6 m9'Go'#Cile,
>
.y#e45 .%22e 6 &e7 .y#e4@=CC/R9SIV/5,
#y 1
i&# 'iUe 6 !e#CileSiUe(m9$lie&#( m9'Go'#Cile),
i2 ('iUe E 0) 1
Sy'#em.o%#.pi&#l&(<Cile < K m9'Go'#Cile K <B < K 'iUe
K < .y#e'<),
Sy'#em.o%#.pi&#l&('iUe),
> el'e
Sy'#em.o%#.pi&#l&(<Cile < K m9'Go'#Cile K <B 'iUe %&+&o7&<),
Cile8%#p%#S#eam o%# 6 &e7 Cile8%#p%#S#eam(m9'0o$alCile),
I&p%#S#eam i& 6 m9$lie&#.!e#(m9'Go'#Cile),
i&# $o%&#e 6 0,
7"ile (#%e) 1
i&# .y#e' 6 i&.ead(.%22e),
i2 (.y#e' N 0)
.ea+,
o%#.7i#e(.%22e( 0( .y#e'),
$o%&#e K6 .y#e',
>
o%#.$lo'e(),
i&.$lo'e(),
> $a#$" (/-$ep#io& e-) 1
Sy'#em.o%#.pi&#l&(</oB < K e-.#oS#i&!()),
>
>
po#e$#ed void p%#Cile() 1
i2 (m9'0o$alCile.le&!#"() 66 0) 1
Sy'#em.o%#.pi&#l&(<*lea'e e&#e 2ile &ame<),
>
.y#e45 .%22e 6 &e7 .y#e4@=CC/R9SIV/5,
#y 1
Cile 2 6 &e7 Cile(m9'0o$alCile),
i&# 'iUe 6 (i&#) 2.le&!#"(),
Sy'#em.o%#.pi&#l&(<Cile < K m9'0o$alCile K <B < K 'iUe K < .y#e'<),
Sy'#em.o%#.pi&#l&('iUe),
CileI&p%#S#eam i& 6 &e7 CileI&p%#S#eam(m9'0o$alCile),
8%#p%#S#eam o%# 6 m9$lie&#.p%#(m9'Go'#Cile),
i&# $o%&#e 6 0,
7"ile (#%e) 1
i&# .y#e' 6 i&.ead(.%22e),
i2 (.y#e' N 0)
.ea+,
o%#.7i#e(.%22e( 0( .y#e'),
$o%&#e K6 .y#e',
Sy'#em.o%#.pi&#l&($o%&#e),
>
o%#.$lo'e(),
i&.$lo'e(),
> $a#$" (/-$ep#io& e-) 1
Sy'#em.o%#.pi&#l&(</oB < K e-.#oS#i&!()),
>
>
p%.li$ '#a#i$ void mai&(S#i&! a!v45) 1
&e7 C#pClie&#?emo(),
>
>
MENGGUNAKAN TCP/IP
1rans6er #ode )roto!ol=(nternet )roto!ol adalah proto!ol yang paling
banyak digunakan pada system komputer masa kini dibandingkan dengan
proto!ol lainnya seperti ()A ($ovell), 'pple1alk (Ma!hintos), $etB.(
(@indo%s), dan lainlain.
)ada !ontoh implementasi 1#)=() seperti F1) (port 2"), 1elnet (port 23),
/M1) (port 29), )+)3 (port ""5), 711) (port E5), dan lainlain.
)ada pembahasan 1#)=() ini, !ontoh program menggambarkan
penggunaan port, bagaimana komputer pengguna men!oba melakukan koneksi
pada komputer server kemudian melakukan interakti6.
&alam implementesinya program ini merupakan !ontoh ke!il dari program
chatting.
Program Server 1
//po!am diam.il da& dimodi2i+a'i dai java.'%&.$om
//Simple :e#7o+ 3C*/I* po!amm
//Simpa& Cile B R&o$+R&o$+*o#o$ol.java
//Compile B java$ R&o$+R&o$+*o#o$ol.java
//S%.Cla'' ?ai B R&o$+R&o$+Seve.java
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' R&o$+R&o$+*o#o$ol 1
piva#e '#a#i$ 2i&al i&# F)I3I:X 6 0,
piva#e '#a#i$ 2i&al i&# S/:3R:8CRR:8CR 6 1,
piva#e '#a#i$ 2i&al i&# S/:3C0=/ 6 2,
piva#e '#a#i$ 2i&al i&# ):83G/R 6 M,
piva#e '#a#i$ 2i&al i&# :=MJ8R/S 6 5,
piva#e i&# '#a#e 6 F)I3I:X,
piva#e i&# $%e&#Jo+e 6 0,
piva#e S#i&!45 $l%e' 6 1 <I&da<( <Si&#a<( <Jame'<(
<?ia&<( <*'7a'&i#a< >,
piva#e S#i&!45 a&'7e' 6 1 <:yala+a& *e&!"a&!a#(
?i&!i& :i$"..H<(
<3a%&ya Ram% @i'a :ya&yiH<(
<?oa =&#%+ M%H<(
<)da @%%&! ?i 'i&iY<(
<@i'a 3eli"a#Y< >,
p%.li$ S#i&! po$e''I&p%#(S#i&! #"eI&p%#) 1
S#i&! #"e8%#p%# 6 &%ll,
i2 ('#a#e 66 F)I3I:X) 1
#"e8%#p%# 6 <3o+... 3o+... 3o+...<,
'#a#e 6 S/:3R:8CRR:8CR,
> el'e i2 ('#a#e 66 S/:3R:8CRR:8CR) 1
i2 (#"eI&p%#.e;%al'I!&oeCa'e(<Siapa Aa$"Y<)) 1
#"e8%#p%# 6 $l%e'4$%e&#Jo+e5,
'#a#e 6 S/:3C0=/,
> el'e 1
#"e8%#p%# 6 <Se"a%'&ya I<Siapa Aa$"YI<H < K
<Co.a 0a!i. 3o+... 3o+... 3o+...H<,
>
> el'e i2 ('#a#e 66 S/:3C0=/) 1
i2 (#"eI&p%#.e;%al'I!&oeCa'e($l%e'4$%e&#Jo+e5
K < 'iapaY<)) 1
#"e8%#p%# 6 a&'7e'4$%e&#Jo+e5 K
< I&!i& 8a&! 0ai&Y (y/&)<,
'#a#e 6 ):83G/R,
> el'e 1
#"e8%#p%# 6 <Se"a%'&ya I<< K
$l%e'4$%e&#Jo+e5 K
< 'iapaYI<< K
<H Co.a 0a!i. 3o+.. 3o+.. 3o+...<,
'#a#e 6 S/:3R:8CRR:8CR,
>
> el'e i2 ('#a#e 66 ):83G/R) 1
i2 (#"eI&p%#.e;%al'I!&oeCa'e(<y<)) 1
#"e8%#p%# 6 <3o+... 3o+... 3o+...<,
i2 ($%e&#Jo+e 66 (:=MJ8R/S P 1))
$%e&#Jo+e 6 0,
el'e
$%e&#Jo+eKK,
'#a#e 6 S/:3R:8CRR:8CR,
> el'e 1
#"e8%#p%# 6 <?ada"<,
'#a#e 6 F)I3I:X,
>
>
e#%& #"e8%#p%#,
>
>
Program Server 2
//po!am diam.il da& dimodi2i+a'i dai java.'%&.$om
//Simple :e#7o+ 3C*/I* po!amm
//Simpa& Cile B R&o$+R&o$+Seve.java
//Compile B java$ R&o$+R&o$+Seve.java
//Caa Me&jala&+a& B java R&o$+R&o$+Seve
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' R&o$+R&o$+Seve 1
p%.li$ '#a#i$ void mai&(S#i&!45 a!') #"o7' I8/-$ep#io& 1
SeveSo$+e# 'eveSo$+e# 6 &%ll,
#y 1
'eveSo$+e# 6 &e7 SeveSo$+e#(OOOO),
Sy'#em.o%#.pi&#l&(<8+e" .. Seve Ready<),
> $a#$" (I8/-$ep#io& e) 1
Sy'#em.e.pi&#l&(<po# OOOO 3ida+ ?apa# ?i!%&a+a&<),
Sy'#em.e-i#(1),
>
So$+e# $lie&#So$+e# 6 &%ll,
#y 1
$lie&#So$+e# 6 'eveSo$+e#.a$$ep#(),
> $a#$" (I8/-$ep#io& e) 1
Sy'#em.e.pi&#l&(<Xa!al Me&!!%&a+a& So$+e#.<),
Sy'#em.e-i#(1),
>
*i&#Fi#e o%# 6 &e7 *i&#Fi#e
($lie&#So$+e#.!e#8%#p%#S#eam()( #%e),
@%22eedReade i& 6 &e7 @%22eedReade(
&e7 I&p%#S#eamReade(
$lie&#So$+e#.!e#I&p%#S#eam())),
S#i&! i&p%#0i&e( o%#p%#0i&e,
R&o$+R&o$+*o#o$ol ++p 6 &e7 R&o$+R&o$+*o#o$ol(),
o%#p%#0i&e 6 ++p.po$e''I&p%#(&%ll),
o%#.pi&#l&(o%#p%#0i&e),
7"ile ((i&p%#0i&e 6 i&.ead0i&e()) H6 &%ll) 1
o%#p%#0i&e 6 ++p.po$e''I&p%#(i&p%#0i&e),
o%#.pi&#l&(o%#p%#0i&e),
i2 (o%#p%#0i&e.e;%al'(<?ada"<))
.ea+,
>
o%#.$lo'e(),
i&.$lo'e(),
$lie&#So$+e#.$lo'e(),
'eveSo$+e#.$lo'e(),
>
>
Program Client
//po!am diam.il da& dimodi2i+a'i dai java.'%&.$om
//Simple :e#7o+ 3C*/I* po!amm
//Simpa& Cile B R&o$+R&o$+Clie&#.java
//Compile B java$ R&o$+R&o$+Clie&#.java
//Caa Me&jala&+a& B java R&o$+R&o$+Clie&#
impo# java.io.*,
impo# java.&e#.*,
p%.li$ $la'' R&o$+R&o$+Clie&# 1
p%.li$ '#a#i$ void mai&(S#i&!45 a!') #"o7' I8/-$ep#io& 1
So$+e# ++So$+e# 6 &%ll,
*i&#Fi#e o%# 6 &%ll,
@%22eedReade i& 6 &%ll,
#y 1
++So$+e# 6 &e7 So$+e#(<lo$al"o'#<( OOOO),
o%# 6 &e7 *i&#Fi#e(++So$+e#.!e#8%#p%#S#eam()( #%e),
i& 6 &e7 @%22eedReade(
&e7 I&p%#S#eamReade (
++So$+e#.!e#I&p%#S#eam())),
> $a#$" (=&+&o7&Go'#/-$ep#io& e) 1
Sy'#em.e.pi&#l&(<&!a )da 3%$" "o'#B lo$al"o'#.<),
Sy'#em.e-i#(1),
> $a#$" (I8/-$ep#io& e) 1
Sy'#em.e.pi&#l&
(<+o&e+'i I/8 Go'# B 0o$al"o'# Xa!al.<),
Sy'#em.e-i#(1),
>
@%22eedReade '#dI& 6 &e7 @%22eedReade(
&e7 I&p%#S#eamReade(
Sy'#em.i&)),
S#i&! 2omSeve,
S#i&! 2om='e,
7"ile ((2omSeve 6 i&.ead0i&e()) H6 &%ll) 1
Sy'#em.o%#.pi&#l&(<SeveB < K 2omSeve),
i2 (2omSeve.e;%al'(<?ada".<))
.ea+,

2om='e 6 '#dI&.ead0i&e(),
i2 (2om='e H6 &%ll) 1
Sy'#em.o%#.pi&#l&(<Clie&#B < K 2om='e),
o%#.pi&#l&(2om='e),
>
>
o%#.$lo'e(),
i&.$lo'e(),
'#dI&.$lo'e(),
++So$+e#.$lo'e(),
>
>
#ara menjalankan ;
". Buka layar &os (!md) kemudian 'kti6kan )rogram /erver ;
java R&o$+R&o$+Seve
hingga tampil tanda
8+e" .. Seve Ready
,ambar "3. -no!k-no!k/erver
2. Buka layar &os (!md) lagi kemudian 'kti6kan )rogram #lient
java R&o$+R&o$+Clie&#
hingga tampil tanda
SeveB 3o+... 3o+... 3o+....
,ambar "<. -no!k-no!#lient
3. 1eruskan interakti6nya.
MENGGUNAKAN UDP
/eperti yang telah dibahas sebelumnya, penggunaan .&) sedikit berbeda
dengan 1#). Jika pengiriman data pada 1#), proto!ol 1#) ini harus memastikan
apakah data telah sampai pada komputer target.
'pabila tidak sampai atau terdapat kerusakan pada pengiriman data maka
1#) akan melakukan pengiriman ulang.
.&) merupakan proto!ol alternati6 untuk pengiriman data pada (). .&)
ini terkenal dengan ke!epatannya dalam pengiriman data dikarenakan pada
pengiriman data tidak dilakukan penge!ekan berulangulang. )engiriman
langsung sampai pada tujuan.
)enggunaan .&) dapat diibaratkan seperti penggunaan telpon. )ada saat
melakukan penekanan nomor maka telpon ajan menuju nomor tujuan. -etika
sudah terkoneksi maka pembi!araan berlanjut tanpa peduli apakah suara sampai
atau tidak ke la%an bi!ara.
/ebagai !ontoh pada program .&) ini terdapat dua aplikasi yaitu server
side dan !lient side. /erver side terdiri dari .&)/erver.java dan
.&)E!ho/erver.java. /edangkan #lient side terdiri dari /ender1hread.java,
*e!eiver1hread.java dan .&)E!ho#lient.java
Program Server 1
//po!am diam.il da& dimodi2i+a'i dai .%+%
//Java :e#7o+ *o!ammi&!
//"al B OO0
//Simpa& Cile B =?*Seve.java
//Compile B java$ =?*Seve.java
//S%. Cla'' B =?*/$"oSeve.java
impo# java.&e#.*,
impo# java.io.*,
p%.li$ a.'#a$# $la'' =?*Seve e-#e&d' 3"ead 1
piva#e i&# .%22eSiUe,
po#e$#ed ?a#a!amSo$+e# d',
p%.li$ =?*Seve (i&# po#( i&# .%22eSiUe) #"o7' So$+e#/-$ep#io&
1
#"i'..%22eSiUe 6 .%22eSiUe,
#"i'.d' 6 &e7 ?a#a!amSo$+e# (po#),
>
p%.li$ =?*Seve (i&# po#) #"o7' So$+e#/-$ep#io& 1
#"i' (po#( 8192),
>
p%.li$ void %& () 1
.y#e45 .%22e 6 &e7 .y#e4.%22eSiUe5,
7"ile (#%e) 1
?a#a!am*a$+e# i&$omi&! 6
&e7 ?a#a!am*a$+e# (.%22e( .%22e.le&!#"),
#y 1
d'.e$eive(i&$omi&!),
#"i'.e'po&d(i&$omi&!),
> $a#$" (I8/-$ep#io& e) 1
Sy'#em.e.pi&#l&(e),
>
> //e&d 7"ile
>
p%.li$ a.'#a$# void e'po&d(?a#a!am*a$+e# e;%e'#),
>
Program Server 2
//po!am diam.il da& dimodi2i+a'i dai .%+%
//Java :e#7o+ *o!ammi&!
//"al B OOM
//Simpa& Cile B =?*/$"oSeve.java
//Compile B java$ =?*/$"oSeve.java
//Caa Me&jala&+a& B java =?*Seve
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' =?*/$"oSeve e-#e&d' =?*Seve 1
p%.li$ 2i&al '#a#i$ i&# ?/C)=039*8R3 6 S,
p%.li$ =?*/$"oSeve() #"o7' So$+e#/-$ep#io& 1
'%pe (?/C)=039*8R3),
Sy'#em.o%#.pi&#l&(<Seve S#a#ed<),
>
p%.li$ void e'po&d (?a#a!am*a$+e# pa$+e#)1
#y 1
?a#a!am*a$+e# o%#!oi&! 6
&e7 ?a#a!am*a$+e#(pa$+e#.!e#?a#a()(
pa$+e#.!e#0e&!#"()(
pa$+e#.!e#)dde''()(
pa$+e#.!e#*o#()),
S#i&! ' 6 &e7 S#i&! ( o%#!oi&!.!e#?a#a()( 0(
o%#!oi&!.!e#0e&!#"()),
Sy'#em.o%#.pi&#l&('),
' 6 </$"o EE < K ',
.y#e45 'e&d.a$+ 6 '.!e#@y#e'(),
?a#a!am*a$+e# 'e&do%# 6 &e7 ?a#a!am*a$+e#(
'e&d.a$+( 'e&d.a$+.le&!#"(
pa$+e#.!e#)dde''()(
pa$+e#.!e#*o#()),
d'.'e&d('e&do%#),
> $a#$" (I8/-$ep#io& e) 1
Sy'#em.e.pi&#l&(e),
>
>
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
#y 1
=?*/$"oSeve 'eve 6 &e7 =?*/$"oSeve(),
'eve.'#a#(),
> $a#$" (So$+e#/-$ep#io& e) 1
Sy'#em.e.pi&#l&(e),
>
>
>
Program Client 1
//po!am diam.il da& dimodi2i+a'i dai .%+%
//Java :e#7o+ *o!ammi&!
//"al B OO8
//Simpa& Cile B Re$eive3"ead.java
//Compile B java$ Re$eive3"ead.java
//S%. Cla'' B =?*/$"oClie&#.java
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' Re$eive3"ead e-#e&d' 3"ead 1
?a#a!amSo$+e# 'o$+e#,
piva#e .oolea& '#opped 6 2al'e,
p%.li$ Re$eive3"ead (?a#a!amSo$+e# d')
#"o7' So$+e#/-$ep#io& 1
#"i'.'o$+e# 6 d',
>
p%.li$ void "al#() 1
#"i'.'#opped 6 #%e,
>
p%.li$ void %& () 1
.y#e45 .%22e 6 &e7 .y#e46550S5,
7"ile (#%e) 1
i2 ('#opped) e#%&,
?a#a!am*a$+e# dp 6 &e7 ?a#a!am*a$+e#
(.%22e( .%22e.le&!#"),
#y 1
'o$+e#.e$eive(dp),
S#i&! ' 6 &e7 S#i&!
(dp.!e#?a#a()( 0( dp.!e#0e&!#"()),

Sy'#em.o%#.pi&#l&('),
3"ead.yield(),
> $a#$" (I8/-$ep#io& e) 1
Sy'#em.e.pi&#l&(e),
>
>
>
>
Program Client 2
=/po!am diam.il da& dimodi2i+a'i dai .%+%
//Java :e#7o+ *o!ammi&!
//"al B OO6
//Simpa& Cile B Se&de3"ead.java
//Compile B java$ Se&de3"ead.java
//S%. Cla'' B =?*/$"oClie&#.java
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' Se&de3"ead e-#e&d' 3"ead 1
piva#e I&e#)dde'' 'eve,
piva#e ?a#a!amSo$+e# 'o$+e#,
piva#e .oolea& '#opped 6 2al'e,
piva#e i&# po#,
p%.li$ Se&de3"ead (I&e#)dde'' ia( i&# po#)
#"o7' So$+e#/-$ep#io& 1
#"i'.'eve 6 ia,
#"i'.'o$+e# 6 &e7 ?a#a!amSo$+e#(),
#"i'.po# 6 po#,
>
p%.li$ void "al#() 1
#"i'.'#opped 6 #%e,
>
p%.li$ ?a#a!amSo$+e# !e#So$+e#() 1
e#%& #"i'.'o$+e#,
>
p%.li$ void %&() 1
#y 1
@%22eedReade %'eI&p%# 6 &e7 @%22eedReade (
&e7 I&p%#S#eamReade
(Sy'#em.i&)),
7"ile (#%e) 1
i2 ('#opped) e#%&,
S#i&! #"e0i&e 6 %'eI&p%#.ead0i&e(),
i2 (#"e0i&e.e;%al'(<.<)) .ea+,
.y#e45 da#a 6 #"e0i&e.!e#@y#e'(),
?a#a!am*a$+e# o%#p%# 6 &e7 ?a#a!am*a$+e# (
da#a( da#a.le&!#"(
'eve( po#),
'o$+e#.'e&d(o%#p%#),
3"ead.yield(),
>
> $a#$" (I8/-$ep#io& e ) 1
Sy'#em.e.pi&#l&(e),
>
>
>
Program Client 3
//po!am diam.il da& dimodi2i+a'i dai .%+%
//Java :e#7o+ *o!ammi&!
//"al B OO5
//Simpa& Cile B =?*/$"oClie&#.java
//Compile B java$ =?*/$"oClie&#.java
//Caa Me&jala&+a& B java =?*/$"oClie&#
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' =?*/$"oClie&# 1
p%.li$ 2i&al '#a#i$ i&# ?/C)=039*8R3 6 S,
p%.li$ '#a#i$ void mai&(S#i&!45 a!') 1
S#i&! "o'#&ame 6 <lo$al"o'#<,
i&# po# 6 ?/C)=039*8R3,
i2 (a!'.le&!#" E 0) 1
"o'#&ame 6 a!'405,
>
#y 1
I&e#)dde'' ia 6 I&e#)dde''.!e#@y:ame("o'#&ame),
Se&de3"ead 'e&de 6 &e7 Se&de3"ead (ia( ?/C)=039*8R3),
'e&de.'#a#(),
Re$eive3"ead e$eive 6
&e7 Re$eive3"ead('e&de.!e#So$+e#()),
e$eive.'#a#(),
> $a#$" (=&+&o7&Go'#/-$ep#io& e) 1
Sy'#em.e.pi&#l&(e),
> $a#$" (So$+e#/-$ep#io& 'e)1
Sy'#em.e.pi&#l&('e),
>
>
>
#ara menjalankan ;
". Buka layar dos (!md), kemudian akti6kan program server
java =?*/$"oSeve
7ingga tampil tanda
Seve S#a#ed
,ambar "9. .&)E!ho/erver
2. Buka layar dos (!md), kemudian akti6kan program !lient
Java =?*/$"oClie&#
-etikkan kalimat,
!ontoh ; #e'#i&!
1ekan Enter hingga layar menampilkan hasil dari inputan keyboard
,ambar "4. .&)E!ho#lient
MENGIRIMKAN DATA SECARA BROADCAST/MULTICASTING
Multi!asting adalah pointtopoint !ommuni!ation dengan system
broad!ast. Multi!asting mengirimkan data dari satu host=server ke berbagai
tujuan. )roto!ol ini dapat berjalan pada jaringan internet, intranet dan &2B=()
(&ata 2ideo Broad!asting).
)ada umumnya proto!ol ini digunakan apabila usernya bersi6at broad!ast
atau satu arah untuk publik, karena siapapun dapat menerima data tanpa ke!uali.
Multi!ast address seperti () address umumnya, sedangkan range () nya
dari 22<.5.5.5 sampai dengan 233.299.299.299 (!lass &).
)emrograman multi!asting pada java seperti 1#) dengan portnya. Begitu
pula sisi program dilihat dari server dan !lient.

Program Server
//po!am diam.il da& dimodi2i+a'i dai
//0i#.a&! 0R@: ):3)R)
//Simpa& Cile B 3imeSeve.java
//Compile B java$ 3imeSeve.java
//Caa Me&jala&+a& B java 3imeSeve
impo# java.&e#.*,
impo# java.io.*,
impo# java.%#il.*,
p%.li$ $la'' 3imeSeve 1
p%.li$ '#a#i$ void mai& (S#i&!45 a!') #"o7' I8/-$ep#io& 1
M%l#i$a'#So$+e# 'o$+e# 6 &e7 M%l#i$a'#So$+e#(8890),
'o$+e#.'e#330((.y#e)5),
7"ile (#%e) 1
#y 1
.y#e45 .%22 6 &e7 .y#e 42565,
S#i&! #imeo2day 6 &e7 ?a#e().#oS#i&!(),
.%22 6 #imeo2day.!e#@y#e'(),
Sy'#em.o%#.pi&#l&(#imeo2day),
I&e#)dde'' !o%p 6
I&e#)dde''.!e#@y:ame(<2M0.1.1.1<),
?a#a!am*a$+e# pa$+e# 6
&e7 ?a#a!am*a$+e#
(.%22( .%22.le&!#"( !o%p( 8890),
'o$+e#.'e&d(pa$+e#),
java.la&!.3"ead.'leep((lo&!) 2000),
>
$a#$" (I8/-$ep#io& e) 1e.pi&#S#a$+3a$e(),>
$a#$" (I&#e%p#ed/-$ep#io& e) 1 .ea+,>
>
'o$+e#.$lo'e(),
>
>
Program Client
//po!am diam.il da& dimodi2i+a'i dai
//0i#.a&! 0R@: ):3)R)
//Simpa& Cile B 3imeClie&#.java
//Compile B java$ 3imeClie&#.java
//Caa Me&jala&+a& B java 3imeClie&#
impo# java.&e#.*,
impo# java.io.*,
p%.li$ $la'' 3imeClie&# 1
p%.li$ '#a#i$ void mai& (S#i&!45 a!') #"o7' I8/-$ep#io& 1
M%l#i$a'#So$+e# 'o$+e# 6 &e7 M%l#i$a'#So$+e#(8890),
I&e#)dde'' adde'' 6
I&e#)dde''.!e#@y:ame(<2M0.1.1.1<),
'o$+e#.joi&Xo%p(adde''),
2o (i&# i 6 0, i N 1000, iKK) 1
.y#e45 .%22 6 &e7 .y#e42565,
?a#a!am*a$+e# pa$+e# 6
&e7 ?a#a!am*a$+e# (.%22( .%22.le&!#"),
'o$+e#.e$eive(pa$+e#),
S#i&! e$eived 6 &e7 S#i&! (pa$+e#.!e#?a#a()),
Sy'#em.o%#.pi&#l&(<Re$eivedB < K e$eived),
>
'o$+e#.leaveXo%p(adde''),
'o$+e#.$lo'e(),
>
>
#ara Menjalankan ;
". Buka layar dos (!md) kemudian akti6kan program server
java 3imeSeve
/ehingga keluar tanggal dan jam
,ambar "G. 1ime/erver
2. Buka layar dos (!md) kemudian akti6kan program !lient
java 3imeClie&#
/ehingga keluar
,ambar "E. 1ime#lient
APPLET
'pplet adalah pemrograman yang menggunakan bahasa pemrograman
java dan dapat di integrasikan pada 71M0 sehingga program tersebut dapat di
tampilkan pada web browser.
/alah !ontoh penggunaan aplikasi java applet di internet ada pada
homepage http;==games.yahoo.!om.
'dapun hirarki dari applet yaitu
,ambar "3. 7irarki 'pplet
#ontoh )emrograman 'pplet ;
Bukalah notepad dan tulis isinya ;
Impo# java.apple#.)pple#,
impo# java.a7#.Xap"i$',
impo# java.a7#.Colo,
p%.li$ $la'' Simple)pple# e-#e&d' )pple#1
S#i&! #e-#,

//i&i'iali'a'i
p%.li$ void i&i#() 1
#e-# 6 <ILm a 'imple apple#<,
'e#@a$+!o%&d(Colo.$ya&),
>

//'aa# apple# dijala&+a&
p%.li$ void '#a#() 1
Sy'#em.o%#.pi&#l&(<'#a#i&!...<),
>

//'aa# apple# .e"e&#i
p%.li$ void '#op() 1
Sy'#em.o%#.pi&#l&(<'#oppi&!...<),
>

//'aa# apple#
p%.li$ void de'#oy() 1
Sy'#em.o%#.pi&#l&(<pepai&! #o %&load...<),
>

//mem.%a# #ampila&
p%.li$ void pai&#(Xap"i$' !)1
Sy'#em.o%#.pi&#l&(<*ai&#<),
!.'e#Colo(Colo..l%e),
!.da7Re$#(0( 0(
!e#SiUe().7id#" P1(
!e#SiUe()."ei!"# P1),
!.'e#Colo(Colo.ed),
!.da7S#i&!(#e-#( 15( 25),
>
>
/impan dengan nama Simple)pple#.java
Compile program java tersebut
java$ Simple)pple#.java
Buka notepad lainnya dengan isi
NG3M0E
N@8?AE
N)**0/3 C8?/6Simple)pple#.$la'' FI?3G6200 G/IXG36100E
N/)**0/3E
N/@8?AE
N/G3M0E
/impan dengan nama simple.html
Jalankan dengan menggunakan perintah
apple#vie7e 'imple."#ml
'tau dengan dengan membuka web browser seperti Ms. (nternet E?plorer
,ambar 25. Ms. (nternet E?plorer : 'pplet simple.html
)rogram applet juga dapat menampilkan model gra6ik seperti pada !ontoh
kedua yang diambil dari !ontoh j2sdk".<.5".
//Copyi!"# ($) 200M S%& Mi$o'y'#em'( I&$. )ll Ri!"#' Re'eved.
//Xap")pple#.java 1.S 0M/01/2M
//Compile B java$ Xap")pple#
//Caa Me&jala&+a& B pada !ap"."#ml
impo# java.a7#.Xap"i$',
p%.li$ $la'' Xap")pple# e-#e&d' java.apple#.)pple# 1
do%.le 2(do%.le -) 1
e#%& (Ma#".$o'(-/5) K Ma#".'i&(-/S) K 2) *
!e#SiUe()."ei!"# / O,
>
p%.li$ void pai&#(Xap"i$' !) 1
2o (i&# - 6 0 , - N !e#SiUe().7id#" , -KK) 1
!.da70i&e(-( (i&#)2(-)( - K 1( (i&#)2(- K 1)),
>
>
p%.li$ S#i&! !e#)pple#I&2o() 1
e#%& <?a7' a 'i& !ap".<,
>
>
NHPP:ama Cile B Xap"1."#ml
NHPPCopyi!"# ($) 200M S%& Mi$o'y'#em'(
I&$. )ll Ri!"#' Re'eved.
N"#mlE
N"eadE
N#i#leESimple Xap" (1.1)N/#i#leE
N/"eadE
N.odyE
N"1ESimple Xap"(1.1)N/"1E
N"E
Napple# $ode6Xap")pple#.$la'' 7id#"6M00 "ei!"#6120E
al#6<Ao% .o7'e %&de'#a&d' #"e Zl#,)**0/3Z!#,
#a! .%# i'&L# %&&i&! #"e apple#( 2o 'ome ea'o&.<
Ao% .o7'e i' $omple#ely i!&oi&! #"e Zl#,)**0/3Z!#, #a!H
N/apple#E
N"E
N/.odyE
N/"#mlE
.ntuk mendapatkan !ontoh lainnya dapat dilihat pada
BjavaJinstallationCDdemoDapplets
B'B (((
1AVA 2 MICRO EDITION
Java 2 Mi!ro Edition (J2ME) adalah program yang disediakan oleh /.$
Mi!rosystem untuk menja%ab kebutuhan oleh pengembang program, khususnya
pengembang program untuk alatalat terbatas seperti 7andphone, )&' dan lain
lain.
'da 2 (dua) ma!am alat terbatas tersebut yaitu #&# (Connected Device
#onne!tivity) dan #0&# (Connected Limited Device Connectivity).
)erbandingan antara #&# dan #0& adalah sebagai berikut ;
CLDC CDC
Mengimplitasikan subset dari J2/E Mengimplementasikan seluruh 6itur
pada J2/E
J2M yang digunakan dikenal dengan
nama -2M
J2M yang dikenal dengan nama #2M
&igunakan pada perangkat handheld
dengan ukuran memori terbatas ("45
9"2 -bytes)
&igunakan pada perangkat handheld
dengan ukuran memori minimal 2
Mbytes
)rosesor ; "4 Bit atau 32 Bit )rosesor ; 32 Bit
#ontoh ; 7andphone ($okia,
/amsung, )alm, dan lainlain), )&',
)o!ket )# dan two way pager.
#ontoh ; (nternet 12, $okia
#ommuni!ator dan #ar 1elevision
J2ME merupakan subset program Java 2 /tandard Edition (J2/E), karena
itulah pada saat penginstallan J2ME @ireless 1oolkit harus terlebih dahulu
melakukan instalasi J2/E.
'dapun !ara mengembangkan program J2ME adalah sebagai berikut ;
,ambar 2". )emrograman J2ME
)aused
'!tive
ne%()
&estroyed
ne%()
start'pp() pause'pp()
destroy'pp()
destroy'pp()
)ada saat instalasi, akan membentuk de6ault direktori yaitu !;D@1-"5<.
Masukkan 6ile #;D@1-"5<DlibDmidpapi.Kip sebagai !lasspath.
/ehingga pada editor yang digunakan !lass mi!roedition akti6 dengan
menuliskan pada editor adalah sebagai berikut ;
import javax.microedition.lcdui.`;
import javax.microedition.midlet.`;
)ada pembuatan aplikasi J2ME minimal terdapat 2 (dua) !lass yang
digunakan untuk membuat aplikasi, yaitu l!dui dan midlet.
#lass l!dui digunakan untuk membuat inter6a!e, sedangkan midlet
digunakan untuk terdiri dari !lass yang digunakan sebagai li6e!y!le dari program.
#lass pada midlet ini mempunyai si6at abstra!t seperti ;
prote!ted abstra!t void start'pp()
thro%s M(&let/tate#hangeE?!eptionL
prote!ted abstra!t void pause'pp()L
prote!ted abstra!t void destroy'pp(boolean 6lag)
thro%s M(&let/tate#hangeE?!eptionL
,ambar 22. )rogram
'bstrak J2ME
/etelah
program telah dibuat,
dikompilasi
dan diverivikasi
kemudian
program tersebut
dapat dilihat pada
emulator handphone yang tersedia pada program J2ME %ireless 1oolkit.
#ontoh pembuatan program sederhana,
". Bukalah program -1++0B'* pada menu /1'*1 )*+,*'M J2ME
@ireless 1ollkit -1++0B'*
,ambar 23. -1++0B'*
2. Buatlah projek baru (ne% proje!t), dengan nama projek 7ello@orld dan
Midlet #lass $ame dengan nama 7elloM(&let
,ambar 2<. Membuat )rojek Baru J2ME
'pabila dilakukan pembuatan projek (create project), maka J2ME @ireless
1oolkit program akan membentuk direktori 7ello@orld pada direktori
#;D@-1"5<Dapps
3. -emudian buatlah program dengan nama 7elloM(&let.java pada direktori
#;D@-1"5<DappsD7ello@orldDsr!
,ambar 29. &irektori J2ME
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' GelloMI?le# e-#e&d' MI?le# impleme&#' Comma&d0i'#e&e 1
piva#e Com mMai&Com,
p%.li$ GelloMI?le#()1
mMai&Com 6 &e7 Com(<Gello Fold<),
mMai&Com.appe&d(&e7 S#i&!I#em(&%ll( <Gello 3ema& 3ema& @%dil%"%<)),
mMai&Com.addComma&d(&e7 Comma&d(</-i#<( Comma&d./TI3(0)),
mMai&Com.'e#Comma&d0i'#e&e(#"i'),
>
p%.li$ void '#a#)pp() 1
?i'play.!e#?i'play(#"i').'e#C%e&#(mMai&Com),
>
p%.li$ void pa%'e)pp() 1>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al)1>
p%.li$ void $omma&d)$#io&(Comma&d $( ?i'playa.le ') 1
&o#i2y?e'#oyed(),
>
>
<. 1ekan tombol *.$, jika tidak terdapat masalah dengan program maka akan
tampil emulator handphone
,ambar 24. Emulator J2ME
Form
$ama )roje!t ; mahasis%a
$ama Midlet ; mahasis%a
$ama )rogram ; mahasis%a.java
/impan File ; !;D%tk"5<DappsDmahasis%aDsr!Dmahasis%a.java
'plikasi ; mahasis%a.jad, mahasis%a.jar
,ambar 2G. Membuat Form )ada J2ME
Impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' ma"a'i'7a e-#e&d' MI?le# impleme&#' Comma&d0i'#e&e 1
piva#e ?i'play di'play,
piva#e )le# ale#,
piva#e 3i$+e #i$+e,
piva#e Com 2,
piva#e 3e-#Cield #-#:im,
piva#e 3e-#Cield #-#:ama,
piva#e C"oi$eXo%p $!Se#i2i+a#,
piva#e C"oi$eXo%p $!J%%'a&,
piva#e C"oi$eXo%p $!Ramp%',
piva#e Comma&d e-i#Cmd,
piva#e Comma&d '%.Cmd,
p%.li$ ma"a'i'7a() 1>
p%.li$ void '#a#)pp() 1

ale# 6 &e7 )le#(<=&ive'i#a' @%di 0%"%<),
#i$+e 6 &e7 3i$+e(</&#y ?a#a =&#%+ ?a#a Ma"a'i'7a<),
#-#:im 6 &e7 3e-#Cield(<:im<(<<(10(3e-#Cield.):A),
#-#:ama 6 &e7 3e-#Cield(<:ama<(<<( 25( 3e-#Cield.):A),

//$"e$+ .o- (m%l#i'ele$#)
$!Se#i2i+a# 6 &e7 C"oi$eXo%p(<Se#i2i+a#<( Choice.MULTIPLE),
$!Se#i2i+a#.appe&d(<S?<( &%ll),
$!Se#i2i+a#.appe&d(<SM*<( &%ll),
$!Se#i2i+a#.appe&d(<SM)<( &%ll),
//adio .%##o& (pili" 'ala" 'a#%)
$!J%%'a& 6 &e7 C"oi$eXo%p(<J%%'a&<( Choice.EXCLUSIVE),
$!J%%'a&.appe&d(<3I<(&%ll),
$!J%%'a&.appe&d(<MI<( &%ll),
$!J%%'a&.appe&d(<)R<( &%ll),
$!J%%'a&.appe&d(<3R<( &%ll),
$!Ramp%' 6 &e7 C"oi$eXo%p(<Ramp%'<( Choice.EXCLUSIVE),
$!Ramp%'.appe&d(<Cempa+a Ma'<( &%ll),
$!Ramp%'.appe&d(<Ciled%!<( &%ll),
$!Ramp%'.appe&d(<Salem.a<( &%ll),
$!Ramp%'.appe&d(<Ro-y<( &%ll),
di'play 6 ?i'play.!e#?i'play(#"i'),
2 6 &e7 Com(<Ma"a'i'7a<),
2.appe&d(#-#:im),
2.appe&d(#-#:ama),
2.appe&d($!Se#i2i+a#),
2.appe&d($!J%%'a&),
2.appe&d($!Ramp%'),
2.'e#3i$+e(#i$+e),
e-i#Cmd 6 &e7 Comma&d(<Rel%a<( Comma&d./TI3(2),
'%.Cmd 6 &e7 Comma&d(<S%.mi#<( Comma&d.8R(2),
2.addComma&d('%.Cmd),
2.addComma&d(e-i#Cmd),
2.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(ale#(2),
>
p%.li$ void pa%'e)pp() 1>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al) 1
&o#i2y?e'#oyed(),
>
p%.li$ void +el%a() 1
#"i'.de'#oy)pp(#%e),
>
p%.li$ void a7al() 1
'#a#)pp(),
>
p%.li$ void #ampil()1
S#i&!I#em '#:im 6 &e7 S#i&!I#em(<<(#-#:im.!e#S#i&!()),
S#i&!I#em '#:ama 6 &e7 S#i&!I#em(<<(#-#:ama.!e#S#i&!()),
S#i&! 'Se#i2i+a# 6 <<,
i2 ($!Se#i2i+a#.i'Sele$#ed(0))
'Se#i2i+a# 6 $!Se#i2i+a#.!e#S#i&!(0),
i2 ($!Se#i2i+a#.i'Sele$#ed(1))
'Se#i2i+a# 6 'Se#i2i+a# K <( < K $!Se#i2i+a#.!e#S#i&!(1),
i2 ($!Se#i2i+a#.i'Sele$#ed(2))
'Se#i2i+a# 6 'Se#i2i+a# K <( < K $!Se#i2i+a#.!e#S#i&!(2),
S#i&!I#em '#Se#i2i+a# 6 &e7 S#i&!I#em(<<(< Se#i2i+a# <
K 'Se#i2i+a#),
S#i&!I#em '#J%%'a& 6 &e7 S#i&!I#em(<<(< J%%'a& < K
$!J%%'a&.!e#S#i&!(
$!J%%'a&.!e#Sele$#edI&de-()
)
),
S#i&!I#em '#Ramp%' 6 &e7 S#i&!I#em(<<(< Ramp%' < K
$!Ramp%'.!e#S#i&!(
$!Ramp%'.!e#Sele$#edI&de-()
)
),
Com 22 6 &e7 Com (<3ampil+a& ?a#a<),
22.appe&d('#:im),
22.appe&d('#:ama),
22.appe&d('#Se#i2i+a#),
22.appe&d('#J%%'a&),
22.appe&d('#Ramp%'),
Comma&d a7alCmd 6 &e7 Comma&d(<)7al<( Comma&d.8R(2),
22.addComma&d(a7alCmd),
22.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(22),
>
p%.li$ void $omma&d)$#io&(Comma&d $( ?i'playa.le d) 1
S#i&! l.l 6 $.!e#0a.el(),
i2 (l.l.e;%al'(<Rel%a<)) 1
+el%a(),
>el'e i2(l.l.e;%al'(<S%.mi#<)) 1
#ampil(),
>el'e i2(l.l.e;%al'(<)7al<)) 1
a7al(),
>
>
>
Grafik
$ama )roje!t ; bendera
$ama Midlet ; bendera
$ama )rogram ; bendera.java
/impan File ; !;D%tk"5<DappsD bendera Dsr!D bendera.java
'plikasi ; bendera.jad, bendera.jar
,ambar 2E. ,ambar Bendera dengan J2ME
Impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
$la'' $a&va'@e&dea e-#e&d' Ca&va' 1
p%.li$ void pai&#(Xap"i$' !) 1
!.'e#Colo(0(0(0),
!.da7Re$#(0(0(!e#Fid#"()( !e#Gei!"#()/2),
!.'e#Colo(255(0(0),
!.2illRe$#(1(1( !e#Fid#"() P1( !e#Gei!"#()/O),
!.'e#Colo(255(255(255),
!.2illRe$#(1( !e#Gei!"#()/O( !e#Fid#"()P1(!e#Gei!"#()/O),
!.'e#Colo(0(0(255),
!.da7S#i&!(<I&do&e'ia Mede+a<( !e#Fid#"()/2 (
!e#Gei!"#()/2 K 10( !.38* W !.GC/:3/R),
!.'e#Colo(0(255(0),
!.da7S#i&!(<1S )!%'#%' 19O5<( !e#Fid#"()/2 (
!e#Gei!"#()/2 K 20( !.38* W !.GC/:3/R),
>
>
p%.li$ $la'' .e&dea e-#e&d' MI?le# 1
piva#e ?i'play di'play,
p%.li$ .e&dea() 1>
p%.li$ void '#a#)pp() 1
di'play 6 ?i'play.!e#?i'play(#"i'),
Ca&va' $a&va' 6 &e7 $a&va'@e&dea(),
di'play.'e#C%e&#($a&va'),
>
p%.li$ void pa%'e)pp () 1>
p%.li$ void de'#oy)pp (.oolea& %&$o&di#io&al) 1>
>
Gauge
$ama )roje!t ; gauge#hange
$ama Midlet ; gauge#hange
$ama )rogram ; gauge#hange.java
/impan File ; !;D%tk"5<DappsD gauge#hangeDsr!D gauge#hange.java
'plikasi ; gauge#hange.jad, gauge#hange.jar
,ambar 23. ,auge
impo# java-.mi$oedi#io&.midle#.*,
impo# java-.mi$oedi#io&.l$d%i.*,
p%.li$ $la'' !a%!eC"a&!e e-#e&d' MI?le#
impleme&#' I#emS#a#e0i'#e&e 1
piva#e ?i'play di'play,
piva#e Com 2,
piva#e 3e-#@o- #,
piva#e Xa%!e !,
piva#e S#i&!I#em ',
p%.li$ !a%!eC"a&!e()1>
p%.li$ void '#a#)pp() 1
2 6 &e7 Com(<I&2oma'i :ilai<),
! 6 &e7 Xa%!e(<:ilai<( #%e(10(0),
2.appe&d(!),
2.'e#I#emS#a#e0i'#e&e(#"i'),
?i'play.!e#?i'play(#"i').'e#C%e&#(2),
>
p%.li$ void pa%'e)pp() 1>
p%.li$ void de'#oy)pp (.oolea& %&$o&di#io&al)1>,
p%.li$ void i#emS#a#eC"a&!ed(I#em #) 1
I&#e!e val 6 &e7 I&#e!e(!.!e#Dal%e()),
' 6 &e7 S#i&!I#em(<:ilai B< ( val.#oS#i&!()),
i2(2.'iUe() 66 1)
2.appe&d('),
el'e
2.'e#(2.'iUe()P1('),
>
>
Penggunaan Tanggal / Date
$ama )roje!t ; item#hange
$ama Midlet ; item#hange
$ama )rogram ; item#hange.java
/impan File ; !;D%tk"5<DappsDitem#hangeDsr!D item#hange.java
'plikasi ; item#hange.jad, item#hange.jar
,ambar 35. )enggunaan &ate )ada J2ME
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' i#emC"a&!e e-#e&d' MI?le#
impleme&#' I#emS#a#e0i'#e&e 1
piva#e ?i'play di'play,
piva#e Com 2,
piva#e 3e-#@o- #,
piva#e ?a#eCield d,
p%.li$ i#emC"a&!e() 1>
p%.li$ void '#a#)pp() 1
2 6 &e7 Com(<I&2oma'i Fa+#%<),
d 6 &e7 ?a#eCield(<3odayL' da#e<( ?a#eCield.?)3/),
2.appe&d(d),
2.'e#I#emS#a#e0i'#e&e(#"i'),
?i'play.!e#?i'play(#"i').'e#C%e&#(2),
>
p%.li$ void pa%'e)pp() 1>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al) 1>
p%.li$ void i#emS#a#eC"a&!ed(I#em #) 1
S#i&!I#em ' 6 &e7 S#i&!I#em(<<(<)&da 3ela" Mema'%++a& Ga!a<),
2.appe&d('),
>
>
Keypress
$ama )roje!t ; pindahkotak
$ama Midlet ; pindahkotak
$ama )rogram ; pindahkotak.java
/impan File ; !;D%tk"5<DappsDpindahkotakDsr!Dpindahkotak.java
'plikasi ; pindahkotak.jad, pindahkotak.jar
,ambar 3". )indah -otak
/* ?iam.il dai .%+% pemo!ama& apli+a'i 7iele'' de&!a& java
)di Fi$a+'o&o "alama& 150
*/
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
$la'' pi&da"+o#a+Ca&va' e-#e&d' Ca&va' 1
piva#e i&# - 6 0, //).'i'
piva#e i&# y 6 0, //8di&a#
piva#e i&# 7 6 10, //Fid#"
piva#e i&# " 6 10, //Gei!"#
p%.li$ void pai&# (Xap"i$' !) 1
!.'e#Colo(255(255(255),
!.2illRe$#(0(0( !e#Fid#"()( !e#Gei!"#()),
!.'e#Colo(255(0(0),
!.2illRe$#(-(y(7("),
>
po#e$#ed void +ey*e''ed(i&# Rey$ode) 1
i&# a$#io& 6 !e#Xame)$#io&(Rey$ode),
i2 (a$#io& 66 RIXG3)
- K6 7,
el'e i2 (a$#io& 66 0/C3)
- P6 7,
el'e i2 (a$#io& 66 ?8F:)
y K6 ",
el'e i2 (a$#io& 66 =*)
y P6 ",
i2 (- N 0)
- 6 0,
i2 (y N 0)
y 6 0,
i2 ((-K7) E6 !e#Fid#"())
- 6 !e#Fid#"() P 7,
i2 ((yK") E6 !e#Gei!"#())
y 6 !e#Gei!"#() P y,
epai&#(),
>
>
p%.li$ $la'' pi&da"+o#a+ e-#e&d' MI?le# 1
piva#e ?i'play di'play,
p%.li$ void pi&da"+o#a+() 1>
p%.li$ void '#a#)pp()1
?i'play di'play 6 ?i'play.!e#?i'play(#"i'),
Ca&va' $a&va' 6 &e7 pi&da"+o#a+Ca&va'(),
di'play.'e#C%e&#($a&va'),
>
p%.li$ void pa%'e)pp()1>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al)1>
>
MENYIMPAN DATA PADA J2ME
(Ditulis oleh Gerr!
&alam sebuah perangkat 7andphone yang berbasis Java yang bisa
menjalankan M(&let, disediakan media untuk penyimpanan yang bersi6at non-
volatile. 'rtinya, data tidak akan hilang ketika 7andphone dimatikan. Media
penyimpanan non-volatile ini dalam M(&let dikenal dengan nama *M/ M*e!ord
Management /ystemN.
Record Management System RMS]
*M/ merupakan implementasi database sederhana untuk digunakan dalam
M(&let Java yang berorientasi re!ord. Jika aplikasi anda ingin meman6aatkan
6asilitas *M/ ini, 'nda harus mengimport paket java?.mi!roedition.rms.O
.&idalam nya terdapat !lass!lass untuk manajemen *M/ salah satunya !lass
*e!ord /tore yang menyediakan 6ungsi6ungsi untuk menambah, mengubah,
menghapus data dan manipulasi lainnya.
Paket javax.microedition.rms
)aket ini menyediakan 6ungsi6ungsi untuk implementasikan database *M/
pada M(&let. )aket ini terdiri atas;
Interface
RecordComparator
Mende6inisikan komparator atau pembanding ketika melakukan
komparasi=perbandingan antara 2 re!ord.
RecordEnumerator
Merepresentasikan enumerator re!ord yang bersi6at bideri!tional(dua arah)
RecordFilter
Mende6inisikan 6ilter yang digunakan untuk menganalisis sebuah re!ord pada
*e!ord/tore, apakah memenuhi kriteria tertentu sesuai dengan 6ilter yang
diberikan atau tidak.
RecordListener
Mendeteksi re!ord yang ditambahkan, diubah, atau dihapus dalam sebuah
*e!ord/tore.
Kelas (Class)
RecordStore
Merupakan kelas utama yang harus 'nda gunakan untuk membuat objek
*e!ord/tore.
Exception
InvalidRecordIDException
Jika ditemukan *e!ord(d yang tidak valid, eksepsi ini akan dilemparkan.
RecordStoreException
Eksepsi umum yang digunakan jika terjadi kesalahan pada manajemen +bjek
*e!ord/tore.
RecordStoreFullException
Jika tempat penyimpanan *e!ord/tore sudah penuh.
RecordStoreNotFoundException
Jika tempat penyimpanan *e!ord/tore tidak ditemukan.
RecordStoreNotOpenException
Jika tempat penyimpanan *e!ord/tore tidak dibuka (opened).
Bentuk Logic data dari RecordStore
RecordID &ata
" 'rray o6 Bytes
2 'rray o6 Bytes
3 'rray o6 Bytes
/e!ara logi! hanya ada 2 kolom saja yaitu kolom RecordID dan kolom Data.
*e!ord(d merupakan primary key. *e!ord(& merupakan sebuah nilai (nteger
yang dia%ali dari nomor " dan bersi6at auto in!rement artinya untuk re!ord
berikutnya nilai *e!ord(& berikutnya akan se!ara otomatis bertambah " dari nilai
*e!ord(d yang sebelumnya.
/edangkan kolom data merupakan rangkaian atau kumpulan byte array hasil
dari konversi data kita ke berupa byte array.
RecStore
dbMhs
CtrlMahasiswa
EntryMhs EditMhs DeleteMhs SearchMhs
Nim
Nama
Sertifikat
Jurusan
Kampuz
CtrlMahasiswa.java
bukaRS()
tutupRS()
writeRecr!() !ll
"ntr#Mahasiswa.java
"!itMahasiswa.java
$eleteMahasiswa.java
SearchMahasiswa.java
%ambarCver.java && untuk menampilkan %ambar pa!a Cver M'$let
(but.java && menampilkan (but !ari )r*rammer !ari class Canvas.
Method-method pada class RecordStore :
vi! clseRecr!Stre()
vi! !eleteRecr!Stre(Strin* recr!StreName)
Strin*+, listRecr!Stres()
int a!!Recr!(b#te+, !ata- int ffset- int num.#tes)
vi! setRecr!(int recr!'!- b#te+, new$ata- int ffset- int num.#tes)
vi! !eleteRecr! (int recr!'!)
b#te+, *etRecr! (int recr!'!)
int *etRecr! (int recr!'!- b#te+, buffer- int ffset)
int *etRecr!Size (int recr!'!)
int *etNe/tRecr!'$()
int *etNumRecr!s()
ln* *et0astM!ifie!()
int *et1ersin()
Strin* *etName()
int *etSize()
int *etSize(vailable()
vi! a!!Recr!0istener (Recr!0istener listener)
Bedah Program Aplikasi MIDlet Database Mahasiswa Universitas Budi Luhur
Konsep Record Store dbMhs
-ita ambil kesepakatan nama *e!ord /tore kita adalah dbMhs. >ang
nantinya akan dimasukkan data $(M, $ama, /erti6ikat, Jurusan, -ampuK ( ada 9
Field). /e!ara 0ogi!nya dbMhs dapat digambarkan seperti diba%ah ini;
RecordID
Data
Nim Nama Sertifikat 1urusan Kampuz
"
2
3
<
,ambar 32. #ontrol Mahasis%a
Keterangan :
Record Store dbMhs
Berisi 9 Field yaitu $im, $ama, /erti6ikat, Jurusan, -ampuK
CtrlMahasiswa
#lass #trlMahasis%a digunakan sebagai !lass !ontrol penjembatan antara
aplikasi M(&let kita dengan dbMhs yang menyediakan segala 6ungsi = method
untuk memanipulasi data mahasis%a pada dbMhs, buka koneksi ke *e!/tore
Mbuka*/()N, dan tutup koneksi Mtutup*/()N.
Method : method yg ada pada !lass #trlMahasis%a ;
2 buka*/()
2 tutup*/()
2 %rite*e!ord(/tring nim, /tring nama, /tring serti6ikat,
/tring jurusan, /tring kampus)
2 data$im()
2 data*/(int i)
2 update*e!ord(int no*e!,/tring nim, /tring nama, /tring
serti6ikat, /tring jurusan, /tring kampus)
2 delete*e!ord(int no*e!)
2 jml*e!ord()
2 de'!tive*e!ord(int no*e!)
EntryMahasiswa
#lass EntryMahasis%a adalah turunan M(&let yang menampilkan Form Entry
&ata Mahasis%a .B0 yang menggunakan Method %rite*e!ord( ) dari !lass
#trlMahasis%a untuk mengadd re!ord baru pada *e!ord/tore dbMhs.
EditMahasiswa
#lass EditMahasis%a adalah turunan M(&let yang menampilkan Form Edit
&ata Mahasis%a .B0 yang menggunakan Method update*e!ord( ) dari !lass
#trlMahasis%a untuk mengedit re!ord yang ada pada *e!ord/tore dbMhs.
DeleteMahasiswa
#lass &eleteMahasis%a adalah turunan M(&let yang menampilkan Form
&elete &ata Mahasis%a .B0 yang bisa menggunakan Method
de'!tive*e!ord( ) ataupun delete*e!ord() dari !lass #trlMahasis%a untuk
menonakti6kan ataupun menghapus re!ord yang ada pada *e!ord/tore
dbMhs.
SearchMahasiswa
#lass /ear!hMahasis%a adalah turunan M(&let yang menampilkan Form
/ear!h &ata Mahasis%a .B0 yang menggunakan Method data$im() dan juga
data*/(int i) dari !lass #trlMahasis%a.
Langkah-langkah Pembuatan Program MIDlet Mahasiswa UBL :
Buat )roje!t baru dengan nama Mahasiswa
&an nama Midlet #lassnya EntryMahasiswa
Maka akan se!ara otomatis terbentuk Folder Mahasis%a pada
#;D@1-25DappsDMahasis%aD
Dbin ; berisi 6ile .jad P .jar
Dlib ; u= menambahkan 0ibrary
Dres ; u= menambah *esour!e
/eperti gambar=/ound
Dsr! ; berisi sour!e !ode .java
,ambar 33. Membuat )roje!t Mahasis%a
0alu klik /ettings pada 1oolbar, sehingga mun!ul gambar seperti di ba%ah ini ;
,ambar 3<. 1oolbar /etting J2ME
0alu )ilih 1ab M(&let, dan tambahkan M(&let Edit Mhs, &elete Mhs, /ear!h
Mhs sehingga terbentuk gambar seperti diba%ah ini ;
,ambar 39. Menambahkan M(&0et
Maka apabila dijalankan mempunyai tampilan sebagai berikut ;
,ambar 34. 1ampilan )rogram -emahasis%aan
)rogram #trlMahasis%a;
//C#lMa"a'i'7a.java
impo# java-.mi$oedi#io&.m'.*,//pa$+a!e y! me&yedia+a& $la'' %/ ma&ajeme& RMS
impo# java-.mi$oedi#io&.midle#.*,
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.io.*,
impo# java.io.*,
p%.li$ $la'' C#lMa"a'i'7a
1
//?e$lae 8.je+ e$S#oe dai $la'' Re$odS#oe
piva#e Re$odS#oe e$S#oe 6 &%ll,
//d.M"' a+a& me&jadi &ama Re$odS#oe ;#a.(@ole" di!a&#i +o+H)
'#a#i$ 2i&al S#i&! R/C9S38R/ 6 <d.M"'<,

p%.li$ C#lMa"a'i'7a()
1>
p%.li$ void .%+aRS()
1Sy'#em.o%#.pi&#l&(<8pe&i&!....HRe$od S#oe..<),
#y
1
/**8pe&Re$odS#oe( ) memili+i 2 +e!%&aa& B
*1. =&#%+ mem.%a# Re$od S#oe .a% a#a%
*2. =&#%+ mem.%+a Ro&e+'i +e '%a#% Re$od S#oe
*:ilai #%e pd paame#e +e P2( ma+'%d&ya d.M"' a+a& 'e$aa
*o#oma#i' #e.%a# ji+ala% mema&! .el%m ada.*/
e$S#oe 6 Re$odS#oe.ope&Re$odS#oe(R/C9S38R/( #%e ),
>
$a#$" (/-$ep#io& e)
1
Sy'#em.e.pi&#l&(e.#oS#i&!()),
>
>

p%.li$ void #%#%pRS()
1
#y
1 //Clo'e Re$od S#oe d.M"'
e$S#oe.$lo'eRe$odS#oe(),
>
$a#$" (/-$ep#io& e)
1
Sy'#em.e.pi&#l&(e.#oS#i&!()),
>
>

p%.li$ void 7i#eRe$od(S#i&! &im( S#i&! &ama(
S#i&! 'e#i2i+a#( S#i&! j%%'a&(
S#i&! +amp%'1
#y1
Sy'#em.o%#.pi&#l&(<Fi#i&! Re$od....H<),
//@%a# 8.je+ '#m@y#e' d $la'' @y#e)ay8%#p%#S#eam
//y! a+a& di!%&a+a& %/ &!eP7i#e da#a +e .y#e aay.
@y#e)ay8%#p%#S#eam '#m@y#e' 6
&e7 @y#e)ay8%#p%#S#eam(),
//@%a# 8.je+ '#m?a#a3ype dai $la'' ?a#a8%#p%#S#eam
//y! di!%&a+a& %/ &!eP7i#e #ipe da#a dai da#a dia#a'.
?a#a8%#p%#S#eam '#m?a#a3ype 6
&e7 ?a#a8%#p%#S#eam('#m@y#e'),
//Mem.%a# 8.je+ e$od ya&! .e#ipe da#a )ay .y#e'
//y! &a&#i&ya a+a& dima'%++a& +e dlm e$od '#oe.
.y#e45 e$od,
//&!eP7i#e #ipe da#a .e%pa S#i&! de&!a& da#a&ya.
'#m?a#a3ype.7i#e=3C(&im),
'#m?a#a3ype.7i#e=3C(&ama),
'#m?a#a3ype.7i#e=3C('e#i2i+a#),
'#m?a#a3ype.7i#e=3C(j%%'a&),
'#m?a#a3ype.7i#e=3C(+amp%'),
//me&!P$lea a#a% &!eP2l%'" '#eam
'#m?a#a3ype.2l%'"(),
//3a&'2e da#a a#a% &!eP7i#e da#a +e .y#e aay e$od
e$od 6 '#m@y#e'.#o@y#e)ay(),
//7i#e e$od +e Re$od S#oe de&!a& paame#e
//addRe$od(.y#e45 e$od(i&# o22'e#(i&# &%m@y#e')
e$S#oe.addRe$od(e$od( 0( e$od.le&!#"),
//Ce#a+ j%mla" Re$od a#a% .ai' #e+i&i
Sy'#em.o%#.pi&#l&(<Jml Re$B<Ke$S#oe.!e#:%mRe$od'()),
//:!ePe'e# .y#e aay '"! dim%lai dai a7al la!i
'#m@y#e'.e'e#(),

//Clo'e '#eam
'#m@y#e'.$lo'e(),
'#m?a#a3ype.$lo'e(),
>
$a#$" (/-$ep#io& e)
1Sy'#em.o%#.pi&#l&(<)da /+'ep'i....1<Ke),>

>
//Me#"od %/ me&ampil+a& 'el%%" da#a &am%& "a&ya :IMP&ya 'aja
p%.li$ S#i&!45 da#a:im()1
S#i&! &im456&%ll,
#y1
//e$?a#a di!%&a+a& %/ me&amp%&! da#a ma'i&!2 e$od
.y#e45 e$?a#a 6 &e7 .y#e4505,
//'#m@y#e' di!%&a+a& %/
//&!ePead da#a dai e$od '#oe d.M"'
@y#e)ayI&p%#S#eam '#m@y#e',
//'#m?a#a3ype di!%&a+a& %/ &!ePead #ipe da#a dai
//da#a
?a#aI&p%#S#eam '#m?a#a3ype ,
//*a&ja&! aay &im a+a& 'ama d!& j%mla" Re$od ;#a
&im 6 &e7 S#i&!4e$S#oe.!e#:%mRe$od'()5,
2o (i&# i 6 1, i N6 e$S#oe.!e#:%mRe$od'(), iKK)1
'#m@y#e'6 &e7 @y#e)ayI&p%#S#eam(
e$S#oe.!e#Re$od(i)),
'#m?a#a3ype6&e7 ?a#aI&p%#S#eam('#m@y#e'),
//&!ePead da#a :IM dai d.M"'
&im4iP15 6 '#m?a#a3ype.ead=3C()K</<Ki,

'#m@y#e'.e'e#(),
>
>$a#$" (/-$ep#io& e)1
Sy'#em.o%#.pi&#l&(<)da /+'ep'i....2<Ke),
>

e#%& &im,
>
//Me#"od %/ me&ampil+a& &im(&ama('e#i2i+a#(j%%'a&($amp%U
//dai e$od id ya&! dii&!i&+a&
p%.li$ S#i&!45 da#aRS(i&# i)1
S#i&! da#a456&e7 S#i&!455,
#y1
.y#e45 e$?a#a 6 &e7 .y#e4505,
@y#e)ayI&p%#S#eam '#m@y#e',
?a#aI&p%#S#eam '#m?a#a3ype ,

'#m@y#e'6 &e7 @y#e)ayI&p%#S#eam(e$S#oe.!e#Re$od(i)),
'#m?a#a3ype6&e7 ?a#aI&p%#S#eam('#m@y#e'),
da#a405 6 '#m?a#a3ype.ead=3C(),
da#a415 6 '#m?a#a3ype.ead=3C(),
da#a425 6 '#m?a#a3ype.ead=3C(),
da#a4M5 6 '#m?a#a3ype.ead=3C(),
da#a4O5 6 '#m?a#a3ype.ead=3C(),

'#m@y#e'.e'e#(),

'#m@y#e'.$lo'e(),
'#m?a#a3ype.$lo'e(),
>
$a#$" (/-$ep#io& e)
1 Sy'#em.o%#.pi&#l&(<)da /+'ep'i....M<Ke),>

e#%& da#a,
>
//Me#"od %&#%+ me&!P%pda#e e$od "a'il edi#a&
p%.li$ void %pda#eRe$od(i&# &oRe$(S#i&! &im( S#i&! &ama(
S#i&! 'e#i2i+a#( S#i&! j%%'a&(
S#i&! +amp%')1
#y1
Sy'#em.o%#.pi&#l&(<=pda#i&! Re$od....H<),
@y#e)ay8%#p%#S#eam '#m@y#e' 6
&e7 @y#e)ay8%#p%#S#eam(),
?a#a8%#p%#S#eam '#m?a#a3ype 6
&e7 ?a#a8%#p%#S#eam('#m@y#e'),
.y#e45 e$od,
'#m?a#a3ype.7i#e=3C(&im),
'#m?a#a3ype.7i#e=3C(&ama),
'#m?a#a3ype.7i#e=3C('e#i2i+a#),
'#m?a#a3ype.7i#e=3C(j%%'a&),
'#m?a#a3ype.7i#e=3C(+amp%'),
'#m?a#a3ype.2l%'"(),
e$od 6 '#m@y#e'.#o@y#e)ay(),
//=pda#e e$od d!& da#a #e.a%
e$S#oe.'e#Re$od(&oRe$(e$od( 0( e$od.le&!#"),
Sy'#em.o%#.pi&#l&(<Jml Re$B< K
e$S#oe.!e#:%mRe$od'()),
'#m@y#e'.e'e#(),
'#m@y#e'.$lo'e(),
'#m?a#a3ype.$lo'e(),
>
$a#$" (/-$ep#io& e)
1Sy'#em.o%#.pi&#l&(<)da /+'ep'i....5<Ke),>

>
//Me#"od %&#%+ me&Pdele#e e$od y! dii&!i&+a&
p%.li$ void dele#eRe$od(i&# &oRe$)1
i&# jml60,
#y1
//dele#eRe$od(i&# e$odId)
e$S#oe.dele#eRe$od(&oRe$),
jml6jmlRe$od(),
>$a#$"(/-$ep#io& e)
1Sy'#em.o%#.pi&#l&(<)da /+'ep'i....6<Ke),>
Sy'#em.o%#.pi&#l&(
<J%mla" Re$od Se#ela" Re$ #<K&oRe$K< ?i"ap%' 6 <Kjml),

>
//Me#"od %/ me&!"i#%&! j%mla" e$od #e+i&i pd d.M"'
p%.li$ i&# jmlRe$od() #"o7' /-$ep#io&1
e#%& e$S#oe.!e#:%mRe$od'(),
>
//Me#"od %/ me&o&a+#i2+a& '%a#% e$od
p%.li$ void de)$#iveRe$od(i&# &oRe$)1
#y1
Sy'#em.o%#.pi&#l&(<?ea$#ivi&! Re$od #<K&oRe$K< ....H<),
@y#e)ay8%#p%#S#eam '#m@y#e' 6
&e7 @y#e)ay8%#p%#S#eam(),
?a#a8%#p%#S#eam '#m?a#a3ype 6
&e7 ?a#a8%#p%#S#eam('#m@y#e'),
.y#e45 e$od,
//mem.ei+a& #a&da @ 'e.a!ai #a&da
//&o&Pa+#i2P&ya '%a#% e$od
'#m?a#a3ype.7i#e=3C(<@<),
'#m?a#a3ype.7i#e=3C(<<),
'#m?a#a3ype.7i#e=3C(<<),
'#m?a#a3ype.7i#e=3C(<<),
'#m?a#a3ype.7i#e=3C(<<),
'#m?a#a3ype.2l%'"(),
e$od 6 '#m@y#e'.#o@y#e)ay(),
e$S#oe.'e#Re$od(&oRe$(e$od( 0( e$od.le&!#"),
Sy'#em.o%#.pi&#l&(<Jml Re$B< K
e$S#oe.!e#:%mRe$od'()),
'#m@y#e'.e'e#(),

'#m@y#e'.$lo'e(),
'#m?a#a3ype.$lo'e(),

>
$a#$" (/-$ep#io& e)
1Sy'#em.o%#.pi&#l&(<)da /+'ep'i....5<Ke),>
>


>
)rogram Entry mahasis%a;
,ambar 3G. Entry Mahasis%a
///&#yMa"a'i'7a.java
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' /&#yMa"a'i'7a e-#e&d' MI?le# impleme&#' Comma&d0i'#e&e1
piva#e ?i'play di'play,
piva#e )le# ale#,
p%.li$ Com 2,
piva#e 3e-#Cield #-#:im(#-#:ama,
piva#e C"oi$eXo%p $!Se#i2i+a#($!J%%'a&($!Ramp%',
piva#e Comma&d e-i#Cmd('%.Cmd($md8+,
piva#e S#i&!I#em i#em:im(i#em:ama(i#emSe#i2i+a#(i#emJ%%'a&(i#emRamp%',
piva#e S#i&! '#:im('#:ama('e#i2i+a#('#J%('#Ramp%',
Xam.aCove $ove,
p%.li$ /&#yMa"a'i'7a()1
>
p%.li$ void '#a#)pp()1
di'play 6 ?i'play.!e#?i'play(#"i'),
$md8+ 6 &e7 Comma&d(<S#a#<(Comma&d.8R(1),
$ove 6 &e7 Xam.aCove(</$ove.p&!<),
$ove.addComma&d($md8+),
$ove.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#($ove),
>
p%.li$ void pa%'e)pp()1
>
p%.li$ void de'#oy)pp(.oolea& +o&di'i)1
&o#i2y?e'#oyed(),
>
p%.li$ void e&#y?a#a()1
ale# 6 &e7 )le#(<=&ive'i#a' @%di 0%"%<),
ale#.'e#S#i&!(<J2M/ *o!ammi&!I&?a#a.a'e Fi#"I&RMS<),
ale#.'e#3imeo%#(2000),
#-#:im 6 &e7 3e-#Cield(<:IM B <(<<(10(3e-#Cield.:=M/RIC),
#-#:ama 6 &e7 3e-#Cield(<:ama B <(<<(20(3e-#Cield.):A),
$!Se#i2i+a# 6 &e7 C"oi$eXo%p(<Se#i2i+a#<(C"oi$e.M=03I*0/),
$!Se#i2i+a#.appe&d(<S?<(&%ll),
$!Se#i2i+a#.appe&d(<SM*<(&%ll),
$!Se#i2i+a#.appe&d(<SM)<(&%ll),
$!J%%'a& 6 &e7 C"oi$eXo%p(<J%%'a&B<( C"oi$e./TC0=SID/),
$!J%%'a&.appe&d(<3I<(&%ll),
$!J%%'a&.appe&d(<MI<(&%ll),
$!J%%'a&.appe&d(<R)<(&%ll),
$!J%%'a&.appe&d(<3R<(&%ll),
$!Ramp%'6 &e7 C"oi$eXo%p(<Ramp%' B <(C"oi$e./TC0=SID/),
$!Ramp%'.appe&d(<Cempa+a ma'<(&%ll),
$!Ramp%'.appe&d(<Ciled%!<(&%ll),
$!Ramp%'.appe&d(<Ro-y<(&%ll),
$!Ramp%'.appe&d(<Salem.a<(&%ll),
2 6 &e7 Com(</&#y Ma"a'i'7a<),
2.appe&d(#-#:im),
2.appe&d(#-#:ama),
2.appe&d($!Se#i2i+a#),
2.appe&d($!J%%'a&),
2.appe&d($!Ramp%'),
e-i#Cmd 6 &e7 Comma&d(</-i#H<(Comma&d./TI3(1),
'%.Cmd 6 &e7 Comma&d(<S%.mi#<(Comma&d.8R(2),
2.addComma&d(e-i#Cmd),
2.addComma&d('%.Cmd),
2.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(ale#(2),
>
p%.li$ void +el%a()1
#"i'.de'#oy)pp(#%e),
>
p%.li$ void a7al()1
e&#y?a#a(),
>
p%.li$ void #ampil()1
Sy'#em.o%#.pi&#l&(<C#lH<),
'#:im 6 #-#:im.!e#S#i&!(),
'#:ama 6 #-#:ama.!e#S#i&!(),
'e#i2i+a#6<<,
i2($!Se#i2i+a#.i'Sele$#ed(0))
'e#i2i+a#6'e#i2i+a#K< <K$!Se#i2i+a#.!e#S#i&!(0),
i2($!Se#i2i+a#.i'Sele$#ed(1))
'e#i2i+a#6'e#i2i+a#K<( <K$!Se#i2i+a#.!e#S#i&!(1),
i2($!Se#i2i+a#.i'Sele$#ed(2))
'e#i2i+a#6'e#i2i+a#K<( <K$!Se#i2i+a#.!e#S#i&!(2),
'#J%6 $!J%%'a&.!e#S#i&!($!J%%'a&.!e#Sele$#edI&de-()),
'#Ramp%'6 $!Ramp%'.!e#S#i&!($!Ramp%'.!e#Sele$#edI&de-()),
i#em:im6 &e7 S#i&!I#em(<<(<:IM B<K'#:imK<I&<),
i#em:ama6 &e7 S#i&!I#em(<<(<:ama B <K'#:amaK<I&<),
i#emSe#i2i+a# 6 &e7 S#i&!I#em(<<(<Se#i2i+a# B <K'e#i2i+a#K<I&<),
i#emJ%%'a&6 &e7 S#i&!I#em(<<(<J%%'a& B <K'#J%K<I&<),
i#emRamp%'6 &e7 S#i&!I#em(<<(<Ramp%' B <K'#Ramp%'K<I&<),
Com 2U 6 &e7 Com(<3ampila& ?a#a<),
2U.appe&d(i#em:im),
2U.appe&d(i#em:ama),
2U.appe&d(i#emSe#i2i+a#),
2U.appe&d(i#emJ%%'a&),
2U.appe&d(i#emRamp%'),
Comma&d a7alCmd6&e7 Comma&d(<@a$+<(Comma&d.8R(M),
2U.addComma&d(a7alCmd),
2U.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(2U),
>
p%.li$ void $omma&d)$#io&(Comma&d $( ?i'playa.le d)1
S#i&! l.l 6 $.!e#0a.el(),
i2(l.l.e;%al'(<S#a#<))1e&#y?a#a(),>
i2(l.l.e;%al'(</-i#H<))1+el%a(),
>
el'e i2(l.l.e;%al'(<S%.mi#<))1
#ampil(),
C#lMa"a'i'7a $M"' 6 &e7 C#lMa"a'i'7a(),
$M"'..%+aRS(),
Sy'#em.o%#.pi&#l&('#:im K '#:ama K 'e#i2i+a# K
'#J% K '#Ramp%'),
$M"'.7i#eRe$od('#:im( '#:ama( 'e#i2i+a#( '#J%(
'#Ramp%'),
>
el'e i2(l.l.e;%al'(<@a$+<))1a7al(),
>
>
>
)rogram Edit -emahasis%aan ;
,ambar 3E. )ilihan Edit -emahasis%aan
///di#Ma"a'i'7a.java
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' /di#Ma"a'i'7a e-#e&d' MI?le# impleme&#' Comma&d0i'#e&e1
piva#e ?i'play di'play,
piva#e C"oi$eXo%p $!/di#,
piva#e Com a(2,
piva#e Comma&d
$md8+($md/di#($md@a$+($md@a$+2($md/-i#($md?e#il($md=pda#e,
Xam.aCove $ove,
C#lMa"a'i'7a $ 6 &e7 C#lMa"a'i'7a(),
piva#e 3e-#Cield #-#:im(#-#:ama,
piva#e C"oi$eXo%p $!Se#i2i+a#($!J%%'a&($!Ramp%',
piva#e S#i&!I#em
i#em:im(i#em:ama(i#emSe#i2i+a#(i#emJ%%'a&(i#emRamp%',
piva#e S#i&! '#:im('#:ama('e#i2i+a#('#J%('#Ramp%',
p%.li$ /di#Ma"a'i'7a()1
>
p%.li$ void '#a#)pp()1
di'play 6 ?i'play.!e#?i'play(#"i'),
$md8+ 6 &e7 Comma&d(<S#a#<(Comma&d.8R(1),
$ove 6 &e7 Xam.aCove(</$ove.p&!<),
$ove.addComma&d($md8+),
$ove.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#($ove),
>
p%.li$ void pa%'e)pp()1
>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al)1
&o#i2y?e'#oyed(),
>
p%.li$ void $omma&d)$#io&(Comma&d $( ?i'playa.le d)1
i2($66$md8+)1#ampil?a#a(),>
i2($66$md?e#il)1li"a#?e#il(),>
i2($66$md@a$+)1#ampil?a#a(),>
i2($66$md@a$+2)1#ampil?a#a(),>
i2($66$md/di#)1 edi#?a#a(),>
i2($66$md/-i#)1de'#oy)pp(#%e),>
i2($66$md=pda#e)1%pda#e?a#a(),>
>
p%.li$ void #ampil?a#a()1
a 6 &e7 Com(<?a#a Ma"a'i'7a =@0<),
$!/di# 6 &e7 C"oi$eXo%p(<?a#a Re$od S#oeB<(C"oi$e./TC0=SID/),
$md/-i# 6 &e7 Comma&d(</-i#<(Comma&d./TI3(1),
$md?e#il 6 &e7 Comma&d(<8pe&<(Comma&d.8R(2),
$..%+aRS(),
S#i&!45 &im 6 $.da#a:im(),
2o(i&# i60,iN&im.le&!#",iKK)1
i2(&im4i5.'#a#'Fi#"(<@<))1
&im4i56<Ga' .ee& dele#edH<,
>
$!/di#.appe&d(&im4i5(&%ll),
>
$.#%#%pRS(),
a.addComma&d($md/-i#),
a.addComma&d($md?e#il),
a.appe&d($!/di#),
a.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(a),
>
p%.li$ void li"a#?e#il()1
Com . 6 &e7 Com(</di# ?a#a Ma"a'i'7a<),
$md@a$+ 6 &e7 Comma&d(<@a$+<(Comma&d.@)CR(1),
$md/di# 6 &e7 Comma&d(</di#<(Comma&d.8R(2),
i&# - 6 $!/di#.!e#Sele$#edI&de-()K1,
Sy'#em.o%#.pi&#l&(<Re$od #<K-),
$..%+aRS(),
S#i&!45 da#a6$.da#aRS(-),
i2(da#a405.e;%al'(<@<))1
)le# al 6 &e7 )le#(<Fa&i&!H<),
al.'e#S#i&!(<?a#a i'&L# e-i'# a&ymoeH<),
al.'e#3imeo%#(1000),
di'play.'e#C%e&#(al),
>
el'e1
..appe&d(<:IM B <Kda#a405K<I&<),
..appe&d(<:ama B <Kda#a415K<I&<),
..appe&d(<Se#i2i+a# B <Kda#a425K<I&<),
..appe&d(<J%%'a& B <Kda#a4M5K<I&<),
..appe&d(<Ramp%U B <Kda#a4O5K<I&<),
$.#%#%pRS(),
..addComma&d($md@a$+),
..addComma&d($md/di#),
..'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(.),
>
>
p%.li$ void edi#?a#a()1
i&# - 6 $!/di#.!e#Sele$#edI&de-()K1,
$..%+aRS(),
S#i&!45 da#a6$.da#aRS(-),
#-#:im 6 &e7 3e-#Cield(<:IM B <(da#a405(10(3e-#Cield.:=M/RIC),
#-#:ama 6 &e7 3e-#Cield(<:ama B <(da#a415(10(3e-#Cield.):A),
$!Se#i2i+a# 6 &e7 C"oi$eXo%p(<Se#i2i+a#<(C"oi$e.M=03I*0/),
$!Se#i2i+a#.appe&d(<S?<(&%ll),
$!Se#i2i+a#.appe&d(<SM*<(&%ll),
$!Se#i2i+a#.appe&d(<SM)<(&%ll),
$!J%%'a& 6 &e7 C"oi$eXo%p(<J%%'a& B<(C"oi$e./TC0=SID/),
$!J%%'a&.appe&d(<3I<(&%ll),
$!J%%'a&.appe&d(<MI<(&%ll),
$!J%%'a&.appe&d(<R)<(&%ll),
$!J%%'a&.appe&d(<3R<(&%ll),
$!Ramp%' 6 &e7 C"oi$eXo%p(<Ramp%' B <(C"oi$e./TC0=SID/),
$!Ramp%'.appe&d(<Cempa+a ma'<(&%ll),
$!Ramp%'.appe&d(<Ciled%!<(&%ll),
$!Ramp%'.appe&d(<Ro-y<(&%ll),
$!Ramp%'.appe&d(<Salem.a<(&%ll),
di'play 6 ?i'play.!e#?i'play(#"i'),
2 6 &e7 Com(</&#y Ma"a'i'7a<),
2.appe&d(#-#:im),
2.appe&d(#-#:ama),
2.appe&d($!Se#i2i+a#),
2.appe&d($!J%%'a&),
2.appe&d($!Ramp%'),
$md=pda#e 6 &e7 Comma&d(<=pda#e<(Comma&d.8R(1),
$md@a$+2 6 &e7 Comma&d(<@a$+<(Comma&d.@)CR(2),
2.addComma&d($md@a$+2),
2.addComma&d($md=pda#e),
2.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(2),
>
p%.li$ void %pda#e?a#a()1
i&# - 6 $!/di#.!e#Sele$#edI&de-()K1,
'#:im 6 #-#:im.!e#S#i&!(),
'#:ama 6 #-#:ama.!e#S#i&!(),
'e#i2i+a#6<<,
i2($!Se#i2i+a#.i'Sele$#ed(0))
'e#i2i+a#6'e#i2i+a#K< <K$!Se#i2i+a#.!e#S#i&!(0),
i2($!Se#i2i+a#.i'Sele$#ed(1))
'e#i2i+a#6'e#i2i+a#K<( <K$!Se#i2i+a#.!e#S#i&!(1),
i2($!Se#i2i+a#.i'Sele$#ed(2))
'e#i2i+a#6'e#i2i+a#K<( <K$!Se#i2i+a#.!e#S#i&!(2),
'#J% 6 $!J%%'a&.!e#S#i&!($!J%%'a&.!e#Sele$#edI&de-()),
'#Ramp%' 6 $!Ramp%'.!e#S#i&!($!Ramp%'.!e#Sele$#edI&de-()),
$..%+aRS(),
Sy'#em.o%#.pi&#l&('#:imK'#:amaK'e#i2i+a#K'#J%K'#Ramp%'),
$.%pda#eRe$od(-('#:im('#:ama('e#i2i+a#('#J%('#Ramp%'),
>
>
)rogram Menghapus=&elete
Mahasis%a
,ambar 33. Menghapus=delete mahasis%a
//?ele#eMa"a'i'7a.java
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' ?ele#eMa"a'i'7a e-#e&d' MI?le# impleme&#' Comma&d0i'#e&e1
piva#e ?i'play di'play,
piva#e C"oi$eXo%p $!/di#,
piva#e Com a(2,
piva#e Comma&d $md8+($md?ele#e($md@a$+($md/-i#($md?e#il,
C#lMa"a'i'7a $M 6 &e7 C#lMa"a'i'7a(),
Xam.aCove $ove,
p%.li$ ?ele#eMa"a'i'7a()1
>
p%.li$ void '#a#)pp()1
di'play 6 ?i'play.!e#?i'play(#"i'),
$md8+ 6 &e7 Comma&d(<S#a#<(Comma&d.8R(1),
$ove 6 &e7 Xam.aCove(</$ove.p&!<),
$ove.addComma&d($md8+),
$ove.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#($ove),
>
p%.li$ void pa%'e)pp()1
>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al)1
&o#i2y?e'#oyed(),
>
p%.li$ void $omma&d)$#io&(Comma&d $( ?i'playa.le d)1
i2($66$md8+)1#ampil?a#a(),>
i2($66$md?e#il)1li"a#?e#il(),>
i2($66$md@a$+)1#ampil?a#a(),>
i2($66$md/-i#)1de'#oy)pp(#%e),>
i2($66$md?ele#e)1
i&# - 6 $!/di#.!e#Sele$#edI&de-()K1,
$M..%+aRS(),
$M.de)$#iveRe$od(-),
Sy'#em.o%#.pi&#l&(<?a#a Re$od #<K-K< @e"a'il di"ap%'<),
$M.#%#%pRS(),
)le# a 6 &e7 )le#(<?ele#e Re$odH<),
a.'e#S#i&!(<?a#a Re$od #<K-K< @e"a'il di"ap%'<),
di'play.'e#C%e&#(a),
>
>
p%.li$ void #ampil?a#a()1
a 6 &e7 Com(<?a#a Ma"a'i'7a =@0<),
$!/di# 6 &e7 C"oi$eXo%p(<?a#a Re$od S#oeB<(C"oi$e./TC0=SID/),
$md/-i# 6 &e7 Comma&d(</-i#<(Comma&d./TI3(1),
$md?e#il 6 &e7 Comma&d(<8pe&<(Comma&d.8R(2),
$M..%+aRS(),
S#i&!45 &im 6 $M.da#a:im(),
2o(i&# i60,iN&im.le&!#",iKK)1
i2(&im4i5.'#a#'Fi#"(<@<))1
&im4i56<Ga' .ee& dele#edH<,
>
$!/di#.appe&d(&im4i5(&%ll),
>
$M.#%#%pRS(),
a.addComma&d($md/-i#),
a.addComma&d($md?e#il),
a.appe&d($!/di#),
a.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(a),
>
p%.li$ void li"a#?e#il()1
Com . 6 &e7 Com(<?ele#e ?a#a Ma"a'i'7a<),
$md@a$+ 6 &e7 Comma&d(<@a$+<(Comma&d.@)CR(1),
$md?ele#e 6 &e7 Comma&d(<?ele#e<(Comma&d.8R(2),
i&# - 6 $!/di#.!e#Sele$#edI&de-()K1,
Sy'#em.o%#.pi&#l&(<Re$od #<K-),
$M..%+aRS(),
S#i&!45 da#a6$M.da#aRS(-),
i2(da#a405.e;%al'(<@<))1
)le# al 6 &e7 )le#(<Fa&i&!H<),
al.'e#S#i&!(<?a#a i'&L# e-i'# a&ymoeH<),
al.'e#3imeo%#(1000),
di'play.'e#C%e&#(al),
>
el'e1
..appe&d(<:IM B <Kda#a405K<I&<),
..appe&d(<:ama B <Kda#a415K<I&<),
..appe&d(<Se#i2i+a# B <Kda#a425K<I&<),
..appe&d(<J%%'a& B <Kda#a4M5K<I&<),
..appe&d(<Ramp%U B <Kda#a4O5K<I&<),
$M.#%#%pRS(),
..addComma&d($md@a$+),
..addComma&d($md?ele#e),
..'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(.),
>
>
>
)rogram #ari Mahasis%a
,ambar <5. Men!ari Mahasis%a Berdasarkan $(M
impo# java-.mi$oedi#io&.l$d%i.*,
impo# java-.mi$oedi#io&.midle#.*,
p%.li$ $la'' Sea$"Ma"a'i'7a e-#e&d' MI?le# impleme&#' Comma&d0i'#e&e1
piva#e ?i'play di'play,
piva#e Comma&d $md8+($mdCai($md/-i#($md@a$+($md@a$+2($md8pe&($md).o%#,
piva#e 3e-#Cield #-#:im,
piva#e 0i'# d#:im,
piva#e Com 2$(22,
piva#e S#i&! &im,
piva#e S#i&! 45 &im0i'#6&%ll,
C#lMa"a'i'7a $M 6 &e7 C#lMa"a'i'7a(),
Xam.aCove $ove,
).o%# a.o%#,
p%.li$ Sea$"Ma"a'i'7a()1
>
p%.li$ void '#a#)pp()1
di'play 6 ?i'play.!e#?i'play(#"i'),
$md8+ 6 &e7 Comma&d(<S#a#<(Comma&d.8R(1),
$ove 6 &e7 Xam.aCove(</$ove.p&!<),
$ove.addComma&d($md8+),
$ove.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#($ove),
>
p%.li$ void pa%'e)pp()1
>
p%.li$ void de'#oy)pp(.oolea& %&$o&di#io&al)1
&o#i2y?e'#oyed(),
>
p%.li$ void $omma&d)$#io&(Comma&d $( ?i'playa.le d)1
i2($66$md8+)12omCai(),>
i2($66$mdCai)1vie7:im(),>
i2($66$md@a$+)12omCai(),>
i2($66$md8pe&)1vie7?a#a(),>
i2($66$md@a$+2)1vie7:im(),>
i2($66$md/-i#)1de'#oy)pp(#%e),>
i2($66$md).o%#)1a.o%#Me(),>
>
p%.li$ void 2omCai()1
2$ 6 &e7 Com(<Sea$"i&! Ma"a'i'7a<),
#-#:im 6 &e7 3e-#Cield(<Ma'%+a& :IM B<(<<(10(3e-#Cield.:=M/RIC),
$mdCai 6 &e7 Comma&d(<Cai<(Comma&d.8R(1),
$md/-i# 6 &e7 Comma&d(</-i#<(Comma&d./TI3(2),
$md).o%#6 &e7 Comma&d(<).o%# Me<(Comma&d.8R(M),
2$.appe&d(<Midle# Sea$" Ma"a'i'7aI&=&ive'i#a' @%di
0%"%I&*e#%+a&!a& =#aa( Ja+a#a Sela#a&( I&do&e'ia<K
<I&@y B Xey XealdyI&@l%eJC
4@%di0%"%JavaComm%&i#y5I&J2M/ *o!ammi&!<),
2$.appe&d(#-#:im),
2$.addComma&d($md/-i#),
2$.addComma&d($mdCai),
2$.addComma&d($md).o%#),
2$.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(2$),
>
p%.li$ void !e#:im()1
#"i'.&im 6 #-#:im.!e#S#i&!(),
>
p%.li$ void !e#:im0i'#()1
$M..%+aRS(),
#"i'.&im0i'# 6 $M.da#a:im(),
$M.#%#%pRS(),
>
p%.li$ void vie7:im()1
Ima!e i$o&6&%ll,
#y 1
i$o& 6 Ima!e.$ea#eIma!e(</I$o&.p&!<),
> $a#$" (/-$ep#io& e) 1
>
!e#:im(),
!e#:im0i'#(),
d#:im 6 &e7 0i'#(<Ga'il Sea$" B<(C"oi$e.IM*0ICI3),
$md@a$+ 6 &e7 Comma&d(<@a$+<(Comma&d.@)CR(1),
$md8pe& 6 &e7 Comma&d(<Die7<(Comma&d.8R(2),
2o(i&# i60,iN&im0i'#.le&!#",iKK)1
i2(&im0i'#4i5.'#a#'Fi#"(&im))1
d#:im.appe&d(&im0i'#4i5(i$o&),
>
>
d#:im.addComma&d($md@a$+),
d#:im.addComma&d($md8pe&),
d#:im.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(d#:im),
>
p%.li$ void vie7?a#a()1
22 6 &e7 Com(<?a#a Ma"a'i'7a =@0<),
$md@a$+2 6 &e7 Comma&d(<@a$+<(Comma&d.@)CR(1),
S#i&! m"' 6 d#:im.!e#S#i&!(d#:im.!e#Sele$#edI&de-()),
S#i&! &oRe$ 6 m"'.'%.'#i&!(11),
Sy'#em.o%#.pi&#l&(&oRe$),
i&# - 6 I&#e!e.pa'eI&#(&oRe$),
Sy'#em.o%#.pi&#l&(<Re$od #<K-),
$M..%+aRS(),
S#i&!45 da#a6$M.da#aRS(-),
Sy'#em.o%#.pi&#l&(da#a405),
i2(da#a405.e;%al'(<@<))1
)le# al 6 &e7 )le#(<Fa&i&!H<),
al.'e#S#i&!(<?a#a i'&L# e-i'# a&ymoeH<),
al.'e#3imeo%#(1000),
di'play.'e#C%e&#(al),
>
el'e1
22.appe&d(<:IM B <Kda#a405K<I&<),
22.appe&d(<:ama B <Kda#a415K<I&<),
22.appe&d(<Se#i2i+a# B <Kda#a425K<I&<),
22.appe&d(<J%%'a& B <Kda#a4M5K<I&<),
22.appe&d(<Ramp%U B <Kda#a4O5K<I&<),
22.addComma&d($md@a$+2),
22.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(22),
>
$M.#%#%pRS(),
>
p%.li$ void a.o%#Me()1
a.o%# 6 &e7 ).o%#(),
a.o%#.addComma&d($md/-i#),
a.o%#.'e#Comma&d0i'#e&e(#"i'),
di'play.'e#C%e&#(a.o%#),
>
>
)rogram #over
,ambar <". ,ambar #over
impo# java-.mi$oedi#io&.l$d%i.*,
$la'' Xam.aCove e-#e&d' Ca&va'1
piva#e '#a#i$ i&# #i&!!i2ame(le.a2ame,
piva#e '#a#i$ Ima!e $oveIma!e'6&%ll,
Xam.aCove(S#i&! &mX.)1
i2($oveIma!e'66&%ll)1
#y1
$oveIma!e'6Ima!e.$ea#eIma!e(&mX.),
#i&!!i2ame6$oveIma!e'.!e#Gei!"#(),
le.a2ame6$oveIma!e'.!e#Fid#"(),
>
$a#$"(/-$ep#io& ioe)1
e#%&,
>
>
>
p%.li$ void pai&#(Xap"i$' !)
1
!.'e#Colo(0-000000),
!.2illRe$#(0(0(!e#Fid#"()(!e#Gei!"#()),
!.'e#Colo(0-CCCCCC),
!.2illRe$#(10(12(160(2),
!.2illRe$#(10(1O8(160(2),
!.da7Ima!e($oveIma!e'((!e#Fid#"()Ple.a2ame)/2((!e#Gei!"#()P
#i&!!i2ame)/2(Xap"i$'.38*KXap"i$'.0/C3),
>
>

BAB IV
1AVA 2 ENTERPRISE EDITION (12EE)
/un My!rosystem mengenalkan banyak sekali versi pemrograman java. /alah
satunya adalah Java 2ersi 2 Enterprise Editon atau J2EE.
Banyak sekali 6asilitas yang terdapat pada J2EE ini. 1etapi tidak dibahas semua
dibuku ini. /ebagian besar adalah konsep pemrograman dan beberapa !ontoh
penggunaan J2EE yang diambil dari dokumentasi %%%.sun.!om.
-elebihan J2EE selain bebas dalam penggunaannya, paket J2EE ini telah
dilengkapi semua kebutuhan pengembang pada sisi pengguna maupun sisi server.
-ompnenenkomponen pada J2EE adalah EJB (Enterprise Java Bean), @eb
#ontainer, 'plikasi )engguna (Aplication Client) dan 'pplet.
)erbedaan terpenting antara J2EE dengan J/&- adalah J2EE merupakan versi
enterprise yang memiliki komponen J/&- serta mendukung komponen %eb dan Java
Bean. /edangkan aplikasi standar aplikasi !lient dan applet sudah dapat digunakan pada
J/&-.
,ambar 32. J2EE : Java 2 Enterprise Edition.
1ools yang digunakan untuk membuat system pada J2EE J2EE adalah model %eb
!onsole atau yang disebut dengan 'pli!ation /erver 'dmin #onsole pada port <E<E,
&eploy 1ools dan terminal.
APLIKASI SERVER
#ara mengkati6kan server J2EE, bukalah terminal %indo% atau !ommand dos
kemudian ketiklah ;
a'admi& '#a#Pdomai& PPve.o'e domai&1
atau jika menggunakan system operasi %indo%s yaitu )rograms /un Mi!rosystem
J2EE /&- /tart &e6ault /erver.
-emudian bukalah salah satu %eb bro%ser, !ontoh ; Ms. (nternet E?plorer, kemudian
isilah address dengan alamat ; http;==lo!alhost;<E<E. Masukkan user admin dan kata
kun!innya (pass%ord).
,ambar 33. 'ppli!ation /erver 'dmin #onsole.
.ntuk perintah untuk menon akti6kan server
a'admi& '#opPdomai& domai&1
atau jika menggunakan system operasi %indo%s
)rograms /un Mi!ro/ystem /top &e6ault /erver
DEPLOYMENT TOOL
.ntuk membuat paket aplikasi J2EE , /un Mi!rosystem menyedikan 6asilitas
&eployment 1ool. .ntuk menjalankan aplikasi &eployment 1ool dengan menggunakan
terminal atau !ommand dos ;
deploytool
atau dengan menggunakan menu )rograms /un Mi!rosystem &eploy 1ool
,ambar 3<. &eployment 1ool
1AVA API
J'2' ')( adalah 6asilitas untuk developer java dalam membuat aplikasi. .ntuk
lebih jelasnya adalah sebagai berikut ;
EJB (Enterprise Java Bean)
Enter Java Bean EJB atau sering dikenal dengan Enterperise bean adalah
komponen kodekode dari bisnis logic.
)enggunaan EJB dapat digabungkan dengan komponenkomponen lainnya yang
ada pada J2EE.
'da beberapa model dari EJB yaitu session beans, entity beans dan message
driven beans. -euntungan dari entitybeans adalah penggunaan /Q0 yang digunakan
pada J&B# ')(.
JAVA SERVLE EC!"#L#$%
Java /ervlet teknologi adalah !lass yang dapat digunakan untuk melakukan
transaksi pada 711). /ervlet ini merupakan model pemrograman %eb dan juga dapat
menggunakan 6asilitas yang ada pada Java /erver )age.
JAVA SERVER PA$ES
Java /erver )ages merupakan pemrograman %eb dengan model basis teks
dokumen yang dapat diekspresikan dengan beberapa tipe teks. (71M0, @M0 dan
AM0).
JAVA &ESSA$E SERV'CE
JM/ ')( adalah standar pesan yang ada pada aplikasi J2EE untuk membuat,
mengirimkan, menerima dan pemba!a pesan.
JAVA RA"SAC'#" AP'
J1' merupakan standar interface J2EE yang menangani transaksi commit dan
rollback.
JAVA&A'L AP'
J2EE menyediakan 6asilitas untuk mengirimkan email yaitu J'2'M'(0. J'2'
M'(0 ini telah kita bahas sebelumnya.
JAVABEA"S AC'VA'#" (RA&E)#RK.
J'F digunakan oleh J'2'M'(0 kare J'F merupakan standar komunikasi untuk
mende6inisikan tipe dari data dan system encapsulate.
JAVA AP' (#R *&L PR#CESS'"$
J'A) dapat memproses dokumen AM0 dengan tipe Document bject !odel
(&+M), "imple A#$ for %!L (/'A), dan &'tensible "tylesheet Language
(ransformation (A0/1).
'plikasi J'A) dapat melakukan penelusuran dan merubah dokumen AM0
menjadi dokumen yang sesuai dengan tipe dokumen @3#.
)enggunaan J'A) pada proto!ol 711) dikenal dengan Java ')( 6or AM0Based
*)# (J'A*)#).
J+BC AP'
J&B# ')( digunakan untuk mengakses perintah /Q0 pada method pemrograman
J'2'. )ada versi J2EE, Enterpri!e Bean ')( menggunakan J&B# ')( ini untuk
mengkases database. J&B# ')( juga dapat digunakan se!ara langsung tanpa harus
mengakti6kan Enterprise Bean.
/un Mi!rosystem juga menyediakan aplikasi untuk mengembangkan program
pada J2EE, yaitu /un Java /tudio #reator. 1etapi sayangnya untuk aplikasi ini
perusahaan /un Mi!ro/ystem tidak mendistribusikan se!ara gratis tetapi harus
membayar.
.ntuk Mengembangkan program dengan menggunakan Java /tudio #reator
membutuhkan memori yang tidak sedikit yaitu minimal 9"2 dengan minimal prosesor
adalah )entium <.
,ambar 39. /un Java /tudio #reator
TENTANG PENULIS
)enulis bernama @indu ,ata, /-om
terlahir di Jakarta pada tanggal 53 Juli "3G4.
sejak tahun "333 penulis bekerja pada
instansi pemerintah, yaitu 0-B$ '$1'*'
sebagai sta6 analisa dan programmer bagian
pengembangan dan penelitian.
/elain itu penulis merupakan salah satu
dosen di universitas Budi 0uhur dengan mata
kuliah .ni?, Bahasa )emrograman 3 : java
lanjutan. Bahasa )emrograman < : java
komunikasi dan mobile, )engelolalan /istem
(n6ormasi, dan /istem &atabase 2 : &atabase 0anjutan. )enulis Juga sebagai pengajar di
0embaga )endidikan Jurnalistik 'ntara (0)J') : 0-B$ 'ntara, khusus dibidang
in6ormatika, dan pengajar lepas.
7obi di bidang teknik in6ormatika (1(), khususnya dibidang pemrograman, telah
digeluti sejak memasuki bangku kuliah /trata /atu (/") dengan jurusan 1eknik
(n6ormatika di .niversitas Budi 0uhur tahun "339, dan menyelesaikan studinya tahun
"333.
/eiring %aktu berjalan dan perkembangan (1 yang semakin pesat, penulis
mengasah kemampuan dan memliki ketrampilan di bidang sistem operasi seperti /olaris
/un Mi!rosystem, '(A : (BM */4555, linu?, dan Mi!roso6t @indo%s. Begitupula
dibidang pemrograman, bahasa pemrograman yang telah kuasai seperti Ms. 2isual Basi!,
2B' M/. '!!ess, )7), '/), +ra!le ('/, @eb programming dan java, dengan database
Ms.'!!ess, My/Rl, Ms. '!!ess, Ms. /Rl/erver, dan +ra!le. Juga tools yang digunakan
seperti /eagate #rystal *eport dan net%orking (1#)=(), .&), Multi!asting dan
&2B=()).
)engalaman membuat program di 0-B$ 'ntara ataupun sebagai programmer
lepas telah dijalani. #ontoh program di tempat penulis bekerja, penulis telah membuat
seperti program komunikasi */232, 1#) dan &2B=() dengan sarana modem sampai
satelit. &an sebagai pemrogramer lepas, penulis telah membuat diberbagai instasi
pemerintah dan s%asta.
#ita!ita untuk turut memajukan bangsa dan negara melalui kemampuan penulis,
salah satunya dengan menulis buku ini. &an berharap, dengan adanya buku ini, jika
seseorang yang tidak bisa menjadi bisa dan yang sudah bisa menjadi lebih bisa.
-ritik dan saran sangat dinanti dengan mengirimkannya ke email penulis, yaitu
%induSantara.!o.id atau ret%inG4GESyahoo.!om. -arena penulis bukanlah orang yang
sempurna, masih banyak yang harus dipelajari dan rasa ingin memperbaiki sehingga
dapat menulis bukubuku lainnya.
.!apan 1erima kasih, penulis u!apkan atas perhatiannya. &an terima kasih
terdalam teruntuk istri dan anakanakku, keluarga, guruguru, keluarga besar 0-B$
'ntara, -eluarga Besar .niversitas Budi 0uhur dan $egeri ku (ndonesia.
-- Hiduplah Bangsa dan Negara, saya mencintaimu INDONESIA ---

Anda mungkin juga menyukai