Penerapan
RESTful Web Service
dan
JSON
pada
Application Programming Interface
(API)
Sistem Informasi Perkembangan Ayam Broiler Berbasis Kemitraan
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti:
Dody Agung Saputro (672011206) Hindriyanto D. Purnomo, S.T., MIT., Ph.D.
Ramos Somya, S.Kom., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
1
Penerapan
RESTful Web Service
dan
JSON
pada
Application Programming Interface
(API)
Sistem Informasi Perkembangan Ayam Broiler Berbasis Kemitraan
1)
Dody Agung Saputro, 2)Hindriyanto Dwi Purnomo, 3)Ramos Somya
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 1)[email protected], 2)[email protected],
3)
Abstract
In broiler chicken farms based on partnership, the growth of broiler chickens monitored intensively by extension workers. With the large number of breeders then the manual process of report, handle, and monitor takes a long time and the data can not be seen directly by the company so we need a technology to minimize those problems. This research resulted a broiler chicken growth information system Application Programming Interface (API) based on partnerships that can be used by breeders, breeder partners and extension workers to facilitate the process of reporting, handling and monitoring by the company in realtime. The API technology can be applied as a data center and a data provider in the system. The combination of RESTful web service and JSON into the API makes the integration can be done safely, simple and easy to use. Use of the broiler chicken growth information system API potentially to be applied to complement the existing manual processes on many farms based on partnership.
Keywords : RESTful, JSON, API, Information System, Chicken Growth, Partnership.
Abstrak
Pada peternakan ayam broiler dengan pola kemitraan, perkembangan ayam broiler dipantau secara intensif oleh petugas penyuluh lapangan (PPL). Semakin banyaknya jumlah anak kandang maka proses pelaporan, penanganan dan pemantauan membutuhkan waktu yang lama serta data tidak bisa dilihat oleh perusahaan secara langsung sehingga dibutuhkan teknologi untuk meminimalkan permasalahan yang ada. Dalam penelitian ini dirancang sebuah Application Programming Interface (API) sistem informasi perkembangan ayam broiler berbasis kemitraan yang dapat digunakan oleh anak kandang, peternak mitra dan PPL untuk memudahkan proses pelaporan, penanganan dan pemantauan oleh perusahaan secara terintegrasi dan realtime. Teknologi API dapat diterapkan sebagai pusat penyedia dan pengolah data dalam sistem. Penggabungan RESTful web service dan JSON ke API membuat integrasi dapat dilakukan secara aman, simpel dan menjadi mudah digunakan. Penggunaan API sistem informasi perkembangan ayam broiler berbasis kemitraan ini berpotensi untuk diaplikasikan secara luas untuk melengkapi proses manual yang masih banyak diterapkan pada peternakan berpola kemitraan.
Kata Kunci : RESTful, JSON, API, Sistem Informasi, Perkembangan Ayam, Kemitraan.
1) Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya Wacana
Salatiga
2) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
3)
2
1. Pendahuluan
Peternakan merupakan salah satu usaha yang masih mempunyai peluang sangat bagus dan banyak terdapat di berbagai daerah di Indonesia, khususnya peternakan ayam broiler. Industri peternakan ayam broiler berperan penting di Indonesia karena daging ayam dapat memenuhi dan menutup kebutuhan protein hewani masyarakat Indonesia sebesar 53% [1]. Banyak para peternak yang memilih pola kemitraan daripada bergerak secara mandiri karena lebih menguntungkan, semisal adanya pasokan sarana produksi dan jaminan pasar dari perusahaan yang menjadi mitra [2,3]. Dalam mewujudkan pola kemitraan tersebut, biasanya ada petugas penyuluh lapangan (PPL) yang dikirim perusahaan untuk melakukan pelaporan, pemantauan dan penanganan secara intensif, dimana jumlah anak kandang yang semakin banyak dan tersebar akan membutuhkan waktu dan sumber daya yang besar pula [4]. Dampak lain yang ditimbulkan adalah kesulitan perusahaan dalam merekapitulasi data perkembangan ayam dari seluruh mitra yang dimilikinya karena tidak bersifat realtime. Dibutuhkan teknologi yang aman namun tetap simpel dan mudah digunakan untuk meminimalkan permasalahan dan kelemahan dari segala proses manual yang ada.
Salah satu cara untuk meminimalkan permasalahan tersebut adalah dengan membuat suatu sistem yang terintegrasi dan realtime antar anak kandang, PPL, peternak mitra dan perusahaan. Salah satu alternatif penyelesaiannya adalah dengan menyediakan provider sebagai pusat penyedia dan pengolah data dengan menggunakan sebuah Application Programming Interface (API) sebagai titik poin komunikasi dari dan ke resource yang dimilikinya. Teknologi web service dapat diterapkan pada API tersebut agar integrasi dapat dilakukan di protokol HTTP dan melalui internet. Jenis web service yang digunakan adalah RESTful web service
yang mempunyai keamanan akses yang baik dengan menerapkan custom token authentication. Gabungan antara RESTful web service dan JSON dapat membuat
API menjadi lebih simpel, mudah digunakan dan human readable daripada menggunakan metode web service dan tipe data yang lain. [5]
Penelitian ini bertujuan untuk menerapkan RESTful web service dan JSON
pada API sistem informasi perkembangan ayam broiler berbasis kemitraan yang aman dan mudah digunakan untuk melengkapi pelaporan secara manual yang masih banyak diterapkan pada peternakan berpola kemitraan. Pada sistem yang dibuat anak kandang dapat mengirim report setiap hari dan petugas penyuluh lapangan dapat memberikan penanganan berkala dengan melakukan request dan
response melalui API. Pihak perusahaan dapat melihat data yang telah dikirimkan secara langsung tanpa harus menunggu laporan manual di tiap akhir periode. Adapun fokus dari penelitian ini adalah pada perancangan API dan pembuatan
website utama, tidak pada sisi aplikasi yang digunakan untuk mengkonsumsi hasil
API di anak kandang, peternak mitra, dan petugas penyuluh lapangan.
2. Tinjauan Pustaka
3
sistem informasi untuk memantau perkembangan ayam broiler berbasis desktop. Aplikasi ini dapat memasukkan data ayam, menampilkan laporan dan grafik, serta menganalisa perhitungan indeks produksi pada peternakan [6]. Pemanfaatan IT
yang lain adalah sistem infomasi yang dipakai untuk mengelola proses administrasi bisnis di perusahaan peternakan. [2]
Peternakan ayam broiler merupakan komoditi peternakan yang cepat dan potensial produksinya dibandingkan dengan produk ternak lainnya, karena pertumbuhannya cepat, bobot badan tinggi, konversi pakan kecil, dan kualitas dagingnya tinggi. Para peternak ayam broiler ini sebagian besar bekerjasama dengan perusahaan dengan pola kemitraan, di mana peternak akan difasilitasi sarana produksi dan harga jual, serta mendapat jaminan pasar. Program kemitraan ini merupakan program pemerintah untuk meningkatkan produksi ternak agar dapat merangsang tumbuhnya peternak di Indonesia [3].
Sistem informasi yaitu kumpulan alat dan sumber daya manusia sebagai pengguna yang saling tergabung, terintegrasi dan terpadu yang mengumpulkan dan mengolah data untuk menghasilkan suatu informasi yang berguna untuk perencanaan, pelaksanaan, pekerjaan, pengendalian dan pengambilan keputusan dalam organisasi [7]. Sistem informasi merupakan wadah pengolah data dari informasi yang diberikan oleh pengguna dan hasil olahannya juga untuk dikonsumsi oleh kepentingan pengguna.
Application Programming Interface (API) atau Antarmuka Pemrograman Aplikasi adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu [8]. Dengan adanya suatu API, maka jika ada tambahan platform baru maka tidak perlu dilakukan penyesuaian pada platform yang sudah ada. Hal ini dikarenakan
API yang digunakan sudah mempunyai standar dan aturan yang baku dalam melayani permintaan dari platform sehingga lebih efisien. Jika ada perubahan, yang akan berubah hanyalah pada pemrosesan data di dalam API server itu sendiri. Kelebihannya API yang lain adalah fitur keamanan dan hak akses yang dapat diatur serta dapat dijadikan suatu API terbuka bagi pengembang lainnya secara publik.
Web service adalah suatu software yang dirancang untuk menyediakan komunikasi dan interaksi pada dua aplikasi atau lebih dengan sifat program-to-program [9]. Dengan adanya web service, maka satu aplikasi dapat diakses dan berhubungan tanpa perlu mengetahui detail program secara mendalam dengan aplikasi lain walaupun aplikasi tersebut berbeda platform, bahasa pemrograman, dan sistem operasi [10]. Publikasi terkait dengan penerapan web service
diantaranya adalah pengembangan web service dengan menerapkan XML (Extensible Markup Language) yang dapat digunakan untuk memanajemen data dan mengintegrasi aplikasi sistem informasi universitas secara enterprise [11].
Model web service dapat dipecah menjadi dua bagian yaitu SOAP (Simple Object Access Protocol) dan REST (Representational State Transfer).Komponen dari REST terdiri dari: 1) WADL (Application Definition Language) yang digunakan sebagai kontrak layanan yang dijelajahi melalui kode dan pengganti
WSDL, 2) HTTP Method OPTION, GET, HEAD, POST, PUT, DELETE, dan
4
oleh Roy Thomas Fielding, salah seorang pelopor proyek web server Apache, pada disertasi doktornya yang berjudul Architectural Styles and the Design of Network based Software Architectures di University of California pada tahun 2000 [12]. Dibandingkan dengan SOAP, REST lebih sederhana karena menggunakan format standar (HTTP, HTML, XML, URI, MIME), ketika dilakukan proses pertukaran data maka hasil eksekusi web service tersebut diolah dalam format XML atau HTML melalui protokol HTTP [13].
JSON (Javascript Object Nation) adalah suatu format data ringan yang dapat mempermudah programmer dalam melakukan pertukaran data (lebih singkat daripada array) dan format ini juga sangat mudah diolah oleh mesin untuk diurai. JSON adalah format teks yang benar-benar merupakan bahasa independen, tetapi menggunakan konvensi yang akrab bagi programmer dari keluarga bahasa pemrograman C, termasuk di dalamnya adalah C, C++, C#, Java, JavaScript, Perl, Python, dan banyak lainnya. Properti ini membuat JSON merupakan format bahasa pertukaran data yang ideal[14].
Berbeda dengan penelitian sebelumnya, penelitian ini berbasis pada web
yang mempunyai API untuk dapat berinteraksi dengan resource yang lain. Penambahan RESTful web service bertipe data JSON memungkinkan penambahan
resource menjadi lebih mudah. API juga berperan sebagai suatu standarisasi yang mengatur bagaimana permintaan dan layanan hasil olah data akan diproses.
3. Metode Penelitian
Pendekatan ilmiah yang dipakai adalah pendekatan teknik (engineering approach), dimana penekanan utamanya adalah membangun produk (Burstein dan Gregor, 1999), yaitu sistem informasi perkembangan ayam broiler berbasis kemitraan [15]. Sedangkan metode pengembangan sistem yang digunakan terdiri dari lima tahapan, yaitu: 1) Analisis kebutuhan dan pengumpulan data, 2) Perancangan sistem meliputi perancangan proses (UML), perancangan arsitektur, perancangan database, perancangan antarmuka, 3) Perancangan aplikasi/program, 4) Implementasi dan pengujian sistem, serta analisis hasil pengujian, 5) Penulisan laporan. Lima tahapan yang dilakukan ditunjukkan pada Gambar 1.
Analisis kebutuhan dan pengumpulan data
Perancangan sistem meliputi perancangan proses (UML), perancangan database, perancangan antarmuka
Perancangan aplikasi/program
Implementasi dan pengujian sistem, serta analisis hasil pengujian
Penulisan laporan
5
Tahapan penelitian pada Gambar 1 dapat dijelaskan sebagai berikut: 1) Tahap pertama: analisis kebutuhan dan pengumpulan data, yaitu melakukan analisis terhadap apa saja yang dibutuhkan dalam melakukan penelitian dan mengumpulkan data tentang proses bisnis, struktur, dan sample report peternakan yang sudah berjalan selama ini. 2) Tahap kedua: perancangan sistem meliputi perancangan proses (UML), meliputi use case diagram, class diagram, activity diagram, dan deployment diagram. Tambahan perancangan yang lain yaitu perancangan database meliputi tabel-tabel yang digunakan dalam menyimpan data serta penentuan hubungan relasinya dan perancangan antarmuka aplikasi yang akan dibuat. 3) Tahap ketiga: perancangan aplikasi/program, yaitu merancang aplikasi sesuai dengan kebutuhan sistem berdasarkan perancangan yang sudah dilakukan. Pembuatan aplikasi terbagi menjadi dua bagian yaitu bagian pertama berupa API yang melayani proses request dan response pada anak kandang, peternak mitra, dan petugas penyuluh lapangan serta bagian kedua berupa website yang merupakan sistem informasi untuk perusahaan supaya dapat melihat dan memonitor data secara mudah dan realtime. Pada API menggunakan bahasa pemrograman PHP dan Restler sebagai REST API framework, sedangkan pada website menggunakan bahasa pemrograman PHP, Bootstrap framework
sebagai kerangka tampilan, library Sammy.js sebagai pengatur path routing, dan
library Mustache untuk pengatur templating pada aplikasi. 4) Tahap keempat: implementasi dan pengujian sistem serta analisis hasil pengujian, yaitu mengimplementasikan aplikasi yang sudah dirancang ke hosting supaya dapat diakses secara online, kemudian diuji dan dianalisis apakah terdapat error pada aplikasi dan apakah aplikasi sesuai dengan perancangan. 5) Tahap kelima: penulisan laporan, yaitu mendokumentasikan proses penelitian dan proses perancangan aplikasi dari tahap awal sampai akhir.
PPL Perusahaan Inti
Anak Kandang Peternak Mitra
Gambar 2 Struktur Pihak yang Terlibat pada Sistem [4]
6
yang secara administratif menjadi mitra dari perusahaan inti untuk menyediakan kandang dan bertanggung jawab terhadap keuntungan dan kerugian anak kandangnya. PPL (Petugas Penyuluh Lapangan) adalah orang yang ditunjuk untuk memantau dan membina peternak mitra dan anak kandang. Perusahaan inti adalah pihak yang menyediakan pakan dan obat-obatan, yang menjadi mitra dari anak kandang [4].
Perancangan proses pada penelitian ini menggunakan UML (Unified Modeling Language) dengan beberapa proses sebagai berikut. Use case diagram
adalah gambaran fungsionalitas kerja sistem secara visual dan graphical yang menjelaskan interaksi antara aktor dengan sistem beserta dengan fungsi-fungsi yang ada [16,17]. Use case diagram pada aplikasi ini terdapat empat aktor utama yaitu anak kandang, peternak mitra, petugas penyuluh lapangan (PPL), dan perusahaan. Pada aplikasi ini terdapat dua macam use case diagram yang akan digunakan, yaitu use case diagram pada API dan use case diagram pada sistem informasi. Use case diagram pada API ditunjukkan pada Gambar 2.
7
Gambar 4Use Case Diagram pada Sistem Informasi
Gambar 4 menunjukkan bahwa pada sisi sistem informasi hanya terdapat satu aktor saja, yaitu perusahaan. Perusahaan ini dapat mengelola data anak kandang (termasuk menambah, mengubah, dan menghapus), mengelola peternak mitra (termasuk menambah, mengubah, dan menghapus), mengelola petugas penyuluh lapangan atau PPL (termasuk menambah, mengubah, dan menghapus), mengelola periode (termasuk menambah dan mengubah), memilih periode aktif yang sedang berjalan, dan melihat laporan grafik FCR serta grafik kematian dari anak kandang.
Class diagram menggambarkan struktur dan deskripsi class yang ada di dalam aplikasi yang dikembangkan, beserta hubungan atau relasi satu sama lain seperti user interface, atribut, dan service [17,18]. Class diagram terdiri dari
entity, controller dan boundary. Entity adalah penghubung antara fungsi dengan
database, yang pada Gambar 5 dan Gambar 6 dicontohkan dengan entity tb_stock, tb_ppl, tb_anakkandang, tb_peternakmitra, tb_report_header, dan tb_report_detail. Boundary adalah user interface atau tampilan dari aplikasi.
Controller adalah jembatan yang menghubungan antara entity dan boundary. Controller ini menerima perintah dari boundary dan akan meneruskan ke entity,
8
Gambar 5ClassDiagram pada Sisi API
Gambar 6Class Diagram pada Sisi Sistem Informasi
9
Gambar 7 Activity Diagram untuk Input Report Harian
Gambar 8Activity Diagram untuk Input Penanganan
Gambar 7 menunjukkan aktivitas yang dilakukan anak kandang ketika memasukkan report harian. Anak kandang pertama harus memastikan bahwa ia belum memasukkan report harian pada saat itu, karena satu hari hanya dapat memasukkan satu kali. Setelah itu, anak kandang mengakses API untuk login dan akan mendapat respon. Jika responnya sukses, maka akan ke tahap berikutnya sedangkan jika responnya error maka harus kembali lagi ke login. Selanjutnya jika hari tersebut sudah masuk ke periode baru, maka perusahaan harus terlebih dahulu menambah periode baru, namun jika masih sama dengan periode sebelumnya maka dapat langsung mengakses API untuk report harian. Jika respon yang di dapat sukses, maka aktifitas berakhir. Tapi jika respon yang didapat error
semisal parameter salah, maka akan kembali ke tahap sebelumnya.
Gambar 8 menunjukkan aktivitas yang dilakukan oleh petugas penyuluh lapangan (PPL) ketika memasukkan penanganan berdasarkan anak kandang. PPL pertama kali harus mengakses API login terlebih dahulu. Jika mendapat respon
error, maka harus mengulang kembali dari login. Jika respon sukses maka selanjutnya adalah PPL dapat mengakses API list anak kandang. Ketika respon yang didapat adalah kosong atau tidak ada data, maka perusahaan harus memasukkan data anak kandang terlebih dahulu, baru setelah itu PPL mengulang lagi dari API list anak kandang dan akan mendapatkan daftar anak kandang. PPL kemudian memilih salah satu anak kandang dari list tersebut dan dapat mengakses
10
yang dimasukkan bukan merupakan angka, maka dapat mengulang lagi dari tahap mengakses API untuk penanganan.
Gambar 9Activity Diagram untuk Lihat Data Report Harian dan Grafik
Gambar 9 menunjukkan aktivitas yang dilakukan oleh perusahaan ketika melihat data report harian dan grafik. Sebelumnya perusahaan harus login terlebih dahulu. Jika login gagal, maka akan kembali ke login kembali. Jika login berhasil, maka dapat langsung dilihat report harian yang tampil di website serta grafik kematian dan FCR. Apabila tidak ada data yang ditampilkan, maka yang harus dilakukan adalah melakukan input report harian terlebih dahulu yang dilakukan oleh anak kandang, serta melakukan input penanganan yang dilakukan oleh PPL. Setelah melakukan analisis terhadap data tersebut, maka perusahaan dapat memilih kembali daftar report harian dan grafik atau ingin mengakhiri aktivitas.
Deployment diagram adalah struktur fisik beserta gambaran hardware dari sistem yang dirancang. Deployment diagram pada aplikasi ini dapat dilihat pada Gambar 10.
Gambar 10Deployment Diagram
11
sebagai tempat penyimpanan data. Database server ini terhubung dengan API server dan applicationserver. APIserver berfungsi sebagai jembatan penghubung antara device anak kandang, peternak mitra, dan PPL sekaligus melayani proses
request and response data pada database server. Application server berfungsi sebagai aplikasi sistem informasi bagi PC atau laptop perusahaan untuk melihat
report dan grafik berdasarkan data dari databaseserver.
4. Hasil dan Pembahasan
Penelitian ini menghasilkan dua sub-aplikasi yaitu API untuk melayani
request and response data dan sistem informasi untuk meninjau report serta grafik secara realtime. Berdasarkan perancangan class diagram yang sudah dibuat, maka struktur tabel dan relasi pada database yang dibuat dengan MySQL dapat dilihat pada Gambar 11.
Gambar 11 Struktur Tabel dan Relasi Database
Pada Gambar 11 menunjukkan bahwa pada perancangan aplikasi menggunakan enam buah tabel, yaitu tb_stock, tb_peternakmitra, tb_anakkandang, tb_ppl, tb_report_header, dan tb_report_detail. Terdapat lima buah relasi antar tabel, yaitu: 1) Relasi antara id_ak pada tb_stock dengan id pada tb_anakkandang yang berarti satu anak kandang dapat memiliki beberapa stock, 2) Relasi antara id_pm pada tb_anakkandang dengan id pada tb_peternakmitra yang berarti satu peternak mitra dapat memiliki beberapa anak kandang, 3) Relasi antara id_ak pada tb_report_header dengan id pada tb_anakkandang yang berarti satu anak kandang dapat memiliki beberapa report header, 4) Relasi antara id_report_header pada tb_anakkandang dengan id pada tb_reportheader yang berarti satu anak kandang hanya dapat memiliki satu report header yang aktif, dan 5) Relasi antara id_header pada tb_report_detail dengan id pada tb_report_header yang berarti satu report header dapat memiliki beberapa report detail.
Application Programming Interface (API) ditujukan untuk anak kandang, peternak mitra, dan petugas penyuluh lapangan. Perancangan API menggunakan Restler sebagai framework untuk membangun API yang menerapkan RESTful web service dan menggunakan JSON sebagai tipe data kembalian. Untuk keamanan
API dan batasan akses resource, maka digunakan custom token authentication.
12
setiap kali user berhasil login. Kode Program 1 menunjukkan fungsi proses login
anak kandang yang akan mengembalikan nilai custom token ke user.
Kode Program 1 Fungsi Login Anak Kandang sebagai Custom Token Authentication
1
function postLogin($username, $password) {
$result = $this->db->get('tb_anakkandang', ['id', 'password', 'nama'], ['username' => $username]);
if ($result == NULL) {
throw new RestException(401, 'username salah');
}
if (!password_verify($password, $result['password'])) {
throw new RestException(401, 'password salah');
}
$token = cust_func::random_token();
$this->db->update('tb_anakkandang', ['token' => $token], ['id' => $result['id']]);
$error = $this->db->error(); if ($error[2] != null) {
throw new RestException(400, $error[2]);
}
$last_result = cust_func::success('Login berhasil'); $last_result->token = $token;
return $last_result; }
Hasil kembalian token yang dihasilkan dari login API dibungkus dalam data
JSON seperti yang ditunjukkan pada Gambar 12. Proses debugging menggunakan
browser Mozilla Firefox dengan add-on REST Easy.
Gambar 12 Hasil JSON dari RequestLogin Anak Kandang
Pada API ini hanya terdapat dua method yang digunakan yaitu GET dan
POST karena kompatibel dengan hampir semua browser, framework, dan
platform dibanding dengan PUT, DELETE, atau REPLACE. Method GET
digunakan untuk mendapatkan list data dari hasil request sedangkan method POST digunakan untuk memasukkan data ke API. Tabel 1 menunjukkan daftar semua perintah yang terdapat pada API, baik untuk melayani request maupun
13
Tabel 1List Fungsi pada API
No REST API Path
Method Parameter Deskripsi Kembalian (JSON)
1 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/login.json
POST String username
String password
Sebagai login API untuk akses pertama kali
String success String token 2 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/change_password.json?token=x
POST String token
String new_password
GET String token Mendapatkan data diri dari anak kandang/ppl/peternak mitra
POST String token
int jumlah (sak)
Input laporan stock pakan ketika ada stock pakan masuk
String success
5 http://[SERVER]/api/anak_kandang/report/daily_input.json?token=x
POST String token
int deplesi_mati (ekor) int pakan_pakai (sak)
Input report harian
perkembangan ayam oleh anak kandang, satu kali per hari
String success
6 http://[SERVER]/api//[anak_kandang|ppl|peternak_mitra]/report/header.json?token=x
GET String token Mendapatkan list report header atau periode dari semua anak kandang
Mendapatkan list report detail atau report harian dari anak kandang berdasarkan id report header atau periode
GET String token Mendapatkan periode aktif berjalan anak kandang tersebut
14
Tabel 2 Lanjutan List Fungsi pada API
No REST API Path
Method Parameter Deskripsi Kembalian (JSON)
9 http://[SERVER]/api/peternak_mitra/show/ppl.json?token=x
GET String token Mendapatkan data list PPL String success array ppl[
GET String token Mendapatkan data list anak kandang berjalan pada anak kandang tertentu secara spesifik
Mendapatkan data grafik FCR (Feed Conversion Ratio) pada anak kandang
String success array label[] array data[] 13 http://[SERVER]/api/peternak_mitra/grafik/kematian.json?token=x
GET String token Mendapatkan data kematian rata-rata semua anak kandang
String success rata-rata anak kandang secara spesifik berdasarkan
POST String token
String id_detail
float report_kondisi (gram)
Memasukkan data penanganan berupa berat ayam (dalam gram) oleh PPL
String success
15
Gambar 13 Contoh APIRequest Mendapatkan List Anak Kandang
Gambar 14 Contoh APIRequest Memasukkan Report Harian
Gambar 13 dan 14 menunjukkan contoh proses request dari beberapa fungsi
API yang ada. Penggunaan parameter token memungkinkan request dilakukan beberapa kali tanpa melalui proses login lagi. Pada beberapa fungsi, tambahan parameter juga dibutuhkan terutama pada fungsi dengan method POST.
16
Gambar 16 Grafik FCR dari Periode Anak Kandang di Website Utama
Selain API, pada aplikasi yang dirancang juga terdapat penerapan sistem informasi yang ditujukan kepada perusahaan untuk me-manage data anak kandang, peternak mitra, dan PPL serta memantau proses pelaporan secara
realtime. Sistem informasi yang dirancang menggunakan Bootstrap sebagai kerangka tampilan, library Sammy.js sebagai pengatur path routing, dan library
Mustache untuk pengatur templating pada aplikasi. Gambar 15 dan 16 menunjukkan tampilan user interface dari sistem informasi untuk melihat dan merekapitulasi data yang dikirimkan dari API secara realtime.
Pengujian aplikasi dilakukan untuk menguji fungsi yang terdapat pada sistem berdasarkan use casediagram. Pengujian dilakukan dengan menggunakan teknik blackbox, yaitu pengujian secara langsung apakah setiap fungsi sudah berjalan dengan baik tanpa melihat alur eksekusi program. Tabel 3 dan 4 menunjukkan hal yang diuji dan hasil pengujian yang dilakukan pada API.
Tabel 3 Hasil Pengujian Akses RESTful API
No REST API Path
Kondisi Output yang diharapkan Output yang dihasilkan Status
1 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/login.json
Method, parameter diisi benar
Method, parameter diisi salah
Berhasil login
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil ganti password
Gagal ganti password
Berhasil ganti password
Gagal ganti password
Valid Valid
3 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/profile.json?token=x
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil ganti profil
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil report stock
Gagal report stock
Berhasil report stock
Gagal report stock
Valid Valid
5 http://[SERVER]/api/anak_kandang/report/daily_input.json?token=x
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil report harian Gagal report harian
Berhasil report harian Gagal report harian
17
Tabel 4 Lanjutan Hasil Pengujian Akses RESTful API
No REST API Path
Kondisi Output yang diharapkan Output yang dihasilkan Status
6 http://[SERVER]/api//[anak_kandang|ppl|peternak_mitra]/report/header.json?token=x
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan report header
Gagal mendapatkan report header
Berhasil mendapatkan
report header
Gagal mendapatkan report header
Valid
Valid
7 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/report/detail.json?token=x&id_header=x
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan report header
Gagal mendapatkan report header
Berhasil mendapatkan
report header
Gagal mendapatkan report header
Valid
Valid
8 http://[SERVER]/api/anak_kandang/report/active_period.json?token=x
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil set periode aktif
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan data PPL
Gagal mendapatkan data PPL
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan data
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan data
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan data
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan data
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil mendapatkan detail
Method, token, parameter diisi benar
Method, token, parameter diisi salah
Berhasil input penanganan Gagal input penanganan
Berhasil input penanganan Gagal input penanganan
Valid Valid
Berdasarkan Tabel 3 dan 4, pengujian yang dilakukan pada RESTful API
mempunyai status valid. Ini menandakan bahwa fungsi pada API berjalan dengan baik. Selain itu, API juga telah mempunyai akses resource yang aman dan baik karena untuk mengakses API dibutuhkan token sebagai penanda user credential.
Method yang digunakan juga harus sesuai apakah fungsi tersebut menggunakan
18
Tabel 5 Hasil Pengujian Blackbox Testing pada Sistem Informasi
Fungsi Kondisi Output yang Diharapkan
Output yang
Dihasilkan Status
Proses login Username dan password
benar
Username dan password
salah atau kosong
Input, edit, delete data anak kandang
Data diisi dengan benar Berhasil input, edit, delete data
Berhasil input, edit, delete data
Valid
Input, edit, delete data peternak mitra
Data diisi dengan benar Berhasil input, edit, delete data
Berhasil input, edit, delete data
Valid
Input, edit, delete PPL Data diisi dengan benar Berhasil input, edit, delete data
Berhasil input, edit, delete data
Valid
Input dan set data periode aktif Data diisi dengan benar Berhasil input dan
set data
Berhasil input dan
set data Load data report harian anak
kandang
Berhasil load data Berhasil load data Valid
Load data report stock pakan Berhasil load data Berhasil load data Valid
Load data grafik kematian Berhasil load data Berhasil load data Valid
Load data grafik kematian per anak kandang
Berhasil load data Berhasil load data Valid
Load data grafik FCR Berhasil load data Berhasil load data Valid
Proses logout Berhasil logout Berhasil logout Valid
Berdasarkan Tabel 5, pengujian yang dilakukan pada sistem informasi mempunyai status valid. Ini menandakan bahwa fungsi yang tersedia pada sistem informasi telah berjalan dengan baik serta sesuai dengan yang dirancang dan diharapkan.
Secara keseluruhan, berdasarkan pengujian dengan metode blackbox baik di sisi API maupun sistem informasi semuanya mempunyai status valid sehingga dapat disimpulkan bahwa semua sisi aplikasi termasuk API dan sistem informasi semuanya telah berjalan dengan baik.
5. Simpulan
Dalam penelitian ini disimpulkan bahwa RESTful web service dan JSON
pada Application Programming Interface (API) dapat digunakan untuk membuat suatu sistem yang terintegrasi dan realtime. Teknologi ini dapat diterapkan pada sistem informasi perkembangan ayam broiler berbasis kemitraan. Adapun keunggulan dari penambahan RESTfulweb service dan JSON ini adalah integrasi dapat dilakukan melalui internet secara aman, simpel, mudah digunakan dan
human readable.
19
penyuluh lapangan, misalnya proses report harian, list anak kandang berserta periodenya, penanganan ayam, dan lain sebagainya. Aplikasi ini juga mempunyai manfaat dari sisi perusahaan, di mana perusahaan dapat me-manage data anak kandang, peternak mitra, dan petugas penyuluh lapangan serta memonitor dan merekapitulasi perkembangan ayam.
6. Pustaka
[1] Virgianti, K. 2013. Wamen Pertanian: Daging Ayam Penuhi 53 Persen
Kebutuhan Protein Hewani Masyarakat,
http://www.satuharapan.com/index.php?id=109&tx_ttnews[tt_news]=5515 &cHash=1, diakses 1 Desember 2014.
[2] SdSasmita I.M. A., Ana, I.M., Putra, I.G.P.A.W.A. 2010. Rancang Bangun Sistem Informasi Kemitraan Ayam Broiler pada Perusahaan Sentral Unggas Bali Berbasis Web. Lontar Komputer, vol 1, no 1., 42-66.
[3] Maulana, M.L. 2008. Analisis Pendapatan Peternak Ayam Ras Pedaging Pola Kemitraan Inti-Plasma (Studi Kasus Peternak Plasma dari Tunas Mekar Farm di Kecamatan Nanggung Kabupaten Bogor). Program Sarjana. Institut Pertanian Bogor. Bogor.
[4] Somya, R., Ardaneswari, A., Saputro, D.A., Purnomo, H.D. 2015.
“Perancangan Sistem Pemantauan Pertumbuhan Ayam Pada Peternakan Ayam Broiler Dengan Pola Kemitraan”. Seminar Nasional Teknologi Informasi dan Multimedia 2015. Yogyakarta.
[5] JSON. 2009. Pengenalan JSON, http://www.json.org/json-id.html. Diakses tanggal 7 Desember 2014
[6] Fatoni, M.R. -. Rancang Bangun Sistem Informasi Pemantauan Perkembangan Ayam Broiler (Studi Kasus di Ps. Bintang Unggas Lamongan). Program Sarjana. STIKOM Surabaya. Surabaya.
[7] Hartono, J. 2009. Sistem Teknologi Informasi: Pendekatan Terintegrasi: Konsep Dasar, Teknologi, Aplikasi, Pengembangan, dan Pengelolaan (Edisi 3). Yogyakarta: Andi.
[8] Ichwan, M & Hakiky, F. 2011. Pengukuran Kinerja Goodreads Application Programming Interface (API) pada Aplikasi Mobile Android. Jurnal Informatika 2011, Vol 2 No 2, pp. 13 – 21.
[9] Gottschalk, K., Graham, S., Kreger, H., Snell, J. 2002. Introduction to Web Services Architecture. IBM Systems Journal, Vol 41 No 2, pp. 170 – 177. [10] Suryadi, G., Hiryanto, L., Tumbelaka, B. 2013. Implementasi Web Service
Untuk Mobile Commerce. Jurnal Ilmu Komputer dan Sistem Informasi, Vol 1 No 1, pp 73 - 78.
[11] Santoso, B. 2008. “Analisa Dan Perancangan Web Services Untuk Sistem Informasi Universitas”. Konferensi Nasional Sistem dan Informatika 2008. Bali.
[12] Yusron, M.L., Arwani, I., Pradana, F. 2013. Rancang Bangun REST Web Service pada Aplikasi Penentuan Portofolio Saham menggunakan Model Markowitz dan JQuery Mobile. Repositori Jurnal Mahasiswa PTIIK UB,
20
[13] Sukyadi, D., 2009, Model Interoperabilitas Sistem Informasi Layanan Publik Studi Kasus: e-Government, Karya Akhir, Prodi Magister Teknologi Informasi, Fasilkom, UI, Jakarta.
[14] Narendra, J., Suprihadi, Beeh, Yos R. 2011. Layanan Service Aplikasi smsCAPTCHA pada Web PHP Berbasis cURL dengan Menggunakan JSON Format. Jurnal Teknologi Informasi – Aiti, vol. 8. No.1, pp. 42 – 60. [15] Burstein, F.V., Gregor, S., 1999, The System Development or Engineering
Approach to Research in Information Systems: An Action Research Perspective, Proceeding of 10th Australasian conference on Information Systems, Wellington NZ, 1-3 December 1999, pp 122-134.
[16] Nugroho, A. 2005. Rational Rose Untuk Pemodelan Berorientasi Objek. Bandung: Informatika.
[17] Imron, M.S, Palekahelu, D.T, Somya, R. 2014. Perancangan dan Implementasi Aplikasi Pembelajaran Siklus Carnot Berbasis RIA untuk Pelajar SMA (Studi Kasus: SMA Negeri 3 Salatiga). Jurnal Teknologi Informasi – Aiti. Vol 11 No 1, pp. 61 – 76.