• Tidak ada hasil yang ditemukan

PENDAHULUAN Algoritma pembangkit permutasi banyak dipakai dalam analisa graf seperti model optimasi berbasis graf, computer vision, berbagai masalah j

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENDAHULUAN Algoritma pembangkit permutasi banyak dipakai dalam analisa graf seperti model optimasi berbasis graf, computer vision, berbagai masalah j"

Copied!
9
0
0

Teks penuh

(1)

PERBANDINGAN ENUMERASI PERMUTASI N DENGAN 2 SIKLUS

BERDASARKAN RUMUSAN BILANGAN STIRLING DENGAN

RUMUSAN SULISTYO

Meta Meysawati

e-mail : yagami_26mey@hotmail.com Jurusan Teknik Informatika Universitas Gunadarma Jl Margonda 100 

ABSTRAK

Enumerasi adalah menghitung banyak objek pada suatu objek kombinatorik. Kombinatorik merupakan ilmu yang mempelajari sifat-sifat matematika dari struktur diskrit. Algoritma pembangkit permutasi banyak dipakai dalam analisa graf. Komputer graf biasa diawali dengan proses penginputan edge-edge yang menentukan proses dalam komputasi graf, terutama dari sisi running time program komputer yang terkait. Banyak masalah graf yang akan lebih efisien jika graf dinyatakan sebagai permutasi siklus.

Secara umum, banyaknya n permutasi dengan m siklus dapat dihitung berdasarkan metode berdasarkan rumus bilangan Striling tanpa tanda jenis pertama (Unsignless Stirling

Number of The First Kind). Selain itu, menghitung enumerasi permutasi n dengan m siklus

juga ditawarkan oleh Sulistyo. Dalam penelitian ini, mengenumerasikan permutasi n dengan 2 siklus dilakukan dengan cara membandingkan kedua rumusan tersebut ke dalam bentuk bahasa pemograman, yaitu Java dan melakukan uji coba dengan membandingkan dalam hal

running time.

(2)

PENDAHULUAN

Algoritma pembangkit permutasi banyak dipakai dalam analisa graf seperti model optimasi berbasis graf, computer

vision, berbagai masalah jaringan termasuk

komputer dan bahkan jaringan sosial (social

networks). Komputasi graf biasanya diawali

dengan proses penginputan edge-edge ini sangat menentukan proses komputasi graf, terutama dari sisi running time program komputasi terkait. Dengan demikian menyatakan graf sebagai permutasi dan mengembangkan algoritma yang baik untuk membangkitkan permutasi tersebut adalah sebuah topik penelitian penting (lihat misalnya [6] dan [7]). Banyak masalah graf yang akan lebih efisien jika graf dinyatakan sebagai permutasi siklus; salah satu masalah yang dimaksud adalah masalah jaringan. Selain jaringan, masalah lain yang menggunakan pernyataan permutasi siklus adalah enumerasi graf untuk menghasilkan jumlah isomer senyawa kimia [2].

Secara umum, untuk n tertentu dan bilangan

m yang menyatakan banyaknya siklus,

cacahan permutasi [n] tertentu dengan m siklus, sering dinotasikan sebagai Cn,m, dan dinyatakan dengan formula rekursif berikut: Cn,m = Cn-1,m-1 + (n-1) Cn-1,m, yang menurunkan bilangan Stirling tanpa tanda jenis pertama (unsignless Stirling number of

the first kind) [3]. Rumus Sulistyo

merupakan enumerasi permutasi n dengan m siklus yang menawarkan metode baru yang

dinyatakan dengan formula iteratif [5]. Hal tersebut melatarbelakangi penulis untuk melakukan perbandingan dalam mengenumerasikan permutasi n dengan 2 siklus.

Penelitian ini membandingkan rumus bilangan Stiling tanpa tanda jenis pertama dan rumus Sulistyo dalam hal

running time. Kedua rumusan akan

diimplementasikan kedalam bentuk bahasa pemograman, yaitu Java.

LANDASAN TEORI

ISTILAH KOMBINATORIK

Kombinatorik adalah ilmu yang mempelajari sifat-sifat matematika dari struktur diskrit dimana dalam kombinatorik struktur diskrit disebut objek kombinatorial atau objek saja. Sedangkan untuk himpunan objek kombinatorial disebut kelas

kombinatorial atau kelas saja.

Kombinatorik mempunyai 4 cabang utama ilmu yaitu, pencacahan (counting) atau enumerasi, pembangkitan atau generasi (generation), pendaftaran atau listing dan optimasi. Pada enumerasi melakukan analisa matematika untuk mendapatkan rumus cacahan struktur yang mungkin sebagai fungsi dari n atau banyaknya objek kombinatorial dalam S sedangkan pembangkitan membangun algoritma untuk membangkitkan semua struktur yang mungkin.

