0% menganggap dokumen ini bermanfaat (0 suara)
20 tayangan94 halaman

Aplikasi Client-Server untuk Data Penduduk

Aplikasi client server database membahas tentang arsitektur sistem aplikasi android yang menyimpan dan mengakses datanya di server. Aplikasi ini terdiri dari client android dan server database yang terhubung melalui jaringan. Data disinkronkan antara client dan server secara real-time untuk memungkinkan sharing dan akses data dari berbagai perangkat.

Diunggah oleh

Imam Hidayat
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
20 tayangan94 halaman

Aplikasi Client-Server untuk Data Penduduk

Aplikasi client server database membahas tentang arsitektur sistem aplikasi android yang menyimpan dan mengakses datanya di server. Aplikasi ini terdiri dari client android dan server database yang terhubung melalui jaringan. Data disinkronkan antara client dan server secara real-time untuk memungkinkan sharing dan akses data dari berbagai perangkat.

Diunggah oleh

Imam Hidayat
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Android Client Server

Danandjaya Saputra, S.T, [Link]


Tujuan
Mempelajari tentang aplikasi
android (client) yang
databasenya diakses di sebuah
server
Mengapa kita harus
menyimpan data di
server ?
Data

• Data tidak bisa di share


• Data tidak bisa di akses
• Data tidak sinkron/terintegrasi
• Data tidak update secara realtime
Contohnya : Sistem Inventori Stok Barang

*Data penjualan hanya tersimpan


di SQLite di device admin
penjualan

ADMIN
PEMBELIAN
Tidak
Sinkron
*Data pembelian hanya
tersimpan di SQLite di device
ADMIN
admin pembelian
PENJUALAN
Contohnya : Sistem Pemesanan Makanan di Restoran

*Data stok makanan ready hanya


tersimpan di SQLite device admin
restoran

KONSUMEN
RESTORAN
Tidak
Sinkron
*Data pemesanan hanya
tersimpan di SQLite device ADMIN
konsumen restoran DAPUR RESTORAN
SOLUSINYA….!!!
Aplikasi Client Server Database

CLIENT D

CLIENT A SERVER
DATABASE

CLIENT B CLIENT C

Aplikasi client server terdiri dari minimal 2 perangkat komputer yang


terhubung pada jaringan, dimana 1 sebagai server dan 1 sebagai
client
Contohnya : Sistem Inventori Stok Barang

SERVER DB
ADMIN
PEMBELIAN

Sinkron

ADMIN
PENJUALAN
Contohnya : Sistem Pemesanan Makanan di Restoran

SERVER DB
KONSUMEN
RESTORAN

Sinkron

ADMIN
DAPUR RESTORAN
GAMBARAN ARSITEKTUR CLIENT SERVER
CLIENT SERVER
2
1 KOMUNIKASI
HTTP

3 4
5
JSON

API DATABASE

NETWORK (LAN/MAN/WAN)
2 KOMUNIKASI HTTP
HTTP merupakan komunikasi yang menghubungkan
server dengan perangkat-perangkat lain (client) yang
ingin mengakses sumber daya (data) di dalam server
tersebut.

Library HTTP untuk android :


3 API (APPLICATION PROGRAMMING INTERFACE) / WEBSERVICE
API/Web Service yang dimaksud merupakan sebuah
program di sisi server yang menjembati permintaan
atau respon data dari client ke database.

Teknologi bahasa pemrograman untuk buat API :


4 DATABASE MANAGEMENT SYSTEM
Database management system merupakan
software untuk menyimpan database.

Database yang bisa digunakan :


5 JSON (JavaScript Object Notation)
JSON adalah format pertukaran data yang ringan,
serta mudah diterjemahkan dan dibuat
(generate) oleh komputer.

Contoh format JSON :


PRAKTIKUM
APLIKASI CLIENT SERVER DATABASE

STUDI KASUS : Aplikasi pencatatan penduduk


APLIKASI DATA PENDUDUK (APDAPEN)
Aplikasi pencatatan data penduduk ini dapat menginput/daftar data
penduduk, mengecek data penduduk berdasarkan [Link] yang sudah di
daftarkan, menampilkan list berita dan set ip server database.

Wireless SERVER (LAPTOP ANDA)


