• Tidak ada hasil yang ditemukan

ANALISIS PERBANDINGAN WAKTU PERHITUNGAN .

N/A
N/A
Protected

Academic year: 2018

Membagikan "ANALISIS PERBANDINGAN WAKTU PERHITUNGAN ."

Copied!
14
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN WAKTU

PERHITUNGAN DATA PEMILIH AKTIF PEMILU

ANTARA SINGLETHREADING DAN

MULTITHREADING DI PHP PADA SPESIFIKASI

KOMPUTER YANG BERBEDA

Esti Mulyawati

estimulyawati@gmail.com

Gita Listya A

gitalistyaanggraini@gmail.com

M. Nasiruddin

aminnasir234@gmail.com

Rian Dwi P

rianpawestri@gmail.com

Septri Nur Ithmam

septri.n.ithmam@gmail.com

Shelly Tamara

tamarashelly@gmail.com

Program Studi Ilmu Komputer

Jurusan Ilmu Komputer dan Elektronika

Universitas Gadjah Mada

2013

Abstrak

Dalam perhitungan data pemilih aktif di Indonesia, terkadang dibutuhkan suatu sistem untuk mempermudah prosesnya. Proses tersebut bergantung pada performa sistem perhitungan yang digunakan untuk dapat bekerja secara cepat, tepat, dan akurat. Pada kesempatan kali ini penulis mengembangkan sistem untuk menjalankan proses tersebut menggunakan bahasa pemrograman PHP. Hal tersebut sulit dipenuhi apabila sistem yang dikembangkan menggunakan singlethreading. Untuk mengatasi masalah tersebut, penggunaan multithreading dengan pthreads yang terbagi dalam beberapa klaster secara parallel dan menggunakan komputer dengan spesifikasi yang cocok merupakan suatu solusi. Maka dari itu, pada makalah ini akan dibahas mengenai analisa perbandingan antara proses perhitungan suara menggunakan aplikasi php singlethreading dan multithreading pada spesifikasi komputer yang berbeda, yang bertujuan untuk mengetahui proses perhitungan suara pemilu mana dan spesifikasi seperti apa yang dibutuhkan komputer agar dapat mengeksekusi lebih cepat dalam menghasilkan data pemilih aktif pemilu perhitungan suara.

Kata Kunci: php, pemilu, pthreads, single threading, multithreading, spesifikasi komputer

I.

Pendahuluan

Beberapa tahun terakhir ini, arsitektur komputer cenderung berevolusi menjadi komputer paralel. Sistem multiprocessor modern yang dikenal sebagai multicore sedang menjadi tren. Prosesor-prosesor multicore sedang mendominasi pasar. Prosesor-prosesor multicore dengan mudah dijumpai pada komputer desktop, laptop dan juga server. Selain itu, prosesor multicore juga mengisi segmen pasar cluster supercomputer.

(2)

Dengan pemrograman multithreading pada sistem komputer berbasis multicore diharapkan program yang dikembangkan dapat meningkatkan kinerja komputasinya. Pemrograman paralel ini sangat signifikan manfaatnya untuk mempersingkat waktu eksekusi algoritma yang memiliki kompleksitas tinggi. Waktu eksekusi dapat dikurangi secara signifikan oleh komputasi berkinerja tinggi pada sistem komputer berbasis multicore. Komputasi yang berkinerja tinggi dapat diperoleh jika inti-inti (cores) pada prosesor tersebut dimanfaatkan secara efisien untuk komputasi algoritma yang benar-benar diperlukan. Ini artinya, pemrograman harus dapat menekan biaya komputasi tambahan (overhead). Jadi teknik pemrograman paralel yang efisien harus diterapkan.

Salah satu sistem yang potensial untuk memanfaatkan prosesor-prosesor multicore dan teknik pemrograman multithreading adalah Sistem Perhitungan Data Pemilih Aktif di Indonesia untuk keperluan pemilihan umum (PEMILU) dalam skala kabupaten, provinsi maupun nasional. Dengan melihat skala permasalahan yang terbesar, penulis melakukan pengembangan dan pengujian Sistem Perhitungan Data Pemilih Aktif dalam skala nasional yang datanya diklarifikasikan berdasarkan umur, kabupaten dan provinsi.

