http request - hirup motekarhirupmotekar.com/.../pmo2_ti16b_kelompok1_-pertemuan4.docx · web...

27
TUGAS PEMROGRAMAN MOBILE 2 PERTEMUAN 3 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

Upload: others

Post on 27-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

TUGAS

PEMROGRAMAN MOBILE 2

PERTEMUAN 3

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

Page 2: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

JSON Parsing

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:

Page 3: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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.

Page 4: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

Metode Metode JSON Parser

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.

Page 5: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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

dikembalikan.

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

Page 6: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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.

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

Page 7: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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

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.

Page 8: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

OkHTTP akan mengulang dan reconncet jika mungkin pada saat jaringanjelek.

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.

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: com.squareup.retrofit:converter-gson Jackson: com.squareup.retrofit:converter-jackson Moshi: com.squareup.retrofit:converter-moshi

Untuk Protocol buffers, Retrofit mendukung:

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

dan untuk XML Retrofit, mendukung:

Simple Framework: com.squareup.retrofit2:converter-simpleframework

Volley

Page 9: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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

kebutuhan.

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.

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.

JSONP

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

Page 10: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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.

Page 11: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

Tutorial Simple Project Json Parsing

1. Buat Project Baru

2. Tentukan Target android OS

Page 12: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

3. Pilih Empty Activity

4. Configurasi Activity

Page 13: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

5. Tambahkan RecyclerView pada MainActivity

Output :

Page 14: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

6. Tambahkan Repository Retrofit pada Gradle Module

Zoom in :

7. Tambah permission pada File Manifest

Zoom In :

Page 15: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

8. Buatlah Layout Bernama item_book

9. Tambahkan Linear Layout, cardview, imageview, 3 textview dan Button pada layout yang baru di buat

Page 16: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan
Page 17: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

10. Buat ModelBuku.java berfungsi untuk menampung data dari Json

Page 18: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

11. Buat Class GetBuku.java untuk menyimpan data berupa Json Array

Page 19: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

12. Buat ApiClient.java untuk menginisialisasi Retrofit supaya dapat di gunakan

13. Langkah selanjutnya yaitu buat ApiInteface.java untuk memanggil function yang nantinya akan memanggil method yang berada di web service

Page 20: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

14. Buat AdapterBuku.java sebagai adapter untuk recyclerview

Page 21: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

15. Tambahkan kode berikut pada MainActivity.java

Output :

Page 22: HTTP Request - Hirup Motekarhirupmotekar.com/.../PMO2_TI16B_Kelompok1_-pertemuan4.docx · Web viewPanduan ini akan membantu pembaca untuk memahami apa itu JSON, bagaimana menggunakan

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)