BAB III ANALISIS, ALGORITMA, DAN CONTOH PENERAPAN

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA

TINJAUAN PUSTAKA. Pada bagian ini akan diberikan konsep dasar graf dan bilangan kromatik lokasi pada

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf

BAB III PERANCANGAN KECERDASAN-BUATAN ROBOT PENCARI JALUR

BAB III METODE PENELITIAN

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB IV HASIL PENELITIAN DAN PEMBAHASAN. 4.1 Pengembangan Sistem Pengenalan Wajah 2D

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

OLIMPIADE SAINS TERAPAN NASIONAL 2008

6 Sistem Persamaan Linear

Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini.

BAB 3 PERANCANGAN SISTEM

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI 2.1 Sistem dan Model Pengertian sistem Pengertian model

Bab 3 Algoritma Feature Pengurangan

BAB III METODE FUZZY MAMDANI

BAB IV PERANCANGAN 4.1 Kriteria Perancangan

BAB IV ANALISA DAN PERANCANGAN

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Graf Berarah (Digraf)

3 HASIL DAN PEMBAHASAN

BAB 3 PENGENALAN KARAKTER DENGAN GABUNGAN METODE STATISTIK DAN FCM

Bilangan Bulat. A. Pengenalan Bilangan Bulat Himpunan bilangan bulat terdiri dari bilangan bulat negatif, bilangan nol, dan bilangan bulat positif.

BAB 3 PE GEMBA GA METODE DA ALGORITMA PEMESI A MULTI AXIS

MINIMISASI AUTOMATED GUIDED VEHICLE PADA JARINGAN TRANSPORTASI DI TERMINAL KONTAINER SEMI OTOMATIS MENGGUNAKAN METODE NODE SPLITTING

Minggu II Lanjutan Matriks

Gambar 1. Tampilan Layar Sebuah Program Animasi

BAB IV PENDEKATAN NUMERIK UNTUK LOOKBACK OPTIONS

PERTEMUAN 12 KEMEROSOTAN (DEGENERACY)

Gambar 4.1 Macam-macam Komponen dengan Bentuk Kompleks

Menentukan Arah Pukulan Terbaik dalam Pertandingan Bulutangkis Kategori Tunggal dengan Teori Graf Terbalik

BAB II TINJAUAN PUSTAKA. tegak, perlu diketahui tentang materi-materi sebagai berikut.

BAB 3 PERANCANGAN. 3.1 Desain Alur Penentuan Keputusan Robot

SOAL UJIAN SELEKSI CALON PESERTA OLIMPIADE SAINS NASIONAL 2016 TINGKAT PROVINSI

OLIMPIADE SAINS NASIONAL VIII

BAB II LANDASAN TEORI

transaksi yang ingin dilihat detailnya.

BAB IV DATA, HASIL, DAN PEMBAHASAN

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf

Model Jaringan. Ahmad Sabri, MSi, Riset Operasional 2, Universitas Gunadarma

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

STRATEGI PENYELESAIAN MASALAH (PROBLEM SOLVING STRATEGIES) EDDY HERMANTO

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

Implementasi Permainan Reversi menggunakan Penelusuran BFS dengan Konsep Algoritma MinMax

BAB IV ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

KATA PENGANTAR. Penulis. Raizal Dzil Wafa M.

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Bundel Soal Sesi 1 Bidang Informatika Olimpiade Sains Nasional X

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

Mengenal Bilangan Bulat

GUI Matlab untuk membuat grafik fungsi

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved

IMPLEMENTASI BACKTRACKING ALGORITHM UNTUK PENYELESAIAN PERMAINAN SU DOKU POLA 9X9

Hari 1 / Soal 1: Bukit dan Lembah

BAB IV ANALISA DAN PERANCANGAN

BAB IV PEMBAHASAN. A. Aplikasi Fuzzy Logic untuk Menilai Kolektibilitas Anggota Sebagai. Pertimbangan Pengambilan Keputusan Pemberian Kredit

BAB 2 LANDASAN TEORI

Bab 2 Editor vi 9. BAB 2 EDITOR vi TUJUAN PRAKTIKUM

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Penyusunan PETA RISIKO

BAB IV IMPLEMENTASI METODE. Pada bab ini akan diimplementasikan metode yang dipakai pada tugas

BAB 2 LANDASAN TEORI

BAB 1 PERSAMAAN. a) 2x + 3 = 9 a) 5 = b) x 2 9 = 0 b) = 12 c) x = 0 c) 2 adalah bilangan prima genap d) 3x 2 = 3x + 5

