Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pembuatan Web Service Data Masyarakat Kab. Cianjur

Pembuatan Web Service Data Masyarakat Kab. Cianjur

Seminar skripsi yang saya lakukan untuk mempresentasikan tentang web service yang dibuat untuk memperoleh data masyarakat Kabupaten Cianjur menggunakan praktik REST API.

Iqbal Perkasa

June 09, 2017
Tweet

More Decks by Iqbal Perkasa

Other Decks in Research

Transcript

  1. Pembangunan Web Service Menggunakan REST API dengan Access Token untuk

    Aplikasi Pendaftaran Kartu Pencari Kerja Studi Kasus DISDUKCAPIL dan DISNAKERTRANS Kabupaten Cianjur M Iqbal Perkasa, 10113081 [email protected] SEMINAR SKRIPSI
  2. Dosen Pembimbing dan Reviewer Eko Budi Setiawan, S.Kom., M.T. Rangga

    Gelar Guntara, S.Kom., M.Kom. Pembimbing Reviewer
  3. Latar Belakang Masalah 1.4+ juta* data belum dimanfaatkan Operator input

    secara manual Harus datang ke kantor *Sumber: BNPB Indonesia, 2010
  4. Rumusan Masalah Bagaimana membangun sebuah aplikasi web service menggunakan REST

    API dengan access token untuk aplikasi pendaftaran kartu pencari kerja pada Dinas Kependudukan dan Catatan Sipil Kabupaten Cianjur dan Dinas Ketenagakerjaan dan Transmigrasi Kabupaten Cianjur
  5. Maksud Penelitian • Membangun web service menggunakan REST API dengan

    access token • Membangun aplikasi pendaftaran kartu pencari kerja
  6. Batasan Masalah 1.REST API 2.Client-server 3.Berbasis web dan Android 4.Data

    dikirim berformat JSON 5.PHP + MySQL + CodeIgniter 6.Android dengan NativeScript
  7. Web Service • Web service adalah sistem perangkat lunak yang

    didesain dapat dioperasikan mesin ke mesin melalui jaringan • Pesan yang diterima dari proses program yang ada pada service dapat berupa XML atau JSON • Berbagai platform yang berbeda
  8. Access Token • String unik berisi huruf, angka, atau kombinasi

    keduanya • Untuk mengidentifikasi dan memverifikasi apakah pemohon memiliki hak dalam mengakses web service
  9. REST • Salah satu gaya arsitektur web service • Resource

    diakses melalui alamat HTTP URL • Mengirim perintah dengan metode HTTP yang disebut verb • GET, POST, PUT, DELETE
  10. Kode Balikan REST • 200 OK • 400 Bad Request

    • 401 Unauthorized • 403 Forbidden • 404 Not Found • 429 Too Many Requests • 500 Internal Server Error
  11. JSON • Sebuah format teks, mudah diurai dan dibaca mesin/manusia

    • Terdapat dua struktur: • name/value → {“name”: “value”} • array → [“value_1”, “value_2”]
  12. NativeScript • Membuat aplikasi Android/iOS menggunakan JavaScript. Magic! • Javacsript

    → Java/Swift • WebView seperti Ionic • Tampilan depan menggunakan XML dan CSS
  13. Analisis Masalah Belum adanya aplikasi untuk memonitor penggunaan data. Operator

    secara manual memasukkan data pemohon. Belum adanya aplikasi untuk memonitor mendaftar kartu secara mandiri.
  14. Arsitektur Sistem Server Disdukcapil Kab. Cianjur (Program) Server Pengembang Aplikasi

    (Program) Internet Internet Database Masyarakat Kab. Cianjur Database Sistem API Cianjur Pengguna Akhir (Masyarakat) Pengguna Akhir (Masyarakat)
  15. Pembentukan Access Token • Enkripsi dari kombinasi string email dan

    waktu timestamp pembentukan • Timestamp digunakan untuk membuat key yang unik
  16. Skenario Pembentukan Access Token Alamat Email [email protected] Timestamp Pembuatan Token

    1492035660 (12 April 2017 22:20) Fungsi SHA256 sha256(‘[email protected]’) Access Token yang Didapat 91b37dee294eb66ce67c9d8bbbe6f71f0d9 baf8f9a697c37f35e4108bbccf9be
  17. Alur Validasi Request API Validasi Access Token Kosong (403 Forbidden)

    Validasi Format Access Token (400 Bad Request) Validasi Access Token (401 Unauthorized) Validasi Access Token dengan Domain Terdaftar Validasi Batas Limit (429 Too Many Request) Validasi NIK Kosong (404 Not Found) Validasi Format NIK (400 Bad Request) Validasi NIK (404 Not Found) Selesai Mulai
  18. Request API • access_token Kunci validasi untuk mengakses data •

    nik NIK masyarakat yang akan diambil datanya 2. Parameter
  19. Response API Response: Status: 200 OK X-Limit-Limit: 60 X-Limit-Remaining: 59

    { "SUCCESS": true, "MESSAGE": [], "DATA": { "NIK": "3203190907650002", "NAMA_LGKP": "SARHINDI", "TMPT_LHR": "CIANJUR", ... }
  20. Use Case Diagram Admin API Pengguna API/ Pengembang Aplikasi Pengguna

    Aplikasi/ Masyarakat Login Daftar Akun Generate Ulang Access Token Akses API Lihat Statistik <<include>> Kelola Access Token Verifikasi Access Token <<include>> <<include>> <<include>> <<extend>>
  21. Class Diagram Login Controller + data : array of object

    - default_values() + daftar() - do_signup() Account Model # table : string - values : array of object + insert_account() Daftar Akun View - message : string - csrf_name : string - csrf_hash : string Login Controller + data : array of object - default_values() + index() - do_login() Login View - message : string - csrf_name : string - csrf_hash : string Access Token Controller + data : array of object + statistik() Access Token Model # table : string - query : object + get_access_token() + get_statistik_today() + get_statistik_week() + get_statistik_month() Lihat Statistik View - statistik : array - values : array Access Token Controller + data : array of object + verifikasi() + do_verified() Verifikasi Access Token View - values : array - list_access_token : array of object Access Token Controller + data : array of object + generate_ulang() + do_generate() Generate Access Token View - values : array Access Token Controller + data : array of object + ubah() - default_values() + process_form() Kelola Access Token View - values : array - csrf_name : string - csrf_hash : string Api Controller - data : array of object - db_ora : object - get : array of object - access_token : string - nik : string - return : array of object - limit_access_token : number - current_limit : number - http_origin : string - domain_list : array + get_data_by_nik() - stop() Api Model - custom_query : object - query_check : string - query : object - log : array of object + get_data_by_nik() - insert_log() - inc_limit()
  22. Sequence Diagram Akses API Api Controller Access Token Model 1.

    get_data_by_nik() Pengguna 6. return Api Model 2. get_limit_access_token() 3. get_current_limit_access_token() 7. stop() alt [permintaan tidak valid] 8. get_data_by_nik() 13. return 14. stop() 9. get_custom_query_access _token() 10. return 11. insert_log() 4. get_access_token_by_access_token() 5. get_domain_list_access_token() 12. inc_limit()