• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
26
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Teori Graf

Teori graf merupakan pokok bahasan yang banyak penerapannya pada masa kini [2]. Pemakaian teori graf telah banyak dirasakan dalam berbagai ilmu, antara lain: optimisasi jaringan, ekonomi, psikologi, genetika, riset operasi (OR), dan lain-lain. Makalah pertama tentang teori graf ditulis pada tahun 1736 oleh seorang matematikawan Swiss yang bernama Leonard Euler. Ia menggunakan teori graf untuk menyelesaikan masalah jembatan Königsberg [5] (sekarang, bernama Kaliningrad). Berikut adalah ilustrasi masalah tersebut:

Gambar 2.1 Masalah Jembatan Königsberg

Masalah yang dikemukakan Euler: Dapatkah melewati setiap jembatan tepat sekali dan kembali lagi ke tempat semula? Berikut adalah sketsa yang merepresentasikan ilustrasi jembatan Königsberg yang pada gambar diatas. Himpunan titik yaitu {A, B, C, D} merepresentasikan sebagai daratan, dan garis yang menghubungkan titik-titik tersebut adalah sebagai jembatan.

(2)

Gambar 2.2 Representasi Graf dari Masalah Jembatan Königsberg

Jawaban pertanyaan Euler adalah tidak mungkin. Agar bisa melalui setiap jembatan tepat sekali dan kembali lagi ke tempat semula maka jumlah jembatan yang menghubungkan setiap daratan harus genap.

2.1.1 Definisi Graf

Graf merupakan struktur diskrit yang terdiri himpunan sejumlah berhingga obyek yang disebut simpul (vertices, vertex) dan himpunan sisi (edges) yang menghubungkan simpul-simpul tersebut [8]. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Notasi sebuah graf adalah G = (V, E), dimana:

• V merupakan himpunan tak kosong dari simpul-simpul (vertices), misalkan V = { v1 , v2 , ... , vn }

• E merupakan himpunan sisi – sisi (edges) yang menghubungkan sepasang simpul, misalkan E = {e1 , e2 , ... , en }

Contoh:

(3)

Gambar 2.3 Graf dari Masalah Jembatan Königsberg

2.1.2 Macam – macam Graf

Macam – macam graf menurut arah dan bobotnya, graf dibagi menjadi empat bagian [8], yaitu:

1) Graf berarah dan berbobot: setiap edge mempunyai arah (yang ditunjukkan dengan anak panah) dan bobot. Gambar 2.4 adalah contoh graf berarah dan berbobot yang terdiri dari tujuh vertek yaitu vertek A, B, C, D, E, F, G. Vertek A mempunyai dua edge yang masing – masing menuju ke vertek B dan vertek C, vertek B mempunyai tiga edge yang masing – masing menuju ke vertek C, vertek D dan vertek E. Bobot antara vertek A dan vertek B pun telah di ketahui.

Gambar 2.4 Graf Berarah dan Berbobot

2) Graf tidak berarah dan berbobot: setiap edge tidak mempunyai arah tetapi mempunyai bobot. Gambar 2.5 adalah contoh graf tidak berarah dan berbobot.

(4)

Graf terdiri dari tujuh vertek yaitu vertek A, B, C, D, E, F, G. Vertek A mempunyai dua edge yang masing – masing berhubungan dengan vertek B dan

vertek C, tetapi dari masing – masing edge tersebut tidak mempunyai arah. Edge

yang menghubungkan vertek A dan vertek B mempunyai bobot yang telah diketahui begitu pula dengan edgeedge yang lain.

Gambar 2.5 Graf Tidak Berarah dan Berbobot

3) Graf berarah dan tidak berbobot: setiap edge mempunyai arah tetapi tidak mempunyai bobot. Gambar 2.6 adalah contoh graf berarah dan tidak berbobot.

Gambar 2.6 Graf Berarah dan Tidak Berbobot

4) Graf tidak berarah dan tidak berbobot: setiap edge tidak mempunyai arah dan tidak terbobot. Gambar 2.7 adalah contoh graf tidak berarah dan tidak berbobot.

(5)

Gambar 2.7 Graf Tidak Berarah dan Tidak Berbobot

2.1.3 Matriks Ketetanggaan (adjacency matrix) dan Matriks Bersisian (incidency matrix) dari Suatu Graf

Matriks bertetanggaan

