BAB 2 LANDASAN TEORI 2.1 Kecerdasan Buatan - Aplikasi Permainan Congklak Berbasis Android Menggunakan Algoritma Minimax

BAB 2 LANDASAN TEORI

2.1 Kecerdasan Buatan

  Menurut Rich and Knight (1991) kecerdasan buatan atau Artificial Intelligence merupakan suatu proses belajar mengenai cara membuat komputer melakukan hal-hal yang pada saat itu dapat dilakukan lebih baik oleh manusia. Selain itu definisi kecerdasan buatan menurut Jogiyanto H (2000) didefinisikan sebagai suatu mesin atau alat pintar (biasanya adalah suatu komputer) yang dapat melakukan suatu tugas yang bilamana tugas tersebut dilakukan oleh manusia akan dibutuhkan suatu kepintaran untuk melakukannya.

  Menurut Sri Kusumadewi (2003), kecerdasan buatan jika dibandingkan dengan kecerdasan alami memiliki beberapa keuntungan, antara lain: a.

  Kecerdasan buatan lebih bersifat permanen dan konsisten, karena kecerdasan alami hanya bergantung kepada ingatan manusia, yang mungkin saja menjadi lupa pada waktu tertentu. Sedangkan kecerdasan buatan bergantung pada sistem komputer dan program dari aplikasi kecerdasan buatan tersebut, sehingga selama aplikasi dan sistem komputer tidak berubah maka kecerdasan buatan tersebut tidak akan berubah.

  b.

  Kecerdasan buatan lebih mudah diduplikasi dan disebarkan karena berupa sistem, sehingga dengan mudah memindahkan pengetahuan yang ada pada sistem tersebut dari suatu komputer ke komputer lain. Sedangkan kecerdasan alami sulit diduplikasi karena menyampaikan pengetahuan dari satu orang ke orang lain lebih sulit untuk dilakukan. Selain membutuhkan proses yang sangat lama, juga diperlukan suatu keahlian khusus untuk menyampaikannya dan tidak semua orang dapat menyampaikan hal yang sama persis dari satu orang ke orang lain.

  c.

  Kecerdasan buatan lebih murah dan cepat dibandingkan dengan kecerdasan alami. Menyediakan layanan komputer akan lebih mudah dan lebih murah dibandingkan harus mendatangkan seseorang untuk mengerjakan sejumlah pekerjaan dalam jangka waktu yang lama.

  d.

  Kecerdasan buatan dapat didokumentasikan dengan mudah. Keputusan yang dibuat oleh komputer dapat didokumentasikan lebih mudah dengan cara melacak setiap aktivitas dari sistem tersebut. Sedangkan kecerdasan alami sulit didokumentasikan karena manusia selalu berubah dan sulit untuk melacak setiap aktivitas yang berhubungan dengan kasus yang sedang dikerjakan serta membutuhkan waktu lama dalam pelacakan tersebut.

  Sedangkan kecerdasan alami memiliki keuntungan sebagai berikut: a.

  Kecerdasan alami bersifat kreatif yaitu kemampuan untuk kerkreasi yang melekat pada manusia. Kecerdasan buatan belum mampu berkreasi sendiri.

  b.

  Kecerdasan alami memungkinkan manusia menggunakan pengalaman secara langsung. Sedangkan kecerdasan buatan bekerja berdasarkan input yang dimasukkan oleh pengguna dan bentuk dari inputan tersebut berupa kode-kode tertentu yang telah ditentukan pada awal pembutan sistem.

  c.

  Manusia dapat memanfaatkan kecerdasannya secara luas, tanpa batas.

  Sedangkan kecerdasan buatan memiliki batasan.

