• Tidak ada hasil yang ditemukan

Bagian ini akan menjelaskan tentang : - Modul Mysql Android

N/A
N/A
Protected

Academic year: 2018

Membagikan "Bagian ini akan menjelaskan tentang : - Modul Mysql Android"

Copied!
79
0
0

Teks penuh

(1)

PERTEMUAN 1

Bagian ini akan menjelaskan tentang :

Konsep umum android

Proses instalasi Eclipse

Membuat Program Pertama

...

PENGENALAN ANDROID

Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android

menyediakan platform yang bersifat open source bagi para pengembang untuk

menciptakan sebuah aplikasi.Awalnya, Google Inc. mengakuisi Android Inc. yang

mengembangkan software untuk ponsel yang berada di Palo Alto, California Amerika

Serikat. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance,

yaitu konsorsium dari 34 perusahaan hardware, software, dan telekomunikasi, termasuk

Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.

Sebuah Activity biasanya ditampilkan dalam satu screen sebagai bagian komponen

dari View (yang terdiri dari komponen UI, widget atau control), yang bertugas melakukan

interaksi dengan user untuk melakukan sebuah task tunggal (misalnya, melihat informasi,

mengedit data, atau memasukkan data).

Sebuah aplikasi Android biasanya memiliki satu atau lebih Activity. Salah satu

Activity ditandai sebagai startup activity, yang pada gilirannya memulai activity

berikutnya, melalui sebuah intent. Untuk membuat suatu activity, kita melakukan extend

terhadap class android.app.Activity, dan melakukan override beberapa method, khususnya

method OnCreate().

Kita bisa mengatur konten view dari activity secara bahasa pemrograman java atau juga

bisa melalui kode layout file XML

Daur hidup sebuah activity diatur melalui method call-back, yang di definisikan pada class

dasar Activity :

(2)

Gambar 1.1 : Siklus Hidup Android

Untuk lebih memahami siklus hidup android adalah dengan memulai aplikasi pertama

yang berada pada bagian 1.

INSTALASI ECLIPSE, JDK, ANDROID DEVELOPMENT TOOLS

Sebelum membangun aplikasi android, diperlukan tiga buah file yang harus diinstal.

Ketiga buah file tersebut dapat diunduh di

http://developer.android.com/sdk/index.html

1. Eclipse

2. ADT Plugin

3. SDK Manager

Ketiga file tersebut sudah include didalam satu folder. Saat mendownload silahkan

sesuaikan dengan tipe sistem operasi komputer. Kemudian install JDK (Java Development

Kit) minimal versi 7 dan install di komputer. Berikut ini adalah langkah-langkah instalasi :

(3)

Gambar 1.2 : instalasi Java Development Kit

2.

Selanjutnya kita akan membuat Android Virtual Device. Masuk ke folder

adt-bundle, kemudian klik SDK manager.exe. jika terdapat pemberitahuan error,

abaikan saja.

Gambar 1.3 : Tampilan SDK Manager

3.

Pilih Tools lalu Manage AVDs

(4)

Gambar 1.4 : Proses Manajemen AVD

4. Selanjutnya adalah proses konfigurasi emulator android, klik New

Gambar 1.5 : membuat Android Virtual Device

(5)

Gambar 1.6 : konfigurasi AVD

6.

Setelah itu, klik start untuk menjalankan emulator yang telah dibuat. Android

Device Virtual telah selesai dibuat.

Gambar 1.7 : menjalankan AVD

PROGRAM PERTAMA

(6)

Pada pertemuan pertama. Kita akan membuat program awal sebagai pemanasan. Berikut

ini langkah-langkah pembuatan aplikasi android pertama.

1.

Jalankan Eclipse, Kemudian Pilih File > New > Android Application Project

Gambar 1.7 : membuat project pertama

2.

Kemudian isi seperti gambar 1.2.

Gambar 1.8 : memberi nama project

(7)

Gambar 1.9 : hierarki package

4. Ganti kode di main.xml seperti dibawah ini.

<

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"

tools:context

=

".Main"

>

<

TextView

android:id

=

"@+id/txt1"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:gravity

=

"center|center_vertical"

android:text

=

"@string/text1"

android:textAppearance

=

"?android:attr/textAppearanceLarge"

/>

<

Button

android:id

=

"@+id/btn1"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:text

=

"@string/button1"

/>

</

LinearLayout

>

Tampilan pada Graphical Layout seperti dibawah ini

(8)

Gambar 1.10 : tampilan graphical layout

5. Kemudian ubah kode di activity main.java seperti dibawah ini.

package com.example.projectpertama;

import android.os.Bundle;

import android.app.Activity;

public class Main extends Activity implements OnClickListener {

TextView txt1;

Button btn1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

txt1 = (TextView) findViewById(R.id.txt1);

btn1 = (Button) findViewById(R.id.btn1);

btn1.setOnClickListener(this);

}

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

txt1.setText("Mantep kan");

}

}

(9)

7.

Aplikasi dapat didownload langsung ke perangkat android. File ProjectPertama.apk

terletak di folder ProjectPertama/bin.

PERTEMUAN 2

Bagian ini akan menjelaskan tentang :

Menampilkan gambar

(10)

Membuat dialog interaktif dengan toast, list, dan alert

...

MEMBUAT TOAST, LIST DIALOG, ALERT DIALOG

Pada pertemuan kedua kita akan membuat kotak dialog sebagai sarana interaktif antara

