Jurnal Matematika Vol. 9, No.2, Desember 2019, pp. 101-110                ISSN: 1693-1394

Article DOI: 10.24843/JMAT.2019.v09.i02.p116

Penanggulangan Kasus DPT Ganda dengan Menggunakan Algoritme Quicksort dan Priority

Queue

I Gusti Ngurah Lanang Wijayakusuma

Program Studi Matematika, Fakultas MIPA, Universitas Udayana

e-mail: [email protected]

Sagung Chandra Yowani

Program Studi Matematika, Fakultas MIPA, Universitas Udayana

e-mail: [email protected]

Abstract: Multiple Daftar Pemilih Tetap (DPT) is a classic problem that constantly occurs when the Republic of Indonesia will hold general elections, both at district, provincial and national levels. This situation will be very dangerous for the progress of democracy in Indonesia because the existence of this double DPT can delegitimize the results of general elections that have been held. The method used to develop multiple DPT filters is a combination of the longest common suffix (LCS) algorithm as a DPT filter engine, priority queue as data structures for storing DPT data and quicksort algorithm DPT data presentation methods after the filter process. The data used is the DPT data of the province of Bali in 2019 which was obtained from KPUD in all regencies in Bali. Initial DPT filter was able to eliminate the data of voters who were doubly suspected with a similarity level between the data was 95%. But there are still some errors in this filtering process caused by incomplete data, namely the last six digits of the NIK are replaced by *, and the year of birth is also replaced by *..

Keywords: DPT, General Election, LCS, Quicksort, Priority Queue, prototype, KPUD

  • 1.    Pendahuluan

Salah satu komponen utama dalam PEMILU di Indonesia adalah daftar pemilih tetap (DPT) yang digunakan oleh Komisi Pemilihan Umum (KPU) sebagai dasar untuk mencetak dan mendistribusikan surat suara dan logistik PEMILU lainnya ke berbagai daerah di Indonesia.

Pada perjalanannya PEMILU di Indonesia mengalami sebuah permasalahan klasik yang tidak pernah terselesaikan secara menyeluruh yaitu permasalahan daftar pemilih tetap (DPT) ganda. DPT ganda ini sangat membahayakan bagi demokrasi di

Indonesia karena dengan adanya DPT ganda ini, potensi kecurangan dan potensi kerusuhan sangat besar terjadi.

Penetapan DPT itu sendiri merupakan proses yang sangat kompleks yang berdasarkan buku kerja PPK 2019 dilakukan melalui 4 tahapan yaitu : (a) persiapan; (b) pencocokan dan penelitian (coklit); (c) Daftar Pemilih Sementara; (d) Daftar Pemilih Tetap. Melalui 4 tahapan tersebut, KPU berharap mendapatkan DPT yang mutakhir dan tidak ganda. Tetapi dalam prakteknya tetap banyak terjadi DPT yang ganda (satu orang yang sama terdaftar lebih dari satu kali sebagai pemilih).

Melihat permasalahan yang selalu berulang tersebut, penulis tertarik untuk mencoba menanggulangi permasalahan tersebut dengan menggabungkan algoritme quicksort dan priority queue untuk mengeliminasi DPT ganda, baik pada tingkat desa, kecamatan, kabupaten, maupun propinsi. Proses eliminasi itu sendiri akan dilakukan dengan memperhatikan parameter-parameter yang digunakan untuk menyatakan seseorang terdaftar lebih dari satu kali dalam DPT.

Kata algoritme diambil dari nama ilmuwan muslim Abu Ja’far Muhamad bin Musa Al-Khwarizmi (780–846 M) yang telah menghasilkan banyak karya dalam bidang matematika. Algoritme adalah urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu (Wahid, 2004).

Algoritme merupakan langkah-langkah sistematis yang digunakan untuk memecahkan suatu masalah. Dalam pemrograman komputer, algoritme mampu menjelaskan bagaimana cara menjalankan fungsi yang dapat diekspresikan dengan suatu program (Bagio, 2007).

Algoritme merupakan prosedur komputasi yang mengambil suatu nilai sebagai input dan menghasilkan suatu nilai sebagai output (Cormen et al., 2001). Suatu algoritme dikatakan benar jika untuk sebarang input, menghasilkan output yang benar pula. Jadi bisa disimpulkan bahwa algoritme adalah langkah-langkah yang sistematis, executable, dan terminated untuk mentransformasikan input menjadi sebuah output.

Algoritme quicksort merupakan algoritme sorting yang dipilih oleh penulis karena algoritme quicksort merupakan algoritme sorting yang memiliki running time sangat cepat saat ini. Meskipun algoritme quicksort memiliki kompleksitas waktu pada kondisi terburuk adalah Ο(n$), namun berdasarkan penelitian kompleksitas waktu algoritme quicksort lebih cenderung ke kondisi average-nya yaitu Ω(nlgn) (Saputra et al., 2016). Sedangkan struktur data priority queue diplih penulis karena struktur data tersebut memiliki kompleksitas waktu proses insert Ο(1) dan proses delete Ο(lg n) (Jensen, 2012).

Data yang digunakan dalam penelitan, disimpan ke dalam sebuah struktur basis data dengan bentuk normal ke 3, dimana bentuk normal ke 3 adalah suatu relasi yang

berada dalam bentuk normal pertama dan kedua dan dimana tidak ada atribut non kunci primer bergantung secara transitif pada kunci primer (Connoly, et al, 2015).

  • 2.    Metode Penelitian

Data penelitian ini adalah warga negara Indonesia yang terdaftar sebagai pemilih tetap pada pemilihan umum (DPT) tahun 2019 di Provinsi Bali, dengan jumlah total DPT 2019 di Provinsi Bali adalah 3.028.249 pemilih (KPUD Bali, 2019).

Metode Analisis dan Perancangan

Penulis melakukan beberapa langkah penelitian dalam menghapus daftar pemilih tetap (DPT) yang ganda sebagai berikut:

  • 1.    Pengumpulan Data: pada langkah ini penulis mengumpulkan daftar pemilih tetap (DPT) di tingkat kecamatan yang ada di Bali;

  • 2.    Pengurutan Data: seluruh data daftar pemilih tetap (DPT) yang diperoleh diurutkan berdasarkan nama;

  • 3.    Penentuan Prioritas Antrian: data yang sudah diurutkan tadi kemudian disortir berdasarkan Nama dan Tempat/Tanggal Lahir. Jika terdapat daftar pemilih dengan Nama dan Tempat/Tanggal Lahir yang sama maka pemilih tersebut terindi-kasi sebagai daftar pemilih tetap (DPT) ganda;

  • 4.    Proses Sortir: langkah selanjutnya adalah menandai data daftar pemilih tetap (DPT) yang terindikasi sebagai DPT ganda, kemudian memisahkan DPT ganda tersebut ke dalam data yang baru;

  • 5.    Analisis Data: langkah terakhir adalah memverifikasi DPT ganda tersebut untuk dipilih satu daftar pemilih yang valid.

Gambar 1. Roadmap Penelitian

  • 3.    Hasil dan Pembahasan

    a.    Pengumpulan data

Pengumpulan data DPT seluruh Bali dilakukan dengan cara pengambilan data langsung di setiap KPUD kabupaten, dengan rincian sebagai berikut :

  • 1.    DPT yang didapatkan di KPUD Denpasar adalah sejumlah 415.624 orang

  • 2.    DPT yang didapatkan di KPUD Buleleng adalah sejumlah 564.620 orang

  • 3.    DPT yang didapatkan di KPUD Badung adalah sejumlah 366.131 orang

  • 4.    DPT yang didapatkan di KPUD Karangasem adalah sejumlah 381.323 orang

  • 5.    DPT yang didapatkan di KPUD Tabanan adalah sejumlah 362.031 orang

  • 6.    DPT yang didapatkan di KPUD Jembrana adalah sejumlah 228.586 orang

  • 7.    DPT yang didapatkan di KPUD Klungkung adalah sejumlah 159.599 orang

  • 8.    DPT yang didapatkan di KPUD Gianyar adalah sejumlah 363.603 orang

  • 9.    DPT yang didapatkan di KPUD Bangli adalah sejumlah 186.674 orang

