PMO2 Pertemuan 4 JSON Parser

TUGAS PEMROGRAMAN MOBILE 2

PERTEMUAN 4

Disusun Oleh Kelompok 1 dengan anggota :

Syamsul falah 16.11.0029

Muhammad Aris nur Aziz 16.11.0046

Linatun Masrohah 16.11.0055

ZaenurRochman 16.11.0068

Yahya Dani Lisharyanto 16.11.0070

Muhammad Ali Hasani 16.11.0071

Muhammad Yunus 16.11.0076

Sofyan Fathur Rohim 16.11.0082

Hamid Ashari 16.11.0086

Asep Tri Wibowo 16.11.0091

Firmansah Putra 16.11.0093

STMIK AMIKOM PURWOKERTO

2018

 

Pengenalan JSON Parser

 

Pengertian JSON

JSON — singkatan untuk JavaScript Object Notation — adalah sebuah format untuk berbagi data. Seperti dapat kita lihat dari namanya, JSON diturunkan dari bahasa pemrograman javaScript, akan tetapi format ini tersedia bagi banyak bahasa lain termasuk Python, Ruby, PHP, dan Java. JSON biasanya dilafalkan seperti nama “Jason.”

JSON menggunakan ekstensi .json saat ia berdiri sendiri. Saat didefinisikan di dalam format file lain (seperti di dalam .html), ia dapat tampil didalam tanda petik sebagai JSON string, atau ia dapat dimasukkan kedalam sebuah variabel. Format ini sangat mudah untuk ditransfer antar server web dengan klien atau browser.

Karena sangat mudah dibaca dan ringan, JSON memberikan alternatif lebih baik dari XML adn membutuhkan formatting yang tidak banyak. Panduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan data di file JSON, serta struktur dan sintaks dari format ini.

Sintaks dan Struktur

Sebuah objek JSON adalah format data key-value yang biasanya di render di dalam kurung kurawal. Saat kita bekerja dengan JSON, kita akan sering melihat objek JSON disimpan di dalam sebuah file .json, tapi mereka juga dapat disimpan sebagai objek JSON atau string di dalam sebuah program.

Sebuah objek JSON terlihat seperti berikut ini:

Meskipun contoh di atas sangat singkat dan JSON dapat memiliki isi yang sangat banyak, contoh di atas secara umum menggambarkan dua kurung kurawal { } di awal dan di akhir dengan pasangan key-value diantara kedua tanda kurang. Sebagian besar data yang dipakai di JSON dienkapsulasi di dalam sebuah objek JSON.

Pasangan key-value memiliki tanda titik dua diantara mereka “key” : “value”. Setiap key-value dipisahkan oleh sebuah koma, sehingga ditengah isi sebuah JSON terlihat seperti in: “key” : “value”, “key” : “value”, “key”: “value”. Pada contoh di atas, nilai pertama pasangan key-value kita adalah “idbuku” : “1”.

Key JSON berada di sebelah kiri tanda titik dua. Mereka perlu dibungkus oleh tanda petik dua seperti ini: “key”, dan dapat berupa string apapun yang valid. Di dalam setiap objek, key haruslah unik. Key ini dapat memiliki spasi seperti di “first name”, namun menambahkannya akan membuat kita lebih repot saat akan mengaksesnya di proses ngoding sehingga disarankan untuk menggunakna underscore seperti pada “first_name”.

Value JSON ada di sebelah kanan tanda titik dua. Ada enam tipe data dasar yang bisa dipakai untuk mengisinya yaitu:

  • Strings
  • Numbers
  • Objects
  • Arrays
  • Booleans (true atau false)
  • Null

Setiap tipe data yang dimasukkan sebagai valu ke dalam JSON akan mengingat sintaksnya, jadi string akan diberikan tanpa petik, namun tidak dengan angka. 

 

Metode Metode JSON Parser

 

1. HTTP Request

Http request adalah sebuah proses yang akan sering dilakukan apabila sedang membuat sebuah app yang terhubung dengan server, alurnya adalah dari android akses sebuah url dengan HttpURLConnection dan kemudian mengolah data stream dari url tersebut, bentuknya biasanya berupa text baik itu berbentuk html maupun json. Pada HTTP Request ada beberapa method yang dapat kita gunakan antara lain :

  • GET

Digunakan untuk meminta data tertentu dari server.

  • POST

POST digunakan untuk mengirimkan data masukan pengguna ke server. Pada prakteknya, POST biasanya digunakan untuk mengambil data yang dimasukkan dari form HTML. Data yang diisikan pada form biasanya dikirimkan kepada server, dan server kemudian menentukan ke mana data akan dikirimkan selanjutnya (misal: disimpan ke *database atau diproses oleh aplikasi lain).

  • PUT

Method PUT menuliskan data pada server, sebagai kebalikan dari GET yang membaca data dari server. Beberapa sistem publikasi atau manajemen konten memungkinkan kita untuk membuat sebuah halaman web baru pada web server dengan menggunakan PUT.

