Memanfaatkan Ericsson Networked Event API

Untuk kedua kalinya setelah 55 tahun Indonesia akan menjadi tuan rumah pelaksanaan Asian Games 2018. Asian Games 2018 akan dilaksanakan di Jakarta dan Palembang. Baru – baru ini juga sudah diadakan acara Hitung mundur (countdown) Asian Games 2018 di dua kota tersebut. Persiapan diberbagai bidang pun sudah dilakukan. Tak hanya dibidang olahraga dan infrastruktur saja, Kemenkominfo juga akan melakukan persiapan di bidang IT.

Bekerja sama dengan Ericsson, Kemenkominfo akan menciptakan Official App Asian Games 2018. Dan untuk mewujudkan rencana tersebut akan dibuatkan sebuah ajang perlombaan yang bisa diikuti oleh seluruh developer. Terdapat 2 kategori dalam ajang tersebut, untuk detailnya bisa dilihat di link berikut : Sport Digital Experience dan Smart City Digital Service.

Ericsson juga sudah menyediakan API yang dapat diakses secara terbatas oleh developer. Untuk anda yang berminat untuk menggunakan API dari Ericsson untuk mengikuti Challenge ini, anda dapat melakukan registrasi di link berikut dan kami akan memberikan akses kepada developer terpilih. Developer yang terpilih akan mendapatkan akses ke Ericsson Developer Portal. Beberapa kriteria penilaian untuk mendapatkan akses Ericsson Developer Portal adalah :

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang
  • Telah lulus dari salah satu kelas di Dicoding Academy.
  • Mempunyai minimal 200 XP.
  • Aplikasi yang telah disubmit dalam challenge sebelumnya.

Pada artikel ini, kami akan menyediakan tutorial bagaimana caranya menggunakan ENE API untuk pengembangan aplikasi Android. Aplikasi yang akan dikembangkan adalah Asian Games Schedule, yaitu aplikasi untuk melihat jadwal pertandingan Asian Games 2018. Sebelum memasuki langkah – langkah untuk mengembangkan aplikasi tersebut, alangkah lebih baiknya untuk mengenal Ericsson Developer Portal terlebih dahulu.

Pengenalan Ericsson Developer Portal

Ericsson Networked Event (ENE) Developer Portal adalah sebuah portal yang menyediakan open API untuk developer. Ericsson Developer Portal berisi data dummy yang bisa dimanfaatkan oleh developer yang ingin mengembangkan aplikasi untuk Asian Games 2018. Dengan Ericsson Developer Portal, developer akan mendapatkan beberapa informasi mencakup :

  • Informasi untuk event Asian Games
  • Informasi live dari event Asian Games
  • Informasi secara realtime untuk event Asian Games.

Ericsson Developer Portal dapat diakses melalui http://asiangamesdigitalchallenge2017.kemkominfo-ericsson.com/ dengan memasukan username dan password yang sudah diberikan ketika Anda telah berhasil request akses. Terdapat 3 menu utama dari Ericsson Developer Portal yaitu Ericsson Networked Event yang berisi informasi seputar event Asian Games, Safe City untuk integrasi smart city, dan Ericsson Extensions untuk memanfaatkan beberapa layanan ekstensi dari Ericsson.

Ketika memilih Ericsson Networked Event pada halaman utama, maka Anda akan melihat berbagai macam dokumentasi API yang sangat lengkap dan mudah dipahami. Anda bisa memilih beberapa API yang akan digunakan untuk mengembangkan Official App Asian Games 2018. Terdapat 3 kategori dari ENE API yaitu Core Service, Digital Experience dan Sports. Terdapat juga ENE Admin yang bisa digunakan untuk manage data. ENE Admin dapat diakses di alamat http://ene-dicoding.asiangamesdigitalchallenge2017.kemkominfo-ericsson.com/ . Didalam ENE Admin terdapat dashboard yang menyajikan data dummy, Anda juga bisa melakukan update pada data yang sudah ada atau membuat data baru.

Halaman Ericsson Networked Event

Halaman Ericsson Networked Event Admin

Setiap service juga sudah terdapat penjelasan singkat beserta contoh penggunaannya. API service dapat diakses dengan port 6081 dan Anda perlu menambahkan header Basic Auth (‘Authorization Basic {BASE64 ENCODED “USERNAME:PASSWORD”}’) dan ‘Content-Type: application/json’.

Mencoba Service menggunakan Swagger atau Postman

Setelah berkenalan dengan Ericsson Developer Portal, selanjutnya Anda bisa mencoba beberapa service yang tersedia. Klik tombol Open API documentation, maka Anda akan diarahkan ke portal Swagger dan bisa melakukan eksplorisasi dari beberapa service API yang tersedia. Sebelumnya Anda harus memahami Base Url dan PATH dari service yang akan digunakan. Misalkan Anda ingin menggunakan service Event untuk mendapatkan data berupa daftar event yang tersedia, maka alamat lengkapnya adalah Base Url diikuti PATH dari service get all events ( ene-username.asiangamesdigitalchallenge2017.kemkominfo-ericsson.com/api/v2/program/{customer}/events ) dengan method GET.

Halaman API documentation

Anda bisa melihat detail service yang akan digunakan dengan cara klik service tersebut dan Swagger akan menampilkan beberapa informasi mengenai penggunaan service seperti parameter yang harus ditambahkan dan response yang akan didapatkan.

Halaman API documentation