(3)

DEFINISI PERMUTASI Permutasi adalah pemetaan dari suatu himpunan ke dirinya sendiri. Atau secara formal:

Definisi 1: Permutasi dari himpunan S = [n]

= {1,2,...,n} adalah bijeksi π: S Æ S. Permutasi dengan π(i) = i disebut permutasi identitas.

Salah representasi dari permutasi adalah dengan perkalian siklusnya. Siklus dari permutasi adalah himpunan bagian dari suatu himpunan yang elemen-elemennya masuk dalam satu orbit atau siklus dengan panjang k dari suatu permutasi adalah urutan

a1, a2,...al sedemikian sehingga ai = π(ai-l) untuk i = 2,3, ... , l dan al = π(ak) atau

πk(ai)= ai ([3] dan [2]). Contoh, permutasi π:

   

Dapat diwakili oleh diagram berikut:

1 2 3 4 5 6 7

Permutasi tersebut mempunyai 4 siklus (1), (2 4 8 3), (5) dan (6 7). (2 4 8 3) adalah silkus dengan panjang l = 4, karena

π4(2) = 2. Dengan perkalian siklus, π dapat

dinyatakan sebagai π = (1) (2483) (4) (67). Karena siklus (8324) menyatakan dengan siklus yang sama dengan (2483), maka sering digunakan cara yang unik untuk menyatakan permutasi menggunakan notasi siklus, yang disebut sebagai Notasi Siklus Kanonikal. Cara ini adalah menulis elemen terbesar pada setiap siklus terlebih dahulu, kemudian mengurutkan setiap siklus dari kecil ke besar berdasarkan elemen-elemen petama pada siklus. Dengan demikian π = (1) (2483) (5) (67) dalam notasi siklus kanonikal π = (1) (5) (7 6) (8 3 2 4).

MENGENUMERASIKAN PERMUTASI

N DENGAN M SIKLUS

Untuk mengenumerasi permutasi dengan m siklus tertentu umumnya digunakan rumus bilangan Stirling tanpa tanda jenis pertama (Unsignless Stirling

Number of The First Kind). Selanjutnya

pada penelitian ini untuk bilangan Stirling tanpa tanda jenis pertama akan disebut rumus bilangan Stirling. Enumerasi permutasi dengan siklus tertentu juga ditawarkan oleh Sulistyo [5]. Sub bab berikut akan menjelaskan mengenai kedua rumusan tersebut.

BERDASARKAN RUMUS BILANGAN STIRLING

Bilangan Stirling tanpa tanda jenis pertama, dinotasikan dengan C(n,m) adalah sssbanyaknya susunan dari n objek ke dalam 1 2 3 4 5 6 7 8

1 4 2 8 5 7 6 3

(4)

m permutasi siklus yang tidak kosong. Dimana: C(n,0) = 0, n ≥ 1 C(n,n) = 1, n ≥ 0 C(n,1) = (n-1)!, n ≥ 0 C(n,m) = (n-1). c(n-1,m)+c(n-1.m-1), 1 < m < n

Mengacu kepada teori yang ada bahwa banyaknya permutasi [n] dengan m siklus adalah bilangan Stirling tanpa tanda jenis pertama c(n,m) ([3], [2]). Rumus bilangan Stirling digunakan untuk menunjukkan kebenaran algoritma yang dibangun.

BERDASARKAN RUMUSAN OLEH SULISTYO

Rumus Sulistyo dalam [5] menghasilkan rumusan enumerasi permutasi dengan siklus tertentu Cn,m yang dinotasikan dengan fl, untuk l = n – m,

Rumus diatas merupakan turunan dari hasil pembangkit permutasi n dengan m siklus menggunakan pohon pembangkit sebagaimana pada gambar 2.1, level dari pohon tersebut dinyatakan dengan l. Banyaknya objek permutasi n = [m + l] dengan m siklus pada level l merupakan rumus iteratif yang tidak rekursif.

Banyaknya simpul untuk level l pada pohon pembangkit permutasi [n] dengan m siklus tertentu pada Gambar 1 adalah fl .

Gambar 1 Pohon pembangkit permutasi [n] dengan m siklus

Pohon pembangkit permutasi [n] dengan m siklus, yang diwakili sistem ECO (2.1) adalah pohon yang banyak simpulnya pada level l = n – m sama dengan banyaknya permutasi [n] dengan m siklus, atau sama dengan kardinalitas Sn,m [5].