Cara kerja PUT sangat sederhana, yaitu server membaca isi Entity Body dari request dan menggunakan isi tersebut untuk membuat halaman baru pada URL yang diberikan request, atau jika URL telah ada maka isi data akan ditimpakan.

  • DELETE

DELETE, seperti namanya, meminta server untuk menghapus data yang ada pada server, sesuai dengan URL yang diberikan oleh client. Begitupun, client tidak diberi jaminan bahwa penghapusan akan dijalankan ketika menggunakan DELETE. Hal ini terjadi karena standar HTTP memperbolehkan server untuk menolak atau mengabaikan permintaan DELETE dari client.

 

  • HEAD

Method HEAD melakukan hal yang sama dengan GET, dengan perbedaan utama yaitu pada HEAD server hanya akan mengembalikan Header HTTP pada response saja. Tidak ada Entity Body yang dikembalikan oleh HEAD. Hal ini akan memungkinkan client untuk melakukan cek atau verifikasi header dari sebuah data tanpa harus mengambil data tersebut (yang tentunya akan menghemat bandwidth). Dengan menggunakan HEAD kita dapat:

  1. Mengetahui informasi tentang data (tipe data, ukuran, dst) tanpa harus mengambi data secara langsung.
  2. Mengetahui apakah data ada atau tidak dengan melihat kode status yang
  3. Melihat apakah data telah diubah, melalui pembacaan Header.
  • OPTIONS

OPTIONS bertanya kepada server untuk mengetahui kemampuan yang dimiliki oleh server. Kita dapat meminta informasi methodyang didukung oleh server untuk data (URL) tertentu. Hal ini dilakukan untuk mengantisipasi beberapa server yang hanya memberikan dukungan terbatas terhadap beberapa URL atau objek tertentu.

Dengan begitu, OPTIONS memberikan cara bagi aplikasi client untuk menentukan cara terbaik mengakses berbagai data yang ada dalam server tanpa harus selalu mengakses data secara langsung.

  • TRACE

Method TRACE memungkinkan client untuk melihat requestpaling akhir yang diterima oleh server tujuan.

Sebuah request TRACE akan memulai perputaran diagnostik pada server tujuan. Ketika menerima request TRACE, server tujuan akan mengembalikan sebuah respon berisi request terakhir yang diterima oleh server, sehingga client dapat melihat bagian mana dari request asli yang dikirimkan yang mengalami perubahan ketika sampai di server.

 

2. REST(REpresentational State Transfer)

 

adalah sebuah arsitektur software untuk sistem terdistribusi semisal web. REST telah berkembang sebagai model desain web servis yang dominan saat ini. Istilah representational state transfer dikenalkan dan didefinisikan pada tahun 2000 oleh Roy Fielding dalam desertasi doktoralnya. Beliau merupakan salah satu penulis utama spesifikasi HTTP versi 1.0 dan 1.1. Sesuai konstrainnya, REST biasa disebut dengan “RESTful.”

Arsitektur REST memiliki enam konstrain berikut untuk diterapkan:

  1. Client-server
  2. Stateless (tidak ada data client yang disimpan selama proses komunikasi)
  3. Dapat di-cache
  4. Sistem berlapis
  5. Code on demand (opsional)
  6. Interface yang seragam

Web servis RESTful (disebut juga web API RESTful) adalah sebuah web servis yang diimplementasikan menggunakan HTTP dan prinsip-prinsip REST. Web servis RESTful merupakan kumpulan resource yang
aspek-aspek sebagai berikut:

  1. URI untuk web servis, seperti http://example.com/resources/
  2. Tipe media internet yang didukung oleh web servis. Biasanya XML tetapi dapat juga berupa tipe lainnya asalkan valid sesuai standar HTTP
  3. Set operasi yang didukung oleh web servis dengan metode HTTP (misal: GET, PUT, POST, atau DELETE)
  4. API harus berbasis hypertext

Arsitektur REST, yang umumnya dijalankan via HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web tertentu yang memuat sebuah file XML atau JSON. File inilah yang menguraikan dan memuat konten yang hendak disajikan. Setelah melalui sebuah proses definisi tertentu, konsumen akan bisa mengakses antarmuka aplikasi yang dimaksudkan.

Kekhasan REST terletak pada interaksi antara klien dan server yang difasilitasi oleh sejumlah tipe operasional (verba) dan Universal Resource Identifiers (URIs) yang unik bagi tiap-tiap sumberdaya. Masing-masing verba – GET, POST, PUT dan DELETE – memiliki makna operasional khusus untuk menghindari ambiguitas.

 

Library JSON Parser

 

1. OkHttp

