You are on page 1of 7

OPTIMASI ALGORITMA KRUSKAL DENGAN MENGGUNAKAN BUCKET SORT UNTUK PENGHITUNGAN BIAYA PEMASANGAN KABEL TELEVISI BERLANGGANAN

1,2,3,4

Resto Ajie Suyanto 1, Iwang Aryadinata2, Priyanka Gemet A. 3, Eva Yuliani 4 Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS), Jln. Raya ITS, Surabaya 60111 Email : ajie09@mhs.if.its.ac.id 1, arismoyo09@mhs.if.its.ac.id, iwang09@mhs.if.its.ac.id, eva09@mhs.if.its.ac.id

ABSTRAKS Mendengar televisi berlangganan pastilah sudah sangat familiar di telinga kita. Tapi terkadang menjadi permasalahan bagi pengusaha di bidang ini untuk menekan biaya pemasangan kabel-kabel ke setiap rumah. Karena itulah, perlu ada suatu metode yang dapat digunakan pengusaha untuk bisa menekan biaya pengeluaran untuk pemasangan kabel. Dalam kasus ini, digunakan algoritma kruskal, dengan asumsi tiap rumah adalah vertex dan kabel adalah edge. Kemudian, agar penggunaan algoritma kruskal ini menjadi lebih optimal, digunakan bucket sorting sehingga penghubungan antar vertex bisa lebih cepat daripada menggunakan algoritma kruskal biasa. Dengan menggunakan metode-metode yang telah disebutkan, pengusaha televisi berlangganan dapat lebih mengoptimalkan biaya pemasangan kabel dengan waktu yang lebih cepat dari sebelumnya. Kata Kunci : Biaya minimal, Algoritma Kruskal, Bucket Sort PENDAHULUAN Dalam kehidupan sehari-hari sudah tidak asing di telinga kita bila mendengar tentang televisi berlangganan, baik yang mnggunakan satelit maupun dengan kabel. Dalam kenyataannya, televisi berlangganan menggunakan kabel lebih banyak diminati karena harga berlangganannya yang terbilang murah juga dapat memilih chanel apa saja yang ingin dilihat. Televisi kabel atau disebut cable television sendiri memiliki pengertian sebuah sistem penyiaran acara televisi melalui sinyal frekuensi radio yang kemudian ditransmisikan melalui kabel serat optik yang tetap atau kabel coaxial. Jadi tidak melalui udara dan harus ditangkap frekuensinya dengan menggunakan antena seperti televisi pada umumnya Namun dalam keseharian ditemukanlah sebuah permasalahan yang cukup berarti bagi para pengusaha televisi kabel, yaitu biaya yang harus dikeluarkan untuk setiap pemasangan kabel ke setiap rumah. Pemasangan kabel televisi berlangganan ke setiap rumah terkadang tidak efisien dan dapat menghabiskan dana yang besar, padahal ada beberapa cara yang bisa dilakukan untuk meminimalisir biaya untuk pemasangan kabel televisi berlangganan. Masalah ini memunculkan minat untuk menemukan sebuah metode penghitungan yang dapat menghasilkan sebuah hasil penghitungan biaya seminimal mungkin untuk pemasangan kabel televisi berlangganan yang kedepannya dapat diharapkan membantu para pengusaha televisi berlangganan yang menggunakan kabel dalam menekan biaya pemasangan kabel televisi berlangganan ke setiap konsumen. Dalam paper ini kana membahas mengenai optimalisasi penghitungan biaya pemasangan kabel televisi 1. berlangganan dengan menggunakan algoritma kruskal sebagai metode dasar penghitungan, kita dapat mengasumsikan setiap rumah sebagai tree, setiap kabel yang akan dipasang sebagai edge, dan value setiap edge sebagai biaya pemasangan, sehingga kita dapat menentukan jalur dengan biaya pemasangan terendah, selain itu ditambah dengan metode bucket sort, kita dapat lebih cepat melakukan perhitungan sehingga waktu dan biaya dapat menjadi lebih efisien.. 2. ALGORITMA KRUSKAL Algoritma Kruskal merupakan salah satu algoritma dalam teori graph yang mencari minimum spanning tree untuk menghubungkan setiap tree dalam forest. Kita dapat mengasumsikan E sebagai jumlah edges dalam graph dan V adalah jumlah vertices-nya. Algoritma Kruskal dapat dilihat saat dijalankan pada rentang waktu E log E atau E log V, dengan penggunaaan prinsip data struktur data yang sederhana. Hal ini terjadi karena : E merupakan V2 dan log V2=2 log V adalah O (log V) Bila kita mengabaikan vertices yang terisolasi, dimana masing-masing memiliki komponen sendiri-sendiri dalam minimum spanning forest, V E+1, sehingga log V adalah O (log E)