Khusus untuk m = 2, penempatan n pada anggota-anggota Sn,2, ditempatkan dengan cara pengembangan Johnson-Trotter. Pembagkit permutasi dengan dua siklus Cn,2 setiap anggota Sn-1,2 akan menghasilkan n-1. Untuk semua anggota Sn-1,2 akan menghasilkan anggota Sn,2 sebanyak (n-1)|Sn-1,2|. Banyaknya level dihitung dengan menjumlahkan semua jalan dari simpul akar ke simpul di level l. Fungsi pembangkit pohon permutasi [n] dengan 2 siklus

FΩ (x) = ∑ fl x1 = ∑ (l +1)! (1 +1/2 + .. +1/

(l + 1))x1 (2.3)

(5)

Gambar 2 Pohon Pembangkit Permutasi [4] dengan 2 Siklus

Untuk menyederhanakan pohon pembangkit permutasi 4 dengan 2 siklus S4,2 (gambar 2) dalam mengenumerasikan semua simpul pada level tertentu, maka pada Sulistyo [5] objek permutasi [n] dengan 2 siklus dibagi dalam dua kelompok, yaitu kelompok dimana siklus terdiri dari n saja, yaitu: (s2) = (n), ditulis sebagai πBn , dan

kelompok yang selain itu, ditulis sebagai πTn.

Penamaan kelompok ini mengikuti penamaan east-west [8]. Pohon pembangkit permutasi dengan 2 siklus yang diringkas dengan simpul menyatakan banyaknya simpul pada tiap level dengan grup tertentu. Gambar 3 adalah contoh ringkasan pohon pembangkit permutasi 6 dengan 2 siklus. (1)

(1) (2)

(2) (3) (3) (3) (4) (4) (4) (4) (5) (5) (5)

Gambar 3 Ringkasan Pohon pembangkit permutasi [6] dengan 2 siklus

Akar pada pohon dinyatakan level 0, simpul pada level 1 pada gambar 3 tertulis (1)(2) yang menunjukan banyaknya permutasi 3 dengan 2 siklus. Selanjutnya pada level 2 banyaknya simpul yang sejenis (B) tertulis (2)(3), sedangkan simpul yang mempunyai (2) simpul yang sejenis (T) mempunyai (3) anak simpul yang menunjukan banyaknya permutasi 4 dengan 2. Simpul pada level 3 yang sejenis (B) tertulis (3)(4), sedangkan simpul yang mempunyai dua jenis label (T) mempunyai masing-masing anak sebanyak (4) yang menunjukan banyaknya permutasi 5 dengan 2 siklus. Dan pada level 4 tertulis banyaknya simpul adalah (4)(5), sedangkan simpul yang mempunyai tiga simpul sejenis mempunyai (5) anak simpul.

METODE PENELITIAN

RANCANGAN APLIKASI

Perancangan program merupakan tahap pertama dari pembangunan suatu program. Tahap ini terdiri dari perancangan berdasarkan (Unified Modelling Language) UML program dan rancangan interface. Rancangan aplikasi permutasi dimodelkan ke dalam 3 bentuk model UML, yaitu Use

Case Diagram, Class Diagram dan Activity Diagram.

(6)

Sebelum program jadi pada gambar 4 menerangkan awal proses pembuatan aplikasi.

Gambar 4 Diagram Umum Proses

Perancangan Aplikasi USE CASE DIAGRAM

Terdapat 4 case yaitu metode bilangan Stirling, rumus Sulistyo, input banyaknya permutasi n dan m siklus dan pertolongan. Actor pada aplikasi permutasi, yaitu pemakai (user) untuk use case yang digunakan adalah memilih perhitungan dan memproses perhitungan berdasarkan rumus bilangan Stirling dan rumus Sulistyo. Pada rumus bilangan Stirling masukkan banyaknya n  permutasi dan m siklus sedangkan rumus Sulistyo hanya memasukkan banyaknya permutasi n yang kemudian akan mengenumerasikan permutasi n dengan m siklus.

Gambar 5 Diagram Use Case Aplikasi Permutasi

CLASS DIAGRAM

Class terdiri dari 4, yaitu menu

utama, formStirlingNumber, formSulistyoNumber dan pertolongan. Pada

class formStirlingNumber dan formSulistyoNumber menunjukan hubungan sub class yang mewarisi bagian dari class utama.

Gambar 6 Diagram Class Aplikasi Permutasi Menu Utama -Stirling: boolean -Sulistyo: boolean -Tentang :boolean -Dispose() Pertolongan +tentang: boolean +Dispose() formStirlingNumber -permutasi : double int -siklus : double int -jumSiklus() -fak()

