100% menganggap dokumen ini bermanfaat (1 suara)
105 tayangan

Client Server Android

Ringkasan dokumen tersebut adalah sebagai berikut: 1. Dokumen tersebut membahas tentang membuat program client-server Android dengan menggunakan web server. 2. Langkah awalnya adalah menginstall XAMPP untuk web server dan database, membuat database dan tabel, serta membuat program PHP untuk berkomunikasi antara client Android dan server. 3. Kemudian dibahas konfigurasi jaringan untuk menghubungkan client Android dengan server menggunakan wireless router.

Diunggah oleh

Mutiara Nugrahani
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
105 tayangan

Client Server Android

Ringkasan dokumen tersebut adalah sebagai berikut: 1. Dokumen tersebut membahas tentang membuat program client-server Android dengan menggunakan web server. 2. Langkah awalnya adalah menginstall XAMPP untuk web server dan database, membuat database dan tabel, serta membuat program PHP untuk berkomunikasi antara client Android dan server. 3. Kemudian dibahas konfigurasi jaringan untuk menghubungkan client Android dengan server menggunakan wireless router.

Diunggah oleh

Mutiara Nugrahani
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 34

ANDROID CLIENT-SERVER

USING JSON
Project 1: Membuat Program Client Server Android Dengan Web Server

Output :

Gambar 1.1 Output Program Android Client - Server

206

Langkah pertama dalam project ini adalah membuat Web Server menggunakan Apache
sebagai Server, MySQL untuk database dan PHP untuk bahasa script Web Server.
Pertama install dahulu XAMPP untuk Server dan Database (Apache , MySQL). Klik
ganda pada installer XAMPP yang telah didownload maka akan muncul window
setup XAMPP seperti pada gambar 6.2.

Gambar 1.2 Window Setup Wizard XAMPP


Kemudian klik Next, Next dan Finish untuk meninstall XAMPP, setelah instalasi
selesai jalankan XAMPP maka akan muncul menu control panel XAMPP. Aktifkan
service Apache dan MySQL dengan tombol Start sehingga muncul status Running
untuk service Apache dan MySQL seperti pada gambar 6.3.

Gambar 1.3 Menu Control Panel XAMPP

207

Untuk mencoba apakah Web Server telah terinstall dan dapat berfungsi, buka Web
Browser (Mozilla Firefox / Google Chrome / Opera / Internet Explorer) dan pada link
address ketik localhost atau bisa juga 127.0.0.1 maka akan muncul menu splash
XAMPP untuk memilih bahasa yang digunakan.

Gambar 1.4 Tampilan Awal XAMPP


Setelah memilih bahasa yang akan digunakan, maka akan muncul dengan jendela kerja
XAMPP seperti pada gambar 1.5.

Gambar 1.5 Tampilan Jendela Kerja XAMPP


Langkah selanjutnya adalah membuat Database yang akan digunakan sebagai tempat
penyimpanan data. Pada tampilan jendela kerja XAMPP, klik pada pilihan Tools >
phpMyAdmin, maka akan tampil jendela phpMyAdmin. phpMyAdmin berfungsi
untuk membuat, mengatur dan memodifikasi database yang digunakan pada Web
Server.

Gambar 1.6 Jendela Kerja phpMyAdmin


Untuk membuat database baru, klik pilihan tab Databases dan isikan pada kolom
nama database dengan dbserver, lalu klik pada button Create seperti pada gambar 6.7.

Gambar 1.7 Membuat Database Baru

Gambar 1.8 Pesan Database Berhasil Dibuat

Setelah itu, klik pada database yang baru dibuat yaitu dbserver pada sisi kiri jendela
kerja phpMyAdmin. Setelah itu akan muncul menu pembuatan table baru pada
database, ini dengan nama datachat untuk nama table dan isi angka 3 pada number of
columns seperti pada gambar 1.9.

Gambar 1.9 Membuat Table Baru Pada Database


Setelah mengisi nama dan columns, klik button go untuk melanjutkan mengisi atribut
table. Isi atribut table seperti pada gambar 1.10.