Dua buah simpul dikatakan bertetangga jika kedua simpul tersebut terhubung langsung oleh suatu sisi [8]. Matriks ketetanggaan untuk graf sederhana merupakan

matriks busur sangkar yang unsur-unsurnya hanya terdiri dari dua bilangan yaitu 0 (nol) dan 1 (satu). Baris dan kolom pada matriks ini, masing-masing merupakan representasi dari setiap simpul pada graf tersebut. Misalkan 𝑎𝑎𝑖𝑖𝑖𝑖 merupakan unsur pada

matriks tersebut, maka:

a) Jika 𝑎𝑎𝑖𝑖𝑖𝑖 = 1 maka hal ini berarti simpul i dan simpul j bertetangga. b) Jika 𝑎𝑎𝑖𝑖𝑖𝑖 = 0 maka hal ini berarti simpul i dan simpul j tidak bertetangga. Contoh:

Perhatikan graf sederhana berikut ini:

Gambar 2.8 Graf Sederhana

(6)

Tabel 2.1 Matriks Ketetanggaan dari Graf Sederhana P Q R S A 0 1 0 1 B 1 0 1 1 C 0 1 0 1 D 1 1 1 0

Terlihat bahwa matriks tersebut simetris dan setiap unsur diagonalnya adalah nol (0). Matriks ketetanggaan untuk graf tak sederhana merupakan matriks bujur sangkar yang unsur-unsurnya hanya terdiri dari bilangan 0 (nol), 1 (satu) dan 2 (dua). Baris dan kolom pada matriks ini, masing-masing merupakan representasi dari setiap simpul pada graf tersebut. Misalkan 𝑎𝑎𝑖𝑖𝑖𝑖 merupakan unsur pada matriks tersebut, maka:

a) Jika 𝑎𝑎𝑖𝑖𝑖𝑖 = n maka hal ini berarti simpul i dan simpul j bertetangga oleh n buah sisi. b) Jika 𝑎𝑎𝑖𝑖𝑖𝑖 = 0 maka hal ini berarti simpul i dan simpul j tidak bertetangga.

Contoh:

Perhatikan graf dari masalah jembatan Königsberg:

Gambar 2.9 Graf dari Masalah Jembatan Königsberg

Matriks ketetanggaan dari graf tersebut adalah sebagai berikut:

Tabel 2.2 Matriks ketetanggaan Graf dari Masalah Jembatan Königsberg

P Q R S

A 0 2 2 1

B 2 0 1 1

C 2 1 0 1

(7)

Matriks Bersisian

Sementara itu, suatu sisi e dikatakan bersisian dengan simpul v1 dan simpul v2 jika e menghubungkan kedua simpul tersebut, dengan kata lain e = (v1, v2) [8]. Seperti halnya matriks ketetanggaan, unsur-unsur matriks bersisian pun hanya terdiri dari dua bilangan yaitu 0 (nol) dan 1 (satu), tapi tidak harus bujur sangkar. Hal ini disebabkan, baris dan kolom pada matriks bersisian, masing-masing merepresentasikan simpul dan sisi pada graf yang dimaksud. Misalkan 𝑎𝑎𝑖𝑖𝑖𝑖 merupakan unsur pada matriks tersebut, maka:

a) Jika 𝑎𝑎𝑖𝑖𝑖𝑖 = 1 maka hal ini berarti simpul ke-i dan sisi ke-j adalah bersisian. b) Jika 𝑎𝑎𝑖𝑖𝑖𝑖 = 0 maka hal ini berarti simpul ke-i dan sisi ke-j tidak bersisian.

Contoh:

Perhatikan graf berikut ini:

Gambar 2.10 Graf dari Masalah Jembatan Königsberg

Bentuk matriks bersisian dari graf tersebut adalah:

Tabel 2.3 Matriks Bersisian Graf dari Masalah Jembatan Königsberg

𝒆𝒆𝒆𝒆 𝒆𝒆𝒆𝒆 𝒆𝒆𝒆𝒆 𝒆𝒆𝒆𝒆 𝒆𝒆𝒆𝒆 𝒆𝒆𝒆𝒆 𝒆𝒆𝒆𝒆

A 1 1 1 1 0 1 0

B 0 0 1 1 1 0 0

C 1 1 0 0 0 0 1

(8)

2.1.4 Lintasan dan Sirkuit Euler serta Lintasan dan Sirkuit Hamilton

• Lintasan dan Sirkuit Euler