formSulistyoNumber -permutasi : double int -level: double int -total: int -fac: int -hitungPermutasi() -fak() UJI COBA PROGRAM JADI PENDEFINISIAN KEBUTUHAN PERANCANGAN ANTARMUKA PENGKODEA BUG

(7)

ACTIVITY DIAGRAM

Aktifitas dimulai pada state halaman menu utama, kemudian terjadi aktifitas pilih menu. Pada katifitas pilih menu terjadi percabangan aktifitas yaitu aktifitas pilih metode dan pertolongan. Aktifitas pilih metode terjadi percabangan yaitu metode bilangan Stirling dan metode oleh Sulistyo. Pada aktifitas metode bilangan Stirling akan menampilkan halaman bilangan Stirling. Sedangkan aktifitas rumus Sulistyo akan menampilkan halaman rumus Sulistyo. Hamlaman metode bilangan Stirling kemudian dilanjutkan dengan memasukkan permutasi n dan m siklus yang kemudian akan dihitung berdasarkan rumus metode bilangan Stirling tanpa tanda jenis pertama. Halaman rumus Sulistyo terjadi aktifitas memasukkan permutasi n. Sedangkan jika tidak pemakai (user) dapat kemabali ke halaman menu utama.

Pada aktifitas pertolongan akan menampilkan halaman petunjuk pengguna aplikasi dan pemakai (user) dapat kembali ke halaman menu utama. Dan aktifitas keluar akan mengarah ke final state yang merupakan akhir dari alur aktifitas pada aplikasi.

Gambar 7 Diagram Activity Aplikasi Permutasi

PSEUDOCODE

Pseudocode adalah kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah.

ALGORITMA PSEUDOCODE PADA RUMUS BILANGAN STIRLING

1. Masukkan banyaknya n permutasi dan m siklus

2. Tentukan nilai Awal (n Å m) 3. Tentukan nilai kedua (m Å 1) 4. n, m Å jumSiklus

5. Jika n = m Æ 1, menuju kelangkah 11 6. m = 1 Æ fak (n-1), menuju

kelangkah 8

7. Hasil (n-1) * jumSiklus (n-1,m) + jumSiklus(n-1, m-1)

8. Tentukan bilangan Faktorial (fak) 9. Jika nÅ1 || nÅ0 ; Cetak hasilnya 1

(8)

10. Hasil Å n*fak(n-1) 11. Selesai

ALGORITMA PSEUDOCODE BERDASARKAN RUMUS SULISTYO

1. Masukkan banyaknya n permutasi dan

m siklus

2. l Å n – m

3. Untuk batas perkalian kebawah ( n-1 ) 4. Hitung faktorial (n-1)!

5. Total = faktor 6. Untuk i = 1, 2, ..., l

7. Faktor Å (Faktor/ (i1 + 1)) * i 8. Total = total + faktor

ANALISA PROGRAM

Perbandingan dilakukan dengan membandingkan running time pada masing-masing main dengan menggunakan Profiling Point. Data perbandingan yang digunakan adalah permutasi C2,2, C3,2, C4,2, C5,2, C6,2, C7,2, C8,2, C9,2, C10,2. Running time dimulai ketika munculnya form metode yang dipilih. Hasil perbandingkan akan dihasilkan dengan

running time dan kapasitas alokasi memori.

Tabel 1 Perbandingam Running Time Berdasarkan Bilangan Stirling dengan

Rumus Sulistyo

Berdasarkan tabel 1 data running

time dihasilkan ketika main dieksekusi.

Dengan Profiling waktu yang dihasilkan dalam bentuk tabel. Pada masing-masing rumus antara bilangan Stirling tanpa tanda jenis pertama dengan rumus Sulistyo menunjukan perbedaan waktu. Pada bilangan Stirling membutuhkan waktu lebih lama dalam mengeksekusi dibandingkan dengan rumus Sulistyo. Ini dikarena pada perbedaan kedua proses memiliki algoritma yang berbeda, pada bilangan Stirling menggunakan algoritma rekursif sedangkan rumus Sulistyo menggunakan algoritma iteratif.

KESIMPULAN DAN SARAN

KESIMPULAN

Hasil running time dengan menggunakan Profiling Point menunjukan bahwa rumus bilangan Stirling yang diformulasikan dalam bentuk algoritma rekursif mencatat waktu lebih lama dibanding rumus Sulistyo secara iteratif. Hal ini dikarenakan pada rekursif membutuhkan proses pemanggilan dalam

Permutasi Running Time

Bilangan Striling Running Time Rumus