Connection API : Apache dan PHP
Bisa pakai DATABASE : MySQL
APLIKASI DATA Tethering (cukup install XAMPP)
PENDUDUK hp/router
(ANDROID) lainnya
INTERFACE APLIKASI
PERSIAPAN SOFTWARE
1. XAMPP
2. MYSQL FRONT
3. POSTMAN
4. ECLIPSE
TAHAP 1
MEMBUAT DATABASE
DI MYSQL SERVER
Adapun langkah-langkahnya, yaitu:
1. Jalankan modules Apache dan MySQL pada XAMPP dengan
menekan tombol start sampai berubah menjadi stop
2. Buka tools MySQL Front
3. Buat Database baru dengan cara seperti dibawah ini :

Klik kanan
4. Isi nama databasenya dengan Name : dbsensus

jIka sudah..Klik OK
5. Selanjutnya di dbsensus, kita akan membuat 2 tabel, dengan
mengikuti struktur dibawah ini

NAMA TABEL FIELD / KOLOM TIPE DATA SIZE KEY

noktp VARCHAR 25 PRIMARY KEY


t_penduduk nama VARCHAR 100
provinsi VARCHAR 100

NAMA TABEL FIELD / KOLOM TIPE DATA SIZE KEY

Id INT 11 PRIMARY KEY


t_berita judul VARCHAR 100
konten VARCHAR 255
Hasil Pembuatan Tabel t_penduduk
Hasil Pembuatan Tabel t_berita
TAHAP 2
MEMBUAT API/WEBSERVICE APLIKASI
DATA PENDUDUK
MENGGUNAKAN PHP
1. Buat folder webservice di dalam folder C:\xampp\htdocs
2. Ketik coding dibawah ini, kemudian simpan didalam folder
webservice dengan nama [Link]
3. Ketik coding dibawah ini, kemudian simpan didalam folder
webservice dengan nama [Link]
4. Ketik coding dibawah ini, kemudian simpan didalam folder
webservice dengan nama [Link]
5. Ketik coding dibawah ini, kemudian simpan didalam folder
webservice dengan nama [Link]
6. Sehingga ke-4 File yang dibuat sebelumnya menjadi seperti
dibawah ini, yang berada di dalam folder webservice
7. Lakukan API Testing dengan menggunakan aplikasi Postman (dari
laptop) atau Rest API Client dari HP android anda (Download
Playstore) untuk menguji apakah API/Web Service yang kita buat
berfungsi dengan baik.
Berikut ini adalah daftar URL untuk mengakses API yang dibuat
sebelumnya

1. REQUEST UNTUK MENGAMBIL DATA BERITA


URL [Link] SERVER API]/webservice/[Link]
METHOD GET
FORM-DATA TIDAK ADA

2. REQUEST UNTUK CEK KTP TERDAFTAR ATAU TIDAK


URL [Link] SERVER API]//webservice/[Link]
METHOD GET
FORM-DATA noktp <string>
3. REQUEST UNTUK MENYIMPAN DATA PENDUDUK
URL [Link] SERVER API]//webservice/[Link]
METHOD GET
FORM-DATA noktp <string>

nama <string>

provinsi (string>
1. URL untuk 2. URL untuk mengirim
akses API request API

3. Form Data

5. Status Response
4. Response API

Cara Menggunakan POSTMAN


TAHAP 3
Membuat Aplikasi Android
BUATLAH PROJECT BARU

2 3

1. Klik File
2. Klik New
3. Klik Android Project
39
AplikasiDataPenduduk

40
CENTANG
SEMUA
OPSI SESUAI
TANDA PANAH

41
Klik Browse untuk memilih gambar

Pilih gambar icon


aplikasi anda,
Format bisa JPG dan
PNG, Resolusi
ukuran bebas

42
Pilih blank
activity,
Yang artinya
tampilan awal
aplikasi adalah
standar

43
MainActivity

44
Menambah Library [Link]

Library Volley merupakan merupakan produk yang


diperkenalkan oleh Google untuk mempermudah pertukaran
data melalui komunikasi HTTP tanpa harus membuat deretan
kode yang sangat panjang.

Cara menambah library volley


• Copy file [Link]
• Kemudian paste di dalam folder libs pada project di eclipse
Copy kemudian paste
Di folder libs
Tambahkan Permission pada
[Link]

Klik File
[Link]
Tambahkan coding dibawah ini :
<uses-permission android:name="[Link]" />
Modifikasi
[Link]
Buka dan ketik coding activity_main.xml seperti di bawah ini
<TabHost xmlns:android="[Link]
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>

50
Lanjutan coding activity_main.xml
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
</TabHost>

Finish, selanjutnya
51
Buka dan ketik coding [Link] seperti di bawah ini
package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class MainActivity extends TabActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);

