HTTP Request



TUGASPEMROGRAMAN MOBILE 2PERTEMUAN 3Disusun Oleh Kelompok 1 dengan anggota :Syamsul falah 16.11.0029Muhammad Aris nur Aziz 16.11.0046Linatun Masrohah 16.11.0055ZaenurRochman 16.11.0068Yahya Dani Lisharyanto 16.11.0070Muhammad Ali Hasani 16.11.0071Muhammad Yunus 16.11.0076Sofyan Fathur Rohim 16.11.0082Hamid Ashari 16.11.0086Asep Tri Wibowo 16.11.0091Firmansah Putra 16.11.0093STMIK AMIKOM PURWOKERTO2018JSON ParsingPengertian JSONJSON?— 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 StrukturSebuah 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:StringsNumbersObjectsArraysBooleans (true atau false)NullSetiap 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 ParserHTTP RequestHttp 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 : GETDigunakan untuk meminta data tertentu dari?server.?POSTPOST?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).PUTMethod?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.?DELETEDELETE, 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.HEADMethod?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:Mengetahui informasi tentang data (tipe data, ukuran, dst) tanpa harus mengambi data secara langsung.Mengetahui apakah data ada atau tidak dengan melihat kode status yang dikembalikan.Melihat apakah data telah diubah, melalui pembacaan Header.OPTIONSOPTIONS?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.?TRACEMethod?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:Client-serverStateless (tidak ada data client yang disimpan selama proses komunikasi)Dapat di-cacheSistem berlapisCode on demand (opsional)Interface yang seragamWeb 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:URI untuk web servis, seperti? media internet yang didukung oleh web servis. Biasanya XML tetapi dapat juga berupa tipe lainnya asalkan valid sesuai standar HTTPSet operasi yang didukung oleh web servis dengan metode HTTP (misal: GET, PUT, POST, atau DELETE)API harus berbasis hypertextArsitektur 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 ParserOkHttpOkHTTP 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 OkHTTPOkHttp memudahkan developer android untuk terhubung ke internet menggunakan HTTP, seperti :OkHTTP mengurusi koneksi ke server.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.Retrofitadalah 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-gsonJackson:?com.squareup.retrofit:converter-jacksonMoshi:?com.squareup.retrofit:converter-moshiUntuk?Protocol buffers, Retrofit mendukung:Protobuf:?com.squareup.retrofit2:converter-protobufWire:?com.squareup.retrofit2:converter-wiredan untuk XML Retrofit, mendukung:Simple Framework:?com.squareup.retrofit2:converter-simpleframeworkVolleyMerupakan?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 .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 VolleyBerikut adalah beberapa fitur Volley.Volley memanajemen?request?jaringan secara otomatis, tanpa menggunakan?AsyncTask. Volley juga bisa menangani jaringan secara bebarengan, ini membuat operasi jaringan lebih efisien dan cepat.Volley men-cache?setiap?request?jaringan. Ini membuatnya tidak cocok untuk menangani transfer data dengan ukuran yang besar.Volley memiliki API pembatalan yang?powerful, yang mana bisa kita atur sesuai kebutuhan.Volley memberikan kemudahan kepada Anda untuk mengatur urutan?request?jaringan. Ini memudahkan Anda dalam membuat tampilan data yang urut sesuai dengan kebutuhan Anda.Volley memiliki fitur?debugging?yang terintegrasi, memudahkan Anda menemukan?error?apabila ada.GSONGSON 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.JSONPJSONP adalah salah satu metode untuk mengirim JSON data.JSONP tidak menggunakan objek XMLHttpRequest.JacksonJackson 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.Tutorial Simple Project Json ParsingBuat Project BaruTentukan Target android OSPilih Empty ActivityConfigurasi Activity Tambahkan RecyclerView pada MainActivityOutput :Tambahkan Repository Retrofit pada Gradle Module168275018491200Zoom in :Tambah permission pada File Manifest16411436645140Zoom In :Buatlah Layout Bernama item_bookTambahkan Linear Layout, cardview, imageview, 3 textview dan Button pada layout yang baru di buat162115536195000 Buat ModelBuku.java berfungsi untuk menampung data dari Json1636395302597800231572108902500Buat Class GetBuku.java untuk menyimpan data berupa Json Array2081948934450016192502678200120510936449000Buat ApiClient.java untuk menginisialisasi Retrofit supaya dapat di gunakan20955152197000Langkah selanjutnya yaitu buat ApiInteface.java untuk memanggil function yang nantinya akan memanggil method yang berada di web service363855732993001453947127000150812536385500Buat AdapterBuku.java sebagai adapter untuk recyclerview251765567055001504950197428100150475325019000Tambahkan kode berikut pada MainActivity.java26225592880200153118818446750015068553091200Output :Referensi(Plain-Old-Java-Object) ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download