PENGEMBANAGAN APLIKASI ENCODE DAN DECODE TREE MENGGUNAKAN BLOB CODE

(1)

ABSTRACT

APPLICATION DEVELOPMENT TO ENCODE AND DECODE TREE USING THE BLOB CODE

by:

Ady Candra

Tree Structure is used widely to represent problems in daily life, especially in computer science and technology. One method that is used to represent a tree is Blob Code. In this research, we developed an application to Encode and Decode Tree using Blob Code. This application aims to simplify the process of changing tree into a blob code (encode) and the process of changing Blob code into the form of tree (decode). In this research we give an application of Blob code in finding the lowest cost of water pipes installation.


(2)

ABSTRAK

PENGEMBANGAN APLIKASI ENCODE DAN DECODE TREE MENGGUNAKAN BLOB CODE

oleh:

Ady Candra

Tree merupakan salah satu bentuk dari graf yang banyak digunakan dalam kehidupan sehari-hari, terutama dalam masalah ilmu komputer dan teknologi. Salah satu metode yang digunakan untuk merepresentasikan suatu tree adalah Blob Code. Pada penelitian ini dilakukan pengembangan aplikasi Encode dan Decode Tree menggunakan Blob Code. Aplikasi ini bertujuan untuk mempermudah dalam proses perubahan dari suatu tree menjadi kode blob (encode) dan proses merubah kode Blob menjadi bentuk tree kembali (decode). Pada penelitian ini diberikan satu contoh terapan kode Blob untuk menyelesaikan biaya instalasi saluran air.


(3)

PENGEMBANAGAN APLIKASI ENCODE DAN DECODE TREE

MENGGUNAKAN BLOB CODE

Oleh

Ady Candra

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar SARJANA KOMPUTER

Pada

Jurusan Ilmu Komputer

Fakultas Matematika dan Ilmu Pengetahuan Alam

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG

BANDAR LAMPUNG 2015


(4)

PENGEMBANGAN APLIKASI ENCODE DAN DECODE TREE MENGGUNAKAN BLOB CODE

Oleh Ady Candra

JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG


(5)

DAFTAR GAMBAR

Gambar Halaman

2.1 Contoh graf yang berbeda-beda derajat titiknya ... 7

2.2 Pohon atau tree ... 9

2.3 Rooted tree ... 10

2.4 Tahapan extreme programming ... 19

3.1 Bagan Penelitian... 22

3.2 Usecase diagram ... 23

3.3 Activity diagram lihat beranda ... 24

3.4 Activity encode tree ... 25

3.5 Activity diagram encode tree ... 26

3.6 Sequence diagram lihat beranda ... 26

3.7 Sequence diagramencode tree... 27

3.8 Sequence diagram decode tree... 28

4.1. Halaman utama aplikasi ... 29

4.2 Halaman Encode ... 30

4.3 Halaman decode ... 32

4.4 Peringatan bila kode blob yang dimasukkan salah ... 35


(6)

xviii

4.6 Encode tree random ... 37

4.7 Encode input tree ... 38

4.8 Pemberitahuan kode yang diinput berupa karakter ... 39

4.9 Pemberitahuan kode lebih dari 50 angka ... 40

4.10 Copy paste kode Blob di form input decode ... 41

4.11 Titik tree masih tumpang tindih ... 42

4.12 Petunjuk penggunaan sistem ... 43

4.13 Pemberitahuan jika form input belum diisi ... 44

4.14 Kecamatan Kota Baru ... 47

4.15 Kecamatan kota Baru diberi nilai acak ... 49


(7)

DAFTAR ISI

Halaman

DAFTAR GAMBAR ... xvi

DAFTAR TABEL ... xviii

BAB I PENDAHULUAN 1.1Latar Belakang ... 1

1.2Rumusan Masalah ... 3

1.3Batasan Masalah ... 3

1.4Tujuan Penelitian ... 4

1.5Manfaat Penelitian ... 4

BAB II TINJAUAN PUSTAKA 2.1 Konsep Dasar Teori Graf ... 5

2.1.1 Graf ... 5

2.1.2 Labeled Graph ... 7

2.1.3 Derajat atau Degree ... 7

2.2 Graf Berarah (Directed Graph) ... 8

2.3 Indegree dan Outdegree ... 8

2.4 Pohon (Tree) ... 9


(8)

xiv

2.6 Encode, Decode, dan Blob Code ... 10

2.6.1 Blob Code ... 10

2.6.2 Encode ... 11

2.6.3 Decode ... 11

2.7 Extreme Programming ... 17

BAB III METODE PENELITIAN 3.1 Tempat Dan Waktu Penelitian ... 20

3.2 Keperluan Sistem ... 20

3.2.1 Hardware ... 20

3.2.2 Software ... 21

3.3 Metode Penelitian ... 21

3.3.1 Analisis Masalah ... 22

3.3.2 Studi Literatur ... 22

3.3.3 Analisis Kebutuhan ... 23

3.3.4 Desain ... 23

3.3.4.1 Usecase Diagram ... 23

3.3.4.2 Activity Diagram ... 24

3.3.4.3 Sequence Diagram ... 26

IV HASIL DAN PEMBAHASAN 4.1 Implementasi ... 29

4.1.1 Halaman Utama Sistem ... 29

4.1.2 Halaman Encode ... 30


(9)

xv

4.2 Pengujian Sistem ... 33

4.2.1 Daftar Pengujian ... 33

4.2.2 Hasil Pengujian ... 34