2.1.1 Penggunaan Kecerdasan Buatan di berbagai Bidang

  Kecerdasan buatan merupakan suatu hal yang dikembangkan pada sebuah sistem oleh para ahli untuk masa depan. Beberapa bidang perkembangan kecerdasan buatan ini adalah sebagai berikut, yaitu (Kusumadewi, 2003): 1.

  Expert System (Sistem Pakar) Sistem pakar (Expert System) adalah program penasehat berbasis komputer yang mencoba meniru proses berpikir dan pengetahuan dari seorang pakar dalam menyelesaikan masalah-masalah spesifik. Contohnya adalah sistem pakar menentukan suatu jenis penyakit, sistem pakar untuk bisnis dan sebagainya.

  2. Robotik dan Sistem Sensor Sistem sensor, seperti sistem vision, sistem tactile, dan sistem pemrosesan sinyal jika dikombinasikan dengan AI, dapat dikategorikan kedalam suatu sistem yang luas yang disebut sistem robotik.

  3. Permainan (Games) Game playing (permainan game) merupakan bidang AI yang sangat populer berupa permainan antara manusia melawan mesin yang memiliki intelektual untuk berpikir. Bermain dengan komputer memang menarik bahkan sampai melupakan tugas utama yang lebih penting. Komputer dapat bereaksi dan menjawab tindakan-tindakan yang diberikan oleh lawan mainnya. Banyak permainan komputer telah dibuat dan dikembangkan. Sebagai contohnya adalah permainan catur.

  4. Bahasa Ilmiah (Natural Languange) Suatu teknologi yang memberikan kemampuan kepada komputer untuk memahami bahasa manusia sehingga pengguna komputer dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari. Bahasa computer yang khusus pada bidang ini adalah LISP, INTERLISP, SAIL, PLANNER, KRL, PROLOG.

  5. Pemodelan Kinerja (Performance) Manusia Pemodelan kinerja manusia telah terbukti merupakan alat yang sangat bermanfaat dalam merumuskan dan menguji teori-teori penerapan inderawi manusia.

2.2 Game (Permainan)

  

Game merupakan aktivitas terstruktur yang biasanya bertujuan dalam mendapatkan

  kesenangan dan bahkan digunakan sebagai suatu edukasi. Menurut Salen & Zimmerman (2003) game merupakan suatu sistem yang memiliki aturan-aturan tertentu dimana pemain akan terlibat di dalam suatu permasalahan sehingga dapat menghasilkan suatu hasil yang dapat diukur yaitu menang atau kalah. Game umumnya melibatkan stimulasi mental atau fisik, dan terkadang kedua-duanya. Banyak game membantu mengembangkan keterampilan praktis, berfungsi sebagai bentuk latihan, atau melakukan peran pendidikan, simulational, atau psikologis.

2.2.1 Teori Game

  Teori permainan adalah suatu cara belajar yang digunakan dalam menganalisa interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategi- strategi rasional (Leyton-Brown & Shoham, 2008). Teori permainan dapat diklasifikasikan kedalam beberapa bagian, yaitu: a.

   Number of Players

  Hampir semua jenis permainan papan yang memiliki sistem pencarian langkah berbasis algoritma pada AI hanya memiliki dua pemain. Sebagian besar bentuk dasar dari algoritma-algoritma tersebut hanya terbatas untuk dua pemain.

  b.

  Plies, Move and Turns Suatu hal umum dalam teori permainan adalah giliran (turns) seorang pemain sebagai suatu lapisan (ply) didalam suatu permainan dan pemain yang melakukan gilirannya dalam satu putaran disebut langkah (move).

  c.

  The Goal of the Game Tujuan umum permainan berbasis strategi adalah untuk menang. Sebagai pemain, pemain menang jika semua lawan pemain kalah. Hal ini dikenal sebagai permainan zero-sum, yaitu kemenangan pemain adalah kekalahan pemain lain. Jika pemain mencetak 1 poin untuk menang, maka akan setara dengan mencetak -1 poin untuk kalah. Untuk kasus permainan non-zero-sum, semua bisa menang atau semua bisa kalah, pemain hanya akan fokus pada kemenangan.

  d.

  Information Dalam permainan papan seperti catur, Checkers, Go, dan Reversi, kedua pemain mengetahui segala sesuatu tentang kondisi dalam permainan. Pemain mengetahui hasil dari setiap gerakan yang dilakukan dan pilihan yang akan dilakukan pemain untuk langkah berikutnya. Pemain mengetahui semua ini dari awal permainan. Jenis permainan ini disebut "informasi yang sempurna".

  Sedangkan dalam sebuah permainan seperti Backgammon, terdapat unsur acak di dalamnya. Pemain sebelumnya tidak mengetahui langkah yang dapat diambil oleh pemain karena langkah tersebut bergantung pada nilai dadu yang dimainkan pemain. Pemain juga tidak dapat mengetahui langkah yang dapat diambil oleh lawan, karena pemain tidak dapat memprediksi nilai dadu lawan. Jenis permainan ini disebut “informasi yang tidak sempurna”.

  Kebanyakan permainan berbasis strategi merupakan “informasi yang tidak sempurna”, karena terdapat beberapa unsur acak dalam melakukan suatu tindakan. Permainan dengan “informasi yang sempurna” akan lebih mudah untuk dianalisa. Banyak algoritma dan teknik untuk permainan berbasis AI berasumsi bahwa terdapat informasi yang sempurna yang dapat disesuaikan untuk jenis permainan lain, tetapi biasanya hasil yang diperoleh akan menjadi lebih buruk (Millington & Funge, 2009).