Sulistyo C2,2 C3,2 C4,2 C5,2 C6,2 C7,2 C8,2 C9,2 C10,2 15,3 miliSecond 14,6 miliSecond 15,6 miliSecond 14,0 miliSecond 15,8 miliSecond 14,3 miliSecond 16,4 miliSecond 14,7 miliSecond 16,9 miliSecond 15,0 miliSecond 17,4 miliSecond 15,3 miliSecond 17,8 mili Second 14,8 miliSecond 18,0 miliSecond 15,6 miliSecond 18,3 miliSecond 15,4 miliSecond

(9)

menghasilkan output. Sedangkan pada iteratif hanya membutuhkan satu proses dengan melakukan perulangan terus menerus higga batas yang ditentukan terpenuhi. Namun bilangan Stirling memiliki kapasitas yang lebih kecil yaitu 888 Byte sedangkan rumus Sulistyo yaitu 1024 Byte.

SARAN

Terbatasnya aplikasi ini diharapkan agar mengenumerasikan permutasi dapat berlaku pula rumus umum berdasarkan rumusan Sulisto yaitu, Cn,m kedalam bentuk bahasa pemograman.

DAFTAR PUSTAKA

[1] Bernini A, E. Grazinni, E. Pergola, R. Pinzani, 2007. A General

Exhaustive Generation Algorithm for Gray Structures, Journal Acta

Informatica, Vol. 44, no. 5, pp. 361-376

[2] Babic D, D.J. Klein, J. Von Knop, N. Trinajstic, 2004. Combinatorial

Enumeration in Chemistry, Chemical

modelling : Applications and Theory, Royal Society of Chemistry, vol. 3, pp. 126-159

[3] Bona M., 2002. A walk through Combinatorics. An Introduction to Enumeration and Graph Theory.

New Jersey, World Scientific Publishing [4] Ruskey F., 2003. Combinatorial Generation. http://www.1stworks.com/ref/Ruske yCombGen.pdf, 19 Agustus 2007 [5] Sulistyo Puspitodjati., 2010.

Algoritma Pembangkit Lengkap

Permutasi Siklus Tertentu dengan Banyaknya Elemen Sebagai Peubah.

[6] Sedgewick R., 2007. Permutation Generation Methods, Dagstuhl Workshop on Data Stuctures,Wadem, Germany.

http://www.cs.princeton.edu/~rs/talk

s/perms.pdf, 18 Juli 2008

[7] Sedgewick R., 2007. Finding Paths

In Graphs, Adobe System India.

http://www.cs.princeton.edu/~rs/talk

s/PathsInGraphs07.pdf, 3 September

2007

[8] Wilf H. S., 1999. East Side, West

side... an introduction to combinatorial families-with Maple programming.

http://www.math.upenn.edu/~wilf/ea stwest.pdf, 5 juli 2008

Gambar

Gambar 1 Pohon pembangkit permutasi [n]
Gambar 2 Pohon Pembangkit Permutasi [4]
Gambar 4  Diagram Umum Proses  Perancangan Aplikasi
Gambar 7 Diagram Activity Aplikasi  Permutasi
+2

Referensi

Dokumen terkait

Berdasarkan hasil pengamatan terhadap pertumbuhan tanaman didapat bahwa produksi per tanaman pada komoditi kangkung, cabai, tomat dan buncis, serta produksi bayam per

pendekatan syar’i. Sumber data diperoleh dari data primer berupa wawancara dan data sekunder berupa studi kepustakaan dan dengan teknik pengumpulan data melalui wawancara,

Pandangan tokoh Muhammadiyah Kota Malang terhadap zakat hasil pertanian dari tanah sewaan lebih condong kepada pendapat Yusuf Qardhawi karena berdasarkan prinsip keadilan yang

berperkara (Perma Nomor 2 Tahun 2009), sedang biaya penyelenggaraan tugas kepaniteraan seperti; pengadaan Buku Register dan buku adminitrasi perkara lainnya

Tujuan Penelitian ini yaitu untuk menemukan solusi terbaik dalam upaya perbaikan nilai tegangan operasi yang memenuhi standar pelayanan distribusi lsitrik 20 kV

Dinas Kesehatan Pemerintah Kota Medan melaksanakan rekrutmen tenaga honorer guna memenuhi kebutuhan pegawai guna menunjang terlaksananya tugas-tugas yang diemban, namun

Variable LDR, IPR, NPL, IRR, BOPO and FBIR in a partially manner had no significant influence, NPL had a significant influence,LDR, IPR, IRR, BOPO and FBIR had no

• Homogen mikrofilling digunakan untuk restorasi dengan stress rendah dan area sublingual yang memerlukan pengilapan dan pemolesan yang tinggi... • Homogen mikrofilling