52
Lanjutan coding [Link]
TabHost tabHost = getTabHost();

TabSpec cekSpec = [Link]("Cek");


[Link]("Cek",null);
Intent cekIntent = new Intent(this, [Link]);
[Link](cekIntent);
[Link](cekSpec);

TabSpec daftarSpec = [Link]("Daftar");


[Link]("Daftar",null);
Intent daftarIntent = new Intent(this, [Link]);
[Link](daftarIntent);
[Link](daftarSpec);

53
Lanjutan coding [Link]
TabSpec beritaSpec = [Link]("Berita");
[Link]("Berita",null);
Intent beritaIntent = new Intent(this, [Link]);
[Link](beritaIntent);
[Link](beritaSpec);

TabSpec configSpec = [Link]("Config");


[Link]("Config",null);
Intent configIntent = new Intent(this, [Link]);
[Link](configIntent);
[Link](configSpec);

[Link](0);
}
} Jika ada yang error pada baris activity tertentu abaikan saja,
karena belum buat activitynya
Finish, selanjutnya,
54
Tambahkan
[Link]
Tambahkan activity baru dengan nama [Link]

56
Ketik coding activity_cek.xml seperti di bawah ini
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="18dp"
android:paddingLeft="18dp"
android:paddingRight="18dp">
<TextView
android:id="@+id/TextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Masukan No KTP anda :"
android:textSize="18dp" />
<EditText
android:id="@+id/EditTextNoKTP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18dp"
android:layout_below="@+id/TextView1"/>

57
Lanjutan coding activity_cek.xml
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/EditTextNoKTP">
<Button
android:id="@+id/buttonSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Search" />
</LinearLayout>

</RelativeLayout>

Finish, selanjutnya
58
Ketik coding [Link] seperti di bawah ini
package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

59
Lanjutan coding [Link]
public class CekActivity extends Activity {

SharedPreferences sp;
EditText EditTextNoKTP;
Button buttonSearch;

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_cek);

sp = getSharedPreferences("apdapen", MODE_PRIVATE);

EditTextNoKTP = (EditText) findViewById([Link]);


buttonSearch = (Button) findViewById([Link]);

60
Lanjutan coding [Link]
[Link](new [Link]() {
@Override
public void onClick(View v) {
try{
cekNoKTP();
}catch(RuntimeException e){
[Link]([Link], [Link](),Toast.LENGTH_LONG).show();
}
}
});
}