4.3 Hasil Pengujian Bentuk Tabel ... 44

4.4 Pembahasan ... 46

4.4.1 Implementasi Kode Blob ... 46

V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 51

5.2 Saran ... 51 DAFTAR PUSTAKA


(10)

DAFTAR TABEL

Tabel Halaman

4.1 Daftar Pengujian... 33

4.2 Pemberitahuan Kode Salah ... 35

4.3 Decode Tree ... 36

4.4 Encode Random ... 36

4.5 Encode Manual... 37

4.6 Input Huruf ... 38

4.7 Input lebih dari 50 angka... 39

4.8 Copy Paste Kode Blob Di Form Input Decode ... 40

4.9 Titik Tree Tidak Saling Tumpang Tindih ... 41

4.10 Menu Petunjuk ... 42

4.11 Manipulasi Input ... 43

4.12 Hasil Pengujian Dalam Tabel... 44

4.13 Biaya instalasi tub penampungan ... 47


(11)

(12)

(13)

(14)

(15)

MOTO

MANFAATKAN MASA MUDA MU SEBAIK MUNGKIN

SEBELUM MASA TUA MU TIBA


(16)

PERSEMBAHAN

Dengan mengucap syukur Alhamdulillah, kupersembahkan karya kecilku ini untuk :

All h u h n hu W ’ l ,

Sebagai salah satu bentuk rasa syukurku atas segala pertolongan-Mu,

yang memberikan segala kemudahan disetiap langkahku

dan menjadi penopang disetiap kesulitanku.

Kedua orangtuaku tercinta, Bapak dan Ibu,

Motivator terbesar dalam perjalanan hidupku,

yang selalu mendoakan disetiap sujudnya, yang selalu memberikan dukungan dan

mencurahkan seluruh perhatiannya kepadaku yang mengantarkanku

hingga sampai seperti ini.

Kakak-kakakku yang selalu kusayangi.


(17)

RIWAYAT HIDUP

Penulis dilahirkan di Bandar Lampung Provinsi Lampung pada tanggal 11 Januari 1993 sebagai anak keempat dari empat bersaudara dengan Ayah bernama Sofyan Siddik dan Ibu bernama Hj. Sri Hartati.

Penulis memasuki pendidikan dasar di Sekolah Dasar (SD) Negeri 3 Kampung Baru Bandar Lampung pada tahun 1998 dan lulus pada tahun 2004. Penulis melanjutkan pendidikan di Sekolah Menengah Pertama (SMP) Negeri 19 Bandar Lampung dan lulus pada tahun 2007, kemudian penulis melanjutkan pendidikan di Sekolah Menengah Atas (SMA) Gajah Mada Bandar Lampung dan lulus pada tahun 2010.

Pada tahun 2010, penulis terdaftar sebagai mahasiswa Program Studi Ilmu Komputer Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung melalui jalur SNMPTN. Pada tahun 2011 penulis terdaftar sebagai anggota muda ROIS FMIPA, anggota Generasi Muda Himatika (GEMATIKA) Universitas Lampung. Selama menjadi mahasiswa beberapa kegiatan yang dilakukan penulis antara lain:

1. Pada bulan Januari 2013 penulis melaksanakan kerja praktek di Perusahaan Daerah Air Minum (PDAM) Bandar Lampung.


(18)

viii

2. Pada bulan Juli 2013 penulis melaksanakan kuliah kerja nyata di Desa Talang Semarang Kabupaten Lampung Barat.

3. Pada bulan November 2013 penulis terdaftar sebagai salah satu pemateri dalam Seminar Nasional Sains dan Teknologi V Lembaga Penelitian Universitas Lampung yang dilaksanakan di Hotel Emersia Kota Bandar Lampung.


(19)

SANWACANA

Segala puji dan syukur Penulis ucapkan kepada Allah SWT karena atas limpahan berkah dan hidayah yang telah diberikan, Penulis dapat menyelesaikan salah satu syarat untuk untuk memperoleh gelar Sarjana Ilmu Komputer di Universitas Lampung dengan judul skripsi Pengembangan Aplikasi Encode Dan Decode Tree Menggunakan Blob Code.

Pada penyusunan skripsi ini Penulis banyak memperoleh dukungan, bantuan, saran, arahan, dan bimbingan. Oleh karena itu pada kesempatan ini Penulis ingin menyampaikan rasa terima kasih kepada semua pihak yang telah memberikan dukungan sehingga skripsi ini dapat terselesaikan. Penulis mengucapkan terima kasih kepada:

1. Papa, Mama dan kakak-kakak tercinta, atas segala nasihat, dukungan, dan doanya kepada penulis.

2. Ibu Dra. Wamiliana, M.A., Ph.D., selaku pembimbing I yang telah memberikan bimbingan, saran, koreksi, dan motivasi dalam pembuatan skripsi ini.

3. Ibu Astria Hijriani.M.Kom., selaku pembimbing II yang juga telah memberikan bimbingan, saran, koreksi, dan motivasi dalam pembuatan skripsi ini.

4. Bapak Ir. Machudor Yusman, M.Kom., selaku pembahas yang telah memberikan koreksi dan saran dalam pembuatan skripsi ini.


(20)

xii

5. Bapak Dwi Sakethi, M.Kom., selaku Sekretaris Jurusan Ilmu Komputer FMIPA Universitas Lampung.