Setiap komputer tempat pemungutan suara (TPS) mengirimkan hasil perhitungan data pemilih ke server KPU kecamatan dilanjutkan ke server KPU kabupaten, kemudian diteruskan ke server KPU provinsi dan berakhir di KPU Pusat, yang kemudian komputer KPU tersebut yang mengakumulasi jumlah data pemilih di Indonesia yang masih aktif. Jika komputer tersebut hanya memanfaatkan satu core untuk mengakumulasi jumlah data pemilih keseluruhan maka akan membutuhkan waktu yang lama. Ditambah problematika terhadap sistem yang masih mengandalkan single-threading. Untuk itu akan dilakukan pengujian untuk melihat waktu perhitungan data pemilih aktif di Indonesia yang begitu besar dengan membandingkan sistem yang memanfaatkan teknik pemrograman

singlethreading dan multithreading dalam beberapa spesifikasi komputer yang berbeda.

Teknik pemrograman multithreading sebelumnya banyak diaplikasikan dalam bahasa pemrograman C dan Java, akan tetapi di sini penulis akan mengaplikasikan pengembangan dan pengujian sistem ini dalam bahasa pemrograman PHP. Tujuan utama pengembangan dalam bahasa pemrograman PHP adalah sebagai bahan pembelajaran baru dan dengan harapan penelitian ini akan menjadi inspirasi untuk penelitian selanjutnya.

II.

Landasan Teori

2.1 Perhitungan Data Pemilih

Pemilihan Umum untuk skala daerah, kabupaten, maupun provinsi merupakan agenda rutin demokrasi di Indonesia kepala daerah bahkan presiden. Diharapkan dengan adanya PEMILU ini dapat menghasilkan pemimpin yang sesuai dengan keinginan rakyat dan berkualitas serta memajukan daerah tersebut.

Sebelum diadakannya PEMILU, KPU tiap kabupaten harus mengumpulkan data pemilih yang nantinya akan diakumulasi oleh server KPU Pusat. Proses perhitungan data pemilih awalnya dilakukan dari tiap-tiap TPS (Tempat Pemungutan Suara), hasil perhitungan data pemilih dari tiap TPS dikirim ke kecamatan untuk direkap berdasarkan jumlah data pemilih yang masih aktif dengan diklarifikasikan berdasarkan umur di bawah kecamatan tersebut.

(3)

Gambar 2. 1 Sistem Pengiriman Bertahap

2.3 Singlethread dan Multithread

Singlethread adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller.

Multithread berasal dari dua kata yakni multi (banyak) dan thread (benang atau alur). Multithread tidak sama dengan multiproses. Multiproses adalah melakukan beberapa pekerjaan dalam waktu yang sama dimana kegagalan pada satu proses tidak terlalu mempengaruhi proses lainnya, sedangkan multithread adalah melakukan dua pekerjaan secara paralel dengan membagi-baginya dalam beberapa task dimana kegagalan pada satu task akan sangat mempengaruhi task lainnya.

Keuntungan dari sistem yang menerapkan multithreading adalah meningkatkan respon dari pengguna, mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama, membagi memori dan sumber daya sehingga lebih ekonomis, dan memberdayakan utilisasi arsitektur multiprocessor dimana setiap thread dapat berjalan secara paralel di atas processor yang berbeda.

2.4 PHP

PHP Hypertext Preprocessor adalah bahasa server-side programming yang kuat untuk membuat halaman web yang dinamis dan interaktif. Sintak PHP mirip dengan bahasa Perl dan C. PHP biasanya sering digunakan bersama web server Apache di

beragam sistem operasi. Adapun cara kerja PHP dapat dilihat pada gambar 2.2.

Pada gambar 2.2 PHP disisipkan dalam HTML dengan tag <?php..?> atau <?..?>. Keterangan gambar 2.2 adalah sebagai berikut :

1. User meminta request via web browser ke web server.

2. Web server akan mengenali sebagai file PHP (.php,.php3,.phtml). 3. File PHP dikirim ke engine PHP. 4. Output (hasil) dari proses didalam

engine PHP dalam bentuk plain HTML (HTML biasa).

5. Dokumen hasil eksekusi dikirim balik ke web server.

6. Web server meneruskan ke browser sebagai respons dari request untuk ditampilkan.

Gambar 2. 2 Cara Kerja PHP (Sunyoto, 2007)

2.5 PECL

PECL adalah sebuah tempat penyimpanan dari ekstensi PHP yang disediakan melalui PEAR sistem packaging. Berikut akan dijelaskan bagaimana cara untuk mendapatkan dan menginstal ekstensi PECL.