aplikasi dengan pengguna. Pada aplikasi ini kita akan mengimplementasikan 3 macam

dialog, antara lain :

Toast

List dialog

Alert dialog

Untuk membuat aplikasi ini. Silahkan membuat project baru seperti pada gambar dibawah

ini.

1. Membuat project dengan nama alertlist

Gambar 2.1 : membuat project alertlist

2. Modifkasi layout di activitymain.mml menjadi seperti dibawah ini

<

RelativeLayout

xmlns:android

=

"http://schemas.android.com/apk/res/android"

xmlns:tools

=

"http://schemas.android.com/tools"

android:layout_width

=

"fill_parent"

android:layout_height

=

"fill_parent"

tools:context

=

".AlertListActivity"

>

<

TextView

android:id

=

"@+id/seleksi"

(11)

android:layout_height

=

"wrap_content"

android:layout_centerHorizontal

=

"true"

android:layout_centerVertical

=

"true"

android:text

=

"@string/hello_world"

/>

<

Button

android:id

=

"@+id/pesantoast"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

android:layout_alignParentRight

=

"true"

android:layout_alignParentTop

=

"true"

android:text

=

"Tampilkan Toast"

/>

<

Button

android:id

=

"@+id/keluar"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

android:layout_above

=

"@+id/seleksi"

android:layout_height

=

"wrap_content"

android:layout_alignParentLeft

=

"true"

android:layout_below

=

"@+id/pesantoast"

android:layout_marginTop

=

"18dp"

android:text

=

"Tampilkan List"

/>

</

RelativeLayout

>

3. Modifikasi file AlertListActivity.java seperti dibawah ini

package com.example.alertlist;

import android.os.Bundle;

import android.app.Activity;

public class AlertListActivity extends Activity implements

OnClickListener {

Button pesantoast;

Button keluar;

Button tampillist;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_alert_list);

pesantoast = (Button)findViewById(R.id.pesantoast);

pesantoast.setOnClickListener(this);

(12)

tampillist = (Button)findViewById(R.id.tampillist);

tampillist.setOnClickListener(this);

keluar = (Button)findViewById(R.id.keluar);

keluar.setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is

present.

getMenuInflater().inflate(R.menu.activity_alert_list, menu);

return true;

}

@Override

public void onClick(View arg0) {

if(arg0 == pesantoast){

Toast.makeText(getBaseContext(),

"Anda

Memilih

Toast", Toast.LENGTH_SHORT).show();

}

else if (arg0 == keluar){

AlertDialog.Builder

builder

=

new

AlertDialog.Builder(this);

builder.setMessage("Apakah

Anda

ingin

keluar ?").setCancelable(false)

.setPositiveButton("Ya",

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int

arg1) {

AlertListActivity.this.finish();

// TODO Auto-generated method stub

}

}).setNegativeButton("Tidak",

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int

arg1) {

arg0.cancel();

(13)

}

}).show();

}

else if (arg0 == tampillist){

final CharSequence[] item = {"Jeruk", "Jambu",

"Nangka", "Nanas"};

AlertDialog.Builder

builder

=

new

AlertDialog.Builder(this);

builder.setTitle("Pilih Minuman");

builder.setItems(item,

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int

arg1) {

Toast.makeText(getBaseContext(),

item[arg1], Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

}

}).show();

}

// TODO Auto-generated method stub

}

}

4. Jalankan aplikasi dan lihat hasilnya.

(14)

Gambar 2.2 : list dialog

(15)

PERTEMUAN 3

Pada bagian ini, kita akan mempelajari :

Intent untuk memanggil activity

Penerapan intent pada aplikasi konversi berat badan

...

MEMBUAT INTENT

Pada pertemuan ketiga kita akan belajar membuat intent sederhana. Inti dari sebuah

aplikasi ada 3, yaitu activity, service dan broadcast. Intent digunakan untuk memanggil

activity, memanggil service, atau melakukan broadcast.

Pada bagian ini, kita akan memahami intent paling sederhana yaitu memanggil activity

lain.

1. Buat project dengan nama IntentPertama

Gambar 3.1 : membuat project intentpertama

2. Modifikasi activity_pertama.xml seperti dibawah ini

<

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"

tools:context

=

".ActivityPertama"

>

<

TextView

android:layout_width

=

"wrap_content"

(16)

android:layout_height

=

"wrap_content"

android:text

=

"@string/hello_world"

/>

<

Button

android:id

=

"@+id/button1"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Next"

/>

</

LinearLayout

>

3. Modifikasi ActivityPertama.java seperti dibawah ini

package com.example.intentpertama;

import android.os.Bundle;

import android.app.Activity;

public class ActivityPertama extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_pertama);

final Button button1 = (Button) findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

Intent

myintent

=

new

Intent(button1.getContext(), ActivityKedua.class);

startActivityForResult(myintent, 0);

// TODO Auto-generated method stub

}

});

}

}

(17)

Gambar 3.2 : membuat activity kedua

5. Modifikasi activity_kedua.xml seperti dibawah ini

<

RelativeLayout

xmlns:android

=

"http://schemas.android.com/apk/res/android"

xmlns:tools

=

"http://schemas.android.com/tools"

android:layout_width

=

"match_parent"

android:layout_height

=

"match_parent"

tools:context

=

".ActivityKedua"

>

<

Button

android:id

=

"@+id/back"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:layout_alignParentLeft

=

"true"

android:layout_alignParentTop

=

"true"

android:text

=

"Kembali"

/>

</

RelativeLayout

>

6.

Modifkasi ActivityKedua.java seperti dibawah ini

package com.example.intentpertama;

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 ActivityKedua extends Activity {

@Override

(18)

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_kedua);

Button back = (Button)findViewById(R.id.back);

back.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

Intent intent = new Intent();

setResult(RESULT_OK, intent);

finish();

// TODO Auto-generated method stub

}

});

} }

7.

Jalankan aplikasi seperti gambar 3.3

Gambar 3.3 : hasil aplikasi intent sederhana

LATIHAN 1 MEMBUAT KONVERSI BERAT BADAN

Aplikasi konversi berat badan ini menggunakan dua buah activity. Activity pertama berisi

inputan nama, username, dan button. Activity kedua berisi textfield dan button.

(19)

Gambar 3.4 : membuat project beratbadan

2.

Modifkasi activitymmain.mml seperti dibawah ini

<

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"

tools:context

=

".MainActivity"

>

<

TextView

android:id

=

"@+id/textView1"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Username"

/>

<

EditText

android:id

=

"@+id/username"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:ems

=

"10"

>

android:layout_height

=

"wrap_content"

android:text

=

"Password"

/>

<

EditText

android:id

=

"@+id/password"

android:layout_width

=

"match_parent"

(20)

android:layout_height

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Login"

/>

</

LinearLayout

>

3.

Modifkasi mainactivity.java seperti dibawah ini

package com.example.latihan1;

import android.os.Bundle;

import android.app.Activity;

public

class

MainActivity

extends

Activity

implements

android.view.View.OnClickListener {

EditText username, password;

Button login;

String user = "yuni", pass = "12345";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

username = (EditText)findViewById(R.id.username);

password = (EditText)findViewById(R.id.password);

login = (Button)findViewById(R.id.login);

login.setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

@Override

public void onClick(View arg0) {

try{

if(arg0.getId() == R.id.login){

(21)

}

}

catch (Exception e){

Toast.makeText(getBaseContext(), "Anda Tidak Berhak

Masuk", Toast.LENGTH_LONG).show();

}

}

}

4.

Modifkasi activitymmain2.mml sperti dibawah ini

<

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"

tools:context

=

".Main2Activity"

>

<

TextView

android:id

=

"@+id/textView1"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Masukkan Berat Badan"

/>

<

EditText

android:id

=

"@+id/berat"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:ems

=

"10"

android:layout_height

=

"wrap_content"

android:text

=

"Masukkan Tinggi Badan"

/>

<

EditText

android:id

=

"@+id/tinggi"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:ems

=

"10"

android:inputType

=

"number"

/>

<

Button

android:id

=

"@+id/hasil"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

android:text

=

"Hasil"

/>

<

TextView

(22)

android:id

=

"@+id/output"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Hasil"

/>

<

Button

android:id

=

"@+id/back"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

android:text

=

"Back"

/>

<

Button

android:id

=

"@+id/exit"

android:layout_width

=

"fill_parent"

android:layout_height

=

"wrap_content"

android:text

=

"Exit"

/>

</

LinearLayout

>

5.

Modifkasi Main2Activity.java seperti dibawah ini

package com.example.latihan1;

import android.os.Bundle;

import android.app.Activity;

public class Main2Activity extends Activity implements OnClickListener {

Button hasil, back, exit;

EditText berat, tinggi;

TextView output;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main2);

berat = (EditText)findViewById(R.id.berat);

tinggi = (EditText)findViewById(R.id.tinggi);

output = (TextView)findViewById(R.id.output);

hasil = (Button)findViewById(R.id.hasil);

back = (Button)findViewById(R.id.back);

exit = (Button)findViewById(R.id.exit);

hasil.setOnClickListener(this);

back.setOnClickListener(this);

exit.setOnClickListener(this);

}

@Override

(23)

getMenuInflater().inflate(R.menu.activity_main2, menu);

return true;

}

@Override

public void onClick(View v) {

int angka = 110; //angka ideal

int

angka1

=

Integer.parseInt(berat.getText().toString()); //merubah dari string

edittext ke integer

int angka2 = Integer.parseInt(tinggi.getText().toString());

int ideal = angka2 - angka1; //berat badan ideal

int ideal2 = angka2 - angka; //berat badan yang disarankan

try{

if(v.getId() == R.id.hasil){ //button hasil

if(ideal == 110){

output.setText("Berat Badan Anda Ideal");

}else if (ideal > 110){

output.setText("Anda Kurus");

}else{

output.setText("Anda Gemuk, berat Anda

"+angka1+" Tinggi Anda "+angka2+" Seharusnya Berat badan anda "+ideal2);

}

}else if (v.getId() == R.id.exit){

AlertDialog.Builder

builder

=

new

AlertDialog.Builder(this);

builder.setMessage("Apakah

Anda

Ingin

Keluar ?").setCancelable(false)

.setPositiveButton("OK",

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int

arg1) {

(24)

which) {

dialog.cancel();

}

}).setNeutralButton("Cancel",

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int

which) {

dialog.dismiss();

}

}).show();

}else if (v.getId() == R.id.back){

Intent

i

=

new

Intent(getBaseContext(),

MainActivity.class);

startActivityForResult(i, 0);

}else{

Toast.makeText(getBaseContext(),

"Masukkan

Berat dan Tinggi Badan Anda", Toast.LENGTH_SHORT).show();

output.setText("Masukkan Angka Dulu");

}

}catch(Exception e){

Toast.makeText(getBaseContext(),

"Hahaha",

Toast.LENGTH_SHORT).show();

}

}

}

(25)

Gambar 3.6 : hasil aplikasi konversi berat badan

(26)

PERTEMUAN 4

Pada bagian ini, kita akan mempelajari :

Membuat aplikasi kalkulator sederhana

Pengenalan Autocomplete

...…

MEMBUAT APLIKASI KALKULATOR

1. Buat project dengan nama kalkulator

Gambar 4.1 : membuat aplikasi kalkulator

2. Modifikasi main.xml seperti pada gambar 4.2.

(27)

3. Modifikasi mainactivity.java seperti dibawah ini

package com.example.hitung_sederhana;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

public class MainActivity extends Activity implements OnClickListener {

EditText a, b, c;

Button tambah, kurang, kali, bagi, next;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

a = (EditText) findViewById(R.id.a);

b = (EditText) findViewById(R.id.b);

c = (EditText) findViewById(R.id.c);

tambah = (Button) findViewById(R.id.tambah);

kurang = (Button) findViewById(R.id.kurang);

kali = (Button) findViewById(R.id.kali);

bagi = (Button) findViewById(R.id.bagi);

next = (Button)findViewById(R.id.next);

tambah.setOnClickListener(this);

public void onClick(View v) {

int angka1 = Integer.parseInt(a.getText().toString());

int angka2 = Integer.parseInt(b.getText().toString());

int hasil = angka1 + angka2;

int hasil2 = angka1 - angka2;

int hasil3 = angka1 * angka2;

float hasil4 = angka1 / angka2;

try {

if (v.getId() == R.id.tambah) {

(28)

c.setText(Integer.toString(hasil));

} else if (v.getId() == R.id.kurang) {

c.setText(Integer.toString(hasil2));

} else if (v.getId() == R.id.kali) {

c.setText(Integer.toString(hasil3));

} else if (v.getId() == R.id.bagi){

c.setText(Float.toString(hasil4));

} else {

Intent

i

=

new

Intent(getBaseContext(),

MainActivity2.class);

startActivityForResult(i, 0);

}

} catch (Exception e) {

Toast.makeText(getBaseContext(),

"Salah",

Toast.LENGTH_LONG).show();

c.setText("Tak Terhingga ~");

}

// ketiga.settext(string.valueof(hasil)).tostring());

}

}

4.

Modifkasi main2.mml

<

RelativeLayout

xmlns:android

=

"http://schemas.android.com/apk/res/android"

xmlns:tools

=

"http://schemas.android.com/tools"

android:layout_width

=

"match_parent"

android:layout_height

=

"match_parent"

tools:context

=

".MainActivity2"

>

<

TextView

android:id

=

"@+id/textView1"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:layout_centerHorizontal

=

"true"

android:layout_centerVertical

=

"true"

android:text

=

"@string/hello_world"

/>

<

Button

android:id

=

"@+id/back"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:layout_alignParentTop

=

"true"

android:layout_alignRight

=

"@+id/textView1"

android:layout_marginTop

=

"40dp"

(29)

5.

Modifkasi mainactivity2.mml seperti dibawah ini

package com.example.hitung_sederhana;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

public class MainActivity2 extends Activity implements OnClickListener {

Button back;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main_activity2);

back = (Button)findViewById(R.id.back);

back.setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main_activity2,

menu);

return true;

}

@Override

public void onClick(View v) {

if (v.getId() == R.id.back){

Intent

i

=

new

Intent(getBaseContext(),

MainActivity.class);

startActivityForResult(i, 0);

}else{

Toast.makeText(getBaseContext(),

"Salah",

Toast.LENGTH_LONG).show();

back.setText("Salah Le... ~");

}

}

}

MEMBUAT APLIKASI DENGAN AUTOCOMPLETE

1. Buat project dengan nama latihan2

(30)

Gambar 4.3 : membuat project latihan2

2.

Modifkasi main.mml seperti dibawah ini

<

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"

tools:context

=

".MainActivity"

>

<

TextView

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"NAMA"

/>

<

EditText

android:id

=

"@+id/nama"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:ems

=

"10"

>

<

requestFocus

/>

</

EditText

>

<

TextView

android:id

=

"@+id/textView1"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"NIM"

/>

<

EditText

android:id

=

"@+id/nim"

android:layout_width

=

"match_parent"

(31)

android:ems

=

"10"

/>

<

TextView

android:id

=

"@+id/seleksi"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"ASAL PROVINSI"

/>

<

AutoCompleteTextView

android:id

=

"@+id/provinsi"

android:layout_width

=

"match_parent"

android:layout_height

=

"wrap_content"

android:ems

=

"10"

android:text

=

"Provinsi"

/>

<

TextView

android:id

=

"@+id/textView3"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"JENIS KELAMIN"

/>

android:layout_height

=

"wrap_content"

android:text

=

"Pria"

/>

<

RadioButton

android:id

=

"@+id/wanita"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Wanita"

/>

</

RadioGroup

>

<

TextView

android:id

=

"@+id/textView4"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"ANDA SETUJU DENGAN SEGALA KETENTUAN DARI KAMI "

/>

<

CheckBox

android:id

=

"@+id/ya"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:text

