# Mengambil data dari ANTARES mengunakan Android

#### **Prasyarat**

* Java JDK. Belum menginstall? [Ikuti tutorial ini.](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
* Android Studio IDE. Belum menginstall? [Ikuti tutorial ini.](https://developer.android.com/studio/index.html)

#### **Create Android Application**

1. Download Antares Library untuk Android dengan klik button di bawah. Simpan .jar library kedalam penyimpanan lokal komputer Anda.\
   [DOWNLOAD](https://antares.id/assets/files/libraries/antares-http-api-0.9.jar)
2. Klik "Start a new Android Studio Application".\ <br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/15BV2BbD5CBH2oQhqgXB/image.png" alt=""><figcaption></figcaption></figure>
3. Beri nama pada aplikasi Anda.<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/DrbRPC6I1IR8oo2KHhWE/image.png" alt=""><figcaption></figcaption></figure>
4. Definisikan SDK target.<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/RcuQiJyp99SUikJ24f4l/image.png" alt=""><figcaption></figcaption></figure>
5. Definisikan Activity Anda. Kami menyarankan Anda untuk memilih "Empty Activity".<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/lqXwx9MabJgyfwQUFdbD/image.png" alt=""><figcaption></figcaption></figure>
6. Beri nama Activity Anda. Kami menyarankan Anda untuk memilih pilihan default "MainActivity".<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/mUo6MfGT1bl7nPpVshTD/image.png" alt=""><figcaption></figcaption></figure>
7. Klik pada bagian "Android".<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/0nALmgnsrXZ8Pvw7AThS/image.png" alt=""><figcaption></figcaption></figure>
8. Pindah layout ke "Project".<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/J9DDmn2nUDQRIeaISqtx/image.png" alt=""><figcaption></figcaption></figure>
9. Copy-Paste library jar yang telah didownload ke app -> libs.<br>

   <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/lQzTWmToqnsLna5opiGo/image.png" alt=""><figcaption></figcaption></figure>
10. Selamat! Anda telah memasukkan library jar.<br>

    <figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/TmgH4waXt33BuScYAiKR/image.png" alt=""><figcaption></figcaption></figure>

### **Source Code**

#### **Data yang tersimpan di Antares**

<figure><img src="https://3995702122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrRkxjRLeqOm0pNhLfsus%2Fuploads%2FghvghZmmzTxCfI4QiRdS%2F138.png?alt=media&#x26;token=d4dcc2db-df57-455b-9bad-3ae50b7727a8" alt=""><figcaption></figcaption></figure>

#### **AndroidManifest.xml**

Agar bisa mengeksekusi API Antares, dibutuhkan akses Internet dan agar bisa mengakses Internet di Android, kita harus tambahkan baris berikut di AndroidManifest.xml.

```xml
<!--- IMPORTANT!!!!!!! --->
<!--- Tambahkan line berikut di AndroidManifest.xml Anda --->
<!--- Setelah manifest --->
<uses-permission android:name="android.permission.INTERNET" />
<!--- Sebelum application --->XMLCopy
```

#### **activity\_main.xml**

Ubah **SEMUA** isi dari activity\_main.xml dengan konten berikut ini:

{% code lineNumbers="true" %}

```xml
<?xml version="1.0" encoding="utf-8"?>
<android.widget.LinearLayout 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=".MainActivity"
    android:orientation="vertical">

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

    <Button
        android:id="@+id/btnRefresh"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Refresh"/>

</android.widget.LinearLayout>
```

{% endcode %}

#### **MainActivity.java**

{% code lineNumbers="true" %}

```java
// !!!!------ IMPORTANT ---------!!!!//
// Ubah semua code setelah package nama.package.Anda dengan
// dengan Code berikut

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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

import id.co.telkom.iot.AntaresHTTPAPI;
import id.co.telkom.iot.AntaresResponse;

public class MainActivity extends AppCompatActivity implements AntaresHTTPAPI.OnResponseListener{

    private Button btnRefresh;
    private TextView txtData;
    private String TAG = "ANTARES-API";
    private AntaresHTTPAPI antaresAPIHTTP;
    private String dataDevice;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // --- Inisialisasi UI yang digunakan di aplikasi --- //
        btnRefresh = (Button) findViewById(R.id.btnRefresh);
        txtData = (TextView) findViewById(R.id.txtData);

        // --- Inisialisasi API Antares --- //
        antaresAPIHTTP = AntaresHTTPAPI.getInstance();
        antaresAPIHTTP.addListener(this);

        btnRefresh.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                antaresAPIHTTP.getLastDataofDevice("your-access-key","your-application-name","your-device-name");
            }
        });
    }

    @Override
    public void onResponse(AntaresResponse antaresResponse) {
        // --- Cetak hasil yang didapat dari ANTARES ke System Log --- //
        Log.d(TAG,antaresResponse.toString());

        try {
            JSONObject body = new JSONObject(antaresResponse.getBody());
            dataDevice = body.getJSONObject("m2m:cin").getString("con");
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    txtData.setText(dataDevice);
                }
            });
            Log.d(TAG,dataDevice);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
```

{% endcode %}

#### **Hasil Logcat**

Kita dapat melakukan filter terhadap hasil log keluaran di Android. Silahkan isi di bagian seperti gambar berikut. Ketika tombol diklik, maka hasil output yang didapatkan juga bisa dilihat pada gambar di bawah ini.

<figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/V1210UhViRDotJnagJjd/image.png" alt=""><figcaption></figcaption></figure>

### **Output**

<figure><img src="https://content.gitbook.com/content/rRkxjRLeqOm0pNhLfsus/blobs/9sCNekj7sg85U9y55GKK/image.png" alt=""><figcaption></figcaption></figure>