Total DPT yang didapatkan oleh peneliti adalah : 3.028.249 orang

  • b.    Pembersihan dan Transformasi Data

Data-data yang diperoleh dari masing-masing KPUD Kabupaten merupakan data yang tidak lengkap dan berbentuk .pdf sehingga diperlukan proses pembersihan dan transformasi data agar bisa dianalisis lebih lanjut. Proses tersebut antara lain :

  • 1.    Proses pemilihan data dilakukan untuk memilih secara acak data di setiap kabupaten yang akan digunakan.

  • 2.    Proses konversi file pdf ke dalam file xls. Proses konversi file pdf ke dalam file xls, dilakukan dengan menggunakan tools pdf converter

  • 3.    Proses konversi file xls ke dalam data sql. Proses konversi file xls, dilakukan dengan menggunakan Bahasa pemrograman php dan bahasa basis data sql.

  • 4.    Proses transformasi data, karena NIK data penduduk yang didapatkan peneliti tidak lengkap atau mengandung tanda *, data yang dapat digunakan oleh peneliti untuk menganalisis kemungkinan ganda dari sebuah DPT adalah data nama, tanggal lahir dan tempat lahir.

  • 5.    Proses penyambungan kata / string agar data dapat dianalisis lebih lanjut. Kata yang disambung adalah (nama penduduk, tempat lahir penduduk, dan tanggal lahir penduduk).

  • c.    Pengerjaan Prototipe Filter

Filter DPT ganda pada dasarnya merupakan sebuah sistem yang di dalamnya terdapat dua fungsi utama yaitu :

  • 1.    Fungsi filter data dengan menggunakan algoritme longest common suffix (LCS)

  • 2.    Fungsi presentasi data dengan algoritme quicksort dan priority queue

Dua fungsi utama filter DPT tersebut, digambarkan ke dalam DFD sebagai berikut :

Berdasarkan DFD di atas, implementasi dengan menggunakan Bahasa pemrograman PHP dari fungsi-fungsi di atas adalah sebagai berikut :

  •    Fungsi Filter Data :

include_once('configdatabase.php');

function microtime_float()

{

list($usec, $sec) = explode(" ", microtime());

return ((float)$usec + (float)$sec);

}

$timeStart=microtime_float();

$sqlData=$db->query('SELECT * FROM dpt_pemilihbali order by id');

foreach($sqlData as $data){

$sqlPembanding=$db->query('SELECT * FROM dpt_pemilihbali order by id');

foreach($sqlPembanding as $dataPembanding){

if($data['id']==$dataPembanding['id']){

continue;

}

similar_text($data['nama'], $dataPembanding['nama'], $percent);

if($percent>95){

$sqlUpdateData=$db->prepare('UPDATE dpt_pemilihbali set statusDPT=? where id=?');

$sqlUpdatePembanding=$db->prepare('UPDATE dpt_pemilihbali set statusDPT=? where id=?');

$sqlUpdateData->execute(['Curiga Ganda',$data['id']]);

$sqlUpdatePembanding->execute(['Curiga Ganda',$dataPembanding['id']]); }

}

}

$timeEnd=microtime_float();

$duration = $timeEnd-$timeStart;

echo "Filter DPT selesai dalam $duration detik";

  •    Fungsi Presentasi Data :

<table class="table table-responsive">

<thead>

<th style="width: 20%;">No</th>

<th style="width: 20%;">Pemilih</th>

<th style="width: 25%;">Status DPT</th>

</thead>

<tbody>

<?php

$n=1;

$sql=$db->prepare('SELECT * FROM dpt_pemilihbali where statusDPT=? order by nama');

$sql->execute(['Curiga Ganda']);

$hasil=$sql->fetchAll(); foreach($hasil as $data){ ?> <tr>

<td><?=$n?></td>

<td><?=$data['nama']?></td>

<td><?=$data['statusDPT']?></td>

</tr>

<?php $n++;

}

?>

</tbody>

</table>

  • d.    Hasil Filter DPT Ganda

Proses filter DPT yang dilakukan pada 2000 data pemilih, menghasilkan 164 orang pemilih yang dicurigai ganda, berikut ini adalah table hasil filter DPT Ganda :

Tabel 1. Hasil Filter DPT Ganda

No

DPT

Status DPT

1

I WAYAN AGUS SUSILA GIANYAR 08|08|1984

Curiga Ganda

2

I MADE JULIAWAN UBUD 03|04|1984

Curiga Ganda

3

NI MADE BUKTI TANGGAYUDA 01|07|1951

Curiga Ganda

4

NI MADE BUDI TANGGAYUDA 01|07|1954

Curiga Ganda

5

NI WAYAN BERE GIANYAR 31|12|1945

Curiga Ganda

No

DPT

Status DPT

6

I WAYAN AGUS SUSILA GIANYAR 08|08|1984

Curiga Ganda

7

I MADE JULIAWAN UBUD 01|05|1984

Curiga Ganda

8

I KOMANG MAYANA PUTRA BR. TANGGAYUDA 15|11|2000

Curiga Ganda

9

I KOMANG MAYANA PUTRA BR. TANGGAYUDA 15|11|2000

Curiga Ganda

10

I WAYAN SUANAYASA GIANYAR 31|12|1967

Curiga Ganda

11

SANG AYU KETUT SABIR TANGGAYUDA 01|07|1962

Curiga Ganda

12

SANG AYU PUTU KISID TANGGAYUDA 01|07|1940

Curiga Ganda

13

I NYOMAN SUPARTA GIANYAR 14|12|1978

Curiga Ganda

14

SANG AYU PUTU CUKI TANGGAYUDA 01|07|1945

Curiga Ganda

15

I NYOMAN WARDIKA TANGGAYUDA 22|02|1966

Curiga Ganda

16

NI WAYAN BENYEH GIANYAR 31|12|1945

Curiga Ganda

17

I NYOMAN WARDIKA TANGGAYUDA 22|02|1966

Curiga Ganda

18

SANG AYU KETUT NIK TANGGAYUDA 01|07|1960

Curiga Ganda

19

I NYOMAN SUPARTA GIANYAR 31|12|1972

Curiga Ganda

20

GUSTI AYU ARTI BADUNG 31|12|1967

Curiga Ganda

21

NI WAYAN RATNA SARI BR. BUNUTAN 21|04|1989

Curiga Ganda

22

NI WAYAN RATNA SARI BR. BUNUTAN 21|04|1989

Curiga Ganda

23

I WAYAN PUNDUH BR. BUNUTAN 01|07|1969

Curiga Ganda

24

I WAYAN RAUH BR. BUNUTAN 31|12|1972

Curiga Ganda

25

NI NYOMAN RESTI UDIA MATELDA KUPANG 19|03|1983

Curiga Ganda

26

NI NYOMAN RESTI UDIA MATELDA KUPANG 19|03|1983

Curiga Ganda

27

I KETUT MENY BR. BUNUTAN 15|09|1964

Curiga Ganda

28

NI NYOMAN MERTA GIANYAR 30|12|1960

Curiga Ganda

dst

150

I WAYAN TAGEL GIANYAR 20|04|1972

Curiga Ganda

151

I WAYAN DUDUK GIANYAR 19|09|1964

Curiga Ganda

152

I WAYAN PURNA BR. BUNUTAN 31|12|1954

Curiga Ganda

153

NI NYOMAN CELEMI BR. BUNUTAN 31|12|1960

Curiga Ganda

154

NI NYOMAN WARNI BR. BUNUTAN 01|07|1962

Curiga Ganda

155

NI NYOMAN CANGKIR BR. BUNUTAN 30|12|1970

Curiga Ganda

156

I MADE MARDA BR. BUNUTAN 19|07|1975

Curiga Ganda

157

NI MADE SUECA BR. BUNUTAN 01|07|1937

Curiga Ganda

158

I MADE WARDANA BR. BUNUTAN 20|07|1979

Curiga Ganda

159