61
Lanjutan coding [Link]
private void cekNoKTP(){
final String noktp = [Link]().toString();
final String ip_address_server = [Link]("ip_address_server","");

StringRequest stringRequest = new StringRequest([Link],


"[Link]
new [Link]<String>() {
@Override
public void onResponse(String response) {
if([Link]("ada")){
[Link]([Link], "No. KTP Sudah
Terdaftar",Toast.LENGTH_LONG).show();
}else if([Link]("tidak")){
[Link]([Link], "No. KTP Belum
Terdaftar",Toast.LENGTH_LONG).show();
}
}
},
62
Lanjutan coding [Link]
new [Link]() {
@Override
public void onErrorResponse(VolleyError error) {
[Link]([Link],[Link](),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
[Link]("noktp", noktp);
return params;
}
};

RequestQueue requestQueue = [Link](this);


[Link](stringRequest);
} Finish, selanjutnya
}
63
Tambahkan
[Link]
Tambahkan activity baru dengan nama [Link]

65
Ketik coding activity_daftar.xml seperti di bawah ini
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="18dp"
android:paddingLeft="18dp"
android:paddingRight="18dp">
<TextView
android:id="@+id/TextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="No KTP :"
android:textSize="18dp" />
<EditText
android:id="@+id/EditTextNoKTP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18dp"
android:layout_below="@+id/TextView1"/>

66
Lanjutan coding activity_daftar.xml
<TextView
android:id="@+id/TextView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nama Lengkap :"
android:textSize="18dp"
android:layout_below="@+id/EditTextNoKTP" />
<EditText
android:id="@+id/EditTextNama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18dp"
android:layout_below="@+id/TextView2"/>
<TextView
android:id="@+id/TextView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Asal Provinsi :"
android:textSize="18dp"
android:layout_below="@+id/EditTextNama"/>
67
Lanjutan coding activity_daftar.xml
<Spinner
android:id="@+id/spinnerProvinsi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18dp"
android:drawSelectorOnTop="true"
android:layout_below="@+id/TextView3" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/spinnerProvinsi">
<Button
android:id="@+id/buttonSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Save" />

68
Lanjutan coding activity_daftar.xml
<Button
android:id="@+id/buttonClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Clear" />
</LinearLayout>
</RelativeLayout>

Finish, selanjutnya

69
Ketik coding [Link] seperti di bawah ini
package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
70
Lanjutan coding [Link]
public class DaftarActivity extends Activity {

SharedPreferences sp;
EditText EditTextNoKTP, EditTextNama;
Spinner spinnerProvinsi;
Button buttonSave, buttonClear;
String[] provinsi = { "KEPULAUAN RIAU", "DKI JAKARTA", "JAWA BARAT", "SUMATERA BARAT" };

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_daftar);

sp = getSharedPreferences("apdapen", MODE_PRIVATE);

71
Lanjutan coding [Link]
EditTextNoKTP = (EditText) findViewById([Link]);
EditTextNama = (EditText) findViewById([Link]);
spinnerProvinsi = (Spinner) findViewById([Link]);
buttonSave = (Button) findViewById([Link]);
buttonClear = (Button) findViewById([Link]);
ArrayAdapter<String> spinnerAdapter = new
ArrayAdapter<String>(this,[Link].simple_spinner_item, provinsi);
[Link]([Link].simple_spinner_dropdown_item);
[Link](spinnerAdapter);

[Link](new [Link]() {
@Override
public void onClick(View v) {
try{
simpanPendafataran();
}catch(RuntimeException e){
[Link]([Link], [Link](),Toast.LENGTH_LONG).show();
}
}
});
72
Lanjutan coding [Link]
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]("");
[Link]("");
[Link](0);
}
});
}

