Anda di halaman 1dari 9

Praktikum 12

Dasar Pemprograman J2ME Client/Server


Dosen : Ir. Nanang Syahroni M.Kom

Pokok Bahasan
Pemprograman J2ME untuk Client menggunakan MIDP
Pemprograman PHP untuk Server
Pemprograman J2ME untuk koneksi dengan webserver Apache dan PHP
Pemprograman J2ME untuk akses data dari database MySQL

Tujuan Belajar
Mengenalkan konsep Client & Server dengan bahasa pemrograman Java
Mengenalkan konsep Java OOP untuk koneksi dengan Webserver
Mengetahui instalasi dan cara setting webserver Apache
Mengetahui instalasi dan cara setting website dengan PHP
Mengetahui instalasi dan cara setting database MySQL

Pendahuluan
Client/Server dapat diartikan sebagai kemampuan komputer untuk meminta layanan data
kepada komputer lain. Setiap komputer yang meminta layanan disebut sebagai client,
sedangkan yang menyediakan layanan disebut sebagai server. Data yang diminta oleh client
dapat diambil dari database pada server yang sering disebut database server seperi misalnya
MySQL, Oracle, dll.
Dalam praktikum ini Client adalah peralatan mobile yang berupa HP sedangkan Server adalah
PC yang dioperasikan sebagai Webserver dan terdapat komponen Apache webserver, bahasa
pemprograman PHP dan database MySQL.
Webserver merupakan software yang menjadi tulang belakang dari world wide web (www).
Webserver menunggu permintaan HTTP dari client yang menggunakan program J2ME atau
program browser seperti Firefox, Internet Explorer, dll. Jika ada permintaan dari browser,
maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya
berupa data yang diinginkan kembali ke browser.