Kita dapat mencapai tahap ini dengan cara : pertama, urutkan semua edge berdasarkan weightnya dengan menggunakan perbandingan dalam rentang waktu O(E log E), setelah itu barulah kita bisa masuk ke tahap menghilangkan edge dengan weight terkecil dari forest untuk menjalankan proses dengan waktu konstan. Kemudian

menggunakan st uktur data disj int untuk mencari vertices dengan komponennya masing-masing. Lalu perlu dilakukan operasi O(E) untuk menemukan operasi yang memiliki kemungkinan memiliki keterikatan dengan sisi-sisi yang lain. Meskipun struktur data disjoint seperti disjoint-set f t dengan union berdasarkan ranking dapat menunjukkan operasi O(E) dalam rentang waktu O(E log V), total waktunya adalah O(E log E)=O(E log V) Pseudocode Algoritma Kruskal yaitu : function Kruskal(G = <N, A>: + graph; length: A R ): set of edges * Define an elementary cluster C(v) {v} * Initialize a priority queue Q to contain all edges in G, using the weights as keys. * Define a forest T //T will ultimately contain the edges of the MST * // n is total number of vertices * while T has fewer than n-1 edges do * // edge u,v is the minimum weighted route from u to v * (u,v) Q.removeMin() * // prevent cycles in T. add u,v only if T does not already contain a path between u and v. * // the vertices has been added to the tree. * Let C(v) be the cluster containing v, and let C(u) be the cluster containing u. * if C(v) C(u) then * Add edge (v,u) to T. * Merge C(v) and C(u) into one cluster, that is, union C(v) and C(u). * return tree T Gambar 1. Ori i l Graph dengan edge dan masing-masing weigth nya.

Gambar . AD dan CE merupakn edge dengan weight terkecil untuk menentukan yang mana yang akan digunakan berdasarkan kewenangan sendiri. Dalam kasus ini digunakan AD.


Gambar 3. Karena CE merupakan edge dengan weight terkecil setelah AD digunakan, maka kita gunakan CE.

Contoh Penggunaan Algoritma Kruskal :

Gambar 4. Edge DF merupakan edge dengan weight terkecil selanjutnya yang kita gunakan.

Gambar 7. EG dipilih karena merupakan edge dengan weight terkecil yang ada. Sehingga terbentuklah minimun spanning tree dari forest ini. Pembuktian untuk kebenaran algoritma kruskanl ini dapat dibagi menjadi dua, yaitu melalui spanning tree dan minimality weight. Untuk spanning tree kita lihat dari sisi tidak terbentuknya sebuah cycle dan tidak terputusnya hubungan masing-masing edge. Untuk minimality weight, dengan mangasumsikan proposisi dalam suatu forest bernilai benar, kita gunakan pinsip induksi sehingga proposisi dari sebuah forest itu benar ketika forest merupakan minimum spanning tree, dan itu hanya mungkin terjadi jika forest itu sudah berada dalam minimum spanning tree. Pada permasalahan Kruskal's Algorithm for Query Tree Optimization, penggunaan algoritma kruskal merupakan metode yang dapat digunakan untuk mengoptimasi query tree. (Kruskal's Algorithm for Query Tree Optimization. Guttoski, P.B.; Sunye, M.S.; Silva, F.; Univ. Fed. do Parana, Curitiba.2007) Contoh permasalahan untuk Query Optimatization yaitu : a) Results Postgresql unchanged (ms): (\ timing) average=> 58,6985 ms b) Results of Postgresql with the Kruskal algorithm (ms): (\ timing)

Gambar 5. Proses yang sama juga dilakukan sama memilih AB untuk digunakan selanjutnya. Kemudian edge BD kita hilangkan dari daftart penggunaan edge untuk menghindari terjadinya cycle (ABD).

Gambar 6. Proses yang dilakukan sama seperti sebelumnya. BE digunakan karena merupakan edge dengan weight terkecil dan DE, EF, dan BC dihilangkan dari daftar penggunaan edge untuk menghindari cycle.

170,690 168,214 182,832 166,172 174,466 167,143 167,287 172,891 170,452 165,665
Rata-Rata

520,590 13,533 8,410 5,162 5,543 4,999 9,871 4,984 5,010 8,883
Rata-Rata

170,5812 ms

58,6985 ms

Pada permasalahan diatas, dapat dilihat bahwa waktu yang dibutuhkan oleh Algoritma Kruskal pada query pertama lebih lama dibandingkan dengan perhitungan biasa. Namun pada query selanjutnya waktu yang dibutuhkan dengan penggunaan algoritma Kruskal lebih sedikit daripada perhitungan biasa. Sehingga rata-rata waktu yang dibutuhkan oleh algoritma Kruskal lebih sedikit. (Kruskal s Algorithm for Query TreeOptimi ation.Guttoski,P.B.; Sunye,S.; Silva , F.; Univ.Fed.doParana, Curitiba.2007)
 