Lintasan Euler dalam suatu graf merupakan lintasan yang melalui masing-masing sisi di dalam graf tersebut tepat satu kali [8]. Jika lintasan tersebut kembali kesimpul awal sehingga membentuk lintasan tertutup (sirkuit) maka lintasan ini dinamakan sirkuit

Euler. Dengan demikian, sirkuit Euler merupakan sirkuit yang melewati masing-masing sisi tepat satu kali. Graf yang memuat sirkuit Euler dinamakan graf Euler

(Eulerian graph), sedangkan graf yang memuat lintasan Euler dinamakan graf semi

Euler (semi-Euleriangraph).

Contoh:

Perhatikan graf berikut ini:

Gambar 2.11 Graf Euler

Graf G1 merupakan graf Euler karena memiliki lintasan yang membentuk lintasan tertutup (sirkuit), yaitu: pr – rt – ts – sq – qt – tp. Sementara itu,

Gambar 2.12 Graf Semi Euler

Terlihat bahwa graf G2 merupakan graf semi Euler karena graf tersebut memiliki lintasan yang melalui masing-masing sisi didalam graf tersebut tepat satu kali. Lintasan tersebut adalah: pq – qs – st – tp – pr – rt – tq.

(9)

• Lintasan dan Sirkuit Hamilton

Lintasan Hamilton suatu graf merupakan lintasan yang melalui setiap simpul dalam

graf tersebut tepat satu kali [8]. Jika lintasan tersebut kembali kesimpul awal, sehingga membentuk lintasan tertutup (sirkuit) maka lintasan ini dinamakan sirkuit Hamilton.

Dengan demikian, sirkuit Hamilton merupakan sirkuit yang melewati masing-masing sisi tepat satu kali. Graf yang memuat sirkuit Hamilton dinamakan graf Hamilton (Hamiltonian graph), sedangkan graf yang memuat lintasan Hamilton

dinamakan graf semi Hamilton (semi- Hamiltoniangraph).

Contoh:

Perhatikan tiga graf di bawah ini:

Gambar 2.13 graf

Graf G1 merupakan graf semi Hamilton, lintasan hamiltonya adalah: s – r – p – q – r.

Sedangkan graf G2 merupakan grafHamilton, sirkuit hamiltonya adalah: t – p – r – q – p – s – q – t .

Sementara itu pada graf G3 tidak terdapat lintasan maupun sirkuit Hamilton.

2.2 Optimasi

(10)

Optimasi merupakan masalah yang berhubungan dengan keputusan yang terbaik, maksimum, minimum dan memberikan cara penentuan solusi yang memuaskan [7].

2.2.2 Permasalahan Optimasi

Permasalahan yang berkaitan dengan optimisasi sangat kompleks dalam kehidupan sehari-hari. Nilai optimal yang didapat dalam optimisasi dapat berupa besaran panjang, waktu, jarak, dan lain-lain. Berikut ini adalah termasuk beberapa persoalan optimisasi [7]:

• Menentukan lintasan terpendek dari suatu tempat ke tempat yang lain.

• Menentukan jumlah pekerja seminimal mungkin untuk melakukan suatu proses produksi agar pengeluaran biaya pekerja dapat diminimalkan dan hasil produksi tetap maksimal.

• Mengatur rute kendaraan umum agar semua lokasi dapat dijangkau.

• Mengatur routing jaringan kabel telepon agar biaya pemasangan kabel tidak terlalu besar dan penggunaannya tidak boros.

2.3 Travelling Salesman Problem

Travelling Salesman Problem merupakan permasalahan pencarian jalur terdekat dari satu titik ke satu titik itu lagi [3]. Penyelesaian persoalan ini melibatkan banyak lintasan dengan jarak yang berbeda. Solusi merupakan salah satu dari sekian banyak alternatif jalur yang diambil. Pencarian jalur terdekat (TSP) dapat diaplikasikan dalam banyak hal, karena itu sampai saat ini penyelesaian yang paling baik masih terus dicari. Berbagai metode sudah ada dan dapat digunakan untuk menyelesaikan persoalan ini. Metode-metode tersebut bervariasi kompleksitas algoritmanya.

(11)

