BAB III ANALISIS, ALGORITMA, DAN CONTOH PENERAPAN 3.1 Analisis Berdasarkan cara menghitung besaran-besaran yang telah disebutkan pada Bab II, diperoleh perumusan untuk besaran-besaran tersebut sebagai berikut: Jika jumlah seluruh titik dalam kompleks adalah n dan titik yang akan dianalisis adalah x, maka: dmax
∑p (i −1) i
i=1
RA =
emax
dengan: emax = banyaknya sisi maksimum dalam kompleks, yaitu sebesar pi = banyaknya titik pada kedalaman i dmax = kedalaman maksimum RRof =
Rx n
dengan: Rx = banyaknya ring yang melalui x RRc = dengan: Rt = banyaknya ring total
Rt 2n − 3
n(n − 1) 2
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 15
RRfrom =
RRc 1+ dr Rt
∑d dengan: d r = jarak terpendek rata-rata dari x ke semua ring yaitu sebesar
r =1
r
Rt
dengan dr = jarak terpendek dari x ke ring Perlu diperhatikan bahwa pada perumusan RRof seharusnya pembaginya adalah p - 1, dengan p merupakan banyaknya titik. Akan tetapi banyaknya titik di sini adalah n + 1 (semua titik ditambah dengan carrier). Sehingga pembagi untuk RRof menjadi (n + 1) – 1 = n. Demikian pula halnya dengan RRc, pembaginya seharusnya adalah 2p - 5, dengan p merupakan banyaknya titik. Pembagi tersebut berubah menjadi 2(n + 1) - 5 = 2n - 3. Sedangkan untuk menghitung d r , harap diperhatikan bahwa ring yang melewati x nilai dr-nya 0. Selain itu, pembagi untuk RRfrom selain
d r juga ditambahkan 1 untuk mencegah pembagian dengan nol untuk kasus x dilewati oleh semua ring. Jika dilihat dari perumusannya, semakin banyak titik dengan nilai kedalaman lebih besar dari 1, maka x menjadi semakin asimetri. Sedangkan semakin banyak ring yang melewati x, maka x akan semakin terdistribusi.
3.2 Teknis Pemrograman Program lengkap yang digunakan untuk memberi masukan dan memberikan keluaran berupa peta gamma dan besaran-besaran RA, RR terhadap, RR kompleks, dan RR dari
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 16
dapat dilihat dalam lampiran. Berikut ini adalah penjelasan algoritma yang digunakan untuk menyusun program tersebut: 3.2.1 Tampilan GUI Bila program dijalankan, maka akan muncul GUI sebagai berikut:
Gambar 3 Tampilan GUI
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 17
Terlihat bahwa terdapat lima buah tempat kosong untuk memberi masukan, yaitu: 1. Di sebelah kanan dari tulisan ‘Jumlah Ruangan’ pada bagian ‘Input’. 2. Di antara tulisan ‘Ruang’ dan ‘dengan Ruang’ pada bagian ‘Keterhubungan’. 3. Di antara tulisan ‘dengan Ruang’ dan dua buah radio button bertuliskan ‘Terhubung’ dan ‘Tak Terhubung’ pada bagian ‘Keterhubungan’. 4. Di antara tulisan ‘Carrier dengan ruang’ dan push button bertuliskan ‘OK’ pada bagian ‘Keterhubungan’. 5. Di antara tulisan ‘Ruang’ dengan ‘RA’ pada bagian ‘Analisis’. Untuk radio button (tombol yang pada awalnya berbentuk lingkaran, tetapi jika ditekan akan muncul lingkaran hitam di dalamnya) hanya ada dua buah, bertuliskan ‘Terhubung’ dan ‘Tak Terhubung’ pada bagian ‘Keterhubungan’. Sedangkan untuk push button (tombol berbentuk kotak untuk ditekan), ada empat buah yaitu: 1. Tombol ‘Reset’ di pojok kanan atas. 2. Tombol ‘OK’ di sebelah bawah pada bagian ‘Keterhubungan’. 3. Tombol ‘Graf’ di sebelah kiri antara bagian ‘Keterhubungan’ dan ‘Analisis’. 4. Tombol ‘Hitung’ di sebelah kanan bawah pada bagian ‘Analisis’.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 18
3.2.2 Masukan (Input) Kelima tempat kosong untuk memberi masukan mempunyai fungsi yang berbedabeda, yaitu: 1. Tempat yang terletak di sebelah kanan dari tulisan ‘Jumlah Ruangan’ pada bagian ‘Input’ berfungsi untuk memasukkan jumlah ruangan maksimum yang diperlukan dalam membangun matriks keterhubungan serta untuk membatasi masukanmasukan lainnya (lebih lengkapnya lihat poin ke-2 hingga ke-4). Pada bagian ini, dilakukan pemeriksaan apakah masukan berupa bilangan, bukan karakter lain. Bila ternyata masukannya bukan merupakan bilangan, maka akan terlihat suatu peringatan bertuliskan ‘Input harus berupa angka’ dan isian pada tempat ini berubah menjadi seperti pada kondisi awal, yaitu kosong. Setelah didapat nilai masukan yang sah, nilai tersebut ke dalam sebuah variabel bernama n yang terdapat di dalam struktur handle, agar nantinya dapat digunakan kembali pada fungsi lain. Kemudian, dibangun suatu matriks nol berukuran (n + 1) x (n + 1) yang dinamakan A sebagai matriks keterhubungan karena nantinya carrier akan dimasukkan pada baris/kolom ke-(n + 1). Matriks ini juga disimpan ke dalam struktur handle agar dapat digunakan pada fungsi lain. 2. Tempat yang terletak di antara tulisan ‘Ruang’ dan ‘dengan Ruang’ serta di antara tulisan ‘dengan Ruang’ dan dua buah radio button bertuliskan ‘Terhubung’ dan ‘Tak Terhubung’ pada bagian ‘Keterhubungan’, masing-masing berfungsi untuk memasukkan nomor ruangan yang terhubung. Pada bagian ini juga dilakukan pemeriksaan apakah masukan berupa bilangan atau bukan. Yang berbeda dengan
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19
poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai yang tersimpan dalam variabel n yang terdapat dalam struktur handle. Apabila ternyata melebihi, maka akan keluar peringatan bertuliskan ‘Input tidak boleh melebihi jumlah ruangan’ dan isian pada tempat yang salah akan berubah menjadi seperti pada kondisi awal, yaitu kosong. Nilai masukan yang sah pada kedua tempat tersebut juga disimpan dalam dua variabel yang secara berturutturut diberi nama input1 dan input2, yang juga disimpan dalam struktur handle. 3. Tempat yang terletak di antara tulisan ‘Carrier dengan ruang’ dan push button bertuliskan ‘OK’ pada bagian ‘Keterhubungan’ berfungsi untuk mencatat dengan ruangan berapa saja carrier terhubung. Sama seperti pada poin 2, diperiksa apakah masukan berupa bilangan atau bukan serta jika ternyata bilangan yang dimasukkan, apakah bilangan tersebut sudah melebihi nilai yang tersimpan dalam variabel n dalam struktur handle atau belum. Dan sama seperti pada poin-poin sebelumnya, masukan yang telah sah nilainya disimpan ke dalam variabel out yang terdapat dalam struktur handle. 4. Tempat terakhir yang terletak di antara tulisan ‘Ruang’ dengan ‘RA’ pada bagian ‘Analisis’ berfungsi untuk memasukkan nomor ruangan yang akan dianalisis. Pada bagian ini juga dilakukan pemeriksaan seperti pada poin 2 dan 3, yaitu pemeriksaan jenis masukan dan pemeriksaan besarnya nilai masukan. Jika telah sah, nilai masukan ini disimpan ke dalam varibel bernama input3.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 20
3.2.3 Tombol-tombol Selain tersedianya tempat untuk memasukkan nilai, hal yang tidak kalah pentingnya dalam memasukkan nilai adalah tombol-tombol untuk memasukkan nilai-nilai tersebut. Terdapat dua macam tombol dalam GUI ini seperti yang telah disebutkan pada subbab 3.2.1 yaitu radio button dan push button. 3.2.3.1 Radio Button Dalam GUI ini hanya terdapat dua buah radio button, masing-masing dengan tulisan ‘Terhubung’ dan ‘Tak Terhubung’. Melihat dari namanya, tentu saja kedua tombol tersebut fungsinya berlawanan. Pada bagian ini, terdapat fungsi yang gunanya untuk mematikan tombol yang lain apabila salah satu tombol ditekan, sehingga tidak ada kejadian di mana kedua tombol aktif secara bersamaan atau tidak ada tombol yang aktif (kecuali pada kondisi awal). Cara kerja tombol-tombol tersebut adalah apabila tombol ‘Terhubung’ ditekan, maka matriks A baris ke-(input1) kolom ke-(input2) akan diisi nilai 1. Sebaliknya jika tombol ‘Tak Terhubung’ yang ditekan, maka matriks A baris ke-(input1) kolom ke-(input2) akan diisi nilai 0. Tombol ini fungsinya apabila terjadi kesalahan pemasukan data, yaitu ruangan-ruangan yang tidak seharusnya terhubung secara tidak sengaja menjadi terhubung, maka dapat dilakukan pembalikan sehingga kedua ruangan tersebut menjadi tidak terhubung kembali. Oleh karena itu, apabila hanya mengisi masukan input1 dan input2 tanpa menekan tombol ‘Terhubung’, maka MATLAB akan menganggap input1 dan input2 tak terhubung (karena keadaan awalnya adalah nol—lihat subbab 3.2.2).
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 21
3.2.3.2 Push Button Seperti yang telah disebutkan pada subbab 3.2.1, terdapat empat buah push button dalam GUI ini yang mempunyai bermacam-macam fungsi sebagai berikut: 1. Tombol ‘Reset’ di pojok kanan atas. Seperti nama yang tertera pada tombol ini, tombol ini berfungsi untuk mengembalikan keadaan GUI ke keadaan semula. Pada saat tombol ini ditekan, akan dilakukan sebuah fungsi untuk mengembalikan kondisi hampir semua hal seperti pada keadaan awal, yaitu membuat matriks A menjadi matriks kosong berukuran 5 x 5, mengosongkan nilai-nilai variabel n, input1, input2, input3,
terhubung, takterhubung, dan axes1 (data untuk peta gamma). Selain itu nilainilai pada tempat-tempat yang disediakan untuk memberi masukan, kemudian juga nilai-nilai text13 hingga text15 dan text17 (keempat variabel dengan nama depan text tersebut merupakan keluaran untuk nilai RA, RR terhadap, RR
kompleks, dan RR dari) dikosongkan. Untuk tombol radio button, kondisi kedua tombol tersebut dikembalikan kembali seperti pada kondisi awal, yaitu hanya berupa lingkaran tanpa lingkaran hitam di dalamnya. Hal yang tersisa, hanya berupa gambar peta gamma terakhir. 2. Tombol ‘OK’ di sebelah bawah pada bagian ‘Keterhubungan’. Tombol ini berfungsi untuk mengubah nilai yang tersimpan pada matriks A baris ke-(out) kolom ke-(n + 1) menjadi 1. Pada dasarnya, fungsi tombol ini sama dengan fungsi tombol radio button ‘Terhubung’, tetapi harap diperhatikan bahwa tidak ada tombol untuk mengubah nilai matriks A baris ke-(out) kolom ke-(n + 1)
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 22
menjadi 0 kembali. Jadi, jika terjadi kesalahan dalam memasukkan nomor ruangan yang terhubung dengan carrier, mau tidak mau harus digunakan tombol ‘Reset’. 3. Tombol ‘Graf’ di sebelah kiri antara bagian ‘Keterhubungan’ dan ‘Analisis’. Sesuai dengan namanya, tombol ini berfungsi untuk memberikan tampilan graf (peta gamma) dari masukan-masukan yang telah diberikan. Oleh karena tombol ini terkait dengan keluaran, maka penjelasan lebih lanjut akan diberikan kemudian pada subbab 3.2.5. 4. Tombol ‘Hitung’ di sebelah kanan bawah pada bagian ‘Analisis’. Fungsi tombol ini berfungsi untuk menghasilkan hasil analisis yaitu RA, RR
terhadap, RR kompleks, dan RR dari pada tempat yang telah ditentukan. 3.2.4 Pengolahan Data Setelah semua masukan diperoleh, tiba saatnya untuk memroses masukan-masukan tersebut menuju hasil yang diinginkan nantinya, yaitu peta gamma (graf) dari nilainilai yang telah dimasukkan serta hasil analisis berupa RA, RR terhadap, RR
kompleks, RR dari, dan sifat sel/ruang. Untuk itu, algoritma dalam proses ini dapat dibagi menjadi tiga bagian yaitu algoritma untuk menghasilkan peta gamma, algoritma untuk mencari nilai kedalaman, dan algoritma untuk mencari ring. 3.2.4.1 Algoritma untuk Melakukan Pengeplotan Ide dasar dalam melakukan pengeplotan titik-titik dalam matriks A adalah menggunakan perintah gplot, dengan format penulisan: gplot(matriks keterhubungan, vektor titik, option-option lain). Dalam hal matriks keterhubungan, telah diselesaikan
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 23
dengan terciptanya matriks A. Sekarang dalam rangka membangun vektor titik yang mewakili titik-titik dalam matriks A, dibutuhkan algoritma pembantu yaitu algoritma pencarian nilai kedalaman terhadap carrier atau titik ke-(n + 1). Oleh karena algoritma pengeplotan ini melibatkan pencarian nilai kedalaman, maka algoritmanya tidak akan ditampilkan di sini, melainkan akan diberikan penjelasan mengenai algoritma pencarian nilai kedalaman pada subbab 3.2.4.2. 3.2.4.2 Algoritma Pencarian Nilai Kedalaman Algoritma ini cukup panjang, mengingat terdapat tiga buah algoritma serupa, tetapi berbeda titik awal dan arah pencariannya. Ketiga algoritma ini dinamakan algoritma ‘maju’, algoritma ‘mundur’, dan algoritma ‘tengah’, sesuai dengan cara pergerakan indeks pencariannya.
Gambar 4 Pergerakan Indeks dari Tiga Macam Algoritma
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 24
Ketiga buah algoritma ini diperlukan karena berdasarkan pengalaman penulis terdapat contoh-contoh tertentu yang satu atau beberapa titiknya tidak memiliki nilai kedalaman yang seharusnya jika hanya digunakan satu atau dua algoritma. Salah satunya adalah kompleks berikut:
Gambar 5 Contoh Kompleks yang Nilai Kedalamannya Harus Dicari Menggunakan Ketiga Macam Algoritma
Dengan menggunakan algoritma ‘maju’, nilai kedalaman titik 6 terhadap titik 2 adalah 4, karena lintasan yang ditempuh untuk mendapatkan titik 6 adalah 2-9-1-36. sedangkan dengan menggunakan algoritma ‘mundur’, nilai kedalaman titik 6 terhadap titik 2 juga 4, karena lintasan yang ditempuh untuk mendapatkan titik 6 adalah 2-4-7-8-6. Oleh karena itu diperlukan satu lagi algoritma yaitu algoritma ‘tengah’ sehingga dapat ditemukan nilai kedalaman yang tepat untuk titik 6 terhadap titik 2 yaitu 2.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 25
Algoritma untuk mencari nilai kedalaman suatu titik, misalnya dinamakan titik a, terhadap titik-titik lain adalah sebagai berikut: 1. Untuk b dari 1 hingga n + 1, jika pada matriks A baris ke-a kolom ke-b atau baris ke-b kolom ke-a nilainya 1, maka dalam suatu matriks yang diberi nama depth baris ke-a kolom ke-b diberi nilai 1. 2. Indeks matriks depth baris ke-a yang nilainya lebih besar dari 0 disimpan dalam suatu vektor bernama c. Misalkan jumlah anggota c sebanyak cmax. 3. Untuk d dari 1 hingga n + 1, dengan d tidak sama dengan a dan d bukan anggota dari c, untuk i dari 1 hingga cmax, jika pada matriks A baris ke-d kolom ke-ci atau baris ke-ci kolom ke-d nilainya 1, maka depth baris ke-a kolom ke-d diberi nilai
depth baris ke-a kolom ke-ci + 1. 4. Ulangi langkah 2 dan 3 hingga seluruh unsur dalam matriks depth baris ke-a kecuali a nilainya lebih besar daripada 0. Sedangkan untuk kedua macam algoritma lainnya, cara pencariannya serupa dengan algoritma ‘maju’. Seperti yang telah disebutkan, titik awal pencarian dan arah pencarian kedua algoritma itu yang berbeda dengan algoritma ‘maju’. Jika pada algoritma ‘maju’ indeks d dimulai dari 1 hingga n + 1, maka untuk algoritma ‘mundur’ indeks d dimulai dari n + 1 hingga 1. Demikian halnya dengan algoritma ‘tengah’, indeks d dimulai dari pertengahan antara 1 dan n + 1 (atau dibulatkan ke atas jika n genap) hingga 1. Setelah itu, indeks d diubah menjadi sebesar d pertama kali + 1 hingga n + 1. Hal yang sama juga terjadi pada indeks i.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 26
Selanjutnya, dilakukan pembandingan nilai kedalaman yang diperoleh dari ketiga macam algoritma serta pembandingan unsur-unsur dalam matriks depth sebagai berikut: 1. Untuk i dari 1 hingga n + 1 dan a merupakan titik seperti pada algoritma pencarian nilai kedalaman serta i tidak sama dengan a, dicari nilai minimum dari matriks depth baris ke-a kolom ke-i untuk algoritma ‘maju’, algoritma ‘mundur’, dan algoritma ‘tengah’ yang tidak nol, kemudian disimpan dalam matriks depth baris ke-a kolom ke-i. 2. Untuk i dari 1 hingga n + 1 dan j dari 1 hingga n + 1, misalkan nilai matriks depth baris ke-i kolom ke-j adalah a dan nilai matriks depth baris ke-j kolom ke-i adalah
b. Jika a tidak sama dengan b dan minimum dari a dan b adalah c, maka a dan b digantikan dengan c. Untuk algoritma untuk melakukan pengeplotan pada subbab 3.2.4.1, hal yang perlu dilakukan adalah mengambil nilai-nilai yang tercantum pada matriks depth baris ke-(n + 1). 3.2.4.2 Algoritma Pencarian Ring Algoritma ini merupakan algoritma terumit dan membutuhkan waktu paling lama dalam membangunnya dari keseluruhan algoritma yang ada. Dalam algoritma yang penulis buat, serupa dengan bagian sebelumnya tentang pencarian nilai kedalaman, digunakan dua macam algoritma, yaitu algoritma ‘maju’ dan algoritma ‘mundur’. Pengertian ‘maju’ dan ‘mundur’ di sini sama dengan pada bagian sebelumnya, yaitu mengenai titik awal indeks dan cara pergerakannya.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 27
Berikut ini merupakan algoritma untuk mencari ring: 1. f merupakan titik awal dengan nilai 1. Nilai f disimpan ke dalam vektor lintasan. 2. Memeriksa apakah f memiliki cabang dengan cara memeriksa derajatnya. Jika lebih dari 1, maka f dianggap memiliki cabang. Jika ternyata f memiliki cabang, maka nilai f disimpan ke dalam vektor cabang. 3. Menyimpan nilai f ke dalam variabel h. 4. Untuk g dari 1 hingga n + 1 dan g bukan merupakan anggota dari lintasan, jika matriks A baris ke-g kolom ke-h atau baris ke-h kolom ke-g nilainya 1, maka g disimpan ke dalam vektor lintasan. 5. Memeriksa percabangan di g yang terhubung dengan cara memeriksa derajatnya. Jika derajatnya lebih dari 2, maka g merupakan titik yang memiliki cabang. Nilai
g disimpan ke dalam vektor cabang. 6. Nilai h kemudian digantikan dengan nilai g, karena selanjutnya akan dicari titik lain yang terhubung dengan h, tetapi belum termasuk ke dalam lintasan. 7. Dilakukan pemeriksaan, apakah anggota lintasan terakhir terhubung dengan f. Jika ternyata terhubung, maka g diberi tanda n + 2 agar loop tidak memasuki poin 1 hingga 6. Kalaupun tidak terhubung, pada suatu saat tidak ada lagi g yang terhubung dan belum termasuk pada lintasan, sehingga nilai g juga akan mencapai
n + 2. 8. Diperiksa apakah g mencapai nilai n + 2 karena memang unsur terakhir lintasan terhubung dengan titik awal atau bukan. Jika benar, maka lintasan tersebut disimpan ke dalam matriks ring.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 28
9. Memeriksa apakah masih mungkin terdapat cabang dari f. Jika masih ada, nilai unsur kedua pada vektor lintasan dicatat agar nantinya saat mengulang langkah 1 hingga 6 dipilih lintasan yang tidak melalui unsur tersebut. Nilai lintasan dan
cabang masing-masing dikembalikan ke posisi awal, yaitu diisi dengan nilai f. Jika ternyata tidak ada lagi cabang dari f, maka saatnya untuk mengganti nilai f dengan cara f = f + 1. 10. Ulangi langkah 2 hingga 9, hingga nilai f = n + 1. Pada algoritma ‘mundur’, g dimulai dari n + 1 hingga 1. Berikutnya, setelah terbentuk dua buah ring hasil dari algoritma ‘maju’ dan ‘mundur’, dilakukan penyatuan kedua ring tersebut menggunakan algoritma: 1. Nilai i dimulai dari 1 dan j dimulai dari 1. 2. Jika ring dari algoritma ‘maju’ baris ke-i dan ring dari algoritma mundur baris ke-
i keduanya bukan merupakan baris 0, maka dibandingkan apakah isi keduanya sama. Jika sama, hanya salah satu ring yang menjadi anggota ring baris ke-j. Jika tidak, maka ring baris ke-j diisi dengan ring dari algoritma ‘maju’ dan ring baris ke-(j + 1) diisi dengan ring dari algoritma ‘mundur’. 3. Jika salah satu baris ke-i dari ring yang diperoleh dari algoritma ‘maju’ atau ring yang diperoleh dari algoritma ‘mundur’ adalah baris 0, maka yang dimasukkan sebagai ring baris ke-j adalah ring yang bukan merupakan baris 0. 4. Nilai i = i + 1 dan j = (banyaknya baris pada matriks ring) + 1. 5. Ulangi langkah 1 hingga 4, hingga nilai i = n + 1.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 29
Setelah disatukan, maka saatnya untuk mengeliminasi baris-baris pada matriks ring yang bukan merupakan ring, sebagai berikut: 1. Menghapus salah satu dari dua buah baris yang unsur-unsurnya merupakan unsurunsur yang sama. 2. Mencari apakah dalam suatu baris terdapat dua titik dalam ring yang tidak berurutan namun terhubung. Jika ada, maka baris tersebut dihapus. 3. Penghapusan ring yang lintasannya terlalu panjang, sebab jika terdapat ring yang lintasannya sangat panjang, maka hanya ada sebuah ring dalam kompleks tersebut. 4. Memeriksa irisan titik antar baris dalam ring. Jika terdapat banyak titik yang merupakan irisan dari dua buah baris, maka salah satu baris dihapus. 3.2.5 Keluaran (Output) Terdapat dua macam keluaran pada GUI, yaitu keluaran berupa gambar (peta gamma) dan berupa hasil analisis. 3.2.5.1 Keluaran Berupa Gambar Seperti yang telah disebutkan pada subbab 3.2.4.1, perintah utama dalam menghasilkan keluaran ini adalah perintah gplot. Dalam subbab tersebut juga disebutkan bahwa diperlukan algoritma pencarian nilai kedalaman terhadap titik
carrier. Hal ini dilakukan agar peta gamma yang tercipta nanti agak teratur sesuai dengan nilai kedalaman terhadap carrier. Setelah nantinya diperoleh nilai kedalaman masing-masing titik terhadap carrier, nilai-nilai tersebut dikurangi terlebih dahulu dengan 1 kemudian ditambahkan dengan suatu bilangan acak antara 0 dan 1. Hal ini
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 30
dilakukan ke dalam dua kolom, kolom pertama untuk mencatat posisi x dan kolom kedua untuk mencatat posisi y dari titik tersebut (dalam sumbu x-y). Untuk carrier sendiri, posisinya selalu di titik (0,0). Itulah sebabnya setiap kali tombol ‘Graf’ ditekan posisi titik-titik kecuali carrier berpindah-pindah. Option yang digunakan dalam melakukan plot adalah ‘o-‘, yang artinya titik-titik dalam peta gamma berupa lingkaran sedangkan garisnya berupa garis lurus. Selain itu juga digunakan perintah untuk mematikan sumbu-sumbu x dan y untuk memperindah tampilan peta gamma. 3.2.5.1 Keluaran Berupa Hasil Analisis d
Untuk mencari nilai RA, pertama-tama perlu diketahui nilai
∑ p (i − 1) . i =1
i
Dalam
algoritma, bentuknya adalah seperti berikut ini: 1. Dicari nilai kedalaman terbesar, kemudian dinamakan dmax. 2. Untuk i dari 1 hingga dmax, dihitung jumlah titik yang memiliki depth sama dengan i. Jumlah ini disimpan dalam vektor jumlah baris ke-i. 3. Untuk i dari 1 hingga dmax, mengalikan jumlah baris ke-i dengan (i – 1). Sedangkan cara untuk menghitung banyaknya sisi maksimum dalam kompleks telah diberikan pada subbab 3.1. Kemudian sesuai dengan rumusan pada subbab 3.1, tinggal dilakukan pembagian antara jumlah dengan banyaknya sisi maksimum dalam kompleks. Untuk mencari RR terhadap, perlu dihitung terlebih dahulu jumlah ring yang melewati titik yang ingin dicari nilai RR terhadap–nya, misalnya dinamakan titik a.
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 31
Sedangkan untuk mencari nilai RR dari, perlu dihitung terlebih dahulu nilai RR
kompleks dan jarak rata-rata titik a terhadap semua ring. Untuk mencari nilai RR kompleks, caranya telah diberikan pada subbab 3.1. Sedangkan untuk menghitung jumlah ring yang melewati titik a dan jarak rata-rata titik a terhadap semua ring dapat dilakukan melalui algoritma berikut: 1. Misalkan banyaknya ring adalah t. 2. Untuk i dari 1 hingga t, diperiksa apakah a termasuk dalam ring baris ke-i. 3. Jika ya, maka variabel pencatat banyaknya ring yang melewati a, misalnya dinamakan rl, menjadi rl + 1. 4. Jika tidak, dihitung jarak dari titik a terhadap ring, yaitu dengan melihat minimum dari depth baris ke-a terhadap titik-titik anggota ring. Nilainya dicatat dalam suatu variabel bernama jarak. 5. Jika nilai jarak tidak nol, mencari jarak rata-rata dari titik a terhadap semua ring dengan cara membagi jarak dengan t. Setelah itu, barulah dihitung nilai RR terhadap dan RR dari berdasarkan rumusan pada subbab 3.1. Terakhir, pada bagian bawah dari bagian ‘Analisis’ ditampilkan sifat sel/ruang, dengan ketentuan jika RA kurang dari atau sama dengan 0,3, maka ruang tersebut simetri. Sebaliknya, jika nilai RA-nya lebih besar dari 0,3, maka ruang tersebut asimetri. Untuk sifat distribusi, cukup dipandang salah satu dari
RR terhadap atau RR dari, dan di sini penulis memilih menggunakan RR terhadap karena biasanya nilai ini lebih besar jika dibandingkan dengan nilai RR dari. Jika nilai RR terhadap-nya lebih besar atau sama dengan 0,3, maka ruang tersebut
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 32
terdistribusi. Hal sebaliknya juga berlaku, yaitu jika nilai RR terhadap-nya kurang dari 0,3, maka ruang tersebut tak terdistribusi.
3.3 Penerapan Pada Beberapa Contoh Setelah membahas algoritma dan pemrograman mulai dari masukan hingga keluarannya, kini akan diperlihatkan beberapa penerapan program tersebut. 1. Sebuah bangunan dengan delapan ruangan sebagai berikut:
Gambar 6 Bangunan dengan Delapan Ruangan
Dari contoh tersebut, diperoleh tabel nilai RA, RR terhadap, RR kompleks, dan
RR dari sebagai berikut: RR kompleks = 0,461538 Titik
RA
RR terhadap
RR dari
1
0,214286
0,25
0,276923
2
0,142857
0,5
0,346154
3
0,214286
0,375
0,276923
4
0,142857
0,5
0,346154
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 33
5
0,285714
0,125
0,230769
6
0,25
0,25
0,251748
7
0,285714
0,25
0,251748
8
0,285714
0,25
0,251748
Carrier
0,107143
0,5
0,346154
Tabel 1 Nilai RA, RR terhadap, RR kompleks, dan RR dari Untuk Bangunan dengan Delapan Ruangan
Dari tabel ini terlihat semua titik dalam kompleks ini, terutama carrier, merupakan titik yang simetri, karena nilai RA-nya kecil (kurang dari 0,3). Sedangkan, untuk sifat terdistribusi, tiga titik yang paling terdistribusi adalah titik 2, 4, dan carrier. Hal ini terlihat dari nilai RR terhadap dan RR dari mereka cukup besar (0,5 untuk RR terhadap dan di atas 0,3 untuk RR dari). Titik 5 merupakan titik terdalam, karena memiliki nilai RR terhadap dan RR dari yang paling kecil. 2. Sebuah bangunan dengan lima ruangan, sebuah tangga, dan sebuah koridor. Bangunan ini merupakan lantai dasar dari sebuah rumah yang dibangun secara khusus pada tahun 1930 di London. Denahnya adalah sebagai berikut:
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 34
Gambar 7 Lantai Dasar dari Sebuah Rumah yang Dibangun Secara Khusus Pada Tahun 1930 di London
Dengan menganggap carrier hanya terhubung dengan halaman depan (ruang 1), maka tabel nilai RA, RR terhadap, RR kompleks, dan RR dari untuk setiap ruangan sebagai berikut:
RR kompleks = 0,272727 Titik
RA
RR terhadap
RR dari
1
0,190476
0,285714
0,204545
2
0,190476
0,285714
0,204545
3
0,238095
0,428571
0,272727
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 35
4
0,47619
0
0,116883
5
0,238095
0,428571
0,272727
6
0,333333
0,285714
0,204545
7
0,333333
0,285714
0,204545
Carrier
0,47619
0
0,116883
Tabel 2 Nilai RA, RR terhadap, RR kompleks, dan RR dari Untuk Lantai Dasar dari Sebuah Rumah yang Dibangun Secara Khusus Pada Tahun 1930 di London
Terlihat bahwa memang ruangan terbaik (ruang 4) dirancang untuk kepentingan penghuni rumah, terlihat dengan sangat asimetri dan tidak terdistribusinya ruang tersebut. Sedangkan untuk koridor dan ruang keluarga memang dirancang untuk memliki akses yang cukup besar terhadap publik, terlihat dengan kecilnya nilai RA dan cukup besarnya nilai RR terhadap maupun
RR dari. Di lain pihak, dapur dan halaman belakang dibuat agak asimetri dan kurang terdistribusi agar tidak semua orang dapat masuk ke sana. 3. Sebuah bangunan dengan tujuh ruangan yang memiliki peta gamma sebagai berikut:
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 36
Gambar 8 Peta Gamma Bangunan dengan Tujuh Ruangan
Setelah dimasukkan jumlah ruangan beserta keterhubungannya ke dalam GUI, diperoleh tabel nilai RA, RR terhadap, RR kompleks, dan RR dari untuk setiap ruangan sebagai berikut:
RR kompleks = 0,454545 Titik
RA
RR terhadap
RR dari
1
0,190476
0,285714
0,252525
2
0,190476
0,142857
0,227273
3
0,0952381
0,285714
0,284091
4
0,0952381
0,428571
0,324675
5
0,190476
0,285714
0,252525
6
0,190476
0,428571
0,284091
7
0,428571
0,142857
0,189394
Carrier
0,428571
0,142857
0,174285
Tabel 3 Nilai RA, RR terhadap, RR kompleks, dan RR dari Untuk Bangunan dengan Tujuh Ruangan
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 37
Dari tabel ini jika dicermati, maka akan terlihat bahwa hasil perhitungan ketiga RR tidak benar. Pada dua contoh sebelumnya, jika nilai RR terhadap dan
RR dari untuk sebuah titik berturut-turut sebesar a dan b, maka untuk titik lain yang memiliki nilai RR terhadap sebesar a kemungkinan besar memiliki nilai RR
dari sebesar b. Namun pada contoh ini, terdapat terlalu banyak nilai-nilai yang tidak sesuai, misalnya untuk titik 1 dan titik 3 serta antara titik 2, 7, dan carrier. Mereka memiliki nilai RR terhadap yang sama, tetapi nilai RR dari-nya berbeda. Berdasarkan fakta ini, penulis menyadari kelemahan terhadap algoritma yang digunakan untuk mencari nilai-nilai keempat besaran. Oleh karena itu, ditampilkan matriks ring dan depth sebagai berikut: depth = 0 1 1 1 2 2 3 1
ring = 1 8 2
1 0 1 1 2 2 3 1
3 4 1
1 1 0 1 1 1 2 2
3 4 6
1 1 1 0 1 1 2 2
5 7 6
2 2 1 1 0 1 1 3
5 4 6
2 2 1 1 1 0 1 3 3 3 2 2 1 1 0 4 1 1 2 2 3 3 4 0
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 38
Terlihat bahwa mariks depth tidak mengalami kesalahan, melainkan matriks
ring-lah yang menjadi sumber kesalahan. Matriks ring yang seharusnya berisi (mirip) seperti berikut: ring = 1 2 8 1 3 2 8 1 4 2 2 3 4 3 4 5 3 5 7 6 4 5 6 5 6 7 dan tabel nilai RA, RR terhadap, RR kompleks, dan RR dari yang seharusnya (setelah dihitung secara manual) adalah sebagai berikut:
RR kompleks = 0,615385 Titik
RA
RR terhadap
RR dari
1
0,190476
0,428571
0,351648
2
0,190476
0, 571428
0,41019
3
0,0952381
0, 571428
0,41019
4
0,0952381
0, 571428
0,41019
5
0,190476
0, 571428
0,378698
6
0,190476
0,428571
0,351648
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 39
7
0,428571
0,285714
0,259109
Carrier
0,428571
0,285714
0,259109
Tabel 4 Nilai RA, RR terhadap, RR kompleks, dan RR dari Untuk Bangunan dengan Tujuh Ruangan (Perbaikan)
Sekarang terlihat bahwa nilai RR terhadap dan nilai RR dari-nya cukup sesuai, kecuali untuk kasus titik 5 yang sama nilai RR terhadap-nya dengan 2, 3, dan 4, tetapi berbeda nilai RR dari-nya. Dari nilai keempat besaran yang benar, terlihat bahwa hampir semua titik pada kompleks tersebut simetri. Hanya titik 7 dan carrier yang sifatnya asimetri. Nilai RR-nya pun kedua titik ini menempati urutan terbawah. Berarti, titik 7 cocok sebgai ruang pribadi dan akses keluar-masuk kompleks ini dibatasi. Sedangkan ruang publik yang cocok untuk kompleks ini adalah titik 3 dan titik 4.