tipe data jsonhirupmotekar.com/.../uploads/2018/10/pmo2_kel3_rps4.docx · web viewlibrary json ada...
TRANSCRIPT
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.
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,
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 –
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()
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
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.
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)
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
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'
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
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
Dan Untuk Class Modelnya Kita Buat Kelompok_Model.java
Selnjutnya Membuat Class RetrofitClientRetrofitClient.java
Kemudian membuat Class baru UtilsApi.java
Kemudian Membuat Class interface baruInterfaceApi.java
Selanjutnya Membuat Class Adapter sebagai Adapter RecyclerViewKelompok_Get.java
Kemudian Pada MainActivity.java
Kemudian Kita Run Maka Hasilnya