You are on page 1of 30

Ir. Hendra, MT.

(0119067305) Dosen STMIK IBBI

http://hsoewarno.blogspot.com

androidCloud
By: Hendra Soewarno(0119067305)

1. Instalasi WAMPServer
2. Persiapan database MySQL pada WAMPServer

CREATE DATABASE androidcloud;


--
-- Table structure for table `siswa`
--

CREATE TABLE IF NOT EXISTS `siswa` (


`nim` varchar(12) NOT NULL,
`nama` varchar(50) NOT NULL,
`nilai` varchar(10) NOT NULL,
PRIMARY KEY (`nim`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

3. Persiapan Framework

4. Persiapan File PHP

Pemrograman Piranti Bergerak 1


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

5. Ganti http://172.21.5.240 menjadi IP address WampServer anda.

Pemrograman Piranti Bergerak 2


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

library.php

Buka file library.php, dan pastikan koneksi ke database “androidCloud”, user dan password adalah
sudah benar.

<?php
/*
Jangan hapus/ubah bagian ini, untuk penghargaan kepada hak cipta

Nama File: library.php


Fungsi: Berisi berbagai fungsi bantu ciptaan
Dibuat oleh: Hendra, ST., MT. (0119067305)
Medan, 13 September 2014
*/

function openConnection() {
try {
$con = new PDO('mysql:host=localhost;port=3306;dbname=androidCloud', 'root', '');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
throw new Exception("0: " . $e->getMessage());
}
return $con;
}

//Select
function querySingleValue($con, $sSql, $values) {
//return single Value
if (!startsWith(strtolower($sSql),"select"))
throw new Exception("0: Invalid Select statement!");

try {
if (!($stmt = $con->prepare($sSql))) {
throw new Exception("0: (" . $con->errno . ") " . $con->error);
} else {
$paramValues = $values;
if (strpos($sSql, "?")===false) {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam(":" . $paramCount, $paramValues[$i]);
}
} else {

Pemrograman Piranti Bergerak 3


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

for ($i=0; $i<sizeof($values);$i++) {


$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam($paramCount, $paramValues[$i]);
}
}

$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
return $row[0];
} else {
return null;
}
}
} catch (PDOException $e) {
throw new Exception("0: " . $e->getMessage());
}
}

function queryArrayValue($con, $sSql, $values) {


//return array values
if (!startsWith(strtolower($sSql),"select"))
throw new Exception("0: Invalid Select statement!");

try {
if (!($stmt = $con->prepare($sSql))) {
throw new Exception("0: (" . $con->errno . ") " . $con->error);
} else {
$paramValues = $values;
if (strpos($sSql, "?")===false) {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam(":" . $paramCount, $paramValues[$i]);
}
} else {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam($paramCount, $paramValues[$i]);
}
}
$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
return $row;

Pemrograman Piranti Bergerak 4


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

} else {
return null;
}
}
} catch (PDOException $e) {
throw new Exception("0: " . $e->getMessage());
}
}

//CRUD
function createRow($con, $sSql, $values) {
//return row Affected
if (!startsWith(strtolower($sSql),"insert"))
throw new Exception("0: Invalid Insert statement!");

try {
if (!($stmt = $con->prepare($sSql))) {
throw new Exception("0: (" . $con->errno . ") " . $con->error);
} else {
$paramValues = $values;
if (strpos($sSql, "?")===false) {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam(":" . $paramCount, $paramValues[$i]);
}
} else {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam($paramCount, $paramValues[$i]);
}
}
$stmt->execute();
return $stmt->rowCount();
}
} catch (PDOException $e) {
throw new Exception("0: " . $e->getMessage());
}
}

function UpdateRow($con, $sSql, $values) {


//return row Affected
if (!startsWith(strtolower($sSql),"update"))
throw new Exception("0: Invalid Update statement!");

Pemrograman Piranti Bergerak 5


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

try {
if (!($stmt = $con->prepare($sSql))) {
throw new Exception("0: (" . $con->errno . ") " . $con->error);
} else {
$paramValues = $values;
if (strpos($sSql, "?")===false) {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam(":" . $paramCount, $paramValues[$i]);
}
} else {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam($paramCount, $paramValues[$i]);
}
}
$stmt->execute();
return $stmt->rowCount();
}
} catch (PDOException $e) {
throw new Exception("0: " . $e->getMessage());
}
}

