PMO2 Pertemuan 4 JSON Parser

PERTEMUAN 4

PEMROGRAMAN MOBILE 2

JSON Parse

Disusun Oleh Kelompok 2 dengan anggota :

16.11.0137                  Untung Nur Khifni

16.11.0117                  Ade Putra Praditya

16.11.0118                  Ahmad

16.11.0164                  Desi Putri Pratiwi

16.11.0123                  Moch Mugni Labib

16.11.0133                  Ridho Santoso Handoyo

16.11.0134                  M.I.Zulkifli Nurul ‘Ilmi

16.11.0142                  Yusup Efendi

16.11.0146                  Yanuar Arviansyah

16.11.0160                  Zidni Mujib

16.11.0165                 Rafli Husain Kurniawan

 

STMIK AMIKOM PURWOKERTO

2018/2019

                                                                                                   

                                                                                                   JSON PARSE
apa itu JSON?

JSON adalah singkatan dari Notasi Objek JavaScript. Ini terstruktur, ringan, mudah dibaca manusia dan mudah diuraikan. Ini adalah alternatif terbaik untuk XML ketika aplikasi android kami perlu mengubah data dari server.Penguraian XML sangat kompleks dibandingkan dengan parsing JSON .

JSON lebih pendek, lebih cepat, dan lebih mudah untuk mengubah data dari server. JSON sangat sukses dan sebagian besar API mendukung format JSON.

Contoh Format JSON:

Di bawah ini adalah kode contoh JSON. Kode JSON yang sangat sederhana yang memberi kita daftar pengguna di mana setiap objek berisi informasi seperti id pengguna, nama, email, jenis kelamin dan nomor kontak yang berbeda.

 

[

{

“judul”: ” Laskar Pelangi “,

“deskripsi”:”In the 1970s, a group of 10 students struggles with poverty and develop hopes for the future.”,

“rate”:”7.8″,

“kategori”:”Drama”,

“sutradara”:”Andrea Hirata , Riri Riza”,

“img”:”https://m.media-amazon.com/images/M/MV5BMDc5ZTBkNjYtMzk0OS00MDQwLTgyMWUtMWU2YzhmNjJmNjIxXkEyXkFqcGdeQXVyNjQ4ODY4NzU@._V1_UY209_CR3,0,140,209_AL_.jpg”

},

{

“judul”: ” Habibie Ainun “,

“deskripsi”:”Love story between Indonesia’s third president- World’s famous Engineer B.J Habibie and his wife Ainun.”,

“rate”:”7.6″,

“kategori”:”Biography,Drama,Romance”,

“sutradara”:”Faozan Rizal”,

“img”:”https://m.media-amazon.com/images/M/MV5BMDQyZjdmZmYtZGViNC00ZGFkLWIxYjktNTI1YTc4YzJiMzM0XkEyXkFqcGdeQXVyMzA1NTc1NDk@._V1_UY209_CR1,0,140,209_AL_.jpg”

},

{

“judul”: ” 5 CM “,

“deskripsi”:”Five best friends try to find out what true friendship is by climbing the highest peak in Java.”,

“rate”:”7.2″,

“kategori”:”Adventure,Drama,Romance”,

“sutradara”:”Rizal Mantovani”,

“img”:”https://m.media-amazon.com/images/M/MV5BNmNkY2JiMWQtMDBhYy00YmQ3LTkwMTItZWY5NzJkZTQ2MThhXkEyXkFqcGdeQXVyNjU3MTA2OTQ@._V1_UX140_CR0,0,140,209_AL_.jpg”

},

{

“judul”: ” Sang Pemimpi “,

“deskripsi”:”Five best friends try to find out what true friendship is by climbing the highest peak in Java.”,

“rate”:”6.9″,

“kategori”:”Drama”,

“sutradara”:”Riri Riza”,

“img”:”https://m.media-amazon.com/images/M/MV5BODBiYWI2YzYtOTQ3NC00OWJmLWI0YzYtYmNhMTM1MDkxYTJmXkEyXkFqcGdeQXVyNjc2NDg5OTg@._V1_UY209_CR3,0,140,209_AL_.jpg”

}]

XML vs JSON

Kesamaan/kemiripan JSON dengan XML

  • Sama-sama text biasa (plaintext)
  • Bisa dibaca dan mendeskripsikan dirinya sendiri
  • Susunan (hirarki) yang terstruktur
  • Dapat di olah berbagai bahasa pemrograman
  • Dapat di transmisikan melalui AJAX

Perbedaan

  • JSON tidak ada End Tag
  • Dengan data yang sama, ukuran JSON lebih kecil
  • Pada umumnya lebih cepat dibaca dan tulis
  • Dapat di parsing dengan fungsi javascript eval()
  • Menggunakan Array
  • Tidak ada kata-kata cadangan (reserved words)

Metode – Metode JSON Parse

• get(String name)

Metode ini hanya Mengembalikan value tetapi dalam bentuk jenis Objek

• getBoolean(String name)

Metode ini mengembalikan value boolean yang ditentukan oleh key

• getDouble(String name)

Metode ini mengembalikan value  ganda yang ditentukan oleh key

• getInt(String name)

Metode ini mengembalikan value  integer yang ditentukan oleh key

• getLong(String name)

Metode ini mengembalikan value  panjang yang ditentukan oleh key

• length()

Metode ini mengembalikan jumlah pemetaan nama /value dalam objek ini

• names()

Metode ini mengembalikan array yang berisi nama string dalam objek ini.

 