NI MADE KARMI BR. BUNUTAN 01|07|1951

Curiga Ganda

No

DPT

Status DPT

160

I KETUT NADA BR. BUNUTAN 12|08|1979

Curiga Ganda

161

I NYOMAN SATU GIANYAR 31|12|1972

Curiga Ganda

162

I WAYAN NOMER BR. BUNUTAN 31|12|1947

Curiga Ganda

163

I WAYAN RIYED GIANYAR 31|12|1950

Curiga Ganda

164

I WAYAN RIYEDI GIANYAR 31|12|1950

Curiga Ganda

  • 4.    Kesimpulan dan Saran

Tabel di atas menggambarkan bahwa filter DPT telah mampu memprediksi data-data yang dicurigai ganda dengan tingkat kemiripan antar string yang diperbolehkan adalah 95%. Proses filter data DPT dengan purwarupa sistem memperlihatkan beberapa permasalahan menarik yaitu :

  •    Parameter yang dapat digunakan untuk menentukan data seorang pemilih adalah ganda atau tidak berdasarkan data yang didapatkan adalah nama, tanggal lahir dan tempat lahir.

  •    Walaupun tingkat kemiripan string yang diperbolehkan adalah 95%, tapi terdapat beberapa data yang salah ditandai sebagai data ganda.

  •    Karena data yang didapatkan oleh peneliti bukan merupakan data lengkap, maka prototipe sistem hanya mampu menganalisis kemiripan antar data berdasarkan nama, tanggal lahir dan tempat lahir, dalam hal ini disarankan untuk melakukan penelitian lanjutan untuk memperoleh data yang lebih lengkap, sehingga kombinasi string yang dipergunakan untuk menganalisis dapat lebih bervariasi. Perlu dilakukan perbaikan dalam proses penentuan kemiripan string yang digunakan, agar hasil filter menjadi lebih akurat.

  •    Running time untuk proses pada 2000 data DPT adalah 33.08 detik.

  •    Running time yang diperlukan untuk menyaring DPT akan menjadi sangat lama jika jumlah data yang yang digunakan semakin besar, sehingga diperlukan penelitian lanjutan untuk menanggulangi permasalah tersebut. Metode yang disarankan untuk mempercepat running time adalah dengan menggunakan distributed programming, yang mana metode tersebut dapat memanfaatkan kemampuan prosesor multi core yang ada pada saat ini.

Ucapan Terima Kasih

Penulis mengucapkan terima kasih kepada Fakultas MIPA, Universitas Udayana yang telah membiayai penelitian ini dengan skema DIPA BLU Universitas Udayana Tahun Anggaran 2019 sesuai dengan Surat Perjanjian Penugasan Pelaksanaan Penelitian Unggulan Program Studi Nomor: 2024/UN14.2.8.II/LT/2019, tanggal 10 April 2019

Daftar Pustaka

  • [1]    Bagio, T.H., 2007. Algoritma dan Pemrograman. Surabaya: Universitas Narotama Press.

  • [2]    Connolly, T. M., Begg C.E., 2015. Data base Systems: A Practical Approach to Design, Implementation, and Management Global Edition, Sixth Edition, Pearson Education, England.

  • [3]    Cormen, T.H., Lieserson, C.E., Rivest, R.L. & Stein, C., 2001. Introduction to Algorithms Second Edition. Massachusetts: The MIT Press.

  • [4]    Jensen, Clause, 2012. Improving the Efficiency of Priority-Queue Structures. Ph. D. Thesis. University of Copenhagen.

  • [5]    KPU RI, 2019. Buku Kerja PPK 2019.

  • [6]    Saputra, Kadek Arya., Wijayakusuma, I Gusti Ngurah Lanang, 2016. Analisis Average Case Running Time Quicksort. Jurnal Nasional Saintech, halaman 37-34.

  • [7]    Wahid, F., 2004. Dasar–dasar Algoritma Dan Pemrograman. Yogyakarta: Andi.

  • [8]    Website KPUD Bali, https://bali.kpu.go.id/baca-berita/886/3.030.657-Pemilih-Ditetapkan

110