Ant Colony diadopsi dari perilaku koloni semut yang dikenal sebagai sistem semut [4]. Secara alamiah Ant Colony mampu menentukan rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan. Koloni semut dapat menemukan rute terpendek antara sarang dan sumber makanan berdasarkan jejak kaki pada lintasan yang dilalui. Semakin banyak semut yang melalui lintasan maka akan semakin jelas jejak kakinya. Hal ini akan menyebabkan lintasan yang dilalui semut dalam jumlah sedikit, semakin lama akan semakin berkurang kepadatan semut yang melewatinya, atau bahkan akan tidak dilewati sama sekali, dan sebaliknya, lintasan yang dilalui semut dalam jumlah banyak, semakin lama akan semakin bertambah kepadatan semut yang melewatinya, atau bahkan semua semut akan melalui lintasan tersebut.

Mengingat prinsip algoritma yang didasarkan pada perilaku koloni semut dalam menemukan jarak perjalanan paling pendek tersebut, Ant Colony sangat tepat digunakan untuk diterapkan dalam penyelesaian masalah optimasi, salah satunya adalah untuk menentukan jalur terpendek. Secara alamiah koloni semut mampu menemukan rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan. Sebagai ilustrasi koloni semut dalam pencarian rute terpendek dapat dilihat pada Gambar 2.14.

Gambar 2.14 Koloni semut.

Tabel 2.4 merupakan representasi koloni semut dalam dunia nyata dan saat diimplementasikan pada Algoritma Ant Colony.

(12)

Tabel 2.4 Tabel representasi koloni semut

No Kenyataan ACO

1 Habitat alamai Graf

2 Sarang dan makanan Node pada graf; asal dan tujuan

3 Koloni semut Agents

4 Visibilitas 1/jarak(n)

5 Feromon Feromonbuatan;(г)

6 Perilaku mencari makanan

Perjalanan secara acak melalui

graf

2.4.1 Skema Algoritma Ant Colony

Secara logika dan matematik semut-semut dari titik asal yang sama, misalnya sarang, bergerak sendiri-sendiri melewati jalur masing-masing menuju makanan sebagai titik tujuannya. Setelah mereka sampai pada titik tujuan, semut-semut ini di data satu per satu untuk mengetahui jalur yang dilalui beserta jaraknya. Semut yang menempuh jarak terpendek adalah pemenangnya dan jalur yang dilaluinya ditetapkan sebagai jalur terpendek.

Berikut adalah tahapan-tahapan algoritma semut dalam graf:

(13)

a) Pada gambar 2.15.a menunjukkan semut yang akan melakukan perjalanan mencari tempat dimana ada makanan, dari X menuju Y.

b) Semut akan melakukan gerakan secara acak menuju tempat makanan dengan jalur masing-masing. Seperti pada gambar 2.15.b semut berjalan dengan jalurnya masing-masing.

c) Setelah berjalan secara acak berdasarkan jalurnya masing-masing kemudian semut-semut tersebut akan bertemu lagi dimana tempat makanan berada seperti pada gambar 2.15.c

d) Pada saat melakukan perjalanan melalui jalurnya masing-masing, semut meninggalkan feromon sebagai jejak yang akan diikuti oleh semut yang lainnya. Semakin banyak semut dan semakin dekat jarak yang ditempuh maka feromon juga semakin kuat sehingga semut yang lainnya akan mengikuti jalur tersebut. e) Pada optimisasi algoritma Ant Colony, proses tadi akan dilakukan secara berulang

sesuai dengan siklus maksimum yang telah ditentukan.

Pencarian solusi masalah rute terpendek dengan menggunakan algoritma Ant Colony dimulai dengan meletakkan seekor semut pada sembarang vertex awal. Selanjutnya semut tersebut akan memilih vertex berikutnya berdasarkan pengaruh jumlah pheromone yang terakumulasi pada setiap edge yang berpangkal pada vertex

tersebut. Semut kemudian seolah-olah melalui edge tersebut untuk menuju vertex

berikutnya, dengan meletakkan sejumlah pheromone (local updating) berdasarkan formula [7]:

τrs←�1-ε�.τrs+ε.τ0 ……...……….. (2.1) dengan τ0= 1

nCnn dimana:

τrs = intensitas jejak semut (pheromone) antara titik r dan titik s ε = parameter penguapan (evaporasi) pheromone lokal τ0 = intensitas jejak semut (pheromone) awal

n = jumlah titik

(14)

Langkah-langkah dalam menjalankan algoritma Ant Colony:

1. Set jumlah semut, pheromone awal pada setiap edge, jumlah iterasi 2. Lakukan sebanyak jumlah iterasi yang diinginkan

3. Lakukan untuk setiap semut letakkan setiap semut pada setiap node awal.