2.2.2 Klasifikasi Game

  

Gameplay merupakan alat dan aturan-aturan yang mendefinisikan konteks

  keseluruhan permainan sehingga pada saat gilirannya, menghasilkan keterampilan, strategi, dan kesempatan (Bakri, 2010).

  Pengelompokan game berdasarkan media permainannya, yaitu (Bakri, 2010):

  1. Board Games

  Board games merupakan permainan yang menggunakan sebuah media papan sebagai alat atau tempat untuk berinteraksi dan melakukan sebuah permainan .

  Biasanya permainan ini dilakukan dengan menggunakan strategi untuk memenangi permainan tersebut. Contohnya: Catur, Congklak, dll.

  2. Card Games

  Card games merupakan permainan yang menggunakan satu set kartu sebagai

  alat utama permainan. Permainan ini biasanya diawali dengan pengacakan kartu sehingga membutuhkan kesempatan dan keberuntungan untuk memenangi permainan ini. Contohnya: permainan kartu Uno, permainan Poker, permainan Spider Solitare dan sebagainya.

  3. Dice Games Dice games merupakan permainan dadu sebagai elemen utama permainan.

  Permainan dilakukan dengan cara mengacak angka dadu kemudian angka dadu inilah yang menjadi dampak kemungkinan besar kemenangan permainan ini. Contohnya: Ludo, dadu Poker dan sebagainya.

  4. Domino and Tile Games

  Domino and tile games merupakan permainan yang menggunakan kartu

  berbentuk ubin sebagai alat permainannya. Permainan ini mirip dengan permainan kartu. Contohnya: Domino dan Mahjong.

  5. Pencil and Paper Games Pencil and paper games merupakan suatu permainan yang memerlukan media kertas untuk menggambar arena permainan dan pensil untuk menulis langkah permainan tersebut. Contohnya, Scrabble, Tic-tac-toe, Sudoku dan sebagainya.

2.3 Permainan Congklak

  Congklak merupakan suatu permainan tradisional dari Indonesia yang dimainkan oleh dua orang pemain. Permainan ini dimainkan dengan menggunakan sebuah papan yang disebut papan congklak dan 98 (14 x 7) buah biji yang dinamakan biji congklak. Papan congklak terdiri dari 14 lubang kecil dan dua lubang besar (lumbung) yang terdapat di masing-masing ujung papan.

Gambar 2.1 Papan Congklak

