6 BAB II
TINJAUAN PUSTAKA
Pada bab ini berisikan pembahasan teori-teori yang mendukung pelaksanaan metode yang digunakan dalam penelitian. Seperti dasar teori yang diambil dari literatur berupa artikel, jurnal, skripsi, buku, dan lain-lain. Literatur tersebut merupakan referensi yang digunakan sebagai bahan teori dari tugas akhir ini. 2.1.Penelitia Terdahulu
Sub bab ini berisi penelitian-penelitian yang dilakukan sebelumnya sebagai salah satu rujukan dilaksanakannya penelitian. Pada tahap ini digunakan cara untuk mendapatkan sebuah informasi tambahan yang akan digunakan sebagai acuan, caranya yaitu dengan literatur dari bidang yang saling berhubungan dengan rancang bangun back end aplikasi E-voting berbasis android dengan cara berkomunikasi dengan narasumber, melihat jurnal, melihat buku, maupun internet dengan sumber yang telah terpercaya serta desain tampilan yang nantinya memudahkan saat digunakan oleh pengguna.
Berdasarkan beberapa jurnal dan penelitian sebelumnya yang dilakukan oleh A.Gunawan, Ramdhan Saepul Rohman, dkk (2018)[5] dengan judul Aplikasi Mobile Voting Berbasis Android Untuk Pemilihan Ketua Osis dengan model RAD Studi Kasus SMAN 1 Parungkuda dapat disimpulkan bahwa melalui aplikasi ini dapat mempermudah bagi pihak sekolah dalam penginputan data, pengolahan data, penentuan ketua Osis serta penyimpanan data-data yang ada, dapat membantu dalam menyampaikan tentang penentuan ketua osis agar lebih cermat, hemat waktu, hemat biaya, serta tepat dalam pengambilan keputusan. Sehingga menghasilkan sistem yang tepat, cepat, akurat dan transparan.
Berikutnya pada jurnal oleh Andra Dwika Putra, Rinda Cahyana, dan Partono (2014)[7] dengan judul Pengembangan Aplikasi Wisata Garut Berbasis Android Menggunakan Metode Rapid Application Development dapat disimpulkan bahwa dengan adanya aplikasi informasi tempat wisata kota garut berbasis android ini memudahkan pengguna dalam memperoleh informasi mengenai lokasi wisata yang dituju secara lengkap dan detail.
7
Dan yang terakhir pada jurnal Amin Rulloh, Dewi Erla Mahmudah, dan Herman Kabetta yang menjelaskan tentang Implementasi RESR API pada Aplikasi Panduan Kepaskibraan Berbasis Android dimana dengan menggunakan REST API dalam pembuatan Aplikasi Panduan Kepaskibraan dan adanya dukungan notasi JSON maka memudahkan dalam proses penerapan teknologi pada aplikasi yang dibangun[8].
Tabel 2. 1 Studi Literatur Judul
penelitian
Aplikasi mobile voting berbasis android untuk pemilihan ketua osis dengan model RAD studi kasus SMAN 1 Parungkuda Pengembangan aplikasi wisata garut berbasis android menggunakan metode rapid application development
Implementasi REST API pada Aplikasi Panduan Kepaskibraan Berbasis Android Peneliti A.Gunawan, Ramdhan Saepul Rohman, dkk andra dwika putra,Rinda cahyana & partono
Ain Rulloh, Dewi Erla Mahmudah dan Herman Kabetta
Metodologi Metode yang digunakan untuk mobile voting berbasis mobile ini menggunakan metode RAD Menggunakan RAD dengan dimodelkan dengan diagram-diagram UML (Unified Modeling Language)
RESTful Web Service dibangun menggunakan bahasa Pemrograman PHP dan basis data MySQL untuk menyimpan konten-konten penunjang aplikasi dan disimulasikan menggunakan server lokal.
8 Implementasi Pengerjaan dengan
metode RAD dalam pengembangan sistem dimana model bekerja sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan pengguna serta dalam pengerjaan ini diterapkan teknologi mobile voting berbasis android dengan model RAD
Menggunakan Eclipse Android Development Tools berbasis Phonegap yang dapat diakses melalui perangkat mobile dengan menggunakan bahasa HTML untuk Android Phonegap
Web service yang digunakan adalah dari CodeIgniter versi 3.1.2. Controller berperan untuk menentukan informasi yang dikirim ketika pengguna mengakses web service yang dibuat. Dengan adanya arsitektur REST, maka method-method yang digunakan tentu yang didukung oleh protokol HTTP, antara lain : GET, POST, PUT, dan DELETE.
Pengujian Dilakukan dengan pengetesan logika yang telah diberikan pada asing-masing tombol untuk mengetahui apakah masih ada kesalahan atau tidak. Dengan hasil fungsi telah berjalan sesuai perencanaan Meggunakan metode blackbox testing dimana fungsi dan subfungsi telah berjalan sesuai perencanaan
Hanya melakukan imlemetasi langsung dari REST API dimana untuk men-decode-kan data JSON menjadi string yang dapat ditampilkan pada komponen aplikasi android digunakan Library Volley, serta Menggunakan
SharedPreferences untuk mendapatkan data IP yang telah tersimpan pada cache aplikasi android, alasan digunaka IP yang dinamis dikarenakan pada penelitian ini menggunakan
9
simulasi client-server lokal yang IP-nya di set menurut IP DHCP dari router yang digunakan. Hasil Penelitian Aplikasi yang dihasilkan berupa teknologi mobile voting berbasis android untuk kegiatan pemilihan penentuan ketua osis SMAN 1 Parungkuda Aplikasi wisata garut berbasis android ini mampu menampilkan rute perjalanan menuju lokasi objek-objek wisata garut dari tempat asal pengguna mengakses aplikasi ini
Dengan digunakannya REST API dalam pembuatan Aplikasi Panduan Kepaskibraan dan dengan adanya dukungan JSON maka memudahkan dalam proses penerapan teknologi pada aplikasi yag dibangun. Pada penelitian ini juga menghasilkan sebuah aplikasi beckend berbasis web untuk memudahka dalam mengelola konten REST API yang nantinya akan diakses oleh aplikasi client pada peragkat Android.
Penelitian-penelitian tersebut menunjukkan bahwa aplikasi android mampu mengefektifkan aktivitas dalam suatu departemen atau organisasi mahasiswa utamanya yang berhubungan dengan kegiatan pemilihan dalam suatu kegiatan. Penelitian tersebut coba diimplementasikan dalam studi kasus yang berbeda yaitu pada kegiatan pemilu raya universitas muhammadiyah malang.
Penelitian pertama dan penelitian ini memiliki perbedaan pada implementasinya karena menggunakan framework laravel. Selain itu, penelitian ini menggunakan usa cese dan activity diagram dalam proses perancangan sistem dan pengujiannya akan dilakukan dengan UAT (User Acceptance Test) untuk menguji fungsionalitas oleh pengguna serta beberapa pengujian untuk menguji aspek backend seperti balc kbox box testing dan postman untuk API nya.
10 2.2. Back End
Pada pemngembangan web, kebanyakan framework menggunakan model arsitektur MVC (Model View Controllerr) model mengandung fungsi-fungsi yang berhubungan dengan database, seperti crate, read, update, dan delete[9].
Berdasarkan arsitektur MVC, Frontend developer bertugas untuk membuat bagian view, yaitu membuat user interface yang berhubungan langsung dengan pengguna. Sedangkan backend developer bertugas untuk membuat model dan controller.
Back end atau sering di sebut server side pada dasarnya adalah tempat dimana proses suatu aplikasi atau sistem berjalan di back end ini data di proses ditambahkan, diubah atau dihapus. Back end mengurusi segala sesuatu yang biasanya tidak dilihat atau berinteraksi langsung kepada user, sepeti database dan server[10].
Biasanya orang bekerja sebagai back end developer adalah programmer atau developer yang fokus pekerjaannya pada keamanan, desain sistem dan mangement data pada sistem.
2.3.Application Programming Interface (API)
Application Programming Interface (API) adalah sebuah teknologi yang memfasilitasi pertukaran informasi atau data antara dua atau lebih aplikasi perangkat lunak[11]. API bisa juga disebut juga pusat untuk banyak arsitektur perangkat lunak modern, karena memberikan abstraksi tingkat tinggi yang memfasilitasi tugas-tugas pemrograman, mendukung desain aplikasi perangkat lunak yang didistribusikan dan modular dan penggunaan kode kembali (Robillard, 2009)[12]. API terdiri dari berbagai elemen seperti function, protocols, dan tools lainnya yang memungkinkan developers untuk membuat aplikasi. Tujuan penggunaan API adalah untuk mempercepat proses development dengan menyediakan function secara terpisah sehingga developer tidak perlu membuat fitur yang serupa. Penerapan API akan terasa jika fitur yang diinginkan sudah sangat kompleks, tentu membutuhkan waktu untuk membuat yang serupa dengannya.
11
API dapat diklasifikasikan menjadi beberapa kategori, hal ini dilihat dari abstraksi apa yang dideskripsikan di dalam sistem. Kategori-kategori ini diantaranya :
Tabel 2. 2 Kategori API
Kategori API Deskripsi Contoh
Operating System API yang digunakan untuk fungsi dasar yang dapat dilakukan oleh komputer. Seperti proses I/O, eksekusi program.
API or MS Windows
Programming Languages API yang digunakan untuk memperluas kapabilitas dalam melakukan eksekusi terhadap suatu bahasa pemrograman.
Java API
Application Services API yang digunakan untuk mengakses data dan layanan yang disediakan dari suatu aplikasi.
API for mySAP (BAPI/Business
Application Programming Interface)
Infrastructure Service Digunakan untuk mengakses infrastruktur dari suatu komputer. Infrastruktur disini adalah komputer beserta peripheral seperti storage, aplikasi, dan lain-lain.
Amazon EC2 (Elastic Compute Cloud) untuk akses virtual computing dan Amazon S3 (Simple Storage Service) untuk menyimpan data dalam jumlah besar.
Web Services API yang digunakan untuk mengakses content
Facebook Graph API yang digunakan untuk
12
dan layanan yang disediakan oleh web application.
mengakses informasi yang dapat dibagikan.
API memiliki berbagai jenis arsitektur salah satu diantaranya ialah REST. REST (Representational State Transfer) merupakan seperangkat prinsip arsitektur yang melakukan transmisi dan melalui antarmuka yang terstandarisasi seperti HTTP (Dhingra, 2013). RESTful sendiri merupakan istilah yang dipakai untuk layanan web yang mengimplementasikan arsitektur REST (Adamczyk, Smith, Johnson, & Hafiz, 2011). Untuk mengakses suatu resource, ada beberapa hal harus diperhatikan yaitu URI (Uniform Resource Identifier) sebagai identitas lokasi resource, HTTP method (GET, POST, DELETE, PUT), header sebagai mata informasi suatu request, dan body sebagai isi data yang dikirimkan. Keluaran dari RESTful API dapat berupa format pertukaran JSON (JavaScript Object Notation) atau XML (Extensible Markup Language). Kedua format tersebut digunakan pada berbagai bahasa pemrograman seperti PHP, Java, Python, dan lain sebagainya.
Gambar 2. 1 Ilustrasi RESTful API (Sumber Apptha.com)
RESTful web service dibangun menggunakan bahasa pemrograman PHP dan basis data MySQL untuk menyimpan konten-konten penunjang aplikasi dan di simulasi menggunakan server lokal.
13
RESTful API memanfaatkan pemanggilan dan respon sikap setiap konten sehingga memudahkan ketika pemanggilan dan penggantian konten akan ditampilkan pada aplikasi mobile.
Untuk tahapan yang akan dilakukan adalah menerapkan dari 4 komponen penting RESTful API yang diantaranya adalah :
• URL Design
RESTful API diakses menggunakan protokol HTTP. Penamaan struktur URL Aplikasi E-Voting nanti akan menghasilkan API yang baik dan mudah untuk dimengerti. URL API disebut endpoint dalam pemanggilannya.
/mahasiswa /mahasiswa/nim /mahasiswa/nim/photos /mahasiswa/nim/photos/abc • HTTP Verbs GET
GET merupakan metode HTTP Request paling sederhana, metode ini dipergunakan untuk membaca atau mendapatkan data dari sumber.
Contoh :
GET/mahasiswa : mengembalikan daftar mahasiswa
GET/mahasiswa/nim : mengembalikan data mahasiswa dengan nomor NIM mahasiswa
POST
POST merupakan metode HTTP Request yang digunakan untuk membuat data baru dengan menyisipkan data dalam body saat request dilakukan. Contoh :
POST/mahasiswa : membuat data mahasiswa baru
PUT
PUT adalah metode HTTP Request yang biasanya digunakan untuk melakukan update data resource.
14 Contoh :
PUT/mahasiswa/nim : mengupdate data mahasiswa dengan nomor nim mahasiswa
DELETE
DELETE merupakan metode HTTP Request yang dimana berguna untuk menghapus suatu data pada resource.
Contoh :
DELETE/mahasiswa/nim : menghapus data user dengan nomor nim mahasiswa
• HTTP Response Code
HTTP response code merupakan kode standarisasi untuk memberikan info dari hasil request kepada client. Umumnya terdiri dari 3 kelompok yang biasa kita jumpai pada RESTful API yaitu :
2XX : adalah responsecode yang menampilkan bahwa request berhasil 4XX :adalah responsecode yang menampilkan bahwa request mengalami kesalahan pada sisi client.
• Format Response
Setiap request yang dilakukan client akan menerima data response dari server, response tersebut biasanya berupa data XML ataupun JSON. Setelah mendapatkan data response tersebut barulah client bisa menggunakannya dengan cara memparsing data tersebut dan diolah sesuai kebutuhan.
15 GET/mahasiswa/nim HTTP/1/1 200 OK Content-Type:application/vnd.api+json { “id”:”nim” “first_name”:”kim”, “last_name”:”Hanbin”, “created”:”2016-10-22T14:56:29.000Z”, “updated”:”2016-10-22T14:56:29.000Z” } 2.4.MVC (Model-View-Controller)
Pola dalam MVC memecahkan sebuah.aplikasi dengan menjadi tiga.modul asosiasi: model, viewadan controllerModel merupakan logikabisnis yang berasal dari aplikasi dan inti dari sebuah aplikasi. Viewadalah user interface daricontroller. Yangmerupakan responden dari eventapengguna[13]. Komponencontroller mengimplementasikan flow yangamengontrol antara view danamodel.
Model-View-Controller (MVC) merupakan.sebuah konsep yang diperkenalkan oleh seorang penemu bernama Smalltalk (Trgve Reenskaug) untuk meng-enkapsulasi.data dengan pemrosesan (model), mengisolasi dari proses manipulasi (controller) dan tampilan (view) untuk mengimplementasikan kepada userinterface. MVC dibagi menjadi 3 lapisan yaitu.
a. Model
Digunakan untukamengelola sebuah informasi dan memberi peringatan kepada pengamatanaketika ada sebuahperubahan informasi. Hanya model yangamengandung data dan jugaafungsi yang berhubungan langsung denganapemrosesan data. Sebuah model akan meringkasalebih dari sekedar dan serta fungsi yang melakukan operasi di dalamnya. Pendekatan model yang digunakan untuk beberapa proses. Hal ini tidakahanya menangkap keadaan proses maupun sistem, namun bagaimana cara sistem bekerja. Seperti contoh
16
seorang programmeramenentukan model yang menjembatani komputasi back-endadengan front-end GUI (graphical userinterface).
b. View
Memiliki tanggung jawabauntuk tampilan grafis pada sebuahaperangkat. View biasanya memilikiahubungan 1-1 dengan sebuah layar tampilan. View berada bersama model dan menampilkan isinya ke dalam layar tampilan. Selain itu saat modelaberubah, View akan secara otomatis memberikan gambaran ulang dan akan menunjukkan perubahan tersebut.
c. Controller
Menerima input dari pengguna danamenginstruksikan kepada model dan view untuk melakukanaaksi yang berdasarkanamasukan tersebut sehinggaacontroller memiliki tanggung jawabauntuk membuat pemetaanaterhadap aplikasi. Sebagai contoh ketika pengguna mengklik sebuah tombol atau memilih item amenu, controller memiliki tanggung jawab untuk menentukan bagaimanaaplikasi tersebut merespon.
2.5.Metode Rapid Application Development
Gambar 2. 2 Siklus Meode RAD (Sumber : Kendall, 2010)
Gambar di atas menunjukkan siklus RAD dengan 3 (tiga) fase yaitu[14]: a. Requirements Planning (perencanaan syarat-syarat)
User dan analyst melakukan pertemuan untuk mengindentifikasi tujuan dari sistem dan kebutuhan informasi untuk mencapai tujuan. Pada tahap ini merupakan hal terpenting yaitu adanya keterlibatan dari kedua belah pihak,
17
bukan hanya sekedar persetujuan akan proposal yang sudah dibuat. Dimana dilakukan tahap pengumpulan kebutuhan secara lengkap kemudian dianalisis dan diidentifiaksi kebutuhan yang harus dipenuhi oleh program yang akan dibangun.
b. RAD design workshop (proses desain sistem)
Fase ini adalah fase untuk merancang dan memperbaiki yang bisa digambarkan sebagai workshop. Penganalisis dan pemrogram dapat bekerja membangun dan menunjukkan representasi visual desain dan pola kerja kepada pengguna. Workshop desain ini dapat dilakukan selama beberapa hari tergantung dari ukuran aplikasi yang akan dikembangkan. Selama workshop desain RAD, pengguna merespon prototype yang ada dan penganalisis memperbaiki modul-modul yang dirancang berdasarkan respon pengguna. Apabila seorang pengembangnya merupakan pengembang atau pengguna yang berpengalaman, dapat dinilai bahwa usaha kreatif ini dapat mendorong pengembang sampai pada tingkat terakselerasi. Secara garis besar pada tahap ini keaktifan user yang terlibat menentukan untuk mencapai tujuan karena pada proses ini melakukan proses desain dan melakukan perbaikan-perbaikan apabila masih terdapat ketidaksesuaian desain antara user dan analyst. Seorang user dapat langsung memberikan komentar apabila terdapat ketidaksesuaian kebutuhan user yang sudah dibuat pada tahap sebelumnya. Keluaran dari tahapan ini adalah spesifikasi software yang meliputi organisasi sistem secara umum, struktur data dan yang lain.
c. Implementation (implementasi)
Tahapan ini adalah tahapan pemrograman yang mengembangkan desain suatu program yang telah disetujui oleh user dan analyst. Sebelum diaplikasikan pada suatu organisasi terlebih dahulu dilakukan proses pengujian terhadap program tersebut apakah ada kesalahan atau tidak. Pada tahap ini user bisa memberikan tanggapan akan sistem yang sudah dibuat serta mendapat persetujuan mengenai sistem tersebut.
2.6.Framework Laravel
Laravel merupakan Framework Open Source Hypertext Preprocessor (PHP) berbasis web grafis yang dibuat oleh Taylor Otwell dan ditujukan untuk
18
pengembangan aplikasi web dengan teknik pengembangan yang mudah dipahami karena mengikuti pola MVC (Model View Controller) atau pola arsitektur. Beberapa fitur dari laravel adalah pengembangan sistem modul-modul yang dapat di manajemen, mengenalkan cara yang berbeda untuk mengakses database relasional, utilitas yang membantu dalam penyebaran aplikasi dan pemeliharaan yang mudah.
Dalam penggunaannya laravel memiliki beberapa kekurangan salah satunya yaitu ukuran file yang cukup besar. Didalam laravel terdapat file yang sifatnya default seperti vendor. File tersebut tidak boleh dihapus sembarangan sehingga ukuran website yang dibuat berukuran cukup besar. Selain itu, dibutuhkan koneksi internet untuk instalasi dan mengunduh library laravel, dan PHP minimal versi 5.4 untuk menjalankannya. Adapun Kelebihan laravel adalah sebagai berikut[15]:
✓ Expressive
Laravel adalah framework php yang expressif, artinya ketika melihat suatu sintaks laravel, seorang programmer diharapkan akan langsung tahu kegunaan dari sintaks tersebut meskipun belum pernah mempelajarinya apalagi menggunakannya. Sekarang coba bandingkan dua buah kode berikut yang memiliki tujuan yang sama, tetapi dengan gaya penulisan yang berbeda.
// kode 1, framework xxx
$uri = Uri::create(‘some/uri’,array(),array(),true); // kode 2, framework laravel
$url = URL::to_secure(‘some/uri’);
untuk kode pertama, anda pasti bertanya-tanya apa sih maksud dari parameter kedua, ketiga dan keempat berfungsi sebagai flagging, true untuk https dan false untuk http. Laravel melakukan pendekatan yang berbeda dengan membuang parameter yang sifatnya flagging dan memilih untuk membuat dua fungsi yang berbeda. Pendekatan semacam ini lebih jelas karena minimal satu parameter fungsi telah berkurang.
✓ Simple
Salah satu yang membuat laravel begitu simple adalah dengan adanya eloquent orm. Misalnya kita ingin mengambil semua data yang ada di dalam table users, maka yang diperlukan hanya membuat sebuah class model
19
bernama user. Kemudian kita tinggal memasukkan semua data dari table users tersebut dengan cara sebagai berikut.
$all_user = User::all();
Dengan begitu, semua data dari table users, akan dengan mudah diakses dengan melakukan looping terhadap variabel $all_user.
Contoh lain, laravel memiliki kesederhanaan dalam masalah routing. Pada prinsipnya, membangun website hanyalah masalah request-request. Ada request terhadap halaman x dan and juga harus merespon x maka dalam situasi seperti ini laravel menerapkan prinsip routing yang sangat simple.
// output html menggunakan echo route::get(‘halo’,function()
{
echo ‘halo, saya web artisan’; });
// output menggunakan view terpisah,
// seperti yang lazim ditemui di framework berbasis MVC route::get(‘home’,function()
{
returnView::make(‘home.index’); });
✓ Accessible
Bagi orang-orang yang sudah terbiasa dengan framework berbasis php, saya yakin tidak asing lagi dengan yang namanya codeigniter, codeigniter merupakan salah satu php framework paling populer, meskipun ada suatu framework yang bisa dibilang lebih superior dibanding dengan codeigniter misalnya saja kohan. Kohan bisa dibilang memiliki fitur lebih bagus. Namun demikian codeigniter memiliki dokumentasi yang lengkap, sehingga framework ini menjadi lebih mudah untuk digunakan.Begitu pula dengan laravel sendiri, laravel pun dibuat dengan dokumentasi yang selengkap mungkin. Code developernya dari laravel sendiri berkomitmen untuk selalu menyertakan dokumentasi lengkap setiap kali merilis versi Ioc container memungkinkan untuk objek baru yang dihasilkan dengan mengikuti prinsip controll pembalik, dengan pilihan contoh dan referensi dari objek baru sebagai singletons.
20 2.7.E-Voting
E-Voting adalah suatu sistem pemilihan dimana data dicatat, disimpan, dan diproses dalam bentuk informasi digital. Jadi e-voting pada hakikatnya merupakan proses pemungutan suara yang dilakukan secara elektronik (digital) mulai dari proses pendaftaran dan pendataan pemilih, pelaksanaan pemilihan, penghitungan suara, dan pengiriman dan pelaporan hasil suara[16].
Menurut kahani (2005), E-Voting mengacu pada penggunaan komputer atau komputerisasi peralatan pemungutan suara untuk memberikan suara dalam sebuah pemilihan. Sedangkan menurut rokhman (2011) –voting (electronic voting) adalah proses pemilihan umum yang memungkinkan pemilih untuk mencatatkan pilihannya yang bersifat rahasia secara elektronik yang teramankan. Jadi dari dua definisi tersebut dapat ditarik arti bahwa e-voting suatu mekanisme pemungutan suara secara elektronik dan bersifat rahasia, yang merupakan salah satu asas pemilihan. Menurut canard dan sibert (2001), tujuan dari sistem keamanan e-voting adalah untuk menjamin privasi atau kerahasiaan pemilih serta keakuratan pilihan. Keamanan sistem ini memiliki beberapa kriteria, yaitu :
1) Eligibility, hanya pemilih yang terdaftar yang dapat melakukan pemilihan. 2) Unreusability, setiap pemilih hanya dapat memilih satu kali.
3) Anonymity, pilihan pemilih dirahasiakan
4) Accuracy, pilihan tidak bisa diubah dan dihapus selama atau setelah pemilihan.
5) Fairness, perhitungan suara pemilihan ditutup tidak bisa dilakukan. 6) Vote and go, pemilih hanya dapat melakukan pemilihan saja. 7) Public verifiability, semua orang dapat melakukan pengecekan pada
berjalannya proses pemilihan.
Menurut riera dan brown (2003), penerapan e-voting diharapkan dapat mengatasi permasalahan yang timbul dari pemilu yang diadakan secara konvensional. Riera dan brown menawarkan manfaat yang akan diperoleh dalam penerapan e-voting, sebagai berikut :
1) Mempercepat perhitungan suara 2) Hasil perhitungan suara lebih akurat
21 2.8.Pemilu
Menurut Undang-Undang No. 12 Tahun 2003, pemilihan umum adalah sarana pelaksana kedaulatan rakyat dalam negara kesatuan republik indonesia yang berdasarkan pancasila dan Undang- Undang Dasar Negara Republik Indonesia Tahun 1945. Pemilihan umum (pemilu) sudah menjadi bagian yang tidak terpisahkan dari suatu negara demokrasi, hampir semua negara demokrasi melaksanakan pemilihan umum. Secara umum, di banyak negara pemilu dilaksanakan secara rahasia pada tempat yang khusus dipersiapkan untuk pelaksanaan pemilu[17]. Pemilihan umum adalah proses pemilihan wakil rakyat diparlemen dan kepala pemerintahan berdasarkan suara terbanyak.
Menurut Undang-Undang Lembaga Intra NO.1 Tahun 2019, Pemilihan umum raya universitas muhammadiyah malang merupakan sarana untuk mewujudkan kedaulatan mahasiswa yang berasaskan demokrasi. Bahwa sesuai dengan tuntutan dan perkembangan dinamika mahasiswa universitas muhammadiyah malang, pemilihan umum raya universitas muhammadiyah malang diselenggarakan untuk memilih anggota SEMU, BEMU, SEFA, BEMFA, dan HMJ. Pemilu umum raya universitas muhammadiyah malang perlu diselenggarakan secara lebih berkualitas dengan partisipasi mahasiswa seluas-luasnya dan dilaksanakan berdasarkan asas langsung, umum bebas, rahasia, jujur dan adil.
2.9. Blackbox
Metode pengujian Black Box Testing adalah metode pengujian yang terfokus kepada kebutuhan fungsionalitas dari sistem, dan tidak terfokus kepada source code system. Metode blackbox testing ini bekerja dengan cara melakukan pengujian semua fitur-fitur yang disediakan dalam system dengan memasukkan input dan melihat hasil yang diberikan oleh sistem atau outputnya, teknik yang digunakan adalah error guesting dimana pengujian dilakukan dengan membuat daftar kemungkinan kesalahan yang akan terjadi pada aplikasi, serta pengujian juga dilakukan sesuai atau mengikuti alur pengujian sesuai dengan daftar kemungkinan kesalahan yang telah dibuat.
Black box testing cenderung untuk menemukan hal-hal berikut : a) Fungsi yang tidak benar atau tidak ada
22 b) Kesalahan antarmuka (interface errors)
c) Kesalahan pada struktur data dan akses basis data d) Kesalahan performansi (performance errors) e) Kesalahan inisialisasi dan terminasi
2.10. Postman
Postman merupakan sebuah platform kolaborasi untuk pengembangan API. Beberapa hal yang dapat dilakukan oleh Postman diantaranya adalah dapat bertindak sebagai clientyang mengakses REST secara langsung, pengujian yang terotomatisasi, simulasi endpoint secara langsung, dokumentasi API, Pemantauan performa dan waktu respon dari API, Menyediakan konteks berbagi dalam workspace dalam membangun dan menggunakan API secara real-time (Postman, 2020).
Postman ini merupakan tool bagi para developer yang berkutat pada pembuatan API, fungsi utama postman ini adalah sebagai GUI API Caller namun sekarang postman juga menyediakan fitur lain, yaitu sharing collection API for documentation (free), Testing API (free), Real Time Collaboration Team (paid), Monitoring API(paid), Integration (paid) [18]. Postman digunakan untuk unit percobaan dalam segi koneksi pada backend aplikasi tersebut, aplikasi ini untuk mencoba hasil respon yang diberikan oleh backend melalui API, hasil respon tersebut berbentuk JSON, dimana nanti akan dipakai pada aplikasi.
Postman sangat erat kaitannya dengan pengetesan request yang dapat dilakukan melalui protokol http. Hypertext transfer protocol (HTTP) merupakan protokol yang digunakan untuk jenis layanan world wide web (WWW) pada jaringan TCP/IP/ pengembangan HTTP dikoordinasi oleh konsorsium WWW dan IETF (internet engineering task force) dan dipublikasikan melalui kumpulan RFC (request for comments) . RFC 2616 mendefinisikan HTTP/1/1 yang merupakan versi HTTP yang saat ini umum digunakan. Sebuah HTTP client memulai request
dengan membuat koneksi TCP
(Transmission Control Protocol) menuju server (umumnya adalah port 80). Sedangkan HTTP server menunggu adanya pesan request pada port yang telah ditentukan . setelah menerima request dari client, server kemudian mengirimkan status line antara lain “HTTP/1.1 200 OK”. Setelah itu dilanjutkan dengan
23
mengirimkan file yang diinginkan client beserta pesan kesalahan atau informai lainnya . HTTP diidentifikasi menggunakan uniform resource identifier (URI) dengan format penulisan tertentu[19].
Protokol HTTP bersifat request-response, yaitu dalam protokol ini client menyampaikan pesan request ke web server, dan web server kemudian memberikan respon yang sesuai dengan request tersebut. Request dan response dalam protokol HTTP disebut sebagai request chain dan response chan. Hubungan HTTP yang paling sederhana adalah terdiri atas hubungan langsung antara user agent server. Metode request yang dapat dilakukan pada http adalah GET, POST, PUT atau DELETE.
2.11. UAT (User Acceptance Test)
User Acceptance Testing (UAT) merupakan sekumpulan urutan langkah pengujian sebuah aplikasi di sisi pengguna, menggunakan format yang telah disepakati bersama, dengan tujuan untuk mengetahui sejauh mana pemahaman pengguna terhadap aplikasi yang disajikan, serta apakah aplikasi telah cukup mampu memenuhi kebutuhan pengguna dan menyelesaikan permasalahan yang terjadi dengan hasil akhir sebuah dokumen pelengkap pengembangan aplikasi[20]. UAT umum digunakan pada industri perangkat lunak dan enterprise, sebagai sebuah langkah untuk memenuhi kebutuhan pengguna, aspirasi dan masukan mereka, yang dapat menjadi bahan untuk pengembangan dan perbaikan aplikasi ke depannya.
UAT menjadi langkah akhir di dalam pengembangan aplikasi, yang dilanjutkan dengan perbaikan aplikasi, serta dipadukan dengan dokumentasi pengembangan dan publikasi. Dengan demikian peran UAT di dalam siklus pengembanga sebuah aplikasi sangat penting. Melalui UAT, pengembang dapat memahami pengguna dari aplikasi yang dikembangkannya, serta pengguna dapat berkomunikasi lebih lanjut dengan pengembang terkait dengan kebutuhan mereka terhadap aplikasi tersebut.