6. Ibu Anita, A.Md., selaku staff administrasi Jurusan Ilmu Komputer yang telah memberikan kemudahan dalam menyelesaikan administrasi pengerjaan skripsi. 7. Seluruh dosen dan karyawan Jurusan Ilmu Komputer FMIPA Universitas

Lampung.

8. Novi Hardiansyah teman seperjuangan bimbingan

9. M.Harry, Rick Andreas, Tubagus Riki, Rian Pandu, Lona, Dina, Oyen, Rika, Risa, Revi, Imam, Tanto, Choi, Dimas, Handika, Fajar, Irul, Herman serta seluruh teman-teman Ilmu Komputer angkatan 2010 atas segala motivasi, masukan, dan kebersamaan yang telah diberikan.

Penulis menyadari bahwa skripsi ini masih memiliki banyak kekurangan. Oleh karena itu Penulis sangat mengharapkan kritik dan saran yang membangun. Semoga skripsi ini dapat bermanfaat bagi kita semua.

Bandarlampung, April 2015 Penulis,

Ady Candra NPM 1017032014


(21)

BAB I PENDAHULUAN

1.1Latar Belakang

Graf adalah bagian dari bidang ilmu matematika yang dapat digunakan untuk mencari suatu solusi dalam permasalahan. Dalam kehidupan sehari-hari, graf dapat digunakan sebagai visualisasi objek-objek dengan menggambarkan bermacam-macam struktur sehingga lebih mudah dimengerti. Contoh graf yang sering dijumpai di kehidupan sehari-hari yaitu bagan alir dan rangkaian listrik.

Sejarah teori graf berawal pada abad ke-18 dari masalah jembatan Konigsberg yang melalui sungai Pregel di Kaliningrat, Rusia dan diselesaikan oleh Leonhard Euler. Terdapat tujuh jembatan yang menghubungkan daratan yang dibelah oleh sungai Pregel. Permasalahannya adalah menentukan apakah mungkin melakukan perjalanan yang dimulai dari satu daratan dan melalui setiap jembatan tersebut hanya satu kali serta kembali ke tempat semula.

Pada tahun 1736 Leonhard Euler membuktikan masalah tersebut dengan memodelkan masalah kedalam bentuk graf dan Leonhard Euler berhasil menyelesaikan masalah tersebut bahwa tidak mungkin melewati jembatan tersebut hanya satu kali jika jumlah derajat tiap titik tidak genap, sehingga model graf tersebut dikenal sebagai graf Eulerian.


(22)

2

Daya tarik teori graf adalah penerapan yang sangat luas, mulai dari ilmu komputer, kimia, fisika, biologi, sosiologi, teknik kelistrikan, ekonomi, manejemen, pemasaran, hingga pemecahan teka-teki dan permainan asah otak.

Tree (pohon) merupakan salah satu struktur yang ada di dalam suatu graf dan banyak digunakan dalam merepresentasikan suatu masalah khususnya dalam ilmu komputer dan teknologi. Kode Huffman adalah string biner yang digunakan untuk mengkodekan setiap karakter di dalam kode. Dalam pemrosesannya kode Huffman menggunakan struktur pohon/tree. Fungsi utama dari pohon Huffman adalah proses Encoding dan Decoding. Encoding adalah cara menyusun string biner dari data yang ada. Proses ini dimulai dengan membuat pohon Huffman, kemudian kode untuk satu karakter dibuat dengan menyusun nama string biner yang dibaca dari akar hingga daun pohon Huffman. Decoding adalah kebalikan dari proses encoding, dimana mengembalikan data string menjadi data semula.

Menurut Ramdan dan Hermawan (2012), mengkonversi suatu graf tree menjadi sebuah kode atau sebaliknya dapat dilakukan dengan berbagai metode, salah satunya adalah menggunakan matriks adjacency. Matriks adjacency dalam kehidupan sehari-hari dapat digunakan untuk optimasi rute jalan. Namun penggunaan matriks adjacency terdapat kekurangan yaitu tidak dapat merepresentasikan tree yang memiliki arah. Matriks adjacency hanya berupa tabel yang berisikan 0 dan 1 yang tidak mempunyai arah. Salah satu metode yang dapat digunakan untuk merepresentasikan tree berarah menjadi sebuah kode maupun sebaliknya adalah Blob code.


(23)

3

Zayadi (2010) melakukan penelitian tentang pengkodean suatu tree menggunakan metode Blob code dan Prufer code, memberikan ciri-ciri suatu kode, dan memberikan pemahaman dalam menentukan konstruksi tree dari suatu pengkodean Blob code dan Prufer code, dalam penelitian ini Zayadi (2010) belum mengembangkan aplikasi untuk pengkodean tersebut.

Pada penelitian ini dikembangkan aplikasi untuk encode dan decode tree dengan menggunakan Blob code dan memberikan studi kasus optimasi biaya instalasi pipa air dengan Blob Code.

1.2Rumusan Masalah

Berdasarkan latar belakang yang telah dipaparkan tersebut, maka rumusan masalah yang dikaji dari penelitian ini yaitu bagaimana membangun sistem encode dan decode tree menggunakan Blob code.

1.3Batasan Masalah

Batasan masalah dalam penelitian ini adalah sebagai berikut.

1. Metode encode dan decode tree hanya menggunakan metode Blob code. 2. Metode Blob code yang digunakan hanya diterapkan pada graf berarah. 3. Titik tree yang digunakan maksimal 50 titik.


(24)

4

1.4Tujuan Penelitian

Tujuan dari penelitian ini adalah membangun sistem encode dan decode tree menggunakan Blob code.

