2.
Services, service adalah komponen yang berjalan di belakang untuk
menjalankan operasi yang panjang dan menjalankan kerja proses remote. Service tidak menyediakan antarmuka bagi pengguna. Sebagai contoh
bagaimana sebuah aplikasi pemutar musik dapat berjalan di belakang saat pengguna sedang membuka aplikasi lain. Komponen lain seperti activity dapat
memulai service, membiarkannya bekerja atau mengikatnya untuk berinteraksi.
3.
Content providers, content provider mengatur pembagian data antar aplikasi.
Lewat content provider, aplikasi lain dapat membaca ataupun dapat memodifikasi jika diizinkan data dari aplikasi lain. Contohnya adalah
bagaimana aplikasi chat seperti WhatsApp dapat membaca data kontak phonebook perangkat Android dimana dia dipasang.
4.
Broadcast receivers, broadcast receiver adalah komponen yang merespon
seluruh pengumuman siaran dari sistem. Banyak siaran berasal dari sistem, contohnya siaran yang mengumumkan bahwa layar telah mati atau baterai
rendah. Aplikasi juga dapat melakukan siaran seperti misalnya mengumumkan bahwa aplikasi telah selesai melakukan download data dan tersedia untuk
digunakan aplikasi lain. Meskipun broadcast receiver tidak memiliki antarmuka tetapi bisa saja komponen ini membuat notfikasi di status bar untuk
memperingati pengguna Fikri, 2012.
2.6. Persiapan Sistem
Penerapan aturan ditulis pada manifest aplikasi dengan menggunakan XML. Aturan- aturan tersebut antara lain :
1. Orientasi layar yang digunakan adalah orientasi landscape.
activity android:screenOrientation=landscape
2. Pengizinan penulisan data ke kartu memori.
uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE
3. Pengizinan agar layar tetap menyala selama permainan.
uses-permission android:name=android.permission.WAKE_LOCK
Universitas Sumatera Utara
2.6.1. Framework Permainan Android
Framework atau kerangka kerja adalah kumpulan fungsi, kelas dan aturan yang dibuat untuk mempercepat pembuatan aplikasi. Penggunaan framework dapat membantu
dalam penghematan jumlah baris kode karena penulis tidak perlu menulis fungsi yang sama berulang-ulang.
2.6.1.1. Framework Dasar Permainan
Setiap permainan memerlukan beberapa framework yang digunakan untuk membantu komunikasi dengan system operasi yang mendasari. Framework dasar yang digunakan
terbagi atas lima modul yaitu : 1.
Window management : Bertanggung jawab dalam pengaturan jendela pada aplikasi. Pengaturan berupa pembuatan creating, penutupan closing,
pengistirahatan pause dan pelanjutan resume. 2.
Input : sebagai pengatur media masukan pengguna. Masukan dapat berupa sentuh layar, keyboard, ataupun pembacaan accelerometer.
3. File IO : Memperbolehkan programmer mendapatkan informasi untuk
program dari media penyimpanan. 4.
Graphics : sebuah modul kompleks yang bertanggung jawab dalam pemuatan grafis dan menepatkannya di layar.
5. Audio : Bertanggung jawab dalam pemuatan segala hal yang berbunyi.
6. Game framework : Modul terakhir mengikat semua modul menjadi satu
kesatuan agar dapat dengan mudah digunakan. Framework dibuat dengan menulis kode pada interface dan disimpan dalam
paket kode yang diberi nama framework. Interface yang ditulis adalah Screen.java, Input.java, FileIO.java, Graphics.java, Audio.java, Music.java, Sound.java dan
Pixmap.java. Modul terakhir yang merupakan penggabungan kelima modul dibuat dalam
interface Game.java. Dengan mengabaikan pause dan resume dari modul window management, berikut ini adalah pseudocode modul ke-6 yaitu game framework.
createWindowAndUIComponent; Input input = new Input;
Universitas Sumatera Utara
Graphics graphics = new Graphics; Audio audio = new Audio;
Screen currentScreen = new MainMenu; Float lastFrameTime = currentTime;
WhileuserQuit{
Float deltaTime = currentTime – lastFrameTime;
lastFrameTime = currentTime; currentScreen.updateStateinput, deltaTime;
currentScreen.presentgraphics, audio, deltaTime; }
cleanupResources;
2.6.1.2. Implementasi Dasar Framework
Implementasi framework permainan merupakan langkah penerapan interface dari framework dasar. Penerapan dibuat dengan menulis kode pada kelas-kelas yang
disimpan pada framework.impl, kecuali kelas Pool.java disimpan pada paket framework. Berikut ini adalah kelas-kelas yang dibuat dengan penjelasan singkatnya.
1. Kelas AndroidFileIO, berisi tiga buah method yaitu InputStream aset,
InputStream file dari penyimpanan eksternal dan OutputStream file ke penyimpanan eksternal.
2. Kelas AndroidAudio, sebagai tempat deklarasi file audio yang akan dipakai.
File audio dibedakan menjadi dua yaitu sound dan music. 3.
Kelas AndroidSound, method yang ada pada kelas ini adalah method untuk memutar file audioplay dan membuangnyadispose.
4. Kelas AndroidMusic, berbeda dengan AndroidSound kelas AndroidMusic
lebih kompleks dalam menangani file audio. Method yang ada antara lain play, stop, pause, setLooping, setVolume, isPlaying, isStopped, isLooping dan
dispose. 5.
Kelas AccelerometerHandler, untuk penanganan masukan berasal dari accelerometer.
6. Kelas Pool, sebagai media pengumpul sampah media inputan keyboard dan
touchscreen. 7.
Kelas KeyboardHandler, untuk penanganan masukan yang berasal dari keyboard.
8. Interface TouchHandler, dibuat karena Android memiliki dua jenis Touch
Handler. Yang pertama adalah single touch handler dan yang kedua adalah
Universitas Sumatera Utara
multi touch handlermulai API 5. Interface ini sebagai media tampilan kelas SingleTouchHandler dan kelas MultiTouchHandler.
9. Kelas SingleTouchHandler, untuk penanganan masukan yang berasal dari
layar sentuhuntuk platform 1.6 kebawah. 10.
Kelas MultiTouchHandler, untuk penanganan masukan yang berasal dari layar sentuhuntuk platform 2.0 keatas karena telah mendukung multi touch.
11. Kelas AndroidInput, bertanggung jawab untuk mengikat ketiga penanganan
media masukan
perangkat Android.
Media masukkannya
adalah accelerometer, keyboard dan touchscreen.
12. Kelas AndroidPixmap, adalah kelas tempat mendapatkan informasi mengenai
PixmapBitmap asset. 13.
Kelas AndroidGraphics, bertujuan sebagai media menggambar. Method- method untuk menggambar pada kelas ini antara lain adalah drawPixel,
drawLine, drawRect dan drawPixmap. 14.
AndroidFastRenderView, untuk menjalankan thread pada java. 15.
Kelas AndroidGame, kelas yang berguna untuk menggabungkan keseluruhan modul. Kelas AndroidGame merupakan implementasi interface Game.java.
2.7. Penelitian Terdahulu