Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Algoritma Closter pair

Algoritma closest pair point adalah suatu algoritma yang memecahkan persoalan untuk mencari jarak
terdekat antara kumpulan titik dalam suatu bidang dua dimensi.

Permasalahan closest pair merupakan salah satu permasalahan klasik dalam dunia
matematika diskrit. Secara singkat, deskripsi permasalahan adalah sebagai berikut: diberikan N
buah titik yang terletak pada bidang planar 2 dimensi, tentukanlah dua buah titik yang memiliki
jarak paling dekat.

Ilustrasi permasalahan closest pair

Cara yang paling sederhana untuk memecahkan masalah ini adalah dengan membandingkan
semua kemungkinan titik-titiknya untuk dicari jaraknya. Untuk menentukan jarak antar titik digunakan
persamaan 1.

d x1  x2 2   y1  y2 2

Dimana x dan y adalah koordinat masing-masing titik yang diperbandingkan. Algoritma akan
mencoba semua kemungkinan titik hingga didapatkan nilai d yang paling kecil.

Persamaan 1 digunakan untuk menghitung closest pair point pada suatu bidang dua dimensi,
terdiri dari komponen x dan y, dimana x dan y merupakan koordinat dari titik yang akan dibandingkan.
Sedangkan pada permasalahan perbandingan nilai RGB hasil pembacaan sensor TCS3200 memiliki 3
komponen, yaitu : Red, Green, dan Blue (RGB). Untuk itu diperlukan pengembangan dari persamaan
closest pair point pada persamaan 1.
Mulai

Baca Alamat
Akhir (n)

Baca Data
Warna Input
(Ri,Gi,Bi)

Alamat (A)=1
Hasil_d=1000

Baca Data RGB


Pada Alamat=A
(Rd,Gd,Bd)

Cari Nilai d
d Rd  Ri 2  Gd  Gi 2  Bd  Bi 2

Hasil_d = Nilai d
Hasil_d > Nilai d ?
Simpan Nilai A

A=A+1

Alamat (A) =
Alamat Akhir (n)?

Tampilkan Nilai A
Tampilkan Ri,Gi,Bi

selesai

Diagram Alir Proses perbandingan data warna RGB yang dibaca dengan database warna RGB

Program membaca data warna RGB benda input (Ri, Gi, Bi). Program membandingkan warna
RGB benda input dengan database warna RGB (Rd, Gd,Bd) dengan menggunakan algoritma closest
pair point. Program akan menyimpan alamat dari nilai closest pair point (d) terkecil. Program akan
terus menerus membandingkan warna RGB benda input dengan database warna RGB (Rd, Gd,Bd)
dengan menggunakan algoritma closest pair point sampai alamat penyimpanan data RGB terakhir.
Program akan menampilkan alamat dari nilai closest pair point (d) terkecil dan nilai warna RGB benda
input.

Hasil Dan Analisa

Dalam penelitian ini, langkah pertama yaitu dilakukan proses penyimpanan database warna
RGB (warna RGB pembanding), kemudian disimpan dalam memori (Electrically Erasable
Programmable Read-Only Memory) EEPROM pada alamat tertentu secara berurutan. Data yang
diperoleh dapat dilihat pada tabel 1.

Tabel 1. Database warna RGB pembanding

Alamat Red Green Blue Keterangan

1 0 0 0 Warna Hitam

2 14 92 23 Warna Hijau

3 2 13 45 Warna Biru

4 169 25 77 Warna Hot Pink

5 246 105 5 Warna Merah Orange

6 88 98 2 Warna Kuning

7 31 8 7 Warna Saddle Brown

8 16 52 110 Warna Royal Blue

9 30 85 36 Warna Forest Green

10 30 18 41 Warna Nila

11 113 151 51 Warna Hijau Lime

12 92 33 91 Warna Ungu

13 127 16 59 Warna Merah Muda

14 159 19 24 Warna Merah Tua

15 106 109 122 Warna Abu-abu

16 109 83 6 Warna Emas Rod

Proses berikutnya adalah membaca benda dengan warna RGB tertentu (RGB input), kemudian
membandingkan warna RGB yang dibaca (RGB input) dengan database warna RGB pembanding
menggunakan algoritma closest pair point.
Pengujian : Benda input berwarna hijau dengan RGB adalah R=14, G=99, dan B=24. Database warna
RGB pembanding dapat dilihat pada tabel 1.

Dengan menggunakan persamaan 3 akan dicari nilai closest pair point.

d Rd  Ri 2  Gd  Gi2  Bd  Bi 2


RGB input dibandingkan dengan Database RGB pembanding pada alamat 1.

d 0 142  0  992  0  242


d  196  9801  576

d  10573

d  103
Selanjutnya RGB input dibandingkan dengan Database RGB pembanding pada alamat 2.

d 14  142  92  992  23  242


d 7
Hasil perbandingan RGB input dengan Database RGB pembanding ditunjukkan pada tabel 2.

Tabel 2. Hasil perbandingan RGB input (R=14, G=99, B=24) dengan Database RGB

Database RGB Pembanding RGB Nilai


Alamat Keterangan
Red Green Blue input (d)

1 0 0 0 103

2 14 92 23 7

3 2 13 45 89

4 169 25 77 180 Dikenali


sebagai
5 246 105 5 233 Warna
6 88 98 2 77 No. 2
R=14
7 31 8 7 G=99 94 (Warna
B=24 Hijau)
8 16 52 110 98

9 30 85 36 24
Berhasil
10 30 18 41 84 dikenali
11 113 151 51 115

12 92 33 91 122

13 127 16 59 145
14 159 19 24 166

15 106 109 122 135

16 109 83 6 98

Pada tabel 2 dapat dilihat bahwa nilai d terkecil (closest pair point) adalah 7, yang merupakan
hasil dari perbandingan RGB input dengan RGB pada alamat 2. Dengan demikian RGB input dikenali
sebagai warna no. 2 yaitu warna hijau. Warna ini sesuai dengan warna benda yang menjadi input,
dengan kata lain, algoritma closest pair point dapat mengenali input dengan baik (sukses mengenali
input).

Tabel 3. Hasil perbandingan RGB input (R=2, G=14, B=45) dengan Database RGB

Database RGB Pembanding RGB Nilai


Alamat Keterangan
Red Green Blue input (d)

1 0 0 0 47

2 14 92 23 82

3 2 13 45 1

4 169 25 77 170

5 246 105 5 263


Dikenali
6 88 98 2 128 sebagai
Warna
7 31 8 7 48
No. 3
8 16 52 110 R=2 77
G=14 (Warna
9 30 85 36 B=45 77 Biru)
10 30 18 41 29

11 113 151 51 176 Berhasil


dikenali
12 92 33 91 103

13 127 16 59 126

14 159 19 24 158

15 106 109 122 161

16 109 83 6 133

Pada tabel 3 dapat dilihat bahwa nilai d terkecil (closest pair point) adalah 1, yang merupakan
hasil dari perbandingan RGB input dengan RGB pada alamat 3. Dengan demikian RGB input dikenali
sebagai warna no. 3 yaitu warna biru. Warna ini sesuai dengan warna benda yang menjadi input.
Pengujian dilanjutkan dengan memasukkan benda input yang berbeda – beda sebanyak 16
warna, dan dilihat tingkat keberhasilan algoritma closest pair point dalam mengenalinya. Hasil
pengenalan algoritma closest pair point terhadap ke-16 benda input yang berbeda – beda ditunjukkan
pada tabel 4.

Tabel 4. Hasil pengenalan algoritma closest pair point terhadap ke-16 benda input

RGB Benda Input Dikenali


Warna Benda Nilai d Ketera
No. Sebagai
Input Terkecil ngan
Red Green Blue Warna

1 Warna Hitam 0 0 1 1 Warna Hitam Berhasil

2 Warna Hijau 14 99 24 7 Warna Hijau Berhasil

3 Warna Biru 2 14 45 1 Warna Biru Berhasil

Warna Merah
4 Warna Hot Pink 123 26 79 23 Gagal
Muda

Warna Merah Warna Merah


5 245 106 3 2 Berhasil
Orange Orange

6 Warna Kuning 89 99 2 1 Warna Kuning Berhasil

Warna Saddle Warna Saddle


7 30 8 6 1 Berhasil
Brown Brown

Warna Royal
8 Warna Royal Blue 16 51 111 1 Berhasil
Blue

Warna Forest Warna Forest


9 25 80 35 7 Berhasil
Green Green

10 Warna Nila 29 16 39 3 Warna Nila Berhasil

Warna Hijau
11 Warna Hijau Lime 113 153 56 5 Berhasil
Lime

12 Warna Ungu 90 30 87 5 Warna Ungu Berhasil

Warna Merah Warna Merah


13 125 16 58 2 Berhasil
Muda Muda

Warna Merah
14 Warna Merah Tua 157 19 21 4 Berhasil
Tua

Warna Abu-
15 Warna Abu-abu 106 108 121 1 Berhasil
abu

Warna Emas
16 Warna Emas Rod 109 83 6 0 Berhasil
Rod
Pada tabel 4 dapat dilihat bahwa dari ke-16 benda berwarna RGB yang menjadi input, hanya
ada 1 benda yang gagal dikenali, yaitu warna hot pink dikenali sebagai warna merah muda. Hal ini
menunjukkan bahwa tingkat keberhasilan algoritma closest pair point dalam mengenali warna dari
sensor TCS3200 sangat baik mencapai 15/16 x 100 % = 93,75 %. Sedangkan tingkat kesalahannya
hanya 1/16 x 100 % = 6,25 %.

Kesimpulan

Berdasarkan percobaan yang dilakukan dan hasil yang didapat, maka dapat diperoleh
kesimpulan sebagai berikut :

1. Algoritma closest pair point dapat dikembangkan untuk membandingkan data hasil pembacaan
sensor warna TCS3200.
2. Tingkat keberhasilan algoritma closest pair point dalam mengenali warna dari sensor TCS3200
sangat baik mencapai 93,75 %.
3. Tingkat kesalahan algoritma closest pair point dalam mengenali warna dari sensor TCS3200 hanya
6,25 %.
GEOMETRY PROBLEM
Algoritma geometrik berurusan dengan benda-benda geometris seperti titik, garis,
dan poligon. Orang Yunani kuno yang sangat tertarik untuk mengembangkan prosedur
(Mereka tidak menyebutnya algoritma, tentu saja) untuk memecahkan berbagai geometris
masalah, termasuk masalah membangun bentuk geometris sederhana segitiga, lingkaran, dan
sebagainya dengan ditandai penggaris dan kompas. Kemudian, sekitar 2000 tahun, minat
yang kuat dalam algoritma geometrik menghilang, dan akan dibangkitkan di usia computer.
Tidak ada lagi penggaris dan kompas, hanya bit, byte, dan baik kecerdikan manusia. Tentu
saja, saat ini orang yang tertarik dalam algoritma geometric dengan aplikasi sangat berbeda
dalam pikiran, seperti komputer grafis, robotika, dan tomografi.

Closest-Pair Problems

1. Pendahuluan

Permasalahan closest pair merupakan salah satu permasalahan klasik dalam dunia
matematika diskrit.
Secara singkat, deskripsi permasalahan adalah sebagai berikut: diberikan N buah titik yang
terletak pada bidang
planar 2-dimensi, tentukanlah dua buah titik yang memiliki jarak paling dekat.

Secara umum, permasalahan ini sering dikaitkan dengan permasalahan pada dunia
sehari – hari. Contoh
permasalahannya seperti proses pengambilan dua bahan baku oleh lengan robot pada pabrik
mikroprosesor agar
pergerakan lengan robot seminimal mungkin. Secara naif, permasalahan ini dapat
diselesaikan
dengan algoritma brute force yang membutuhkan kompleksitas waktu O (N2). Untuk N yang
besar (N >
100000), komputasi dengan algoritma brute force akan memakan waktu yang lama, bahkan
dengan komputer
paling cepat saat ini.

