PMO18-TI16A-P4-PENGANTAR AWAL PEMROGRAMAN MOBILE: Pengenalan JSON Parser: Pemahaman JSON Parser, Metode-metode JSON Parser dan Library JSON Parser

PEMROGRAMAN MOBILE 2

KELOMPOK 5

  • Harry Wichaksono  (16.11.0271)
  • Wahyu Salam Santoso  (16.11.0277)
  • Alwi Sofwan  (16.11.0283)
  • Faiz Ichsan Jaya  (16.11.0289)
  • Sherlina Tyas Utami  (16.11.0290)
  • Ikhwan Setyawan  (16.11.0298)
  • Adent Bima Prasetya  (16.11.0301)
  • Aziz Wibie Ade Satrio  (16.11.0304)
  • Achmad Rizky  (16.11.0306)
  • Ikhsan Setiawan  (16.11.0344)
  • Sulistiono (16.11.0350)
  • Aurora Dwi Khatulistian  (17.11.0022)

_____________________________________________________________________________________

Link untuk presentasi:  PresentationPMO2P4

Apa itu JSON?

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScriptStandar ECMA-262 Edisi ke-3 – Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.

JSON terbuat dari dua struktur:

  • Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array.
  • Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).

Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini.

Struktur JSON

Jika dilihat dari strukturnya, JSON dibagi menjadi dua yaitu:

  1. Bentuk pasangan key:valueyang pada bahasa pemrograman Javascript disebut objek, atau dalam bahasa pemrograman lain seperti PHP disebut associative array. Contoh:
["Agus Prawoto Hadi", "jagowebdev.com"]

Selanjutnya, dalam JSON bentuk diatas disebut objek (Object). Perhatikan bahwa pada bentuk diatas, karakter pembuka dan penutup adalah kurung kurawa.

  1. Bentuk sederetan value saja (meskipun value tersebut juga dapat berbentuk object), yang dalam bahasa pemrograman Javascript dan PHP disebut array, contoh:
["Agus Prawoto Hadi", "jagowebdev.com"]

Selanjutnya, dalam JSON bentuk diatas disebut array. Perhatikan bahwa pada bentuk diatas, karakter pembuka dan penutup yang digunakan adalah kurung siku.

Lalu, 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. Untuk mengambil data dari server kita bisa memakai yang namanya API (Application Programming Interface). Bagi yang belum tahu apa itu API;

API (Application Programming Interface)  adalah sekumpulan perintahfungsi, dan protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu. API memungkinkan programmer untuk menggunakan fungsi standar untuk berinteraksi dengan sistem operasi lain. 

 

 

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

Maksud tipe data disini adalah jenis data yang dapat digunakan di dalam JSON, adapun tipe data yang dapat digunakan adalah sebagai berikut:

  1. 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 {}
  2. Array.  Sederetan value yang diapit oleh kurung siku (seperti ilustrasi dibawah). Antara value yang satu dengan yang lain dipisahkan tanda koma. array boleh bernilai kosong dan cukup ditulis []
  3. 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
  4. Boelan. Boelan berupa teks true dan false tanpa tanda kutip.
  5. Null. Null berupa teks null dan ditulis langsung tanpa tanda kutip.
  6. 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 harusdiapit dengan dua tanda kutip ( ” ) tidak boleh menggunakan satu tanda kutip ( ‘ ) atau tidak menggunakan tanda kutip sama sekali.

Library JSON Parser

Volley merupakan produk yang diperkenalkan oleh Google untuk mempermudah pertukaran data tanpa harus membuat deretan kode yang sangat panjang. Secara default volley menggunakan metode singkronisasi 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. Teman-teman bingung akan menggunakan library mana ketika membuat aplikasi android? Gunakan Retrofit jika teman-teman mendevelop aplikasi yang menggunakan REST API standar dengan json response dan tidak terlalu banyak custom requirement dalam caching, Requenst Priority, retries, dll. Volley jika anda membutuhkan fleksibelitas dalam network layer anda.Berikut adalah perbandingan Retrofit dan Volley secara detail:
  • Mudah digunakan Retrofit : Retrofit sangat mudah digunakan. Memungkinkan anda untuk memakai API ini dengan method sederhana dari java menggunakan interface. Volley : Sedikit lebih rumit pada umumnya. Volley hanya mendukung beberapa response yaitu String,Image,JSONObject dan JSONArray.
  • Performan dan Caching Retrofit : 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. Volley : Volley memiliki mekasnisme chacing yang lebih rumit dan fleksibel, memanfaatkan untuk membuat caching bitmaps yang lebih besar.
  • POST requests + multipart uploads Retrofit : memiliki dukungan penuh untuk permintaan POST dan upload file yang multi, dengan API Sweet untuk boot. Volley : support POST request tetapi anda harus convert terlebih dahulu java objek yang kita buat menjadi JSONObject.

FastJSON adalah library Java yang dapat digunakan untuk mengkonversi objek Java (POJO) ke dalam bentuk JSON. Ini juga dapat dipakai untuk mengkonversi dari JSON bentuk String ke bentuk objek Java yang sesuai.”

Tujuan pembuatan FastJSON ini juga dijabarkan di dalam halaman Github mereka yaitu:

  • Memberikan performa terbaik disisi server ataupun sisi Android client..
  • Memberikan konversi sederhana fungsi toJSONString()dan parseObject() untuk konversi objek Java ke bentuk JSON dan sebaliknya.
  • Memperbolehkan objek Java yang tidak dapat dimodifikasi sebelumnya , dikonversi menjadi bentuk JSON atau sebaliknya. – Dukungan ekstensif untuk tipe Java Generics.
  • Mendukung kustomisasi representasi dari isi objek Java.
  • Mendukung objek Java yang kompleks (dengan susunan inheritance yang dalam dan penggunaan ekstensif dari tipe data generic).

Gson adalah pustaka Java yang dapat digunakan untuk mengonversi Objek Java ke dalam representasi JSON mereka. Ini juga dapat digunakan untuk mengkonversi string JSON ke objek Java yang setara. Gson dapat bekerja dengan objek Java sembarang termasuk objek yang sudah ada sebelumnya yang tidak memiliki kode sumber.

Tujuan dari library ini:

  • Memberikan metode sederhana toJson() dan fromJson() untuk mengonversi objek Java ke JSON dan sebaliknya
  • Izinkan objek yang belum dimodifikasi yang sudah ada untuk dikonversi ke dan dari JSON
  • Dukungan luas Java Generics
  • Izinkan representasi khusus untuk objek
  • Mendukung objek acak yang sewenang-wenang (dengan hierarki warisan yang mendalam dan penggunaan luas dari tipe generik)

 

Contoh program JSON Parsing

Contoh projek bisa di-download disini: https://drive.google.com/open?id=1pcid8U6-qjv7gpDZYkpWyAU3DVhhJOFA

Link untuk presentasi:  PresentationPMO2P4

Daftar Pustaka: