Anda di halaman 1dari 17

APLIKASI J2ME PADA WEB

(MENAMPILKAN WEB DAN APLIKASI DATABASE MySQL PADA EMULATOR J2ME)

1.

TUJUAN

Setelah membuat aplikasi j2me ini, diharapkan mampu: - Memahami cara mengkakses web PHP kita menggunakan J2ME emulator 2. Membuat program java dan PHP DASAR TEORI

J2ME (Java 2 Micro Edition) Java 2 Micro Edition (J2ME), merupakan bagian dari Java 2J2ME Standar Edition (J2SE) yang menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman, dan cross-platform. Edisi ini mendukung konektivitas basis data, rancangan user interface, masukkan/ keluaran (input/ output), dan pemrograman jaringan (network programming), dan termasuk sebagai paket-paket dasar bahasa Java.

J2ME selain menyedikan bahasa Java yang sama, unggul dalam portabilitas (kemampuan dapat dijalankan dimanapun), safe network delivery, seperti J2SE dan J2EE. Aplikasi-aplikasi dapat diskalakan (dimampukan) agar dapat bekerja dengan J2SE dan J2EE. J2ME adalah untuk beragam consumer electronic product, seperti pager, smart card, cell phone, handheld PDA, dan set-top box.

Paparan singkat di atas adalah penjelasan singkat mengenai Java dan sedikit gambaran dimana paket J2ME digunakan. Sebenarnya masih panjang penjelasan tentang Java dan paket J2ME, tetapi tidak dibahas disini. Komponen-komponen J2ME terdiri dari Java Virtual Machine (JVM) yang digunakan untuk menjalankan aplikasi Java pada emulator atauhandheld device, Java API (Aplication Programming Interface) dan tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone, emulator Motorolla dari J2ME wireless toolkit. J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei,layar yang kecil dan bandwith jaringan yang rendah. Program J2ME, seperti semua program JAVA adalah diterjemahkan oleh VM. Program-program tersebut dikompile ke dalam bytecode dan diterjemahkan denga Java Virtual Machine(JVM).Ini berarti bahwa program-program tersebut tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda. Inti dari J2ME terletak pada configuration dan profile-profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan. Bekerja dengan Form Bekerja dengan Form memungkinkan Anda untuk menampilkan beberapa komponen GUI semacam daftar pilihan, masukan teks (textbox) dalam satu layar. Form diimplementasikan oleh class javax.microedition.lcdui.Form. Form dapat menampung komponen-komponen yang disebut item dalam satu layar. Item tersebut adalah textfield, image, date field, gauge dan choice group. Item-item tersebut merupakan implementasi dari class turunan Item(javax.microedition.lcdui.Item). public Form(String title) public Form(String title, Item[] items) Konstruktor pertama, menyediakan sebuah form dengan judul form seperti parameter title yang diberikan, sedangkan konstruktor kedua mendefinisikan item-item apa saja yang akan ada di form yang akan dibuat. Komponen Form :

ChoiceGroup Class ini menyediakan komponen yang mirip dengan list, yakni menyediakan daftar pilihan. DateField Class ini menyediakan komponen untuk memasukkan informasi tanggal dan waktu. Gauge Class ini menyediakan komponen grafik horisontal yang biasanya digunakan untuk memberikan gambaran berapa persen proses berjalan. Image dan ImageItem Class ini menyediakan komponen grafik untuk manipulasi gambar. StringItem Class ini menyediakan komponen teks string yang tidak bisa diedit oleh pengguna. TextField Class ini menyediakan komponen untuk masukan teks string oleh pengguna. Ada beberapa nilai yang bisa digunakan untuk parameter ini yaitu : TextField.ANY : Artinya Anda bisa memasukkan sembarang karakter teks TextField.EMAILADDR : Artinya Anda bisa memasukkan teks yang merupakan alamat email. Misalnya : intan@eepis-its.edu TextField.NUMERIC : Artinya Anda hanya bisa memasukkan teks berupa angka saja TextField.PHONENUMBER : Artinya Anda hanya bisa memasukkan teks berupa nomor telepon saja misalnya +6281234567 TextField.URL : Artinya Anda hanya bisa memasukkan teks berupa alamat web atau URl lain, misalnya http://java.sun.com TextField.PASSWORD : Seperti memasukkan password pada saat login ke Windows, masukan Anda akan ditampilkan dengan karakter tertentu, misalnya *.

ChoiceGroup

Class ChoiceGroup(javax.microedition.lcdui.ChoiceGroup) merupakan class turunan dari class abstract javax.microedition.lcdui.Item yang menyediakan masukan pilihan (multiple choice) pada layar. Konstruktor dari class ChoiceGroup ini ada dua yaitu: public ChoiceGroup(String title, int choiceType) public ChoiceGroup(String title, int choiceType, String[] choiceElement, Image[] choiceImages)

Parameter-parameter: String title Untuk memberikan title pada daftar pilihan yang ditampilkan. int choiceType Tipe pilihan yang digunakan dapat berisi: Choice.EXCLUSIVE Berarti setiap saat hanya bisa dipilih 1 buah pilihan saja. Choice.MULTIPLE Berarti pengguna bisa memilih lebih dari 1 pilihan. Choice.POPUP Pilihan dalam bentuk popup, dan user hanya bisa memilih 1 pilihan.

Ticker Ticker merupakan teks yang berjalan pada bagian atas layer aplikasi MIDlet. Sebuah ticker dapat ditempatkan pada objek-objek turunan class Screen yang telah disebutkan yaitu TextBox, List, Form dan Alert. Untuk menambahkan ticker ke screen lakukan seperti berikut: Ticker t = new Ticker("J2ME") ; t.setTicker(tick); Display.getDisplay(this).setCurrent(t); keterangan : t adalah Objek dari Textbox, sedangkan display adalah Objek Display.

3.

PROGRAM J2ME

databasee.java
import import import import import java.io.*; javax.microedition.io.*; javax.microedition.lcdui.*; javax.microedition.midlet.*; java.util.*;

/** * @author Zulfikar cahya */ public class databasee extends MIDlet implements CommandListener { Display d = Display.getDisplay(this); List ls1; TextField nama1,email,komentar,nama2,nama; Command ok = new Command("Proses", Command.OK, 1); Command ok1 = new Command("Proses", Command.OK, 1); Command ok2 = new Command("Proses", Command.OK, 1); Form form1,form4,f3,f4,f5,f1; Alert alert1; Command cmExit = new Command("Exit", Command.EXIT, 1); Command cmOK = new Command("Pilih", Command.OK, 2); Command cmBack = new Command("Back",Command.OK,1); Command go = new Command("Search",Command.OK,1); public void startApp() { awal(); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void awal() { d=Display.getDisplay(this); ls1 = new List ("Pilihan", Choice.IMPLICIT); ls1.append("1.Beri Komentar\n", null); ls1.append("2.Search Komentar\n", null); ls1.append("3.Delete Komentar\n", null); ls1.append("4.Tampilkan Komentar\n", null); ls1.append("5.Ubah Komentar\n", null); ls1.addCommand(cmExit); ls1.addCommand(cmOK); ls1.setCommandListener(this); d.setCurrent(ls1); } public void daftar(){ form1 = new Form("Pendaftaran"); nama = new TextField("Nama", null, 25, TextField.ANY); email = new TextField("Email", null, 25, TextField.ANY); komentar = new TextField("Komentar",null, 200, TextField.ANY); d=Display.getDisplay(this); form1.append(nama); form1.append(email); form1.append(komentar); form1.addCommand(ok);

form1.addCommand(cmBack); form1.setCommandListener(this); Display.getDisplay(this).setCurrent(form1);

public void delete(){ form4 = new Form("DELETE"); nama = new TextField("Nama",null, 12, TextField.ANY); d=Display.getDisplay(this); form4.append(nama); form4.addCommand(ok1); form4.addCommand(cmBack); form4.setCommandListener(this); Display.getDisplay(this).setCurrent(form4); } public void proses(){ Form form2 = new Form("Konfirmasi"); try { HttpConnection con = null; InputStream masuk = null; String pesan = ""; String p1,p2; StringBuffer sb = new StringBuffer(); String URL = "http://127.0.0.1/j2me/konek.php?"; p1="nama="+nama.getString(); p2="&email="+email.getString() +"&komentar="+komentar.getString(); con = (HttpConnection)Connector.open(URL+p1+p2); masuk = con.openInputStream(); int cek; while ((cek = masuk.read()) != -1 ) { sb.append((char)cek); } pesan = sb.toString(); form2.append(pesan); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){ } } public void tampil(){ f3 = new Form("Search Data"); nama2 = new TextField("Masukkan Nama",null,15,TextField.ANY); f3.append(nama2); f3.addCommand(go); f3.addCommand(cmBack); f3.setCommandListener(this); d.setCurrent(f3); } public void tampil2(){ f4 = new Form("Info Anda"); String pesan1 = ""; String URLsite = "http://127.0.0.1/j2me/lihat.php?"; String p; p="nama="+nama2.getString(); HttpConnection con = null; InputStream in = null; StringBuffer sb1 = new StringBuffer();; try{ con = (HttpConnection)Connector.open(URLsite+p);

in = con.openDataInputStream(); int ch; while((ch = in.read()) != -1){ sb1.append((char)ch); } pesan1 = sb1.toString(); f4.append(pesan1); f4.addCommand(cmBack); f4.setCommandListener(this); Display.getDisplay(this).setCurrent(f4); } catch(IOException e){ } } public void prosesdelete(){ Form form2 = new Form("Konfirmasi"); try { HttpConnection con = null; InputStream masuk = null; StringBuffer sb2 = new StringBuffer(); String pesan2 = ""; String URL = "http://127.0.0.1/j2me/hapusdata.php?"; String p1; p1="Nama="+nama.getString(); con = (HttpConnection) Connector.open(URL+p1); masuk = con.openInputStream(); int cek; while ((cek = masuk.read()) != -1 ) { sb2.append((char)cek); } pesan2 = sb2.toString(); form2.append(pesan2); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){ } } public void view(){ Form form2 = new Form("Konfirmasi"); try { HttpConnection con = null; InputStream masuk = null; StringBuffer sb3 = new StringBuffer(); String pesan3 = ""; String URL = "http://127.0.0.1/j2me/tampil.php?"; con = (HttpConnection) Connector.open(URL); masuk = con.openInputStream(); int cek; while ((cek = masuk.read()) != -1 ) { sb3.append((char)cek); } pesan3 = sb3.toString(); form2.append(pesan3); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){

} } public void formupdate(){ f1 = new Form("Ubah Komentar Anda"); nama = new TextField("Nama", null, 25, TextField.ANY); email = new TextField("Email", null, 25, TextField.ANY); komentar = new TextField("Komentar",null, 200, TextField.ANY); d=Display.getDisplay(this); f1.append(nama); f1.append(email); f1.append(komentar); f1.addCommand(ok2); f1.addCommand(cmBack); f1.setCommandListener(this); Display.getDisplay(this).setCurrent(f1); } public void prosesupdate(){ Form form2 = new Form("Konfirmasi"); try { HttpConnection con = null; InputStream masuk = null; String pesan = ""; String p1,p2; StringBuffer sb = new StringBuffer(); String URL = "http://127.0.0.1/j2me/update.php?"; p1="nama="+nama.getString(); p2="&email="+email.getString() +"&komentar="+komentar.getString(); con = (HttpConnection)Connector.open(URL+p1+p2); masuk = con.openInputStream(); int cek; while ((cek = masuk.read()) != -1 ) { sb.append((char)cek); } pesan = sb.toString(); form2.append(pesan); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){ } } public void Exit(){ notifyDestroyed(); } public void commandAction (Command c, Displayable di ){ // public void commandAction(Command c, Displayable di) { // String selek=c.getLabel(); //System.out.println (selek); if (c == cmOK){ if(ls1.isSelected(0)) daftar(); else if(ls1.isSelected(1)) tampil(); else if(ls1.isSelected(2)) delete(); else if(ls1.isSelected(3)) view(); else if(ls1.isSelected(4))

formupdate(); } else if(c == go){ tampil2(); } else if (c == ok){ proses(); } else if (c == ok1){ prosesdelete(); } else if (c == ok2){ prosesupdate(); } else if (c == cmBack) awal(); else if (c == cmExit) Exit(); } }

lihat.php -> cari data


<?php $dtnama = $_GET["Nama"]; echo "Nama yang anda cari: $dtnama \n"; $conn=mysql_connect("localhost","root","") or die("koneksi gagal"); mysql_select_db("sendcerpen",$conn); $hasil=mysql_query("select * from daftartamu where Nama='$dtnama'",$conn); if($hasil) { while($row=mysql_fetch_row($hasil)) { echo "Nama : " . $row[1]; echo "\n"; echo "Email : " . $row[2]; echo "\n"; echo "Comment : ".$row[3]; echo "\n\n"; }} else echo "maaf, Data yang anda cari tidak ada \n" ?>

tampil.php -> tampilkan data


<?php $conn=mysql_connect("localhost","root","") or die("koneksi gagal"); mysql_select_db("sendcerpen",$conn); $hasil=mysql_query("select * from daftartamu",$conn); if($hasil) { while($row=mysql_fetch_row($hasil)) { echo "Nama : " . $row[1]; echo "\n"; echo "Email : " . $row[2]; echo "\n"; echo "Comment : ".$row[3]; echo "\n\n"; } }

update.php -> edit data


<?php $Nama = $_GET['Nama']; $Email = $_GET['Email']; $Comment = $_GET['Comment']; $koneksi=mysql_connect("localhost","root",""); mysql_select_db("sendcerpen",$koneksi); $query=mysql_query("update daftartamu set Nama='$Nama',Email='$Email',Comment='$Comment' where Nama='$Nama'", $koneksi); if($query) echo "DATA SUDAH TERUPDATE"; else echo "DATA GAGAL UPDATE ATAU NAMA ANDA BELUM TERDAFTAR/ SALAH" ?>

hapusdata.php -> hapus data


<?php $Nama = ""; if(isset($_GET['Nama'])){ $Nama = $_GET['Nama'];} $koneksi = mysql_connect("localhost","root",""); mysql_select_db("sendcerpen",$koneksi); $sql = "DELETE FROM `sendcerpen`.`daftartamu` WHERE `daftartamu`.`Nama` = '$Nama'"; mysql_query($sql); if(mysql_errno() == 0) { echo "KOMENTAR TELAH DIHAPUS"; }else{ echo "KOMENTAR GAGAL DIHAPUS"; } ?>

konek.php -> simpan


<?php $Nama = $_GET["Nama"]; $Email = $_GET["Email"]; $Comment = $_GET["Comment"]; $conn=mysql_connect("localhost","root","") or die ("Koneksi gagal"); mysql_select_db("sendcerpen",$conn); $query = "INSERT `sendcerpen`.`daftartamu`(`Nama`,`Email`,`Comment`)VALUES('$Nama', '$Email','$Comment')"; $hasil = mysql_query($query); if ($hasil) echo "Komentar telah terkirim\n"; else echo "Komentar gagal dikirim\n"; echo "Nama : $Nama\n"; echo "Email : $Email\n"; echo "Komentar : $Comment\n\n"; ?> INTO

4. Tampilan Emulator
Tampilan awal J2ME : Pilihan Registrasi:

Registrasi berhasil:

Edit User:

Update Berhasil:

Tampilkan User yg terdaftar:

Delete User:

Delete berhasil:

Tampilkan user:

Search user:

Database Akhir :

5. ANALISA Pada percobaan kelima praktikum Internet Programming yang berjudul APLIKASI J2ME PADA WEB ini dibuatlah aplikasi J2ME dengan koneksi database. Dengan pemrograman java ini ditampilkanlah halaman web secara sederhana pada emulator yang telah tersedia bersama NetBeans IDE6.9 sebagai software pemrograman java. Database yang digunakan pada pemrograman java ini tetap menggunakan database seperti pada WAP dan WEB yaitu database berbasis phpmyadmin. Pertama-tama, dibuatlah project pada NetBeans -> Mobile App -> Midlet. Lalu akan terbentuk file deengan ekstensi *.java. Disini nama filenya adalah insyaallah.java. Disinilah segala program java ditulis seperti tampak pada program yang terdiri dari beberapa fungsi.
import import import import import java.io.*; javax.microedition.io.*; javax.microedition.lcdui.*; javax.microedition.midlet.*; java.util.*;

public class p1 extends MIDlet implements CommandListener {

p1 sesuai nama .java. Disini berisi command yg akan dijalankan pada program
Display d = Display.getDisplay(this);untuk menampilkan form-variable d List ls1; membuat list

variable textfield utk inputan data

TextField nama1,password,email,nama2,nama; Command cmNext = new Command("Masuk", Command.OK, 1); Form form1,form4,f3,f4,f5,f1,form2, form21, form41; Alert alert1;

membuat alert

public void startApp() { memulai aplikasi dari public void awal() awal(); } public void awal() { d=Display.getDisplay(this); ls1 = new List ("Pilihan", Choice.IMPLICIT); ls1.append("1.Registrasi\n", null); ls1.append("2.Search User\n", null); ls1.append("3.Delete User\n", null); ls1.append("4.Tampilkan User\n", null);

ls1.append("5.Edit Data\n", null); ls1.addCommand(cmExit); ls1.addCommand(cmOK); ls1.setCommandListener(this); d.setCurrent(ls1);

public void awal() merupakan halaman utama pada tampilan aplikasi, halaman ini berisi list pilihan menu registrasi, edit, delete, tampilkan, dan search user
public void daftar(){ form1 = new Form("Pendaftaran"); nama = new TextField("nama", null, 25, TextField.ANY); password = new TextField("password", null, 25, TextField.ANY); email = new TextField("email",null, 200, TextField.ANY); d=Display.getDisplay(this); form1.append(nama); form1.append(password); form1.append(email); form1.addCommand(ok); form1.addCommand(cmBack); form1.setCommandListener(this); Display.getDisplay(this).setCurrent(form1);

public void daftar() merupakan halaman untuk registrasi/ pendaftaran user baru dengan textfield nama, password, dan email
public void delete(){ form4 = new Form("DELETE"); nama = new TextField("nama",null, 12, TextField.ANY); d=Display.getDisplay(this); form4.append(nama); form4.addCommand(ok1); form4.addCommand(cmBack); form4.setCommandListener(this); Display.getDisplay(this).setCurrent(form4);

public void delete() dan public void prosesdelete()merupakan program untuk menampilkan textfield nam dan proses yang menghapus database berdasarkan nama yang diinputkan. Program ini terhubung dengan proses hapusdata.php.
public void prosesdelete(){ Form form2 = new Form("DATA USER"); try { HttpConnection con = null; InputStream masuk = null; StringBuffer sb2 = new StringBuffer(); String pesan2 = ""; String URL = "http://202.57.9.234/uas/cucuk/j2me/hapusdata.php?"; String p1; p1="nama="+nama.getString(); con = (HttpConnection) Connector.open(URL+p1); masuk = con.openInputStream();

int cek; while ((cek = masuk.read()) != -1 ) { sb2.append((char)cek); } pesan2 = sb2.toString(); form2.append(pesan2); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){ }

public void view(){ Form form2 = new Form("DATA USER"); try { HttpConnection con = null; InputStream masuk = null; StringBuffer sb3 = new StringBuffer(); String pesan3 = ""; String URL = "http://202.57.9.234/uas/cucuk/j2me/tampil.php?"; con = (HttpConnection) Connector.open(URL); masuk = con.openInputStream(); int cek; while ((cek = masuk.read()) != -1 ) { sb3.append((char)cek); } pesan3 = sb3.toString(); form2.append(pesan3); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){ }

public void view(){ adalah program untuk menampilkan data user yang telah terdaftar dalam database
public void formupdate(){ f1 = new Form("Ubah data Anda"); nama = new TextField("nama", null, 25, TextField.ANY); password = new TextField("password", null, 25, TextField.ANY); email = new TextField("email",null, 200, TextField.ANY); d=Display.getDisplay(this); f1.append(nama); f1.append(password); f1.append(email); f1.addCommand(ok2); f1.addCommand(cmBack); f1.setCommandListener(this); Display.getDisplay(this).setCurrent(f1);

} public void prosesupdate(){ Form form2 = new Form("DATA USER"); try { HttpConnection con = null; InputStream masuk = null; String pesan = ""; String p1,p2; StringBuffer sb = new StringBuffer(); String "http://202.57.9.234/uas/cucuk/j2me/update.php?"; p1="nama="+nama.getString(); p2="&password="+password.getString() +"&email="+email.getString(); con = (HttpConnection)Connector.open(URL+p1+p2); masuk = con.openInputStream(); int cek; while ((cek = masuk.read()) != -1 ) { sb.append((char)cek); } pesan = sb.toString(); form2.append(pesan); form2.addCommand(cmBack); form2.setCommandListener(this); Display.getDisplay(this).setCurrent(form2); }catch (IOException e){ } URL =

Formupdate dan prosesupdate adalah program untuk edit database yang terhubung dengan file update.php. Selanjutnya, untuk program PHP sama dengan proses pada WEB.

6. Kesimpulan

Pembuatan Aplikasi WEB dengan J2ME menggunakan koneksi database dan PHP yang sama dengan WEB dan WAP. Yang berbeda adalah bahasa pemrograman yang menggunakan java.

7. Daftar Pustaka Modul Praktikum Internet Programming Modul 5 Modul Praktikum Internet Programming Modul 9, 10 J2ME Zen Hadi

Anda mungkin juga menyukai