Komponen JSON pada android studio

  1. Array ([):Dalam JSON, tanda kurung siku ([) mewakili JSONArray.Nilai JSONArray dapat berupa campuran JSONObject, JSONArrays, String, Booleans, Integers, Longs, Doubles, null, atau NULL. Nilai mungkin bukan NaN, infinitas, atau jenis apa pun yang tidak tercantum di sini.
  2. Objek ({):Dalam JSON, kurung kurawal ({) mewakili JSONObject.JSONObject mewakili data dalam bentuk pasangan kunci dan nilai. Nilai JSONObject dapat berupa campuran JSONObjects lainnya, JSONArrays, Strings, Booleans, Integers, Longs, Doubles, null, atau NULL. Nilai mungkin bukan NaN, infinitas, atau jenis apa pun yang tidak tercantum di sini.
  3. kunci:JSONObject berisi kunci yang ada dalam format string.Sepasang kunci dan nilai  |menciptakan JSONObject.
  4. ||Nilai:Setiap kunci memiliki nilai yang bisa menjadi tipe data primitif (integer, float, String, dll).

 

Metode Parsing JSONObject

Di bawah ini kami mendefinisikan beberapa metode penting parsing JSONObject yang terutama digunakan untuk menguraikan data dari JSONObject.

  1. get (String name):Metode ini digunakan untuk mendapatkan nilai dari JSONObject.Ini mengembalikan nilai jenis objek. Kami melewati kunci tipe String dan mengembalikan nilai jenis Objek jika ada selain itu melempar JSONException.
  2. getBoolean (String name):Metode ini digunakan untuk mendapatkan nilai Boolean dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dari tipe Boolean jika ada jika tidak ia melempar JSONException.
  3. getDouble (String name):Metode ini digunakan untuk mendapatkan nilai tipe ganda dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dalam tipe ganda jika ada jika tidak ia melempar JSONException.
  4. getInt (String name):Metode ini digunakan untuk mendapatkan int type value dari JSONObject.Kami melewati kunci tipe string dan mengembalikan nilai dalam tipe int jika ada sebaliknya membuang JSONException.
  5. getJSONArray (String name):Metode ini digunakan untuk mendapatkan nilai tipe JSONArray.Kami melewati kunci tipe String dan mengembalikan JSONArray jika ada yang sebaliknya ia membuang JSONException.
  6. getJSONObject (String name):Metode ini digunakan untuk mendapatkan nilai jenis JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai JSONObject jika ada jika tidak ia melempar JSONException.
  7. getLong (String name):Metode ini digunakan untuk mendapatkan nilai tipe panjang dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dalam tipe panjang jika ada, jika tidak, ia melempar JSONException.
  8. getString (String name):Metode ini digunakan untuk mendapatkan nilai tipe String dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dalam tipe String jika ada jika tidak, ia melempar JSONException.
  9. length ():Metode ini digunakan untuk mendapatkan jumlah pemetaan nama / nilai dalam objek ini.
  10. keys ():Metode ini digunakan untuk mendapatkan iterator dari nama String dalam Object.
  11. opt (String name):Metode ini digunakan untuk mendapatkan nilai dari JSONObject.Ini mengembalikan nilai jenis Objek. Kami melewati kunci tipe String dan mengembalikan nilai jenis Objek jika ada sebaliknya mengembalikan null.
  12. optBoolean (String name):Metode ini digunakan untuk mendapatkan nilai Boolean dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai jenis Boolean jika ada sebaliknya mengembalikan salah.
  13. optDouble (String name):Metode ini digunakan untuk mendapatkan nilai tipe ganda dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dalam tipe ganda jika ada sebaliknya mengembalikan NaN.
  14. optInt (nama String):Metode ini digunakan untuk mendapatkan nilai tipe int dari JSONObject.Kami melewati kunci tipe string dan mengembalikan nilai dalam tipe int jika ada selain itu mengembalikan 0.
  15. optJSONArray (String name):Metode ini digunakan untuk mendapatkan nilai jenis JSONArray dari JSONObject.Kami melewati kunci tipe String dan mengembalikan JSONArray jika ada sebaliknya mengembalikan null.
  16. optJSONObject (String name):Metode ini digunakan untuk mendapatkan nilai jenis JSONObject lainnya dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai JSONObject jika ada sebaliknya mengembalikan null.
  17. optLong (String name):Metode ini digunakan untuk mendapatkan nilai tipe panjang dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dalam tipe panjang jika ada selain itu mengembalikan 0.
  18. optString (String name):Metode ini digunakan untuk mendapatkan nilai tipe String dari JSONObject.Kami melewati kunci tipe String dan mengembalikan nilai dalam tipe String jika ada sebaliknya mengembalikan string kosong (“”).

 

Metode Parsing JSONArray

Di bawah ini kami mendefinisikan beberapa metode penting dari parsing JSONArray yang terutama digunakan untuk menguraikan data dari JSONArray.

  1. dapatkan (int index):Metode ini digunakan untuk mendapatkan nilai dari JSONArray.Ini mengembalikan nilai jenis objek. Kami melewati indeks dan mengembalikan nilai jenis objek jika ada selain itu melempar JSONException.
  2. getBoolean (int index):Metode ini digunakan untuk mendapatkan nilai Boolean dari JSONArray.Kami melewati indeks dan mengembalikan nilai jenis Boolean jika ada sebaliknya membuang JSONException.
  3. getDouble (int index):Metode ini digunakan untuk mendapatkan nilai tipe ganda dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe ganda jika ada, jika tidak, ia melempar JSONException.
  4. getInt (int index):Metode ini digunakan untuk mendapatkan nilai tipe int dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam int jika ada selain itu melempar JSONException.
  5. getJSONArray (int index):Metode ini digunakan untuk mendapatkan nilai jenis JSONArray.Kami melewati indeks dan mengembalikan JSONArray jika ada yang lain itu melempar JSONException.
  6. getJSONObject (int index):Metode ini digunakan untuk mendapatkan nilai jenis JSONObject.Kami melewati indeks dan mengembalikan nilai JSONObject jika ada, jika tidak, ia melempar JSONException.
  7. getLong (int index):Metode ini digunakan untuk mendapatkan nilai tipe panjang dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe panjang jika ada, jika tidak, ia melempar JSONException.
  8. getString (int index):Metode ini digunakan untuk mendapatkan nilai tipe String dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe String jika ada yang sebaliknya membuang JSONException.
  9. length ():Metode ini digunakan untuk mendapatkan jumlah nilai dalam Array ini.
  10. opt (int index):Metode ini digunakan untuk mendapatkan nilai dari JSONArray.Ini mengembalikan nilai jenis Objek. Kami melewati indeks dan mengembalikan nilai pada indeks jenis Objek jika ada sebaliknya mengembalikan nol.
  11. optBoolean (int index):Metode ini digunakan untuk mendapatkan nilai Boolean dari JSONArray.Kami melewati indeks dan mengembalikan nilai jenis Boolean jika ada sebaliknya mengembalikan salah.
  12. optDouble (int index):Metode ini digunakan untuk mendapatkan nilai tipe ganda dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe ganda jika ada sebaliknya mengembalikan NaN.
  13. optInt (int index):Metode ini digunakan untuk mendapatkan nilai tipe int dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe int jika ada selain itu mengembalikan 0.
  14. optJSONArray (int index):Metode ini digunakan untuk mendapatkan nilai tipe JSONArray lainnya dari JSONArray.Kami melewati indeks dan mengembalikan JSONArray jika ada, jika tidak mengembalikan nol.
  15. optJSONObject (int index):Metode ini digunakan untuk mendapatkan nilai jenis JSONObject dari JSONArray.Kami melewati indeks dan mengembalikan nilai JSONObject jika ada sebaliknya mengembalikan null.
  16. optLong (int index):Metode ini digunakan untuk mendapatkan nilai tipe panjang dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe panjang jika ada selain itu mengembalikan 0.
  17. optString (int index):Metode ini digunakan untuk mendapatkan nilai tipe String dari JSONArray.Kami melewati indeks dan mengembalikan nilai dalam tipe String jika ada sebaliknya mengembalikan string kosong (“”).

 

Library JSON Parser

JSON.simple vs GSON vs Jackson vs JSONP Untuk tes benchmark, kami melihat empat pustaka JSON utama untuk Java: JSON.simple, GSON, Jackson, dan JSONP. Semua pustaka ini populer digunakan untuk pemrosesan JSON di lingkungan Java, dan dipilih sesuai dengan popularitas mereka dalam proyek Github. Inilah yang kami uji:

  • Yidong Fang’s JSON.simple ( https://github.com/fangyidong/json-simple). JSON.simple adalah toolkit Java untuk encoding dan decoding teks JSON.Ini dimaksudkan untuk menjadi perpustakaan yang ringan dan sederhana yang masih berkinerja tinggi.
  • Google GSON ( https://github.com/google/gson). GSON adalah pustaka Java yang mengubah Java Objects menjadi JSON dan sebaliknya. Ini memberikan manfaat tambahan dukungan penuh untuk Java Generics, dan itu tidak mengharuskan Anda untuk membubuhi keterangan kelas Anda. Tidak perlu menambahkan anotasi untuk implementasi yang lebih sederhana dan bahkan bisa menjadi persyaratan jika Anda tidak memiliki akses ke kode sumber Anda.
  • Proyek Jackson FasterXML ( https://github.com/FasterXML/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. Ini adalah parser JSON yang paling populer, menurut temuan kami tentang penggunaan Github.
  • Oracle’s JSONP ( https://jsonp.java.net/ ). 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.

 

Macam – macam Library JSON Parse

1. Retrofit

  • Merupakan library android yang dibuat oleh Squre yang digunakan sebagai REST Client pada Android, yang pasti akan memudahkan kita dalam programing. Karena kita tidak perlu lagi untuk membuat method-method sendiri untuk menggunakan REST Client API dari backend.
  • Retrofit memparsing JSON response dari Web API menjadi Plain Old Java Object (POJO) sehingga akan memudahkan menggunakan value-value yang berada dalam respone karena sudah otomatis terkonversi menjadi object.

2. GSON

GSON adalah library racikan google untuk melakukan serialisasi dan deserialisasi data JSON dengan mudah. Serialisasi adalah proses mengubah objek java menjadi JSON. Sedangkan deserialisasi adalah proses mengubah JSON menjadi objek java.

GSON sangat berguna sekali ketika kita mengolah data Json dari API. Karena dengan adanya Gson Json dapat di ubah menjadi Object class POJO pada java dan sebaliknya.

3. OkHttp3

OkHttp ini sendiri adalah sebuah java library yang di khususkan untuk mengatasi masalah networking dengan http. Di android sendiri banyak sekali cara yang bisa kita gunakan untuk mengatasi networking http di android ini.

4. Jackson

Jackson adalah sekelompok alat-alat pengolahan data yang disorot oleh streaming JSON parser dan generator Perpustakaan.Dirancang untuk Java, itu juga bisa menangani pengkodean bebas-JSON lainnya.Hal ini paling populer parser JSON, berdasarkan temuan kami pada Github penggunaan

5. JSONP

JSONP adalah salah satu metode untuk mengirim JSON data.JSONP tidak menggunakan objek XMLHttpRequest.

6. Volley

Volley merupakan library HTTP yang dikembangkan oleh Google. Library ini bertujuan untuk memudahkan fitur-fitur yang berhubungan dengan jaringan, semisal transfer teks maupun gambar menggunakan koneksi internet.

Volley merupakan pengganti dari class java.net.HttpURLConnection milik java dan org.apache.http.client milik Apache dalam menangani request melalui jaringan. Volley bisa meng-handle segala tugas yang berhubungan dengan jaringan, seperti HTTP request dan tugas-tugas yang tersinkronisasi melalui jaringan.

 

Adapun fitur yang ditawarkan Volley Library adalah sebagai berikut:

  1. Melakukan sebuah request queuing and prioritization (Mengutamakan prioritas dalam sebuah antrian)
  2. Sangat efektif untuk melakukan chache dan efisiensi penyimpanan (memory)
  3. Dapat melakukan perubahan class sesuai dengan kebutuhan
  4. Dapat melakukan pembatalan dalam sebuah request.

 

Keuntungan Menggunakan Volley

  • Volley secara otomatis menjadwal permintaan jaringan.
  • Volley menyediakan transparan disk and memory cache.
  • Volley menyediakan pembatalan request API.
  • Volley memberikan kebebasan untuk di custom.

Aplikasi Json Parsing

Activity_main.xml

Imdb_list_film.xml

Class MainActivity

Lanjutan Class MainActivity

Class recycleView

Lanjutan Class recycleView

Class imdb_ind_film

File json berada di alamat https://kelompok2.netlify.com/imdb_film.json

 

 

Referensi

  1. https://infinum.co/the-capsized-eight/top-5-android-libraries-every-android-developer-should-know-about
  2. https://www.gookkis.com/android-network-library-retrofit-rest-api-client-tutorial/
  3. https://www.sinaryuda.web.id/tutorial/contoh-penggunaan-android-volley-library.html  
  4. https://www.tutorialspoint.com/android/android_json_parser.htm
  5. https://translate.google.co.id/translate?sl=en&tl=id&js=y&prev=_t&hl=id&ie=UTF-8&u=https%3A%2F%2Fabhiandroid.com%2Fprogramming%2Fjson&edit-text=&act=url
  6. https://translate.google.co.id/translate?hl=id&sl=en&tl=id&u=https%3A%2F%2Fblog.takipi.com%2Fthe-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json%2F
  7. https://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/

 

http://hirupmotekar.com/wp-content/uploads/2018/10/Kelompok-2_Pertemuan-4.pptx -> download ppt

http://hirupmotekar.com/wp-content/uploads/2018/10/Kelompok-2_Pertemuan-4_word.docx -> download word

https://drive.google.com/open?id=1kJLfSMZTUtyt1O8UQ9Yzm4x8wZYEcaTc -> download project