tipe data jsonhirupmotekar.com/.../uploads/2018/10/pmo2_kel3_rps4.docx · web viewlibrary json ada...

22
Anggota : 1. Mafrukhin (16.11.0171) 2. Muhammad Syaikhan (16.11.0173) 3. Ade Alfianto (16.11.0177) 4. Trian Damai (16.11.0180) 5. Panji Dwi Suwarna (16.11.0186) 6. Zakhrotul Lellafrita (16.11.0187) 7. Nurizza Amalia Larasati (16.11.0193) 8. Akhmad Kamaludin (16.11.0194) 9. Teguh Mardiono (16.11.0195) 10. Rifki Kurniawan Fauzi (16.11.0207) 11. Onang Wulan Toro (16.11.0210) 1.PEMAHAMAN JSON PARSER JSON (Javascript Object Notation) merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia. JSON dipakai untuk dua hal; yang pertama untuk format transfer data antar device/OS/bahasa pemerograman yang berbeda dan sebagai media penyimpanan . untuk apa JSON ini dalam pengembangan aplikasi Android ? Dalam aplikasi Android, terkadang kita memerlukan suatu data yang berasal dari suatu server untuk digunakan dan ditampilkan dalam aplikasi kita. Nah, untuk mengambil data dari server kita bisa memakai yang namanya API (Application Programming Interface). Dalam penyaluran data dari server ke client(aplikasi kita) memerlukan sebuah standar pemformatan data, nah disinilah kita pakai JSON.

Upload: others

Post on 27-Oct-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Anggota :

1. Mafrukhin (16.11.0171)

2. Muhammad Syaikhan (16.11.0173)

3. Ade Alfianto (16.11.0177)

4. Trian Damai (16.11.0180)

5. Panji Dwi Suwarna (16.11.0186)

6. Zakhrotul Lellafrita (16.11.0187)

7. Nurizza Amalia Larasati (16.11.0193)

8. Akhmad Kamaludin (16.11.0194)

9. Teguh Mardiono (16.11.0195)

10. Rifki Kurniawan Fauzi (16.11.0207)

11. Onang Wulan Toro (16.11.0210)

1.PEMAHAMAN JSON PARSERJSON (Javascript Object Notation) merupakan format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia.

JSON dipakai untuk dua hal; yang pertama untuk format transfer data antar device/OS/bahasa pemerograman yang berbeda dan sebagai media penyimpanan.

untuk apa JSON ini dalam pengembangan aplikasi Android ?

Dalam aplikasi Android, terkadang kita memerlukan suatu data yang berasal dari suatu server untuk digunakan dan ditampilkan dalam aplikasi kita. Nah, untuk mengambil data dari server kita bisa memakai yang namanya API (Application Programming Interface).

Dalam penyaluran data dari server ke client(aplikasi kita) memerlukan sebuah standar pemformatan data, nah disinilah kita pakai JSON.

Page 2: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Kelebihan JSON

Walaupun XML sudah sejak lama dipakai dalam format transfer data, namun beberapa tahun terakhir, JSON menggeser posisi XML. Kelebihan JSON dari XML adalah sbb:

1. Ukuran lebih kecil dibanding XML, efeknya transfer data lebih cepat dan lebih hemat resource, terutama bandwidth

2. JSON adalah format data bawaan di Javascript, artinya jike data dari server di kirim ke client , dan client menggunakan javascript, maka tidak perlu library tambahan untuk memprosesnya

3. Dibanding XML, format JSON lebih sederhana.4. library JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda

bahasa pemrograman.

Tipe Data JSON

Objek. Objek merupakan kumpulan pasangan key dan value yang diapit dengan kurung buka dan kurung tutup (seperti penjelasan sebelumnya). Karena objek ini mencerminkan associative array, maka direkomendasikan agar tidak menggunakan key dengan nilai sama (key sebaiknya unik). Objek ini boleh bernilai kosong dan cukup ditulis {}

Number. Number berupa digit 0-9 dan ditulis apa adanya tanpa perlu menggunakan tanda kutip.

Number dapat berupa bilangan bulat maupun desimal. Untuk desimal, karakter yang digunakan

adalah titik bukan koma. Misal untuk menuliskan dua koma lima, bentuk angkanya adalah 2.5

bukan 2,5

Boelan. Boelan berupa teks true dan false tanpa tanda kutip.