Gambar 9. Array yang sudah diurutkan didalam bucket dikembalikan ke array awal. (wikipedia.org) 4. OPTIMASI KRUSKAL DENGAN BUCKET SORT. Pada algoritma kruskal, penentuan edge yang akan digunakan untuk pencarian minimum spanning tree merupakan edge dengan weight terkecil dari keseluruhan weight dari masingmasing edge dalam forest. Untuk mempercepat pencarian edge dengan weight terkecil dibutuhkan sebuah algoritma pengurutan. Jika menggunakan algoritma pengurutan biasa atau bubble sort, waktu yang digunakan untuk pencarian edge dengan weight terkecil dirasa masih belum efisien. Dengan menggunakan algoritma bucket sort sebagai metode pencarian edge dengan weight terkecil, dapat meminimalisir waktu pencarian sehingga lebih cepat dan efisien. Untuk penerapannya dalam penghitungan biaya pemasangan kabel televisi berlangganan, kita terapkan hal yang sama seperti pada kasus setiap tree yang ada didalam forest. Kita umpamakan rumah-rumah yang akan di hubungkan sebagai tree. Kemudian kabel yang menghubungkan satu rumah ke rumah yang lain sebagai edge dengan biaya pemasangan kabel sebagai weight dari edge tersebut.

Efisiensi waktu antara perhitungan biasa dengan menggunakan algoritma Kruskal yaitu : 58,6985 ms / 170,5812 ms * 100% = 34.41% (Kruskal s Algorithm for Query Tree Optimi ation.Guttoski,P.B.; Sunye, .S.; Silva, F.; Univ. Fed. do Parana, Curitiba.2007)
 

BUCKET SORT Bucket sort, atau bisa disebut bin sort, merupakan sebuah algoritma pengurutan yang berkerja dengan membagi setiap array ke dalam beberapa bucket (keranjang). Setiap bucket mengurutkan sendiri-sendiri array yang ada di dalamnya dengan algoritma sorting yang lain atau secara rekursif menggunakan algoritma bucket sort. Cara kerja algoritma bucket sort dapat dijelaskan sebagai berikut : - Tentukan array yang ingin diurutkan. - Tentukan jumlah bucket dan rentang masingmasing bucket. - Masukkan array-array tersebut ke dalam bucket yang telah ditentukan. - Di dalam masing-masing bucket, array tersebut di urutkan. - Setelah itu keluarkan hasil urutan dari dalam bucket dan kembalikan ke array awal. 3.

Gambar 10. Ilustrasi pemasangan kabel televisi berlangganan ke rumah-rumah. Pembahasannya adalah :

Gambar 8. Array yang ditentukan disebar ke masing-masing bucket.

Pada pembahasan ini kita akan membagi rumahrumah menjadi edge, kabel sebagai vertex dan masing-masing edge memiliki weight yang merupakan panjang kabel.

Gambar 15. Edge CG dihapus dari daftar penggunaan edge untuk menghindari cyclic. Hasil Akhir dari penggunaan Graph Kruskal untuk proses minimalisi kabel televisi yaitu : Gambar 11. Original Graph dengan edge dan masing-masing weigth nya.

Gambar 1 . AB dan AC merupakan edge dengan weight terkecil, Dalam kasus ini kita menggunakan keduanya dan menghapus AD karena merupakan edge dengan weight terbesar.


Sehingga panjang kabel yang digunakan setelah diminimalisasi menggunakan Algoritma Kruskal yaitu : 10 + 10 + 35 + 15 + 25 + 35 + 30 = 110. Sehingga persentase keuntungan yang kita dapatkan dengan meminimalisasi panjang kabel televisi dengan sebelum diminimalisir yaitu perbandingan dari panjang minimum spanning tree dengan total panjang kabel yang dibutuhkan : 160/420 * 100% = 38.095 % Sehingga kita dapat meminimalisir biaya sebesar 38.095% dari biaya awal. Besar kecilnya persentase keuntungan tergantung dari setiap permasalahan edge.


5. Gambar 13. Kita menggunakan AB dan AC yang akan digunakan untuk proses selanjutnya. Kemudian edge BC kita hilangkan dari daftar penggunaan edge untuk menghindari cyclic(ABC)

UJI COB DAN PE BAHASAN i. Contoh Inputan ata Pada kasus ini, yang menjadi inputan adalah jumlah rumah yang akan dipasangi kabel dan jumlah kabel yang akan dipasangkan ke rumahrumah. Kemudian untuk biaya pemasangan masing-masing kabel juga akan menjadi inputan. . Contoh Inputan: Jumlah Rumah : 12 Jumlah Kabel : 20 Biaya per kabel :