2.3.1 Sejarah Permainan Congklak

  Congklak adalah permainan tradisional Indonesia yang berasal dari Arab. Permainan ini dibawa oleh orang-orang Arab ketika mereka berkunjung ke Indonesia untuk berdagang beberapa abad yang lalu. Mereka membawa kebudayaaan, agama, bahasa, makanan, tekstil, permainan, dan lain-lain untuk Indonesia (Pribadi, 2011). Congklak memiliki banyak nama di setiap wilayah di Indonesia. Nama-nama yang diberikan sesuai dengan kebudayaan masing-masing daerah. Nama yang paling umum adalah congklak. Permainan ini disebut Congkak di Sumatera. Di Jawa, permainan ini dikenal sebagai Congklak, Dakon, Dhakon atau Dhakonan. Di Lampung, permainan ini disebut Dentuman lamban. Dan untuk orang Sulawesi, permainan ini disebut Mokaotan, Maggaleceng, Aggacalang dan Nogarata.

  Sejarah permainan congklak berawal dari permainan yang dimainkan oleh gadis-gadis bangsawan muda di Jawa. Kemungkinan besar pedagang asing berhubungan dekat dengan kelas atas kemudian memperkenalkan congklak kepada mereka. Dengan berjalannya waktu, popularitas congklak tumbuh sampai sekarang dan banyak dimainkan oleh kalangan umum juga (Pribadi, 2011).

  Terdapat beragam versi dari permainan tradisional congklak. Di Malaysia congklak terkenal dengan nama congkak, sedangkan orang Afrika, Arab, Jepang, dan Inggris lebih mengenal jenis permainan ini dengan nama Mancala. Inti permainan congklak di berbagai negara memiliki kesamaan satu sama lain, yaitu memindahkan sebanyak-banyaknya biji milik sendiri dan milik lawan untuk dimasukkan ke dalam lubang besar (lumbung) milik sendiri. Tentunya pemain yang mengumpulkan biji terbanyak pada lumbung miliknya akan memenangkan permainan. Hal yang membedakan congklak di setiap negara adalah peraturan permainan, jumlah biji, dan jumlah lubang yang digunakan.

2.3.2 Aturan Permainan Congklak

  Secara umum, aturan permainan congklak tidak jauh berbeda dengan permainan Mancala. Kedua permainan ini menggunakan media yang sama. Tetapi terdapat sedikit perbedaan dari kedua jenis permainan ini yaitu arah pergerakan permainan.

  Pada permainan congklak, arah pergerakan permainan dilakukan mengikuti arah jarum jam sedangkan Mancala berlawanan arah jarum jam. Selain itu, pada permainan congklak apabila biji yang ditangan telah habis dan jatuh pada lubang kecil yang berisi biji lainnya, maka giliran pemain tersebut dapat dilanjutkan sedangkan pada Mancala tidak. Untuk lebih jelasnya, peraturan permainan congklak adalah sebagai berikut (Bakri, 2010):

  1. Papan congklak terdiri dari 2 lubang besar (lumbung) dan 14 lubang kecil.

  2. Pada awal permainan, setiap lubang kecil diisi dengan tujuh buah biji congklak.

  3. Permainan dimulai dengan suit untuk menentukan giliran pertama.

  4. Pemain yang mendapat giliran pertama dapat memilih lubang yang akan dijalankan. Kemudian menjatuhkan biji congklak satu per satu ke setiap lubang dengan mengikuti arah jarum jam.

  5. Giliran pemain akan tetap berlanjut jika memenuhi kondisi berikut: a.

  Apabila biji congklak di tangan habis di lumbung miliknya maka ia dapat melanjutkan dengan memilih lubang kecil di sisinya.

  b.

  Apabila biji congklak di tangan habis di lubang kecil yang berisi biji lainnya, ia dapat melanjutkan permainan.

  6. Giliran pemain akan berakhir apabila biji habis di lubang kecil yang kosong pada daerah permainan sendiri atau lawan. Jika biji jatuh di daerah permainan sendiri dan di hadapannya terdapat lubang berisi biji, maka ia dapat mengambil seluruh biji di lubang tersebut (biji sisi lawan). Proses ini dinamakan “tembak”.

  7. Permainan selesai apabila sudah tidak ada biji lagi yang dapat diambil atau salah satu arena pada lubang kecil tidak berisi biji lagi. Apabila biji di salah satu arena sudah habis, maka biji yang tersisa di arena lainnya di masukkan seluruhnya ke lumbung miliknya.

  8. Pemain yang memiliki biji lebih banyak pada lumbung miliknya akan keluar sebagai pemenang.