2 Penyelesaian dengan Brute Force

Solusi brute force untuk masalah ini cukup straightforward: tinjau seluruh kemungkinan
pasangan titik – titik kemudian hitung jaraknya dan cari nilai maksimum. Pseudocode untuk
solusi ini adalah sebagai berikut:

function findClosestPair : real


min = ~
for each i in pointList
for each j in pointList
if (i <> j AND distance(i , j) < max)
min = distance(i , j)
return min

Jadi, untuk setiap instance permasalahan, akan terjadi N pass untuk setiap titik dan
masing – masing pass akan melakukan peninjauan kembali untuk N titik. Sehingga,
kompleksitas waktu untuk algoritma ini adalah O(N2).

3 Penyelesaian dengan Divide and Conqueror

Strategi penyelesaian dengan algoritma divide and conquer tidak sesederhana


algoritma brute force.
Penyelesaian dengan divide and conquer membutuhkan pencapaian sebuah lemma
yang bergantung pada strategi penyelesaian itu sendiri. Lemma inilah yang menjadi kunci
optimasi. Pada konsepnya, penyelesaian menggunakan algoritma divide and conquer dapat
diabstraksikan melalui pseudocode berikut:

function findClosestPair(left , right) : real


if (right = left)
return 0
else
l = findClosestPair(left , (left + right) /2)
r = findClosestPair((left + right) / 2 + 1 , right)
mid = conquer(left , right)
return min(l,r,mid)

Fungsi di atas memiliki prekondisi yang harus dipenuhi, yaitu titik – titik sudah terurut
berdasarkan nilai absis. Pengurutan sangat disarankan dilakukan dengan algoritma
pengurutan dengan kompleksitas O (n log n) agar tidak memperburuk keseluruhan
kompleksitas program.

Setelah diurutkan, titik – titik tersebut akan ditinjau untuk menghitung jarak pasangan
titik terpendek. Peninjauan ini akan dilakukan satu per satu dengan membagi titik – titik
menjadi dua segmen. Pembagian didasarkan pada sebuah garis vertikal yang dapat membagi
titik – titik menjadi dua segmen sama besar. Segmen kiri adalah kumpulan titik – titik yang
memiliki nilai absis lebih kecil atau sama dengan dari absis garis pembagi, sementara segmen
kanan adalah kumpulan titik – titik yang memiliki nilai absis lebih besar atau sama dengan
nilai absis garis pembagi. Untuk berikutnya, titik – titik pada segmen kiri dilambangkan
sebagai himpunan L dan titik – titik pada segmen kanan dilambangkan sebagai himpunan R.

Setelah dibagi menjadi dua segmen sama besar, himpunan L akan ditinjau lagi dengan
fungsi yang samasecara rekursif, demikian halnya dengan himpunan R juga akan diproses
dengan cara yang sama.
Setelah hasil dari kedua pemanggilan rekursif didapatkan, fungsi akan mencari nilai
terkecil dari kedua pemanggilan tersebut. Kedua pemanggilan fungsi tersebut diharapkan
dapat memberikan jarak pasangan titik terpendek di kedua segmen dan secara logis dapat
disimpulkan bahwa jarak terpendek untuk keseluruhan kasus adalah nilai minimal dari kedua
harga tersebut.

Meskipun demikian, masih terdapat satu kemungkinan yang dapat menghasilkan jarak
pasangan yang lebih pendek. Kemungkinan tersebut dapat terjadi pada pasangan dua titik
yang terletak di dua segmen berbeda, atau dengan kata lain pemasangan antara titik yang
berada di posisi paling kanan dari segmen kiri dengan titik yang berada di posisi paling kari
dari segmen kanan. Dengan kasus seperti ini, fungsi juga harus meninjau kembali
kemungkinan pasangan – pasangan yang terbentuk dari kedua segmen.

You might also like