1.5Manfaat Penelitian

Manfaat yang diperoleh dari penelitian ini adalah pengguna dapat dengan mudah mengkonstruksi kode Blob menjadi tree dan dari tree menjadi kode Blob.


(25)

5

BAB II

TINJAUAN PUSTAKA

Pada bab ini diberikan definisi-definisi, istilah-istilah yang digunakan dalam penelitian.

2.1 Konsep Dasar Teori Graf

2.1.1 Graf

Graf merupakan representasi dari suatu masalah yang digambarkan sebagai sekumpulan titik (vertex) yang dihubungkan dengan sekumpulan garis (edge) ( Afrianto dan Jamilah, 2012).

Suatu graf G (V,E) terdiri dari dua bagian yaitu sebagai berikut.

(i) Suatu himpunan V=V(G) yang memiliki elemen-elemen yang dinamakan vertex, titik atau node, dengan V≠Ø.

(ii) Suatu kumpulan E=E(G) yang merupakan pasangan terurut dari titik-titik yang berbeda dinamakan edge atau garis (Lipschutz dan Lipson, 2002).

Macam macam graf dilihat dari strukturnya ada 6 macam graf yaitu sebagai berikut:


(26)

6

1. Multigraph

Multigraph adalah graf yang mempunyai satu atau lebih pasangan garis yang menghubungkan 2 titik.

2. Pseudograph

Pseudograph adalah graf yang memiliki satu atau lebih pasangan garis yang menghubungkan 2 titik (multigraph) dan memiliki satu atau lebih loop pada satu titik tersebut.

3. Null Graph

Null Graph adalah graf yang hanya terdiri dari satu titik. 4. Graf Lengkap

Graf lengkap adalah graf yang setiap pasang titiknya terdapat garis yang menghubungkannya.

5. Graf Teratur

Graf Teratur adalah graf yang setiap titiknya mempunyai garis yang menempel padanya dengan jumlah yang sama.

6. Bipartit Graf

Bipartit Graf adalah graf yang himpunan titiknya dapat dibagi dua yaitu

� =�1 �2, �1 �2= 0, dan ∀� ∈ �, ∈ �1, ∈ �2 (Wibisono,2010).

Hubungan atau lintasan antar titik dalam sebuah grap dapat dibedakan menjadi beberapa jenis, sebagai berikut.

1. Walk

Walk adalah suatu barisan berhingga yang terdiri dari garis dan titik bergantian, dimana tidak ada garis yang digunakan lebih dari satu kali. Walk yang diawali dan diakhiri dengan titik yang sama disebut walk tertutup,


(27)

7

sedangkan yang diakhiri dan diawali dengan titik yang berbeda disebut walk terbuka.

2. Path

Path merupakan walk terbuka dimana tidak ada titik yang digunakan lebih dari sekali (Zayadi, 2010).

2.1.2 Labeled Graph

Sebuah graf G dikatakan berlabel jika garis dan atau titik-titiknya diberikan berupa data (Lipschutz dan Lipson, 2002). Dalam menggambarkan sebuah logika suatu kejadian suatu graf sering kali diberi label/ bobot, graf demikian disebut labeled graph (Wibisono, 2010).

2.1.3 Derajat atau Degree

Menurut Wibisono (2010), suatu titik dalam graf dapat mempunyai 1 atau lebih garis yang terhubung padanya atau tidak ada satupun garis yang terhubung padanya. Derajat suatu titik adalah banyaknya garis yang terhubung pada titik tersebut. Titik ganjil adalah titik yang derajatnya ganjil. Titik genap adalah titik yang derajatnya genap.

Contoh berikut adalah graf yang berbeda-beda derajat pada titiknya


(28)

8

Derajat titiknya adalah: deg (A) = 4

deg (B) = 3 deg (C) = 2 deg (D) = 3

deg (E) = 4 deg (F) = 3 deg (H) = 2 deg (I) = 3 Jumlah degree = 24

Jumlah garis = 12

Jumlah degree = 2 kali jumlah garis

2.2 Graf Berarah (Directed Graph)

Suatu graf berarah atau digraph G terdiri dari.

(i) Suatu himpunan V=V(G) yang elemen-elemennya disebut titik atau garis.

(ii) Suatu E=E(G) dari pasangan-pasangan titik terurut yang disebut busur atau garis berarah atau garis.

Graf berarah G dikatakan berhingga jika himpunan V dari titik-titiknya dan himpunan E dari busurnya (garis berarah) berhingga (Lipschutz dan Lipson, 2002).

2.3 Indegree dan Outdegree

Derajat sebuah titik pada graf berarah dapat dibagi menjadi dua, sebagai berikut. a) In degree

b) Out degree


(29)

9

Outdegree suatu titik adalah jumlah garis yang keluar dari suatu titik. Titik yang indegree-nya = 0 disebut sumber/asal/source. Titik yang outdegree-nya = 0 disebut tujuan/sink (Wibisono, 2010).

2.4 Pohon (Tree)

Pohon adalah suatu graf yang mempunyai n titik, n-1 garis dan tidak mempunyai lingkaran (cycle free) serta merupakan graf terhubung. Contoh tree dapat dilihat pada Gambar 2.2.

Gambar 2.2 Pohon atau tree

Diagram pohon dapat digunakan sebagai alat untuk memaparkan logika suatu persoalan dengan menggambarkan semua alternatif pemecahannya (Wibisono, 2010).