OkHTTP yaitu sebuah library yang sangat mudah dan membantu sekali dalam urusan hubungan ke internet menggunakan HTTP. Kebanyakan aplikasi Android menggunakan HTTP untuk mengirim dan menerima data melalui internet. Jika aplikasi Anda perlu berkomunikasi melalui internet, untuk mengambil data dari server atau menyimpan data di server, maka kemungkinan bahwa Anda akan perlu menggunakan HTTP untuk melakukan itu. OkHTTP adalah library third-party yang dikembangkan oleh Square yang dapat digunakan untuk mengirim dan menerima HTTP-based network request.  Library OkHTTP dibuat dari  Okiolibrary, yang dikembangkan dengna tujuan agar lebih efisien dalam mengirim dan menerima data dibandingkan dengan standar Java I/O libary.  OkHTTP juga dikembangkan menjadi Retrofit library yang dapat digunakan dalam penggunaan REST-based APIs.
Fitur OkHTTP
OkHttp memudahkan developer android untuk terhubung ke internet menggunakan HTTP, seperti :

  • OkHTTP mengurusi koneksi ke server.
  • OkHTTP akan mengulang dan reconncet jika mungkin pada saat jaringan

jelek.

  • OkHTTP akan mencoba alternative server IP addresses jika gagal dan jika alternative IP tersebut tersedia.
  • Support Synchronously.
  • Support Asynchronously.
  • OkHttp dapat digunakan dari Android 2.3 ke atas.

2. Retrofit

adalah client HTTP type-safe untuk Android dan Java. Retrofit memudahkan untuk terhubung ke layanan web REST dengan menerjemahkan API ke dalam antarmuka Java. Dalam tutorial ini, saya akan menunjukkan cara menggunakan salah satu perpustakaan HTTP yang paling populer dan sering direkomendasikan untuk Android.

Perpustakaan yang kuat ini mempermudah penggunaan data JSON atau XML, yang kemudian diurai menjadi Plain Old Java Objects (POJOs). Permintaan GET, POST, PUT, PATCH, dan DELETE semua bisa dieksekusi.

Seperti kebanyakan perangkat lunak open-source, Retrofit dibangun di atas beberapa perpustakaan dan alat bantu lainnya. Di balik layar, Retrofit memanfaatkannya OkHttp (dari pengembang yang sama) untuk menangani permintaan jaringan. Selain itu, Retrofit tidak memiliki konverter JSON built-in untuk mengurai dari objek JSON ke Java. Sebagai gantinya, ini mendukung perpustakaan konverter JSON untuk menangani hal itu:

  • Gson: squareup.retrofit:converter-gson
  • Jackson: squareup.retrofit:converter-jackson
  • Moshi: squareup.retrofit:converter-moshi

Untuk Protocol buffers, Retrofit mendukung:

  • Protobuf: squareup.retrofit2:converter-protobuf
  • Wire: squareup.retrofit2:converter-wire

dan untuk XML Retrofit, mendukung:

  • Simple Framework: squareup.retrofit2:converter-simpleframework

3. Volley

Merupakan library HTTP yang dikembangkan oleh Google. Library ini bertujuan untuk memudahkan fitur-fitur yang berhubungan dengan jaringan, semisar 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.
Fitur-fitur Android Volley
Berikut adalah beberapa fitur Volley.

  1. Volley memanajemen request jaringan secara otomatis, tanpa menggunakan AsyncTask. Volley juga bisa menangani jaringan secara bebarengan, ini membuat operasi jaringan lebih efisien dan cepat.
  2. Volley men-cache setiap request jaringan. Ini membuatnya tidak cocok untuk menangani transfer data dengan ukuran yang besar.
  3. Volley memiliki API pembatalan yang powerful, yang mana bisa kita atur sesuai
  4. Volley memberikan kemudahan kepada Anda untuk mengatur urutan request jaringan. Ini memudahkan Anda dalam membuat tampilan data yang urut sesuai dengan kebutuhan Anda.
  5. Volley memiliki fitur debugging yang terintegrasi, memudahkan Anda menemukan error apabila ada.

4. 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.

Serialisasi dan deserialisasi biasanya dilakukan saat kita bekerja dengan webservice.

5. JSONP

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

6. 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.

 

Untuk lebih jelasnya, bisa download file materi dibawah ini :

File PowerPoint : PMO2_TI16B_Kelompok1_ pertemuan4

File Word : PMO2_TI16B_Kelompok1_ pertemuan4

Untuk contoh projeknya bisa didownload melalui link di bawah ini :

Jason Parser : https://drive.google.com/open?id=1uDje9V6ApVW5kHlaUhi7RkvBFYWM-_TI

 

Referensi

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

https://www.codepolitan.com/mengenal-fastjson-json-parser-untuk-java-dan-android-57cf8473292da-346

https://www.gookkis.com/android-network-menggunakan-okhttp/

http://vovolley.pe.hu/2017/04/22/apa-itu-android-volley-dan-apa-saja-fitur-fiturnya/

http://pusdiklat.bps.go.id/index.php?r=artikel/view&id=206

https://ekajogja.com/arsip/definisi/rest-representational-state-transfer/

https://github.com/ar-android/BelajarOOP/wiki/POJO-(Plain-Old-Java-Object)