. Gambar 14. Kita harus memilih mana weight terkecil antara BE dan CF. Dalam kasus ini kita menggunakan BE karena merupakan weigt terkecil dan menghapus CF dari daftar penggunaan edge.

Edge AJ AB CL BL IL EI EH BF DF F GK CJ


Biaya 25 14 6 5 5 21 32 8 12 9 16 3

AL CH HI E EG AD DK BD


10 27 6 8 17 7 7 9

ii. Tampilan Awal Untuk tampilan awal pada program, jumlah rumah yang telah diinputkan digambarkan dengan node-node berwarna merah dan jumlah kabel yang akan dipasang di rumah-rumah akan digambarkan dengan garis berwarna hitam dengan angka yang menunjukkan biaya pemasangan masing-masing kabel, seperti gambar dibawah ini :

Gambar 17. Ilustrasi tampilan akhir program yang menunjukkan jarak terdekat dan biaya terendah untuk pemasangan kabel. iv. Hasil Running dari Program Hasil dari program ini adalah untuk membandingkan antara penggunaan algoritma kruskal biasa dengan algoritma kruskal yang di perkuat dengan menggunakan algoritma bucket sort. Berikut skenario dari proses running program : Algoritma Kruskal

Gambar 16. Ilustrasi tampilan awal dari program untuk mencari minimum spanning tree. iii. Tampilan Hasil Dari data yang telah diiputkan sebelumnya, data-data tersebut akan diurutkan secara ascending dengan menggunakan algoritma bucket sort. Kemudian setelah didapatkan hasil dari algoritma bucket sort, digunakan algoritma kruskal untuk melakukan pencarian minimum spanning tree untuk mengetahui biaya terendah pemasangan kabel. Dari gambar berikut dijelaskan bahwa garis biru menandakan jalur yang dilewati, sedangkan garis merah menandakan jalur yang tidak dilewati.

Gambar 18. Tampilan algoritma kruskal.

awal

hasil

running

Gambar 19. Tampilan akhir dari hasil running program algoritma kruskal. Algoritma Kruskal dengan modifikasi bucket sort.

Gambar 20. Tampilan awal hasil running program algoritma kruskal dengan modifikasi bucket sort.

KESIMPULAN DAN SARAN i. Kesimpulan Hasil dari program ini dapat membantu para pengusaha televisi berlangganan untuk bisa mengefisienkan biaya unutk pemasangan kabel televisi. Menggunakan algoritma kruskal yang diperkuat dengan algoritma bucket sort, pengusaha televisi berlangganan tidak perlu waktu lama untuk mencari dan mengimplementasikan hasil dari program ini. ii. Saran Program ini masih memiliki beberapa ketidak sempurnaan, yakni dalam bidang antarmuka yang dirasa pengembang masih belum memanjakan para penggunanya. Di waktu yanga akan datang, pengembang akan merevisi dan memperbaiki apaapa saja yang kurang dari program ini. 6.

Gambar 21. Tampilan akhir hasil running program algoritma kruskal dengan modifikasi bucket sort. v. Hasil Akurasi dari Program Dengan test case 5 kali percobaan dengan jumlah vertex 100 masing-masil kruskal biasa dan kruskal dengan bucket sort (kruskal bucket sort menggunakan 4 bucket) maka didapatkan hasil running time sebagai berikut : No 1 2 3 4 5 Ratarata Kruskal Biasa Kruskal Modifikasi

0,196S 0,191s 0,18s 0,173s 0,174s


0,3356 s

0,054s 0,049s 0,052s 0,039s 0,044s


0,0476 s

Wikipedia(2011). Kruskal Algorithm. From : http://en.wikipedia.org/wiki/Kruskal%27s _algorithm, 8 Juny 2011 Wikipedia(2011). Kruskal. From : http://en.wikipedia.org/wiki/Kruskal, 8 Juny 2011. Wikipedia(2011). Bucket Sort. From : http://en.wikipedia.org/wiki/Bucket_sort, 9 Juny 2011. Wikipedia(2011). Televisi Kabel. From :http://id.wikipedia.org/wiki/Televisi_kabe l, 5 Juny 2011. Telkom Indonesia. From : http://www.telkom.co.id/indonusa/produklayanan/tv-kabel/, 5 Juny 2011. G. Paul (2010). An efcient implementation of the robust tabu search heuristic for sparse quadratic assignment problem. Guttoski, P.B.; Sunye, M.S.; Silva, F.; Univ. Fed. do Parana, Curitiba(2007).Kruskal s Algorithm for Query Tree Optimi ation.
!

Dari hasil rata-rata yang didapatkan, maka dapat disimpulkan : - Efisiensi running time dari kruskal dengan menggunakan bucket sort dan kruskal biasa : 0,0476 / 0,3356 * 100% = 14,18 %

7. -

DA TAR PUSTAKA

You might also like