BAB 2 LANDASAN TEORI 2.1 Game

advertisement
BAB 2
LANDASAN TEORI
2.1 Game (Permainan)
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 (Salen & Zimmerman, 2003). Game
merupakan sesuatu hal yang dimainkan dengan suatu aturan tertentu yang biasa
digunakan untuk tujuan kesenangan dan dapat juga digunakan untuk tujuan
pendidikan. Game umumnya melibatkan stimulasi mental, fisik, atau keduanya.
Banyak game yang dapat membantu mengembangkan keterampilan praktis yang
berfungsi sebagai latihan, atau melakukan peran pendidikan, simulational, atau
psikologis.
2.1.1
Game Theory (Teori Permainan)
Teori permainan adalah suatu cara belajar yang digunakan dalam menganalisa
interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategistrategi rasional (Leyton-Brown & Shoham, 2008).
Teori permainan dapat diklasifikasikan kedalam beberapa bagian, yaitu:
1. 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.
Universitas Sumatera Utara
7
2. 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).
3. The Goal of the Game
Tujuan umum permainan berbasis strategi adalah untuk mendapatkan
kemenangan. 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.
4. 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 didalamnya. 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
Universitas Sumatera Utara
8
untuk jenis permainan lain, tetapi biasanya hasil yang diperoleh akan menjadi
lebih buruk (Millington & Funge, 2009).
2.2 Checkers (English Draughts)
Permainan Checkers dalam versi English Draughts / American Checkers adalah
permainan yang dimainkan oleh dua orang pemain. Permainan ini dimainkan diatas
papan persegi yang terdiri dari 8 baris dan 8 kolom (total 64 kotak), berbeda dengan
versi International Draughts yang dimainkan pada papan yang terdiri dari 10 baris dan
10 kolom. Checkers (English Draughts) dimainkan dengan koin berwarna gelap
dengan lawannya koin berwarna terang, dan untuk masing-masing pemain mempunyai
koin sebanyak 12 buah. Tujuan dari permainan ini adalah menemukan cara terbaik
untuk memakan koin lawan hingga tidak ada yang tersisa, atau memaksa koin lawan
yang tersedia agar tidak dapat melakukan gerakan. Masing-masing koin tersebut akan
disusun pada setiap kotak berwarna gelap di 3 baris terdekat daerah awal permainan
masing-masing. Baris yang terdekat pada sisi masing-masing pemain disebut “kings
row” (baris raja). Untuk lebih jelasnya, posisi awal dalam permainan Checkers dapat
dilihat pada Gambar 2.1.
Gambar 2.1 Kondisi awal permainan Checkers
Universitas Sumatera Utara
9
2.2.1
Aturan Permainan Checkers
Sesuai dengan klasifikasi pada teori permainan, maka aturan permainan Checkers
adalah sebagai berikut (Schaeffer, 2008):
1. Number of Players
Checkers merupakan permainan yang dimainkan oleh dua orang pemain. Salah
satu pemain memiliki koin berwarna gelap dan yang lain memiliki koin
berwarna terang. Setiap pemain memiliki 12 koin yang disusun pada setiap
kotak berwarna gelap yang berada pada 3 baris daerah awal masing-masing
pemain.
2. Plies, Move and Turns
Pemain yang menggunakan koin berwarna gelap akan bermain terlebih dahulu.
Kemudian dilanjutkan dengan pemain dengan koin berwarna terang, begitu
seterusnya secara berulang-ulang. Pemain melakukan langkah bergantian
sampai permainan berakhir. Koin pada permainan Checkers dapat bergerak
dengan 2 cara, yaitu:
a. Pergerakan dasar pada Checkers yaitu koin bergerak maju satu langkah
ke depan secara diagonal, mengisi kotak berwarna gelap.
b. Koin melompat melewati koin lawan secara diagonal ke depan, tetap
mengisi kotak gelap berikutnya yang dalam keadaan kosong. Koin
yang baru saja melompati koin lawan tersebut dapat terus berulang
melompati koin lawan berikutnya dalam satu kesempatan (berada pada
posisi diagonal kanan atau kiri bagian depan) sampai langkah tidak
dapat dilanjutkan dengan sebuah lompatan lagi. Koin yang dilangkahi
oleh koin lawan harus meninggalkan papan, dengan istilah bahwa koin
pelompat telah “menangkap” koin yang dilompati. Pada posisi pilihan
yang tersedia antara melakukan lompatan atau melakukan pergerakan
diagonal dasar, pemain diharuskan memilih gerakan lompatan
walaupun gerakan tersebut tidak menguntungkan.
Universitas Sumatera Utara
10
3. The Goal of the Game
Permainan Checkers akan berakhir dengan kondisi sebagai berikut:
a. Pemain yang berhasil menghabiskan semua koin lawan adalah
pemenang.
b. Pemain yang berhasil membuat lawan tidak dapat melakukan langkah
lagi maka telah memenangkan permainan.
c. Permainan berakhir seimbang jika kedua pemain dalam kondisi samasama tidak dapat melakukan langkah lagi untuk menang.
4. Information
Permainan Checkers adalah permainan yang memiliki “informasi yang
sempurna”, dimana pemain dapat mengetahui langkah apa yang dapat terjadi
berikutnya jika suatu langkah diambil. Hal ini memberikan pertimbangan pada
setiap langkah yang akan diambil, dimana hal tersebut sangat diperlukan
dalam menentukan strategi untuk mengalahkan lawan karena permainan
Checkers tidak memiliki batasan waktu dalam permainannya.
2.3 Kecerdasan Buatan
Kecerdasan Buatan (Artificial Intelligence) merupakan salah satu bidang ilmu
komputer yang didefinisikan sebagai kecerdasan yang dibuat untuk suatu sistem
dengan menggunakan algoritma tertentu sehingga sistem tersebut seolah-olah dapat
berfikir seperti manusia (Coppin, 2004). Menurut Russell dan Norvig (2010),
kecerdasan buatan berkaitan dengan bagaimana komputer melakukan sesuatu tindakan
rasional yang dapat didefinisikan sebagai cerdas. Definisi kecerdasan buatan lain juga
diungkapkan oleh Rich dan Knight (1991), kecerdasan buatan merupakan sebuah studi
tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat
dilakukan lebih baik oleh manusia.
Universitas Sumatera Utara
11
2.3.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 pada kecerdasan buatan
adalah sebagai berikut (Kusumadewi, 2003), yaitu:
1. Sistem Pakar (Expert System)
Sistem pakar 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. Bahasa Alamiah (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.
3. 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.
4. Computer Vision
Computer Vision merupakan suatu sarana untuk dapat menginterpretasikan
gambar atau objek-objek yang tampak melalui komputer.
5. Permainan (Games)
Permainan game (Game Playing) merupakan suatu bidang AI yang sangat
populer berupa permainan antara manusia melawan mesin yang memiliki
intelektual untuk berpikir. Sebagai contohnya adalah permainan Checkers.
Universitas Sumatera Utara
12
2.4 Pemecahan Masalah
Pencarian adalah suatu proses menemukan solusi yang tepat untuk sebuah pemecahan
masalah. Dalam kecerdasan buatan, metode pencarian sangat menentukan tingkat
sistem cerdas tersebut. Teknik pencarian ini terbagi atas 2, yaitu blind search
(pencarian buta) dan heuristic search (pencarian heuristik). Pencarian buta merupakan
pencarian yang penelusurannya dimulai dengan tidak ada informasi awal yang
digunakan dalam proses pencarian. Contohnya adalah Algoritma
Breadth-First-
Search (BFS), Depth-First-Search (DFS), dan Iterative Deepening Search (IDS)
((Russell & Norvig, 2010). 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).
Kualitas hasil pencarian pada suatu permainan bergantung kepada seberapa
jauh algoritma tersebut dapat melihat langkah ke depan. Untuk Permainan dengan
kedalaman atau jauhnya penglihatan langkah ke depan yang tidak terbatas, butuh
waktu sangat lama untuk mencari sebuah pemecahan masalah. Untuk menghindarkan
pencarian menemukan jalan buntu atau terlalu lama mencari solusi, maka dapat
digunakan algoritma Iterative Deepening Search (Millington, 2010).
2.5 Iterative Deepening Search
Salah satu contoh dari blind search adalah Iterative Deepening Search (IDS) yang
merupakan modifikasi dari algoritma Depth-First Search (DFS), yaitu sebuah teknik
pencarian yang menggabungkan kelebihan Breadth-First Search (complete dan
optimal) dengan kelebihan Depth-First Search (space complexity yang rendah)
(Coppin, 2004).
Dengan kelebihan pada Depth-First Search, maka IDS hanya membutuhkan
memori yang kecil karena hanya simpul dalam path saja yang disimpan. Sama halnya
Universitas Sumatera Utara
13
dengan Breadth-First Search, Iterative Deepening Search dapat menemukan solusi
terbaik karena pencarian dilakukan secara merata terlebih dahulu hingga batas
bertambah dan perulangan terjadi, ini mendukung IDS untuk menemukan solusi tanpa
akan menemukan jalan buntu jika percabangan ke bawah pada pohon tidak terbatas
(Russell & Norvig, 2010).
2.5.1
Cara Kerja Algoritma IDS
Metode pencarian pada IDS menggunakan metode pencarian pada DFS, yaitu
pencarian pada sebuah pohon dengan 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. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka
tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur
yang diinginkan). Akan tetapi, dalam metode pencarian IDS, pencarian mencoba
menemukan batas kedalaman yang terbaik dengan terus menelusuri batas kedalaman
satu per satu, pencarian dilakukan secara iteratif dimulai dari batasan level 0. Jika
solusi belum ditemukan, maka dilakukan iterasi berikutnya dengan batasan level 1,
demikian seterusnya sampai menemukan solusi (Russel & Norvig, 2010). Gambar 2.2
mengilustrasikan tentang bagaimana cara kerja algoritma IDS.
Gambar 2.2 Penelusuran pohon permainan dengan IDS kedalaman 0
Penelusuran dimulai dengan batas maksimal kedalaman 0, cek apakah
merupakan solusi, solusi dalam hal ini adalah permainan berakhir dan hanya koin
putih yang tersisa. Jika bukan merupakan solusi seperti pada Gambar 2.2, yang
menunjukkan hanya kondisi awal suatu permainan, maka pohon pencarian ditelusuri
Universitas Sumatera Utara
14
kembali dari awal dengan batas maksimal kedalaman berikutnya pada pohon
pencarian tersebut yaitu pada kedalaman 1 seperti pada Gambar 2.3.
Gambar 2.3 Penelusuran pohon permainan dengan IDS kedalaman 1
Penelusuran di setiap proses pencariannya menggunakan cara kerja DepthFirst Search (DFS), yaitu dengan menelusuri 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. Demikian seterusnya sampai
ditemukan solusi (Cormen et al., 2009). Pada Gambar 2.3, penelusuran dimulai dari
node a kemudian ke node b, dan penelusuran tidak menemukan solusi pada batas
kedalaman 1. Maka pencarian kembali lagi diulang dari awal, tetapi dengan batas
maksimal kedalaman sama dengan 2. Penelusuran dimulai dari a, kemudian c, b, d.
Akan tetapi, karena tidak juga menemukan solusi pada kedalaman 2 seperti yang
dapat kita lihat pada Gambar 2.4, maka penelusuran diulang kembali dari awal,
dengan batas maksimal kedalaman sama dengan 3.
Gambar 2.4 Penelusuran pohon permainan dengan IDS kedalaman 2
Universitas Sumatera Utara
15
Gambar 2.5 Penelusuran pohon permainan dengan IDS kedalaman 3
. Pada Gambar 2.5, solusi ditemukan pada node f dalam perulangan ketiga,
penelusuran pada batas kedalaman sama dengan 3. Maka dari itu, penelusuran
dihentikan dan tidak perlu melakukan perulangan kembali.
Iterative Deepening Search melakukan pencarian berulang-ulang dengan
menambah batas kedalaman setiap mengulang pencarian, dan akhirnya menemukan
solusi pada penelusuran dengan batas kedalaman maksimal 3. Solusi ditemukan pada
percabangan kanan. Pencarian ini akan menemukan solusi lebih cepat daripada
penelusuran pada DFS, jika solusi tidak berada pada node yang dalam pada simpul
yang paling kiri (Russel & Norvig, 2010).
2.6 Minimax
Algoritma Minimax merupakan salah satu algoritma yang digunakan untuk
meminimalkan
kemungkinan
kekalahan
dan
memaksimalkan
kemungkinan
kemenangan. Algoritma ini diterapkan dalam permainan yang dimainkan oleh dua
pemain dan berbasis zero-sum seperti Checkers, Catur, dan Reversi, yaitu suatu
Universitas Sumatera Utara
16
kondisi apabila terdapat pemain yang mengalami keuntungan, pemain lain akan
mengalami kerugian senilai dengan keuntungan yang diperoleh lawan dan sebaliknya
(Tyugu, 2007).
Algoritma Minimax dapat menghasilkan pilihan langkah yang baik dengan
mengasumsikan bahwa pemain lawan akan selalu memilih langkah terbaik untuk
dirinya dan 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 akan bermain
akan meminimalkan (min node) nilai komputer. Jadi, komputer bertujuan untuk
memaksimalkan kemungkinan nilai rendah yang akan diperoleh komputer. Namun,
algoritma Minimax memiliki kelemahan. Algoritma ini menelusuri seluruh node yang
ada pada pohon pencarian mulai dari kedalaman awal hingga kedalaman akhir,
sehingga waktu yang dibutuhkan relatif lama (Coppin, 2004).
2.6.1 Cara Kerja Minimax
Algoritma Minimax merupakan algoritma dasar pencarian DFS untuk melakukan
traversal dalam pohon. DFS akan mengekspansi simpul paling dalam terlebih dahulu.
Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada
tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst. Untuk proses dan cara
kerja algoritma yang lebih jelas, dapat dilihat pada Gambar 2.6
yang
merepresentasikan cara kerja algoritma Minimax (Ertel, 2011).
Gambar 2.6 Cara kerja algoritma Minimax (Ertel, 2011)
Universitas Sumatera Utara
17
Dari Gambar 2.6, proses pencarian dimulai dari jalur paling kiri terlebih
dahulu, sehingga DFS akan menelusuri simpul paling kiri bawah yaitu 0. Nilai 0
disimpan sebagai nilai minimum sementara karena berada di tingkat min, kemudian
DFS melakukan backtrack dan menelusuri simpul yang bertetangga dengan simpul 0
yaitu simpul 7. Karena nilai 0 lebih kecil dari nilai 7, maka nilai 7 tidak disimpan.
Lalu DFS akan melakukan backtrack ke tingkat max sehingga nilai 0 yang diperoleh
akan disimpan sebagai nilai maksimum sementara. Untuk simpul 9 dan 1, nilai 1 yang
akan disimpan karena merupakan nilai minimum di tingkat min. Saat mencapai tingkat
max, sudah ada nilai maksimum sementara yaitu 0, namun karena nilai 1 lebih besar
daripada nilai 0, maka nilai 0 akan digantikan dengan nilai 1. Nilai 1 akan disimpan
sebagai nilai maksimum sementara. Untuk simpul 6 dan 7, nilai 6 yang akan disimpan
karena merupakan nilai minimum di tingkat min. Saat mencapai tingkat max, sudah
ada nilai maksimum sementara yaitu 1, namun karena nilai 6 lebih besar daripada nilai
1, maka nilai 1 akan digantikan dengan nilai 6. Nilai 6 akan disimpan sebagai nilai
maksimum sementara ditingkat max. Lalu DFS akan melakukan backtrack ke tingkat
min sehingga nilai 6 yang diperoleh akan disimpan sebagai nilai minimum sementara.
Untuk simpul 3 dan 4, nilai 3 yang akan disimpan karena merupakan nilai
minimum di tingkat min. Saat mencapai tingkat max, nilai 3 akan disimpan sebagai
nilai maksimum sementara ditingkat max. Untuk simpul 1, 5 dan 8, nilai 1 yang akan
disimpan karena merupakan nilai minimum di tingkat min. Saat mencapai tingkat
max, sudah ada nilai maksimum sementara yaitu 3, namun karena nilai 3 lebih besar
daripada nilai 1, maka nilai 3 akan tetap disimpan sebagai nilai maksimum sementara
ditingkat max. Lalu DFS akan melakukan backtrack ke tingkat min, saat mencapai
tingkat min, sudah ada nilai minimum sementara yaitu 6, namun karena nilai 3 lebih
kecil dari nilai 6, maka nilai 3 akan digantikan dengan nilai 6. Nilai 3 akan disimpan
sebagai nilai minimum sementara ditingkat min. Lalu DFS akan melakukan backtrack
ke tingkat max sehingga nilai 3 yang diperoleh akan disimpan sebagai nilai maksimum
sementara ditingkat paling atas karena merupakan tingkat max. Lalu penelusuran jalur
kanan akan dilakukan dengan cara yang sama seperti penelusuran jalur kiri sehingga
diperoleh nilai 2. Karena nilai maksimum sementara pada tingkat paling atas adalah
nilai 3, maka nilai 3 akan tetap disimpan sebagai nilai maksimum ditingkat max.
Universitas Sumatera Utara
18
Dengan demikian, jalur yang akan dipilih menggunakan algoritma Minimax
adalah jalur sebelah kiri karena AI mendapatkan nilai 3. Nilai tersebut merupakan
nilai terbaik dengan pertimbangan evaluasi nilai dari beberapa langkah ke depan. Nilai
terbaik dalam Minimax merupakan perhitungan pada pilihan langkah yang paling
banyak mendapatkan angka dengan langkah yang paling sedikit kehilangan angka
(Millington, 2009).
2.7 Minimax dan Iterative Deepening Search
Seperti yang dibahas sebelumnya bahwa kualitas suatu solusi pada pohon permainan
bergantung pada seberapa jauh pohon tersebut dapat melihat langkah ke depan. Untuk
permainan yang memiliki percabangan yang tidak terhingga, sangat memakan waktu
untuk menelusuri pohon permainan semakin ke dalam. Perancangan suatu permainan
membutuhkan efektifitas waktu dalam pencarian, agar pencarian langkah tidak
memungkinkan untuk menemukan jalan buntu atau menghabiskan terlalu banyak
waktu. Minimax yang pada dasarnya sudah menentukan kedalaman pencariannya,
tidak menjamin solusi akan ditemukan dengan cepat.
Untuk menghindari agar tidak terlalu lama dalam pencarian solusinya, maka
dapat digunakan Iterative Deepening Search yang dikombinasikan dengan Minimax,
disebut Iterative Deepening Minimax Search (Millington, 2009).
2.7.1
Cara Kerja Iterative Deepening Minimax Search
Iterative Deepening Minimax Search menelusuri pohon permainan dengan pencarian
dasar pada Minimax dan secara berulang melakukan penambahan kedalaman.
Pencarian dilakukan dengan melihat satu langkah ke depan terlebih dahulu, kemudian
jika waktu atau batasan yang disesuaikan masih tersedia, maka dapat melakukan
pencarian lagi dengan melihat dua langkah ke depan, dan begitu seterusnya sampai
dengan waktu atau batasan yang ditetapkan telah habis (Millington, 2009).
Universitas Sumatera Utara
19
2.8 Android
Android adalah sebuah platform open source komprehensif yang dirancang untuk
perangkat mobile. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang
membuat peranti lunak untuk perangkat mobile. Kemudian untuk mengembangkan
Android tersebut, dibentuklah Open Handset Alliance. Tujuan dari pengembangan ini
adalah untuk mempercepat inovasi pada perangkat mobile dan menawarkan kepada
konsumen suatu pengalaman dalam pemakaian perangkat mobile yang lebih beragam
atau luas, lebih murah, dan lebih baik (Gargenta, 2011).
Saat ini Android sedang merevolusi dunia mobile. Untuk pertama kalinya,
Android merupakan sebuah platform open source yang memisahkan perangkat keras
dari perangkat lunak yang berjalan pada perangkat keras tersebut. Hal ini
memungkinkan beberapa perangkat dalam jumlah yang besar untuk menjalankan
aplikasi yang sama dan menciptakan ekosistem yang jauh lebih beragam untuk para
pengembang dan konsumen.
2.8.1 Arsitektur Android
Komponen utama platform Android dibagi menjadi lima bagian (Collins et al., 2012),
yaitu:
1. Application
Beberapa jenis Application yang terdapat pada Android memiliki sedikit
perbedaan, yaitu aplikasi open source seperti Browser, Camera, Gallery,
Music, Phone dan banyak lagi. Aplikasi open source biasanya terdapat pada
setiap Android. Aplikasi Google non-open source seperti Market, Gmail,
Maps, YouTube dan banyak lagi. Banyak operator atau produsen handset
aplikasi yang menyertakan aplikasi tertentu (seperti Music Player AT&T,
Navigator Verizon, atau TV Sprint) dan aplikasi pendukung ketiga yang
tersedia di Android Market. Ini merupakan aplikasi bebas dari Google seperti
Universitas Sumatera Utara
20
Goggles dan Listen, aplikasi resmi dari layanan sosial seperti Twitter dan
Facebook, dan ribuan pilihan lainnya.
2. Application Frameworks
Application Frameworks merupakan aplikasi pendukung Android yang
digunakan untuk menjalankan aplikasi di sistem operasi Android. Application
Frameworks menyediakan bagian terintegrasi dari SDK platform dan API
yang memungkinkan untuk melakukan interaksi tingkat tinggi dengan sistem
dari dalam aplikasi.
3. Middleware Libraries
Dibawah Application Frameworks terdapat perangkat lunak yang secara
kolektif disebut Middleware. Middleware adalah komponen perangkat lunak
yang berada diantara Operating System dan Application / Application
Frameworks.
Middleware
termasuk
libraries
untuk
banyak
fungsi
(penyimpanan data, graphics rendering, web browsing, dan sebagainya) dan
memiliki rincian khusus yang disebut Dalvik runtime. Dalvik Virtual Machine
(DVM) merupakan mesin yang membentuk dasar kerangka aplikasi Android.
4. Operating System
Di bagian paling bawah dari platform Android terdapat Operating System.
Operating System pada Android berbasis Linux dan dapat melakukan tugas
yang sama seperti Operating System pada komputer desktop konvesional.
Operating System berinteraksi dengan perangkat keras melalui devices drivers
(seperti audio dan video) mengolah input, memproses aplikasi, mengatur data
dan jaringan I/O, dan sebagainya.
5. Software Development Kit (SDK) dan Developer Tools
Saat ini disediakan Android SDK sebagai alat bantu API untuk mulai
mengembangkan aplikasi pada platform Android menggunakan bahasa
pemrograman Java. Sebagai platform aplikasi-netral, Android memberikan
kesempatan untuk membuat aplikasi yang dibutuhkan yang bukan merupakan
aplikasi bawaan Handphone/Smartphone.
Universitas Sumatera Utara
21
2.8.2
Versi Android
Adapun versi-versi Android yang pernah dirilis adalah sebagai berikut:
Tabel 2.1 Versi-versi Android
Platform
Android 1.5
Android 1.6
Android 2.1
Android 2.2
Android 2.3 –
Andoroid 2.3.2
Android 2.3.3 –
Android 2.3.7
Android 3.0
Android 3.1
Android 3.2
Android 4.0 –
Android 4.0.2
Andorid 4.0.3
2.8.3
Nama Kode
Cupcake
Donut
Éclair
Froyo
Gingerbread
Tanggal Rilis
30 April 2009
15 September 2009
26 October 2009
20 May 2010
6 December 2010
Honeycomb
22 February 2011
Ice Cream
Sandwich
19 October 2011
Level API
3
4
7
8
9
Distribusi
0.6%
1.0%
7.6%
27.8%
0.5%
10
58.1%
11
12
13
14
0.1%
1.4%
1.9%
0.3%
15
0.7%
Keunggulan Android
Beberapa keunggulan Android dari platform lain antara lain (Safaat, 2011):
1. Lengkap (Complete Platform)
Para desainer dapat melakukan pendekatan yang komprehensif ketika mereka
sedang mengembangkan platform Android. Android merupakan sistem operasi
yang aman dan banyak menyediakan tools dalam membangun software dan
untuk pengembangan aplikasi.
2. Terbuka (Open Source Platform)
Platform Android disediakan melalui lisensi open source. Pengembang dapat
dengan bebas untuk mengembangkan aplikasi. Android sendiri menggunakan
Linux Kernel 2.6.
Universitas Sumatera Utara
22
3. Bebas (Free Platform)
Android adalah platform / aplikasi yang bebas untuk developer. Tidak ada
lisensi untuk dikembangkan pada platform Android. Tidak ada biaya
keanggotaan diperlukan. Tidak diperlukan biaya pengujian. Tidak ada kontrak
yang diperlukan. Android dapat didistribusikan dan diperdagangkan dalam
bentuk apapun.
2.8.4 Eclipse IDE (Integrated Development Environment)
Integrated Development Environment (IDE) adalah program komputer yang memiliki
beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Tujuan dari
IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam membangun
perangkat lunak.
Eclipse adalah sebuah IDE untuk mengembangkan perangkat lunak dan dapat
dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari
Eclipse:
1. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows,
Linux, Solaris, AIX, HP-UX dan Mac OS X.
2. Multi-language: Eclipse dikembangkan dengan bahasa pemrograman Java,
akan tetapi Eclipse mendukung pengembangan aplikasi berbasis pemrograman
lainnya, seperti C/C++, Cobol, Phyton, Perl, PHP, dan lain sebagainya.
3. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse dapat
digunakan juga untuk aktivitas dalam siklus pengembangan perangkat lunak,
seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain
sebagainya.
2.8.5
Android SDK (Sofrware Development Kit)
Android-SDK adalah tools API (Application Programming Interface) yang diperlukan
untuk mengembangkan aplikasi pada platform Android menggunakan bahasa
pemrogrman Java. Android merupakan subset perangkat lunak untuk perangkat
Universitas Sumatera Utara
23
mobile yang meliputi sistem operasi, middleware, dan aplikasi kunci yang dirilis oleh
Google. Sebagai platform aplikasi-netral, Android memberi kesempatan untuk
membuat aplikasi yang dibutuhkan yang bukan merupakan aplikasi bawaan dari
Handphone/Smartphone.
2.8.6
ADT (Android Development Tools)
ADT (Android Development Tools) adalah plugin untuk Eclipse yang didesain untuk
pengembangan aplikasi Android. ADT memungkinkan Eclipse untuk digunakan
dalam membuat aplikasi Android baru, membuat User Interface, menambahkan
komponen berdasarkan framework API Android, debug aplikasi, dan pemaketan
aplikasi Android.
2.8.7
XML (Extensible Markup Language)
Extensible Markup Language (XML) adalah bahasa markup serba guna yang
direkomendasikan oleh W3C (World Wide Web Consortium) untuk mendeskripsikan
berbagai macam data. XML menggunakan markup tags seperti halnya HTML
(Hypertext Markup Language) namun penggunaanya tidak terbatas pada tampilan web
saja.
Layout mendefenisikan struktur visual pada user interface (UI), seperi UI
dalam activity atau app widget. Pengembang aplikasi Android dapat menggunakan
XML dalam mendeklarasikan elemen-elemen UI yang dibangun. Android
menyediakan pembendaharaan kata pada XML.
Kegunaan menggunakan XML dalam pendeklarasian elemen-elemen UI
adalah memungkinkan pengembang aplikasi Android agar lebih mudah dalam
memisahkan tampilan suatu aplikasi dengan code yang mengontrol perilaku tampilan
aplikasi tersebut. Pendeskripsian UI yang merupakan bagian yang terpisah dari kode
aplikasinya, dapat dimodifikasi dan diadaptasi tanpa harus memodifikasi source code
aplikasi tersebut, apalagi harus melakukan recompile.
Universitas Sumatera Utara
Download