Gambar 1.10 Atribut Table datachat

10

Setelah itu simpan table yang dibuat dengan mengklik button Save pada bagian
bawah seperti gambar 1.11.

Gambar 1.11 Menyimpan Table


Penting : Setelah table dibuat, maka isikan beberapa data minimal 6 record
dengan beberapa kalimat pada kolom pesan. Untuk mengisi data record dengan
menggunakan menu tab Insert.
Langkah berikutnya adalah membuat program pada Web Server yang berfungsi untuk
menerima data komunikasi pesan yang dikirimkan dari device android dengan
menggunakan bahasa script PHP. Buatlah sebuah folder dengan nama serverchat
di lokasi C:\xampp\htdocs lalu buatlah file baru dengan nama koneksi.php
dan isikan dengan script PHP dibawah ini :

koneksi.php
<?php
$host = "localhost";
$user = "root";
$password = "";
$database = "dbserver";
mysql_connect($host,$user,$password);
mysql_select_db($database);

?>

Script PHP diatas berfungsi untuk menghubungkan database dbserver dan webserver
dengan program dari script PHP. Selanjutnya buatlah file baru dengan nama chatserver.php dan isikan dengan script PHP dibawah ini :

chat-server.php
<?php
include("koneksi.php");
$q = mysql_query('SELECT * FROM datachat');
$v = '{"chat" : [';
while($r=mysql_fetch_array($q)) {
$ob = array('"','<br>','</br>');
if(strlen($v)<15) {

$v .= '{"id" : "'.$r['id'].'", "nama" : "'.str_replace($ob,'


',strip_tags($r["nama"])).'", "pesan" : "'.str_replace($ob,' ',
strip_tags($r["pesan"])).'"}';
}
else {
$v .= ',{"id" : "'.$r['id'].'", "nama" : "'.str_replace($ob,'
',strip_tags($r["nama"])).'", "pesan" : "'.str_replace($ob,' ',
strip_tags($r["pesan"])).'"}';
}
}
$v

.=

']}'; echo
$v; ?>
Script PHP diatas berfungsi untuk mengirimkan data yang ada pada database dbserver
ke client yang terhubung dengan WebServer. Selanjutnya buatlah file baru dengan
nama chat-pesan.php dan isikan dengan script PHP dibawah ini :

212