Terdapat juga tombol Try it out untuk mencoba service tersebut. Sebelumnya klik tombol dengan icon gembok, kemudian masukan username dan password Anda.

Dialog Authorizations

Dialog Authorizations

 

Klik tombol Try it out dan masukkan beberapa parameter yang dibutuhkan. Terdapat 2 pilihan Response content type, yaitu application/json untuk menampilkan data berupa JSON dan aplication/xml untuk menampilkan data dalam bentuk XML.

Tampilan Try it out

Klik tombol execute maka Swagger akan menampilkan respon beserta response code. Jika berhasil maka akan ditampilkan data yang diminta.

Tampilan respon dalam bentuk JSON

Jika Anda ingin mencoba dengan Postman, buka Postman, pilih method GET dan masukkan Request Url,  pilih Authentication Basic dan masukkan username beserta password Anda, klik tombol send maka Postman akan melakukan permintaan ke Ericsson Developer Portal, jika berhasil data akan ditampilkan dengan response code 200.

Contoh percobaan request service dengan Postman

Implementasi ke dalam aplikasi Android

Sebelum masuk ke pembahasan project Android, pastikan Anda sudah menginstall Android Studio versi terbaru. Terdapat beberapa kelas rekomendasi yang bisa Anda pelajari diantaranya adalah Menjadi Android Developer Expert, dan Belajar Membangun Aplikasi Android Native. Langsung saja ikuti langkah – langkah berikut dengan teliti :

  1. Buat project baru di Android Studio, beri nama project misalnya Asian Games Schedule.
  2. Tambahkan beberapa library pada build.gradle, disini kita akan menggunakan Retrofit sebagai networking library dan Google Maps API untuk menampilkan maps pada aplikasi (Anda harus membuat credentials untuk aplikasi yang akan dikembangkan. Silahkan ikuti caranya pada link berikut).

  3. Tambahkan Internet permission dan meta-data untuk Google Maps API key pada AndroidManifest.xml.  Jangan lupa ganti “YOUR_API_KEY” dengan API KEY yang Anda dapatkan dari Google Maps APIs.

  4. Buat package networking pada project Anda dan buatlah class baru dengan nama ApiService.Java yang akan diisi dengan beberapa method untuk request ke API service.

  5. Masih didalam package networking, buat class baru dengan nama ApiBuilder.Java. Class ini berisi Retrofit Builder dengan menggunakan Interceptor dari OkHttp.


    Anda harus memasukan header Authorization dan Base Url dari Ericsson Developer Portal. Header Authorization memiliki format “Authorization : Basic token Anda”. Untuk mengetahui token dari akun Ericsson Developer Portal, buka history API request Anda pada Postman yang sudah dicontohkan diatas dan pilih Headers, maka akan terlihat token Anda.

    Header authorization

  6. Buat package baru dengan nama model dan tambahkan beberapa class baru berisi POJO (Plain Old Java Object) berikut :
    EventResponse.Java


    Arena.Java


     SubEvent.Java

  7. Buat package baru dengan nama home dan tambahkan activity baru dengan nama HomeActivity didalamnya. Buka activity_home.xml dan rancang layout  dengan menambahkan ProggressBar dan RecyclerView untuk menampilkan list data.

  8. Buat layout baru dengan nama event_list.xml untuk merancang desain CardView.

  9. Buat class EventAdapter.Java pada package home untuk implementasi RecyclerView Adapter yang berguna untuk menampilkan data pada RecyclerView.

  10. Buat interface HomeView.Java pada package home.

  11. Buat class HomePresenter.Java pada package home berisi logic untuk memanggil API Service dengan method getEventList().

  12. Buka HomeActivity.Java dan implementasikan HomeView serta inisialisasikan HomePresenter, sehingga kode lengkapnya seperti berikut.

  13. Buat package baru dengan nama detail dan tambahkan activity baru dengan nama EventDetailActivity didalamnya. Buka activity_event_detail.xml dan rancang layout dengan kode xml berikut.

  14. Buat layout baru dengan nama sub_event_list.xml yang akan digunakan untuk menampilkan data sub event.

  15. Buat class SubEventAdapter.Java pada package detail untuk implementasi RecyclerView Adapter yang berguna untuk menampilkan data sub event pada RecyclerView.

  16. Buat interface EventDetailView.Java pada package detail.

  17. Buat class EventDetailPresenter.Java pada package detail berisi logic untuk memanggil API Service dengan method getEventDetail().

  18. Buka EventDetailActivity.Java dan implementasikan EventDetailView serta inisialisasikan EventDetailPresenter, sehingga kode lengkapnya seperti berikut.

  19. Jalankan project Anda pada Android device atau emulator.

Anda telah belajar bagaimana cara memanfaatkan ENE API dengan mengimplementasikannya kedalam sebuah aplikasi Android. Untuk source code dari tutorial ini bisa diunduh pada link berikut. Silahkan kembangkan aplikasi versi Anda sendiri untuk Asian Games 2018 dengan kreatifitas dan jangan lupa submit aplikasi Anda pada challenges Sport Digital Experience atau Smart City Digital Service.

“Berkaryalah dan berkontribusi untuk Indonesia”


-

Jika ada pertanyaan silahkan tulis di kolom komentar. Goodluck dan semoga Anda lah salah satu pemenang dan berhak mendapatkan 1 hadiah utama berupa perjalanan ke Ericsson Studio dan Ericsson Garage di Swedia.


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.