2.4 Teknik Pencarian (Searching)

  Pencarian merupakan suatu proses menemukan solusi yang tepat dari suatu permasalahan (Russell & Norvig, 2010).

  Evaluasi strategi pencarian memiliki empat kriteria: 1.

  Completeness: Apakah strategi tersebut menjamin menemukan solusi jika solusinya memang ada?

  2. Time complexity: Berapa lama waktu yang diperlukan untuk menemukan solusi?

  3. Space complexity: Berapa banyak memori yang diperlukan untuk melakukan pencarian?

  4. Optimality: Apakah strategi tersebut menemukan solusi yang paling baik jika terdapat beberapa solusi berbeda pada permasalahan yang ada?

  Di dalam kecerdasan buatan, metode pencarian sangat menentukan tingkat keberhasilan sistem cerdas tersebut. Teknik pencarian ini terbagi atas 2, yaitu pencarian buta (blind search) dan pencarian heuristik (heuristic search). Pencarian buta merupakan pencarian yang penelusurannya dimulai dengan tidak ada informasi awal yang digunakan dalam proses pencarian. Contohnya adalah Breadth-First-

  

Search (BFS) dan Depth-First-Search (DFS). Sedangkan pencarian heuristik

  merupakan pencarian yang penelusurannya dimulai dengan adanya informasi awal yang digunakan dalam proses pencarian. Contohnya adalah Hill Climbing, Tabu

  

Search, Genetic Algorithm, Ant Algorithm dan Simulated Annealing (Kusumadewi &

Purnomo, 2005).

2.5 Algoritma Depth-First Search (DFS)

  

Depth-First Search (DFS) merupakan algoritma pencarian yang paling umum

  digunakan. DFS akan melakukan pencarian pada sebuah pohon dengan cara menelusuri satu cabang sebuah pohon sampai menemukan solusi. Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan.

  

Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak

  ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking yaitu penelusuran balik untuk mendapatkan jalur yang diinginkan (Cormen et al., 2009).

Gambar 2.2 Penelusuran pohon permainan dengan DFS (Coppin, 2004)

  Pada Gambar 2.2 dapat diketahui bahwa proses penelusuran DFS dimulai dari A-B-D-G-D-H-D-B-A-C-E-I-E-J. A merupakan root yang menandakan keadaan belum diambil, lalu ditelusuri hingga kedalaman yang paling dalam sebelah kiri yaitu G, lalu melakukan proses backtrack ke D lalu lanjut lagi ke H. Proses tersebut berhenti karena telah mencapai goal state yaitu leaf node J.

  Langkah-langkah cara kerja algoritma DFS adalah sebagai berikut: 1.

  Masukkan root ke dalam struktur data tumpukan (stack).

  2. Ambil simpul dari tumpukan teratas, dan diperiksa apakah simpul merupakan solusi.

  3. Jika simpul merupakan solusi, maka pencarian selesai dan hasil dikembalikan.

  4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut ke dalam tumpukan.

  5. Jika tumpukan kosong dan setiap simpul sudah ditelusuri, pencarian selesai dan solusi tidak ditemukan.

  6. Ulangi pencarian dari poin kedua.

