Professional Documents
Culture Documents
Algoritma Closter Pair
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.
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
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.
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.
1 0 0 0 Warna Hitam
2 14 92 23 Warna Hijau
3 2 13 45 Warna Biru
6 88 98 2 Warna Kuning
10 30 18 41 Warna Nila
12 92 33 91 Warna Ungu
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.
d 10573
d 103
Selanjutnya RGB input dibandingkan dengan Database RGB pembanding pada alamat 2.
Tabel 2. Hasil perbandingan RGB input (R=14, G=99, B=24) dengan Database RGB
1 0 0 0 103
2 14 92 23 7
3 2 13 45 89
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
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
1 0 0 0 47
2 14 92 23 82
3 2 13 45 1
4 169 25 77 170
13 127 16 59 126
14 159 19 24 158
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
Warna Merah
4 Warna Hot Pink 123 26 79 23 Gagal
Muda
Warna Royal
8 Warna Royal Blue 16 51 111 1 Berhasil
Blue
Warna Hijau
11 Warna Hijau Lime 113 153 56 5 Berhasil
Lime
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.
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:
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).
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.