Menurut Liu (1995), pohon atau tree didefinisikan sebagai suatu graf tak berarah yang terhubung (connected undirected graph) yang tidak mengandung sirkuit. Sifat-sifat yang dimiliki pohon atau tree adalah sebagai berikut.

a) Di dalam suatu pohon, lintasan antara dua titik bersifat tunggal (unik, khas).

b) Di dalam sebuah pohon, jumlah titik satu lebih banyak daripada jumlah garis (e = n-1).


(30)

10

2.5 Pohon Berakar (Rooted Tree)

Suatu tree berakar T terdiri dari sebuah tree bersama-sama dengan sebuah titik berpola (berbentuk) R yang disebut akar dari tree. Pada gambar berikut adalah diagram dari suatu tree berakar dimana akar R muncul pada puncak tree sesuai Gambar 2.3.

Gambar 2.3 Rooted tree (Lipschutz dan Lipson, 2002).

Menurut Wibisono (2010), sama seperti pohon, dalam graf juga mempunyai akar, cabang, daun. Akar pohon adalah titik yang indegree-nya nol ( titik sumber). Setiap titik dapat dianggap atau dijadikan akar, titik yang dianggap sebagai akar ditandai dengan lingkaran yang mengelilingi titik tersebut. Daun pohon adalah setiap titik (bukan akar) yang indegree-nya 1 dan outdegreenya 0. Tinggi pohon adalah panjang garis maksimal dari akar sampai daun.

2.6Encode, Decode, dan Blob Code 2.6.1 Blob Code

Menurut Zayadi (2010), Blob code merupakan metode pengkodean tree dengan melakukan pengumpulan titik-titik dari suatu tree yang diberikan. Titik-titik tersebut dikumpulkan ke dalam suatu himpunan yang dilingkarkan yang disebut


(31)

11

Blob. Metode Blob Code mempertimbangkan path dari suatu titik untuk menentukan kode yang ditampilkan. Path (x) didefinisikan sebagai berikut: path (x) = (x,succ(x), succ(succ(x)),…,0).

2.6.2 Encode

Encode adalah suatu metode untuk melakukan pengkodean ulang terhadap suatu data, sehingga data tersebut apabila dilihat tidak akan sama dengan aslinya, dengan tanpa merusak informasi di dalamnya. Hal ini digunakan agar data yang dikirim tidak bisa diketahui oleh pihak yang tidak berkepentingan (Zayadi, 2010).

2.6.3 Decode

Decode adalah suatu metode pembacaan suatu data yang telah dikirimkan dalam bentuk sandi, kemudian diterjemahkan kembali ke dalam bentuk aslinya (Zayadi, 2010).

Berikut merupakan contoh encode tree (Zayadi, 2010). Diberikan tree dengan 9 titik dan 8 garis.

Langkah-langkah untuk memperoleh kode Blobdari tree di atas adalah sebagai berikut.


(32)

12