(4)

manual untuk PEAR command juga berlaku untuk PECL command.

Agar berguna, shared extention harus dibangun, diinstal, dan di-load. Metode yang dijelaskan di bawah menyediakan berbagai instruksi tentang bagaimana membangun dan menginstal ekstensi, tetapi mereka tidak secara otomatis dapat me-load. Ekstensi dapat di-load dengan menambahkan ekstensi ke file php.ini atau melalui penggunaan dl() function.

Ketika membangun modul PHP, sangat penting untuk memiliki tools (autoconf, automake, libtool, dll).

2.6 Posix Thread (Pthread)

Posix Thread atau lebih dikenal dengan Pthread adalah Object Oriented API (Application Programming Interface) yang memungkinkan multithreading di PHP. Pthread mencakup semua alat yang dibutuhkan untuk membuat aplikasi multithreaded pada web atau console. Aplikasi PHP dapat membuat (create), membaca (read), menulis (write), mengeksekusi (execute) dan melakukan sinkronisasi dengan Thread, Workers dan Stackables.

A Thread Object: Pengguna dapat mengimplementasikan thread dengan memperpanjang deklarasi thread yang disediakan oleh Pthread. Setiap anggota dapat ditulis dan dibaca oleh setiap konteks dengan mengacu pada thread tersebut. Konteks apapun juga dapat melaksanakan setiap metode atau fungsi yang bersifat publik dan private. Jalannya metode dari implementasi tersebut diekseskusi pada thread yang terpisah ketika metode awal implementasi dipanggil dari konteks (thread atau process) yang membuatnya. Hanya konteks yang sebuah thread tersebut yang dapat memulai dan bergabung dengan Pthread.

A Worker Object: A Worker Thread memiliki keadaan yang tetap, dan akan tersedia dari perintah untuk memulai sampai

obyek keluar dari scope, atau shutdown secara eksplisit. Setiap konteks dapat melewatkan obyek tipe Stackable ke Worker, yang akan dieksekusi oleh Worker di Thread yang terpisah. Jalannya metode Worker dieksekusi sebelum obyek pada tumpukan, sehingga hal tersebut dapat menginisialisasi sumber daya Stackables yang dibutuhkan.

A Stackable Object: A Stackable Object dapat membaca atau menulis dan mengeksekusi Worker selama eksekusi berlangsung, dan hanya menyediakan referensi Stackables ke obyek yang sesuai sebelum runtime. Selain itu, konteks ke Stackable dapat membaca, menulis dan mengeksekusi metode sebelum, selama dan setelah eksekusi.

Stackable, Thread atau Worker Object dapat dianggap dan harus digunakan sebagai Threaded stdClass: Thread, Worker dan Stackable semua memiliki cara dan konteks yang sama. Pada setiap obyek yang dimaksudkan untuk digunakan di bagian aplikasi multi-threaded, kita harus memperpanjang deklarasi Stackable , Thread atau Worker. Yang berarti mereka harus menjalankannya tapi mungkin tidak pernah dieksekusi, melainkan akan sering menjadi kasus yang obyeknya digunakan dalam multi-thread yang dimaksudkan untuk eksekusi. Dengan begitu berarti konteks (Thread/ Worker/ Stackable / Process) dapat membaca, menulis dan mengeksekusi anggota Object Threaded sebelum, selama, dan setelah eksekusi.

III.

Metodologi Penelitian

3.1 Tahapan Penelitian

(5)

Gambar 3. 1 Tahapan Penelitian

Di dalam implementasi proses perhitungan jumlah pemilih tetap yang dilakukan pada aplikasi PHP dengan menggunakan multithreading dan single threading, dapat menghasilkan masing-masing waktu yang diperoleh dari hasil kecepatan perhitungan masing-masing thread.

Perbedaan hasil dari waktu proses perhitungan jumlah pemilih tetap menggunakan kedua metode thread yang dilakukan menghasilkan masing-masing waktu perhitungan. Dari hasil tersebut bisa dibuat selisih waktu yang dihasilkan dari waktu perhitungan kedua metode single threading dan multithreading menggunakan pthread.

IV.

PERANCANGAN SISTEM

4.1 Topologi Sistem

Gambar 4.1 Topologi Perhitungan Data Pemilih