chat-pesan.php
<?php
$link = mysql_connect('localhost', 'root', '') or die('Cannot connect to the
DB'); mysql_select_db('dbserver', $link) or die('Cannot select the DB');
$query = "INSERT INTO datachat(nama,pesan) VALUES ('$_POST
[nama]','$_POST[pesan]')";
$result = mysql_query($query, $link) or die('Error query: '.
$query); ?>
Script PHP diatas berfungsi untuk menginput data pesan yang diterima dari client
android ke database dbserver.
Langkah selanjutnya adalah mengkonfigurasi Wireless Router untuk menghubungkan
device Android dengan Server dengan menggunakan topologi seperti pada gambar
1.12 dibawah.

Gambar 1.12 Topologi Client Server Android

213

Hubungkan PC Server dengan perangkat Wireless Router menggunakan kabel UTP


model cross, untuk PC Server gunakan konfigurasi static IP Address seperti dibawah
ini :
IP Address

: 192.168.2.2

Subnet Mask

: 255.255.255.0

Default Gateway

: 192.168.2.1

Setelah selesai mengkonfigurasi IP Address PC Server, ketik alamat IP Address


Wireless Router yaitu 192.168.2.1 pada Web Browser PC Server maka akan muncul
prompt window untuk user dan password isikan untuk user : admin dan password :
admin. Setelah berhasil login, maka akan diarahkan langsung ke menu konfigurasi
Wireless Router. Langkah pertama, klik tab Wireless dan pada tab Wireless Settings,
isikan konfigurasi seperti pada gambar 1.13.

Gambar 1.13 Konfigurasi Wireless Settings


Setelah selesai mengisi konfigurasi sesuai dengan gambar 1.13, klik button Save,
kemudian Wireless Router akan meminta untuk mereboot, abaikan saja lanjutkan
dengan mengklik tab Wireless Security dan isikan konfigurasi seperti pada gambar
1.14.

Gambar 1.14 Konfigurasi Wireless Security


Setelah selesai mengisi konfigurasi Wireless Security klik button Save, kemudian
Wireless Router akan meminta untuk mereboot, abaikan saja lanjutkan dengan
mengklik tab menu DHCP dan pilih DHCP Settings lalu isikan konfigurasi seperti
pada gambar 1.15.

Gambar 1.16 Konfigurasi DHCP Settings


Setelah selesai mengisi konfigurasi Wireless Security klik button Save, kemudian
Wireless Router akan meminta untuk mereboot, lakukan Reboot pada Wireless Router.

Gambar 1.16 Reboot Wireless Router Untuk Menerapkan Konfigurasi


Langkah selanjutnya adalah membuat program Client Android. Buka software Eclipse
ADT Bundle, pilih File >New >Android Application Project atau New >
Project kemudian pilih Android Project > Next.

Gambar 1.17 Membuat Project Android Baru


Isikan semua field yang ada pada jendela New Android Project,

Application Name : ClientProject

Project Name : ClientProject

Package Name : com.acsl.clientproject

Pada minimum requirement SDK pilih Android 2.2 (Froyo)

Pada Target SDK dan Compile With pilih Android 4.2 (Jelly Bean)

Theme : none

Kemudian klik Next hingga window Blank Activity, isikan nama activity dengan
MainActivity dan nama layout dengan activity_main.

Setelah selesai klik Finish.

8. Buat folder dengan nama drawable pada res dan copy semua gambar yang dibutuhkan
ke dalam folder tersebut
9.Setelah itu akan terbentuk file MainActivity.java didalam folder src dan juga terdapat
activity_main.xml didalam folder res/layout. Selanjutnya adalah membuat layout
untuk program, buka folder res/layout dan klik ganda pada file activity_main.xml,
dan ganti dengan kode XML activity_main.xml pada komputer server.

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent
" android:layout_height="360dp"
/>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@android:id/list"
>
<Button
android:id="@+id/cha
t"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="tr
ue"
android:layout_alignParentLeft="true"
android:text="Chat" />
<Button
android:id="@+id/refres
h"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="tr
ue"
android:layout_centerHorizontal="true
" android:text="Refresh" />
<Button
android:id="@+id/kelua
r"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="tr
ue"
android:layout_alignParentRight="true
" android:text="Keluar" />

</RelativeLayout
> </RelativeLayout>

Buatlah dua buah file XML baru dengan nama baca_activity.xml dan kirim_activity.xml.
Kemudian, copy dan paste isi layout add.xml dan list_item.xml dengan kode XML
yang ada pada komputer server.

baca_activity.xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/ti
ga"> <ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="match_paren
t"
android:layout_height="match_pare
nt" android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_conten
t"
android:layout_alignParentLeft="true
"
android:layout_alignParentTop="true
" android:text="Cippher Text"

android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/txt_cippher"
android:layout_width="fill_parent
" android:layout_height="86dp"
android:ems="10"

android:inputType="textMultiLine" />
<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent
"
android:layout_height="wrap_conte
nt" android:text="Plaint Text"

android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/txt_plain
"
android:layout_width="fill_parent"
android:layout_height="99dp"

android:ems="10"
android:inputType="textMultiLine" /
>

<Button
android:id="@+id/btn_subm
it"
android:layout_width="fill_parent"
android:layout_height="wrap_conte
nt" android:layout_x="191dp"
android:layout_y="386dp"
android:text="Submit" />
<Button
android:id="@+id/btn_refres
h"
android:layout_width="fill_parent"
android:layout_height="wrap_conte
nt" android:text="Refresh" />
</LinearLayout
> </ScrollView>
</LinearLayout>

baca_activity.xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/ti
ga"> <ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="match_paren
t"
android:layout_height="match_pare
nt" android:orientation="vertical" >

<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent
"
android:layout_height="wrap_conte
nt" android:text="Kirim Pesan"

android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/txt_sen
d"
android:layout_width="fill_parent"
android:layout_height="99dp"
android:ems="10"
android:inputType="textMultiLine" /
>

<Button

219

android:id="@+id/kirim"
android:layout_width="fill_parent"
android:layout_height="wrap_conte
nt" android:text="Kirim" />
</LinearLayout
> </ScrollView>
</LinearLayout>

Langkah selanjutnya membuat program untuk menjadi class parser JSON. Buat file
Java baru dengan nama JSONParser.java. Buka file java JSONParser.java kemudian
ganti dengan kode pada komputer server.

JSONParser.java
package com.acsl.clientproject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import
java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;
import org.apache.http.HttpEntity;
import
org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;

import org.json.JSONObject;
import android.util.Log;
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

public JSONObject getJSONFromUrl(String


url) { try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);

HttpResponse httpResponse = httpClient.execute(httpPost);


HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException
e) { e.printStackTrace();

220

} catch (ClientProtocolException e)
{ e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

try {
BufferedReader reader = new BufferedReader(new
InputStreamReader( is, "UTF-8"), 8);
StringBuilder sb = new
StringBuilder(); String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json =
sb.toString(); } catch
(Exception e) {

Log.e("Buffer Error", "Error converting result " + e.toString());


}
try {
jObj = new
JSONObject(json); } catch
(JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}

return jObj;

Langkah selanjutnya membuat program untuk menjadi class parser cryptography. Buat
file Java baru dengan nama EncryptDecrypt.java. Buka file java
EncryptDecrypt.java kemudian ganti dengan kode pada komputer server.

EncryptDecrypt.java
package
com.acsl.clientproject; import
java.util.Arrays;
public class EncryptDecrypt
{ static String
SharedKEY =
"Q|W|E|R|T|Y|U|I|I|O|P|A|S|D|F|G|H|J|K|L|Z|X|C|V|B|N|M|b|n|m|!|
|@|#|5|q|w|e|r|t|y|u|i|o|p|a|s|d|f|g|h|j|k|l|z|x|c|v|4|3|2|1|6|7|,|.|0|)|(|*|?|&|^|%| 8|9|$";

static String hurufIndo = "M|N|B|V|C|X|Z|L|K|J|H|G|D|S|A|P|O|I|U|T|R|E|W|Q|a|b|


c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r| s|t|u|v|w|x|y|z| |.|#|@|1|2|3|4|5|6|7|8|9|0|$|%|^|&|*|
(|)|?|,|!";
static String[] SHAREDKEYARR =
SharedKEY.split("|"); static String[] HURUFINDOARR
= hurufIndo.split("|");
public static String encrypt(String kataAsli)
{ String[] tempcoy = kataAsli.split("");
//ini deklarasi string buat output decrypt
String tempEnc = "";

221

for(int i = 0;i < kataAsli.length();i++)


{ tempEnc = tempEnc +

HURUFINDOARR[Arrays.asList(SHAREDKEYARR).indexOf(tempcoy[i])];
}
String str_enc = merubahAscii(tempEnc);
return str_enc;

public static String decrpt(String kataPalsu)


{ //ini untuk ngedecrypt
String str_dec =
merubahChar(kataPalsu); String[]
tempcoy2 = str_dec.split(""); String
tempDec = "";

for(int i = 0;i < str_dec.length();i++)


{ tempDec = tempDec +
SHAREDKEYARR[Arrays.asList(HURUFINDOARR).indexOf(tempcoy2[i])];
}
return tempDec;
}

public static String merubahAscii(String coba)


{ char[] stringToCharArray =
coba.toCharArray();

String EncOU = "";


for (char output : stringToCharArray){
EncOU = EncOU + memaksaJadiTiga(CharToASCII(output) );
}
return EncOU;

public static String merubahChar(String


EncOU2){ String kataTambah ="";
for(int i = 0 ; i < EncOU2.length(); i+=3)
{ kataTambah+=ASCIIToChar(Integer.parseInt(EncOU2.substring(i,i
+3)));

}
return kataTambah;
}

public static String memaksaJadiTiga(int


k){ String ou = String.valueOf(k);
if(ou.length() == 1){
ou = "00" + ou;
}
else if(ou.length() == 2)
{ ou = "0" + ou;
}
return ou;
}

public static int CharToASCII(final char character)


{ return (int)character;

222

public static char ASCIIToChar(final int ascii)


{ return (char)ascii;
}
}

Selanjutnya membuat program untuk koneksi ke Server, buka folder src kemudian klik dua
kali pada MainActivity.java, copy dan paste source code AksesMain.java pada komputer
server dan isikan blok program yang kosong.

MainActivity.java
package com.acsl.clientproject;
import android.os.Bundle;
import android.app.Activity;
import
android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle
savedInstanceState)
{ super.onCreate(savedInstanceState);
//code 1 setContentView(R.layout.
R.layout.activity_main);

//code 2
Button b_baca = (Button)findViewById(R.id. R.id.btn_baca);
Button b_kirim = (Button)findViewById(R.id. R.id.btn_kirim);
//code 3
b_baca.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this,
BacaActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
; startActivity(i);

}
});
//code 4
b_kirim.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent ij = new Intent(MainActivity.this,
KirimActivity.class);
ij.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(ij);

});

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.main,
menu); return true;
}
}

