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
- 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.
- 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.
- kunci:JSONObject berisi kunci yang ada dalam format string.Sepasang kunci dan nilai |menciptakan JSONObject.
- ||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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- length ():Metode ini digunakan untuk mendapatkan jumlah pemetaan nama / nilai dalam objek ini.
- keys ():Metode ini digunakan untuk mendapatkan iterator dari nama String dalam Object.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- getJSONArray (int index):Metode ini digunakan untuk mendapatkan nilai jenis JSONArray.Kami melewati indeks dan mengembalikan JSONArray jika ada yang lain itu melempar JSONException.
- 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.
- 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.
- 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.
- length ():Metode ini digunakan untuk mendapatkan jumlah nilai dalam Array ini.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- Melakukan sebuah request queuing and prioritization (Mengutamakan prioritas dalam sebuah antrian)
- Sangat efektif untuk melakukan chache dan efisiensi penyimpanan (memory)
- Dapat melakukan perubahan class sesuai dengan kebutuhan
- 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
- https://infinum.co/the-capsized-eight/top-5-android-libraries-every-android-developer-should-know-about
- https://www.gookkis.com/android-network-library-retrofit-rest-api-client-tutorial/
- https://www.sinaryuda.web.id/tutorial/contoh-penggunaan-android-volley-library.html
- https://www.tutorialspoint.com/android/android_json_parser.htm
- 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
- 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
- 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