Server HTTP Apache adalah server web yang dapat dijalankan di banyak sistem operasi
(Windows, Linux, Mac, dll) yang berguna untuk melayani dan memfungsikan situs web.
Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigurasi yang
memungkinkan penanganan server menjadi mudah.
HTTP adalah sebuah protokol meminta/menjawab antara client dan server. Sebuah client
HTTP seperti web browser, biasanya memulai permintaan dengan membuat hubungan
TCP/IP ke port tertentu di tuan rumah yang jauh (biasanya port 80). Sebuah server HTTP
yang mendengarkan di port tersebut menunggu client mengirim kode permintaan (request).
PHP adalah kependekan dari PHP: Hypertext Preprocessor, bahasa interpreter yang
mempunyai kemiripan dengan C dan Perl. PHP adalah bahasa pemrograman script yang
paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis,
walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain. Bahasa
pemrograman PHP tidak melakukan sebuah kompilasi dalam penggunaanya. PHP dapat
konfigurasi yang relatif mudah dan telah digunakan diberbagai mesin dan system operasi
(Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console
serta juga dapat menjalankan perintah-perintah system. Web Server yang mendukung PHP
dapat ditemukan dimana-mana dari mulai Apache, IIS, Lighttpd, Nginx, dll.
MySQL adalah suatu perangkat lunak database relasi (Relational Database Management
System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya.
MySQL disebut produk database open source terpopuler di dunia. Berdasarkan riset
dinyatakan bahwa di platform Web, dan baik untuk kategori open source maupun umum,
2

MySQL adalah database yang paling banyak dipakai. MySQL memiliki overhead koneksi
yang rendah dengan kecepatan melakukan transaksi bahasa SQL yang cukup tinggi
sehingga sangat ideal untuk keperluan webserver.
SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk
mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa
standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua
server basis data mendukung bahasa ini untuk melakukan manajemen datanya. Secara
umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data
Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem
manajemen basis data.
URL (Uniform Resource Locator) adalah rangkaian karakter menurut suatu format standar
tertentu, yang digunakan untuk menunjukkan alamat suatu sumber, seperti dokumen dan
gambar
XAMPP merupakan paket yang terdiri dari Apache, MYSQL, PHP, dan Perl. XAMPP
dikembangkan oleh Apache Friends yang merupakan sebuah website nonkomersial yang
bertujuan untuk mempromosikan web server Apache. XAMPP sangat mudah untuk
diinstalasi

dan

untuk

mendapatkannya

cukup

mendownload

pada

situs

http://www.apachefriends.org/en/index.html

Praktek 1: Instalasi XAMPP (Apache, MySQL, PHP, Perl)


1. Siapkan program installer XAMPP atau XAMP
2. Lakukan instalasi pada direktori yang mudah diakses, misalnya C:\xamp
3. Lakukan pemeriksaan apakah komponen Apache, MySQL dan PHP telah bekerja dengan
benar, menggunakan program XAMP Control panel seperti berikut:

4. Periksa apakah Webserver Apache telah bekerja dengan benar, jika belum maka setting
parameter pada httpd.conf seperti berikut:
ServerRoot "C:/xampp/apache"
Listen 80
ServerAdmin postmaster@localhost
ServerName localhost:80
DocumentRoot "C:/xampp/apache/htdocs"
<Directory "C:/xampp/apache/htdocs">
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

5. Jika sudah bekerja maka dapat dipanggil dengan http://localhost dan akan tampil halaman
web sebagai berikut:

6. Selanjutnya buatlah database mhs kemudian tabel nilai dengan menggunakan program
phpmyadmin dengan struktur tabel seperti terlihat pada gambar berikut:

Praktek 2: Koneksi J2ME dengan PHP


1. Dengan menggunakan program editor sembaran, misalnya notepad, maka buatlah program
Server dengan bahasa PHP berikut ini, misalnya beri nama halo.php, dan letakkan pada
mode direktory webserver (htdocs).
<?php
echo $response = "Praktek Client & Server\n";
if (isset($_GET)){
switch($_GET["type"]){
case 1: $response = "Install Apache"; break;
case 2: $response = "Administrasi MySQL "; break;
case 3: $response = "Belajar PHP"; break;
default: $response= "Hore Aku Bisa\n" ;break;
}
}
echo $response;
?>

2. Kemudian buatlah program Client dengan J2ME seperti berikut ini:


import
import
import
import

javax.microedition.midlet.*;
javax.microedition.lcdui.*;
java.io.*;
javax.microedition.io.*;

public class Midletphp extends MIDlet implements CommandListener {


private Display display;
private Form form;
private Command cQuit, cOk;
private String url;
private String part = "";
private TextField f;
HttpConnection http;
InputStream in;
OutputStream out;
int rc;
public void startApp() {
display = Display.getDisplay(this);
form = new Form("Client");
cQuit = new Command("Quit", Command.EXIT, 1);
cOk = new Command("OK", Command.OK, 1);
f = new TextField("Query", "", 1, TextField.NUMERIC);
url = "http://localhost/halo.php?type=";
form.addCommand(cQuit);
form.addCommand(cOk);
form.setCommandListener(this);
form.append(f);
display.setCurrent(form);
}
public void processGet() throws Exception {
http = (HttpConnection) Connector.open(url+f.getString());
http.setRequestMethod(HttpConnection.GET);
in = http.openDataInputStream();
out = http.openDataOutputStream();
rc = http.getResponseCode();
if (rc != HttpConnection.HTTP_OK) {
throw new IOException("Response HTTP : " + rc);

}
int ch;
StringBuffer buff = new StringBuffer();
while ((ch = in.read()) != -1) {
buff.append((char) ch);
}
form.append(new StringItem("Response dari Webserver :\n",
buff.toString()));
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
if (http != null) {
http.close();
}
}
public void commandAction(Command com, Displayable d) {
if (com == cQuit) {
destroyApp(true);
notifyDestroyed();
} else if (com == cOk) {
part = f.getString().trim();
try {
processGet();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}

Praktek 3: Koneksi dengan database MySQL

Menyimpan Data

1. Dengan menggunakan program editor sembaran, misalnya notepad, maka buatlah program
Server dengan bahasa PHP berikut ini, misalnya beri nama mengisi.php, dan letakkan pada
mode direktory webserver (htdocs).
<?php
$vnama=$_GET["nama"];
$vuts=$_GET["uts"];
$vuas=$_GET["uas"];
$conn=mysql_connect("localhost","root","") or die ("koneksi gagal");
mysql_select_db("mhs",$conn);
$sqlstr="insert into nilai values ('$vnama','$vuts','$vuas')";
$hasil = mysql_query($sqlstr,$conn);
echo "Data sudah tersimpan\n";
echo "Nama mhs : $vnama\n";
echo "Nilai UTS : $vuts\n";
echo "Nilai UAS : $vuas";
?>

2. Kemudian buatlah program Client dengan J2ME seperti berikut ini:


6

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.io.*;
import java.util.*;
public class Midletmengisi extends MIDlet implements CommandListener {
Command exitCommand = new Command("Exit", Command.EXIT, 2);
Command nextCommand = new Command("Next", Command.OK, 2);
Display display;
Form f1, f2;
String pesan;
TextField t1, t2, t3;
private String url;
private String p1, p2, p3;
public void startApp() {
t1 = new TextField("Nama Mhs : ", "", 15, TextField.ANY);
t2 = new TextField("Nilai UTS : ", "", 15, TextField.NUMERIC);
t3 = new TextField("Nilai UAS : ", "", 15, TextField.NUMERIC);
f1 = new Form("Koneksi ke Server");
f1.append("Input ke Database\n");
f1.append(t1);
f1.append(t2);
f1.append(t3);
f1.addCommand(exitCommand);
f1.addCommand(nextCommand);
f1.setCommandListener(this);
// Set the current display to the location screen
Display.getDisplay(this).setCurrent(f1);
//display.setCurrent(f1);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
notifyDestroyed();
} else if (c == nextCommand) {
doUpload();
}
}
public void doUpload() {
f2 = new Form("Info ke Server");
pesan = "";
url = "http://127.0.0.1/mengisi.php?";
p1 = "&nama="+t1.getString();
p2 = "&uts="+t2.getString();
p3 = "&uas="+t3.getString();
HttpConnection con = null;
InputStream in = null;
StringBuffer data = new StringBuffer(); // data string
try {
con = (HttpConnection) Connector.open(url + p1 + p2 + p3);
in = con.openInputStream();
int ch;
while ((ch = in.read()) != -1) { // baca semua data
data.append((char) ch);
}
pesan = data.toString();//menampilkan data di StringBuffer
f2.append(pesan);

Display.getDisplay(this).setCurrent(f2);
//display.setCurrent(f2);
} catch (IOException e) {
}
}
}

Praktek 4. Koneksi dengan database MySQL

Menampilkan Data

1. Dengan menggunakan program editor sembaran, misalnya notepad, maka buatlah program
Server dengan bahasa PHP berikut ini, misalnya beri nama membaca.php, dan letakkan
pada mode direktory webserver (htdocs).
<?php
$vnama=$_GET["nama"];
$vuts=$_GET["uts"];
$vuas=$_GET["uas"];
$conn=mysql_connect("localhost","root","") or die ("koneksi gagal");
mysql_select_db("mhs",$conn);
$sqlstr="insert into nilai values ('$vnama','$vuts','$vuas')";
$hasil = mysql_query($sqlstr,$conn);
echo "Data sudah tersimpan\n";
echo "Nama mhs : $vnama\n";
echo "Nilai UTS : $vuts\n";
echo "Nilai UAS : $vuas";
?>

2. Kemudian buatlah program Client dengan J2ME seperti berikut ini:


import
import
import
import
import

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

public class Midletmembaca extends MIDlet implements CommandListener {


Command exitCommand = new Command("Exit", Command.EXIT, 2);
Command nextCommand = new Command("Next", Command.OK, 2);
Display display;
Form f1, f2;
String pesan;
TextField t1;
private String url;
private String p1, p2, p3;
public void startApp() {
t1 = new TextField("Nama Mhs

: ", "", 15, TextField.ANY);

f1 = new Form("Koneksi ke Server");


f1.append("Baca dari Database\n");
f1.append(t1);

f1.addCommand(exitCommand);
f1.addCommand(nextCommand);
f1.setCommandListener(this);
// Set the current display to the location screen
Display.getDisplay(this).setCurrent(f1);
//display.setCurrent(f1);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
notifyDestroyed();
} else if (c == nextCommand) {
doDownload();
}
}
public void doDownload() {
f2 = new Form("Data dari Server");
pesan = "";
url = "http://127.0.0.1/membaca.php?";
p1 = "&nama="+t1.getString();
HttpConnection con = null;
InputStream in = null;
StringBuffer data = new StringBuffer(); //untuk sekumpulan data
string
try {
con = (HttpConnection) Connector.open(url + p1);
in = con.openInputStream();
int ch;
while ((ch = in.read()) != -1) { //selama tidak -1 (akhir
file), baca semua data
data.append((char) ch);
}
pesan = data.toString();//untuk menampilkan semua data di
StringBuffer
f2.append(pesan);
Display.getDisplay(this).setCurrent(f2);
//display.setCurrent(f2);
} catch (IOException e) {
}
}
}

Soal Laporan Resmi


1. Jelaskan langkah-langkah yang harus dilakukan pada instalasi dan seting XAMPP.
2. Jelaskan perbedaan proses pemprograman pada praktek 2, 3, dan 4.
3. Buatlah analisa dan kesimpulan dari praktikum yang telah dilakukan.