Petunjuk pengisian Code 1 MainActivity.java:


Pada blok kode 1 isi dengan nama layout yang digunakan
Petunjuk pengisian Code 2 MainActivity.java:
Pada blok kode 2 isi dengan nama id sesuai yang ada di xml layout.
Petunjuk pengisian Code 3 & 4 MainActivity.java :

Pada kode 3 isi dengan nama masing2 aktifiti yang akan berpindah

Setelah program pada KirimActivity.java selesai, maka lanjutkan dengan membuat file
Java baru dengan nama KirimActivity.java. Buka file java AddActivity.java
kemudian ganti dengan kode pada komputer server.

KirimActivity.java
package com.acsl.clientproject;

import android.app.Activity;
import
android.app.AlertDialog;
import
android.content.Context;
import
android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import
android.widget.EditText;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;

224

import
org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import
org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import
org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;

public class KirimActivity extends Activity {


Button Kirim;
EditText Nama;
EditText Pesan;
EncryptDecrypt ende;
final Context context = this;
public void onCreate(Bundle
savedInstanceState)
{ super.onCreate(savedInstanceState);
//code 1
setContentView(R.layout.kiri
m_activity); //code 2
Pesan
=
(EditText)
txt_send);
Kirim
findViewById(R.id.kirim);
EncryptDecrypt();

findViewById(R.id.
=
(Button)
ende
=
new

Kirim.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0)
{ new Thread(new Runnable()
{
public void run() {
int TIMEOUT_MILLISEC = 30000;
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpPa
rams,

TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams,
TIMEOUT_MILLISEC);

HttpClient client = new


DefaultHttpClient(httpParams); List<NameValuePair>
nameValuePairs = new

ArrayList<NameValuePair>(2);

nameValuePairs.add(new BasicNameValuePair("nama",
"")); nameValuePairs.add(new
BasicNameValuePair("pesan",

ende.encrypt(Pesan.getText().toString() + " ")));


//code 3
try {
HttpPost postnya = new
HttpPost("http:// 192.168.8.122/server_chat/chatpesan.php");

postnya.setEntity(new
UrlEncodedFormEntity(nameValuePairs));
client.execute(postnya);
}

catch(Exception e)
{ e.printStackTrac
e();
}

225

}
}).start();

//coba
AlertDialog.Builder alertDialogBuilder =
new AlertDialog.Builder(context);
alertDialogBuilder.setTitle("Notifikasi");
alertDialogBuilder
.setMessage("Pesan Telah Dikirim Ke Server!")
.setCancelable(false)
.setPositiveButton("OK",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int id) {
Intent back = new
Intent(com.acsl.clientproject.KirimActivity.this,
com.acsl.clientproject.MainActivity.class);
back.addFlags(Intent.FLAG_ACTIVITY_NO_HISTO
RY); startActivity(back);

}
});