=

"Ya"

/>

<

ImageButton

android:id

=

"@+id/create"

android:layout_width

=

"wrap_content"

android:layout_height

=

"wrap_content"

android:src

=

"@android:drawable/ic_input_add"

/>

</

LinearLayout

>

(32)

3.

Modifkasi activity.java seperti dibawah ini

package com.example.latihan2;

import android.R.string;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity extends Activity implements OnClickListener,

TextWatcher, RadioGroup.OnCheckedChangeListener{

EditText nama, nim;

TextView seleksi;

AutoCompleteTextView provinsi;

RadioGroup jk;

CheckBox ya;

String item[] = {"Jawa Tengah", "Jawa Timur", "Jawa Barat",

"Sumatera Selatan", "Sumatera Utara"};

ImageButton create;

String user="yuni", pass="12345";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

seleksi = (TextView)findViewById(R.id.seleksi);

provinsi = (AutoCompleteTextView)findViewById(R.id.provinsi);

provinsi.addTextChangedListener(this);

provinsi.setAdapter(new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, item));

nama = (EditText)findViewById(R.id.nama);

nim = (EditText)findViewById(R.id.nim);

create = (ImageButton)findViewById(R.id.create);

create.setOnClickListener(this);

ya = (CheckBox)findViewById(R.id.ya);

jk = (RadioGroup)findViewById(R.id.jk);

jk.setOnCheckedChangeListener(this);

}

@Override

public void onClick(View arg0) {

try{

if(arg0.getId() == R.id.create){

(33)

MainActivity2.class);

startActivityForResult(i, 0);

}

}

catch (Exception e){

Toast.makeText(getBaseContext(), "Anda Tidak Berhak

Masuk", Toast.LENGTH_LONG).show();

}

}

@Override

public void afterTextChanged(Editable s) {

}

@Override

public void beforeTextChanged(CharSequence s, int start, int

count,int after) {

}

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

seleksi.setText(provinsi.getText());

}

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

}

}

4. Modifikasi main2.xml seperti gambar dibawah ini

Gambar 4.4 : tampilan activity kedua

(34)

5.

Modifkasi activity2.java seperti gambar dibawah ini

package com.example.latihan2;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity2 extends Activity implements OnClickListener {

Button exit, back;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main2);

back = (Button)findViewById(R.id.back);

exit = (Button)findViewById(R.id.exit);

back.setOnClickListener(this);

exit.setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main2, menu);

return true;

}

@Override

public void onClick(View v) {

try{

if(v.getId() == R.id.exit){

AlertDialog.Builder

builder

=

new

AlertDialog.Builder(this);

builder.setMessage("Apakah

Anda

Ingin

Keluar ?").setCancelable(false)

.setPositiveButton("OK",

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int

arg1) {

MainActivity2.this.finish();

}

})

(35)

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int

which) {

dialog.cancel();

}

}).setNeutralButton("Cancel",

new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int

which) {

dialog.dismiss();

}

}).show();

}else if (v.getId() == R.id.back){

Intent

i

=

new

Intent(getBaseContext(),

MainActivity.class);

startActivityForResult(i, 0);

}

}catch(Exception e){

Toast.makeText(getBaseContext(),

"Hahaha",

Toast.LENGTH_SHORT).show();

}

}

}

6. Jalankan aplikasi

(36)

Gambar 4.5 : hasil tampilan aplikasi

(37)

Pada bagian ini, kita akan mempelajari :

Membuat aplikasi database sederhana dengan SQLite

...

PENGENALAN SQLite

SQLite adalah database yang dibangun di Android. Hampir sama dengan SQL pada

dekstop, SQLite memiliki fiture relasional database namun membutuhkan sedikit memori.

SQLite terdapat pada semua perangkat Android. Anda culup mendefinisikan

perintah SQL untuk meng-create atau meng-update database, selanjutnya sistem ada

Android akan menangani hal-hal yang berhubungan dengn database. SQLite database

otomatis akan tersimpan didalam path data/data/nama_package/database/nama_database.

PEMBUATAN APLIKASI

1. Buat project baru dengan nama AndroidCrudExample. Lalu setelah itu modifikasi

layout activity_main.xml sesuai dengan gambar berikut;

Gambar 5.1 layout activity_main.xml

2. Kemudian buat activity baru dengan nama student_input_form.xml. Setelah selesai

membuat activity baru jangan lupa untuk menginisialisasikannya pada file

AndroidManifest.xml agar activity dapat kenal/dijalankan.

Gambar 5.2 student_input_form

3. Setelah itu buat file DatabaseHandler.java

import android.content.Context;

(38)

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHandler extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;

protected static final String DATABASE_NAME = "StudentDatabase";

public DatabaseHandler(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

String sql = "CREATE TABLE students " +

"( id INTEGER PRIMARY KEY AUTOINCREMENT, " +

"firstname TEXT, " +

"email TEXT ) ";

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

String sql = "DROP TABLE IF EXISTS students";

db.execSQL(sql);

onCreate(db);

}

}

4. Kemudian itu buat lagi file ObjectStudent

.java

public class ObjectStudent {

int id;

String firstname;

String email;

(39)

}

}

5. S

etelah itu modifkasi fle MainActivity.java (bagi yang tidak memiliki

atau belum membuat fle MainActivity.java buat terlebih dahulu)

import java.util.List;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button buttonCreateLocation = (Button) findViewById(R.id.buttonCreateStudent);