2.6 Algoritma Minimax

  Algoritma Minimax ialah suatu metode yang sangat bermanfaat untuk permainan dua pemain sederhana. Metode ini digunakan untuk memilih langkah terbaik yang diberikan, dimana kedua pemain saling berusaha untuk memenangkan permainan. Setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya akan dapat diketahui (M. Tim Jones, 2008). Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal.

  Algortima Minimax dapat menghasilkan pilihan langkah yang baik dengan mengasumsikan bahwa pemain lawan akan selalu memilih langkah terbaik untuk dirinya dan langkah terburuk bagi komputer. Prinsip dasar pada algoritma Minimax ini adalah jalur yang akan dipilih oleh komputer merupakan jalur maksimum (max

  

node ) yang akan menghasilkan nilai maksimum di jalur tersebut, dan saat lawan yang

  akan bermain akan meminimalkan (min node) nilai komputer. Jadi, komputer bertujuan untuk memaksimalkan kemungkinan nilai paling rendah yang akan diperoleh komputer.

  Jika pemain memilih suatu langkah, maka pemain akan memilih langkah yang akan menghasilkan suatu posisi yang bagus. Kita dapat menganggap bahwa pemain akan memilih langkah yang akan menuntunnya pada posisi terbaik. Dengan kata lain, ketika pemain mendapat giliran bermain maka pemain akan mencoba memaksimalkan nilainya. Ketika lawan mendapat giliran bermain, pemain akan mengganggap bahwa lawan akan memilih langkah yang akan memberikan pemain posisi terburuk yang tersedia. Lawan sedang berusaha meminimalkan nilai dari pemain. Untuk proses dan cara kerja algoritma Minimax yang lebih jelas, dapat dilihat pada gambar berikut:

  Level 0 Level 1 Level 2

Gambar 2.3 Cara kerja algoritma Minimax (Coppin, 2004)

  Langkah-langkah cara kerja algoritma Minimax adalah sebagai berikut: 1.

  Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada level 2 (MAX) masukkan nilai 5, hampiri 2. Karena 2<5 maka nilai parent tidak perlu diganti.

  2. Setelah kedua leaf pertama dihampiri, naik lebih tinggi lagi ke level 1 (MIN) masukkan nilai 5.

  3. Hampiri node ketiga pada leaf dengan nilai 1, naik ke parent pada level 2 (MAX) masukkan nilai 1. Kemudian hampiri leaf keempat dengan nilai 3.

  Karena 3>1 maka ganti parent pada level 2 (MAX) dengan nilai 3.

  4. Karena 3<5 maka ganti parent pada level 1 (MIN) dengan nilai 3.

  5. Setelah keempat leaf pertama dihampiri, naik lebih tinggi lagi ke level 0 (MAX) masukkan nilai 3.

  6. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah 6.

2.7 Algoritma Alpha Beta Pruning

  Pada dasarnya, algoritma Minimax sangat handal untuk menyelesaikan segala masalah dalam pencarian langkah untuk permainan komputer dengan jumlah kemungkinan penyelesaian yang kecil. Tetapi, jika algoritma Minimax digunakan pada permainan dengan jumlah kemungkinan penyelesaian yang besar, algoritma Minimax ini memerlukan waktu yang sangat lama untuk membangun pohon penyelesaian.

  Oleh karena itu, beberapa metode lanjutan dari algoritma Minimax telah dikembangkan untuk membatasi melonjaknya jumlah simpul dalam pembangunan pohon penyelesaian. Berbagai jenis metode telah ditemukan untuk meningkatkan kinerja algoritma Minimax, salah satunya adalah Alpha Beta Pruning. Dengan menggunakan metode ini maka diharapkan sistem dapat bekerja lebih baik. Untuk proses dan cara kerja algoritma Alpha Beta Pruning yang lebih jelas, dapat dilihat pada gambar berikut:

  Level 0 Level 1 Level 2