4. Lakukan pencarian rumah sakit berikutnya, lakukan local updating sampai semua semut mengunjungi semua node.

5. Catat rute terpendek yang didapat lakukan global updating sampai batas iterasi.

Selanjutnya pada setiap akhir iterasi akan dilakukan evaluasi untuk menentukan lintasan yang terbaik dan untuk membuat lintasan tersebut menjadi sedikit kurang disenangi pada iterasi berikutnya, maka dilakukan global updating yang diaplikasikan hanya kepada lintasan yang terbaik sampai dengan iterasi tersebut dengan mengunakan formula [7]: τrs←�1-ρ�.τrs+ρ.∆τrsbest ……...……….. (2.2) dengan ∆τrsbest=� 1 Cbest 0 dimana:

τrs = intensitas jejak semut (pheromone) antara titik r dan titik s ρ = parameter penguapan (evaporasi) pheromone global Cbest = panjang lintasan terbaik keseluruhan

2.5 Android

Android adalah sistem operasi Mobile Phone berbasiskan Linux [12]. Android bersifat

open source yang source codenya diberikan secara gratis bagi para pengembang untuk menciptakan aplikasi mereka agar dapat berjalan di Android.

jika (r,s)

lintasan terbaik

keseluruhan

(15)

2.5.1 Features

Features yang terdapat pada android itu sendiri adalah: Framework Aplikasi, Mesin

Virtual Dalvik, Integrated browser, Grafis, SQLite, Media support, GSM Telephony,

Bluetooth, EDGE, 3G dan WiFi, Multi-touch, serta Lingkungan Development Market.

Android bukan sekedar hanya untuk perangkat mobile saja. Android merupakan sebuah sistem operasi yang dikemas sedemikian rupa sehingga dapat digunakan untuk berbagai perangkat yang menggunakan layar mobile. Berikut penjelasan mengenai layer arsitektur android:

a. Applications

Android akan menggabungkan dengan serangkaian aplikasi inti termasuk klien

email, program SMS, kalender, peta, browser, kontak, dan lain-lain. b. Application Framework:

Dengan menyediakan sebuah platform pengembangan yang terbuka, pengembang Android menawarkan kemampuan untuk membangun aplikasi yang sangat kaya dan inovatif.

c. Libraries

Android termasuk satu set pustaka C/C++ yang digunakan oleh berbagai komponen sistem Android.

d. Android Runtime

Android termasuk satu set perpustakaan inti yang menyediakan sebagian besar fungsi yang tersedia di perpustakaan inti dari bahasa pemrograman Java.

e. Linux Kernel

Android bergantung pada Linux versi 2.6 untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen proses, network stack, dan model pengemudi. Kernel juga bertindak sebagai lapisan abstraksi antara hardware dan seluruh software stack.

(16)

Google mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Berikut ini susunan dari lapisan – lapisan tersebut jika di lihat dari lapisan dasar hingga lapisan teratas:

a. Linux Kernel b. Android Runtime c. Libraries

d. Application Framework e. Application

Gambar 2.16 Arsitektur Android [6]

1. Linux Kernel

Android menggunakan Kernel Linux versi 2.6 sebagai sistem utama. Fungsi kernel

yang digunakan antara lain untuk keamanan, manajemen memori, manajemen proses, manajemen jaringan dan driver model. Kernel juga berfungsi sebagai layer abstrak

antara hardware dan lapisan lainnya pada softwarestack.

2. Android Runtime

Tiap aplikasi pada Android memiliki prosesnya masing-masing. Tiap aplikasi tersebut memiliki instan dari Dalvik virtual machine (VM). Dalvik virtual machine dirancang

(17)

agar suatu device dapat menjalankan beberapa VM secara efisien. Dalvik VM

mengeksekusi file dengan format Dalvik Executable format (.dex) yang dirancang untuk meminimalkan memory footprint. Dalvik VM berbasis register, dan dapat menjalankan kelas-kelas yang dikompilasi dengan bahasa pemrograman java dan ditransformasikan menjadi format .dex. Dalvik VM sendiri bergantung pada Kernel Linux untuk fungsi dasarnya, seperti threading dan manajemen memori secara low

-level.

3. Libraries

Android mendukung beberapa library C/C++ yang digunakan pada berbagai komponen Android. Kemampuan ini dapat diakses oleh developer melalui Android application framework. Beberapa library diantaranya adalah :