function deleteRow($con, $sSql, $values) {


//return row Affected
if (!startsWith(strtolower($sSql),"delete"))
throw new Exception("0: Invalid Delete statement!");

try {
if (!($stmt = $con->prepare($sSql))) {
throw new Exception("0: (" . $con->errno . ") " . $con->error);
} else {
$paramValues = $values;
if (strpos($sSql, "?")===false) {
for ($i=0; $i<sizeof($values);$i++) {
$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam(":" . $paramCount, $paramValues[$i]);
}
} else {
for ($i=0; $i<sizeof($values);$i++) {

Pemrograman Piranti Bergerak 6


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

$paramCount = $i+1;
$paramValues[$i] = $values[$i];
$stmt->bindParam($paramCount, $paramValues[$i]);
}
}
$stmt->execute();
return $stmt->rowCount();
}
} catch (PDOException $e) {
throw new Exception("0: " . $e->getMessage());
}
}

function startsWith($haystack, $needle)


{
return $needle === "" || strpos($haystack, $needle) === 0;
}

function endsWith($haystack, $needle)


{
return $needle === "" || substr($haystack, -strlen($needle)) === $needle;
}

//unit test
/*
$con = openConnection();
if ($con)
echo "OK!";
*/
?>

Pemrograman Piranti Bergerak 7


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

<?php
/*
Jangan hapus/ubah bagian ini, untuk penghargaan kepada hak cipta

Nama File: listGenerator.php


Fungsi: Berisi kerangka untuk pembuatan list
Dibuat oleh: Hendra, ST., MT. (0119067305)
Medan, 13 September 2014
*/

class ListGenerator {
public $con;
public $sSQL;
public $rowCount;

//
public function __construct($con, $sSQL) {
$this->con = $con;
$this->sSQL = $sSQL;
}

//report level filter


public function onFilter($values) {
return true;
}

public function onDetail($values, $rowCount) {


}

public function onSummary($rowCount) {


}

public function generate($paramValues) {


try {

if (!($stmt = $this->con->prepare($this->sSQL))) {
throw new Exception("0:(" . $con->errno . ") " . $con->error);
} else {
$this->rowCount = 0;
if (strpos($this->sSQL, "?")===false) {
for ($i=0; $i<sizeof($paramValues);$i++) {
$paramCount = $i+1;
$stmt->bindParam(":" . $paramCount, $paramValues[$i]);
}
} else {

Pemrograman Piranti Bergerak 8


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

for ($i=0; $i<sizeof($paramValues);$i++) {


$paramCount = $i+1;
$stmt->bindParam($paramCount, $paramValues[$i]);
}
}

$stmt->execute();

if ($values = $stmt->fetch(PDO::FETCH_NUM)) {

do {
if ($this->onFilter($values)) {
$this->rowCount++;
$this->onDetail($values, $this->rowCount);
}
} while ($values = $stmt->fetch(PDO::FETCH_NUM));
}

$this->onSummary($this->rowCount);
}
$stmt->closeCursor();
} catch (PDOException $e) {
//$this->onError($values, $row, $e->getCode());
throw new Exception($e->getMessage(),$e->getCode());
}
}
}
?>

Pemrograman Piranti Bergerak 9


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

testSaveHTTP.php

<?php
include_once "framework/library.php";

$con = openConnection();
$nim = $_GET['nim'];
$nama = $_GET['nama'];
$nilai = $_GET['nilai'];

try {
if (createRow($con, "insert into siswa (nim, nama, nilai) values (?,?,?)",array($nim, $nama, $nilai)) >
0)
echo "sukses";
} catch (Exception $e) {
echo $e->getMessage();
}
?>

Pemrograman Piranti Bergerak 10


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

testGetDataHTTP.php
<?php
include_once "framework/library.php";
include_once "framework/listGenerator.php";

class CreateJSON extends ListGenerator {


private $count=0;

public function __construct($con, $auth) {


parent::__construct($con, $auth);
$list = array();
}

public function onDetail($values, $rowCount) {


if ($this->count==0)
echo "{nim:'$values[0]',nama:'$values[1]',nilai:'$values[2]'}";
else
echo ",{nim:'$values[0]',nama:'$values[1]',nilai:'$values[2]'}";
$this->count++;
}

public function getList() {


return $this->list;
}
}

$con = openConnection();
$ssql = <<<EOD
SELECT nim, nama, nilai from siswa
EOD;
$list = new CreateJSON($con, $ssql);

Pemrograman Piranti Bergerak 11


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

echo "{data:[";
$list->generate(null);
echo "]}";
?>

Pemrograman Piranti Bergerak 12


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

Pemrograman Piranti Bergerak 13


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

main_activity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<Button
android:id="@+id/buttonCamera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="177dp"
android:onClick="tambahDataOnClick"
android:text="Tambah Data" />

<Button
android:id="@+id/buttonSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/buttonCamera"

Pemrograman Piranti Bergerak 14


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

android:layout_below="@+id/buttonCamera"
android:onClick="tampilDataOnClick"
android:text="Tampil Data" />

</RelativeLayout>

MainActivity.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {

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

public void tambahDataOnClick(View v) {


Intent intent = new Intent();
intent.setClass(this, TambahData.class);
startActivity(intent);
}

public void tampilDataOnClick(View v) {


Intent intent = new Intent();
intent.setClass(this, TampilData.class);
startActivity(intent);
}
/*
public void tampilFotoOnClick(View v) {
Intent intent = new Intent();
intent.setClass(this, TampilFoto.class);
startActivity(intent);
}

public void uploadFotoOnClick(View v) {


Intent intent = new Intent();
intent.setClass(this, UploadFoto.class);
startActivity(intent);
}
*/
}

Pemrograman Piranti Bergerak 15


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

tambah_data.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:id="@+id/baris1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nim" />

<EditText
android:id="@+id/editNim"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >

<requestFocus />
</EditText>

<TextView
android:id="@+id/baris2"
android:layout_width="wrap_content"

Pemrograman Piranti Bergerak 16


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

android:layout_height="wrap_content"
android:text="Nama" />

<EditText
android:id="@+id/editNama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nilai" />

<EditText
android:id="@+id/editNilai"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

<Button
android:id="@+id/buttonCamera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="buttonSaveOnClick"
android:text="Save" />

</LinearLayout>

TambahData.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class TambahData extends Activity {


private String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Pemrograman Piranti Bergerak 17


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

setContentView(R.layout.tambah_data);
}

private String saveToServer(String nim, String nama, String nilai) {

URL url;
try {
url = new URL("http://172.21.5.240/androidCloud/testSaveHTTP.php?nim=" +
nim
+ "&nama=" + nama + "&nilai=" + nilai);

URLConnection urc = url.openConnection();


urc.setReadTimeout(10000 /* milliseconds */);
urc.setConnectTimeout(15000 /* milliseconds */);
BufferedReader in = new BufferedReader(new
InputStreamReader(urc.getInputStream()));
String response = in.readLine();
in.close();
return response;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return e.getMessage();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return e.getMessage();
}
}

public void buttonSaveOnClick(View v) {

ConnectivityManager connMgr = (ConnectivityManager)


getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {

final String nim = ((TextView) findViewById(R.id.editNim))


.getText().toString();
final String nama = ((TextView) findViewById(R.id.editNama))
.getText().toString();
final String nilai = ((TextView) findViewById(R.id.editNilai))
.getText().toString();

Thread saveThread = new Thread(new Runnable() {


public void run() {
result = saveToServer(nim, nama, nilai);
}

Pemrograman Piranti Bergerak 18


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

});

saveThread.start();
try {
saveThread.join(); // wait until Thread finish
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tampilToast(result);
} else {
tampilToast("No network connection available.");
}
}

private void tampilToast(String pesan) {


int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), pesan, duration);
toast.show();
}
}

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

Pemrograman Piranti Bergerak 19


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>

</LinearLayout>

Pemrograman Piranti Bergerak 20


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

tampil_datadtl.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" >

<TextView
android:id="@+id/baris1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="24sp" />

<TextView
android:id="@+id/baris2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="14sp" />

</LinearLayout>

TampilData.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

Pemrograman Piranti Bergerak 21


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class TampilData extends ListActivity {


private String result;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tampil_data);
refreshView();
}

public void refreshView() {


ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
Thread saveThread = new Thread(new Runnable() {
public void run() {
result = getDataFromServer();
}
});
saveThread.start();
try {
saveThread.join(); // wait until Thread finish
if (result != null) {
ArrayList<HashMap<String, String>> list = new
ArrayList<HashMap<String, String>>();

JSONObject jsonObj = new JSONObject(result);


JSONArray jArr = jsonObj.getJSONArray("data");

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


HashMap<String, String> item = new
HashMap<String, String>();
JSONObject siswa = jArr.getJSONObject(i);
item.put("nim", siswa.getString("nim"));

Pemrograman Piranti Bergerak 22


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

item.put("nama", siswa.getString("nama"));
list.add(item);
}

SimpleAdapter notes = new SimpleAdapter(this, list,


R.layout.tampil_datadtl, new String[] { "nim",
"nama" }, new int[] { R.id.baris1,
R.id.baris2 });
setListAdapter(notes);
tampilToast(result);
} else {
tampilToast("Null Responsed from server!");
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
tampilToast("No network connection available.");
}
}

private String getDataFromServer() {


try {
URL url = new URL("http://172.21.5.240/androidCloud/testGetDataHTTP.php");
URLConnection urc = url.openConnection();
urc.setReadTimeout(10000 /* milliseconds */);
urc.setConnectTimeout(15000 /* milliseconds */);
BufferedReader in = new BufferedReader(new InputStreamReader(
urc.getInputStream()));
StringBuffer sb = new StringBuffer();
String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
in.close();
return sb.toString();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

Pemrograman Piranti Bergerak 23


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

private void tampilToast(String pesan) {


int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), pesan, duration);
toast.show();
}
}

Pemrograman Piranti Bergerak 24


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hendra.androidcloud"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.hendra.androidcloud.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />


</intent-filter>
</activity>
<activity android:name="TambahData"></activity>
<activity android:name="TampilData"></activity>
</application>

</manifest>

Pemrograman Piranti Bergerak 25


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

Menggunakan Teknik AsyncTask

TambahDataAsyncTask.java
package com.hendra.androidcloud;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class TambahDataAsyncTask extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tambah_data);
}

private String saveToServer(String nim, String nama, String nilai) {

URL url;
try {
url = new URL(
"http://172.21.5.240/androidCloud/testSaveHTTP.php?nim="
+ nim + "&nama=" + nama + "&nilai=" + nilai);

URLConnection urc = url.openConnection();


urc.setReadTimeout(10000 /* milliseconds */);
urc.setConnectTimeout(15000 /* milliseconds */);

BufferedReader in = new BufferedReader(new InputStreamReader(


urc.getInputStream()));
String response = in.readLine();
in.close();
return response;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return e.getMessage();
} catch (IOException e) {

Pemrograman Piranti Bergerak 26


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

// TODO Auto-generated catch block


e.printStackTrace();
return e.getMessage();
}
}

private class RequestToServerTask extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... data) {
return saveToServer(data[0], data[1], data[2]);
}

// onPostExecute displays the results of the AsyncTask.


@Override
protected void onPostExecute(String result) {
tampilToast(result);
}
}

public void buttonSaveOnClick(View v) {

ConnectivityManager connMgr = (ConnectivityManager)


getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {

final String nim = ((TextView) findViewById(R.id.editNim))


.getText().toString();
final String nama = ((TextView) findViewById(R.id.editNama))
.getText().toString();
final String nilai = ((TextView) findViewById(R.id.editNilai))
.getText().toString();

new RequestToServerTask().execute(nim, nama, nilai);

} else {
tampilToast("No network connection available.");
}
}

private void tampilToast(String pesan) {


int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), pesan, duration);
toast.show();
}
}

Pemrograman Piranti Bergerak 27


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

TampilDataAsyncTask.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class TampilDataAsyncTask extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tampil_data);
refreshView();
}

private class RequestToServerTask extends AsyncTask<Void, Void, String> {

@Override
protected String doInBackground(Void... params) {
return getDataFromServer();
}

protected void onPostExecute(String result) {


if (result != null) {
tampilkeListView(result);
} else {

Pemrograman Piranti Bergerak 28


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

tampilToast("Null Responsed from server!");


}
}

public void tampilkeListView(String jsonStr) {


ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,
String>>();

JSONObject jsonObj;
try {
jsonObj = new JSONObject(jsonStr);
JSONArray jArr = jsonObj.getJSONArray("data");

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


HashMap<String, String> item = new HashMap<String, String>();
JSONObject siswa = jArr.getJSONObject(i);
item.put("nim", siswa.getString("nim"));
item.put("nama", siswa.getString("nama"));
list.add(item);
}

SimpleAdapter notes = new SimpleAdapter(this, list,


R.layout.tampil_datadtl, new String[] { "nim", "nama" },
new int[] { R.id.baris1, R.id.baris2 });
setListAdapter(notes);
tampilToast(jsonStr);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

public void refreshView() {


ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
new RequestToServerTask().execute();
} else {
tampilToast("No network connection available.");
}
}

Pemrograman Piranti Bergerak 29


Ir. Hendra, MT. (0119067305) Dosen STMIK IBBI

private String getDataFromServer() {


try {
URL url = new URL(
"http://172.21.5.240/androidCloud/testGetDataHTTP.php");
URLConnection urc = url.openConnection();
urc.setReadTimeout(10000 /* milliseconds */);
urc.setConnectTimeout(15000 /* milliseconds */);
BufferedReader in = new BufferedReader(new InputStreamReader(
urc.getInputStream()));
StringBuffer sb = new StringBuffer();
String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
in.close();
return sb.toString();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

private void tampilToast(String pesan) {


int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), pesan, duration);
toast.show();
}
}

Pemrograman Piranti Bergerak 30

You might also like