TPS pada diagram alur sebagai slave yang berperan sebagai eksekutor yang melakukan proses pengeksekusian input data. Sedangkan yang berlaku sebagai node master adalah KPU Desa, karena berperan untuk menyampaikan data dari TPS menuju server di KPU Kecamatan.

Penelitian ini terpusat pada server pusat KPU karena pada server pusat ini terdapat proses penyimpanan dan pengeksekusian data. Proses penyimpanan data melibatkan data provinsi, kabupaten, kelompok umur dan jumlah data pemilih yang aktif di seluruh Indonesia.

Pembuatan laporan Kesimpulan

Analisa

Mengerjakan coding PHP multithreading menggunakan pthread Mengerjakan coding PHP single threading

(6)

4.2 Perancangan Proses

Sistem ini digunakan untuk melakukan pengujian perhitungan data pemilih aktif di Indonesia. Penulis menguji sistem ini dengan melakukan perbandingan dengan menggunakan phtread dan menerapkan metode singlethreading dan multithreading, serta mengimplementasikannya pada sejumlah komputer dengan spesifikasi yang berbeda.

Langkah pertama yang dilakukan adalah membuat sekumpulan dummy data dengan pengelompokkan provinsi, kabupaten, kelompok umur, dimana satu provinsi terdiri dari beberapa kabupaten dengan masing-masing data pemilih yang dikelompokan lagi berdasarkan kelompok umur. Sementara itu data yang diujicobakan masih berupa dummy data karena data pemilu bersifat private dan rahasia.

Langkah kedua adalah mengimplementasikan dua sistem dengan menggunakan metode yang berbeda yakni singlethreading dan multithreading untuk diuji perbandingannya. Thread ini diaplikasikan dengan bahasa pemrograman PHP.

Selain perbandingan threading, dilakukan juga analisis sistem perhitungan data pemilih aktif yaitu dengan menguji sistem pada beberapa komputer dengan spesifikasi berbeda dan hasil yang didapat dapat membuktikan apakah spesifikasi komputer dapat mempengaruhi kecepatan komputasi perhitungannya.

4.3 Perancangan Basis Data

a. Tabel Provinsi

Tabel provinsi digunakan untuk menyimpan data daftar provinsi di Indonesia. Keterangan tabel provinsi ditunjukkan pada tabel berikut:

Berikut ini adalah beberapa isi tabel provinsi :

Tabel 4.1 Tabel Provinsi

Gambar 4.1 Tabel Provinsi

b. Tabel Kabupaten

Tabel kabupaten digunakan untuk menyimpan data daftar kabupaten di Indonesia. Keterangan tabel kabupaten ditunjukkan pada tabel berikut:

Tabel Tipe Ukur an

Keterangan

Id_pro v

Integ er

11 Kunci Primer, Auto Increment

Nama_ prov

Varch ar

(7)

Tabel 4.2 Tabel Kabupaten

Berikut ini adalah beberapa isi tabel kabupaten :

Gambar 4.2 Tabel Kabupaten

c. Tabel Kelompok Umur (kel_umur)

Tabel kel_umur digunakan untuk menyimpan range/kelompok umur pemilih. Keterangan tabel kel_umur ditunjukkan pada tabel berikut :

Tabel 4.2 Tabel Kabupaten

Berikut ini adalah isi tabel kel_umur :

Gambar 4.3 Tabel Kelompok Umur

d. Tabel Suara

Tabel suara digunakan untuk menyimpan data jumlah pemilih di Indonesia. Keterangan tabel suara ditunjukkan pada tabel berikut:

Tabel Tipe Ukur an

Keterangan

Id_suara Integer 11 Kunci Primer, Auto Increment

Prov_id Integer 11 Foreign Key, id provinsi

Kab_id Integer 11 Foreign Key, id kabupaten

Tabel Tipe Ukur an

Keterang an

Id_kab Integer 11

Kunci Primer,

Auto Increment

Prov_i

d Integer 11

Foreign Key, id provinsi

Nama_

kab Varchar 255

Nama-nama kabupaten

di Indonesia

Tabel Tipe Ukur an

Keterangan

Id_kelo mpok

Intege r

11 Kunci Primer, Auto Increment

Kelom pok_u mur

Varch ar

20 Range

(8)

Kel_id Integer 11 Foreign Key, id kelompok umur

Jumlah Integer 11 Jumlah pemilih

Tabel 4.4 Tabel Suara