- SystemClibrary. Implementasi libraryC standar (libc).

- Media Libraries. Mendukung berbagai format multimedia (termasuk MPEG4, H.264, MP3, AAC, AMR, JPG, PNG).

- SurfaceManager. Mengatur akses ke subsistemdisplay. - LibWebCore. Enginewebbrowsermodern.

- SGL. Enginegrafis2D.

- 3DLibrary. Implementasi OpenGLES1.0 yang mendukung akselerasi

hardware.

- FreeType. Rendering untuk bitmap dan vectorfont.

- SQLite. Basis data relasional yang kecil namun sangat ampuh.

4. Application Framework

Lapisan ini berisi sekumpulan API yang dapat digunakan oleh programmer maupun

coreapplication dari Android. Lapisan ini dirancang untuk memudahkan penggunaan komponen dari Android sendiri. Aplikasi manapun dalam Android dapat berbagi fungsi sehingga aplikasi lain dapat memanfaatkannya.

Aplikasi pada Android disusun atas beberapa komponen: a) Sekumpulan Views.

Digunakan untuk mengatur tampilan pada aplikasi. Contohnya adalah lists, grids,

textbox, button, bahkan embeddablewebbrowser. b) Contentproviders.

(18)

Komponen yang mengatur agar aplikasi dapat mengakses resources dari aplikasi lain (seperti Contacts), atau berbagi data dengan aplikasi lain.

c) ResourceManager.

Menyediakan akses ke pada resource non-code seperti localized string, grafik dan

filelayout.

d) NotificationManager.

Memungkinkan agar suatu aplikasi dapat menampilkan peringatan yang dapat dikostumasi pada statusbar.

e) ActivityManager.

Mengatur siklus aplikasi dan navigasi antar aplikasi yang sedang berjalan.

5. Application

Application merupakan program yang langsung berhubungan dengan user. Baik program yang merupakan bawaan dari Android sendiri maupun program yang dibuat oleh developer menggunakan bahasa pemrograman java. Contoh program bawaan dari

platform Android sendiri adalah email client, program SMS, calendar, maps, web browser, contact dan sebagainya.

2.5.3 The Dalvik Virtual Machine (DVM)

Android berjalan di dalam DVM bukan pada JavaVirtualMachine (JVM) yang dikira selama ini [13]. Banyak kesamaan antara DVM dan JVM, namun DVM memiliki

feature yang lebih baik dibandingkan dengan JVM untuk perangkat mobile. DVM

adalah register bases sementara JVM adalah stack based, DVM didesain dan ditulis oleh Dan Bornsten dan beberapa engineers Google lainnya. Dalam mengatasi fungsionalitas tingkat rendah, DVM menggunakan kernel Linux untuk keamanan,

threading, proses dan manajemen memori. Itu memungkinan kita menggunakan bahasa C/C++ dalam membuat aplikasi sama halnya dengan OS Linux kebanyakan. Oleh karena itu kita harus kita harus memahami arsitektur dan proses dari kernelLinux

yang digunakan dalam Android tersebut.

Para pengembang tidak perlu khawatir bila ia tidak memiliki device Android, karena Android memiliki virtualmachine untuk eksekusi aplikasi. DVM mengeksekusi

(19)

executeablefile, artinya sebuah format yang dioptimalkan untuk memastikan memori yang digunakan sangatlah kecil. Mengapa bisa seperti itu? Karena executeable file

mengubah kelas bahasa Java dan dikompilasi dengan menggunakan tools yang sudah ada.

2.5.4 Android SDK (Software Development Kit)

Android SDK merupakan sebuah tools yang diperlukan untuk mengembangkan aplikasi berbasis Android menggunakan bahasa pemrograman Java [13]. Pada saat ini

Android SDK telah menjadi alat bantu dan API (Application Programming Interface) untuk mengembangkan aplikasi bebasis Android. Android SDK dapat Anda lihat dan unduh pada situs resminya, yaitu http://www.developer.android.com/.

Android SDK bersifat gratis dan bebas Anda distribusikan karena Android

bersifat opensource.

2.5.5 Versi Android

2.5.5.1 Android versi awal (2007 – 2008)

Pada September 2007, Google mengajukan hak paten aplikasi telepon seluler. Google

mengenalkan Nexus One, salah satu jenis telepon pintar GSM yang menggunakan Android pada sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation

dan tersedia di pasaran pada 5 Januari 2010. Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile) yang merupakan modifikasi kernelLinux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru.

