Teknik Pencarian Searching Algoritma Depth-First Search DFS

16

2.6 Algoritma Backtracking

Algoritma Backtracking adalah algoritma umum yang digunakan untuk pencarian solusi pada beberapa permasalahan komputasi, yang secara bertahap membangun kandidat solusi dan mengabaikan setiap kandidat c ‘backtrack’ segera setelah mengetahui bahwa c tidak dapat diselesaikan untuk memperoleh solusi yang valid. Backtracking merupakan algoritma yang berbasis Depth-First Search DFS. Teknik backtracking merupakan salah satu teknik dalam penyelesaian masalah secara umum General Problem Solving. Adapun dasar dari teknik ini adalah suatu teknik pencarian searching. Teknik pencarian ini digunakan dalam rangka mendapatkan himpunan penyelesaian yang mungkin. Dari himpunan penyelesaian yang mungkin ini akan diperoleh solusi optimal atau memuaskan. Saat ini backtracking banyak diterapkan untuk program games seperti permainan tic-tac-toe, menemukan jalan keluar dalam sebuah labirin, catur, dll dan masalah-masalah pada bidang kecerdasan buatan artificial intelligence. Nama backtrack didapatkan dari sifat algoritma ini yang memanfaat karakteristik himpunan solusinya yang sudah disusun menjadi suatu pohon solusi. Gambar 2.4 adalah contoh sebuah pohon solusi. Gambar 2.4 Pohon solusi Gambar 2.4 merepresentasikan solusi dari suatu permasalahan. Untuk mencapai solusi 5, maka jalan yang ditempuh adalah 1,2,5, demikian juga dengan 17 solusi-solusi yang lain. Algoritma backtrack akan memeriksa mulai dari solusi yang pertama yaitu solusi 5. Jika ternyata solusi 5 bukan solusi yang layak maka algoritma akan melanjutkan ke solusi 6. Jalan yang ditempuh ke solusi 5 adalah 1,2,5 dan jalan untuk ke solusi 6 adalah 1,2,6. Kedua solusi ini memiliki jalan awal yang sama yaitu 1,2. Jadi daripada memeriksa ulang dari 1 kemudian 2 maka hasil 1,2 disimpan dan langsung memeriksa solusi 6. Prinsip pencarian solusi dengan metode backtracking adalah sebagai berikut : 1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah mengikuti aturan pencarian mendalam DFS. Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup live node. Simpul hidup yang sedang diperluas dinamakan simpul-E Expand-node. 2. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E tersebut “dibunuh” sehingga menjadi simpul mati dead node. Fungsi yang digunakan untuk membunuh simpul-E adalah dengan menerapkan fungsi pembatas bounding function. Simpul yang sudah mati tidak akan pernah diperluas lagi. 3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan backtracking ke simpul hidup terdekat simpul orangtua. Selanjutnya simpul ini menjadi simpul-E yang baru. 4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hidup untuk backtracking. Untuk lebih jelasnya, prinsip pencarian solusi dengan metode backtracking di atas dapat dilihat pada Gambar 2.5. 18 Gambar 2.5 Prinsip pencarian solusi dengan metode backtracking

2.7 Android

Android adalah suatu sistem operasi yang didesain sebagai platform open source untuk perangkat mobile. Android merupakan comprehensive platform, artinya Android adalah perangkat lunak dengan stack lengkap untuk perangkat mobile. Android mencakup sistem operasi, middleware dan aplikasi. Android menyediakan semua tools dan framework untuk mengembangkan aplikasi dengan mudah dan cepat. Dengan adanya Android SDK Software Developement Kit pengembang aplikasi dapat memulai pembuatan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Pada tahun 2005, Google membeli Android, Inc., yang merupakan pendatang baru yang mengembangkan software untuk smartphone. Pada saat itu dunia mengira bahwa Google akan memproduksi smartphone. Anggapan itu ternyata salah karena Google menyatakan bahwa ambisi Android bukan hanya untuk mengembangkan sebuah ponsel melainkan suatu platform yang dapat digunakan di banyak ponsel dan perangkat lainnya. Kemudian untuk mengembangkan Android dibentuklah Open Handset Alliance, sebuah grup nonprofit yang terdiri dari beberapa perusahaan hardware,