Berikut ini adalah beberapa isi tabel suara:

Gambar 4.4 Tabel Suara

4.4 Instalasi Pthread pada PHP

Sebelum mengaplikasikan multithreading dan singlethreading pada bahasa pemrograman PHP, diperlukan instalasi pthread sebagai library yang mendukung threading. Instalasi pthread pada PHP dijabarkan pada poin-poin berikut ini.

1. Download library pthread dengan versi yang disesuaikan dengan versi XAMPP yang digunakan pada komputer.

2. Copy file pthreadVC2.dll pada folder xampp/php dan file php_pthreads.dll pada folder xampp/php/ext.

3. Pada file php.ini yang berada pada folder xampp/php aktifkan extension=php_pthreads.dll jika sudah ada. Jika belum, maka tambahkan ekstensi tersebut untuk mengaktifkan pthread pada XAMPP yang digunakan.

4. Restart Apache pada XAMPP.

4.5 Perancangan Singlethreading dan Multithreading

Sistem yang akan dikembangkan pada penelitian ini adalah sistem yang memanfaatkan dua jenis thread yaitu singlethreading dan multithreading. Waktu komputasi atau running time yang dibutuhkan untuk sistem atau aplikasi yang memanfaatkan multithreading dianggap lebih cepat dibandingkan dengan yang memanfaatkan singlethreading.

Pengujian ini akan lebih memperkuat konsep tersebut dengan mengembangkan sistem perhitungan data pemilih aktif di Indonesia dengan mengaplikasikan keduanya, agar dapat dilihat seberapa berpengaruh multithreading pada lamanya komputasi dibandingkan dengan singlethreading.

Pengaplikasian singlethreading dilihatkan pada gambar berikut ini.

<?php

error_reporting(0); $server = "localhost"; $username = "root"; $password = ""; $database = "thread";

mysql_connect($server,$username,$pass word) or die("Koneksi gagal");

(9)

$start = microtime(true);

$kueri = mysql_query("select * from provinsi");