73
Lanjutan coding [Link]
private void simpanPendafataran(){
final String noktp = [Link]().toString();
final String nama = [Link]().toString();
final String provinsi = [Link]().toString();
final String ip_address_server = [Link]("ip_address_server","");

StringRequest stringRequest = new StringRequest([Link],


"[Link]
new [Link]<String>() {
@Override
public void onResponse(String response) {
if([Link]("berhasil")){
[Link]([Link], "Data Penduduk Berhasil Di
Daftar",Toast.LENGTH_LONG).show();
}else if([Link]("gagal")){
[Link]([Link], "Data Penduduk Gagal Di
Daftar",Toast.LENGTH_LONG).show();
}
}
},
74
Lanjutan coding [Link]
new [Link]() {
@Override
public void onErrorResponse(VolleyError error) {
[Link]([Link],[Link](),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
[Link]("noktp", noktp);
[Link]("nama", nama);
[Link]("provinsi", provinsi);
return params;
}

};
RequestQueue requestQueue = [Link](this);
[Link](stringRequest);

}
} Finish, selanjutnya
75
Tambahkan
[Link]
Selanjutnya tambahkan activity baru dengan nama [Link]

77
Ketik coding activity_berita.xml seperti di bawah ini
<RelativeLayout xmlns:android="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="18dp"
android:paddingLeft="18dp"
android:paddingRight="18dp"
tools:context=".BeritaActivity" >

<ListView
android:id="@+id/listview_berita"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20px"/>
</RelativeLayout>

Finish, selanjutnya
78
Ketik coding [Link] seperti di bawah ini
package [Link];

import [Link];
import [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];
import [Link];
import [Link];

79
Lanjutan coding [Link]
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

80
Lanjutan coding [Link]
public class BeritaActivity extends Activity {

SharedPreferences sp;
ListView ListViewBerita;
String[] id;
String[] judul;
String[] konten;
String[] data_berita;
ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_berita);

sp = getSharedPreferences("apdapen", MODE_PRIVATE);
ListViewBerita = (ListView) findViewById([Link].listview_berita);

81
Lanjutan coding [Link]
progressDialog = new ProgressDialog(this);
[Link]("Please wait...");
[Link](false);

loadDataBerita();
}

82
Lanjutan coding [Link]
private void loadDataBerita(){
final String ip_address_server = [Link]("ip_address_server","");
[Link]();
StringRequest stringRequest = new StringRequest("[Link]
new [Link]<String>() {
@Override
public void onResponse(String response) {
showBerita(response);
[Link]();
}
},
new [Link]() {
@Override
public void onErrorResponse(VolleyError error) {
[Link]();
[Link]([Link], "Error1: " + [Link](),Toast.LENGTH_LONG).show();
}
}){
};

RequestQueue requestQueue = [Link](this);


[Link](stringRequest);
}
83
Lanjutan coding [Link]
private void showBerita(String json){
JSONArray jsonberita = null;
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(json);
jsonberita = [Link]("data");

id = new String[[Link]()];
judul = new String[[Link]()];
konten = new String[[Link]()];
data_berita = new String[[Link]()];

for(int i=0;i<[Link]();i++){
JSONObject jo = [Link](i);
id[i] = [Link]("id");
judul[i] = [Link]("judul");
konten[i] = [Link]("konten");
data_berita[i] = id[i] + "\n" + judul[i]+"\n" + konten[i];
}
[Link](new ArrayAdapter(this, [Link].simple_list_item_1, data_berita));

84
Lanjutan coding [Link]
} catch (JSONException e) {
[Link]();
[Link]([Link], "Error2: " + [Link](),Toast.LENGTH_LONG).show();
}

@Override
public void onResume(){
[Link]();
try{
loadDataBerita();
}catch(RuntimeException e){
[Link]();
}
}
} Finish, selanjutnya
85
Tambahkan
[Link]
Tambahkan activity baru dengan nama [Link]

87
Ketik coding activity_config_ip_server.xml seperti di bawah ini
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="18dp"
android:paddingLeft="18dp"
android:paddingRight="18dp">
<TextView
android:id="@+id/TextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Masukan Alamat IP Server :"
android:textSize="18dp" />
<EditText
android:id="@+id/EditTextIpServer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18dp"
android:layout_below="@+id/TextView1"/>

88
Lanjutan coding activity_config_ip_server.xml
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/EditTextIpServer">
<Button
android:id="@+id/buttonSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Save" />
</LinearLayout>

</RelativeLayout>

Finish, selanjutnya
89
Ketik coding [Link] seperti di bawah ini
package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class ConfigIpServerActivity extends Activity {

SharedPreferences sp;
EditText EditTextIpServer;
Button buttonSave;

90
Lanjutan coding [Link]
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_config_ip_server);

sp = getSharedPreferences("apdapen", MODE_PRIVATE);

EditTextIpServer = (EditText) findViewById([Link]);


buttonSave = (Button) findViewById([Link]);

TampilIpServer();

91
Lanjutan coding [Link]
[Link](new [Link]() {
@Override
public void onClick(View v) {
try{
String ip_address_server = [Link]().toString();

[Link] editor = [Link]();


[Link]("ip_address_server", ip_address_server );
[Link]();
[Link](getApplicationContext(), "IP ADDRESS SERVER SEKARANG " +
ip_address_server, Toast.LENGTH_LONG).show();
}catch(RuntimeException e){
[Link]([Link],
[Link](),Toast.LENGTH_LONG).show();
}
}
});
}
92
Lanjutan coding [Link]
public void TampilIpServer(){
try{
String ip_address_server = [Link]("ip_address_server","");
[Link](ip_address_server);
}catch(NullPointerException e){
[Link]();
}catch(RuntimeException e){
[Link]();
}
}
}

Finish, selanjutnya
93
TESTING APLIKASI
1. AKTIFKAN HOTSPOT/ ROUTER HANDPHONE
2. KONEKSIKAN LAPTOP YANG AKAN DI JADIKAN
SERVER KE HOTSPOT/ ROUTER HANDPHONE
3. LIHAT IP ADDRESS LAPTOP
4. BUKA APLIKASI ANDROIDNYA, MASUKAN IP
ADDRESS LAPTOP PADA MENU CONFIG TERLEBIH
DAHULU
5. SELESAI, SILAHKAN INPUT DAFTAR PENDUDUK DAN
CEK

Anda mungkin juga menyukai