Bab 2 LANDASAN TEORI 2.1. Tetravex - Applikasi Permainan Heavex Pada Plaform Android

Bab 2 LANDASAN TEORI

2.1. Tetravex

  

Tetravex Puzzle adalah permainan menyusun kotak-kotak yang terdiri dari empat

angka. Karena itulah permainan ini disebut Tetravex Puzzle (tetra = empat).

  

Puzzle ini terdiri atas M x N buah kotak yang harus disusun sedemikian hingga

  angka-angka yang terdapat pada sisi kotak yang bersentuhan adalah angka yang sama, menjadi satu buah kotak besar. (Fanani, 2007) Penyusunan tile ke papan permaian memiliki aturan permainan, yaitu setiap sisi kotak yang saling berdampingan harus memiliki angka yang sama. Permaianan selesai bila semua kotak telah dimasukkan kedalam papan permaianan dan seluruh sisi yang berdampingan memiliki angka yang sama. Kondisi awal dan kondisi akhir (selesai) dari permainan tetravex dapat dilihat pada gambar 2.1 dan gambar 2.2.

Gambar 2.1 Kondisi awal permainan tetravexGambar 2.2 Kondisi akhir permainan tetravex

2.2. Hexavex Hexavex merupakan pengembangan atau modifikasi dari permaiana tetravex.

  Perbedaannya terdapat dari bentuk tile yang berbentuk segienam beraturan dan jumlah angka yang ada pada satu tile yang berjumlah enam. Selain dari bentuk tile dan jumlah angka, hexavex dan tetravex memiliki peraturan dan cara bermain yang sama. Pada

gambar 2.3 dan gambar 2.4 kita dapat melihat kondisi awal dan akhir permainan hexavex.Gambar 2.3 Kondisi awal permainan hexavexGambar 2.4 Kondisi akhir permainan hexavex

2.3. Kecerdasan Buatan (Artificial Intelligence)

  Kecerdasan buatan (Artificial Intelligence) merupakan proses dimana peralatan mekanik dapat melaksanakan kejadian-kejadian dengan menggunakan pemikiran atau kecerdasan seperti manusia (Siswanto, 2010, hal:1)

  Sedangkan menurut Russel et al (2003, hal:1) menyatakan bahwa definisi dari

  

artificial intelligence dapat dibagi menjadi empat kategori. Hal ini dapat dilihat pada

gambar 2.5.

  Sistem yang berpikir seperti manusia Sistem yang berpikir secara rasional

  “Upaya baru yang menarik untuk “Studi tentang kemampuan mental membuat komputer berpikir … mesin melalui penggunaan model komputasi.” dengan pikiran, dalam arti penuh dan (Charniak dan McDermott, 1985). literal” (Haugland, 1985) “[Otomatisasi dari] kegiatan yang kita “Studi tentang perhitungan yang kaitkan dengan pemikiran manusia, memungkinkan untuk melihat, berfikir, kegiatan seperti pembuatan keputusan, dan bertindak.” (Winston, 1992). pemecahan masalah, belajar …” (Bellman, 1978).

  

Sistem yang bertindak seperti manusia Sistem yang bertindak secara rasional

  “Seni menciptakan mesin yang “Computational Intelligence adalah melakukan pekerjaan yang studi mengenai disain dari agen cerdas membutuhkan kecerdasan ketika (Intelligent Agents).” (Poole et al., dilakukan oleh manusia.” (Kurzweil, 1998) . 1990). “Studi tentang bagaimana membuat “AI … berhubungan dengan komputer melakukan sesuatu dimana, Intelligent behaviour in artifact. ” pada saat ini manusia lebih baik.” (Nilssin, 1998 ). (Rich dan Knight, 1991).

Gambar 2.5 Definisi Artificial Intelligence (Russel et al, 2003) Menurut Kusumadewi (2003, hal: 7) pada dasarnya kecerdasan buatan memiliki beberapa ruang lingkup. Ruang lingkup tersebut diantaranya adalah :

  1. Sistem Pakar (Expert System) Pada sistem pakar ini, komputer digunakan sebagai sarana untuk menyimpan pengetahuan para pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian yang dimiliki oleh pakar.

  2. Pengolahan Bahasa Alami ( Natural Language Processing ).

  Pengolahan bahasa alami diharapkan bisa membuat user dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari

  3. Pengenalan Ucapan ( Speech Recognition ) Melalui pengenalan ucapan diharapkan manusaia dapat berkomunikasi dengan komputer dengan menggunakan suara.

  4. Robotika dan Sistem Sensor ( Robotics and Sensory system )

  5. Computer Vision

  Computer vision mencoba untuk menginterpretasikan gambar atau obyek tampak melalui komputer.

  6. Intelligent Computer-aided Instruction Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar.

  7. Game Playing