while($data =

mysql_fetch_array($kueri)){ //perhitungan per provinsi

echo "Thread provinsi ".$data['nama_prov'];

echo "<br />"; $suara = mysql_query("select *

from

suara,kabupaten,kel_umur,provinsi

where suara.prov_id = provinsi.id_prov

AND suara.kab_id = kabupaten.id_kab

AND suara.kel_id = kel_umur.id_kel

AND suara.prov_id='$data[id_prov]'

Order By id_suara"); //$jml = array(); $jml1 = 0; $jml2 = 0; $jml3 = 0; $jml4 = 0;

while($jumlah=mysql_fetch_arr ay($suara)){

if($jumlah['id_kel']==1){ $jml1 = $jml1+$jumlah['jumlah'];

}elseif($jumlah['id_kel']==2){ $jml2 = $jml2+$jumlah['jumlah'];

}elseif($jumlah['id_kel']==3){ $jml3 = $jml3+$jumlah['jumlah'];

}elseif($jumlah['id_kel']==4){

$jml4 = $jml4+$jumlah['jumlah'];

} }

echo "Kelompok umur 17-26= ".$jml1;

echo "<br />"; echo "Kelompok umur 27-36= ".$jml2;

echo "<br />"; echo "Kelompok umur 37-46= ".$jml3;

echo "<br />"; echo "Kelompok umur 47-56= ".$jml4;

echo "<br />"; // $this->data = $jml; /*echo $this->data;*/// $this->data = $jml;

echo "<br />"; echo "<hr />"; echo "<br />";

}

$data2 = mysql_query("select *

from

suara,kabupaten,kel_umur,provinsi

where suara.prov_id = provinsi.id_prov

AND suara.kab_id = kabupaten.id_kab

AND suara.kel_id = kel_umur.id_kel

Order By id_suara"); $data4 = array();

while($data3=mysql_fetch_array($data2)) { //perhitungan semuanya

array_push($data4,$data3); }

$jmla1 = 0; $jmla2 = 0; $jmla3 = 0; $jmla4 = 0;

(10)

$jmla1 =

echo "Total Keseluruhan"; echo "<br />";

echo "Kelompok umur 17-26= ".$jmla1;

echo "<br />";

echo "Kelompok umur 27-36= ".$jmla2;

echo "<br />";

echo "Kelompok umur 37-46= ".$jmla3;

echo "<br />";

echo "Kelompok umur 47-56= ".$jmla4;

echo "<br />"; // $this->data = $jml; // echo $this->data; echo "<br />"; echo "<hr />"; echo "<br />"; sleep(0);

$runtime = (microtime(true)-$start);

echo "Running Time : ".$runtime;

Gambar 4.5 Singlethreading PHP

Singlethreading akan menampilkan jumlah data pemilih yang aktif di Indonesia di berbagai provinsi. Selain itu sistem juga akan menampilkan jumlah data pemilih keseluruhan. Singlethreading akan menjalankan satu proses dahulu hingga selesai, kemudian dilanjutkan dengan proses selanjutnya. Output running time akan ditampilkan ketika semua proses sudah selesai dieksekusi.

Selain singlethreading, sistem yang dikembangkan ini akan memanfaatkan

multithreading yang menurut berbagai penelitian konsep ini akan mempercepat waktu eksekusinya. Berikut akan ditampilkan pengaplikasian multithreading pada sistem perhitungan data pemilih di Indonesia.

<?php

error_reporting(0);

class Pemilu extends Thread { //function thread menghitung jumlah keseluruhan public $data;

public $provinsi;

public function __construct($provinsi){ $this->provinsi = $provinsi;

}

public function run() {

$tes = $this->provinsi; $jml1 = 0;

$jml2 = 0; $jml3 = 0; $jml4 = 0;

foreach($tes as $data){

if($data['id_kel']==1){

$server = "localhost";

(11)

$database = "thread";

// Koneksi dan memilih database di server

mysql_connect($server,$userna me,$password) or die("Koneksi gagal");

mysql_select_db($database) or die("Database tidak bisa dibuka"); $kueri = mysql_query("select * from provinsi");

$data2 = mysql_query("select *

from

suara,kabupaten,kel_umur,provinsi

where suara.prov_id = provinsi.id_prov

AND suara.kab_id = kabupaten.id_kab

AND suara.kel_id = kel_umur.id_kel

Order By id_suara"); $data4 = array();

while($data3=mysql_fetch_array($data2)) {

array_push($data4,$data3); }

$pemilu = new Pemilu($data4); $start = microtime(true);

if($pemilu->start()){ //ketika funtion pemilu dijalankan maka dibawah juga dijlankan bersamaan

while($data = mysql_fetch_array($kueri)){

echo "Thread provinsi ".$data['nama_prov'];

echo "<br />"; $suara = mysql_query("select *

from

suara,kabupaten,kel_umur,provinsi

where suara.prov_id = provinsi.id_prov

AND suara.kab_id = kabupaten.id_kab

AND suara.kel_id = kel_umur.id_kel

AND suara.prov_id='$data[id_prov]'

Order By id_suara"); //$jml = array(); $jml1 = 0; $jml2 = 0; $jml3 = 0; $jml4 = 0;

while($jumlah=mysql_fetch_arr ay($suara)){

if($jumlah['id_kel']==1){ $jml1 = $jml1+$jumlah['jumlah'];

}elseif($jumlah['id_kel']==2){ $jml2 = $jml2+$jumlah['jumlah'];

}elseif($jumlah['id_kel']==3){ $jml3 = $jml3+$jumlah['jumlah'];

}elseif($jumlah['id_kel']==4){ $jml4 = $jml4+$jumlah['jumlah'];

} }

echo "Kelompok umur 17-26= ".$jml1;

echo "<br />"; echo "Kelompok umur 27-36= ".$jml2;

echo "<br />"; echo "Kelompok umur 37-46= ".$jml3;

(12)

echo "Kelompok umur 47-56= ".$jml4;

echo "<br />"; // $this->data = $jml; // echo $this->data; echo "<br />"; echo "<hr />"; echo "<br />"; // echo "<pre>"; // print_r($this->data); // echo "</pre>"; }

$pemilu->join();//join kedua data echo "Total Keseluruhan"; echo "<br />";

echo "Kelompok umur 17-26= ".$pemilu->data[0];

echo "<br />";

echo "Kelompok umur 27-36= ".$pemilu->data[1];

echo "<br />";

echo "Kelompok umur 37-46= ".$pemilu->data[2];

echo "<br />";

echo "Kelompok umur 47-56= ".$pemilu->data[3];

echo "<br />"; // $this->data = $jml; // echo $this->data; echo "<br />"; echo "<hr />"; echo "<br />"; }

$runtime = (microtime(true)-$start); /* we can now manipulate the response */

echo "Running Time : ".$runtime;

Gambar 4.6 Multithreading PHP

Multithreading juga akan menampilkan output berupa jumlah data pemilih yang dikategorikan berdasarkan provinsi. Selain itu sistem ini juga akan menampilkan jumlah data pemilih keseluruhan. Berbeda dengan singlethreading, multithreading akan menampilkan running time atau waktu eksekusinya ketika semua proses sudah selesai dijalankan secara bersamaan.

V.

PENGUJIAN SISTEM

5.1 Komponen Sistem

Spesifikasi rangkaian yang digunakan sebagai server dalam percobaan ini adalah :

- Notebook dengan Processor Intel Core i3-3217U 1.80 GHz, Memory 4 GB, dan Operating System Windows 7 Ultimate 64-bit (Gita)

- Notebook dengan Processor Intel Core i5-3337U 1.80 GHz, Memory 4 GB, dan Operating System Windows 8 Single Language 64-bit (Esti)

- Notebook dengan Processor Intel Core 2 Duo T6400 2.00 GHz, Memory 2 GB, dan Operating System Windows 7 Ultimate 32-bit (Nasir)

- Netbook dengan Processor AMD C-60 1.00 GHz, Memory 2 GB, dan Operating System Windows 7 Starter 32-bit (Rian)

- Notebook dengan Processor Intel Core i3 M330 2.13 GHz, Memory 4 GB, dan Operating System Windows 8.1 Pro 64-bit (Shelly)

- Notebook dengan Processor Intel Core i3-2330M 2.20 GHz, Memory 6 GB, dan Operating System Windows 8 Pro 64-bit (Septri)

5.1 Hasil Pengujian Singlethreading dan Multithreading pada Spesifikasi Komputer yang Berbeda

Selain bahasa pemrograman Java dan C, ternyata PHP juga mendukung penuh konsep thread baik singlethreading maupun multithreading. Sistem perhitungan data pemilih di Indonesia merupakan salah satu sistem yang berhasil dikembangkan dengan menerapkan keduanya.

(13)

Begitu juga pada sistem ini, setelah perhitungan data perprovinsi selesai dilakukan, baru dilanjutkan dengan menghitung data keseluruhan.

Hampir sama dengan singlethreading bahwa sistem ini akan melakukan perhitungan data pemilih perprovinsi dan keseluruhan. Namun, konsep multithreading berbeda dengan singlethreading dimana semua proses akan dieksekusi bersamaan. Multithreading pada sistem ini terdiri dari dua thread yaitu perhitungan perprovinsi dan perhitungan keseluruhan, yang kemudian kedua thread tersebut dieksekusi bersamaan. Algoritma perhitungan data pemilih perprovinsi dan keseluruhan menggunakan algoritma yang sama baik pada singlethreading maupun multithreading.

Pengujian sistem perhitungan data pemilih ini akan dilakukan pada dua konsep yang berbeda dengan mengeksekusi kurang lebih 1000 data, yakni :

1. Pengujian pertama, sistem diujikan pada satu laptop untuk menganalisa perbandingan kecepatan waktu eksekusi atau running time perhitungan data pemilih.

2. Pengujian kedua, sistem diujikan pada enam laptop untuk menganalisa perbandingan kecepatan waktu eksekusi berdasarkan spesifikasi komputer yang berbeda. Pengujian ini bertujuan untuk mengetahui adakah pengaruh lain yang mampu mempercepat waktu eksekusi sebuah sistem.

Pengujian pertama yaitu sistem ini diujikan pada Laptop Septri dengan spesifikasi yang telah disebutkan sebelumnya. Hasil pengujian sistem perhitungan data pemilih dengan singlethreading dan multithreading ditunjukkan pada tabel berikut ini.

Percobaan Execution Time(s)

1 Singlethread Multihread

2 0.034 0.029

3 0.069 0.034

4 0.038 0.026

5 0.041 0.030

6 0.071 0.032

7 0.040 0.034

8 0.054 0.029

9 0.069 0.033

10 0.035 0.026

Tabel 5.1 Pengujian Pertama

Waktu rata-rata singlethreading adalah 0.045 ms, sedangkan waktu rata-rata multithreading adalah 0.027 ms. Perbedaan waktu eksekusi pada setiap percobaan tersebut disebut dengan Observational Error dan termasuk dalam Random Error. Optional error atau kesalahan pengukuran adalah perbedaan antara nilai terukur dan nilai yang sebenarnya. Sedangkan Random error adalah kesalahan yang tidak bisa dikontrol dan sering dianggap bukan sebagai kesalahan. Kesalahan perhitungan ini terjadi karena eksekusi didorong ke batas maksimalnya.

Pengujian kedua yaitu sistem ini diujikan pada enam laptop yang memiliki spesifikasi yang berbeda seperti yang telah dijabarkan sebelumnya. Pengujian kedua hampir sama dengan pengujian pertama, dimana setiap laptop dilakukan eksekusi program selama 10 kali dan diambil waktu rata-rata eksekusinya. Hasil pengujian sistem perhitungan data pemilih dengan singlethreading dan multithreading pada spesifikasi komputer yang berbeda ditunjukkan pada tabel berikut ini.

Laptop Processor RA M

Execution Time(s)

Single Thread

(14)

Septri

Tabel 5.2 Pengujian Kedua

Pengujian di atas membuktikan bahwa perbedaan spesifikasi komputer memberikan pengaruh perbedaan waktu eksekusinya. Yang paling berpengaruh adalah jenis processornya, karena processorlah yang melakukan proses semua data, sedangkan RAM tidak terlalu berpengaruh karena hanya menggunakan sedikit memori dalam melakukan proses perhitungan data.

VI.

KESIMPULAN

1. Konsep multithreading dan singlethreading tidak hanya dapat diaplikasikan pada bahasa pemrograman Java dan C saja, namun juga pada bahasa pemrograman PHP dengan menggunakan library Pthread.

2. Waktu eksekusi multithreading akan lebih cepat dibandingkan dengan singlethreading karena semua proses dapat dijalankan secara bersamaan

atau paralel. Multithreading sangat baik diaplikasikan pada sistem perhitungan data pemilih aktif di Indonesia, apalagi untuk jumlah penduduk yang semakin hari semakin meningkat.

3. Perbedaan spesifikasi komputer dalam melakukan proses paralel multithreading dan singlethreading mempengaruhi waktu eksekusi, terutama jenis processor yang digunakan karena processorlah yang melakukan proses semua data.

VII.

DAFTAR PUSTAKA

[1] Krik B. David . , 2005. Multiple core, multiple threads, Multiple pipes. IEEE, 2005 International Forum on Information Technology and Applications.

[2] Rahman Musafiq , Childers R. Bruce, Cho Sangyeun. , 2013. Continous Memory Testing with Multithreading extension. University of Pittsburgh, United States.

[3] Fasilitas input data e-counting Documentation. Available at :

[http://sipemilu.org/ti- kpu/category/artikel/page/42/]

[4] Greenhill David . Chip Multi Threading Keeps the Data Center Cool. Santa Clara, California : Sun Microsystem.

Gambar

Gambar 2. 2 Cara Kerja PHP (Sunyoto, 2007)
Gambar 3. 1 Tahapan Penelitian
Tabel Tipe
Tabel 4.4  Tabel Suara
+3

Referensi

Dokumen terkait

Ya, walaupun keadaan kita saat ini begitu jauh dari harapan, tetaplah belajar untuk senantiasa bersyukur dan mencukupkan diri dalam segala keadaan.. Memang tidak

Tujuan dari penelitian ini adalah untuk melakukan pengurangan waste dan aktivitas yang tidak bernilai tambah pada rantai nilai dengan konsep lean-kaizen agar

Oleh karena itu, diharapkan penggunaan alkanolamida dapat membuat interaksi antar fasa (interphase) antara bentonite clay dan lateks karet alam menjadi lebih kuat, dengan

Dengan demikian definisi database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer

Adapun tujuan yang ingin dicapai pada penelitian ini adalah mendapatkan item pekerjaan yang dapat dilakukan value engineering untuk mendapatkan alternatif pengganti

Penelitian ini bertujuan untuk mengetahui pengaruh variasi waktu radiasi terhadap karakteristik material GO hasil sintesis menggunakan kombinasi metode LE dan radiasi sinar-X

Meneliti dan memaraf konsep surat cuti sakit, diteruskan kepada Ketua. Panitera

Menimbang, bahwa setelah Pengadilan Tinggi memeriksa dan meneliti secara seksama berkas perkara dan turunan resmi putusan Pengadilan Negeri Balikpapan Nomor