AlertDialog alertDialog =
alertDialogBuilder.create(); alertDialog.show();
}
});
}

Petunjuk pengisian Code 1 KirimActivity.java :


Pada blok Code 1 adalah terdapat setContentView dimana digunakan untuk
mendefinisikan tampilan layout (XML) yang digunakan. Tampilan yang
digunakan adalah kirim_activity.xml.
Petunjuk pengisian Code 2 KirimActivity.java :
Pada bagian inisiasi objek, yaitu objek EditText dan juga button. Sesuaikan nama
dari dengan yang ada pada bagian deklarasi objek dan sesuiakan id dengan
tampilan yang digunakan.
Petunjuk pengisian Code 3 KirimActivity.java :

226

Inisialisasikan ip address komputer server.

Setelah program pada BacaActivity.java selesai, maka lanjutkan dengan membuat file
Java baru dengan nama BacaActivity.java. Buka file java AddActivity.java
kemudian ganti dengan kode pada komputer server.

BacaActivity.java
package com.ascl.clientproject;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.os.Bundle;
import
android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import
android.content.DialogInterface;
import android.content.Intent;
import
android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.view.View;
import android.widget.Button;
import
android.widget.EditText;
import android.widget.ListAdapter;
import
android.widget.SimpleAdapter;
import org.json.JSONArray;
import
org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;