Gambar 2.4 Cara kerja algoritma Alpha Beta Pruning (Tyugu, 2007) Langkah-langkah cara kerja algoritma Alpha Beta Pruning adalah sebagai berikut: 1.

  Hampiri node pertama pada leaf dengan nilai 4, naik ke parent pada level 2 (MAX) masukkan nilai 4, hampiri 1. Karena 1<4 maka nilai parent tidak diganti.

  2. Setelah kedua leaf pertama dihampiri, naik lebih tinggi lagi ke level 1 (MIN) masukkan nilai 4.

  3. Hampiri node ketiga pada leaf dengan nilai 8, naik ke parent pada level 2 (MAX) masukkan nilai 8. Jika kita menghampiri leaf berikutnya, kita mencari nilai yang lebih tinggi dari 8, sementara pada level 1 (MIN) kita mencari yang lebih kecil dari 4. Maka leaf keempat (5) kita potong (tidak kita hampiri).

  4. Setelah keempat leaf pertama dihampiri, naik lebih tinggi lagi ke level 0 (MAX) masukkan nilai 4.

  5. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah 4.

2.8 Android

  Menurut Ed Burnette (2009), Android adalah sistem operasi untuk Mobile atau telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam perangkat Mobile. Awalnya, Google Inc. membeli Android Inc. Pada saat perilisan perdana Android pada tanggal 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode-kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.

  Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan kompetisi aplikasi Mobile terbaik. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.

  Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset Android, 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 MySpace dan Facebook.

2.8.1 Arsitektur Android

  Secara garis besar, Arsitektur Android terbagi menjadi 5 komponen utama, yaitu

  

Application and Widgets, ApplicationFramework, Libaries, Android Runtime, dan

Linux Kernel.

Gambar 2.5 Komponen utama Arsitektur Android (Hoog, 2011)

  Diagram arsitektur pada Gambar 2.5 menunjukkan bahwa komponen utama arsitektur Android dibagi menjadi lima bagian, yaitu: 1.

   Applications and Widgets

  adalah layer di mana kita berhubungan dengan aplikasi saja, di mana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Pada layer tersebut terdapat aplikasi inti seperti email, SMS, kalender, peta, browser, kontak, dan lain sebagainya. Widgets terdiri dari layer-layer seperti EditText, Spinner,

  Button, TextView , dan lain-lain.

2. Applications Frameworks

  Android merupakan platform yang terbuka, artinya Android menawarkan serta memberikan kemampuan kepada para pengembangnya untuk membangun aplikasi yang bagus dan inovatif. Tiap pengembang bebas untuk mengakses perangkat keras, akses informasi resources, menjalankan service background, mengatur alarm, dan lain-lain. Pengembang memiliki akses penuh ke API Framework seperti yang dilakukan oleh aplikasi inti. Arsitektur aplikasi dirancang agar kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan (reusable). Komponen pada Applications Frameworks Android adalah sebagai berikut: a.

  Views b.

  Content Provider c. Resource Manager d.

  Notification Manager e. Activity Manager 3.

   Libraries

  Merupakan layer di mana fitur-fitur Android berada, biasanya para pengembang aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas kernel, layer ini meliputi berbagai library C/C++ inti seperti Lib-C dan SSL, serta:

  Libraries media untuk pemutaran media audio dan video

  • Libraries untuk manajemen tampilan
  • Libraries Graphics mencakup SGL dan OpenGL untuk grafis 2Ddan 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
  • 4.

  Libraries 3D yang mencakup implementasi API OpenGL ES 1.0

   Android Runtime

  Merupakan layer yang membuat aplikasi Android dapat dijalankan di mana dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi Android. Di dalam

  android runtime dibagi menjadi dua bagian yaitu:

  • sebagai mesin virtualnya, bukan JVM (Java Virtual Machine). Sehingga dibutuhkan sebuah libraries yang berfungsi untuk menerjemahkan bahasa Java/C yang ditangani oleh Core Libraries ini.

  Core Libraries: Aplikasi Android dibangun dalam bahasa Java,sementara Dalvik

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

  Dalvik Virtual Machin: Virtual mesin yang berbasis register yang dioptimalkan

   Linux Kernel

  Adalah layer dimana inti dari sistem operasi Android itu berada. Berisi file-file sistem yang mengatur pemrosesan sistem, memory, resource, drivers, dan sistem-sistem operasi Android lainnya. Linux kernel yang digunakan Android adalah Linux kernel rilis 2.6