(20)

pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang menggunakan Android.

2.5.5.2Android versi 1.1

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.

2.5.5.3Android versi 1.5 ( Cupcake )

Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke

headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.

2.5.5.4Android versi 1.6 ( Donut )

Donut (versi 1.6) dirilis pada September 2009 dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol

appletVPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan;

CDMA/EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi texttochange speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.

(21)

2.5.5.5Android versi 2.0 / 2.1 ( Éclair )

Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair). Perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan

GoogleMaps3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digitalZoom, dan Bluetooth 2.1. Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google

melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi unggulan).

Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik. Dengan semakin berkembangnya dan semakin bertambahnya jumlah handsetAndroid, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android

dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.

2.5.5.6Android versi 2.2 (Froyo : Frozen Yoghurt)

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan autoupdate dalam aplikasi AndroidMarket.

2.5.5.7Android versi 2.3 ( Gingerbread )

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan

(22)

kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio

baru (reverb, equalization,headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

2.5.5.8Android versi 3.0/3.1 ( Honeycomb )

Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah MotorolaXoom.

2.5.5.9Android versi 4.0 (Ice Cream Sandwich)

Android versi 4.0 akan dirilis akhir tahun 2011. Setelah kita ketahui versi Android ini perlu diketahui bahwa nama lain dari versi-versi tersebut diambil oleh Google dari nama makanan penutup.

2.5.6 Komponen Aplikasi Android

Ada 4 macam komponen aplikasi yang merupakan titik masuk di mana aplikasi

Android bisa berjalan. Keempat komponen tersebut memiliki fungsi dan daur hidup yang berbeda yang menentukan bagaimana masing-masing komponen dibuat dan dihancurkan. Keempat tipe komponen aplikasi tersebut adalah:

1. Activities 2. Services

3. Contentproviders 4. Broadcastreceivers

(23)

2.6 Eclipse

Dalam pengembangan aplikasi Android biasanya para pengembang (developer Android) menggunakan Eclipse sebagai Integrated Development Environment (IDE) [12]. IDE merupakan program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Eclipse tersedia secara bebas untuk merancang dan mengembangkan aplikasi Android. Eclipse merupakan IDE terpopuler di kalangan developer Android, karena Eclipse memiliki Android plug-in lengkap yang tersedia untuk mengembangkan aplikasi Android. Selain itu, Eclipse juga mendapat dukungan langsung dari Google untuk menjadi IDE pengembangan

Android, membuat project Android di mana source software langsung dari situs resminya Google. Selain Eclipse, dapat pula menggunakan IDE Netbeans untuk pengembangan aplikasi Android.

Sampai saat ini Eclipse memiliki 5 versi package, yaitu: IndigoPackage, Helios Package, Galileo Package, Ganymade Package dan Europa Package. Dari total

download pada situs resmi Eclipse yaitu http://www.eclipse.org/ sebanyak 988,945 pengunduh EclipseClassicIndigo pertanggal 20 Agustus 2011.

Aplikasi Android dapat dikembangkan pada sistem operasi, diantaranya: • Windows XP, Vista dan 7

MacOSX atau lebih baru • Linux

2.7 Waterfall Model

Waterfall Model adalah model yang muncul pertama kali yaitu sekitar tahun 1970 [10]. Waterfall Model merupakan model yang paling banyak digunakan dalam pembuatan program. Model ini disebut waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.

Terdapat beberapa tahapan pada model Waterfall. Berikut adalah penjelasan dari tahap-tahap yang di lakukan di dalam model ini:

(24)

Pemodelan ini diawali dengan komunikasi dengan konsumen untuk mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk

software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb.

b) Planning

Setelah proses communication, kita menetapkan rencana untuk pengerjaan software yang meliputi tugas-tugas teknis yang akan dilakukan, resiko yang mungkin terjadi, sumber-sumber yang dibutuhkan, hasil yang akan dibuat, dan jadwal pengerjaan.

c) Modeling

Pada proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut softwarerequirement.

d) Construction

Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer.

Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu software, artinya penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki.

e) Deployment

Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala.

(25)

Sumber : Pressman, Roger S.[10]

Model ini menjadi terkenal karena pengaplikasian yang mudah, dan ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal proyek, maka pembuatan program dapat berjalan dengan baik dan tanpa masalah. Akan tetapi karena model ini melakukan pendekatan secara terurut maka ketika ada suatu tahap yang terhambat maka tahap berikutnya akan ikut terhambat juga.

