Tutorial Membuat Aplikasi dengan Database (MySQL) menggunakan android studio


 
    

PERTEMUAN KE – 13
Aplikasi dengan Database (MySQL)
I. TUJUAN
Mahasiswa diharapkan dapat memahami dan mengetahui tentang komponen widget,
yaitu Webservice, mysql dan json yang digunakan pada aplikasi mobile.

II. PEMBAHASAN PRAKTIK DAN LATIHAN :
Pada praktikum kali kita akan melanjutkan untuk tugas pada pertemuan sebelumya dimana kita akan membuat sebuah aplikasi client untuk mengakses API dari suatu wabservice menggunakan JSON dimana API pada tugas kali ini akan menampilkan informasi cuaca pada suatu lokasi selama satu minggu. berikut adalah penjelasaan dari program yang sudah saya buat:
  1. Activity_main.xml
<Button
android:text="Seminggu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/butoon1"
android:layout_marginStart="21dp"
android:layout_below="@+id/lokasi"
android:layout_toEndOf="@+id/button1" />
</RelativeLayout>
Penjelasan :
pada praktikum kali ini saya menambahkan sebuah tombol button pada activity di interface pada halaman utama yang kemarin saya buat dimana tombol button tersebut nantinya akan berguna untuk menampilkan informasi mengenai cuaca selama 5 hari .tombol button tersebut mempunyai event ketika diklik akan menampilkan halaman baru .
2. Menambahkan beberapa script java pada kelas Main_Activity.java
Pada kelas ini saya menambahkan sebuah intent dimana intent merupakan suatu pesan yang digunakan untuk mengaktifkan tiga komponen dasar pada aplikasi Android yaitu Activity, Service, dan Broadcast Receiver. Aktifasi pada komponen-komponen tersebut bisa terjadi pada aplikasi yang sama atau berbeda, sepertimenjalankan Activity,inisiasi Service, atau pengiriman pesan kepada Broadcast Receiver. Pada saat terjadi komunikasi antar komponen, Intent menyimpan paket informasi yang digunakan pada proses tersebut.berikut adalah scribtnya :
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.icu.text.SimpleDateFormat;
import android.icu.util.Calendar;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import static akakom.lab.student.myapplication.R.id. kelembapan;
import static akakom.lab.student.myapplication.R.id. negara;
import static akakom.lab.student.myapplication.R.id. suhu;
import static akakom.lab.student.myapplication.R.id. tekanan;
import static android.R.attr.id;
//untuk menghandle atau deklarasi untuk elemen yang akan digunakan pada fungsi java yang
//akan dibuat, import activity digunakan agar mengetahui dimana activity elemen yang sudah
//di deklarasikan akan dipanggil.
public class MainActivity extends AppCompatActivity {
private String url1 = "http://api.openweathermap.org/data/2.5/weather?q=";
//merupakan deklarasi url yang berisi alamat api yang akan digunakan dari wab server
//openweathermap.org.
MySQLHelper dbHelper;
private EditText location, country, humidity, pressure, temperature, sunrise, speed;
private ImageView gambar;
private HandleJSON obj;
private TextView jam;
Button btn1,btn2; //merupakan deklarasi variabel dari komponen-komponen widget
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
jam = (TextView) findViewById(R.id.Jam);
gambar = (ImageView) findViewById(R.id.gambarCuaca );
location = (EditText) findViewById(R.id.lokasi);
country = (EditText) findViewById(negara);
temperature = (EditText) findViewById(suhu);
humidity = (EditText) findViewById(R.id.kelembapan );
pressure = (EditText) findViewById(R.id.tekanan);
sunrise = (EditText) findViewById(R.id.sunrise);
speed = (EditText) findViewById(R.id.speed);
//merupakan deklarasi variabel dengan nilai yang didapat dari inputan komponen-komponen
// widget sesuai idnya maing-masing
btn1 =(Button)findViewById(R.id.butoon1);
btn1.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
Intent keli = new Intent(MainActivity.this,Main2Activity.class); startActivity(keli);
}});} //pada praktikum ini saya menambahkan sebuah event untuk tombol button yang saya
//tambahkan dimana event dari tombol button itu berisi sebuah intent yang ketika tombol
// button diklik nanti maka akan diarahkan kedalam sebuah halaman baru yang bernama
//Main2Activity
public void open(View view) {
String url = location.getText().toString().trim();
//deklarasi variabel url yang berisi data lokasi yang kita inputkan
String finalUrl = url1 + url + "&APPID=d9793cc166c0aa14865c2b34a7f9e8a9";
//variabel finalUrl berisi variabel url1 yang digabung dengan variabel url dan digabung
// lagi dengan APPID yang didapat dari alamat api yang kita gunakan
country.setText(finalUrl);
obj = new HandleJSON(finalUrl);
//objek untuk memanggil kelas HandleJSON dengan parameter berisi variabel finalUrl
obj.fetchJSON();
//untuk memanggil method fetchJSON() kedalam objek dimana Data yang diperoleh biasanya
// berbentuk JSON dan kita dapat memanfaatkan library dari FastJSON ini untuk melakukan
// konversi JSON tersebut.
while (obj.parsingComplete) ;
country.setText(obj.getCountry());
temperature.setText(String.valueOf (obj.getTemperature() + "°C"));
humidity.setText(obj.getHumidity() + " %");
pressure.setText(obj.getPressure() + " hPa");
speed.setText(obj.getSpeed() + " km/jam");
sunrise.setText(obj.getSunrise() + "second");
jam.setText(getTime());
Imageicon(obj.getIcon());
//sebuah perulangan yang digunakan untuk menampilkan nilai dari variabel-variabel yang
// didapat dari proses yang dilakukan oleh objek dengan nama obj diatas.
}
public static String getTime() {
SimpleDateFormat sdf1 = new SimpleDateFormat("d/M/yyyy h:m:s a");
Calendar calendar = Calendar.getInstance();
String strdate1 = sdf1.format(calendar.getTime());
return strdate1;
//methhod diatas berfungsi untuk menampilkan tanggal dengan format hari/tanggal/tahun
// serta waktu dengan format jam:menit:second
}
private void Imageicon(String image) {
if (image.equals("01d")) {
gambar.setImageResource(R.drawable.cerah);
} else if (image.equals("01n")) {
gambar.setImageResource(R.drawable.sedikitberawan );
} else if (image.equals("02d")) {
gambar.setImageResource(R.drawable.berawanpenuh);
} else if (image.equals("02n")) {
gambar.setImageResource(R.drawable.berawan);
} else if (image.equals("03d") || image.equals("03n")) {
gambar.setImageResource(R.drawable.cloudy);
} else if (image.equals("04d") || image.equals("04n")) {
gambar.setImageResource(R.drawable.fog);
} else if (image.equals("09d") || image.equals("10d") ||
image.equals("09n") || image.equals("10n")) {
gambar.setImageResource(R.drawable.chancerain);
} else if (image.equals("11d") || image.equals("11n")) {
gambar.setImageResource(R.drawable.chancetstorms);
} else if (image.equals("13d") || image.equals("13n")) {
gambar.setImageResource(R.drawable.chanceflurries );
//method diatas berisi sebuah penyeleksian yang berfungsi untuk mengecek nilai dari
//variabel image sebagai contoh jika nilainya sama dengan 01d maka image/gambar yang
// akan ditampilkan adalah file gambar dengan nama cerah yang berada pada drawable jika
// nilainya tidak sama dengan 01d maka akan dicek pada persyaratan lainya yang berada
// pada else if.
}}}
3. Membuat desain interface pada tampilan halaman intent dengan nama
activity_main2.xml
<? xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="akakom.lab.student.myapplication.Main2Activity">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:id="@+id/ListCuaca" />
</LinearLayout>
Penjelasan :
Interface activity_main2.xml ini merupakan interface yang nantinya akan ditampilkan oleh
intent dimana pada interface ini berisi sebuah komponen widget list view yang nantinya
akan digunakan untuk menampilkan list daftar hasil cuaca selama 5 hari.
4. Menambahkan scribt java pada kelas Main2Activity.java
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.TimeZone;
public class Main2Activity extends AppCompatActivity {
private String url1 = "http://samples.openweathermap.org/data/2.5/forecast/daily?
id=1621177&appid=b6907d289e10d714a6e88b30761fae22";
//merupakan deklarasi url yang berisi alamat api yang akan digunakan dari wab server
//openweathermap.org. pada praktikum ini saya mengisi variabel url1 dengan alamat api
// untuk menampilkan data cuaca selama 5 hari
private HandleJSONweek obj;
ArrayList<HashMap<String,String>> data;
//deklarasi variabel
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
obj = new HandleJSONweek(url1);
//objek untuk memanggil kelas HandleJSONweek dengan memberikan parameter berupa nilai
//variabel dari url1
data = new ArrayList<>(); //obejk untuk memanggil kelas arraylist
obj.fetchJSON(); //memanggil method fetchJSON kedalam objek bernama obj
while(obj.parsingComplete);
String[] cuaca; //= new String[7];String[] tekanan;// = new String[7];Integer[] suhu;
//sebuah perulangan untuk menampilkan nilai dari variabel array
String[] date = new String[10]; //merupakan objek yang akan digunakan untuk merubah data
//yang disimpan dalam variabel date ke dalam bentuk array
cuaca = obj.getDescription() ;
//variabel cuaca berisi data dari method getDescription()yang dipanggil oleh objek dengan
// nama obj
tekanan = obj.getPressure();
//variabel tekanan berisi data dari method getPressure()yang dipanggil oleh objek dengan
//nama obj
suhu = obj.getTemperature();
//variabel suhu berisi data dari method getTemperature()yang dipanggil oleh objek dengan
//nama obj
long[] utcTimeZone = new long[7];
//merupakan objek yang akan digunakan untuk merubah data yang disimpan dalam variabel
// utcTimeZone ke dalam bentuk array
String[] outputDateFormate = new String[7];
//merupakan objek yang akan digunakan untuk merubah data yang disimpan dalam variabel
//outputDateFormate ke dalam bentuk array
for (int k=0;k<7;k++){
outputDateFormate[k] ="dd-MM-yyyy - hh:mm a";
}
//perulangan untuk menampilkan data array yang disimpan oleh variabel
//outputDateFormate
int i=0;
while (i<7) {
utcTimeZone[i] = Long.parseLong (obj.getDateTime()[i]);
date[i] = getDateFromUTCTimestamp(utcTimeZone[i],outputDateFormate[i]);
HashMap<String, String> isi = new HashMap<>();
isi.put("tgl", date[i]);
isi.put("cuaca", cuaca[i]);
isi.put("tekanan", tekanan[i]);
isi.put("suhu", suhu[i].toString());
data.add(isi);
i++;
}
ListAdapter adapt = new SimpleAdapter(Main2Activity.this, data, R.layout.
activity_list__view ,
new String[]{"tgl","cuaca","tekanan","suhu"},
new int[]{R.id.tanggal, R.id.cuaca, R.id. tekanan, R.id.suhu});
ListView listView = (ListView) findViewById(R.id. ListCuaca);
//program dibawah merupakan event ketika komponen list view di klik
listView.setAdapter(adapt);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent detail = new Intent(Main2Activity.this, Main3Activity.class);
//sebuah objek untuk memanggil kelas intent yang akan digunakan untuk beralih kekelas
//Main3Activity
detail.putExtra("tgl", ((TextView) view.findViewById(R.id. tanggal)).getText().toString());
detail.putExtra("cuaca", ((TextView) view.findViewById(R.id.cuaca )).getText().toString());
detail.putExtra("tekanan", ((TextView) view.findViewById(R.id.tekanan)).getText().
toString());
detail.putExtra("suhu", ((TextView) view.findViewById(R.id. suhu)).getText().toString());
startActivity(detail);
}});} //untuk menampilkan nilai dari data tanggal,cuaca,tekanan dan suhu yang didapat
// dari intent detail kedalam komponen-komponen widget dengan id tanggal,cuaca,tekanan
//dan suhu
public String getDateFromUTCTimestamp(long mTimestamp, String mDateFormate) {
String date = null;
try {
Calendar cal = Calendar.getInstance(TimeZone. getTimeZone("UTC"));
cal.setTimeInMillis(mTimestamp * 1000L);
date = DateFormat.format(mDateFormate, cal.getTimeInMillis()).toString();
SimpleDateFormat formatter = new SimpleDateFormat(mDateFormate);
formatter.setTimeZone(TimeZone.getTimeZone ("UTC"));
Date value = formatter.parse(date);
SimpleDateFormat dateFormatter = new SimpleDateFormat(mDateFormate);
dateFormatter.setTimeZone(TimeZone.getDefault());
date = dateFormatter.format(value);
return date;
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
}
5. Menambahkan sebuah activity baru dengan nama activity_list__view.xml
<? xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_list__view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="akakom.lab.student.myapplication.Main2Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical"
android:layout_weight="1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tanggal"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cuaca"
android:visibility="gone"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tekanan"
android:visibility="gone"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/suhu"
android:visibility="gone"/>
</LinearLayout>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/cerah"/>
</LinearLayout>
Penjelasan :
Aktivity diatas berfungsi untuk menapilkan data kedalm list view dimana pada activity
ini kita menggunakan 2 linear layout dengan orintasi yang bebeda dimana pada layout
pertama saya menggunakan orientasi horizontal sehingga nanti akan menampilkan data
tanggal ,cuaca,tekanan dan suhu secara horizontal . untuk layout yang kedua kita
menambahkan layout dengan orientasi vertical sehingga nantinya akan menampilkan
gambar secara vertikal.
6. activity_main3.xml
<? xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="akakom.lab.student.myapplication.Main3Activity">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="26dp">
<TextView
android:text="Tanggal :"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/detail_tanggal"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="Suhu :"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Suhu"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/detail_suhu"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="Cuaca"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView7"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/detail_cuaca"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="73dp">
<TextView
android:text="Tekanan :"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView9"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/detail_tekanan"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
Penjelasan :
Activity diatas merupakan interface yang nantinya akan ditampilkan oleh intent
ketika salah satu data pada list view dipilih dimana pada interface ini akan
menampilkan informasi detail cuaca pada lokasi tertentu seperti tanggal ,cuaca ,suhu ,
dan tekanan.
7. Menambahkan scribt java pada kelas Main3Activity.java
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
//untuk menghandle atau deklarasi untuk elemen yang akan digunakan pada fungsi java yang
// akan dibuat, import activity digunakan agar mengetahui dimana activity elemen yang
//sudah di deklarasikan akan dipanggil.
public class Main3Activity extends AppCompatActivity {
private String tgl = "";
private String suhu = "";
private String cuaca = "";
private String tekanan = "";
TextView tanggal, dsuhu, dtekanan, dcuaca;
//merupakan deklarasi variabel
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. activity_main3);
tanggal = (TextView) findViewById(R.id. detail_tanggal);
dsuhu = (TextView) findViewById(R.id. detail_suhu);
dcuaca = (TextView) findViewById(R.id. detail_cuaca);
dtekanan = (TextView) findViewById(R.id. detail_tekanan);
//merupakan deklarasi variabel dengan nilai yang didapat dari inputan komponen-komponen
//widget sesuai idnya maing-masing
Intent in = getIntent();
//membuat objek in uuntuk memanggil kelas intent
tgl = in.getStringExtra("tgl");
suhu = in.getStringExtra("suhu");
cuaca = in.getStringExtra("cuaca");
tekanan = in.getStringExtra("tekanan");
//memasukkan nilai yang didapat dari variabel tgl,suhu,cuaca dan tekanan yang didapat
//dari kelas intent kedalam variabel tgl,suhu,cuaca dan tekanan yang baru.
tanggal .setText(tgl);
dsuhu .setText(suhu);
dtekanan .setText(tekanan);
dcuaca .setText(cuaca);
//untuk menampilkan nilai dari variabel tgl,suhu,tekanan dan cuaca kkedalam
//komponen-komponen widget

}}
8. HandleJSONweek.java
package akakom.lab.student.myapplication;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
//untuk menghandle atau deklarasi untuk elemen yang akan digunakan pada fungsi java
//yang akan dibuat, import activity digunakan agar mengetahui dimana activity elemen
//yang sudah di deklarasikan akan dipanggil.
public class HandleJSONweek {
//kelas HandleJSONweek merupakan kelas yang nantinya akan dipanggil pada kelas
// main2Activity.java
private String country = "country";
private String[] dateTime;
private Integer[] temperature ;
private String[] humidity = null;
private String[] pressure = null;
//merupakan deklarasi variabel array
private String urlString = null;
private String name = "";
private String description[] =null;
public volatile boolean parsingComplete = true;
//deklarasi variabel
public HandleJSONweek(String url){
this.urlString = url;}
public String getCountry(){
return country;}
public Integer[] getTemperature(){
for (int i=0;i<temperature.length;i++){
temperature[i] = temperature[i] -273;
//Perulangan untuk menampilkan data dari variabel array dengan persyarataan yaitu nilai
// dari variabel i lebih kecil dari nilai variabel temperature
}
return temperature;
}
public String[] getHumidity(){
return humidity;}
public String[] getPressure(){
return pressure;}
public String getCity(){
return name;}
public String[] getDescription(){
return description;}
public String[] getDateTime() {return dateTime;}
//method-method diatas berfungsi untuk mengembalikan nilai dari masing-masing
//variabel array.
public void readAndParseJSON(String in){
//method berikut berisi program-program yang akan digunakan untuk membaca nilai JSON
dateTime = new String[7];
temperature = new Integer[7];
pressure = new String[7];
humidity = new String[7];
description = new String[7];
//Merupakan deklarasi variabel-variabel yang akan digunakan sebagai aray dan telah
//diberi nilai indeks 7
try{
JSONObject reader = new JSONObject(in);
//String city = reader.getString("city");
JSONObject reader1 = reader.getJSONObject("city");
name = reader1.getString("name");
JSONArray jArr = reader.getJSONArray("list");
//pembuatan objek untuk mengakses JSONObject pada yang didapat dari url
// http://api.openweathermap.org/data/2.5/weather?q= dimana JSONObjek adalah sepasang
// nama/nilai yang tidak terurutkan. JSONObjek dimulai dengan { (kurung kurawal buka)dan
//diakhiri dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik dua) dan
// setiap pasangan nama/nilai dipisahkan oleh , (koma).
for (int i=0; i < jArr.length(); i++) {
//perulangan untuk menampilkan nilai yang disimppan oleh array
JSONObject obj = jArr.getJSONObject(i);
dateTime[i] = obj.getString("dt");
JSONObject temp = obj.getJSONObject("temp");
temperature[i]= temp.getInt("day");
pressure[i] = obj.getString("pressure");
humidity[i] = obj.getString("humidity");
JSONArray weather = obj.getJSONArray("weather");
//merupakan pemberian nilai pada variabel berdasarkan letak nilai tersebut pada objek
//dimana nilai Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau
//angka , atau true atau false atau null, atau sebuah objek atau sebuah larik.
for (int j=0;j<weather.length();j++) {
//perulangan untuk menampilkan nilai yang disimpan oleh variabel array dengan nama
//weather
JSONObject sWeather = weather.getJSONObject(j);
//pembuatan objek untuk mengakses JSONObject pada yang didapat dari url
description[i] = sWeather.getString("description");
//merupakan pemberian nilai pada variabel berdasarkan letak nilai tersebut pada objek }}
parsingComplete = false;
}catch (Exception e){
e.printStackTrace();}}
public void fetchJSON(){
Thread thread = new Thread(new Runnable(){
public void run(){
try{
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000/*miliseconds*/);
conn.setConnectTimeout(15000/*miliseconds*/);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
String data = convertStreamToString(stream);
readAndParseJSON(data);
stream.close();
}catch(Exception e){
e.printStackTrace();
}
}
});
thread.start();
}
//method run diatas berfungsi untuk mengconnect kan aplikasi kita ke url yang akan kita
//gunakan untuk mengambil data JSON.
private String convertStreamToString(InputStream is) {
// TODO Auto-generated method stub
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}}
HASIL :


III. KESIMPULAN :
Dari praktikum tersebut dapat disimpulkan bahwa :
  • untuk membuat sebuah project aplikasi android yang menggunakan komunikasi dari REST API webservice ke Android client (aplikasi) via koneksi internet. Data yang diperoleh berbentuk JSON dan untuk menampilkan hasil data yang didapat dari REST API webservice ke dalam aplikasi kita harus mengetahui struktur dari JSON wab service itu sendiri.
  • Untuk menambahkan sebuah halaman baru yang akan digunakan untuk menampilkan informasi mengenai cuaca dalam 5 hari kita harus menggunakan sebuah intent dimana intent tersebut akan mengarahkan kita ke halaman tertentu.

0 Response to " Tutorial Membuat Aplikasi dengan Database (MySQL) menggunakan android studio"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel