BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19...

26
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 i p d i i = dengan: e max = banyaknya sisi maksimum dalam kompleks, yaitu sebesar ( ) 2 1 n n p i = banyaknya titik pada kedalaman i d max = kedalaman maksimum RR of = n R x dengan: R x = banyaknya ring yang melalui x RR c = 3 2 n R t dengan: R t = banyaknya ring total

Transcript of BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19...

Page 1: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 2: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 3: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 4: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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’.

Page 5: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 6: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 7: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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).

Page 8: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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)

Page 9: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 10: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 11: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 12: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 13: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 14: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 15: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 16: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 17: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.

Page 18: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 19: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 20: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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:

Page 21: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 22: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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:

Page 23: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 24: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 25: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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

Page 26: BAB III ANALISIS, ALGORITMA, DAN CONTOH … · Bab 3 Analisis, Algoritma, dan Contoh Penerapan 19 poin 1 adalah terdapat pemeriksaan apakah bilangan yang dimasukkan melebihi nilai

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.