BAB 2
LANDASAN TEORI
2.1.
Games
Pada zaman sekarang, permainan (games) sudah menjadi kebutuhan sehari-hari bagi sebagian orang. Seseorang akan merasa kurang lengkap dalam menjalani hari apabila belum memainkan sebuah permainan (game) yang digemarinya. Permainan yang dimainkan dapat berupa permainan konvensional ataupun permainan modern yang menggunakan konsol atau komputer.
2.1.1. Sejarah games
Pada awalnya, game dibuat dengan menggunakan alat elektronik yang bisa berinteraksi dengan manusia / users dengan berbagai format tampilan. Contoh game pertama kali dibuat pada tahun 1947, idenya berupa “Cathode Ray Tube Amusement Device” dibuat oleh Thomas T. Goldsmith Jr. dan Estle Ray Mann. Dua orang tersebut mematenkan pada tanggal 25 Januari 1947, yang mana telah mendapatkan pengakuan tanggal 14 Desember 1948 sebagai U.S paten No. 2455992. Diinspirasi oleh tampilan pada sebuah radar, alat tersebut menampilkan sebuah tampilan analog yang memungkinkan pengguna untuk mengontrol sebuah titik pada layar yang disimulasikan
sebagai
peluru/misil
yang
ditembakkan
pada
sebuah
target.
Universitas Sumatera Utara
7
Contoh lain ada pada computer NIMROD pada festival Inggris tahun 1951. Alexander S. Douglas membuat OXO (tic tac toe) untuk sebuah ESDAC di tahun 1952. Tahun 1958, William Higinbotham mengembangkan sebuah game interaktif yang dinamakan “Tennis for Two”. Beberapa mahasiswa dari MIT, Martin Graetz, Steve Russel, dan Wayne Wiitanen membuat Spacewar pada sebuah computer yang bernama DEC PDP. NIMROD menggunakan sebuah panel cahaya untuk memainkan game yang bernama Nim, OXO menggunakan gambar grafik tampak samping permainan tenis, dan Spacewar menggunakan gambar vektor untuk menampilkan kapal perang satu sama lain.
Pada tahun 1971, Computer Space telah merilis dan menjual video game secara komersil yang dioperasikan dengan memasukkan sebuah koin untuk menyewanya. Dibuat oleh Nolan Bushnell dan Ted Dabney, perangkat ini digunakan sebagai standar game. Sistem ini diikuti sistem game lainnya, yaiut versi arcade pada tahun 1972 yang bernama Atari dan Pong yang digunakan sebaagi konsol game yang dimainkan di rumah.
Perkembangan game terus berlangsung hingga sekarang dan makin banyak jenis game yang bisa dimainkan di berbagai platform game dengan grafik yang terus meningkat. Hal ini dibuktikan dengan program game yang lebih kompleks dan tampilan grafik tiga dimensi.
2.1.2. Mobile games
Mobile games adalah video games yang dimainkan di telepon seluler, ponsel cerdas, PDA, komputer tablet, portable media player dan lain-lain. Mobile games tidak termasuk yang dimainkan pada sistem dedicated video game pada konsol-konsol seperti Nintendo 3DS atau Playstation Vita. Game pertama pada telepon seluler adalah “Tetris” yang ada pada perangkat MT-2000 pada tahun 1994. Tiga tahun kemudian, meluncurkan game yang sangat sukses yaitu “Snake” pada tahun 1997. “Snake” dan variannya menjadi salah satu
Universitas Sumatera Utara
8
game yang paling banyak dimainkan dan dapat ditemukan di lebih dari 350 juta perangkat di seluruh dunia.
Pada tahun 1999-an muncul lagi trend mobile games dengan game berbasis WAP dan game berbasis SMS. Di era ini, dirilislah game I-Mode, layanan internet nirkabel, yang begitu polpuler di Jepang dan negara lain. Telepon seluler pun sudah mampu digunakan untuk bermain game secara multiplayer karena adanya dukungan jaringan internet. Pada tahun 2001, dengan adanya perkembangan spesifikasi dari telepon seluler, game telah dimainkan pada layar berwarna dengan dukungan grafik yang lebih baik dan sudah mampu untuk di-download. Pada masa itu, pengguna telepon seluler mulai berlomba-lomba membeli dan menyimpan berbagai hiburan ke dalam telepon seluler. Telepon seluler pun berkembang kea rah menggunakan microcomputer sehingga dukungan grafik dan suara yang lebih baik dapat digunakan pada mobile game. Pada tahun 2003, Nokia memperkenalkan platform N-Gage dan game online dengan platform tersebut. Hingga saat ini, telah banyak telepon seluler yang mendukung grafik 3D, kualitas suara dan tampilan yang lebih baik, dan memori yang memadai. Berbagai platform pemrograman game (J2ME, Symbian, Windows Mobile, Android, Apple) sudah didukung dengan pustaka yang semakin lengkap.
2.1.3. Klasifikasi / aliran mobile games
Dalam memebuat sebuah game kita terlebih dahulu harus mengetahui jenis game yang akan kita buat. Dari jenis game tersebut kita dapat mengetahui skema dari permainan maupun tujuan sebuah game. Game tersebut terdiri dari 5 jenis (Zechner, 2011), antara lain :
1. Casual games. Merupakan jenis game yang sederhana. Siapa saja dapat memainkannya dengan mudah termasuk para non-gamer. Setiap sesi dapat diselesaikan hanya dalam beberapa menit. Namun dibalik kesederhanaannya tersebut, game ini dapat membuat orang memainkannya selama berjam-jam. 2. Puzzle games. Merupakan jenis game yang berhubungan dengan matematika. Magic square adalah salah satu contoh dari puzzle games.
Universitas Sumatera Utara
9
3. Action and arcade games. Merupakan jenis game yang memerlukan resource yang besar. Sebagian besar dari permainan ini memberikan visualisasi 3D. Contoh dari jenis ini adalah Exzeus.
4. Tower-defence games. Merupakan jenis games yang bertujuan untuk mempertahankan
bangunan/istana/rumah/wilayah
dari
serangan
musuh.
Contoh dari jenis ini adalah Robo Defence.
5. Innovation. Merupakan jenis permainan yang menggunakan inovasi terbaru dalam
memainkannya.
Jenis
game
ini
biasanya
menggunakan
dan
memanfaatkan kemampuan dan fitur pada perangat seperti kamera dan GPS.
2.2.
Magic Square
Permainan magic square adalah permainan puzzle yang menurut literatur kuno sudah ada di China sejak 2200 SM. Selain itu magic square juga ditemukan di berbagai kebudayaan seperti India kuno dan Mesir kuno. Pada kebudayaan tersebut magic square digunakan sebagai pertanda astronomi dan juga pencegahan terhadap wabah penyakit. Permainan magic square adalah permainan dengan bentuk n x n sel. Pada magic square normal, angka-angka yang dapat diisikan pada sel tersebut adalah bilangan integer dari 1 hingga n x n.
Dalam menyelesaikan permainan magic square ada beberapa aturan yang harus dipenuhi, yaitu: 1. Angka hanya bisa digunakan sekali. Dengan kata lain angka-angka yang digunakan haruslah unik. Tetapi angka yang digunakan hanyalah angka yang sesuai dengan jumlah kotak pada magic square. 2. Jumlah angka pada setiap kolom, baris dan dua diagonalnya haruslah sama. 3. Jumlah angka-angka tersebut dapat dihitung dengan rumus, n3 + n Jumlah = Dimana n adalah jumlah dari sel-selnya. 2
Universitas Sumatera Utara
10
2.3.
Algoritma Breadth First Search
Algoritma breadth first search adalah algoritma pencarian solusi yang melakukan pencarian pada graf atau pohon berakar secara melebar dengan cara mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Simpul yang belum dikunjungi dan bertetangga dengan simpul – simpul yang tadi dikunjungi, demikian seterusnya. (Yomanovian, 2012)
Jika diilustrasikan dalam pohon berakar, maka semua simpul pada x dikunjungi lebih dahulu sebelum simpul-simpul pada x + 1. Algoritma ini memerlukan sebuah antrian (queue) Q untuk dapat menyimpan simpul yang telah dikunjungi.
Secara umum, prinsip pencarian solusi dengan algoritma Breadth First Search (BFS) dimulai dengan simpul akar (simpul akar terlebih dahulu dimasukkan dalam antrian, lalu di pop()), lalu mengekspansi simpul-simpul anak dari dari simpul akar, dan memasukkan simpul anak dalam sebuah antrian. Antrian tadi digunakan untuk memberikan tanda pada simpul – simpul tetangga yang nantinya akan dikunjungi berdasarkan urutan yang ada pada antrian. Penjabaran dari langkah – langkah pada prinsip pencarian solusi dengan algoritma BFS ini adalah sebagai berikut :
-
Akar dimasukkan ke dalam antrian (simpul paling awal yang akan dikunjungi terlebih dahulu).
-
Simpul yang ada pada awal antrian diambil terlebih dahulu untuk dilakukan pengecekan terhadap status simpul tersebut sebagai solusi permasalahan atau tidak, dan mengekspansi anak-anaknya jika ada.
-
Jika simpul yang sudah dicek tadi merupakan solusi permasalahan, perncarian selesai dan hasil dikembalikan.
-
Jika simpul yang sudah dicek sebelumnya bukan merupakan solusi permasalahan, maka semua simpul yang bertetanggaan dengan simpu tadi (simpul anak) dimasukkan ke dalam antrian.
Universitas Sumatera Utara
11
-
Jika antrian telah kosong dan semua simpul telah dicek maka status pencarian telah selesai dan solusi tidak ditemukan.
-
2.4.
Hal ini dilakukan hingga solusi ditemukan/sampai antrian kosong.
Android
Android adalah 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. Bagi pengembang, android menyediakan semua tools dan framework untuk mengembangkan aplikasi dengan mudah dan cepat. Dengan adanya Android SDK (Software Develpment Kit) pengembang aplikasi dapat memulai pembuatan aplikasi pada platform Android dengan menggunakan bahasa pemrograman Java.
Pada awalnya, android adalah milik sebuah perusahaan yang bernama Android. Inc. yang merupakan pendatang baru yang membuat piranti lunak untuk ponsel. Android. Inc. didirikan oleh Andy Rubin, Rich Milner, Nick Sears, dan Chris White pada tahun 2003. Pada Agustus 2005, Google membeli Android. Inc. Kemudian untuk mengembangkan android dibentuklah Open Handset Alliance yang merupakan konsorsium dari lebih dari 30 perusahaan hardware, software, dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan NVidia (Safaat, 2010).
Pada saat perilisan perdana android pada tanggal 5 November 2007, android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat seluler. Di pihak lain, Google merilis kode-kode android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler. Berikut ini adalah sejarah android pada saat awal diluncurkan, 1. Tahun 2003 Android. Inc. didirikan oleh Andy Rubin, Rich Milner, Bick Sears, dan Chris White.
Universitas Sumatera Utara
12
2. Tahun 2005 Google membeli Android. Inc. Pada saat itu dunia berpikir bahwa Google akan memproduksi smartphone, namun ambisi Google lebih besar dari itu yaitu untuk membuat sebuah platform yang dapat digunakan di banyak perangkat. 3. Tahun 2007 Open Handset Alliance dibentuk. Android resmi menjadi plarform open source. 4. Tahun 2008 Android SDK 1.0. dirilis. Google kemudian mengenalkan Nexus One yang menggunakan Android versi 1.0. Ponsel ini diproduksi oleh HTC Coorporation. 5. Tahun 2009 versi baru dari android dirilis, yaitu Cupcake (1.5), Donut (1.6), dan Eclair (2.0 dan 2.1). Pada tahun tersebut, lebih dari 20 perangkat menggunakan android. 6. Tahun 2010 android versi 2.2 dirilis dengan nama Froyo. Android berada pada posisi kedua setelah Blackberry pada penjualan terbanyak platform smartphone. Pada tahun ini juga, lebih dari 60 perangkat menggunakan sistem operasi android.
2.4.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.
Universitas Sumatera Utara
13
-
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.4.2. Arsitektur android
Pada prinsipnya, sistem operasi android mirip seperti sebuah kue yang terdiri berbagai lapisan. Setiap lapisan memiliki karakteristik dan tujuan masing-masing. Secara garis besar arsitektur android dapat dijelaskan dan digambarkan pada Gambar 2.1.
Gambar 2.1. Arsitektur Android (Sumber : Beginning Android for Games Development, 2011)
Universitas Sumatera Utara
14
-
Linux Kernel
Tumpukan paling bawah dari Android adalah Linux Kernel. Linux kernel berfungsi untuk mengatur system processing, resource, memory, drivers, dan sistem-sistem operasi Android lainnya.
-
Android Runtime
Lapisan setelah Linux kernel adalah Android runtime. Android runtime ini berisi Core Libraries dan Dalvik Virtual Machine (DVM). Core Libraries mencakup serangkaian inti library Java, artinya Android menyertakan satu set library dasar yang menyediakan sebagian besar fungsi-fungsi yang ada pada library dasar bahasa pemrograman Java. Dalvik adalah Java Virtual Machine yang memberi kekuatan pada sistem Android. Dalvik VM ini dioptimalkan untuk telepon seluler. Setiap aplikasi yang berjalan pada Android berjalan pada prosesnya sendiri, dengan instansi dari Dalvik Virtual Machine.
-
Libraries
Bertempat di level yang sama dengan Android runtime. Android mendukung beberapa library C/C++ yang digunakan oleh berbagai komponen yang ada pada system Android. Kemampuan ini dapat diakses oleh programmer melewati aplikasiframework Android. Libraries tersebut diantaranya : 1. System C Library. Merupakan implementasi library C standard (libc). 2. Media Libraries. Merupakan library yang mendukung playback dan recording dari berbagai format multimedia antara lain MPEG4, H.264, MP3, AAC, AMR, JPG, dan PNG. 3. Surface Manager. Merupakan libraries untuk mengatur akses pada layar dan lapisan komposit 2D dan grafis 3D dari berbagai aplikasi. 4. LibWebCore. Merupakan engine web browser modern. 5. SGL. Merupakan engine untuk grafis 2D.
Universitas Sumatera Utara
15
6. 3D Libraries. Merupakan implementasi dari OpenGL ES 1.0 yang mendukung akselerasi hardware. 7. Freetype. Merupakan libraries untuk rendering untuk bitmap dan vector font. 8. SQLite. Merupakan libraries basis data relasional yang dapat mendukung system database pada android.
-
Application Framework
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
Universitas Sumatera Utara
16
-
Application
Aplications 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.
2.4.3. Versi Android
Seperti kebanyakan perangkat lunak, abdroid selalu dikembangkan sehingga android memiliki beberapa versi. Daftar versi android yang telah dirilis hingga tahun 2012 adalah sebagai berikut : 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
Universitas Sumatera Utara
17
2.5.
Penelitian Sebelumnya
Tabel 2.1. Penelitian sebelumnya No. 1.
Peneliti Tahir Arazi
Tahun 2007
Judul Penggunaan
Algoritma
Runut-balik
Pada Pencarian Solusi dalam Persoalan Magic Square 2.
Rahadhika Wendar
2007
Penerapan
Algoritma
Backtracking
dalam Pemecahan Permainan Magic Square 3.
Muhammad Anggi Rivai Nasution
2011
Analisis Dan Implementasi Algoritma Runut
Balik
(Backtracking)
Pada
Permainan Magic Square
Universitas Sumatera Utara