Null. Null berupa teks null dan ditulis langsung tanpa tanda kutip.

String. String berupa semua karakter Unicode yang artinya semua karakter yang ada di dunia ini.

String ini merupakan tipe data yang paling sering digunakan, dalam penulisannya,

Page 3: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

string harus diapit dengan dua tanda kutip ( ” ) tidak boleh menggunakan satu tanda kutip ( ‘ )

atau tidak menggunakan tanda kutip sama sekali

.File JSON terdiri dari banyak komponen antara lain :

Array ([)

Dalam file JSON, tanda kurung siku ([) mewakili larik JSON

Contoh : [“Senin”,”Selasa”,”Rabu”,”Kamis”,”Jumat”,”Sabtu”]

Objek ({)

Dalam file JSON, kurung kurawal ({) mewakili objek JSON

Contoh : { “Pegawai”:{“nama”:”Joni”,”Gaji”:5000000,”Status”:”menikah”,”WNI”:true}}

Perbedaan JSONArray dan JSONObject

Dalam JSON, ada dua hal penting yang harus kita ketahui dan harus tahu membedakannya, yaitu JSONArray dan JSONObject. JSONArray di dalam JSON di representasikan dengan tanda [ (Square Brackets), sedangkan JSONObject di representasikan dengan tanda } (Curly Brackets). Dalam implementasi kodingan java-nya, jika JSONArray kita gunakan method getJSONArray(), kalau JSONObject kita gunakan method getJSONObject().

Kunci

Objek JSON berisi kunci yang hanya berupa string. Pasangan kunci / nilai membentuk objek JSON

Nilai

Setiap kunci memiliki nilai yang bisa berupa string, integer atau dobel dll

2. METODE-METODE JSON PARSER

Untuk mem-parsing objek JSON, kita akan membuat objek kelas JSONObject dan tentukan string yang

berisi data JSON. Sintaksnya adalah -

String in;JSONObject reader = new JSONObject(in);

Langkah terakhir adalah mengurai JSON. File JSON terdiri dari objek yang berbeda dengan pasangan

kunci / nilai yang berbeda dll. Jadi JSONObject memiliki fungsi terpisah untuk mengurai setiap

komponen file JSON. Sintaksnya diberikan di bawah ini –

Page 4: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

JSONObject sys = reader.getJSONObject("sys");

country = sys.getString("country");

JSONObject main = reader.getJSONObject("main");

temperature = main.getString("temp");

Metode getJSONObject mengembalikan objek JSON. Metode getString mengembalikan nilai string kunci yang ditentukan. Terlepas dari metode ini, ada metode lain yang disediakan oleh kelas ini untuk file Parsing JSON yang lebih baik. Metode-metode ini tercantum di bawah :

No Method & description

1 get(String name)

Metode ini hanya Mengembalikan nilai tetapi dalam bentuk jenis Objek

2 getBoolean(String name)

Metode ini mengembalikan nilai boolean yang ditentukan oleh kunci

3 getDouble(String name)

Metode ini mengembalikan nilai ganda yang ditentukan oleh kunci

4 getInt(String name)Metode ini mengembalikan nilai integer yang ditentukan oleh kunci

5 getLong(String name)

Metode ini mengembalikan nilai panjang yang ditentukan oleh kunci

6 length()

Metode ini mengembalikan jumlah pemetaan nama / nilai dalam objek ini 

7 names()

Page 5: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Metode ini mengembalikan larik yang berisi nama string dalam objek ini

3. LIBRARY JSON PARSER

1. Retrofit Retrofit merupakan library android yang dibuat oleh Square yang digunakan sebagai REST Client pada Android, yang pasti akan memudahkan kita. Karena kita tidak perlu lagi untuk membuat method-method sendiri untuk menggunakan REST Client API dari backend. Library ini menyediakan framework yang powerfull untuk authenticating dan berinteraksi dengan API dengan mengirimkan request menggunakan OkHTTP.Beberapa alasan mengapa retrofit populer diantaranya yaitu : Retrofit merupakan library yang simple untuk meng-organize API calls. Konsep annotation akan membuat codingan kita lebih rapih dan enak dipandang Retrofit bisa memakai OkHttp sebagai Http client-nya Retrofit men-support RxJava. Retrofit men-support penggunaan GSON dan Jackson.

2. Volley Volley merupakan sebuah library HTTP yang diperkenalkan oleh Google untuk mempermudah pertukaran data dan membuat koneksi jaringan antara android dengan HTTP menjadi lebih mudah tanpa harus membuat deretan kode yang sangat panjang. Secara default volley menggunakan metode sinkronisasi jadi anda tidak perlu membuat sebuah method atau fungsi yang menggunakan class asynctask. Melakukan sebuah request queuing and prioritization (Mengutamakan prioritas dalam

sebuah antrian). Sangat efektif untuk melakukan chace dan efesiensi penyimpanan (memory) Dapat melakukan perubahan class sesuai dengan kebutuhan Dapat melakukan pembatalan dalam sebuah request.

Berikut adalah perbandingan Retrofit dan Volley secara detail:Kemudahan Penggunaan Performa dan Caching POST requests

Retrofit

Retrofit sangat mudah digunakan. Memungkinkan anda untuk memakai API ini dengan method sederhana dari java menggunakan interface.

Caching harusnya bisa berjalan jika server anda menetapkan header control yang benar. Jika tidak ,atau anda melakukan sesuatu yang tidak biasa anda hanya bisa mengubah lapisan klien HTTP anda

Memiliki dukungan penuh untuk permintaan POST dan upload file yang multi, dengan API Sweet untuk boot

Volley Sedikit lebih rumit pada umumnya. Volley hanya mendukung beberapa response

Memiliki mekasnisme chacing yang lebih rumit dan fleksibel,

Support POST request tetapi anda harus convert terlebih

Page 6: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

yaitu String,Image,JSONObject dan JSONArray.

memanfaatkan untuk membuat caching bitmaps yang lebih besar

dahulu java objek yang kita buat menjadi JSONObject.

3. Fast Android Networking adalah sebuah library sama seperti library lainya namun perbedaanya yaitu library ini memiliki banyak fitur yang tidak ada di library Retrofit. Dan tentunya lebih lengkap dibandingkan Retrofit maupun Volley. Library ini mendukung semua jenis HTTP/HTTPS permintaan seperti GET, POST, DELETE, HEAD, PUT, PATCH.Keuntungan menggunakan library Fast Android Networking di atas library lain: OkHttpClient dapat disesuaikan untuk setiap permintaan dengan mudah - seperti

penyesuaian waktu habis, dll untuk setiap permintaan. Lebih cepat, karena menggunakan OkHttpClient dan Okio. Satu library untuk semua jenis jaringan - unduh, unggah, multipart. Mendukung JSON Parsing ke Java Objects (juga mendukung Jackson Parser). Analisis lengkap tentang permintaan apa pun dapat diperoleh. Anda dapat mengetahui

byte yang dikirim, byte yang diterima, dan waktu yang dibutuhkan untuk setiap permintaan. Analisis ini penting agar Anda dapat menemukan penggunaan data dari aplikasi Anda dan waktu yang diambil untuk setiap permintaan, sehingga Anda dapat mengidentifikasi permintaan yang lambat.

Anda dapat memperoleh bandwidth dan kualitas koneksi saat ini untuk menulis kode logis yang lebih baik - mengunduh gambar berkualitas tinggi dengan kualitas koneksi yang sangat baik dan rendah pada kualitas koneksi yang buruk.

Prefetching dari setiap permintaan dapat dilakukan sehingga memberikan data instan ketika diperlukan dari cache.

Semua jenis kustomisasi dimungkinkan. Antarmuka sederhana untuk membuat jenis permintaan apa pun. Mendukung RxJava.

4. GSONGSON adalah library java yang digunakan untuk meng-convert objek java ke JSON atau sebaliknya. GSON memiliki fungsi serialization dan deserialization. Serialization berfungsi merubah JSON string menjadi objek java, sedangkan deserialization berfungsi merubah objek java menjadi bentuk JSON. Serialization dan deserialization di GSON menggunakan fungsi fromJson() dan toJson(). GSON memberikan manfaat tambahan dukungan penuh untuk Java Generics, dan itu tidak mengharuskan Anda untuk menganotasi kelas Anda. Tidak perlu menambahkan anotasi untuk penerapan yang lebih mudah dan bahkan bisa menjadi persyaratan jika Anda tidak memiliki akses ke kode sumber Anda.

5. Jackson Jackson adalah sekelompok alat pengolah data yang disorot oleh streaming parser dan pustaka generator JSON. Didesain untuk Java, ia juga dapat menangani pengkodean non-JSON lainnya.

Page 7: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

6. JSONP JSONP (JSON Processing) adalah Java API untuk pemrosesan JSON, yaitu seputar mengkonsumsi dan memproduksi streaming teks JSON. Ini adalah implementasi referensi open source dari JSR353.

https://www.codepolitan.com/mengenal-format-json-59e8152dd0e51

https://www.codepolitan.com/library-yang-wajib-kamu-coba-untuk-membuat-aplikasi-android-59b254b6d153c

https://www.gookkis.com/android-network-library-retrofit-rest-api-client-tutorial/

http://wimsonevel.blogspot.com/2016/06/tutorial-android-parsing-json-using-gson.html

4. CONTOH PROGRAM JSON PARSERParsing JSON Retrofit Android

Sebelum kita memulai Membuat Projek androidnya Siapkan terlebih dahulu webservicenya , Kami menggunakan Codeigniter dan library REST untuk membuat webservicenya

Untuk tutorial membuat REST API dengan CodeIgniter dapat dilihat pada Postingan

https://www.codepolitan.com/rest-api-server-sederhana-dengan-codeigniter-58901f324a29f

Selanjutnya Buatlah Database yang kemudian membuat Table

Untuk Struktur Tabelnya seperti gambar dibawah:

Tbl_kelompok

Kemudian membuat Controller Data.php dan membuat function untuk parsing JSON nya

Data.php

Dan untuk Output masing-masing Method yaitu

1. Method GET (mengambil data dari database)

Page 8: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

http://www.noobdev.biz/index.php/Api/pmo2/Buku/delete/1

Setelah Webservice Kita sudah Jadi dan bisa digunakan saatnya membuat Project Android dimana yang akan digunakan untuk Mendapatkan data JSON nya

Pertama-tama Kita akan menggunakan library Retrofit dan Okhttp untuk parsing JSONPenjelasannya Retrofit dapat di askses di https://square.github.io/retrofit/Penjelasan Okhhtp dapat diakses di http://square.github.io/okhttp/

Kemudian hasil dari jsonnya akan kita tampilkan kedalam Recyclerview

Kita Buat Dulu Projeknya pada Android Studio pada menu File -> new -> Project

Kemudian tinggal Next dan pilih Empty Activity dan Hasil Projek awalnya akan menjadi seperti ini

Page 9: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Buka File build.gradle untuk menambahkan dependencies Retrofit,Okhttp,Recyclerview

//recyclerviewimplementation 'com.android.support:design:28.0.0'implementation "com.android.support:recyclerview-v7:28.0.0"

//cardviewimplementation 'com.android.support:cardview-v7:28.0.0'

//retrofitimplementation 'com.squareup.retrofit2:retrofit:2.0.2'implementation 'com.squareup.retrofit2:converter-gson:2.0.2'implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'

Page 10: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Selanjutnya Kita Buat Desain dari activity_main.xml Seperti Dibawah

Palette idFloatingActionButton

fab_tambah

ProgressBar progress

RecyclerView rv_kelompok

SwipeRefreshLayout refresh_layout

Kemudian Kita Membuat Sebuat Layout Baru dengan Nama rv_item_kelompok.xml yang akan digunakan untuk mengisi Item pada RecyclerVIew

Page 11: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

palette IdTextView txt_nimCardView parent_ite

mTextView txt_namaTextView Txt_kelasTextView Txt_email

Kemudaian Membuat File baru untuk menampilkan dialog detail ketika Kartu di klikDialog_detail.xml

Pertama kita akan Membuat Class DataModel yang nantinya kan menjadi model sesuai data JSON yang ada seperti dibawah

Page 12: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Dan Untuk Class Modelnya Kita Buat Kelompok_Model.java

Page 13: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Selnjutnya Membuat Class RetrofitClientRetrofitClient.java

Kemudian membuat Class baru UtilsApi.java

Page 14: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Kemudian Membuat Class interface baruInterfaceApi.java

Selanjutnya Membuat Class Adapter sebagai Adapter RecyclerViewKelompok_Get.java

Page 15: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman
Page 16: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Kemudian Pada MainActivity.java

Page 17: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman

Kemudian Kita Run Maka Hasilnya

Page 18: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman
Page 19: Tipe Data JSONhirupmotekar.com/.../uploads/2018/10/PMO2_KEL3_RPS4.docx · Web viewlibrary JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman