• Tidak ada hasil yang ditemukan

Penggunaan contoh diatas kurang dianjurkan karena tidak efesien, penggunaan yang dianjurkan adalah menggunakan fungsi json_encode echo “{nama:narotama}”; result = Array() definisi result sebagai array result[„nama‟] = “narotama”; membuat array dengan key

N/A
N/A
Protected

Academic year: 2018

Membagikan "Penggunaan contoh diatas kurang dianjurkan karena tidak efesien, penggunaan yang dianjurkan adalah menggunakan fungsi json_encode echo “{nama:narotama}”; result = Array() definisi result sebagai array result[„nama‟] = “narotama”; membuat array dengan key "

Copied!
8
0
0

Teks penuh

(1)

Modul

Client Server Android

JSON

JSON adalah JSON (JavaScript Object Notation) adalah format pertukaran data (lightweight

data-interchange format), mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat

(generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript,

Standar ECMA-262 Edisi ke-3

Desember 1999. JSON merupakan format teks yang tidak bergantung

pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh

programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat

tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.

JSON terbuat dari dua struktur:

1.

Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek

(object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar

berkunci (keyed list), atau associative array.

2.

Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan

sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).

Dalam artinya lain, JSON dapat kita katakan sebagai pemaketan data yang bertujuan untuk

menjembatani antara antar muka dengan service background seperti database server, sama halnya

dengan penggunaan xml. Dalam Json, yang kita perlu pahami hanya dua kunci yaitu key dan value. key

kalau digambarkan secara sederhana adalah nama field dan value adalah isinya. Pada dasarnya Json

sendiri adalah data berbentuk String untuk parsing-parsing data, seperti pada contoh dibawah ini :

Penggunaan contoh diatas kurang dianjurkan karena tidak efesien, penggunaan yang dianjurkan adalah menggunakan fungsi json_encode

echo “{nama:narotama}”;

$result = Array() //definisi result sebagai array

$result[„nama‟] = “narotama”; //membuat array dengan key nama valuenya narotama echo json_encode($result); //mengubah array kedalam format json (string)

Menggunakan object

(2)

Pada sesi pembahasan modul ini mencoba untuk membuat antar koneksi, yang kemudian

akan

membuat aplikasi Android yang datanya akan disimpan pada sebuah server. Bisa local (localhost) atau di

internet.

Sebenarnya Android memiliki fasilitas untuk menyimpan data yaitu:

1.

Shared preferences. Terdiri dari key dan value data. Model ini biasanya untuk menyimpan settingan

(pengaturan) sebuah aplikasi.

2.

File. Fasilitas ini juga dapat menyimpan data sama halnya dengan Shared Preferences, hanya saja

data disimpan ke dalam bentuk file. Misalnya: txt, xml atau bentuk file lainnya

3.

SQLite Database. Fasilitas ini cukup idel untuk menyimpan data yang lumayan banyak. Berbeda

halnya dengan no 1 dan 2 di atas yang biasanya untuk menyimpan data yang sedikit seperti

pengaturan. Dengan SQLite proses dapat melakukan query dan table-table seperti halnya database

pada umumnya.

Untuk mempelajari ketiga fasilitas di atas yang lebih detail, silakan bisa di klik pada halaman

http://developer.android.com/training/basics/data-storage/index.html.

Ketiga fasilitas di atas menyimpan data pada ponsel pengguna (client). Nah, bagaimana jika ingin data

itu selalu update dan dapat mengaksesnya siapa saja dan dimana saja (anyone, anytime and

anywhere)?. Itulah alasanya mengapa pada android memerlukan sebuah server dalam hal ini MySQL.

Aplikasi yang akan dibangun pada sesi ini bisa dilihat pada model gambar dibawah ini

Gambar 1

Berdasarkan gambar di atas, ponsel Android akan melakukan request (get/post) ke server melalui

internet. Cara ini juga sama jika ingin aplikasi berada pada localhost. Selanjutnya web server (dalam hal

(3)

Sehingga ada 3 hal yang harus dilakukan, yaitu

1.

Membuat Database

Database: latihan_android

Table: mahasiswa (id, nim, nama, telp, alamat)

2. Membuat script PHP

Database sudah selesai, selanjutnya adalah membuat script server side. sehingga dibutuhkan script

server side. Sebenarnya Android tidak dapat berkomunikasi langsung dengan MySQL untuk

memanipulasi database. Untuk itu, android membutuhkan script server side misalnya ASP, JSP atau

PHP untuk bisa menjadi “jembatan” antara Android dengan MySQL. Jadi, Android hanya memberika

perintah (request) ke PHP dan PHP lah yang akan melaksanakan query ke MySQL.

Pada sesi ini, dicoba untuk membuat 5 file php :

(1). Index.php

Sebagai file index dan hanya berisi HTML

<html> <head>

<title>Index Android</title> </head>

<body>

<h3>Index Android</h3> </body>

</html>

create database latihan_android;

use latihan_android;

CREATE TABLE IF NOT EXISTS `mahasiswa` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`nim` varchar(11) NOT NULL,

`nama` varchar(100) NOT NULL,

`telp` varchar(50) NOT NULL,

`alamat` varchar(255) NOT NULL,

PRIMARY KEY (`id`)

(4)

(2) connection.php : Koneksi PHP ke MYSQL

(3) select_all.php:

untuk melakukan query select all, mengabil seluruh data dari table Mahasiswa

(4) submit_mahasiswa.php :

untuk memproses simpan dan update <?php

/*silakan sesuaikan dengan konfigurasi server Anda*/

$conn = mysql_connect('localhost', 'root', 'passworddb') or die(mysql_error());

$db = mysql_select_db('latihan_android') or die(mysql_error()); ?>

<?php

/*reply data dalam JSON */

include('connection.php');

$query = 'select * from mahasiswa';

$result = mysql_query($query) or die(mysql_error());

$data = array();

while($row = mysql_fetch_object($result)){ $data['mahasiswa'][]= $row;

}

echo json_encode($data); ?>

<?php

/**jika id = 0,maka akan dilakukan insert, jika tidak update berdasarkan id */ include('connection.php');

$id = (int)$_POST['id']; $nim = $_POST['nim']; $nama = $_POST['nama']; $telp = $_POST['telp']; $alamat = $_POST['alamat'];

$query = 'insert into mahasiswa (nim, nama, telp, alamat) values ("'.$nim.'", "'.$nama.'", "'.$telp.'", "'.$alamat.'")';

if($id > 0){

$query = 'update mahasiswa set nama = "'.$nama.'", nim = "'.$nim.'", telp = "'.$telp.'", alamat = "'.$alamat.'" where id = '.$id;

}

(5)

Script PHP sudah selesai dan selanjutnya membuat aplikasi inti yaitu Android. Ada baiknya, sebelum

membuat aplikasi android, kita test dulu apakah script PHP sudah bisa diakses dari emulator.

Caranya buka browser dari emulator (AVD), dan bukalah url

http://10.0.2.2/android/index.php

10.0.2.2 adalah host default untuk mengakses server local.

3.

Membuat aplikasi Android

Pada project ini, kita membuat aplikasi dengan Min Requirement SDK adalah API 11 (Honeycomb) .

Karena di aplikasi ini memiliki Action Bar (Action Bar hanya tersedia pada API 11 ke atas).

Secara default, di Android Studio akan membuat 1 Activity dan 1 layout (MainActivity.java dan

activity_main.xml).

(1) Membuat Object Mahasiswa (mahasiswa.java)

Membuat object Mahasiswa, karena table yang dibuat sebelumnya adalah mahasiswa. Class Mahasiswa sangat membantu kita memanipulasi object. Salah satunya adalah konsep Object Relational Mapping (ORM) yang menggunakan object yang sama untuk memetakan table pada database.

package

org.pizaini.mahasiswaonline.entities;

public class Mahasiswa {

private Integer id;

private String nim;

private String nama;

private String telp;

private String alamat;

public Mahasiswa() {

super();

}

public Mahasiswa(Integer id, String nim,

String nama, String telp,

String alamat) {

super();

this.id = id;

this.nim = nim;

this.nama = nama;

this.telp = telp;

this.alamat = alamat;

}

public Integer getId() { return id;

}

public void setId(Integer id) { this.id = id;

}

public String getNim() { return nim;

}

public void setNim(String nim) { this.nim = nim;

}

public String getNama() { return nama;

}

public void setNama(String nama) { this.nama = nama;

}

public String getTelp() { return telp;

}

public void setTelp(String telp) { this.telp = telp;

}

public String getAlamat() { return alamat;

}

public void setAlamat(String alamat) {

(6)

(2) Membuat Class ServerRequest

Class ini akan gunakan berkomunikasi / melakukan request ke server. Pada class ini, akan membuat dua buah request, yaitu GET dan POST.

package org.pizaini.mahasiswaonline.server; import android.util.Log;

public class ServerRequest {

private final static String TAG = "ServerRequest";

private final String serverUri = "http://10.0.2.2/android"; public static final String urlSelectAll = "select_all.php"; public static final String urlDelete = "delete_mahasiswa.php"; public static final String urlSubmit = "submit_mahasiswa.php";

public ServerRequest() { super();

}

/** Mengirimkan GET request */

public String sendGetRequest(String reqUrl){ HttpClient httpClient;

HttpGet httpGet = new HttpGet(serverUri+"/"+reqUrl); InputStream is = null;

StringBuilder stringBuilder = new StringBuilder(); try {

HttpParams params = new BasicHttpParams();

HttpConnectionParams.setConnectionTimeout(params, 3000); HttpConnectionParams.setSoTimeout(params, 3000);

httpClient = new DefaultHttpClient(params); Log.d(TAG, "executing...");

HttpResponse httpResponse = httpClient.execute(httpGet); StatusLine status = httpResponse.getStatusLine();

(7)

if(status.getStatusCode() == HttpStatus.SC_OK && httpResponse != null){ /** mengambil response string dari server */

HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent();

BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line = null;

Log.d(TAG, e.getMessage()); }

return stringBuilder.toString(); }

/** Mengirimkan POST request */

public int sendPostRequest(Mahasiswa mahasiswa, String url){ int replyCode = 99;

HttpClient httpClient;

HttpPost post = new HttpPost(this.serverUri+"/"+url); /** menambahkan parameter ke dalam request */

List<NameValuePair> value = new ArrayList<NameValuePair>();

value.add(new BasicNameValuePair("id", mahasiswa.getId().toString())); value.add(new BasicNameValuePair("nim", mahasiswa.getNim()));

value.add(new BasicNameValuePair("nama", mahasiswa.getNama())); value.add(new BasicNameValuePair("telp", mahasiswa.getTelp())); value.add(new BasicNameValuePair("alamat", mahasiswa.getAlamat()));

try {

HttpParams params = new BasicHttpParams();

HttpConnectionParams.setConnectionTimeout(params, 3000); HttpConnectionParams.setSoTimeout(params, 3000);

httpClient = new DefaultHttpClient(params); post.setEntity(new UrlEncodedFormEntity(value)); Log.d(TAG, "executing post...");

(8)

MainActivity akan digunakan untuk menampilkan ListView nama mahasiswa dan NIM. Seperti berikut:

Sumber :

https://github.com/pizaini/BelajarAndroid

Gambar

Gambar 1 Berdasarkan gambar di atas, ponsel Android akan melakukan request (get/post) ke server melalui

Referensi

Dokumen terkait

Halaman 6 LAMPIRAN II PENJABARAN PERTANGGUNGJAWABAN - PENJABARAN LAPORAN REALISASI ANGGARAN PENDAPATAN DAN

Kesimpulan dari penelitian ini adalah: Semakin baik pengetahuan, sikap, dan perilaku terhadap pemeliharaan kebersihan gigi dan mulut, semakin baik status kesehatan periodontal

Bahan yang digunakan adalah sampel tanah yang diambil dari dua lokasi sawah yaitu di Balai Penelitian Padi Ciapus dan desa Sukajadi Kecamatan Taman Sari,

Dari keempat penyebab tingkat kerusakan bangunan tersebut, ada dua hal yang bisa diupayakan untuk mengurangi jumlah korban akiba t gempa bumi yaitu meningkatkan

Hasil penelitian menunjukan sebagian besar responden tidak rutin dalam melakukan olahraga (68,8%) , sebagian besar responden mempunyai pola tidur yang buruk

Berkaitan dengan tugas menetapkan kegiatan dan jadwal acara rapat DPRD, Panitia Musyawarah menetapkan acara DPRD untuk satu masa sidang atau sebagian dari suatu masa

Gejala fisik maupun uji tes darah masukan dari user akan diolah dalam proses diagnosa menjadi hipotesa penyakit yang diderita menggunakan nilai certainty

Penentuan varians bersyarat dari sebuah peubah acak diberikan peubah acak lainnya, baik diskrit maupun kontinu dijelaskan dalam Definisi 7.12... 2 FUNGSI PEMBANGKIT