public class BacaActivity extends Activity {


//isi dengan ip address dari server komputer
private static String server = "http://
192.168.8.122/server_chat/chat-server.php";
//isi dengan string id nama dan pesan (hanya pesan yang
digunakan id dan nama digunakan untuk pengembangan)
private static final String ID = "id";
private static final String NAMA =
"nama"; private static final String
PESAN = "pesan"; EncryptDecrypt ende;
JSONArray chat = null;
EditText ed_cippher;
EditText ed_plain;
@Override
protected void onCreate(Bundle
savedInstanceState)
{ super.onCreate(savedInstanceState);

//code 1
setContentView(R.layout.
baca_activity);

227

//isi dengan class button


Button b_submit = (Button)findViewById(R.id.btn_submit);
Button b_refresh =
(Button)findViewById(R.id.btn_refresh); //isi dengan class
penurunan edittext
ed_plain = (EditText)findViewById(R.id.txt_plain);
ed_cippher =
(EditText)findViewById(R.id.txt_cippher);
//untuk mengetahui koneksi
tersambung boolean jaringan =
isNetworkOnline();
if(jaringan == false)
{ Context context =
this;

AlertDialog.Builder alertDialogBuilder =
new AlertDialog.Builder(context);
alertDialogBuilder.setTitle("Notifikasi : Koneksi Error");
alertDialogBuilder
.setMessage("Periksa Konektifitas Jaringan Device!")
.setCancelable(false)
.setPositiveButton("OK",new
DialogInterface.OnClickListener() { public void
onClick(DialogInterface dialog,int id) {
Intent close = new
Intent(Intent.ACTION_MAIN);
close.addCategory(Intent.CATEGORY_HOME);
close.setFlags(Intent.FLAG_ACTIVITY_NEW_TAS
K); startActivity(close);

}
});
}

//jaringan true
if(true){
new Thread(new
Runnable() { public void
run() {
//code 2
//isi dengan penurunan class JsonParser
JSONParser jParser = new JSONParser();
//isi dengan variable turunan json
paser
JSONObject
json
=
jParser.getJSONFromUrl(server); try {
chat = json.getJSONArray("chat");
for(int i = 0; i < chat.length(); i++){
JSONObject objjson =
chat.getJSONObject(i); String id =
objjson.getString(ID);
String nama = objjson.getString(NAMA);
String pesan =
objjson.getString(PESAN);

//pesan id nama pesan tinggal print di


ed_cippher.setText(pesan);
}}
catch (JSONException e)
{ e.printStackTrace();
}

catch (NullPointerException e)
{ e.printStackTrace(); }

catch (RuntimeException e)
{ e.printStackTrace();

228

}
}
}).start();
//code 3
//isi dengan class yang digunakan
untuk ende = new EncryptDecrypt ();
b_submit.setOnClickListener(new
View.OnClickListener()

@Override
public void onClick(View v) {
// TODO Auto-generated method
stub //ini untuk translate pesan
ed_plain.setText(ende.decrpt(ed_cippher.getText().toString()));
}
});
b_refresh.setOnClickListener(new View.OnClickListener()

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent refresh = new
Intent(BacaActivity.this, BacaActivity.class);
refresh.addFlags(Intent.FLAG_ACTIVITY_NO_HISTO
RY); startActivity(refresh);

}
});
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.main,
menu); return true;
}