2.4. Algoritma Best-First Search

  

Best-first search merupakan contoh dari algoritma pohon pencarian (Tree-Search)

  dimana node yang dipilih untuk ditelusuri dipilih berdasarkan nilai evaluation

  

function. Biasanya node dengan nilai evaluation function terendah akan dipilih untuk

  ditelusuri, karena nilai evaluation function mengukur jarak untuk mencapai goal (tujuan). Best-first search dapat diimplementasikan pada framework pencarian dengan antrian prioritas, struktur data yang akan memelihara penyelusuran sesuai urutan dari nilai evaluation function secara ascending (Russel et al, 2003).

  Algoritma best first search merupakan kombinasi dari algoritma depth first

  search dengan algoritma breadth first search dengan mengambil kelebihan dari kedua

  algoritma tersebut. Apabila pada pencarian dengan algoritma hill climbing tidak diperbolehkan untuk kembali ke node pada level yang lebih rendah meskipun node di level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain halnya pada algoritma best first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node di level yang lebih tinggi memiliki nilai heuristik yang lebih buruk (Desiani et al, 2005).

  Pada semua kelompok dari algoritma Best-first search memiliki fungsi evaluasi (evaluation function) yang berbeda. Komponen kunci dari algoritma ini adalah fungsi heuristik, yang dapat ditulis h(n).

  

Heuristik merupakan estimasi jarak dari suatu node ke goal (tujuan).

  Informasi ini dapat digunakan oleh algoritma pencarian untuk menilai state mana yang lebih menjanjikan dari state lainnya. Kita akan mendapatkan bahwa upaya pencarian dapat sangat dikurangi jika diantara dua kandidat path, algoritma akan lebih memilih untuk memperluas path yang diperkirakan memiliki nilai yang lebih rendah (Edelkamp et al, 2012).

  Pada pencarian heuristik, sebuah fungsi heuristik digunakan untuk mengevaluasi keadaan permasalahan tersendiri dan menentukan bagaimana fungsi ini diperlukan dalam memecahkan suatu permasalahan. Sebuah fungsi heuristik adalah sebuah fungsi yang memetakan keadaan permasalahan, yang menjelaskan daya tarik dan digambarkan dalam sebuah angka (Pearl, 1984).

  Untuk mengimplementasikan algoritma best-first search dibutuhkan dua antrian / list yang berisi node-node, yaitu : OPEN : berisi node-node yang sudah dibangkitkan, sudah memiliki fungsi heuristik namun belum diuji. Umumnya berupa antrian berprioritas yang berisi elemen-elemen dengan nilai heuristik terbaik. CLOSED : berisi node-node yang sudah diuji

  Langkah-langkah pencarian pada agoritma Best-first search adalah sebagai berikut (Kristanto, 2004) :

  1. Letakkan simpul awal pada OPEN

  2. IF OPEN = kosong (empty) THEN keluar (gagal) {jika semua simpul telah diuji dan tidak ada simpul yang dicari maka pencarian berakhir atau GAGAL} 3. n:= first (OPEN) {ambil simpul pertama / paling depan pada OPEN}

  4. IF GOAL (n) THEN KELUAR {jika n adalah simpul tujuan, pencarian berhasil dan berakhir}

  5. REMOVE (n, OPEN) {n dipindahkan dari OPEN} ADD (n, CLOSED)

  6. Ekspansikan n, dan bangkitkan semua simpul anak. Dari simpul-simpul ini yang tidak dimasukkan ke dalam OPEN atau CLOSED diletakkan ke list OPEN dan berikan pointer ke n.

  7. Susunlah simpul-simpul pada OPEN dari h(n) yang terkecil.

  8. GOTO langkah 2

2.5. Sistem Operasi Android

  Android diperkenalkan pertama kali yaitu pada tahun 2005 ketika Google mengakuisisi perusahaan kecil yang bernama Android,Inc. Pada tahun 2008, Android versi 1.0 resmi dirilis dan menghadirkan spekulasi bahwa Android akan menjadi penantang baru di dunia operating sistem mobile. Android bertarung melawan platform yang sudah mapan seperi iOS (iPhone OS) dan Blackberry. (Zechner, 2011)

  Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan

  