Gambar 1.1 Gambar 1.2. Gambar 1.3

PERANCANGAN ALGORITMA KRIPTOGRAFI KUNCI SIMETRI DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

BAB II LANDASAN TEORI

Data reaksi berikut telah diperoleh dari reaksi peluruhan sederhana: Menggunakan MATLAB untuk memplot konsentrasi komponen A dalam mol/l

BAB III ANALISIS DAN PERANCANGAN

1.1 Sistem Komputer... 2

BAB I BILANGAN A. SIFAT-SIFAT OPERASI HITUNG BILANGAN USEFUL BOOK MATEMATIKA KLS 5 SD SIFAT OPERASI HITUNG

Penerapan Algoritma A-star (A*) Untuk Menyelesaikan Masalah Maze

PEMANTAUAN LAN PADA UNIVERSITAS BUNDA MULIA DENGAN APLIKASI MONITORING. Halim Agung Tekhnik Informatika Universitas Bunda Mulia

Analisis Komponen Utama (Principal component analysis)

I PENDAHULUAN II LANDASAN TEORI

Graf dan Operasi graf

BAB III PERANCANGAN SISTEM

G a a = e = a a. b. Berdasarkan Contoh 1.2 bagian b diperoleh himpunan semua bilangan bulat Z. merupakan grup terhadap penjumlahan bilangan.

SELEKSI OLIMPIADE TINGKAT PROVINSI 2008 TIM OLIMPIADE MATEMATIKA INDONESIA 2009

PERSEGI PENGAMANAN UNIK KRISTAL. Mau belajar? Jangan hanya dibaca Kerjakan soalnya. disusun kembali oleh: Al. Krismanto, M.Sc

SOAL-JAWAB MATEMATIKA PENCACAHAN

BAB XII MENCARI DATA MAKSIMUM DAN MINIMUM

Kasus A : Tabel untuk AM

A. Segiempat Terluas

Olimpiade Sains Nasional XI Bidang Komputer/Informatika

BAB III ANALISA DAN PERANCANGAN SISTEM. algoritma djikstra, beberapa kebutuhan yang diperlukan meliputi : f. Menyimpan data titik, garis dan gambar

BAB 4 ANALISIS DAN BAHASAN

IV. HASIL DAN PEMBAHASAN

BAB 3 METODOLOGI PENELITIAN. kepustakaan dan studi laboratorium, di mana penulis mempelajari teori-teori teknik

PRAKTIKUM ISYARAT DAN SISTEM TOPIK 0 TUTORIAL PENGENALAN MATLAB

SELEKSI TINGKAT PROPINSI CALON PESERTA OLIMPIADE SAINS NASIONAL 2008 MATEMATIKA SMA BAGIAN PERTAMA

BAB 2 LANDASAN TEORI

3.1 Penentuan nilai tak teratur sisi dari korona graf lintasan terhadap )).

Identitas, bilangan identitas : adalah bilangan 0 pada penjumlahan dan 1 pada perkalian.

BAB III ANALISIS DAN PERANCANGAN. Subbab ini akan berisi pembahasan mengenai cara kerja algoritma Welch-

Bab 2 LANDASAN TEORI. 2.1 Definisi Graf

GRAFIK (CHART) Aplikasi Manajemen Perkantoran B 1

BAB 4 ANALISIS DAN SIMULASI

Transkripsi:

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

Bab 3 Analisis, Algoritma, dan Contoh Penerapan 15 RR from = RR c 1+ d r dengan: d r = jarak terpendek rata-rata dari x ke semua ring yaitu sebesar dengan d r = jarak terpendek dari x ke ring R t r=1 R d t r Perlu diperhatikan bahwa pada perumusan RR of 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 RR of menjadi (n + 1) 1 = n. Demikian pula halnya dengan RR c, 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 d r -nya 0. Selain itu, pembagi untuk RR from 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-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 c max. 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 c max, jika pada matriks A baris ke-d kolom ke-c i atau baris ke-c i kolom ke-d nilainya 1, maka depth baris ke-a kolom ke-d diberi nilai depth baris ke-a kolom ke-c i + 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 kei 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 Untuk mencari nilai RA, pertama-tama perlu diketahui nilai d i= 1 ( p i i 1). Dalam algoritma, bentuknya adalah seperti berikut ini: 1. Dicari nilai kedalaman terbesar, kemudian dinamakan d max. 2. Untuk i dari 1 hingga d max, dihitung jumlah titik yang memiliki depth sama dengan i. Jumlah ini disimpan dalam vektor jumlah baris ke-i. 3. Untuk i dari 1 hingga d max, 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.