public boolean isNetworkOnline()


{ boolean status = false;
ConnectivityManager cm =
(ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = cm.getNetworkInfo(0);


if
(netInfo.getState()==NetworkInfo.State.CO
NNECTED) { status = true;
}else
status = false;

229

netInfo = cm.getNetworkInfo(1);
if(netInfo.getState()==NetworkInfo.State.CONNE
CTED){
status =
true; }else
status = false;
return status;

}
}

Petunjuk pengisian Code 1 BacaActivity.java :


Pada blok Code 1 adalah terdapat setContentView dimana digunakan untuk
mendefinisikan tampilan layout (XML) yang digunakan. Tampilan yang
digunakan adalah kirim_activity.xml.
Pada bagian inisiasi objek, yaitu objek EditText dan juga button. Sesuaikan nama
dari dengan yang ada pada bagian deklarasi objek dan sesuiakan id dengan
tampilan yang digunakan.
Petunjuk pengisian Code 2 BacaActivity.java :
Pada bagian inisiasi objek, yaitu objek JsonParser untuk selanjutnya sesuaikan
nama dari variable yang telah mendeklarasikan objek JsonParser.
Petunjuk pengisian Code 3 BacaActivity.java :
Inisialisasikan dengan class Encryp decrypt yang sebelumnya telah dibuat.
Selanjutnya adalah mendefinisikan Activity dan menambahkan Permission pada
AndroidManifest.xml. Berikut adalah kode yang ditambahkan untuk mendefinisikan
Class pada file AndroidManifest.xml :
<activity
<activity
<activity
<activity

android:name=".KirimActivity"></activity>
android:name=".BacaActivity"></activity>
android:name=".JSONParser"></activity>
android:name=".EncryptDecrypt"></activity>

Berikut adalah kode yang ditambahkan untuk mendefinisikan Permission pada file
AndroidManifest.xml :
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Tag kode Activity harus ditambahkan dibawah tag penutup activity default </activity>.

230

Untuk

Tag

kode

</application>.

Permission

ditambahkan

dibawah

tag penutup

application

Sehingga hasil akhirnya akan menjadi seperti dibawah ini :

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.acsl.clientproject"
android:versionCode="1"
android:versionName="1.0
">
<uses-sdk
android:minSdkVersion=
"8"

android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launch
er"
android:label="@string/app_name"
android:theme="@style/AppTheme"
> <activity
android:name="com.acsl.clientproject.MainActivit
y" android:label="@string/app_name" > <intentfilter>

<action android:name="android.intent.action.MAIN" />


<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".KirimActivity"></activity>
<activity android:name=".BacaActivity"></activity>
<activity android:name=".JSONParser"></activity>
<activity
android:name=".EncryptDecrypt"></activity>

</application>
<uses-permission
android:name="android.permission.INTERNET" /> <usespermission
android:name="android.permission.ACCESS_NETWORK_S
TATE"/> </manifest>

Setelah menambahkan tag activity dan permission untuk mendefinisikan Class tambahan
tersebut maka Running Project untuk melihat output dengan cara klik kanan pada
Project > Run As > Android Project atau dengan mengklik simbol
Eclipse.

pada toolbar

Anda mungkin juga menyukai