platform yang terbuka bagi para pengembang untuk menciptakan aplikasi mereka.

  Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat piranti lunak untuk ponsel / smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi termasuk Google, Intel, HTC, Motorola, Qualcomm, T-Mobile, dan Nvidia (Safaat, 2010).

  Hingga saat ini Android telah merilis sejumlah versi diantaranya yaitu:

  1. Android versi 1.0, dirilis pada tanggal 23 September 2008

  2. Android versi 1.1, dirilis pada tanggal 9 Maret 2009

  3. Android versi 1.5 (Cupcake), dirilis pada tanggal 30 April 2009

  4. Android versi 1.6 (Donut), dirilis pada tanggal 15 September 2009

  5. Android versi 2.0/2.1 (Eclair), dirilis pada tanggal 26 Oktober 2009

  6. Android versi 2.2 (Frozen Yoghurt), dirilis pada tanggal 20 Mei 2010

  7. Android versi 2.3 (Gingerbread), dirilis pada tanggal 6 Desember 2010

  8. Android versi 3.0 (Honeycomb), dirilis pada tanggal 22 Feburari 2011

  9. Android versi 4.0 (Ice Cream Sandwich), dirilis pada tanggal 19 Oktober 2011

  10. Android versi 4.1 (Jelly Bean), dirilis pada tanggal 9 Juli 2012

  11. Android versi 4.2 (Jelly Bean), dirilis pada tanggal 13 November 2012

  12. Android versi 4.3 (Jelly Bean), dirilis pada tanggal 24 Juli 2013

  13. Android versi 4.4 (Kitkat), dirilis pada tanggal 31 Oktober 2013

2.5.1. Fitur android Android bukan hanya sekadar distribusi lain dari Linux untuk perangkat mobile.

  Ketika membangun aplikasi android, kita sama sekali tidak seperti sedang berhadapan dengan kernel Linux. Developer menghadapi platform berdasarkan kernel Linux dengan bahasa pemrograman Java (Zechner, 2011). Menurut Safaat (2010, hal: 5)

  android memiliki beberapa fitur , diantanya yaitu :

Framework Aplikasi yang mendukung penggantian komponen dan reusable.

  • Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile.
  • Integrated browser berdasarkan open source WebKit.
  • Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D dan 3D
  • berdasarkan spesisfikasi OpenGL ES 1.0 (Opsional akselerasi hardware).

  SQLite untuk menyimpan data.

  • Media support yang mendukung audio, video, dan gambar (MPEG4, H.264, MP3,
  • AAC , AMR, JPG, PNG, GIF), GSM Telephony (tergantung hardware). Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).
  • Kamera, GPS, kompas, dan accelerometer (tergantung hardware).
  • Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator,
  • tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse.

  2.5.2. Arsitektur android Android terdiri dari beberapa stack software yang terdiri dari : Applications and

Widgets , Application Framework, Libraries, Android Runtime dan Kernel Linux.

  Arsitektur platform ini dapat dilihat pada gambar 2.6.

Gambar 2.6 Arsitektur platform Android (Safaat, 2010)

  Applications and Widgets

  • Aplications and Widgets ini adalah layer dimana kita berhubungan dengan

  aplikasi saja, dimana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua apliksi ditulis menggunakan pemrograman Java.

  Applications Frameworks

  • Android adalah “Open Development Platform” yaitu Android menawarkan

  kepada pengembang atau memberi kemampuan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif. Pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service

  background, mengatur alarm, dan menambahkan status notifications, dan

  sebagainya. Pengembang memiliki akses penuh menuju API framework seperti yang dilakukan oleh aplikasi yang kategori inti. Arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reuse).

  Sehingga bisa kita simpulkan Applications Framework ini adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan di sistem operasi Android, karena pada providers yang berupa SMS dan panggilan telepon.

  Komponen-komponen yang termasuk di dalam Aplications Frameworks adalah sebagai berikut : a. Views

  b. Content Providers

  c. Resource Manager

  d. Notification Manager

  e. Activity Manager

  Libraries

  • Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para

  pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan diatas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL, serta :

  librarie s media untuk pemutaran media audio dan video

  • libraries untuk manajemen tampilan
  • libraries Graphic mencakup SGL dan OpenGL untuk grafis 2D dan 3D

  • libraries SQLite untuk dukungan database
  • libraries SSL dan WebKit terintegrasi dengan web browser dan security

  • libraries LiveWebcore mencakup modern web browser dengan engine embeded
  • >web view libraries 3D yang mencakup implementasi OpenGL ES 1.0 API’s

  • Android Run Time

  Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya

  menggunakan Implementasi Linux. Dalvik Vitual Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi Android. Di dalam Android Run

  Time dibagi menjadi dua bagian yaitu :

  • Core Libraries : Aplikasi Android dibangun dalam bahasa Java, sementara Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga

  diperlukan sebuah libraries yang berfungsi untuk menterjemahkan bahasa Java / C yang ditangani oleh Core Libraries.

  • Dalvik Virtual Machine : Virtual mesin berbasis yang berbais register yang

  dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, di mana merupakan pengembangan yang mampu membuat Linux kernel untuk melakukan threading dan manajemen tingkat rendah.

  • Linux Kernel

  Linux kenel adalah layer dimana inti dari operating system dari Android itu

  berada. Berisi file-file system yang mengatur system processing, memory, resources , drivers, dan sistem-sistem operasi Android lainnya.