2.8 Penelitian Terdahulu

Penelitian terdahulu merupakan penelitian yang telah dilakukan oleh pengarang sebelumnya sebagai sumber tinjauan pustaka guna menguatkan penulisan tinjauan pustaka dari sumber yang terpercaya. Berikut ini adalah beberapa penelitian yang telah dilakukan sebelumnya:

1. Penelitian yang dilakukan oleh Agus Leksono dengan judul Algoritma Ant Colony Optimization (ACO) Untuk Menyelesaikan Travelling Salesman Problem (TSP). Dalam penelitian ini, peneliti menjelaskan dan membandingkan 4 jenis Algoritma

Ant Colony Optimization (ACO) dalam menyelesaikan masalah Travelling Salesman Problem (TSP). 4 jenis Algoritma Ant Colony Optimization (ACO) yang dibandingkan adalah Algoritma Ant System, Elitist Ant System, Rank Based Ant System, Max-Min Ant System, dan Ant Colony System. Dari hasil perbandingan, maka diketahui bahwa Ant Colony System memiliki hasil yang paling optimal [7]. 2. Penelitian yang dilakukan oleh Satria Prasamya dengan judul Penentuan Jalur

(26)

Android. Dalam penelitian ini, peneliti membangun sebuah aplikasi untuk menentukan rute terpendek pada Platform Android dengan menggunakan Google Maps dan Algoritma Ant Colony Optimization. Aplikasi ini mengharuskan user untuk memasukkan lokasi user serta lokasi yang ingin dituju oleh user sendiri. Aplikasi ini memiliki dua fitur, yaitu fitur one way trip dan fitur round trip. Fitur

one way trip akan mencari rute terpendek dimana lokasi yang pertama diinputkan adalah lokasi awal dan lokasi terakhir menjadi lokasi tujuan sedangkan fitur round trip akan mencari rute terpendek yang dapat ditempuh untuk kembali ke lokasi awal [9].

3. Penelitian yang dilakukan oleh Eko Verdianto dengan judul Perancangan Sistem Penentuan Rute Terpendek Jalur Evakuasi Tsunami dengan Algoritma Ant Colony

(Studi Kasus : Belawan). Dalam penelitian ini, peneliti membangun sebuah aplikasi berbasis desktop untuk mencari rute terpendek dengan bantuan Arcview GIS. Algoritma yang digunakan adalah Algoritma Ant Colony System. Aplikasi ini berguna untuk mencari rute terpendek jalur evakuasi apabila terjadi tsunami di Belawan [11].

Gambar

Gambar 2.1 Masalah Jembatan Königsberg
Gambar 2.2 Representasi Graf dari Masalah Jembatan Königsberg
Gambar 2.3 Graf dari Masalah Jembatan Königsberg
Gambar 2.6 Graf Berarah dan Tidak Berbobot
+7

Referensi

Dokumen terkait

Misalkan juga ada 30 semut yang datang menuju B dari A, dan 30 semut menuju D dari E pada suatu waktu yang bergerak dengan kecepatan sama, dan setiap langkah semut akan

Selagi melakukan perjalanan untuk mencari solusi pencarian rute terpendek, semut mengunjungi sisi-sisi dan mengubah tingkat feromon pada sisi-sisi tersebut dengan menerapkan

Algoritma floyd juga dikenal sebagai metode penempatan vertex yang juga merupakan jenis pemrograman dinamis dan digunakan untuk menemukan jalur terpendek

• Traveling Salesman Problem : Suatu permasalahan untuk mencari rute perjalanan agar semua tempat dapat dilewati dengan jarak yang optimal.. • Assignment Problems : Suatu

Single link adalah proses clustering yang didasarkan pada jarak terdekat antar obyeknya (minimum distance) (Lance, 1967). Metode ini sangat baik digunakan

Perbedaan dengan penelitian ketiga juga terletak pada algoritma yang diterapkan untuk menyelesaikan masalah pencarian jarak terdekat. Peneliti terdahulu

Gambar 2.9 a menunjukkan perjalanan semut dalam menemukan rute terpendek dari sarang ke sumber makanan. Terdapat dua kelompok semut yang melakukan

Sementara untuk panjang alas duduk yang baik adalah lebih pendek dari jarak lipat lutut ke garis punggung.. Namun panjang alas duduk yang terlalu pendek ditambah dengan