2.8.2 Versi Android

  Adapun versi-versi Android yang pernah dirilis adalah sebagai berikut:

Tabel 2.1 Versi-versi Android

  Platform Nama Kode Tanggal Rilis Level API

  Android 1.0 Apple Pie

  23 September 2008

  1 Android 1.1 Banana

  9 Februari 2009

  2 Bread

  Android 1.5 Cupcake

  30 April 2009

  3 Android 1.6 Donut

  15 September 2009

  4 Android 2.0

  26 Oktober 2009

  5 Android 2.0.1 Eclair

  3 Desember 2009

  6 Android 2.1

  12 Januari 2010

  7 Android 2.2 Froyo

  20 May 2010

  8

  • – Android 2.3

  6 December 2010

  9 Andoroid 2.3.2 Gingerbread

  • – Android 2.3.3 Android 2.3.7

  10

  Platform Nama Kode Tanggal Rilis Level API Android 3.0

  22 February 2011

  11 Android 3.1 Honeycomb

  12 Android 3.2

  13

  • – Android 4.0 Ice Cream

  19 October 2011

  14 Android 4.0.2 Sandwich Andorid 4.0.3

  15 Android 4.0.4

  28 Maret 2012

  15 Android 4.1 Jelly Bean

  27 Juni 2012

  16 Dari Tabel 2.1 dapat dilihat pada setiap perubahan versi android terdapat perubahan API Level. API Level adalah nilai yang menunjukkan revisi framework pada platform Android. Nomor versi android yang terus berubah dikarenakan perubahan API Level. Setiap versi android mendukung tepat satu API Level, namun tetap mendukung API Level sebelumnya. API Level akan menentukan apakah suatu aplikasi bisa dijalankan pada suatu platform Android atau tidak.

2.9 Penelitian Sebelumnya

  Pencarian solusi pada permainan congklak sudah pernah dilakukan dengan menggunakan beberapa metode, diantaranya Implementasi Algoritma Greedy Pada Permainan Congklak (Adha, 2009) dan Analisis dan Implementasi Algoritma Backtracking Pada Permainan Congklak (Bakri, 2010). Algoritma Minimax juga sudah pernah diimplementasikan untuk menyelesaikan permainan, diantaranya Analisis dan Implementasi Kecerdasan Buatan Pada Permainan Checker Menggunakan Algoritma Minimax Dengan Negascout (Akbar, 2011) dan Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic-Tac-Toe (Akbar, 2007).

Tabel 2.2 Penelitian Sebelumnya No Judul Pengarang Tahun Keterangan

  1 .

  Implementasi Algoritma Greedy Pada Permainan Congklak

  Ripandy Adha 2009 Algoritma Greedy dapat memecahkan masalah optimum, namun tidak selalu menghasilkan solusi yang optimum.

  2 .

  Analisis dan Implementasi Algoritma Backtracking Pada Permainan Congklak

  Adhhal Huda Bakri 2010 Algoritma ini secara sistematis mencari solusi persoalan diantara semua kemungkinan solusi yang ada. Namun langkah yang diambil belum tentu merupakan langkah yang terbaik, sehingga memungkinkan terjadi terlalu banyak backtracking yang harus dilakukan.

  3 Analisis dan Implementasi Kecerdasan Buatan Pada Permainan Checker Menggunakan Algoritma Minimax Dengan Negascout

  Muhammad Aidil Akbar 2011 Algoritma Minimax kurang efesien apabila digunakan secara tunggal sehingga perlu dilakukan pemotongan dengan Negascout. Pemotongan pada

  Negascout dapat meminimalkan waktu yang diperlukan sistem dalam melakukan pencarian.

  4 Algoritma Minimax Dalam Pengambilan Keputusan Pada Permainan Tic- Tac-Toe

  Khoirush Sholih Ridhwaana Akbar 2007 Algoritma Minimax bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Semua strategi lawan akan dihitung dengan algoritma yang sama dan seterusnya.