bab iii analisis, algoritma, dan contoh … · bab 3 analisis, algoritma, dan contoh penerapan 19...
TRANSCRIPT
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:
RA =
( )
max
1
max
1
e
ipd
ii∑
=
−
dengan: emax = banyaknya sisi maksimum dalam kompleks, yaitu sebesar ( )2
1−nn
pi = banyaknya titik pada kedalaman i
dmax = kedalaman maksimum
RRof = n
Rx
dengan: Rx = banyaknya ring yang melalui x
RRc = 32 −n
Rt
dengan: Rt = banyaknya ring total
Bab 3 Analisis, Algoritma, dan Contoh Penerapan 15
RRfrom = r
c
dRR+1
dengan: rd = jarak terpendek rata-rata dari x ke semua ring yaitu sebesar t
R
rr
R
dt
∑=1
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 rd , harap diperhatikan
bahwa ring yang melewati x nilai dr-nya 0. Selain itu, pembagi untuk RRfrom selain
rd 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 berbeda-
beda, 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 masukan-
masukan 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 berturut-
turut 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 nilai-
nilai 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 nilai-
nilai 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-3-
6. 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 unsur-
unsur 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
Untuk mencari nilai RA, pertama-tama perlu diketahui nilai . Dalam
algoritma, bentuknya adalah seperti berikut ini:
(∑=
−d
ii ip
1
1)
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.