2. Tentukan titik dengan index terbesar (n) adalah 8. Kemudian, tentukan path (7) = (7,6,3,1,0) dan Blob= (8). Karena path (7) Blob=∅ maka kode yang tampil B= (succ(Blob), B), yaitu B = (6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan edge Blob→ succ(7). Kemudian, buang garis (7) dan terakhir bentuk Blob= Blob {7},

Kode sementara = (6)

3. Tentukan path (6) = (6,3,1,0) dan Blob = (7,8). Karena path (6) Blob = ∅, maka kode yang tampil B = (succ(Blob), B), yaitu B = (6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob → succ(6). Kemudian, buang garis (6) dan terakhir bentuk Blob = Blob {6},

Kode sementara = (6,6)

4. Tentukan path (5) = (5,3,1,0) dan Blob= (6,7,8). Karena path (5) Blob = ∅, maka kode yang tampil B = (succ(Blob), B), yaitu B = (3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob → succ(5). Kemudian, buang garis (5) dan terakhir bentuk Blob = Blob {5},


(33)

13

5. Tentukan path (4) = (4,3,1,0) dan Blob= (5,6,7,8). Karena path (4) Blob =

∅, maka kode yang tampil B = (succ(Blob), B), yaitu B = (3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob → succ(4). Kemudian, buang garis (4) dan terakhir bentuk Blob = Blob {4},

Kode sementara = (3,3,6,6)

6. Tentukan path (3) = (3,1,0) dan Blob= (4,5,6,7,8). Karena path (3) Blob =

∅, maka kode yang tampil B = (succ(Blob), B), yaitu B = (3,3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob → succ(3). Kemudian, buang garis (3) dan terakhir bentuk Blob = Blob {3},

Kode sementara = (3,3,3,6,6)

7. Tentukan path (2) = (2,1,0) dan Blob= (3,4,5,6,7,8). Karena path (2) Blob = ∅, maka kode yang tampil B = (succ(Blob), B), yaitu B = (3,3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob → succ(2). Kemudian, buang garis (2) dan terakhir bentuk Blob = Blob {2},


(34)

14

8. Tentukan path (1) = (1,0) dan Blob= (2,3,4,5,6,7,8). Karena path (1) Blob = ∅, maka kode yang tampil B = (succ(Blob), B), yaitu B = (1,3,3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob→ succ(1). Kemudian, buang garis (1) dan terakhir bentuk Blob = Blob

{1},

B = (1,1,3,3,3,6,6)

9. Proses encode selesai dan diperoleh B = (1,1,3,3,3,6,6). Berikut merupakan contoh decode tree (Zayadi, 2010). Diberikan kode B = (1,1,3,3,3,6,6)

Langkah-langkah untuk memperoleh konstruksi tree adalah sebagai berikut. 1. Tentukan konstruksi Blob→0 dengan n = 7+1,

B = (1,1,3,3,3,6,6)

2. Tentukan path (1) = (1,0) dan Blob= (2,3,4,5,6,7,8). Karena path (1) Blob = ∅, maka tambahkan garis 1 → succ(Blob), buang garis succ(Blob), lalu tambahkan garis Blob → b1, yaitu garis Blob →1. Kemudian buang angka 1


(35)

15

B = (1,3,3,3,6,6)

3. Tentukan path (1) = (1,0) dan Blob= (3,4,5,6,7,8). Karena path (1) Blob =

∅, maka tambahkan garis 2 → 1, buang garis Blob →1, lalu tambahkan garis Blob→ b1, yaitu garis Blob→ 1. Kemudian buang angka 1 pada B, sehingga

B = (3,3,3,6,6),

B = (3,3,3,6,6)

4. Tentukan path (3) = (3,1,0) dan Blob= (4,5,6,7,8). Karena path (3) Blob =

∅, maka tambahkan garis 3 → 1, buang garis Blob →3, lalu tambahkan garis Blob→ b1, yaitu garis Blob→ 3. Kemudian buang angka 3 pada B, sehingga

B = (3,3,6,6),

B = (3,3,6,6)

5. Tentukan path (3) = (3,1,0) dan Blob = (5,6,7,8). Karena path (3) Blob= ∅, maka tambahkan garis 4 → 3, buang garis Blob → 3, lalu tambahkan garis Blob→ b1, yaitu garis Blob→ 3. Kemudian buang angka 3 pada B, sehingga


(36)

16

B = (3,6,6)

6. Tentukan path (3) = (3,1,0) dan Blob = (6,7,8). Karena path (3) Blob = ∅, maka tambahkan garis 5 → 3, buang garis Blob → 3, lalu tambahkan garis Blob→ b1, yaitu garis Blob→ 3. Kemudian buang angka 3 pada B, sehingga

B = (6,6),

B = (6,6)

7. Tentukan path (6) = (6,3,1,0) dan Blob = (7,8). Karena path (6) Blob = ∅, maka tambahkan garis 6 → 3, buang garis Blob → 3, lalu tambahkan garis Blob→ b1, yaitu garis Blob→ 6. Kemudian buang angka 6 pada B, sehingga

B = (6),

B = (6)

8. Tentukan path (6) = (6,3,1,0) dan Blob = (8). Karena path (6) Blob = ∅, maka tambahkan garis 7 → 6, buang garis Blob → 6, lalu tambahkan garis


(37)

17

Blob→ b1, yaitu garis Blob→ 6. Kemudian buang angka 6 pada B, sehingga

B = ( ),

B = ( ) 9. Diperoleh original tree berikut.

2.7 Extreme Programming

Menurut Widodo dan Subekti (2006) saat ini metode yang digunakan dalam pengembangan sistem udah cukup banyak berkembang, macam-macam metode pengembangansistem adalah:

1. eXtreme Programming (XP) 2. Scrum Methodology

3. Crystal Family

4. Dynamic Systems Development Method (DSDM) 5. Adaptive Software Development (ASD)

6. Feature Driven Development (FDD)

Salah satu model yang umum digunakan dalam agile methods adalah extreme programing (XP). Model ini merupakan metode pengembangan perangkat lunak


(38)

18

yang ringan dan dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. XP merupakan agile methods yang paling banyak digunakan dan menjadi suatu pendekatan yang sangat terkenal. Sasaran XP adalah tim yang dibentuk berukuran antara kecil sampai sedang saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat (Widodo dan Subekti, 2006).

Menurut Pressman (2010) terdapat 4 tahapan pada pengembangan perangkat lunak yang menggunakan XP terdiri dari planning seperti memahami kriteria pengguna dan perencanaan pengembangan, designing seperti perancangan prototype dan tampilan, coding termasuk pengintegrasian, dan yang terakhir adalah testing.

Unsur-unsur lain dari Extreme Programming meliputi pair programming pada tahapan coding, pengujian unit semua kode, menghindari fitur-fitur pemrograman sampai mereka benar-benar diperlukan, struktur manajemen yang datar, kesederhanaan dan kejelasan dalam kode, dan seringnya terjadi komunikasi antara programmer dan pelanggan ketika terjadi perubahan kebutuhan pelanggan seiring berlalunya waktu.


(39)

19


(40)

BAB III

METODE PENELITIAN

3.1 Tempat Dan Waktu Penelitian

Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika Dan Ilmu Pengetahuan Alam Universitas Lampung. Waktu penelitian dilaksanakan dari bulan September 2014 sampai bulan Februari 2015.

3.2 Keperluan Sistem

Untuk dapat membangun aplikasi encode dan decode tree menggunakan Blob code dibutuhkan beberapa perangkat baik berupa hardware dan software.

3.2.1 Hardware

Untuk menjalankan sistem ini dibutuhkan sebuah unit komputer, sedangkan untuk mengembangkan sistem ini hardware yang digunakan dalam pengembangan sistem ini adalah satu unit komputer dengan spesifikasi sebagai berikut.

1. Prosesor Intel CoreTM i3 2330M 2. 2 GB RAM DDR3

3. 500 GB Harddisk


(41)

21

3.2.2 Software

Software yang digunakan dalam pengembangan sistem ini antara lain. 1. Sistem operasi Windows 7 Ultimate 32 Bit

Sistem operasi ini digunakan sebagai perangkat lunak utama yang akan menjalankan perintah operator terhadap mesin dan software lainnya.

2. Adobe Dreamweaver CS6

Adobe dreamweaver digunakan sebagai source code editor. 3. Google Chrome 41

Google Chrome digunakan sebagai tempat atau lokasi untuk mengetes sistem. 4. XAMPP Server Version 1.8.1

Software ini digunakan sebagai server lokal (localhost) dan server MySQL pada sistem.

5. Enterprise Architecture

Software ini digunakan untuk membuat desain UML.

3.3 Metode Penelitian

Dalam penelitian ini dilakukan beberapa tahapan penelitian. Berikut adalah tahapan-tahapan penelitian yang dilakukan.


(42)

22

Gambar 3.1 Bagan Penelitian

3.3.1 Analisis Masalah

Pada tahap ini dilakukan analisis permasalahan yang dijadikan topik penelitian. Permasalahan yang dijadikan topik penelitian ini adalah membangun sebuah aplikasi encode dan decode tree menggunakan Blob code.

3.3.2 Studi Literatur

Pada tahap ini dilakukan pengumpulan data-data yang berhubungan dengan topik


(43)

23

3.3.3 Analisis Kebutuhan

Pada tahap ini dibangun sebuah sistem encode dan decode tree menggunakan Blob code. Langkah pertama adalah menganalisis input yang bisa digunakan serta mendapatkan hasilnya.

3.3.4 Desain

Setelah dilakukan analisis terhadap kebutuhan-kebutuhan yang diperlukan dalam pembuatan aplikasi ini, tahap selanjutnya yaitu tahap desain. Dalam tahap ini semua kebutuhan yang telah dianalisis dirancang menjadi usecase diagram, activity diagram, dan sequence diagram.

3.3.4.1.Use case Diagram

Sistem ini digunakan oleh seorang actor yaitu user. User dapat menginputkan decode tree dan juga dapat mengiinputkan encode tree sesuai usecase pada Gambar 3.2.


(44)

24

3.3.4.2.Activity Diagram

Activity Diagram dibuat berdasarkan dengan usecase diagram. Aplikasi ini memiliki 3 aktivitas yaitu lihat beranda, encode tree dan decode tree. Aktivitas lihat beranda merupakan proses untuk dapat melihat halaman awan aplikasi. Pada halaman beranda terdapat petunjuk penggunaan aplikasi, proses ini dapat dilihat pada Gambar 3.3.

Gambar 3.3 Activity diagram lihat beranda

Aktivitas encode tree terdapat 2 proses yaitu encode random dan encode manual. Encode random merupakan proses memilih jumlah titik tree yang akan diacak kemudian diubah menjadi sebuah tree dan mendapatkan kode Blob dari tree yang telah dirandom tersebut. Sedangkan encode manual merupakan proses menginput kode tree yang kemudian akan diubah menjadi bentuk tree dan didapat kode Blobnya. Proses ini dapat dilihat pada Gambar 3.4.


(45)

25

Gambar 3.4 Activity encode tree

Aktivitas decode tree merupakan proses memasukkan kode Blob menjadi bentuk tree. Proses ini dapat dilihat pada Gambar 3.5.


(46)

26

Gambar 3.5 Activity diagram encode tree

3.3.4.3 Sequence Diagram

Langkah selanjutnya dari tahap desain adalah pembuatan sequence diagram. Jumlah sequence diagram yang dibuat harus sesuai dengan activitydiagram.

Pada Gambar 3.6 dijelaskan tentang sequence diagram melihat beranda, dimana user meminta tampilan awal aplikasi.


(47)

27

Pada Gambar 3.7 dijelaskan tentang sequence diagram encode tree, dimana terdapat 2 pilihan proses yaitu encode random dan encode manual. Proses encode manual user meminta interface encode tree kemudian menginputkan tree sehingga dihasilkan kode Blob. Sedangkan pada proses encode random, user meminta interface encode tree kemudian memilih jumlah titik tree yang akan dirandom menjadi tree sehingga dihasilkan kode Blob.

Gambar 3.7 Sequence diagramencode tree

Pada Gambar 3.8 dijelaskan tentang sequence diagram dencode tree, dimana user meminta interface decode tree, kemudian menginputkan kode Blob sehingga dihasilkan gambar berupa tree.


(48)

28


(49)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut.

1. Aplikasi encode dan decode tree menggunakan Blob code telah berhasil dibangun sesuai dengan kebutuhan.

2. Fungsi encode telah berhasil mengubah tree menjadi kode Blob. 3. Fungsi decode telah berhasil mengubah kode Blob menjadi tree.

5.2 Saran

Saran yang dapat diberikan setelah dilakukan penelitian ini untuk pengembangan lebih lanjut adalah sebagai berikut.

1. Dalam pengembangan aplikasi yang selanjutnya dapat digunakan lebih dari 50 titik untuk membuat tree.

2. Dalam pengembangan aplikasi yang selanjutnya dapat merapikan kembali titik-titik tree sehingga tidak ada yang saling tumpang tindih.

3. Karena keterbatasan pemrograman PHP, disarankan penelitian berikutnya dapat menggunakan OOP yang lain seperti java, C++, dan lain-lain.


(50)

DAFTAR PUSTAKA

Afrianto, I. dan Jamilah, Euis W. 2012. Penyelesaian Masalah Spanning Tree (MST) Menggunakan Ant Colony System (ACS). Bandung: Program StudiTeknik Informatika UNIKOM. Jurnal Komputer dan Informatika (KOMPUTA)Vol. 1. No. 2. Oktober 2012.

Lipschutz, S. dan Lipson, M., L. 2002. Matematika Diskrit jilid 2. Tim Editor Penerbit Salemba Teknika. Salemba Teknika: Jakarta

Liu, C. L. 1995. Dasar-Dasar Matematika Diskrit. Dialih Bahasakan oleh Bambang Sumantri. PT Gramedia Pustaka Utama: Jakarta.

Pressman, R., S. 2010. Software Engineering A Practitioner’s Approach 7th Edition. McGraw-Hill: New York.

Ramdan, Dani dan Hermawan, Galih. 2012. Pemanfaatan Metode Adjacency Matrix Untuk Optimasi Rute Jalan Berbasis Web. Bandung: Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Jurnal Komputer dan Informatika (KOMPUTA)Vol. 1. Maret 2012.

Wibisono, Samuel. 2010. Matematika Diskrit. Graha Ilmu: Yogyakarta.

Widodo dan Subekti. M. 2006. Requirements Management pada Extreme Programming. Seminar Nasional Aplikasi Teknologi Informasi (SNATI). ISSN 1907-5022: Yogyakarta.

Zayadi, Wahyu Emir. 2010. Teknik Encode Dan Decode Tree Menggunakan Blob Code Dan Prufer Code. Skripsi.Universitas Lampung: Lampung.


(1)

25

Gambar 3.4 Activity encode tree

Aktivitas decode tree merupakan proses memasukkan kode Blob menjadi bentuk tree. Proses ini dapat dilihat pada Gambar 3.5.


(2)

Gambar 3.5 Activity diagram encode tree

3.3.4.3 Sequence Diagram

Langkah selanjutnya dari tahap desain adalah pembuatan sequence diagram. Jumlah sequence diagram yang dibuat harus sesuai dengan activity diagram.

Pada Gambar 3.6 dijelaskan tentang sequence diagram melihat beranda, dimana user meminta tampilan awal aplikasi.


(3)

27

Pada Gambar 3.7 dijelaskan tentang sequence diagram encode tree, dimana terdapat 2 pilihan proses yaitu encode random dan encode manual. Proses encode manual user meminta interface encode tree kemudian menginputkan tree sehingga dihasilkan kode Blob. Sedangkan pada proses encode random, user meminta interface encode tree kemudian memilih jumlah titik tree yang akan dirandom menjadi tree sehingga dihasilkan kode Blob.

Gambar 3.7 Sequence diagram encode tree

Pada Gambar 3.8 dijelaskan tentang sequence diagram dencode tree, dimana user meminta interface decode tree, kemudian menginputkan kode Blob sehingga dihasilkan gambar berupa tree.


(4)

(5)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut.

1. Aplikasi encode dan decode tree menggunakan Blob code telah berhasil dibangun sesuai dengan kebutuhan.

2. Fungsi encode telah berhasil mengubah tree menjadi kode Blob. 3. Fungsi decode telah berhasil mengubah kode Blob menjadi tree.

5.2 Saran

Saran yang dapat diberikan setelah dilakukan penelitian ini untuk pengembangan lebih lanjut adalah sebagai berikut.

1. Dalam pengembangan aplikasi yang selanjutnya dapat digunakan lebih dari 50 titik untuk membuat tree.

2. Dalam pengembangan aplikasi yang selanjutnya dapat merapikan kembali titik-titik tree sehingga tidak ada yang saling tumpang tindih.

3. Karena keterbatasan pemrograman PHP, disarankan penelitian berikutnya dapat menggunakan OOP yang lain seperti java, C++, dan lain-lain.


(6)

DAFTAR PUSTAKA

Afrianto, I. dan Jamilah, Euis W. 2012. Penyelesaian Masalah Spanning Tree (MST) Menggunakan Ant Colony System (ACS). Bandung: Program StudiTeknik Informatika UNIKOM. Jurnal Komputer dan Informatika (KOMPUTA) Vol. 1. No. 2. Oktober 2012.

Lipschutz, S. dan Lipson, M., L. 2002. Matematika Diskrit jilid 2. Tim Editor Penerbit Salemba Teknika. Salemba Teknika: Jakarta

Liu, C. L. 1995. Dasar-Dasar Matematika Diskrit. Dialih Bahasakan oleh Bambang Sumantri. PT Gramedia Pustaka Utama: Jakarta.

Pressman, R., S. 2010. Software Engineering A Practitioner’s Approach 7th Edition. McGraw-Hill: New York.

Ramdan, Dani dan Hermawan, Galih. 2012. Pemanfaatan Metode Adjacency Matrix Untuk Optimasi Rute Jalan Berbasis Web. Bandung: Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Jurnal Komputer dan Informatika (KOMPUTA)Vol. 1. Maret 2012.

Wibisono, Samuel. 2010. Matematika Diskrit. Graha Ilmu: Yogyakarta.

Widodo dan Subekti. M. 2006. Requirements Management pada Extreme Programming. Seminar Nasional Aplikasi Teknologi Informasi (SNATI). ISSN 1907-5022: Yogyakarta.

Zayadi, Wahyu Emir. 2010. Teknik Encode Dan Decode Tree Menggunakan Blob Code Dan Prufer Code. Skripsi. Universitas Lampung: Lampung.