public void countRecords() {

int recordCount = new TableControllerStudent(this).count();

TextView textViewRecordCount = (TextView) findViewById(R.id.textViewRecordCount);

textViewRecordCount.setText(recordCount + " records found.");

}

public void readRecords() {

LinearLayout linearLayoutRecords = (LinearLayout) findViewById(R.id.linearLayoutRecords);

linearLayoutRecords.removeAllViews();

List<ObjectStudent> students = new TableControllerStudent(this).read();

(40)

if (students.size() > 0) {

for (ObjectStudent obj : students) {

int id = obj.id;

String studentFirstname = obj.firstname;

String studentEmail = obj.email;

String textViewContents = studentFirstname + " - " + studentEmail;

TextView textViewLocationItem = new TextView(this);

textViewLocationItem.setPadding(0, 10, 0, 10);

textViewLocationItem.setText(textViewContents);

TextView locationItem = new TextView(this);

locationItem.setPadding(8, 8, 8, 8);

locationItem.setText("No records yet.");

linearLayoutRecords.addView(locationItem);

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

6.

Lalu kemudian buat fle TableControllerStudent.java

(41)

import java.util.List;

import android.database.sqlite.SQLiteDatabase;

public class TableControllerStudent extends DatabaseHandler {

public TableControllerStudent(Context context) {

super(context);

}

public boolean create(ObjectStudent objectStudent) {

ContentValues values = new ContentValues();

values.put("firstname", objectStudent.firstname);

values.put("email", objectStudent.email);

SQLiteDatabase db = this.getWritableDatabase();

boolean createSuccessful = db.insert("students", null, values) > 0;

db.close();

return createSuccessful;

}

public List<ObjectStudent> read() {

List<ObjectStudent> recordsList = new ArrayList<ObjectStudent>();

String sql = "SELECT * FROM students ORDER BY id DESC";

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery(sql, null);

if (cursor.moveToFirst()) {

do {

int id =

Integer.parseInt(cursor.getString(cursor.getColumnIndex("id")));

String studentFirstname = cursor.getString(cursor.getColumnIndex("firstname"));

String studentEmail = cursor.getString(cursor.getColumnIndex("email"));

ObjectStudent objectStudent = new ObjectStudent();

objectStudent.id = id;

(42)

objectStudent.firstname = studentFirstname;

objectStudent.email = studentEmail;

recordsList.add(objectStudent);

} while (cursor.moveToNext());

}

cursor.close();

db.close();

return recordsList;

}

public ObjectStudent readSingleRecord(int studentId) {

ObjectStudent objectStudent = null;

String sql = "SELECT * FROM students WHERE id = " + studentId;

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery(sql, null);

if (cursor.moveToFirst()) {

int id =

Integer.parseInt(cursor.getString(cursor.getColumnIndex("id")));

String firstname =

cursor.getString(cursor.getColumnIndex("firstname"));

String email =

cursor.getString(cursor.getColumnIndex("email"));

objectStudent = new ObjectStudent();

objectStudent.id = id;

objectStudent.firstname = firstname;

objectStudent.email = email;

}

cursor.close();

db.close();

return objectStudent;

}

public boolean update(ObjectStudent objectStudent) {

(43)

values.put("firstname", objectStudent.firstname);

values.put("email", objectStudent.email);

String where = "id = ?";

String[] whereArgs = { Integer.toString(objectStudent.id) };

SQLiteDatabase db = this.getWritableDatabase();

boolean updateSuccessful = db.update("students", values, where, whereArgs) > 0;

db.close();

return updateSuccessful;

}

public boolean delete(String id) {

SQLiteDatabase db = this.getWritableDatabase();

boolean deleteSuccessful = db.delete("students", "id = " + id, null) > 0;

db.close();

return deleteSuccessful;

}

public int count() {

SQLiteDatabase db = this.getWritableDatabase();

String sql = "SELECT * FROM students";

int recordCount = db.rawQuery(sql, null).getCount();

db.close();

return recordCount;

}

}

7. Buat file java dengan nama OnClickListenerCreateStudent

.java

import android.app.AlertDialog;

import android.content.Context;

public class OnClickListenerCreateStudent implements OnClickListener {

@Override

(44)

public void onClick(View view) {

final Context context = view.getContext();

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View formElementsView =

inflater.inflate(R.layout.student_input_form, null, false);

final EditText editTextStudentFirstname = (EditText) formElementsView.findViewById(R.id.editTextStudentFirstname);

final EditText editTextStudentEmail = (EditText) formElementsView.findViewById(R.id.editTextStudentEmail);

new AlertDialog.Builder(context)

.setView(formElementsView)

.setTitle("Create Student")

.setPositiveButton("Add",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

String studentFirstname = editTextStudentFirstname.getText().toString();

String studentEmail = editTextStudentEmail.getText().toString();

ObjectStudent objectStudent = new ObjectStudent();

objectStudent.firstname = studentFirstname;

objectStudent.email = studentEmail;

boolean createSuccessful = new TableControllerStudent(context).create(objectStudent);

if(createSuccessful){

Toast.makeText(context, "Student information was saved.", Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(context, "Unable to save student information.", Toast.LENGTH_SHORT).show();

}

(45)

((MainActivity) context).readRecords();

8. Buat file java lainnya denga nama OnLongClickListenerStudentRecord

.java

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

public class OnLongClickListenerStudentRecord implements OnLongClickListener {

Context context;

String id;

@Override

public boolean onLongClick(View view) {

context = view.getContext();

id = view.getTag().toString();

final CharSequence[] items = { "Edit", "Delete" };

new AlertDialog.Builder(context).setTitle("Student Record")

.setItems(items, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int item) {

if (item == 0) {

editRecord(Integer.parseInt(id));

}

else if (item == 1) {

boolean deleteSuccessful = new TableControllerStudent(context).delete(id);

if (deleteSuccessful){

Toast.makeText(context, "Student record was deleted.", Toast.LENGTH_SHORT).show();

(46)

}else{

Toast.makeText(context, "Unable to delete student record.", Toast.LENGTH_SHORT).show();

}

public void editRecord(final int studentId) {

final TableControllerStudent tableControllerStudent = new TableControllerStudent(context);

ObjectStudent objectStudent =

tableControllerStudent.readSingleRecord(studentId);

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

final View formElementsView =

inflater.inflate(R.layout.student_input_form, null, false);

final EditText editTextStudentFirstname = (EditText) formElementsView.findViewById(R.id.editTextStudentFirstname);

final EditText editTextStudentEmail = (EditText) formElementsView.findViewById(R.id.editTextStudentEmail);

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

(47)

ObjectStudent();

objectStudent.id = studentId;

objectStudent.firstname = editTextStudentFirstname.getText().toString();

objectStudent.email = editTextStudentEmail.getText().toString();

boolean updateSuccessful = tableControllerStudent.update(objectStudent);

if(updateSuccessful){

Toast.makeText(context, "Student record was updated.", Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(context, "Unable to update student record.", Toast.LENGTH_SHORT).show();

}

((MainActivity) context).countRecords();

((MainActivity) context).readRecords();

dialog.cancel();

}

}).show();

}

}

9. Setelah semua selesai dibuat, coba jalankan. apakah sesuai dengan gambar dibawah

?

Gambar 5.3 : Tampilan awal aplikasi

(48)

Gambar 5.4 : Tampilan input data

Gambar 5.5 : Tampilan saat data berhasil diinsert

(49)

PERTEMUAN 6

Pada bagian ini, kita akan mempelajari :

Membuat aplikasi database sederhana dengan PHP MYSQL

...

PEMBUATAN PROJECT

1. Buat project baru dengan nama AndroidConnectingToPhpMySQL. Kemudian buat

mysql database dengan nama android_connect dengan tabel product dan fieldnya

seperti pada gambar.

(50)

Gambar 6.1 Database

2. Setelah database selesai dibuat, kemudia buat buat folder android_connect pada C:\

xampp\htdocs\android_connect

setelah itu fle dbmconnect.php untuk

koneksi kedatabase yang disimpan kedalam folder tersebut.

<?php

class DB_CONNECT {

function __construct() {

// connecting to database

$this->connect();

}

function __destruct() {

$this->close();

}

function connect() {

require_once __DIR__ . '/db_config.php';

$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());

$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());

return $con;

}

function close() {

// closing db connection

mysql_close();

(51)

}

?>

3. Kemudian

buat fle dbmconfg.php

<?php

define('DB_USER', "root"); // db user

define('DB_PASSWORD', ""); // db password (mention your db password here)

define('DB_DATABASE', "android_connect"); // database name

define('DB_SERVER', "localhost"); // db server

?>

4. Kemudian buat file

createmproduct.php

<?php

$response = array();

if (isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) {

$name = $_POST['name'];

$price = $_POST['price'];

$description = $_POST['description'];

require_once __DIR__ . '/db_connect.php';

$db = new DB_CONNECT();

$result = mysql_query("INSERT INTO products(name, price, description) VALUES('$name', '$price', '$description')");

if ($result) {

$response["success"] = 1;

$response["message"] = "Product successfully created.";

echo json_encode($response);

} else {

$response["success"] = 0;

$response["message"] = "Oops! An error occurred.";

echo json_encode($response);

(52)

}

} else {

$response["success"] = 0;

$response["message"] = "Required field(s) is missing";

echo json_encode($response);

}

?>

5. Kemudian buat file

updatemproduct.php

<?php

$response = array();

if (isset($_POST['pid']) && isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) {

$pid = $_POST['pid'];

$name = $_POST['name'];

$price = $_POST['price'];

$description = $_POST['description'];

require_once __DIR__ . '/db_connect.php';

$db = new DB_CONNECT();

$result = mysql_query("UPDATE products SET name = '$name', price = '$price', description = '$description' WHERE pid = $pid");

if ($result) {

$response["success"] = 1;

$response["message"] = "Product successfully updated.";

echo json_encode($response);

} else {

}

} else {

$response["success"] = 0;

$response["message"] = "Required field(s) is missing";

(53)

}

?>

6. Kemudian juga buat file

deletemproduct.php

<?php

$response = array();

if (isset($_POST['pid'])) {

$pid = $_POST['pid'];

require_once __DIR__ . '/db_connect.php';

$db = new DB_CONNECT();

$result = mysql_query("DELETE FROM products WHERE pid = $pid");

if (mysql_affected_rows() > 0) {

$response["success"] = 1;

$response["message"] = "Product successfully deleted";

echo json_encode($response);

} else {

$response["success"] = 0;

$response["message"] = "No product found";

echo json_encode($response);

}

} else {

$response["success"] = 0;

$response["message"] = "Required field(s) is missing";

echo json_encode($response);

}

?>

7. Selanjutnya buat file

getmallmproducts.php

<?php

$response = array();

(54)

require_once __DIR__ . '/db_connect.php';

$db = new DB_CONNECT();

$result = mysql_query("SELECT *FROM products") or die(mysql_error());

if (mysql_num_rows($result) > 0) {

$response["products"] = array();

while ($row = mysql_fetch_array($result)) {

$product = array();

$product["pid"] = $row["pid"];

$product["name"] = $row["name"];

$product["price"] = $row["price"];

$product["description"] = $row["description"];

$product["created_at"] = $row["created_at"];

$product["updated_at"] = $row["updated_at"];

array_push($response["products"], $product);

}

$response["success"] = 1;

echo json_encode($response);

} else {

$response["success"] = 0;

$response["message"] = "No products found";

echo json_encode($response);

}

?>

8. Buat juga

getmproductmdetails.php

<?php

$response = array();

require_once __DIR__ . '/db_connect.php';

$db = new DB_CONNECT();

if (isset($_GET["pid"])) {

$pid = $_GET['pid'];

(55)

if (!empty($result)) {

$response["message"] = "Required field(s) is missing";

echo json_encode($response);

}

?>

(56)

9. setelah selesai coba akses

http://localhost/android_connect/db_connect.php

untuk

melihat apakah koneksi berjalan dengan baik. jika koneksi berjalan dengan baik

kembali keproject android lalu buat main layout dengan nama main_screen.xml

dengan tampilan seperti pada gambar berikut;

Gambar 6.2 Layout main_screen.xml

10. kemudian buat juga layout untuk tampilan add_product, all_products, edit-product,

dan list_item

(57)

Gambar 6.5 Layout edit_product.xml

Gambar 6.6 Layout item_list.xml

11. S

etelah layout selesai dibuat, kemudian lanjut buat fle JSONParser.java

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import android.util.Log;

public class JSONParser {

static InputStream is = null;

static JSONObject jObj = null;

static String json = "";

// constructor

public JSONParser() {

}

// function get json from url

// by making HTTP POST or GET mehtod

public JSONObject makeHttpRequest(String url, String method,

List<NameValuePair> params) {

(58)

// Making HTTP request

try {

// check for request method

if(method == "POST"){

// request method is POST

// defaultHttpClient

DefaultHttpClient httpClient = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(url);

httpPost.setEntity(new UrlEncodedFormEntity(params));

HttpResponse httpResponse = httpClient.execute(httpPost);

HttpEntity httpEntity = httpResponse.getEntity();

is = httpEntity.getContent();

}else if(method == "GET"){

// request method is GET

DefaultHttpClient httpClient = new DefaultHttpClient();

String paramString = URLEncodedUtils.format(params, "utf-8");

url += "?" + paramString;

HttpGet httpGet = new HttpGet(url);

HttpResponse httpResponse = httpClient.execute(httpGet);

HttpEntity httpEntity = httpResponse.getEntity();

is = httpEntity.getContent();

}

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

(59)

}

try {

BufferedReader reader = new BufferedReader(new InputStreamReader(

is, "iso-8859-1"), 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 parse the string to a JSON object

try {

jObj = new JSONObject(json);

} catch (JSONException e) {

Log.e("JSON Parser", "Error parsing data " + e.toString());

}

// return JSON String

return jObj;

}

}

12.

lalu buat NewProductActivity.java

import java.util.ArrayList;

import java.util.List;

import com.example.androidhive.R;

Gambar

Gambar 1.3 : Tampilan SDK Manager
Gambar 1.5 : membuat Android Virtual Device
Gambar 1.6 : konfigurasi AVD
Gambar 2.1 : membuat project alertlist
+7

Referensi

Dokumen terkait

Sedangkan untuk hasil penelitian setelah dilakukan intervensi adalah dari 53 responden, didapatkan hasil bahwa sesudah diberikan terapi aktivitas terjadwal responden

Hasil uji Indeks Ochiai diperoleh akar kuning tidak berasosiasi dengan jenis tumbuhan dominan karena indeks asosiasi sangat rendah dengan &lt; 0,22 (17 jenis semai dan

GUI (Graphical User Interface) pada aplikasi android terdiri dari activity dan file layout XML yang terletak di dalam direktori res/layout.. Untuk memanggil file layout XML

5 Tahun 1969 yang telah diganti dengan Undang-Undang Pokok Kehutanan (UUPK) No. 167) , dalam Penjelasan Umum disebutkan bahwa sejalan dengan Pasal 33 UUD 1945 sebagai

Asumsi dasar pendekatan Gestalt tentang manusia adalah bahwa individu dapat mengatasi sendiri permasalahannya dalam hidup terutama bila mereka menggunakan kesadaran

(kuis) sebanyak dua kali sebelum UTS dan dua kali sebelum UAS (rincian detailnya tercantum dalam rancangan pembelajaran semester (RPS). Kompetensi Softskill : Manajemen

Sinopsis Kursus ini membincangkan isu, cabaran dan program pelestarian bahasa Melayu melalui nyanyian lagu rakyat, nilai dan pemikiran dalam lagu rakyat, kreativiti

Ketentuan peraturan perundang-undangan di bidang perasuransian dapat mengatur kriteria selain huruf a sampai dengan huruf c sebagai dasar bagi Otoritas Jasa Keuangan