Institutional Repository | Satya Wacana Christian University: "Penerapan RESTful Web Service dan JSON pada Application Programming Interface (API) Sistem Informasi Perkembangan Ayam Broiler Berbasis Kemitraan "
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 Salatiga Januari 2015
Penerapan RESTful Web Service dan JSON pada Application Programming Interface (API) Sistem Informasi Perkembangan Ayam Broiler Berbasis Kemitraan
Dody Agung Saputro, 3) Hindriyanto Dwi Purnomo, Ramos Somya
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 2) dodyags@gmail.com, hindriyanto.purnomo@staff.uksw.edu,
3) ramos.6005@gmail.com
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.
Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya Wacana Salatiga
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
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
Penerapan IT dalam bidang peternakan belum begitu meluas. Beberapa publikasi terkait penerapan IT dalam bidang peternakan misalnya: penggunaan Penerapan IT dalam bidang peternakan belum begitu meluas. Beberapa publikasi terkait penerapan IT dalam bidang peternakan misalnya: penggunaan
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 TRACE , dan 3) URI (Uniform Resource Identifier). REST pertama kali digunakan 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 TRACE , dan 3) URI (Uniform Resource Identifier). REST pertama kali digunakan
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
Gambar 1 Tahapan Penelitian
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.
Perusahaan Inti
Peternak Mitra
PPL
Anak Kandang
Gambar 2 Struktur Pihak yang Terlibat pada Sistem [4]
Pada Gambar 2 menggambarkan struktur dari pihak yang terlibat pada sistem, yaitu, anak kandang, peternak mitra, PPL, dan perusahaan inti. Anak kandang adalah peternak yang berhubungan langsung dengan ayam dimulai dari persiapan, bibit, pemeliharaan sampai dengan panen. Peternak mitra adalah orang Pada Gambar 2 menggambarkan struktur dari pihak yang terlibat pada sistem, yaitu, anak kandang, peternak mitra, PPL, dan perusahaan inti. Anak kandang adalah peternak yang berhubungan langsung dengan ayam dimulai dari persiapan, bibit, pemeliharaan sampai dengan panen. Peternak mitra adalah orang
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.
<<include>>
Lihat profil PPL
PPL
Insert penanganan
<<extend>>
Insert report harian
<<extend>>
<<extend>> <<extend>>
Insert pakan pakai
Ganti password PPL Lihat anak kandang Insert deplesi kematian Insert stock pakan
Peternak Mitra
Lihat periode aktif
Anak Kandang
Lihat PPL
Ganti password anak kandang
<<extend>> Lihat grafik kematian Lihat grafik FCR
<<extend>>
Lihat profil peternak mitra
Ganti password peternak mitra
Lihat profil anak kandang
Gambar 3 Use Case Diagram pada API
Gambar 3 menunjukkan bahwa pada sisi API aktor peternak mitra dapat melihat data profil, mengganti password, melihat data anak kandang, melihat data PPL, melihat periode aktif, dan melihat laporan grafik FCR serta grafik kematian anak kandang. Aktor PPL dapat melihat profil, mengganti password, melihat data anak kandang, melihat periode aktif, dan memasukkan penanganan. Aktor anak kandang dapat melihat data profil, mengganti password, melihat periode aktif, dan memasukkan report harian (memasukkan data pakan yang dipakai, kematian, dan stock pakan).
<<extend>>
Lihat grafik FCR Mengelola periode
Set periode aktif
<<extend>>
<<extend>>
Insert PPL
Edit PPL
<<extend>>
<<extend>>
Edit periode
Tambah periode Hapus PPL <<extend>>
Lihat PPL <<include>>
Perusahaan
Mengelola PPL <<extend>>
<<extend>>
Lihat grafik kematian Mengelola peternak mitra Mengelola anak kandang Edit anak kandang <<include>>
<<extend>>
<<extend>> Edit peternak mitra <<extend>>
<<include>> <<extend>>
Lihat peternak mitra Insert peternak mitra Hapus peternak mitra Tambah anak kandang Lihat anak kandang Hapus anak kandang
Gambar 4 Use 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_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, begitu juga sebaliknya controller akan menerima perintah dari entity lalu meneruskannya ke boundary. Class diagram yang telah dirancang selanjutnya dapat digunakan sebagai pedoman dan dasar dalam merancang database, tabel, struktur dan relasi. Class diagram pada sistem informasi perkembangan ayam broiler berbasis kemitraan ini mempunyai dua bagian yaitu class diagram pada sisi API yang ditunjukkan pada Gambar 5 dan class diagram pada sistem informasi yang ditunjukkan pada Gambar 6.
tb_anakkandang,
tb_peternakmitra,
Gambar 5 Class Diagram pada Sisi API
Gambar 6 Class Diagram pada Sisi Sistem Informasi
Activity diagram merupakan diagram yang menggambarkan alur aktifitas dalam sistem yang sedang dirancang, dimulai dari awal kemudian keputusan yang mungkin terjadi di tengah jalan sampai dengan akhir capaian [16].
Gambar 7 Activity Diagram untuk Input Gambar 8 Activity Diagram untuk Input Report Harian
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 API untuk input penanganan. Ketika respon yang didapatkan adalah sukses, maka aktifitas berakhir. Namun jika respon yang didapatkan adalah error semisal input 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 API untuk input penanganan. Ketika respon yang didapatkan adalah sukses, maka aktifitas berakhir. Namun jika respon yang didapatkan adalah error semisal input
Gambar 9 Activity 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 10 Deployment Diagram
Gambar 10 menggambarkan deployment diagram dari aplikasi yang dirancang. Pada deployment diagram terdapat database server yang berfungsi Gambar 10 menggambarkan deployment diagram dari aplikasi yang dirancang. Pada deployment diagram terdapat database server yang berfungsi
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. Token ini adalah susunan acak dari kombinasi huruf dan angka yang di-generate 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. Token ini adalah susunan acak dari kombinasi huruf dan angka yang di-generate
Kode Program 1 Fungsi Login Anak Kandang sebagai Custom Token Authentication
1 function postLogin($username, $password) { 2 $result = $this->db->get('tb_anakkandang', ['id', 'password', 'nama'], 3 ['username' => $username]); 4 5 if ($result == NULL) { 6 throw new RestException(401, 'username salah'); 7 } 8 9 if (!password_verify($password, $result['password'])) { 10 throw new RestException(401, 'password salah'); 11 } 12 13 $token = cust_func::random_token(); 14 $this->db->update('tb_anakkandang', ['token' => $token], ['id' =>
15 $result['id']]); 16 17 $error = $this->db->error(); 18 if ($error[2] != null) {
19 throw new RestException(400, $error[2]); 20 } 21 22 $last_result = cust_func::success('Login berhasil'); 23 $last_result->token = $token; 24 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 Request Login 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 response data.
Tabel 1 List Fungsi pada API
REST API Path
No Method
Parameter
Deskripsi
Kembalian (JSON)
1 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/login.json POST
String username
String success String password
Sebagai login API untuk akses
pertama kali
String token
2 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/change_password.json?token=x
POST String token
String success String new_password
Untuk mengganti password
anak kandang/ppl/peternak mitra
3 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/profile.json?token=x GET
String token Mendapatkan data diri dari anak String success kandang/ppl/peternak mitra
array profile[ String username, String nama, String nohp, String alamat
] 4 http://[SERVER]/api/anak_kandang/report/stock.json?token=x POST String token
String success int jumlah (sak)
Input laporan stock pakan
ketika ada stock pakan masuk
5 http://[SERVER]/api/anak_kandang/report/daily_input.json?token=x POST
String success int deplesi_mati (ekor)
String token
Input report harian
perkembangan ayam oleh anak
int pakan_pakai (sak)
kandang, satu kali per hari
6 http://[SERVER]/api//[anak_kandang|ppl|peternak_mitra]/report/header.json?token=x GET
String token
Mendapatkan list report header
String success
atau periode dari semua anak
array report_header[][
kandang
int id, int periode, date tgl_ci, float bw_awal, String strain, int populasi
] 7 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/report/detail.json?token=x&id_header=x GET
String success int id_header
String token
Mendapatkan list report detail
atau report harian dari anak
array report_detail[][
kandang berdasarkan id report
date tanggal,
header atau periode
int deplesi_mati, int pakan_pakai, float report_kondisi
] 8 http://[SERVER]/api/anak_kandang/report/active_period.json?token=x GET
String token
Mendapatkan periode aktif
String success
berjalan anak kandang tersebut
array active_period[ int id, int periode, date tgl_ci, float bw_awal, String strain, int populasi
Tabel 2 Lanjutan List Fungsi pada API
REST API Path
No 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[
String username, String nama, String nohp
] 10 http://[SERVER]/api/[peternak_mitra|ppl]/show/anak_kandang.json?token=x GET
String token
Mendapatkan data list anak
String success
kandang
array anak_kandang[ String username, String nama, String nohp, String alamat
11 http://[SERVER]/api/[peternak_mitra|ppl]/report/active_period.json?token=x&username=x
GET String token
String success String username
Mendapatkan periode aktif
berjalan pada anak kandang
array active_period[
tertentu secara spesifik
int id, int periode, date tgl_ci, float bw_awal, String strain, int populasi
] 12 http://[SERVER]/api/peternak_mitra/grafik/fcr.json?token=x&id_periode=x GET
String token Mendapatkan data grafik FCR String success int id_periode
(Feed Conversion Ratio) pada array label[] anak kandang
array data[] 13 http://[SERVER]/api/peternak_mitra/grafik/kematian.json?token=x GET
String token
Mendapatkan data kematian
String success
rata-rata semua anak kandang
array label[] array data[]
14 http://[SERVER]/api/peternak_mitra/grafik/kematian_detail.json?token=x&username=x GET
String token
String success String username
Mendapatkan data kematian
rata-rata anak kandang secara
array label[]
spesifik berdasarkan
array data[]
username
15 http://[SERVER]/api/ppl/report/penanganan.json?token=x&id_detail=x POST
String token
String success String id_detail
Memasukkan data
penanganan berupa berat
float report_kondisi (gram)
ayam (dalam gram) oleh PPL
Pada Tabel 1 dan 2 semua perintah request and response pada API disertai dengan method GET yang berisi token, kecuali login API. Dengan menyimpan nilai token dari login API maka user cukup sekali saja melakukan autentikasi ketika login. Token ini unique yang berarti tidak ada dua user dalam sistem yang mempunyai token yang sama dan menandakan credential dari user, apakah dia merupakan anak kandang, peternak mitra, atau PPL. Tanpa adanya token dari proses custom token authentication maka permintaan akses API akan ditolak.
Gambar 13 Contoh API Request Mendapatkan List Anak Kandang
Gambar 14 Contoh API Request 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.
Gambar 15 Data Report Harian Anak Kandang di Website Utama
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 case diagram. 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
REST API Path
No Kondisi
Output yang diharapkan
Output yang dihasilkan Status
1 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/login.json Method , parameter diisi benar
Berhasil login Valid Method , parameter diisi salah
Berhasil login
Gagal login Valid 2 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/change_password.json?token=x Method, token , parameter diisi benar
Gagal login
Berhasil ganti password Valid Method, token , parameter diisi salah
Berhasil ganti password
Gagal ganti password Valid 3 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/profile.json?token=x Method, token , parameter diisi benar
Gagal ganti password
Berhasil ganti profil Valid Method, token , parameter diisi salah
Berhasil ganti profil
Gagal ganti profi Valid 4 http://[SERVER]/api/anak_kandang/report/stock.json?token=x Method, token
Gagal ganti profil
Valid , parameter diisi benar Berhasil report stock Berhasil report stock Method, token , parameter diisi salah
Gagal report stock Valid 5 http://[SERVER]/api/anak_kandang/report/daily_input.json?token=x Method, token , parameter diisi benar
Gagal report stock
Berhasil report harian Valid Method, token , parameter diisi salah
Berhasil report harian
Gagal report harian
Gagal report harian Valid
Tabel 4 Lanjutan Hasil Pengujian Akses RESTful API
REST API Path
No 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
Berhasil mendapatkan report
Berhasil mendapatkan Valid
report header Method, token , parameter diisi salah
header
Gagal mendapatkan report
Gagal mendapatkan report Valid
header
header
7 http://[SERVER]/api/[anak_kandang|ppl|peternak_mitra]/report/detail.json?token=x&id_header=x Method, token , parameter diisi benar
Berhasil mendapatkan report
Berhasil mendapatkan Valid
report header Method, token , parameter diisi salah
header
Gagal mendapatkan report
Gagal mendapatkan report Valid
header
header
8 http://[SERVER]/api/anak_kandang/report/active_period.json?token=x Method, token , parameter diisi benar
Berhasil set periode aktif Valid Method, token , parameter diisi salah
Berhasil set periode aktif
Gagal set periode aktif Valid 9 http://[SERVER]/api/peternak_mitra/show/ppl.json?token=x Method, token , parameter diisi benar
Gagal set periode aktif
Berhasil mendapatkan data
Berhasil mendapatkan data Valid
PPL
PPL
Method, token , parameter diisi salah
Gagal mendapatkan data
Gagal mendapatkan data Valid
PPL
PPL
10 http://[SERVER]/api/[peternak_mitra|ppl]/show/anak_kandang.json?token=x Method, token , parameter diisi benar
Berhasil mendapatkan data
Berhasil mendapatkan data Valid
anak kandang Method, token , parameter diisi salah
anak kandang
Gagal mendapatkan data
Gagal mendapatkan data Valid
anak kandang 11 http://[SERVER]/api/[peternak_mitra|ppl]/report/active_period.json?token=x&username=x Method, token , parameter diisi benar
anak kandang
Berhasil mendapatkan data
Berhasil mendapatkan data Valid
periode aktif Method, token , parameter diisi salah
periode aktif
Gagal mendapatkan data
Gagal mendapatkan data Valid
periode aktif 12 http://[SERVER]/api/peternak_mitra/grafik/fcr.json?token=x&id_periode=x Method, token , parameter diisi benar
periode aktif
Berhasil mendapatkan data
Berhasil mendapatkan data Valid
grafik FCR Method, token , parameter diisi salah
grafik FCR
Gagal mendapatkan data
Gagal mendapatkan data Valid
grafik FCR 13 http://[SERVER]/api/peternak_mitra/grafik/kematian.json?token=x Method, token , parameter diisi benar
grafik FCR
Berhasil mendapatkan data
Berhasil mendapatkan data Valid
grafik kematian Method, token , parameter diisi salah
grafik kematian
Gagal mendapatkan data
Gagal mendapatkan data Valid
grafik kematian 14 http://[SERVER]/api/peternak_mitra/grafik/kematian_detail.json?token=x&username=x Method, token , parameter diisi benar
grafik kematian
Berhasil mendapatkan detail
Berhasil mendapatkan Valid
detail grafik kematian Method, token , parameter diisi salah
grafik kematian
Gagal mendapatkan detail
Gagal mendapatkan detail Valid
grafik kematian 15 http://[SERVER]/api/ppl/report/penanganan.json?token=x&id_detail=x Method, token , parameter diisi benar
grafik kematian
Berhasil input penanganan Valid Method, token , parameter diisi salah
Berhasil input penanganan
Gagal input penanganan
Gagal input penanganan 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 method GET atau POST.
Tabel 5 Hasil Pengujian Blackbox Testing pada Sistem Informasi
Fungsi
Kondisi
Output yang
Output yang
Diharapkan
Dihasilkan Status
Proses login
Username dan password
Berhasil login
Berhasil login Valid
benar Username dan password
Gagal login
Gagal login Valid
salah atau kosong
Berhasil input, edit, Valid kandang
Input, edit, delete data anak
Data diisi dengan benar
Berhasil input, edit,
delete data Input, edit, delete data peternak
delete data
Berhasil input, edit, Valid mitra
Data diisi dengan benar
Berhasil input, edit,
delete data Input, edit, delete PPL
delete data
Data diisi dengan benar
Berhasil input, edit,
Berhasil input, edit, Valid
delete data Input dan set data periode aktif
delete data
Data diisi dengan benar
Berhasil input dan
Berhasil input dan Valid
set data Load data peternak mitra
set data
Berhasil load data Valid Load data PPL
Berhasil load data
Berhasil load data Valid Load data periode aktif
Berhasil load data
Berhasil load data Valid Load data anak kandang
Berhasil load data
Berhasil load data Valid Load data report harian anak
Berhasil load data
Berhasil load data Valid kandang 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
Berhasil load data
Berhasil load data Valid anak kandang
Berhasil load data
Load data grafik FCR
Berhasil load data Valid Proses logout
Berhasil load data
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 RESTful web service dan JSON ini adalah integrasi dapat dilakukan melalui internet secara aman, simpel, mudah digunakan dan human readable .
Penelitian ini menghasilkan API sistem informasi perkembangan ayam broiler berbasis kemitraan yang berpotensi diaplikasikan secara luas untuk melengkapi pelaporan secara manual yang masih banyak diterapkan pada peternakan berpola kemitraan. API dapat digunakan untuk melayani, menyediakan, dan mengolah data dari anak kandang, peternak mitra, dan petugas Penelitian ini menghasilkan API sistem informasi perkembangan ayam broiler berbasis kemitraan yang berpotensi diaplikasikan secara luas untuk melengkapi pelaporan secara manual yang masih banyak diterapkan pada peternakan berpola kemitraan. API dapat digunakan untuk melayani, menyediakan, dan mengolah data dari anak kandang, peternak mitra, dan petugas
6. Pustaka
[1] Virgianti, K. 2013. Wamen Pertanian: Daging Ayam Penuhi 53 Persen Kebutuhan
Masyarakat , http://www.satuharapan.com/index.php?id=109&tx_ttnews[tt_news]=5515 &cHash=1, diakses 1 Desember 2014.
Protein
Hewani
[2] Sd Sasmita 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, Vol 1 No 10.
[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.
[18] Joko. 2012.
Pengertian UML . http://www.academia.edu/4887559/Fungsi_Dan_Pengertian_UML, diakses tanggal 10 Desember 2014.
Fungsi
Dan